3 .\" RT - reset everything to normal state
10 .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .if !\\n(FT .di
16 .if \\n(NX<=1 .if \\n(AJ=0 .if \\n(FT=0 .ll \\n(LLu
19 . ie \\n(VS>=41 .vs \\n(VSu
31 .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
35 . \"IZ - initialization
40 . \" ACCENTS say \*'e or \*`e to get e acute or e grave both were 4/10
41 .ds ' \h'\w'e'u*1/10'\z\(aa\h'-\w'e'u*1/10'
42 .ds ` \h'\w'e'u*2/10'\z\(ga\h'-\w'e'u*2/10'
43 . \" UMLAUT \*:u, etc.
44 .if t .ds : \\v'-0.6m'\\h'(1u-(\\\\n(.fu%2u))*0.13m+0.00m'\\z.\\h'0.2m'\\z.\\h'-((1u-(\\\\n(.fu%2u))*0.13m+0.20m)'\\v'0.6m'
46 . \" TILDE and CIRCUMFLEX
47 .ds ^ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z^\\h'|\\\\n:u'
48 .ds ~ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z~\\h'|\\\\n:u'
50 .ds v \\\\k:\\\\h'+\\\\w'e'u/4u'\\\\v'-0.6m'\\\\s6v\\\\s0\\\\v'0.6m'\\\\h'|\\\\n:u'
52 .ds , \\\\k:\\\\h'\\\\w'c'u*0.4u'\\\\z,\\\\h'|\\\\n:u'
66 . if !\\n(PD .nr PD 1v
69 . if !\\n(PD .nr PD 0.3v
73 .ie \\n(VS>=41 .vs \\n(VSu
85 .if !\\n(FL .nr FL \\n(LLu*11u/12u
90 .if
\a\\*(CH
\a\a .ds CH "\(hy \\\\n(PN \(hy
96 .if t .wh -\\n(FMu/2u BT
97 .if n .wh -\\n(FMu/2u-1v BT
98 . \" no overstriking bold or italic; switch underlining to bold italic
99 . \" (sad historical botch, the .uf font must be 2, 3, or 4)
106 .if !\\n(IM .if !\\n(MN .pn 0
107 .so \\*(sd/tmac.scover
108 .if !\\n(IM .if !\\n(MN .rm IM MF MR
109 .if n .if !\\n(.T .pi /bin/col
111 .ds QF TECHNICAL MEMORANDUM
114 .if !"\\$1"" .nr MM 1
115 .if !"\\$2"" .nr MC 1
116 .if !"\\$3"" .nr MG 1
118 .if \\n(.$-1 .ds CA \\$2
119 .if \\n(.$-2 .ds CC \\$3
122 . \" IM - internal memorandum
125 .TM "\\$1" "\\$2" "\\$3"
130 . \" MF - memorandum for file.
133 .TM "\\$1" "\\$2" "\\$3"
139 . \" MR - memo for record
142 .TM "\\$1" "\\$2" "\\$3"
143 .ds QF MEMORANDUM FOR RECORD
150 .if !\\n(PO .ie n .nr PO 1.5i
157 .if "\\$1"LT" .ta 3.9i 4.45i
158 .if !"\\$1"LT" .ta 3.9i 4.45i
161 . if "\\$1"LT" \s36\(FA\s0
162 . if !"\\$1"LT" \s36\(LH\s0
167 . if !"\\$2"" .ds xR " \\$2
169 . if !"\\$3"" .ds xP \\$3
170 . if "\\$1"LT" \s8\f(HBBell Laboratories\fP \fH600 Mountain Avenue
171 . if !"\\$1"LT" \s8\f(HBBell Laboratories\fP \fH600 Mountain Avenue
173 Murray Hill, NJ 07974-0636
201 .de SG \" nested defn
215 .de RP \" released paper
218 .rm SG CS TM QF IM MR MF EG
221 .de TR \" Comp. Sci. Tech Rept series.
225 .rm SG CS TM QF IM MR M EG
228 . \"FP - font position for a family
231 .if '\\$1'palatino'\{\
236 .if '\\$1'lucidabright'\{\
237 . fp 1 R LucidaBright
238 . fp 2 I LucidaBright-Italic
239 . fp 3 B LucidaBright-Demi
240 . fp 4 BI LucidaBright-DemiItalic
241 . fp 5 CW LucidaSansCW\}
242 .if '\\$1'lucidasans'\{\
252 .if '\\$1'century'\{\
263 .if '\\$1'helvetica'\{\
284 .if '\\$1'souvenir'\{\
288 . fp 4 BI SouvenirBI\}
300 . \"TL - title and initialization
314 .if n .if \\n(TN .ll 29
315 .if t .if \\n(TN .ll 3.5i \}
372 .ie \\n(VS>=41 .vs \\n(VSu
382 . if \\n(NA-1 .sp 0.5
387 . if \\n(NA-2 .sp 0.5
392 . if \\n(NA-3 .sp 0.5
397 . if \\n(NA-4 .sp 0.5
402 . if \\n(NA-5 .sp 0.5
407 . if \\n(NA-6 .sp 0.5
412 . if \\n(NA-7 .sp 0.5
417 . if \\n(NA-8 .sp 0.5
467 . \"AI - authors institution
475 . \"AB - begin an abstract
492 . if !"\\$1"-" .if !"\\$1"no" \\$1
493 . if !"\\$1"-" .if !"\\$1"no" .sp\}
507 .ie \\n(VS>=41 .vs \\n(VSu
511 . \"AE - end of an abstract
517 .ie \\n(VS>=41 .vs \\n(VSu
528 . \"S2 - release paper style
529 . \"SY - cover sheet of released paper
548 .if \\n(GA=1 .nr GA 2
551 . \"S2 - first text page, released paper format
565 . \"S0- mike lesk conserve paper style
570 .if \\n(TV+\\n(AV .ns
573 .if \\n(TV+\\n(AV .rs
621 . \"check how long title is: can space extra .25 inch if short
625 .if \\n(dn<1.5v .if \\n(NA=1 .sp .25i
627 Computing Science Technical Report No. \\*(MN
700 . \"Tables. TS - table start, TE - table end
735 .if \\n(IT .if !\\n(HT \{\
745 .rm a+ b+ c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ n+ m+
746 .rr 32 33 34 35 36 37 38 40 79 80 81 82
747 .rr a| b| c| d| e| f| g| h| i| j| k| l| m|
748 .rr a- b- c- d- e- f- g- h- i- j- k- l- m-
751 .de EQ \"equation, breakout and display
754 .nr LE 1 \" 1 is center
759 .if "\\$1"C" .ds EL \\$2
761 . ds EL \\$2 \" 2 is right adjust
765 . if "\\$3"" .ds EE \\h'|10n'
766 . el .ds EE \\h'\\$3'
771 .de EN \" end of a displayed equation
776 .if \\n(ZN .if !\\n(YE .LP
777 .if !\\n(ZN .if !"\\*(EL"" .nr ZN 1
780 . if t .if !\\n(nl=\\n(PE .sp .5
781 . if n .if !\\n(nl=\\n(PE .sp 1\}
783 . if t .if !\\n(.d=\\n(PE .sp .5
784 . if n .if !\\n(.d=\\n(PE .sp 1\}\}
786 .if \\n(BD .nr LE 0 \" don't center if block display or mark/lineup
788 . if \\n(LE=1 .ds EE \\h'|10n'
791 .if !\\n(EP .if \\n(ZN \{\
792 . if \\n(LE=1 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts
793 . if \\n(LE=2 .tl \(ts\(ts\(ts\\*(10\\*(EL\(ts
795 . if !\\n(BD .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts
796 . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
797 . if \\n(BD \!\\*(10\\t\\*(EL\}\}
798 .if \\n(EP .if \\n(ZN \{\
799 . if \\n(LE=1 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts
800 . if \\n(LE=2 .tl \(ts\\*(EL\(ts\(ts\\*(10\(ts
802 . if !\\n(BD .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts
803 . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
804 . if \\n(BD \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10\}\}
807 .if \\n(YE .if \\n(EF .fi
808 .if t .if \\n(ZN .sp .5
810 .ie "\\n(.z"" .nr PE \\n(nl
813 .de PS \" start picture
814 . \" $1 is height, $2 is width, both in inches
816 .ie \\$1>0 .nr $1 \\$1
818 .in (\\n(.lu-\\$2)/2u
821 .de PE \" end of picture
825 . \" .P1/.P2 macros for programs
827 .nr XP 1 \" delta point size for program
828 .nr XV 1p \" delta vertical for programs
829 .nr XT 8 \" delta tab stop for programs
830 .nr DV .5v \" space before start of program
836 .if \\n(.$ .nr i \\$1
844 .ta 1u*\\ntu 2u*\\ntu 3u*\\ntu 4u*\\ntu 5u*\\ntu 6u*\\ntu 7u*\\ntu 8u*\\ntu 9u*\\ntu 10u*\\ntu 11u*\\ntu 12u*\\ntu 13u*\\ntu 14u*\\ntu
858 .if \\n(.$=0 .ne \\n(dnu \" -\\n(DVu
867 .if \\n(LL .nr LT \\n(LL
869 .if !\\n(PO .nr PO \\n(.o
870 .if \\n(mo-0 .ds MO January
871 .if \\n(mo-1 .ds MO February
872 .if \\n(mo-2 .ds MO March
873 .if \\n(mo-3 .ds MO April
874 .if \\n(mo-4 .ds MO May
875 .if \\n(mo-5 .ds MO June
876 .if \\n(mo-6 .ds MO July
877 .if \\n(mo-7 .ds MO August
878 .if \\n(mo-8 .ds MO September
879 .if \\n(mo-9 .ds MO October
880 .if \\n(mo-10 .ds MO November
881 .if \\n(mo-11 .ds MO December
882 .if \\n(dw-0 .ds DW Sunday
883 .if \\n(dw-1 .ds DW Monday
884 .if \\n(dw-2 .ds DW Tuesday
885 .if \\n(dw-3 .ds DW Wednesday
886 .if \\n(dw-4 .ds DW Thursday
887 .if \\n(dw-5 .ds DW Friday
888 .if \\n(dw-6 .ds DW Saturday
889 .nr yP (\\n(yr+2000)/100)
892 .if "\\*(DY"" .ds DY \\*(MO \\n(dy, \\n(yP\\n(yD
893 .if "\\*(CF"" .if n .ds CF "\\*(DY
895 . \"EM end up macro - process left over keep-release
898 .if \\n(AJ .tm Syntax error: no .AE
899 .if \\n(IF .ab Missing .FE somewhere
900 .if t .if \\n(TB=0 .wh -1p CM
909 .if \\n(FM+\\n(HM>=\\n(.p \{\
910 . tm Margins bigger than page length.
914 .if !\\n(HM .nr HM 1i
924 .if \\n(PO .po \\n(POu
935 .ch FO \\n(.pu-\\n(FMu
936 .ch FX \\n(.pu-\\n(FMu
942 .if !\\n(TD .if \\n(TC<5 .XK
956 ....if t .if \\n(.o+\\n(LL>7.75i .tm Offset + line length exceeds 7.75 inches, too wide
968 .if "\\n(.z"KJ" .nr TB 1
973 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) \{\
980 .if "\\n(.z"" .if \\$2>0 .if \\n(nl>\\n(HM \{\
981 . if (\\n(nl+1v)<(\\n(.p-\\n(FM) .di KJ \" full page figure must have new page
983 .if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2=0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i
984 .if "\\n(.z"KJ" .nr KM 1 \" KM is 1 if in a rediversion of keeps
985 .if \\n(KM>0 \!.KD \\$1 \\$2
987 .if \\n(nl<=\\n(HM .nr KR 32767
992 . if \\$2>0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i\}
994 .if \\n(KM=0 .if \\$2>0 .sp \\n(.tu-\\$1u
1000 .if \\n%-1 .tl
\a\\*(LH
\a\\*(CH
\a\\*(RH
\a
1003 . \"FO - footer of page
1011 .if \\n(NX<2 .nr WF 0
1013 .if \\n(FC<=1 .if \\n(XX .XF
1020 .if !\\n(dn .nr WF 0
1021 .if \\n(FC<=1 .if \\n(XX=0 \{\
1025 .if \\n(ML>0 .ne \\n(MLu
1027 . \"2C - begin double column
1029 .MC \" default MC is double column
1031 .de MC \" multiple columns- arg is line length
1033 .if \\n(CW>=0 .nr L1 \\n(CWu
1034 .if \\n(.$ .nr L1 \\$1n
1035 .if \\n(GW>=0 .nr GW \\n(GWu
1036 .if \\n(.$>1 .nr GW \\$2n
1037 .nr NQ \\n(LL/\\n(L1
1038 .if \\n(NQ<1 .nr NQ 1
1039 .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
1044 .if \\n(NX=0 .nr NX 1
1045 .if !\\n(NX=\\n(NQ \{\
1051 .if \\n(NQ>1 .hy \\n(HY
1053 .if \\n(NX>1 .nr CW \\n(L1
1055 .nr FL \\n(L1u*11u/12u
1056 .if \\n(NX>1 .if \\n(GW<0 .nr GW (\\n(LL-(\\n(NX*\\n(L1))/(\\n(NX-1)
1057 .nr RO \\n(L1+\\n(GW
1061 .ie \\n(NC>=\\n(NX .C2
1068 .if \\n(NC>\\n(NX .nr NC 1
1072 .ch FX \\n(.pu-\\n(FMu
1088 .if \\n(NC>\\n(NX .nr NC 1
1091 . \"1C - return to single column format
1098 Murray Hill, New Jersey 07974
1102 Piscataway, New Jersey 08854
1106 2018 Antwerp, Belgium
1115 .if \\n%>0 .tl \(ts\\*(LF\(ts\\*(CF\(ts\\*(RF\(ts
1122 .if \\n(1T .sp \\n(PDu
1126 . \"SH - (unnumbered) section heading
1137 . \"NH - numbered heading
1147 .if !\\n(.$ .nr NS 1
1148 .if !\\n(NS .nr NS 1
1150 .if !\\n(NS-4 .nr H5 0
1151 .if !\\n(NS-3 .nr H4 0
1152 .if !\\n(NS-2 .nr H3 0
1153 .if !\\n(NS-1 .nr H2 0
1154 .if !\\$1 .if \\n(.$ .nr H1 1
1157 .if \\n(NS-1 .as SN \\n(H2.
1158 .if \\n(NS-2 .as SN \\n(H3.
1159 .if \\n(NS-3 .as SN \\n(H4.
1160 .if \\n(NS-4 .as SN \\n(H5.
1166 . \"BG - begin, execute at first PP
1178 .rm S0 S1 S2 S3 OD OK TX AX WT CS TM IM MF MR RP I1 I2 I3 I4 I5 CB E1 E2
1210 .if !\\n(KG .nr FP 0
1211 .if \\n(GA>1 .if \\n(KG=0 .nr GA 0 \" next UNIX must be flagged.
1218 .if n .if \\n(TV .sp 2
1219 .if t .if \\n(TV .sp 1
1223 .if !\\n(FL .nr FL \\n(LLu*11u/12u
1227 .de RA \"redefine abstract macros
1234 . if !"\\$1"-" .if !"\\$1"no" \{\
1251 .ie \\n(VS>=41 .vs \\n(VSu
1255 . \"IP - indented paragraph
1258 .if !\\n(IP .nr IP +1
1259 .ie \\n(ID>0 .sp \\n(IDu
1262 .if \\n(.$>1 .nr I\\n(IU \\n(I\\n(IRu+\\$2n
1263 .if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu
1265 .nr TY \\n(TZ-\\n(.i
1266 .nr JQ \\n(I\\n(IU-\\n(I\\n(IR
1267 .ta \\n(JQu \\n(TYuR
1273 . \"LP - left aligned (block) paragraph
1277 .if \\n(1T .sp \\n(PDu
1282 .if \\n(1T .sp \\n(PDu
1289 . \"IE - synonym for .LP
1293 . \"RS - prepare for double indenting
1300 .if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu
1302 .nr TY \\n(TZ-\\n(.i
1305 . \"RE - retreat to the left
1311 .if \\n(IR>0 .nr IR -1
1316 .if \\n(.$ .nr TZ \\$1n
1330 .if "\\*(.T"aps" .tl '--''--'
1337 . \" fontname(CW) fontstr(\f(CW) first_arg goes_after goes_before
1338 .de OF \" this is completely WRONG if any argument contains "'s
1341 .if t .if "\\$3"" .ft \\$1
1342 .if t .if !"\\$3"" \{\
1343 \&\\$5\\$2\\$3\\f\\n(PQ\\$4
1346 . if \\n(.$=5 \&\\$5
1347 . ie "\\$3"" .ul 1000
1349 . if \\n(.$=3 \&\\$3
1350 . if \\n(.$>3 \&\\$3\\c
1351 . if \\n(.$>3 \&\\$4
1356 .OF 3 \\f3 "\\$1" "\\$2" "\\$3"
1358 .de BI \" bold italic -- only on 202
1359 .OF 4 \\f4 "\\$1" "\\$2" "\\$3"
1365 .ie \\n(.$>0 \&\\$1\f\\n(PQ\\$2
1370 .OF 2 \\f2 "\\$1" "\\$2" "\\$3"
1372 . \"CW - constant width font
1375 .if t .if \\n(.$>0 \%\&\\$3\f(CW\\$1\f\\n(PQ\&\\$2
1376 .if t .if \\n(.$=0 .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
1377 .if n .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
1379 . \"TA - tabs set in ens or chars
1381 .ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n
1383 . \"SM - make smaller size
1385 .ie \\n(.$ \&\\$3\s-2\\$1\s0\\$2
1388 . \"LG - make larger size
1392 . \"NL - return to normal size
1396 . \"DA - force date; ND - no date or new date.
1398 .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
1404 .ds DY \\$1 \\$2 \\$3 \\$4
1410 . \"FS - begin footnote
1420 . tm Footnote within footnote-illegal.
1425 . \"FE - footnote end
1432 .if !\\n(XX-1 .nr dn +\\n(.v
1434 .if !\\n(NX .nr WF 1
1435 .if \\n(dl>\\n(CW .nr WF 1
1436 .ie (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
1438 . if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
1439 . if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
1440 . if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)\}
1444 .\" First page footer.
1455 .if !\\n(1T .nr KG 1 \"not in abstract repeat next page.
1456 .if "\\n(.z"OD" .nr KG 0 \" if in OK, don't repeat.
1460 .if n __________________________
1479 .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
1500 Holmdel, New Jersey 07733
1504 Whippany, New Jersey 07981
1508 Naperville, Illinois 60540
1510 .de UL \" underline argument, don't italicize
1511 .ie t \\$1\l'|0\(ul'\\$2
1512 .el .I "\\$1" "\\$2"
1515 .ie \\n(GA \\$2\s-1UNIX\s0\\$1
1517 .ie n \{\\$2UNIX\\$1*
1521 .el registered trademark
1524 .el \\$2\s-1UNIX\\s0\\$1\\f1\(rg\\fP
1530 operating system\\$1
1544 .de B1 \" begin boxed stuff
1548 .if "\\$1"C" .nr BC 1
1551 .de B2 \" end boxed stuff
1554 .if \\n(.$>0 .nr BI \\$1n
1563 .if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u
1571 \l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu'
1573 .if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u
1587 .ie \\n(.$ Copy to \\$1:
1591 .ie t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
1592 .el \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'