From 36439b756334eb17eea69d18493ab544ee20c8d4 Mon Sep 17 00:00:00 2001 From: endor-matt Date: Mon, 12 Feb 2024 12:08:13 -0500 Subject: [PATCH] first commit --- .github/workflows/endorlabs.yml | 49 + lib/javax.annotation.jar | Bin 0 -> 7713 bytes lib/javax.ejb.jar | Bin 0 -> 47581 bytes lib/javax.jms.jar | Bin 0 -> 25957 bytes lib/javax.persistence.jar | Bin 0 -> 129793 bytes lib/javax.resource.jar | Bin 0 -> 44511 bytes lib/javax.servlet.jar | Bin 0 -> 69933 bytes lib/javax.servlet.jsp.jar | Bin 0 -> 78836 bytes lib/javax.servlet.jsp.jstl.jar | Bin 0 -> 28120 bytes lib/javax.transaction.jar | Bin 0 -> 9714 bytes pom.xml | 189 ++ src/main/java/com/endor/AppServlet.java | 170 ++ .../com/endor/AsyncEchoUpgradeServlet.java | 79 + src/main/java/com/endor/AsyncServlet.java | 652 ++++++ src/main/java/com/endor/BooksServlet.java | 1978 +++++++++++++++++ src/main/java/com/endor/BotTest.java | 139 ++ src/main/java/com/endor/CSPFilter.java | 60 + src/main/java/com/endor/CookieTest.java | 100 + src/main/java/com/endor/Deserialize1.java | 143 ++ src/main/java/com/endor/ElExpression.java | 42 + .../java/com/endor/EncryptionObjects.java | 26 + .../java/com/endor/EncryptionServlet.java | 765 +++++++ src/main/java/com/endor/ExecuteServlet.java | 40 + src/main/java/com/endor/ExtraServlet.java | 246 ++ .../java/com/endor/FileUploadServlet.java | 92 + .../com/endor/GetInputStreamInnerTest.java | 201 ++ .../java/com/endor/GetInputStreamTest.java | 109 + src/main/java/com/endor/HtmlUtil.java | 146 ++ src/main/java/com/endor/HttpTrace.java | 90 + .../com/endor/HttpURLConnectionExample.java | 222 ++ src/main/java/com/endor/Login.java | 99 + src/main/java/com/endor/LoginSuccess.java | 75 + src/main/java/com/endor/Logout.java | 22 + .../java/com/endor/NewSQLExitServlet.java | 202 ++ src/main/java/com/endor/OSCommandServlet.java | 38 + src/main/java/com/endor/RecordServlet.java | 260 +++ src/main/java/com/endor/SecurePage.java | 45 + src/main/java/com/endor/TypeSniff.java | 71 + src/main/java/com/endor/XmlXXE.java | 170 ++ src/main/java/com/endor/stringsub.java | 10 + .../com/endor/wrapper/RequestWrapper1.java | 30 + .../java/com/endor/wrapper/WrapperFilter.java | 40 + .../com/endor/wrapper/WrapperServlet.java | 20 + src/main/webapp/WEB-INF/web.xml | 144 ++ src/main/webapp/elexpression.jsp | 17 + src/main/webapp/endor.jpg | Bin 0 -> 210789 bytes src/main/webapp/fileupload.jsp | 25 + src/main/webapp/index.jsp | 5 + src/main/webapp/jsfile.js | 1 + src/main/webapp/persons.jsp | 80 + src/main/webapp/wrapper.jsp | 22 + src/main/webapp/xss.jsp | 20 + 52 files changed, 6934 insertions(+) create mode 100644 .github/workflows/endorlabs.yml create mode 100644 lib/javax.annotation.jar create mode 100644 lib/javax.ejb.jar create mode 100644 lib/javax.jms.jar create mode 100644 lib/javax.persistence.jar create mode 100644 lib/javax.resource.jar create mode 100644 lib/javax.servlet.jar create mode 100644 lib/javax.servlet.jsp.jar create mode 100644 lib/javax.servlet.jsp.jstl.jar create mode 100644 lib/javax.transaction.jar create mode 100644 pom.xml create mode 100644 src/main/java/com/endor/AppServlet.java create mode 100644 src/main/java/com/endor/AsyncEchoUpgradeServlet.java create mode 100644 src/main/java/com/endor/AsyncServlet.java create mode 100644 src/main/java/com/endor/BooksServlet.java create mode 100644 src/main/java/com/endor/BotTest.java create mode 100644 src/main/java/com/endor/CSPFilter.java create mode 100644 src/main/java/com/endor/CookieTest.java create mode 100644 src/main/java/com/endor/Deserialize1.java create mode 100644 src/main/java/com/endor/ElExpression.java create mode 100644 src/main/java/com/endor/EncryptionObjects.java create mode 100644 src/main/java/com/endor/EncryptionServlet.java create mode 100644 src/main/java/com/endor/ExecuteServlet.java create mode 100644 src/main/java/com/endor/ExtraServlet.java create mode 100644 src/main/java/com/endor/FileUploadServlet.java create mode 100644 src/main/java/com/endor/GetInputStreamInnerTest.java create mode 100644 src/main/java/com/endor/GetInputStreamTest.java create mode 100644 src/main/java/com/endor/HtmlUtil.java create mode 100644 src/main/java/com/endor/HttpTrace.java create mode 100644 src/main/java/com/endor/HttpURLConnectionExample.java create mode 100644 src/main/java/com/endor/Login.java create mode 100644 src/main/java/com/endor/LoginSuccess.java create mode 100644 src/main/java/com/endor/Logout.java create mode 100644 src/main/java/com/endor/NewSQLExitServlet.java create mode 100644 src/main/java/com/endor/OSCommandServlet.java create mode 100644 src/main/java/com/endor/RecordServlet.java create mode 100644 src/main/java/com/endor/SecurePage.java create mode 100644 src/main/java/com/endor/TypeSniff.java create mode 100644 src/main/java/com/endor/XmlXXE.java create mode 100644 src/main/java/com/endor/stringsub.java create mode 100644 src/main/java/com/endor/wrapper/RequestWrapper1.java create mode 100644 src/main/java/com/endor/wrapper/WrapperFilter.java create mode 100644 src/main/java/com/endor/wrapper/WrapperServlet.java create mode 100644 src/main/webapp/WEB-INF/web.xml create mode 100644 src/main/webapp/elexpression.jsp create mode 100644 src/main/webapp/endor.jpg create mode 100644 src/main/webapp/fileupload.jsp create mode 100644 src/main/webapp/index.jsp create mode 100644 src/main/webapp/jsfile.js create mode 100644 src/main/webapp/persons.jsp create mode 100644 src/main/webapp/wrapper.jsp create mode 100644 src/main/webapp/xss.jsp diff --git a/.github/workflows/endorlabs.yml b/.github/workflows/endorlabs.yml new file mode 100644 index 0000000..022cec9 --- /dev/null +++ b/.github/workflows/endorlabs.yml @@ -0,0 +1,49 @@ +name: Endor Labs Scan +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + workflow_dispatch: + inputs: + tenant_name: + description: "Enter your Endor Labs tenant name:" + required: true + +jobs: + scan: + permissions: + contents: read + id-token: write + + runs-on: ubuntu-latest + + steps: + + - name: setup namespace + run: | + NAMESPACE=$(jq -r '.inputs.tenant_name' $GITHUB_EVENT_PATH) + echo "::add-mask::$NAMESPACE" + echo NAMESPACE=$NAMESPACE >> $GITHUB_ENV + + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: 'microsoft' + java-version: '17' + cache: 'maven' + + - name: Compile Package + run: mvn clean install + + - name: Run endorctl + uses: endorlabs/github-action@v1.1.2 + with: + namespace: ${{ github.event.inputs.tenant_name }} + enable_github_action_token: true + scan_summary_output_type: "table" + additional_args: "--as-default-branch" + pr: false \ No newline at end of file diff --git a/lib/javax.annotation.jar b/lib/javax.annotation.jar new file mode 100644 index 0000000000000000000000000000000000000000..52dca7f561c5d579ca764cb25b96d3f539cf242a GIT binary patch literal 7713 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 ayGQqbfd2}7!o6gSEfc3Ot66$1-hTi%8LHX< literal 0 HcmV?d00001 diff --git a/lib/javax.ejb.jar b/lib/javax.ejb.jar new file mode 100644 index 0000000000000000000000000000000000000000..4ebf5ecd4c9ab83540ef206f6c5a1906db008098 GIT binary patch literal 47581 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

x$jzCx>QKI9Dc;_z4e z0Yjof!jtYPhbWx5hKGB$%LhfCBm1`-iGRzk7{pT4|G=z*;ASA7z{7XMS%+kLwXk%W>j7B@a_J!C@WeN1+*~V>{Bl#-HQiNtX^sL^z#~Mk&VLmX>zsDS*--Z5!6_ zmyRl7s(i+;QDxn)?`n6UYg4?s_nq&1alMX7Ku2!YsIXC8I_2ltv;oQhymtI+SybF} z&5%yV8Fnis+qSDJR969o0ePgX?>;nd8ilT!8EO$W(t2lKb^a@_Kv!Z*Qr`py`u0g3 zZbg(P;3`80t34!4MxMUfAtf5-l2pfc`~4o`Nn>PHWMZ{b^}Tq!IwLnS=D7Q@nP_AJ z8sVco2#(CK5g9n>xsoML==2oKhcCtLFy{?{xX#>Z&lk>Rso+VQP2bI;*p#A39_3ua z3zya53Tr%pUuzV&vlWDW1X|$xfqs}%)d9;}8Om^7+L!id9t6GxKHtOdzTXeqV9Jx! z3tmZxybfD?S*MPdg8Yyzxeny(r4u#+Pi{N;939nD8jYt&PnrFIsp6>KC+OLmrLq&S^b}zlDjCytmd7*0xc^f^MC9@ z=&NP_ano*sGCn+17@8=dpTx`IX{m-AX2O1xKfI3v*rmYo7&K&ngiW$r9mr_rx)sM_ z#Oz=4Vv`zRZpXu&Mmb(!)N6q=g+V9i!6~U(QvqD8>wnK=8H%^MaQx|0(^ETQWB?(j z)>@rFuE&URSsM)!vFUiB*5>)ainsa+K~=f=`~V@-tbQ7awxjYeWi7nicAh733(G?(In)J1z$v! zL)gO*mdA8wN2rh$t0s*R_F)t71Fc-W$DmA4%YZ5OBX?nfnfoN)+l~Aka750IO#Bo~ zZe&XByG|qJYr-bX^f>*UgsC_FPBhVcu zE?M4|@Ruv)k2hBFW{aTLN~uCB#iXo{tcREvLbp5b!I5W6lPQIXmT&ztMU$l&mh67# zAVy>wOf`Z@GYN~<9~>2ZQ)I%iXWE?%z?cj|Q{04$##f^$+D6A`k9Np#ZT=(obE*6&ga+De#a*1}r|Tm%hJ3*HK%S{$iBTjr6E zcRAkU5^&yPn!YG)RYb1Mp?J?nfnrr6wM5#lYRlUNv%b0z1qno-+KO5py~U(0-o|J7 zZG>rh9+nU6g?vloX{oe!XiIW&JI|RXQKd3)S|&LDu#KENkxJ{^hzwD-$szetxtXs;FE fq85Hs^+j9}Vd)!)Er7{XjDPYXacZ#z&d&6IINz)K literal 0 HcmV?d00001 diff --git a/lib/javax.resource.jar b/lib/javax.resource.jar new file mode 100644 index 0000000000000000000000000000000000000000..696a2345878907025784d2e6e49c6e6b41d1cfac GIT binary patch literal 44511 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 Rg4PB8C6U3vu!Mnr`hR(p1f~E0 literal 0 HcmV?d00001 diff --git a/lib/javax.servlet.jar b/lib/javax.servlet.jar new file mode 100644 index 0000000000000000000000000000000000000000..0519e4a4e16c207f18527175c6a4425b2b1bacbd GIT binary patch literal 69933 zcmb5W1yE*7mNg0#?(XjH?(XjH?(R~!yL;gj?q0aN74A^DyYo}G@67Azp00@paUzH> zGU1%HSLR-OCB}7G(lxbx|Z)C>Dq@`$RXJDjgC@06K>J{ndnYMm8(n`uu zOUTT)lmSDe9bxoiWl)#{r|wfcnv$aZLQ_LcE!;SAM)<0@L&ZM- z%>jX?f&Q&<1;6ri7vFd)!M}Q4`VU@ZLEQll=oRmH6O`K?rtPPx;g5xG6`{dz+r_5K(->e3r!^i_f z*gzMnB)^kCDj6admanoWC9P&Acp;sZw_XBzlRND6nj+XUIZckUePPnu#LESst(Cg$ zI|x0z_vOFLU(74KS4N?n9+eIlx=Jzi}0o5jAKn;Q+J zSF)6SKPcf6X7niX*Omla zipBR*EpHjyNcywucXG2M>Z0wy4Sx>a&`aEUZ#0gKJ+Fv( zh+bwszpaLTM+A@#EjlOd?pMzz$lnYYu3CF6`HcSamp?Ip>HlJYjES?ko$5Wy!Mf3J0?O|z-{>PN zqSP#ls_o=>=goN5@<T5$Ds4c_qGtY2tHJ$v`gn|d{Q=TPMWaN{TZ@Wm$k zXX3WX1Iy(ij;c%KaecIbnPdSCvMoepc>szfFMn{_@>?m-AnXk=ljXNS)$j z(jHfwL{zzUeSA8!trG9kl(>(QRgwsAV%opmQ_3176CFgOXT@uy4&T$UZejg362tm* zZ;u2i<=qk-&`U_^{OEi2^_Zwkq(^65UbDNe))_8h7G|w0t_mj>mV28cP^Drn<&b8s z3SI+w&A>f6*JRWL6z@XWKJ)%a_7~c3W(Xj%Vzz!Vg9G?a%%J@fGh|$>oh|GQ9GyRj zVQOLa_qH29A=}H396TjnOa7ksSUuB%UlZTrYJ!XuR!Z@+zXkI$z$gTDl>!iNA{cH< z=zBAyAauCS_?pwX8xvE>1zxosKuir4fWL63{JSm{P?M9>QA#-p;MkA$eVRGt49nx- zwV|)QVtRbw)I1|q)Rsq$5o&j2mgxRJ;z@X>*k;K$sd8RZfS%G0QG_7dGRE0eq8k)& zFw&GZt;$mPC10X@l-p>$4g#^jscRe$Ir67p(MPK05l9{x#C>6Tv6`ZjqA~mfBf}Rd zEi4nw)_g-_K<>$eU@=Tv42d7$9M7zN9x}CXVK|#i6ZXAXchZZ_OMmM?T}@YzH=9q& z0xR${X2r0Gq0`)XRFYs$J>i^^O}5CxTdBOIXqK4D>r}29KccTAyLl z|I`ovpLF=wRLTFRuqpi`K`WUUxj0%ldk~A**gJbD+F6?@nb;WEI$Ie1y~`_K$RP>9 z`$%b3(TMra=HtKj2G}T2Vs!+c zSQ~_)rskOJV+ax#2AQ@2pW- zt8qm0F9u--gL);Dh_o+VQ2;-_rs(AGi9TP_t+GgypErmM081!@)l3zNGTl{p3)CUt zL0}Vk1&M6x3v7x9cP5}58qAmjdx>L+sdK&-(e5WM^|R+7H6m)jy(!^B%eF_nl+hw* z3j;kw)bj!Ur9^ZY2_-%$d;Q1VM&SPsZIvAjY@O`w9G%5n3_gE!HZl1x-dfoq3Lx_+ zeS>nAqKc(#?4+#ZMi!ovQx;UR5E8_9jW0YZp@?zGG+Cf-7yd{t3TMHT;d?2Fa%<{u zQjLa?ax^{9<}#aXK(Mi=B6O9>z-HkU+A1uJU1eTH8C_+?Tmjqjf&zM&TQGKeit6|#0M{KCTV zVD<$D0fq_F8KxfkYQI&s&qdmUA2&y4DbV$%?&&W4v8+FBe4p07=>bk;s_0hmzU(!` zbGy;nb{6ev2X3tuf@6`^(N@!&zV!7h?&e&@*}SESr~?0MSPc0rXK`(*5pFY~_;ynO z7v#Ap!q5+LM0HhrKFL;-Ht5WIsx~A~A<6AWFsL>xCmE%Pl*LUn+0Y9uK^?I6p-Nge zX_VN+k+zC;(Th9SC1HNw!nP5%8@if=?rzjE7po0MrzVNxM*RfOktrGtj%Py% z^L$l9&{1DqEQt(yK0d&w;ij*Hi;#?C-)nXHvSwq3d}ZRWgTbeg8qAAxcF+o4ca{8+ z_F`*yz^D(w(x=rTfQTy4+j|fg2N_gjeOn`+2;0&Ia3xmrN>6hYF>_tNz^Uk!at0IU z%+LOVxi|vxNK&87{rDqu|ClHLWyAdkO_P6%CjsP;&G-e7*L;-uvM}$Uq_m|&lC^pM zpQPUkb)==MLw@n6N}FY@FAu)6(7gh_lJ~Y-R`iHm89rorOnufV=NwM1?{`>V)zlTi zIl=IH?{%f}kbO5wG!DJ^){r*c#8xMZd1q?xzW1(u$2|&}xi7rBx>P2tu3?UEXq>dd z<63pU8B-}e=uZ`;92pM#$Uc6LYeO`VI30q_TohT<49vrG%ZjgpZn$$OtZ_Npqn}~L zY3uJAW7eU|m&dh8l=!On)$wa4U;w}z*am2jukD<*C@7}&e5t~9P_Z=x{Kgy{%2)JV_r2F}a)%;kx+*^i z@{EV~rr*?4K7eDe{7KS2cb_3pMbfQBqf(*6lmDoq$^W!_ zshJpxT39=qIR34Y5;kQ&qd(YX5LrZn3NNpahwR^=yX1bBEMYYZT-y{0>dCT>dz`S$ zm!55NTJEv^md+$yTCh5G(4i0p21HUwlKX6EFjmk%Ixn|>)?H7cJuwYY%S>csq!n8H zoBJ7+kY~nYo*k#+*w@wxERGZyl0Jpq-K`LABKdSFMra};o7lnjcKNMg#7#_yqgq0z z+-JeShvrIPNXcV_MxJ&9pNJJG`#C{G@uK%6$?vK-7Vc8R$v_iA&7`nX4d ze%2SMS&Hgn$`9YTkGW}1HXv*C%LeE5{gO|GX2NE0e8ww8qS(x&Z|TBzJ}ZY=gquVy znb)of^Uv0N+d$wcc(d=nwyoUID^@dm=8N&ZW2-lp^)lt@({hr^bf!@n*tl>}@-^Yl zee1^~&pVYh5oXWu%$4S+JOf0ZgcpK_#5PQfS}tmx}Qks#AN%@oh-i%Y;Qp?2fJL z`?C<9ik2|$aHeS4+DbYqo$5Jl!(EDnBf+nVbpPaFx?%WY z*4fF&3#h%r4*)c|b+vJ^?gAqDE|puvT1*`FbG&RAe7?kymWO7d-wR!aq6TQfL<$p0 zBRziOE*FJ;EX<8A&%J7-N^y$$7{la+F@->nnUUE4TKhN&I|-+P!yZ`H)=ADeA0K8! z9a9e?YoAF+24jcLw13)xml=NynoCsk1OH9DT)$^af%kCCT`=V!`u+)$p`n%$$+mq= zpYxVfX#xTlR&fJoHc@h3d@ey8xU7#n`b(QaMxuk-P1|r&Gcc?Cudbhup#ursoUQ;1 zqtz+uAg=Wmy~SU7nm|qqdRBxHXx*r);e%+Zn(8Cu&5V&A|B@ZhH_^dNpRvIHqgtl? zKNhaEg_E<1?SC)b_)lNycY)LJ{c2P7q&HYuBw`(1yB$$epj30VG^|{rBZXovoH$Wm z@2?6coDD1SGY~unlS4S{2QLRVP~9N+pKJCR&aG$SOuQQ+hm3p0DP2lVis|OOk3&TD zn_5*NLv6C^z+n4xB2Wp))pk+RUWRqDXTE)fqErZ?zbdVZC@nS`4H^~D(C*4yANwe( zG4&5!$gFuLA{h`w>do-H0?%Qx_g49++YbTKTGg3^o<2|dxREI8F1IOA6hliS6Vs0K zB!B258PkkJu1luQAK%21%jA_L3V}}M*rf>DR5RG`BxMf=#KOp}* zW&YP@Ib}P?4hXn zeL@;}-y%a@%*cN~t!}t%{(C=i{HP+0SqUSle+c8~U172VX^ksENnLqSy7QDM8Zw9f z0=9$^B3WdtGvDhvBsTKkl&z?1*~ofh=L~sA5s(YbSx`W!yO9W)qqnIbS>>2g)#_T3 z;*{a{yUN+|%5#Z>VazHk4@wu=4Hi9IH$YxY-V9z`h*O_3>Pzon+(cQ5}p%L8Gh zJZMvj+6FC}yOG*HE>+l%f?LGOe2hr0pF7{o{dW&C&n9t*oK@2yb}L=Y)CV?GUiEZf zM=|O;cylKh-r`#K_w62>Xz7cqDV2z1oC3X8!4ua+Zxt+Xdv>3OH&7tpKynNs;ntMS zJqrebT-jHC4UgfYTW`5Qga8EIiPS_CAp*Piev4V~*#+!C%rZ*sSuspW7TKZ;2z>x3 zSvxpGgsmB}ibU!#Y-0$*w>H9{iwL_!WZ?#T|I1@`uYeqE`y_+zANNE2ekvmG!NMPB=j`h>0%_u>*4O;qIwhH5|bzt=!~7rE&_`bmtqPYeD1O`B>-aVzkg|LzL(Vl7B0^`8&ayI`=Fee2r-Z5Szb;9*mp(wyqh}x9*hNr;++64 zlc9rzY$>d>86H0Ie8r|Qzek~B{+q2{R7QJ`)b3+^33xU0P=7Atgdh?ZYOw@K#0ur) zLR2+L{a>E5QMJD3H95{cF;FCmP{}9>po)PnnB3F)0)e5J)cg9pV6l!hL0XF)niNdO z0%VsCV=HUcu;e?AQ@3Y^$6Xm>!Ao`2K3a6!;`$8PEP|6q@k7oo*QgQAZ^|9=*cNC~ zk`w-wWG}IuR(&K_J^T}cG9|(Z71g{gop)Mq$842VYSLRThbf{D*SW095>7`(3aXw! zbK(wtt=!*qOV6c0)WLy}idTOrhxkjT`J%I158W-X`^=cM(5LRTQ0{-E>|sNYCAk{9WbBn7Cw-*t zZNEfCIXR3IC^37SrKm95=+ie1SI^{rHQX`qi8}3ZLl#5#&$%74H8|PZ3v> z|1!lJm9&1Bo$sJ2o4QJV8WabVdOC`QP?m(p?H1&X_fShE8clDTk z1dt|>@;-ifRTyNdA44>-$o1xM+RwVtF?Bt7$j$8n;O++$qED@62*SfEHo#*L&fuBb zM`IPrpE%py7OVGQtR()fh;#R%6WA>Kq~9N^to>5Le)=#@U?%_FbD`D~?>L&)Ms4b3 z*RxfNZS|L0w9^LhS~0m!Qs^3{TdPirq}WIwSYsn>K}002JAmd9LJUiTGf22C7J11yM+m7=Kh3Cwod*}rW%qz^#zP#$q+Q}B zA!blrWf2D`4T<1|V@h=Iz1kMxWAnRetAw| z?3t975K1$QjOh+P!O`)_q;{(T5u(K7l+LN!r?A@CW`3|IM6yLbrg9#O$*k+pz%Tsh zK4+6-r;hwWk?)?-BHt|8^@}2uJl8!yV1@Cf_`>~v^g}CI}?=N99 z9+x9*`N>-C&$GGzoMj3Ach>$-J!2EgC-p@Deqggdjpa%&KR9^FYS++)#4!L~9HEvk zR)AI8wRd9;p(`U8uN#hJQYSB{5Z!g-0_MiG(~q|cV9h{~U2jk3Jn->AqlwnNNPy5_ zZH6)S!uP&uOArDLr;H_u*NXj^S$Q-bX}iv4p>tv9-rWlqZyT``EM1$m_xXB~z_;S#-sQ%PQV4Rhe{Ou_Pc@ zaO6wm0C;jl zOfkHq?qXiAI@9}Y5_SoBvRgXP8=kVLh40_pWYrhUjCyxcXN=z$^Xb(5&aw0$uAV>o zg|_Un-r@X1Py(hkH4~52K~q9$d@vL{Yh$p2KxGwFWE23nO7yEyO&_!YOQ-;H5|6Ezn`Z13c7G?)& z2#<%7*Q7#e2&HiAB2(-z=E^3`+W5wT_X@x#nKf@Nz(7ZKkky)Hyuqit39yCE3NkKw zNIPqbCeh8=#a2V5bauSJ&U|i*T=4Y=9Zop?t=Qm*fsEBlfB{Xb0<453Ae8ppeC4n@ zEn-cg0-=aN?*L)_oH?jxodjQd5&V7vsPK$0+OXO-y#4~pA5i?Bvx@u@zvb0Kc{z|SBarL?s0x5?=9D#7n`LyQ=5vLXJ9)D2lr^fb$DT+~AMG%-LiRhv zyIo3#-k;$O{9|cF_oomm8<<&J82)Qub)uvod+CuyF3NK)9lm|@szC}gDj@_1={W|P zMHiGbCypLy%m9&PZd<1>y@psa_7((jCgfJ*B<)vZktOE6(I6Unh8 znwa|imkNDI5CJGST4NqKgJ4{*of|UyAl~mM&jC{<$^Lw<`OoV=@4bZo_T<7APWA@Q zM&>4tzq=IvE^U--=>8cOcUSV_%gQG`*3saGhEqRd*SQdM6k(~P>hLKVGL5}G9M zNUfO4^^Tv+)-JPb9@&)tbfK2ptXm~3R^zJE^tzC%z&=xQ%BUhC7(8(vaz62#Ib$Z4 zUMEh1cbotPyBM~e3)h)DQvcO#tZZz9@rChx7(IbrxovIbQnN{`#HhsXCYeHqt--fm zKaiLxd=Ew8>2j&eLm5}<)kZ&bh$~ZkgEJ@DFD$V+e4#1=GG^KK;JtawB#;A!^4v0v z(H!~>njr)nlo@&_Cxlnp3VpyDZzs*jy_q^4AnM#4?Syfcpq ztMi;~f|VFL$$D|+j2ZU3B`zoGrdGWvCz$D&={ed9bo+URZiz^%B{NrLMxzbaf@w-j z+P7R6W2VV{z=${Bs3(Oxqomy}VmFZp_&eqhjOnGY357keGlCn4WvD1WV$yAj3z|-v zxo3s7hsA0F{IVH?el)(_E07&(aBU=RqIqAsK6=stH%#K~j7KuiBapp;qVG->SsVDN z480py+7o76QEn0?q=3Vfa!3z{Ub8$#(q# zJcUt~rJ)T9Fc06beu~3MiK?6%EVB#k-%hE!$MHuDW*2J@0WqoFAT_{U0h7EmT%sDvLb02+ZV-G)4pVRAe+;&AjQZTeuS696} zdV5HJRK5_WDi`62y5>S_MsF{>BS$ zDue&<6OG_M<}keffR~W@XTQup);QOl-6Ah2D5wx9uPA6tl6UiXR>C}?DCl-Yf1U8# zxVMj--(tkxd_cnZE4L^pV2!z~p>A8JpQ5UzBLq<(v3RLq7kgtVHCdxDUj8Nr5d%`G zHmnLQx?tagk(s`snZBu+zJZy(iLw3kWltG5d1DQ8V@p3~sHOg;QuES{;4s*C2mUcivaXs*LS>b5=v*m$Qw5I)ft0jXqI zEUM`>A8KVI6a-2<2kcbpRb%+vXf$}M=`6u8lia+q9)+_8G!qlf0vQAJH11cl1EvwI z2K3ymdZ_z|KK5uqfp)EkdTE*RGVGdHCev#(YPQRd50nwuaB7+FTnEnUSz{{Cl24}x zFlH=*OQS!aRLe^JmL|q1W7H`Yb~(irx`+wLOJE6lT#dArEKWh&GFFw!f^$6I23OyJ ze{+b&X}b6F6PxdUMDO1ZkN&ad6iv)Nokz#N`r?R%J!}nZ{_AW$IQlb3^1}<47nnv3 z!r20=5z=a7a0e2$Al?ESnF|uj>YF0}$bf>|%IgpR1}}UnqBf(_(aBfE2EgPDzW#%I zgglWle4(9ZD21L{_F%Y%*TlNOBtv5XOIFdSvB9DWJkc-tYA1h>AQ~djv2h&Z4R#Y4 z5b+Y25=g}#Q^0%r?V@WANE}>EvNp$T7M(R{kd^N^O()w&5Qmo=oLN39^xi7eoa2l` z%}rwtP8%2b`7bo|fjUj=KGC54BO0XtflL34#^1>^K}zlug|B9{ialt&-9saRVDy87 zOoLG3`8{G4p3`%hq%I?_tJclJG4C{R?*N~z2>?Qo;@sBl^_y&S=}ozM7kB{n&?ul> z9doUF3dBj9kd2XTWHZ`V07jszNT<4EShmoXBBeV8Bg1^C{*3G|z;r8CVFEpg%v7-c0qb_}!sh$$nNC_jSN{U|D0KnwMEt z@>r8H2y#ZtOCE<*a0d2a92RD~USP@~{gjj7D>Xf3N(QFQc;20B(Du@|zY66p%Vb?g zcIc0O2zai-Bj7PoW$@y@U%2Jsz$~O!=Tw7q5xQo_^&StP@*a@Mj~AGMK{_KSGRz?) z2ROPFQ(wS3Q?;;BObSdG(1%SKx`Mn~qq8;PsJymshQ)HGL)0id(d@j0`OQ;zGdNz+ z&!{;6QOy0jq!IgVi(44|54Sd2MN17!1^HbTF^yQ7B1mzxNP9)zAHd?I615)^C>pdB zSiv(Mc7y;L$Mn!xaYjsUKJ*>@u4l1{GE7GbZ~oV;-`14;rp~#OsiVI(DizgBR{g{B z%gf}(OV-m(7oH!GJ;)P2W`KNvIc$C^AoP3QwhHLxoo~pN@yfK!db*)`)-92lTc!ViS4llC`q4FjE&E@z5nXHd(3Jq^m#@5zRR5Bf(Wq=)2$r) zQ*hl{`eY_XAXCFMx4@uQM&+4(=qmKtkV+);-dZIE+ieusny2uuOPC5iD^zN!m ziZT0_j6*52F-6ffIix``38Mo!lP990Sr1tadpPT1bT?Va&2t@b*|Y{LRK(8Q7DXT_ zm&M+<;znysg9oh=)N>mW6wzW6B0g>^J_H3kjTN?zUga5MvbfY&H&`i$Fl9QjW3vXY zTpaQCN(5L(*;`{0lXk@kf6xg^7ior z3EVk9AvoRB9ZklXco9{IeAMbx^GB94D^g`v?0GfF?2P%Cn6;C~<%?9cn-G z#_9|#9-4$cd-l9cXWHiS)_ugwlE_{`ec8+xaVt3t$s-LVr|YJ$jD(|{IT&1Yd{?!t zp|O5)StGPw_h?>vQXhA3@aYIfi5oc)Mhk0FER&=?*vcK|*#~eKBCwVRx8m)z=E`(N5^bR&Y``G_aPi7lbDJ_@uDkiJa{_3=r2SsTTlgE1!o+z)jWM?VSack zfamYrm|Xo$aB>m;M0-HqqTIY>&wAgGVoAiiu!g@N)Dw8Tg5K(PMA&zcuGtZvYp}(Hu70%*A3QwlbxJXvPehS;hjq)r9{X8e zCQ+<=pCu=(QC;{7CGwI?{vn$5Q7V;=t0?VZZiK7i7lcFhtcIcB7jF(${9|o$h8&=m zsP@7kbg5X%W`?@_md*cNDCwQ10Et$WmKrOmC*R}ipcSKM0oo7M>e@ldAF8+kxDXfC zZs9>+qY#@X4qDn=zrtB$EDybf#R^Bgzo_%|f5DR^H`wmeJeotJD8QkajoATNwg4PPi3=@m%TJE@2#B@0bFZY4s0g)AbR=H7{_&T`2HI`; zb>LGhV?q6+&imheBcy*zSLUBB(|>S`{#`NtH9^SE&dTENsxVsB%N_YA%7=_=J<~EY zJQ*+ncT|#Cf{bfV88}2de1L`yPy#xX!rX{y9Y)$XHB-F@f2EK9PfIGF@84AOD%D}& z!9BnU;VK&!c&)qM7pp&--m2d^-&coP-N@P<(!K9iFSs7ooThjV-24vKxL&UOXn%m| z6Zw*Dqe6@kD@&@AY_meBAljzZsP=L~oRG|mKjsH29Lu`46!}7P5dff zPy&uDZe0rs#xh4@6M9ap(jJTLsvcNooABL*xNDrQA&1!-X~u{V4dpyuxJdqe#xr?QmMr(t2J1=@mtp0+Wmjek4KSC=A!V?} z99m*jm;GDWt_n2w7nJ4N^|n$uhzj4NBJ)DJG>!7EQ?u)^5!0EMgdQI$CTHUxnMm z;3Lz>`ZWQA!<@{s))*- zH-&P?(!vbq%-}ILw{`wn8cAAFXlab3AVj^3%P>VW$Zbf|5nf8{(fqZ?95!D1su=G! z0*~3FmP85bJ_4=&RGHbNG-j@v>&uKmC7a~~*~L2qQb#G zX5SatMAqnb01+S%+Jze;muL)Q!@xvNQDzA8m4JE7P7rfTIIv2&+L3}~L{&)?mL!ZT zq{kO=8(O#-?4B%K99*LHGNv+|!YRw_n(EkA7GPW1P&QySqR zV^GP{5(Nw}9xD*+@>0hm3^W@vZ&P4^B2is7L~&h4MX@7+rLhOujhXkZk4Ww=rz-2mTp=)f6NyHZ7$+ma#m#VsD@D~Mb&yqjs%nl?;# zwwPEx(ax~hA}>(t&JU7(AZJ=CU(Q|@)83}jPnDE|n&2^N30(9lu{CeW?!^;D5RK~r zQWhLQ!{0J`)=~lv-B$*frK$}X)OZmL!no7E*gp}e!1a#u*afvK%)h>3u#;8!RdBYv z`q&X*Sl#VJ><0qA3NOr{QDRx*(As2L0k!7%By(bhzq~v}9JW6Neya^&ragEHI zHCR;M7;oY2jGc`@!XAu8cF8YHu|IkrhPX4jA4ceCA|xE&QpcO0WN)G(4B=Enn4jb* z5<}jLyulZ9M?C^0Ig8s7(5DqJ7T_-~_ExtA?K?9`KW~;OXPDn)is+3!4v4%5v_t=u+JS@atRx=ji}pg(h=q60I6nvhdJngli1?FIepF*9&V%_ z(;nUh;Gw!j>m5jl$i*)1(9>wEi&I?7i5$Nn^~9bTlpp5HA11(^D~7heu&MMa=TS_e zQLQ}>@9C}#2ouDNMKyT9?{FrPg*O!p>9CvYfzENV6^sx!4rp=zHECWEuv%_MkRZj6 zznAYopJK#-V*9P%k?q;ARX*(3W~VyynkN#)*!LfhU%^qxQB%f+MoBHTQ{1VL@$ij| zazO|y?m%WQ^s*y^`7y!8ce(kcW8-Z)qqM2@g~MKeBn-ae5gkDKpAzA}8~{4P=@_KA zbD_QfaHtK7kD?9#=qyPi=N=%~ocQwYEQ^}6L!P}e;vst#CUyX;ho2bCpYs4Rd%TKl z21((*?pA-knQaCs#~@JB!ahYoy^$?)igYl*DZzA~W@}izzra5?ic%tvrojH8=asRO1;M4ddYhn3%N_d(Bx<$R=5+W=jSLS#!$~m-&b#@QjOwM#?zv+HvwBTz4~$P zzQY)EO0;z$y*sKRi}u0@?G=VvH{4qibO;9y;Ww^;NNCBnbF!v4GP8QHd29xC^oBL? z^1^-Fym5U~$hjefGGJ1A zU(5tW;av~kC^>d|)tN8IV}(LEf}i)YI18rTZO0Ly_W}32@FJA}!ruo20LXyVjDzE zpx`Ya9ye3h2F*&7(a=sgvvZDzwHw}pjkj~H*euYR3?KdhM-(dM`S0pQ`MM&35#J)> zB1BPSC~1`(S|jc#tK@4HMA{>8Q4mmmP(CYb7a4{|WK+6+U#i^kL;+LAR(22{$Sr-8 zLeW!p0Q*9B%~+!e`rTF~6{0!ao-9y%kp!Ma{jpZf;_54`}@16R7he z9x!ofk&AwKD}O-snX+f4=Y2t@pRUqYTZU3oyra#R9apM93dULg$B${vzU_@OA&nzk zs55Ia3|%W53#vMJv4S5K7L9W089oau3+I;6Ly3!tc$v?AIEAd`VvH=qDW{BA78iKO z$A?EYScef|fdi~GYn=4r$|188A@P{gbBhBm1rC0e-=%*JE&af`d!4ldE>=_K$qP<=#U~CUf9KK#QYs_P2L@6!rLKM zIn3FM*8TUo4wJ*E^~R2^r#8(`Mg8=n4Q!aP4~K*5j>JOP3RKqT=9EQb!@6?J*)h1- zvc<575A+x;S<>h;>V)+gu`!1hqi5oEG9}Y-FIDlzCAQPs@r6r8eMBQ0NeEJ;jHI=6 z=?v0Uoe{|rSgW>(++QWr+#qP{PdxV-zA}~Bwje1+blcpFE*)GJKRdc2g z2*R{xiWEzg^~RKyAO!=9Tn2@tQGi61VnY-*!behM(R=ocwi>f?xW^bqR(`1@!R$ui z3RZUdgheHxH04r*`RO^vns%|Dy$rqh5pLtP;d!o6l=Tj4%m(KD(!KJ87SJZ7irAsSz6mEMmIWkMt;5epc0W8zSJ?)uNG=MD=1Mf&;MNY z)mLYu3d$ptD$;mFA{&AT)y`5*I_l)8 z)MT?4!?P<#LbfpU&bo&dMGFj*>Ar>`5K9(TY&RubV-t>f8CxdXGa!J)T8>O|>C`4O z2Pw-01jBUEDhJ*`L}?P*Se=6}P-h()Ehm;PF@NUURPCs76fqmA80_R_DU-nTPW|&V z&LUEQp*=lgry;keeKl{~X8B4>GPV*c4#w2|nS0YykpqLCH^gY+x-IgVFeAbWH~W%W zW|McBOtD2ei-cqZhiXzjK?1$0sCmRVaa)F?r*8gkzxXsJMLw>$8z&a|N=aZ{ob-Vy zGO}5!!KzSb9F37&$iAr;XLez)itwvpevc#*^P{M1#_U!P@)fd)shn_v@m>{J zR4D^N1>>OM?NxZ}Zh<8+4V1RssvqRLb`K1st@0%S2%hRC0tg$$BNPZ5)njQuEJce* z&k%~YU=JC}TG^HoByZ&wlXGIo4d%0>q!F);&l@P=;$EWJ9WO(Y9?qnlU;cC7)4FW` z@nvgU1}mBl&*pi6ea}V?g66k&3n!7sj`f2__Rz6&N<(!|TF`RlumV~`{U{~~$%XRxsM@XuehdM?>#oPl2g2@i z!o1)0fN^*g6oUN7Gr*<`L!z^M1oHiEfaUx7&go-gNEE=sHXn=ifS<)u=%zXPzywT=fc_R+qLM%qDi4yBzAY%-*x#nux7N&=T6>-z&hfq;X{ z({vL8qC(XOf5oKB=`ROXuZ4@<@dIW*>1)0!2Czf=#+Cb(_^aGkM!cMEE1(Y9uMU7~ zK;%H~z|+9wXnbvnL_6UEa4}H`GU%)MR}j5FCS_=RSA&coco-Qv)#Ttb>3q7L=GRe+ z7WuYWYb{yhb7=2F%{xU&6v-3BI7_Sxu>jWFD0_x5~=;Q#S zBkf=Uqa*B~0;419-~xL<>LdZ9Bje5rRDEO#X^GOPQxM44^jS*8@nFQ7)H8QuDfqTxS-Zxk}eHdSh zV?C>*n!CuKYFAUmGFDfM?ipE1@V#oo8sU@G_~o5o>35mB_S_*|B$?k2tV8KYFwuOK zw;pSk-x&wy)lAN~o{hC~soSRRy`!8*ZY$Zt$=rbDY97Rnu>_T@ao+6GuEy!ymo(kg znIxAulj@~pVD1()#Ds!(6@t&=Lm`iGUx5{K@Y?sI-xA!=yj;H^yAq8qh00IxMsd0# zE!1Rg)-PS;EbeExS=>m}J!Kl-P}Ds!FMEer`=0XDdkl53s&z?a>XBxC@UwOavUW+b zc8RinT=CSUN51qnJ%JI+44+t&5A7d$@-EJX z1e;MJ9Z)RZP{;1*(cA%J9(1giybagB!jAw|JAq3R&4i=P1U=2Wnma#o^rD4cG1t1? zwu!vicn3r6(=K`xa0lMJ>13}BxCg{8nHR6PH$xYn$T#+k#`}z{DK@8QxA2V7ZrD$@ zcCDf0YR*FJ#$#8ZdBXAuxcT4hximLX$sVqa`TfzXn!g-iCUPj5mcVmjwi4a zS|Vdc&Vl@tL(%9pR6cl9KJsmXn`m$>NPscIsYIqW_A2dt$umS)6-kxji@wKfLb@nO zMhm?}1^u4v)ec{E*sI0#3XP~0gH#5oNcX_H9bu{A+iQG1l6sZ zXQIm3_zK1F=cqksYy@@`Dr~3k@mI)aDsx|oAMOh_h z1Z~C%);Y5b5%Eey`TlznI8LL2-~bq3EMs4;fLGayUwU~!kCbgsI%!*Oy8vBa&DYgR z0kJ!|& zS;Fvm1B({F@`cyGwwv>|9Zgj4jJZdUI=Zf@dwl@8=`zM}jy$p$5Mr27bYmUSfN^b&kGRMKsvp-X+3l~}{Rewpx*@*N|NitFMIb$lYe4|&yuE%HG0A@I|H{Z%Jn z4gN&sNPa?wfZV)dc%zyqXP~*K1_=Ya_w~d8H9s>i>Idh6Bv%lo<~uOt2ZiL*RLxhu zK+Sijik&G#7{8ddSCBR+-G0<}D(LG?eYg)A(Wi^jKD~e*zgVoNv6kSjfT?RW2QEJt zx0^+Ws4jmBU)0!Zwkw=>)SQGhchUUNyuuxkk-*eLv|cR5cqL@3Qm2oowxwv07NFdM zWa+N7h|`};%8*2+fZU+~Ay;twMeYj}IrXwvSuV88YL_GqBl|j)w?Y%Xyys*VJEU4` zTXfl`2C@?*eCj70-dxQ2@?5vW91LZMm_;O)5-ih&MVC^I>climXVpcBBpfj;kuq3m zt%&zdns@_J_sPCw4v}Wp*C9-guEg%3at*_YO!gJ#5_7Ymd3E&Y$^pZum%2GenN$=7ZtnrVEnB(ua+D(&ExLj#U$lr#OTCv@B zhm2F9q%K(^vV=8JrNxB4t3ocEI4QVjM%El+C*=LZ(8rzsD9=9 zU3RLRJ@Syi0szE+_BH?K7N&oHN9ix8`k%^9MH2@X6Q{r1^P^Q(Raf{wU%W+tr@PY> zp|NSCoVT<*(Bbo>1}Y%X0lg>v($N z`1VEDrXPU*mk8kJop7XgZj$M)RO&GbAcPpRkzL7{ZhcBRvlvRV@6z7|^&0{qLiIH_ zrjlk@4{3w2hfyU%fkCn1XX6a(L4T%es-TN}aGFRcQ!dgN6AdedOdg_8QC9e?*!Mhs zSB&hYPhb}PRjOD(S}fvQk84pKn^e4uZ2=`75;x3w0?l1mVK5IKWUr$vEs9UAnxd7g z^tB=v3wRK?JT1c3LY;qN{UTFl;)Ib&<;OXyTE0x+jM3O~->)uf%i7%p@6ZDX>2*g< zDy1<+7#-B`vH6a9b1|qO9Ie>?5xstya!aWh@P6fTHn|1n4BJic@h6T;&euv((pXOo zIb@ju$x!7n3Xuh=kdRerZSvHJLd*p1VQrQFN7^|xSh_7;y0X%?ZQHK2ZQHi3N>$>H{2iJB>RXU8P6orrk7%Y$iI%qF_a1ebzz!C+j5&T`j5b$03 zbh*BUXzGr%QOG~XAUJjbhlvJ%h22!KQcusjZPQA-d>oH#%U7A-eFgS+a0#f~~;M#a@ z@+U{#D|)ja%xl`f7;^wzYuXtwGZ(H&?dN|i6cCELcSbCjg&j|JZNaL}wTw@(9 zF?;-Aeoi+>8!8z<%GfDrxJeYAtv8x2{EDC}_xRl(yhJcAgMxSh$d0(%W2? zb`jtoKo3A9>^wv7*q$V|eA@&BepRYjeIPrKwOp}yrM`7e#AZIlW5Gon)gZZ}T^D$M;S~}LSXpDyG z6tKD>2BaphW2l*kAN7nQc%c`3eFJb7dx@w*LIC^cjlGx%To_`*pGwFt; zL+b+p*BPopsY}TmraNb(kcC32JA&w8y{Mt?Oq8y`_c74RTe~BPPvY29Io3Vb+D#0n zO0&3h+En6+d!yM>Mot=an2M~pnv6j?Q$Xt%C28g<=FVTLn=wZoBq}YeZ!)hW)SOWj znd-waKV1Pecdib~_qLLuXR@9(D^gt&v@IfQkJNCdS2_1ltGv#UBuZQPewgYZIFsyr z5S@$nUJ{+_RhRHeh8ZmnSSm6Pp`D-TC`6mK_*f<0INS0WF96TLOgl;x3LtA52;*D~ zn+;Bx58fy*7j|bs6&Ci=X`qmD%YkXmWlbfXp_??(OoDWp8F^rjApn;mr<-fjFPMNb z_A>9bG`dQwNSM~+x`KG6sK@C? z;W41EC(yeZ1#im{RTVrPqW4T>_V6ME*iy>2uB=@G(IRdq3vrTgi%N3}Ofu|c74JpC z-Z4tKu85T_B5cP)^p;1!a0)zQ*olgr&L?aqK=f8ZxHezJI@h@E`KV-He!uD2y{Lpa z3dWkm9kp#dVfmdZ`J^DWTuRtZf%qYha4l3o(oT)|p^TvJNZ(F__#uaIy->uFmDW6aC|h-nK(yE zBsmUTOZ>ZcnyK~4V?j|6_6*h-k1N^{FXRP+EuLq_E~qpVPIrflEE3Z-$#5$2H-`{-xxPFli6Jce3&6^P-{9W~@ z`X9Ug@`tumR#(wMCV<kMi;3+8*ERtmnOVwEN>mbY z+NlO&hR>H+fNFs2QC~wYKi=Ee_AtjEELCq_UuVQ5jXZGK-c7V`MMNE@v)9^u-fcWa z)Sy2!4z`kz1P!*5_8V#&U=)IK5l%w~n0Q&6Tf#9FrSXYBKDTQhqtSGw?q%X$v0`zW zf#(TyRy$}KcnQ)h85Qe&(;2q!Tk_gj=95Q7d49i+i{d1ej9bH4qop@7H~=f0Kn3j_ zwj~W={T+R>{L>quuKvm-fXjtD%#_o6`=C~BD1jEMr?uMaa#=yYV3QKMZzmu{U$SrCP|0aSeWDsVI+Pm)QC4FFTHM$5XP}UHRE5Kp;28LxK z!XPXk&*TTkEl#zFfk)3|!qZLp<;(YbQ(73Yx*s#~>R5zJ2g^obQccVxsOdrelEARw zgq@R!6PWozU(I?yccV(=!;xpm~(WIUD2cHbpj6u5ZIEE>G-hL9PL!d$xy zikO^5D_z&G@`V!a*kG}+W+U%%P`a&v*fpjI)1I*G^|YUa)tAXf$6cU?Zg;IswJZT< zq=-bYr4NJypKwsgx8zRhF=4q4A-Jz0R}O&>xp0ys4LSzoM~WA$;|10c4vpy{=JaZi z7WWz!+i@M_BGuWN70ZMN>>FknU_urO)X5$DFBd3(qI=kPFeiQ3FN1Gp zt_`H=0qR(-nf7yb6r)w>@zl#}(vple1lm3g$~R*qSSTUsv?k~~vF~VV^rYPw#Wuv4 z2HxL`qY<~eI`$2kSFHXx-Ah}l5}7e4fL>{=X@XalXxFZilQP{Lg*mVYoGH9z<{;Oz z$dCV(xQo?#U8h0-F6NE*9J9|dB16O*_r`xqDVRpUF2W!ci^nd*AYkvej~(kGwn^xg zwGS8zE5<|coV<@1Djj=-%GxnczJWR^|=XC+54=;{k4;G-Q&Qo}oU2wp#dTLZDokqAj~= zcsK?pGH=~M>fU8i5!%)X(i(MS#){tFWT@1IeY(V2(-gt=%7#oech<^hyIWEdG@9vY zv1;V)z$iv)+Z2?_%-Hb`LiW4RjsWJ$jzMx^^084>yQUE361lI6Mj36;h&}OoQ4L1h z2$Ql=oMrrliB@t~FwJJ4M*)%bF1lkkObnJvLT*Qt|9khr4W~elyxpqKqPC zI%Sq9SP?&H1a54`@7kB>ooP#`HmA+d6j&rzdeSY?+HS$^O8Hc%(>J^$<*+uc zmZ14@`X()>=vB6B>KN9+$xd4=SXn`^q*EFV3|Sf2h^eyI|5L$7&f*`lf|>@UB7?_(F|2AQ0((yopl#jEQnC z7+L12yH;-rF9mDCR82N!oF>h#a;-H+t}}1yO0S>L)6!!~V$PHc0yg1< zhLH%_g*LvwfPO>H8~cp=fe9u5e%mStO?BNpGww6-dO+)m zT0kpUySMvfb^sM@HI_cQ?nwc90FIGcbf%14Vxnqgp=p@5#2it_FvA$b5W|#x$^mgA zC6!wuaAJ}gikh~bTY^zaL3eF$?P%?wedGbh*je*gooSJ2l0$CTpkJ_DuS6YkE@b-8 zE;o}Fe++ERdaN47HFea>uoi2`OW0$bhtw1GHyjQRNaYp2Bs+Gk9C?TE-C83^BxeZ7 zp_*_-9BNLBKY zl9AtGI6|R2-s;tv@EgzcQMFA@+h%MkPfe4$dSfs?q4O@Ej4gswH%yAVq#y()C1CNZYQjT?oM}>$?m!>B_6U@_V-$vUHp$X)}_k zTb?UzE#mck-|IZLYbnBLI%jhhGTH)tEs9!s$`q{qwIKH88`kqt0O%}Vt8jB3JNkiq zzQtjjm5AZgYEvq5?ZWlBeCNnW_aL8oYWUet`?>lkA2mY2TKS$m-iJ;Th#Q1tQaq=T zI_v*w{Y;ggnib@?tbIb(A$qn}6ux(dJGZ>4q?hN>>umTNvikZ{6wFFvFSw9yN~D|~ zPs{(x%WUD}PlqaCBBcI`uWBgv)ztg%{e-{OkvKSf*)RXqL2!~Ev;Q(&IhQ(5W`k+G zqYD%P+xPPXqnMOcEO152m1IjE1(3#c8?zKo)LKp0v)Stgy_Q3&XoyH(KBnuKV_ak8 z%-izu{`h{4kl9_j1e5;0e;!n~1thK=&EC*iYqCi4!q6a|&3=_R=Ev~e$=(K$xB_QT z=iXP%h=ET=H*Gm)Ff%BJLHNFK24!W+9-*J1-o4y^xzvy3tEh6V$M9u^6 zB}@w>dcpi^I`*A*DMw-ayv*Vr+w#N0YI>tv*NJsBxiKm)ZD0*#OUUytitN^jjWHV z*QIa>n_^9`BH>Vo7NrlR$QBwM!;|l4S{uI#q!1^&R_0b+JTz9W|Mqya-u&j4|i}KDnI+(efT$5C*k z9N-nrYw`UL;{dddNS`n`AdfPMy}?!S>F8ZN0KT((hGU#Dt!8XkUX3u%Z@h}bmqMZ@ zj5bf)#+!6WSzj)%4iR9mL1q!ogvB-9+CPVO7Fg@2kFSrtWwG$i=z;(4pgi2PZvaHhAed4fie4cWn!(B9O+WiXXY?@%Y~VW5k4`N~Qz*@n zc|@PRhkBwMACT!;?Q;>2QDQTyg#j6|w2UU_&clrn-U-oYt;l1YO-u9M;D&_6hSY|H z)xju#PB2;lTERXKjM$P+e@dn+jYCL*oFIUJ?()+G=6js=HdyD~P03 zqD;H~8L0RdudczbFmV5Epy>X`K=GSd8=6_0{F8G^M(o&^y%SRKrx}g4!d$Rz5x{J) zkO2e=q%s}~9!+>L7_iY5QJy2k65m7rHJm037m!5sPl}pt09UepUc|Ur5~+NO(Q)>n zPoGY9oX?NDJ5=A-W@=f_e1Za8NH(t$mjFO=S^fD~v0RXtZiYB#I2g6ZhX5wmD^dn& zfs%Lbimeyg7Q9ukV5!lnH1^Hg{sL9H$SULZ4M3<%4UJGpwKhriR!4|HR+ee%xcra#TXWw8n#?1}bm1RLJ>m!_47-ImaS00k;9=H$P zE)Vh^HaFl|qR^0E-vH5ZN1pn%v#5tKUrEw$0~IFONEiqYR1Y*Je|8=?NM6CQc1qC+ zX}sxcv>EU%s>{lyFns>F&woCX{OWj^B(qAViZD(%m6g8#S%ZYowUCy-PK?qQoBn%x z{p~IN&l>cPQ}eIM6)Ds9M{=d#$2^JZnV6LY;Ve4)>%&)rtsd3%$L$e}5ICfK zZx+-bSUM-K7#Tm@dvgJl!^4p*HHQX;InhLoBq#_ZH_BV(BeVrKfEyX9I*6&ZPG~7= zvV=u8qd6dgauQThs2x|#r_4V;de8Tl9$LwrMZneX=Oc=EMgNNWMZ-7V*JZgzlQxh- z_nOgSugtRF#?`(W#sAxg5{v!3EuI?kP>A(hYT*LgHbaXvHTj7!t(U} z#qdx~f(7Pq?5O0l@Oymf>JqaXu@XEZ{lGvC-hDM+Q>pTIU|Pb4s)A}(+Oz&Z3fv_@ z12b}nRF6K7(Bh%iSeJ>q`%VRsDJdHvRPbY+moRlDT~+7DuCCD0U|@*C>fO1m6-Cdp zC)dpL%yqI2f^=10<0fPkpoy}pSTncwJv|9rYspwg0!Ov_Y%L6WSBpRA3p1Mt7qyoR zq*gIb4gr6zB(Hh1sp>`L!+mYfpIx)Vjh2Q#d|V9wHfsOrEcZ_@zCWY(Po*a)M(S&V z^vi1kuU_^H^}9E*Ffoa5DB_0sGTP5@VN{FxzG!Yg)@n5$Hy&Q0+ z6N{~j6F0_-$EhJwUq~!E)g^}b(ur-TAa^)1g1qRQ{4`SpSRetXa~UrlIfm_w60ij? zA1aWr9oeHQF8CWJxUgUG?mJD2hp{jE-NU8;Vl1Rp!VEPrO>)(G^jL1;TV48WTK>uK z{Yn^80=M0;AzT~Z1{MZC>sJieMy`YE&LWK@>yGq+&uGwCu;OJGjnY`$5xGyUUR-jH zRz=E51?*VeF2kQ@u0RD7J50Ahxp@;?r}#r(8-nNG`H{X&#O%6XnVDCse7HZ6nD;CdQr2+_RTcb8dl;tgP!KFVW-D7*ay@ zwq!ZG{&*(-x82M?|CfJFZm(Z|Cb!VlQy6W(bk`64FH@ouK*%2c zYMnSfM1F!cgK3?*Yrr=$yFCBMQ=UI_ z`(pXGfBn}f1^e4m`k$k;|L2q{IhtAiV}(hEiid5y3i9X1xkud(u#I?VaNzuCLxD!Y zY&}4^-aN}TaC`uQU*esXo#)oe=QM3w`m@Tb5Czl~@;740;fj$BN^}00tMMU?4L=)b zORT(9Oy0(3PLCt<7zeiAompXPVZK7n%3+PF<d?5D>0&OORAfGC&CCzF;4CK7Pp zUfREBULU^noePLxTtAXT7VW1HGclIbX5oWEzI^_r6nRX3wq1bT81q0 zCNq$dc5MtxVXhW@=~|18e4H5Za32$nx|@!axrT<9O2&IixRqb@YTAO80^;kuU>(E9 zI=_#a*85F-P`sf6RgQJ&g|i}{FaN#G^# zOXaL0X2M#^GHfH$_ z7QScUc!;mfZ=e|j#~NrF;fb2<{4~jng)$Q_8s9pXvo1@GC_n&UPEubgCNt0s;q@F6 zHS}T@BcaMQXJ!Cp{!sl9YRHuG%dIt-v~0(0tehtW{}& zWM*x&XeLhYSGm?%v4wzO;kqQoJU`b1NoWpr>4TX&5Yj+vTU>1{b&co}OUG)Y9r1W` zxgBwgV#*Kg>86$4`A6!S{6^^+q(f0&8|jkJ56!3uyADg}8?=fQF*S+E8k){>I*;Qe z#b>tfKQ1hJiRU|B_=3p|jYv74+YK8qQwQ# z5Y57KK|5u3R$65iE%;BGbQ^&ssEZr6`%tLrbX$NashU^(IUtqQw;QrI{gqIdRIlM7 zc__AjADLlJ#tMCuFu@=ny;jWt%#%;DRv63Z8jEKVJOa(+3+eD8^gh*+cFpsu?I^Gf z@tU0|w08Sc%ofh-f5wNUr8+J_jK%#VFD%rf_-TSa zoK~AylFM)pBL87?U3l8(C;XeU8jS^XQH%l78I(fqxEqTN>smJzaE*S$k7e988_I=~ zP9+w&dB_h|%s!7OoM;7a=rE@P1-B8pC;5nt?$r$%giH>kbvSgg2xIk8TX z5mw^oL?W5x8Nz$_Yh}P9rvttEx;T3^g76#m3B>10Hobu%8LjCv|Wo; zvZSz@-_*Jy3nP7fLwG9F7T%$ozYsv<;Ee!V3YY3T-g(J8)Dvt{K@P`nzhrKWFl%>* z8rpwJUD{_ru8`h4hp3y=wAG*YA2YN~oolY%hw{E`XqJ?&tLZZmH((p8Q*NU&d)r4l zy`Lz6JpR3^+2}ABRR{J8O?fWODMKoEo`_l0(Rh)q1*Q31m!_H2VD)V-LVm_-+Ye>k z?5*BwJ4~H>*c6K6J2w!VD4l$yX+9mc7f^lHyDey`EvdO3sxm^1@cEGNdN>MJ_mEvQ z>t)_=xX+DWgs$Iy?ecL=-h*Qe;^Fj?b44%;UQ-p&?!asI%V8g|#c+k4)c{G89Km^6 z_FLw5#J=#nu+Gc@Smw@4^757APx0GW9dA!k)cIPik3eY$_O_Mdq!(uJ*dOka*Bjs( zl=Xt2>p}^?v81gS;r-mavf zrM?p1i$oSKx?!vI0VxVk*;Q#LDLG<*-Wh+kFRID&Qy;3*#Q7mtheRc|2P)4Las6N} zU}o0?=e;}*)y1BSSX7W~LvFCqV9T^V*%@KSVR%}fQUH~1z=Vo621(W%9`T0Iprbcl zW!Kmdh0*TE(JuBzvxm|y#CbJ4yH7(=m)7^>P(S6DWX4~U zqD(X>vL4K&O;=7+reBiP|4~}YlxaieBdrm33Oc=CNx|qG zpTfC}CnRKYeJ(e`t13(9t6oK)L{TND&UMAyV#L_7UfC3X0yGW^+5gS*@^+k^&!U4(B#&TRx2l7(PN5YghF5@*T$g7M0Z`kz+ANe~SsyUxLB{a7?UaB@& z*EE(QR^tv;8Bi?&Q6Wwq_2AHs4BB@TCQ5@LQCWoU`g3tD?pg*FXCL4wufyQ>7s=e`NhmIM2AZ_2G__U&J zEFd7d)bQyHdujZzE(-^rYcZ%!Ky66xEpBHCYLj*}#yy*Y zn5{F|cVusJ=1<5!?x*I;#UK3O-@aM?%hz_Af7>qipC;gc-pC|v4D>7&zIr>>CJr>V ze;E>*895Xv%h_Ovz~%Hpw5006PY9H=hZv)W?fwk@r3BdXtb zJ*IW+eIvC)SfD+0cIkXKK1@sTa{e9BN{A6>dAegqd95V zv~?n7WaGS&HEUG0aUqo|GNrp-vqG{o);}jxrTzY}do(wf#6%6%F(YTaG3chDcM({d!f{X+ zn$qQ#2*QqO_-T2g#2|GB>I=Xl;WT0+(RgPBchv8xrwI?EAy>WqN~etj!V-< z-kyttq>S2`#FV!8I{X?~JqGhG^qeieg?S`SqMN)3h+;2%Ch-k$jlOlQE>b1M=&KSD zgKc^i1g;P!AT(mi{$4gb7!7-mn$IvyDSwBQqhN=HhXPlrC1H95_vVg^qH9DY<7}^K zDs3PV0jI7Kn{hcV5Rty;@kdPquf1)0!829(B-q5YCu{uTA-FZgKM$B%d|*z)U$FL z@!B*bKj06oY_xoWMhQ@MxP^hAxkm`R!H0b?Kj0MYYV7KUB;RyTprx(3WzUs|jVf#4 zt{#)Mq}CPF1Hq=vDVmCNYSl67owyngLA&ybhyCEWq7Wz#e9079qQ6z!S5Gn33WVD4 zFkmu~Yg(|p2@(NH*x4<41zn7o^iyi}@;@A(6+H0l1bWFq@+(ni*FH!HOvKQeKF?Op zWaUU`aZu~?v`Yx;Fk9~oOk;7uxNSc%uAgSRnz4J>fid@4Q-W%tWbQaM`@;nziyL-L zYQYn0oVk%_t9SZ}S%&=#`aluhV2PFuo?uK1ajtEA<}TkhD4FaN-%tX4101fb8+G*~ zHTfk>UwBQcSK7$MKYHs1a2OKo{f;j}i9TuuCesu;S!8&`Mn>lJqz z28~bR?)2`(4p^yg)+`-h*&ae8n;L0)rd!A8F{X-c<4B&=tO+C~95;@$UV$|y*j$0 ziUz%!$K8#sSZWHT(74yp>gwN{GqCxNmU}>0aHV>~s@@PSF1Y*{kWD-qGG(h4I(q== zP`fhg{>vKtS!r5t=S!v)3H{H_%YO&Qf3DB`4{+#w?IitYc3Azvj*m+ndV-kKVjxS_ z(eN_Q>>rkj-@$AN#=^=EthZU%ovWHWbpK#SO2;0xSe#-5?{ZVy-8m!U)cAQ`oX9-- ztS(!Dvd=2^oUP>E<=RdgO+!fD+LybcJ4IWEvkQU8+}UPeWm|=`%Q~AI&|c#NON%y9 z=A=%C`_1p&^K)V;2mu?Xc#S5z%%nLaR1S{klF%X{$ycU_5d}1rg4yGqs(8#$Jw!22N~xo=D47|M=jA zLL6W7g_PAekeP}vbSVCX4v(xS{N3?5mTR|^0`-)iX3!?zC4*++z{2A3Iq$?V@q_MG z3L~a2|3XKbB@5~oIx4khf4VI^6)TtOEwk3aMHSM0qF1sabV&k$e!756q%`1MmX@d7 z@)u0-+;S&7Vt(}WrGekgWZY3W)9i^(IRVuxrU>PrNJ6&luAA0nLxs*t^I!4*Q0SP~ ze!kX9ZWiBI+`@dFiY9-Mr~5HBV)mQ(LnqHD6OR0Ch`cBc|mRTBd576;hb z?O5=G)SLU%1@k3IjaoSglFQT@!Bb$rq>@iialLe?SzPtcBF~yHZSV6MA&zipo24IO zS_86$gO$g*hebLQG zC01R}CcOk7-;E482^5n&EfoN~BV2Q(D*6HjOYhT6&0yx{&~UzGV&VWLZ8(f?r{4$gkZZI!M*WIugps(Dp6Hoyoxk~KhlMw^0UGauO4!)ipT+1m@zXd& z20c{|om=cy?h*<5Hs;*|Fe@rcL^ehZExzqPA|bQW`47qI7hu5!je;P2Q-*m+5q2h% zqtP@DAPG8)g7zVd^($y@zUu64{6M}DPpXdQesM49pk>q3nfI4ff-ElYo0VlWgi`Np zwD@guET1GDp8V?yVMZlV!ENT7oX3J054fZvlazf>@vNS!ilxX+#KOvGt4i7|h6P(9giPJUF0>md1l*>#lKwt=_UmPV> z$L;XmLXKTbQK*5msYl_ z0|FpqOM0J5GqWg^0mL-g<4`EL4wtDsZ(D69_+JSM`C2OJzRgIQj%*IHfCV-c()5V7 zP0_RIJkG#FbT`%HN=pkCLnjllbc%SbOMIwmCu2d*G!Z9HGn&RtQbuQ51y&(rI7K57Ym&J2qZ*}S7vNaPRrV)ZH&7J(LY@Msh z1<_{R`+!$B-f-C#?i=yxq3i^8xx<~-&!4$#0^r>6c3FLAIpqE0>A}iI$9MEa5Ul@i zf*9NX3qjVbF?K{<;F+k|FFXl}FBYpE4upv0tgmxK8(qUt4;_Y?Qk<-)zI zKXXl*%QR@5{9lB$V;x+L567XhF1Yg^d|v|S8{GFMqd^2PoHxJLX&gJ+x^bUp>O>ed zd90$3Y(C|3=7vj`ZJ@I}X7)VIqev8)sAc2obiCXT$P5k9nkizq=OLQB&w^&Y3Y@0q zi&bzHxz5KKOkMiTK^Uad6E6a>EY~VPq&zS!u*ca;cBZ!<5y@6B>q49#-h45nwb^;I z>-#u6rZYv+n0@S7pgV`&Udm?e-73aQX!%Hz<1|~>Idf)Qg`~`dXVe4>udQ`BJJ~m} zl=#(E&>~VJxHXKkY`azK@Ebn;JFI-B^28AMV!13cE*k``H3T|`1|kE%1l^jOP+k&E zpji-}sc=ooI6CTW$-ol1)bD(u42Gn9W`y~+ovO+=YFUKHWRN-6q#`19nr^%cJQjs- z)1Fm0igUJX6#8sYfzPnE9VtO>FlUQTCZ7Z^a>=k0KeyPiWf{Ki!Td z&9FIjY;%h^0MskT%M}?5Q@nId>Qm(W1kGr39_h1NGS9O4-)N-Ni>wc9kb2u9pbO5r z0g1E?iu3@8u?URCv1tqDWl+&>DYX zt}^1E6p2yNR~QayRgeeXPbe0Pnl53Agi`=pq9LkB1oN(ehODMY48dfVWsNZ*E2kn%jyb2c@}FH0`+#0On6Y!(!c-9EwZT(KA-T8Kwo^GRllHdx29|5}KA8 z2M4g4I*M&xT$%_{fhAM10*e_I#)a0iM^q;d^ON5S5d7PipI1%{_GtXCq?KZ^omS(% zPxz5x`LCtmI(i;Y!2cT}1szj=L1f_zA{Vo=h<`w&8uAZ_sC+@hSgO4cUa=OaviJwQe*qkay2ponZxd_6#% zf}CnHsLEfzQ9h}bI5f$#E`0m^R(n#;puIgZLYjxB@N~qcqyg-XKW9qZ&KUkyQVQOa zOY`O^;n5&ugPi3woI2!K&3WVv=x@098NvQTa|v!C`}H(AJn%qf5W8?gzs9sww9#zi zyjZ$e=l%i}4@;_2a#C9x%O|ll>avhl-%kpNf%vdHKGtMUw)ENxYk7gxJp zYm^O-fnnY>vY69+`l>?C#gS~Tg0mA%Gx9{sg3a=NXya7KiQ~AbZSOMsR~4iAebvb? z>n^Wm3c3$fwjJ15^|+ z^V(5y3F8}G7snMnJ!(>d&hJ&t+6RZZl*?ujCkVZf-bRrpa0N&jJl3MeZ>$l9_)Df27CIQ)@Wq2WsQ=#= zg}L58@nAxE%VAacs~e?LBY<-%2`;<#R?X>_9lTr*gw{RcYWeFZTKQN%N5P2{arNYL zbAuDy&ww=Lftbs5dgH=n>(aZeOa-(mn>BdG6=q|noj2$Psqp=A57vtfSEjNkAbgDd z3TE<^aWhQ^#@Ke{>fvQ>wTF^{M`eU0VQjjawy5ZWRU}dv)L0GbsvwD?V+KT}6(V4{ zjE^;}8)qRpcknm7R|q{UJQp%%gqZ}eE`JGrG`znkykp~2U?xDGDPWIoYi*J2tcCd! zjj#%kgCBh%fxlSe&wNmU6TNbH9^KM{upKZ(EUWEmdwO(b?Ew42BlCvb2^=2%{8(f; zJRA2N=`xx}bi5eKnqYfNQTz87FpYcRxQVZXeZW$Ann0+l0;K#)+@svRr^yOXx zv$!RphLb(DiDQszLaIqjs3fE04ZyAiq0IFHBT|quWLRi;)*SGl0tbm+%C&Wb`Okiw zRv+#eT*SE|HK0jx*X$HC-ery4tD7pr_r!c^1ibK*3tWcfx*M+)Z=2{E1;FI$l8CU^g=kNaTO8L*)sl)0zDYh4$_1%R z&EWTy*zAQB36gRd&X{O_Y&I38%rg-#8W0{rY!WF7e30~0XAqcZv-w1hR`m8#TQ$(3 zz8dubnrMV4v?#vfYK&HXug8zl`83YbJtBlmjjduT;0EKz;i~0f-M*#a*sU^ywM&3hZ>Ja z8el62sVHw7I0}pXQj?*faI1-<*bC8Ri4aIpuM{66@kqd?`hqwfIlK1RWcw^c0KMX& zUIgTva1d6s3d(WgPGcZl2x4QgT2yVcbrn2>+Ls7nhB96oW>=8X^;70KvImfgYHbDh zDDm{Ow*~47J|tS=M@->vpEM|5o6RYxv4_J3X`sKeb{e6>b`t9lK{XhQA=yP$T zkbmf@%7vaUwoJBHS8KBYSRF{v<%E&xH+HSasQ|^s=gbNgG-i}5z5Gz#&r>+^E=XMX z@c}QoqUP2fO==<|OfR*A$f?u@e$OAMhTrZIc1x;>ND$tB{f>QcfYL|6vlhL8VcX1m zh^I3vs`tQ?U>RkbMAM8-*@Do}ng`19b}e?z_ykSY(2Vgnt@82PD!6LY+j zYXjtN>}COr$GK?k(v-(mNAYM+&V~**Lge=YOlzLSlL6hSQuz12DY4PF(ENS6RhvQ^ z>HVwZA+Gu^=9uR_IKUVo5Q2kH(GQ``nygo^jD-3PV~Pjpow(*tFMC^GGxfW8_h{Ft z_jm16k31YYZ;v!=R>5wWtL2Z!XLQ#lwY&VCKC6SPLEa|h?Ew^Q&K~I_7K_)&xV7@2 z$S5rli%oJU$nNg%jjL~#nYVRzhM}TDxIz+oUF&q(sn^s+Yq{IBZ<^RUbH-~sEYEKIO^s2Q^|PAkVfGycEA`a&a~ZG?ZpYEVJ6__1Ndz830Y{8pd)!`cQ@j{V_D*tQ+>%BK7WTM8+gbrI3Ljx#>5v1>nKruKNeT%_Og z7szRxTWmWU0qtJq_mszC8v{A4mp*KoEmDmNJv|UQGQv4GMzSR}DaoWfyO&tTXv{Avn2iWj}c*mA4N(o_JrDl^^`z z;5&Rx2l8KA*9|?Ic5QAZ`i}u&cR|r2UoL+!Om=95M@BCjn;4r+rh6D)e!SfuaQdRJ z%jD1o;e%ArX(>A=;A@jfBvF+oeKqAL7Bz<)`UQe3SCpq8Rexqcz^2lm4l=fxG1BP| zt0p8I-0tR)LK<0Q;x}sNdL|^7?T`q_OgsWT1`c$zF6*Q1^Xam6?%cFer<1s7JUeED z%O6`cr^DpBR@O-+QWDs~Z$qa0lxpKnLxmjeOxgtm%nX0ILh4(-5Eu(kG1{viC^S%S9wq8yD)@w`o7_FNiW_PK`o2 zwy|bu&ZZ8h4yg@2@*{LbD2hXq+?7P=gHn?iaj~kh7QTQ*6E2T4&fSf_*Kr49SA9y- z+`QShd){+IBL)05m&ix^8)|Y_AB4QWAZ1whTO9gt1Bys2h*`-qv_2#3y=H<5C2UmL zeBy~`Oh*&$-vCU37okdP&?j0pI?PtpOZHryXx1uj)%q$2$R-P3m8*V)TN+{=xrWqi zG^CeU+`hr^j)btm8oyEUx@ZzglMUl!rUh!j?c#FPMj3D2Z{S$NR!PxbAv{9P$@K#s zQ0y+4XZNqBQ~kxkQ-gZ#M>* zPosD*rgO$(zbZvzm1!`6sfGZnJ6Io*9_j*-UK~k8+|;j5!7KvognS#iYh(k9D?Q^C z0Am=ti=i2IwUr#~>GqK0rA~q(FNGsy!omkPw^d0dahxLpC!|Q({2i77`zC|>JwuN% z_8^eim1Psn&uDu!3&_$OO`yvuhQ?lFtM(r;Qf;}<}jUEC(IN{2M_tF4jApkC9e+q6=^`N1!W z%;g*X^1aLddkuWdHZ+kplK!FLMRN`Hz1|Vl)U$D?jq&77*XR2Usqfuz(_V|SV}pTW zz)z`y_>Jjl1c{qjo+KyBB^VlW)3k6FZk2%S=$H>L5s=WfMK6f}VY^i+=y!I`q?n%E zBam6>+1UwDPK@A!E7J2^$$g`01dt%QVW7_XOS9t&_LbikKVC4@uh{frayf>Z;9A*5 z%+a#nccTt8)cmPh)M!oGzLXwSd#9Cq+g$Z30NBi2?^N7o9wYOkv)0Ne-`5k z#7_Au6j9~K zxifcxX%kkKpRZw0CcqX;VdjABPXkPUk91Zzk8r*WbO{}fbkCIa;MOJBa% z9ChRram<#p2aHYX6k&!Y#hNu=9^B&?pcdmpv{63dh$g|Sfe7y22w&gn6UeoJr50zy z#qj-JFk6oWN7Pa7k&I8{AYa~dF4bS;LPQ6_|R}(CdY*nsT8`CH( zM3f4MIWZ9!DvcOtsqZ?_Pu_06E7WeC3rkJ1I%A%jHi2G$Gu0&dd-wa5@k;x|VQwhE zc-nCfC-(0q*U*XYX+kVlwQ3A-L$!Wpnnrh-e(3qoMAf~At$sxEmX+vV?uC|>Xh@0r zcRU-~W!tuG+qP}nN{T5nrIb>(Z6j4F+qUhh ze2;@qQl z8}9gUZh0I5YOyATCERVTS*h95#HZ{z$@+##aaEySw$lp13CIcTEV}L72fi`eL`QG< zV|f*cXd84v0-L(<)&s;Wp?LcP0tjReV1?Fck0_;pZ%bJD9ikX_k%OOlqp}#Jr1$JG z+P+p{7P__v#YjKw#9D<05b_-4e5Sj^1QSIp6e*$@4KzW_ADE5^tx#YYIgHGr*zWZh z!L!3r?UX*k??K3#FFG$PInS#DBh8%;=H%K25VXZ5>~?L5teGr zAz7s=F72U5&`R&5A^qwYsQT;*nScwN{3LrQJ8_Hnj1FIT^?bnf-Ev=fLbaBkfpI$Gn~ZCcy^AI~f587GC3xW$!gqidHnI@^w3p)k z?@|Jo@c!@SNpZ_^0G2((oKy7(5)>pR87$IqyFLUv2hq4MZ{Qh~%vI7d%{1a5*K-s2 zL1AD~&8mm68h!Os$D_F$)AQ}?CFF;FhdzR3i?xAwaC^${T8K~ad{Ati~6fPQ5U`K;3a zJt!yqY71$gYQ`*iDdU2}>2_;2L3~_FQZb)&?Nu>}H%$eh1{{H&w>{&nE)bvSem{@w`jrF>;W)@~_NoWmrX5<)0o_69mWe7~VJ4O~io#H6q=aoEm zb;8KP%a*b1P4CWmzK}Vgx+tiD|)!AfKsFEvWbNCej%@hX8j;csiq42w&poU;zfLKW8 z4yl=lb(YMV_c2IT3r|~{XAisRGmpKoavcwq{ku!uxmSRB&V08tB(r+l#-hs;6c!Hz z4;Yzid#9TDyS^gCXc1gCPzE8z6i8mNkU9kI)Wc>%f%rE)%b5>nIr`rSE%87m{6AWP z0f!QxiBRK#O@?d|ygo^M8@yrInj>q^@rrR@Jo4QClBeQjC0+32v?-f2+Q+kAa&@QJ z$1ZTWbSXqIax*V+GLm(4Zr7a=Lq^+^yBFPsJ=X`RNxWp~fFDqWe2w2vSZyJX3X}u= z`I<4Kk{+H&^s3j&c9q zm4PgyPZEyY-6lPwBSD8Gd5#8Y%0V*RL1Y?F@rp!kdJFGy(VlasrqdxoSlfqAGC-$p zgCI+?u+LN~y63*5J^_%+6q0s%K0+RkCq&lu$rd~_@|1_-JA7jmT#kVhE|18#+Tl|c zm<`xX))~XVGvLDIOSILY_$ylVC@ll}V#SD6N%^Cz=FFMhLJNfZh!!K4;WDXPYBBy~ zDYfSA)lN1A%_RW{Mfi&a(Ti;I2e4u~@E9GCPZuAaEw-n|HZd~{uedB&YHMlh!rf?o zHoW}i;lUR1JvTZdlom)|D(v zlu8TJ>WYi~_+tjTW1JZ-dG=?^b|{s*TANiaS>7=IS5e)?3KNW%k5p9SNva{1x?DpK zJFc@HOusN&^y1Ksm6NYT|oS)G${Y2xsh;dMZID>~n z@*+uvLXIF;=H9%$D_I-XiP(F`A=?sv7n(R@Vl)xfIv!$LeJ|ayT;f;VC*&(^kWKFu zMeYqvIS@+@(<54>reE?CYaA)Pdc#VkKNYs7fhxMyt?P!`yNHxoeczzlop@B zwY-L%$X0?Ow;Z{9y*eK6U`Dn!EO4|B0k!*F?S$^hS_n{_c zU&8>Gt&2A=BcH5IX5cS&1k)eu7Jwb1O=i%3{Kby2DL|qD*b&N2qF4YsqPe4$8U$cR zh-9LskRYT0>I~H(&Wx_|8dr&OQOy5mS!32#n|khIhn@ z#+s_1zuA$~)cTKSB{><_Lc6Ed0POIvu}2xuSZgnrd*AiMr#me37{sEPDME=h16g-z)Rof``{x6cR$Kj?m|lLN3L6hZKq*iygPk+y-cUMwk#KU_ZmJE8%(F!7(R z-!FCq;QE>W;ra#t+4a*Yi>lZ_r!tA+I(N`_f;2W)=i2>hmIeX0r8vw!4<3G-!}xNq zIkjy|sH|8THY9-wTQo#fO}Qf+$XN_@B{f4MexUMAER-|IdLC&B6Qq+b2vh@gWKS>J zdDQbL3{mKqx`w$hUOrN){gVJLdb3o?Z4@o;Vto^Mr_984luj<}PEDjIf8jusYa)=F zFYv%Uw%XZ8w|g;K&2(8eUC_@bcv!BLjEPKT+_&T7+gK}o{RAhq;oT*0Yl`@STxQy~ zYBt97p|BrZ{f%P77wB+z1yquW0JYv1ly5QI9|RTp`v+b>GG7MfvwJk(N>pnTsy7b^ zc`X>YlT3Kc5C)zeeN@Eh!q4%r4yMSI#pmGaDbzH?V1A`fuRC$8+ zirF%gI8C&--70e9x{am>GupkK0xs9tV~hTkfOek%uG(zDe)oH64|7|zIzmsCNEpss zGkt=MHE$_MT>`xUQyQ^Rb!Wd~BP_{RLtR5%8*=MozHTT!wIiO28DG{e{?8}erIF|! zPH&4811N8larZ@SD%1;xRG2Fd}-@O!F#e3HbxG-QZ zZ%{a*mc zq=;T9=NIudn0>EH3`7_vj|F#8Ve4gf78lO2yoee|I`}jzcrWQA2nD1zkmzfU$W~nU#UR>@2DW^6o4kHvm=;@ zqFqFc86V%p5c#=9`!FSai26rD8QN>-D`v)SMn`-dqyj$#-<2B&clv6(c$D}I{JU3sRFx9WuI99aA7wJ5Z;kLgclSbyjlnU5?=m)3vcNI znl%pqxZw1HPLXCiQITWc<(Y@nJr0U8_Zl3twm#qlR6GvLJUyLPeS{jIP8VmP(tP!t z?IKWr0~b#K;9}o2b^+_SZ1MP>^ns?@6HWT~oZ z^V6^Mr!jygVIjhWp-wIU-a?{1BUlxVW2Y1T;Ac6kggR-PRhzYYP zAE&dT^**%RjS#uONTOzv)sMP5Yc~MzjoL(UD(Zy~I(jPwj=JS+IrVhp_9#Z&Holk&FKDHc!$7fLd(kHVGI)e9WDruD1w_XJCuRGhZQQ{d0DC$ z=rdA$?M*eU(23gTXSc2;e+Y)stnF~mqjwK8FrNnq@7^*%cqakED;|Bj1rXlF{K07e zZlR7`{R`Urg_n$HA?rB3KxI=ku2tJY&Y50D5*EIq zZf7c2VT#4>_eI-8>XP*x_4&lDaW}EakY3e^#&!O>YL{#DMV`jGyPtj61uj;T5?jSr zG8CzkOcHzn%wFrW*{Ze7F3j=ROF~3b2#X^F#B-TZRYgDdA#qdm<5(K%@&dHcAGo)h zG`TxLg><&j1{8nr{x+NdK}p_18@CaeXVncDePJetoB7UBMRhFReTuN`%Iq)P`%dLd zQCPK}#WLB$YINJ-d(luJB9j~w_3j7MBMglX8gM7jQOnsfj~*#enJ5+BY%lmyVoC8^ z+0RhRbLu|P@GjkW)_4E}^Wwe&*o1sF|CxJOKo~P^3;ezi12Hn>MD2wO_OaT))w$ zh+I2zlJtM+F7`1WArzYu+ z`*G``eWt$UOGjvPJz`c#zVRgh_qI(>TAW^*r&fTgkMrYfJ81fP8L%*lHDCb>$AWdMfc@kH z2$9F-^a%X8-mB*udg@@zBKS`QPHcUy6sk>o4HpjFgtogIP2=*b_~q`z7b(A^{orBV z&hX9|3zoOv2U=z&??!Ndxb^_XVgCJr_WvTTf1(%i)s~%>*?!S%Ck*he1yH*>IQm?k z3Z(sN#}aswas%5QOa#qHaRMKpKgZ9?y|=d#6h|bmr558c5Owi#w0gTG%fn>~*n{*= zqHw8CzhQ_OW8AMtt=(sHw{+mb)6o_Ba2?!{`>?g+$ZXWCAKngLb|W*LeKWG%<+;Cj zIXT%`jL6MZPWg(p_G1RC(G3s10u(r7U_ue9rxcEct4{hSRitHfEY_*wbX=Y9pRY)#WJmC)!%#Z=oC|p1W_O)4`95eJgF0=YHg!jF0cGk?aBlse+NYlZdpA!mOC8mMaA|O&SG;jU|(fql{uI z9RRXT_G_2oqW5IKcOxKRS#t@K?`wIupau$QwA8Bf%z2zuYvj^xqxbA9X1F_LIZF=A z(U^u{k{o}K>kIr^S?PvytO1}F6sLM^`OpPRDMutMBmp?I6;nJsj2Qt`ygC(Su>5$+BjhgTZ2+pfqm@dDpqhic`G+9+R#`*T7}SOi}T!;`2#7;0lb#N zeZ!cQyoj)>5o)jzE)Q?tps6^PrLu+JIP@$iDzLgpZGAGZny#4QjmD;V-lKyM0g8$n zW6QGPfFHp<*kI!sWdov9qV>{{oA=KKvNJ0=nV<!Bpq$EJK5s#I!nCsE@|;q%}E5jn+CNL;>o$7o5ilptL^L+B+u5n;*IK%2sVv3=SfxYx& zc!AzT6mYCvshqK8jr{~tb6UouHynC!n)@hfkRYRB<8}FZTWmg<7 zkB2%iG*3d|0;mPWVXl_t4hd)LelAq!h~LzL=8xLK`eJpV#W}IN+uzgzx`r55&KL+- z0)*eG3|Io1d}H^GlM8b&e8y!Hb2?lJeaV@{0=5izE+KDw@Yn^KA3ltCc|q4jcGb@; z2`M<^2eYT&MD)*JM06@YoFkdku3)MP#Ur`rpx@cOtJ>6FN^uZ*(D>H0{X96hg{{of z14#xaFE8Ko&C93(6VTi938xQ@K3@Ak%RGEWnYb zt>mV;DC@sKJk8eb`BCtrpaWn`ShTrEfid*W*|#K`G;ycgqhYVvYB!K6)I(lwcyb6j z&SgKta69UOO-VdgE1+YiPQqh7zV^mVJOFJTMC7LmBx1Ag<+XrE}>fb9} zsOnCd3v^SFQ)qNWs7S5yBf|4{T-eY>=CXKWu8v{BHbzFIai(g~_eX8XCWAeYk|*Ot zzRBW;U_vva8Ai&$D8fa$Z9xqz>X*Mmro80iM|w}UIZ+4lK591XzEQr*ei4`GnY%gD7!$^Px`eHyU5qXDpI-Pl*5y&MNiO+&kxm5D!EODZ1-^y>&9F5Y`i-)HCcMf zp=6scj-JSt+WIw{3|uOHCsIHyLhPHL)3Y2k%apQSe43%RQCcGmTBczSPnI11nC<@o zZ$qB|zT_FN==*CiZIGVuS2};Q37_AQXk7J3{MAk76!81|ND%zxD*K<2_*Vonlw_rQ z1rU6-t&NOk#E$nRMOgG;GI=QUP_j1wqiC14lB!5ohtCQQ^shJIFT}$V6s#qQL!n2O zJ(t7`GH?9V^QRgEI#_2`+cq;T^gz|cZ*OD%y{P&NoL2dNG-H1$P+`tof#4ya$8-6L)baumu!k)-zS}gxHiY_-(zt^ES((;U5qXMJ($Dy>+b^8%G%VbR@UW%nRVbryp1;m&;h2j zfElbRm1g;leN7D6KMXEsy(YmAgk4>YF)$IDh}JvbPhRaY_Wm^>2bl?^fVFo5w&2vP z9?(=-8U)D~s`hRe%fDD+ZBmB0Hp++CNcdT8QYJz*639PQf|)f}YlcQ`_{1fuAhDW? zY~+Y@2FY{vA(PQ5lvH}TUW3!vSG4r&@(@&hTZM*WboCe8NFmF#uClM*K~|A2+B=AM!^x5kt^4x(w`bjj(72qzeqBG)yC1YAeKEPa&8Cy zWPvS%onE5=QlU;<#kDX~I}|ORd;g}5`C4&Wi%X$ zwX=dSGDZjwL37LX^Wgf0M5#&AFuI2ps*&=ia+9#3e~&Iy1WFPGjj~2|m6Tyr4=>cc zF#~p>2n=4|2I1Rj#Hz7P=4ldHRlOb#M=dfPZy6Sw5B<(z6qO#QrVmO3d5K$l7`W9H zkG+J!Sx?drH*uF#KV}Dyweo97pz}>!Jy*w+FOm|#{_+yW7dV^+7tAIl4oHtBJ!wPg zC~}1I)Gt_%-+Jf)UFiM7aMT}QuUv!m36X>G31cYRqJ1PcVRsyZ@rm`-9w4uRdgKjl zaL&0OLWj*&$P}JG*ej+T&c`;4tvz1-MikcNJ@Z`vDNOz+58}V&6#Fk}{HNK%zOnMZ z^rL^h&T@{QRn3;SWbnr5VkLqA3N+iG%R6$qiu7d8MEgkndIS7II4prhL-4rgjH&Z} zkCywlcvLt@S$ydg5AfQXLcL3z7+L7op>cL&pObMFgJ83;DM;F|%*EX_Nuo)RShnD4 z*3IW}U&4Ycvdm1O`NlKKfx7)&sI*AOTtpUa^F;oQSXwn+PP1EG0g4-{HOP;nZJh_H zRVd9ygv0)#vg?+=&k^y>x(Lj%z5l9<9vXAfB28( zxyu;e<_BGs(rrX8z_bk&D)}=332a`nb|cB+eS0>$avKDNVFns?xIX(`$}sm*_3S%;lTId zM@Mx6uH7U!-m0k`Mcs}|DZz;=ZkD)p@8(Dc2PvJ{G+=eP_qRGZ=Sy#*uE0B!nj&Gc zGq{hVR0KP-6OvUit~01L8kfbwJ>r96zn2G8`De5sxg9SFiQjf8(Vi3^&6Yg>?gv>_ zKIi{yFDv`U*!|TF{v#Cuv2y_s8KzE>c9t%dhBlU7|JK$h`B5vt2LDD@03ay&1TQss zF?hw>LWKx72seDO!8A4544EObW9EeMzr(AxR8I(5<~yg_hdlc2oxbj(b|JY3T}rZ2 zu?^#GzfOla6UwxzVymBE^&**P`6_EDF4cI~Y1J`3rQ&YB%`e-gIa9V&1sNJLE6N=) z0f|Bo-9SWqxv|lXV9O+yd@3YujF*8AT7@5`dWGv?EGbc|b**{(GI2nyBbuV)VYepv z2+rhNCuKF5nTA?F;#mlL59zCuO$`M}2nNA$r3@hygdGC}!`s1|d;I$X02M8-)Fy~H!m}{n#B`R$hMuGmvPfE)3L?XPw&q+@E>>rI#CWH2Bx4Q z&-UVrb*LWs68tjN36vyE@8b{CfrJ4>MYdJsH>k*s_ed+o5@$P%W*$~-EK>`87D~gq zVotkS+FeF$i^F6KMPjm1Osx9Ya)pM`lw!O&OjU!a(GD`z3a03VXfYaUN|Pw0dv{b+rClakrh38Jodt&b;vctd zM5^v#Nh>)9gSACQ^MvBm8XpoE47t!lbGt#Hrdq=N(^5)`*2~c2MK}2LG+BSvm8r$g zP<^wC!nAMz1wECFbPy?@>d}mn^3*0%4t1!^&$F6^pvDV>BTmT`skP=HZi08UV(g4J zof#$a%5-yFR?9TZDs_{S{mR|DFo>}AT4<(4kL~uJ{>-p!WPm7>J4+9wd|iR#MD@(CM(B+J^FU3SZcdNPP2~iQ=7%X4Se&BfG4!8 z9imLcfEDNxf+w;o7lJ3c3%PAERgL(PFGo|ze|NNJAcVGvSv8^%OT~Qj_3J`78dTUq z2hey+QL|2jX|u=y?AX+swbVUL zsCXgATm3y-7qDz{zD0v_&seZocLoREPhKN^o{gI3HrCJ2%Vfe~%PwG%xj@!v&`zX=4YtyyjWYtJI4)J=dIkM}+UA8{9tz zH+gKiJBAd?XPr9Q1{|6-A`fh`EL?rEapb1HNdmfmYWAFK?z_4ycvfAFkJUxTfFXjv z*QMC$E0?}_ya0`rqGnXJ{K(krM~5|&1xI-RLwZ2A2=ay6V|#<@3b|_kLVQTx`(cD>e&k}Q zJ0alH;YBAAKSU>p$XB5sszcE5#<5~g>@dP&LvJXZoxPY-lrQ%<4V&9t2sYjG>2JSP zIKcjk3mf1<`hxgR+x}l0VE@O~1yEtZfArbL8d(xDy@wBcUme{nB@mRRUEJ?(e)>!=o@b5Ie^BQz4qacU zptZw9@}_KFx=}x zc10!P!;@{J168~*p2kck4wa^^ICO<e+eRThX~P^jtc4x?L?PrQiy~mOI0;5SuVYC-siX|j zN`@tnh^gXbBqI&T3BHBH_eHv+=%c4JA!Vsr+S)-#F;m6rCg?n*@o1#^l<1Im{<`T2 zM@jE}0&K5>|JW=4uYIcjW^w=A$~Gz%&;(uqCRqNZ^!;E5n&aR*x;Z&w28dwy>k?S8 zj&`x-XY;N0~qXN#yp3FX(MY{HbMhG>{ui2L_Sg3v zfdPRzfk=Y4XrD67Jh$IMCSDEsWL_a=T`|Pz#(jI)3V^_aYF;Hf1R6?#)ST%@3#}|y z=Wwik=e~^7^hO8Ze8KmRCy>9sm-usd{v+jmz%36$XR88%DfI;}J<{LpS$t?uvI z`Dr=Wfpj#hg^oqaMnH#oH|B>W8$vqIxqWGp4%zYko-5AdKJIkakGFSl8#v%FONpUD zI1D!O%|07Hh<2PX#N+8ng^8!PSRgq9S+CJM(xebu=ArR^JpYIU-{Jgulg~X~+0u#V zrm5wB0DGMyrpg!A99HoolY%O;8Tn0`IG83)}7 zsjF?_$|QE0MsERRNP$0?)?$q?EZnyEQSD(^=z9J*a%SX=?}|aH<>RVOg*M;A zOL^Y*0%j0Pmd*~^%2yz}16J?XtxB)kDH{S=k#%d~>j(y2;3PX>~*$q_*QD-;fdI<&Qb^o0J$^!)4elRrWs>S1i^@T+F{ zuS=P4>^dE=Aj&|eW$CQj?0U)jQAL9hFV2tLd719w>K4?wzj$nHEEyfo z=PyY6GUT?xKS<0wIGxArJ2Gdu(SByjqUGn;aj_GMnN;Ym0kv|ri1m-Cb zjFCjI6IPYzH|qqm=HSCD5J_J0aE8T-DG)VDli6(+q|p*0xd=Vx5o+3>->B^=T*5eA z-GzM{XFLmw`rUlLSXod}zuC!LinDx@_a3d8$E;le|0ExRKlEZ8b7%vYT&BQ=J6IK> zl>yn2bFtD*s(Mv?eiL3|b&36J{o}S`)+zvNZ}*StP4;&eBuTsfdde6qH!3%yfWh0? zo)MitJftCLYGNSxpcuhuxE%y4mLN&if+1uiA;GnaWF;ldh1;V<98PBE@u3eFo6WAP z>Efdg=Ika?30>(EeUg=W2T$#c14rZr0LFNx->;Kw)hm8n#8U9^S%+gDuRa<6k`Yj)C8T5#m5-$Wdf8)6J?w zKAGzh=rb0)ThUcD=drYWR%AnZ(5DkqH^mUD9!N9wYQXVSImCM!U~^iR9DF2+Ld_|e zL3P7iB(-x9G!L>1NnOUIpm_OH_=zJh-1)!SM&Mico0%X-cMvPfjoBLFnEuJj42U z^bA(EGyeuagU}|Ep_KNgc z3~_Ouk1`sTBZ)G)k?Eh~XeKP`ESNG8_tnw_<~b#3BW_B-sLCZkJ^+4l zDi(y5laG;&!^w(@F@;BR9+Yp|M`Bzxw_QMN$s)CY-GkwuhpdVIprfXw2sCO=W>ddSAW<@F-Hg_ z<*sT*CZZW{i)yD+g+w|$)o2LoN~(Ti?Y6^w*9E;0t!rtKG8^UL~?&P@95tX)3LR5OfG9zLXR7XN=#nLSUMHNC^V>Y@<4o{_~KaNAT|42T1i>8cJmmY}{KvV#0$)Exejg!T}rXz@r)#3JZS zr5hw`DzTplcfy5+ISJ8&bWpBZVx@%&f^^VwAPp;@!E2aL=D6O_hZeO4GEsC#)acf| z+&q1!h7O1yA1znEO#nLEM{=m!Db>O-(sMSpxM(+0&^T_7xl3XcoZ0V3JU`GkfzetF z5Rj}moB2`X?BTFG{ru*1lMta%Tu>CkhLQp~s*W8R{FtYPlC2z@Zob7d1;p`U|d zV6p<}tOC!BdHMq%`4KeB1|R=?vIm$x=MS;Na$-AveO==3yDm!;!(U0oz@N! z4LFt>B1O?J>_OhoKAv^YQ902`fWcqs(;0QWuawo)BvO^S2=_%3_FkGEky zQ3r?P?gn|`r{#FKW06;YMIDUrwa5CbK&MBoN6pSM$Hj+q_}P(X8^;Oz_Ji8os8Pp<4<_=m4~@E#MT+MIfJ zyHHQG>`x$v=8{=A-_`G(+g8TIl-wyM8-UK5Ca3eplA#F zowE0wDCOqXJ3E$=xD z=_&5I2mW7PuQRwoxG~^bt^B8!IR9-<{B1?}KaI{mTfQ0bziR6!qV`7%)k||)-E@jpa z#AeNl=H6xfT&YBZUXFNB)_+dIPK(4mB3UIL9%h7GmEa$V&6e3Bm`uJTP$Dw#@bN_? z5nC#b2#7#MkB(497Yz|BWtZ=26g#R)*qa)=eFRPp(WPcYS~5FXWNKw`8Q9B3qDCcb z=yka7Oxs^y_Yt%^qp7+opX+f!jWI@KX89y>Pf~9{@yIl@LKbqRb)VY@vL!|(_`}8s z7*s_u8-JT)2TlxDu}Ha5-0I_Uoqn%cL9)U~omsBo;wU zfaleU)Fa0#LoQ(g3F~8S(^K#~gt|i3%yL3gu(gZC4(G+2`>d?a4;z#x+7rq2Uw7Zn(IV$5*P$wT zya(?&+IP?*A%dLu(nZp>Vi{M*^8|&VYeG-c5yfoe06^C3x9wTl6oe{>?MtZJqnDon z)o3@jR1=$S84Ls~e7Q1)0V;O^q3WEudD$c?K50$b^;pb0acd6nz9C*;jL>7IM)wsi z;S@~*bEH%)r(Z>Y^7F$E00ZAnLYv|~d;uNuIa}^1Me@teBMX2lHNTGywGz*tzu;8u z(SGZ|cbZn8s-1fG=ZwrO0#Wrr=?_;g`Kn9dUr;GzQg?pD7XcZ~nT=zah&*5k3yut| zi0}Y~<(8vI}>;mH<6>y^X<-7O!4VJC-HcAm*qB|b6_ECtm!h)NNH$QT227#SH&xb;F3(bflsPKB#Vsj`UH3iRckT$8UNDvdT z|6BG>>XK*>vn_)izR@+7HET~>sD#D|QQdmFh}1I^0qJ~%kq&1bEh(z@VLC2SGIHoD z&t&1JU>i0rN|Q~Fu;!`K+qBga_xEo0LXrn-Ued;;c~|4h_S>;XvI9v9i9DV$@)+^L z#RFF?unzPoI#*oouWR`qbJ^mO`BvMK9u(88#%rm1HW~|$W_WvczYyx)5}Qr)4(0=+ zp%|j}=~t`=_;~<-zT@HnhrUB-2Rom@@50CMN8iBQY7M>5^^KH(D(AqQiDYSG!-zph z{VeOrw20^owI;;_Y%S{p{aP07qP@&%dww7@eUV4pD?8ehZ;Qv4rz=+96WtAMIS31S zKG_+ewo!W_xP)Ca6M#Djb7SVxfr#s>v8)(1-rG_KznPzHE=shFI}|WhS7eLdL41PH zCX@tP!D>TKV$pD#`D)_oIdR=ob@cie&L7f7Ef)l_Vn*>`8S@;F zjX@sG@~x8Q=KDAkNef){*4Qaip4XJ>mjdGc*vcP%N#@VA$2p68(Ht0L$0p~Ep({mE zt`%-R-C2F>0Tft}RMi2Sf$=^aDtPF2DR_O{bp87g@alF99PdXA-z-^tnhgmeD1j|y zu)pV;FocP6(wG_=q@EQmHRq>|%<5!ieYuy#(^-~{8KFMpXqc}8R<9tg!MF!?&*v3x zSc3%qlGThS9+wXDM2>u;01`|AKPoBJTP1LgRgPzokppN2puSdZb=GFsPh(+E(N^@$ zwHZ8WK>Em8RQEWgpOr0i@m!rq7zX8=K=hMTo^ePCY5bXFa9*d_GvrUvv!r35yr1f2 zJn%5n;cbd!V)_WF3|5Kw$~q6aC(*QPN+qNJ!XFCVu+so~TJ?|BfxoTo{`bQFxnlOe z)^@@Fr?y+#@Q=0Kpf|FA*LG<I@3-{r{-#{t=%4tnDg|06qs4-riE45{Q6+9HA8fR<@SegMfqZ(8`Um zybTa(tFU|oK51mwFzD^27^XEjYAPZ0j5TjByhi5h%f}}$19Z}mA%DB0J3`@-(Nk$V zSQtC?)`HP5claj({5PI4RVjh4&uS6OCfrK`%FhjUMT5Y0OSfiU8bg&GF0z-L^N;du zEsxCU1u+;U=G+aw&l^E3x_ikBX$Xk~^i}CyM=WGXUI>L&9ZDl8BTy?>KxA53m}$Gd z$86X<@@rW#pzyYg8!%Jy=i(;5%D&tthD1`tGYLujFpwBz_>#|oq~Vr?V{2CLEnS#g zc1Xs5y3XG0n$HR=G*xdW&5ZRepSvA=ui)foH1kK{m39d7mTtwIuOO>{+a7sl3Bhcg z>J3T}H#v{Qc~A{&Pf5*dzzcHy$FfN-dcIl20n9BC-NK54sbc*PBB;c8$ce}Z-?>5~ z%`3wh2+DYf-#OT#AuhBqhUvPQUG{Wt`n)qaN+PSS;5?N+T}$KR9!CV!U;bt-EYp{< zg8+Fi_m6r1w*}%q7WU8S{yzoc2MHh4?mr5|+NeRF4Z8fI0?TL++0(xJeGA6l5D(L= zuR@5}>`J|Vb!`8Lkt+&u$CNBIVnUvj#ygla;aU8Xiq?#ioK2;8HwZR+pNTxK<_D`b zVtezJ@xYUT zlc9sd|L`X2wjMaDsD9@0E{(O*d9q0bDmIOl*^d^j0iP|bt7Wku=wz4bf~U07Pvqh$ z(^5}=+E}2fC@5Y+qs-)d&LP5A6_mCr_9^-P;Qw&@p#1(c&;NFDd6}NNxcXy_8{2PZ zwB3BH?Vfi((|i8}``!CZ^h5Hty=7ftH4m(;p#7NJOM2XOiE`3u+F6|3raeQ4OD$v=2Mt?K{ab&$FV9DNnE{8a+GUM zFhMQZuAiXPu3|B5I}MhY-^v2ULJqr%rTTb`JW+e;$G+KF7#A|OD&3O%&a>&~Zwo%O}1G{=)uivRplYGirWb1u?WCUI18K3l}SChW*yid|=&MwHK{ zNR3L)LP~orPqVBgU3{eV$F7o-I4;tR^GXW)RZ;>z_PTS8g__SuHL6XCCj63KRK6M= zV`D{Exy=IeW0B7jR#LUoVtV$eyLpMT3Rm^~9JE~CD!VZrH8$S1^57_u=-M)aVpv@C zs%k0D$r9#Ida$<~<+Im=2Ii7g2!h{{T_jeAKGLYr<-Kn*)v})u;C+qYKy=fv{ z*Fbego0#hpTCONfd9N!Lda)eOw&3oyIH*r^IY9-!V+48=Xa8u?J7dS1-MIc<~bATD`dt^c$o93TKUm9bhd{GyGbu|&I6w6?hW7~GkafTWM^crP}iQftc+}~ zz4r)_u1#boWv>ufNp|)gMIkGDrBV|9KfUk!?_P21_}tIuD!=bJzvrCioae0PsWRf( zewk`8uOIUv(|@ol>EkQGuZ4~YpM32Kwcbo$n4rzVNx$n!oTAOeH$2%=5N;PmIp@hQ zI)66gm2mzD^y4yXlByziSy45ahS{pn=jxs53C?Bd<$9GwZQZ-}i6Y_tb!+PJUnCOL z@M&Vb9aP_bIG_2oukmnQA=KeW z=E*ZpDa2=Ix@1XdObJz(%a8ubzh<%29OCu_s?+Yo8@=qs>M&Y{O81(#`QF_OGb{}; zZmC#`N3RFNK<8iZ6wMLqh<&Gg4Y(A;?Gh7eS@7iOE+b$SxJBs6Gf|vzyWe^&!W$N2 zL%BF8BH6vg6_vJW{!I^q#0eyh@hGFq>2ixAOaqtB8H~8s~}TE`P8ZNkT!zv z#P&l4wX&`w7awTS@3H0Ju&X_Gu~*BJxH>1G(tKrLjqU9c_EU>3n)=J1#ct?dopJJf zCn~-(G(F(z^;y>^cb2PpbcsGq<}&`k9%g}pW9CXNC;%rNoo4Kg^i`hO%KUSUP&QeP z4|hZdc)iGDBsKC3$SEE1tUeDgWUBG#CwbGyrP#BVJ!n1iESNlD*4_=bi`RR+w$9Fg zmdviAxpKb65R@qFMq65BMZVnL!RKC%J0-uJ9Ep!7VOGwOr6b64IfjBXaJ5gTQLpt& zQsbgf`5;5IxghVpjCrkmbM_W{bOo+3`i?7ERHSuN*51E^My<n1-?KMR7ktUY_wsdl>JkP7YpdGywj(!@F}L+5xr}Z=(uP3*af^5C%p-MJ zAQNm+78alg!nkkqEyNV>@MhQ5_lCPW;v6>LHi^kys$&yJ2thrFtpd4K4be*-}NjvXLFGX5PpcC>w-Fv{F4v_Xpb zWoNgFM>B&QW1dt7;y$1~82Q$GN)@c?@v7FaLQ!`{0advThN!#j+QjG4XX7EOnN@NA zVY0T8vg78ZW)jKt8;)0k#j8sxc>KT7)W0w0p2jpkz~5iJfz`p0#x?Ei;1r_s8ns^D zFrC!@b9)+I6`IaEueUG#uAa|iI2)EF!lnzfRcykX`(3G7R* z6hhtU{U|L4byu%N@D+se!4!02`5w8>THN{9_Pb!zqKP-Y^*d*Q8f zxE=>4#1gZy+AS58yz%kLXvA3)Tj}M`Hj*wk^bM^x$B5;#6D#f{Tn)#Lo=aAt`Q(^Z z4r;fKTX{>%Dli^w5&!h|E7U|BHtZ*FAP=(63hNaLd_cb(#iEE~c$S*ipm-lTX++s= z#v$#v#Lw`^{NWF#ghSnq`KjH5A6^A82|ne^u9u$Xo_{6w*cLPt*~lU^U9WEV__qCR zXQ5Z#YtqxV^Ss;KEyBmTc*xe6-fCIU+!*#}Uboa)bfVHodC=Wc(~0VWojB}|=ZoEE zk~E4ce+x3RMR8Q6kRlb`Ai!vzM7sEf#AyDfN)c?uyEl}bsAUQL%(`Pai_O|^%wAQv z5HS|Z6^iw!b(c^fO@va0#hlh4wNWg7s%fe=K2MAu@Ea5Iu!2f<5qc&vbHx2Dc$$sCk>$)8%{%t3KW{A1bQYfMeX+_7BLhTs9?G z*Tb#H__VI$S)|`*&njH4P%75U=DkG7#hIVTbv{r=t@Q0V*1}hr6=%hih6=v0R;;Si zE6x$QXq{tPjaTDY6wG2GG~?f7dz$isr9ddH)0Rwc2m-6qz3#puUl1V2rBQm{XHF|m z-JOL-xe)p`nUh1xwkVgY*M!I*)o-GzGA^TU*=2-pT=$uLkBhD=jp7PfZ+evosqF~U zVY>24X6kUy#MrljB6MA6f#JvJ4T?&ra?)4@4XPuTYdH(PI~Qqk-QR{m4czlSJ_npU zv9A~Yl6(>(#j*yJ@-!Kta;As1#6W#<*PYLV^PhFRo&;E$pw`3dw6XFpS>~wy_~hl z(_^Zm<(G55MtV7GjO^70o4VR(*;w+iI3ta4M%2mOO2uO8qG-TreQih0+KeP-zb{Xb9SsK_ib3D z4bA)bec*e&g+E@3qNR}244$w@X7VP%Id0=^?lvNHUuP9C#aq$}v-?31m_O_c>;;k5 zJ+Mj>VT*@&$z$qvvWdGSI37H9O`$=wuwq;So{G8bATW$mnmCViB18@Sol|O(M8RXU zYn5|6+s@)a*09A{k=u)NBBA`a8qT<`j+7Ljg}M13oYD+|(q5@1X)~NH{J4vhER-yu zKK>paedA=PSKy2+MuJInNoT0&wKq%~S2*1w#6G1m^lNsz4yDc~MfG1!@>8l5p!ID# zKhy3>x0p)F+Eb`?FDsRMP`;c%Y9JbwE6w@)Q>KFV(Y(!Xtlfx;1<>s1YVo-CNW?a# z8&y14?Ky7=$M558yQbPUJqUg`Am>F(q{0BRE^Nc~aXuqFA)16HDvnVjF%?lSIR7!Y zTBGkgn!U7fr8gG*GQa@GiqIF*=seUIWb3m1d1NhbUnm3%XPTrnDpJ9XKYE-iOw zWzDYhNJ*|G7<-RH^&P>2+{UnP270=OvGDKeh-3q+Ms#k+;Pbxc)wyZB0B^JYzUcw@0( zoIh@Y%x0!`^UNsjrLfzXMoXrLwP4V)37+=+S+ad{;2iryJT-H4vVBPS0TvWw)n~Af>xx@8|+E#3NsGv^lg^e=6ZMk^nY}-1=NcEG~TrQ_75qY`^}QDaSyOE`!S@ z!uQJbma3b}rY}t&cT?S{-nF{DF2G}b(82cz4<=a}_6&i1$X?;F*MM)^lJC;`E<0K3 zOABA8(3*%%#`gXX=W+Wd+CFR~GRJr7XXf4{yr*qnarPnI2xqrmGqaxevlPQDwM}j@ z2%%rLU=*4u3hOJw$Z*`gaIikFZgP*QE<6ojOfq{KO#LyYX z_X$t!m^Gkg?k?7D-Uzp#i?x@vNwi51RTZ#cYQd=C92ae{n&>MBFe2E>ts9v&BXpJt zb4}d%?n79x^xo+edz2}C_4^cI^hI-qKCkM%59IKnf9Xp{K1dZd%#6Ttqwe`8cZ28V z=1cK|gRe7;C@((Rg7j&W>Y`Y2y~CxK4HaWQL-48bS?0<~iQLNS1H8Uj`KgSsj)wWj zhK4oy;7_11hzDin*FIJ*l-iII=f0Tjj+6Sj(ZtzMdg&_WYMY(frOfUPCG8r{FN(cLq0Fi|!_GPh zUsN&3vW*9c_n^8GmxxEGhH!0z;zEm3r;X9Y5zq*Pp6xMvjxjpMcn zDzTxdN+-(=zRk%t*m#>WLJd4sDtn(-ZO}KD(NtV3Q_wo=X^EoJ=d0>*tTHa8LKbng zOqjJ=+cDWR7l&8;8F)eD*lJpO!p1r8+v0}t-AOOMAX7ySdL!9qm zcJG{4&XY4Lst#FlK6^NBVJ$UpJUvjC4duqip9eb1y z={7lGq331eQ9i;|HD#kw_6`CyWe-h*UBbqiGK9?A!KwN9ANZq3-bu?kMX#mWt>HY4 ze&QJ%K64&~A=N!g;$0ER{qB|a7$asfH0@^N%iYQirnwE~$cQ4c2=#UQ9;^WKADnj? z+@pkzx*^}}T#G&lPPM7|`qd}y>p$@$W_iTnZny_pxbfgaViQwoHQU89N>z)<3lJKd ziSOnn-OJvt+^Ni|ee~|!=*tC*1k4lFX(+pvgtA){Rtje}1mArTyaqiGirp`fQsrt5 z>YJs~OTGxE4wiMzw(PVaZFugpp7gSg2X~-&76g^PXE_V&t+xp6laRiX*x>&qfZhBf z?&8cVNm@ykG^ee6Fm?M;a;dA1Wfe9cEn70cA(oFiqw+N!RU4u*ZN9j9eu|s;9h2J^IzdyZo|Kq59 zjPTqGI;cRd(ET5&0`1qO7>!>#(kA&ujPdiuc+yQv`FMRypZRva^P0r4v*?bJr-~&s!`ZYxRSz z+B6vZF=EPZ(**mXst4DBpy?O}c4QG&bOo+l(;D~@R{XF>!+s%#M%jjsKr;)@erM>! zoVE+^zxed+>jX}A&C{?xhH1X4xr@c~R2WX@la~C@g`Fb~bOgn$@zC7#wnVTf&SNup z4M-n=hc+HRC$5V$T(K=s>(wo?c~(K^gLm+x?cVsa+aK{L&po$oViSyiZ^1JKg()U{ z5m+v?yQANO=kmh%-u=%5fWzM1kb&~4$P_KQ?9_lBlYH+p!XiOK*X~>s`4P7B_*tK5 zh%Gqj5!qKpOjQTN){R)%inzI)iw^jkBhM9jX4bvyzJ!>x;RGyxL_0Kyu)A46(qN5gz5bpBgzQMBH8pi%A0!OxS3-2wAFNA5l! zBE2Yb(n&;DSKtt`w4^~$P?&CdFR@eUH{W0Sl>o(3ge4y{%USdqcAc@f&r{yY zK}brpc{+avwjKsI6!KhWwA#%(mJjv)h^K((sKjXh0=@Pdy#|QPj@-cfMT^clp7Sq3 z1_L}<7w}kP_!El!*Mxh@Yqv^fY9$ibo8pJ+NE%HO1!Wdb<&K+Yqw6Vc2 zSRTA*RfL?cFI3IJ<|Nv=+6~&NqkXr!?6PiHymxN@h`$2;PQM@<#K`}~=^NhBl#LT} zV&&+(#4PYR{XXug^44@QF|!52yQ?~y|2q?p(y(}v z2=3+LHDxbf40{(xc!f)3_BB+|gJQP7T%b%YYuPd&{$n4xJ#`V^gR~cx3+a~^`_}vq zKkicBwige(KqbqGlLGFl+^L*{^$}`DaKWsKZBwe2*ZE{@8Vpx@7iPeB)ZGji#r+kN zeRCdCGS2zE`q0-gYbd)|VvE1V*uGTHzdrS;$<`2x0 z#UE^!bt&lUYq!poj;FA?T^R1JV@YsLFbMk@F7|q1{f4M!;7%XpgOmIV>tdn1Hc4*m zm0qgjYiV00^1~4;k8a?%b}o$0y2Ow<)3Z` z+k;Ek*xHECGES)j)(7+k6U%FO=YtopRuvC?PS+#0-&V7<985e+tnExp?V!hQQY2`0 zI}BeZlz0P~TL4qzC@PW+Ws@pQ#D{Xx3)N||ODV7$xGm;tH?cVft>2g|2d-*kUUi$q zJ9iK3+8}{(3&j@6Efmv*Hav$1IAtl9`8^lX_+7aI4)>uHjk59RpIxAe<641BWbexM zi%^5qgNQ#Sex@Fpv{N>sS8XzAe_OFuRrxv*Z+uN`HT`Py&W1v@ndnePVY6T1SfTfw z61@RGvm$oi`bqb*3p*6SgwnD;?Y7vhJ^{{njxqgPJEXEde5)+!E$F#%=ICniPLP^+qQ9m;zXw-YK} z2rFY^ak_wgewi}b45k{bDj7`*8Gc*h{)Sm%!+qQpI=ua%w$XgjV}3oVFV!u{8?&z8 zVc4crr=-{UUZij>wS&e~g=k0g+i~7R(mc$qkEy>J6eurqn7s6euv5c)3s+Q}75h>= zsVj;DWh!d|Avdrtk<-M=H5fO33JO>nzC0lJYo zgc_N$$-8HvK&;hChr=VvhJ~_>8N56l*4+E58Z$K@+G^@%eg+k2RvjhQ^dO0+;ymR% zIlj^^nUpeKPMU_+;y(f0YcofcZUM^40n8h(E1y9nMIlAO0)Bp^$6W@RF$(ZsKNB_z zpuGr5RaO(sr3jI`bkOztqgP7AL*#)!Kl+d&JSGAB_Wws!!4O3`Sq)8YRk@?gaZqr6 z{_V$qGym^Fz*2xqZNPUMK%cxWA$tZN?gmH$8E3U%?YgSsJo7KHFDIWTDcliz>O znm9N(y8U#a^b_-+%#LQ-gVUT@hrr{dz(YsT!G0xGWEce#2Xi~9tERUT)b*ck4!$yu zz#SzM-|_&&ci^Z3*DosYEeEKhQ_F`KrsHHZm{^GFIe-=gs`%)P&##mR{0ma_@$dsD zXJGOTJKM?ZK|{U^iU4;TDC$)NwimGNa4P%Xa|{2i zc`(V^JGptQJK8}tp!OyXZvQ#OI$jIs!LcODKyHUXZeWDmE&-mD|2j9opmG3K!ClJR;1AGs!J)V(;J*Rby#V`Y#QK%iftYuv zvbCY6a@KZk{~hu;USix&QFr+PDh(hc#P&}`jGTJpuLKD8^IxpI<6u$ULg6D5_6zVi zTEhC3a!HVb5s&8_=XyQCX{!a8hJYB3j<@_uATs3Kf1A+B(lss>n^gm3Kn(P&^uL(E zw~N3|7@~B+uHFu2M}AxW?}FrbA$#tn%h&)keL!7k5on!2Uv&Zv?yT8y7Km9Vd=g;j z058pezzU!_k@dU$PV1);`^_RCq7!1#%%QGkF4j(NjxN9To7GqDU`+s}NdQX4hfu0n zWEdsaqaZ|p>qeRXqff4nxdsi>TLAkGAVpCGJ}n)RVgmf@E{?#FCO2<+7e{xeKV_4S zd4u^OfFA)qM;9`Fr89u6PnCwIiKU&j>7U@yjU2_6K>7WF&ga4}GVpEhH~25dYDZ(r z$ugnqPrbSXJbf3C3l##doauOBk?H&jipS^Y!1D|M2M{J)ngy(S#FzeuBW(q^C_1@N zT&@GnTL7W}fYHODP*9dwPJ#Vw04LLoQR^*^j+1?clmDjNJ<48+?q#}&!T zl0Z@p;2!x61BwQh1b~j@PwbP+i_vIv`xQ{V)WB$hSjBxnr-#UthXP)ntj&JwhECH? zpqqqCb3pS%*X+?_1!@r7NPCO`;G096P<7+Ly%B7)7_tUZ3( z;=hkm@GT|&yI(^az?J~=5JbqM!{Cp3{O6Gdc^0xD1JW@7uLVdSP!72C(eO`MNLf3W z1M3|~#_g93?$0U#CK-?eV!g7O{3RWE@fRkaS55*Mm;)Ig>XL-%pE5vdy|`M;(t-h~ z3(!#_npm!8e*z;B$okmlpd-hxSO6MPh0a0$gheh1n;ZEDQrIXcc7XCD_QD{GQ^{Ix z)^;b%-Hu|a>}m~|%mAH96kxO?+O9>8C-P1SZ3VCDM_geM9`GW-r2)8zbHaJ|KXQ$L znWob}wv9E^^*A~_tSzn*Kp*WTBcfSu{TYoA8Rj?|KD0I>S}5qxXoR>3@aUsSGJMct z#3uYQ^hES&k-CqA;X|0R!YMWiN__+pFk%Gc<52j}n}CrEm$2`h2>lfc^*9PXgdn1d z<;EUIAub6Z?DikW!iQ!d6B>yt`e*s{c^@JMBbI(eRaY^xE()XOH~!{z^}t9!DZI zDdGLEGW?cHClEy%+j0u?cRxYL zq44e!5OqSa^Azac_f+t{0T4^P+VvOklRGTMQ~r%uHpo4CUt-$Z=>vG;!fA}uKVVH-rQ^M_No|80vPH8kK4 zl^`|(>b2jwrySflURm&m1rVVT>!(0}Kb>+M3cqcSXl`I_{RTbx)WLBi{Jtrol{Neu b^7P&R>&oaDM@qlP6 literal 0 HcmV?d00001 diff --git a/lib/javax.servlet.jsp.jar b/lib/javax.servlet.jsp.jar new file mode 100644 index 0000000000000000000000000000000000000000..9c0631cea0fd56031db19fc3edbb4db4bfbb923a GIT binary patch literal 78836 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 literal 0 HcmV?d00001 diff --git a/lib/javax.transaction.jar b/lib/javax.transaction.jar new file mode 100644 index 0000000000000000000000000000000000000000..729c6952389cd4769d5d840b3d1a7941b3c0f63e GIT binary patch literal 9714 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 + + + 4.0.0 + com.endor.webapp + endor-java-webapp-demo + 4.0-SNAPSHOT + jar + endor-webapp Maven Webapp + + http://www.example.com + + UTF-8 + 1.8 + 1.8 + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + org.apache.commons + commons-text + 1.9 + + + mysql + mysql-connector-java + 5.1.42 + + + com.mchange + c3p0 + 0.9.5.2 + + + org.jboss.weld + weld-core + 1.1.33.Final + + + javax.enterprise + cdi-api + + + javax.annotation + jsr250-api + + + org.jboss.spec.javax.interceptor + jboss-interceptors-api_1.1_spec + + + org.slf4j + slf4j-api + + + org.javassist + javassist + + + + + org.apache.logging.log4j + log4j-core + 2.3 + true + test + + + com.nqzero + permit-reflect + 0.3 + + + org.jboss.arquillian.config + arquillian-config-spi + 1.7.0.Alpha12 + + + org.jboss.arquillian.container + arquillian-container-impl-base + 1.7.0.Alpha12 + + + org.jboss.shrinkwrap.descriptors + shrinkwrap-descriptors-api-base + 2.0.0 + + + org.jboss.shrinkwrap + shrinkwrap-impl-base + 1.2.6 + + + org.mockito + mockito-core + 2.28.2 + + + com.google.errorprone + error_prone_annotations + 2.7.1 + + + org.webjars.bowergithub.webcomponents + webcomponentsjs + 2.0.0-beta.3 + + + org.webjars.bowergithub.webcomponents + shadycss + 1.9.1 + + + org.semver + api + 0.9.33 + + + com.google.code.findbugs + jsr305 + + + commons-lang + commons-lang + + + de.tototec + de.tototec.cmdoption + + + org.ow2.asm + asm + + + + + + + endor-java-webapp-demo + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-war-plugin + 3.2.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + diff --git a/src/main/java/com/endor/AppServlet.java b/src/main/java/com/endor/AppServlet.java new file mode 100644 index 0000000..0e851f4 --- /dev/null +++ b/src/main/java/com/endor/AppServlet.java @@ -0,0 +1,170 @@ +package com.endor; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.net.URL; + +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; + +@javax.servlet.annotation.WebServlet(name = "AppServlet", urlPatterns = "/AppServlet") +public class AppServlet extends javax.servlet.http.HttpServlet { + protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { + doGet(request, response); + } + + protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { + //response.getWriter().println("Hello world"); + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.printCurrentTitle("SSRF", response); + + String form = "

" + + "URL: -- (If ssrf=file then inputs will be parsed from the file /opt/ssrfinput.txt)

" + + "Https URL:

" + + "" + ""; + out.println(form); + + + String loopback = request.getParameter("isloopback"); + String ssrfUrl = request.getParameter("ssrf"); + String httpsssrfUrl = request.getParameter("httpsssrf"); + + System.out.printf("loopback : %s\n",loopback); + System.out.printf("ssrfUrl : %s\n",ssrfUrl); + System.out.printf("httpsssrfUrl : %s\n",httpsssrfUrl); + + if (loopback == null && ssrfUrl.equalsIgnoreCase("file")) { + BufferedReader reader = null; + try { + reader = new BufferedReader(new FileReader("/opt/ssrfinput.txt")); + System.out.println("ssrfinput.txt file opened successfully"); + } + catch (IOException e) { + System.out.println("Failed to open Input file"); + e.printStackTrace(); + } + try { + String line = reader.readLine(); + while (null != line) { + System.out.println("SSRF being called with :" + line); + UseUrlOpenConnection(request, response, line); + line = reader.readLine(); + Thread.sleep(2000); + } + reader.close(); + } + catch (Exception ex){ + ex.getStackTrace(); + } + } else if(loopback == null && ssrfUrl !=null && ssrfUrl.length() > 0) { + UseUrlOpenConnection(request, response, ssrfUrl); +// String countStr = request.getParameter("loop"); +// int count = Integer.parseInt(countStr); +// for (int i =0; i< count;i++) { +// restCall(request, response, i); +// } + } else if (loopback == null && 0 == httpsssrfUrl.toUpperCase().indexOf("HTTPS://")) { + System.out.println("Inside https://, calling UseUrlOpenConnectionhttps()"); + UseUrlOpenConnectionhttps(request, response, httpsssrfUrl); + + } + + System.out.println("Executed URLOpen"); + + } + + public void UseUrlOpenConnection(javax.servlet.http.HttpServletRequest request, + javax.servlet.http.HttpServletResponse response, String ssrfURL) throws javax.servlet.ServletException, IOException { + try { + response.getWriter().println("Inside Url.openStream"); + String url = "https://www.oracle.com/"; + if (ssrfURL != null && ssrfURL.length() > 0) { + url = ssrfURL; + } + URL oracle = new URL(url); + + BufferedReader in = new BufferedReader( + new InputStreamReader(oracle.openStream())); + + String inputLine; + while ((inputLine = in.readLine()) != null){ + System.out.println(inputLine); + response.getWriter().print(inputLine);} + in.close(); + } catch (Exception e) { + response.getWriter().println("Exception!!"); + response.getWriter().print(e.getMessage()); + + } + } + + public void UseUrlOpenConnectionhttps(javax.servlet.http.HttpServletRequest request, + javax.servlet.http.HttpServletResponse response, String ssrfURL) throws javax.servlet.ServletException, IOException { + + String hostname = "www.verisign.com"; + + + String hostname2 = "time.nist.gov"; + + String UrlToOpen = ssrfURL.replaceFirst("HTTPS://", ""); + UrlToOpen = UrlToOpen.replaceFirst("https://", ""); + + try { + System.out.printf("Opening SSL socket for host : %s\n", UrlToOpen); + SSLSocketFactory factory = + (SSLSocketFactory)SSLSocketFactory.getDefault(); + SSLSocket socket = + (SSLSocket)factory.createSocket(UrlToOpen, 443); + + /* + * send http request + + */ + socket.startHandshake(); + + PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))); + + out.println("GET / HTTP/1.0"); + out.println(); + out.flush(); + + /* + * Make sure there were no surprises + */ + if (out.checkError()) + System.out.println( + "SSLSocketClient: java.io.PrintWriter error"); + + /* read response */ + BufferedReader in = new BufferedReader( + new InputStreamReader( + socket.getInputStream())); + + String inputLine; + while ((inputLine = in.readLine()) != null) { + System.out.println(inputLine); + response.getWriter().print(inputLine); + } + in.close(); + out.close(); + socket.close(); + + } catch (Exception e) { + e.printStackTrace(); + } + + } +} \ No newline at end of file diff --git a/src/main/java/com/endor/AsyncEchoUpgradeServlet.java b/src/main/java/com/endor/AsyncEchoUpgradeServlet.java new file mode 100644 index 0000000..c679803 --- /dev/null +++ b/src/main/java/com/endor/AsyncEchoUpgradeServlet.java @@ -0,0 +1,79 @@ +package com.endor; + +import javax.servlet.AsyncContext; +import javax.servlet.ReadListener; +import javax.servlet.ServletException; +import javax.servlet.WriteListener; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.*; +import java.io.IOException; +import java.util.ArrayDeque; +import java.util.Queue; + +@WebServlet(urlPatterns = "/upgrade") +public class AsyncEchoUpgradeServlet extends HttpServlet { + private static final long serialVersionUID = -6955518532146927509L; + + @Override + protected void doGet(final HttpServletRequest req, + final HttpServletResponse resp) throws ServletException, IOException { + req.upgrade(Handler.class); + } + + public static class Handler implements HttpUpgradeHandler { + @Override + public void init(final WebConnection wc) { + Listener listener = new Listener(wc); + try { + // we have to set the write listener before the read listener + // otherwise the output stream could be written to before it is + // in async mode + wc.getOutputStream().setWriteListener(listener); + wc.getInputStream().setReadListener(listener); + } catch (IOException e) { + throw new IllegalArgumentException(e); + } + } + + @Override + public void destroy() { + } + } + + private static class Listener implements WriteListener, ReadListener { + private final WebConnection connection; + private final Queue queue = new ArrayDeque(); + + private Listener(final WebConnection connection) { + this.connection = connection; + } + + @Override + public void onDataAvailable() throws IOException { + byte[] data = new byte[100]; + while (connection.getInputStream().isReady()) { + int read; + if ((read = connection.getInputStream().read(data)) != -1) { + queue.add(new String(data, 0, read)); + } + onWritePossible(); + } + } + + @Override + public void onAllDataRead() throws IOException { + } + + @Override + public void onWritePossible() throws IOException { + while (!queue.isEmpty() && connection.getOutputStream().isReady()) { + String data = queue.poll(); + connection.getOutputStream().write(data.getBytes()); + } + } + + @Override + public void onError(final Throwable t) { + } + } +} diff --git a/src/main/java/com/endor/AsyncServlet.java b/src/main/java/com/endor/AsyncServlet.java new file mode 100644 index 0000000..789dc6a --- /dev/null +++ b/src/main/java/com/endor/AsyncServlet.java @@ -0,0 +1,652 @@ +package com.endor; + +import javax.servlet.AsyncContext; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.*; +import java.util.HashMap; + +@WebServlet(urlPatterns={"/asyncservlet"}, asyncSupported=true) +public class AsyncServlet extends HttpServlet { + /* ... Same variables and init method as in SyncServlet ... */ + + protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { + doGet(request, response); + } + + + @Override + public void doGet(HttpServletRequest request, + HttpServletResponse response) { + response.setContentType("text/html;charset=UTF-8"); + // acontext.dispatch("/booklist"); + + final AsyncContext acontext = request.startAsync(); + acontext.start(new Runnable() { + public void run() { + HttpServletRequest request1 = (HttpServletRequest) acontext.getRequest(); + HttpServletResponse response1 = (HttpServletResponse) acontext.getResponse(); + /* ... print to the response ... */ + try { + doGetAsync(request1, response1); + } catch (ServletException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + acontext.complete(); + } + }); + } + + + protected void doGetAsync(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("SQL", response); + + String form = "
" + + "First name: -- ( For SQL with Update)

" + + "Last name:

" + + "Password:


" + + ": Stored Procedure
" + + ": Statement.executeUpdate(SQL, column_names[])
" + + ": Statement.executeQuery(SQL)
" + + ": Statement.execute(SQL)
" + + ": Statement.executeUpdate(SQL)
" + + ": Statement.execute(SQL, column_indexes[])
" + + ": Statement.executeUpdate(SQL, column_indexes[])
" + + ": Statement.execute(SQL, auto_gen_keys)
" + + ": Statement.executeUpdate(SQL, auto_gen_keys)
" + + ": PreparedStatement.execute()
" + + ": PreparedStatement.executeQuery()
" + + ": PreparedStatement.executeUpdate()
" + + ": storedproc.executeQuery()
" + + "

" + + + "" + "
"; + out.println(form); + + if (createRecord(request, out)) { + return; + } + String first = request.getParameter("first"); + String last = request.getParameter("name"); + String pass = request.getParameter("password"); + + HashMap sqltypeMap = new HashMap() {{ + put("storedproc", 0); + put("executeUpdateSQLColNames", 1); + put("executeQuerySQL", 2); + put("executeSQL", 3); + put("executeUpdateSQL", 4); + put("executeSQLColIndex", 5); + put("executeUpdateSQLColIndex", 6); + put("executeSQLAutogenkeys", 7); + put("executeUpdateSQLAutogenkeys", 8); + put("preparedStatement.execute", 9); + put("preparedStatement.executeQuery", 10); + put("preparedStatement.executeUpdate", 11); + put("storedproc.executeQuery", 12); + + + + }}; + + String sqltypeStr = request.getParameter("sqltype"); + int sqltype = sqltypeMap.get(sqltypeStr); + String retVal = "Failed!"; + + switch (sqltype) { + case 0: //storedproc + if (getCustomersStoredProc(1, last, pass)) { + retVal = "Succeeded"; + } + break; + case 1: // executeUpdateSQLColNames + if (getCustomersUpdateColName(first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 2: //executeQuerySQL + if (executeQuerySQL(last, pass)) { + retVal = "Succeeded"; + } + break; + case 3: //executeSQL + if (executeSQL(last, pass)) { + + retVal = "Succeeded"; + } + break; + case 4: //executeUpdateSQL + if (executeUpdateSQL(last, pass)) { + retVal = "Succeeded"; + } + break; + case 5: //executeSQLColIndex + if (executeSQLWithColIndex("execute", first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 6: //executeUpdateSQLColIndex + if (executeSQLWithColIndex("executeUpdate", first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 7: //executeSQLAutogenkeys + if (executeSQLWithAutogenkeys("execute", first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 8: //executeUpdateSQLAutogenkeys + if (executeSQLWithAutogenkeys("executeUpdate", first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 9: //preparedStatement.execute + if (getCustomersPreparedStatement( "execute", last, pass)) { + retVal = "Succeeded"; + } + break; + case 10: //preparedStatement.executeQuery + if (getCustomersPreparedStatement( "executeQuery", last, pass)) { + retVal = "Succeeded"; + } + break; + case 11: //preparedStatement.executeUpdate + if (getCustomersPreparedStatement( "executeUpdate", first, last)) { + retVal = "Succeeded"; + } + break; + case 12: //storedproc executeQuery + if (getCustomersStoredProc(2, last, pass)) { + retVal = "Succeeded"; + } + break; + default: + System.out.println("SQL Type not found"); + } + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + if (retVal.equalsIgnoreCase("Succeeded")){ + retVal = HttpURLConnectionExample.sendGET(); + } + out.println("

SQL execution " + retVal + "

"); + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + + } + + private boolean createRecord(HttpServletRequest request, PrintWriter out) { + String fullName = request.getParameter("add"); + if (fullName != null) { + String[] firstLast = fullName.split(" "); + if (firstLast.length == 3) { + insertCustomers(firstLast[0], firstLast[1], firstLast[2]); + out.println("Added " + fullName); + return true; + } + } + return false; + } + + private boolean getCustomersUpdateColName(String first, String last, String pass) { + StringBuffer sbuf = new StringBuffer(); + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + String[] cols = {"FIRST", "LAST"}; + String query = String.format("UPDATE CUSTOMERS SET FIRST = '%s' WHERE LAST = '%s' AND PASSWORD = '%s'", first, last, pass); + System.out.println("QUERY :" + query); + int ret = stmt.executeUpdate(query, cols); + // Clean up + stmt.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + return false; + } finally { + try { + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + return false; + } + } + return true; + } + + private boolean executeSQLWithColIndex(String methodName, String first, String last, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + int[] cols = {1, 2}; + String query = String.format("UPDATE CUSTOMERS SET FIRST = '%s' WHERE LAST = '%s' AND PASSWORD = '%s'", first, last, pass); + System.out.println("QUERY :" + query); + if (methodName.equalsIgnoreCase("execute")) { + boolean ret = stmt.execute(query, cols); + } else if (methodName.equalsIgnoreCase("executeUpdate")) { + int ret = stmt.executeUpdate(query, cols); + } else { + System.out.println("Invalid SQL method!"); + } + // Clean up + } catch (SQLException e) { + System.err.println(e.getMessage()); + return false; + } finally { + try { + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return true; + } + + private boolean executeSQLWithAutogenkeys(String methodName, String first, String last, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + int autogenkeys = Statement.RETURN_GENERATED_KEYS; + String query = String.format("UPDATE CUSTOMERS SET FIRST = '%s' WHERE LAST = '%s' AND PASSWORD = '%s'", first, last, pass); + System.out.println("QUERY :" + query); + if (methodName.equalsIgnoreCase("execute")) { + boolean ret = stmt.execute(query, autogenkeys); + } else if (methodName.equalsIgnoreCase("executeUpdate")) { + int ret = stmt.executeUpdate(query, autogenkeys); + } else { + System.out.println("Invalid SQL method!"); + } + // Clean up + } catch (SQLException e) { + System.err.println(e.getMessage()); + return false; + } finally { + try { + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return true; + } + + + private Connection connect() { + Connection conn = null; + boolean retval = false; + try { + // Create database connection + System.out.println("Oracle JDBC Driver Loaded"); + System.out.println("Oracle Connecting.."); + String nameForConnect = "sys as sysdba"; + String pass1 = "Psmo0601"; + String url = "jdbc:oracle:thin:@10.0.22.108:1521:XE"; + conn = DriverManager.getConnection(url, nameForConnect, pass1); + System.out.println("Oracle Connected"); + } catch (Exception e) { + System.err.println("ERROR: failed to load Oracle JDBC driver."); + e.printStackTrace(); + return null; + } + return conn; + } + + public static String insertCustomers(String first, String last, String pass) { + StringBuffer sbuf = new StringBuffer(); + + Connection conn = null; + String db = "jdbc:hsqldb:hsql://localhost/xdb"; + String user = "SA"; + String password = ""; + + try { + // Create database connection + conn = DriverManager.getConnection(db, user, password); + + // Create and execute statement + Statement stmt = conn.createStatement(); + String sql = "INSERT INTO CUSTOMER VALUES (\'" + first + "\',\'" + last + "\', \'" + pass + "')"; + System.out.println("Adding: " + sql); + stmt.executeQuery(sql); + System.out.println("Inserted into Database"); + + // Clean up + stmt.close(); + } catch (SQLException e) { + System.err.println("SQL Error:" + e.getMessage()); + } finally { + try { + // Close connection + if (conn != null) + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return sbuf.toString(); + } + + public boolean executeSQL(String name, String pass) { + return executeSQLHelper("executeSQL", name, pass); + } + + public boolean executeQuerySQL(String name, String pass) { + return executeSQLHelper("executeQuerySQL", name, pass); + } + + public boolean executeUpdateSQL(String name, String pass) { + return executeSQLHelper("executeUpdateSQL", name, pass); + } + + public boolean executeSQLHelper(String methodName, String name, String pass) { + boolean retVal = false; + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + StringBuffer sbuf = new StringBuffer(); + + String query = "select FIRST, LAST from CUSTOMERS WHERE LAST=\'" + name + "\' AND PASSWORD= \'" + pass + "\'"; + System.out.println("QUERY :" + query); + if (methodName.equalsIgnoreCase("executeQuerySQL")) { + ResultSet rs = stmt.executeQuery(query); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + System.out.println("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + rs.close(); + } else if (methodName.equalsIgnoreCase("executeSQL")) { + retVal = stmt.execute(query); + } else if (methodName.equalsIgnoreCase("executeUpdateSQL")) { + retVal = stmt.executeUpdate(query) > 0; + } + + stmt.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return retVal; + } + public boolean getCustomersStoredProc1(String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + c = conn.prepareCall("{call verifyuser(?,?,?)}"); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + System.out.println("DB stored Proc being called"); + boolean hasResults = c.execute(); + // Loop through the data and print all artist names + output = c.getInt(3); + System.out.println("Customer Count: " + c.getInt(3)); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + + public boolean getCustomersStoredProc(int callType, String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + c = conn.prepareCall("{call verifyuser(?,?,?)}"); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + System.out.println("DB stored Proc being called"); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + //c.executeQuery(); + // Loop through the data and print all artist names + output = c.getInt(3); + System.out.println("Customer Count: " + c.getInt(3)); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + public boolean getCustomersPreparedStatement(String methodName, String param1, String param2) { + if ( methodName.equals("execute")){ + return getCustomersPreparedStatementExecute(param1, param2); + } + if ( methodName.equals("executeQuery")){ + return getCustomersPreparedStatementExecuteQuery(param1, param2); + } + if ( methodName.equals("executeUpdate")){ + return getCustomersPreparedStatementExecuteUpdate(param1, param2); + } + + return false; + } + + public boolean getCustomersPreparedStatementExecute(String name, String pass) { + Connection conn = connect(); + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST, LAST from CUSTOMERS WHERE LAST = ? AND PASSWORD = ?"; + System.out.println("QUERY :" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + stmt.setString(1, name); + stmt.setString(2, pass); + System.out.println("PreparedStatement.execute being called with Last=" + name + " Password=" + pass); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean getCustomersPreparedStatementExecuteQuery(String name, String pass) { + Connection conn = connect(); + boolean hasResults = false; + if (pass ==null || pass.length() ==0){ + pass = ""; + + } + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST, LAST from CUSTOMERS WHERE LAST = ? AND PASSWORD = ?"; + System.out.println("SQL:" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + stmt.setString(1, name); + stmt.setString(2, pass); + System.out.println("PreparedStatement.executeQuery being called with Last=" + name + " Password=" + pass); + ResultSet result = stmt.executeQuery(); + while (result.next()){ + hasResults = true; + System.out.println("PreparedStatement.executeQuery- returned true"); + break; + } + System.out.println("PreparedStatement.executeQuery- returned" + hasResults); + + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean getCustomersPreparedStatementExecuteUpdate(String first, String last) { + Connection conn = connect(); + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "UPDATE CUSTOMERS SET FIRST = ? WHERE LAST = ?"; + System.out.println("SQL:" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + stmt.setString(1, first); + stmt.setString(2, last); + System.out.println("PreparedStatement.executeUpdate being called with First=" + first + " Last=" + last); + int count = stmt.executeUpdate(); + hasResults = count > 0; + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + +} \ No newline at end of file diff --git a/src/main/java/com/endor/BooksServlet.java b/src/main/java/com/endor/BooksServlet.java new file mode 100644 index 0000000..73168c4 --- /dev/null +++ b/src/main/java/com/endor/BooksServlet.java @@ -0,0 +1,1978 @@ +package com.endor; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.security.InvalidParameterException; +import java.sql.*; +import java.util.HashMap; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.io.BufferedReader; +import java.io.FileReader; + +import javax.script.ScriptEngineManager; +import javax.script.ScriptEngine; +import javax.script.ScriptException; + + +// TODO rename to SQLServlet +@WebServlet(name = "BooksServlet") +public class BooksServlet extends HttpServlet { + static String connectionUrl = ""; + static String dbUser = ""; + static String dbPassword = ""; + static String dbType = ""; + static String DB_TYPE_ORACLE = "Oracle"; + + @Override + public void init() throws ServletException { + super.init(); + connectionUrl =System.getProperty("endor_connection_url", "jdbc:oracle:thin:@10.0.22.108:1521:XE"); + dbUser =System.getProperty("endor_db_user", "sys as sysdba"); + dbPassword =System.getProperty("endor_db_password", "Psmo0601"); + dbType =System.getProperty("endor_db_type", DB_TYPE_ORACLE); + + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("SQL", response); + + String form = "
" + + + "Customer Specific
" + + "--------------------------------------

"+ + "First name: -- ( For SQL with Update)

" + + "Last name:

" + + "Password:

" + + "Filter: -- (Enter last name with starting chars:)


" + + + "Account Specific
" + + "--------------------------------------

"+ + "Enter ID:


" + + + "Use Stored Procedure
" + + "--------------------------------------

"+ + "Stored procedure name:


" + + + ": Stored Procedure
" + + ": Statement.executeUpdate(SQL, column_names[])
" + + ": Statement.executeQuery(SQL)
" + + ": Statement.execute(SQL)
" + + ": Statement.executeUpdate(SQL)
" + + ": Statement.execute(SQL, column_indexes[])
" + + ": Statement.executeUpdate(SQL, column_indexes[])
" + + ": Statement.execute(SQL, auto_gen_keys)
" + + ": Statement.executeUpdate(SQL, auto_gen_keys)
" + + ": PreparedStatement.execute()
" + + ": PreparedStatement.executeQuery()
" + + ": PreparedStatement.executeUpdate()
" + + ": storedproc.executeQuery()
" + + ": storedproc.executeScript() -- (It takes SQL input from local file, Input file path:/opt/sqlinput.txt)
" + + ": PreparedStatement.executeScript() -- (It takes SQL input from local file, Input file path:/opt/sqlinput1.txt)
" + + ": storedproc.callbyName()
" + + ": PreparedStatementDirectPara.execute()(Execute PreparedStatement on same thread)
" + + ": PreparedStatementDirectParaAsync.execute()(Execute PreparedStatement on seperate thread)
" + + ": StoredProcDirectPara.execute()(Execute PreparedStatement on same thread)
" + + ": StoredProcDirectParaAsync.execute()(Execute StoredProc on seperate thread)
" + + ": StoredProcAsync.execute()(Execute StoredProc using setString() on seperate thread)
" + + ": storedproccallwithsqlinj.execute()(Insert Sql injection with stored procedure, 1=1 or call verifyuser(?,?))
" + + ": Multiple Stored Procedure
" + + ": Non Vulnerable Stored Procedure
" + + ": PreparedStatementDirectParaIdentifier1.execute()
" + + ": PreparedStatementDirectParaIdentifier2.execute() (order by clause)
" + + ": PreparedStatementDirectParaIdentifier3.execute() (order by clause)
" + + ": PreparedStatementQueryConnectingStrings.execute()
" + + ": PreparedStatementQueryMultiLegs.execute()
" + + ": PreparedStatementQueryMultiLegs_second.execute()
" + + ": StoredProcedureMultihubs.execute()
" + + ": StoredProcedureMultihubs_second.execute()
" + + "

" + + + "" + "
"; + out.println(form); + + if (createRecord(request, out)) { + return; + } + String first = request.getParameter("first"); + String last = request.getParameter("name"); + String pass = request.getParameter("password"); + String filtername = request.getParameter("filtername"); + String singleID = request.getParameter("singleID"); + + + String procedure_name = request.getParameter("procedure_name"); + + HashMap sqltypeMap = new HashMap() {{ + put("storedproc", 0); + put("executeUpdateSQLColNames", 1); + put("executeQuerySQL", 2); + put("executeSQL", 3); + put("executeUpdateSQL", 4); + put("executeSQLColIndex", 5); + put("executeUpdateSQLColIndex", 6); + put("executeSQLAutogenkeys", 7); + put("executeUpdateSQLAutogenkeys", 8); + put("preparedStatement.execute", 9); + put("preparedStatement.executeQuery", 10); + put("preparedStatement.executeUpdate", 11); + put("storedproc.executeQuery", 12); + put("storedproc.executeScript",13); + put("PreparedStatement.executeScript",14); + put("storedproc.callbyName()",15); + put("PreparedStatementDirectPara.execute()",16); + put("PreparedStatementDirectParaAsync.execute()",17); + put("StoredProcDirectPara.execute()",18); + put("StoredProcDirectParaAsync.execute()",19); + put("StoredProcAsync.execute()",20); + put("storedproccallwithsqlinj.execute()",21); + put("multiplestoredproc", 22); + put("nonvulnstoredproc", 23); + put("PreparedStatementDirectParaIdentifier1", 24); + put("PreparedStatementDirectParaIdentifier2", 25); + put("PreparedStatementDirectParaIdentifier3", 26); + put("PreparedStatementQueryConnectingStrings",27); + put("PreparedStatementQueryMultiLegs",28); + put("PreparedStatementQueryMultiLegs_second",29); + put("StoredProcedureMultihub",30); + put("StoredProcedureMultihub_second",31); + + + + }}; + + String sqltypeStr = request.getParameter("sqltype"); + int sqltype = sqltypeMap.get(sqltypeStr); + String retVal = "Failed!"; + + switch (sqltype) { + case 0: //storedproc + try { + if (!(last.isEmpty()) && getCustomersStoredProc(1,last,pass)) { + retVal = "Succeeded"; + break; + } + } catch (NullPointerException e) { } + + try { + if (!(filtername.isEmpty()) && getCustomersStoredProc(1,filtername, pass)) { + retVal = "Succeeded"; + break; + } + } catch (NullPointerException e) { } + + try { + if (!(singleID.isEmpty()) && getCustomersStoredProc(singleID)) { + retVal = "Succeeded"; + break; + } + } catch (NullPointerException e) { } + break; + + case 1: // executeUpdateSQLColNames + if (getCustomersUpdateColName(first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 2: //executeQuerySQL + try { + if (!(last.isEmpty()) && executeQuerySQL(1, last, pass)) { + retVal = "Succeeded"; + break; + } + } catch(NullPointerException e) { } + try { + if (!(filtername.isEmpty()) && executeQuerySQL(2, filtername, pass)) { + retVal = "Succeeded"; + break; + } + } catch(NullPointerException e) { } + try { + if (!(singleID.isEmpty()) && executeQuerySQL(singleID)) { + retVal = "Succeeded"; + break; + } + } catch(NullPointerException e) { } + break; + case 3: //executeSQL + if (executeSQL(last, pass)) { + retVal = "Succeeded"; + } + break; + case 4: //executeUpdateSQL + if (executeUpdateSQL(last, pass)) { + retVal = "Succeeded"; + } + break; + case 5: //executeSQLColIndex + if (executeSQLWithColIndex("execute", first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 6: //executeUpdateSQLColIndex + if (executeSQLWithColIndex("executeUpdate", first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 7: //executeSQLAutogenkeys + if (executeSQLWithAutogenkeys("execute", first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 8: //executeUpdateSQLAutogenkeys + if (executeSQLWithAutogenkeys("executeUpdate", first, last, pass)) { + retVal = "Succeeded"; + } + break; + case 9: //preparedStatement.execute + if (getCustomersPreparedStatement( "execute", last, pass)) { + retVal = "Succeeded"; + } + break; + case 10: //preparedStatement.executeQuery + if (getCustomersPreparedStatement( "executeQuery", last, pass)) { + retVal = "Succeeded"; + } + break; + case 11: //preparedStatement.executeUpdate + if (getCustomersPreparedStatement( "executeUpdate", first, last)) { + retVal = "Succeeded"; + } + break; + case 12: //storedproc executeQuery + if (getCustomersStoredProc(2, last, pass)) { + retVal = "Succeeded"; + } + break; + case 13: //storedproc executeScript + if (getCustomersStoredProc2()) { + retVal = "Succeeded"; + } + break; + case 14: + if (getCustomerPreparedStatement2()) { + retVal = "Succeeded"; + } + break; + case 15: + if (storedproccallbyName(procedure_name, last, pass)) { + retVal = "Succeeded"; + } + break; + case 16: + if (PreparedStatementDirectPara(last, pass)) { + retVal = "Succeeded"; + } + break; + case 17: + if (PreparedStatementDirectParaAsync(last,pass)) { + retVal = "Succeeded"; + } + break; + case 18: + if (StoredProcDirectPara(last,pass)) { + retVal = "Succeeded"; + } + break; + case 19: + if (StoredProcDirectParaAsync(last,pass)) { + retVal = "Succeeded"; + } + break; + case 20: + if (getCustomersStoredProcAsync(last, pass)) { + retVal = "Succeeded"; + } + break; + case 21: + if (storedproccallwithsqlinj(last, pass)) { + retVal = "Succeeded"; + } + break; + case 22: //multiplestoredproc + if (getCustomersMultipleStoredProc(1, last, pass)) { + retVal = "Succeeded"; + } + break; + case 23: //nonvulnstoredproc + if (getCustomersNonvulnerableStoredProc(1, last, pass)) { + retVal = "Succeeded"; + } + break; + case 24: + if (PreparedStatementDirectParaIdentifier1(last, pass)) { + retVal = "Succeeded"; + } + break; + case 25: + if (PreparedStatementDirectParaIdentifier2(last, pass)) { + retVal = "Succeeded"; + } + break; + case 26: + if (PreparedStatementDirectParaIdentifier3(last, pass)) { + retVal = "Succeeded"; + } + break; + case 27: + try { + if (!(last.isEmpty()) && PreparedStatementEexecuteQuerySQL(1, last, pass)) { + retVal = "Succeeded"; + break; + } + } catch (NullPointerException e) { } + + try { + if(!(filtername.isEmpty()) && PreparedStatementEexecuteQuerySQL(2, filtername, pass)) { + retVal = "Succeeded"; + break; + } + } catch (NullPointerException e) { } + + try { + if (!(singleID.isEmpty()) && PreparedStatementEexecuteQuerySQL(singleID)) { + retVal = "Succeeded"; + break; + } + } catch(NullPointerException e) { } + break; + + case 28: + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + HttpURLConnectionExample.sendPOSTwithParameter(last,pass,"prepared_statement"); + retVal = "Succeeded"; + //response.sendRedirect("ExtraServlet"); + break; + case 29: + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + HttpURLConnectionExample.sendPOSTwithParameter("prakash'--","psmo","prepared_statement"); + retVal = "Succeeded"; + //response.sendRedirect("ExtraServlet"); + break; + + case 30: + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + HttpURLConnectionExample.sendPOSTwithParameter(last, pass,"stored_procedure"); + retVal = "Succeeded"; + break; + + case 31: + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + HttpURLConnectionExample.sendPOSTwithParameter("prakash'--","psmo","stored_procedure"); + retVal = "Succeeded"; + //response.sendRedirect("ExtraServlet"); + break; + + default: + System.out.println("SQL Type not found"); + } + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + if (retVal.equalsIgnoreCase("Succeeded")){ + retVal = HttpURLConnectionExample.sendGET(); + } + out.println("

SQL execution " + retVal + "

"); + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + + } + + private boolean createRecord(HttpServletRequest request, PrintWriter out) { + String fullName = request.getParameter("add"); + if (fullName != null) { + String[] firstLast = fullName.split(" "); + if (firstLast.length == 3) { + insertCustomers(firstLast[0], firstLast[1], firstLast[2]); + out.println("Added " + fullName); + return true; + } + } + return false; + } + + private boolean getCustomersUpdateColName(String first, String last, String pass) { + StringBuffer sbuf = new StringBuffer(); + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + String[] cols = {"FIRST", "LAST"}; + String query = String.format("UPDATE CUSTOMERS SET FIRST = '%s' WHERE LAST = '%s' AND PASSWORD = '%s'", first, last, pass); + System.out.println("QUERY :" + query); + int ret = stmt.executeUpdate(query, cols); + // Clean up + stmt.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + return false; + } finally { + try { + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + return false; + } + } + return true; + } + + private boolean executeSQLWithColIndex(String methodName, String first, String last, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + int[] cols = {1, 2}; + String query = String.format("UPDATE CUSTOMERS SET FIRST = '%s' WHERE LAST = '%s' AND PASSWORD = '%s'", first, last, pass); + System.out.println("QUERY :" + query); + if (methodName.equalsIgnoreCase("execute")) { + boolean ret = stmt.execute(query, cols); + } else if (methodName.equalsIgnoreCase("executeUpdate")) { + int ret = stmt.executeUpdate(query, cols); + } else { + System.out.println("Invalid SQL method!"); + } + // Clean up + } catch (SQLException e) { + System.err.println(e.getMessage()); + return false; + } finally { + try { + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return true; + } + + private boolean executeSQLWithAutogenkeys(String methodName, String first, String last, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + int autogenkeys = Statement.RETURN_GENERATED_KEYS; + String query = String.format("UPDATE CUSTOMERS SET FIRST = '%s' WHERE LAST = '%s' AND PASSWORD = '%s'", first, last, pass); + System.out.println("QUERY :" + query); + if (methodName.equalsIgnoreCase("execute")) { + boolean ret = stmt.execute(query, autogenkeys); + } else if (methodName.equalsIgnoreCase("executeUpdate")) { + int ret = stmt.executeUpdate(query, autogenkeys); + } else { + System.out.println("Invalid SQL method!"); + } + // Clean up + } catch (SQLException e) { + System.err.println(e.getMessage()); + return false; + } finally { + try { + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return true; + } + + + private Connection connect() { + Connection conn = null; + try { + // Create database connection + conn = DriverManager.getConnection(connectionUrl, dbUser, dbPassword); + System.out.println("DB Connection established"); + } catch (Exception e) { + System.err.println("ERROR: failed to connect DB"); + e.printStackTrace(); + return null; + } + return conn; + } + + private Connection connectpsql() { + Connection conn = null; + try { + // Create database connection + String dbURL = "jdbc:postgresql://localhost:5432/sqlinject?sslmode=disable"; + String user = "postgres"; + String password = "Psqlpsmo@1"; + conn = DriverManager.getConnection(dbURL, user, password); + System.out.println("DB Connection established"); + } catch (Exception e) { + System.err.println("ERROR: failed to connect postgres SQL."); + e.printStackTrace(); + return null; + } + return conn; + } + + public static String insertCustomers(String first, String last, String pass) { + StringBuffer sbuf = new StringBuffer(); + + Connection conn = null; + String db = "jdbc:hsqldb:hsql://localhost/xdb"; + String user = "SA"; + String password = ""; + + try { + // Create database connection + conn = DriverManager.getConnection(db, user, password); + + // Create and execute statement + Statement stmt = conn.createStatement(); + String sql = "INSERT INTO CUSTOMER VALUES (\'" + first + "\',\'" + last + "\', \'" + pass + "')"; + System.out.println("Adding: " + sql); + stmt.executeQuery(sql); + System.out.println("Inserted into Database"); + + // Clean up + stmt.close(); + } catch (SQLException e) { + System.err.println("SQL Error:" + e.getMessage()); + } finally { + try { + // Close connection + if (conn != null) + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return sbuf.toString(); + } + + // Handling "executeQuerySQL" and "PreparedStatementEexecuteQuerySQL" for customer specific info + public boolean executeQuerySQL(int n, String name, String pass) { + return executeSQLHelper("executeQuerySQL", n, name, pass); + } + public boolean PreparedStatementEexecuteQuerySQL(int n, String name, String pass) { + return executeSQLHelper("PreparedStatementEexecuteQuerySQL", n, name, pass); + } + + // Handling "executeQuerySQL" and "PreparedStatementEexecuteQuerySQL" for account specific info + public boolean executeQuerySQL(String ids) { + return executeSQLHelper("executeQuerySQL", ids); + } + + public boolean PreparedStatementEexecuteQuerySQL(String ids) { + return executeSQLHelper("PreparedStatementEexecuteQuerySQL", ids); + } + + // Handling "executeSQL" and "executeUpdateSQL" for customer specific info + public boolean executeSQL(String name, String pass) { + return executeSQLHelper("executeSQL", name, pass); + } + + public boolean executeUpdateSQL(String name, String pass) { + return executeSQLHelper("executeUpdateSQL", name, pass); + } + + + public boolean executeSQLHelper(String methodName, String name, String pass) { + boolean retVal = false; + Connection conn = connect(); + if (conn == null) + return false; + + try { + StringBuffer sbuf = new StringBuffer(); + String query = new String(); + + query = "select FIRST, LAST from CUSTOMERS WHERE LAST=\'" + name + "\' AND PASSWORD= \'" + pass + "\'"; + + + if (methodName.equalsIgnoreCase("executeQuerySQL")) { + System.out.println("QUERY :" + query); + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery(query); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + System.out.println("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + stmt.close(); + rs.close(); + } else if (methodName.equalsIgnoreCase("PreparedStatementEexecuteQuerySQL")) { + System.out.println("PreparedStatementQUERY :" + query); + PreparedStatement stmt = conn.prepareStatement(query); + ResultSet rs = stmt.executeQuery(); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + System.out.println("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + stmt.close(); + rs.close(); + } else if (methodName.equalsIgnoreCase("executeSQL")) { + Statement stmt = conn.createStatement(); + retVal = stmt.execute(query); + stmt.close(); + } else if (methodName.equalsIgnoreCase("executeUpdateSQL")) { + Statement stmt = conn.createStatement(); + retVal = stmt.executeUpdate(query) > 0; + stmt.close(); + } + } catch (SQLException e) { + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return retVal; + } + + public boolean executeSQLHelper(String methodName, int n, String name, String pass) { + boolean retVal = false; + Connection conn = connect(); + if (conn == null) + return false; + + // Check for multiple values entry before constructing the query + String[] name_values = name.split(","); + String parse_name_values = name_values[0]; + for (int i = 1; i< name_values.length; i++ ) { + parse_name_values += "\',\'" ; + parse_name_values += name_values[i]; + } + + try { + StringBuffer sbuf = new StringBuffer(); + String query; + + // Check for filter operation + if(n==2) { + query = "select FIRST, LAST from CUSTOMERS WHERE LAST like \'" + name + "%\' AND PASSWORD= \'" + pass + "\'"; + } + // Check for normal query operation + else { + if(parse_name_values.contains(",")) { + query = "select FIRST, LAST from CUSTOMERS WHERE LAST IN (\'" + parse_name_values + "\')"; + } else { + query = "select FIRST, LAST from CUSTOMERS WHERE LAST=\'" + parse_name_values + "\' AND PASSWORD= \'" + pass + "\'"; + } + } + System.out.println("QUERY :" + query); + + // Check for preparedstatement + if (methodName.equalsIgnoreCase("executeQuerySQL")) { + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery(query); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + System.out.println("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + stmt.close(); + rs.close(); + } else if (methodName.equalsIgnoreCase("PreparedStatementEexecuteQuerySQL")) { + System.out.println("PreparedStatementQUERY :" + query); + PreparedStatement stmt = conn.prepareStatement(query); + ResultSet rs = stmt.executeQuery(); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + System.out.println("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + stmt.close(); + rs.close(); + } else if (methodName.equalsIgnoreCase("executeSQL")) { + Statement stmt = conn.createStatement(); + retVal = stmt.execute(query); + stmt.close(); + } else if (methodName.equalsIgnoreCase("executeUpdateSQL")) { + Statement stmt = conn.createStatement(); + retVal = stmt.executeUpdate(query) > 0; + stmt.close(); + } + } catch (SQLException e) { + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return retVal; + } + + public boolean executeSQLHelper(String methodName, String ids) { + boolean retVal = false; + String query = new String() ; + Connection conn = connect(); + if (conn == null) + return false; + + if(ids.contains(",")) { + query = "select ID, NAME from ACCOUNTS WHERE ID IN (" + ids + ")" ; + } else { + query = "select ID from ACCOUNTS WHERE ID = " + ids ; + } + + try { + if (methodName.equalsIgnoreCase("executeQuerySQL")) { + StringBuffer sbuf = new StringBuffer(); + Statement stmt = conn.createStatement(); + System.out.println("QUERY :" + query); + ResultSet rs = stmt.executeQuery(query); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer id: " + rs.getString("ID")); + System.out.println("Customer id: " + rs.getString("ID")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + stmt.close(); + rs.close(); + } else if (methodName.equalsIgnoreCase("PreparedStatementEexecuteQuerySQL")) { + System.out.println("PreparedStatementQUERY :" + query); + PreparedStatement stmt = conn.prepareStatement(query); + ResultSet rs = stmt.executeQuery(); + + StringBuffer sbuf = new StringBuffer(); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer id: " + rs.getString("ID")); + System.out.println("Customer id: " + rs.getString("ID")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + stmt.close(); + rs.close(); + } else if (methodName.equalsIgnoreCase("executeSQL")) { + Statement stmt = conn.createStatement(); + retVal = stmt.execute(query); + stmt.close(); + } else if (methodName.equalsIgnoreCase("executeUpdateSQL")) { + Statement stmt = conn.createStatement(); + retVal = stmt.executeUpdate(query) > 0; + stmt.close(); + } + + } catch (SQLException e) { + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return retVal; + } + + public static boolean isNumeric(String strNum) { + try { + double d = Integer.parseInt(strNum); + } catch (NumberFormatException nfe) { + return false; + } + return true; + } + + + public boolean getCustomersStoredProc1(String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + c = conn.prepareCall("{call verifyuser(?,?,?)}"); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + System.out.println("DB stored Proc being called"); + boolean hasResults = c.execute(); + // Loop through the data and print all artist names + output = c.getInt(3); + System.out.println("Customer Count: " + c.getInt(3)); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + + public boolean storedproccallwithsqlinj(String name, String pass) + { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + int output = 0; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + String ProcQuery = "{" + name + " call verifyuser(?,?,?)}"; + c = conn.prepareCall(ProcQuery); + c.setString(1, pass); + c.setString(2, "prakash"); + c.registerOutParameter(3, Types.INTEGER); + System.out.println("DB stored Proc being called"); + boolean hasResults = c.execute(); + // Loop through the data and print all artist names + output = c.getInt(3); + System.out.println("Customer Count: " + c.getInt(3)); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + + return output > 0; + } + + public boolean storedproccallbyName(String procedure_name, String name, String pass) + { + Connection conn = connect(); + if (conn == null) + return false; + int output = 0; + try { + CallableStatement c = null; + if(name.isEmpty() && procedure_name.equalsIgnoreCase("verifyuser_withresponse")) { + String ProcQuery = "{call "+ procedure_name + "(?)}"; + c = conn.prepareCall(ProcQuery); + c.registerOutParameter(1, Types.INTEGER); + c.execute(); + output = c.getInt(1); + } + else if(name.isEmpty() && procedure_name.equalsIgnoreCase("verifyuser_noresponse")) { + String ProcQuery = "{call "+ procedure_name + "()}"; + c = conn.prepareCall(ProcQuery); + c.execute(); + } + else { + String ProcQuery = "{call "+ procedure_name + "(?,?,?)}"; + c = conn.prepareCall(ProcQuery); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + c.execute(); + output = c.getInt(3); + } + + System.out.println("DB stored Proc being called"); + System.out.println("Customer Count: " + output); + + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + + return output >= 0; + } + + public boolean getCustomersStoredProcAsync(String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + c = conn.prepareCall("{call verifyuser(?,?,?)}"); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + ExecutorService executorService = Executors.newSingleThreadExecutor(); + System.out.println("Created ExecutorService"); + CallableStatementTask task = new CallableStatementTask(c); + System.out.println("Created CallableStatementTask object"); + Future future = executorService.submit(task); + System.out.println("Executed executorService.submit(task)"); + hasResults = future.get().booleanValue(); + executorService.shutdown(); + System.out.println("Finished"); + System.out.println("DB stored Proc being called"); + //c.execute(); + //c.executeQuery(); + // Loop through the data and print all artist names + output = c.getInt(3); + System.out.println("Customer Count: " + c.getInt(3)); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + + public boolean getCustomersStoredProc(int callType, String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + String query = "{call verifyuser(?,?,?)}"; + c = conn.prepareCall(query); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + System.out.println("DB stored Proc being called"); + System.out.println(query); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + //c.executeQuery(); + // Loop through the data and print all artist names + output = c.getInt(3); + System.out.println("Customer Count: " + c.getInt(3)); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + + public boolean getCustomersStoredProc(int callType, String name, String filtername, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + try { + // close the statement as its not a callable statement + stmt.close(); + String query; + CallableStatement c = null; + if (filtername.isEmpty()) { + query = "{call verifyuser(?,?,?)}"; + c = conn.prepareCall(query); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + System.out.println("DB stored Proc being called"); + System.out.println(query); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + output = c.getInt(3); + System.out.println("Customer Count: " + output); + } else { + query = "{ ? = call filter_names_using_like(?,?)}"; + c = conn.prepareCall(query); + c.registerOutParameter(1, Types.INTEGER); + c.setString(2, filtername); + c.setString(3, pass); + System.out.println("DB stored Proc being called"); + System.out.println(query); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + output = c.getInt(1); + System.out.println("Customer Count: " + output); + } + + //c.executeQuery(); + // Loop through the data and print all artist names + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + + public boolean getCustomersStoredProc(String ids) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + String query; + if (ids.contains(",")) { + query = "{ ? = call filter_ids_using_in( ? ) }"; + } + else { + query = "{ ? = call filter_ids_using_singleid( ? ) }"; + } + c = conn.prepareCall(query); + c.registerOutParameter(1, Types.INTEGER); + c.setString(2, ids); + System.out.println("DB stored Proc being called"); + System.out.println(query); + c.execute(); + //c.executeQuery(); + // Loop through the data and print all artist names + output = c.getInt(1); + System.out.println("ID Count: " + output); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + public boolean getCustomersNonvulnerableStoredProc(int callType, String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + c = conn.prepareCall("{?=call verifyuser1(?,?,?)}"); + c.setString(2, name); + c.setString(3, pass); + c.setString(4, "test"); + System.out.println("Executed the query" ); + c.registerOutParameter(1, Types.BOOLEAN); + System.out.println("DB stored Proc being called"); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + //c.executeQuery(); + // Loop through the data and print all artist names + //output = c.getInt(3); + System.out.println("Executed the query" ); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + public boolean getCustomersMultipleStoredProc(int callType, String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + CallableStatement c; + try { + System.out.println("Executing first procedure"); + c = null; + c = conn.prepareCall("{call verifyusera(?,?,?,?)}"); + c.setString(1, name); + c.setString(2, pass); + c.setString(3, "SARDIWAL"); + c.registerOutParameter(4, Types.INTEGER); + System.out.println("DB stored Proc being called"); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + System.out.println("Customer Count: " + c.getInt(4)); + System.out.println("Executed second procedure"); + c.close(); + } catch(Exception e) { + System.out.println("Exception : "+e.getMessage()); + } + try { + System.out.println("Executing second procedure"); + c = null; + c = conn.prepareCall("{call verifyuserb(?,?,?,?)}"); + c.setString(1, name); + c.setString(2, pass); + c.setString(3, "SARDIWAL"); + c.registerOutParameter(4, Types.INTEGER); + System.out.println("DB stored Proc being called"); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + System.out.println("Customer Count: " + c.getInt(4)); + System.out.println("Executed third procedure"); + c.close(); + } catch(Exception e) { + System.out.println("Exception : "+e.getMessage()); + } + try { + System.out.println("Executing third procedure"); + c = null; + c = conn.prepareCall("{call verifyuserc(?,?,?,?)}"); + c.setString(1, name); + c.setString(2, pass); + c.setString(3, "SARDIWAL"); + c.registerOutParameter(4, Types.INTEGER); + System.out.println("DB stored Proc being called"); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + System.out.println("Customer Count: " + c.getInt(4)); + System.out.println("Executed third procedure"); + c.close(); + } catch(Exception e) { + System.out.println("Exception : "+e.getMessage()); + } + + try { + System.out.println("Executing fourth procedure"); + c = null; + c = conn.prepareCall("{? = call verifyuserd(?,?)}"); + c.setString(2, name); + c.setString(3, pass); + // c.setString(3, "SARDIWAL"); + c.registerOutParameter(1, Types.VARCHAR); + System.out.println("DB stored Proc being called"); + if (callType==1){ + c.execute(); + } + if (callType == 2){ + c.executeQuery(); + } + System.out.println("Customer Count: "); + System.out.println("Executed fourth procedure"); + c.close(); + } catch(Exception e) { + System.out.println("Exception : "+e.getMessage()); + } + finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + public boolean getCustomersStoredProc2() { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + // Open the input file for sql query input values and keep the reader ready + BufferedReader reader = null; + try { + reader = new BufferedReader(new FileReader("/opt/sqlinput.txt")); + System.out.println("sqlinput.txt file opened successfully"); + } catch (IOException e) { + System.out.println("Failed to open Input file"); + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + String line = reader.readLine(); + while (null != line) { + String line1 = line.replaceAll("[\\n]", ""); + System.out.println("Stored procedure being called with :" + line1); + c = conn.prepareCall("{call verifyuser(?,?,?)}"); + c.setString(1, line1); + c.setString(2, "shiva"); + c.registerOutParameter(3, Types.INTEGER); + //System.out.println("Stored procedure called successfully for1 " + line); + try { + c.execute(); + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } + // Loop through the data and print all artist names + //output = c.getInt(3); + line = reader.readLine(); + Thread.sleep(2000); + + } + //System.out.println("Customer Count: " + c.getInt(3)); + // Clean up + //c.close(); + reader.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + + public boolean getCustomerPreparedStatement2() { + + // Open the input file for sql query input values and keep the reader ready + BufferedReader reader = null; + try { + reader = new BufferedReader(new FileReader("/opt/sqlinput1.txt")); + System.out.println("sqlinput.txt file opened successfully"); + } + catch (IOException e) { + System.out.println("Failed to open Input file"); + e.printStackTrace(); + return false; + } + int output = 0; + boolean hasResults = false; + try { + String line = reader.readLine(); + while (null != line) { + String line1 = line.replaceAll("[\\n]", ""); + System.out.println("Stored procedure being called with :" + line1); + hasResults = getCustomersPreparedStatementExecute(line1, "Sardiwal"); + line = reader.readLine(); + Thread.sleep(2000); + } + reader.close(); + } + catch (Exception ex){ + ex.getStackTrace(); + return false; + } + + return true; + } + + public boolean getCustomersPreparedStatement(String methodName, String param1, String param2) { + if ( methodName.equals("execute")){ + return getCustomersPreparedStatementExecute(param1, param2); + } + if ( methodName.equals("executeQuery")){ + return getCustomersPreparedStatementExecuteQuery(param1, param2); + } + if ( methodName.equals("executeUpdate")){ + return getCustomersPreparedStatementExecuteUpdate(param1, param2); + } + + return false; + } + + public boolean StoredProcDirectPara(String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + try { + // close the statement as its not a callable statement + stmt.close(); + CallableStatement c = null; + //String Proc_query = "{CALL sql_login('" + name +"',"+ pass + "')}"; + String Proc_query = "{? = call verifyuser('" + name +"','"+ pass + "')}"; + System.out.println("Created Procedure query string : " + Proc_query); + c = conn.prepareCall(Proc_query); + System.out.println("conn.prepareCall(Proc_query) called"); + //c.setString(1, name); + //c.setString(2, pass); + //c.registerOutParameter(3, Types.INTEGER); + c.registerOutParameter(1, Types.INTEGER); + System.out.println("DB stored Proc being called"); + c.execute(); + //c.executeQuery(); + // Loop through the data and print all artist names + //output = c.getInt(1); + System.out.println("Customer Count: " + c.getInt(1)); + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + + public boolean StoredProcDirectParaAsync(String name, String pass) { + Connection conn = connect(); + if (null == name) + {name = "Shiva";} + if (null == pass) + {pass = "Prakash";} + boolean hasResults = false; + if (conn == null) + return false; + //PreparedStatement stmt = null; + CallableStatement c = null; + try { + String Proc_query = "{CALL sql_login('" + name +"',"+ pass + "')}"; + System.out.println("Created Procedure query string : " + Proc_query); + c = conn.prepareCall(Proc_query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + //stmt.setString(1, name); + //stmt.setString(2, pass); + System.out.println("CallableStatement.execute() being called with Last='" + name + "' Password='" + pass +"'"); + ExecutorService executorService = Executors.newSingleThreadExecutor(); + System.out.println("Created ExecutorService"); + CallableStatementTask task = new CallableStatementTask(c); + System.out.println("Created CallableStatementTask object"); + Future future = executorService.submit(task); + System.out.println("Executed executorService.submit(task)"); + hasResults = future.get().booleanValue(); + executorService.shutdown(); + System.out.println("Finished"); + //hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + c.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean PreparedStatementDirectParaAsync(String name, String pass) { + Connection conn = connect(); + if (null == name) + {name = "Shiva";} + if (null == pass) + {pass = "Prakash";} + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST, LAST from CUSTOMERS WHERE LAST = '" + name + "' AND PASSWORD = '" + pass + "'"; + System.out.println("QUERY :" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + //stmt.setString(1, name); + //stmt.setString(2, pass); + System.out.println("PreparedStatement.execute being called with Last='" + name + "' Password='" + pass +"'"); + ExecutorService executorService = Executors.newSingleThreadExecutor(); + System.out.println("Created ExecutorService"); + PrepareStatementTask task = new PrepareStatementTask(stmt); + System.out.println("Created PrepareStatementTask"); + Future future = executorService.submit(task); + System.out.println("Executed executorService.submit(task)"); + hasResults = future.get().booleanValue(); + executorService.shutdown(); + System.out.println("Finished"); + //hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean PreparedStatementDirectParaIdentifier1(String name, String pass) { + Connection conn = connect(); + if (null == name) + {name = "Shiva";} + if (null == pass) + {pass = "Prakash";} + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST," + name + " from CUSTOMERS WHERE LAST = \'" + pass + "\'"; + System.out.println("QUERY :" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + //stmt.setString(1, name); + //stmt.setString(2, pass); + System.out.println("PreparedStatement.execute being called with Last='" + name + "' Password='" + pass +"'"); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean PreparedStatementDirectParaIdentifier2(String name, String pass) { + Connection conn = connect(); + if (null == name) + {name = "Shiva";} + if (null == pass) + {pass = "Prakash";} + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST,last from CUSTOMERS WHERE first = \'" + pass + "\' order by " + name; + System.out.println("QUERY :" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + //stmt.setString(1, name); + //stmt.setString(2, pass); + System.out.println("PreparedStatement.execute being called with Last='" + name + "' Password='" + pass +"'"); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean PreparedStatementDirectParaIdentifier3(String name, String pass) { + Connection conn = connect(); + if (null == name) + {name = "Shiva";} + if (null == pass) + {pass = "Prakash";} + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST,\"" + name + "\" from CUSTOMERS WHERE LAST = \'" + pass + "\'"; + System.out.println("QUERY :" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + //stmt.setString(1, name); + //stmt.setString(2, pass); + System.out.println("PreparedStatement.execute being called with Last='" + name + "' Password='" + pass +"'"); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean PreparedStatementDirectPara(String name, String pass) { + Connection conn = connect(); + if (null == name) + {name = "Shiva";} + if (null == pass) + {pass = "Prakash";} + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST, LAST from CUSTOMERS WHERE LAST = \'" + name + "\' AND PASSWORD = \'" + pass + "\'"; + System.out.println("QUERY :" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + //stmt.setString(1, name); + //stmt.setString(2, pass); + System.out.println("PreparedStatement.execute being called with Last='" + name + "' Password='" + pass +"'"); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean getCustomersPreparedStatementExecute(String name, String pass) { + Connection conn = connect(); + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST, LAST from CUSTOMERS WHERE LAST = ? AND PASSWORD = ?"; + System.out.println("QUERY :" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + stmt.setString(1, name); + stmt.setString(2, pass); + System.out.println("PreparedStatement.execute being called with Last=" + name + " Password=" + pass); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean getCustomersPreparedStatementExecuteQuery(String name, String pass) { + Connection conn = connect(); + boolean hasResults = false; + if (pass ==null || pass.length() ==0){ + pass = ""; + + } + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "SELECT FIRST, LAST from CUSTOMERS WHERE LAST = ? AND PASSWORD = ?"; + System.out.println("SQL:" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + stmt.setString(1, name); + stmt.setString(2, pass); + System.out.println("PreparedStatement.executeQuery being called with Last=" + name + " Password=" + pass); + ResultSet result = stmt.executeQuery(); + while (result.next()){ + hasResults = true; + System.out.println("PreparedStatement.executeQuery- returned true"); + break; + } + System.out.println("PreparedStatement.executeQuery- returned" + hasResults); + + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + public boolean getCustomersPreparedStatementExecuteUpdate(String first, String last) { + Connection conn = connect(); + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String query = "UPDATE CUSTOMERS SET FIRST = ? WHERE LAST = ?"; + System.out.println("SQL:" + query); + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + stmt.setString(1, first); + stmt.setString(2, last); + System.out.println("PreparedStatement.executeUpdate being called with First=" + first + " Last=" + last); + int count = stmt.executeUpdate(); + hasResults = count > 0; + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + /** + * Asynchronously executes the callable statement. + * + */ + public static class CallableStatementTask implements Callable { + private PreparedStatement stmt; + public CallableStatementTask(CallableStatement statement){ + stmt = statement; + } + + public Boolean call() throws InvalidParameterException { + boolean hasResults = false; + int output = 0; + try { + System.out.println("CallableStatement.execute callable task"); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + } catch (SQLException e) { + System.out.println("Exception 2"); + System.err.println(e.getMessage()); + } + } + return hasResults; + } + } + + /** + * Asynchronously executes the prepared statement. + * + */ + public static class PrepareStatementTask implements Callable { + private PreparedStatement stmt; + public PrepareStatementTask(PreparedStatement statement){ + stmt = statement; + } + + public Boolean call() throws InvalidParameterException { + boolean hasResults = false; + int output = 0; + try { + System.out.println("PreparedStatement.execute callable task"); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + } catch (SQLException e) { + System.out.println("Exception 2"); + System.err.println(e.getMessage()); + } + } + return hasResults; + } + } +} diff --git a/src/main/java/com/endor/BotTest.java b/src/main/java/com/endor/BotTest.java new file mode 100644 index 0000000..370eb6d --- /dev/null +++ b/src/main/java/com/endor/BotTest.java @@ -0,0 +1,139 @@ +package com.endor; + + +import javax.servlet.AsyncContext; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.*; +import java.util.HashMap; + +@WebServlet(urlPatterns={"/BotTest"}, asyncSupported=true) +public class BotTest extends HttpServlet { + /* ... Same variables and init method as in SyncServlet ... */ + + boolean isPost = false; + protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException { + isPost = true; + System.out.println("In Post request method"); + doGet(request, response); + //String UserId = request.getParameter("UserId"); + // String Password = request.getParameter("Password"); + // String RandomInput = request.getParameter("RandomInput"); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.printCurrentTitle("Bot Test", response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + //HtmlUtil.printCurrentTitle("SQL", response); + + //String JavaScriptCode = ""; + + // out.println(JavaScriptCode); + // + // String JavaScriptCode1 = ""; + + //out.println(JavaScriptCode1); + + String form = "

" + + "First name:

" + + "Password:


" + + "" + "
"; + out.println(form); + + //String first = request.getParameter("UserId"); + //String last = request.getParameter("Password"); + //String pass = request.getParameter("Random_Value"); + + if (true == isPost){ + isPost = false; + System.out.println("In Post request condition"); + String TestInput = request.getParameter("TestInput"); + System.out.println(TestInput); + if (TestInput == null) { + System.out.println("Login failed"); + out.println("

Login failed

"); + } + else if (TestInput.equals("<91addca6-50b8-4d38-a2d2-6d89b9e461bb")) { + + System.out.println("Login Succeeded"); + out.println("

Login Succeeded

"); + } else { + System.out.println("Login Failed"); + out.printf("

%s

", TestInput); + } + } + + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + String scriptTag = ""; + out.println(scriptTag); +// String scripttext = ""; +// out.println(scripttext); + out.println(""); + out.println(""); + + } +} + diff --git a/src/main/java/com/endor/CSPFilter.java b/src/main/java/com/endor/CSPFilter.java new file mode 100644 index 0000000..348f168 --- /dev/null +++ b/src/main/java/com/endor/CSPFilter.java @@ -0,0 +1,60 @@ +package com.endor; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletResponse; + +/** + * Servlet Filter implementation class CSPFilter + */ +@WebFilter("/CSPFilter") +public class CSPFilter implements Filter { + + /** + * Default constructor. + */ + public CSPFilter() { + // TODO Auto-generated constructor stub + } + + /** + * @see Filter#destroy() + */ + public void destroy() { + // TODO Auto-generated method stub + } + + /** + * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) + */ + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { + // TODO Auto-generated method stub + // place your code here + + // pass the request along the filter chain + + PrintWriter out=servletResponse.getWriter(); + + HttpServletResponse response = (HttpServletResponse) servletResponse; + response.setContentType("text/plain"); + response.addHeader("X-Content-Type-Options", "nosniff"); + chain.doFilter(servletRequest, response); + out.print("filter is invoked to add X-Content-Type-Options:nosniff"); + } + + /** + * @see Filter#init(FilterConfig) + */ + public void init(FilterConfig fConfig) throws ServletException { + // TODO Auto-generated method stub + } + +} diff --git a/src/main/java/com/endor/CookieTest.java b/src/main/java/com/endor/CookieTest.java new file mode 100644 index 0000000..7e372f7 --- /dev/null +++ b/src/main/java/com/endor/CookieTest.java @@ -0,0 +1,100 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(urlPatterns={"/cookietest"}) +public class CookieTest extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setContentType("text/html"); + PrintWriter out = response.getWriter(); + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.printCurrentTitle("Cookie Test", response); + + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + + out.println("

Added these cookies using HttpServletResponse.addCookie(Cookie c) method

"); + out.println("
"); + out.println("
"); + + int count = 0; + + // Set-Cookie: addCookie1=Secure_HttpOnly; Path=/; Secure; HttpOnly + Cookie secure_HttpOnlyCookie = new Cookie("addCookie1", "Secure_HttpOnly"); + secure_HttpOnlyCookie.setPath("/"); + secure_HttpOnlyCookie.setHttpOnly(true); + secure_HttpOnlyCookie.setSecure(true); + response.addCookie(secure_HttpOnlyCookie); + out.println(++count + ". addCookie1=Secure_HttpOnly; Path=/; Secure; HttpOnly"); + out.println("
"); + + // Set-Cookie: addCookie2=NotSecure_HttpOnly; Path=/; HttpOnly + Cookie notSecure_HttpOnlyCookie = new Cookie("addCookie2", "NotSecure_HttpOnly"); + notSecure_HttpOnlyCookie.setPath("/"); + notSecure_HttpOnlyCookie.setHttpOnly(true); + notSecure_HttpOnlyCookie.setSecure(false); + response.addCookie(notSecure_HttpOnlyCookie); + out.println(++count + ". addCookie2=NotSecure_HttpOnly; Path=/; HttpOnly"); + out.println("
"); + + // Set-Cookie: addCookie3=Secure_NotHttpOnly; Path=/; Secure; + Cookie secure_NotHttpOnlyCookie = new Cookie("addCookie3", "Secure_NotHttpOnly"); + secure_NotHttpOnlyCookie.setPath("/"); + secure_NotHttpOnlyCookie.setHttpOnly(false); + secure_NotHttpOnlyCookie.setSecure(true); + response.addCookie(secure_NotHttpOnlyCookie); + out.println(++count + ". addCookie3=Secure_NotHttpOnly; Path=/; Secure;"); + out.println("
"); + + // Set-Cookie: addCookie4=NotSecure_NotHttpOnly; Path=/; + Cookie notSecure_NotHttpOnlyCookie = new Cookie("addCookie4", "NotSecure_NotHttpOnly"); + notSecure_NotHttpOnlyCookie.setPath("/"); + notSecure_NotHttpOnlyCookie.setHttpOnly(false); + notSecure_NotHttpOnlyCookie.setSecure(false); + response.addCookie(notSecure_NotHttpOnlyCookie); + out.println(++count + ". addCookie4=NotSecure_NotHttpOnly; Path=/;"); + out.println("
"); + + out.println("
"); + out.println("
"); + out.println("
"); + + out.println("

Added these cookies using HttpServletResponse.addHeader(String name, String value) method with name as 'Set-Cookie'

"); + out.println("
"); + out.println("
"); + + // Set-Cookie: addCookie1=Secure_HttpOnly; Path=/; Secure; HttpOnly + response.addHeader("Set-Cookie","addHeaderCookie1=Secure_HttpOnly; Path=/; Secure; HttpOnly"); + out.println(++count + ". addHeaderCookie1=Secure_HttpOnly; Path=/; Secure; HttpOnly"); + out.println("
"); + + // Set-Cookie: addCookie2=NotSecure_HttpOnly; Path=/; HttpOnly + response.addHeader("set-cookie","addHeaderCookie2=NotSecure_HttpOnly; Path=/; HttpOnly"); + out.println(++count + ". addHeaderCookie2=NotSecure_HttpOnly; Path=/; HttpOnly"); + out.println("
"); + + // Set-Cookie: addCookie3=Secure_NotHttpOnly; Path=/; Secure; + response.addHeader("set-cookie","addHeaderCookie3=Secure_NotHttpOnly; Path=/; Secure"); + out.println(++count + ". addHeaderCookie3=Secure_NotHttpOnly; Path=/; Secure;"); + out.println("
"); + + // Set-Cookie: addCookie4=NotSecure_NotHttpOnly; Path=/; + response.addHeader("set-cookie","addHeaderCookie4=NotSecure_NotHttpOnly; Path=/;"); + out.println(++count + ". addHeaderCookie4=NotSecure_NotHttpOnly; Path=/;"); + out.println("
"); + + out.println(""); + out.println(""); + } +} diff --git a/src/main/java/com/endor/Deserialize1.java b/src/main/java/com/endor/Deserialize1.java new file mode 100644 index 0000000..21e5d41 --- /dev/null +++ b/src/main/java/com/endor/Deserialize1.java @@ -0,0 +1,143 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.annotation.MultipartConfig; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.PrintWriter; +import java.io.Serializable; +import java.nio.CharBuffer; +import java.sql.*; +//import java.util.Base64; +import java.util.HashMap; + + +class SomeClass implements Serializable { + private static String cmd = "cat /etc/passwd"; + private void readObject( ObjectInputStream stream ) + throws Exception { + stream.defaultReadObject(); + Runtime.getRuntime().exec( cmd ); + } +} + +// TODO rename to SQLServlet +@WebServlet(name = "Deserialize1") +@MultipartConfig(fileSizeThreshold=1024*1024*10, // 10 MB +maxFileSize=1024*1024*50, // 50 MB +maxRequestSize=1024*1024*100) + +public class Deserialize1 extends HttpServlet { + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + ObjectInputStream ois = null; + try { + InputStream inStr = request.getPart("inputfile").getInputStream(); + byte byteArray[] = new byte[inStr.available()]; + int iBytesRead = inStr.read(byteArray); + + System.out.println("Numberof bytes read from uploaded file : " + iBytesRead); + ois = new ObjectInputStream(new ByteArrayInputStream(byteArray)); + } + catch (Exception ex) { + ex.printStackTrace(); + } + + boolean bflag = false; + //Read the object from the data stream, and convert it back to a String + try { + System.out.println("Trying to call object.readObject"); + Object o = ois.readObject(); + System.out.println("Successfull called object.readObject \n Exiting the servlet.\n"); + bflag = true; + } catch (ClassNotFoundException | IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + //doGet(request, response); + } + + //Print the result. + System.out.println("Done"); + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + try { + Thread.sleep(5000); + } + catch (Exception ex) + { + ex.getStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("Deserialzation", response); + + String form = "
" + + ""+ + "

"+ + "" + "
"; + out.println(form); + String retVal = HttpURLConnectionExample.sendGET(); + //if (bflag) + out.println("Submitted"); + out.println(""); + out.println(""); + + ois.close(); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("Deserialzation", response); + + SomeClass s1 = new SomeClass(); + FileOutputStream fos = new FileOutputStream("object.ser"); + ObjectOutputStream os = new ObjectOutputStream(fos); + os.writeObject(s1); + os.close(); + + String form = "
" + + ""+ + "

"+ + "" + "
"; + out.println(form); + out.println(""); + out.println(""); + + + } + +} diff --git a/src/main/java/com/endor/ElExpression.java b/src/main/java/com/endor/ElExpression.java new file mode 100644 index 0000000..077d8a0 --- /dev/null +++ b/src/main/java/com/endor/ElExpression.java @@ -0,0 +1,42 @@ +package com.endor; + +import java.io.IOException; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.PrintWriter; + +@WebServlet("/elExpression") +public class ElExpression extends HttpServlet { + + private static final long serialVersionUID = 1L; + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.printCurrentTitle("ELExpression RCE", response); + + String form = "
" + + "" + "
"; + out.println(form); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + RequestDispatcher dispatcherObj = getServletContext().getRequestDispatcher("/elexpression.jsp"); + dispatcherObj.forward(request, response); + } +} \ No newline at end of file diff --git a/src/main/java/com/endor/EncryptionObjects.java b/src/main/java/com/endor/EncryptionObjects.java new file mode 100644 index 0000000..d8da46e --- /dev/null +++ b/src/main/java/com/endor/EncryptionObjects.java @@ -0,0 +1,26 @@ +package com.endor; + +import javax.crypto.Cipher; +import javax.crypto.NoSuchPaddingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.util.Random; + +public class EncryptionObjects { + public static MessageDigest md; + public static Cipher c; + public static SecureRandom sr; + public static Random r; + + static void init() { + try { + md = MessageDigest.getInstance("SHA-512"); + c = Cipher.getInstance("DESede"); + sr = SecureRandom.getInstance("SHA1PRNG"); + r = new Random(); + } catch (NoSuchAlgorithmException | NoSuchPaddingException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/endor/EncryptionServlet.java b/src/main/java/com/endor/EncryptionServlet.java new file mode 100644 index 0000000..4cf4585 --- /dev/null +++ b/src/main/java/com/endor/EncryptionServlet.java @@ -0,0 +1,765 @@ +package com.endor; + +import javax.crypto.*; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.security.*; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.PKCS8EncodedKeySpec; +import java.security.spec.X509EncodedKeySpec; +import java.util.Arrays; +import java.util.Base64; +import java.util.HashMap; + +@WebServlet(name = "EncryptionServlet") +public class EncryptionServlet extends HttpServlet { + public EncryptionServlet() { + EncryptionObjects.init(); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("Encryption", response); + + StringBuilder form = new StringBuilder(); + form.append("
") + .append("Data to encrypt:


") + .append("") + .append("

MessageDigest

") + .append("") + .append("") + + .append("

") + .append(": java.security.MessageDigest.getInstance(String algorithm)
") + .append(": java.security.MessageDigest.getInstance(String algorithm, Provider provider)
") + .append(": java.security.MessageDigest.getInstance(String algorithm, String provider)
") + .append(": external object for java.security.MessageDigest.getInstance(String algorithm)
") + .append("

") + + .append("

Crypto

") + .append("") + .append("") + + .append("   ") + + .append("") + + .append("

") + .append(": javax.crypto.Cipher.getInstance(String transformation)
") + .append(": javax.crypto.Cipher.getInstance(String transformation, Provider provider)
") + .append(": javax.crypto.Cipher.getInstance(String transformation, String provider)
") + .append(": external object for javax.crypto.Cipher.getInstance(String transformation)
") + .append(": RSA for javax.crypto.Cipher.getInstance(String transformation)
") + .append("

") + + .append("

SecureRandom

") + .append("") + .append("") + + .append("

") + .append(": java.security.SecureRandom.getInstance(String algorithm).nextBytes(barray)
") + .append(": java.security.SecureRandom.getInstance(String algorithm).nextDouble()
") + .append(": java.security.SecureRandom.getInstance(String algorithm).nextFloat()
") + .append(": java.security.SecureRandom.getInstance(String algorithm).nextGaussian()
") + .append(": java.security.SecureRandom.getInstance(String algorithm).nextInt()
") + .append(": java.security.SecureRandom.getInstance(String algorithm).nextInt(99)
") + .append(": java.security.SecureRandom.getInstance(String algorithm).nextLong()
") + + .append("

") + .append(": java.lang.Math.random()
") + + .append("

") + .append(": java.util.Random().nextBytes(bytes)
") + .append(": java.util.Random().nextDouble()
") + .append(": java.util.Random().nextFloat()
") + .append(": java.util.Random().nextGaussian()
") + .append(": java.util.Random().nextInt()
") + .append(": java.util.Random().nextInt(99)
") + .append(": java.util.Random().nextLong()
") + .append("

") + .append("" + "
"); + out.println(form); + + HashMap encryptionTypeMap = new HashMap() { + { + put("MessageDigest1", 0); + put("MessageDigest2", 1); + put("MessageDigest3", 2); + put("MessageDigest4", 3); + put("Crypto1", 4); + put("Crypto2", 5); + put("Crypto3", 6); + put("Crypto4", 7); + put("Crypto5", 8); + put("SecureRandom1", 9); + put("SecureRandom2", 10); + put("SecureRandom3", 11); + put("SecureRandom4", 12); + put("SecureRandom5", 13); + put("SecureRandom6", 14); + put("SecureRandom7", 15); + put("MathRandom1", 16); + put("utilRandom1", 17); + put("utilRandom2", 18); + put("utilRandom3", 19); + put("utilRandom4", 20); + put("utilRandom5", 21); + put("utilRandom6", 22); + put("utilRandom7", 23); + } + }; + + HashMap encryptionMethodMap = new HashMap() { + { + put(0, "java.security.MessageDigest.getInstance(String algorithm)"); + put(1, "java.security.MessageDigest.getInstance(String algorithm, Provider provider)"); + put(2, "java.security.MessageDigest.getInstance(String algorithm, String provider)"); + put(3, "external object for java.security.MessageDigest.getInstance(String algorithm)"); + put(4, "javax.crypto.Cipher.getInstance(String transformation)"); + put(5, "javax.crypto.Cipher.getInstance(String transformation, Provider provider)"); + put(6, "javax.crypto.Cipher.getInstance(String transformation, String provider)"); + put(7, "external object for javax.crypto.Cipher.getInstance(String transformation)"); + put(8, "RSA for javax.crypto.Cipher.getInstance(String transformation)"); + put(9, "java.security.SecureRandom.getInstance(String algorithm).nextBytes(barray)"); + put(10, "java.security.SecureRandom.getInstance(String algorithm).nextDouble()"); + put(11, "java.security.SecureRandom.getInstance(String algorithm).nextFloat()"); + put(12, "java.security.SecureRandom.getInstance(String algorithm).nextGaussian()"); + put(13, "java.security.SecureRandom.getInstance(String algorithm).nextInt()"); + put(14, "java.security.SecureRandom.getInstance(String algorithm).nextInt(99)"); + put(15, "java.security.SecureRandom.getInstance(String algorithm).nextLong()"); + put(16, "java.lang.Math.random()"); + put(17, "java.util.Random().nextBytes(bytes)"); + put(18, "java.util.Random().nextDouble()"); + put(19, "java.util.Random().nextFloat()"); + put(20, "java.util.Random().nextGaussian()"); + put(21, "java.util.Random().nextInt()"); + put(22, "java.util.Random().nextInt(99)"); + put(23, "java.util.Random().nextLong()"); + } + }; + + String encryptionTypeStr = request.getParameter("encryptiontype"); + System.out.println("encryptionTypeStr - " + encryptionTypeStr); + int encryptionType = encryptionTypeMap.get(encryptionTypeStr); + + String dataToEncrypt = request.getParameter("data_to_encrypt"); + String algorithm = ""; + String keyGeneratorAlgorithm = ""; + if(encryptionType < 3) algorithm = request.getParameter("MessageDigestAlgorithm"); + else if(encryptionType >= 4 && encryptionType < 9) { + algorithm = request.getParameter("CryptoAlgorithm"); + keyGeneratorAlgorithm = request.getParameter("KeyGeneratorAlgorithm"); + } + else if(encryptionType >= 8 && encryptionType < 16) algorithm = request.getParameter("SecureRandomAlgorithm"); + + String returnValue = "Failed!"; + switch (encryptionType) { + case 0: + // "MessageDigest1" + // java.security.MessageDigest.getInstance(String algorithm) + returnValue = testMessageDigest1(dataToEncrypt, algorithm); + break; + case 1: + // "MessageDigest2" + // java.security.MessageDigest.getInstance(String algorithm, Provider provider) + returnValue = testMessageDigest2(dataToEncrypt, algorithm); + break; + case 2: + // "MessageDigest3" + // java.security.MessageDigest.getInstance(String algorithm, String provider) + returnValue = testMessageDigest3(dataToEncrypt, algorithm); + break; + case 3: + // "MessageDigest3" + // java.security.MessageDigest.getInstance(String algorithm, Provider provider) + returnValue = testMessageDigest4(dataToEncrypt); + break; + case 4: + // "Crypto1" + // javax.crypto.Cipher.getInstance(String transformation) + returnValue = testCrypto1(dataToEncrypt, algorithm, keyGeneratorAlgorithm); + break; + case 5: + // "Crypto2" + // javax.crypto.Cipher.getInstance(String transformation, Provider provider) + returnValue = testCrypto2(dataToEncrypt, algorithm, keyGeneratorAlgorithm); + break; + case 6: + // "Crypto3" + // javax.crypto.Cipher.getInstance(String transformation, String provider) + returnValue = testCrypto3(dataToEncrypt, algorithm, keyGeneratorAlgorithm); + break; + case 7: + // "Crypto4" + // javax.crypto.Cipher.getInstance(String transformation) + returnValue = testCrypto4(dataToEncrypt); + break; + case 8: + // "Crypto5" + // javax.crypto.Cipher.getInstance(String transformation) + returnValue = testCrypto5(dataToEncrypt, algorithm); + break; + case 9: + // "SecureRandom1" + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextBytes(barray) + returnValue = testSecureRandom1(algorithm); + break; + case 10: + // "SecureRandom2" + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextBytes(barray) + returnValue = testSecureRandom2(algorithm); + break; + case 11: + // "SecureRandom3" + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextBytes(barray) + returnValue = testSecureRandom3(algorithm); + break; + case 12: + // "SecureRandom4" + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextBytes(randomBytes) + returnValue = testSecureRandom4(algorithm); + break; + case 13: + // "SecureRandom5" + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextBytes(randomBytes) + returnValue = testSecureRandom5(algorithm); + break; + case 14: + // "SecureRandom6" + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextDouble() + returnValue = testSecureRandom6(algorithm); + break; + case 15: + // "SecureRandom7" + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextDouble() + returnValue = testSecureRandom7(algorithm); + break; + case 16: + // "MathRandom1" + // java.lang.Math.random() + returnValue = testMathRandom1(); + break; + case 17: + // "utilRandom1" + // java.util.Random().nextBytes(bytes) + returnValue = testUtilRandom1(); + break; + case 18: + // "utilRandom2" + // java.util.Random().nextDouble() + returnValue = testUtilRandom2(); + break; + case 19: + // "utilRandom3" + // java.util.Random().nextFloat() + returnValue = testUtilRandom3(); + break; + case 20: + // "utilRandom4" + // java.util.Random().nextGaussian() + returnValue = testUtilRandom4(); + break; + case 21: + // "utilRandom5" + // java.util.Random().nextInt() + returnValue = testUtilRandom5(); + break; + case 22: + // "utilRandom6" + // java.util.Random().nextInt(99) + returnValue = testUtilRandom6(); + break; + case 23: + // "utilRandom7" + // java.util.Random().nextLong() + returnValue = testUtilRandom7(); + break; + default: + System.out.println("Encryption Type not found"); + } + + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + + out.println("

Encryption execution result

"); + out.println("

"); + out.println("

Method called - " + encryptionMethodMap.get(encryptionType) + "

"); + if(encryptionType< 15) out.println("

Input Provided

"); + if(encryptionType< 15) out.println("

Text - " + dataToEncrypt + "

"); + if(algorithm.length() > 0) out.println("

Algorithm - " + algorithm + "

"); + if(keyGeneratorAlgorithm.length() > 0) out.println("

KeyGeneratorAlgorithm - " + keyGeneratorAlgorithm + "

"); + out.println("

Result - " + returnValue + "

"); + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + } + + private String testMessageDigest1(String message, String algorithm) { + // java.security.MessageDigest.getInstance(String algorithm) + try { + MessageDigest md = MessageDigest.getInstance(algorithm); + + System.out.println("md.toString() - " + md.toString()); + + // Passing data to the created MessageDigest Object + md.update(message.getBytes()); + + // Compute the message digest + byte[] digest = md.digest(); + + System.out.println(Arrays.toString(digest)); + + // Converting the byte array in to HexString format + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < digest.length; i++) { + hexString.append(Integer.toHexString(0xFF & digest[i])); + } + System.out.println("Hex format : " + hexString.toString()); + return "Success - Value returned = " + hexString.toString(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testMessageDigest2(String message, String algorithm) { + // java.security.MessageDigest.getInstance(String algorithm, Provider provider) + MessageDigest md = null; + try { + md = MessageDigest.getInstance(algorithm, "SUN"); + + System.out.println("md.toString() - " + md.toString()); + + // Passing data to the created MessageDigest Object + md.update(message.getBytes()); + + // Compute the message digest + byte[] digest = md.digest(); + + System.out.println(digest); + + // Converting the byte array in to HexString format + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < digest.length; i++) { + hexString.append(Integer.toHexString(0xFF & digest[i])); + } + System.out.println("Hex format : " + hexString.toString()); + return "Success - Value returned = " + hexString.toString(); + } catch (NoSuchAlgorithmException | NoSuchProviderException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testMessageDigest3(String message, String algorithm) { + // java.security.MessageDigest.getInstance(String algorithm, String provider) + MessageDigest md = null; + try { + Provider[] provider = java.security.Security.getProviders(); + + System.out.println(provider[0].getName()); + md = MessageDigest.getInstance(algorithm, provider[0]); + + System.out.println("md.toString() - " + md.toString()); + + // Passing data to the created MessageDigest Object + md.update(message.getBytes()); + + // Compute the message digest + byte[] digest = md.digest(); + + System.out.println(digest); + + // Converting the byte array in to HexString format + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < digest.length; i++) { + hexString.append(Integer.toHexString(0xFF & digest[i])); + } + System.out.println("Hex format : " + hexString.toString()); + return "Success - Value returned = " + hexString.toString(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testMessageDigest4(String message) { + // java.security.MessageDigest.getInstance(String algorithm, Provider provider) + MessageDigest md = null; + try { + md = EncryptionObjects.md; + + System.out.println("md.toString() - " + md.toString()); + + // Passing data to the created MessageDigest Object + md.update(message.getBytes()); + + // Compute the message digest + byte[] digest = md.digest(); + + System.out.println(digest); + + // Converting the byte array in to HexString format + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < digest.length; i++) { + hexString.append(Integer.toHexString(0xFF & digest[i])); + } + System.out.println("Hex format : " + hexString.toString()); + return "Success - Value returned = " + hexString.toString(); + } catch (Exception e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testCrypto1(String message, String algorithm, String keyGeneratorAlgorithm) { + // javax.crypto.Cipher.getInstance(String transformation) + try { + Cipher c = Cipher.getInstance(algorithm); + + // Prepare the cipher to encrypt + SecretKey key = KeyGenerator.getInstance(keyGeneratorAlgorithm).generateKey(); + c.init(javax.crypto.Cipher.ENCRYPT_MODE, key); + + // encrypt and store the results + byte[] input = { (byte)'?' }; + Object inputParam = message; + if (inputParam instanceof String) input = ((String) inputParam).getBytes(); + byte[] result = c.doFinal(input); + + // Converting the byte array in to HexString format + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < result.length; i++) { + hexString.append(Integer.toHexString(0xFF & result[i])); + } + System.out.println("Hex format : " + hexString.toString()); + return "Success - Value returned = " + hexString.toString(); + } catch (NoSuchAlgorithmException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException | InvalidKeyException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testCrypto2(String message, String algorithm, String keyGeneratorAlgorithm) { + // javax.crypto.Cipher.getInstance(String transformation, Provider provider) + try { + Cipher c = Cipher.getInstance(algorithm, "SunJCE"); + + // Prepare the cipher to encrypt + SecretKey key = KeyGenerator.getInstance(keyGeneratorAlgorithm).generateKey(); + c.init(javax.crypto.Cipher.ENCRYPT_MODE, key); + + // encrypt and store the results + byte[] input = { (byte)'?' }; + Object inputParam = message; + if (inputParam instanceof String) input = ((String) inputParam).getBytes(); + byte[] result = c.doFinal(input); + + // Converting the byte array in to HexString format + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < result.length; i++) { + hexString.append(Integer.toHexString(0xFF & result[i])); + } + System.out.println("Hex format : " + hexString.toString()); + return "Success - Value returned = " + hexString.toString(); + } catch (NoSuchAlgorithmException | NoSuchProviderException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException | InvalidKeyException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testCrypto3(String message, String algorithm, String keyGeneratorAlgorithm) { + // javax.crypto.Cipher.getInstance(String transformation, String provider) + try { + Cipher c = Cipher.getInstance(algorithm, Security.getProvider("SunJCE")); + + // Prepare the cipher to encrypt + SecretKey key = KeyGenerator.getInstance(keyGeneratorAlgorithm).generateKey(); + c.init(javax.crypto.Cipher.ENCRYPT_MODE, key); + + // encrypt and store the results + byte[] input = { (byte)'?' }; + Object inputParam = message; + if (inputParam instanceof String) input = ((String) inputParam).getBytes(); + byte[] result = c.doFinal(input); + + // Converting the byte array in to HexString format + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < result.length; i++) { + hexString.append(Integer.toHexString(0xFF & result[i])); + } + System.out.println("Hex format : " + hexString.toString()); + return "Success - Value returned = " + hexString.toString(); + } catch (NoSuchAlgorithmException | NoSuchPaddingException | IllegalBlockSizeException | BadPaddingException | InvalidKeyException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testCrypto4(String message) { + // javax.crypto.Cipher.getInstance(String transformation) + try { + Cipher c = EncryptionObjects.c; + + // Prepare the cipher to encrypt + SecretKey key = KeyGenerator.getInstance("DESede").generateKey(); + c.init(javax.crypto.Cipher.ENCRYPT_MODE, key); + + // encrypt and store the results + byte[] input = { (byte)'?' }; + Object inputParam = message; + if (inputParam instanceof String) input = ((String) inputParam).getBytes(); + byte[] result = c.doFinal(input); + + // Converting the byte array in to HexString format + StringBuffer hexString = new StringBuffer(); + for (int i = 0; i < result.length; i++) { + hexString.append(Integer.toHexString(0xFF & result[i])); + } + System.out.println("Hex format : " + hexString.toString()); + return "Success - Value returned = " + hexString.toString(); + } catch (NoSuchAlgorithmException | IllegalBlockSizeException | BadPaddingException | InvalidKeyException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + // RSA algorithm credit - https://www.devglan.com/java8/rsa-encryption-decryption-java + private String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgFGVfrY4jQSoZQWWygZ83roKXWD4YeT2x2p41dGkPixe73rT2IW04glagN2vgoZoHuOPqa5and6kAmK2ujmCHu6D1auJhE2tXP+yLkpSiYMQucDKmCsWMnW9XlC5K7OSL77TXXcfvTvyZcjObEz6LIBRzs6+FqpFbUO9SJEfh6wIDAQAB"; + private String privateKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKAUZV+tjiNBKhlBZbKBnzeugpdYPhh5PbHanjV0aQ+LF7vetPYhbTiCVqA3a+Chmge44+prlqd3qQCYra6OYIe7oPVq4mETa1c/7IuSlKJgxC5wMqYKxYydb1eULkrs5IvvtNddx+9O/JlyM5sTPosgFHOzr4WqkVtQ71IkR+HrAgMBAAECgYAkQLo8kteP0GAyXAcmCAkA2Tql/8wASuTX9ITD4lsws/VqDKO64hMUKyBnJGX/91kkypCDNF5oCsdxZSJgV8owViYWZPnbvEcNqLtqgs7nj1UHuX9S5yYIPGN/mHL6OJJ7sosOd6rqdpg6JRRkAKUV+tmN/7Gh0+GFXM+ug6mgwQJBAO9/+CWpCAVoGxCA+YsTMb82fTOmGYMkZOAfQsvIV2v6DC8eJrSa+c0yCOTa3tirlCkhBfB08f8U2iEPS+Gu3bECQQCrG7O0gYmFL2RX1O+37ovyyHTbst4s4xbLW4jLzbSoimL235lCdIC+fllEEP96wPAiqo6dzmdH8KsGmVozsVRbAkB0ME8AZjp/9Pt8TDXD5LHzo8mlruUdnCBcIo5TMoRG2+3hRe1dHPonNCjgbdZCoyqjsWOiPfnQ2Brigvs7J4xhAkBGRiZUKC92x7QKbqXVgN9xYuq7oIanIM0nz/wq190uq0dh5Qtow7hshC/dSK3kmIEHe8z++tpoLWvQVgM538apAkBoSNfaTkDZhFavuiVl6L8cWCoDcJBItip8wKQhXwHp0O3HLg10OEd14M58ooNfpgt+8D8/8/2OOFaR0HzA+2Dm"; + + private String testCrypto5(String message, String algorithm) { + // javax.crypto.Cipher.getInstance(String transformation, String provider) + String encryptedString = ""; + try { + Cipher cipher = Cipher.getInstance(algorithm); + + X509EncodedKeySpec keySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(this.publicKey.getBytes())); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + PublicKey publicKey = keyFactory.generatePublic(keySpec); + + cipher.init(Cipher.ENCRYPT_MODE, publicKey); + byte[] result = cipher.doFinal(message.getBytes()); + + encryptedString = Base64.getEncoder().encodeToString(result); + System.out.println(encryptedString); +// String decryptedString = decrypt(encryptedString, privateKey); +// System.out.println(decryptedString); + } catch (NoSuchAlgorithmException | IllegalBlockSizeException | InvalidKeyException | BadPaddingException | NoSuchPaddingException | InvalidKeySpecException e) { + return "Failed with exception " + e.getMessage(); + } + return "Success - Value returned = " + encryptedString; + } + + private String decrypt(String data, String base64PrivateKey) throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException { + return decrypt(Base64.getDecoder().decode(data.getBytes()), getPrivateKey(base64PrivateKey)); + } + + private String decrypt(byte[] data, PrivateKey privateKey) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException { + Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); + cipher.init(Cipher.DECRYPT_MODE, privateKey); + return new String(cipher.doFinal(data)); + } + + private PrivateKey getPrivateKey(String base64PrivateKey){ + PrivateKey privateKey = null; + PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(base64PrivateKey.getBytes())); + KeyFactory keyFactory = null; + try { + keyFactory = KeyFactory.getInstance("RSA"); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + try { + privateKey = keyFactory.generatePrivate(keySpec); + } catch (InvalidKeySpecException e) { + e.printStackTrace(); + } + return privateKey; + } + + private String testSecureRandom1(String algorithm) { + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextBytes(barray) + try { + SecureRandom.getInstance(algorithm).nextBytes(new byte[100]); + return "Succeeded"; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testSecureRandom2(String algorithm) { + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextDouble() + try { + return "Success - Value returned = " + SecureRandom.getInstance(algorithm).nextDouble() + ""; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testSecureRandom3(String algorithm) { + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextFloat() + try { + return "Success - Value returned = " + SecureRandom.getInstance(algorithm).nextFloat() + ""; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testSecureRandom4(String algorithm) { + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextGaussian() + try { + return "Success - Value returned = " + SecureRandom.getInstance(algorithm).nextGaussian() + ""; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testSecureRandom5(String algorithm) { + // java.security.SecureRandom.getInstance("SHA1PRNG").nextInt() + try { + return "Success - Value returned = " + SecureRandom.getInstance(algorithm).nextInt() + ""; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testSecureRandom6(String algorithm) { + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextInt(99) + try { + return "Success - Value returned = " + SecureRandom.getInstance(algorithm).nextInt(99) + ""; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testSecureRandom7(String algorithm) { + // java.security.SecureRandom.getInstance(\"SHA1PRNG\").nextLong() + try { + return "Success - Value returned = " + SecureRandom.getInstance(algorithm).nextLong() + ""; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return "Failed with exception " + e.getMessage(); + } + } + + private String testMathRandom1() { + // java.lang.Math.random() + return "Success - Value returned = " + java.lang.Math.random() + ""; + } + + private String testUtilRandom1() { + // java.util.Random().nextBytes(bytes) + EncryptionObjects.r.nextBytes(new byte[100]); + return "Succeeded"; + } + + private String testUtilRandom2() { + // java.util.Random().nextDouble() + return "Success - Value returned = " + EncryptionObjects.r.nextDouble() + ""; + } + + private String testUtilRandom3() { + // java.util.Random().nextFloat() + return "Success - Value returned = " + EncryptionObjects.r.nextFloat() + ""; + } + + private String testUtilRandom4() { + // java.util.Random().nextGaussian() + return "Success - Value returned = " + EncryptionObjects.r.nextGaussian() + ""; + } + + private String testUtilRandom5() { + // java.util.Random().nextInt() + return "Success - Value returned = " + EncryptionObjects.r.nextInt() + ""; + } + + private String testUtilRandom6() { + // java.util.Random().nextInt(99) + return "Success - Value returned = " + EncryptionObjects.r.nextInt(99) + ""; + } + + private String testUtilRandom7() { + // java.util.Random().nextLong() + return "Success - Value returned = " + EncryptionObjects.r.nextLong() + ""; + } +} diff --git a/src/main/java/com/endor/ExecuteServlet.java b/src/main/java/com/endor/ExecuteServlet.java new file mode 100644 index 0000000..e5ebf86 --- /dev/null +++ b/src/main/java/com/endor/ExecuteServlet.java @@ -0,0 +1,40 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "ExecuteServlet") +public class ExecuteServlet extends HttpServlet { + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.printCurrentTitle("Web Shell", response); + + String form = "
" + + "Command:

" + + "Environment Var:
" + + "" + "
"; + out.println(form); + + String command = request.getParameter("command"); + String env = request.getParameter("env"); + String[] envArr = env.split(";"); + Runtime.getRuntime().exec(command, envArr); + } +} diff --git a/src/main/java/com/endor/ExtraServlet.java b/src/main/java/com/endor/ExtraServlet.java new file mode 100644 index 0000000..977a32f --- /dev/null +++ b/src/main/java/com/endor/ExtraServlet.java @@ -0,0 +1,246 @@ +package com.endor; + +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Types; + +import javax.servlet.ServletException; +import javax.servlet.ServletInputStream; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + + +/** + * Servlet implementation class ExtraServlet + */ +@WebServlet("/ExtraServlet") +public class ExtraServlet extends HttpServlet { + //private static final long serialVersionUID = 1L; + static String connectionUrl = ""; + static String dbUser = ""; + static String dbPassword = ""; + static String dbType = ""; + static String DB_TYPE_ORACLE = "Oracle"; + + /** + * @see HttpServlet#HttpServlet() + */ + + @Override + public void init() throws ServletException { + super.init(); + connectionUrl =System.getProperty("endor_connection_url", "jdbc:oracle:thin:@10.0.22.108:1521:XE"); + dbUser =System.getProperty("endor_db_user", "sys as sysdba"); + dbPassword =System.getProperty("endor_db_password", "Psmo0601"); + dbType =System.getProperty("endor_db_type", DB_TYPE_ORACLE); + + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("SQL", response); + String form = "
" + + "This URL is testing multi leg features
" + + "--------------------------------------

"+ "
"; + out.println(form); + HtmlUtil.closeCol(response); + + String retVal = "Failed!"; + //PreparedStatement execution with input parameter + int len = request.getContentLength(); + if (len > 0) { + byte[] input = new byte[len]; + //System.out.println("length of input" + len); + + ServletInputStream sin = request.getInputStream(); + int c, count = 0 ; + while ((c = sin.read(input, count, input.length-count)) != -1) { + count +=c; + } + sin.close(); + + String inString = new String(input); + int index = inString.indexOf("&"); + String lastvalue = inString.substring(0,index); + String restvalue = inString.substring(index+1); + index = restvalue.indexOf("&"); + String passvalue = restvalue.substring(0,index); + String multileg_value = restvalue.substring(index+1); + + index = lastvalue.indexOf("="); + String last = lastvalue.substring(index+1); + + index = passvalue.indexOf("="); + String pass = passvalue.substring(index+1); + + index = multileg_value.indexOf("="); + String multileg = multileg_value.substring(index+1); + + System.out.println("\nlast=" +last+ "\npass=" +pass+ "\nmultileg=" +multileg); + + if(multileg.equalsIgnoreCase("prepared_statement") && executeSQLHelper(last, pass)) { + retVal = "Succeeded"; + } + + else if(multileg.equalsIgnoreCase("stored_procedure") && getCustomersStoredProc(last, pass)) { + retVal = "Succeeded"; + } + + HtmlUtil.openCol(response); + out.println("

SQL execution for Input Parameter " + retVal + "

"); + HtmlUtil.closeCol(response); + } + + + //PreparedStatement with hard-coded value + /* + retVal = "Succeeded"; + executeSQLHelper("prakash'--", "psmo"); + */ + + if (retVal.equalsIgnoreCase("Succeeded")){ + retVal = HttpURLConnectionExample.sendGET(); + } + + /* + + HtmlUtil.openCol(response); + out.println("

SQL execution for internal values " + retVal + "

"); + HtmlUtil.closeCol(response); + */ + + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + } + + private Connection connect() { + Connection conn = null; + try { + // Create database connection + conn = DriverManager.getConnection(connectionUrl, dbUser, dbPassword); + System.out.println("DB Connection established"); + } catch (Exception e) { + System.err.println("ERROR: failed to connect DB"); + e.printStackTrace(); + return null; + } + return conn; + } + + public boolean executeSQLHelper(String name, String pass) { + boolean retVal = false; + Connection conn = connect(); + if (conn == null) + return false; + + try { + StringBuffer sbuf = new StringBuffer(); + String query = new String(); + query = "select FIRST, LAST from CUSTOMERS WHERE LAST=\'" + name + "\' AND PASSWORD= \'" + pass + "\'"; + System.out.println("Multileg PreparedStatementQUERY:" + query); + PreparedStatement stmt = conn.prepareStatement(query); + ResultSet rs = stmt.executeQuery(); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + System.out.println("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + stmt.close(); + rs.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return retVal; + } + + public boolean getCustomersStoredProc(String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + try { + // close the statement as its not a callable statement + stmt.close(); + String query; + CallableStatement c = null; + + query = "{call verifyuser(?,?,?)}"; + c = conn.prepareCall(query); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + System.out.println("Multihub DB stored Proc being called"); + System.out.println(query); + c.execute(); + output = c.getInt(3); + System.out.println("Customer Count: " + output); + + //c.executeQuery(); + // Loop through the data and print all artist names + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } + +} diff --git a/src/main/java/com/endor/FileUploadServlet.java b/src/main/java/com/endor/FileUploadServlet.java new file mode 100644 index 0000000..9d6eda9 --- /dev/null +++ b/src/main/java/com/endor/FileUploadServlet.java @@ -0,0 +1,92 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.annotation.MultipartConfig; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.Part; +import java.io.*; +import java.util.logging.Level; +import java.util.logging.Logger; + +//@WebServlet(name = "FileUploadServlet", urlPatterns = {"/upload"}) +@MultipartConfig +public class FileUploadServlet extends HttpServlet { + + private final static Logger LOGGER = + Logger.getLogger(FileUploadServlet.class.getCanonicalName()); + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + processRequest(req, resp); + } + protected void processRequest(HttpServletRequest request, + HttpServletResponse response) + throws ServletException, IOException { + response.setContentType("text/html;charset=UTF-8"); + + // Create path components to save the file + + System.out.println("Came to processRequest1 "); + final String path = request.getParameter("destination"); + System.out.println("Came to processRequest2"); + + final Part filePart = request.getPart("file"); + System.out.println("Came to processRequest3"); + + final String fileName = getFileName(filePart); + System.out.println("Came to processRequest4"); + + + OutputStream out = null; + InputStream filecontent = null; + final PrintWriter writer = response.getWriter(); + + try { + out = new FileOutputStream(new File(path + File.separator + + fileName)); + filecontent = filePart.getInputStream(); + + int read = 0; + final byte[] bytes = new byte[1024]; + + while ((read = filecontent.read(bytes)) != -1) { + out.write(bytes, 0, read); + } + writer.println("New file " + fileName + " created at " + path); + LOGGER.log(Level.INFO, "File{0}being uploaded to {1}", + new Object[]{fileName, path}); + } catch (FileNotFoundException fne) { + writer.println("You either did not specify a file to upload or are " + + "trying to upload a file to a protected or nonexistent " + + "location."); + writer.println("
ERROR: " + fne.getMessage()); + + LOGGER.log(Level.SEVERE, "Problems during file upload. Error: {0}", + new Object[]{fne.getMessage()}); + } finally { + if (out != null) { + out.close(); + } + if (filecontent != null) { + filecontent.close(); + } + if (writer != null) { + writer.close(); + } + } + } + + private String getFileName(final Part part) { + final String partHeader = part.getHeader("content-disposition"); + LOGGER.log(Level.INFO, "Part Header = {0}", partHeader); + for (String content : part.getHeader("content-disposition").split(";")) { + if (content.trim().startsWith("filename")) { + return content.substring( + content.indexOf('=') + 1).trim().replace("\"", ""); + } + } + return null; + } +} diff --git a/src/main/java/com/endor/GetInputStreamInnerTest.java b/src/main/java/com/endor/GetInputStreamInnerTest.java new file mode 100644 index 0000000..bb5c2a6 --- /dev/null +++ b/src/main/java/com/endor/GetInputStreamInnerTest.java @@ -0,0 +1,201 @@ +package com.endor; + + +import javax.servlet.ServletException; +import javax.servlet.ServletInputStream; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.*; + +@WebServlet(urlPatterns={"/GetInputStreamInnerTest"}) +public class GetInputStreamInnerTest extends HttpServlet { + + boolean isPost = false; + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + isPost = true; + System.out.println("In Post request method"); + doGet(request, response); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + System.out.println("request.getContentType() = " + request.getContentType()); + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("SQL", response); + String form = "
" + + "This URL is testing multi leg features
" + + "--------------------------------------

"+ "
"; + out.println(form); + HtmlUtil.closeCol(response); + + String retVal = "Failed!"; + //PreparedStatement execution with input parameter + int len = request.getContentLength(); + if (len > 0) { + byte[] input = new byte[len]; + //System.out.println("length of input" + len); + + String last = request.getParameter("last"); + String pass = request.getParameter("pass"); + String multileg = request.getParameter("multileg"); + + System.out.println("\nlast=" +last+ "\npass=" +pass+ "\nmultileg=" +multileg); + + if(multileg.equalsIgnoreCase("prepared_statement") && executeSQLHelper(last, pass)) { + retVal = "Succeeded"; + } + + else if(multileg.equalsIgnoreCase("stored_procedure") && getCustomersStoredProc(last, pass)) { + retVal = "Succeeded"; + } + + HtmlUtil.openCol(response); + out.println("

SQL execution for Input Parameter " + retVal + "

"); + HtmlUtil.closeCol(response); + } + + if (retVal.equalsIgnoreCase("Succeeded")){ + retVal = HttpURLConnectionExample.sendGET(); + } + + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + } + + //private static final long serialVersionUID = 1L; + static String connectionUrl = ""; + static String dbUser = ""; + static String dbPassword = ""; + static String dbType = ""; + static String DB_TYPE_ORACLE = "Oracle"; + + /** + * @see HttpServlet#HttpServlet() + */ + + @Override + public void init() throws ServletException { + super.init(); + connectionUrl =System.getProperty("endor_connection_url", "jdbc:oracle:thin:@10.0.22.108:1521:XE"); + dbUser =System.getProperty("endor_db_user", "sys as sysdba"); + dbPassword =System.getProperty("endor_db_password", "Psmo0601"); + dbType =System.getProperty("endor_db_type", DB_TYPE_ORACLE); + + } + + private Connection connect() { + Connection conn = null; + try { + // Create database connection + conn = DriverManager.getConnection(connectionUrl, dbUser, dbPassword); + System.out.println("DB Connection established"); + } catch (Exception e) { + System.err.println("ERROR: failed to connect DB"); + e.printStackTrace(); + return null; + } + return conn; + } + + public boolean executeSQLHelper(String name, String pass) { + boolean retVal = false; + Connection conn = connect(); + if (conn == null) + return false; + + try { + StringBuffer sbuf = new StringBuffer(); + String query = new String(); + query = "select FIRST, LAST from CUSTOMERS WHERE LAST=\'" + name + "\' AND PASSWORD= \'" + pass + "\'"; + System.out.println("Multileg PreparedStatementQUERY:" + query); + PreparedStatement stmt = conn.prepareStatement(query); + ResultSet rs = stmt.executeQuery(); + // Loop through the data and print all artist names + while (rs.next()) { + sbuf.append("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + System.out.println("Customer Name: " + rs.getString("FIRST") + " " + rs.getString("LAST")); + sbuf.append("
"); + retVal = sbuf.toString().length() > 2; + } + // Clean up + stmt.close(); + rs.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return retVal; + } + + public boolean getCustomersStoredProc(String name, String pass) { + Connection conn = connect(); + if (conn == null) + return false; + Statement stmt = null; + try { + stmt = conn.createStatement(); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + boolean hasResults = false; + try { + // close the statement as its not a callable statement + stmt.close(); + String query; + CallableStatement c = null; + + query = "{call verifyuser(?,?,?)}"; + c = conn.prepareCall(query); + c.setString(1, name); + c.setString(2, pass); + c.registerOutParameter(3, Types.INTEGER); + System.out.println("Multihub DB stored Proc being called"); + System.out.println(query); + c.execute(); + output = c.getInt(3); + System.out.println("Customer Count: " + output); + + //c.executeQuery(); + // Loop through the data and print all artist names + // Clean up + c.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output > 0; + } +} + diff --git a/src/main/java/com/endor/GetInputStreamTest.java b/src/main/java/com/endor/GetInputStreamTest.java new file mode 100644 index 0000000..2dfc795 --- /dev/null +++ b/src/main/java/com/endor/GetInputStreamTest.java @@ -0,0 +1,109 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.ServletInputStream; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(urlPatterns={"/GetInputStreamTest"}) +public class GetInputStreamTest extends HttpServlet { + + boolean isPost = false; + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + isPost = true; + System.out.println("In Post request method"); + doGet(request, response); + } + + private static final String POST_URL_GET_PARAMETER = "http://localhost:8080/endor-webapp/GetInputStreamInnerTest"; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + System.out.println("request.getContentType() = " + request.getContentType()); + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + + StringBuilder form = new StringBuilder(); + form.append("

") + .append("last: ") + .append("

") + .append("pass: ") + .append("

") + .append("") + .append("") + .append("

") + + .append("" + "
"); + out.println(form); + + int len = request.getContentLength(); + System.out.println("request.getContentLength() = " + request.getContentLength()); + if (len > 0) { + isPost = false; + System.out.println("In Post request condition"); + byte[] input = new byte[len]; + //System.out.println("length of input" + len); + + ServletInputStream sin = request.getInputStream(); + int c, count = 0 ; + while ((c = sin.read(input, count, input.length-count)) != -1) { + count +=c; + } + sin.close(); + + String inString = new String(input); + int index = inString.indexOf("&"); + String lastvalue = inString.substring(0,index); + String restvalue = inString.substring(index+1); + index = restvalue.indexOf("&"); + String passvalue = restvalue.substring(0,index); + String multileg_value = restvalue.substring(index+1); + + index = lastvalue.indexOf("="); + String last = lastvalue.substring(index+1); + + index = passvalue.indexOf("="); + String pass = passvalue.substring(index+1); + + index = multileg_value.indexOf("="); + String multileg = multileg_value.substring(index+1); + + int responseCode = HttpURLConnectionExample.sendPOSTwithParameter(last, pass, multileg, POST_URL_GET_PARAMETER); + + out.println("

Got response code for GetInputStreamInnerTest " + responseCode + "

"); + + System.out.println("last=" + last); + System.out.println("pass=" + pass); + System.out.println("multileg=" + multileg); + } + + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + String scriptTag = ""; + out.println(scriptTag); + out.println(""); + out.println(""); + } +} + diff --git a/src/main/java/com/endor/HtmlUtil.java b/src/main/java/com/endor/HtmlUtil.java new file mode 100644 index 0000000..0004ee7 --- /dev/null +++ b/src/main/java/com/endor/HtmlUtil.java @@ -0,0 +1,146 @@ +package com.endor; + +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +public class HtmlUtil { + static String title = "ENDOR LABS Webapp"; + + public static void printMenu(HttpServletResponse response) { + printMenuWithPrefix(response, ""); + } + + public static void printClothingShopMenu(HttpServletResponse response) { + printMenuWithPrefix(response, "../"); + } + + public static void printMenuWithPrefix(HttpServletResponse response, String relativePath) { + try { + PrintWriter out = response.getWriter(); + StringBuffer menu = new StringBuffer(); + menu.append("  "); + menu.append("
"); + out.println(menu); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void openTable(HttpServletResponse response) { + try { + PrintWriter out = response.getWriter(); + out.println(""); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void closeTable(HttpServletResponse response) { + try { + PrintWriter out = response.getWriter(); + out.println("
"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void openRow(HttpServletResponse response) { + try { + PrintWriter out = response.getWriter(); + out.println(""); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void closeRow(HttpServletResponse response) { + try { + PrintWriter out = response.getWriter(); + out.println(""); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void openCol(HttpServletResponse response) { + try { + PrintWriter out = response.getWriter(); + out.println(""); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void closeCol(HttpServletResponse response) { + try { + PrintWriter out = response.getWriter(); + out.println(""); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void printCurrentTitle(String title, HttpServletResponse response) { + try { + PrintWriter out = response.getWriter(); + out.println("


" + title + "




"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void startBody(HttpServletResponse response) { + try { + PrintWriter out = response.getWriter(); + out.println(""); + out.println("

" + HtmlUtil.title + "

"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void printHtmlHeader(HttpServletResponse response) { + try { + response.setContentType("text/html"); + response.setCharacterEncoding("UTF-8"); + PrintWriter out = response.getWriter(); + out.println(""); + out.println(""); + //String form = "

" + + //"
" + + //"" + + // "" + + // " " + ""; + //+ "
"; + //"" + ""; + // out.println(form); + out.println(""); + out.println("" + HtmlUtil.title + ""); + out.println(""); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/endor/HttpTrace.java b/src/main/java/com/endor/HttpTrace.java new file mode 100644 index 0000000..5f66184 --- /dev/null +++ b/src/main/java/com/endor/HttpTrace.java @@ -0,0 +1,90 @@ +package com.endor; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +/** + * Servlet implementation class HttpTrace + */ +@WebServlet(name = "HttpTrace") +public class HttpTrace extends HttpServlet { + + + public HttpTrace() { + super(); + // TODO Auto-generated constructor stub + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("Http Tracing", response); + + String form = "
" + + "Http Tracing
" + + "--------------------------------------

"+ + ": Enable Http Tracing
" + + "" + "
"; + out.println(form); + + String sqltype = request.getParameter("enabled"); + String retVal = "Failed"; + if(!sqltype.isEmpty()) { + retVal = "Succeeded"; + } + + + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + if (retVal.equalsIgnoreCase("Succeeded")){ + retVal = HttpURLConnectionExample.sendTRACE(); + } + out.println("

Http Tracing Successful" + "

"); + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + + //doTrace(request,response); + + //response.getWriter().append("Served at: ").append(request.getContextPath()); + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + doGet(request, response); + } + + protected void doTrace(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + System.out.println("Success"); + } + +} diff --git a/src/main/java/com/endor/HttpURLConnectionExample.java b/src/main/java/com/endor/HttpURLConnectionExample.java new file mode 100644 index 0000000..12da576 --- /dev/null +++ b/src/main/java/com/endor/HttpURLConnectionExample.java @@ -0,0 +1,222 @@ +package com.endor; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.lang.reflect.Field; + +public class HttpURLConnectionExample { + + private static final String USER_AGENT = "Mozilla/5.0"; + + private static final String GET_URL = "http://localhost:8080"; + + //private static final String POST_URL = "http://localhost:9090/SpringMVCExample/home"; + private static final String POST_URL = "http://localhost:8080/endor-webapp/ExtraServlet"; + + private static final String POST_PARAMS = "userName=Pankaj"; + + public static void main(String[] args) throws IOException { + + sendGET(); + System.out.println("GET DONE"); + // sendPOST(); + System.out.println("POST DONE"); + } + + public static String sendGET() throws IOException { + URL obj = new URL(GET_URL); + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + con.setRequestMethod("GET"); + con.setRequestProperty("User-Agent", USER_AGENT); + int responseCode = con.getResponseCode(); + System.out.println("GET Response Code :: " + responseCode); + if (responseCode == HttpURLConnection.HTTP_OK) { // success + BufferedReader in = new BufferedReader(new InputStreamReader( + con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println(response.toString()); + return response.toString(); + + } else { + System.out.println("GET request fa worked"); + return "Request Failed!!"; + } + + } + + public static void sendPOST() throws IOException { + URL obj = new URL(POST_URL); + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + con.setRequestMethod("POST"); + con.setRequestProperty("User-Agent", USER_AGENT); + + // For POST only - START + con.setDoOutput(true); + OutputStream os = con.getOutputStream(); + os.write(POST_PARAMS.getBytes()); + os.flush(); + os.close(); + // For POST only - END + + int responseCode = con.getResponseCode(); + System.out.println("POST Response Code :: " + responseCode); + + if (responseCode == HttpURLConnection.HTTP_OK) { //success + BufferedReader in = new BufferedReader(new InputStreamReader( + con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println(response.toString()); + } else { + System.out.println("POST request not worked"); + } + } + + public static void sendPOSTwithParameter(String last, String pass, String multileg) throws IOException { + + URL obj = new URL(POST_URL); + + // For POST only - START + String POST_PARAMS = "last="+last+"&pass="+pass+"&multileg="+multileg; + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + con.setRequestMethod("POST"); + con.setRequestProperty("User-Agent", USER_AGENT); + con.setDoOutput(true); + OutputStream os = con.getOutputStream(); + os.write(POST_PARAMS.getBytes()); + os.flush(); + os.close(); + // For POST only - END + + int responseCode = con.getResponseCode(); + System.out.println("POST Response Code :: " + responseCode); + + if (responseCode == HttpURLConnection.HTTP_OK) { //success + BufferedReader in = new BufferedReader(new InputStreamReader( + con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println(response.toString()); + } else { + System.out.println("POST request not worked"); + } + } + + public static int sendPOSTwithParameter(String last, String pass, String multileg, String url) throws IOException { + + URL obj = new URL(url); + + // For POST only - START + String POST_PARAMS = "last="+last+"&pass="+pass+"&multileg="+multileg; + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + con.setRequestMethod("POST"); + con.setRequestProperty("User-Agent", USER_AGENT); + con.setDoOutput(true); + OutputStream os = con.getOutputStream(); + os.write(POST_PARAMS.getBytes()); + os.flush(); + os.close(); + // For POST only - END + + int responseCode = con.getResponseCode(); + System.out.println("POST Response Code :: " + responseCode); + + if (responseCode == HttpURLConnection.HTTP_OK) { //success + BufferedReader in = new BufferedReader(new InputStreamReader( + con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + // System.out.println(response.toString()); + } else { + System.out.println("POST request not worked"); + } + return responseCode; + } + + public static String sendTRACE() throws IOException { + String TRACE_URL = "http://localhost:8080/endor-webapp/httptrace"; + URL obj = new URL(TRACE_URL); + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + con.setRequestMethod("TRACE"); + + /* + final Object target; + try { + + if (con instanceof HttpURLConnection) { + Field delegate = HttpURLConnection.class.getDeclaredField("delegate"); + delegate.setAccessible(true); + target = delegate.get(con); + } else { + target = con; + } + final Field f = HttpURLConnection.class.getDeclaredField("method"); + f.setAccessible(true); + f.set(target, "TRACE"); + } catch (IllegalAccessException | NoSuchFieldException ex) { + throw new AssertionError(ex); + }*/ + + con.setRequestProperty("User-Agent", USER_AGENT); + int responseCode = con.getResponseCode(); + System.out.println("TRACE Response Code :: " + responseCode); + if (responseCode == HttpURLConnection.HTTP_OK) { // success + BufferedReader in = new BufferedReader(new InputStreamReader( + con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + + // print result + System.out.println(response.toString()); + return response.toString(); + + } else { + System.out.println("TRACE request fa worked"); + return "Request Failed!!"; + } + + } + + private void setRequestMethod(final HttpURLConnection c, final String value) { + + } + +} diff --git a/src/main/java/com/endor/Login.java b/src/main/java/com/endor/Login.java new file mode 100644 index 0000000..307ff32 --- /dev/null +++ b/src/main/java/com/endor/Login.java @@ -0,0 +1,99 @@ +package com.endor; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +@WebServlet("/clothing-shop/login") +public class Login extends HttpServlet { + private static final long serialVersionUID = 1L; + + public Login() { + super(); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + HttpSession session = request.getSession(); + + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printClothingShopMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("Login Page", response); + + String form = "
" + + "--------------------------------------

"+ + "User ID:

" + + "Password:

" + + + "" + "
"; + out.println(form); + String retVal = ""; + String username = request.getParameter("username"); + String password = request.getParameter("password"); + + HashMap hash_map = new HashMap<>(); + hash_map.put("app-admin1", "password"); + hash_map.put("app-admin2", "password"); + hash_map.put("app-admin3", "password"); + hash_map.put("app-admin4", "password"); + hash_map.put("app-admin5", "password"); + hash_map.put("app-admin6", "password"); + hash_map.put("app-user1", "password"); + hash_map.put("app-user2", "password"); + hash_map.put("app-user3", "password"); + hash_map.put("app-user4", "password"); + hash_map.put("app-user5", "password"); + hash_map.put("app-user6", "password"); + + if(username.isEmpty() || password.isEmpty()) { + out.println("Enter username and password."); + return; + } + + if(hash_map.containsKey(username) && hash_map.get(username).equals(password)){ + Cookie loginCookie = new Cookie("username",username); + // setting cookie to expiry in 30 mins + loginCookie.setMaxAge(30*60); + response.addCookie(loginCookie); + out.println(" User Name or Password are Correct...Redirecting..."); + + response.sendRedirect("LoginSuccess"); + retVal = "Succeeded"; + } else { + retVal = "Failed"; + out.println("Either user name or password is wrong."); + } + + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + out.println("

Login Process " + retVal + "

"); + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + doGet(request, response); + } +} diff --git a/src/main/java/com/endor/LoginSuccess.java b/src/main/java/com/endor/LoginSuccess.java new file mode 100644 index 0000000..9865b38 --- /dev/null +++ b/src/main/java/com/endor/LoginSuccess.java @@ -0,0 +1,75 @@ +package com.endor; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/clothing-shop/LoginSuccess") +public class LoginSuccess extends HttpServlet { + private static final long serialVersionUID = 1L; + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printClothingShopMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("Login Success Page", response); + + StringBuilder form = new StringBuilder(); + form.append("

") + .append("This URL is fetching records from employee_details table
") + .append("--------------------------------------

") + .append("") + .append("") + .append("

") + .append("" + "
"); + out.println(form); + + // allow access only if session exists + String username = null; + Cookie[] cookies = request.getCookies(); + if(cookies != null) { + for(Cookie cookie : cookies) { + if(cookie.getName().equals("username")) username = cookie.getValue(); + } + } + + out.println(" Hi " + username + " your session id is: " + request.getSession().getId() + ""); + + out.println("

"); + out.print("
"); + + String retVal = "Succeeded"; + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + out.println("

Login " + retVal + "

"); + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } +} diff --git a/src/main/java/com/endor/Logout.java b/src/main/java/com/endor/Logout.java new file mode 100644 index 0000000..c50bb94 --- /dev/null +++ b/src/main/java/com/endor/Logout.java @@ -0,0 +1,22 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpServlet; +import java.io.IOException; + +@WebServlet("/clothing-shop/logout") +public class Logout extends HttpServlet { + private static final long serialVersionUID = 1L; + + protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + HttpSession session = request.getSession(); + if(session != null){ + session.invalidate(); + } + response.sendRedirect("login"); + } +} diff --git a/src/main/java/com/endor/NewSQLExitServlet.java b/src/main/java/com/endor/NewSQLExitServlet.java new file mode 100644 index 0000000..a8025db --- /dev/null +++ b/src/main/java/com/endor/NewSQLExitServlet.java @@ -0,0 +1,202 @@ +package com.endor; + + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; + +@WebServlet(name = "NewSQLExitServlet") +public class NewSQLExitServlet extends HttpServlet { + static AtomicInteger totalNewDNAsInThisRun = new AtomicInteger(0); + static AtomicInteger totalDNAsCreated =new AtomicInteger(0); + static int finalDnaCount = 0; + static String connectionUrl = ""; + static String dbUser = ""; + static String dbPassword = ""; + static String dbType = ""; + static String DB_TYPE_ORACLE = "Oracle"; + + @Override + public void init() throws ServletException { + super.init(); + connectionUrl =System.getProperty("endor_connection_url", "jdbc:oracle:thin:@10.0.22.108:1521:XE"); + dbUser =System.getProperty("endor_db_user", "sys as sysdba"); + dbPassword =System.getProperty("endor_db_password", "Psmo0601"); + dbType =System.getProperty("endor_db_type", DB_TYPE_ORACLE); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doPost(request, response); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("SQL - Creates new exit DNA per request", response); + + String form = "
" + + "DNA count:

" + + "First name:

" + + "Last name:

" + + "Password:


" + + +// "SQL query Statement: <-- Not used

" + + "

" + + "" + "
"; + out.println(form); + HtmlUtil.closeCol(response); + HtmlUtil.openCol(response); + + String first = request.getParameter("first"); + String last = request.getParameter("name"); + String pass = request.getParameter("password"); + String dnaCount = request.getParameter("dnacount"); + String retVal = "Failed!"; + if (last != null && pass != null && last.length()>0 && pass.length() >0) { + setDnaCont(dnaCount); + if (getCustomersPreparedStatementExecuteNewExit(last, pass)) { + retVal = "Succeeded"; + } + if (retVal.equalsIgnoreCase("Succeeded")) { + retVal = HttpURLConnectionExample.sendGET(); + } + out.println("

SQL execution " + retVal + "

"); + } else{ + out.println("Enter last name and password"); + } + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + + } + + private void setDnaCont(String dnaCount) { + if (dnaCount != null && dnaCount.length() >0){ + try{ + int count = Integer.parseInt(dnaCount); + totalNewDNAsInThisRun.set(count); + finalDnaCount = totalNewDNAsInThisRun.get(); + } catch (Exception e){} + } + } + + + public boolean getCustomersPreparedStatementExecuteNewExit(String name, String pass) { + Connection conn = connect(); + boolean hasResults = false; + if (conn == null) + return false; + PreparedStatement stmt = null; + try { + String comment = " /* Random Comment:" + UUID.randomUUID() + " */"; + String query = "SELECT FIRST, LAST from CUSTOMERS WHERE LAST = ? AND PASSWORD = ?"; + int curVal = totalDNAsCreated.get(); + if (curVal < finalDnaCount) { + query += comment; + totalDNAsCreated.incrementAndGet(); + } else { + System.out.println("QUERY At Max DNA Value :" + query); + } + stmt = conn.prepareStatement(query); + } catch (SQLException e) { + e.printStackTrace(); + } + int output = 0; + try { + stmt.setString(1, name); + stmt.setString(2, pass); + // System.out.println("PreparedStatement.execute being called with Last=" + name + " Password=" + pass); + hasResults = stmt.execute(); + // Loop through the data and print all artist names + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + stmt.close(); + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return hasResults; + } + + /** Shiva use the following java system properties instead of new connection function. + -Dendor_connection_url="jdbc:postgresql://localhost:5432/sqlinject?sslmode=disable" + -Dendor_db_user="postgres" + -Dendor_db_password=""Psqlpsmo@1" + -Dendor_db_type="Postgress" + */ + private Connection connectpsql() { + Connection conn = null; + try { + // Create database connection + String dbURL = "jdbc:postgresql://localhost:5432/sqlinject?sslmode=disable"; + String user = "postgres"; + String password = "Psqlpsmo@1"; + conn = DriverManager.getConnection(dbURL, user, password); + System.out.println("DB Connection established"); + } catch (Exception e) { + System.err.println("ERROR: failed to connect postgres SQL."); + e.printStackTrace(); + return null; + } + return conn; + } + + + /** Shiva use java system properties instead of new connection function. + -Dendor_connection_url="jdbc:postgresql://localhost:5432/sqlinject?sslmode=disable" + -Dendor_db_user="postgres" + -Dendor_db_password=""Psqlpsmo@1" + -Dendor_db_type="Postgress" + */ + + private Connection connect() { + Connection conn = null; + boolean retval = false; + try { + // Create database connection + // System.out.println("Oracle JDBC Driver Loaded"); + // System.out.println("Oracle Connecting.."); +// String nameForConnect = "sys as sysdba"; +// String pass1 = "Psmo0601"; +// String url = "jdbc:oracle:thin:@10.0.22.108:1521:XE"; +// DriverManager.registerDriver(new OracleDriver()); +// conn = DriverManager.getConnection(url, nameForConnect, pass1); + conn = DriverManager.getConnection(connectionUrl, dbUser, dbPassword); + + } catch (Exception e) { + System.err.println("ERROR: failed to load Oracle JDBC driver."); + e.printStackTrace(); + return null; + } + return conn; + } +} diff --git a/src/main/java/com/endor/OSCommandServlet.java b/src/main/java/com/endor/OSCommandServlet.java new file mode 100644 index 0000000..2339661 --- /dev/null +++ b/src/main/java/com/endor/OSCommandServlet.java @@ -0,0 +1,38 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(name = "ExecuteServlet") +public class OSCommandServlet extends HttpServlet { + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.printCurrentTitle("OS Command", response); + + String form = "
" + + "Find file:

" + + "" + "
"; + out.println(form); + + String command = request.getParameter("command"); + String find = "find " + command; + Runtime.getRuntime().exec(find); + } +} diff --git a/src/main/java/com/endor/RecordServlet.java b/src/main/java/com/endor/RecordServlet.java new file mode 100644 index 0000000..2d192aa --- /dev/null +++ b/src/main/java/com/endor/RecordServlet.java @@ -0,0 +1,260 @@ +package com.endor; + +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Types; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + + +@WebServlet("/clothing-shop/RecordServlet") +public class RecordServlet extends HttpServlet { + static String connectionUrl = ""; + static String dbUser = ""; + static String dbPassword = ""; + static String dbType = ""; + static String DB_TYPE_ORACLE = "Oracle"; + + @Override + public void init() throws ServletException { + super.init(); + connectionUrl =System.getProperty("endor_connection_url", "jdbc:oracle:thin:@10.0.22.108:1521:XE"); + dbUser =System.getProperty("endor_db_user", "sys as sysdba"); + dbPassword =System.getProperty("endor_db_password", "Psmo0601"); + dbType =System.getProperty("endor_db_type", DB_TYPE_ORACLE); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + System.out.println("request.getContentType() = " + request.getContentType()); + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printClothingShopMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + HtmlUtil.printCurrentTitle("Record Fetching Page", response); + HtmlUtil.closeCol(response); + + String retVal = "Failed!"; + + // PreparedStatement execution with input parameter + String username = null; + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if (cookie.getName().equals("username")) username = cookie.getValue(); + } + } + + + // Fetch records + String dbcall = request.getParameter("dbcall"); + if (dbcall.equalsIgnoreCase("prepared_statement")) { + executeSQLHelper(username,out); + } else { + getCustomersStoredProc(username,out); + } + + HttpSession session = request.getSession(false); + out.println("

"); + out.println(" Hi " + username + " your session id is: " + request.getSession().getId() + ""); + out.println("

"); + out.print("
"); + } + + private Connection connect() { + Connection conn = null; + try { + // Create database connection + + conn = DriverManager.getConnection(connectionUrl, dbUser, dbPassword); + System.out.println("DB Connection established"); + } catch (Exception e) { + System.err.println("ERROR: failed to connect DB"); + e.printStackTrace(); + return null; + } + return conn; + } + + public boolean executeSQLHelper(String username,java.io.PrintWriter out) { + boolean retVal = false; + Connection conn = connect(); + if (conn == null) + return false; + + try { + StringBuffer sbuf = new StringBuffer(); + String query = new String(); + if(username.contains("admin")) { + query = "select EID,ENAME,ADDRESS,SALARY,NOMINEE from EMPLOYEE_DETAILS"; + PreparedStatement stmt = conn.prepareStatement(query); + ResultSet rs = stmt.executeQuery(); + try { + show_resultset(rs,out); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // Clean up + stmt.close(); + rs.close(); + } + else { + query = "select EID,ENAME,ADDRESS from EMPLOYEE_DETAILS"; + PreparedStatement stmt = conn.prepareStatement(query); + ResultSet rs = stmt.executeQuery(); + // Loop through the data and print all artist names + try { + show_resultset(rs,out); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // Clean up + stmt.close(); + rs.close(); + } + } catch (SQLException e) { + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + return retVal; + } + + private int show_resultset(java.sql.ResultSet rs, java.io.PrintWriter out) + throws Exception { + int rowCount = 0; + + out.println("

"); + ResultSetMetaData rsmd = rs.getMetaData(); + int columnCount = rsmd.getColumnCount(); + // table header + out.println(""); + for (int i = 0; i < columnCount; i++) { + out.println(""); + } + out.println(""); + // the data + while (rs.next()) { + rowCount++; + out.println(""); + for (int i = 0; i < columnCount; i++) { + out.println(""); + } + out.println(""); + } + out.println("
" + rsmd.getColumnLabel(i + 1) + "
" + rs.getString(i + 1) + "

"); + return rowCount; + } + + private int show_resultset(java.sql.ResultSet rs, java.io.PrintWriter out, String username) + throws Exception { + int rowCount = 0; + + out.println("

"); + ResultSetMetaData rsmd = rs.getMetaData(); + int columnCount = rsmd.getColumnCount(); + if(username.contains("user")) { + columnCount -= 2; + } + // table header + out.println(""); + for (int i = 0; i < columnCount; i++) { + out.println(""); + } + out.println(""); + // the data + while (rs.next()) { + rowCount++; + out.println(""); + for (int i = 0; i < columnCount; i++) { + out.println(""); + } + out.println(""); + } + out.println("
" + rsmd.getColumnLabel(i + 1) + "
" + rs.getString(i + 1) + "

"); + return rowCount; + } + + + public boolean getCustomersStoredProc(String username,java.io.PrintWriter out) { + Connection conn = connect(); + if (conn == null) + return false; + + int output = 0; + try { + String query; + CallableStatement cs = null; + + query = "{ ? = call read_employee_details(?)}"; + //query = "{call employee_details(?)}"; + + cs = conn.prepareCall(query); + //cs.setString(1, username); + + cs.setString(2, username); + cs.registerOutParameter(1, Types.REF_CURSOR); + + System.out.println("Stored Proc being called"); + System.out.println(query); + + conn.setAutoCommit(false); + cs.execute(); + + ResultSet rs = (ResultSet) cs.getObject(1); + try { + show_resultset(rs,out); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + // Clean up + rs.close(); + cs.close(); + } catch (Exception e) { + System.out.println("Exception !"); + System.err.println(e.getMessage()); + } finally { + try { + // Close connection + conn.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + System.out.println("Exception 2"); + } + } + return output >= 0; + } +} diff --git a/src/main/java/com/endor/SecurePage.java b/src/main/java/com/endor/SecurePage.java new file mode 100644 index 0000000..fb34bbb --- /dev/null +++ b/src/main/java/com/endor/SecurePage.java @@ -0,0 +1,45 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet("/hsts/securepage") +public class SecurePage extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * @see HttpServlet#HttpServlet() + */ + public SecurePage() { + super(); + // TODO Auto-generated constructor stub + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + out.println("

" + "Secure Page Test" + "

"); + out.println("

" + "This is a secure page" + "

"); + out.println(""); + out.println(""); + } +} diff --git a/src/main/java/com/endor/TypeSniff.java b/src/main/java/com/endor/TypeSniff.java new file mode 100644 index 0000000..c97480a --- /dev/null +++ b/src/main/java/com/endor/TypeSniff.java @@ -0,0 +1,71 @@ +package com.endor; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Servlet implementation class TypeSniff + */ +@WebServlet("/TypeSniff") +public class TypeSniff extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * @see HttpServlet#HttpServlet() + */ + public TypeSniff() { + super(); + // TODO Auto-generated constructor stub + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + + out.println("

Type Sniffing Disabled Successfully" + "

"); + + HtmlUtil.closeCol(response); + HtmlUtil.closeRow(response); + HtmlUtil.closeTable(response); + out.println(""); + out.println(""); + + //response.getWriter().append("Served at: ").append(request.getContextPath()); + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + doGet(request, response); + } + +} diff --git a/src/main/java/com/endor/XmlXXE.java b/src/main/java/com/endor/XmlXXE.java new file mode 100644 index 0000000..4b98f90 --- /dev/null +++ b/src/main/java/com/endor/XmlXXE.java @@ -0,0 +1,170 @@ +package com.endor; + +import javax.servlet.ServletException; +import javax.servlet.annotation.MultipartConfig; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.PrintWriter; +import java.io.Serializable; +import java.nio.CharBuffer; + + +import javax.xml.XMLConstants; +import javax.xml.parsers.*; + +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.traversal.DocumentTraversal; +import org.w3c.dom.traversal.NodeFilter; +import org.w3c.dom.traversal.NodeIterator; +import org.xml.sax.SAXException; + +// TODO rename to SQLServlet +@WebServlet(name = "XmlXXE") +@MultipartConfig(fileSizeThreshold=1024*1024*10, // 10 MB + maxFileSize=1024*1024*50, // 50 MB + maxRequestSize=1024*1024*100) + +public class XmlXXE extends HttpServlet { + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + try { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + out.println("

" + "XML XXE Test" + "

"); + String form = "
" + + ""+ + "

"+ + "" + "
"; + out.println(form); + out.println("Submitted"); + + InputStream inStr = request.getPart("inputfile").getInputStream(); + byte byteArray[] = new byte[inStr.available()]; + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + +// System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); +// System.out.println("Check the properties in the environment"); +// System.out.println("javax.xml.accessExternalSchema - " + System.getProperty("javax.xml.accessExternalSchema")); +// System.out.println("javax.xml.accessExternalDTD - " + System.getProperty("javax.xml.accessExternalDTD")); + +// System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); +// System.out.println("Set the properties in the environment"); +// System.setProperty("javax.xml.accessExternalSchema", "http"); +// System.setProperty("javax.xml.accessExternalDTD", "http"); + +// System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); +// System.out.println("Check the properties in the environment"); +// System.out.println("javax.xml.accessExternalSchema - " + System.getProperty("javax.xml.accessExternalSchema")); +// System.out.println("javax.xml.accessExternalDTD - " + System.getProperty("javax.xml.accessExternalDTD")); +// +// System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); +// System.out.println("Check the properties in the DocumentBuilderFactory.getAttribute method"); +// System.out.println("XMLConstants.ACCESS_EXTERNAL_SCHEMA - " + factory.getAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA)); +// System.out.println("XMLConstants.ACCESS_EXTERNAL_DTD - " + factory.getAttribute(XMLConstants.ACCESS_EXTERNAL_DTD)); + +// System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); +// System.out.println("Set the properties in the DocumentBuilderFactory.setAttribute method"); +// factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); +// factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); + + System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); + System.out.println("Check the properties in the environment"); + System.out.println("javax.xml.accessExternalSchema - " + System.getProperty("javax.xml.accessExternalSchema")); + System.out.println("javax.xml.accessExternalDTD - " + System.getProperty("javax.xml.accessExternalDTD")); + + System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); + System.out.println("Check the properties in the DocumentBuilderFactory.getAttribute method"); + System.out.println("XMLConstants.ACCESS_EXTERNAL_DTD - " + factory.getAttribute(XMLConstants.ACCESS_EXTERNAL_DTD)); + System.out.println("XMLConstants.ACCESS_EXTERNAL_SCHEMA - " + factory.getAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA)); +/* + System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); + System.out.println("Set the properties in the DocumentBuilderFactory.setAttribute method"); + factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "file"); + factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "file"); + + System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); + System.out.println("Check the properties in the environment"); + System.out.println("javax.xml.accessExternalSchema - " + System.getProperty("javax.xml.accessExternalSchema")); + System.out.println("javax.xml.accessExternalDTD - " + System.getProperty("javax.xml.accessExternalDTD")); + + System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); + System.out.println("Check the properties in the DocumentBuilderFactory.getAttribute method"); + System.out.println("XMLConstants.ACCESS_EXTERNAL_DTD - " + factory.getAttribute(XMLConstants.ACCESS_EXTERNAL_DTD)); + System.out.println("XMLConstants.ACCESS_EXTERNAL_SCHEMA - " + factory.getAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA)); +*/ + + DocumentBuilder parser = factory.newDocumentBuilder(); + System.out.println("before calling DocumentBuilder.parse(InputStream is)"); + Document document = parser.parse(inStr); + System.out.println("After calling DocumentBuilder.parse(InputStream is)"); + DocumentTraversal trav = (DocumentTraversal) document; + NodeIterator it = trav.createNodeIterator(document.getDocumentElement(), + NodeFilter.SHOW_ELEMENT, null, true); + for (Node node = it.nextNode(); node != null; + node = it.nextNode()) { + String name = node.getNodeName(); + NodeList nodelist = node.getChildNodes(); + Node firstn = nodelist.item(0); + System.out.printf("%s\n", name); + System.out.println(firstn.getNodeValue()); + out.println("

" + name + "

"); + out.println(firstn.getNodeValue()); + } + System.out.println("Done"); + out.println(""); + out.println(""); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (Exception e) { + e.printStackTrace(); + } + + HtmlUtil.printHtmlHeader(response); + HtmlUtil.startBody(response); + HtmlUtil.printMenu(response); + HtmlUtil.openTable(response); + HtmlUtil.openRow(response); + HtmlUtil.openCol(response); + out.println("

" + "XML XXE Test" + "

"); + String form = "
" + + ""+ + "

"+ + "" + "
"; + out.println(form); + out.println(""); + out.println(""); + } +} diff --git a/src/main/java/com/endor/stringsub.java b/src/main/java/com/endor/stringsub.java new file mode 100644 index 0000000..3e510b1 --- /dev/null +++ b/src/main/java/com/endor/stringsub.java @@ -0,0 +1,10 @@ +package com.endor; +import org.apache.commons.text.StringSubstitutor; + +public class stringsub { + public static void main(String... args) { + final StringSubstitutor interpolator = StringSubstitutor.createInterpolator(); + String out = interpolator.replace("${script:javascript:java.lang.Runtime.getRuntime().exec('touch ./foo')}"); + System.out.println(out); + } +} diff --git a/src/main/java/com/endor/wrapper/RequestWrapper1.java b/src/main/java/com/endor/wrapper/RequestWrapper1.java new file mode 100644 index 0000000..7f58d9b --- /dev/null +++ b/src/main/java/com/endor/wrapper/RequestWrapper1.java @@ -0,0 +1,30 @@ +package com.endor.wrapper; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletRequestWrapper; + +public class RequestWrapper1 extends ServletRequestWrapper +{ + + + public RequestWrapper1(ServletRequest req) + { +//calls the ServletRequestWrapper superclass's constructor i.e. ServletRequest. + super(req); + } + + + public String getParameter(String str) + { +//Calling the superclass method i.e. ServletRequest's getParameter(String) method. + String name = super.getParameter(str); + + if( name.equals("")) + { + name = "Please, enter your name in the form"; + } + + return name; + } + +} diff --git a/src/main/java/com/endor/wrapper/WrapperFilter.java b/src/main/java/com/endor/wrapper/WrapperFilter.java new file mode 100644 index 0000000..385905a --- /dev/null +++ b/src/main/java/com/endor/wrapper/WrapperFilter.java @@ -0,0 +1,40 @@ +package com.endor.wrapper; + +import javax.servlet.*; +import java.io.IOException; +import java.io.PrintWriter; + +public class WrapperFilter implements Filter +{ + + public void init(FilterConfig filterConfig) + { + } + + public void destroy() + { + } + + //This method is called each time a client requests for a web resource i.e. preprocessing request + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException + { + response.setContentType("text/html"); + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (IOException e) { + e.printStackTrace(); + } + + out.println(" Filtering request and passing it to Wrapper class
"); + + + // Calling the constructor of request wrapper class + RequestWrapper1 requestWrapper = new RequestWrapper1(request); + + + // This method calls the next filter in the chain + chain.doFilter(requestWrapper,response); + } + +} \ No newline at end of file diff --git a/src/main/java/com/endor/wrapper/WrapperServlet.java b/src/main/java/com/endor/wrapper/WrapperServlet.java new file mode 100644 index 0000000..f92dfcd --- /dev/null +++ b/src/main/java/com/endor/wrapper/WrapperServlet.java @@ -0,0 +1,20 @@ +package com.endor.wrapper; + +import javax.servlet.GenericServlet; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +public class WrapperServlet extends GenericServlet +{ + public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException + { + response.setContentType("text/html"); + String name = request.getParameter("username"); + + PrintWriter out = response.getWriter(); + out.println(name); + } +} diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..ab5a148 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,144 @@ + + + + + + Archetype Created Web Application + + BooksServlet + com.endor.BooksServlet + + + HttpTrace + com.endor.HttpTrace + + + ExecuteServlet + com.endor.ExecuteServlet + + + OSCommandServlet + com.endor.OSCommandServlet + + + AppServlet + com.endor.AppServlet + + + AsyncServlet + com.endor.AsyncServlet + true + + + Deserialize1 + com.endor.Deserialize1 + true + + + ElExpression + com.endor.ElExpression + + + FileUpload + com.endor.FileUploadServlet + + + XmlXXE + com.endor.XmlXXE + + + + XmlXXE + /xmlxxe + + + ElExpression + /elexpression + + + BooksServlet + /booklist + + + HttpTrace + /httptrace + + + Deserialize1 + /deserialize1 + + + ExecuteServlet + /cmdexec + + + OSCommandServlet + /oscmd + + + AppServlet + /ssrf + + + AsyncServlet + /async + + + FileUpload + /upload + + + CSPFilter + com.endor.CSPFilter + + + CSPFilter + /typesniff + + + WrapperFilter + com.endor.wrapper.WrapperFilter + + + WrapperFilter + /wrapper + + + Servlet + com.endor.wrapper.WrapperServlet + + + Servlet + /wrapper + + + httpHeaderSecurity + org.apache.catalina.filters.HttpHeaderSecurityFilter + true + + hstsMaxAgeSeconds + 31536000 + + + + httpHeaderSecurity + /hsts/securepage + REQUEST + + + + endor-webapp + /hsts/* + GET + POST + + + CONFIDENTIAL + + + + diff --git a/src/main/webapp/elexpression.jsp b/src/main/webapp/elexpression.jsp new file mode 100644 index 0000000..fb67fc4 --- /dev/null +++ b/src/main/webapp/elexpression.jsp @@ -0,0 +1,17 @@ +<%@ page language="java" contentType="text/html; charset=US-ASCII" pageEncoding="US-ASCII" import="java.util.*"%> +<%@ page isELIgnored="false"%> + + + + + JSP EL Execution + + + <% + String commandtoexecute = request.getParameter("command"); + %> +
+ Executing Runtime := ${"".getClass().forName("java.lang.Runtime").getMethods()[6].invoke("".getClass().forName("java.lang.Runtime")).exec("whoami")} +
+ + \ No newline at end of file diff --git a/src/main/webapp/endor.jpg b/src/main/webapp/endor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5def78c8d89b39bdf26bdebf4dae5494deaf58a GIT binary patch literal 210789 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

|Ay?l- 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

4{1RdSxvhy0}fE1N#uISYOR6nL!$iyI2#A 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ℑ_8%S{LwkLOIE*9ByQX3RguI-}^mK+5xqVop zPlh{%Oh&G`v}iW%aF0BRetY^0W3@rJrx=U(-9QQTGhfE`yAhhrshZ7^dqt9e(?IvS zs#6Vfw@9t&!u^=SeyQ_U*@ISxJmk?KYh&e?Jxfvk!$b4)(Io0K`@atS%jfnMJc5`c zfYL=C&hF>ucC_O0xyM4EJUtor-T$JvLo4goA;IIQ9v)|CakgEg+${_Af<`^N;ey$5 z9AnD87!|!##I^p5|FYTO{N}R~>)zU)d}jB%cgs{WK>J^$ler!Zf*Uou7LUd;Su?%t zPsi`;d&ty+%L?Pu9UbSHosf|8R;TEKj%xp~9QV!f<-2f13Jdj{n3XRvs#Xm*Wd1@u zb7b;S6!;Ip0~Rg^e%4!rJx}UP->7{W6Ec4$Zb?8Gj3>YJwN?G~{`VOC5=$nae`jA~ zI)6Xlu6HE{UgfTJ0oo&oa6!%0K1c;PwytZZesU-9jmH6axnhW3#VDs#f9VyH6j2kJ zTq$t4e0&i@NNJ++OTV1mJa;(;L5P$yO{x=v{W98Lxl#aA>xikxxBCo-@&3B1ryLY! zGQCce=KV2)Z5$KOm#1qy{>WW9sLp7!Amc?Ed>W zG#o&~l$}|ocnQG1ZNm7s!3h*Ey+VusFy-1Ug87g;(6p+33>sF8wT*6WFaRAbkvv7* zINY^%JXVT@ldU-~jq)0Ncc49d{VGG~;YJa3U!*?B6>uTM>!yi~67f~lsPjah#Ox>g z>Y<|$BY&c$uG}ooR~^fBZI~B64~yC7MoQafZ5K`@fV(oY&SY1Uu4OZ72KnFYg(eSs z(>aU*hv&j8q?S|hI`yY6Nrd>_JXIq-%94d5aW~UTdcz()Y3@%jDT&{F425%nv+=i< zOyZ%#>!b14phObByqArkGKK8{C)jHbDVnA40Yon`Pn{g@O*ic%UUX*H=$c>8r_x6G zWlnWLmLkj62uDw0r$_dVf6bu^>Nz0cM?aCSnhR^Hn#Y{}@u^$x>>9J7Y02@^S$q!T zu~|nShw_sYWXhS)xvx+C5e+Hm!sBITxMKT;X)R{&{~7X>K{EVGTr7JD>cZy68-jG6}xa-s6~JwH3sq zg3Z6Y?kU{oO9kKV>goFW2)JkzbN(99Z`Bi3l%Qi%H&-3qBaKnMBgOhz#9w zQ62gk#^ZkvyH0+*TkxpM!hfg_O&|YD8Zdv&uazYc=EnEith=#R~v0b`?<8MbXNZ6{B^{Vc{`FLvN-B;zSR`w=k_V-lu2 zzd`+mQYsX*H<*?nJJbo?2oE8Hc$|6XLzMu%vFqe~&GMlvzt`kY&;nkpb3i308);I3 z@rPeQab+ySX;t)q;A2Y)i&wE!;gL(|0S6t}+)eRZZ&~W`I_s$dy31jBRB6`qHhEvV z#exjQiju7kFV2!Xn4PEtl>_cGPl@T}EXz<>>)pY~0cyYY`M_b*x^2A>;6y?JiO-ou zL->(_IcgPMtH<}WZU~&k)2oEzwEd|NdV^5DcytPsU-f#B(ss&;$Td-sA=OjTNl)09l zUoN*zc*w`*8pK~(jSW==+z`H^(A^93nSN>^t?o z(1qQ4+xJ8ICKkLGJe}6i!lg>$`omvhO{8m?yn?6X!EGb+OIp6PG*j)!rD?axAN|)zMY#wK70-ed9=mVsK$2lbYQo6XX z&$gpTkmcQ1EY?Y7x>P7OBx=8!g*u;Mu9TM^dCORQX8e`C*m5NF!$JICFQ4gK8`C6y=#6t4uk`(n&^)93tJAy6mQxR2P@F~ z7hV*_g1;i?h5r}t^FJ+lKBga-o&aE6F3m^hul?@pDw1stCmo*$mV3ZNP!!jRANxkEm&en?_;;##(?mRn_O2zl3?wuFnVwa1S) zf}X^^7vMbK+9GqrH#zObh&NCV`^3;l2(b{q${F)E;I2*65gLdLno_k z21y#Hw~v>*`O$Cs9ERAq;}b3;cFn0@+O^hBl{zGW1Uhd2lVxGhY1?Pl&90?5P}GsB zqe#&%#vCdV5UwtjYWH3$ng*%V0>L>e_O}RG4;)ilI+Zzuj(-|sH6E6w2ZHc$a<4iv3k-3FZ(ANG9By!xZ`OjUN;Pa#86Tj?-s9 zMqfKntfxl?Su#4okWO$Y1W=?vM*3!R8x&Ix68~ET+{v76g!hwv8wm?^6R?NN{>rjz z9e_$o8`YJU__$|g{qiTy&pNJjDD6_FX9VB=+xXq||LBUks7FD)xaR$G&&AY`^MPo| zQWwQTHNts&RPZ)(lN%=B0a3yeKl5s@w>3$NdCqdnLzqJnbSNyGWe_)}qL~(=1@gUv z)~!+v&`{rr@qY5XnD?Sd5IJby(edHcN!OzN4U@)6Pva4-L(vcdf<3u-^(D{GAGVk~ zHR=n1vwl(yI!EG4Vp0ug&Pg3x$FQ&MziKh()?D-at|?3sHmf?`K0=Crkn^KGyW>SG z5X9f2w{Pqo7X{qmfbIsZG^Nkk5^6;IafZ!VApkI7b`A;zDko^^fr09%CpHy5R1kC#l_ z+e`sb>?V!}=(?{>6@U$E0lQ6px1wutfronmEJu}ga@;OCNW39>l0rq2${0<`+#xlE z!laH~B-a@t$W?6Vm+TbOR}$?(;4G6Y^{U>LTZb(_o{;>5<`{NX4r*V6KD*CT2S@MQ7{eWtvt1~7?Y-^O%mk*Np>~fOPU@b z0XzU5NRnXnAM(1CB8kgn0Tr&}s<}=QgnrEKH}}PUF5Fl4I<1J>a0_dwB$K4*qDcU}2XGrB5+21j> zFeS&Eo-vZ`W44>$7&K5igM6>W^FwE171_%%L;-wCBAk$8ns|kI^^Q{&q9Sb~trslr z3$)v@#^HA<^O$auwLC(}eyD?5O$Ns#7(C0QDMfe@+GxDmO|qK}g3%cN%Cy;QY26qMBvpNLd8tV0Q-;?f|r_t_)mZ zq4XE^ffsnq*Og0g6_Njlm!XlsTkB=#ikNInuA>D8lZTzT?Z?Ko-@5?_RDln6^z_x` zhsEFA_>+`$_4VR-XZvs$rC+?UZ!fhIZN(ga;qOdo-NnHDN~^)smL$B0H_*Aty;^w@ zGsh7_lDrDiz#SipKb zb6ht=`7?AeHD&v$gfFXmVreuD0!;gRJfm9V;!55?(>nCh^sV|DhUYZGi_|3R2{A_-QDJP}awlw&(05VQwR z+b|bfjg;I9V~GkvT9lnAv;d|{h=wMRV;&gOmPtmx`t};qXLn(L{uT-9^8SHhuiW%|k|YD=(OCf1 zgl72U{*&+fgvFo~v5Mm8=B^?c+3>fq#O*&ok^9(!Z|F(DTLv7$QZwUS zyuka@A%lMP0ph^tIEPAJm}705yi8p7RNd8wmA_VaW*_XACbro^=(ohwAteRl|P z)B#bcP%67K-c`S9uS5B7$@hvnsheW)uL14lC}Q1BQM|wzTTMsAyy`{0+AXMgqx1r@ux3O3<4a!>pJSgzcx>E8n^|F4!>Or zJ5Fntv7Hihdf^pNh>Ylm^7Ud5N$0HT>c$%Rl5R=faXq`0oTSNWzdtzSh3E!RfMWr| za#Z$=VfI@@m3hcuJja&4@_qb^VEMBcz&XKgU1m?3=EX+Vc%YJT;0eRs43H*S0Brh{ z;zvThG|W6a39Wu7`S3tvb94S=5Ity140vzLVFnZ`2kx%*|DGc@>!YudJw6nDfQNYF z0iIy2Q-|pWr-V|cZ;4w*EhSGWuu9JbyF%8(u6Z z{{5%esd{f!wV28;{)}OZ*Yue@f%ef7&d5#~Y4cmdmz9B4Ubxsk#4~?l;y3~#mnjEQ zTut8O#O(NaJcrH;Z&^hI)&-e7@?-ZKc4Y5#{rF4Vxhv%*s4ZSfZ~X-nA=o_oH&kz5 zNuC|nDnQ`vWFGHWulYh048Z9wMLf~?%V?i1*sL4WNMPIS!u8}azaZgrA0L$v$?sfu z-M9H8-heL=_R)Z!7g_US9@<&Y5l(|N&+^Z?P=h^%#?Vjfi1;6NJER)$jI*r4K9sqk zNdE(t;3)akIWn{W&cSh?WyFd7Pp(NNIME4OV&J-^3-Bp~YiKAZgqI(VTsbxUk5enL zJeTTToz2rIw`@)#=Kjts3=e(KN_Cv-WaX+Ll2^P+{I0G}Eh~=83}tu>m%@ z>%+Jxd|;fk5>Vd%Ubtodz3thLXN8;vp__!=B20(l1gq_pj;E|;MDw`fejm!eZgH-d ze-g^0T94PrAy&JPpSox5i(Qg{NC)a&I+5d@(8W!U5w7|p+o5}bzs;~m!5H1~oN3qR zkv|!rjbyrqn}HgP(*z4YtWJ?DwB_9v1RBoM@mK#F?2YJF{&qh*MJyB8{{5AGi<@n` zt3Luc$xPsWlr-?J`=3;Pay9j=yGa!T*sE>eozMRd-syd&oICG>dITDYRwK?@tULcn znjQYj62>z2cy2D{-XiaJQKM?>Ql}hPBrH*V@ih(zLlaXZIZqoEGzT6Wk7ZO02;1Li zRhV9Kg2U>i6>oHQEzl{-w$JMnxf?Xm1|rz?kTLwtYw^!C40guT&M{X|Cb~#z>{G4M z<@Zq>HD>o4UYRlwbYBxSZB?body`duvD`9r)6+ zvlBYyvkV4&Op?Z$ub=8CV=1ayrB9kqjqkRsBp6zwkCP9O!TRQt7wefYCI+{&>;*G$ z0@C|(Kph8)Vad?x)B4=@S(NBy#8`&pH1%^4!Dd{B6DJF^Jneq-ZdO8G2UL|>yw=3h z(kkv;G?o)wO2*8R`#36@*yXQP5iZr#O)W1Bl6K-Us1#WYhBD}&# zTex6HV&4|x6P)Ee5k4*)rMjl7#WwAdY=9eKWiSzh<)wcvJ(PbxWg!yj<@XVYSS0v- zcpy@2@(jN#!7%KAK?r#1mhbTSD;?FeX9}Yc#U$CvOUI?0vBE{$Tw;46n;eO zxzhqYIX%nWP-P`|Kc!`G0SNwzR{}INmH$f71c_B9DDS#-K9Kmaty2#^xRVC($)N#$ zqi#Pm?M~nY1Zj7XO0b<~Pn(FaQ?4-JMDd;gjg}!^iZlggExHtsnyLhU#v_5(x_O>< zvyjU{p3`0a)$MBX?a4gfErY-t$-G%FSx4w~EOgGGw+%Umf7*r0lXG7%B=@kJ|F4-4 zmo5!OznowzF0#!mSr4Uc3{A63c1FPAYtZEp#YG9%ayVDdo7(RlC#54L4iCtQU>hvG zK4>zj5@$ns*x2Qt8=E(Ff+p6=9i8XsiaLj5vVOvt4^36T>Ntx6@%TI%QD)^8zJKB_ zAGF>cZcS2!vM&wsTVq7tX?RX~wtvJQ!!RKFtb7 z1_qiJ=v^lcOP1F~<=hMKz}TEf{J;7T*c;i-CkQBN#A%`Y(Q5UTpT>(M8~7?_Kf?%7 z9vEwu4~+B{*+LOAvG>#7LSZzKg_SS>g6DqkZbvVme1ZaE6BsbhOj~2i1~Yx}>D@?R zbW*?kF>aOdD1PE;2IOd#+uER8hHamBj<9oAoMLl-`}%Brr8!4LUb&pvuFC)zsl_l_ zQE(W~MfryU69&YlU9n%0Teuo2DZa6Ekmi-vtxy9eWUz}$W$QNj zi?PH-8fzr_J(G_2yamu?bW<>l+~;Y{8)(gC8`@BPZlpZ?iJPw#s~w#;I(>lI4rN+8 zy2=uVl=Wr%H*0CT@4<0Szsnzd#je;DbtKXZ<5p< zfs{m-t1%O)9X44|%rj$CASwHh9mDHRJ*PDH8Hjdtwv1bE^j7#oO=9=A>DLQ?vMnWN zNkf#>nCw+G%WskQASFj_U3~)TokLd>4V*yKMT5LyQ73nUi2b^n%kdZ}7mxaKjK!BR zQJLqBCNdfeNX>+>NOV$Wgu@ShQSF&3PsBVvHnWevT!e+Hl?tB(wL?HK36R&nZ)M+A zjw3zQ?(M{qY#|6O`&mG#c<*(e!H@Pcbg){-bXRI#-C`jxuJ?pD>_*_D563C+6+LYl z%7AY7V{y38Jg@y=^GPiXJ%sCzbM`k9PROFmGmP{l)%*r2cp6U;%{!OOCqvcIa34Mx z!quIkhpXI~!=N)ZT-oDW@chpW?$L`KfCTnsJIO^e#|FZPJ8%vTFy@V%-e6p>$fBOu z7D~h{B3jt{`XoCa>m%>QX8if+ijq6VO9csPqrDD@i*Mu{xARzV;kOmugQ!GoOA($$(=qLphp3}-A5jBIBGj( z6xQ4uTG-7_@W;4O2qYca1Z>fCpZihS?R(|NWXINps{X~b@TitRvo4uyRuBY8_uvg! z_cc6oABf$FRUz-*x8jVcIAOsusgpmd{uf=Ysg&^Na}P)h&xFzJK6`68pRJ_%o)B}6 zhWgzn1BxJm?E23%%;DnPyl$#AgrN3E$RA6Lbrwh@Y92~~Uh^}I!xfMUEo0W=Mpmc> z5Zw0tkoh;DWntOQ{?hwDmweHn&Iu*Lq6c@rHg6#0HotkZDcdrG*d`;^4U%!TT5GVN}DkPiP%g- z4|+@jK1Q!NtK1Ld+g1t0u^7zZE%*RLcW#eo?U^hyD;whK!^3RzX@}`MZbdITizK7M ztaV6w)G~}NIB_|B8)u7IIt`E~_*%JRT(OyR!I7|DN8-co9#H_r=q#FbPqywY9AX8R zuePlR&c9yJM>YS+p5efyh?MI7uv3+=@aVghko^#8C=`Krc;;rrp)O5}34CNghE~^C zdnL2~!FM5)eBA*qU!rucG5p}~Dc3baCm4V-p)VU{j4Tl2cgzm|cGqyO1DVmgA3#JxD%E5R8lG^oV?{aR@RGA9M?W4&W!GMlBjz}J8Z6;)NDQ$Us1Hmg%Pj%<$F3Ngl#xpw4 z5VKGnpo;^_)3se&s<{@DT9%uL%@k}+!M4lEEk>hYJT$XpXWiZX_J+?M64heg*2Px) zqiahz$M1-AAw!ZJoE-VYPRzZXEZTbBi+_+Q)cHCa&+%qp#3#v)oZBpkw&e3(feV;R zX(Nu7R!-j)>6U+XmXQHSRcocaD(ty{r~~1=l=2{%~C~3Yrw;<8}E9xECi)=04+|?$I#_^nsk#tS;!ECPE8ha=cL3* z*L@kvqQ+^zd?k{k*Vz~OxfC>_cheY&em1Y-9@pZ1+iw^^Cnis9h|&$slAMn{th^S! zaQ?uP^=Z?ii9rFSDHdDX}7NYF0Uw#wo=bbd<6m zzeBI5#|v5lja@NF&&r}01NeivW;^H3=iY=r6MUXENg$A);}THJG4}7L2)*jBBsI3O z=j`5_C!3R}F#)_nx~kf0b*+T3Kg1lz(Qk`xt@H;lb4gz38$J(&z-5(<#_)7EifAtf z&`tD=dJ4k?_W(dCH-Mn{&H?#9EC48{AX}@Y z1~LGQOrucqBe|?!Ns72Gtm900Wv?*kz6NDB;2MA$Bqb0W?l<6stjmm4Y%%y zowaC)#t7UqqqiRFE4M-`Kq>@kN+w_Pk)yDGvJ>*ebe9QT9-$rXAw_OzT=ptT>QBkc zoO%-@y!h@X3c(+|oL^6Du{f|y5s|#4qt@$`qZUWWYD#mqJa=?Ru1z*zg1}S=f=C+> zW241K4fB@V9UsusNwjz~YX_~|qoKEt+6{_2^&|XJU!u(?Z1QxN)#NH z`|>&WDPX60$M$<)uQ51%zVkQP9i-sj^Uio&`w>S743?Z5gv?penbc$Gk9WKlWhWwjZpLvry~C zdZ|+<`-ao>lZwMFklGW!?KmOXtv`kn&_CDeEib2T`eXiN-wznu+j66e#5st$T-ELE z!088s(kwD?i9Ogg<7}JwRL^y{rMbex6_2^Uali$@c`2WAJTLB1`S!$^t`edengWEZ zD{Tch+t@aqd|Yj0PvD5h3wEVXP{i`o#W{V<#;}whIo8@eYKqH0=9q#@b6SCEVB7Ss ztW3Uuoez?K5|s7MEqOMYf*+Xq+H}rNr954?u4)U<@_rBuV+ZLX?bR>OE1weT=vbZA9u6BfN~| zvc-Z$1;@4gr;h(W-!!Y3XN1XIV$g%BN{Vyo1Yq*wPa{*N8IBN7|%$_b-*LzuWdUSuP4 z_(&J=8^#1NY!)W#8szLVf|pS&HOqS$`Q7LV$9NDYjv|e`dlO6l0Yy?DP--v$tB_&h zGvE(E4Ql#Dv`nwj$!;=BOWn;FC^wpIaJjph`JCN$8&G@HbRwp%)pk+XhB6`L)#KYu zfQtEn2rZ6?MgA8(1%#)D5JF-1&C|^Cn}FpFaQ@L^H~CST5YkHgNg*8T7xu5j_wjpD zU;wkm_uEy0iKrVRqjuxe#{jjRX0Ej|9ft|PJgt-GTJlMg7|5i3$ZcHwmlZ_Jokv6c zV8-T?B>LAbaM-%%S3Pvc^WIM07r@VbIDPpU7Ibce475GRA#eSG?ki?|3`YabZHs90 z`=SZlOKj=4e8Ilt*jlda!^NWI!Uo%0peyFQ3dHiO8)-(8^Gqk#GvHUUzcMRs@jaWQ z!xPbO3rglQn`&W%qKB!T84r3mVPqpW zZ7JEE<U=LWn$8a;xD^EC(zIr-wpp*z;cDH@hZDS3|=rCgs|;%g9yS z0dCWb?na~jk}?m8tFtmCmz9r1p@%io=dTAU&ibG0EGN2k`OU?r*K1<2%Slh_vU+ldIkTF| zC|A)%r|dB+GBDmf1<{PO8PPaWYJV0pJbU7#**`h_rztq|rkG#DE@xJ%B1j*l9z9_B z4fAvLz02^$=6awA-dT~O;V#?CK0Jf#SPc=|JR0C9$0^o#|KK5&GSbR>zTh0QfnI4^Yc~+$ z@lnpm!O9}V-j+UkJuYO}$6UimOM+{YeVxE(i>2Y68M;Sq%dR$A>YBy>dCA-zap?js1 z1!QxW+*NCm^~I5$#G98=nVi)O{8Kr=<^uLR_apj3sJAJg`_Nvu?~td>C*oY7moxUO zg6sO^Ojz=7T#UcmNep^b3~W1vDXz=}X$HTcWN16Dc)uy|UfKC&c+|0)5h8@n6vyg# zi;14SItwk`&rHP+RHrChz_j&fLqHzfYRejkyY1 zCBFni39)LR_=RsR*ECiNh%bCqc*{Hr_;xBEpMAAPw(y)xP>3V z@bhB_ZwKmbqN~9b61wA+?24O2BI{yMS;MUEk1|ieBg;IZ>+q`2y2^Pgdr9DLBb>^8 z^lncRTjA%WD;`X0tCbS*m!r;{W{&D@dM7G9>-*zpuW{eIS%{}XTXU#fC#jn>JyWr% zd?m#)74D^GQxa;$ttUtySJB&$Cp>cS-}O6-%hq^Uwu>%&(5^iY8^PlxJD26}Yk%?=>qp%_MAJXp-(u!lzEcG?35yq{wIX!| zi?mL{4lqhra0T;cQCWLldsfMwaG1iu15_*Qoo#My4+hY>oEPhWsDUCLMEoZg#~5$+ zKI3yCRe&Noxhu|{nSD8EIJ|$Q2wH-nKP=HM%pY&ky;}6+F&7l3Mh3D3JQN?aC z{-5bZ92#>4jQFqiNz@D|68}(AXKDR%OpI;anqxV(B5GaTJ6lvfn$IeTh58>;9n|NA zD0}W73oh;zIYE-2&te=NlsfRT^{bonm|g`d$ld0CO`noZA+z>ifnro$ zP*1fnlvly12=1{3Us9{PB4T8S?ubUNJ65RbTdpC<%5lyK>=^3&y>;H9G~H z2(G?|92rldHb(X2n2*i#hpf^Cj{-YIfZG zfhG`rzG7scI=O3-Pgc%EHHfR-(PCcsS!26m*>YysHTLN%=IRYZUGXf2rk5@`qOQ3& zoM;k{71{kJX*Mk7&gYZ@sPyHPd+d5g7!_$CyNHq_r({6jxW7JukTqQ}o`qwJpJ|C3 zo0)i2v(3c`Va=8AQu=*Yd@U1OE8Tc_Bww$5Cow@Mig?YlICV0i1J!7lJp_S}`NCSc zgcNOCk zc1{u;8$av3wde7Uhcn@NNjCi?a9xZ*I$+W-%nJ+vzI>P8(X%2Wn1#N(jC`s?lyoem z0J{FFC-_ev#!66xlB1}0O1&$!#JnR)T%W+s7A^vcJV#gRV?vtC^p43gApI`yAiRt? z0$T#_T2AXeZ*;r^wq>Gwj~CyNRG~d(Nr3EHuf}55m&Y_NCPC_J^?E#*18Yg!A|0>9 z&NEvncOTCcYHqznkDk8&`ZkuA4$ti1+T&-t+;Tuoe&gn|Ra-UO^5y|wuU(Pt&hUOE zV|}pJ43NeN&`L*QlP(zHt|aYbR$ViNJ4~gUU`Yjj8xJRh-*gic?2D(MN(tK1BqOm@lG~J z(XOq_@E(_hTL_m>R*62uTw02b%?j@-H3QXo8%M+&e^6pL%?ct-%EBA_RC)uo0dF)N z|KLW~Md@Fh1se$F)Hf%ux`)qS&dyExB26KXI>Xe0aC>uMdEfG#$}hDsm0To20{^3{v$EiI2XA%8?HMJ|+j4IJHjmQ4Sx3vd z+LxHQwtI%n z$873l%~=h}op2vEKtu=)nhIvvoK&uBM`NTO)U(rnLKR2p>Z&h3EQU0YvTyPHacd42 za2onxwg9rc1Ji`a`;g#b;1H&Ioh-8#;%^`tPgNxqaYIR|vkx8V^hgPRLc`Zz(olOG zyh-cRo60BIAV)(3K;X2zQHo=dB!NuX6pTjQDjj`(DARZ^IL*F)3Ic5EB$@*4O|pAF zhRn9tNR_cVH&Wp#v)Nlf7spn#FyuSddiEt>4n$?AbVZ#w*bL6Sc#m1~dc_YesdQ<8 zi;k(ot7@4>8b()$%X0Qe7(q6V{zHl)!=RtC7t>5){<7Go*^IwE>dN?q{F(S<%h~5@ z%!SULR8jyec$+|&qwA%EZdYastrluV52;Y<1WEAzTBzt(<`dJ;q?zpfeO@%$dG)jX z4|ne~>}XC0bbGvitb;axl0n8%o`e8=Qm4`F;K)GyRPzw~DURh6`l$IAVwC5>RH+TJ zz2me}+k1|rn?Fdr(oFjkB@BcRy|zH7#6^DqIZ_PLC?kOK#tkLei7rFa1upT(ek4G2 znLR*iS>~>NVsDS#& zoy>-hPH=vwbeBD}5PNk2R(piFd>OU>vA$MKN3@Sw{LMvNG|l;-kpHO+fe`n4yLcAK zg)lt~NAGf&#G8q3JCwUP%vW27am6P~n3YMAdUu84*@ZEigCYPTVBt7f&14nU`di%N zefRHFjH!3O$lN8;Nn1)?GEfcr$>0F+e$U5x_6c^q}@+Zk-v7FTpoTdhozZuRq6-r zVB3Ws8zd$Dh4Tfogh<#Gj`GX~e=D0u)(F4r>LuIcS zo~A0xc`OyhUncQJ*E5jQM;#CZVygwG=8h8h|A) zEJ-uE8*_yflXINJJ&9@Wf@(7?qDcrBDh!RyoID;6^Jz1=5YAAtx^$INKdjP!Y@Y9x zyIMf~2+Kfau#VS@H5+VSnabHeou>mdZu+c=XeQbJ?&8AQ{51UCs=o?&_weIjxM{S_ zSkl+2)Rjsr{Xbj#|39yjlwjNg?s3!_wJQE&cyBas=UrG95D9?rlKY@Ju{p&ROrCmp zTMtAt5%PSj+u~+P^mt?7)n(Cla5};IlKi!>gV%0`-Mos z928kMN4k0Aip1;RWM83ES9l^AOJ|+z{+04`aL_j~NtL}ZY9FIvJpN!wGcKP&n+QVN z2o-#`1=6;76dfTtN(YI*7g@c(xD0iWK|Wwzb1z`L`?U6wNL!*$VAh#gxOvGQdIW0X zrH*7Yt#Jf+Z>_`}Ri0Dw>w~#ZGp@Wl^wSYX+vm#rWE)xa%*ER{e-#=MuiuHE$v8ih zrI;m^9~g`2iJMp1P*kpnw(3_= zhusq&BIss^Ze>b8_z+RRhfn-TuEpuJ=QDTJE8Zqdw3NMkxW&Hz76s8m|6rEjt=clC zJC@7#Ct}?(<|u9Em9n`amCF70cvnJEiun`hO+1+_D8R0rh+f>vjufZC?0lLrxdrdn zlK!?g`C2|ZfmAeT_K;cVwVv_Aq(?_~l({O{EF51_dk5^1xUTA!=nnxCv{d^18@g$@ z9xPrezU+Sttc4l}Hfx^tC*F=GYBN$GftjIS?v>l3!O={;^~0#F9Xxb=&`hCS3)K** zg`@C;;KLH`rc1TbJFC(39fo^!>Q=PmpeMgYHAKG@*LQxc?+rk3k{5 zDin`QsP!l-PPMgneSQ2W+V5OiO(&f+1 zS289zfww6tg1aLwP{F;;jl0LlV%*z*!1?xGJgVOkwVXarz6Rs})_;3YssBvUL1$8R z($VJlCv$=uH$I=LdL2gOEhGGf(afjHpS!rQ-x(~?=@U``Q83=*u?Lm((DTQNm zT9_v#=?b#MK^VPfBIiC-Crxr~WDHy=A?G5O#iMNFr>8I8c&Cs6xdRxS+b9?rgJRiF zP@_Cf@I+83*{5_t*eT_8P<}%zm}+P%HM$75Fp*PX)4|eWib;DA?(`g|?jBS-0{l9; zS&2Z%E-x(UD^+wI$paSaZma|CY%H@p&5+`m-Qyl0ceKVW4&-`u%X90mAVyz+nL)J%(RULFY;)j>rCD5knz8rqVqU-n`P$K_!8y2eF@04S*R0;6+H z6rXaYg04Cc;8#i8%+uzf5`##lev{AhVzv=B-4*Zw;@agyvTV<sdNKyvxDwMt$#tpY+*U_-l|lMMm+W&F;l z(v&-GKeC3nEXtW+;?HN3tX8zXsfMt(n58m6EUjn!)6UjF?G@m6KUQ|fySn&0*WP;R z;wLMy7!-s5Bw0}z!HK^3&A9*1H(`-~jdl!W0XNSvjs&U|e4|m(xG@I)YPmc3+6s!( zTpjfE-fo9knHNMElD2%~L%2ASXA6lTW%d#;{%1sbadOqo_Y;M^+1TH(>u2`Zri4kC zSP@BGbRmkyq07V9Ei@wSah1se7Z@z|Rgqsask`|(Y5B;<+F~YG4I~%Io;+_CeF{ap zxFoHurn}^8hHt^adce4Nsf3d?x-K*fP}`4QpO(MH00r%h1H-p=UR#g9YmEEs#DJl(zBl(EiZ|kV_cPku;O1ynM_u*)dv1|}=3<`{mbyqNig59S z+<^_Fz!%J}BfR#UyQVAMRXIDG;k(eVnl!V0jx7EIVc!;G zFJ(RcP(2zYA6>e|5!xo-pCu~Po0U|!^rn&wN@^20z2`=3^&+G>AzOU{7k`}irrl$( z*((Zr_$@K&f(RM@S2q$sk6(wi4Qm@TYxXv%@7-E+wTKwoX?wqOo=Dx31S_s=G0fn- zsuwDm8lS(>F~!N;Qh&F=hNXXFdVa#Dq{h0Mvssqu!*z%e+=7N`GK^RhVYFn;2st>Z z7ZdHzz0AWc8=7BWjVSZm#mM++g|qJ=16fo%G^Y$KQ(cbZ z47|Emyl#0uxL8c1D?~Ikm#&{P1(-($DmHdnPA}5QPKl5Gi2c4pnz>Oi$}C?sM4vv) zBiA&av3KyyCtG)K1r|kQ2yqfQs5LlWZxm=-y;I+c{IXz!SNd6*3E=s23o2xSR2HzN zQNA@Ttne!HMtAW3Z^@s(f6ZIOtk-lExST!z2SmiDKJ5dhYCaFi4KJ)T{+Vf)%JoOK z-kDu^WGfy*+72|m&x_>f>@mHoM=;*d1PYukMb0AmHGZNF#~GlD+wRG18ug`o;{<*) zNeqAcC!s6((a%{y_q4RxN>!~uZ*$tf0zU=v4<-@z;1svoK|$Q$-Iak7f2t;luIHX) zpFrBsj2s46XlSL0@Bvq>=`9#sX~G@gXrO2|Lq5WI;#|~n;I+Bq=yVgUHzJNKMc<8% z4Tsnb(DXtd2w@kwH4q^605X8wHzKcr_np6DH(39oG;Z|lPuV0SSt0y6!o)z96LG&0 z%+`2C8HO0!&`SOVp0EoYCSjrEKn37%hY=ch#I<@3R&|mB)uJ zvWeVc%d<1dNY(S=@ZNdo2;f6325$OrJr)R$;or}OC<*DYx6 z#Z9~mJZSb{qxaXP!pP!SfMJnkrEXekohU^s{eJaN@D#d$P>E*NyX>lH&%E`*|vRngh6Fj3>HWk&izH^y9)5= z$YdhCNO9_uYKD6JVjhdsy{)wsV$#JX%%SfGtgTdcUCC7|`e;3agrGIM(R|H#K!y7g z_7Io6FpCpQAeDqdlk-CM;Zqe|koef|ACMTO2LK=(m z(h@c>CabB}A%>R2HV^Xq@@m(`J0a-(U2IZPR|=tG+e}xn>-6&3H&V zN>MhQ?C~qi&q7*p;>*o|-;SgZ0@DGW;-bRCu8{7a^3XuwpcLd1MDhTO4deJG5x~Pa zHXi%+*BA{aKihYS>B!~9mlH@HL z?-3FTixN7kou!aw6iScdJZWKg1c$1}1^Q3>b{T!-%Op<{@uQ#kVyWssF`8XY;UrmP zgy+1BrO6iOAx0CS<(X50Lln+8*7Gpw!33qVIV_5>Ul9p-K+(z}q({Q8+J5|=&9I}W z5x1EbC)UrQSqrLbhzImuWq9pTuW8T29R?DyI#-_5vV5zC!lv|xG!P>ZPS3__Y$T+r zcU9yqp$GHP$erQ44%jxxwsQ+NI8IcrUs?4!g{CT!FZo;)6f^1Kn_I(Y>=)4gt?3Sm zH#9So0~7gSmFn57?fbJ{_Qs}dLQVz5P?qJ|4%XX-(fLr{o1}lOu5*$w5!;DutMH>p zJlEbm>OHP4=<+=A1Ae>>(GI57JO;=_4ANuSS zUN_|t$q#nQSOQY&Jr&C}207G^c&p1e(2=j3QoJehv&R@hya;od!as~a>B%bsEi1D5 z5<`~vy&E}a=(^#YXRJ_hwg;jzGyiJ6uiox=BN(b!fmon2QZ&BT8ENX-Bu+6(q!@u9 z(pHL5A&xJeR$nLs5zMx$IYVElX;2vwuko1^0w53GXIEl+_?(-HsUV;oe^HuSXt!K< zyO?Y@yo1h2G&x7`zPD*n*DhPBC5oYe3hYL626gDJ^XN8|aTzp-g!F zoxp?h#zJ7C{FT5sA_Wi~iDg-1*C|MH`fgW7%T>YyJ-uebvzE+td5VslP#{n#=(yDK zBe{*WqpU)kiGF9^2VCCo|>0ahVde>&h%_ePIBdBO;>R)pp=t&A?d@_M)hcz#AKi9JN$TF zYZ*yj&p>BQry=kf;y78!RrQP$f8JS_Sjg#=@aWA^uyv~SrmFhf-Xm(Q+d!PU=S{kmZigGoSA+Ubf!49H z?%VwwWXddCbim;BHnZm##G4@5sob=)i^YEA-m3bxpR-!jvJBpXng!=wZPa4(;QbW~ z%kaF)Q4LL<>+HdV%)xT`Q)I*ugLPkfVQJd$N<8r{&erf3fOm?8-`uv5-U-K4 zpc4+)#CuC)nJU8Wg8%j?e_kTvh@l$X!vVj(RB|AeZlsi7LYF7NNZe(g zUuRy%+>@&{}U0N}h+f+1k zU7LF-4wXM=6;t!rYTx{AqmUX=LDCrd!syFt?p0XPCPPi#KMeKsm->;3=|a+CRO;dG zaRYZ}QvHX$MsDs+diqJRPI?TI3bG41dTgMWQ@6zU(ZB+SXw9O?TMO~G#`mP(y!tx~fWbWYof7r0>AN-^dp`-? z2Sl{W4M4!hrRc!8i;U|17rF*F+7qG*#hsKOiptnf`+eYB+XQ;H%1c6l@3JDq_^h=?Kt-4h&hIk69^?kJ;}2;;gVb8WuL*2op}jGdg~eM@;kcuSFkcJH zr>L4qmsjIK*=XU$C#JSN;6l`Xx*zN&EQl_gqVz>Mu!Me{p99NULTU5Vurx2RZ* z7k_c5S|d+(-~XcOdGrQH;SXz|lfSwdK(<%?W8@`^dCR!Hk|tVmsQB{u|rk*;`lfXi2N zKgh6dZ++}<-+U6SybNVrD(3*6SI>jA;Ht_3)7=6UYpzij#L;k}H-y3J_;Pk3HTphx z`Q*0As_Q03u9TU+)QnG_djD(>NQCy+vul@sHIMR1zHmj+>Wr?`zrQC)DUp}tMvpD@ zIzg=)Y|}Ub^4xlkzZ@j1-Q5OTeYYBul zSpc{LX2qn<&08@M69S6X_9OHVs|xgo+O)K^>L#Dv@T>mJhalm{!@I+Lw#T#>zJtM>4`<6fPlxykDT!iaC%DaabV{quWI55N#sJ<41jEwN?AZlZ&G=JCRk0P#( zi}W$<2AsEa>lTYA&#w-AZylSiGM}QXf00&QL(wRgISrKEbi;$=hduf=w-YT#G;nh! z8)`%>P;F&MoQwWb=kXszTKx-dg49@?PYGH-{)0V!p88(BdzN~|#3eJSy*P9T&HO2| z9kwI@4U-M=-NG|naLJFP?e+gspiT28LB!|{=@-=~s`o9};|t1cIQ$axrly34eF5Qw)^KLp==-1MLjzY)e2%s%yE|74FY52ex`^K%>jGVJ4hwC{H|q1y<& zK?L&SQ|i;S&Hcp(AB)?Z=B1zUf?5CECIRXeTH=^1YYicN2VuBuZyso_%Ac0os+fR= zsdB~)#^Pu95*QoztY&XM*4lTv94(lW=zCQzJ74R%+&Zf-B20kfXx;wSG9Jz(<;xv< zLAEhGTXT=%SMc2E`8Nu}e=3jb1~wVKkz%w+3Jc|^htZL()72g>**sl8onxM1$4k|0 z$QphzNb}0V6!MTZwgJUBQzy3YyN6CF{*&sIQCvCjE4}N$q5~m^;kvUvzI?Nv1sPQ_ zAXp(NiHd}QoWYwsW~k3yimW3s&5&8(5SusNiN?%iPZMO@pDY=+gw=nVU0@;U_;m$f zV{?ItA1B(nnG#>cBGn($oBYb1|GEwqL{@xfgZu z;ke!iG;Ni^Bp2f0-DqIkq{DQ0ExDeKdM9DoBiSoy<>RjOP%?f~TYDq+8}8v(K1*61 zJ!53OX`qmZQ=c7aRO`Ix;`y}pdOSY%n^4lF+NWH7y?lqwt?TwbVy{aAk6M_#B0u6r zd(CRT3B@K4F)~Eka)nQIMhJcJJU}clHJx3h9{jsIt}d#>U)XL*o;xUP%`BmjTltwUcmEiiYe|KK zgji<;E?h(t5O)1O*A&wV*lJs{CGwmtd?UK2V zE48pGt(L!~zXX^HK#bPYR~ICIC~A@!frP) z6#P#88SV#Io|m^I2jI3lZI{KJBN)iN{DZxp{JY@hi{AqCkM+yfb-uQMrEB3umfVv> zbsdAnI-7Gl0=L_ZKedeF|3Y`A$w*_ZI9baXGiWfm*EyuZ@LJ;k!CG=Rjh4%}>B_2f zoQBmJoJq3p%oN-eBh|7e@|b&nbE~cIcrpWt$}TNJm3n8S{eyiDo(U0lm0Ds}Ni7S>2i->SC*-fh zUx0GcfR&`!+_p$Pgf#outA_+m!Q8J&vbb~9fB0o?iV9To+1w^~s*>vUMl`5gvk827 zzq*ri!ZCO!6(lGnax~g$_g0pA+Zt!j=87B3*>+ny%@ztmIEs-`QM>IG$_!DS-VQcu zdWBtQI&x|Q+_l{_A~Fwsy7H8V8R!0K@5I|$`?`#bYQ1iL{geHt^+ew?GuoAk5>y^* z07yIQz;g?geaH1+j;A8psi=pC2K)pqPXIy5am#&!WZm{cq8Hfo8?~vv!|(?S7s?5^ zHNI8Sfz$Ymb*@_*f3nodp`GrY9&@06Vd_0T4`;D(>Ed$ZtN;m%nAfd%7YJYMS=K)F zs2~15wcm{uAJLeEW~pG?_e^1-$(bb%>^uGa#7`7oNyHbiV>72FpQ8A&%Oh}O?jnaQ z89-jY6eaSIhG(;C6-hy6^(kXAH*7%A@%ga&vK=sLKH~%Wel=A6u6(f@Yp?W2lrYr~ znb^Njjyhv+SfO7Sinkh^R}VH_R=*?fc^FH%kX?{bizoan@QNy}b@%Gt?)KEWUif*0 zX_yNbG!q7wo4$g;=~}oy3^{+4sxOlMteaq^aaFZoiE2A6mOlGm<(VJV@L-QB`d|#- zw==t4)1PV@ZtVtUrhLM9#tt*~X0DV=a(Kj_q{pJ8so2IVG4;5{mfB}h{_%l^N%80M zHcFfFAkQ)ACd+uW?KlL1!TMtZvR+-K4$};z$20UPT|Vy~P_JglY!`B)g-woIeaC#B zOMSN0bJg{5YgWImAj7Bk=w`m@L6KLekr=Kkm?xfig0bmG2buia|BKm|uc2?-TxRIe8Bt`h4p)yD(eW8+fY7S0Vrjh53S z?SuJ`NafV@ySU3C8CW)YIB8{b3xS8!eO|H<0Y?N?M-xj|^yU2R-^ni8R~We;FyJCV ziip@)=kxTs`BPi(QDj-eh)3U65zD46Z8TFcHiopXk@$ti)1|%xEhF20U<0(JZz!3( zwf!Xqs~s(ppY{zZGC*(j`!iQRIem51)pyX+mswkU+|sxG_P9A)k%*?`EA@mCokvJgoBsR}K&wOM9lU*V>CFzT>eCfIlBSrzzkM?z=UQ*7`om3*IB*Aw|3zl4Wfp z$m^r3o(ze_D(_+nLHbdf7S)M@u7xG2?)7pZoG#$xWt)t}RY$l<0b`B-_3*ip_PHBFK$^daX%CbyE~PU-P`lAbTxnTMnuw;xPX5VTz1%8+Xrjl` zD#r;LpB^1iyQ#|{0~D2*+K5}Su{xnJ{WfUHS>WIW zw94Oc^F;&eo{#=SL8vUr;hvH<^=hLn;~xlBz<%b^Qz@)uHi~Sa`QtfU`6?{p+0fp# z^r83op*HxS?(`}yqAu`kY{IjCVeNWR(MXJ8^m?#b#(7{(YhX2H z#%#1yWf#jk6Q#y^H4~)*vE9m=+yE^-EaueVaCzF1E z+|W;))}#L}vvjr{dS!FL{EnjP#n8>ajp*vO94B3i^j89kNUw@}2p z*i)4O3cP*zJ#m-gd2J~&1Dw`5Zsao1D$E3N@^Oprwi&=>GPbsrb`JUT@%vcOj1s8u zg#Ly9OV%c@a$#^FkL7w|X3IZfO$FM%<`oRmv3J{*RXy*6Q2n$^nxGx2ZzzexK|&$R z6=0MlzQ1h%jnx98O@mQq_4!juVW@)0#n0u(RQ;;!?JXuj>W5HXac7$Hwe>|~FWBx` z0w$R+P{6w8RQtGbMl38g8Fl-M!9B$@Eni3eTL59DXSs(MiG=v?CIwyd~8wY><*h0Ohk z$NaTY!YFs^`QgX-;e#+{QV63itBXqe3vE5CXb;$c_Azz7NvITVXM6Njm@DQXVHug# zbP^OtU`?WdD_UfgYTI5?Tbd2&y%a&EF9J#&5M(=MS|PKV@{ z);fYquf21H%N%oG!HltS+x2lg{UoBcv-E}e4ElrTN~n`#j;t(7KR|7HXnjPv9{ zhA=mQJY@IhWXc;FwgT~EiVF1%-*NeV@guPQgPdgq{zCbEbvYyLK}E}7^^i>8ZT{;* zI=zD!dCtu7;udeWnt`l+Os0YK@ME-7ic|q_Zv&r^Bw}J~*>bf_e<>YZ)(u+LLBxY!FjjS|IY1QCHS_hFX~E{M&y}Ah8ErqIX^NJiL4UP$^BCA~^4~ zF{IiUq3T->=g*v)0RFa8kZwA(-qCXWjjOUM(?+TK`J+Y+2jA^dtoSd_fV-rsxbtg| zt2kwCugnfqO53%t;O{i5bY>=67Y1J(@%vRS5?2$^*a|1d0@Y~O2$!cepa`%#Fk^(* zSh}~C*7cnfg4%#ih%F={1@nSB$V)WDWd~LMB-~+*=t3(&%OMFCJJ2T9z+skTjiLam zN^~*@@H54K73i1$dy&U^t~@^YfUn|(=Ea>TB%IH#a`wyL*+b;Y3^UMylf*;rp@XEc zzoQKr1bM&YN9J}}u`@LwEo{7=9nSsM15dOayfEm1QkDO6=U^@vOSwWnb(~5YTz$qo z{k!9O8Tv*}WqmIOB_Zv~jXg;+{zVS?HM%8XTS#{tdIsN$_eS+r)Z!st%fIi~yj-+H zjF!r8yb-SK-!k!&WFs^@B_xwAC4#;dj8oCNvEihH2`%3OV85|>4YV9>Z|+Cu52{D! z#~+U8>ofk(CVxvSwIx9R>HU7udG^ zvuWIw=rdU;dNb`GFU zdGrtdNPYya?wiB?%NnXI_p+MMW7KPQ{(;DBL@_cdlh`4zQZh~37ib7g7U-< z5IyEu1vb<9^&OJ?gs+W7blw7h@3~4R9c;hT52J^o&On zZ|!Vx$5!u)Z#Nm`x8@BX#dpYiwkbT4WA-M)%oe*72y7KfiCv;n9bqlMqJ&&L>8zMkH;!{Wv;?{@t|G&$@oDze1?t2 zLhG7nL=-Upjx6;j ziMMjbNQ+edbKGTHXKVKNIf{Y$DrqPxohW>c`vW!0FJ2@j2q_gL>9cnF(1wbyZ!9>Aj0F6*1+JBwD`Ht z$<{;>*vs1iaz=GmBM{?Vt6~hS_-fg7$!9t1Nt{`>Yn#Y>U8jGpwFG~aC65EW%=b6` z(+fZ=j4Wv+a)+h!SID^P8kP%R=d|3wt9|?y?l02tnDw@rg?5oO z;|#mZtJf9lVqpay4ky0j31Foy?NhYWiF4hOS>_DY=V;-F9}gkEPsfKJ?-zYd z_3v^&)~eHvrbUc!NkuPq4lrq_>sE*Yje@ssgZW>UH_HoiT}6YTmm~)>wPV0*wwCoC z@>PXaO6cFcC1rFQBxrYW(3_ZVz8)oQGO9I#EJ1iDxc{(Y6xv@;BX@sP1yQ0W*HHf-tM0DNyB32ji*zNj~qc#q(<;CVY;2&K_a{2j_f zwIe4^HZ5@4%eJ_ptQ{vV5HuNl?q?Dq%op@X=xt!Eag<0Je!fG4C`4>3>P4pd(BXz5 zFHX^Ik52%}td}HJZeZ9s-#1-qgdU zCB2DMoR;qN>9BylzhpnqqwPt6UTG1D;8?3u)pQ8*FAp%|Q30{1@eNamEQhxo^V|6* zs>`jZjnc`y^3{rC`P@lbr&xdg(D4cN$r|>`ZMI+DkFQZI0j6U;I7#G>kDl49xT-C9 zMpt1@I4wSuM^x~&JM-B z4rUjKMr-`YNI(U8S>8YAsex%;CW|}2!nQ&aeWd4kxc~G$7qh@hK^%ahu=helDB|=& zFRgAGrMWu(#m^qThGehd2vHJ~z5gjL_>WD@O}C}r$FU)mnIQ)($FeOK{GBjwkDJMH z5nW1^;z<3DoX&B2zeDO&Wr(V~@7m=Uj%U+|%K8pI#NK?7$tS&i3g?~D0d}9{SF%`U zrMFo_ap>6xsk^w6E#Okw?z=G2w^I~3QwpY(FKmq8?-=GzxwCDFKrNlp5ze{Tuy1s3 zs$c$52sNJ?-F-@OaUc2Z4BFeRXtAY8?CwpArILDG@o4j>jt+SRpVmAsHlj!_8IG|pwU%J-zx^+J@(lZuRv?X zgDxV?my(#lOGYkA!RtQFrbNUjMu2kRQ3bX+RDjTTfY9kr$PO5?z%Z%@v;lyFx0^ee z-p?K!L^OLb9N@Iwpf~L*^Db84es*+J#>U}b^f;5ANvp101>07!JNZGq*dhbf4 zre;*$wcS$OmFwSueZAc`^W|K&oM-3o>U;*vlD%>lA-mIh-k8XmjwjN%{o26Mh1!v% ztH#lIrvQ}Dj6%VA7sbpzGl$$atFG?+ji+?23`n2kRk^1qWMteix*I(FjvB%L(YyZb z_^;DWvsbcCl@n+(3o@i3hO+2>$vFIJ^1-2JS^^fYWkuV?Aw}HDRK~_ zoP2t$m}PaM#m0pm{VQ0>#$fI2_xCaUh;Wc1zO;S<$_NwE@cju3-X9TSOpD|`bErtn z;CpK%7AR4Vob^4OHl~Q`4d$Vr>=XyCVK+(43r~29AanV^JX23(;%j?NNxhjsc?vbo zG$=~SE2D}$-WRo2t0weFxl+w8kDIRfC|M;c7oHPtVh=Qe0204(cs7vzq>A1gi>8c) zbCl)7T&rbyEpO|?i*i(rHqiIi@B9gv5#7Qc2PCTL#1;QV%%T?|IL97+sHNua%7<}eWjAy_HdTuQgxOvX54B`rU)dx-|PxwGtq zeqUGqBa5hL3~yw(dU&=rk8Hb*5kW|}Fvn~7=lHcb;TG3o^+srDRWtMVuGvGH8*u6jAjb7Odo{PY#%;I`qao_zd$Xz$)8 za`q6i6}xDg*?Q=*Sbg^`HEH&64Bl(K6_Yb&IKNcu&5uqw$ z;6~tha~>JqoHV@kjld57VIEUL6V?%4u;BL&6He!{+h5psw6*d}J?%f%`tvl=LK`9Z z-j752u)}2Ck`n^AV~gf@yuIu5i4u#>(;|1rkC$y#b*mnW_|4~KhrSPTfz`|J^XfTows)&{ zFqkvcr&taV#+f}vtP!9>A7!r`LV?GefNt>a-bYoC>7OfWe9^KnV0S2)0C9@eO!D7%sGY5XH^kZ-TfDJtWZ7sCd^#-K7TjADQB03hr8-N zi0u0sZOc?gzK+gkd^i_NgPoj%DSVcZHUoZ2XN^l_{n7Qy%PRW^4D&n`Li;w)NDGw`9(?3)BOOQdNyQYy-imo_ai19t0+K21+mei{f z>ClhE+!hm z@~vE;RWGM0lTgvJ?33P?SbCB*npR%C!3O6Bkh zr9)B=8+R={pKdr(z1ChY=B);Fq#Hqs2#C8jb3vBgc0r23Fa=z!QUjqMIu2cbU+raQ zG@xiijKstMSJFdQXZ3bHH6^t#Mnvt%*=I=;^zMSKM$3IWR*;W0F7Vhs>#ib8D|m0q z3>Qb%?c{NYQ|*ruvR?1j3mUp(<6Q+u`8`$K+lBVUqSHpb|2lJfQS-D@?tGLhT2Q(F zfs2e6$cWZDs{WG+F?Pr4XJue$C6budHVPzXf06dD4iiLV!!RDE!K`x8*xpdG5QC2U zzExTowD|`#(5E<+o4&-0(EC#AuU}KJ9cF{lsK&8Z(wlrrE@C?q-%RCIN7Op{-%hm03Ha`G{Y92Lbg9Cq9t)r~$LEZ6dJfl;l_s-UJvnEU30pso^$V*-%FV&3r&#pI1*IY09)_US0g>@89F^fp&kr@FoB}t8 z1Uv`k-tLW?9=>rX6xY0#!67g#G=n({v)|;zly$IZvN}5Q@AImVBz8nG$&6DRI%BqW_-X$)R)Me!9-d<8dFC_k<|Sd<)B)AWW(W=OXdm9BP8eEGjAlCSk?J{x>VL;x6cF2`74J*;Ok`sZXCQ!HCGNHQB(sC$b&(yp&9c zBuZ*YY+M7~=o!tGC5qkTEVjonAqB2r<4t_!{yc=t*dO>E*u!0~()AF=Xd{}{?tA~b z3|Db`h*d-7z^0h^zq<&%E?I^FWJ*O ztD`t*+uKP;g8zs(xfE6b42JW_#lePSZ`uS}fG^lPPk_`;exlSaoEwo;8l_+~`A``0lpPCZ};?z5V>I*1-y(4T4`lFtcg;H{! zM07M|VsB2`&VG75RdAm`eu=wIsd@EFSzC$M=$NhSoFd{hAM}qwpxbe4V!^Z7JILd^ zj=`a<0DJdk<5+~_yr2+P&+}BGn$-n8GuCH#lg$gM-C~j+x2Meo@u8s-wex$$F-Xe% z39$!$$glJZx(6*h%r{S3ZhD^>Fypz5I4nzxGzl##xWI~H#e$yAT-6Rkws-elCoOj1 zg|+8-WY@(G7zDa!q@xsp@t4=on|!iig+@`|Lsi8hbC0_Rw@K8+23h_`>mj;uZt1|C@RJ<+NI8pLci4sz-8+tgiNp2jPKMPOSAVzLo9a^}NL z1?yNdy%?C9r0#{||9_+LshABF=^~nVzxQCUx#m5(=(Gn?C54FX6Vs^3624HDJy~F5xAn}G99JnmLbSkjb;s2>zw3?5!qWNE+WCm#%By$V zrF&Xxt!M|<7+EA&TF1elBnDb@ha4v?al621Pd<~?-ZC4XN82w0}5kK+8(b$h< zlIM$n5z_{=A$K4rLXb$@^!ucBn;^UN#1KUAqlaDlp*epcQKktyTjnf1*!_{7f$gwW ze9S@*^r)Yp!ie>cQ2wALqv__XXO?9Mk1tg0@@`NXRd>>9Ni|S~Sf2ku&J&R)B7was zjvgvXnZtI{ugQ2HD*;y{--sXu5oU@BbqkoSDZ6O5M6$!ad!vh;ak68uEaebv|G7i& z5CgL0AK{&6hib4C-M-alhW@ck;z?E5;G2tbnA&#?Vrn^a6yc@`IjN8T6N1>37T{0m zQy&1Z>E_W}V$ZZRh*pHkw$w*`4|3o>m{F94=~~+!xbc?OVEo;kh9#g2eBRy^9%`lC zq~ASl(fXoeaqT0hflcCE)^}HLUhT@f@#V9zj_WCY7hyU-uhp{KAz~Dcx4h3Fe1qw% zID*2X@Hou!v*}#RNuWSCzD&7+ubbAcY)rNDqwSUcX(`?!6UMNz=dfX4E z_VW2;rWMG&b-k+kWe=HzcA-w?y41H|5eGxSO6xdIneeN_ODRQxmHf%!dCix8zIE^n zuIpWp1?Z_&@W)l{S_EVV;H!=qQ1gckCGV(faBijE-7NT!U#^Qq5(6*Tz;R4JF6sHx zeuhgM@1JVYuUCyG$IYjYsS``2FrW3c=VIXLr9u0k!hxHq48^R{&m8PGmT##v9*$$F zGdQzq8m>Q1)=3Y=zJ2>S_KP%KL~Gjnt`{~N#qsY;l4BEj#+~Qwa5Vm@uZHoSjAlQ& z=rq<{+BV+9<&%}+jm$^#3Dh3utWgnKDh@01FvjVH|AROD|J{oSxCP7sXnEwQyUlzd zd-f-M?7G()cTyTBCB!cF%)ftv(MICN4%yJW1ACrH>M?RN-`-i^pF!h$;WXcnJ zO`YZ#ligY+FHg=@t-9+Xe+C?o&x`JEBlphdH4qX0|q|gq-)e| zk5|HF3-)$RjJ7RP9Rs(k_7!?A@CMgY+=a!x%;l3(MLoNPb%$_xd%HC{q1)wev5!xy z>rWMt!@UdJe|`!C8c^ZU)=+;igJ{K4lk~D)&0NzDZnVyuk!Ju!YIMF?29@&WPOu;IAsUnO>Lk#UHpF2m)y>u^4e!mRh301b!Czw_jz)2+^1%O-Z$hI8EwoKxYQnP|_eNSIh=k30aR&C;j|)Cwee_jK84kTMv0 zw--iyp4o#>u{?!InUlCUDiYJ%Ta`V${U))HoWC;fKkR6>&C)PwghnXXfYMbiSG9jp z1674HiPc|;NWwlFnW#6+|NHDMmW>lbsEaQ=NOs?>aEOaM--S3Y+`(zM+_ZH3YHz~G zE^xUK8iLY&!G+9gY}D*TLyvn*x6y6X?(xrk#+Ya42d#Zj>0#5VhJjh*i(tBtGt<<& zh^n3uapvxP%2{G zV8`R#Ok-Ux_va|Z;Y5$A;GO=qob_O7y45?1o{3ahM$4kXbu6VblN-CR(MBc-2N4p- zO8`Wu2VcRzQLAN)f_&C4_%HQI+rDjGK*;G0rNB=euMite#S43(`57r(^&m}XUl~B| zQ2Os9RbZ?ncRy9t4*m4>W`x^VH;8n5-xg9d8XqF zKb-b(V6ly~BQ8VbSMWo z)P)|kBQe|aT^*eNV|*B@QE*H-h;GNWktmZ}_mtn|nGXuZb9d8Sbx-18h!-HRuT%$_ z`Bc=BpVU+CTPta1^TajCEFdm{cF3ue1+ga~Gy(q9&NBMSL_(`X)X1_`5n0>4`L36L zaPZ`oBDio>_6VGd&5axp{p>P z>bdPZJDdZY?N)yUgS^bB$bT>mWxer`ILv93tLj`iYkpLKu{{Pu_X!8_D+~h%sKPgs z#QlOzoyn6fTokI7C7}nUdvaG`gyv6QjL%p_GC@eV+z>x2UPk z?p9XkCyn^r1>NrFOHX@cR?os-Z^7}~QvDUcKYldsF1E@Y&MtQRALsbwd|<*;BLtlL z&ty~4jvK!ub)ZM{=LOihRRO>?Z$;#gTg&kCDz99uzvosx=-FYC@4kh6^DTG_9C!zh zMbWbe5m$7!v+?QA--?ivyPs+f9IMY%jFouB6_cY%mL3rW`- z=EmD-L`!*F8De}CTOtoOKNzgLX}+T8+*pA&@#}?xN%<(dc5fjoMU%7W&XW#ocqV;W+#dRAGkW>d?mkh-w*s17^SE!g_LBirl4vKl zG_C$-;)4zhrM*TPzjHA@Hon6pZm;l1R<71g7L;tM->Wevy!Gel#tzG$Bs;5PJa6wk zSxmM$%M|A-)x`GEeq>{=6Uw)2Zn%P(w@x#Kz8_c;B96lh-*)huYb=PtB65q5c(83{ zk4GfZGk&KMqSNrKzJB>8E&qp17j_NnQt zE*2F||9N(@dn*j2(HvZO$oq0iG;e229smna_#Ub8Ujd%~z=ol}I442dSHD8x^)$7l z#%@XlwX)o8A8)7hSvJNSF*>dWPN|fJf7@u`qcd#ID&H!zv`wgkHy{FqV@KNM8_KtV zOcrHLF^rd-{*SZ?WaAwt>!c_Tf%MtPAbrdkw!CWeFn{e6lQjH4Tx-KZRpKe)s6o{l zr|QICgcudKs58f-ri|2rkJZShzgCUit;6RGmXX(=qQ*vZmS073%k!XDCUib&JAizO z`Wri*3Cc&VT{SH3i`}ZHw5=;y1OM~nGnSoq)?VHKHp~0M$LxCx78+EXo9-)iN@6DB z3(EuPBlNC5?BABy56Z9pWNurof6GTTzOe6efFkbOvwZB)PN!#&G=Cni zi<#1$Phl^_;!~{Gk=U8nM2AXoKgzDeGHjCFONm+HxCL=YPmXnyP}UzGl$hR)edB0j zqx!{SzoC)?^zC?Z_wtWVDDwMtVVjP&CR(G<#7=5?AKQXeeYi&){bjGh*M7;v)WlAv zbPz6O8c;7N6D=;!d^8}>uS}4NS5_UojVtvdgXKSM18UZH*Qj9Y2AQjYWfUS{h%=%T z59Zcpt@=zqtWCp{LR%RF5s_txyivpGjpt+;ev-?^u4IRVQ5$Rt`{icYb;9@Y5v<4} zZTR;FiWVr{0*@!-y*5~D)hg0GkMBvmYk>9-MIaKNZ%JU{M2+TycQoooOG}N{M}C(g zpG7H9G%<&HcssXR@!NJT-5!f>UW*IIaoh9`uy#R`xNw&^F4-vF&?eQa%j5H}_jMB` zUej9nRCFC2_5PF2(#ZVAkL&$3KsP&5fQVMrn6;n#ZPo0jnc;V0S7B#O z)|K<-?GuqLSkoJlr*u=xxhWaT@4}tFuLU%%Us$zme|3X&_r2QM&XhHiz-kX%6byK2 zl+XV8NOBZTo!xL!7N4W8oXa&al^`{Dk}>Q7J6eRXiO`zN@Q}8uKaQDowQpufA}OK` z>Yn}k3te2q^Uy?xAHW&~#3(WC?;n#4m%7N6%MLI)w@Mr>WUqB9Hty*lBlfrx@1=E0 zwp8kqsuMCRgm^Nd-oc}eGuL!)?)l<2i45&Y zr&3?okQko(5G}|*p1D?)ClhF67rA^Y2>CqO5$+BRWjvGMRAYEx6NvL>9_95;{+4Zz zLO@{hpg#doC+B)q584QO-o1G|v3m&%!PuB&Yj@x5L)0xn;r!z!hiR+@h~?>vRbnq= zrwRrqadK6eh^YMu^wAjYe%#sSf`q2j1mbD8n$i&?7J2czlE{mj8XQBy1oB@0Z=Kz$og)0YWx|7DBID zH>&-uh%*h3$J>e#Y#oBLCqC4Yx_NpOQj6*A3fP;0#1`SlLUpk#a^Y|~X2Ep;2rC>Ph7$L5U1lSS|xne&Es^& z!3Sx&%OLg@{2jx5`L>b~jz_$-F)Ay?yQBE}etqSU(!Xs;UUF?>^XP-VtUQ5>zz2vkHyW<9=dD|4{jCwTwDS zp}&tVlP=2j@N${`g8dj-_0;O4Mp0s8+4~8>?s|-xiI%IqRJ~p7<3mQ(`aXh$;+JlS z>U0RBYVx~UAQs|eUhD&Bl)4H6wffSjI&+2CK0H|TJu5F)t55A7(>Mzx0gve8EE4q_ zh+lqHA3bO%7tJ>s&hu$vF;L2{`6e)dN?|9?k)F+C*a~m=6kQN! zyzhieU042S2*EcRxrB@^mU*~Z9D?5Np_nOPHZybi`MqHKFPQ^JZ{xpKUtTJOBWP+p z?Q?XZvpdgntcAL7Jl^JW7@ShAWv5R%r2a6l9kn(G;_d){;%FpR86W-(WIm<@Z1m{H4)L5+ z=A4|0Vvpn|hjD}ALU*!1ZrKNAs8O;Vusr;+&<%OxOKI>nq^PuOt60cXnxlQk9`X3P z?EM`b$**ivo2kee!cU*yo7g`&12nwryoJWU3qx0-x=eR;J|Qr*QLXwt_85uL!FAn zdA_IG%l-LFe8=^YwJXdH9u{e{fSkKqWJ>kU?|_Dq?3yxZT-|Y|vCm?j0LK4euAh)R zq7a?4&RyqixUTqO^-6UBKo}Ga-nKhgc!v3!z(0T*-HM{MUhb;rn>>PCrgYFfKLxp2 z6Sh*HG43bd{EG74k;zWTSEyS+6*hu%In-JKyy53I`e^+IPZjIcE%M^7wLo&JmQqf% z#dz>LeMxJ=F5yn0aI9^bay-mv&Ejx@*2@@`?Bj*-%cDfR?zsn{0w_O!(!*&5Fssh3 z>(OWVs*rW55BJdq{0-1kKTt73I%m@0grL!nx1l0KOluPBXP8wz) zunrV2qqu&f9l{F=Lj&A>lkT#{c^j2l=6nixH@gL+9XlANQ&*>3di#ER1fo_2kZIU7 zkH(ch$}QZ2c3!Mto7;6VC?2dfZkIBy;IAk(M=u356*ji2{-2-icN-*{S0A*(RUc+R zr`gWTznvKGDJ%B_-~N>VD-7XfxDQB=lXnr&aIIKyC&lnzD*QaX;Yt(Z&77TbqaVR@ zqt9{uGTwrAA7df718J^2J?|5Uug-*8Gc-2*CLpmK&A@G^Y)BA4A=-MGd&fD z$A9ewQ*Lh5p-g5+IeOEll8j2Dk9_tYYcJI94A(S5k03;xux;s~t~5*lKS6$)Ye z(nI*-#^I4At3O6*t#j~6M~!8eaEK#0MnXd)fi0?*_-ux;E#HU0mhFZpxf79vfp%+L zoDw^1J^TWZwTI9n$QVjCYdtQ0>HIN@mh{Y!gfB4dSiOZ(m7ZdyZSo-gqFzJ41^IH8 zd~o@Dx-ZwR`&&oa1H)lD=u{8YpU zE79NNqw!HSHtV2LslWF_i0Gun{<;NK9m|GN? zrI5`$bo*r7(R-i(MPBrOo3FfAAVq>IOXkTAp&R?a7{~4E80>yfuann|C5VCuL0jH9dWC}!X1DdOJ@nAr zo*@fY%e@N!2Hw53)JD(RyzmmUQ)U8$rGP&q6(Bsd%uqYmI)>993$sg#Wzm{Yixj5% z{oL(lZ{%cX8XNWGZ*{7Z&rGQaw{4$aTL|z^v@oa^SGjWCWzMe6MO{NJ`EO|kIrH6$ zztCFYb9XW%x9IW0a0efw==j*oxr1?xo#g;0BAafhPN5@DPbS%u!_2JK5C+16T# zY#>A?EB%wHOc>KyI&Y`Zc)6~LF#LKkMw?r@dl07nD$Z1|xx1UCU_TS7>Y>fGBwr{w ziT^B$USPSz9bt5{G==QaD(t>Ytfh0xxaxX<{GO!5az35-C z)1t}YIF>?p5e5Fb=-H;BjNL@`Pr3)R_33YfJgW1kJ{*ap%_DXNfV8veD& zIgJF~3gm82@r?_^8WVueww!rL^2snIe3mcyu~86mJ=6AJoi@FB5Lmah<9inecNflQ zH15`3%9e>3Bpm8wU9xsY%!(h>2(JSnPNXwlaW!xMS%qu(n%|!BdYzv8no3pLEDsYG zKD9V6!bOA02$mm^SIsqi;5|{tJzc~(Nj}@}m;tFYV?i{P+SUT^#!sW2&JZ}Ju{&0~ zERRFlTnn4Z>fgF8lCM9Rs35s}Z3;hEjCDRKpt=L_2SMvb&9zkre?`-~hZ zvJ#j)ik^WgjheE%WP~G)br*{;hcerLsCJ<0D2>#IIE3^YrCJ0Vir7)5ioF7Dl9Rzs zzr**lJ;3M~ik?vfOMBbFDs6!b;1M7Fnl#NS46Brhj)|APOiodqHEJ^8`P zthVJQHP?YNzlp|&G&``)Kr9$DBG~0N45IA6zFihOs7i%#Z9e|kEoqe?tm z+nkzkx7{>S{#2UB#qwf7K)QPhD>h9NK=Am}z8Z zN?_C#O`X|i_hs7#Slor^3vstSnD>avmN)F+l4Ls|`-~dN`5i55us}xinid7`pikJh z^Wm&I#Z`BoT>6(p01X5HVAe(I#NHiFgiGsqyVZ5ao`Y4}2@UC`H%&fccM{na>4;$a z=Xy7JpvUP>SmynVUAmrr!-waK5H4RcLpgt28I>O5MdDwxoq(|62tP|WaF5S*$K-?q zSTS=$N4HH+*-8t@IJA(v+N}RZ$ii5K7b#ne$r#-+nbaa4jXN!-YrR`NyhebpSs<>wp{?~9|X;+uXx zQc6uqy7@m}HohbO{!(>ha(G45A`+(47vW)(802GhD?=cZ4#Umtixw+SZ|+eWFPV7m z)93AyJ4EFZGVAhYi4LF>AlVdWc|3OI#M3fwKR>na=)_CDIy7&*&@-i#GNyXg)QFRP ze#`g@VskxP2$Sfah?>}`%2JJ(AVorC)+dk2i!77CAbbHkH?z0lIm)Z@cnvY3J{qnz@J9Z^>_+0<7 zWc#f1@vUM(4pwA7Rfzjg%DzV+qR=i){wJ4RIWrgPgF@S05aPCa4@G{!d#>$(rd!N} zYHuFiePyJI6GlM9NbaArSiSDmP1hf>CrLUUcM3Q*vaUnIh<>_vJ4x)i=huNi9Q+n2 z2L^`q(3y6NIaKbMa7c4!PTwC}PoPsWJ3WUmQmA6Gl*YGNG%X~$ZWN?m4s~9Y87$u} zV!Qs-2M`lr;2dE6X&pK=?nj{fn`O}3za%cq+<$*i?=$0a?)5L!@XP(ZWq*L~zo&a! zDWKE3UYE^icKeLNbB)4>uB)sLC_uQLfUlpwxc==|q&2~+v!p`sTU2$-!pAb zz8iqc*#~KdsW-lgg!ZuD*L{qG+y;!#@H#iD!}lBDNTA|c%)qw~53cyqh}6zaJESHP zDe~W{``iKLY2aRRHRp+9fMHAAi)N(Zs71Ynbn{BoWrK!_5onvwckmh2FBR;s#tqx4 zjTGX3+$p)P$7uZ`C51G|4k;$RMu6vmo-pxqAf$dq!f)t>k?bWc4wyxm9%7>qCmX6l z3UGJ$4Uz9jFR)+Qu>y1Z)I`F^YZ07{(^XnCP+ZwGL|FV#sT44c4VM)wN+L753M&C+ z=Nn-Wk0U#<1FWz1iJ1Wl+YBt)VDA&3VRMgYwY{4TC1F{b^XbqfNFb}m!W&NsNx;Q- z*E-!?ZsoX_vyi=w!oX+8mke~c@&$T=v}1YM1{dq4tw}Bq;I`yPpwbJ7PS{n>I?{C81OH- zqv3yBv3dnuxoDIfe?41SZ|&n(lO(58PG(Pds%x))Eo8Zi)B znBg3zoHLaJgAS-Y!+}wdrYR-_GY`)wHlw8QC`kJ*&g$$`dIbYzylEu zyzEL|TWw!M*ne-d|M}aS>J3p#DhpHN;i*HScew9bhb`o{Wm|+`g;8_pEX|ddAI5TwbWd}1M>koKZyy^|Ih-OykNEz&~%{5 zw@*`2k*Y3;qqkMk9AC9S5Z7btxoq-#_vKi7VYJyi(`8P(F0ba$eA*_qv`J}EE!Fs) zK?2*f@jTw0zeT@}cN)J@h*rJ>)TCG(Tsb>B5MRVxqUwu$ok%3XA$bI2oGi~jMyV87 zoVCuN?T_ocOcM^CWpK8%0C{XFL=>;?$mkww@VW{%XCAw%COBrSmKs*&+s<>*$5`~M zVQcQAD2w-wcj836?#la@pFkB~Psj>THPMFJXJ4~A*k(Yx+k)^!*5xu`uYc+jSxp|f zU8Ae0$0Oz%0I%blJwdeqUm=P<5vVC84c0Sp@f{w5`c0~v2S{x_aI%Ry$xIGVD^L_t znK}<2QJH{DFEujT9U-P6c{C*;yAO&^d;9Y;+FXz56Bs-|vhgYJwyqMauxsl&cwfC8U%fTsUnkJ^3Th_p*|Psb_)<2WVGC$EO`rRNG?lX4 zf9taUyX$sKeMEA|*XH{gr9SSP@c^bNC-p{WaZwo?`s8F!E7Q-GM%ceu)4c|8@afX^JRK?$?T73~tqIeKOU# zWzEDGMG&{*fW`JUA|oJ0BcSj!kOJMNa5rWOit!cw-rR+pQzo*rG;ZpAExwWLLcC+g zZPgekMLa_lZf&n>sm(@cyAF$(C@EB=E0RfOqc}}Q-ab%rDfzeWnAc*E7YPY62ucyB zEIB~@W7SP^VJbLmi-r;F&*Gcc{UOORb$c+jupE$n7Jn6dYHDKn)vAwz?kT*pigSWj z9E|yBw5;;hFvR7@<_wQjVAOd&mp|}s#wLm;FE0A7*rkxS=o3`RMGTDDfs=ku7O>%z z6(>wz`~6byvR`|NJwq3D1!SDd`4Cr!=M8+OG84c6Rkwi#6&ZrMms&v;F!F!tZy-ZJ zd0nK)j=z+xxyhYXGJ&0I=NUPxv&dwK`{vg#%9>FfR+cxxv54!Kv~_f}$=&sS@s zz}>|&1-;xMEG53Q+%4@nwx#{$lUJrG-4{P&kE__4f$;c&h9vZ+d7ohY)3B!zYn7c|CM* z(g5MNmm8yVkuKDK1eb*xO`E(g_3PTss(Y?jmj;f{mrhz3=SdGF?iP&S(!`Rx3UYx;Sv<15o6xdTp71f{h^ zNL7HtK}?k&f?ro5?n1T?qD_`6w66T|LOx9xLr_98EjvU$-8n#xB*zq@oW4u*Qzb;HZ%pfnI zl=`?aW}>yWFjml_qXu&rPyL63aO@x+S1(YWyFDngK=@u@1$+1+fMQ41#|SvFn|qZA zFQ>i_1$@yO8sr;kfg(2U*yUS&6W<~zDI`s$N9(*TC`7c)W+t(aAH-qq?&SuKf=NMV1H)nAEnoNC0r{i9zn^Fmc1I{5^r;s@i(2xoge z-{)HclCol!xrYsDAMKZg+=*NVb*+hy9zi7wG58h+JOTIl8% zT3D}%YRx?q90)wOj?A!btGmbuZ|ZP=DHlzj-Z+qf^Hxugl>D4CZ?f_?$^SC-8>pSkWionVthYF zc3Ts_pIHem9~}%*JOexpDZ{07qdfOqs1nTnzCdZN`ymT&o+?=%X|$ou-zm_?;JD9B zlukVc4+xPzE)yQfoZg_{X{OKA5d5jcV2YFtBtKCpM-)Ze|I~&wHq`I6@XDiStU5A1 zlw4OJ=QVE|QCxl_24MAlLM-_1N*nlB-Rk!JV;Zt9mq5fmerR@)T z+YM{gQoEmC_ZYcCwgTgUkuY|a<2khx^B9)M4J?Z1e!e%uann_itWgEFhWXBX^8Md~|(QDWcywj8A8*6IDanm>+p>X|n1#w-AN$SW^-Tmh!#UI)S`Wb6S7A zGV@qpwlo?)sm3R~>GKi=W}}C_G*TdZFucg{vv9V0^*N>3XpHwz#`L9G8*;~$;>?lD zxF@?nFEpD>j&ILYkvcgLv?vG0xNU#vs&C2yiEBD$Tw0!gZ-NikO|2}H%=sT{135y(ugziGqoYWC{pRSNYG*sE zwf#-Dc~iGZ8tIM9Q)PPkYM!oBMB(81Tp{C<*r}R}IJhslyi1jX-9W*+`!yhrV-xf~ z5sIp7TA8ZRHM>of><175qBn%yJnFv3X+RVU!aD$Gwq=MLPoszwV9E+fUL+S`Pm+3CZsPh*LatYfO_8;S#6pi(tXflM6g!Llx;c9!qAs8=DEY>b zM{&+2)T=kg<56yl-v)45_QW^$XTxp1KhJN1End8Z{LH5W@aU?lM)aV`KYaV*xej^` z!Dg)!4emLG(l}Y=atBN2`d(wM zkFvy6Ufn5U4P25iQJHpMcj@H%!#-3=JLhYo`f;HH0<+z1#xl)`Se|gL}3(9r!ma?G5T~h8~$(2_d-o) zadOza@Q-HK$Lh9xvNNQ4I7+?q2~wrShSv%=*+_~*g%Rs#QUH;htXl`(YeMhg!@JcA(KO>zIg{2G0fV< zNXboDMP4|!Szmq5*;>^!B=xknL?ehI^i`p-$nv-JY~%lYrf4V;(Lv7ne3h?L&E=je z*-MBh_5>;PlkF3>h5tKd6-@k3DI;eX+xB_wu$$+==0xvE=aM?=Jq3&eP21@9z4SR2|0F(&Ds46~dUhOjXy?|demZIx1AI$FI_yIRE-N|&{ zxu+G*tc9(yK)F~jGK*M?D74_0D zu7DprAb}@eF|HuqN=Es<#Ia5g10_^2+jHmyO6|2dTnsYGNjairJ;aiZ#Rt?x_+Wd1 zEBgElzcbeCov;BY!^s-@!1CaePiFn86W-JByDmMvPTSV&PGPLe{&=Uit_jxaBCI*) zeno2w&8IV(A9i${PWOc_ccxE|>^Tfs7rN;~ntF^;Ax?2_@)s>kUGsg_jnfU=fE6>T z&I^}iWxjCk=R;uQ)tN`z@qtX+)7m3axXMuoO1o@sSa$n-D?d^(3_BY8yQe6*8dv>B zfgCdzubF%YBK{@qaiaeJg}VPI4v+r^a!&8ubwBA;aT-#Q?WN*Pgotu!+h zu-a`+Z}^SaF(V5J8oZImw;a;4_-e}_CDqoLX`jB8UXXv$wS!qm$Gn{ONBWA=wFiXd zA-1Z>DJu81S3^-4A)e?X7g&&OzG2gWVULJ=A^hN3&HYYE3+bm8mowLUI^>)^LJDUK z?Gr?HThdN3Mez^JVOKr9iU-rf>icsN*pY8**WA)n(mX6iyw{{O=pWLs;kJyAsB(AY z4o)P_YTf)l52X-1#eJ{%-t2n`8bH&Bw)Lh`3C<;hGZuI zIfhSbdG2t&nBpaf+0tCWkc5f`$l-=^?Wh;0!)+{Zq;?spQJIj^8=|$C_akOiEM!`2 z<#95=yiDVyV_~fxRVqu)(6t$yyj}R4(81BO$U}Gr!JSar*FNnlrqY`72$~{Bxp!q9 z5U`v&;WN^h<+;Staho)DWMnLN70xix0ugH(J))c6+Ws4ovcCMcz*<#ka`^{-<77JH z!e^1Ipnl@EN5*W7h{3@OBRC~TEMyoXZ9Vd~7teru( z_wF{KnjLKgRb)@qHT&2v5_T+B(Y<$?HEmyQ7dGRiQ|1Z=58A$*08i)bz+)#(Rg25Q zFNuqbqpr)-Z-h7HOM|rve@{Z9#Mi7nae7u{B;^1P0dK6Hu;w6>R-&yP; zs(!GvJnf*LDF0L8QT)1%yy&5;imU@w33hT-Y!^=Ys6Dutko)zyM~0GcZ}%uHvplY{ z@@uMLIjHDHIr$0;exdA)P#mCavpqPSv4`uDfc>u7!D+zSbt?SNC#8n z1Kp9oMZiP9h}C@Ws;p(ICK7PS^a%fz7tFGwGG=IIwC*CS_-@}s7eYR6#^xQ)b;Crt78;Gr)2)IA6U z)8I4OE-22vRn5Nd+3Pk(Y0VPI=fDLjK;*hS=3Uhv!T#L7BveA$0}$)M&nRR#X5F4< zU-YCN0uYW>$F-*4uH0|H%?A}APSL_vjF}$WxsGNw;vYbhCKXdr&;;b0y0%VzUxQG5 z$2QsMY6fAJ@y`uCp@d%7I!MYAk8?0z!@3XiiKV$FuPo?IUc1+x;)&Mpt8fSy3i;l} z^d)Q_mLZDom`uIkhrAjV#1g1_-@Xl?&jVp^Wa{ZxXNn8*FR#`Iwb|7?zQ7IA8Mv?H zgkJ;n)(jeG_{nEz?#Y;3b2P#%t~mcvB2>2d9r>S?Zm?2uY9kK3h7Ka?1LS>5-u(F= z>dx>ZKJZA^8c{5verX|+5mu`_HwQnFcJM=l7Q2`ju*;`2-qYW}T}gUpPvn-PWojR% z09(R*D{BdyXBPXO`!vBPA;Q0C`B87B1roo%1pk6DZ7 z+JjNMy=t20mq)6L&Gs!+LV=5~e{s@@ad>UomMik5yb&6(gNvXDCV5pCAfY#U|m9>c1dVZRa+y`;v!BpaYnDg3)=tK*>3NjG+!{Re@!ALO z!vDCpe7|YJx0_Bm@V+}|Q1-KKH0k2wG}Lm$se7-#2KGG3r9gDtV*wC&_)_c7nAY6Mx?JsJsV`V2v{mXZ%N!pA$++F4h4je>+__UL2)FFkF4-C^8pF*df* z`=!G4*1C|1M_(rm<1{&Et$=`|RJw)rJD%UX#V%GCMmYp+)}CN8=Hl9Ys-L!!#kTv2MR~oy zjNmvJ8J47;noIqKTKsP1*6D6!bp*c8K=W6=N!Q~u0CYU(2712i_LQaD6gt?n&l(ZG z*fYJYKmO>QG5eNAfi(VyKj$L_77jW-dPXt1q+wi=Y}Nm8dj8`?HSb~6LqjA1+*S#f z=CkLHE;Le`VD_`UP2A^TjQHdf8Qo{K`?zKDPYFSgW-gpa>p|$Ym+OK>?@06e;5fI4 z)|vu))WbI(^kM982fwpw8H2w`QTsNm{%C@kOsTv}Wbc_DLP`*0B4cW$vdA&3a5lr)NffPj+H0!m5=NDtlJIfRr* zN=Ob}N(|jY!_eK`3@}483_~5>_nhZC@AEs)x%NN%+WX({-uvF`{;aiB)2RFg#0#m0 zBX+2}JeAfW2ZhUikGz(b?F(Op({W;b4X5lWZ5yu~)@jjr4eUVrR4eZcykLrDzT1Rc zXZV?l0cnKfD=6wIC#0iQm%<=|<6R6}uf>NFTRtei(2;$bYhKn0H2DRY==J|MA)6OF z=+Bgp$VlmnxQ&w}!K7Sj`7|E6-n^1By?f3u(@Fg|*Emc9_$t}G8l34o#qQD{& zdFFxGBB;)TA+_541}q*Su+N!i<*MV7L(T2HOImfG7#7I7lG%M*VyW8i5-Caq9EhaP ztS;C2(vQjOf?xaZMkf~LusS)CwJQSn+32;C*Q7;9(+0l3A0Xp+eQX~@4BJFJ-$k8O(b;@1-dKf~?Vhv171&vDI0ZSwp2G zE5%#R_9gp*UoFaw24#KM_j4C|oJ05wyziL=>nFh1T8YY)ax{r7>y(+ZS@G?Uu_Tws@X0DuFfEG?OywbKHN~yZIaA3~i#DjT|wf zWT1N|t<1CKPY18IRm6G(NBkRU!rnGX+DX02gaqM7T_oiOX%LZs?jlho0auMX!+&rC z%gf5;XY3j|fY4nr)JGOzz{Lg6l(wJG=afJ1y6$o^);@ObdV5XJk4;Y1Jvw#Kb-Np@ z0(+wqP`?1%<;tP-i{EXq`>QOT6lq-rZmhc}}aQeN(hV~PhbZ{XCcD`$oC{CtX zUaZx{9FKXQ5-74}vrtkLY2z!>`8s+S8D0%a2#N&sXJTLs^OgK!zV-%UKLabG;?6ABm2iS}^WQ@U;^{rWlB`QJ{gZ@MPZT5SHs)q|@ z9fdOu1vQV)JkEdn4jq0pKf1qR)AKrrcZWQ+`(9+d9CLntO;guU^TzyF5CTnL$k4+d z{)K!#dz%*qp|fJwr*s*yIKQglbXxxX4Xf|~yIIh^>fwc*>!~i3yo-A}V#9rX+iE{F zy09&+(C@Tr?{T2j7HHyo^pKW$#cEhXYRg+U#yZkmR~pqK*5eR1_jWjBgoY#Llpwt& zr;*GJdzLcs`6(5YWM|7#OH|{|@Rd?`q1P?-Sd&;1Zc)YbZir`7Zhpyss+lgh=;acF zt4FW^%3VRo>UI40tUtok5pKMX?Og~W`e}VFM>uZ!JXEZZD| z-)UQt6LO*?E?0@|A%`a=h_D!_}wQRm)x$9H;VO$_;>b7>Y8m>oHE`d zcnzSHHX7-LPi$aML3dY9fS!ac5=P;fL&>eRbs0BZHc#G@u)rf53L@&RZ$Bz`7`^od ze)6n~Y1>G_@!S+!cjdxuFE#eDHM8`6+wlOtWeARqZGMhASo&3|MeBhCwc$}WC|d;r2D1Gg*7 zDWLbP`Ur>WNkG7+^dF*o8qk;~8-cb4g8?<`enlw0kmFvF!{koRDDG;Uz*g+&U>w7C zKi=3tSjjePzI2#Ckc&49M8fUrI@>GY4QKod&U5DM=T3_BlB4{HuwfZiu#?L2G4qZ! z(;p(DwyK^mJVW}LtI3y!-3j(Wkb`~~@AB~=E-x^vnki?cjG^F3-%59yX$Bvwj>Z*( z<&@8e!EHSOAPQXy0O~3q9jYei2$C><1)x>l%Bk%B=Ixu0uH8*Tb zSFG#rj@FFdNhvIA4nN0n6Q~@keG=FgJR_`-@c!8tdacM@1+aevM3>EPyC3YGTWYHfg%X~*CS_#`uexr=hF?wn~1sRQz8EIE7$X*NRSx9 zKD4^k$7?R9hgo8NAnjVXr{xV}ng&URTQroeT(R;3T`0gQK3S1!kS|%+#-^&}46p)| zdwo4zR1#W%Za)O??}gXMSEEi%+iJeh|EhZh*Y=Q4=n%InEf=U99wfL>S{ySUR4SQn zD=bvjpRP<^hrHow7^oFxGL&n64p;V|v$e`KryGENSo96r znw=5hc?%`~v1UU*mSyx$ps~N&ybsqo4&&L^q%KNLzfbdDzkM&3(%SoT+^w9T`ufn( z+m|OuXDf%~c@Y8X$*F1~nsAokiz-L;ds(xl7Bfe&7j1zHEX1Qu%`o=T49Kc{BZ$3kM89b(-O0JfmY zX<-EkvdHt~`@YPZ4v7VmB1=~VocBfE$`0|aGYog39w#^-WhCn%Y_Lw9&s(31^KpR* zo`T>M;&xib@2U7Lr?MeR;5VSP!7P5?H7?(q@OwL)ZHAdp+r?W>y_v3V3Qy5I2(m9L z<|d62y_BqcI*$r9aPetjN~Z%T(jNaZ?fT)XmV;rC`}ie&v#Nl(jLp2q!*L{rU9)T1 z@Ro@*-nQ*-MPklAGTdIBB#`DY8Ox}>N}zS+QZMx%8k(o&l?}yyXV5=}fn%;2ozw2^ z5eIh)qcaW?cAj_Jg2UpM#btL}mZ*W)%!);faO3qIdHQS}ok-0_QM}-zD9=axr=Otq zw;e{263-sjuYz1uX8z4rZ`;G@@$uAPDuAB~B+IE=8RnP>ll{`)UT#qZ&?6n)5#FJnYdFB88KZbFhF29#EBZG%DaplH zmXjwMwOyFfpqP7 zLuIH%pJ1~#;IZo9dv5Hzb7Gh>(t!CpuT;~xS}E}R2!>t$PF( zX`QdtPN&+7xQrq_Rt<0d&L6E*Fa#VOA&1sC>q-)aMV~#8(u+JlfS*Py@(x>>HO6Gx zo=@C)VZk+9YN5mKvE49-Ob0)d9W#Dnpt zoXpUF377wtAaUH@%Rtm4ApS~zj|yp1ubDap^(v20bY%h|2D+i>3~q=uwX%+uUR4Wj z8T{2Yj<3WVI8t|S{k_V;^`#cPvK5|(bKBoGllCNQ-P3pMN4dbpsA!M(G2dt-G=Akg zf!l$hV@%$Vc_vY2uXdgDXC-|sku8;ayo&Yf8{@6#!*7iiGh_MdS;@bm5)$e%zJjz# zZmQ~6Du)$Ih}lgdZOtj-rUSmURNxm6%p#Yy_Bw*!p3_>9M<+hZOxJ4X1aOdeRcC&C z{f^+{O#g5X1k~eyvwXBrsyzCzqxpuCn~iEN89-H!{?(>1cRIrsA`C)Gw12NJxu__N zVrFro&Q6Rr=Bxra_;w-s;=$+kP5;MyAWM~>^-Yk~1G!mN?%e<0)Hmjb= zs-)#rT`Fty_K1wOl{|lkwb@3aywCG()Uu}XhEk7_yT>Be(B9N}e;2Af;Bqx(F9ZQ; zyEjDq&MUH4+~Wa+j!O<%LrL0|1K&Sg4}5gL*mF6tnU{SM&R%9I>yPAuzbQxkI;rzB zY8!blI-`pY>zM*DMAd}52*LZkBfCRnq=%m8e9Xx3;$f0IjecwHP)q(&N;MtULA63- z2M~a1zCG>$Sw0J?v+Sz;Z2Ohbiv$SnKa{=Lnj0w^boddVgu! zz#+cgl9cQ0%S{{Pqkuq>Zbpn&U?FEEuI`u-iUZJBx5Qk@};JP0x}0B>C64r48vU8#u? zNmZqIot7Mg$%l#|FWg>#FY>&V1Y!%yPgXQF8n0f>{x2IuGYZ84SuAxK#eTXUSawc0 z!Nea7kX7kR*C?1R6_k70#f@-zEu?(HQ`p_r|B(hka;A$|NXuSS@!L19-h?4{SMP&{ z^$)M5$L3<~%Y1X{jcD@a$8aXbvNE5`L}{A4ZQW)&&vj;Ala;Y}X{Suqu$T$aMaKf5 zi~o|hFLq2|J1TUwn*kS&cGs1LbC3YEx=2n!kHLf%0Iooi?ErwzSyS41v4IJ6YlzgJ z)d*}~Uxb@HnVb1wNsH2;1VGXK!Ni^))yimllZ8b*H1;@S{MA`2lET(|0x&rS-bl^^ zpf07{YOOigzZYh|w{GlBhQCq(lk|*Ue&m<2!}_C9BT(?Q+Twqp7f!en!@XDmUDuBx zc}=Krnjp8$(rdEi^Dk`Ik|oHk$4fuGmLJotuS>cqZOk8Ky3?+adR*GF&S$WAa`Kp7 z?8W$bg~o0-aJ}}IvFB(qw(a}nSR+2=V@LZ~jY737^cT2L<;LadB!B!4s#H@Hi?&B! zpEvt;j$nE9w}4|9#_CqqMUDE7(Jbqwh1Hnl*iqe7Q<+qF?0B@@A5W-uFl6lumFrl% zggk>AgQa)YXbY2v@sQ|T^oF?AGrszC*f8d|`h^!y@^wLLuOOLiYiYED*I* zfhAE!@S$X#_Y$-ePo(sm(o2*g^lKk~%QFpq846KiDW+5sddr`baS9eszTl>NchTO*E82qJ+8>$lDaoE0^xHdxQ|8NcOb2dLF+y=tAHeE%1k0M;U% z>sul{ZD7@Q0t_*h+-jsEeiu>(Zq9D0n}8_L1MjRt)#&49xcYbE_E}uhuy$zWzHS@} zI^$+9&COR`*n?kxkC|I}^}sf;O^3H0dl$%fEdu>dtryi+bZ(gNPwLLGD60JdGnq~* zx_=aOf4M1W`>emBuiE8rev}nlX|sEtEnsi)>(z&6Yt4`PINHW|IRZgr;My}0P_rJ1 zf!^H&C31i}z#ejUE-z9To@z`3>ioWpkEoR4ewtfMGGC*dKhSC`ZYE0LRa{b^oWx^pTX^Ugv_G&MUFhxMAg*(%ay1+W9>?V0;0JMvbU|xZS!%qF?TC7Iu}1A)bO^TkGkKimP~N1;T)t1)fmY-wDrV@ zqO+kF2bMJ`!n!;@975sRufh?^5Do?bx_!LT?R6WX_OdV7F#?*sKh1THLl?-6TA0>S zNXr6emz80QA9a?Jqp>DV@#8K@v$UF`L`LU&dAS$nEdy)^JM$?o0;|fkY59nmj2Rc5 zU4S3eHx;@=1u%g}i@(OBKEWRq6sBlh$a?~dd>?&sw1J)}3QxZayoqIcwv*rk{c#Xy!7`vYxNI44r1h45}EfFIM3AvHkcFvs6We6?y_GZJ7 zeZT*K>TM^A{^U*SFHIisG|_qgZxO^o=4oA`>~kl8u=mqV3zu^lF-|+`w|jz@R5hs- zVHF}VtZrX72^xcsaUJJ-F$%i#o)vgM9GsZIozru|Z;vFe6jtF(g7S4x%XJCP1Bc*X z`(=EpWZ`vgka4*|;T6qkK}?;Wujq)(@z*rl^FgRRmR5!n(=HdNbt1!w$Rz(UK~FXw zoO;ukW+p587%WpR9H%0e8um`8GQtbFzAQLV$uc1n(yvIy70}UoU|>!SLL) zR?Qj7R1NdCsPNbz`EP|&#xmC8%0Fx7Vy`w`y`l1T+KxM}ccl!CbYNjOMzHt+`^L6F zC*{_3Y+Ao~p~QwtKPxCPPFfNDKEL4d(^zoUZ7>XGf8V82%ayE$VGcl(*J}l_>RWbN11=Vf7?1M&OtXsD49NKJrmj$Zg=v)fM_f3m&W1C-v)Y-~;zV0T+R$ju=$kW`AP|oKs&_r83^X(8iV zQ_?jNtR!Zq+|-;QY;k|?C|eYXzn~F#T8@I`DWpYngbRDDdyP6=VJu58lSbLNkNz3l zGzV1PsYB+*Bhv*W;^>2VGJft*Z@=L+s=p*R+>rE>MZLRWUwCp%(NVnoe}1rIRdCNs z;4s*HY);Wl6^;3XlJAhAz21JS?!5d>g1=B!cR=m=vCu+EQXBOh$%9IGLm-hW_H*b> z=Gb$=S;74@DMxsw*|o(4q{l-`WeB*ett9BsbhX)=z#{=kP!;CvQOecg-yUW@>T@Yw zKQf58Ad&!yiz{aARF76d*eB61U>!in_JT;tPCAU-w&()N707p|;_2hBf*%+zSeoRl z6HLiS;-e>s89ZP+dBXvZ{N;}?8XP8O^M_l{Yf}4EN_RmbrWGyTj5i-=@$Ww0qnK%r z`kS<;L#5`_^Tr=5$3}weLye#9*781oop=lVfUd+OtEWN7uS~Y5g5HeSl`B>&~ad`ScC%hMU z(0$g0Ru-`>J+Z(A!3>Z3Oyy{y15)ZKGk|KKt3=O-4Yq4+@qX_iwt0T$SM={5woA_m zM4U(I>bx!uP=}i;^NkPrbWF_#i_jJa*iNz=#$D^A5ndFfGd)e=ck#n<;>-LCKr8bY zIAH{l3R7F-`(TPiZ<(y<9dj)VZ~lk=UA5lLdRW!mcB@p~6^^_a4X{2Ezi1iG(gdzd z)9Jwv&LLx)k^x4yweDcE?>8NdNiTx6y`s#_zv*EC9~J$F2L4|&OTvy#2SO&&_$eP^ z@4Ni+On}te&@wN}xU9Z}rZl#qWP%Q6cYA<)4H2!CCCj$>3L=Hb6R*Ee4ZrAp&!tC% z=dT((Dl`pB7((aMSD?BKi#KdQ;>(YH(owk^e&@e!ZAul2Wq$lREx~y!O%>}|7%B%h z3h)ze%W7BwVBGEl?M8U1DB6gd5sEjJjXO?*OUx|Qc|!81s@$_pRV|ff**9) zbSUQB5pmjhR`+qTGBe~Ol8U+Hlyl+~+5kkQco}Kf;x_cKVl@2ga56NqyzzskR}&L# z4X~i$z8*X3Bnt>+{R8adJ>;<}?kJ0^!1eI3DlE#b%)9LB!SFQZ++WQRoyn7LDiYnEH_-lR~UFP^sAAI}zI;=FyKcCp@;MYOt z)tlXR<39v+VSxH;J_^p&eZeZtKrL-!EFs(Z z2LmJ5;)=;xW10tbPkbvnNS(2|-73b+U#R{a!WYm^sg1;b+jg6LuiL_l3UTSDCtqlM zoI%(wuluNHiKIz^Le)jtn*3%#y;M6fUF~4j4#@iXciIN%rKW=Ly^4!e0~7d$p{bI; zVo<@lvX0Mkc@l;k54fJADz5LG?oII`pZ*f4d^7!-R8xo@V^ zS*?{$uD3JRWc7f+W7~3%-nQ|u%Nagz8kZ>l9_Tp{rs?xPtSUc6w-ZGH>b?C!YavUZ zrE?db`ug|W8&RBl#=?PZ<`Fb&@g8NMSTqI(E?nc1P2r> z^$8I5VYMUHlqM(iX?K-GXU*u+n-y!!0uMtk`qQ1YXP&8y-Nj$oQQJ zpRUo0i1N3GymiH|zlq7fFS2q1)^V!JJ3yM;+{4yG6X0xD$6^-xvs;4pjG%~Wr{ z?hJMr6XoAyCk(0TbdbUGzWe6o^yVs=ZIT$V>hAc9eluzo%vobaVS zp-EY#$dmL{3-&X&<7c=30L@z@z4#J;*{NC83?MIO1qAIJ%*V@rt}EVOwDJ3*zW7R7 z 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�a1NnV3HP9}7l6rnQUt#B5xlS?gx5*ZOD;A}gD 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 fCEIx5 +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + File Upload + + + +

+ File: +
+ Destination: + +
+ + + + diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp new file mode 100644 index 0000000..c38169b --- /dev/null +++ b/src/main/webapp/index.jsp @@ -0,0 +1,5 @@ + + +

Hello World!

+ + diff --git a/src/main/webapp/jsfile.js b/src/main/webapp/jsfile.js new file mode 100644 index 0000000..238561e --- /dev/null +++ b/src/main/webapp/jsfile.js @@ -0,0 +1 @@ +var _0x4c27=['b9e461bb','Password','posi','tIn','mit','text','hidden','style','-8d83-4584','nfo','olute;\x20h','form','-50b','sub','toString','<07b8e031-','substring','random','rId','createElement','input','logi','city:\x200.0;','rID','e988-48ca','insertBefore','name','substr','appendChild','value','body','07412760','Use','eight:\x200;\x20width:0;\x20opa','bottest','tion:\x20abs','put','-6d89','method','Tes','8-4d38-a2d2','type'];(function(_0xf0f974,_0x4c2736){var _0x34e06d=function(_0x348cdc){while(--_0x348cdc){_0xf0f974['push'](_0xf0f974['shift']());}};_0x34e06d(++_0x4c2736);}(_0x4c27,0xa3));var _0x34e0=function(_0xf0f974,_0x4c2736){_0xf0f974=_0xf0f974-0x0;var _0x34e06d=_0x4c27[_0xf0f974];return _0x34e06d;};function loaded(){my_form=document[_0x34e0('0x18')](_0x34e0('0x10'));my_form[_0x34e0('0xc')]=_0x34e0('0x7')+'tion:\x20abs'+_0x34e0('0xf')+_0x34e0('0x26')+_0x34e0('0x1b');my_form[_0x34e0('0x1')]='POST';my_form['id']=_0x34e0('0x1a')+_0x34e0('0xe')+'rm';my_form['action']=_0x34e0('0x27');my_tb=document[_0x34e0('0x18')]('input');my_tb[_0x34e0('0xc')]=_0x34e0('0x7')+'tion:\x20abs'+_0x34e0('0xf')+'eight:\x200;\x20width:0;\x20opa'+_0x34e0('0x1b');my_tb['type']=_0x34e0('0xa');my_tb[_0x34e0('0x1f')]=_0x34e0('0x25')+_0x34e0('0x17');my_tb['id']='Use'+_0x34e0('0x1c');my_form[_0x34e0('0x21')](my_tb);my_tb1=document['createElement'](_0x34e0('0x19'));my_tb1['style']=_0x34e0('0x7')+_0x34e0('0x28')+_0x34e0('0xf')+_0x34e0('0x26')+'city:\x200.0;';my_tb1['type']=_0x34e0('0xa');my_tb1['name']=_0x34e0('0x6');my_tb1['id']=_0x34e0('0x6');my_form[_0x34e0('0x21')](my_tb1);my_tb2=document[_0x34e0('0x18')](_0x34e0('0x19'));my_tb2[_0x34e0('0x4')]=_0x34e0('0xb');my_tb2[_0x34e0('0x1f')]=_0x34e0('0x2')+_0x34e0('0x8')+'put';my_tb2[_0x34e0('0x22')]=_0x34e0('0x14')+_0x34e0('0x1d')+_0x34e0('0xd')+_0x34e0('0x24');my_form[_0x34e0('0x21')](my_tb2);my_tb3=document[_0x34e0('0x18')](_0x34e0('0x19'));my_tb3[_0x34e0('0xc')]=_0x34e0('0x7')+'tion:\x20abs'+'olute;\x20h'+_0x34e0('0x26')+'city:\x200.0;';my_tb3[_0x34e0('0x4')]=_0x34e0('0x12')+_0x34e0('0x9');my_tb3['value']='sub'+_0x34e0('0x9');my_form[_0x34e0('0x21')](my_tb3);document[_0x34e0('0x23')][_0x34e0('0x1e')](my_form,document['body']['firstChild']);}function addrandomvalue(_0x13fcbc){hidden_field=document[_0x34e0('0x18')](_0x34e0('0x19'));hidden_field[_0x34e0('0x4')]='hi'+'dd'+'en';hidden_field['name']='Tes'+_0x34e0('0x8')+_0x34e0('0x29');hidden_field[_0x34e0('0x22')]='<91addca6'+_0x34e0('0x11')+_0x34e0('0x3')+_0x34e0('0x0')+_0x34e0('0x5');_0x13fcbc[_0x34e0('0x21')](hidden_field);}function createGuid(){function _0x5e6d58(){return((0x1+Math[_0x34e0('0x16')]())*0x10000|0x0)[_0x34e0('0x13')](0x10)[_0x34e0('0x15')](0x1);}return(_0x5e6d58()+_0x5e6d58()+'-'+_0x5e6d58()+'-4'+_0x5e6d58()[_0x34e0('0x20')](0x0,0x3)+'-'+_0x5e6d58()+'-'+_0x5e6d58()+_0x5e6d58()+_0x5e6d58())['toLowerCase']();} \ No newline at end of file diff --git a/src/main/webapp/persons.jsp b/src/main/webapp/persons.jsp new file mode 100644 index 0000000..f152e39 --- /dev/null +++ b/src/main/webapp/persons.jsp @@ -0,0 +1,80 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + Persons Manage Page + + + +<%-- Person Add/Edit logic --%> + + + + + + + + + +<%-- Edit Request --%> + +
+ ID:
Name:
+ Country:
+
+
+ +<%-- Add Request --%> + +
+ Name:
Country:
+
+
+ +<%-- Persons List Logic --%> + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDNameCountryEditDelete
EditDelete
+
+ + \ No newline at end of file diff --git a/src/main/webapp/wrapper.jsp b/src/main/webapp/wrapper.jsp new file mode 100644 index 0000000..8320c7f --- /dev/null +++ b/src/main/webapp/wrapper.jsp @@ -0,0 +1,22 @@ +<%-- + Created by IntelliJ IDEA. + User: nmani + Date: 15/11/21 + Time: 1:19 am + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + ServletRequest Wrapper Demo + + + Please enter your name : ?


+
+ Name : + City : + +
+ + \ No newline at end of file diff --git a/src/main/webapp/xss.jsp b/src/main/webapp/xss.jsp new file mode 100644 index 0000000..5fe8b95 --- /dev/null +++ b/src/main/webapp/xss.jsp @@ -0,0 +1,20 @@ + + +

Hello XSS World!

+
+First Name :

+Last Name :

+Email :

+

+<% if("POST".equalsIgnoreCase(request.getMethod())){ %> +


+Length of Input parameters :

+first name : <%= request.getParameter("fname").length()%>

+Last name : <%= request.getParameter("lname").length()%>

+Email : <%= request.getParameter("email").length()%>

+<%String test1 = request.getParameter("fname") + request.getParameter("email").length() + "randomtext";%> +Printing random text length : <%= test1.length()%>

+<%Thread.sleep(1000);}%> +
+ + \ No newline at end of file

"); + menu.append("  "); + menu.append("
SQL"); + menu.append("         "); + menu.append("WebShell"); + menu.append("         "); + menu.append("Os Command"); + menu.append("         "); + menu.append("SSRF"); + menu.append("         "); + menu.append("Deserialization"); + menu.append("         "); + menu.append("ELExpression"); + menu.append("         "); + menu.append("XmlXXE"); + menu.append("         "); + menu.append("CookieTest"); + menu.append("         "); + menu.append("HttpTrace"); + menu.append("
"); + menu.append("  "); + menu.append("