|
|
1.1 ! root 1: |associate(mercury; ! 2: clear temporary_counter, clear string temporary_array(0) temporary_array(1) ! 3: temporary_array(2) temporary_array(3) temporary_array(4) temporary_array(5) ! 4: temporary_array(6) temporary_array(7) temporary_array(8) temporary_array(9); ! 5: ! 6: if begin EQUAL_STRING(temporary_array(0), yes), ! 7: incr mercury_counter, ! 8: set string mercury_array(mercury_counter) ! 9: "CHM - Chemistry and Materials", ! 10: if end, ! 11: if begin EQUAL_STRING(temporary_array(1), yes), ! 12: incr mercury_counter, set string mercury_array(mercury_counter) ! 13: "CMM - Communications", ! 14: if end, ! 15: if begin EQUAL_STRING(temporary_array(2), yes), ! 16: incr mercury_counter, set string mercury_array(mercury_counter) ! 17: "CMP - Computing", ! 18: if end, ! 19: if begin EQUAL_STRING(temporary_array(3), yes), ! 20: incr mercury_counter, set string mercury_array(mercury_counter) ! 21: "ELC - Electronics", ! 22: if end, ! 23: if begin EQUAL_STRING(temporary_array(4), yes), ! 24: incr mercury_counter, set string mercury_array(mercury_counter) ! 25: "LFS - Life Sciences", ! 26: if end, ! 27: if begin EQUAL_STRING(temporary_array(5), yes), ! 28: incr mercury_counter, ! 29: set string mercury_array(mercury_counter) ! 30: "MAN - Manufacturing", ! 31: if end, ! 32: if begin EQUAL_STRING(temporary_array(6), yes), ! 33: incr mercury_counter, ! 34: set string mercury_array(mercury_counter) ! 35: "MAS - Mathematics and Statistics", ! 36: if end, ! 37: if begin EQUAL_STRING(temporary_array(7), yes), ! 38: incr mercury_counter, set string mercury_array(mercury_counter) ! 39: "MKT - Marketing", ! 40: if end, ! 41: if begin EQUAL_STRING(temporary_array(8), yes), ! 42: incr mercury_counter, set string mercury_array(mercury_counter) ! 43: "PHY - Physics", ! 44: if end, ! 45: if begin EQUAL_STRING(temporary_array(9), yes), ! 46: incr mercury_counter, set string mercury_array(mercury_counter) ! 47: "STD - Standards", ! 48: if end; ! 49: ! 50: [chm; ! 51: incr temporary_counter, incr mercury_counter, ! 52: set string mercury_array(mercury_counter) ! 53: "CHM - Chemistry and Materials";] ! 54: [cmm; ! 55: incr temporary_counter, incr mercury_counter, ! 56: set string mercury_array(mercury_counter) "CMM - Communications";] ! 57: [cmp; ! 58: incr temporary_counter, incr mercury_counter, ! 59: set string mercury_array(mercury_counter) "CMP - Computing";] ! 60: [elc; ! 61: incr temporary_counter, incr mercury_counter, ! 62: set string mercury_array(mercury_counter) "ELC - Electronics";] ! 63: [lfs; ! 64: incr temporary_counter, incr mercury_counter, ! 65: set string mercury_array(mercury_counter) "LFS - Life Sciences";] ! 66: [man; ! 67: incr temporary_counter, incr mercury_counter, ! 68: set string mercury_array(mercury_counter) "MAN - Manufacturing";] ! 69: [mas; ! 70: incr temporary_counter, incr mercury_counter, ! 71: set string mercury_array(mercury_counter) ! 72: "MAS - Mathematics and Statistics";] ! 73: [mkt; ! 74: incr temporary_counter, incr mercury_counter, ! 75: set string mercury_array(mercury_counter) "MKT - Marketing";] ! 76: [phy; ! 77: incr temporary_counter, incr mercury_counter, ! 78: set string mercury_array(mercury_counter) "PHY - Physics";] ! 79: [std; ! 80: incr temporary_counter, incr mercury_counter, ! 81: set string mercury_array(mercury_counter) "STD - Standards";] ! 82: [yes; ! 83: incr temporary_counter, ! 84: set string temporary_array(temporary_counter) yes;] ! 85: [no; ! 86: incr temporary_counter, ! 87: set string temporary_array(temporary_counter) no;]) ! 88: |comment<summary: mercury (chm, cmm, cmp, elc, lfs, man, mas, mkt, phy, std mercury distribution for cover sheet)> ! 89: ! 90: |associate(proprietary_class;;; ! 91: [yes; ! 92: set string proprietary_string yes;] ! 93: [no; ! 94: set string proprietary_string no;]) ! 95: |comment<summary: proprietary_class (proprietary classification for cover sheet)> ! 96: ! 97: |associate(government_security;;; ! 98: [yes; ! 99: set string government_string yes;] ! 100: [no; ! 101: set string government_string no;]) ! 102: |comment<summary: government_security (government security clearance for cover sheet)> ! 103: ! 104: |associate(earlier;;; ! 105: ! 106: [document_number $; ! 107: set string earlier_document_number_string $;] ! 108: [$; ! 109: set string earlier_document_number_string $;]) ! 110: |comment<summary: earlier (replacing earlier document_number for cover sheet)> ! 111: ! 112: |associate(att;;; ! 113: ! 114: [is_release yes; ! 115: set string att_release_string yes;] ! 116: [is_release no; ! 117: set string att_release_string no;] ! 118: [yes; ! 119: set string att_release_string yes;] ! 120: [no; ! 121: set string att_release_string no;]) ! 122: |comment<summary: att (is_release for cover sheet)> ! 123: ! 124: |environment(dh_name; ! 125: divert.string dh_string;) ! 126: |comment<summary: dh_name (department head's name for cover sheet)> ! 127: ! 128: |environment(director_name; ! 129: divert.string director_string;) ! 130: |comment<summary: director_name (director's name for cover sheet)> ! 131: ! 132: |environment(distribute_complete_memo; ! 133: divert.input on complete_memo_string;) ! 134: |comment<summary: distribute_complete_memo (distribution list for complete memo for cover sheet)> ! 135: ! 136: |environment(distribute_cover_sheet; ! 137: divert.input on cover_sheet_string;) ! 138: |comment<summary: distribute_cover_sheet (distribution list for cover sheet for cover sheet)> ! 139: ! 140: |associate(add_totals;;; ! 141: ! 142: [text $; ! 143: add constant text_counter $, add constant other_marker $;] ! 144: [other $; ! 145: add constant other_counter $;] ! 146: [figures $; ! 147: add constant figure_counter $;] ! 148: [tables $; ! 149: add constant table_counter $;] ! 150: [references $; ! 151: add constant reference_counter $;]) ! 152: |comment<summary: add_totals (text, other, figure, table, reference counts for cover sheet)> ! 153: ! 154: |environment(other; ! 155: store other_marker page_counter;) ! 156: |comment<summary: other (end of text body/start of attached pages)> ! 157: ! 158: |environment(cover_sheet; ! 159: clear string page_header page_footer, new.page, line.spacing 1, ! 160: inline off, size 10, inline on, font.family helvetica, ! 161: line.length 7.5i, page.length +.75i, page.offset .3i, indent 0, ! 162: cs_heading_page1, ! 163: cs_title, ! 164: cs_authors, ! 165: cs_numbers, ! 166: cs_keywords, ! 167: cs_mercury, ! 168: cs_abstract_part1, ! 169: cs_footer_page1, ! 170: cs_abstract_part2, ! 171: cs_heading_page2, ! 172: cs_distribution_list, ! 173: cs_spacing, ! 174: cs_government, ! 175: cs_att, ! 176: cs_signatures, ! 177: cs_proprietary, ! 178: cs_earlier, ! 179: cs_footer_page2, ! 180: cs_abstract_continuation, ! 181: cs_distribution_continuation;) ! 182: |comment<summary: cover_sheet (produce the coversheet here)> ! 183: ! 184: |environment(cs_heading_page1; ! 185: spacing on, goto 0.2i, inline off, size 16, space 18, font bold, ! 186: title "AT&T Bell Laboratories" " " "Document Cover Sheet", ! 187: title " " " " "for Technical Memorandum"; ! 188: ! 189: thick.line) ! 190: ! 191: |environment(cs_title; ! 192: new.line, remember position0, ! 193: text bold "Title:", horizontal.motion 5.5i, ! 194: text bold "Author's Date:", ! 195: return position0, ! 196: indent +.5i, line.length 5.0i, ! 197: macro title_string, ! 198: line.length 7.5i, indent -.5i, ! 199: return position0, blank.lines, indent.line 6i, ! 200: string date_string, new.line; ! 201: ! 202: blank.lines -0.1i, thick.line) ! 203: ! 204: |environment(cs_authors; ! 205: tab.stops 1.5i 4.45i 5.7i 6.95i, ! 206: if else GT_NUMBER(author_counter, 1), ! 207: set string plural_string "s", ! 208: if else, ! 209: clear string plural_string, ! 210: tab, text bold "Author", ! 211: string bold plural_string, ! 212: tab, text bold "Location", tab, text bold "Ext.", ! 213: tab, text bold "Dept.", ! 214: tab.stops 4.2i 4.5i 5.5i 6.7i, indent .2i, ! 215: |for i in 1 2 3 4 5 6 7 8 9 [ ! 216: if begin GE_NUMBER(author_counter, $i), ! 217: new.line, string author_array($i), tab, ! 218: string location_array($i), text " ", string room_array($i), tab, ! 219: string extension_array($i), tab, string department_array($i), ! 220: if end, ! 221: ] ! 222: new.line; ! 223: ! 224: blank.lines -0.1i, thick.line) ! 225: ! 226: |environment(cs_numbers; ! 227: tab.stops 0.9i 3.4i 5.65i, ! 228: if else GT_NUMBER(document_counter, 1), ! 229: set string plural_string "s", ! 230: if else, ! 231: clear string plural_string, ! 232: tab, text bold "Document No", ! 233: string bold plural_string, text bold ".", ! 234: tab, text bold "Filing Case No", ! 235: string bold plural_string, text bold ".", ! 236: tab, text bold "Project No", ! 237: string bold plural_string, text bold ".", ! 238: tab.stops 0.8i 3.5i 5.75i, ! 239: |for i in 1 2 3 4 5 6 7 8 9 [ ! 240: if begin GE_NUMBER(document_counter, $i), ! 241: new.line, tab, string document_array($i), ! 242: tab, string file_case_array($i), tab, string work_program_array($i), ! 243: if end, ! 244: ] ! 245: new.line; ! 246: ! 247: blank.lines -0.1i, thick.line) ! 248: ! 249: |environment(cs_keywords; ! 250: text bold "Keywords:", ! 251: blank.lines 0.1i, indent.line .2i, adjust off, ! 252: macro keyword_string, new.line; ! 253: ! 254: blank.lines -0.1i, thick.line) ! 255: ! 256: |environment(cs_mercury; ! 257: tab.stops 2i 4i, ! 258: text bold "MERCURY Announcement Bulletin Sections:", ! 259: blank.lines 0.1i, indent .9i, inline off, size 8, space 10, ! 260: |for i in 1 4 7 [ ! 261: if begin GE_NUMBER(mercury_counter, $i), ! 262: set i_plus_one $i+1, ! 263: set i_plus_two $i+2, ! 264: string mercury_array($i), tab, ! 265: string mercury_array(i_plus_one), tab, ! 266: string mercury_array(i_plus_two), ! 267: if end, ! 268: ] ! 269: ; ! 270: ! 271: blank.lines -0.1i, thick.line) ! 272: ! 273: |environment(cs_abstract_part1; ! 274: text bold "Abstract:", minimum.lines 0, paragraph, ! 275: remember position0;) ! 276: ! 277: |environment(cs_footer_page1; ! 278: goto 9.375i, ! 279: remember position1, ! 280: thick.line, ! 281: ! 282: store total_counter page_counter, decr total_counter, ! 283: add total_counter text_counter, add total_counter other_counter, ! 284: add constant total_counter 2, ! 285: store other_counter total_counter, sub other_counter other_marker, ! 286: store text_counter total_counter, sub text_counter other_counter, ! 287: size -2, ! 288: text bold "Total Pages ", text "(including document cover sheet): ", ! 289: size +2, number total_counter, ! 290: ! 291: return position1, blank.lines .5i, indent .6i, ! 292: if else begin EQUAL_STRING(proprietary_string, yes), ! 293: text bold " AT&T \(em PROPRIETARY (Restricted)", ! 294: indent -.1i, ! 295: new.line, text "Solely for authorized persons having a need to know", ! 296: new.line, text "Use pursuant to Company Instructions.", ! 297: new.line, text "Requires Department Head approval (see below).", ! 298: if end, ! 299: if else begin, ! 300: text bold " AT&T \(em PROPRIETARY", ! 301: indent -.1i, ! 302: new.line, text "Use pursuant to Company Instructions", ! 303: if end, ! 304: indent 0, ! 305: ! 306: return position1, blank.lines .2i, indent.line 5.25i, ! 307: text bold "Mailing Label";) ! 308: ! 309: |environment(cs_abstract_part2; ! 310: return position0, indent .2i, line.length 7i, ! 311: invoke at constant 9.375i catch_diverter, macro abstract_string, ! 312: if begin EQUAL_DIVERSION(catch_output), ! 313: invoke end, rename catch_output abstract_string, ! 314: store diversionheight more_abstract, ! 315: if end; ! 316: ! 317: invoke off catch_diverter, line.length 7.5i) ! 318: ! 319: |environment(cs_heading_page2; ! 320: new.page, spacing on, goto 0.2i, ! 321: ! 322: text bold "Initial Distribution Specifications", ! 323: horizontal.motion 3.0i, ! 324: string bold document_array(1), ! 325: new.line; ! 326: ! 327: blank.lines -0.1i, thick.line) ! 328: ! 329: |environment(cs_distribution_list; ! 330: horizontal.motion 1.25i, ! 331: text bold "Complete Copy", horizontal.motion 2.75i, ! 332: text bold "Cover Sheet Only", ! 333: new.line, remember position0, fill off, indent .2i, ! 334: set temporary_counter 6.25i, ! 335: if UNEQUAL_STRING(proprietary_string, yes), ! 336: if NULL_STRING(dh_string, director_string), ! 337: add constant temporary_counter 0.6875i, ! 338: if UNEQUAL_STRING(government_string, yes), ! 339: add constant temporary_counter 0.25i, ! 340: if LE_NUMBER(author_counter, 3), ! 341: add constant temporary_counter 0.4375i, ! 342: if LE_NUMBER(author_counter, 6), ! 343: add constant temporary_counter 0.4375i, ! 344: if NULL_STRING(earlier_document_number_string), ! 345: add constant temporary_counter 0.25i, ! 346: invoke on number temporary_counter catch_diverter, ! 347: macro complete_memo_string, ! 348: if else begin EQUAL_DIVERSION(catch_output), ! 349: invoke end, rename catch_output complete_memo_string, ! 350: store diversionheight more_completememo, ! 351: if end, ! 352: if else, ! 353: clear string complete_memo_string, ! 354: return position0, indent 4i, ! 355: invoke on number temporary_counter catch_diverter, ! 356: macro cover_sheet_string, ! 357: if else begin EQUAL_DIVERSION(catch_output), ! 358: invoke end, rename catch_output cover_sheet_string, ! 359: store diversionheight more_coversheet, ! 360: if end, ! 361: if else, ! 362: clear string cover_sheet_string; ! 363: ! 364: indent 0, invoke off catch_diverter) ! 365: ! 366: |environment(cs_spacing; ! 367: goto 6.75i, ! 368: ! 369: if UNEQUAL_STRING(proprietary_string, yes), ! 370: if NULL_STRING(dh_string, director_string), ! 371: blank.lines 0.6875i, ! 372: if UNEQUAL_STRING(government_string, yes), ! 373: blank.lines 0.25i, ! 374: if LE_NUMBER(author_counter, 3), ! 375: blank.lines 0.4375i, ! 376: if LE_NUMBER(author_counter, 6), ! 377: blank.lines 0.4375i, ! 378: if NULL_STRING(earlier_document_number_string), ! 379: blank.lines 0.25i; ! 380: ! 381: thick.line) ! 382: ! 383: |environment(cs_government; ! 384: if begin EQUAL_STRING(government_string, yes), ! 385: text bold "Government Security Classified", ! 386: blank.lines -0.1i, thick.line, ! 387: if end;) ! 388: ! 389: |environment(cs_att; ! 390: if else begin EQUAL_STRING(att_release_string, no), ! 391: text bold "Future AT&T Distribution by ITDS - ", ! 392: text "Obtain approval for release to any AT&T employee", ! 393: blank.lines -0.1i, thick.line, ! 394: if end, ! 395: if else begin, ! 396: text bold "Future AT&T Distribution by ITDS - ", ! 397: text "Release to any AT&T employee (excluding contract employees)", ! 398: blank.lines -0.1i, thick.line, ! 399: if end;) ! 400: ! 401: |environment(cs_signatures; ! 402: if else GT_NUMBER(author_counter, 1), ! 403: set string plural_string "s", ! 404: if else, ! 405: clear string plural_string, ! 406: text bold "Author Signature", ! 407: string bold plural_string, new.line, ! 408: if EQ_NUMBER(author_counter, 0), ! 409: blank.lines 0.4375i, ! 410: |for i in 0 3 6 [ ! 411: tab.stops 2.635i 5.25i, ! 412: if GT_NUMBER(author_counter, $i), ! 413: blank.lines 0.1i, ! 414: if EQ_NUMBER(author_counter, ($i+1)), ! 415: line 2.25i, ! 416: if begin EQ_NUMBER(author_counter, ($i+2)), ! 417: line 2.25i, tab, line 2.25i, ! 418: if end, ! 419: if begin GT_NUMBER(author_counter, ($i+2)), ! 420: line 2.25i, tab, line 2.25i, tab, line 2.25i, ! 421: if end, ! 422: new.line, ! 423: if begin GT_NUMBER(author_counter, $i), ! 424: tab.stops 0.25i 2.875i 5.5i, ! 425: set i_plus_one $i+1, ! 426: set i_plus_two $i+2, ! 427: set i_plus_three $i+3, ! 428: tab, string author_array(i_plus_one), ! 429: tab, string author_array(i_plus_two), ! 430: tab, string author_array(i_plus_three), ! 431: if end, ! 432: ] ! 433: ; ! 434: ! 435: blank.lines -0.1i, thick.line) ! 436: ! 437: |environment(cs_proprietary; ! 438: if begin EQUAL_STRING(proprietary_string, yes), ! 439: text bold "Organizational Approval ", ! 440: size -1, text "(Department Head approval required)", size +1, ! 441: if begin NULL_STRING(dh_string, director_string), ! 442: tab.stops .5i 4i, ! 443: blank.lines 0.1i, ! 444: tab, tab, line 3i, ! 445: new.line, tab.stops 7iR, ! 446: tab, text "Department Head", ! 447: blank.lines -0.1i, thick.line, ! 448: if end, ! 449: if end, ! 450: if begin NOT_NULL_STRING(dh_string, director_string), ! 451: if begin UNEQUAL_STRING(proprietary_string, yes), ! 452: text bold "Organizational Approval ", ! 453: size -1, text "(Optional)", size +1, ! 454: if end, ! 455: tab.stops .5i 4i, ! 456: blank.lines 0.1i, ! 457: if else begin NOT_NULL_STRING(dh_string), ! 458: if else begin NOT_NULL_STRING(director_string), ! 459: tab, line 3i, tab, line 3i, ! 460: if end, ! 461: if else begin, ! 462: tab, tab, line 3i, ! 463: if end, ! 464: if end, ! 465: if else begin, ! 466: tab, tab, line 3i, ! 467: if end, ! 468: new.line, tab.stops .8i 4.3i, ! 469: if else begin NOT_NULL_STRING(dh_string), ! 470: if else begin NOT_NULL_STRING(director_string), ! 471: tab, ! 472: string dh_string, text ", Department Head", ! 473: tab, ! 474: string director_string, text ", Director", ! 475: if end, ! 476: if else begin, ! 477: tab, tab, ! 478: string dh_string, text ", Department Head", ! 479: if end, ! 480: if end, ! 481: if else begin, ! 482: tab, tab, ! 483: string director_string, text ", Director", ! 484: if end, ! 485: blank.lines -0.1i, thick.line, ! 486: if end;) ! 487: ! 488: |environment(cs_earlier; ! 489: if begin NOT_NULL_STRING(earlier_document_number_string), ! 490: text bold ! 491: "Supersedes or amends document number ", ! 492: string earlier_document_number_string, ! 493: new.line, blank.lines -0.1i, thick.line, ! 494: if end;) ! 495: ! 496: |environment(cs_footer_page2; ! 497: text bold "For Use by Recipient of Cover Sheet:", ! 498: new.line, remember position0, size -3, space -4, ! 499: blank.lines -.1i, line.length 3.5i, indent .1i, indent.line -.1i, ! 500: text "Computing network users may order copies via the ", ! 501: text italics "library -k ", text "command;", ! 502: new.line, text "for information, type ", ! 503: text italics "man library ", text "after the ", ! 504: size -1, text "UNIX", size +1, text " prompt.", ! 505: new.line, blank.lines 0.05i, indent.line -.1i, ! 506: text "Otherwise:", ! 507: new.line, ! 508: text "Enter ", size -1, text "PAN", size +1, text " if ", ! 509: size -1, text "AT&T-BL (SS#", size +1, text " if non ", ! 510: size -1, text "AT&T-BL.) ", size +1, line 1.2i, ! 511: new.line, text "Return this sheet to any ", ! 512: size -1, text "ITDS", size +1, text " location.", ! 513: new.line, return position0, line.length 8.0i, indent 4i, ! 514: text "\ Internal Technical Document Service", ! 515: blank.lines, tab.stops 1i 2i 3i, ! 516: text "( ) AK 2H-28", tab, text "( ) IH 7M-103", tab, ! 517: text "( ) DR 2F-19", tab, text "( ) NW-ITDS", new.line, ! 518: text "( ) ALC 1B-102", tab, text "( ) MV 3L-19", tab, ! 519: text "( ) INH 1C-114", tab, text "( ) PR 5-2120", new.line, ! 520: text "( ) CB 30-2011", tab, text "( ) WH 3E-204", tab, ! 521: text "( ) IW 2Z-156", new.line, ! 522: text "( ) HO 4F-112", tab, tab, text "( ) MT 3B-117", new.line, ! 523: line.length 7.5i; ! 524: ! 525: indent 0, SPACE) ! 526: ! 527: |environment(cs_abstract_continuation; ! 528: if begin GT_NUMBER(more_abstract, 0), ! 529: new.page, spacing on, goto 0.2i, ! 530: ! 531: horizontal.motion 5.2i, string bold document_array(1), ! 532: new.line, blank.lines -0.1i, thick.line, ! 533: ! 534: new.line, text bold "Title:", ! 535: horizontal.motion 0.375i, macro title_string, ! 536: new.line, blank.lines -0.1i, thick.line, ! 537: ! 538: center on, text bold "Abstract (continued)", new.line, center off, ! 539: fill off, macro abstract_string, fill on, ! 540: blank.lines -0.1i, thick.line, ! 541: if end;) ! 542: ! 543: |environment(cs_distribution_continuation; ! 544: store temporary_counter more_completememo, ! 545: store totrap position0, ! 546: if GT_NUMBER_REGISTER(more_coversheet, temporary_counter), ! 547: store temporary_counter more_coversheet, ! 548: ! 549: if begin GT_NUMBER(temporary_counter, 0), ! 550: if begin GE_NUMBER_REGISTER(temporary_counter, position0), ! 551: new.page, spacing on, goto 0.2i, ! 552: ! 553: horizontal.motion 5.2i, string bold document_array(1), ! 554: new.line, blank.lines -0.1i, thick.line, ! 555: ! 556: new.line, text bold "Title:", ! 557: horizontal.motion 0.375i, macro title_string, ! 558: new.line, blank.lines -0.1i, thick.line, ! 559: if end, ! 560: new.line, ! 561: ! 562: remember position0, ! 563: if begin GT_NUMBER(more_completememo, 0), ! 564: horizontal.motion 1.25i, ! 565: text bold "Complete Copy (continued)", new.line, ! 566: fill off, macro complete_memo_string, fill on, ! 567: if begin GT_NUMBER_REGISTER(more_completememo, more_coversheet), ! 568: blank.lines -0.1i, thick.line, ! 569: if end, ! 570: if end, ! 571: ! 572: if begin GT_NUMBER(more_coversheet, 0), ! 573: return position0, horizontal.motion 4.5i, ! 574: text bold "Cover Sheet Only (continued)", new.line, ! 575: fill off, macro cover_sheet_string, fill on, ! 576: if begin GE_NUMBER_REGISTER(more_coversheet, more_completememo), ! 577: blank.lines -0.1i, thick.line, ! 578: if end, ! 579: if end, ! 580: if end, ! 581: new.line;)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.