[comp.os.minix] Additional group id's

v892231@si.hhs.nl (Edvard Tuinder) (05/02/91)

Hello *,

This patch is an implementation of additional groups for MINIX.
It is possible for each user to belong to up to 17 different groups.
Being a member of a certain group allows to execute/read/write files
or directory's belonging to that specific group.

It is implemented as follows:
mproc and fproc each have an additional field, resp. mp_addgid, fp_addgid.
This are int array's of 16 fields.
The groups are initiated in mm/getset/setuid, by calling init_group(). 
Init_group scans /etc/group and sets all (MAX 16) groups. At every group
it calls a libfunction which checks if the give user belongs to the given
group. This function returns 0 or -1. 
Every correct gid is put in the array and fs gets informed about this.
Posix limits the number of groups to 16, so do I. All empty fields are 
filled with -1, an illegal value for a group.

The existence of aditional groups is only checked twice, for executing
programs and for accessing files or directories (~mm/utility/allowed and 
~fs/protect/forbidden) so not many real changes are needed to MM or FS.

The groups are initiated at login time or whenever the setuid() function
is called.

In addition to this, a little patch to chgrp.c/chown.c is required. 
There is also one new program, groups. This prints out the groups
a user belongs to (or another user).

						Edvard

------------------------- cut here -------------------------
table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 groups_sh.Z
M'YV-9<:@>0,"#X@6()(XF4(E"!,F"N:4(0/BQ LO6%[,><'Q! @?"1<V? B"z
M!X^*+TXHP"(PX!H78U8V>6.G# @Z:-+, 6$F#1N;= BR22/FQ1N<9>2X #'Dy
M31LX/FVFH0,"Q9@Q!YDD$7*0R)<F"I-@Z?H%RI,I8K],>5)%RI B*5:&<4,Qx
M#!F*4V\2S/.FCAP00\6,<1%FY4J!9^3 @4DFC9F50># 89/G9LZ=C<V8 1'Fw
M3)@T;N90Y>L7!&+%,)>.<0KU)V>Z($"+#L.&#8@Y3LO<09.TC(N51J*V>9,Yv
MS9@P=-*\"7U[8!TV%,64T6$:S7"*-&K$B%$],9RJ M_<<1,7R\K$?>',@;FRu
MZ=.HEG7RA#^7XO":L:D&!?&BSAPY+[#QQG%LO" &:$L-85T9;>2G%P@XQ)"#t
M#+^9A\50;4RUWAB9K00%<@+%MU-/KH'&GW\ @C8&&W60X5M51)1A1AEN3*6<s
M&R"\L=D(( 1QUU+HU:%>>>VA,=<99>RTGQ%3K(20&7#(,2!CCH&0X1R#<5CEr
M&W#02.5F41X5$!U?>@@B&I;91&*2G'DFFWZ\R6'3&W*D<09HM.UDHA]FK >"q
M% &Q1A]L;82QADUA@."&;BOU66&11[*Y7Q--. E"'<D-14<>7X* )!T2D:GEp
M9D])F66'6'Q(1XA(S??33IU]%AJ<O>58YYUNY!D;CGZTT<92@*[VGFOU66DHo
MHHHRBH6OCV(A1!T^U97L';$5BN125/ &PJ%R+&K;HA,I>A0(TH$@I["M3;24n
M$T?EY,89L>TD4*1DK(24G,TFL1EI(!B)7YAB_-3&3G=,A28<9X(&[UR5Z9BFm
M1*XFR0)G<ZS!$YUI@D!C<G(V&M5ZAF&1P,@D%T&&'6'(4>\+"@0T4$$'_5E$l
M$$0T441$X5J$D48<I?21S#3;7-))%JF$1;;RR9?H' /)015-2=F1AFXY;C97k
MM9,QN#%R-U;-V5TV+D>;IU(*.<=*)H+EA%C-(JWG4P)OG=QRYI81![1R*JDMj
MPJNB:0;&?=Y&$$[(@4"I:5>;(6<9E($@UU5L,ARQ@W?,!>I2A[<TQAJP0K[3i
M&6\0I[$;?9V!1MO:VM78W+G:%J1Z5766PH.[&8=FHOXE12[CRYT!JYR[VI@<h
M<N$BMY* N-Z41AMS_K4;C674]%>KH4)+!@JS$VB;?%W*\;<<S).!;>H+ ^\Xg
M%J+1&:Z)5X-&5<IRA-'P9C'8,!_C9/B9K7^<72K17\?!D;]L4K\V30PW_;/7f
M4<;FL!C<@&SIT=]EFM,7Z.QN=*5#DPY:0*2C::MZ:;C>[,Q0!S>,@76[LE(;e
M7O"I4,$$<;71FU1J1(<OO(XG)3SAC<:GDT;E$(5RLHL,^5.&5;&P;-]94U4*d
MAA-/%3$Q&T/!#%*0 AZ.Z(<W.@QMV  KP! E?G*H# E-R+J):6X-7\B='+ 'c
M B:BJ55_JXUX% 8"A,6/>71(RAQT<!C>;"Z-_T.!C,R0QA"R8%%WL&$(6^"#b
MQ'R!>6VH(@C<YD4QC%&'=),3'?S"G$1QITJM.D\::H(CZ^U.0.]2TN"T=2=2a
M0E!(5F*0=.3@IR?<JV 0RXLF.;D3&%2(DO(APW)FV+_ X)",74,@X:B2EP!>z
M,'=XP1&=&I.K,)XO3(D)P\# @P;O'#&"50S9%7BS*.EE+#"7!&(1>0F"&$P,y
M-%.Q(1)AR$6>$,Q@Y\MC;;[0)Q1,H0A4.$(2B,""W;SAD+I1)!D8Z4A#MN!=x
M(4S!Q)X'/(CB98A!H0,#K7:&"CGA3A<UEHN2Y9GDX$>91J)*GUYPI3&\0)A?w
M"-6V2'<'O14N+TK#46=V)9HRV&4E#KO:-/%D39!6:)PT2A/P4F83TEE)?08Dv
M%Z8RUA/\Q4M<*O7)3RBRL33(B3(30\I*Y%0H>+[K?M#YG9JT&BXW'H0[^XE2u
M]#;F/SWR1$H-^E1RSBJ:^+W+)H<1U$_^XJ(NT85&=3G#Q# 6!L\]J%4P>.5Bt
M0@;,(39VDV-;7M:8YP:-LFY\M6*JX)A7G4BI$@0J[$^FII*'%VQ1/!.1"VQ6s
M&J8\GO %WSO079+ZO>JXA(Z];55G\L7,G9".*HOR7,HJLQ_5]4^-#]*0K>R$r
M)]<A<6+2.4[N1'0^I;$AB&2HC)SNU%,Y13-CI /?V*!DJM?8)TQ8 >D)_!0Rq
MDI7L9"FKEX50^X7^^O>_  ZP@ =,X (;>, KX0\(3(8RE4T26H?]"VHGS ,[p
MX&!",IA!#( PAS2X  UH6(\;V "2"9=D(@TF Q#$$# ZV,$%(W9!&^IPAD61o
MB4YG  D7$LP'$$QADR[J+%-8@RG=36$,4S.A31""A#!T!F)(> .2L#20-]@&n
M(=FR29//4 >;9!D$3BABG-A0GYWP00$L<QE!#(*0,[)'(A31648VTI&?N1DKm
M)D&)T4:@(A:-E >!^; /5L)G$_K9)CR PQW$AX9!6\A]OOVC&E%@/18X$I+El
M@;3U=M#'E(% !2JX-(,XC84])!BU?:W#">L8ACG,8=&?5C092#UA2*NA!S"@k
M-6I/74=8]\")=%"T]2@=45V?;\*U<PT*1-V&+:BA"R (P:]/P 48G* \)H[-j
M9E 0 A3T=0Q/6;8<'LD@9Z]@!5U@@:P9J>@OY(IY5,1VME&[RVZA( 8I(#6Oi
MZ^T&%, @WROI YI;%AZ8M;F;J!D5SN)\D3GWS",@.<UB1C4T/:\$U"K($72^h
M('&8). *X5+"<]J)@W;"0 <PF($.8C"#=N8@!S!P4@L.[AV/3Z&$/8H2"&3 g
M'1G(0 <RJ '*:^#R',3@XAA/NM)!C?2,UX %,8ALTF6.D*?'@.@SGSFO,W[Af
M&(T!!@\4 IGSL"@00*$.:QA*B&92G'"A]*94.:.>0 4"(03AGTX(@LVV/K+Xe
MW<LR5VN508DEAS/880LP@/9^)&(3@SJ(:16,CF_XG@ ?N8@B<R ST[ WT9R$d
M2%AL4IQ30"#,__A4?(-9R0I0JP+5LQX$,*!!"WC> J,O&+\.I@*$720'UW]Zc
M9&QWS-0HTEO5A:UUDI6@?)@W%YN^KS9UI:7O53 R<%%D/^4*0\" 0I RX"$@b
M1>;NFK [U;S,6#2[HPH(];OZWR= 2D>Q8MWNYE4V'4=.)+1-E$;I$SO9Y(QTa
M% +'QGHL,Q8#6&@KTB*(-@=YL!&;TB7KT6A-MW1+UW0[]W0SD .?AG&G!FDIz
M<P9CH&OS\A<J\(&'UP6Z9FI8(("H!6EI,#&5YBF&E"/CD10'Y%G\\VNYQFNWy
M00=RH&I4@3"N!FLJ(&L3$VI%)&PAQ'F?]BF*]F[88VP]^(.K=D.AIAA'^"F)x
M 5),B(1TD!A0"' &B&H^"(0]6#BB(84C^&GO9A._EGFMA@8H8(*(UP5B*( Kw
MP8+:5A7?%FYM.#$B$![C(0*STP,Z6!X"F #BL2A_\6M4( 554 2DIH>,DTO;v
MUH=P@ )_" *!B'!P0(@@8(BP)V^*6(.-" )&X!#_)(65:!,JB%H)P%[N8P;>u
M1@>\)P> 6 )[1$'/(7F*HDWAP@6=N(C":"L@((P2)XQ<X 8B,#%M*(99!P(St
M  ,L0 ,:F'4MT(%"]H$A>&IK6(*%=X(IF(>U)F0_.(,O>"DS"%*+98HWB!PYs
M"'M2F&JK)H2O1A%%N&A9F(1W,&P2U83\&(;S6(95.$]7" ?[^(6%MX3_Z(5@r
MJ$U1R(/TJ'Z>U8-J:"0DV(:A>!N:)X=TF'AW.&'G2!&_]BG^.(GGHX=54HMRq
M &Z9N(G#.(B%>(@@H()ZF  K.9*S8Y,3-C*RV%F7:(M)@8LBD 5]P1D5-2ZOp
M=0?ALA^"Z ;+2(@H"8L)X'U3@0(M@&]3"0()(' KR)6+J#N."(F22(ZHU0<:o
MPT52$90MZ8? "(@2!XJB^&^G5HJ,N)&IR 2KR(.M6)-U^9-T0(NB<8NYN(N0n
MUXL7U(84@8P#,1[%B#&,Z1W*R(S."(QB2(&8:8$V\'0W8#]3AP71> -/EP-8m
MEW5_N7] 68N$R8FZ2!TEM 8TA2.O$Y65"6^Z5I5X<)5:R8->V7Y[:!5^A$:3l
M-I*6IA@,-6Z8%FV_QATF8 +F8CT[Z7M<"9A!29A%>92B=5S] TFSY#6MHHN2k
M19O><9SN9IFDYINX>959*8:^V9L3QH.]A0)IL)$RL .Q41)("8+VF0;G%IT&j
MB)-!B1QS&(Y;D ;I!@(F(!JS(VUOY9]4N9)A*0<.RI4C8TJ_MFX^T&Z;E@ Oi
MD'&(1(-WJ0(%2)4) %(;*1HN(!H*M0,<FG%61A%6.*(4BI9]J8*K1S(KB:(Jh
M:DH,JI-^B04W.C*H19U\*)1R0)1&60=(V53CTBH1ZC6Z2)MT:*#L2:$)@%JKg
MT5F@T67G::5>2:(6VH,I6D,;VJ$:1Q%/*J)U.3(F6I+&V4CC!E(L:J8?&J-Kf
M*G!I5G!LQA/P529PAA([0V<^ Q+L-244EV=%8X$ORD]]B@8)<',X$AE_P7,[e
MIW(R8 ,Z0 .1)2%&1W5\:BH?]J@X)ZD[UW.6*G0TT'*<>G18@)D4:($L!W4Ed
M]YG1&*L2<A"F.8;J2 9?H%)P\ 6#M*$MJC&:,2:C9!/0%4*?)J.H!5*]RJ=?c
M$$1L(*<C8Z;2*EFQ@8_,*H.\ZJO JAG4.JR#9*SX<4/*JJ9 .F'.ZJVJ U);b
M4!9GD19.< 12P!90, 5?$018@(+\D7%S4 =PHS6=M5S)MZP\Z")V\*Q]TJN;a
MPJ+5FG&%H@9TPE*@@3$.DZ4^:&5#<59TL"D&JZN0!B7\-&LD8Z:3T5C<=QMAz
M@!]F@!>;H3(O< < -!<GD%4UPC0?:V+?*+)B4 ?%*@<.:[)D-@8I.P<K:Q,]y
M^[-["+,RBSAN4+/S<;-HH*9Y^C)[VD)%Y*<YTW \4V<@@;6BDAD5EZBM"FIGx
M:D-%Y$)C(*J1JG.4FF&9*G0S8#^KZJE@:W.CZK:F&K= IZHOQZJN6H%EFW$Rw
MP (/1*LSMW-0%UG8N'5FQR(8=0<$H3W.!VSN=1M%E#'PE22?@T05,F$9EP3/v
MAT!&0A>O FQ0(4)+,4G:LAHCU5L^%2+#=%7*!!K,E5(.@I%D0!F.RWCATT9Tu
M@A/)EK*%<B@:TUBW@[EV1#S'A$EN4"'MUWKI^FFL*Q]*E">3NQP:)1L9 T\Ut
M=$/IU#6]Y;UIP#5G91?'1QO3EWQ+ 5"P)WNT!W-;)Z.GAH"'QHG,@@8B,(&!s
M*[T8!P(Y '4TL(%,!YJ)&P.%&P,EU[@&:+\*B+^-NK\-W&</+ ++^ROZ>VJNr
M9P1/( 57$ 120 0@8 =OH*S>*T_I$9$&V*&&V,(N_,(P',,R/,,T7,,T++V@q
M:U\P!;;VE6TXS'HV',1"/,1$_,+HVK^?^;\T0 /5J(&(BQ T@ ,L4 ,#S, Dp
MRF\H4 104 12T 1B2)7@ P>,]!31ZE,LHJR_AB)?$$*W^7Y/,<:_&JQH[#_Co
MQL:N-S(G_#HH$,9?3*'ZQ ;\- ?^!%!5,%"==U!TO,9D (/_H<A]W'<;^01+n
MT,9B$$1K0&I(S(&#"P(W0(TW( ,$++VA:74(C*M:9X \B,42JFONZ7HL7,2Pm
M',NR++W1:U]YC$0];&*T#,2RW,N^7,/HNGI0( 5)8 5!0 5%,,(E'$WQI,=\l
M['H3:27P]6EAW*4VVJ_5>T7(1#?D2SR6!3:L,S:OLQ-!%7W0^WI,$FD6TRK_k
M1 0")<+/\W>M,D@FZ@.^E!";<5SO5%S]HSHM\#KKJSWG_+&K)YV09E&XQ@)Ij
MT*5D2(54887>P=#GXYO>L9%:*">=I<*^.;Q54=$,RI)F:(4I$%G-J2@F>A+Pi
MBA98\ 7S6J]5<*_YB@7^Z9LMN)%G!$A)L<=O[ -D+,>+/)YP2FZ1)-$MN&UIh
M,-/S9BX[3<;M&D);8%'0YJ9B'-1R*ITF]L>!/,@!9<@&59Q3[4CL^% @5:7Sg
M9E$@<&Y$#0+N:6(579)/A-%TH-$3MM;87%E8$[R6LQ2V%">XA"ANP!=EYTS>f
M!WYY] +@98PR.Q5K]2I6[:*;<4.1A0+ZDC'H$A6$)2.@$3DX FF153B5_1,Me
MD!SP-M $:-72R=&:>-(@D-+R2J_VBJ]-H*^S4Y,3G6UA#,=?T-1D\-0@=6Y1d
M_59IC=7]]$];35!=#=1@[5 61=9J+9V(!4497:5X2G!6&S/C_&9;&Z@/]S/7c
MC6=$DQ(K8:;='3.H^=!(=%JU$R*X\S^GU#L)AL,9%P:8TC34P6#Y]6"@P7OOb
M/3(6AF$:QF$>!F(BQ@;[796XIV(LQ@8N!F-L(&,T9F,N@&/O/:*$1L%_-IC*a
M(6@5;F@/S ,,Z(!Y ($:C@4._&<U)X$D;N&()FLCOA*SD1Q8L8;2TV'+L06_z
M+0) @ (C,#OCW$XND')5$7NS)P.UAV\BH&_H0Y#FG1Y-J!BD%LWV2(2RAN1Ey
MA2,#"H(38X*9MHV%UXTL@9&?1H<HN!*OV()"EHZ;%C*UMFW<&(J_)@,3.F&Rx
M9M$!"9%T& -V*(6[NI$8JJ%VK*MD\QUNK9!<V.>)--;&1J-J^:/9%J8FR9!Zw
MWM; MH5+J(4,V<?-O5^H5=[;)@*ZV(S(/6[/:&R2?M%1A.FH[=&_!M(%R>0Jv
M,#M.4 4/$><U_6LW/6DQ&.I"C>E%715'S8,FQNE5(0(@\.D3H^NC#NRE_M:Gu
MGNB\)NPH( )1*8;3K68&YT49<CD*]Z=RUK6#BNT:TBF("MZ;O*@8$NZ..A-Mt
M.ZF@''4HAP,Z, -$5[<&C!#G?CGI3C>DZG,F]^XH-\#TGLD%_+\U, -3[,2:s
MC%HCX"(]47:LO=*QO=)#$ 1.\ 1.<($U,*P=I@=SLAFM$D#+81R9Y09P,%5Wr
M4P9=EK,@L/"8[?!FH=(Q_04* 0550 48/ZS\XDP/:!-!1W0C""N\81<JS_(-q
M;Q,/S])Z5P0Q/6$Q0 /#FBA*I)&%4AD#U$X#_/,?*X!$G]FK_?*M[=(P'?&Pp
MI_%"LEE;4U3S-%!JE2-P$,ZV@:X*S_!<?_1/L,5.L/2H53]/7T>FPKG&0O5'o
MVT[VLR;D;%A#+_<N'Z\K#07'C 1XW_-[SS=H(/7R8QK:*RL87UJT=/@M;_1>n
MO_A)L,5?( 158 2HI1TR,*Q0 8%M5"=Y1,Z;@?KDD@>O;R7^0179%Q09@A7Hm
M&HT%?_"FG(T-C/B>K_@Q/_$5?_&0;Z8;W_&4/1<A3R"[4O)4<?(I#_<K3_Q=l
M;_P1+_-.0/,VO_P9E_.!%^(\7P,^CY% ?WJ<7_3;#_-Y9S-X;_5['_7 ^/?]k
M$OA-K_D[@:Y:K_U'KZ6]MJ6G]YA?V8L; POM,3FUMZ38GMMK?W/O\WV!NE<$j
M[I[8RWLV(/+U/5>#_ZI> 2%\;"^I8+^ME_A@'N.C H[O HJ__B'Y*%]EP%B8i
MK^?Q/PA8 M,"% A]2H_TF3X0@/I47QI@?8FM]CD,V2<&:!^;.#^X#U'H/N/Ph
ML02>_S);-J!PV8!9E?"PV13(#=Z)-T",%_6+F,=.,!*2IV/ICG)!_"C"\\ 1g
MVNGS+841"  KWA?0"F#!YB6UJ ,#GIX<.! ^B&"Y 8 U2^S3O<,JH^-[$"UMf
MI<&^$@FT"0+PI<$V?974QIX!E P(4*-8EP5(!(R+4D(9/D'[N 8VV/EZA!0Xe
M O-OWFBJ') !S12/*()"T&H4GIVP>FB$U) 2. )V?9\QP$8XH?L; D@@"3 !d
MKW !6=H3>(-)( Z:&#.E-L0"Z7D#;$([_4&!$"TP&@VT"130 C+"1KASZJ Ic
M#(&Q\&.PP VX$Z9>_L,/O2]Q14$6, 6#WZDQ4U>0M#@,I+ %+4@;^H)"3SJ(b
MP;] !CN?&20G@% -/L/5Y@;A8!*0@_.&#MI!/ A&*L,>; -]$-PAEW%!(P1Aa
MN,!^Y.@0@AG7I@A#(=,KA?[J  HL28BM&*!V6EF?@<QLGWT(PD#A!4QJHQ Cz
MKKS9EPKS$RL<':^0;LC"@% +991$Q(6ZD!=.0U\(#(7AA"&&86$L")-D."Z6y
M84Z #L[0%G*]:&@1LXT,L(89AT=P"=ZB#1/%YN* WK#J42WJMF9B1DO16@Q'x
MNWDM*Z$33D65&'=&XW\MJJ^XMB!5SIE4>^M292J ][<\%5MD6V^Q5%4JH"-Tw
M8,"\JXN#"XE9H*!#C8+.X:J""2 P3361Y=,V4E6P'KUJ=@P2G%;'9@UOXD$Kv
M:6%I#S?G8P#*._-/B4@Q,A+&"*[F6$<+(9&16!$2[Z#(4%)BA!*C\5=)JS9Uu
M&KO5[)!6\N17_3D3\Z5$TCJQ-Y*LCWFE:$086<"E8ERY"A:)1A] &DF(:20Vt
MME$U4L;6>!E!UK;1C%N$,Q*WS_BC;M)*FHRL45G9,]#(E2;,<FR.M+$VID;Ps
MJ!BHXU>Z4JCE/,I&,T8;EPUJI .WT8SE1O>8B!2=1"!'\/$FP$;F^*MTVQ9Hr
M >Q1-Y*!WX8;PZ-EU%6]D=[\QGX3'%G9P+%V>ZI4&*H.P>VXEJ"".-(,5!VJq
M[Y86S=9:;%1X<=_M+1IP X!.R:%WT4A##@9'Y195Y%YDD2NGW0%&)PBKI%B&p
M"66>2H$9QRJ6'"<,9*0*/4TS""N3Q0T]PKC2(?C!E&"_9G4?I5D9HPWABDD.o
M",[E$:Z5B9J2W.I9)4DSD"4SSE6< TZR6$%)F_ E"Q!%JY),[2ZXJP!($<.>n
MON)7C]#L)<#*T.,@HJXR4T+ _(0!V-%;.DR-R1-K<%N5$,CC-*RDG4@O92!Hm
M91SNP'R8PZ.$*M3C4=*&B1%9*B5F6 Y0:RMBR)@Q%9_7MLMN#F<LEDIQ1R(5l
MU<99E6TQ;\'%O2@#<@#*T4 P,G'!RA2IMVBEK4Q510=P";S!. .8F S05$ 2k
M0A;"81BZ-L-0HA,3XZOXE%Q".EQ$HC1+O^DO,*C@R.BX$O5;8]6R#.RQ'_C(j
M5!FO&XZ)*\,82V1IQ>;:LOR)S5)C'"EH63=^0JN9(<3A1?B_-;=$7@:#HA1Ei
MH5X- 98F!1"4<]*6OX9;EKD$\"TKEHL8EW"@7$[(/78N+Z2>(F]2PK:$+<>Ph
M< !5JOQVM65,L$J+4^XV3L@\(7AKW>E%N"47662P]%0G4U3PREG),FG RGF1g
M.W)8;K*F9_"N#G?X3"9F);T^,H7&?LT4J )?H) 1@0G%,)-"&_@">' GZ* ;f
M((7\HRL"D$(S21!-DO1KZL142P.%A S,#J;A&*C"K[$!DA)$Z8Y]69467=94e
M46VJ:_Y 1@(V3=38S EFP&Q*HSF5<>S4>^Q+9#-O;J1<8U^&5;M8FS*J:8(/d
MJ"E=5EW4_ @@(7#B1P0%>ZAF==PU]<[J]4ST9PZM8U48FF%3.R)-I<DTN\?3c
M?)Q3LVJF)8C!DQJAY!R<#JMDN:B_PS;?YM;DC%Z3;H;-NUDV-Q+:?%AJDP05b
MH$2$6OJ2[50HN'-N^H"ZJ:QXI^#\-3. ;V(KMED\%QUJ,VLH30(F0CLY%DK:a
M@!19!A*J*:>W B"S34E[G=)FBI3/>9,9%V.!E)-.S:+XMN3Y-14*(BJ/U/!Uz
M0L_8^?3 V8T09P8I<9I.QDEW'*=T\0&1$V].3N<$=JJF!JM:71$A8(K^LRG y
MHL?T=B!R@FH*3C$B2:9:W#@:E+6DS+SXMBQ5BZP!FPHP1J,06D%CI<HLH9GJx
MY,  '=FI F/_&HQ2; 8<Q@(&NNB7KAHO.B&/_(60M<B:0]G<2I#F.D1*<H0Mw
MS=03,'QP9%!@GHHT%:[E5^IU** JM*R-5"HU$3""FCZ+4U(1_/1OZL8FL3<(v
M\DB1#EZ7&5\<"FA9!P2,FH'9<1+**,*H$;10!"REB4 =^D1%,@,A<2(T(S#Su
M"V.=%],U/,B)CACQ4@:X#)GY"R#0F92+P38&BHSX^%C$,8<^D':I\E)9(PVBt
MNH.('A %BD2%C%G302Q B:*D)IIQGFA2B:+$ C:\N/Q@1572MM&B) D;>E'Fs
M(4<GQDH3 O]PC-;1_'A&^TT:[19O@(U>1S<*1V^#'*6CHXC5X-%HMT?)0!^=r
MI8 T*I"!0>H&#6D?2Z2M=)'6#4?J:2+IU9BDL]"26E$>N<FRPQ3S3(C1V\A1q
M1J*BE"CE1 &_]!]6'/O18_*IS<LS+:>?CKY@.D:Q6,OZIG\RXT@!.X$&W@<9p
M4 .W+V-(2Y0A9&2*PS"=.H'&X8BH64OY)0I8:G%,219-9YJTZ.G6=)YZ$VUBo
M2^.Y;4#JMR*3(W4.S%,? #<CBA%]GGMSI2XZ_2F/F.@5_4TNM3&*HJ.YQ:1 n
MTOPG!;.D%8J*,3[]*3'E)&]4;"+12S13ZVF^A)PWE2HXIZ6Z!E+ L!J:$I5Qm
M1 _+02ZD"_9[/Q/SH*9-C.IJND8VZ2P/<5O5J+JT(MZ 1(BJ^09XLE6-2GIHl
MQ/#!I(G+G=H Y'C*8)$\+:DTM8;84^>$3P?J/ST)_!0$^-.*$U EJV.--V84k
MJJK5=XE:S-1"-1T.%:*BGU8Q4<FJ10433C.C=@V.FO4F#$_=03]U)055D<HUj
M2:K/,JF[,ZOZSJU4/2U159BM,+6VRE3$6E/%IF[=G]BRMS:>HV@34INRRI[&i
M;WLNPNZY5:=:G"0#[DI\,JBL9#"3Z[Q!G]#S?E)#C^I2PV=O0S><<;C>UL1Jh
M/[WK>#VN.?4K84O9:EU#JG.LK425BQU5+F8PC05395!.-;/:F\T:6[?-85VOg
M5G6D(-"L.CNV:JOIJE]5:X;5GT!1<9]939P&5:KJU=3:5NG&6\TCA%!7S=7_f
15%?OJEK=L.!#M=*-(/-7MR+5e
 d
end
------------------------- cut here -------------------------

  `` Life without gin is like a guitar without strings '' - Eddie van Halen
  __________________________________________________________________________
 / Edvard Tuinder      <v892231@si.hhs.nl>     <edvard@bbltv.nl.mugnet.org> \
 | Student Computer Science - Haagse Hogeschool - The Hague The Netherlands |