From b55f160220c04e295c161e91dc2b89c1825fff42 Mon Sep 17 00:00:00 2001 From: DanielRamirezGe Date: Fri, 28 Feb 2020 21:36:25 -0600 Subject: [PATCH] creacion del subir el archivo --- app.js | 3 + conf/connection.js | 14 ++ files/carta_aceptacion-2.docx | Bin 0 -> 6708 bytes files/carta_aceptacion-5.docx | Bin 0 -> 6708 bytes files/carta_aceptacion-6.docx | Bin 0 -> 6708 bytes files/comprobante_pago-1.docx | Bin 0 -> 28327 bytes files/comprobante_pago-2.docx | Bin 0 -> 6708 bytes files/comprobante_pago-2.pdf | Bin 0 -> 6708 bytes files/comprobante_pago-5.docx | Bin 0 -> 6708 bytes files/comprobante_pago-6.docx | Bin 0 -> 28073 bytes package-lock.json | 389 +++----------------------------- package.json | 4 +- routes/check_clave.js | 73 ++++++ routes/crear_ccv.js | 221 ++++++++++++++++++ routes/datos_personales.js | 60 +++-- routes/descargar_carta.js | 2 +- routes/descargar_comprobante.js | 2 +- routes/elegir_clave.js | 76 +++++++ routes/eliminar_mensaje.js | 18 ++ routes/enviar_correo.js | 22 ++ routes/enviar_password.js | 3 +- routes/get_persona.js | 99 ++++++++ routes/index.js | 10 +- routes/login_persona.js | 4 +- routes/mostrar_mensaje.js | 18 ++ routes/subir_archivo.js | 4 +- routes/traer_datos.js | 1 + routes/traer_persona.js | 29 ++- sql/base.sql | 30 ++- 29 files changed, 696 insertions(+), 386 deletions(-) create mode 100644 files/carta_aceptacion-2.docx create mode 100644 files/carta_aceptacion-5.docx create mode 100644 files/carta_aceptacion-6.docx create mode 100644 files/comprobante_pago-1.docx create mode 100644 files/comprobante_pago-2.docx create mode 100644 files/comprobante_pago-2.pdf create mode 100644 files/comprobante_pago-5.docx create mode 100644 files/comprobante_pago-6.docx create mode 100644 routes/check_clave.js create mode 100644 routes/crear_ccv.js create mode 100644 routes/elegir_clave.js create mode 100644 routes/eliminar_mensaje.js create mode 100644 routes/enviar_correo.js create mode 100644 routes/get_persona.js create mode 100644 routes/mostrar_mensaje.js diff --git a/app.js b/app.js index 98b9569..8c0dc66 100644 --- a/app.js +++ b/app.js @@ -1,6 +1,7 @@ var express = require('express'); var app = express(); var cors = require('cors'); +var clave = require('./routes/check_clave.js'); app.get('/', function(req, res) { res.send('Hello World!'); }); @@ -9,6 +10,8 @@ app.use(cors()); app.use(express.json()) // for parsing application/json app.use(express.urlencoded({ extended: true })) app.use(require('./routes/index.js')) + app.listen(process.env.PORT, function() { + //clave(); console.log('Example app listening on port ' + process.env.PORT + '!'); }); \ No newline at end of file diff --git a/conf/connection.js b/conf/connection.js index 4aa4042..6e3ae8f 100644 --- a/conf/connection.js +++ b/conf/connection.js @@ -1,5 +1,19 @@ var mysql = require('mysql'); + +require('dotenv').config() + + +// console.log({ + + +// host: process.env.HOSTDB, +// user: process.env.USERDB, +// password: process.env.PASSDB, +// database: process.env.DB +// }) var connection = mysql.createConnection({ + + host: process.env.HOSTDB, user: process.env.USERDB, password: process.env.PASSDB, diff --git a/files/carta_aceptacion-2.docx b/files/carta_aceptacion-2.docx new file mode 100644 index 0000000000000000000000000000000000000000..8ee660377ccec25a63759eb55863e150769898c3 GIT binary patch literal 6708 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 a|C4<$<$!m@1prX)UgCEy@*KhaxBmhB&9e^x literal 0 HcmV?d00001 diff --git a/files/carta_aceptacion-5.docx b/files/carta_aceptacion-5.docx new file mode 100644 index 0000000000000000000000000000000000000000..8ee660377ccec25a63759eb55863e150769898c3 GIT binary patch literal 6708 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 a|C4<$<$!m@1prX)UgCEy@*KhaxBmhB&9e^x literal 0 HcmV?d00001 diff --git a/files/carta_aceptacion-6.docx b/files/carta_aceptacion-6.docx new file mode 100644 index 0000000000000000000000000000000000000000..8ee660377ccec25a63759eb55863e150769898c3 GIT binary patch literal 6708 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 a|C4<$<$!m@1prX)UgCEy@*KhaxBmhB&9e^x literal 0 HcmV?d00001 diff --git a/files/comprobante_pago-1.docx b/files/comprobante_pago-1.docx new file mode 100644 index 0000000000000000000000000000000000000000..ac518cda2c8f821bd7af5deaff324e9ae5d2713c GIT binary patch literal 28327 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 a|C4<$<$!m@1prX)UgCEy@*KhaxBmhB&9e^x literal 0 HcmV?d00001 diff --git a/files/comprobante_pago-2.pdf b/files/comprobante_pago-2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8ee660377ccec25a63759eb55863e150769898c3 GIT binary patch literal 6708 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 a|C4<$<$!m@1prX)UgCEy@*KhaxBmhB&9e^x literal 0 HcmV?d00001 diff --git a/files/comprobante_pago-5.docx b/files/comprobante_pago-5.docx new file mode 100644 index 0000000000000000000000000000000000000000..8ee660377ccec25a63759eb55863e150769898c3 GIT binary patch literal 6708 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 a|C4<$<$!m@1prX)UgCEy@*KhaxBmhB&9e^x literal 0 HcmV?d00001 diff --git a/files/comprobante_pago-6.docx b/files/comprobante_pago-6.docx new file mode 100644 index 0000000000000000000000000000000000000000..aa15a9dbeb3f9f7e291db8cc457a828d46bcc7a2 GIT binary patch literal 28073 zcmbTdby!=?6F(XX6o=w2MT%>2LMVkIr9deT#a#l$gVW+(pg^HTio3hJ6fG`A5*!L7 zXbJ&t-ml%~cmKNgo|8OhvpTb9c6L6q6OOlvO8mkC&x!CkU|UnOMEIgCLM*P9jzsuC zAQ8TxyqBlFt2+zVzn|Rb95owXA6Iv44;C(`f2V}`SpJg|`KMgL-NwSx!PQ04!qbL@ zOHo=xNJI$z5f>2=lM)s-`lpJHgQqjP>|c-nHTh>01MN5bN}4S8o}M411qFS4d<1-+ z3%I)52?|R|NeQA$1(jUg!4{tXG}896bhNSZWa0Wx;-9>??ylBeRyOFKlw4hGJo#Ak zY}`H2w8#nz2>o;Ou_$;sdwRLs$hz2gdAeIT^Rc}3vUGN^LNle~>SW_0D<)!NYil7a zCSoOOA!ThP&d2hfrs(cLAR>Gl7wdmbj@bV(OG*yTp6F2pm7LK`E81AOTHBzhd1K>Z z=V{OKTtq_n-;F&y(Q^YP!iSi48XJ4SB&mX?sy8i)9gFrQllct2^(Qc|UxZA*f0>*W z_@QT713*qcqsk)}lt|cR88EL!+bx7SsT0d?_m_~~KieWyb+o_x2r%;66d5&XYc z=e_y;Cd^;5SCmE`Hz-ehTzp+B$8hP|Sw2* zPj1yY8uNT*yu_H54i*N-NyEm14KM$UWLudjS?wsl#F=m`JrrBy*UfBRd$(HbCfael z?)`e*tFh^Hug2|_Hv1%QU;B_ux??e3kf%m2Z~r;k<2;+hC^s{^XE* zK(LW-_e6ZE#ZfH9nb0-Ttke&V;G@-7wqwBHQI8o{y$?I8$&rFf3>Jf=sTwJ!ScfRhc|#4__yD}AGOZTY<2qH zT&~R;wPK9bR}u-DT728o3FX|SR!kL*3Cke-73Lm>AEzerxSIRD||d$O;am+*``EGGL0 zcS5h`^&f$Y=7P^yrgCd-YOIHt27M!pfK6Szv-g`@Kk>0!B|I#RMrW}Jg<@V|g7z3N za|vftZ8N1!1djIJP(z>@=alB?UTggRyoBctV81RIpq#goXvp}gZPh4jR|DZ}m&|-q z|AL7#_9>nnRBB#4b)V4;2rHt!qiP?)egKtkZsQlSwns_-KiHd6>d-*LAJVX)g zxIGPV9}=2>>66Nftfv6m{S9Z=$$ zF2Ghwm74UWhvwBgd7y8VWn6UJ^wS&%I!0Ly-I(2d$&IK?iKBZ#BU4$054yFCXtljW} zhP|A}HuB9vNoJ2t=A>k=4JbO9ujEXNY)0Fcvv)X?gE#{Bbt>Tj){YMS=n5C7{72EB zQ+$b}UsP#7CR%##JJSv3W{^?2mPt$Y+JP*R_(IQqk-d}u%W0V?7Tb@_iW|LH>0+81 zKc!>%dD2efRZ>N;`&nsrYlwn@hrs6C#XXk%-!JlY38NB|pW{ZSoD;AaSh>X5G&#BK zL~{6K&*GmK0MDMc4`*iN7AO=eT(=k0g^BItsP?8bJktL9zp+m${Gf+{G zadw$TO}4YS73$n!NW5{X>&Mp2%I@j~V6=iiR@S9q=998OIOaM-p)7wS0xCyS*ogfAIU?xI*p`_t2 zD30>#8V8&b_WNUaRw%W0L*l3X=deywqFF}+hC8R91Q98pYrNqo%-srkDRdiXe>C|r z2cM3T#|8O!l%qn8)&BBvn6)m2qe`Crjzr6k(Yi+xG@p#wO<$3*grM-gXb@r)%_&Sv zn7?}Sra4Z&R|iCdu^*B11S_m0?8750p%06v_bla7`|Vl%EV&-YF~h9eEqyT=C{pBSG?+q|B5)I9d=;1LSZ3AnjXW?_uLyQ6I0n@_OzVu(!8kUn zJ@DYAFR}ON+(cSCj*q80*nL!d8%CxjSzlX(Hwav|c=heifjn5}ZDRexadfF*$2;2K z$`gMvy9ltxtYmnFul`Lx7m1I=5(sSmR4{?f=DX^g39;~Ouf6X#rdQ43_rZeL@=m^thI zC{{QCqw#z^ySYILw^F^iz{G_j^6qLW)0s*1*5Vg0N!!-(p6Aup-&VKo?@K%DcSYyg z;+|#au-O#9^Yx$_SEa({W}}0mcMO9*kC;Wda0XCswyWNCT3#K&8dsRVEKJ_Dfjb^L zs)&tu9@oVV`If62Efnnk?7LyCYI%q;*dJ zuHGEj?4xMX?@`ZV7jY|Dt>kiT&NJm5zK%MuwC6ARj4Bf>W^%lLFU$AYQt#%KEe;)8ADi`U8CX z*YsR3;mDV}R4)8~CJrZf)?RPDPU3s&* zr~Ee_#J9aV>L?-v8XmGM4y`g{V%F!VP%oD#EH=`*)sl@^6=a*=2sSak^UwD@cbHVm zI(nLw5P6w#_i>C(r~JxpXlidL&BrC%mgi_hW6M$edTlUO@x2#)3 zJu-b zbZ4xCpMS`QZxB?QC6xueE#WCXTwFwy&_819&tn!8N>}vwxljZPJoa~+yb1WjeFbE9c%c^{!jd!;EpYT*+1y$Jdm}B28;AnMoZy zV)nI5Aea$~r1~^gr-B)lwHtql-IkR13--JJg@*o%Y5oh0#QzUq^dAWH5Bw8DBchiM zo*r*)+!b8GAJF*B#gj!6ovGvd!G=Z9K=WU44*gr-!5WR4ge67MX*9O;{8zCm*uw4~ zOr_xJ?CP%l!NLmNMA63E!OG^H@=J97e-W6Xg3kZ&mx_&poxSJ3d-?~v{g>2-rH4(x zlh;bBN&pND41hWM20W|+6acu7ALBg6#>K(G!NbGFC!`=EBp@K9B_k)HV5DPaVx(hW zU||>FWMSoFV_@Kt;N}w&78Mm`=9H3^6afl67Zv%Z6AU~&JVF9O8X_VZk*5q#MgBiu z4?O@iH(hgg{~clE(c(dVv{`;mVZpHWr4%$Mj`Ss=?5;`%i3Pbcfa85&n?|Q;o(zJ z)6mj!Jmciz<`ESWmync_R#1GUq^zR)T3bg~Pv5}M$jaKr*3RC+(Zkcr+Xv$77aA5G z5g8R7lbrG;H7)&XMrK}qL19sGNoiSKeM4hYb4zPmU;n`1(D2CU&zae|`Gv)$Ey8ks4O#oBWf=5?LoCszfO1W{MXUB<#31;b49 zr4~?d|PAv3b;DD5-ZnR%Nt@hllSL--PI#4OZ#E%9w>qIi*3Au?WlO_4cbu)tUX!Xz@wy=S^(H`O8mA~g48D^S z79v?TnoYc=NM+fsoH$|>f)yCubZpRTJxWAUrWFy`DjH8(AWVU zv(BrDKf!p?==n)DXjLnI87#m`vrKCe5*vy2;xiWk0u%j z+oy|*STf;#)u7(E<}Sg2S#wTpDtYoJM|rUu$~$L+w6Wq`l9;k_UvS{OnhY2sq4zZt zzbkW>*c)f`4^f4;t49uC1-xl@AU9gzUtfpeMo}G>vcyrmBfyN(m$DiKE$yLvpn=q| zt7s2cHJ-`Zp>$y$N8FRrCyImbWn9S0zK4JLeu7!(hx1YFPD1M!e?{JGr6}V|QJ-{q zJ>9fb`{M+sF?VX%*Cn> zm<`cN>B%M1#9ei~muSwMeb<=4?*u(lW=aJ+_v$%?V_|)-eHw9OP5Ul1ZSV6dx!5k@ zK>Z$ZI^xc4BV^m^Tf^!GBx#f4H;yHRoi95~&--&aSFs4F9{^8Ifx^Y_k--{pXV|TF zbVVgf-ep%x%n-oUtfB|}IsRTn=#TpY0J6t9cG|(YHKB2)HueA@K_;9WzH!a;=ic`2 z0oX*1_5gw?Fix+;C75ws*%})YL6}l)bB!`XWSWF0gpOsko2eWY3`!fmtrzF< z4G)0u>b*mHx#o@sz@LrZBLR0C_QS9K1}|`~51Uz;7DIz$m?#k&5mm+mR!XyPf72x7 zl&lZ3r0THYtU%o*m?RH710@rqO{t~>^ed2-V?9@GPCeHoRQVox#_Z+JRll%&JE{Pf z<7{rsUadzjNUOsebEtzR?x}00|J*NnG5z2h&vsM}BYXeIeVe#KPI@)8??#{;E@$>D zh+%E*h}*+2{{D+1csJr>hP+ptIcw-h?s919(N97qz2q78xwcloPoaAf#@+&UZ*q$(7l1Qn0Nl3Cs zeAlNCsXPB(BiDXLJLr0;m+WutDL2NUl6vWp8c}ruN%h!d47-!%p5g9bJH(!HFq5Nr zy3axq(p2Wdf={`F+&A`?M4tYXxD2_lz+Y3<7C<_p#c-SEmRNN}L@D%$HCdUpaNty= z2$$v5+LsRW{d)qk1jP@XB05@UXqY>_XLc}BpIg0N)+`?G;*;T;w9*~{Trk>W3Jx(- zXohw@JMep!xA56sg38RkwbkC*S1U1-LSP2M7X>;v3?{*<>1v+4mtHkn9^ExsgQVJq zUnRBDZBt4D<333*Y9XFOhp&h;K*bd(h5LnhXp9`|Pk7M1!T7fzlbL!jtw#@A#C26@ zPd51jAZ+oTG)wuO^Z|fWl7lkb@;v|?ZmCfbK}W7@VGn?8!>OtJ=5s)z4qWfsR`&|q zz=~<9>~Eo0Hk5sh#30s0Nm@IsT+pNsoS#+RHDfPAhLUVKfv$- zU|#S5m4KiyRBLmvJQkBYP9p^dXC#OYWdu*l;)sZZ zfr)1pRNst$6|orseDA=z(E6*_jbhticmV8sOg{ile?9=tWIb}8OntiNF|FvLoj*B6 z8D4oc*VY=W&=l%=`|w%E0bbIQY%qKJZ0@WY{D#=|wjD=)%DR#xW;5Snw%h+u@kEXy1a?*Txr z$)HA&bVvu@8^aRsvfFs)O|)zv7k78HHIoy^-n9_)?7#`3M{~hNl(tN-Au|%?TSy-& z`0P#S@sd|AiGSy82U>r?V*(QmYZL#h$~8B$JOI>&)7!`HmWSK~)pH=8$FOXP4tQbW za4@Ob7Lmy5+u4Z@UIx7i-LNhlNvlW=@d!r$1YQqV=HGV@N=+tz69*Hx&F1QfHatNYAXk-*EP1#txF!Iau(F-4AcMQG5AI+96!Tc$@ z_L@1C>Nx+1fMYS?#B6M~QR+p^I=$zkmkDevc8{Ey`4irI9GqCmBjO{nHp_{ab!(d% zXIUc{ZD?F>U$VrJ(h8^ivc5lEXO0wvPr;}Y1Kdh`Jv{Ob)Sx?QDlS!SoQChNm)8%uRa0W|@k#mN>EyQH-6;;&{)E zM?t@sp3RG?2<(0`=Bk_rYZ->p9ItYEa1A}VzNl1pF(W%P0zLo;I@C*g{b7|(;Q6d= zl~M-=+}^8J9X+DkXuqeoV^hT>@V=W3Xz)O#1~aYdT?VVeE*1ToB_I0&t=rBu{ha$w zZNz0{BG3wfqcPjqNj9@#nmNMXSXog*3Dagf;j=a;A(@YqA1-;kTMbi_c>vG`NWeR^ zCIvf$OB9ONM}7iZ*;QHMzD~O93rnzb_cHkTXJzHY%noP9udNq5aE5O;6WCdo0he|L zd~Ibgh7@xKg5X=TV{%XvWcd(?=oTl|v%AIw60CXV$zInId&iCHu(UKBHpn}uKb3&) zq6Ma)>nVD{cA`z5rUwAZJw)iwDUd50a}F$UG1dyy;^=XbnYY?ern353v;O!4`#t$} zBq)0?AL4S}2O@%B#{jw6=>nr?p>serdf{ZXr5Ul$QT-A4OV2;x6V~i~jGKz03Zg)I z!21p0Vrj+RHxYRVvsXkj>9$PH=Fs^^7*U#7d!dIsdp#56T5zAp#^Yeq=3Ax=F9%nD z!rKM)=`xi+t8de2^l-53vcF*L`P>V^m7_pBPE1b`#7U*5_RZe=HO8fQJU>gxPQZ0s zLul<5b;;o8nSxzfIi z0ol2E^vw9SX=Y{X_{o$bu*g;&@mVoSL&UgdpLY=SEO@YKmJ{idAM^lFnP*LWo9#4} z>6J1*M49dwe%JRwC)+stE8tMn|0q^gS*IKRJIAtZdgr{u<*dZ@SmNd2M2k$wsM>d{ zpSMS|NdInZ$D0R0Ok+leCL_wKcd_YD6BXG|xf?~<&$y{ZP3+`%Adh}xSztfZ^czXU z1z151;h|bAzhw;Jzi5h!rh}T8sM2F%NoLD+;jCXtCK{*rn_*o>Z}dsWU9WS{gIy{v zMePzK85O^MRFrS$WkxX3Aoei^5AVfh19YJ>%Ro)+wFf|)LWQ^Vr@UbbJ!oo^NIn;5 zMk|-*xYWgE_ajKLAtE6Q`i%t7H1N}6Kf8M{gXJonrl!XrU$xholMJ#xnLWF_#mECYq4oF+aBVn@VU@7u0XhhMdrC85!n- zo5m}jKlvI*_I%fq|5_P_5eXxS?2<*>DH-LE>b}f{REw+q{4mRsj=h2J>NXhdX{YbK&?QIm-Wa@xk59}oai`ELqm7LWkt_!}CraO>>T0+Wu*NJX}W4$z+*C3&q=M9{7&9QfssE%E8T^vKp zgYJ`N7{(MbQ3=5r=DCmJh6WQJ7TpZJor1-SET|N8#`k*A3YW^rd(oWJ*ghS$SY8ca zjZ{KlH%Fsvwj?jhW!SlSj)X92^$5!d#&`jkk}RZ)zZdMnyI3LR3h)^pLD22_xo~N|--rY++jtf`f=P&Prr>K^udE>he`$8~|W@F|+ z?6aQL(R2lV#gUbw5URD8$jto;UdW&oNG0j>Be!gcoJ-{d$-lFML5~qQeG|$`-EEz< zPNf_Um8QQkHThv&?h3h#hJk(zi*D2rAkF||xJmf&X;edL!)T$yj|fjv={D*_&aue5 zlf6oS=gn}qAc!h}06|n4(F#mg_o4i0(i5?~wZ_h+V-dYy{QY{+*De}pQw=#)n$8|m znG3t8X`YxYB&>c;wUX22jZbJNls3xQ4Ych{goa-Z50XT*eFur4rBPyzkWW0yJ*rkE z|JvVALhjD-Y>b4$z6+}b`3*YM(2iHqaV5@+OI(ZnJnxjRXVcZx7sxz-sol3ixl2BEHSYPe>#5&cG)8c+^!g?CCKZLSN@Kg7A9jSnnt32|~=1UyNoNpYk z+%SuIu}JlEMzM(Et4v+ob23a~4xqcowjbx9AT7j0IaGDVE2n;`w|y-3Pfgd_xWUUPR#wKPzwrV_^{W} z^zi6J{nGf|_I;1`Q3KEmq1V^1RRd2*q`YhjFH(D!QL)mX)x5(0xx$9ceXt8Q@;p^e zNNP%0pYYTYPpMg^?F*Oj+JkZ62sEz=$)YjfI7OVuN zGDz5Otk9~m$zz!l?m1fM`)mNbr@jPmbhRvq9hp7a7~O+7X{Q-h{b>q6XS5V3hV;jY zYGu;|Zg^yAK1Kms=Ys?sllP|_T#J#eCQ6W^q-$R_nPVMj^OIWAbJEpJz@=Px+esoc zCz4JhsoJqgTCdo3&v!xp8V~E&Nyf4d+vk3sp11^goKAPxCF#vnZHC75Fn6zckeBR`Uw4c&bAKldGbN<>MSEBF6_kJN*zU8iE8j6k zz~I|Q!wItGlOS?P(=m|OYcr8#f}=P_jDE4Dz9UW42{NxmfWzrFYEXc=4NRIX0nEX# zGJMf8AT$%8CVFmWFtD&rnf~rw9WaVR*Xhaj=Yc3(QZkR72SEM%obY>UWchFqN2?iW zmYuqXi;Z+dz71c5-n$rbkJQl>$X?#X#S&r}Q5=ra-8|MF&g?8I#cn)ZVKK&?6XA0u zSCN|^!eet0@%OGeg;5WTZ6I}xG-FWQZnBZ9jU?=}oAEj30<{?g#JirN0LsKRt* z;2#ddN5_Xhxs6^>o(54N7opwMkc3%alHx6)Kv_w44@bM{8hsn0- z)YKASbvp!S+&0ZcN zNrF-+-n+>DxYhYw>sR$oXIp}-f?_jK)hh-OaN`$V-xx`m5bMtYg$eRO0dbRgCzwv0J-wxt$O_(8(K#y}xXfOp*U*}hcA=E#%l3wMz zaTZA3UF~bAB4(p2)SzNhg6sNqCapcO1QdYvu(p7N>^y2e9rtjCclY5svRiKa^-BZk=0r7Ig& zVSwzKf^vNKUSJ{%HExU*;*2q8rRZ9J6OQ#s0>|N}m49&AaU6*Pf;z5&kpwoGSa_JJ z^o`-%kXGNMEtSp5<_^9@An<}i<+lIMVrvdF1epRZ-(NuE>SO+6E3o4zndEVSxz2Bv zCJa0*LKm9J7uToyqV(}TeR8B;f{ZAYy3kjRbCuZ1qnLP~CvH2-sKk>Z-cd;b-4;Ld zpiSVeXQsjSqdtOtqnE~vB8D7w^Gno;W72;KlFB5{vUUnmpbcpjs!N?%*ss1W|V>@UQ={qLcli&1JjHnnxjc+j3JQCxVy- zM#TG)L^S5mts|ReE{5fq&2L5cDki~2e9 zw=Ybxj^a|p7#Vx@OLHB#$zXttFL5*@>msoCYfAsI)^JUiebvyY*J3}9h1gDg>-Jfy z=MY=9@`!GzIDZO(X*%Ot;W;4)E?6h)-q_x-2{HWU7Y;4LvK8MYoyx^Yt!%2UKpqX4 ziogded=~tail3FujPz0{?{<_78k9eIN&az)G2SPgiLGNACFp?ov?9qoAbnA++18Y* z+MqI5_bCSV!%~xmTGE)?$lw(2x{fSZXm5?sR-2E}5_otcd9PQH=jLM&? zf%<{@>Vk2iW9o8msR?Tb9eckFHhvf;MxF3UUoq%`DiN4HHxq-`p)O*rRA-mlGX*g+ z4hnb-Ut=P;^ra-H*x-4SQ>I9dO<5%emrFs~L%a_hG2-hSHdb`brq+^X8OZBRuZlps zK563S3MB7<54l4Z)jS>OZC*&HhNq!Ic~D@Y|lX|DD(#a3KAHDRue-W_d~Bz zN~UD5QcL(|6r_c{lvT|*`mlgMJ7ojo-_M+)>AqEj*qYHeq-6%>@)a7OL-~GMo}CE& zkM!<=cusY=a`Y*PW8j@@fdR_ac{3=NF10s;CxtCIX1w5GmEaz zjC@5EdS_=;_e#wx=7ju%ZjJ-)=5qjMEemnRr6|T&bzgU6wgf^ys<2^EEW-;|&>H-b z>t|j+Z~KnYek*-yB-X`|E{=tn{LZ{nZe6D7-@vtvv2K(EF@t+Jk3A0bNInA!xZ9CXtSWG;f$eapD zXm734^W`;mRjT}azDkCltZ_nQulfNa@_vP<5Yh5WSr^v%MR9O3Kpz) zBJ8KfGYue-BPu_VAuzRe_l)^`rNvCdEjOa>eZ%4NREu7g3t67Q$U(GQQ6*^NE(`wc zR`ZtAb@_fW;I#H)wcZ(L>^78Uck)EY>;Qh{`=#YZN3! zUda&vPZ*F+T3?0htW84x_>yCPam6u*Y5X1CK!CGD3k}q^WbsecyWw5gv6LH;eBOaE zXSRXu+e@!q%|yg^@a|U5Bv~*+(7sV#b$C}jyjZ6$`$YA!Jk}{THDj(!e4idK9E)(o zFJ&d>eWZEc*C?s?w7{W)lgnV{xuO|s{)+>k55ktyx8MPp-o zLt?Mi`cPX?Wtc}0jEv{3pr85^v zPXf^DI?M0!sv?-~@CGNQ!9GBf0~I6s4)t%OZ5F$+?q}D1fkVeK#vur41wlT;i)=~RB zzpQANAsq7YFAk6Ijx`t2OdOtJ11zX5a4%T$dMRYMGc(_fu^V~HtO7Z zRSpzSG{3~#=om4nd-oWC&BpGz9rFMn>!2)k%9Mx@Q+M%KD*?*6T+_kI>%@MBM;DTU z--`4}488VZl<|%DR@4vAUTciEC}>2i)&I@(&fq3nop9MyG8s3I+no5g%l(sBHn3V5 z(Ht4z4?owr)%el;bEX^Sbp^3DtM^Tk$f$S!zU8z<-{y0Ip$YZ$nN2FSuU7_d;#IDB zP6%jyi{c;y{5k%lBJhmuI=-J6M_yy-W^0Rb+efd?s>e#aEiD6*C$*b}kz{BD{G8js z8BKlC%+zJL`B$*PHM%Vi#S>XK36;=&X}qWS18izU+U@V%G-V9AN7=Lxp{(CPhkOjpQJq* zLIb3b4*3xM{mP0-qAt`+OK9h9dKKX z`}^RSDB*`p)nBs!`WEf_Hat-1cKG3lipcqxTO?lH){giA62RU(J z9YM41Z)v9PcqgQf>bxLImO1{O?RRg*aIukc`2n-_-S4zb&dk3$2J>H!Vh7XhL<40^iwv>riKj^?;( z&%oK6l-{(y#^9Rf1I5V8?IvNA$v$Q~BI29GP)>xA$#5i{j85|PF~E`i$4a)dV!+40 zzadws@}Ht|;loPE-aLr@Ag@Cp_Hjo#aaz3!MRmHsv@w29L?X~%Cx=k5@}3&?dJc;C zlCzxrEZf4OVItBy<`r}M+Pv=r;AqZ|d62vUW&R7O4NGgN{q%EP&Bx!snumHU-GMjF zQcX2Mw&c;?ATt%j=m9VQVwh%~t&Yfm#z=cQ9!0Ez};?tEiICD&ZI6{p}}Ox z`~fuBgYWe-YRHnyH#SR9HMPZY4T=5q4Rtd#NMVob=Yz<$P$ojVV>tWJOXYI4{aHiG ztA)lyk=1XYw29H9|iw8#o0i;Nx7w3RE@#wki2?reQU`TSNm1)tI{L+ zyQ!{?5FE|T94w>{Od^agKp)mAcdKCBeGZ!S+Eb;vOBQuHQ~H^Y8zYHXO9aIosNJKBo6kOhYBX$=$}=pAz!GN7 z!%AcukGxyotF&1UkV6a)xH35`c1itWoAtbC7C%=nem{U;7R^XZFyd|!0`$B%dck;~ zv}GdEcTb7*EnM&QVZWJAt?aCS8KX;Yt(HFa=&>~;#_20%=o(J%2Cf**A9CF;YE#xU zN$|`c-*0QgfX9+Ornb!fbAEJOm|quAW)+ZY<(z)$>#%CH-EMk(-dKLNOAn4?H(A|^ z53+p`$|vQv_+#&4?2Z}A{H@qQ!W)D>*$9h$q6&6k6-=+^c~bVb9W^Bx#}GKX2=t`e z7?z8?XZy7`;{~RE-%^|7nn9gT=d#ip$t%S6ndET?3L>pZj8cH>)#H55RBA8l_bTeC znqU|5t*ztx7P(Hqnn2r%lQI|b9#MUj9wTb++|V7G?ni<6%~$E+RNS=pwnCh-rnHxj z#0<)ypR?+?&a)684|a1Xagtb>`Jv{^nrZ0r2pWwm&mTuM!WeyBUH#_|N-rBY=W=o> z^N+4;F_z)b+8q{P8xvk47Gb|9{M1FGkZ`Q)d2!4qO-`S*qk z7aNZQROX+}gGRUZiP{F5_22PU#OaBz({@b14$-czW-HVNq5YXrjm&f#Q~s9MMilkx zr83V2zyJN*8pmUmLhrRY=Xw020%@$&fFy#RlJ(lv>$lG_p{=JynQ75YqJm>)H$UPH zBftr0_Ac~3_Ma166hHU@&~d+dc0YR+fVcv$+7A789fICB=T2%eL#qjon0V1I?*2%% zqiY&8(WNS?rjm1g+X3T`DK%?vD8kR_fH3m5z;{Epm_wyKGmC1=mL{OazHb(r^f1RW z^*`f&DTOTN`&y&6!e#x)2d@|Di1VT7kt6GZtxX^>GwFj93boz#uj4lTr+A?j_i?TxrNy2;!*#YpdL&#PFh8jZhEgKS3l5AV zBD)(zqyNFK!Ni8cO$4KOUtR4}U)KxFIj3@7JMH711xKab92X~Cask!+u}`YH^jA1P zzEB=l(FgEcnB?akAQyeh4$R2Nw*(>`d|*W4niQ(m6Lx;Ji9C|E;<}Mv{(JBhLK{pG z@Vo-88T+KX_;)TI0IR0fX+~^{XhVl@Z6^s#w|%i*8d83Z!x%mlnOQx+{K&Lk4Jt=| zXas4t&zoJ5iGoFE%r}?)F()CK4kq1O)E?*()+7y3fIp6x%f9IfFDtAnlwqy#(A@2- z`gJVl+2HJ}yP1F^f9&lY#H-2VDBc z0#^jBoC{T;Dd*|DRHfgs|J5Tem`D*M{WoXJf)T9nqQXi?Djx#AE*@hEU)L}BjB(zz zPkqWf*n-O#h(l*CnIrB=f@A2^_i}!${Pm9Oh9?FllU{Xk-0hCXZAne`-&a>Nc%=o2 z&AN8@mLNe~0z*G6Tm(3hk^=Gyls*)Dd)y8l;wYe_DA8>LZ>j5450YisvpH<6SCZBnMm%~?(T#@;Sy26S0%`W zd;eAHw&}u5u;u*VU@^{9;!t_^X_l(=IHCw;;};HyW4esP9w*C$1$VY&TfDSt%0LnHN8M!#|yy>ws_A(!+UnCj2I zm2mVlM}U|u`6a19Vk-*{D1bpAs<8$z=${r+iZZF}4NWy9CbeBrU^Eddp- zTC&%;v+cNgm=@dF!5R>|`940SXiV+P-?zNXlPE6b z#$=e#5X*46H_)hSLwWZG*}-u&&#ckiv1FnQVt&zk;+eZPBAjAK9b z?G0L#u9d%=183wOJn)bEDEOJ3!}52s$ftxh>Rr+j>-)l^%3(naC^h&-Owl|^l&CA4 zR%gPNp269~haY2-w2}BKKDUK_S6kQs17tmHRS_Ln_z5U4>YYtJ=bQ{XJL6ibVzcq# zc@p1`ofpUa8Lp|3KL&i|R)u;oThR2YBDW2G9h#Rc=`tVYPXFG5>BS!jVU_1+C3`@^ zkEX>4l3_oh#>0)l%|MC4l>og%js=Q>+82XMzWkhNo203dd~yrKQhPP<_`OeFB={5l zMJte?NrG6eoq2F&M^;VwQx47*Ko9otIF8a*B_IG=0O3_f=!gBuhYwu)+zS)Wm^u78 zV$d>eIQg?L_r6DH|P#ZqOf^5xLMq7t*1z z-DFb*&#qbJz6Whi<4w)M9kamFCPZ2mG3bJHyB)RQ0oUM=3y$N0z}tR((f z(%WElH(vJz0sRv^9Jb&1a5WNSMbOjLVEg-{TRUB|hQOSi)xFme&THST+=e`mi#5T0 zm{*#}%5Eqt`k*@LF6%b&&nfRQDCjiZ_U>%U?%S@F!@;UlMKDqkC{cJQ2hT*$iE*Lf zhSAtvC3>e_U`tT3*518Kyff$NNfbP>CcXB5i}Pc&RDJVUfEfcNWpEkjuNEu5IZKR@!?lCENhd@Ttqp||wTVs4&mpK(jb5VNss#z!dD+D| z8ll7Mva?<}kt;sY7u@`!t`w&0VeQ8BjnsLRWCHA-_&dZSleoic7nIAzQ5E-sD7J;{ zdjp`Dqsz?l3Fp_>(Y1M>g*nZ)KetTn&4d77K$6d4kMlRH2@Zet62-^W93V#R3$2A) z6GT)k`@NsI18AoxOM^Eb09cS0lK8?ZJ)y-0Qdxeg za>8TtZZD#dnRx9$`p@-(L~^wC{4qcNaPbg6sg#%dqmaRCDy=Y1*{%a2ZR_JcZ++A(~6Yqy~jo1^z&=?uQSbG@=j2lTzg&< zK6+hO{bg0((@{7~6Dq3-`o5RY5lk78WdYyob(b%FgHZipQute=PN|0v7c(omB^h^uxSPrCe66+v(Y6%?TiE2;Ka#sq{rQPT0D)jJ$nJD)( zq4z0G=-9zdjNEZIU$ht=!vJWu-I3ZnDBy%saPj+R;yiT3Es}GyorIdB3vF`nI$V3F zC)D*aIGgmE@rAZO8J;|oLjM;V#A1llhEDYpS@kR!Wvw34#SR8iNW3=r>RTHcse}9Y zDUdvyq@+p{RvlH%C;IiC!E6jv>{YNq3EgzzfNmz9wQ!eB{!}%WS3)YuwklD{|RSyGkdZ$-OF-Mf8kA5mZCbzmH<5r}vwNkCuM9yWHo!T#pXJ+VAV7SJ~c+lk7NC>{B6T& zo>%?V7ffUMt|X1I9s^}Q&RLNok%Q8m->>cVqFpxnS1til&xKBIy(fL_rl!74225R* zCNZnxQn#}Ok z6E(}Uwm+K0nX!EF+eOcC+4)*GRXQa+W&KYei@L}ptBQW=P?TKJA)RltUb1oNqndON z8zmbJ@o-t0Y^OdT8?>4Nk^U(^JFRNn zb$KsKUU5Lfn5Epyr2oee+So_zPW45@c*ok+HBQjBz8n6!p-2voWXHz{?Ha;OWt8$M zldSYeW2cNdqA)VLi|co=1+r}NS;EZE2|5GzM)O0)COi;$O6Yd$q?#$0-cKVOk;Z5{ zWTHKoDSG4gUTINFnJfYlN^~gqLF)f%?n}U-?%KwuREq2=`%DpfB+D54@<>^d5RpCE zX^63m3{%OzC7~!pk+P(S?8_iY))r(NB!n4TgE7AIQ=Ye;?|uK@b-myJy54VG$2q_I zZ1>sj-+j)x@B1ef-xGM!3(i^TmQ68jx^g3p>-ua%(_v!lnt{F9p`_1*{GxNcSCuth z{~2V|Uij#1&@K`+#V@>Yak_spA7{&!;^$~sa+p~?df!g$o%L_a?N`X{QEGdN;oGq$ zAC0?amyYBlEs6KKKh!jM#Q$72^WHc;-W(RCR3CEga8W#=HfhkFtp~r;9hYc4KDOdpkzTGqm)0~9msJ!@WWEp1N_8-! zluOqqQ!KOgFAz>&>+OeaXML+RcOa2Z;0E1QvPdHvF)EO;uA0uR>e#z+wdXmJG_E(5 zUOOUD19!P#a@)0(zoWh`3$T!D!f2ddX#%9>!tCB@lVs-Z&yo@xC)&l(R-HxftkiCJ zE3d9RTE(e!qj=NVtldgGDZ~#Z)v0>(clwWIKCIA)KOhyMZY?xPwVHlRR<=G&DJAKu zS3U2}NHt0|aLEp(KOb+nmptYlN1MZZxT>f`nJe}Pxzd0;mjX^`FUK63Y_OF&5Ppbs zXiVo;U`1MDE+!kRxlmVrAX20&CxD+`-%3L-uFX@3EzbqP#S(f+^PZHTV4-m30Co)_Uu|I7IqLV4<5<-Pxtg>zV($ zG`ZYf(KucUEov)BIP?eC1Iw{d<+%E*${a+Ih@(`i(JEcbXR+8B_saYT#jB&2w8IeW zin(((hF{A+hN((m6_?EGXNq5zttod{!H?Wcu)iA2n-HBitH`s^iVwD7DxeyIqcGHr z=Td<7jqd(g^`hNpnMawszkhr%w^T5v4K9_5h5OBPM#9A5+Q913 z;cIw(T-B~UV~4Lb2l*5>pz+GiFIjfNcQMY(=6e~_7qw4mhd-CCZDzR0eYpLNzY2Af zXc{J=EJ&hnDCei%)bVk9a(|AFJ?wIs=k-5TxO|_&*;Tm*DSiY=%256C!e9&2=hf;5 z%dbY~M?|MZ>#2FBbEG};bT!ucb*q=uc!Gqdz@4p&xV5fCFe=gd(`tnFk+D3(pm88!++Wi;cO^`D?HG|vv>YIQu=v4p#PC@w z$?n8jh5-v_ut`FtXIZ+{uqr!@Orv?;Fcz|4l?+0EY*uWfjw@gLu!Tcml4 zctv0XX0Cb|>($;k1g}(jFw~;#TWW4NNRnihO%3A`VtcRU3TviVjqW4G5!Bee4jx>X zT?({07u(bB9BGG)us5~4Rd%+^DP%H@{*+jj2N!mzPT&vH+>L_87+LXMMDUW=e|0lC z&CT9BT0u;h?wf=1V{R2Ca1$yVOcZMehfd5TBF~cWOjf)_my%geJ9zhwzdq0QY<`cW z)54@NRgS2QlkzC&wWeHA;y>G>{M7AkcqpE|jmxu2I`yI71(sbJcf&-K7gCn0D@Neq zbr31a1e62sA`zVMdpP zUD>%f(K^2@d0txso!yFQ1CQx$Qo``id5ww0jaBHpCM3y9{n8*fuhF!M9z1nR!8(Vc zC2-$~fR9vVc}8Zcv>`=(4H9e1EbXtP*w54a)(3H=lQEy#$=*woRHH1MNd=kzGmVEV zo9OURw*5t&va6M3B(G5YfQ9GO6&mMo8bg;13#W58_M*}r`e+Y#?mUU{_@qJ6#B;qi zZUUzsX5hk-_*P+8?9)({6q}s$(_RrvQSg0)W8aFKUP(4TY|4-aXVRS89jrNb3G(^! z)9w;Im?+I7wA4auX8WlZMdgXh>bb3a@p+N&f|(GoB8KMd%X(fxN))|9Y*u|WbJw?m z#ZMERm#W*ny0u5FUY>Y$`k;^_vWNNogn%juA4BCQtwECVHhN_pwpEO1H`hJ(i8tcP ziehy5YD`qL1g`Q`VyNn5>tyMZ5)n)HRnqOBIu*@iawaKn$(Eu&_@&LHU#5gwX$ zr~|ziRi$Q3nvH$wx#CrnrgK9YQ6I85mgm^Ld+DwVEc8@E0cMKB6Xz6+Rb8Q_^?GLC zxNQvaq^iM%{)n+B@@qMdsR~taqDW*hKalJ0M(H1#Hcoz5iGM*DbQ_Po{N~T`{%pmL zUCmUh4cKZLe%`&RKd~t64e2Xe`#72{=CCbpd8L zhoH}iEp0MQ;`x%hTycK!`(2}NWUVlE&24W)Rk&zAaijbmhGgX$(#uLg&t*m{_QTzu ztPicw?4)))vF#}658)PqS2fcixL0TIW>GlS^mP{UaF~2baNElT-v_U{XLp(UA_cj* z$KOfkNPSmP!r!PCt0c_^yN%TBbH;q#FY9@#<;j#gdNf7z_Os|coSNU1_}oQypHUH{ z*w_xM@qgxb@z#Ao)Ki$5ohuYh>~yHOX!h`=8N+b7R8xlnpYH)kD88j<0uqWJHSHST zl!;H;71s)6;xYTzS1%hg^QPT}B{Wovcl)&8=xfS-L{%xiwcF!_-UIW@*QMfX36&vH zJFeEQchmAPUtK?@vt*IPmu9MRLS^u5$LW**-QoBl(MpKcfbwmkh{ zYoQmUxVrmpmNl_J!_&v83SnS5d!F?IJG}}2w8ThQXr%;MtkGKbJqj(YdxvMqUED+` zO*qEE|4#7uGwxdJiJX1g^lRaqh2jWp@k$o8aNO}CwZ0PhM-qO@4)b#H9N@_6K$76N zjjd)3-hX)R>fpid0{4jys)lezLSMh`!Iu@zt$#l1Jj0jEFe(_ASjBY3CYW{rPLI=j zkE&8YBRbrVR=1-sz0jV|f{PZRYe{B&>!UqE0_vkI;98vk=kTs!!G@UvfxD*_;vJTv zN7xC~ZfJB-?mI)UlUV|*&s$)}`;tjz#!+7UK3ARu{U?*DGUt~R?v;$noQ<}KV73=3 z#tCCy1)hY%sHj5cLB;B__cD5?ns#*yoxC;mo_Kcfk{0Y4ojiS*@6i$Ue4avt(^? z$9^StZYjF5kdORMEQ1_d`k0btL$R=CD_h%H5WznAO@a-#0h79O{hZ`iQ*?dwEtbL2 zYiWAzz_P;EzO>xOQ_IP$Sl599ZpWC5=z_er9IbJCwZkakGgHnmHTL5E^a!4uD3tyl zb5}_li#*+&fl~!V(s^!`NKJM5XmHvBZlY~6mv{%#_sOKHQ8a?ye=$em>ovwEzTMMZ zt6F15M%!UGU}oKEL0Hnu7o_a&hNPR=wR%?;vHtC-?0~t6sN(4|o z#lCshpaJe@+=SB-qyy8ANPp4Urr;xz8TSS-XYE{5=3%k<-u*)%$$paNu6U=H@4rOc zx3!UxNW0Mx!ey|+^a<1C{3M8jLe6x>f4YJifB96n&}YoNO)Z`^CI|hbt%39?LRsR> zz~c;NJE90sql95O&UVN!s+C|hC*G7-)l??(U~{B1XRICt*$gyN>F4BB?|{1!W%S4p zJ>CQFF$K3~6t7 zu<{6aeU)H+&<-%~KCZE>Y1OBbqVe?#V}V&SJbpkeaCT-bQEejro!6M?a_y(a!iT%@nb!s5B05dL% z1L$wx#^d)7o^-s>Sl8#Z-)#3vGs5Sq|GEvq2rJl_{4$M?qH(xhGcx#WcYgG72M1HZ zBin}McG%CCq-RqqtjSgtIGwJMp30cRwEDpVCHKcIJ|Kb?pGR-sF+AGpv80jyC!Gn& zBU&bqXVr$ug>BGPK)f`*QiJm?IixtTXZ*s-$C&O@3KHK<)2-Q?R)>aX?g4QKr{=It zafoc~gV$Ohaft1NqaqQ!b8-Ur=|h8rDG3eM(&eCQ3bo&(zv0v$i}co%xZ6jnsH#cM z_I?p&cpQ(3$zo9SUD$v{eP6zk-YD)kUq8!OVWu3DppJ;=Wz}Tnx_nt39s&!1H>O7^ ze!r%C&h62pZ_1?(UHjy{9}O!cFV2?nT4_oKm*$@*d&KyN-RG?>x2SVQknflGPaS>S zpJ|rFX?LJ41abP)XWoqIcR&b|#*}JFR!PepZL`)vXx~m@JycH82CR8cmfmn2 zt8;uG*2b{REvof(!9}<5-gBpJ9Q<^l*f4lrV9#WaX-}c|5NCg31KOxbHcj)^2F%@N zpOw|or&kE@ft^mZh%=hFrVW@ec2P#f+Jg~DBOEQD3F{PmeQwbr-uSls+M1$NtO47C z*fI5Uf+A0ufn=xLh@MjIAU_4-pzC$=hRpD`Q%~3LmN2di8W*M`FQL~7lcl-M#VHew z99g&vAE-tnj>Xm2mj{)+10LHmn6^fFGA3To(25P5Y9^o^dFS|@Kklb(j}<-CGlm_D zWi_=i`h!)SjrixV&&tA=@9oM%kw6+rFMt3p+`<}WOm#|99a}|ZR%B1!I44hVRY0T# z=fkcHg;4#nan_{w?KdjV`S2&@KDOkHWK!g2EjGMyTXupuV;ruaLVqTafI9`0YDuYP zq^8`Ac0Y_lSwKuFAU6-3?`pk%a#@#eVa3#TSX&0p?&dqhaWP7dl%1Yc@u~H~lc;^s z263oIE87z$o($)%1*c(^`JGq@XeXjx(jz~CN82rx&Cj*HJC@Yu;8Kf~;}flau%i9$ z{lv9D`P71`wxf7f@Mcoh7?}~&tNZ{o6x!Vh4|UmBbYJ;t=O~<@3HFdDyDTUZ1UM^I z!go;odC@bH!flOQR}+SMXRA|{w#F3+$x?JcU~q9tv1TU@)g8p)hIH%8i9+u^uz$v} z#x(+Mijl6_+r@fDP&qJA>>dz!!H-Ch+d{7mPq!CQG^e`PWdj8yr0d-Gy#}|<=U+#^ zK2A_j7zZk%sT4PVVwIQ~S=okZu~pAWf9?2@r1k5iw|Q(1zrwCKeAeeLXIQF$N130A zbK(z+Ektxx>H-Nkr=6A0h5UuGx#@y$i(>6Qma31WvAy_Mi6S3!6PKMkOKa^$g%jVq zqf49V6Zi-R(p~y;ODw6)F!zc4D=XyWh8YY|GZ#o?YlRA3=k-bS>CZ)vStRvy0g>!I z+rrnH*Ud&d=#Ul^&n&7?=LESa7!!!eolM2uDI5^kzrb~(|N0+AEA~RRVF;f|v(b_J zGeDvb$2l4(Fc@$brBvn<=;Te#^Bo^l&`-)?D*ciWT~r^t?(S+%dqi3u!7)B@`G{wA z>M@#m<9_#U6Q^u$6*^qcv*{{K(D_Ne`G0kUAdikXZQBr}pu2KUTY@9n>_m}Q6 z^Kp<TFlVfoF{NR&iU)0^ zOLk1%%VvqH5Px6k+Ian`J^EUxY}R>-x6J_y3pn*rAOT-q8lr5PSBGEbS9^D8x1o{0Wa7c= zV(_Hn3QyBmZUHethbI#CkL^2h4)*~6h^tz1aS@>b2uiM6!(lIJ&(P8(azhSN8Eo$e@D_V zoX=-*+9GLa4^6ZW@4g~%sH1x=z;8MEC~m!f;R8$Zy50I`pJmSeA#6ph+Pq)Uq5 z=5-#AGVZL5e>ML)ITX7b_iAY6V;c6mUf6JTjBxTu)2%6%eHLvVSNbBDJD-Re*nMK9 zix^U1>IfL4)2Opyp)#+&9o$Xc6>)edQfAt>tg8fs4Q8ORA+5~WJ;zp`i*zPa*TH$w6auFEq4PG%{`F3qX(Q!LEL8?b9K19Ubo z)+BDAEBl{{ttl8fC3%V!eE4iJzCKn{t2(tX{ea}wkQ8)`g3NdJo7d;h|M0}GaxY!X zQ@UvO-BVd5FwAOIb$J>vUV!lr*pVjis^?&Wdhs~{hex@$wnrT7ldjvVkrZS+e5x3Nnqy4Vh)S5(bq)_j>yJj zJDdCDCDBC5;^n>hV@Dl=XTqOE39f{Vs|)q67?9JGuZp!C#R-nig?x{vyg@VU9_@aS zltxrw^}pKq=3#2w&JgQTjygEPk6!S!qz}iBeXJA#ixw#Ub`(5)Mk0X2QXP`6byZb&Mwn5U zf!TvlKQqJlw`^l89<=YCT~`%r_TZFXb(N&^>*iHGYDy>ShT2DR!~Jfz$&Lpda1j%Q zA5mE;cw!?SPt`CkriZ>Xp?O3VN4>17?*9H{ z#h~bR=)xYhQjW&@A~m@)%rGe$FQi}X0k|I)8({v&tvvR~i0S+-Wkl%3U98*Q$4yv? z#D1fiqRE)LE=sUbaYgr+kA5zO$1`Nu{K>e&`D16gxuynKRI782R`XCwhbz{^#5Mha z?&^8RlpW6Ztr&E!eGyr!iZds*vrnz=D)M+r!4OL4&1!Dka)Yyo7hf{}mLaOVP!fvA z91y&)l1hSoUsF=!%!xzsR#cto(r0XO-~X<~*uSVXeEzL3U37$6`1(k5PJ8R33;x~o-_UktDro|F#VEfg{Zb07=q(m}#M2zFaDgn9sE_oS?p<>ItcXjvu z2%kW{7}kfX+eeE;wD}u zxA4cCXwoCDi$CA3@-_3S1XTeYU`FXKz@{6M-aX1v56HfBt~{hZ)M)##(jV8gk9)@1 zoci2d32my|M}qS0*3-d7TIgEIt2O#w*_Hliol>VcWT`uKcyT7W^CZl!*W8R!SXV8! z5VTJ{!^Xm8Zdtq!yC4#ul^|d#reB=v9wEH=E;|-XJ{5J+sI-^FO zyulr$_b;%RdM{V)V>>kTyR)Ri6N8HaAIDrP!!(;rPs1DHwgaxahP2d_u%5NN0aKhQ zzzqq$X)-+EE+_XLdGC8>B&>*7<+Y&SWa~c&%XFNCy8)hk&=PG~`%FjF+j^mwz zvwByl&JmDP;Ys3;%N#EBlgxh76MZaAwIkC0b{LM(c9rwb*Iygb z5+`V)6dPjUc5G5FPTuFfPGi|^S010+MR)E-h#u;_n_F9*?JHII>RnGIYPe-79KE-fH{2&>~}a5{BRC{ilW$<$g1ysOMnsVtd>J zi?EOca9J67gq(u36)=4G!+N5@mUTpTZ(vptgMiG_p9Qf7wqB5#Md_c9XB{veK3;YX z7zFYMFA&!)m zL4c11NFt;pkqS`bfIWRDfUETHw)Yi&LsZkn3*)WfZ0og&3{)h9gO|%?Z}3F{s7+8m z{D$Lc+n*VvfhgoJHYSa|d>o*J0CwCK+`ogO5EANMF1D8dW>hI$2gaGy_-PPSO zE?WQ)w`s8wgRqc8Nh1D}PFhY50XZZ}27yA!ZaR5+1%#}uEJ8{_5`jb_e>ea`$s>QH z1+cArTY3H`|F86*45*w<2kMiOltOJ*23060ExqZWu&fm57=RcAgEFJQ7(;NVB6)zo zW?BH>%=a_hU->{DD6AlZ{HtuJye%XkUq%)*2$Tgi@Gs;+9b4heI)8QuFvy939E1bp zL-lW^+wwQdf#M-tp?n|=;RyL#4oU+)Y4M{@&YlR9Z;Mc68LgI z`(_Jo07Idq5l97)4$u}T-IhbifjA_XRKLKGvZ&4SpuXF3(3otF88qI1b5hWvhC1-? z5x)*16yBT&Al>FA()&Tz9hgQMn!2Rryt@yv!zXkuNKIj;z zk^e0YniM}K2}HAgC3nA)SCI36rmqk^`giFo3L?h;lDe55b`@fdtpA2vH!C$y;w(}qD`M0R- z&%S`l-gN(h%Kl3HehvTMpt8`w{mpGnhAn?<0{k-{dj0%UI4Bc>gR+06vJlbxjmrK; zx*)a~^B4E~g9+5I1^lar)9=|J2KgVn?~jC=nE^@C@bCeQAjHk;x`5AKSwM{WS%AZ@ z)k5s_Kk{#Kj+>v)(v$)$;U+zWXe7h~BOvY-JV3d(jGiMl)1KD{OXrtJ@G&bpBL{DU zg#`FS7ed0=0SnmCO*`nvfBG6feVxBygY|N7WMTjnON0M^{SdM!6cUAiVxXV291?I; zn?Z#8KVS-gWrlvgz+_}W_xuI}4^p5T{su!r4gDR4g!ua3VbU@(a{sMf8I(L|`fquq zW#mv`8}mC1r6BwFI;3T#kiWpdSG`;=Ie7j2eA!tK4={8;I#oi)-O&R9eclWj3!M`P z3uRdpQVOgzDOnUK1PL5U7Bm(q3wlNt_zK`p8i_*6Bf)+IDGlO47{KMB|FR&XD&l`% l1T>qCT&_55jutd4Fy6La-am#=T259Hn881M_@ut(e*tPca!UXJ literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 7a04199..7837468 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,17 +50,6 @@ "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=" }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", @@ -96,18 +85,10 @@ "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "array-uniq": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", + "integrity": "sha1-X8w3OSB3VyPP1k1lxkvvU7+eum0=" }, "ast-transform": { "version": "0.0.0", @@ -161,21 +142,6 @@ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" - }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -204,14 +170,6 @@ "node-pre-gyp": "0.14.0" } }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -229,14 +187,6 @@ "type-is": "~1.6.17" } }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.x.x" - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -343,11 +293,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -358,23 +303,15 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "concat-map": { "version": "0.0.1", @@ -447,24 +384,6 @@ "vary": "^1" } }, - "cryptiles": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.4.tgz", - "integrity": "sha512-8I1sgZHfVwcSOY6mSGpVU3lw/GSIZvusg8dD2+OGehCJpOhQRLNcH0qb9upQnOH4XhgxxFJSg6E2kx95deb1Tw==", - "requires": { - "boom": "5.x.x" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.x.x" - } - } - } - }, "crypto-js": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", @@ -479,14 +398,6 @@ "type": "^1.0.1" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -526,11 +437,6 @@ "object-keys": "^1.0.12" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -585,15 +491,6 @@ "readable-stream": "^2.0.2" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -815,16 +712,6 @@ } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, "falafel": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", @@ -843,16 +730,6 @@ } } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -895,21 +772,6 @@ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -958,14 +820,6 @@ "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -979,20 +833,6 @@ "path-is-absolute": "^1.0.0" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1011,22 +851,6 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.x.x", - "cryptiles": "3.x.x", - "hoek": "4.x.x", - "sntp": "2.x.x" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -1039,16 +863,6 @@ "toidentifier": "1.0.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1128,52 +942,26 @@ "has-symbols": "^1.0.1" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "json2csv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-4.5.4.tgz", + "integrity": "sha512-YxBhY4Lmn8IvVZ36nqg5omxneLy9JlorkqW1j/EDCeqvmi+CQ4uM+wsvXlcIqvGDewIPXMC/O/oF8DX9EH5aoA==", "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "commander": "^2.15.1", + "jsonparse": "^1.3.1", + "lodash.get": "^4.4.2" } }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -1268,6 +1056,11 @@ } } }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, "magic-string": { "version": "0.22.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", @@ -1450,14 +1243,6 @@ "tar": "^4.4.2" } }, - "node-wget": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/node-wget/-/node-wget-0.4.3.tgz", - "integrity": "sha512-sltt/nc4NJeI4CuncyBFZZ7W4Wz3Q1oM8h27mYEbj5OihXMsuqJpplPl0WUZTSpXy8AyGczT08jIBsXHxdCtgg==", - "requires": { - "request": "~2.85.0" - } - }, "nodemailer-fetch": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", @@ -1519,11 +1304,6 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -1639,11 +1419,6 @@ "png-js": "^1.0.0" } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, "png-js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", @@ -1668,11 +1443,6 @@ "ipaddr.js": "1.9.0" } }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, "qr-image": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/qr-image/-/qr-image-3.2.0.tgz", @@ -1700,6 +1470,14 @@ } } }, + "randomstring": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.1.5.tgz", + "integrity": "sha1-bfBij3XL1ZMpMNn+OrTpVqGFGMM=", + "requires": { + "array-uniq": "1.0.2" + } + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -1762,42 +1540,6 @@ "es-abstract": "^1.17.0-next.1" } }, - "request": { - "version": "2.85.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz", - "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "hawk": "~6.0.2", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "stringstream": "~0.0.5", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } - } - }, "resolve": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", @@ -1922,36 +1664,12 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.x.x" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "optional": true }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "static-eval": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.3.tgz", @@ -2046,11 +1764,6 @@ "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==" - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -2102,27 +1815,6 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "requires": { - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -2194,26 +1886,11 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", diff --git a/package.json b/package.json index 9d2f27a..b9c1c5f 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,10 @@ "dotenv": "^8.2.0", "express": "^4.17.1", "express-fileupload": "^1.1.6", + "json2csv": "^4.5.4", "pdfkit": "^0.11.0", "qr-image": "^3.2.0", + "randomstring": "^1.1.5", "sendmail": "^1.6.1" } -} \ No newline at end of file +} diff --git a/routes/check_clave.js b/routes/check_clave.js new file mode 100644 index 0000000..9fe6e0b --- /dev/null +++ b/routes/check_clave.js @@ -0,0 +1,73 @@ +const connection = require('../conf/connection.js'); +const express = require('express') +var enviar_correo = require('./enviar_correo.js'); + + +let con = 0; +let time; + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + + +const iterar = () => { + con++; + var actual = new Date(); + var menor = new Date(); + //actual.setMinutes(datetime.getMinutes()); + console.log(actual); + + actual = actual.getFullYear() + '-' + + ('00' + (actual.getMonth() + 1)).slice(-2) + '-' + + ('00' + actual.getDate()).slice(-2) + ' ' + + ('00' + actual.getHours()).slice(-2) + ':' + + ('00' + actual.getMinutes()).slice(-2) + ':' + + ('00' + actual.getSeconds()).slice(-2); + console.log("despues ... "); + console.log(actual); + if (con == 10) { + console.log("acabo"); + clearInterval(time); + } + let cad = `select n.*, p.* from numero_referencia as n inner join persona as p where n.pagado=false and n.fecha_caducacion<='${actual}' and n.id_persona!=null and n.id_persona=p.id_persona;`; + let ans = query(cad); + ans.then(async p => { + for (let i = 0; i < p.lenght; i++) { + let actualizar = `update numero_referencia set id_persona=null where id_num_referencia=${p[i].id_num_referencia};`; + let msj = `Estima usuario su numero de refencia ${p[i].clave} ha caducado debido a que ha transcurrido 48 hrs sin subir su comprobante de pago. + Para poder acceder a todas las actividades registradas debera iniciar sesion en ASINEA para elegir una nueva forma de pago.`; + let correo = p[i].correo; + let encabezado = `Aviso de caducación de clave bancaria ASINEA`; + let r = enviar_correo(correo, encabezado, msj); + r.then(async() => { + let n_ans = await query(actualizar); + if (p[i].situacion_academica == 'Alumno') { + actualizar = `update alumno set metodo_pago_asignado=null where id_persona=${p[i].id_persona};`; + n_ans = await query(actualizar); + } + if (p[i].situacion_academica == 'Académico') { + actualizar = `update academico set metodo_pago_asignado=null where id_persona=${p[i].id_persona};`; + n_ans = await query(actualizar); + + } + actualizar = `insert into mensaje values(null, ${p[i].id_persona}, 'Estima usuario su numero de refencia ${p[i].clave} ha caducado debido a que ha transcurrido 48 hrs sin subir su comprobante de pago. + Para poder acceder a todas las actividades registradas debera elegir una nueva forma de pago.')`; + n_ans = await query(actualizar); + }) + } + }) + +} + +let check_clave = function(id_persona) { + time = setInterval(iterar, 30000); +} + +module.exports = check_clave; \ No newline at end of file diff --git a/routes/crear_ccv.js b/routes/crear_ccv.js new file mode 100644 index 0000000..76936c2 --- /dev/null +++ b/routes/crear_ccv.js @@ -0,0 +1,221 @@ +const connection = require('../conf/connection.js'); +const express = require('express'); + +const fs = require('fs'); +var app = express() +const { Parser } = require('json2csv'); + + + + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + + +app.get('/crear_ccv', async(req, res) => { + data = { alumno: [], academico: [] }; + try { + let cad = `select * from persona;`; + let r = query(cad); + r.then(async(p) => { + for (let i = 0; i < p.length; i++) { + if (p[i].situacion_academica == 'Alumno') { + let aux = {} + cad = `select e.*, asi.* from evento as e inner join asistencia as asi where asi.id_persona=${p[i].id_persona} and e.id_evento=asi.id_evento`; + + let n_ans = await query(cad); + console.log(p[i]); + console.log("nuevo ans ", n_ans); + + + + + aux.id_persona = p[i].id_persona; + aux.nombre = p[i].nombre; + aux.apellido_p = p[i].apellido_p; + aux.apellido_m = p[i].apellido_m; + aux.comunidad = p[i].comunidad; + aux.conversatorio_ponente = 'No'; + aux.conversatorio_asistente = 'No'; + aux.taller = 'No'; + aux.visita = 'No'; + aux.magistral = 'No'; + aux.comprobante_pago = false; + aux.carta_aceptacion = false; + if (fs.existsSync(`./files/carta_aceptacion-${p[i].id_persona}.docx`)) { + + aux.carta_aceptacion = true; + } + + + if (fs.existsSync(`./files/comprobante_pago-${p[i].id_persona}.docx`)) { + aux.comprobante_pago = true; + } + + + + aux.correo = p[i].correo; + let nueva_cadena = `select * from alumno where id_persona=${p[i].id_persona};` + let nueva_query = await query(nueva_cadena); + aux.tipo_pago = nueva_query[0].metodo_pago_asignado; + let ext = true; + if (aux.comunidad == 'UNAM') + ext = false; + + let tot = 0; + for (let j = 0; j < n_ans.length; j++) { + + console.log(aux.nombre, " ", aux.comunidad, " ", tot, " ", ext, " ", n_ans[j].tipo_de_participacion); + if (n_ans[j].tipo_evento == 'Conversatorio') { + if (n_ans[j].tipo_de_participacion == 'Video') { + if (ext == true) + tot += 700; + else + tot += 100; + aux.conversatorio_ponente = 'Video: ' + n_ans[j].nombre_evento; + + } else + if (n_ans[j].tipo_de_participacion == 'Ensayo') { + if (ext == true) + tot += 700; + else + tot += 100; + aux.conversatorio_ponente = 'Ensayo: ' + n_ans[j].nombre_evento; + } else { + aux.conversatorio_asistente = n_ans[j].nombre_evento; + if (ext == true) + tot += 200; + else + tot += 100; + } + + + } + if (n_ans[j].tipo_evento == 'Taller alumno') { + if (ext == true) + tot += 900; + else + tot += 200; + aux.taller = n_ans[j].nombre_evento; + + + } + if (n_ans[j].tipo_evento == 'Visitas guiadas') { + if (ext == true) + tot += 500; + else + tot += 500; + aux.visita = n_ans[j].nombre_evento; + + } + if (n_ans[j].tipo_evento == 'Dialogo magistral') { + aux.magistral = n_ans[j].nombre_evento; + } + aux.pago = tot; + + } + + data.alumno.push(aux); + console.log(" "); + console.log(" "); + } + if (p[i].situacion_academica == 'Académico') { + let aux = {} + cad = `select e.*, asi.* from evento as e inner join asistencia as asi where asi.id_persona=${p[i].id_persona} and e.id_evento=asi.id_evento`; + + let n_ans = await query(cad); + aux.id_persona = p[i].id_persona; + aux.nombre = p[i].nombre; + aux.apellido_p = p[i].apellido_p; + aux.apellido_m = p[i].apellido_m; + aux.comunidad = p[i].comunidad; + aux.conversatorio_ponente = 'No'; + aux.conversatorio_asistente = 'No'; + aux.taller = 'No'; + aux.visita = 'No'; + aux.magistral = 'No'; + aux.pago = n_ans[0].metodo_pago_asignado; + aux.correo = p[i].correo; + + let nueva_cadena = `select * from academico where id_persona=${p[i].id_persona};` + let nueva_query = await query(nueva_cadena); + aux.tipo_pago = nueva_query[0].metodo_pago_asignado; + + let tot = 0; + let ext = true; + if (aux.comunidad == 'UNAM') + ext = false; + + + for (let j = 0; j < n_ans.length; j++) { + if (n_ans[j].tipo_evento == 'Conversatorio') { + + if (n_ans[j].tipo_de_participacion == 'Ponente') { + if (ext == true) + tot += 1000; + else + tot += 500; + aux.conversatorio_ponente = n_ans[j].nombre_event; + + } else { + aux.conversatorio_asistente = n_ans[j].nombre_evento; + if (ext == true) + tot += 1300; + else + tot += 650; + } + + + } + if (n_ans[j].tipo_evento == 'Taller profesor') { + if (ext == true) + tot += 1500; + else + tot += 750; + aux.taller = n_ans[j].nombre_evento; + + + } + if (n_ans[j].tipo_evento == 'Visitas guiadas') { + if (ext == true) + tot += 500; + else + tot += 500; + aux.visita = n_ans[j].nombre_evento; + + } + if (n_ans[j].tipo_evento == 'Dialogo magistral') { + aux.magistral = n_ans[j].nombre_evento; + } + aux.pago = tot; + + } + + data.academico.push(aux); + } + } + + const parser = new Parser(data); + const csv = parser.parse(myData); + console.log(csv); + // console.log(p); + // res.status(200).json({ error: false, datos: data }); + + + + }) + + } catch (err) { + return res.status(400).json({ error: true, msj: "Error al traer los datos" }); + } + +}); + +module.exports = app; \ No newline at end of file diff --git a/routes/datos_personales.js b/routes/datos_personales.js index 6f8140b..0323cc7 100644 --- a/routes/datos_personales.js +++ b/routes/datos_personales.js @@ -1,7 +1,9 @@ const connection = require('../conf/connection.js'); const express = require('express'); const bcrypt = require('bcrypt'); +const clave = require('./elegir_clave.js'); +const email = require('./enviar_correo.js'); var app = express() @@ -25,7 +27,7 @@ function depurado(cadena) { app.post('/datos_personales', async(req, res) => { let body = req.body; console.log(body); - + let mandar = ''; try { let n_correo = depurado(body.correo); let cad = `select * from persona where correo='${n_correo}';`; @@ -94,10 +96,21 @@ app.post('/datos_personales', async(req, res) => { let n_year = depurado(body.año.toString()); let n_participacion = depurado(body.participacion); + + // if (body.tipo_pago == 'ficha') { + // let n_respuesta = clave(id_persona, n_correo); + // n_respuesta.then(p => { + // if (p[0].error == true) { + // return res.status(400).json({ err: true, msj: p[0].msj, type: err }); + // } else + // mandar = p[0].msj; + // }) + // } + console.log("tipo pde pago: ", body.tipo_pago); if (n_cuenta != null) - cad = `insert into alumno values( ${id_persona}, '${n_cuenta}', '${n_year}' ) ;`; + cad = `insert into alumno values( ${id_persona}, '${n_cuenta}', '${n_year}', '${body.tipo_pago}' ) ;`; else - cad = `insert into alumno values( ${id_persona}, null, '${n_year}' ) ;`; + cad = `insert into alumno values( ${id_persona}, null, '${n_year}', '${body.tipo_pago}' ) ;`; let n_ans = query(cad); @@ -112,7 +125,7 @@ app.post('/datos_personales', async(req, res) => { } if (body.taller_a != undefined) { let ta = body.taller_a; - cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, '${ta.participacion}' );`; + cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); @@ -120,7 +133,7 @@ app.post('/datos_personales', async(req, res) => { } if (body.taller_p != undefined) { let ta = body.taller_p; - cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, '${ta.participacion}');`; + cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente');`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); @@ -129,7 +142,7 @@ app.post('/datos_personales', async(req, res) => { } if (body.visitas != undefined) { let ta = body.visitas; - cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, '${ta.participacion}');`; + cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, 'Asistente');`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); @@ -137,17 +150,22 @@ app.post('/datos_personales', async(req, res) => { } if (body.magistral != undefined) { let ta = body.magistral; - cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, false, false , false , false, false, '${ta.participacion}' );`; + cad = `insert into asistencia values(null, ${id_persona}, ${ta.id_evento}, true, false , false , false, false, 'Asistente' );`; let n_q = await query(cad); cad = `update evento set cupo= cupo-1 where id_evento=${ta.id_evento};`; n_q = await query(cad); } + let msj = "Bienvenido a ASINEA 2020\n\nEn el transcurso de dos días hábiles sera enviado a tu correo las instrucciones de pago." + let encabezado = "Registro ASINEA 2020"; - - - return res.status(200).json({ err: false, msj: "Exito", id_persona: id_persona }); + await email(n_correo, encabezado, msj); + // send.then(() => { + return res.status(200).json({ error: false, msj: "Exito", id_persona: id_persona, clave: mandar }); + // }).catch(err => { + // return res.status(400).json({ error: false, msj: "no se puede enviar el correo" }); + // }) }).catch(async(err) => { @@ -155,13 +173,13 @@ app.post('/datos_personales', async(req, res) => { //se deberia borrar el registro anterio de persona; - return res.status(400).json({ err: true, msj: "Error al insirtar en la base en alumno", type: err }); + return res.status(400).json({ err: true, msj: "Error al insertar en la base en alumno", type: err }); }) } catch (err) { //se deberia borrar el registro anterio de persona; console.log(err); - return res.status(400).json({ err: true, msj: "Error al insirtar en la base en alumno", type: err }); + return res.status(400).json({ err: true, msj: "Error al insertar en la base en alumno", type: err }); } } else if (n_situacion == 'Académico') { @@ -169,7 +187,7 @@ app.post('/datos_personales', async(req, res) => { let n_grado = depurado(body.grado); let n_asignatura = depurado(body.asignatura); let n_participacion = depurado(body.participacion); - cad = `insert into academico values(${id_persona}, '${n_grado}', '${n_asignatura}' );`; + cad = `insert into academico values(${id_persona}, '${n_grado}', '${n_asignatura}', '${body.tipo_pago}' );`; let n_ans = query(cad); n_ans.then(async() => { @@ -216,8 +234,20 @@ app.post('/datos_personales', async(req, res) => { + let msj = "Bienvenido a ASINEA 2020\n\nEn el transcurso de dos días hábiles sera enviado a tu correo las instrucciones de pago." + let encabezado = "Registro ASINEA 2020"; + + let send = email(n_correo, encabezado, msj); + send.then(() => { + return res.status(200).json({ error: false, msj: "Exito", id_persona: id_persona, clave: mandar }); + }).catch(err => { + return res.status(400).json({ error: false, msj: "no se puede enviar el correo" }); + }) + + + + - return res.status(200).json({ err: false, msj: "Exito", id_persona: id_persona }); }).catch(async err => { //se deberia borrar el registro anterio de persona; //se deberia borrar el registro anterio de persona; @@ -233,7 +263,7 @@ app.post('/datos_personales', async(req, res) => { } } else { - res.status(200).json({ error: false, msj: "Exito", id_persona: id_persona }); + res.status(200).json({ error: false, msj: "Exito", id_persona: id_persona, clave: mandar }); return; } }).catch(async err => { diff --git a/routes/descargar_carta.js b/routes/descargar_carta.js index 7d20e4a..7d6a03a 100644 --- a/routes/descargar_carta.js +++ b/routes/descargar_carta.js @@ -3,7 +3,7 @@ const express = require('express') var app = express(); -app.get('/descargar_cartel', (req, res) => { +app.get('/descargar_carta', (req, res) => { res.download(__dirname + `/../files/carta_aceptacion-${req.query.id_persona}.docx`); }) diff --git a/routes/descargar_comprobante.js b/routes/descargar_comprobante.js index 2256bec..5f8da6c 100644 --- a/routes/descargar_comprobante.js +++ b/routes/descargar_comprobante.js @@ -3,7 +3,7 @@ const express = require('express') var app = express(); -app.get('/descargar_cartel', (req, res) => { +app.get('/descargar_comprobante', (req, res) => { res.download(__dirname + `/../files/comprobante_pago-${req.query.id_persona}.docx`); }) diff --git a/routes/elegir_clave.js b/routes/elegir_clave.js new file mode 100644 index 0000000..1e435c0 --- /dev/null +++ b/routes/elegir_clave.js @@ -0,0 +1,76 @@ +const connection = require('../conf/connection.js'); +const express = require('express') +var app = express(); +var enviar_correo = require('./enviar_correo.js'); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + +let elegir = function(id_persona, correo) { + let cad = 'select * from numero_referencia where id_persona=null;'; + let ans = query(cad); + ans.then(async p => { + if (p.lenght == 0) { + + let n_cad = 'select * from mensaje where id_pesona=0'; + let n_q = await query(n_cad); + if (n_q.lenght == 0) { + let actualizar = `insert into mensaje values(null, 0, 'Se han acabado las claves interbancarias')`; + let n_ans = await query(actualizar); + } + return { error: true, msj: "Ya no hay calves de referencia disponibles" }; + + } else { + let num = p[0]; + + var actual = new Date(); + var caduca = new Date(); + console.log(caduca); + caduca.setDate(caduca.getMinutes() + 2); + console.log(caduca); + + actual = actual.getFullYear() + '-' + + ('00' + (actual.getMonth() + 1)).slice(-2) + '-' + + ('00' + actual.getDate()).slice(-2) + ' ' + + ('00' + actual.getHours()).slice(-2) + ':' + + ('00' + actual.getMinutes()).slice(-2) + ':' + + ('00' + actual.getSeconds()).slice(-2); + + caduca = caduca.getFullYear() + '-' + + ('00' + (caduca.getMonth() + 1)).slice(-2) + '-' + + ('00' + caduca.getDate()).slice(-2) + ' ' + + ('00' + caduca.getHours()).slice(-2) + ':' + + ('00' + caduca.getMinutes()).slice(-2) + ':' + + ('00' + caduca.getSeconds()).slice(-2); + + + + + let n_cad = `update numero_referencia set id_persona=${id_persona}, fecha_registro='${actual}', fecha_caducidad='${caduca}' where id_num_referecia=${num.id_num_referencia};`; + let n_query = query(n_cad); + n_query.then(() => { + let msj = `Estima usuario su numero de refencia ${num.clave} tendra 48 hrs para completar su pago y subir el comprobante a la plataforma. + Despues de este transcurrir este tiempo y que no se haya completado el pago ni subirlo a la plataforma su clave caducara por lo que tendra que elegir de nuevo su forma de pago para que pueda asistir a todos los eventos que eligo. + Muchas gracias.`; + + let encabezado = `Asignacion de clave bancaria ASINEA`; + let n_ans = enviar_correo(correo, encabezado, msj); + n_ans.then(() => { + return { erro: false, msj: msj }; + }) + }).catch(err => { + console.log(err); + return { erro: true, msj: "error al actualiza la referencia bancaria", type: err }; + }) + } + }) +} + +module.exports = elegir; \ No newline at end of file diff --git a/routes/eliminar_mensaje.js b/routes/eliminar_mensaje.js new file mode 100644 index 0000000..c668185 --- /dev/null +++ b/routes/eliminar_mensaje.js @@ -0,0 +1,18 @@ +const connection = require('../conf/connection.js'); +const express = require('express') +var app = express(); + + +app.get('/mostrar_mensaje', (req, res) => { + let cad = `delete form mensaje where id_mensaje=${req.query.id_mensaje};`; + let n_ans = query(cad); + n_ans.then(p => { + return res.status(200).json({ error: false, msj: "exito" }); + }).catch(err => { + console.log(err); + return res.status(400).json({ error: true, msj: "error al traer los mensaje", type: err }); + + }) +}) + +module.exports = app; \ No newline at end of file diff --git a/routes/enviar_correo.js b/routes/enviar_correo.js new file mode 100644 index 0000000..cfa30db --- /dev/null +++ b/routes/enviar_correo.js @@ -0,0 +1,22 @@ +const connection = require('../conf/connection.js'); +const express = require('express'); +const sendmail = require('sendmail')(); + + + + +let enviar_correo = function(correo, encabezado, texto) { + console.log(correo); + console.log(encabezado); + console.log(object); + sendmail({ + from: 'conversatorios.asinea2020@fa.unam.mx', + to: `${correo}`, + subject: `${encabezado}`, + html: `${texto}`, + }, function(err, reply) { + console.log(err && err.stack); + console.dir(reply); + }); +} +module.exports = enviar_correo \ No newline at end of file diff --git a/routes/enviar_password.js b/routes/enviar_password.js index 39a4c77..2acd75b 100644 --- a/routes/enviar_password.js +++ b/routes/enviar_password.js @@ -25,7 +25,7 @@ function depurado(cadena) { return null; } -app.get('/enviar_email', async(req, res) => { +app.get('/enviar_password', async(req, res) => { let id_persona; try { @@ -35,6 +35,7 @@ app.get('/enviar_email', async(req, res) => { n = depurado(n); let cad = `select id_persona from persona where correo='${n}'`; + console.log(cad); let respuesta = await query(cad); console.log("depurado: ", n); console.log("respuesta: ", respuesta); diff --git a/routes/get_persona.js b/routes/get_persona.js new file mode 100644 index 0000000..2542d01 --- /dev/null +++ b/routes/get_persona.js @@ -0,0 +1,99 @@ +const connection = require('../conf/connection.js'); +const express = require('express'); +const bcrypt = require('bcrypt'); +const fs = require('fs'); + + + +var app = express() + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + +function depurado(cadena) { + if (cadena != null) { + cadena = cadena.replace(/'/g, "''"); + cadena = cadena.replace(/;/g, "m"); + return cadena; + + } else + return null; +} + + +app.get('/get_persona', async(req, res) => { + try { + //console.log(req.query); + let id_persona = req.query.id_persona; + + + let cad = `select * from persona where id_persona=${id_persona};`; + //console.log(cad); + let respuesta = query(cad); + // console.log(respuesta); + let ans = {} + respuesta.then(async r => { + // console.log(r, r.length); + ans.persona = r[0]; + + ans.persona.comprobante_pago = false; + ans.persona.carta_aceptacion = false; + if (fs.existsSync(`./files/carta_aceptacion-${id_persona}.docx`)) { + + ans.persona.carta_aceptacion = true; + } + + + if (fs.existsSync(`./files/comprobante_pago-${id_persona}.docx`)) { + ans.persona.comprobante_pago = true; + } + console.log("carta: ", ans.persona.carta_aceptacion); + console.log("comprobante: ", ans.persona.comprobante_pago); + + delete(ans.persona.password); + cad = `select asi.*, e.* from asistencia as asi inner join evento as e where asi.id_persona=${id_persona} and e.id_evento=asi.id_evento;`; + let n_ans = query(cad); + n_ans.then(async n => { + for (let i = 0; i < n.length; i++) { + //console.log(n); + await delete(n[i].cupo); + } + ans.evento = n; + return res.status(200).json({ error: false, data: ans }); + + }).catch(err => { + console.log(err); + res.status(400).json({ error: true, msj: "error al elegir todos los eventos", type: err }); + return; + }) + + + + + } + + ).catch(err => { + console.log(err); + res.status(400).json({ error: true, msj: "Error al seleccionar a la persona", type: err }); + return; + }) + + + + + } catch (err) { + console.log("afuera ", err); + res.status(400).json({ error: true, msj: err }); + return; + } + +}); + +module.exports = app; \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 7017659..1597457 100644 --- a/routes/index.js +++ b/routes/index.js @@ -3,11 +3,15 @@ var app = express() app.use(require('./datos_personales')); app.use(require('./login_persona')); - app.use(require('./crear_pdf')); - app.use(require('./get_pdf')); app.use(require('./traer_datos')); app.use(require('./traer_persona')); -//app.use(require('./crear_qr')); +app.use(require('./enviar_password')); +app.use(require('./get_persona')); +app.use(require('./mostrar_mensaje')); +app.use(require('./subir_archivo')); +app.use(require('./descargar_comprobante')); +app.use(require('./descargar_carta')); +//app.use(require('./crear_ccv')); module.exports = app; \ No newline at end of file diff --git a/routes/login_persona.js b/routes/login_persona.js index 3ad79a3..df3d606 100644 --- a/routes/login_persona.js +++ b/routes/login_persona.js @@ -49,7 +49,7 @@ app.post('/login_persona', async(req, res) => { let ban = bcrypt.compareSync(data.password, r[0].password); if (ban == true) { - return res.status(200).json({ error: false, msj: "Bienvenido", data: r[0] }); + return res.status(200).json({ error: false, msj: "Bienvenido", data: r[0].id_persona }); } else { res.status(400).json({ error: false, msj: "Usuario o contraseña invalidos" }); @@ -76,4 +76,4 @@ app.post('/login_persona', async(req, res) => { }); -module.exports = app \ No newline at end of file +module.exports = app; \ No newline at end of file diff --git a/routes/mostrar_mensaje.js b/routes/mostrar_mensaje.js new file mode 100644 index 0000000..d755f04 --- /dev/null +++ b/routes/mostrar_mensaje.js @@ -0,0 +1,18 @@ +const connection = require('../conf/connection.js'); +const express = require('express') +var app = express(); + + +app.get('/mostrar_mensaje', (req, res) => { + let cad = `select * from mensaje where id_persona=${req.query.id_persona};`; + let n_ans = query(cad); + n_ans.then(p => { + return res.status(200).json({ error: false, msj: "exito", data: p }); + }).catch(err => { + console.log(err); + return res.status(400).json({ error: true, msj: "error al traer los mensaje", type: err }); + + }) +}) + +module.exports = app; \ No newline at end of file diff --git a/routes/subir_archivo.js b/routes/subir_archivo.js index cbf915e..07d8f1f 100644 --- a/routes/subir_archivo.js +++ b/routes/subir_archivo.js @@ -30,7 +30,7 @@ app.post('/subir_archivo', async(req, res) => { let sampleFile = req.files.comprobante_pago; let nombreCortado = sampleFile.name.split('.'); let extencion = nombreCortado[nombreCortado.length - 1]; - let extensionValidas = ['pdf', 'jpg', 'jpeg', 'png']; + let extensionValidas = ['pdf', 'jpg', 'jpeg', 'png', 'docx', 'doc', 'odt', 'pdf']; if (extensionValidas.indexOf(extencion) < 0) { return res.status(400).json({ @@ -44,7 +44,7 @@ app.post('/subir_archivo', async(req, res) => { let sampleFile = req.files.carta_aceptacion; let nombreCortado = sampleFile.name.split('.'); let extencion = nombreCortado[nombreCortado.length - 1]; - let extensionValidas = ['docx', 'doc', 'odt']; + let extensionValidas = ['docx', 'doc', 'odt', 'pdf', 'docx', 'doc', 'odt', 'pdf']; if (extensionValidas.indexOf(extencion) < 0) { return res.status(400).json({ diff --git a/routes/traer_datos.js b/routes/traer_datos.js index ad422b1..ebbed7f 100644 --- a/routes/traer_datos.js +++ b/routes/traer_datos.js @@ -40,6 +40,7 @@ app.get('/traer_datos', async(req, res) => { res.status(200).json({ error: false, msj: "exito", universidad: uni, conversatorio: con, taller_alumno: t_a, taller_profesor: t_p, visita: v_g, dialogo: d_m }); return; } catch (err) { + console.log(err); return res.status(400).json({ error: true, msj: "Error al traer los datos" }); } diff --git a/routes/traer_persona.js b/routes/traer_persona.js index dc51f49..a26c316 100644 --- a/routes/traer_persona.js +++ b/routes/traer_persona.js @@ -1,7 +1,7 @@ const connection = require('../conf/connection.js'); const express = require('express'); - +const fs = require('fs'); var app = express() function query(consulta) { @@ -28,6 +28,11 @@ app.get('/traer_persona', async(req, res) => { let n_ans = await query(cad); console.log(p[i]); + console.log("nuevo ans ", n_ans); + + + + aux.id_persona = p[i].id_persona; aux.nombre = p[i].nombre; aux.apellido_p = p[i].apellido_p; @@ -38,8 +43,24 @@ app.get('/traer_persona', async(req, res) => { aux.taller = 'No'; aux.visita = 'No'; aux.magistral = 'No'; + aux.comprobante_pago = false; + aux.carta_aceptacion = false; + if (fs.existsSync(`./files/carta_aceptacion-${p[i].id_persona}.docx`)) { + + aux.carta_aceptacion = true; + } + if (fs.existsSync(`./files/comprobante_pago-${p[i].id_persona}.docx`)) { + aux.comprobante_pago = true; + } + + + + aux.correo = p[i].correo; + let nueva_cadena = `select * from alumno where id_persona=${p[i].id_persona};` + let nueva_query = await query(nueva_cadena); + aux.tipo_pago = nueva_query[0].metodo_pago_asignado; let ext = true; if (aux.comunidad == 'UNAM') ext = false; @@ -116,6 +137,12 @@ app.get('/traer_persona', async(req, res) => { aux.taller = 'No'; aux.visita = 'No'; aux.magistral = 'No'; + aux.pago = n_ans[0].metodo_pago_asignado; + aux.correo = p[i].correo; + + let nueva_cadena = `select * from academico where id_persona=${p[i].id_persona};` + let nueva_query = await query(nueva_cadena); + aux.tipo_pago = nueva_query[0].metodo_pago_asignado; let tot = 0; let ext = true; diff --git a/sql/base.sql b/sql/base.sql index ed88409..b9ae268 100644 --- a/sql/base.sql +++ b/sql/base.sql @@ -31,13 +31,16 @@ CREATE TABLE `persona` ( CREATE TABLE `alumno` ( `id_persona` integer PRIMARY KEY NOT NULL, `numero_cuenta` varchar(20), - `año_curso` varchar(20) + `año_curso` varchar(20), + `metodo_pago_asignado` varchar(200) ); CREATE TABLE `academico` ( `id_persona` integer PRIMARY KEY NOT NULL, `grado_academico` varchar(50), - `aignatura_imparte` varchar(50) + `aignatura_imparte` varchar(50), + `metodo_pago_asignado` varchar(200) + ); @@ -62,13 +65,30 @@ CREATE TABLE `asistencia` ( CREATE TABLE `factura` ( `id_factura` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, - `id_persona` int, + `id_persona` integer, `rfc` varchar(255), `domicilio` varchar(255), `telefono` varchar(255), `correo` varchar(255) ); + +CREATE TABLE `numero_referencia`( + `id_numero_refencia` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, + `clave` varchar(200), + `id_persona` integer, + `fecha_registro` datetime, + `fecha_caducacion` datetime, + `pagado` boolean +); + +CREATE TABLE `mensaje`( + `id_mensaje` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, + `id_persona` integer, + `mensaje` varchar(1000) + +); + ALTER TABLE `factura` ADD FOREIGN KEY (`id_persona`) REFERENCES `persona` (`id_persona`); ALTER TABLE `asistencia` ADD FOREIGN KEY (`id_persona`) REFERENCES `persona` (`id_persona`); @@ -79,6 +99,10 @@ ALTER TABLE `academico` ADD FOREIGN KEY (`id_persona`) REFERENCES `persona` (`id ALTER TABLE `asistencia` ADD FOREIGN KEY (`id_evento`) REFERENCES `evento` (`id_evento`); +ALTER TABLE `numero_referencia` ADD FOREIGN KEY (`id_persona`) REFERENCES `persona` (`id_persona`); + + +ALTER TABLE `mensaje` ADD FOREIGN KEY (`id_persona`) REFERENCES `persona` (`id_persona`);