Path: utzoo!attcan!uunet!cs.utexas.edu!yale!cmcl2!kramden.acf.nyu.edu!brnstnd From: brnstnd@kramden.acf.nyu.edu (Dan Bernstein) Newsgroups: comp.sources.bugs Subject: OFFICIAL pty part 7 Summary: This is an official addition to pty. Please uudecode and unshar it. Message-ID: <10068:Oct2004:27:4890@kramden.acf.nyu.edu> Date: 20 Oct 90 04:27:48 GMT Sender: brnstnd@kramden.acf.nyu.edu (Dan Bernstein) Followup-To: comp.sources.d Organization: IR Lines: 791 Archive-name: pty/part07uu begin 600 part07 M4W5B;6ET=&5D+6)Y.B!$86X@0F5R;G-T96EN(#QB&ES=&EN9PHC(&9I;&5S+"!T>7!E(")S:"!F:6QE("UC(BX@ M(%EO=2!C86X@86QS;R!F965D('1H:7,@87,@2!T>7!I;F<@(G-H(#QF:6QE(BP@92YG+BX@($EF M('1H:7,@87)C:&EV92!I6]U"B,@=VEL;"!S964@=&AE M(&9O;&QO=VEN9R!M97-S86=E(&%T('1H92!E;F0Z"B,)"2)%;F0@;V8@'1R86-TS%](B A/2 B+6,B(#L@=&AE;B *("!E M8VAO('-H87(Z(%=I;&P@;F]T(&-L;V)B97(@97AI M6"\O(B ^)TE.4U1!3$PN8W1R;"<@/#PG14Y$7T]&7T9)3$4G"E@C(2]B:6XO M6]U('1H6]U(&-A;B!K:6QL(&%N9"!R M97-T87)T('1H:7,@2!T:6UE+@I866]U(&UA>2!P6]U(&QA=&5R+"!A9G1E2!W97)E(&1E7-T96TN"EA$=7)I;F<@36%Y(#$Y.3 @ M<'1Y(#,N,"!W87,@=W)I='1E;B!C;VUP;&5T96QY(&9R;VT@7-T96TN($ET(&AA6]U(&UA:V4@:70@=&AR;W5G:"!I;G-T M86QL871I;VX@86YD('1E6]U(&AA=F4@86YY M('1R;W5B;&4L('!L96%S92!A;'-O(&=E= I8:6X@=&]U8V@@=VET:"!T:&4@ M875T:&]R+B!)9B!Y;W4@:&%V92!A(&1I9F9E2!P;W)T+"!T:&4@875T:&]R('=O=6QD"EAL;W9E('1O(&AE87(@ M86)O=70@:70N"E@*6$]N92!N;W1E.B!,:6ME(&%L;"!S;V9T=V%R92P@<'1Y M(&-O;65S('=I=&AO=70@=V%R'1E;G0*6'!E6]U(&1O;B=<)R=T('=A;G0@=&\@;6%K92!A;GD@ M;6%J;W(@8VAA;F=E6]U2=<)R=S(&-A<&%B:6QI=&EE2!A;F0*6&UO9&4@8VAA;F=I;F2!I2!S96-U2!T:&%N('5S=6%L+"!Y M;W4@<')O8F%B;'D*6'=O;B=<)R=T(&)E(&%B;&4@=&\@2!W:71H M;W5T('!R:79I;&5G97,N("A(;W=E=F5R+"!I9B!Y;W5R('-Y2!R=6YN:6YG"EAP='D@86YY=V%Y+BD*6"<*6 I8 M96-H;R G+2TM+2T@4')E6]U(&AA=F4@=&\@9&5C M:61E(&)E='=E96X*6'-E='1I;F<@=7 @<'1Y(&%S(')O;W0@*$-A2!F2!A;&P@2!B96-A=7-E(&]F($)31"!L M:6UI=&%T:6]N2!T2!S M96YS:6)L>2!H86YD;&5S(&ET6]U M)UPG)W9E(&1E8VED960@;VX@4D]/5"P@4%19+"!O2!T:&4*6&%U=&AO2!I2!R97-T"X@5&AE5]R96%D2!R97-T2!I2!E M>&5C*"D@:7,@:6X@6]U(&AA=F4@ M=&\@6]U('=A;G0I+B!P='D@2!P6]U('-H;W5L9"!H879E(&=R;W5P('1T>2P*6'=H:6-H(&UO M7-T96US(&AA=F4@87,@9VED(#0N( I8)PI8"EAE8VAO M("=2=6YN:6YG("=<"E@G)"!T='EG='1Y M.EM>.ETJ.EPH+BI<*3HN*B]<,2]P)UPG)R \("]E=&,O9W)O=7!@(B N+BXG M"EAT='EG='1Y.EM>.ETJ.EPH+BI<*3HN*B]< M,2]P)R \("]E=&,O9W)O=7!@(@I8"EAC87-E("(D='1Y9W)O=7 B(&EN"E@T M*2!E8VAO("<*6$D@6]U(&AA=F4@82!T='D@9W)O=7 L(#0@ M87,@=7-U86PN($=O;V0N"E@G(#L["E@G)RD@96-H;R G"EA9;W4@9&]N)UPG M)W0@:&%V92!A('1T>2!G6]U(&AA=F4@82!T='D@9W)O M=7 L(&=I9" G(B1T='EG'0L('=E)UPG)W)E(&=O:6YG('1O(&1R=61G92!T:')O=6=H('1H M92!C;VYF:66]U M(&AA=F4@=&\@2!T:&%T('EO M=2!C86X@9&ES8V]N;F5C="!A;F0@2!I2P@4%191$E2+"!S:&]U;&0@ M8F4@;6]D92 P-S P+"!O=VYE5PB('1O($-#3U!44R!I M;B!T:&4@36%K969I;&4N"E@*6$EN($-A7!E("UX4R!T;R!P='D@86QL('1H92!T M:6UE+B!)"EAR96-O;6UE;F0@=&AE(&9I7,@87)E"EAL86)E;&QE9"!A7AX(&%N9" O9&5V+W1T M>7AX+"!W:&5R92!X>"!I6]U)UPG)W)E M(&1E2!B86YK+BD*6 I866]U(&-A;B!C:&%N9V4@=&AO2!D969I;FEN9RP@92YG+BP@4%19,3U<(D%"0T1%1D=<(B!O<@I8 M4%19,CU<(C R-#8X86)F<5PB(&EN('1H92!-86ME9FEL92X@66]U(&AA=F4@ M870@;&5A2!I=',@ M;W=N+"!N97BP@ M86YD(&1E9FEN92!05%DQ(&%P<')O<')I871E;'DN('!T>2!W:6QL"EAO;FQY M('5S92!T:&]S92!N97<@<'1Y2!S;VUE(&YE=R!B86YK2!A(&-H=6YK(&]F('1H92!O;&0@8F%N:W,N(#0N($=I=F4@ M<'1Y(&%L; I8=&AE(&]L9"!B86YK2!S96%R M8VAE2!T:')O=6=H(%!463$@86YD(%!463(@8GD@9&5F875L M=#L@9F]R"EAE9F9I8VEE;F-Y+"!05%DQ(')E86QL>2!S:&]U;&0@2!L:71T;&4@8V]N=')O;"!O=F5R(&ET2!W:&5N(&ET(')E8V]N;F5C=',N($EF(&%N>2!O9B!Y;W5R('1T M>0I8*&YO="!J=7-T('!S975D;RUT='DA*2!F:6QE;F%M97,@87)E(&QO;F=E M65A2!B971T97(@9&5F:6YE9"!A M2!I;B!I="!W:&5N(&=I=F5N("UX=2X@268@>6]U(&AA=F4@82!D:69F M97)E;G0*6&9I;&4L(&%D9" M1%!4655435!?1DE,13U<(B]F;V\O8F%R+W5T M;7!<(B!T;R!$149)3D53(&EN('1H92!-86ME9FEL92X*6 I83F]T92!T:&%T M("]E=&,O=71M<"!I2!H;VQE+"!W:&EC:"!E=F5N(&]N"EAS:6YG;&4M=7-E2!S=7!P;W)T"EAT:&4@2P@86YD('=H>2!S:&]U;&0@80I82!J=7-T('!U=',@(G!T>2(@ M:6X*6'1H92!H;W-T(&9I96QD+B!9;W4@8V%N(&-H86YG92!T:&ES('=I=&@@ M+4105%E55$U07TA/4U0]7")F;V]<(CL@>6]U(&UA>0I8979E;B!W86YT('1O M(&UA:V4@4%197U5435!(3U-4(&-A;&P@82!F=6YC=&EO;B!T:&%T('EO=2!D M969I;F4N"E@*6"A3:6UI;&%R(&-O;6UE;G1S(&%P<&QY('1O(%!465=435!? M2$]35"X@5&AE2!R96-O2!A2!D969I;FEN9R!-55-47U5435 L(&5T8RXL(&EN('1H M92!S86UE('=A>2X*6 I83F]T92!T:&%T('1H92!U2!E<75A=&4@2!I;G1E7-T96T*6&9O2!G7,@ M&,N"E@G"E@*6&-A6]U(&%L2!G M'!E8W0@=&\@8F4@86)L92!T;R!F;V]L(&%R;W5N9"!W M:71H("]D978O='1Y+B!!9G1E2P@=&AI7,@9&]N)UPG)W0*6&AA=F4@=&\@8F4@;&5F="!O M<&5N(&9O2!C:&%N9V5S M(&ET('1O(&UO9&4@54Y54T5$4%1934]$12P@9&5F875L= I8,#8P,"X@*%1H M:7,@:7,@86YO=&AE6]U(')E86QL>2!W86YT('1O(&%L;&]W('5N<')I=FEL M96=E9"!A8V-E2!T:&%T('-O;65O;F4G7"2!D:69F97)E;G0@;6]D97,N(%1Y<&EC86QL>0I855-%1%!464U/1$4@2!A8V-E2!W86YT('1O(&UA:V4@=&AE(&UI2 P-C(P+" P-S P M+"!O7,@8F4@,#H@=&AE('!O:6YT(&]F('1H92!T='D@9W)O=7 * M6&ES('1H870@;VYL>2!S971G:60M='1Y('!R;V=R86US(&-A;B!A8V-E6]U7-T96TG7"2!K965P2!J=7-T(&9O<@I88G5F9F5R('-P86-E M+"!F965L(&9R964@=&\@8VAA;F=E('1H:7,N"E@G"E@*6&5C:&\@)RTM+2TM M(%!R97-S(')E='5R;B!T;R!C;VYT:6YU92X@)R!\('1R("UD("=<,#$R)SL@ M7!E('1H870@86YY(&]T:&5R('!O:6YT97(@8V%N(&)E M('-A9F5L>2!C;VYV97)T960@=&\@86YD(&)A8VL["EA'14Y%4DE#(&ES(&-H M87(@8GD@9&5F875L="P@8G5T(&]N(&YE=V5R(&UA8VAI;F5S(&-A;B!B92!S M970@=&\@=F]I9"X*6$%S(&ET)UPG)VQL(&)E(&%T(&QE87-T(&9I=F4@>65A MF4@8VAA;F=EF4G"EAI9B!M86X@-"!T='D@?"!S960@)W,O7P@O+V3L@96-H;R G"EA)('-E92!Y;W4@:&%V M92!W:6YD;W<@6]U(&AA=F4@875X:6QI87)Y(&-H87)A8W1E#UN.R!E8VAO("<*6$D@&EL:6%R>2!C:&%R86-T97)S+@I8)PI8 M9FD*6 I896-H;R G+2TM+2T@4')E6]U($)31" T+C,_)R [.PI8(" @ M("!E6]U M(&1O;B=<)R=T(&AA=F4@6]U(&AA=F4@=7-L965P*"DN($=O M;V0N"E@G"EAE;'-E(&AA=F5U6]U"EAH879E(%5.25@M9&]M86EN('-O8VME=',L(&%N M9"!C:&5C:R!W:&5T:&5R('EO=2!H879E(&9I;&4@9&5S8W)I<'1O<@I8<&%S M3L@96-H;R G"EA)('-E92!Y;W4@:&%V M92!53DE8+61O;6%I;B!S;V-K971S+B!';V]D+@I8)PI8(" @96-H;R G4G5N M;FEN9R D(&UA;B!R96-V;7-G('P@2!B90I88G5G9WDL(&%S(&ET M)UPG)W,@82!R96QA=&EV96QY(&YE=RP@<&]W97)F=6PL(&%N9"!R87)E;'D@ M97AP;&]I=&5D"EAF96%T=7)E+B!)9B!Y;W4@:&%V92!T6]UF5R;PI88V]M<&QA:6YT7,O='EP97,N:#XL($D@6EN9R!F:6QE+F@N;VQD('1O(&9I;&4N: I8*'1H M92!O6]U)UPG)W)E('=O2$M+2UM86ME(&$@;F5W('5I M9"P@<'1Y+"!N;W0@86QL;W=I;F<@;&]G:6YS+@I8"E@O971C+W!A3HJ.G=H871E=F5R.C0Z.CHO8FEN+W1R=64*6"<*6 I896-H;R G+2TM M+2T@4')E6]U(&AA=F4@82!T='D@9W)O=7 @2 O=7-R+V5T8R]P='D[ M(&-H;6]D(#6]U(&AA=F4@86QL('1H M92!P2!C;VYF:6=U2X*6 I80VAA;F=E(&5A8V@@;V8@=&AE;2!T;R!O=VYE&ET960@;F]R;6%L;'DL($UA:V5L;V<@6]U('-H;W5L9"!H879E(&%N"EAE>&5C=71A M8FQE('!T>2!P2AS2AD2!A9V%I;BX*6 I8268@>6]U('-T:6QL(&-A;B=<)R=T(&=E="!T M:&4@8V]D92!T;R!C;VUP:6QE+"!L970@=&AE(&%U=&AO6]U('-H;W5L9"!H879E('-O;64@97AE M8W5T86)L97,@W!T>2QB:69F+&1I'-E'-E M2!S=7)E(&YO;F4@;V8@=&AE('-H96QL"EAS8W)I<'1S(&%R M92!S971U:60N"E@*6$EN($-A6]UW-C&ES=&EN9R!F:6QE(%PB)W5T:6PO;&]C:RYC+F-T3);,3 P73L*6"!S=')U8W0@3H@(BD["E@@:68@*&9G971S M*&ME>2QS:7IE;V8H:V5Y*2 M(#(LF5O M9BAK97DR*2 M(#(LF5O9BAK97DR*2QS M=&1I;BD@/3T@3E5,3"D@?'P@2QK97DR*2D*6 E["E@)("AV M;VED*2!PF4A"F9I"B,@96YD M(&]F("=U=&EL+VQO8VLN8RYC=')L)PIF:0II9B!T97-T("UF("=U=&EL+W-C MS%](B A/2 B+6,B(#L@=&AE;B *("!E M8VAO('-H87(Z(%=I;&P@;F]T(&-L;V)B97(@97AI2YC=')L)UPB(%PH-C,@8VAA6"\O(B ^)W5T:6PO2YC=')L M)UPB(&-O;G1A:6YS(#(@8V]N=')O;"!C:&%R86-T97)S"FEF('1EF4A"F9I"F-H;6]D("MX("=U=&EL+W-CS%](B A M/2 B+6,B(#L@=&AE;B *("!E8VAO('-H87(Z(%=I;&P@;F]T(&-L;V)B97(@ M97AI'1R86-T:6YG(%PB)W5T:6PO=V%L;"YC+F-T7,O=&EM96(N M:#X*6"-I;F-L=61E(#QS>7,O9FEL92YH/@I8(VEF9&5F($)31 I8(VEN8VQU M9&4@/&QI;6ET6YA;64H*3L*6&5X=&5R;B!L;VYG('1I;64H*3L*6"-D969I M;F4@4%19551-4%]&24Q%("(O971C+W5T;7 B"E@*6&UA:6XH*0I8>R *6"!R M96=IPI8(" @*'9O:60I(&9P&ET*#$I.PI8("!]"E@@=7-E6X@/2!T='EN86UE*#(I*2D*6" @>PI8(" @*'9O:60I M(&9P&ET*#$I.PI8("!]"E@*6"!T(#T@=&EM92@H;&]N M9R J*2 P*3L*6"!T;2 ](&QO8V%L=&EM92@F="D["E@*6" H=F]I9"D@F5O9BAU="DL,2QF:2DI"E@@(" @(&EF("AU M="YU=%]N86UE6S!=*0I8(" @(" @>PI8(" @(" @("AV;VED*2!S<')I;G1F M*&9N='1Y+"(O9&5V+R4N.',B+'5T+G5T7VQI;F4I.PI8(" @(" @(&EF("@H M9F0@/2!O<&5N*&9N='1Y+$]?5U)/3DQ9*2D@/3T@+3$I"E@@(" @(" @(" H M=F]I9"D@9G!R:6YT9BAS=&1EPI8 M"2 H=F]I9"D@=W)I=&4H9F0L8G5F+'!OF4A"F9I"B,@96YD(&]F("=U=&EL+W=A M;&PN8RYC=')L)PIF:0II9B!T97-T("UF("=U=&EL+W=R:71E+F,N8W1R;"<@ M+6$@(B1[,7TB("$]("(M8R(@.R!T:&5N( H@(&5C:&\@&ES=&EN9R!F:6QE(%PB)W5T:6PO=W)I=&4N8RYC=')L M)UPB"F5L'1R86-T:6YG(%PB)W5T:6PO=W)I=&4N M8RYC=')L)UPB(%PH,C7!ER *6"!R96=IPI8(" @*'9O M:60I(&9PPI8(" @*'9O:60I M(&9P&ET*#$I.PI8("!]"E@@=7-E6X@/2!T='EN86UE*#(I*2D*6" @>PI8 M(" @*'9O:60I(&9P5QN(BD["E@@(" H=F]I9"D@97AI="@Q*3L*6" @?0I8"E@@=" ] M('1I;64H*&QO;F<@*BD@,"D["E@@=&T@/2!L;V-A;'1I;64H)G0I.PI8"E@@ M:68@*&9I(#T@9F]P96XH4%19551-4%]&24Q%+")R(BDI"E@@("!W:&EL92 H M9G)E860H*&-H87(@*BD@)G5T+'-I>F5O9BAU="DL,2QF:2DI"E@@(" @(&EF M("@API8"2 @("AV;VED*2!S=')N8W!Y M*&QI;F4L=70N=71?;&EN92PX*3L*6 D@("!L:6YE6SA=(#T@)UPP)SL*6 D@ M("!L:6YE&ET*#$I.PI8("!] M"E@@:68@*&QI;F5S(#X@,2D*6" @("AV;VED*2!F<')I;G1F*'-T9&5R6X@*R U+'1M+3YT;5]H M;W5R+'1M+3YT;5]M:6XI.PI8("AV;VED*2!WF5O9BAB=68I("T@;V9FPI8(" @*'9O:60I(&9S=&%T*&9D+"9S="D["E@@("!I9B H(2AS="YS=%]M M;V1E("8@,# R,"DI"E@@(" @>PI8(" @(" H=F]I9"D@9G!R:6YT9BAS=&1E M&ET*#$I.PI8(" @('T*6" @(&9O&ET*# I.PI8?0I%3D1?3T9?1DE,10IE8VAO('-H87(Z(&YO=&4Z(%PB)W5T M:6PO=W)I=&4N8RYC=')L)UPB(&-O;G1A:6YS(#$@8V]N=')O;"!C:&%R86-T M97(*:68@=&5S=" R-S(X("UN92!@=V,@+6,@/"=U=&EL+W=R:71E+F,N8W1R M;"=@.R!T:&5N"B @("!E8VAO('-H87(Z(%PB)W5T:6PO=W)I=&4N8RYC=')L M)UPB('5N<&%C:V5D('=I=&@@=W)O;F<@2YB860*96-H;R!S:&%R.B!U=&EL+W-C M0IM=B!U=&EL+W-C M