From e591e92d7ca5c4e6d864b52248e72e09fd6e63dc Mon Sep 17 00:00:00 2001
From: a64-hassan <atay2.hassan@live.uwe.ac.uk>
Date: Tue, 10 Jan 2023 13:03:05 +0000
Subject: [PATCH] submisson

---
 src/examples/Makefile    |   5 +-
 src/examples/my.c        |   5 +-
 src/examples/mycreate    | Bin 0 -> 36904 bytes
 src/examples/mycreate.c  |  10 ++
 src/examples/myremove    | Bin 0 -> 36896 bytes
 src/examples/myremove.c  |  10 ++
 src/examples/mysysexit.c |  10 ++
 src/examples/mywait      | Bin 0 -> 36884 bytes
 src/examples/mywait.c    |   9 ++
 src/lib/user/stack.c     |   0
 src/lib/user/stack.h     |   0
 src/threads/thread.h     |   2 +-
 src/userprog/process.c   |  28 +++-
 src/userprog/syscall.c   | 315 ++++++++++++++++++++++++++++++++++++++-
 src/userprog/syscall.h   |   1 +
 15 files changed, 384 insertions(+), 11 deletions(-)
 create mode 100755 src/examples/mycreate
 create mode 100644 src/examples/mycreate.c
 create mode 100755 src/examples/myremove
 create mode 100644 src/examples/myremove.c
 create mode 100644 src/examples/mysysexit.c
 create mode 100755 src/examples/mywait
 create mode 100644 src/examples/mywait.c
 create mode 100644 src/lib/user/stack.c
 create mode 100644 src/lib/user/stack.h

diff --git a/src/examples/Makefile b/src/examples/Makefile
index 41a663d..c570229 100644
--- a/src/examples/Makefile
+++ b/src/examples/Makefile
@@ -4,7 +4,7 @@ SRCDIR = ..
 # To add a new test, put its name on the PROGS list
 # and then add a name_SRC line that lists its source files.
 PROGS = cat cmp cp echo halt hex-dump ls mcat mcp mkdir pwd rm shell \
-	bubsort insult lineup matmult recursor my
+	bubsort insult lineup matmult recursor my mycreate mywait myremove
 
 # Should work from project 2 onward.
 cat_SRC = cat.c
@@ -19,6 +19,9 @@ ls_SRC = ls.c
 recursor_SRC = recursor.c
 rm_SRC = rm.c
 my_SRC = my.c
+mycreate_SRC = mycreate.c
+mywait_SRC = mywait.c
+myremove_SRC = myremove.c
 
 # Should work in project 3; also in project 4 if VM is included.
 bubsort_SRC = bubsort.c
diff --git a/src/examples/my.c b/src/examples/my.c
index 30c2b27..19e65f2 100644
--- a/src/examples/my.c
+++ b/src/examples/my.c
@@ -4,7 +4,8 @@
 int
 main (void)
 {
-    printf("Hello, World\n");
-    
+    halt();
+    //dfgvdf
     return EXIT_SUCCESS;
 }
+
diff --git a/src/examples/mycreate b/src/examples/mycreate
new file mode 100755
index 0000000000000000000000000000000000000000..bfcba58faf5d343ffabe9872e8d3efe2631d2fa9
GIT binary patch
literal 36904
zcmb<-^>JflWMqH=CI)5(5bsC>3x^2<14BeFM8<?cfq|JpgF%RaA1n_RZD8SGXkg(8
zP-9>KVOEf!00USa#1GiU!U4h(3=9mC3=9lxQ2D^8B`F{#ItIxLFfcIm`lzrpKl$*#
z@K0#x)4=98JQ)lu3=A3Vi&;2cv@kF*G#?Sz0n*#;`{!hD;-ACKZ$$o=sK|iuiv$1v
z|L<f`d7%JO_l75n;jBUP5tfXMr7Rp7OJ=ihWVvKa0-58%$iUG2hUb5Yia-`4NDT)>
z%^Z*#Z-^QdMh1reB`PdgOkf3v!E9y-yE{aMquWJ=B`6?^1th}LdVqiG0f-V-kN^jg
z02^2UBFPS6cl)UDbi1f<bcd+01O^0Uae#yc4x<ZmLWL2wae+j5AZBrc*c=cx4}^{6
zE?$rbR3#sX4OPhxW+ORI07(EzzaU5$*<V5+0c3v(g9Q#l!cpRXi3%8J^ekoJc(It3
zfuYw$#i02JN5KCQ6^$3Xj0_CNSyZ?f7#Lopg9tr{04TM+DE#;Te{k~~j?Tl~4i1(#
z%7mKVuxQ>02>xH}@#4k5|Nonh2y{j}G#}xJJ`7UU9it-B?d;GSz}Ok=&>f;8&>_(4
z>|p8aP{iJO<HhFx|Nl2TyD-9(%XG)6sC2}r2xl?&x~PZ;WHG*&^6&ru&Ku1~G@=iO
zH^1TO4p9*SC#jwPLFwoEr*+>iHos&H49a4Bk@@fcf0(=1|Ns9VtgiWpL_EkP5xp@g
zES)hbF2`L|JiuwvMJ1urMa3sLV^b3g$Nv(Q0uX+2iiLrp^TrFw|NsAYyQoAoAIXS5
z-26rW7GznBFF-~&ACUnCX0MBiMDrUKP_RJ~^<<ETj>sGi?R**x3hYvrj1{0nY|p~L
z&>aiP4~@V7^D{7%sW)3Qlqfa7;rL(7lCc@2L<Xcpy7`CzR0V6ZHACq=P@bBygoWe9
ze@NIi*k){F;b15gKgJ4TFoNW_fMW4JM7}%r&&k8V-7(-a&(j^i((A?8>A_+hz){QD
zEdb(hbVx-X4h;_jxv#rMMWOXliCE{^&ddD!J~Y4K2oL*zwfTrZ^J~V^kIhGTqT}LY
zp^9rdk9A(}Zc&-Qz`$_aMFo^?8Cp)3ICM`@nZdxo&@J@s5L1bO4Ws0N<_G_p59oHf
zs3^Qv`gVu~Ciod9$O}^R{X+8tu$t}`h<=7n7Zr`>2OOO)DmtB?IDeIhv>qrC=x$M&
z0y5nJB(CzB<G7283MlqEe{g=_Z&?eHf~jEXbWxFjsRx<HF|#v7g=aTNd2f!2LAQ&F
z#=#e?%?}tmTvX&=Yd6%W$TO5EwBD|h>FxpB(s^U%_e!4DOQqbsu1uXSDk8^R8FjjI
zR784R8A06tB`TnDh$lSk#SKw#>DKL|BEi3ng|WjGRQ|vu=R+hx0oHt&vGW4whtf%)
zjPRPJH%7$(=HUR2)=N7;d5YiTLT`<VLFWz4AC`ye<a=FI@+}V+i+BF)Jl1@e@tE^}
zkkkpwLv<{cpNrl$*Qn?)lqf(w+HAp5Dgw&AmWNB&8mj*rl&~FRHt3CJ)VvS1hq;2K
z^Ivm~iVCCT0Z^bbX&!5?QBh#vpL&3Q+X2mE;9SD*@!^|`iiTjR0w~pPQCR~D*d8#|
z`Dq6zu3wz|3(nkNy(JQ$l)FV`1p~O;)%iaKtQ3@RYE)DhN^}v@Sq5-Pj{guH{QF!~
z3<BW7pg0Dlpl=KUC0MOD0F^;r5bGgcEz{{d-dUo;(Y-}w4#=fzR2G10k=KmPZ#Y8v
z_b~_jzt((2!18zLn{JRQNDBMLz=+*^u=ig5fq3so4N{ty={(wbtrJuM)To$r2eMdx
zs>}Jt$XJ@F`KkF0Pk6VFiUTBY)<AT(eyfuOr#Dbe;@{^Y%MkECM8%=`FeAu0_v&AC
zyQqLNrRB9+4Ult`(alMLnDd&e^;`Y6*AH92)o*A%A_I0&^BbOC7Zs7_Hyq&N=0*B%
zkb_~x5UBV8m+25m7Eo}2${}z*_vtQCN$Ac|N#Wnd)^dQq#gmPJ!A7-25)?}%Dkc2;
z4uG6l0V=vbzZ7C)VCaowY^Y;YEfs~T$Wr|uq5_hC`Gpmn`$18{upgAO_JN4k?476g
zgOYNuHzWTx$N#+n4;p?6lxy&ByYydW>YCXs9L?t#U*B#%$MpJI^EsB+7n{#<ygt)>
zPT=+N=5q?K4|V=(xl|(DS)yX_{TRrY687e2??K$|5ETPZxx(K3=yzv`iotOg6;NA;
z!A7e@h=1RO=2r$gLH0NQ;w%$*?a=KC%JwF`xh$QhU(5H3bn@>z(CZU$q4_W)|2Afb
zdXUnmojxii-7YF7tp_T(zu)L|Q88)uQ88dV?xJD=s#Y4T_4r$*Ss57kw>dM~XqECe
zA7+A>ZPA;{^4hBTFjy(bX1Jl{mSC6Qx74EBN5!J`WTg<yrk7h;7#P4Bn^RN_-XC{S
zv0(<atBOGm?hTmH@JoolosALX5>QBfn9afgc2h>FYHu+UNI59D__sMT^#<&2_+`xB
zZovXmY%_-iR9xCHfeeJoO2K7$=0apaDFtLCO#csNnEpF+p_b*qEd#atkS#k6SG;B(
z#5hpP5@ys|xNOaQh%7q;$Z%&yn2K(=3ZDfK6&z?PGT|y@7P4@_^aa92-z;R|=)Bil
zqhiCs-+lyC7PzR`{8wq+vxtR*f1fWy=ZTq}J}Mlbil8@_<s~R{^6$qGUINmHA=(EL
zb!F%d1=TE2BRF1HccUwOozab<Dil+dQ?DyacP+zSP_pT)QQ_#!QQ_%4+6YQ;^<}Ef
zE-D-h%^@m0|6fZ&8n_P@v2bMEVPIg$*avDKIDGs6zuQNJqdP{0r}NgqU-F&T4bOMh
zs0egkH?C3P>8w!^>Gn|(0M#>^7bP!up6I*<D$7e$D*l(KRP@%UxP)iOEN0>8_EFI|
z_)<P_Cn)8-Q1}5VMHD(ezm#HPVCXJ|Wa`cm6^YIo6&X;F%>~CuC_`t6io|gj6&bMe
zKZ9hNK{DI1$h^+!_GRdfW$E-$k?4$3k?H*0o6GS!yxW%n6#fjz!Yr>Hu&LGVu4U+~
zL9_6+C{`0}@=L63^6S}bB1(i`OW2f_u-R0U7`*1&0rKr@ogHr$v2eUrMG8|9Mp&4>
z`SSn&4xYs<9Ish-{8_}pfgWH1S&+=x?V@7Q9in3M;^Q}PaJ_uXz`)RXueX+^+m)fi
zMMWQ4PW~@ZDe3i5ao7b4+g=wH`xje&f;0$pe(wDH5>(SdG{rKs-rli&F$)L3%Z=tY
z9D%_vZgPU!6QE{j3CxhrL!CEXlpyrKu7+rK1vS46KpABhC@zrQ?4#lmm;v$#)ZH%}
zA?^iP|JtVW9=N23wsbSjf>PB!nE9_|(WD=Pr02t=dqE|VGh@pE{?<c3|Nno@2`b56
z`he>oA8`E?-26tO+eJmCJ48jJ+ebyGJ4QvJGe(8wI4EH=Ffg<pC{byC0cuBq>M@pp
z4DA*cj=-Q7kw3vLZINT301$XBbKFIR2js6_7Zrpe6No!N{jlaE5}+12$PgKDWe4g_
zg7AwfSmPU9>B;bKb5XJBa8coJu2HdI;BPt2$iUEDqGHhejDH8H^Q!rw(?x~D+C{~J
zzb%iEfuZv|bB&5c^BWdW&CvYd12}Yp0y2Jq0-_F_PXt=Om8gLd14t)0ErZ(MOrZ98
zEJy*go-cp-nhU0?^RwmsGL!Bc6%);`&A-{f&4r!1pq%4!5Y%<x-v(+WWUztEkVKgA
zyXaCwjS4>lf6F>hRsNg5Tmo*@r|<v&Lz)!LzXeKPG{51=s(G>R6F8x@e&cVs%)kK2
zXdoGd7fV1gP?wdyvHVwT*7+IYo_%^CcYqwgzwJWvD+T^-2bzDy@w*>ue!~;+A_t-G
zchSw)Or4*bfAg1%LJakXOE&-JFMACVta)Jt5<DUR;&8pt{q+BTw~LAdql=0Iql=15
z^AQ0}P*}HC{QLj^wIhyj76bY1h`@eO1a*D}`R3ri|Nmc30QCYtxBlmEb^8DR|H}$U
zOoP*1co@j25*2~&8WoYw56vGKIe(NWHUDQQ=iLb!(`fwnpP7N7%ni(GwhaMypG01p
zfr67C6zYq?c|_o~Y3GN|U;Jx+a2<Tb1#Y?@WNH4zP|j`(*3Z^l$-+>2=f7ciScVu#
zTMk59^AVP~_`_krAV;{U2y~aIh;+xONVMMOpK_@6K&ev8rBXSNRcT9DI5O%%M8jeh
zjx3&xX&^(gKm7mS`mL0u<x&YZIK8#rE>(D~1JbYzq!yup7ox%H!~g&M+jzt}cm$dc
zF<Ra#{nUJfB|7eKcvx^Z$a+wByGBK#^*>JQD?rxELQH$}{{R2h+XzP@>;$WlgQz<8
z{{Mf=8^zMC|4S^uj^y9QBMf!GuhLJ9KVB>LnppIP|8M<YBHH;u^9M}+6=U<S|D|tV
zGj)E5j*ADoF$Nk$E-DhO2S9E_vVA|?#|0oaT0w000J#woL=wFf|631~gz;|^=HJF=
zajMi5RHQPzwgQFMHB{Z!5ZzqwLE#m`%-DQ@k$)Qxo5iUT9*c{hJ}Oi53&z(1mOn}#
zKn!68Qy_POh8aLLX^4tQ>q$uLy@eZ|0dkrj#PGH6{{L^iRKm-@jj`oGiK!J+iNb4r
zkXyc^D))yduY33ZfAc}c=0l7S4J=knCGYvS30WK}=ir}ofPdS8*Q`50&4K14JfI;9
z(6E&NXut#1%j~?|dZ3i0^<*i3>&X&3D}fUG-T+3%gRj*<_A!D6&A@3T0pz@7h<$t@
z`wlT$Mg1=k>bziis`L}si?1O*g^jtuZD~DF!rgh1f18BGtx|>84j^-7;O0hv%q@kO
zyY21&|1Gym*<K5PTJ7L~6|lHi`sp<fhWVgm3C)_|zDJ1~wAADPRYl=1YQPy;p!Gnh
z5V(=fBG+=D^x<n(u&T}*pxA(9Eoi#o-zMC03Dk?@;NN#CDC~s|T)!|_zi`W?(nqg3
zA?{!TjT?b7M=)rtjDK5<3J?D_u9lM}VqkfT)BG-nz>&e#a<cRzG+3g+$rPWPPyB<F
zv<FIXx*0aS5~HHfU817W`mIzE6r9@d;PhF{!jbVF)V2c`11WF*|8K5Q(O`h6vqM$)
z0j|#G4LH9#f`&4>C0cKnnuClrK~??@uAKMH|NosoS`L)*f;4nWfW7@X0vuA-pfS83
zpjZfd@eR_qZaq+XvGacOaYp`apaxCn3yACum~6?D&KE5QN(7FvGc+G(1RH75dE+%G
z0cmtvfC3vbUId9TSZP!O%IT#nt=~$ydwC2x54C<PRer4vayOz#bO8m2G^kky4vx^*
z|Nl21V(f_eZ+Wrw8>D~(Wy%m0f!0eUoShdMtQbmkUxULGkwk4khG@bK5qSOof9Hkf
z1B?w845dFbFMu)?Bwl1dwcl<~Mgs>(=gsaK6$8*fVsGI8&YPX@KdtLL@%=(?#ed6R
zMaG)HKz#>Ddc4OBYCgPS2@ef>p$~5Q2(%t35pO=sXdR=%Q+6M093u67fOXwLL&u<|
zJIL7*ttU$$BbXqk*)TDba9bWM|NQwdSo3G-U>i?&iHbsZ4x}{&OFsVacs2of)eG)b
z)mQ)jx4wm>ooG}=-f%?>ub?BMkdf2(U=K%v$}gGbSB#dIJFoM*{ceVMPWR{k|HoMD
zK;xB&XoUnGXarUTJO~7_58)^skfSo-_Dy&RDjXq-5RL*X%7iP*e)<3ZK157>>;w<!
z_GbR?{0JJGgvLY!By*JLSjVVn6oVRI8odSoHSbw|<#+qqd7rsPMWOi(OIT3&i;^E8
zhns^O-s>XEfI5OH)5)UJ8KS}hY6N!IsF<|=FLegZ4D13mH@|=DJl=Vs^AI>1x_MN<
zG0u2G@YeTloj*IzgNHf53K@?HUI&dmb=IixykrHn8-I24sC37uuvp&bZ-2tTz)-|t
zd5*vR7O0DG0o>bb{Pq7o14B8-!3P3+K@A(*|Ns9pl(RJ-<v93&1H|D6aaayMU;%OL
zK^&%o514Ej7#JFwuQGJAfEv{-{A(^SUVH^=d4f_TsIk)dl7H!^%MZRCR48HUJk)u)
zI|MRS@%{5oc?Jds&6k&7bRGhaE_Ax62z2_Wh%_Ji-+b|Z=jqN66^>3&NAfTK`d6Jd
z_}3p}Jlgr;`y<9zP`_v%l)P+tzg(k;#qwOa61Zs*q9Ovb{IvkARS#>egIeYw>tRVA
z+yv)91h_<Zjfza`rAqeiH<~Xoe81KCvGaH9|4R1nH=8dre7_wW_#y&atb)3yEZ;94
zd@0}g``~MNi<_k|9iaLuF8*-y8<zhiDxhg35tyr9^n+^w9&pJGsVKnKg@<+C=nhel
zd65s6=ip!eq4S33hnb*S1)DL~zy%#{W43|iVa9+H1IQ=_28Ps%%o0!{%1F!s(<eGu
zIPO64Stt$TUq|B~hVu78X^^^09V{FiT`U|d-7FlzP`VUKgT%1m132U#b+K@`^s#Ux
z_aSHyn_OJe12Kyj{gZoHIAppZ_JZ61!XSMhF%XT6L2@9oS)pzP$(`th*aZ>?@j)2G
z2B`(HVKj(ME}lk1|A5TK<{ywa%)KBs%pWisCPxmvmWKWTnT^dqAaR&mL2Q^mU^GmQ
z9Qq~={R1)^n}0y!Ft>u(Fn_>km>fCuAsYGzWHvVcfW%>L1+iiNfYC5Ha_Dz7^bg2v
zZ2kd>!`upD!~6lGVRGcqEYLEC7`>#HZy>X=`3EEpvk$~}>SN(Z>|^18(I7UtIHd<-
z7BTuK_OftDbwlh0*$u)VeIPLqjf_EZAhVgFZUxC5>xI|_5(n`?7{q?v&B9^S&BEc?
z&BBq;&B9UE&BD>y&B8IKn}uV2Hw(w1ZWfOC__Bhc%)F8`1_lODBgtS13r7S4186}B
znD4lRg`)z>2MvA(Enxvs450ZE&{BnHBz|#8QBHDV2?Lles07ogc?=A>skz0eB@7^b
zNq%;G5va~CE-6aRC<4oYX%IiR0K$jTx%p+OAic>2l?=I+X_+~xdL<Pl40?L{IhjfN
zrNya5`o)#S$%#2RddUpVi8(n6#U+W!*;Wdw1q>Q_r8zm8Ftx=cDVh0t$qY6&dHD*e
zs;bEfnRyD?sYQ9IId*nPqRIJrWvNBQnfZBkb_}Wp7FiVv3JeMg3Jj_SMj06us>uw7
z3Q3hEsSK()Ii(7!#S9=$F+;W!gRc{VyAwl*6N7=Fk+F%XnYo3fqm#3Xs~eI)Vp4KS
zY8qSs&akj#NGUE+P_$L>3-$3)sHssX&a6sRu(ee%U`Q-3PAw|Q%+FIuP%TzhNK4Gj
zNlnp1_^T*0FI_L0p|~g+hkoqBN!W!GVZsb>1q?|!`N`QZaa6|@mw>E?$uXp)=49q(
zmZTOH!-a|y%TnVDN{ZkDNFGIYG^j0?np|3vnxc@Hr%;+#l$w~Fk(iW|3X0N_)ZElO
zPy;WtIJHQjpeR2%wYXTp(aAq3L?N+6LABUQH3bx*s>K?bR-jqskc?D?grvme?2@9y
z<WzN#mh_^;T!rMsJcZoE>{JC%ngN-doL#I?TAZ3znxn@Rl$w~LpyUM8RjdRuvLqu_
zLCGaGsWd%3GcR2sBtJi=SV<u{Be9?)wTLS}O#!4JATzHdzgQt9Ke-g-&_r-_rR5hX
z<mMNpDrDxR<rn3G1wrG!a!Xh^RF<%Cs4rpR&|1R6p$pAF?#|9u3L2qFrFkW#3Z{A{
zdIq{?rC^?6ouQeYfr*}>ktRe!!N|bS%)rdRk^wX;1e#}rWLE};DGe+f;5lMY4r5?|
z%1?%7Uj_!yqBYQBGpICFUY8N3|4su72dFEFD!+>zChyY3!r=~+gqzRG36t+`V&PB%
zO~OFcK-~9}8z#TDnT4YcDhHw<^51!2@}RkiB3_UT1ViLsi^JsSPGsSj51P${NJHK4
zr~s3<naRQt3keXgihj7ySr|<j7#Mhj85kJ0FrWq$6C>Mt1_lOZ7S_zX5(Xv~b`1sw
z1|~)}&?*ZiCe}Y79tUWGm4S(oV;P9Y#QqXQaj?sQ%;#fZU|?j`K{AzbPCEkw1M8Ls
z77h@Dfo(nm0|N*%Ni$3XX<<kLkq{?|GeVpMi<?l8(Ga&VgQlPv*<mt_a|%G(gcunZ
z7}-@p$|f?fXoGnm38slGtXCRXI6(7*te}_#O{6lgv6O*U7P8bZFfgz~e98fGF$gm<
zbMP`UFn}<V1VbkqC>Za8tbn-eFw|urvp}f=G+oOygNcEG37p7a0X7XJ!UIZnEG)-C
z0m%j;S&KmN!1@j3Jk}~k1_mb9d5jDU%&a>=sf|^eiGhKY6*NiC#(I*8fq|WMDkB2}
z2kUZ11_n;nKqdwTE>>|S1_o}{Y9<B-9#%JyJ6Z2DGBEJ5u3=(e;Ag$Y#K0iHn#jn&
zAjlfe#K0iL>dM5xAk4r9i9mL1kj;)Dw}XlV#yO%O^P3qN7%UhW7+9H?%x2->yx+jW
z0ZLBXj0_B1^OzVI7@a}>VBr4Kz{1f8ns(<gW@KPc1z8RvSU{#{GBGf)K|+#G2jn1-
z$?Tv&Wb^>(11*$doHGfudSDO8NDq*aOcNP6K$e4qS(!nLC^`Q(uyAlQFfeq$E%ySc
zWZ+h4gj&uAGFd<fWQac~zCjW^pwu?!8p!mIARqdJm`oEH1VNG@<AlKe2m~3$7{I_F
z%mVU(058apP>`TbBMS$_5NRd`29biy6b8mnkm(>pK#~YU!a?dmh6sQXFJp8T69a=q
zBMXN(*bN{aKiCb?P&e@Bf?O00ihibvEP^1Vf(#4{qF@)rf(!%aN(MGYCI?0a27y-~
z<%uA3{2N&~KuQ_sYyw3t*wjR*se&L$kfR{xB!kQW<zog00RxZ$=^%jwxUW9K4M>L>
z0Fne50128*kb1DMdO+H9LEId;c70|B29dNB21c+rC`>?d2;KQ0<zU_aLAr}U+zNP@
zbi#Cl#hE5D@Gk`gd@)FzX(9{%VHO4k#$reSaR`F+i7_xRK-^UdG74m}7>mG7klB?W
zfquBzPhn<*#o=aGg2drwSHjE&=|h-Z4KfO3wlK?UW(Edvi71e>>X$XLa0r1T(})G?
z?Rt<(kl`#~6%gZC1Ys&6xug-Kh=D=CALPtdkeVIv04#u+)Cy7r3P6w?A^_V#!XT$e
z90u9YeFUy^1x#l*NC`+MOb%jeFG!eyK|ledZ=yK^1H%Ql`@g{SP6R0exjzKtwu#Vy
z7X+yUB``=(PX;LhyI~_p)$~VjH|T<vAE|;Ym=3Z4<OrA~#1S(=S{WDwOhFpwg3|6g
zc-qZlWnd6V$t+@EoC`~OAW4wlA!&C$NV6I^69|}rELjXP;6L1e^>70g!wdjPA`Dmx
zGQbjIzypv0D?tVbG{N%ZUyuQy)VmU-5EKj(!Ky&wpezYe2?_>?b5?^C`G8FmW&sst
z0^2~U*MrPdZ-V7WXEtckSPxPT3K5VT!c7}N!tr2J1R_D9vK1s?(F7}IK;<YnM}fsb
z`ayCa{gBAm4pI(^49Qj|1_lsj5nyl!)e;QGObiUrnwyCkQcc2|AfO6~=@+OLVF&4F
zX8FLxz+eTgyuj5tE2Ii#fz$>pkm{TTQk}Cvs&f`db<P5*&RHPUIUC3Uj9f5l80WAs
zGBB`%3nVTOlW8IYJ2xu>10$CsxCUln7h?wTAaWe+FF+y44dL-{a5{n{c|pZ1sMo_4
z+r+}b4=V5TnpilbK#Zy;77kF=!d2hI!eIgu0X3rRL5(PG7A{5x1|E>7c#p6$Fn}<V
zFmDwz0|N*%iSk)8GcbS(EH(xZi&vhRfdPb>g?K^L5eTzLFn|Jvh2aY#C}W{P39<;(
zS_9S5;Gkroa!__KGcfot8iE>J>`A3*42;GgCIfo`1Ea}l1_lNPj(MQqF$IOB3x_|5
zZ3bd{FmQrAeT0F5feS>~GqA9*gQ{I_7LYhk6G&ww$ocBv!s|Z+0|RejX$1pgB#1eQ
zfq{W<c@qoAT~HH*o23%e@|z0M;|E%Et`F7&DjxWg85sRQCNfQA5GV#K011OK3fQy&
zkZGVP2%#HIEF2dZ7#M^Z1DJ{#7#KuYL_s0Ws0niJ!zLCEMX;fu+8tylSeR)dgIKZ=
z1EV&?hJ3!?Feiy_1lc7I(#zD$!U2+JoC8`X!&}V2C=X(QT48)@%@8l}88x$Tgh5io
zMMee&agYX4H;@?)ATw;5Svc&$_B(;vMBs1)OMtu;237_#lW8K005~~1fRZEAL=G{q
zC!IjS!#r_GJzsV+3kN9q3Kcb@`c@Q_+!#4Qc2zgCaDb{6#yO23yTGP%LQH3Xn9d0?
zorSNrnS}#XiZO_~gWMnh(mt`7g#*;6XPg6y8v(FW!4hz%3P22Fk&pztRS0C-M+OE4
zDR3h~7-R@z0N+ZO+0vkz5`>u)q$`*i7(kd=p5Yg$AYe#jffpZ_p=lo01DOhHv_cwj
zuy!n@q#&Z<&vJm7fq_ZN7?l4Zg$BzukcdhwsMQb3fQ-B_dl=_j0X4r*f<k~F#AIa#
zZ6IKO1QHOq&A`AQ2x^xeY-Ztj%)r3F@dU<TZeihg2NF?+G8mX3ttL*EhoF4H!VM}8
zK$uyW2b7+cGlQD%AQr<1E)bKS74G|P7D(X<>tC^eoC|R})b}i)qLhi<4&(!HQR)Hm
z9VCEQ1Xvgtn7N`rBG>|ng##4M0#zV+XvwM%5)tVEi9iZjCTJlG3OW`kkWnn`AT_d}
z_yq?ai^?oer2Pbms^^24KR`_FrJ(RjVr5|9VdMnuoC1{|+#m)6$8JzL%meCqv2bh$
zv3Wsk4hBvZkn6cvK-MrOnKLplaGwTAbGNZDFfegn0GZ1j!^*(G!L7x@z#zc=gPDOr
zfdQ(av;?Ff8`M(cp3lm_z{KO}7s9~IZ2}5UZdX<Y23BrIRt5$(?nYJy26pZS76t|m
z2DYWF3=9H{ai9hT$2E}VEKu)_fg>2i&ILJ)h2tW~6@?%+2S+ZbqNoQsj)#G57RVWl
zO>aPHVG&3}3rG<IM<s~e3KC{vuV7$o1Br5Qh=WAiL2ModPL@xg-U-OVd>@z@7+Bds
z;>?1eR&X+u$H3<Wa<vdx2GsN7Pi9~R^B4r2KxXNI5{44E2m#gog2@>SjCvp=nI<v_
zfeS`GkT}ys7GZFiVUPpLJ`-6OL|8akK;@#SImj4wCf^no4$vw)#yQ8C7#PGr=BP7)
z3<7Nx6HCr3VPI5e@@HUR2mqC1GeE(i&UBrLfnho$1A_$EY;`7xRSXQ0APFguZYhuu
z11Af}P|-UetFAFtwXkr2DmBJAATNkpgUq_dc#MI80n~354}$PPa@<S|4AP)xDdROp
z5T9uxgG3So<8?+)P;!{aB9Y9%c!Mzn%;As*JL)DQ$Zn>IJP<eCWCS^YX`+A(xEj07
z7!S%36BpFWCKoU;-ev?PM^Numrh<X-4kI|2Cr+uCV*<J1E|`CxiGe{59R2see9-u*
zoD#?<_rZK&W(Ed1Es**LV7@b`DsO3H;Q)1`Ux1P)V*nF}f&ya@QyGH-V<7WH9ySKW
z#ceDcAeQ0*7~?vWA<x_n(W}D3z@PxqYk;a(DH*B&EQw|?qO9>}VPN0|rD;x<C=e5r
zH<Uq9lF!1xpaLT7K|>~>%2~7v<a|S>yml52P!-HLN0OC+L3|=a6qJT5L0u1UrZr>&
z1=4P2P#R%iG-3j&e9p|k0116#aFPH;6F5Z}LsJBcY$gMvDOjg03j>4vLZ}ZIS)pE3
z00#^M8-vnIs1(d|fy@&b*ccc%SwQYr1(lkN{va1Hbg*!M2E-WW<gzj_2!X3Je~?p|
zCNik0gKMBbP&x0x!oZ*bu7QF;+86^gMLJkG4ub~3wGM$i=*T3|!NMU6&O)HFMjC9C
zBNNmth`*em{$hcoDkrGFIMn38Hn}i?tjb_vV9+$|VBz2ejX!7?fJ_fz1ewFg&c?u?
z12z~UpqtFV7{Uk&I~}kAp<oqyk)UK%!pOkM0y0k@R3$RbHSJ*G$Yx_;V4U-Uoq@ps
zY|31asU0i~3<hBBb3w{4voJ6Sf%CvTNEYA_1V_R=NDkmJ1dU?+U<VDMfL6*If!h7T
z$qbB(Kq1RCF~At)`z~0pZrR1gz+m!;m4V?Ai1C7zfgy{Xfx+YsD+9wVb_NC`P~e;X
zV`X4?)&ZJVFau3d+c7dQyk}!zPzUGfy`Uu_hd3A*G+BCBIL>h~FepX!KpI90jDd`X
z3=C$Vxeibp+K?Tl=@qCPu;*l8Fi&D&d=1Ly2RRuSG$VSUCUo{9OfX<zut;EFU`SzS
zV2}ZoSaOV@1kN<kUujn_3r86=15NZ-U<_h3RA3Bbni#;qU;&yGna$3?AY079s0NOo
zk02`^^|El>1Ud2-lHOuamW5~o?c+NH(pJF0XbLV?SU{>R`%oODnA8Ev*&J+&O;Cnr
zR38fmD3NMbLKzGU%Alej6c^x($jQJ9idt21P>PWPCDR2UmEa_q&%wYT1Rjcz0+m&u
zV*MYe1tJA1i<u^}KvKRGC_OMu<PZWU2S@{FA`hg<mjxB`OcPTy@AN^ErY2)Qgu$RH
z0kY8!WFv1sEEC*>+h~VkqaBKkc2FCkdCdWo0>!ytdCd`IBx8W4T0aZNU(h(6mLkZe
zKqjqz7LIqIuI8L~oD2*S`Dw)rjDbuWK+TPb4AP*&fiaK?B*iq5MI1cl5(ut!%()mC
zq+f%wM<5fVCg6dT=)p{1IT;w3CbC$vgKP+4V&Gz65HJD_0n4$2EQ$c@&){NUkWI}?
zVPJ&t?}GSwFrF|s0|TgtiUg~*=VoBgZ0cv>kY{CJ&|C~-Jclv(CP1Z>C$Mll;bLIW
zw1qKBVT?&I#&Q^A3ykp!svT6Qec@zau;OI-&B?&P+X(6lfx=j89mt<eOcE1WI9kDp
zAd`!M0TLQbOrTcPd2R*<ivtV{4DnnH4Av(=$~%}qiddOJE4XFT3K$qWnJT#$802{v
z7&NC$ggBT%GZw~D21Or80XPA&GH|kh1T<1WMs<Oz4pwH+ZV-)+Ac1a(0BGNbh5#s(
zdmsX!jT0KnK`MG70-&8EHlQvC2(yXWfO_O0%r0O9stG}uL&_G^{{r=WIl+Bjh9C}5
zn>PeRLPoCx*&uCR*qnha8v_FqWKe(^)SzYJ0uAs$#|K#Ff{I4=LktWIAoZX?WSj%y
zu_eMKm?ko?ae{fEJ}J{g7ItvT0=KuEco-NsQi@9$7&$>5+r=PmaZxe@Bi9WE28Q1}
z3=Ev0aud`dWMu}eMCZCWk%hyNgMopIYZ8RPz|F$LataiCJm4l3baaA;<sPUz3(9@`
zpkoL=gXU>L1RJbV%mQhp^MU$2e4tJQ>upfzN`Ra%H;IJ<G;Gf}XCi1A1MC^FgaI!D
z13TC^5+L6!0CB<IkpShn)4VY6NP)a#!^gnD0rrkG$U8szpx#*s9!UqSS?7v?`hu$t
z%3uJy7NkM|<XUzHK9CDoe}SB43TpHpn#95Z%3q9gRG1hT1QX*K7)?P=0Syo(Avn-b
zHU&AWj-P>nBawm89OR1cAWjkkqXmfLDFAg6$ShW7&_Z^uKTwx&Sxtt9FeG%Qf#T2;
z<b<rru&e=^)c`xe6U2f!0m@+k+35|kX0`wW14j}AqYsF42WBUzUBJo=TA|K09cmTV
zF(`w9hXoXC5Su|GX^e58czHjWg#$F>&NxSwnSp^V4dkRanD3J_;u#p@Kn{c_vN(|U
zWd#`+ghW9~6F~N_5M*HB0M%ECpv3W25E=p?16i3t3(~pFrl5HI4JhmjYnd4sLZ`5B
zfT}#kIUpW8xQSK>^0~JV1A}04JOg7P)OwC&2F7Ag%9<erHNP3u$zTR8Oy}x@na{%l
zQUdX0F35q+Aop&a!ouMUE_rS+GcZ7GX$INyScrjvT@S1d#N`uaU=RW~3tK_jEQJ{u
zxNc5i;ZOptF<`X@shbFL=MT7f5-c$DCV~t|5oTau1DgltGEHRRlAH?De-ES|>`&{d
zEF7RISjIW&aQ$;Y`kRHJzMcd1HK;)|59B4Li7Xri42<(ZsuqDJ9axuuj9UeAXXaFx
z_qM~0TLn^hR+xc-y%ekt#Qg#H-WrfLWf2Aju3otF9)lv~HOPBwrm}GS0|ytVcPUcL
zzz7!h6JcOrQwEv#8e|&NL>9IxFb|}PX(ET{eh}|1$OLd16AtR?G5aiL;oy2O6%zkk
z9Mhl-a~LCj8YFzUYM~4U9u|-h;9Ltb0-S3(82H>-85qP?gRBr|1f|?n(^xn_Q<RKz
z&VpL^;1UHQ!!(fr(hC!3ga)GoxI_^LcW5SvFfd4hOGrsZP?_>W1e%^e#;`JjmZEdL
zhq{gdoRY-&K(?xab^o8n!r=-I8znYapF))p5*`ea1q_VpV2+X~)KHKrR%RPeAec;t
z_#I*>>rs%QJ3wA_na;vd4mNWp8v_IT8L$M%NC!~{26itvH$;?yL1+_*y9*S586a*q
zh`SraZ4+f+kOE~#j!Xu|{UDK<q6`dNlc%$AECUVMF^GZcD@J3mH+D~F;Q%RNob!Z@
zfk6VC?~K7NKP<|?An_TL79c7gi83%qgY$$bSSKTB&`nGlWUU)m;Q4eGj#*&Ww}RTO
z;E;7=1o?|;B7-cruyzBRtRn`i^&uLWCUQtKg3R#%o8uq`4Kk21tjwS#?sCyHAft3e
z><kRj#vru;V6|~#3=CWaGgvr$KudtQ<Yz!amdgdofRyoK%^)2qU>%J!SU5oKcg8t3
z91IMyU{|JqU0EXrYC40e$P}<MC%~Nv(Fu2E8rYyEVlbyb_}gL52ARvs3|ikV$2F6M
z12nm!$-%%NeHG-0e6ZeAAZKgNggJW))U{kUp$v$#<v~ph5M~xo0JR1{n86S<RK&mu
z8c&0?Dn!^JtqRymga7QH>2UBu0MwB~=7XRyHXcx-Wr4OjK*MBA0^y)mDrA@pbv*$y
zXl#s03X~+7Aj53Tpdm6Q@DLd*8#@C7qf`!Pe*F??L@bYiQ3|w_f-MCq%${e+z$gP!
zz@BHoz$go56*4f&ff+?m1_MW4P89>A7RX(UUqJ>{FfeL?mE<un8iIrwI5j|a`GHIa
zd9w)A{+$yEnv&0BU<3=_6=PuFPJwcmCNl7Z&4lF7EugWeBnHMTkY-nL1_oY`tFl4n
zCxUqf42(G-UIU1iV!*(d3*t=?XJFv#WME*Zn90Hc8nkE3=U>FYz_3}Ifq{P}0|Ub`
zaRvqfn55up1_p+E;tULeTNxM_K8iCi2!YN-5IO<si!v|>Y?;Zz0on$@n_|eoSP3$p
zMS_7rxR`;l3gkb=P~JiY#%hoYEhHEiL_op0Z6*tc3n({L34;dC9)U)vBp4V3VB&(W
z85kJyK%G^HJNaj^aL9qwSBrw&33lU5kOr6p*o|u?pl&=Pf#yaAPB%~(_kbqf*3Dw!
zhy<B6=MXfE!NRX4AYlyVfaVgOfl_oI$l1b@3=CqvAOreATx}570mPjE;yOz*Fo-{y
z#liuKUIqznki=3@s$-uG$<~Z>{(@Fk<S{UUg_$OT;}Xi|5SO3L!U2kH2G;)|8>fS2
z8yFQp&6GR_#_1pzgVG$B!65Mlq+|`qbmiGB9NJ)SfC?e*JO)OvFw}G?n}ZKzwb5)A
z4$xXd#&!Il$+Kul1_pj!W(J00kjw31)-y=xgPgt@RGIj}oxX#afdOPVSQu(Jl+7WY
zHXG_|R!fl97Es(X-iA881r#_Sr-K;`l3zhi-vu%~Yc>l9WL5}dGFS*|GL+512eP&j
z=IlNE7nvCtdO*%T!OXz01mx^CnAHpnjDn1+e8Sw!eA0Y^j6!Sz;tUK-Dh%A*cHGQ-
z3=GUrCa9;P$7nCf%xA@I&8;r!DGXBVATixZl2Mp}fwi-VkwK8r5Ztt3u$Q!v%;SS7
z1%)wg8#ovkn30WbXOu)SmxYx9VvMISlLV?Y{0!XOo}ji1)P<l{zaBAGi@}XV^&Sf&
z$Uu<yz&_GoVCIwIW?*1Ln9q*SsT?K@%zU20CXyhBa&j|*`~fnE3nUIQ735fML^$y<
zGI|Pw6!0oCcna%tGcfR}F@V(Yqxx9@*;2G%7lc^Dz#xRM1Z2H1EO10v8JIaBmV?Aa
zk(7xuFo=PaF))aOsv!wvYd~&?$E_skp$ak=6c`K)EQru!g)%un&0nOXgdXSYsQw3!
zcygjToC^_*+#tI^!Nvm#JzjLz@}Uak@!?33D9Hk3C|(Z;GcxmWbAv(_6ou@(@L;y!
zW?<mpg(oo(mlGD#T(Fo%I9iVplD^eZ(>*Uzyn$;Qc=iIN4x|_rKn*NG6SzZ|Ks8Ng
z6C)!eTMBnIF)}boOmqTOA|UTEFo+^YIa<mRLo!GLoJ2rjECH%hBvIo+3W+Phz#xqp
z+&BUoniS9q8008mMRpuYdSpYjkR6FD&cMKdNE)0VZ-Si71!6ETaHBho2UP%P(jdaM
zAR8bFhK;180n!I{B5LWw4J&<kG#HpUK*bO*Bzf~85{##?0yik}A*Bcg1_6XTN}vfM
zB`8q!j+$(QQDa*K<SKCb04GjXSmK-pDeT3dX0dt-gA$oI)GR1h0!dbafk9G~Q5{@G
zNU?%TH)$l*5)2G7P@6%TB^VfFk+|Xv406!81<8stFv!D_GsxQtNC{dI66upciCYP#
zh=D;Fmhn_z8BY~CRiPz$HBjPKhuX*u@tXz`SAu~-6Jigjn$v=t1P>l)U8oI>0#;Bh
z35g;dgr^x8bP)l>z@WzkDJobQ81&&La>D`~YN7#DJJeBzAV<M!8Y6DTP;mwZV_8N+
z;ULCP@d)lnaH=q2WiSLsk0}>}p)hFL-V9P%fWpok8q81wEkI^~#4SN4TX9>ndJ2Qm
zoE4~Iuttc1st_C0Jj1|Xiz+}U6M<@c<a~}?K_CYJTI8@H1%U);0WKuipdJ9#y|6-2
zoPhycTfhPcy{=$j-~lCXP^RMr`43j>!qSQWEUlnt8E7~_twhf<&`5>KB2}~u3}SG9
zfs+JEzC_ME5)2HW%mZp+K@&Wvs0H~8%9R4e69a=Z)Fn_+8K~7DE+`8jaY0!K5$p1(
zF~z{3fDj;DPGgHS4h9BRXle(y2_dN+6jvZuLz-uZq{hI&p~nbmjv%rIC$fH&py7gg
z1RA8=NL&d91|EdJco9~B$|F8dRsfj<$_k*h*U*e00MWs~AZP*=5dtw77|^2<SwARO
zh=Q^b0|Tf^1jP;1J>rP60Hy7OmT)EEkq-_bkh{PwD+UIJKv3Tryb6$!@i!kY10&?*
zUQh=XY1a?~LvCeqQEFmIs$Mdv%Lv;<lmVKkVqjop0&SxZ=Md&lW&#=E4K@@sS%BZr
z)Vz|SO1)%|As8ltmhem3GKn%UGJ+;tm>9A^$pfDok=(1V2ix$&zyLED(;BFZZeEdI
z1_KiVLkeiuie3h2p#jKGpoQ?v2N@V`OF3d~*K))PuT=pdjz|^Z&tTSC6=4tuj8#EW
z`-M4#RfPA0q(4LCKnj@{85kM6z(JBnoF8CLfjAkw6AQ(GObB0rW1zSsC9x<S;t89i
z(#)I^-ON1D!X(hzBqq?pOlEFIdyXjYlY66>co-NNXM<e>>Vx8qAV`QZFeK;a73b%G
z;+_%H=FEJE#mJ5T1s`a!A@fZJ#`IDSMO)^=h?b|#rQXb;5zXE=n2So9Io9rFmYL_%
z+}zBeU&ib>!S<=YgExm56AJ?)V>Z}%Ubq7bBY^Ts^k5+Yb`K*117<+1ZD!$M=4Grn
zc|Gc*&f4fxdrH4Cu`)0+nu5li7(mBB;|LAVK0L^FIFSEgfem4&q^2RPhB+g-q_Q9t
zAq)y3MwpwS?gZ@vgQ&oCC}?dFvmWE*>l2y3Fzc;tp4-B_zP^c>n?s@5=lbW!FXtGT
zSeV&3PJCiuVqs(JT*Ra)z`(@9#Ktj?jYF8ZYz;HF7ZWJ`F<05_U>5M=uw`IkVPV_V
z#O7VRhk=QOkqxwIhiMnclqR<HOeRC|QjVvk9HnI(`W%yXb3El(dwkt)j;G9mO&kUg
z^=y$~LzoLddSXGu)dgUgHEfX_=~|1Jr_?k#c%NZ@#q4G8&7s76t;Xx=MxUn(>@!X>
zuV8HAu;+Ll4FYePODC2$2Xe?T$IN5a^qR}z+masBJh{bon@jWOxg5UDry`@9Io7w>
zGWXUsF@Iy^n84gs*Tnpbkt2e+t*(jrA0x+v7F*{3wN1<|OdJ!K|I{`ycQA28F#o7+
zV(tNne5q|>GLqtm=1`0RA>k+vVFLv6Zr;n$$`mHbEHaNnpSd#Pv#xE_XI)$4>$<iE
zpLJ~wuIt(wJ=1b9_^j*1QC?QcQCAkrq$<KZufB=-IfLGOjy<7<%+u;4nBOz#Wh`b=
z5@9ZnVCK|g?x@#e{>Pw~(afYK%3Kv;!u+RBkGYRgk0X-#V_gaJBrxk*T?F%gMh+q7
zb@daN&($`4ZEgk!p%<7e2az0N%$2)ZIh?$iMI#)%IaHXtSiHV%D&z3Z;+PK(`g%~%
zCxD3K+uA@n417|VR0J1-nCn1kAQD6zUpF75<THqv3zAykVU!vf&QZJr#4!db0jrz4
z?$m;2<`^$#-X|RMnJaDLnYo@AF!P@1I0;fWosC0*jkyYx$XGbkK}qN_$UwFyY#AIP
zOl%B{jQc>Flo&v#f8fbD;Din<$>6yKR@Q<C{8^bmQ^=AWVjyeTPOx#DYyq)Wah#s(
zm-7O|1Pg*0O>7*ed?wCqw_960$2164vZWNH<S)nR&pUi~Gjn=v0CCy8*f>u5fLO;k
z&e&Rl7;GhM0T8+g<Sn+yz%Sr*-r@}sUCHq^JZpEt-b@gum*eb0^T~VT*6#*|8izI8
z3AUKrlcgNidne{ZM(+;a5odxd#cY-K9Hb3oDJb|E*-F?rzIms^#C~O@mot~zFbi_b
zv*u{Yusz+<&LIklIK~E!uc?07;8Xy1Y#+y$1^Ue0^<HZ^(occ3`*8?^oghE;k}>mJ
zhNe~~B~fNxJq|;VB*H!~HjXbG`aTQSmNWCsTMw2iVdH?f1uW<N^wdob;WBR~4hBZX
z3*eI03|~o`Sd>|kk(*kQnGCI|OHwjn<s7J-2Mu^LpJQO;h-8-b@?+ju&vAnJJcAy`
z4~{nG9rb#Vt=7?Hwsv4-&ur4fytJOfi}^MK#|e&7<|-ynMrO`W%zU3XyunTd<pmZt
za5S<(;s(TK0VQW9HVy@FY?U&Ll-P23`!nY}VHW+=><?ypKVdfev>RM|<mBh2D}V{m
z?!?^0%sk}Q3s?e7l;#y@rst)CHo}%Lxch}FI9pnxZ5LJ0%{4Ys(9JE*Pb<+)%gIkH
zQP9mTDa}i@O;62BEy_$*(9KOOO3tv&G_x>M&`np+^;gg>E=jRX&nvaGRM1V!%hv_(
zu+}Xo$}dSxF3B%qfV86+;I=1cBo;B~XXNLm>ZhcZ>6ezL#^)F7r)QR=<d^5^7l3!l
z#ut~ArljVT=oc3y>!(&E<`(3n7BduQ<QJ7FzzqWV79s><#TS<(7L`B_d`T=yPlj!P
z25$m~HM|mw(#sg~3sUnKk~2~=ix|Mi!o)k}=jSj4M+V3H`Z@+Ml%(e5FeIj=6ftDx
zmF6a;7J;RLTpe9pJcAfA^D;{^6LaE0`>(+gt`V-z4Ds=4rFqHm@eH6X=x`~J9<Z8l
zN6!!lBgiwvl_9q@FE_COEZ`jE>KNjR;?`pLhV}BI%#u{FGT%@?kkg7%!5iK|mVkv_
zBRoSGic%9(7z*->GeMh*8OjqgL4lB(3|0{0>f^(Z3$iRX5wwjD<jEjcU;i*yhTLpW
z0DuJi16=*Usy+QeeVtr`!0cdGS8s;m)YNP+&odb0caX<G6+KwU!_f!gCubl3U{^?6
zGQJ=&FEg1TFEKZj0c>G>2}4n8Nm*hJLsDs48Z;=KJwS$K7K7|BE=epYEoMm0$uEZZ
z)Xme!HP|!C6>NvEH%KMOgCMoJsl~;K>8T9y@!%$3W?p<*Vth_!G3tJQNI{#-0E!TB
zh=2v+;d{N2v=@|?fD>b4QF<{$Sw;cmkb{iGyp)_&2FR9dl$b#@3lmE#;u#R<BBbS%
z7H7ashzG5POiW3M2OAC|;z7%r5za0sEh%Ow&CDw)C@G3B0ke#a;z7|?kdv61mzn~z
z73_4qWQMdNP>2?n6y@cl<}rXmE<Lk^!9B=7GyoK^ki-Zw(99&hgaH&y@g)rDMfs%#
zU}=Ve#1ya-qFjUg!PZ&CmoVg)mK2nh#HW-NFq9SNK|CLyk(yJGTEtMEnNpI$ke6Q)
zpBSH(lbFtslvtb^pTgkm;TXh_mzthfl3A9@kdm36SyIdZimnib0H4rcn7d(zDP-oA
zq^749#e;N1jEG<WTNIyBnwyvx4~kjP7Ji5a(h@=CMKMEgfTOc31IXH9Xe`7-4Pr<v
zPR`7Pn3NCpNN!>U*vIL43<ar0@j01!sSxQ3gr^uXQY+$9N^=V!4hDyWr(cM#V+2E4
zVoqr)gO9(TI|wsm7K2^KkXalLDJmHP{6qa*5JrKcwji;nI5i$|5ClU&NRW%Cn_CFX
zwU9#(paIMf?BO320`YblvM!L*b5irtOEMVZ<H7c(G5C7=g$6Se6s0C-f{vH~9c=;5
z@x>)YkYh1GXJBL$G2|vzfKozkYHo6F0qB&3co4U^C^;T<f(D2UK9d2=0iBJ3ICp`e
zxFo*-beIH0M@dmZQc*U@9?%gRd8w(Oqz~x^=|jAsmkd@7IphIsd~$I?9z$_<W&s22
z>;{NEi6smW17Jpj+y-(Y<eU$XF6c2I8HttPS^})FBtJVf4`f1d38+AZ$S@@57gT~{
zs<@;Gd<;lld}2~DLwtO0eo9KFF++TODU?;5o1bE4!jO_#mctMqpORSyl7@N#r7kZ`
z$t*K70qKM)0-0cD!cYh{xfmjw0_Nm`4vPad5*Pv)pa3*A*o-P9%gDe0+8xJ;P^HJn
zzyR7!jU?pC$iM(P5fDiTv{Ne@G~|HL2wE4e2{9f-fsRmMW|#=xRSk6j0|O^S9z=l#
z(HI$mK@@0%8w<l{#sJU`Y_M8=1_p*uu-ae{6$WneOaz@L50(Zk9{^oR#KbTW%m)#m
zjesEUFfs&yC^^tRe1?e}a3ewcxk2XxFfs&#l!LGm0|SEv*p>hg1#&SXLl}qxtt~}$
z5lAg~(+5Kkhytl+W+<wk4`P7!r7<%U*UtwrK(p`648?WxK@5;tU>T5gAPh1Fq=k_o
z5JZ9G85u%B6wJy%xQjs|iJ;XB3;~l_f+n+o*r274Yz&{7zcQ%K2eCUD85r0Y!X~qX
zPiE<6WMDXj#0S|2!XR_hz;P7_qGo}2oqlEvoDX7w&MRPK2n11}?HC|WBU}KoK@6;X
z;)445AQs2~Mut!j<p~MlmU<Aw7i@k2hzf*>gBTHD@lX(z24)6;D3Ha>3=>=GK@5=9
zEDRtEK&*dYRly(%v^krZp_p+#h+z*}$&H9QP*{L&XklV7m=B^sZf9ngIH4ZoVG!QL
z$iUza+I_?j1mc1)Xj70b=v)JaGKK;MnfV|#Xx}I!Ll}tSXJ%kvW|;T`luba&89=@V
zc@$&^hz9wGks-K`k%3_b#Fa4TgH(XEFfcHHTv7;jYygNl3}%LcsIy>Z0EoH*W`=^O
ztKcnd$cZ0hLL^v05Qw@2W`=<%nA#wC8Ud-z0V@auQ6OuW7$(MmXplXO41pjDqz@zv
zb7L7Z0|RJ(DahR*dKTD(V3;nDFihzkW(EfE;x2{&5cLugNGxy%d;zVL1g&dk2w-Jl
zU|<978Df~o1DEGwVPKF1?K)zZ2&P@YYQsQOF_;+~%*DVE#s#`CEEq(kfSF;rTnr3F
z5GKqiNJg=Mj0A0+V`K;gQJ_so%nYS0^FfRd&<Zn#P!JWz3X0QGmiZtCJ7~ECLnw%n
zWQU4_7;+GC5M=-p2Qf?`;vfpNkOgc$h~W(p2T?H)^&Im-j5vrmh{}hEv&;uE3L)Yk
zstF>_F(1Tefrx{ssSt6N`5?wDh&YHk0A>b&C`%4d5QTy$(8@HhYe0-Zh&YH!1I?0v
zLIK3chKPfx2ADXA(F73(QBxt}9P>ep=@4-cwFV;2G9ScP2N4HR2O;7d^FfTm5OEN7
z9U{&$AH)FdiC|<11yS!{;vhygC)oWUYBrb|4x$!-nV}%+2ACNRqV9s3p&$yhQG$^n
z97L6XlLM$e0H+Ah_OuV6Es6}EG(f9Xx!4#OKo`ugLHQbN3=9TrpyClC4_fRPi^MNy
zV_>L9;!kB`U;wR$gX!PS#=rntb_(Nz5+*2B!uViEfHoGeFff4J!OSo*U_Q(dU=GX$
zU=GZBFb8Hgm;<vI%z@bo=D@53bCB(WW*rb!1<pl*AgUJ33<goV!OTDqbqdT3e#XMU
z0Lm(i48b6Z4V*~=L6j$$84RL8c?MkMf*1)9aS)XZ&PT<J^Fa*o&N7Bz5C!r#BSRR>
z*NhBdFh4Uggu#5w$PfneFC#-3%(sjTVKBckGK9f=ic~v`u`@7$@+33E#1-|r><kQ`
zj0om9vokP&avzuz$<Dw4%5q>%4m$$_D4&5j_3R7`pv(p4Ok!tXm=4Zm6IaylV`pFh
z<tebtO?CzbP_6=VV1ew(!N35@Qp^k!cho0xFff4f5tviW!N35@JYdcQ4h9BLjsbI)
zb1*P~vI&^8hl7CulsCW}5aSXDXa{X61KW3<@2c}bJWv(^OTXk`U`XQxl}HnJz$-9b
zP6h@MPEhh?2JID@Z^_BP5DLy00U#<CqP_vHelaHl!xgZ6Fw7GVKzn7tnFihle96VY
z@CzaYqJDFMZABE<|G5|#rt&Z_FfmNz0MT=J7#P?YCUUTWDohaPEmRU_haxuvgAxxY
zYlnd-T`)5kM1}Ey96ynP&0cCgh#diz3IkCSk))RJFfd$%NP(zpU}i9gdH`mIfvBfo
zCfs8nOKrG8u5_3WqSLrR4hV1IW?<-pFhQn*%wS@0fLBE@l_0;tl!Dj@wG%;y0)l-O
z&dtD(4Yt8xK8OaXXJiNlQ6L*YH6)1s0k$m|M1js50ttg?8HjU16ev&_8Ny%z!pIPe
z78W4e85x52^Dr=gd<rrGM5Fl_6zt5rARkX;0MV+vpumN+`#@}Ss2qrPL6URhWnhQ~
z^C4|Wu;)PQYk3(MK>FAiz}ukagY<#aF@mQTVX7EhAPsNuvQbbo65N&rF+kl5P}qTJ
z(5ZFo3`GnI#SBXGK^#!?oP(j5p@>1oNM=5WR}DIt3#J5SI_QiRYe@4OMA<;>VgS)O
z5MdAnvH{f22hkv-I2Z~TiWroX8Q})AK}6v33^Es_nvo$4L_su_VQ2!2z%?~OFE#;L
z1zODg0OA4=1v-iVBn+a#dlwi2Kon>W6eJ9yL1&mSG6aAqdGHAPL<SJ82yP|@fGE(`
zO|WXH??Lu~bTTnaWC78TURW@Qf+~ggc0fv>LIQ^aM1xLDU<2hzLz(#?HfRYf2PkkS
za<D1Q2l0L|fVx@}IoKdE0OEq|Kqvz7K>M^98Nxvn$bpQAhB9dTCMXO*?gi1HKwxAD
z08yYY011O=kll<70U!!w10rHTJWvS1A_l|;*~rc?k%6s<L1{jS!wd-<5CsZ0P%Q%5
z9uGPijR71r<qR_OB^VjN0m%&)Qf8cw2-z@@!$HA?)H4M+9^@oYz=CLyV>lTmvVbgB
zW}FY=f~;qU3L&{A80Ho>hGK?t2BrBRcY$00;)9$GVuLJ)q-{_V1o1#_0I2}!fJQF(
zFtv0@Lf`<=SrE^HsCqCn97N59ssPbT!5%M>02Q=GGV?*)wTz$|qkuu7M1oCeKIl%Z
zL#T?5FfuTlgct|27<9M}$T&uZU=Rf|2ISfTaE1Z#K!$=`Tfl%Y5}^WNBD}0cm>7mI
z5!8VK`5$2-SOo4!4saI>qyk|gs1px%<_$&$hM!<(2ZE?ykWgR%(Hh_$TOf$i1f9OX
zFp&X72SJ3vx)~T45C#Mx8Nh-tAPC6-7LWn9U<2SiL6CVl5c4@ebR`q08Z4}z4`P7M
z;$vedkzg~FnGa&mgenBl3qj}fF@T~(fK3S;Eg+G_pq1tfB?4?9ks=0}`5=LHV5LP2
z3MDY5Ad$^5n_zxPVq#zb?Z;tc2mnzaOPCl+3_vu<Xhwzr5Ct+2Jlp_cfXrcJ2m(<c
z<B-yR3KIiEImD|V3gmi5hF}l{GMkYh2t<MOF){>$D2VnT5VakwEf_@Y0DHIuwEYF_
zN)Z1PSZpE#h`tO~8UUg|=g@(Q0}#yv?nDNFC_eD?{6q#24LbAz$%#jp7{G@$F){>!
zI^7_RpqvV#zk|&U0#WQ>vjRaB$P7k?AP^-15d}Mnfq?<U4S?DNqC>&bVIV3RDvU)b
z3qol)l2UkSs|-DE3RDq;w%&r2Gcp8&D3EfHFw9htEg4XoK=d521K>Fabnep@s5FQ^
z1D1v-!WE#?dce{K^Fh)_!O{UB>J(HMW)Vmy3$zmrqB+4$`Y;g14;99ulm($Q97!qM
zr`MSo7#>4y0?{Dlj10jb3Zxv_ryyHOp*Df&(_jY#gQ(A7W;lrY3-0`v*UtwrSi!vq
z(1I1P(|B1K7}P)q%`i;l0MUlv9z|LGd=LY4jtQtW0ir`$85p=gwOIj!QW=BNd=Ni^
z6;z*r>U|lI5Qqyp*#=n|*b)W?202y+hCr~@0U!!wA}E1^XwdmONVOd3oPjd1%Ao12
z3=E*Fs*%#^a@bj9NJESuvGWi=zyt9lD+2@Qpa({VAkbMBBB1>ih??{oD+7ZJSO^{v
zw^$h%o`MZAm=B^sx)>RPK^n!tD&grzj*Wo<w3`;>eh>}nPa(M<Nty*A9S92uHPBfU
zpzYuc2J=mzCNVMufK+-wg<(oT25$w6A%<8%XIeafxCcamw(=o`&OtT?h7(}fAP{v6
z%!GRpq!`pK134UK2T05Zw2utb-hm1RvNJHu1CMaPJM{_d3=E(HCy@GqW$X+LlfkOs
zH3&#QXlD`|bYv972AxX<8yN+$K_@lA<U#Bp@W?1+<P^kC0`noQVh|g&0}Q4gWIhN>
zF)%QI%;I902QCf4OCLZIpoGT2zyR7;!^jW-qCm=+7$$~5Wf@>jVqyTbh#{gNG0;#i
zbdVXU1tQ150B-n#mVhxbz&#3T3xkAU9)YQai6bQkgb=*52l941xE&h=qPoD$01$N)
z%nSlips-+MfX5vt=rlfX&;(6p37ia1=V)eu4va%e4=`C!nE|q@AKYAZm=B^MO5rgK
zx<L?h))^B6qPGPSyAE*@h=NMTz<djmz6zEO08vnBcwY?^bG=|ELt+!e1|6`59-E+p
z>p(~Eq6a2u|2{-Ka576U!po}}85lq}52LFG9VN&H9!G}szhKUUiL)~VPiC3Of-nfw
z`tZe~0Va;20d$@bXjl|BDgv_sHsl2xZ-EWAfHH6_8v_Gum<2Y*0vljKHz$LWfuWz1
zfnf?K1H&}XWDL}Txtt6P=b_^W*O0_-aWXLQaWOCmb1^W8azPb?&a2~wj23|Uu%Her
zOa|6N1@$U(kdC?rm3?e%3=G_C3=E)h4_4^G^kJhx>r_GF%%D~~0|Nu-SYZesw1<*`
zp?xvvOdU}B4YZS<fgxilj1Nh>pi@2|>RCY)1L$Nr5Q7<XRuYH-#mo$#!&jgjP!E{_
zoaNyH%nV2Y0+vS#2rwUX+9zB&12Y2;f&-RE3J5Tt59%X`G8Tr9|B-co_#zM~FbU#=
z3XmnUAt!q>GB7cKwpoM11LQLhAGC`RtQd5%9K*-|PB0FX58BrVTI30uaARVC6dthC
zB0+p~{n4Q7-nOxDfXY2a1~%}5UYL;}_kfQ31g(4o&1!-4gJu_Dr=x-Rpu@RgN0@>5
zb3q$Sp(kg7_@F(mpaYgbAqjFn=sqdXSt{UtlMGA@pk>6M!7msebO<l#XcZX$90LOb
z=wuZbA5=Pk;v2LjgOP!i0kp*x*}b3*uAqZSKrs!n4-|f&lRZE&4dVY~U|;|ps{xY-
zor(iG@&d*O9aWvM7;>C8NWC&60|V%g2$;MfBLf5IPy$d&0m*|-I0bF`hslGc$3Xk_
zVSLaGDrhr0%zn`2WuRT&Fn&2G;GrG>g?9^Rk?c$s4p4~)3O~?{A8cnWhz}~^U<Y*y
zF)%WK=BHpAVnO`HpdL2#2rm$S4I={s>_i3-AJm<LofZb-Z)Id)fSs-a;)6O~u+xt~
z{Jo3}46u`fL3~hW540{2G-3hbgGyo8;h!M>1<<4%^dMjm|2iWB1MK`J5dR_Q!0aZ-
zIlmzOOVCN?&@*;He9#HCuzjo`{%=MG2GBXZpb;MspOJ}y0d`O*h|k4@I6fJ~=VxMI
zfbFsc@g<ocr{sfzSb*W<e;p<U2G|*5AbHU7#jxWHKzutU1_syx8z8<L69WTitv0Aq
z2k}AuO3<0qpt)ucKZ1#Y0d%r9C|`s4dQ1!qu){?`{6r=O2GHTjF!!f3F))A*l7^`V
z^-V!Xp2PTsObiULQ&m9vE0`D<K&P3*<e8Wl7+|N5g5*JGJcCx{gYpB2Ukh?C^h5{{
zzlDi`0dzh$%)OmV3=FU{7eMl$bCqGoP=WZfkj_R2@j+cv*bz4%{t6}r2H4pdApUx2
z_<{~E2JyErF))CZbc3c?L3~hWun~HC0*HTxiGcxj2sem-k%@r;c76?re}jpE0e0XD
zhz~j)8nosgbof1p|CEV=0d_h)i2sU-fdRH<8^r(2#J~VM(FDW?od*g#bpym_WM*JU
zfF6?#;<GV>4zOSWA1wvqgEol6j+FuN)tMO>KxbFO;!l^Ef#C>}eq&|^h9A%aT|nxQ
zS2e;G^dT0@!It3Z8Je1bmWP1Wf5pdxc$SdGX?n>>>-r%pw&07jQY)Y<uk;Mf42>9I
z>z6RrMIo)3f~*gNuS|k+A!}yf>jCu)&CSdq3zAYGR0M>|hfoy^&_z#rhL*+#phYl{
z%UX~;V`_n9nyCef*DR5FW(FomD$NX0<WPdd%-jrFr3JD+a}-m|4UHMFt)YP~mVqsx
zgD<;*FJyu*SjtV!1+QR&u6cwm2Li8vgRW+T2QqjiV@f7s-6dj;4`|6-5qyCiWJP0q
zd?|DtPkel81?XxR$Wk)!GEl_YJlLu^*g7KcnmXu0MaTk6&~i%9nmOp2Q1JRskbw*!
z$7U2kmQ)s(6oJ+!fmW=6qA3TostUfY47$V>q&~L*qz!bJ5qKdk#5Tm@L-4&vp!<(N
zD=R^Zxj@UeN{YZss=$j;!50?7S2=-f1ueEJDFUtO0xw(zuN1?&ehy?DXl)pHVJBoo
zWifPp7lU4LWo}7g5`!KnV!(6;j8&2fx-qFJKP9mwkwFhagOnNS8KQDc81x`&l8TEN
z^pf*)L08!@=s~=gSd^HTo>~m!g08fIu@jS$ic-s9Jn#}ds3uT|LYX=F$uJdAlR(u9
zQCJ$>xdF}SK<c9@pj|*9L8xw6GXQ)5H@IsBX$Q}dW?*;?YD_@YL0Y^F450N_AU&Xi
zD?#n!c4Y>J2Ot5cIuH|tK}(Q8G)Nt&-JGGy!0-a921J3(1IdHxHxLbKVT0ON0cs2k
zpgIMl282QCK(sIDEN5`rmI2((&QJr*%YkGd7-R;B1sVebu|f3$h!0W+y1E9$24RpK
z2!q<6AQ~hF!gJL?hoFL35Db$8Z#07lfyuq<3=CzUD@wpTgd0G&#K81`q>OzS7^;w(
z?Jzm;#v+gcC|(=Rz;GGVD1-80>OgZ1AU4b&4G9bk!AS7|k^^DT<}DBn)y{A^oq=Jm
zB#eh}-!f=AfXPf~WMBYKSU?3}W`OD&P+UNT85Z|I4(x&PVd_9Mq?ZJd>1bkL0FCB=
d^qYYD1d#jCK<!mz^D;Ua7_5;5K<0o<000Y>G|>P6

literal 0
HcmV?d00001

diff --git a/src/examples/mycreate.c b/src/examples/mycreate.c
new file mode 100644
index 0000000..e7dbd7e
--- /dev/null
+++ b/src/examples/mycreate.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+#include <syscall.h>
+//This file has been created too test the create system call
+int
+main (void)
+{
+    create("myfile.txt", 1024);
+    
+    return EXIT_SUCCESS;
+}
diff --git a/src/examples/myremove b/src/examples/myremove
new file mode 100755
index 0000000000000000000000000000000000000000..30a7fbe4f8b4a60cf0217b852401f21728bf328c
GIT binary patch
literal 36896
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
IG6!S=0MzF`BLDyZ

literal 0
HcmV?d00001

diff --git a/src/examples/myremove.c b/src/examples/myremove.c
new file mode 100644
index 0000000..4625700
--- /dev/null
+++ b/src/examples/myremove.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+#include <syscall.h>
+//This file has been created too test the create system call
+int
+main (void)
+{
+    remove("myfile.txt");
+    
+    return EXIT_SUCCESS;
+}
diff --git a/src/examples/mysysexit.c b/src/examples/mysysexit.c
new file mode 100644
index 0000000..b52c7bd
--- /dev/null
+++ b/src/examples/mysysexit.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+#include <syscall.h>
+//This file has been created too test the create system call
+int
+main (void)
+{
+    exit(-1);
+    
+    return EXIT_SUCCESS;
+}
diff --git a/src/examples/mywait b/src/examples/mywait
new file mode 100755
index 0000000000000000000000000000000000000000..9bb04d2239d308595753aefa80624b22b737acfa
GIT binary patch
literal 36884
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
Xat9iyy^3sJNGAh>C6WNh9FPeB?&2_>

literal 0
HcmV?d00001

diff --git a/src/examples/mywait.c b/src/examples/mywait.c
new file mode 100644
index 0000000..9aa6c90
--- /dev/null
+++ b/src/examples/mywait.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+#include <syscall.h>
+//This file has been created too test the create system call
+int main (void)
+{
+    wait(1);
+    
+    return EXIT_SUCCESS;
+}
diff --git a/src/lib/user/stack.c b/src/lib/user/stack.c
new file mode 100644
index 0000000..e69de29
diff --git a/src/lib/user/stack.h b/src/lib/user/stack.h
new file mode 100644
index 0000000..e69de29
diff --git a/src/threads/thread.h b/src/threads/thread.h
index 093bcdd..51a59e9 100644
--- a/src/threads/thread.h
+++ b/src/threads/thread.h
@@ -89,7 +89,7 @@ struct thread
     uint8_t *stack;                     /* Saved stack pointer. */
     int priority;                       /* Priority. */
     struct list_elem allelem;           /* List element for all threads list. */
-
+    struct file **fd_table;
     /* Shared between thread.c and synch.c. */
     struct list_elem elem;              /* List element. */
       
diff --git a/src/userprog/process.c b/src/userprog/process.c
index d51339a..75e3151 100644
--- a/src/userprog/process.c
+++ b/src/userprog/process.c
@@ -29,6 +29,10 @@ tid_t
 process_execute (const char *file_name) 
 {
   char *fn_copy;
+  char *save_ptr;
+
+  int file_name_size = strlen(file_name)+1;
+  char program_name[file_name_size];
   tid_t tid;
 
   /* Make a copy of FILE_NAME.
@@ -38,8 +42,12 @@ process_execute (const char *file_name)
     return TID_ERROR;
   strlcpy (fn_copy, file_name, PGSIZE);
 
+	strlcpy(program_name,file_name,file_name_size);
+	strtok_r(program_name, " ", &save_ptr);
+	printf("Program name is --> %s\n", program_name);
+
   /* Create a new thread to execute FILE_NAME. */
-  tid = thread_create (file_name, PRI_DEFAULT, start_process, fn_copy);
+  tid = thread_create (program_name, PRI_DEFAULT, start_process, fn_copy);
 
   if (tid == TID_ERROR)
     palloc_free_page (fn_copy); 
@@ -55,13 +63,27 @@ start_process (void *file_name_)
   struct intr_frame if_;
   bool success;
 
+  char *token, *save_ptr;
+  char *tokens[32];
+
+  int i = 0;
+
+	
+	for(token = strtok_r(file_name, " ", &save_ptr); token != NULL; token = strtok_r(NULL, " ", &save_ptr)){
+		tokens[i] = token;
+		i++;
+
+		printf("Atay Debug : %s\n",tokens[i-1]);
+	}
+	printf("Argument count -->> %d\n",i);
+
   /* Initialize interrupt frame and load executable. */
   memset (&if_, 0, sizeof if_);
   if_.gs = if_.fs = if_.es = if_.ds = if_.ss = SEL_UDSEG;
   if_.cs = SEL_UCSEG;
   if_.eflags = FLAG_IF | FLAG_MBS;
 
-  success = load (file_name, &if_.eip, &if_.esp);
+  success = load (tokens[0], &if_.eip, &if_.esp);
   
   /* If load failed, quit. */
   palloc_free_page (file_name);
@@ -443,7 +465,7 @@ setup_stack (void **esp)
     {
       success = install_page (((uint8_t *) PHYS_BASE) - PGSIZE, kpage, true);
       if (success) {
-        *esp = PHYS_BASE;
+        *esp = PHYS_BASE - 12;
       } else
         palloc_free_page (kpage);
     }
diff --git a/src/userprog/syscall.c b/src/userprog/syscall.c
index 0463515..0f9f319 100644
--- a/src/userprog/syscall.c
+++ b/src/userprog/syscall.c
@@ -3,19 +3,326 @@
 #include <syscall-nr.h>
 #include "threads/interrupt.h"
 #include "threads/thread.h"
+#include <devices/shutdown.h>
+#include "threads/init.h"
+#include "filesys/filesys.h"
+#include "lib/user/syscall.h"
+#include "filesys/file.h"
+#include "threads/synch.h"
+#include <stdlib.h>
+#include "threads/vaddr.h"
+//#include "userprog/process.c"
+
+ 
+struct file* process_get_file (int fd); // FOR READ
+static void check_user (const uint8_t *uaddr);
+
+void halt (void) NO_RETURN;
+void exit (int status) NO_RETURN;
+pid_t exec (const char *file);
+int wait (pid_t pid);
+bool create (const char *file, unsigned initial_size);
+bool remove (const char *file);
+int open (const char *file);
+int filesize (int fd);
+int read (int fd, void *buffer, unsigned length);
+int write (int fd, const void *buffer, unsigned length);
+void seek (int fd, unsigned position);
+unsigned tell (int fd);
+void close (int fd);
+
+static int32_t get_user (const uint8_t *uaddr);
+
+// void check_user (const void *uaddr); // for read 
+int input_getc (void); // for read 
+// struct file* process_get_file (int fd); //for read
+
+//int memread_user(void *dst, const void *src, size_t n);
+
+struct lock; //All for the lock to work to protect from race vuln
+void lock_init (struct lock *lock);
+void lock_acquire (struct lock *lock);
+bool lock_try_acquire (struct lock *lock);
+void lock_release (struct lock *lock);
+bool lock_held_by_current_thread (const struct lock *lock);
+struct lock filesys_lock;
+
+struct semaphore;
+void sema_init (struct semaphore *sema, unsigned value);
+void sema_down (struct semaphore *sema);
+bool sema_try_down (struct semaphore *sema);
+void sema_up (struct semaphore *sema);
+void sema_self_test (void);
+
+struct condition;
+void cond_init (struct condition *cond);
+void cond_wait (struct condition *cond, struct lock *lock);
+void cond_signal (struct condition *cond, struct lock *lock);
+void cond_broadcast (struct condition *cond, struct lock *lock);
+
+struct file_descriptor
+  {
+    int fd;
+    struct file *file;
+    struct list_elem elem;
+  };
+
+struct process_file
+  {
+    int fd;
+    struct file *file;
+    struct list_elem elem;
+  };
+
+
+
+
+
+
+
+
+static void fail_invalid_access(void) {
+  if (lock_held_by_current_thread(&filesys_lock))
+    lock_release (&filesys_lock);
+
+  process_exit (-1);
+  NOT_REACHED();
+}
+
+
+
+
+
+#include "threads/vaddr.h"
+
+
+static int
+memread_user (void *src, void *dst, size_t bytes)
+{
+  int32_t value;
+  size_t i;
+  for(i=0; i<bytes; i++) {
+    value = get_user(src + i);
+    if(value == -1) // segfault or invalid memory access
+      fail_invalid_access();
+
+    *(char*)(dst + i) = value & 0xff;
+  }
+  return (int)bytes;
+}
+
+// CHECK USER
+static void
+check_user (const uint8_t *uaddr) {
+  // check uaddr range or segfaults
+  if(get_user (uaddr) == -1)
+    fail_invalid_access();
+}
+
+
+
+
+
+
+
+//GET USER CODE 
+static int32_t
+get_user (const uint8_t *uaddr) {
+  // check that a user pointer `uaddr` points below PHYS_BASE
+  if (! ((void*)uaddr < PHYS_BASE)) {
+    return -1;
+  }
+
+  // as suggested in the reference manual, see (3.1.5)
+  int result;
+  asm ("movl $1f, %0; movzbl %1, %0; 1:"
+      : "=&a" (result) : "m" (*uaddr));
+  return result;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+bool 
+create (const char *file, unsigned initial_size)
+{
+  printf("file: %s\n", file);
+  printf("initial size: %d\n", initial_size);
+  printf("File generated succsessfully!");
+  return filesys_create (file, initial_size);
+}
+
+
+
+
+
+bool remove(const char* filename) {
+  bool return_code;
+  // memory validation missing no check user function // added now
+  check_user((const uint8_t*) filename);
+  printf ("CHECK USER RUN\n");
+  return_code = filesys_remove(filename);
+  printf ("File removed --->");
+  printf (filename);
+  
+  return return_code;
+}
+
+
+
+
+
+int wait(pid_t pid) {
+  printf ("[DEBUG] Wait : %d\n", pid);
+  return wait(pid);
+}
+
+
+
+
+
+
+
+
+
 
 static void syscall_handler (struct intr_frame *);
 
+static uint32_t load_stack(struct intr_frame *f, int offset){
+  return *((uint32_t*)(f->esp + offset));
+}
+
+
 void
 syscall_init (void) 
 {
   intr_register_int (0x30, 3, INTR_ON, syscall_handler, "syscall");
 }
 
+////////////////////////READ CODE////////////////////////////       
 
-static void
-syscall_handler (struct intr_frame *f UNUSED)
+/* void // CHECK USER FUNCTION 
+check_user (const uint8_t *uaddr)
+{
+  if ((void *) uaddr < (void *) 0x08048000
+      || (void *) uaddr >= (void *) 0xc0000000)
+    exit (-1);
+}
+*/
+
+struct file* //GET FILE FUNCTION 
+process_get_file (int fd)
 {
-  printf ("system call!\n");
-  thread_exit ();
+  struct thread *t = thread_current ();
+
+  if (fd < 0 || fd >= 128)
+    return NULL;
+
+  return t->fd_table[fd];
+}
+
+static void
+syscall_handler (struct intr_frame *f){
+  int code = (int)load_stack(f, 0);
+  switch (code){
+    case SYS_HALT:
+            printf("SYSTEM HALT CALL RUN SUCCSESSFULLY \n");
+            shutdown_power_off();
+            break;
+    case SYS_EXIT:
+            printf("EXIT DONE");
+            break;
+
+    case SYS_READ:
+    {
+            //int fd = (int) load_stack(f, 1);
+            //void *buffer = (void*) load_stack(f, 2);
+            //unsigned size = (unsigned) load_stack(f, 3);
+            //f->eax = read(fd, buffer, size);
+            //break;
+    }
+    case SYS_CREATE:
+    {
+            const char *file;
+            unsigned initial_size;
+            memread_user (f->esp + 4, &file, sizeof file);
+            memread_user (f->esp + 8, &initial_size, sizeof initial_size);
+            f->eax = create (file, initial_size);
+            break;
+    }
+    case SYS_WAIT: 
+    {
+            pid_t pid;
+            memread_user(f->esp + 4, &pid, sizeof(pid_t));
+
+            int ret = wait(pid);
+            f->eax = (uint32_t) ret;
+            break;
+    }
+    case SYS_REMOVE:
+    {
+            const char* filename;
+            bool return_code;
+
+            memread_user(f->esp + 4, &filename, sizeof(filename));
+
+            return_code = remove(filename);
+            f->eax = return_code;
+            break;
+
+
+
+    }        
+
+
+  }
+
+
+
+thread_exit ();
+}
+     
+////////////////////////READ CODE////////////////////////////       
+/*
+int read(int fd, void* buffer, unsigned size) {
+  // memory validation
+  check_user((const uint8_t*) buffer);
+
+  int bytes_read = 0;
+
+  // read from stdin if fd == 0, otherwise read from file
+  if (fd == 0) {
+    // read from stdin
+    for (unsigned i = 0; i < size; i++) {
+      char c = input_getc();
+      if (c == '\0') {
+        break;
+      }
+      *((char*) buffer + i) = c;
+      bytes_read++;
+    }
+  } else {
+    // read from file
+    struct file* f = process_get_file(fd);
+    if (f == NULL) {
+      return -1;
+    }
+    lock_acquire (&filesys_lock);
+    bytes_read = file_read(f, buffer, size);
+    lock_release (&filesys_lock);
+  }
+  return bytes_read;
 }
+*/
+////////////////////////READ CODE////////////////////////////  
+
+
diff --git a/src/userprog/syscall.h b/src/userprog/syscall.h
index 9059096..5f5c81f 100644
--- a/src/userprog/syscall.h
+++ b/src/userprog/syscall.h
@@ -3,4 +3,5 @@
 
 void syscall_init (void);
 
+
 #endif /* userprog/syscall.h */
-- 
GitLab