/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: April 10, 1992 6:17:49 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: IOCommonImpl, module: IOCommonImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3036417904,4036781028] IOCommonImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W16 f; W3 r;} W19;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {W8 f; word r;} W9;
typedef struct {W8 f; W2 r;} W10;
typedef W3 *W3Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W7 *W7Pt;
typedef W8 *W8Pt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q7848();
static void IOCommonImpl←P0();
static word AtomFromErrorCode←P60();
static word ErrorCodeFromAtom←P120();
static word RopeFromErrorCode←P180();
static word FormatError←P240();
static word ExplainIOError←P300();
static word NoName←Q7908();
static word ExplainEndOfStream←P360();
static word ExplainRubout←P420();
static word CreateStreamProcs←P480();
static word CreateStream←P540();
static word GetBlockViaGetChar←P660();
static word NoName←Q7968();
static word UnsafeGetBlockViaGetChar←P720();
static word NoName←Q8028();
static word GetCharViaUnsafeGetBlock←P780();
static word GetBlockViaUnsafeGetBlock←P840();
static void PutBlockViaPutChar←P900();
static void UnsafePutBlockViaPutChar←P960();
static void PutCharViaUnsafePutBlock←P1020();
static void PutBlockViaUnsafePutBlock←P1080();
static word DefaultGetChar←P1140();
static word DefaultEndOf←P1200();
static word DefaultCharsAvail←P1260();
static void DefaultPutChar←P1320();
static void DefaultFlush←P1380();
static void DefaultReset←P1440();
static void DefaultClose←P1500();
static word DefaultGetIndex←P1560();
static void DefaultSetIndex←P1620();
static word DefaultGetLength←P1680();
static void DefaultSetLength←P1740();
static void DefaultEraseChar←P1800();
static word ClosedGetChar←P1860();
static word ClosedGetBlock←P1920();
static word ClosedUnsafeGetBlock←P1980();
static word ClosedEndOf←P2040();
static word ClosedCharsAvail←P2100();
static void ClosedBackup←P2160();
static void ClosedPutChar←P2220();
static void ClosedPutBlock←P2280();
static void ClosedUnsafePutBlock←P2340();
static void ClosedFlush←P2400();
static void ClosedReset←P2460();
static void ClosedClose←P2520();
static word ClosedGetIndex←P2580();
static void ClosedSetIndex←P2640();
static word ClosedGetLength←P2700();
static void ClosedSetLength←P2760();
static void ClosedEraseChar←P2820();
static void GetInfo←P2880();
static word GetChar←P2940();
static word GetBlock←P3000();
static word UnsafeGetBlock←P3060();
static word EndOf←P3120();
static word CharsAvail←P3180();
static void Backup←P3240();
static word PeekChar←P3300();
static void PutChar←P3360();
static void PutBlock←P3420();
static void UnsafePutBlock←P3480();
static void Flush←P3540();
static void EraseChar←P3600();
static void Reset←P3660();
static void Close←P3720();
static word GetText←P3780();
static void PutText←P3840();
static word GetHWord←P3900();
static void PutHWord←P3960();
static word GetFWord←P4020();
static void PutFWord←P4080();
static word GetIndex←P4140();
static void SetIndex←P4200();
static word GetLength←P4260();
static void SetLength←P4320();
static void AmbushStream←P4380();
static void UnAmbushStream←P4440();
static void StoreData←P4500();
static word LookupData←P4560();
static void RemoveData←P4620();
static void StoreProc←P4680();
static word LookupProc←P4740();
static void DefaultBackup←P4800();
static void BackupBackup←P4860();
static word NoName←Q8088();
static word BackupGetChar←P4920();
static word BackupEndOf←P4980();
static word BackupCharsAvail←P5040();
static void BackupReset←P5100();
static void NoName←Q8148();
static void NoName←Q8208();
static void NoName←Q8268();
static void NoName←Q8328();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\112\100\000\000"};
static struct {unsigned f; char r[12];} string2 = {524296, "\006\002\100\104\001\100\114\001\000\000\000"};
static struct {unsigned f; char r[4];} string3 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\264\374\017\160\300\360\234\143\344\105\000\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\112\064\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\037\000"};
static struct {unsigned f; char r[16];} string9 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[12];} string10 = {524300, "BadIndex\000\000\000"};
static struct {unsigned f; char r[12];} string11 = {720908, "SyntaxError"};
static struct {unsigned f; char r[16];} string12 = {851984, "PFInvalidCode\000\000"};
static struct {unsigned f; char r[20];} string13 = {1048596, "PFInvalidPFProcs\000\000\000"};
static struct {unsigned f; char r[28];} string14 = {1572892, "PFCantBindConversionProc\000\000\000"};
static struct {unsigned f; char r[20];} string15 = {1245204, "PFFormatSyntaxError"};
static struct {unsigned f; char r[20];} string16 = {1179668, "PFUnprintableValue\000"};
static struct {unsigned f; char r[16];} string17 = {917520, "BufferOverflow\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "IllegalBackup\000\000"};
static struct {unsigned f; char r[8];} string19 = {458760, "code %g"};
static struct {unsigned f; char r[12];} string20 = {589836, "IO.Error[\000\000"};
static struct {unsigned f; char r[4];} string21 = {131076, ": \000"};
static struct {unsigned f; char r[8];} string22 = {393224, "%g (%g\000"};
static struct {unsigned f; char r[4];} string23 = {65540, "/\000\000"};
static struct {unsigned f; char r[4];} string24 = {131076, ")]\000"};
static struct {unsigned f; char r[4];} string25 = {65540, "]\000\000"};
static struct {unsigned f; char r[12];} string26 = {524300, "IO.Error\000\000\000"};
static struct {unsigned f; char r[16];} string27 = {917520, "%g (ec: %g) %g\000"};
static struct {unsigned f; char r[12];} string28 = {720908, "EndOfStream"};
static struct {unsigned f; char r[8];} string29 = {393224, "Rubout\000"};
static struct {unsigned f; char r[8];} string30 = {458760, "Failure"};
static struct {unsigned f; char r[16];} string31 = {786448, "StreamClosed\000\000\000"};
static struct {unsigned f; char r[28];} string32 = {1769500, "NotImplementedForThisStream"};
static struct {unsigned f; char r[8];} string33 = {262152, "Null\000\000\000"};
static struct {unsigned f; char r[12];} string34 = {524300, "BackedUp\000\000\000"};
static struct {unsigned f; char r[8];} string35 = {393224, "Backup\000"};
static struct {unsigned f; char r[8];} string36 = {393224, "Closed\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\264\374\017\160\300\360\234\143\344\100\164\000\000"};
static struct {unsigned f; char r[16];} string38 = {851981, "\006\003\020\001\024\001\100\110\010\000\004\033\001\000\000"};
static unsigned string39 = 1229914112;
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\064\321\106\155\300\242\071\325\060\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\332\223\177\020\300\304\076\102\260\100\164\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\207\074\171\024\300\045\325\051\114\100\150\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\165\000\243\166\300\177\026\106\323\100\150\000\000"};
static struct {
   word f0[49]; word f49; word f50; word f51; 
   word f52; word f53; word f54; word f55; 
   word f56; word f57; word f58; word f59; 
   word f60; word f61; word f62; word f63; 
   word f64; word f65; word f66; word f67; 
   word f68; word f69; word f70; word f71; 
   word f72; word f73; word f74; word f75; 
   word f76; word f77; word f78; word f79; 
   word f80; word f81; word f82; word f83; 
   word f84; word f85; word f86; word f87; 
   word f88; word f89; word f90; word f91; 
   word f92; word f93; word f94; word f95; 
   word f96; word f97; word f98; word f99; 
   word f100; word f101; word f102; word f103; 
   word f104; word f105; word f106; word f107; 
   word f108; word f109; word f110; word f111; 
   word f112; word f113; word f114; word f115; 
   word f116; word f117; word f118; word f119; 
   word f120; word f121; word f122; word f123; 
   word f124; word f125; word f126; word f127; 
   word f128; word f129; word f130; word f131; 
   word f132; word f133; word f134; word f135; 
   word f136; word f137; word f138; word f139; 
   word f140; word f141; word f142; word f143; 
   word f144; word f145; word f146; word f147; 
   word f148; word f149; word f150; word f151; 
   word f152; word f153; word f154; word f155; 
   word f156; word f157; word f158; word f159; 
   word f160; word f161; word f162; word f163; 
   word f164; word f165; word f166; word f167; 
   word f168; word f169; word f170; word f171; 
   word f172; word f173; word f174; word f175; 
   word f176; word f177; word f178; word f179; 
   word f180; word f181; word f182; word f183; 
   word f184; word f185; word f186; word f187; 
   word f188; word f189; word f190; word f191; 
   word f192; word f193; word f194; word f195; 
   word f196; word f197; word f198; word f199; 
   word f200; word f201; word f202; word f203; 
   word f204; word f205; word f206; word f207; 
   word f208; word f209; word f210; word f211; 
   word f212; word f213; word f214; word f215; 
   word f216; word f217; word f218[8]; 
   } globalframe = {
   {0}, (word) BackupReset←P5100, 0, (word) BackupCharsAvail←P5040, 
   0, (word) BackupEndOf←P4980, 0, (word) BackupGetChar←P4920, 
   0, (word) BackupBackup←P4860, 0, (word) DefaultBackup←P4800, 
   0, (word) LookupProc←P4740, 0, (word) StoreProc←P4680, 
   0, (word) RemoveData←P4620, 0, (word) LookupData←P4560, 
   0, (word) StoreData←P4500, 0, (word) UnAmbushStream←P4440, 
   0, (word) AmbushStream←P4380, 0, (word) SetLength←P4320, 
   0, (word) GetLength←P4260, 0, (word) SetIndex←P4200, 
   0, (word) GetIndex←P4140, 0, (word) PutFWord←P4080, 
   0, (word) GetFWord←P4020, 0, (word) PutHWord←P3960, 
   0, (word) GetHWord←P3900, 0, (word) PutText←P3840, 
   0, (word) GetText←P3780, 0, (word) Close←P3720, 
   0, (word) Reset←P3660, 0, (word) EraseChar←P3600, 
   0, (word) Flush←P3540, 0, (word) UnsafePutBlock←P3480, 
   0, (word) PutBlock←P3420, 0, (word) PutChar←P3360, 
   0, (word) PeekChar←P3300, 0, (word) Backup←P3240, 
   0, (word) CharsAvail←P3180, 0, (word) EndOf←P3120, 
   0, (word) UnsafeGetBlock←P3060, 0, (word) GetBlock←P3000, 
   0, (word) GetChar←P2940, 0, (word) GetInfo←P2880, 
   0, (word) ClosedEraseChar←P2820, 0, (word) ClosedSetLength←P2760, 
   0, (word) ClosedGetLength←P2700, 0, (word) ClosedSetIndex←P2640, 
   0, (word) ClosedGetIndex←P2580, 0, (word) ClosedClose←P2520, 
   0, (word) ClosedReset←P2460, 0, (word) ClosedFlush←P2400, 
   0, (word) ClosedUnsafePutBlock←P2340, 0, (word) ClosedPutBlock←P2280, 
   0, (word) ClosedPutChar←P2220, 0, (word) ClosedBackup←P2160, 
   0, (word) ClosedCharsAvail←P2100, 0, (word) ClosedEndOf←P2040, 
   0, (word) ClosedUnsafeGetBlock←P1980, 0, (word) ClosedGetBlock←P1920, 
   0, (word) ClosedGetChar←P1860, 0, (word) DefaultEraseChar←P1800, 
   0, (word) DefaultSetLength←P1740, 0, (word) DefaultGetLength←P1680, 
   0, (word) DefaultSetIndex←P1620, 0, (word) DefaultGetIndex←P1560, 
   0, (word) DefaultClose←P1500, 0, (word) DefaultReset←P1440, 
   0, (word) DefaultFlush←P1380, 0, (word) DefaultPutChar←P1320, 
   0, (word) DefaultCharsAvail←P1260, 0, (word) DefaultEndOf←P1200, 
   0, (word) DefaultGetChar←P1140, 0, (word) PutBlockViaUnsafePutBlock←P1080, 
   0, (word) PutCharViaUnsafePutBlock←P1020, 0, (word) UnsafePutBlockViaPutChar←P960, 
   0, (word) PutBlockViaPutChar←P900, 0, (word) GetBlockViaUnsafeGetBlock←P840, 
   0, (word) GetCharViaUnsafeGetBlock←P780, 0, (word) UnsafeGetBlockViaGetChar←P720, 
   0, (word) GetBlockViaGetChar←P660, 0, (word) CreateStream←P540, 
   0, (word) CreateStreamProcs←P480, 0, (word) ExplainRubout←P420, 
   0, (word) ExplainEndOfStream←P360, 0, (word) ExplainIOError←P300, 
   0, (word) FormatError←P240, 0, (word) RopeFromErrorCode←P180, 
   0, (word) ErrorCodeFromAtom←P120, 0, (word) AtomFromErrorCode←P60, 
   0, (word) IOCommonImpl←P0, {0}
   };

static void NoName←Q7848()
   {
   register ptr gf←c0565 =  (ptr) &globalframe;
   word var←c45140;
   (* (( (ptr) gf←c0565)+6) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0565)+7) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0565)+8) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0565)+15) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0565)+16) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string4);
   (*  (ptr) (( (bPt) gf←c0565)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c0565)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c0565)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0565)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0565)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0565)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0565)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0565)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0565)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0565)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0565)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0565)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0565)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0565)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0565)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0565)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0565)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0565)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0565)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0565)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+16) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0565)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0565)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0565)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0565)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0565)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0565)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0565)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0565)+7) ), (word) &string36);
   (void) XR←DeclareGlobalFrame((word) "IOCommonImpl", &globalframe, (word) XR←GetTypeIndex((word) &string37, 0, (word) &string38)
      , (word) (( (bPt) gf←c0565)+868)/* var←c41012 */ );
   var←c45140 = (word) XR←ImportInterface((word) &string39, (word) XR←GetTypeIndexS((word) (&string40)), 103);
   (* (( (ptr) gf←c0565)+219)/* var←c41076 */  ) = var←c45140;
   (void) XR←ImportProcS(var←c45140, 527874);
   (void) XR←ImportProcS(var←c45140, 67921155);
   (void) XR←ImportProcS(var←c45140, 528642);
   (void) XR←ImportProcS(var←c45140, 529922);
   (void) XR←ImportProcS(var←c45140, 531458);
   (void) XR←ImportProcS(var←c45140, 67377921);
   (void) XR←ImportProcS(var←c45140, 530946);
   (void) XR←ImportProcS(var←c45140, 67377409);
   (void) XR←ImportProcS(var←c45140, 530434);
   (void) XR←ImportProcS(var←c45140, 268033);
   (void) XR←ImportProcS(var←c45140, 267521);
   (void) XR←ImportProcS(var←c45140, 67636482);
   (void) XR←ImportProcS(var←c45140, 67646721);
   (void) XR←ImportProcS(var←c45140, 68958724);
   (void) XR←ImportProcS(var←c45140, 67910402);
   (void) XR←ImportProcS(var←c45140, 72115219);
   var←c45140 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string41)), 16);
   (* (( (ptr) gf←c0565)+221)/* var←c41268 */  ) = var←c45140;
   (void) XR←ImportProcS(var←c45140, 67636226);
   (void) XR←ImportProcS(var←c45140, 67635202);
   (void) XR←ImportProcS(var←c45140, 67897859);
   (void) XR←ImportProcS(var←c45140, 67372289);
   var←c45140 = (word) XR←ImportInterface((word) "PreDebug", (word) XR←GetTypeIndexS((word) (&string42)), 5);
   (* (( (ptr) gf←c0565)+220)/* var←c41108 */  ) = var←c45140;
   (void) XR←ImportProcS(var←c45140, 524802);
   (void) XR←ImportProcS(var←c45140, 786691);
   var←c45140 = (word) XR←ImportInterface((word) "RefText", (word) XR←GetTypeIndexS((word) (&string43)), 26);
   (* (( (ptr) gf←c0565)+223)/* var←c43700 */  ) = var←c45140;
   (void) XR←ImportProcS(var←c45140, 67634946);
   (void) XR←ImportProcS(var←c45140, 67371009);
   var←c45140 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string44)), 43);
   (* (( (ptr) gf←c0565)+222)/* var←c41332 */  ) = var←c45140;
   (void) XR←ImportProcS(var←c45140, 68419845);
   (void) XR←ImportProcS(var←c45140, 67373569);
   (void) XR←ImportProcS(var←c45140, 67633666);
   var←c45140 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string45)), 27);
   (* (( (ptr) gf←c0565)+224)/* var←c44980 */  ) = var←c45140;
   var←c45140 = (word) XR←ExportInterface((word) &string39, (word) XR←GetTypeIndexS((word) (&string40)), 103);
   (* (( (ptr) gf←c0565)+225)/* var←c45172 */  ) = var←c45140;
   (void) XR←ExportVar(var←c45140, 0, (word) (( (bPt) gf←c0565)+184));
   (void) XR←ExportVar(var←c45140, 1, (word) (( (bPt) gf←c0565)+180));
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+860)/* var←c40980 */ , 67371521);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+852)/* var←c40948 */ , 67371777);
   (void) XR←ExportVar(var←c45140, 4, (word) (( (bPt) gf←c0565)+188));
   (void) XR←ExportVar(var←c45140, 5, (word) (( (bPt) gf←c0565)+192));
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+492)/* var←c39508 */ , 134481409);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+484)/* var←c39476 */ , 67372801);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+476)/* var←c39444 */ , 68159748);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+468)/* var←c39412 */ , 68160002);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+460)/* var←c39380 */ , 67373825);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+452)/* var←c39348 */ , 67636482);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+444)/* var←c39316 */ , 527874);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+436)/* var←c39284 */ , 67374849);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+428)/* var←c39252 */ , 528642);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+420)/* var←c39220 */ , 1053444);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+412)/* var←c39188 */ , 1053698);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+404)/* var←c39156 */ , 267521);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+396)/* var←c39124 */ , 529922);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+388)/* var←c39092 */ , 268033);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+380)/* var←c39060 */ , 530434);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+324)/* var←c38836 */ , 67377409);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+316)/* var←c38804 */ , 530946);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+308)/* var←c38772 */ , 67377921);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+300)/* var←c38740 */ , 531458);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+372)/* var←c39028 */ , 67918339);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+364)/* var←c38996 */ , 547586);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+356)/* var←c38964 */ , 67395585);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+348)/* var←c38932 */ , 549122);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+340)/* var←c38900 */ , 67396097);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+332)/* var←c38868 */ , 549634);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+804)/* var←c40756 */ , 72115219);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+796)/* var←c40724 */ , 67921155);
   var←c45140 = (word) XR←ExportInterface((word) "IOErrorFormatting", (word) XR←GetTypeIndexS((word) (&string46)), 2);
   (* (( (ptr) gf←c0565)+225)/* var←c45172 */  ) = var←c45140;
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+844)/* var←c40916 */ , 67371009);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+836)/* var←c40884 */ , 67895555);
   var←c45140 = (word) XR←ExportInterface((word) "IOUtils", (word) XR←GetTypeIndexS((word) (&string47)), 27);
   (* (( (ptr) gf←c0565)+225)/* var←c45172 */  ) = var←c45140;
   (void) XR←ExportVar(var←c45140, 11, (word) (( (bPt) gf←c0565)+16)/* closedStreamProcs←v3868 */ );
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+772)/* var←c40628 */ , 67374081);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+788)/* var←c40692 */ , 68160772);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+764)/* var←c40596 */ , 68161028);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+780)/* var←c40660 */ , 68161282);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+740)/* var←c40500 */ , 528386);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+756)/* var←c40564 */ , 1052932);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+732)/* var←c40468 */ , 1053188);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+748)/* var←c40532 */ , 1053442);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+292)/* var←c38708 */ , 1053700);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+284)/* var←c38676 */ , 267521);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+276)/* var←c38644 */ , 792067);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+268)/* var←c38612 */ , 67639042);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+260)/* var←c38580 */ , 530434);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+252)/* var←c38548 */ , 792835);
   (void) XR←ExportProcS(var←c45140, (word) (( (bPt) gf←c0565)+244)/* var←c38516 */ , 67639810);
   }

static void IOCommonImpl←P0(formal←c0107, formal←c0104)
   word formal←c0107;
   word formal←c0104;
   {
   register ptr gf←c45204 =  (ptr) &globalframe;
   /* IOCommonImpl: */ 
SOURCE(371, 21489)
SOURCE(10941, 562)
   {
      word var←c41044;
      var←c41044 = XR←NewObject(80, (* (( (ptr) gf←c45204)+6) ));
      (*  (ptr) var←c41044 ) = (word) (( (bPt) gf←c45204)+628)/* var←c40052 */ ;
      (* (( (ptr) var←c41044)+1) ) = (word) (( (bPt) gf←c45204)+620)/* var←c40020 */ ;
      (* (( (ptr) var←c41044)+2) ) = (word) (( (bPt) gf←c45204)+612)/* var←c39988 */ ;
      (* (( (ptr) var←c41044)+3) ) = (word) (( (bPt) gf←c45204)+604)/* var←c39956 */ ;
      (* (( (ptr) var←c41044)+4) ) = (word) (( (bPt) gf←c45204)+596)/* var←c39924 */ ;
      (* (( (ptr) var←c41044)+5) ) = (word) (( (bPt) gf←c45204)+588)/* var←c39892 */ ;
      (* (( (ptr) var←c41044)+6) ) = (word) (( (bPt) gf←c45204)+580)/* var←c39860 */ ;
      (* (( (ptr) var←c41044)+7) ) = (word) (( (bPt) gf←c45204)+572)/* var←c39828 */ ;
      (* (( (ptr) var←c41044)+8) ) = (word) (( (bPt) gf←c45204)+564)/* var←c39796 */ ;
      (* (( (ptr) var←c41044)+9) ) = (word) (( (bPt) gf←c45204)+556)/* var←c39764 */ ;
      (* (( (ptr) var←c41044)+10) ) = (word) (( (bPt) gf←c45204)+548)/* var←c39732 */ ;
      (* (( (ptr) var←c41044)+11) ) = (word) (( (bPt) gf←c45204)+540)/* var←c39700 */ ;
      (* (( (ptr) var←c41044)+12) ) = (word) (( (bPt) gf←c45204)+532)/* var←c39668 */ ;
      (* (( (ptr) var←c41044)+13) ) = (word) (( (bPt) gf←c45204)+524)/* var←c39636 */ ;
      (* (( (ptr) var←c41044)+14) ) = (word) (( (bPt) gf←c45204)+516)/* var←c39604 */ ;
      (* (( (ptr) var←c41044)+15) ) = (word) (( (bPt) gf←c45204)+508)/* var←c39572 */ ;
      (* (( (ptr) var←c41044)+16) ) = (word) (( (bPt) gf←c45204)+500)/* var←c39540 */ ;
      (* (( (ptr) var←c41044)+18) ) = 2;
      (* (( (ptr) var←c41044)+19) ) = (* (( (ptr) gf←c45204)+44) );
      (* (( (ptr) gf←c45204)+4)/* closedStreamProcs←v3868 */  ) = var←c41044;
      };
SOURCE(20018, 210)
   {
      W19 var←c0106;
      (*  (ptr) (word) &var←c0106 ) = 2;
      (* (( (ptr) (word) &var←c0106) + 1) ) = (* (( (ptr) gf←c45204)+42) );
      (* (( (ptr) (word) &var←c0106) + 2) ) = (word) (( (bPt) gf←c45204)+220)/* var←c38420 */ ;
      (* (( (ptr) (word) &var←c0106) + 3) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 4) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 5) ) = (word) (( (bPt) gf←c45204)+212)/* var←c38388 */ ;
      (* (( (ptr) (word) &var←c0106) + 6) ) = (word) (( (bPt) gf←c45204)+204)/* var←c38356 */ ;
      (* (( (ptr) (word) &var←c0106) + 7) ) = (word) (( (bPt) gf←c45204)+228)/* var←c38452 */ ;
      (* (( (ptr) (word) &var←c0106) + 8) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 9) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 10) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 11) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 12) ) = (word) (( (bPt) gf←c45204)+196)/* var←c38324 */ ;
      (* (( (ptr) (word) &var←c0106) + 13) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 14) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 15) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 16) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 17) ) = 0;
      (* (( (ptr) (word) &var←c0106) + 18) ) = 0;
      {
         word pd48;
         pd48 = (* (( (ptr) (* (( (ptr) gf←c45204)+219)/* var←c41076 */  ))+104) );
         (* (( (ptr) gf←c45204)+5)/* backupProcs←v5324 */  ) = (word) ( *( (fPt) ((*  (ptr) pd48 ))))((word) (&var←c0106), pd48);
         };
      };
SOURCE(21684, 54)
   {
      word pd49;
      pd49 = (* (( (ptr) (* (( (ptr) gf←c45204)+220)/* var←c41108 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd49 ))))((word) (( (bPt) gf←c45204)+180), (word) (( (bPt) gf←c45204)+828)/* var←c40852 */ , 0, pd49)
      ;
      };
SOURCE(21740, 64)
   {
      word pd50;
      pd50 = (* (( (ptr) (* (( (ptr) gf←c45204)+220)/* var←c41108 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd50 ))))((word) (( (bPt) gf←c45204)+184), (word) (( (bPt) gf←c45204)+820)/* var←c40820 */ , 0, pd50)
      ;
      };
SOURCE(21806, 54)
   {
      word pd51;
      pd51 = (* (( (ptr) (* (( (ptr) gf←c45204)+220)/* var←c41108 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd51 ))))((word) (( (bPt) gf←c45204)+188), (word) (( (bPt) gf←c45204)+812)/* var←c40788 */ , 0, pd51)
      ;
      };
   }

static word AtomFromErrorCode←P60(ec←v6148)
   word ec←v6148;
   {
   register ptr gf←c45236 =  (ptr) &globalframe;
   word var←c6192;
   /* AtomFromErrorCode: */ 
SOURCE(948, 670)
SOURCE(1014, 604)
   {
      word var←c41140;
      var←c41140 = ec←v6148;
      switch (var←c41140) {
         case 0: 
SOURCE(1037, 13)
            return((* (( (ptr) gf←c45236)+41) ));
         case 1: 
SOURCE(1083, 36)
            return((* (( (ptr) gf←c45236)+40) ));
         case 2: 
SOURCE(1137, 21)
            return((* (( (ptr) gf←c45236)+39) ));
         case 3: 
SOURCE(1171, 16)
            return((* (( (ptr) gf←c45236)+38) ));
         case 4: 
SOURCE(1206, 22)
            return((* (( (ptr) gf←c45236)+26) ));
         case 5: 
SOURCE(1248, 23)
            return((* (( (ptr) gf←c45236)+25) ));
         case 6: 
SOURCE(1285, 17)
            return((* (( (ptr) gf←c45236)+18) ));
         case 7: 
SOURCE(1319, 20)
            return((* (( (ptr) gf←c45236)+19) ));
         case 9: 
SOURCE(1358, 22)
            return((* (( (ptr) gf←c45236)+20) ));
         case 10: 
SOURCE(1402, 25)
            return((* (( (ptr) gf←c45236)+21) ));
         case 11: 
SOURCE(1457, 33)
            return((* (( (ptr) gf←c45236)+22) ));
         case 12: 
SOURCE(1515, 28)
            return((* (( (ptr) gf←c45236)+23) ));
         case 14: 
SOURCE(1567, 27)
            return((* (( (ptr) gf←c45236)+24) ));
         default: 
SOURCE(1607, 11)
            return(0);
         };
      };
   }

static word ErrorCodeFromAtom←P120(atom←v6252)
   word atom←v6252;
   {
   register ptr gf←c45268 =  (ptr) &globalframe;
   word var←c6296;
   /* ErrorCodeFromAtom: */ 
SOURCE(1624, 685)
SOURCE(1692, 617)
   {
      word var←c41172;
      var←c41172 = atom←v6252;
      if ((var←c41172 == (* (( (ptr) gf←c45268)+41) ))) {
SOURCE(1718, 12)
         return(0);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+40) ))) {
SOURCE(1764, 35)
         return(1);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+39) ))) {
SOURCE(1818, 20)
         return(2);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+38) ))) {
SOURCE(1852, 15)
         return(3);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+26) ))) {
SOURCE(1887, 21)
         return(4);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+25) ))) {
SOURCE(1929, 22)
         return(5);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+18) ))) {
SOURCE(1966, 16)
         return(6);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+19) ))) {
SOURCE(2000, 19)
         return(7);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+20) ))) {
SOURCE(2039, 21)
         return(9);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+21) ))) {
SOURCE(2083, 24)
         return(10);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+22) ))) {
SOURCE(2138, 32)
         return(11);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+23) ))) {
SOURCE(2196, 27)
         return(12);
         };
      if ((var←c41172 == (* (( (ptr) gf←c45268)+24) ))) {
SOURCE(2248, 26)
         return(14);
         };
SOURCE(2287, 22)
      return(255);
      };
   }

static word RopeFromErrorCode←P180(ec←v6356)
   word ec←v6356;
   {
   register ptr gf←c45300 =  (ptr) &globalframe;
   word var←c6400;
   word a←v14092;
   /* RopeFromErrorCode: */ 
SOURCE(2315, 192)
SOURCE(2381, 31)
   a←v14092 = (word) AtomFromErrorCode←P60(ec←v6356);
SOURCE(2414, 93)
   if ((a←v14092 == 0)) {
SOURCE(2428, 54)
      {
         word var←c0626;
         {
            W2 var←c41204;
            var←c41204.f0 = 4;
            var←c41204.f1 = ec←v6356;
            {
               word pd53;
               pd53 = (* (( (ptr) (* (( (ptr) gf←c45300)+219)/* var←c41076 */  ))+63) );
               var←c0626 = (word) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) gf←c45300)+27) ), var←c41204, pd53);
               };
            };
         return(var←c0626);
         };
      }
   else {
SOURCE(2482, 25)
      {
         word pd54;
         pd54 = (* (( (ptr) (* (( (ptr) gf←c45300)+221)/* var←c41268 */  ))+9) );
         return((word) ( *( (fPt) ((*  (ptr) pd54 ))))(a←v14092, pd54));
         };
      };
   }

static word FormatError←P240(ec←v6460, details←v6488, msg←v6516)
   word ec←v6460;
   register word details←v6488;
   word msg←v6516;
   {
   register ptr gf←c45332 =  (ptr) &globalframe;
   word rope←v6656;
   /* FormatError: */ 
SOURCE(2511, 497)
SOURCE(2511, 497)
   rope←v6656 = 0;
SOURCE(2622, 54)
   {
      word var←c41300;
      var←c41300 = (word) RopeFromErrorCode←P180(ec←v6460);
      {
         word pd55;
         pd55 = (* (( (ptr) (* (( (ptr) gf←c45332)+222)/* var←c41332 */  ))+6) );
         rope←v6656 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) gf←c45332)+28) ), var←c41300, pd55);
         };
      };
SOURCE(2678, 49)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c45332)+222)/* var←c41332 */  ))+14) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd56 ))))(msg←v6516, pd56) >  (int)0)) {
SOURCE(2701, 26)
         {
            word pd57;
            pd57 = (* (( (ptr) (* (( (ptr) gf←c45332)+222)/* var←c41332 */  ))+5) );
            rope←v6656 = (word) ( *( (fPt) ((*  (ptr) pd57 ))))(rope←v6656, (* (( (ptr) gf←c45332)+29) ), msg←v6516, 0, 0, pd57);
            };
         };
      };
SOURCE(2729, 271)
   if ((details←v6488 != 0)) {
SOURCE(2751, 65)
      {
         W2 var←c41364;
         W2 var←c41396;
         W2 var←c0627;
         var←c41364.f0 = 11;
         var←c41364.f1 = rope←v6656;
         var←c41396.f0 = 10;
         var←c41396.f1 = (*  (ptr) details←v6488 );
         (*  (ptr) (word) &var←c0627 ) = 0;
         (* (( (ptr) (word) &var←c0627) + 1) ) = 0;
         {
            word pd58;
            pd58 = (* (( (ptr) (* (( (ptr) gf←c45332)+219)/* var←c41076 */  ))+62) );
            rope←v6656 = (word) ( *( (fPt) ((*  (ptr) pd58 ))))((* (( (ptr) gf←c45332)+30) ), var←c41364, var←c41396, var←c0627, pd58)
            ;
            };
         };
SOURCE(2818, 117)
      details←v6488 = (* (( (ptr) details←v6488)+1) );
      lab←L100003: ;
      if ((details←v6488 != 0)) {
         }
      else {
         goto lab←L100000;
         };
SOURCE(2880, 55)
      {
         word var←c41460;
         {
            W2 var←c41492;
            var←c41492.f0 = 10;
            var←c41492.f1 = (*  (ptr) details←v6488 );
            {
               word pd59;
               pd59 = (* (( (ptr) (* (( (ptr) gf←c45332)+219)/* var←c41076 */  ))+57) );
               var←c41460 = (word) ( *( (fPt) ((*  (ptr) pd59 ))))(var←c41492, pd59);
               };
            };
         {
            word pd60;
            pd60 = (* (( (ptr) (* (( (ptr) gf←c45332)+222)/* var←c41332 */  ))+5) );
            rope←v6656 = (word) ( *( (fPt) ((*  (ptr) pd60 ))))(rope←v6656, (* (( (ptr) gf←c45332)+31) ), var←c41460, 0, 0, pd60);
            };
         };
      details←v6488 = (* (( (ptr) details←v6488)+1) );
      goto lab←L100003;
      lab←L100000: ;
SOURCE(2946, 24)
      {
         word pd61;
         pd61 = (* (( (ptr) (* (( (ptr) gf←c45332)+222)/* var←c41332 */  ))+6) );
         rope←v6656 = (word) ( *( (fPt) ((*  (ptr) pd61 ))))(rope←v6656, (* (( (ptr) gf←c45332)+32) ), pd61);
         };
      }
   else {
SOURCE(2977, 23)
      {
         word pd62;
         pd62 = (* (( (ptr) (* (( (ptr) gf←c45332)+222)/* var←c41332 */  ))+6) );
         rope←v6656 = (word) ( *( (fPt) ((*  (ptr) pd62 ))))(rope←v6656, (* (( (ptr) gf←c45332)+33) ), pd62);
         };
      };
SOURCE(3002, 6)
   return(rope←v6656);
   }

static word ExplainIOError←P300(formal←c0641, formal←c0642, registerData←v22764)
   word formal←c0641;
   word formal←c0642;
   word registerData←v22764;
   {
   W8 var←c45364;
   /* declaration of signalOrError←v22708 skipped */ 
   /* declaration of args←v22736 skipped */ 
   register ptr gf←c45396 =  (ptr) &globalframe;
   word msg←v22808;
   /* declaration of message←v14136 skipped */ 
   var←c45364.f4/* signalOrError←v22708 */  = formal←c0641;
   var←c45364.f5/* args←v22736 */  = formal←c0642;
   /* ExplainIOError: */ 
SOURCE(3012, 250)
SOURCE(3012, 250)
   msg←v22808 = 0;
SOURCE(3051, 26)
   var←c45364.f6/* message←v14136 */  = (* (( (ptr) gf←c45396)+34) );
SOURCE(3079, 151)
   if ((var←c45364.f5/* args←v22736 */  != 0)) {
SOURCE(3096, 134)
SOURCE(3096, 134)
      {
         /* declaration of var←c01 skipped */ 
         var←c45364.f7/* var←c01 */  = (* (( (ptr) (* (( (ptr) gf←c45396)+220)/* var←c41108 */  ))+6) );
         {
            word var←c02;
            {
               word var←c0628;
               var←c0628 = (word) &var←c45364;
               var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q7908) ), ( ((word)  (fPt) NoName←Q8328) ), var←c0628);
               };
            /* removed trivial cond node */ 
            };
         };
      };
SOURCE(3245, 17)
   return(var←c45364.f6/* message←v14136 */ );
   }

static word NoName←Q7908(formal←c0572)
   word formal←c0572;
   {
SOURCE(3096, 134)
   {
      word pd63;
      pd63 = (* (( (ptr) formal←c0572)+7) );
      (void) ( *( (fPt) ((*  (ptr) pd63 ))))((* (( (ptr) formal←c0572)+4) ), (* (( (ptr) formal←c0572)+5) ), pd63);
      };
   return(0);
   }

static word ExplainEndOfStream←P360(signalOrError←v22868, args←v22896, registerData←v22924)
   word signalOrError←v22868;
   word args←v22896;
   word registerData←v22924;
   {
   register ptr gf←c45428 =  (ptr) &globalframe;
   word msg←v22968;
   /* ExplainEndOfStream: */ 
SOURCE(3266, 64)
SOURCE(3266, 64)
   msg←v22968 = 0;
SOURCE(3309, 21)
   return((* (( (ptr) gf←c45428)+36) ));
   }

static word ExplainRubout←P420(signalOrError←v23028, args←v23056, registerData←v23084)
   word signalOrError←v23028;
   word args←v23056;
   word registerData←v23084;
   {
   register ptr gf←c45460 =  (ptr) &globalframe;
   word msg←v23128;
   /* ExplainRubout: */ 
SOURCE(3336, 54)
SOURCE(3336, 54)
   msg←v23128 = 0;
SOURCE(3374, 16)
   return((* (( (ptr) gf←c45460)+37) ));
   }

static word CreateStreamProcs←P480(formal←c0159)
   word formal←c0159;
   {
   register ptr gf←c45492 =  (ptr) &globalframe;
   word var←c7264;
   word streamProcs←v14180;
   /* CreateStreamProcs: */ 
SOURCE(3395, 2091)
SOURCE(4012, 1453)
   streamProcs←v14180 = XR←NewObject(80, (* (( (ptr) gf←c45492)+6) ));
   if (((* (( (ptr) formal←c0159)+2)/* getChar←v6772 */  ) != 0)) {
      (*  (ptr) streamProcs←v14180 ) = XR←CheckProc(* (( (ptr) formal←c0159)+2)/* getChar←v6772 */  );
      }
   else {
      if (((* (( (ptr) formal←c0159)+4)/* unsafeGetBlock←v6828 */  ) != 0)) {
         (*  (ptr) streamProcs←v14180 ) = XR←CheckProc((word) (( (bPt) gf←c45492)+772)/* var←c40628 */ );
         }
      else {
         (*  (ptr) streamProcs←v14180 ) = XR←CheckProc((word) (( (bPt) gf←c45492)+724)/* var←c40436 */ );
         };
      };
   if (((* (( (ptr) formal←c0159)+3)/* getBlock←v6800 */  ) != 0)) {
      (* (( (ptr) streamProcs←v14180)+1) ) = XR←CheckProc(* (( (ptr) formal←c0159)+3)/* getBlock←v6800 */  );
      }
   else {
      if (((* (( (ptr) formal←c0159)+4)/* unsafeGetBlock←v6828 */  ) != 0)) {
         (* (( (ptr) streamProcs←v14180)+1) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+764)/* var←c40596 */ );
         }
      else {
         (* (( (ptr) streamProcs←v14180)+1) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+788)/* var←c40692 */ );
         };
      };
   if (((* (( (ptr) formal←c0159)+4)/* unsafeGetBlock←v6828 */  ) != 0)) {
      (* (( (ptr) streamProcs←v14180)+2) ) = XR←CheckProc(* (( (ptr) formal←c0159)+4)/* unsafeGetBlock←v6828 */  );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+2) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+780)/* var←c40660 */ );
      };
   if (((* (( (ptr) formal←c0159)+5)/* endOf←v6856 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+3) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+716)/* var←c40404 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+3) ) = XR←CheckProc(* (( (ptr) formal←c0159)+5)/* endOf←v6856 */  );
      };
   if (((* (( (ptr) formal←c0159)+6)/* charsAvail←v6884 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+4) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+708)/* var←c40372 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+4) ) = XR←CheckProc(* (( (ptr) formal←c0159)+6)/* charsAvail←v6884 */  );
      };
   if (((* (( (ptr) formal←c0159)+7)/* backup←v6912 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+5) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+236)/* var←c38484 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+5) ) = XR←CheckProc(* (( (ptr) formal←c0159)+7)/* backup←v6912 */  );
      };
   if (((* (( (ptr) formal←c0159)+8)/* putChar←v6940 */  ) != 0)) {
      (* (( (ptr) streamProcs←v14180)+6) ) = XR←CheckProc(* (( (ptr) formal←c0159)+8)/* putChar←v6940 */  );
      }
   else {
      if (((* (( (ptr) formal←c0159)+10)/* unsafePutBlock←v6996 */  ) != 0)) {
         (* (( (ptr) streamProcs←v14180)+6) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+740)/* var←c40500 */ );
         }
      else {
         (* (( (ptr) streamProcs←v14180)+6) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+700)/* var←c40340 */ );
         };
      };
   if (((* (( (ptr) formal←c0159)+9)/* putBlock←v6968 */  ) != 0)) {
      (* (( (ptr) streamProcs←v14180)+7) ) = XR←CheckProc(* (( (ptr) formal←c0159)+9)/* putBlock←v6968 */  );
      }
   else {
      if (((* (( (ptr) formal←c0159)+10)/* unsafePutBlock←v6996 */  ) != 0)) {
         (* (( (ptr) streamProcs←v14180)+7) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+732)/* var←c40468 */ );
         }
      else {
         (* (( (ptr) streamProcs←v14180)+7) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+756)/* var←c40564 */ );
         };
      };
   if (((* (( (ptr) formal←c0159)+10)/* unsafePutBlock←v6996 */  ) != 0)) {
      (* (( (ptr) streamProcs←v14180)+8) ) = XR←CheckProc(* (( (ptr) formal←c0159)+10)/* unsafePutBlock←v6996 */  );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+8) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+748)/* var←c40532 */ );
      };
   if (((* (( (ptr) formal←c0159)+11)/* flush←v7024 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+9) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+692)/* var←c40308 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+9) ) = XR←CheckProc(* (( (ptr) formal←c0159)+11)/* flush←v7024 */  );
      };
   if (((* (( (ptr) formal←c0159)+12)/* reset←v7052 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+10) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+684)/* var←c40276 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+10) ) = XR←CheckProc(* (( (ptr) formal←c0159)+12)/* reset←v7052 */  );
      };
   if (((* (( (ptr) formal←c0159)+13)/* close←v7080 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+11) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+676)/* var←c40244 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+11) ) = XR←CheckProc(* (( (ptr) formal←c0159)+13)/* close←v7080 */  );
      };
   if (((* (( (ptr) formal←c0159)+14)/* getIndex←v7108 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+12) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+668)/* var←c40212 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+12) ) = XR←CheckProc(* (( (ptr) formal←c0159)+14)/* getIndex←v7108 */  );
      };
   if (((* (( (ptr) formal←c0159)+15)/* setIndex←v7136 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+13) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+660)/* var←c40180 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+13) ) = XR←CheckProc(* (( (ptr) formal←c0159)+15)/* setIndex←v7136 */  );
      };
   if (((* (( (ptr) formal←c0159)+16)/* getLength←v7164 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+14) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+652)/* var←c40148 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+14) ) = XR←CheckProc(* (( (ptr) formal←c0159)+16)/* getLength←v7164 */  );
      };
   if (((* (( (ptr) formal←c0159)+17)/* setLength←v7192 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+15) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+644)/* var←c40116 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+15) ) = XR←CheckProc(* (( (ptr) formal←c0159)+17)/* setLength←v7192 */  );
      };
   if (((* (( (ptr) formal←c0159)+18)/* eraseChar←v7220 */  ) == 0)) {
      (* (( (ptr) streamProcs←v14180)+16) ) = XR←CheckProc((word) (( (bPt) gf←c45492)+636)/* var←c40084 */ );
      }
   else {
      (* (( (ptr) streamProcs←v14180)+16) ) = XR←CheckProc(* (( (ptr) formal←c0159)+18)/* eraseChar←v7220 */  );
      };
   (* (( (ptr) streamProcs←v14180)+18) ) = (*  (ptr) formal←c0159/* variety←v6716 */  );
   (* (( (ptr) streamProcs←v14180)+19) ) = (* (( (ptr) formal←c0159)+1)/* class←v6744 */  );
SOURCE(5467, 19)
   return(streamProcs←v14180);
   }

static word CreateStream←P540(streamProcs←v7336, streamData←v7364, backingStream←v7392)
   word streamProcs←v7336;
   word streamData←v7364;
   word backingStream←v7392;
   {
   register ptr gf←c45524 =  (ptr) &globalframe;
   word stream←v7460;
   /* CreateStream: */ 
SOURCE(5492, 248)
SOURCE(5492, 248)
   stream←v7460 = 0;
SOURCE(5628, 112)
   {
      word var←c41716;
      var←c41716 = XR←NewObject(32, (* (( (ptr) gf←c45524)+15) ));
      (*  (ptr) var←c41716 ) = streamProcs←v7336;
      (* (( (ptr) var←c41716)+1) ) = streamData←v7364;
      (* (( (ptr) var←c41716)+3) ) = backingStream←v7392;
      stream←v7460 = var←c41716;
      };
SOURCE(5492, 248)
   return(stream←v7460);
   }

static word GetBlockViaGetChar←P660(formal←c0643, formal←c0644, startIndex←v7704, formal←c0645)
   word formal←c0643;
   word formal←c0644;
   word startIndex←v7704;
   word formal←c0645;
   {
   W9 var←c45556;
   /* declaration of self←v7648 skipped */ 
   /* declaration of block←v7676 skipped */ 
   /* declaration of count←v7732 skipped */ 
   word nBytesRead←v7788;
   /* declaration of rem←v14248 skipped */ 
   /* declaration of index←v14276 skipped */ 
   (* (( (ptr) &var←c45556)+4)/* self←v7648 */  ) = formal←c0643;
   (* (( (ptr) &var←c45556)+5)/* block←v7676 */  ) = formal←c0644;
   (* (( (ptr) &var←c45556)+6)/* count←v7732 */  ) = formal←c0645;
   /* GetBlockViaGetChar: */ 
SOURCE(5890, 412)
SOURCE(6013, 37)
   (* (( (ptr) &var←c45556)+7)/* rem←v14248 */  ) = ((* (( (hPt) (* (( (ptr) &var←c45556)+5)/* block←v7676 */  ))+1) ) - startIndex←v7704);
SOURCE(6097, 23)
   (* (( (ptr) &var←c45556)+8)/* index←v14276 */  ) = startIndex←v7704;
SOURCE(6124, 118)
SOURCE(6124, 118)
   {
      word var←c03;
      {
         word var←c0629;
         var←c0629 = (word) &var←c45556;
         var←c03 = (word) XR←Enable(( ((word)  (fPt) NoName←Q7968) ), ( ((word)  (fPt) NoName←Q8268) ), var←c0629);
         };
      /* removed trivial cond node */ 
      };
SOURCE(6256, 20)
   {
      word idx64;
      (*  (hPt) (* (( (ptr) &var←c45556)+5)/* block←v7676 */  ) ) = (
         idx64 = (* (( (ptr) &var←c45556)+8)/* index←v14276 */  ),
         BCK(idx64, 32768)
         );
      };
SOURCE(6278, 24)
   return(((* (( (ptr) &var←c45556)+8)/* index←v14276 */  ) - startIndex←v7704));
   }

static word NoName←Q7968(formal←c0577)
   word formal←c0577;
   {
SOURCE(6156, 86)
   {
      register word noName←c41748 = 0;
      register word noName←c41780;
      {
         word x65;
         word x66;
         noName←c41780 = (x65 = (* (( (ptr) formal←c0577)+6) ),
            x66 = (* (( (ptr) formal←c0577)+7) ),
            MIN( (unsigned) , x65, x66));
         };
      if ((noName←c41748 >= noName←c41780)) {
         goto lab←L100013;
         };
      lab←L100016: ;
SOURCE(6188, 37)
      {
         word var←c41812;
         {
            word var←c41844;
            word self←v38088;
            self←v38088 = (* (( (ptr) formal←c0577)+4) );
            {
               word i←v31348;
               i←v31348 = (* (( (ptr) self←v38088)+7) );
               {
                  word pd67;
                  if ((i←v31348 < (* (( (ptr) self←v38088)+5) ))) {
                     (* (( (ptr) self←v38088)+7) ) = (i←v31348 + 1);
                     {
                        word var←c41908;
                        word buffer←v31904;
                        buffer←v31904 = (* (( (ptr) self←v38088)+4) );
                        var←c41908 = (word) (* ((( (bPt) buffer←v31904)+4)+i←v31348) );
                        var←c41844 = var←c41908;
                        };
                     }
                  else {
                     pd67 = (*  (ptr) (*  (ptr) self←v38088 ) );
                     var←c41844 = (word) ( *( (fPt) ((*  (ptr) pd67 ))))(self←v38088, pd67);
                     };
                  };
               };
            var←c41812 = var←c41844;
            };
         {
            word idx68;
            word limit69;
            (* ((( (bPt) (* (( (ptr) formal←c0577)+5) ))+4)+(
                  idx68 = (* (( (ptr) formal←c0577)+8) ),
                  limit69 = (word) (* (( (hPt) (* (( (ptr) formal←c0577)+5) ))+1) ),
                  BCK(idx68, limit69)
                  )) ) = var←c41812;
            };
         };
SOURCE(6227, 15)
      (* (( (ptr) formal←c0577)+8) ) = ((* (( (ptr) formal←c0577)+8) ) + 1);
      noName←c41748 = (noName←c41748 + 1);
      if ((noName←c41748 < noName←c41780)) {
         goto lab←L100016;
         };
      lab←L100013: ;
      };
   return(0);
   }

static word UnsafeGetBlockViaGetChar←P720(formal←c0646, formal←c0647)
   word formal←c0646;
   W3 formal←c0647;
   {
   W10 var←c45588;
   /* declaration of self←v7848 skipped */ 
   /* declaration of block←v7876 skipped */ 
   word nBytesRead←v7920;
   word startIndex←v14320;
   /* declaration of count←v14348 skipped */ 
   /* declaration of index←v14376 skipped */ 
   (* (( (ptr) &var←c45588)+4)/* self←v7848 */  ) = formal←c0646;
   (*  (W3Pt) (( (ptr) &var←c45588)+5)/* block←v7876 */  ) = formal←c0647;
   /* UnsafeGetBlockViaGetChar: */ 
SOURCE(6308, 450)
SOURCE(6418, 35)
   {
      word idx70;
      startIndex←v14320 = (
         idx70 = (* (( (ptr) &var←c45588)+6) ),
         SGNCK(idx70)
         );
      };
SOURCE(6492, 25)
   {
      word idx71;
      (* (( (ptr) &var←c45588)+8)/* count←v14348 */  ) = (
         idx71 = (* (( (ptr) &var←c45588)+7) ),
         SGNCK(idx71)
         );
      };
SOURCE(6551, 24)
   (* (( (ptr) &var←c45588)+9)/* index←v14376 */  ) = startIndex←v14320;
SOURCE(6579, 141)
SOURCE(6579, 141)
   {
      word var←c04;
      {
         word var←c0630;
         var←c0630 = (word) &var←c45588;
         var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q8028) ), ( ((word)  (fPt) NoName←Q8208) ), var←c0630);
         };
      /* removed trivial cond node */ 
      };
SOURCE(6734, 24)
   return(((* (( (ptr) &var←c45588)+9)/* index←v14376 */  ) - startIndex←v14320));
   }

static word NoName←Q8028(formal←c0578)
   word formal←c0578;
   {
SOURCE(6611, 109)
   {
      register word noName←c41972 = 0;
      if ((noName←c41972 >= (* (( (ptr) formal←c0578)+8) ))) {
         goto lab←L100023;
         };
      lab←L100026: ;
SOURCE(6641, 50)
SOURCE(6643, 48)
      {
         word var←c42004;
         {
            word var←c42036;
            word self←v37968;
            self←v37968 = (* (( (ptr) formal←c0578)+4) );
            {
               word i←v38000;
               i←v38000 = (* (( (ptr) self←v37968)+7) );
               {
                  word pd72;
                  if ((i←v38000 < (* (( (ptr) self←v37968)+5) ))) {
                     (* (( (ptr) self←v37968)+7) ) = (i←v38000 + 1);
                     {
                        word var←c42100;
                        word buffer←v38044;
                        buffer←v38044 = (* (( (ptr) self←v37968)+4) );
                        var←c42100 = (word) (* ((( (bPt) buffer←v38044)+4)+i←v38000) );
                        var←c42036 = var←c42100;
                        };
                     }
                  else {
                     pd72 = (*  (ptr) (*  (ptr) self←v37968 ) );
                     var←c42036 = (word) ( *( (fPt) ((*  (ptr) pd72 ))))(self←v37968, pd72);
                     };
                  };
               };
            var←c42004 = var←c42036;
            };
         (* (( (bPt) (* (( (ptr) formal←c0578)+5) ))+(* (( (ptr) formal←c0578)+9) )) ) = var←c42004;
         };
SOURCE(6705, 15)
      (* (( (ptr) formal←c0578)+9) ) = ((* (( (ptr) formal←c0578)+9) ) + 1);
      noName←c41972 = (noName←c41972 + 1);
      if ((noName←c41972 < (* (( (ptr) formal←c0578)+8) ))) {
         goto lab←L100026;
         };
      lab←L100023: ;
      };
   return(0);
   }

static word GetCharViaUnsafeGetBlock←P780(self←v7980)
   word self←v7980;
   {
   register ptr gf←c45620 =  (ptr) &globalframe;
   word var←c8024;
   W4 buff←v14420;
   word base←v14448;
   W3 var←c42164;
   /* GetCharViaUnsafeGetBlock: */ 
SOURCE(6764, 301)
SOURCE(6882, 43)
   base←v14448 = (word) &buff←v14420;
SOURCE(6927, 138)
   {
      word pd73;
      var←c42164.f0 = base←v14448;
      var←c42164.f1 = 0;
      var←c42164.f2 = 1;
      pd73 = (* (( (ptr) (*  (ptr) self←v7980 ))+2) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd73 ))))(self←v7980, var←c42164, pd73) ==  (int)1)) {
SOURCE(7016, 26)
         return((*  (bPt) base←v14448 ));
         }
      else {
SOURCE(7042, 23)
         {
            word var←c0200;
            var←c0200 = self←v7980;
            (void) XR←RaiseError((word) (( (bPt) gf←c45620)+184), (word) &var←c0200);
            };
         };
      };
   }

static word GetBlockViaUnsafeGetBlock←P840(self←v8084, block←v8112, startIndex←v8140, count←v8168)
   word self←v8084;
   word block←v8112;
   word startIndex←v8140;
   word count←v8168;
   {
   word nBytesRead←v8224;
   word rem←v14540;
   /* GetBlockViaUnsafeGetBlock: */ 
SOURCE(7071, 389)
SOURCE(7204, 37)
   rem←v14540 = ((* (( (hPt) block←v8112)+1) ) - startIndex←v8140);
SOURCE(7296, 125)
SOURCE(7298, 123)
   {
      word var←c42196;
      {
         word text←v36596;
         text←v36596 = block←v8112;
SOURCE(5827, 57)
         var←c42196 = (text←v36596 + 4);
         };
      {
         W3 var←c42260;
         var←c42260.f0 = var←c42196;
         var←c42260.f1 = startIndex←v8140;
         var←c42260.f2 = (MIN( (unsigned) , count←v8168, rem←v14540));
         {
            word pd74;
            word idx75;
            pd74 = (* (( (ptr) (*  (ptr) self←v8084 ))+2) );
            nBytesRead←v8224 = (
               idx75 = (word) ( *( (fPt) ((*  (ptr) pd74 ))))(self←v8084, var←c42260, pd74),
               SGNCK(idx75)
               );
            };
         };
      };
SOURCE(7424, 36)
   (*  (hPt) block←v8112 ) = BCK((startIndex←v8140 + nBytesRead←v8224), 32768);
SOURCE(7071, 389)
   return(nBytesRead←v8224);
   }

static void PutBlockViaPutChar←P900(self←v8284, block←v8312, startIndex←v8340, count←v8368)
   word self←v8284;
   word block←v8312;
   word startIndex←v8340;
   word count←v8368;
   {
   word rem←v14584;
   word len←v14612;
   /* PutBlockViaPutChar: */ 
SOURCE(7465, 354)
SOURCE(7571, 37)
   rem←v14584 = ((* (( (hPt) block←v8312)+1) ) - startIndex←v8340);
SOURCE(7655, 73)
   {
      word tc76;
      word x77;
      if ((count←v8368 > rem←v14584)) {
         tc76 =  (word) (x77 = ((*  (hPt) block←v8312 ) - startIndex←v8340),
            MIN((int)(word), rem←v14584, x77));
         }
      else {
         tc76 =  (word) count←v8368;
         };
      len←v14612 = tc76;
      };
SOURCE(7730, 89)
   {
      register word i←v14656;
      register word noName←c42292;
      i←v14656 = startIndex←v8340;
      noName←c42292 = (startIndex←v8340 + len←v14612);
      if ((i←v14656 >= noName←c42292)) {
         goto lab←L100030;
         };
      lab←L100033: ;
SOURCE(7776, 43)
      {
         word self←v37628;
         word char←v37656;
         self←v37628 = self←v8284;
         {
            word buffer←v37800;
            buffer←v37800 = block←v8312;
            char←v37656 = (word) (* ((( (bPt) buffer←v37800)+4)+i←v14656) );
            };
         {
            word i←v32436;
            i←v32436 = (* (( (ptr) self←v37628)+7) );
            {
               word pd79;
               if ((i←v32436 < (* (( (ptr) self←v37628)+6) ))) {
                  (* (( (ptr) self←v37628)+7) ) = (i←v32436 + 1);
                  {
                     word var←c42356;
                     var←c42356 = (* (( (ptr) self←v37628)+4) );
                     {
                        word limit78;
                        (* ((( (bPt) var←c42356)+4)+(
/*1*/   limit78 = (word) (* (( (hPt) var←c42356)+1) ),
/*1*/   BCK(i←v32436, limit78)
/*1*/   )) ) = char←v37656;
                        };
                     };
                  }
               else {
                  pd79 = (* (( (ptr) (*  (ptr) self←v37628 ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd79 ))))(self←v37628, char←v37656, pd79);
                  };
               };
            };
         };
      i←v14656 = (i←v14656 + 1);
      if ((i←v14656 < noName←c42292)) {
         goto lab←L100033;
         };
      lab←L100030: ;
      };
   }

static void UnsafePutBlockViaPutChar←P960(self←v8440, block←v8468)
   word self←v8440;
   W3 block←v8468;
   {
   word startIndex←v14700;
   word count←v14728;
   /* UnsafePutBlockViaPutChar: */ 
SOURCE(7835, 312)
SOURCE(7912, 35)
   {
      word idx80;
      startIndex←v14700 = (
         idx80 = (word) block←v8468.f1,
         SGNCK(idx80)
         );
      };
SOURCE(7986, 25)
   {
      word idx81;
      count←v14728 = (
         idx81 = (word) block←v8468.f2,
         SGNCK(idx81)
         );
      };
SOURCE(8045, 102)
   {
      register word i←v14772;
      register word noName←c42388;
      i←v14772 = startIndex←v14700;
      noName←c42388 = (startIndex←v14700 + count←v14728);
      if ((i←v14772 >= noName←c42388)) {
         goto lab←L100035;
         };
      lab←L100038: ;
SOURCE(8102, 45)
SOURCE(8104, 43)
      {
         word self←v37524;
         word char←v37552;
         self←v37524 = self←v8440;
         char←v37552 = (word) (* (( (bPt) block←v8468.f0)+i←v14772) );
         {
            word i←v37584;
            i←v37584 = (* (( (ptr) self←v37524)+7) );
            {
               word pd83;
               if ((i←v37584 < (* (( (ptr) self←v37524)+6) ))) {
                  (* (( (ptr) self←v37524)+7) ) = (i←v37584 + 1);
                  {
                     word var←c42420;
                     var←c42420 = (* (( (ptr) self←v37524)+4) );
                     {
                        word limit82;
                        (* ((( (bPt) var←c42420)+4)+(
/*1*/   limit82 = (word) (* (( (hPt) var←c42420)+1) ),
/*1*/   BCK(i←v37584, limit82)
/*1*/   )) ) = char←v37552;
                        };
                     };
                  }
               else {
                  pd83 = (* (( (ptr) (*  (ptr) self←v37524 ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd83 ))))(self←v37524, char←v37552, pd83);
                  };
               };
            };
         };
      i←v14772 = (i←v14772 + 1);
      if ((i←v14772 < noName←c42388)) {
         goto lab←L100038;
         };
      lab←L100035: ;
      };
   }

static void PutCharViaUnsafePutBlock←P1020(self←v8528, char←v8556)
   word self←v8528;
   word char←v8556;
   {
   W4 buff←v14816;
   word base←v14844;
   /* PutCharViaUnsafePutBlock: */ 
SOURCE(8163, 257)
SOURCE(8278, 43)
   base←v14844 = (word) &buff←v14816;
SOURCE(8323, 19)
   (*  (bPt) base←v14844 ) = char←v8556;
SOURCE(8344, 76)
   {
      W3 var←c42452;
      var←c42452.f0 = base←v14844;
      var←c42452.f1 = 0;
      var←c42452.f2 = 1;
      {
         word pd84;
         pd84 = (* (( (ptr) (*  (ptr) self←v8528 ))+8) );
         (void) ( *( (fPt) ((*  (ptr) pd84 ))))(self←v8528, var←c42452, pd84);
         };
      };
   }

static void PutBlockViaUnsafePutBlock←P1080(self←v8616, block←v8644, startIndex←v8672, count←v8700)
   word self←v8616;
   word block←v8644;
   word startIndex←v8672;
   word count←v8700;
   {
   word rem←v14936;
   word len←v14964;
   /* PutBlockViaUnsafePutBlock: */ 
SOURCE(8426, 369)
SOURCE(8539, 37)
   rem←v14936 = ((* (( (hPt) block←v8644)+1) ) - startIndex←v8672);
SOURCE(8623, 73)
   {
      word tc85;
      word x86;
      if ((count←v8700 > rem←v14936)) {
         tc85 =  (word) (x86 = ((*  (hPt) block←v8644 ) - startIndex←v8672),
            MIN((int)(word), rem←v14936, x86));
         }
      else {
         tc85 =  (word) count←v8700;
         };
      len←v14964 = tc85;
      };
SOURCE(8698, 97)
   {
      word var←c42484;
      {
         word text←v36548;
         text←v36548 = block←v8644;
SOURCE(5827, 57)
         var←c42484 = (text←v36548 + 4);
         };
      {
         W3 var←c42548;
         var←c42548.f0 = var←c42484;
         var←c42548.f1 = startIndex←v8672;
         var←c42548.f2 = len←v14964;
         {
            word pd87;
            pd87 = (* (( (ptr) (*  (ptr) self←v8616 ))+8) );
            (void) ( *( (fPt) ((*  (ptr) pd87 ))))(self←v8616, var←c42548, pd87);
            };
         };
      };
   }

static word DefaultGetChar←P1140(self←v8772)
   word self←v8772;
   {
   register ptr gf←c45652 =  (ptr) &globalframe;
   word var←c8816;
   /* DefaultGetChar: */ 
SOURCE(8801, 183)
SOURCE(8856, 128)
   if (((* (( (ptr) self←v8772)+3) ) != 0)) {
SOURCE(8887, 50)
      {
         word var←c42612;
         word self←v37848;
         self←v37848 = (* (( (ptr) self←v8772)+3) );
         {
            word i←v37880;
            i←v37880 = (* (( (ptr) self←v37848)+7) );
            {
               word pd88;
               if ((i←v37880 < (* (( (ptr) self←v37848)+5) ))) {
                  {
                     word var←c42676;
                     word buffer←v37924;
                     (* (( (ptr) self←v37848)+7) ) = (i←v37880 + 1);
                     buffer←v37924 = (* (( (ptr) self←v37848)+4) );
                     var←c42676 = (word) (* ((( (bPt) buffer←v37924)+4)+i←v37880) );
                     var←c42612 = var←c42676;
                     };
                  }
               else {
                  pd88 = (*  (ptr) (*  (ptr) self←v37848 ) );
                  var←c42612 = (word) ( *( (fPt) ((*  (ptr) pd88 ))))(self←v37848, pd88);
                  };
               };
            };
         return(var←c42612);
         };
      }
   else {
SOURCE(8937, 47)
      {
         W4 var←c0254;
         (*  (ptr) (word) &var←c0254 ) = 1;
         (* (( (ptr) (word) &var←c0254) + 1) ) = self←v8772;
         (* (( (ptr) (word) &var←c0254) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0254) + 3) ) = 0;
         (void) XR←RaiseError((word) (( (bPt) gf←c45652)+180), (word) &var←c0254);
         };
      };
   }

static word DefaultEndOf←P1200(self←v8876)
   word self←v8876;
   {
   register ptr gf←c45684 =  (ptr) &globalframe;
   word var←c8920;
   /* DefaultEndOf: */ 
SOURCE(8990, 181)
SOURCE(9043, 128)
   if (((* (( (ptr) self←v8876)+3) ) != 0)) {
SOURCE(9074, 47)
      {
         word var←c42740;
         word self←v37372;
         self←v37372 = (* (( (ptr) self←v8876)+3) );
         {
            word tc89;
            word pd90;
            if (((* (( (ptr) self←v37372)+7) ) >= (* (( (ptr) self←v37372)+5) ))) {
               pd90 = (* (( (ptr) (*  (ptr) self←v37372 ))+3) );
               tc89 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd90 ))))(self←v37372, pd90));
               }
            else {
               tc89 =  (word) 0;
               };
            var←c42740 = tc89;
            };
         return(var←c42740);
         };
      }
   else {
SOURCE(9121, 50)
      {
         W4 var←c0259;
         (*  (ptr) (word) &var←c0259 ) = 1;
         (* (( (ptr) (word) &var←c0259) + 1) ) = self←v8876;
         (* (( (ptr) (word) &var←c0259) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0259) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c45684)+219)/* var←c41076 */  ))+5) ), (word) &var←c0259);
         };
      };
   }

static word DefaultCharsAvail←P1260(self←v8980, wait←v9008)
   word self←v8980;
   word wait←v9008;
   {
   register ptr gf←c45716 =  (ptr) &globalframe;
   word var←c9052;
   /* DefaultCharsAvail: */ 
SOURCE(9177, 168)
SOURCE(9246, 99)
   if (((* (( (ptr) self←v8980)+3) ) != 0)) {
SOURCE(9277, 52)
      {
         word pd91;
         pd91 = (* (( (ptr) (* (( (ptr) gf←c45716)+219)/* var←c41076 */  ))+17) );
         return((word) ( *( (fPt) ((*  (ptr) pd91 ))))((* (( (ptr) self←v8980)+3) ), wait←v9008, pd91));
         };
      }
   else {
SOURCE(9329, 16)
      return(2147483647);
      };
   }

static void DefaultPutChar←P1320(self←v9112, char←v9140)
   word self←v9112;
   word char←v9140;
   {
   register ptr gf←c45748 =  (ptr) &globalframe;
   /* DefaultPutChar: */ 
SOURCE(9351, 181)
SOURCE(9403, 129)
   if (((* (( (ptr) self←v9112)+3) ) != 0)) {
SOURCE(9434, 48)
      {
         word self←v37420;
         word char←v37448;
         self←v37420 = (* (( (ptr) self←v9112)+3) );
         char←v37448 = char←v9140;
         {
            word i←v37480;
            i←v37480 = (* (( (ptr) self←v37420)+7) );
            {
               word pd93;
               if ((i←v37480 < (* (( (ptr) self←v37420)+6) ))) {
                  (* (( (ptr) self←v37420)+7) ) = (i←v37480 + 1);
                  {
                     word var←c42804;
                     var←c42804 = (* (( (ptr) self←v37420)+4) );
                     {
                        word limit92;
                        (* ((( (bPt) var←c42804)+4)+(
/*1*/   limit92 = (word) (* (( (hPt) var←c42804)+1) ),
/*1*/   BCK(i←v37480, limit92)
/*1*/   )) ) = char←v37448;
                        };
                     };
                  }
               else {
                  pd93 = (* (( (ptr) (*  (ptr) self←v37420 ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd93 ))))(self←v37420, char←v37448, pd93);
                  };
               };
            };
         };
      }
   else {
SOURCE(9482, 50)
      {
         W4 var←c0269;
         (*  (ptr) (word) &var←c0269 ) = 1;
         (* (( (ptr) (word) &var←c0269) + 1) ) = self←v9112;
         (* (( (ptr) (word) &var←c0269) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0269) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c45748)+219)/* var←c41076 */  ))+5) ), (word) &var←c0269);
         };
      };
   }

static void DefaultFlush←P1380(self←v9200)
   word self←v9200;
   {
   register ptr gf←c45780 =  (ptr) &globalframe;
   /* DefaultFlush: */ 
SOURCE(9538, 97)
SOURCE(9576, 59)
   if (((* (( (ptr) self←v9200)+3) ) != 0)) {
SOURCE(9607, 28)
      {
         word pd94;
         pd94 = (* (( (ptr) (* (( (ptr) gf←c45780)+219)/* var←c41076 */  ))+25) );
         (void) ( *( (fPt) ((*  (ptr) pd94 ))))((* ((( (ptr) self←v9200)+3)) ), pd94);
         };
      };
   }

static void DefaultReset←P1440(self←v9260)
   word self←v9260;
   {
   register ptr gf←c45812 =  (ptr) &globalframe;
   /* DefaultReset: */ 
SOURCE(9641, 97)
SOURCE(9679, 59)
   if (((* (( (ptr) self←v9260)+3) ) != 0)) {
SOURCE(9710, 28)
      {
         word pd95;
         pd95 = (* (( (ptr) (* (( (ptr) gf←c45812)+219)/* var←c41076 */  ))+27) );
         (void) ( *( (fPt) ((*  (ptr) pd95 ))))((* ((( (ptr) self←v9260)+3)) ), pd95);
         };
      };
   }

static void DefaultClose←P1500(self←v9320, abort←v9348)
   word self←v9320;
   word abort←v9348;
   {
   register ptr gf←c45844 =  (ptr) &globalframe;
   /* DefaultClose: */ 
SOURCE(9744, 246)
SOURCE(9804, 76)
   if ((0 != abort←v9348)) {
SOURCE(9818, 34)
      {
         word pd96;
         pd96 = (* (( (ptr) (*  (ptr) self←v9320 ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd96 ))))(self←v9320, pd96);
         };
      }
   else {
SOURCE(9852, 28)
      {
         word pd97;
         pd97 = (* (( (ptr) (*  (ptr) self←v9320 ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd97 ))))(self←v9320, pd97);
         };
      };
SOURCE(9882, 66)
   if (((* (( (ptr) self←v9320)+3) ) != 0)) {
SOURCE(9913, 35)
      {
         word pd98;
         pd98 = (* (( (ptr) (* (( (ptr) gf←c45844)+219)/* var←c41076 */  ))+28) );
         (void) ( *( (fPt) ((*  (ptr) pd98 ))))((* (( (ptr) self←v9320)+3) ), abort←v9348, pd98);
         };
      };
SOURCE(9950, 40)
   XR←FillWords(&(* (W7Pt) ((( (ptr) self←v9320)+1))), 7, 0);
   (*  (ptr) self←v9320 ) = (* (( (ptr) gf←c45844)+4)/* closedStreamProcs←v3868 */  );
   }

static word DefaultGetIndex←P1560(self←v9408)
   word self←v9408;
   {
   register ptr gf←c45876 =  (ptr) &globalframe;
   word index←v9452;
   /* DefaultGetIndex: */ 
SOURCE(9996, 187)
SOURCE(10058, 125)
   if (((* (( (ptr) self←v9408)+3) ) != 0)) {
SOURCE(10089, 44)
      {
         word pd99;
         pd99 = (* (( (ptr) (* (( (ptr) gf←c45876)+219)/* var←c41076 */  ))+29) );
         return((word) ( *( (fPt) ((*  (ptr) pd99 ))))((* ((( (ptr) self←v9408)+3)) ), pd99));
         };
      }
   else {
SOURCE(10133, 50)
      {
         W4 var←c0276;
         (*  (ptr) (word) &var←c0276 ) = 1;
         (* (( (ptr) (word) &var←c0276) + 1) ) = self←v9408;
         (* (( (ptr) (word) &var←c0276) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0276) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c45876)+219)/* var←c41076 */  ))+5) ), (word) &var←c0276);
         };
      };
   }

static void DefaultSetIndex←P1620(self←v9512, index←v9540)
   word self←v9512;
   word index←v9540;
   {
   register ptr gf←c45908 =  (ptr) &globalframe;
   /* DefaultSetIndex: */ 
SOURCE(10189, 178)
SOURCE(10242, 125)
   if (((* (( (ptr) self←v9512)+3) ) != 0)) {
SOURCE(10273, 44)
      {
         word pd100;
         pd100 = (* (( (ptr) (* (( (ptr) gf←c45908)+219)/* var←c41076 */  ))+30) );
         (void) ( *( (fPt) ((*  (ptr) pd100 ))))((* (( (ptr) self←v9512)+3) ), index←v9540, pd100);
         };
      }
   else {
SOURCE(10317, 50)
      {
         W4 var←c0279;
         (*  (ptr) (word) &var←c0279 ) = 1;
         (* (( (ptr) (word) &var←c0279) + 1) ) = self←v9512;
         (* (( (ptr) (word) &var←c0279) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0279) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c45908)+219)/* var←c41076 */  ))+5) ), (word) &var←c0279);
         };
      };
   }

static word DefaultGetLength←P1680(self←v9600)
   word self←v9600;
   {
   register ptr gf←c45940 =  (ptr) &globalframe;
   word length←v9644;
   /* DefaultGetLength: */ 
SOURCE(10373, 190)
SOURCE(10437, 126)
   if (((* (( (ptr) self←v9600)+3) ) != 0)) {
SOURCE(10468, 45)
      {
         word pd101;
         pd101 = (* (( (ptr) (* (( (ptr) gf←c45940)+219)/* var←c41076 */  ))+31) );
         return((word) ( *( (fPt) ((*  (ptr) pd101 ))))((* ((( (ptr) self←v9600)+3)) ), pd101));
         };
      }
   else {
SOURCE(10513, 50)
      {
         W4 var←c0282;
         (*  (ptr) (word) &var←c0282 ) = 1;
         (* (( (ptr) (word) &var←c0282) + 1) ) = self←v9600;
         (* (( (ptr) (word) &var←c0282) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0282) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c45940)+219)/* var←c41076 */  ))+5) ), (word) &var←c0282);
         };
      };
   }

static void DefaultSetLength←P1740(self←v9704, length←v9732)
   word self←v9704;
   word length←v9732;
   {
   register ptr gf←c45972 =  (ptr) &globalframe;
   /* DefaultSetLength: */ 
SOURCE(10569, 182)
SOURCE(10624, 127)
   if (((* (( (ptr) self←v9704)+3) ) != 0)) {
SOURCE(10655, 46)
      {
         word pd102;
         pd102 = (* (( (ptr) (* (( (ptr) gf←c45972)+219)/* var←c41076 */  ))+32) );
         (void) ( *( (fPt) ((*  (ptr) pd102 ))))((* (( (ptr) self←v9704)+3) ), length←v9732, pd102);
         };
      }
   else {
SOURCE(10701, 50)
      {
         W4 var←c0285;
         (*  (ptr) (word) &var←c0285 ) = 1;
         (* (( (ptr) (word) &var←c0285) + 1) ) = self←v9704;
         (* (( (ptr) (word) &var←c0285) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0285) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c45972)+219)/* var←c41076 */  ))+5) ), (word) &var←c0285);
         };
      };
   }

static void DefaultEraseChar←P1800(self←v9792, char←v9820)
   word self←v9792;
   word char←v9820;
   {
   register ptr gf←c46004 =  (ptr) &globalframe;
   /* DefaultEraseChar: */ 
SOURCE(10757, 177)
SOURCE(10811, 123)
   if (((* (( (ptr) self←v9792)+3) ) != 0)) {
SOURCE(10842, 44)
      {
         word pd103;
         pd103 = (* (( (ptr) (* (( (ptr) gf←c46004)+219)/* var←c41076 */  ))+26) );
         (void) ( *( (fPt) ((*  (ptr) pd103 ))))((* (( (ptr) self←v9792)+3) ), char←v9820, pd103);
         };
      }
   else {
SOURCE(10888, 21)
      {
         word pd104;
         pd104 = (* (( (ptr) (* (( (ptr) gf←c46004)+219)/* var←c41076 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd104 ))))(self←v9792, 92, pd104);
         };
SOURCE(10911, 23)
      {
         word pd105;
         pd105 = (* (( (ptr) (* (( (ptr) gf←c46004)+219)/* var←c41076 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd105 ))))(self←v9792, char←v9820, pd105);
         };
      };
   }

static word ClosedGetChar←P1860(self←v23828)
   word self←v23828;
   {
   register ptr gf←c46036 =  (ptr) &globalframe;
   word var←c23872;
   /* ClosedGetChar: */ 
SOURCE(11506, 67)
SOURCE(11537, 36)
   {
      W4 var←c0290;
      (*  (ptr) (word) &var←c0290 ) = 2;
      (* (( (ptr) (word) &var←c0290) + 1) ) = self←v23828;
      (* (( (ptr) (word) &var←c0290) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0290) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46036)+219)/* var←c41076 */  ))+5) ), (word) &var←c0290);
      };
   }

static word ClosedGetBlock←P1920(self←v23932, block←v23960, startIndex←v23988, count←v24016)
   word self←v23932;
   word block←v23960;
   word startIndex←v23988;
   word count←v24016;
   {
   register ptr gf←c46068 =  (ptr) &globalframe;
   word nBytesRead←v24060;
   /* ClosedGetBlock: */ 
SOURCE(11576, 69)
SOURCE(11609, 36)
   {
      W4 var←c0296;
      (*  (ptr) (word) &var←c0296 ) = 2;
      (* (( (ptr) (word) &var←c0296) + 1) ) = self←v23932;
      (* (( (ptr) (word) &var←c0296) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0296) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46068)+219)/* var←c41076 */  ))+5) ), (word) &var←c0296);
      };
   }

static word ClosedUnsafeGetBlock←P1980(self←v24120, block←v24148)
   word self←v24120;
   W3 block←v24148;
   {
   register ptr gf←c46100 =  (ptr) &globalframe;
   word nBytesRead←v24192;
   /* ClosedUnsafeGetBlock: */ 
SOURCE(11648, 81)
SOURCE(11693, 36)
   {
      W4 var←c0300;
      (*  (ptr) (word) &var←c0300 ) = 2;
      (* (( (ptr) (word) &var←c0300) + 1) ) = self←v24120;
      (* (( (ptr) (word) &var←c0300) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0300) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46100)+219)/* var←c41076 */  ))+5) ), (word) &var←c0300);
      };
   }

static word ClosedEndOf←P2040(self←v24252)
   word self←v24252;
   {
   register ptr gf←c46132 =  (ptr) &globalframe;
   word var←c24296;
   /* ClosedEndOf: */ 
SOURCE(11732, 63)
SOURCE(11759, 36)
   {
      W4 var←c0303;
      (*  (ptr) (word) &var←c0303 ) = 2;
      (* (( (ptr) (word) &var←c0303) + 1) ) = self←v24252;
      (* (( (ptr) (word) &var←c0303) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0303) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46132)+219)/* var←c41076 */  ))+5) ), (word) &var←c0303);
      };
   }

static word ClosedCharsAvail←P2100(self←v24356, wait←v24384)
   word self←v24356;
   word wait←v24384;
   {
   register ptr gf←c46164 =  (ptr) &globalframe;
   word var←c24428;
   /* ClosedCharsAvail: */ 
SOURCE(11798, 73)
SOURCE(11835, 36)
   {
      W4 var←c0307;
      (*  (ptr) (word) &var←c0307 ) = 2;
      (* (( (ptr) (word) &var←c0307) + 1) ) = self←v24356;
      (* (( (ptr) (word) &var←c0307) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0307) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46164)+219)/* var←c41076 */  ))+5) ), (word) &var←c0307);
      };
   }

static void ClosedBackup←P2160(self←v24488, char←v24516)
   word self←v24488;
   word char←v24516;
   {
   register ptr gf←c46196 =  (ptr) &globalframe;
   /* ClosedBackup: */ 
SOURCE(11874, 65)
SOURCE(11903, 36)
   {
      W4 var←c0310;
      (*  (ptr) (word) &var←c0310 ) = 2;
      (* (( (ptr) (word) &var←c0310) + 1) ) = self←v24488;
      (* (( (ptr) (word) &var←c0310) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0310) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46196)+219)/* var←c41076 */  ))+5) ), (word) &var←c0310);
      };
   }

static void ClosedPutChar←P2220(self←v24576, char←v24604)
   word self←v24576;
   word char←v24604;
   {
   register ptr gf←c46228 =  (ptr) &globalframe;
   /* ClosedPutChar: */ 
SOURCE(11942, 67)
SOURCE(11973, 36)
   {
      W4 var←c0313;
      (*  (ptr) (word) &var←c0313 ) = 2;
      (* (( (ptr) (word) &var←c0313) + 1) ) = self←v24576;
      (* (( (ptr) (word) &var←c0313) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0313) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46228)+219)/* var←c41076 */  ))+5) ), (word) &var←c0313);
      };
   }

static void ClosedPutBlock←P2280(self←v24664, block←v24692, startIndex←v24720, count←v24748)
   word self←v24664;
   word block←v24692;
   word startIndex←v24720;
   word count←v24748;
   {
   register ptr gf←c46260 =  (ptr) &globalframe;
   /* ClosedPutBlock: */ 
SOURCE(12012, 69)
SOURCE(12045, 36)
   {
      W4 var←c0318;
      (*  (ptr) (word) &var←c0318 ) = 2;
      (* (( (ptr) (word) &var←c0318) + 1) ) = self←v24664;
      (* (( (ptr) (word) &var←c0318) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0318) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46260)+219)/* var←c41076 */  ))+5) ), (word) &var←c0318);
      };
   }

static void ClosedUnsafePutBlock←P2340(self←v24808, block←v24836)
   word self←v24808;
   W3 block←v24836;
   {
   register ptr gf←c46292 =  (ptr) &globalframe;
   /* ClosedUnsafePutBlock: */ 
SOURCE(12084, 81)
SOURCE(12129, 36)
   {
      W4 var←c0321;
      (*  (ptr) (word) &var←c0321 ) = 2;
      (* (( (ptr) (word) &var←c0321) + 1) ) = self←v24808;
      (* (( (ptr) (word) &var←c0321) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0321) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46292)+219)/* var←c41076 */  ))+5) ), (word) &var←c0321);
      };
   }

static void ClosedFlush←P2400(self←v24896)
   word self←v24896;
   {
   register ptr gf←c46324 =  (ptr) &globalframe;
   /* ClosedFlush: */ 
SOURCE(12168, 63)
SOURCE(12195, 36)
   {
      W4 var←c0323;
      (*  (ptr) (word) &var←c0323 ) = 2;
      (* (( (ptr) (word) &var←c0323) + 1) ) = self←v24896;
      (* (( (ptr) (word) &var←c0323) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0323) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46324)+219)/* var←c41076 */  ))+5) ), (word) &var←c0323);
      };
   }

static void ClosedReset←P2460(self←v24956)
   word self←v24956;
   {
   /* ClosedReset: */ 
   }

static void ClosedClose←P2520(self←v25016, abort←v25044)
   word self←v25016;
   word abort←v25044;
   {
   /* ClosedClose: */ 
   }

static word ClosedGetIndex←P2580(self←v25104)
   word self←v25104;
   {
   register ptr gf←c46356 =  (ptr) &globalframe;
   word var←c25148;
   /* ClosedGetIndex: */ 
SOURCE(12320, 69)
SOURCE(12353, 36)
   {
      W4 var←c0329;
      (*  (ptr) (word) &var←c0329 ) = 2;
      (* (( (ptr) (word) &var←c0329) + 1) ) = self←v25104;
      (* (( (ptr) (word) &var←c0329) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0329) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46356)+219)/* var←c41076 */  ))+5) ), (word) &var←c0329);
      };
   }

static void ClosedSetIndex←P2640(self←v25208, index←v25236)
   word self←v25208;
   word index←v25236;
   {
   register ptr gf←c46388 =  (ptr) &globalframe;
   /* ClosedSetIndex: */ 
SOURCE(12392, 69)
SOURCE(12425, 36)
   {
      W4 var←c0332;
      (*  (ptr) (word) &var←c0332 ) = 2;
      (* (( (ptr) (word) &var←c0332) + 1) ) = self←v25208;
      (* (( (ptr) (word) &var←c0332) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0332) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46388)+219)/* var←c41076 */  ))+5) ), (word) &var←c0332);
      };
   }

static word ClosedGetLength←P2700(self←v25296)
   word self←v25296;
   {
   register ptr gf←c46420 =  (ptr) &globalframe;
   word var←c25340;
   /* ClosedGetLength: */ 
SOURCE(12464, 71)
SOURCE(12499, 36)
   {
      W4 var←c0335;
      (*  (ptr) (word) &var←c0335 ) = 2;
      (* (( (ptr) (word) &var←c0335) + 1) ) = self←v25296;
      (* (( (ptr) (word) &var←c0335) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0335) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46420)+219)/* var←c41076 */  ))+5) ), (word) &var←c0335);
      };
   }

static void ClosedSetLength←P2760(self←v25400, length←v25428)
   word self←v25400;
   word length←v25428;
   {
   register ptr gf←c46452 =  (ptr) &globalframe;
   /* ClosedSetLength: */ 
SOURCE(12538, 71)
SOURCE(12573, 36)
   {
      W4 var←c0338;
      (*  (ptr) (word) &var←c0338 ) = 2;
      (* (( (ptr) (word) &var←c0338) + 1) ) = self←v25400;
      (* (( (ptr) (word) &var←c0338) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0338) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46452)+219)/* var←c41076 */  ))+5) ), (word) &var←c0338);
      };
   }

static void ClosedEraseChar←P2820(self←v25488, char←v25516)
   word self←v25488;
   word char←v25516;
   {
   register ptr gf←c46484 =  (ptr) &globalframe;
   /* ClosedEraseChar: */ 
SOURCE(12612, 71)
SOURCE(12647, 36)
   {
      W4 var←c0341;
      (*  (ptr) (word) &var←c0341 ) = 2;
      (* (( (ptr) (word) &var←c0341) + 1) ) = self←v25488;
      (* (( (ptr) (word) &var←c0341) + 2) ) = 0;
      (* (( (ptr) (word) &var←c0341) + 3) ) = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46484)+219)/* var←c41076 */  ))+5) ), (word) &var←c0341);
      };
   }

static void GetInfo←P2880(formal←c0347, stream←v9892)
   word formal←c0347;
   word stream←v9892;
   {
   word variety←v9936;
   word class←v9964;
   /* GetInfo: */ 
SOURCE(12687, 149)
SOURCE(12687, 149)
   class←v9964 = 0;
SOURCE(12775, 61)
   variety←v9936 = (* (( (ptr) (*  (ptr) stream←v9892 ))+18) );
   class←v9964 = (* (( (ptr) (*  (ptr) stream←v9892 ))+19) );
   /* removed tail goto */ 
   (*  (ptr) formal←c0347 ) = variety←v9936;
   (* (( (ptr) formal←c0347)+1) ) = class←v9964;
   return;
   }

static word GetChar←P2940(self←v10024)
   word self←v10024;
   {
   word var←c10068;
   word i←v15008;
   /* GetChar: */ 
SOURCE(12842, 222)
SOURCE(12897, 25)
   i←v15008 = (* (( (ptr) self←v10024)+7) );
SOURCE(12924, 140)
   if ((i←v15008 < (* (( (ptr) self←v10024)+5) ))) {
SOURCE(12961, 22)
      (* (( (ptr) self←v10024)+7) ) = (i←v15008 + 1);
SOURCE(12985, 34)
      {
         word var←c42932;
         word buffer←v37752;
         buffer←v37752 = (* (( (ptr) self←v10024)+4) );
         var←c42932 = (word) (* ((( (bPt) buffer←v37752)+4)+i←v15008) );
         return(var←c42932);
         };
      }
   else {
SOURCE(13026, 38)
      {
         word pd106;
         pd106 = (*  (ptr) (*  (ptr) self←v10024 ) );
         return((word) ( *( (fPt) ((*  (ptr) pd106 ))))(self←v10024, pd106));
         };
      };
   }

static word GetBlock←P3000(self←v10128, block←v10156, startIndex←v10184, count←v10212)
   word self←v10128;
   word block←v10156;
   word startIndex←v10184;
   word count←v10212;
   {
   word nBytesRead←v10268;
   word rem←v15052;
   word len←v15080;
   word i←v15108;
   /* GetBlock: */ 
SOURCE(13070, 617)
SOURCE(13198, 37)
   rem←v15052 = ((* (( (hPt) block←v10156)+1) ) - startIndex←v10184);
SOURCE(13282, 26)
   len←v15080 = (MIN( (unsigned) , count←v10212, rem←v15052));
SOURCE(13310, 25)
   i←v15108 = (* (( (ptr) self←v10128)+7) );
SOURCE(13337, 350)
   if ( ( (i←v15108 < (* (( (ptr) self←v10128)+5) )) ? ( (int)len←v15080 <=  (int)((* (( (ptr) self←v10128)+5) ) - i←v15108)) : 0 ) ) {
SOURCE(13419, 125)
SOURCE(13421, 123)
      {
         word var←c42996;
         word var←c43060;
         {
            word text←v36500;
            text←v36500 = block←v10156;
SOURCE(5827, 57)
            var←c42996 = (text←v36500 + 4);
            };
         {
            word var←c43092;
            word text←v36452;
            text←v36452 = (* (( (ptr) self←v10128)+4) );
SOURCE(5827, 57)
            var←c43092 = (text←v36452 + 4);
            var←c43060 = var←c43092;
            };
         (void) Basics←CopyBytes(var←c42996, startIndex←v10184, var←c43060, i←v15108, len←v15080);
         };
SOURCE(13547, 24)
      (* (( (ptr) self←v10128)+7) ) = SGNCK((i←v15108 + len←v15080));
SOURCE(13573, 29)
      (*  (hPt) block←v10156 ) = BCK((startIndex←v10184 + len←v15080), 32768);
SOURCE(13604, 11)
      return(len←v15080);
      }
   else {
SOURCE(13624, 63)
      {
         word pd107;
         pd107 = (* (( (ptr) (*  (ptr) self←v10128 ))+1) );
         return((word) ( *( (fPt) ((*  (ptr) pd107 ))))(self←v10128, block←v10156, startIndex←v10184, len←v15080, pd107));
         };
      };
   }

static word UnsafeGetBlock←P3060(self←v10328, block←v10356)
   word self←v10328;
   W3 block←v10356;
   {
   word nBytesRead←v10400;
   word startIndex←v15152;
   word len←v15180;
   word i←v15208;
   /* UnsafeGetBlock: */ 
SOURCE(13693, 610)
SOURCE(13793, 35)
   {
      word idx108;
      startIndex←v15152 = (
         idx108 = (word) block←v10356.f1,
         SGNCK(idx108)
         );
      };
SOURCE(13867, 23)
   {
      word idx109;
      len←v15180 = (
         idx109 = (word) block←v10356.f2,
         SGNCK(idx109)
         );
      };
SOURCE(13924, 25)
   i←v15208 = (* (( (ptr) self←v10328)+7) );
SOURCE(13951, 352)
   {
      word idx110;
      if ( ( (i←v15208 < (* (( (ptr) self←v10328)+5) )) ? (len←v15180 <= (
         idx110 = (word) ((* (( (ptr) self←v10328)+5) ) - i←v15208),
         SGNCK(idx110)
         )) : 0 ) ) {
SOURCE(14034, 121)
SOURCE(14036, 119)
         {
            word var←c43156;
            {
               word var←c43188;
               word text←v36404;
               text←v36404 = (* (( (ptr) self←v10328)+4) );
SOURCE(5827, 57)
               var←c43188 = (text←v36404 + 4);
               var←c43156 = var←c43188;
               };
            (void) Basics←CopyBytes(block←v10356.f0, startIndex←v15152, var←c43156, i←v15208, len←v15180);
            };
SOURCE(14194, 24)
         (* (( (ptr) self←v10328)+7) ) = SGNCK((i←v15208 + len←v15180));
SOURCE(14220, 11)
         return(SGNCK(len←v15180));
         }
      else {
SOURCE(14248, 55)
SOURCE(14250, 53)
         {
            word pd111;
            pd111 = (* (( (ptr) (*  (ptr) self←v10328 ))+2) );
            return((word) ( *( (fPt) ((*  (ptr) pd111 ))))(self←v10328, block←v10356, pd111));
            };
         };
      };
   }

static word EndOf←P3120(self←v10460)
   word self←v10460;
   {
   word var←c10504;
   /* EndOf: */ 
SOURCE(14321, 138)
SOURCE(14374, 85)
   {
      word tc112;
      word pd113;
      if (((* (( (ptr) self←v10460)+7) ) >= (* (( (ptr) self←v10460)+5) ))) {
         pd113 = (* (( (ptr) (*  (ptr) self←v10460 ))+3) );
         tc112 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd113 ))))(self←v10460, pd113));
         }
      else {
         tc112 =  (word) 0;
         };
      return(tc112);
      };
   }

static word CharsAvail←P3180(self←v10564, wait←v10592)
   word self←v10564;
   word wait←v10592;
   {
   word var←c10636;
   /* CharsAvail: */ 
SOURCE(14465, 124)
SOURCE(14542, 47)
   {
      word pd114;
      pd114 = (* (( (ptr) (*  (ptr) self←v10564 ))+4) );
      return((word) ( *( (fPt) ((*  (ptr) pd114 ))))(self←v10564, wait←v10592, pd114));
      };
   }

static void Backup←P3240(self←v10696, char←v10724)
   word self←v10696;
   word char←v10724;
   {
   register ptr gf←c46516 =  (ptr) &globalframe;
   word i←v15252;
   /* Backup: */ 
SOURCE(14595, 274)
SOURCE(14646, 25)
   i←v15252 = (* (( (ptr) self←v10696)+7) );
SOURCE(14673, 196)
   if ( ( (i←v15252 > 0) ? (i←v15252 <= (* (( (ptr) self←v10696)+5) )) : 0 ) ) {
SOURCE(14719, 108)
      {
         word k←v15296;
         word var←c43316;
         word var←c0631;
SOURCE(14721, 12)
         k←v15296 = SGNCK((i←v15252 - 1));
SOURCE(14735, 90)
         var←c43316 = (* (( (ptr) self←v10696)+4) );
         {
            word limit115;
            var←c0631 = (word) (* ((( (bPt) var←c43316)+4)+(
                  limit115 = (word) (* (( (hPt) var←c43316)+1) ),
                  BCK(k←v15296, limit115)
                  )) );
            };
         if ((var←c0631 == char←v10724)) {
SOURCE(14763, 26)
            (* (( (ptr) self←v10696)+7) ) = k←v15296;
            }
         else {
SOURCE(14789, 36)
            {
               W4 var←c0385;
               (*  (ptr) (word) &var←c0385 ) = 4;
               (* (( (ptr) (word) &var←c0385) + 1) ) = self←v10696;
               (* (( (ptr) (word) &var←c0385) + 2) ) = 0;
               (* (( (ptr) (word) &var←c0385) + 3) ) = 0;
               (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c46516)+219)/* var←c41076 */  ))+5) ), (word) &var←c0385);
               };
            };
         };
      }
   else {
SOURCE(14834, 35)
      {
         word pd116;
         pd116 = (* (( (ptr) (*  (ptr) self←v10696 ))+5) );
         (void) ( *( (fPt) ((*  (ptr) pd116 ))))(self←v10696, char←v10724, pd116);
         };
      };
   }

static word PeekChar←P3300(self←v10784)
   word self←v10784;
   {
   word char←v10828;
   word i←v15340;
   /* PeekChar: */ 
SOURCE(14875, 216)
SOURCE(14937, 25)
   i←v15340 = (* (( (ptr) self←v10784)+7) );
SOURCE(14964, 127)
   if ((i←v15340 < (* (( (ptr) self←v10784)+5) ))) {
SOURCE(14999, 39)
      {
         word var←c43380;
         word buffer←v37704;
         buffer←v37704 = (* (( (ptr) self←v10784)+4) );
         var←c43380 = (word) (* ((( (bPt) buffer←v37704)+4)+i←v15340) );
         return(var←c43380);
         };
      }
   else {
SOURCE(15038, 53)
      {
         word var←c43412;
         {
            word var←c43444;
            {
               word pd117;
               pd117 = (*  (ptr) (*  (ptr) self←v10784 ) );
               var←c43444 = (word) ( *( (fPt) ((*  (ptr) pd117 ))))(self←v10784, pd117);
               };
            char←v10828 = var←c43444;
            var←c43412 = var←c43444;
            };
         (void) Backup←P3240(self←v10784, var←c43412);
         };
      };
SOURCE(14875, 216)
   return(char←v10828);
   }

static void PutChar←P3360(self←v10888, char←v10916)
   word self←v10888;
   word char←v10916;
   {
   word i←v15384;
   /* PutChar: */ 
SOURCE(15097, 206)
SOURCE(15149, 25)
   i←v15384 = (* (( (ptr) self←v10888)+7) );
SOURCE(15176, 127)
   if ((i←v15384 < (* (( (ptr) self←v10888)+6) ))) {
SOURCE(15214, 22)
      (* (( (ptr) self←v10888)+7) ) = (i←v15384 + 1);
SOURCE(15238, 22)
      {
         word var←c43476;
         var←c43476 = (* (( (ptr) self←v10888)+4) );
         {
            word limit118;
            (* ((( (bPt) var←c43476)+4)+(
                  limit118 = (word) (* (( (hPt) var←c43476)+1) ),
                  BCK(i←v15384, limit118)
                  )) ) = char←v10916;
            };
         };
      }
   else {
SOURCE(15267, 36)
      {
         word pd119;
         pd119 = (* (( (ptr) (*  (ptr) self←v10888 ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd119 ))))(self←v10888, char←v10916, pd119);
         };
      };
   }

static void PutBlock←P3420(self←v10976, block←v11004, startIndex←v11032, count←v11060)
   word self←v10976;
   word block←v11004;
   word startIndex←v11032;
   word count←v11060;
   {
   word rem←v15428;
   word len←v15456;
   word bufferOutputLength←v15484;
   word i←v15512;
   /* PutBlock: */ 
SOURCE(15309, 698)
SOURCE(15420, 37)
   rem←v15428 = ((* (( (hPt) block←v11004)+1) ) - startIndex←v11032);
SOURCE(15504, 73)
   {
      word tc120;
      word x121;
      if ((count←v11060 > rem←v15428)) {
         tc120 =  (word) (x121 = ((*  (hPt) block←v11004 ) - startIndex←v11032),
            MIN((int)(word), rem←v15428, x121));
         }
      else {
         tc120 =  (word) count←v11060;
         };
      len←v15456 = tc120;
      };
SOURCE(15579, 109)
   {
      word tc122;
      word x123;
      word x124;
      if (((* (( (ptr) self←v10976)+4) ) == 0)) {
         tc122 =  (word) 0;
         }
      else {
         tc122 =  (word) (x123 = (* (( (hPt) (* (( (ptr) self←v10976)+4) ))+1) ),
            x124 = (* (( (ptr) self←v10976)+6) ),
            MIN( (unsigned) , x123, x124));
         };
      bufferOutputLength←v15484 = tc122;
      };
SOURCE(15690, 25)
   i←v15512 = (* (( (ptr) self←v10976)+7) );
SOURCE(15717, 290)
   if ( ( (i←v15512 < bufferOutputLength←v15484) ? ( (int)len←v15456 <=  (int)(bufferOutputLength←v15484 - i←v15512)) : 0 ) ) {
SOURCE(15791, 125)
SOURCE(15793, 123)
      {
         word var←c43508;
         word var←c43572;
         {
            word var←c43540;
            word text←v36356;
            text←v36356 = (* (( (ptr) self←v10976)+4) );
SOURCE(5827, 57)
            var←c43540 = (text←v36356 + 4);
            var←c43508 = var←c43540;
            };
         {
            word text←v36308;
            text←v36308 = block←v11004;
SOURCE(5827, 57)
            var←c43572 = (text←v36308 + 4);
            };
         (void) Basics←CopyBytes(var←c43508, i←v15512, var←c43572, startIndex←v11032, len←v15456);
         };
SOURCE(15919, 24)
      (* (( (ptr) self←v10976)+7) ) = SGNCK((i←v15512 + len←v15456));
      }
   else {
SOURCE(15952, 55)
      {
         word pd125;
         pd125 = (* (( (ptr) (*  (ptr) self←v10976 ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd125 ))))(self←v10976, block←v11004, startIndex←v11032, len←v15456, pd125);
         };
      };
   }

static void UnsafePutBlock←P3480(self←v11132, block←v11160)
   word self←v11132;
   W3 block←v11160;
   {
   word startIndex←v15556;
   word len←v15584;
   word bufferOutputLength←v15612;
   word i←v15640;
   /* UnsafePutBlock: */ 
SOURCE(16013, 612)
SOURCE(16080, 35)
   {
      word idx126;
      startIndex←v15556 = (
         idx126 = (word) block←v11160.f1,
         SGNCK(idx126)
         );
      };
SOURCE(16154, 23)
   {
      word idx127;
      len←v15584 = (
         idx127 = (word) block←v11160.f2,
         SGNCK(idx127)
         );
      };
SOURCE(16211, 109)
   {
      word tc128;
      word x129;
      word x130;
      if (((* (( (ptr) self←v11132)+4) ) == 0)) {
         tc128 =  (word) 0;
         }
      else {
         tc128 =  (word) (x129 = (* (( (hPt) (* (( (ptr) self←v11132)+4) ))+1) ),
            x130 = (* (( (ptr) self←v11132)+6) ),
            MIN( (unsigned) , x129, x130));
         };
      bufferOutputLength←v15612 = tc128;
      };
SOURCE(16322, 25)
   i←v15640 = (* (( (ptr) self←v11132)+7) );
SOURCE(16349, 276)
   if ( ( (i←v15640 < bufferOutputLength←v15612) ? (len←v15584 <= SGNCK((bufferOutputLength←v15612 - i←v15640))) : 0 ) ) {
SOURCE(16424, 121)
SOURCE(16426, 119)
      {
         word var←c43636;
         {
            word var←c43668;
            word text←v36260;
            text←v36260 = (* (( (ptr) self←v11132)+4) );
SOURCE(5827, 57)
            var←c43668 = (text←v36260 + 4);
            var←c43636 = var←c43668;
            };
         (void) Basics←CopyBytes(var←c43636, i←v15640, block←v11160.f0, startIndex←v15556, len←v15584);
         };
SOURCE(16548, 24)
      (* (( (ptr) self←v11132)+7) ) = SGNCK((i←v15640 + len←v15584));
      }
   else {
SOURCE(16581, 44)
      {
         word pd131;
         pd131 = (* (( (ptr) (*  (ptr) self←v11132 ))+8) );
         (void) ( *( (fPt) ((*  (ptr) pd131 ))))(self←v11132, block←v11160, pd131);
         };
      };
   }

static void Flush←P3540(self←v11220)
   word self←v11220;
   {
   /* Flush: */ 
SOURCE(16631, 66)
SOURCE(16669, 28)
   {
      word pd132;
      pd132 = (* (( (ptr) (*  (ptr) self←v11220 ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd132 ))))(self←v11220, pd132);
      };
   }

static void EraseChar←P3600(self←v11280, char←v11308)
   word self←v11280;
   word char←v11308;
   {
   /* EraseChar: */ 
SOURCE(16702, 92)
SOURCE(16756, 38)
   {
      word pd133;
      pd133 = (* (( (ptr) (*  (ptr) self←v11280 ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd133 ))))(self←v11280, char←v11308, pd133);
      };
   }

static void Reset←P3660(self←v11368)
   word self←v11368;
   {
   /* Reset: */ 
SOURCE(16800, 66)
SOURCE(16838, 28)
   {
      word pd134;
      pd134 = (* (( (ptr) (*  (ptr) self←v11368 ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd134 ))))(self←v11368, pd134);
      };
   }

static void Close←P3720(self←v11428, abort←v11456)
   word self←v11428;
   word abort←v11456;
   {
   /* Close: */ 
SOURCE(16871, 94)
SOURCE(16930, 35)
   {
      word pd135;
      pd135 = (* (( (ptr) (*  (ptr) self←v11428 ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd135 ))))(self←v11428, abort←v11456, pd135);
      };
   }

static word GetText←P3780(self←v11516, len←v11544, buffer←v11572)
   word self←v11516;
   word len←v11544;
   word buffer←v11572;
   {
   register ptr gf←c46548 =  (ptr) &globalframe;
   word text←v11628;
   /* GetText: */ 
SOURCE(16972, 255)
SOURCE(16972, 255)
   text←v11628 = 0;
SOURCE(17071, 73)
   text←v11628 = buffer←v11572;
   if ((buffer←v11572 == 0)) { goto then0136;};
   if (((* (( (hPt) text←v11628)+1) ) < len←v11544)) {
      then0136: ;
SOURCE(17121, 23)
      {
         word pd137;
         pd137 = (* (( (ptr) (* (( (ptr) gf←c46548)+223)/* var←c43700 */  ))+4) );
         text←v11628 = (word) ( *( (fPt) ((*  (ptr) pd137 ))))(BCK(len←v11544, 32768), pd137);
         };
      };
SOURCE(17146, 81)
   if (((word) GetBlock←P3000(self←v11516, text←v11628, 0, len←v11544) < len←v11544)) {
SOURCE(17204, 23)
      {
         word var←c0429;
         var←c0429 = self←v11516;
         (void) XR←RaiseError((word) (( (bPt) gf←c46548)+184), (word) &var←c0429);
         };
      };
SOURCE(16972, 255)
   return(text←v11628);
   }

static void PutText←P3840(self←v11700, t←v11728)
   word self←v11700;
   word t←v11728;
   {
   /* PutText: */ 
SOURCE(17233, 106)
SOURCE(17295, 44)
   if ((t←v11728 != 0)) {
SOURCE(17309, 30)
      (void) PutBlock←P3420(self←v11700, t←v11728, 0, (*  (hPt) t←v11728 ));
      };
   }

static word GetHWord←P3900(self←v11800)
   word self←v11800;
   {
   word hword←v11844;
   word hi←v15684;
   word lo←v15712;
   /* GetHWord: */ 
SOURCE(17345, 168)
SOURCE(17427, 33)
   {
      word self←v34928;
      self←v34928 = self←v11800;
      {
         word i←v34976;
         i←v34976 = (* (( (ptr) self←v34928)+7) );
         {
            word pd138;
            if ((i←v34976 < (* (( (ptr) self←v34928)+5) ))) {
               (* (( (ptr) self←v34928)+7) ) = (i←v34976 + 1);
               {
                  word var←c43796;
                  word buffer←v35008;
                  buffer←v35008 = (* (( (ptr) self←v34928)+4) );
                  var←c43796 = (word) (* ((( (bPt) buffer←v35008)+4)+i←v34976) );
                  hi←v15684 = var←c43796;
                  };
               }
            else {
               pd138 = (*  (ptr) (*  (ptr) self←v34928 ) );
               hi←v15684 = (word) ( *( (fPt) ((*  (ptr) pd138 ))))(self←v34928, pd138);
               };
            };
         };
      };
SOURCE(17462, 33)
   {
      word self←v37224;
      self←v37224 = self←v11800;
      {
         word i←v37252;
         i←v37252 = (* (( (ptr) self←v37224)+7) );
         {
            word pd139;
            if ((i←v37252 < (* (( (ptr) self←v37224)+5) ))) {
               (* (( (ptr) self←v37224)+7) ) = (i←v37252 + 1);
               {
                  word var←c43924;
                  word buffer←v37296;
                  buffer←v37296 = (* (( (ptr) self←v37224)+4) );
                  var←c43924 = (word) (* ((( (bPt) buffer←v37296)+4)+i←v37252) );
                  lo←v15712 = var←c43924;
                  };
               }
            else {
               pd139 = (*  (ptr) (*  (ptr) self←v37224 ) );
               lo←v15712 = (word) ( *( (fPt) ((*  (ptr) pd139 ))))(self←v37224, pd139);
               };
            };
         };
      };
SOURCE(17497, 16)
   return((((hi←v15684 & 0377) << 8) + (lo←v15712 & 0377)));
   }

static void PutHWord←P3960(self←v11904, hword←v11932)
   word self←v11904;
   word hword←v11932;
   {
   /* PutHWord: */ 
SOURCE(17552, 139)
SOURCE(17625, 32)
   {
      word self←v35532;
      word char←v35564;
      self←v35532 = self←v11904;
      char←v35564 = (((unsigned)hword←v11932 << 16) >> 24);
      {
         word i←v35612;
         i←v35612 = (* (( (ptr) self←v35532)+7) );
         {
            word pd141;
            if ((i←v35612 < (* (( (ptr) self←v35532)+6) ))) {
               (* (( (ptr) self←v35532)+7) ) = (i←v35612 + 1);
               {
                  word var←c44020;
                  var←c44020 = (* (( (ptr) self←v35532)+4) );
                  {
                     word limit140;
                     (* ((( (bPt) var←c44020)+4)+(
                           limit140 = (word) (* (( (hPt) var←c44020)+1) ),
                           BCK(i←v35612, limit140)
                           )) ) = char←v35564;
                     };
                  };
               }
            else {
               pd141 = (* (( (ptr) (*  (ptr) self←v35532 ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd141 ))))(self←v35532, char←v35564, pd141);
               };
            };
         };
      };
SOURCE(17659, 32)
   {
      word self←v36644;
      word char←v36672;
      self←v36644 = self←v11904;
      char←v36672 = (hword←v11932 & 0377);
      {
         word i←v36700;
         i←v36700 = (* (( (ptr) self←v36644)+7) );
         {
            word pd143;
            if ((i←v36700 < (* (( (ptr) self←v36644)+6) ))) {
               (* (( (ptr) self←v36644)+7) ) = (i←v36700 + 1);
               {
                  word var←c44052;
                  var←c44052 = (* (( (ptr) self←v36644)+4) );
                  {
                     word limit142;
                     (* ((( (bPt) var←c44052)+4)+(
                           limit142 = (word) (* (( (hPt) var←c44052)+1) ),
                           BCK(i←v36700, limit142)
                           )) ) = char←v36672;
                     };
                  };
               }
            else {
               pd143 = (* (( (ptr) (*  (ptr) self←v36644 ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd143 ))))(self←v36644, char←v36672, pd143);
               };
            };
         };
      };
   }

static word GetFWord←P4020(self←v11992)
   word self←v11992;
   {
   word fword←v12036;
   word hhi←v15756;
   word hlo←v15784;
   word lhi←v15812;
   word llo←v15840;
   /* GetFWord: */ 
SOURCE(17697, 258)
SOURCE(17779, 34)
   {
      word self←v37108;
      self←v37108 = self←v11992;
      {
         word i←v37136;
         i←v37136 = (* (( (ptr) self←v37108)+7) );
         {
            word pd144;
            if ((i←v37136 < (* (( (ptr) self←v37108)+5) ))) {
               (* (( (ptr) self←v37108)+7) ) = (i←v37136 + 1);
               {
                  word var←c44148;
                  word buffer←v37180;
                  buffer←v37180 = (* (( (ptr) self←v37108)+4) );
                  var←c44148 = (word) (* ((( (bPt) buffer←v37180)+4)+i←v37136) );
                  hhi←v15756 = var←c44148;
                  };
               }
            else {
               pd144 = (*  (ptr) (*  (ptr) self←v37108 ) );
               hhi←v15756 = (word) ( *( (fPt) ((*  (ptr) pd144 ))))(self←v37108, pd144);
               };
            };
         };
      };
SOURCE(17815, 34)
   {
      word self←v36992;
      self←v36992 = self←v11992;
      {
         word i←v37020;
         i←v37020 = (* (( (ptr) self←v36992)+7) );
         {
            word pd145;
            if ((i←v37020 < (* (( (ptr) self←v36992)+5) ))) {
               (* (( (ptr) self←v36992)+7) ) = (i←v37020 + 1);
               {
                  word var←c44276;
                  word buffer←v37064;
                  buffer←v37064 = (* (( (ptr) self←v36992)+4) );
                  var←c44276 = (word) (* ((( (bPt) buffer←v37064)+4)+i←v37020) );
                  hlo←v15784 = var←c44276;
                  };
               }
            else {
               pd145 = (*  (ptr) (*  (ptr) self←v36992 ) );
               hlo←v15784 = (word) ( *( (fPt) ((*  (ptr) pd145 ))))(self←v36992, pd145);
               };
            };
         };
      };
SOURCE(17851, 34)
   {
      word self←v36876;
      self←v36876 = self←v11992;
      {
         word i←v36904;
         i←v36904 = (* (( (ptr) self←v36876)+7) );
         {
            word pd146;
            if ((i←v36904 < (* (( (ptr) self←v36876)+5) ))) {
               (* (( (ptr) self←v36876)+7) ) = (i←v36904 + 1);
               {
                  word var←c44404;
                  word buffer←v36948;
                  buffer←v36948 = (* (( (ptr) self←v36876)+4) );
                  var←c44404 = (word) (* ((( (bPt) buffer←v36948)+4)+i←v36904) );
                  lhi←v15812 = var←c44404;
                  };
               }
            else {
               pd146 = (*  (ptr) (*  (ptr) self←v36876 ) );
               lhi←v15812 = (word) ( *( (fPt) ((*  (ptr) pd146 ))))(self←v36876, pd146);
               };
            };
         };
      };
SOURCE(17887, 34)
   {
      word self←v36760;
      self←v36760 = self←v11992;
      {
         word i←v36788;
         i←v36788 = (* (( (ptr) self←v36760)+7) );
         {
            word pd147;
            if ((i←v36788 < (* (( (ptr) self←v36760)+5) ))) {
               (* (( (ptr) self←v36760)+7) ) = (i←v36788 + 1);
               {
                  word var←c44532;
                  word buffer←v36832;
                  buffer←v36832 = (* (( (ptr) self←v36760)+4) );
                  var←c44532 = (word) (* ((( (bPt) buffer←v36832)+4)+i←v36788) );
                  llo←v15840 = var←c44532;
                  };
               }
            else {
               pd147 = (*  (ptr) (*  (ptr) self←v36760 ) );
               llo←v15840 = (word) ( *( (fPt) ((*  (ptr) pd147 ))))(self←v36760, pd147);
               };
            };
         };
      };
SOURCE(17923, 32)
   return((((((((hhi←v15756 & 0377) << 8) + (hlo←v15784 & 0377)) << 8) + (lhi←v15812 & 0377)) << 8) + (llo←v15840 & 0377)));
   }

static void PutFWord←P4080(self←v12096, fword←v12124)
   word self←v12096;
   word fword←v12124;
   {
   /* PutFWord: */ 
SOURCE(17961, 123)
SOURCE(18034, 24)
   (void) PutHWord←P3960(self←v12096, ((unsigned)fword←v12124 >> 16));
SOURCE(18060, 24)
   (void) PutHWord←P3960(self←v12096, ( (((unsigned)fword←v12124 << 16) >> 16) ));
   }

static word GetIndex←P4140(self←v12184)
   word self←v12184;
   {
   word index←v12228;
   /* GetIndex: */ 
SOURCE(18089, 102)
SOURCE(18151, 40)
   {
      word pd148;
      pd148 = (* (( (ptr) (*  (ptr) self←v12184 ))+12) );
      return((word) ( *( (fPt) ((*  (ptr) pd148 ))))(self←v12184, pd148));
      };
   }

static void SetIndex←P4200(self←v12288, index←v12316)
   word self←v12288;
   word index←v12316;
   {
   /* SetIndex: */ 
SOURCE(18195, 92)
SOURCE(18248, 39)
   {
      word pd149;
      pd149 = (* (( (ptr) (*  (ptr) self←v12288 ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd149 ))))(self←v12288, index←v12316, pd149);
      };
   }

static word GetLength←P4260(self←v12376)
   word self←v12376;
   {
   word length←v12420;
   /* GetLength: */ 
SOURCE(18292, 105)
SOURCE(18356, 41)
   {
      word pd150;
      pd150 = (* (( (ptr) (*  (ptr) self←v12376 ))+14) );
      return((word) ( *( (fPt) ((*  (ptr) pd150 ))))(self←v12376, pd150));
      };
   }

static void SetLength←P4320(self←v12480, length←v12508)
   word self←v12480;
   word length←v12508;
   {
   /* SetLength: */ 
SOURCE(18400, 96)
SOURCE(18455, 41)
   {
      word pd151;
      pd151 = (* (( (ptr) (*  (ptr) self←v12480 ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd151 ))))(self←v12480, length←v12508, pd151);
      };
   }

static void AmbushStream←P4380(self←v12568, streamProcs←v12596, streamData←v12624, reusing←v12652)
   word self←v12568;
   word streamProcs←v12596;
   word streamData←v12624;
   word reusing←v12652;
   {
   register ptr gf←c46580 =  (ptr) &globalframe;
   /* AmbushStream: */ 
SOURCE(18500, 424)
SOURCE(18619, 151)
   if ((reusing←v12652 == 0) || (reusing←v12652 == self←v12568)) {
SOURCE(18702, 68)
      reusing←v12652 = XR←NewObject(32, (* (( (ptr) gf←c46580)+15) ));
      };
SOURCE(18772, 16)
   (*  (W8Pt) reusing←v12652 ) = (*  (W8Pt) self←v12568 );
SOURCE(18790, 110)
   (* (( (ptr) self←v12568)+2) ) = (* (( (ptr) reusing←v12652)+2) );
   (*  (ptr) self←v12568 ) = streamProcs←v12596;
   (* (( (ptr) self←v12568)+1) ) = streamData←v12624;
   (* (( (ptr) self←v12568)+3) ) = reusing←v12652;
   (* (( (ptr) self←v12568)+4) ) = 0;
   (* (( (ptr) self←v12568)+5) ) = 0;
   (* (( (ptr) self←v12568)+6) ) = 0;
   (* (( (ptr) self←v12568)+7) ) = 0;
SOURCE(18902, 22)
   (* (( (ptr) reusing←v12652)+2) ) = 0;
   }

static void UnAmbushStream←P4440(self←v12736)
   word self←v12736;
   {
   word propList←v15884;
   /* UnAmbushStream: */ 
SOURCE(18965, 273)
SOURCE(19012, 39)
   propList←v15884 = (* (( (ptr) self←v12736)+2) );
SOURCE(19054, 39)
   if (((* (( (ptr) self←v12736)+3) ) == 0)) {
SOURCE(19087, 6)
      return;
      };
SOURCE(19095, 27)
   (*  (W8Pt) self←v12736 ) = (*  (W8Pt) (* (( (ptr) self←v12736)+3) ) );
SOURCE(19124, 28)
   if (((* (( (ptr) self←v12736)+2) ) != 0)) {
SOURCE(19152, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(19214, 24)
   (* (( (ptr) self←v12736)+2) ) = propList←v15884;
   }

static void StoreData←P4500(self←v12796, key←v12824, data←v12852)
   word self←v12796;
   word key←v12824;
   word data←v12852;
   {
   register ptr gf←c46612 =  (ptr) &globalframe;
   /* StoreData: */ 
SOURCE(19244, 128)
SOURCE(19312, 60)
   {
      word pd152;
      pd152 = (* (( (ptr) (* (( (ptr) gf←c46612)+221)/* var←c41268 */  ))+14) );
      (* (( (ptr) self←v12796)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd152 ))))((* (( (ptr) self←v12796)+2) ), key←v12824, data←v12852, pd152)
      ;
      };
   }

static word LookupData←P4560(self←v12924, key←v12952)
   word self←v12924;
   word key←v12952;
   {
   register ptr gf←c46644 =  (ptr) &globalframe;
   word var←c12996;
   /* LookupData: */ 
SOURCE(19378, 120)
SOURCE(19450, 48)
   {
      word pd153;
      pd153 = (* (( (ptr) (* (( (ptr) gf←c46644)+221)/* var←c41268 */  ))+12) );
      return((word) ( *( (fPt) ((*  (ptr) pd153 ))))((* (( (ptr) self←v12924)+2) ), key←v12952, pd153));
      };
   }

static void RemoveData←P4620(self←v13068, key←v13096)
   word self←v13068;
   word key←v13096;
   {
   register ptr gf←c46676 =  (ptr) &globalframe;
   /* RemoveData: */ 
SOURCE(19504, 110)
SOURCE(19558, 56)
   {
      word pd154;
      pd154 = (* (( (ptr) (* (( (ptr) gf←c46676)+221)/* var←c41268 */  ))+16) );
      (* (( (ptr) self←v13068)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd154 ))))((* (( (ptr) self←v13068)+2) ), key←v13096, pd154)
      ;
      };
   }

static void StoreProc←P4680(class←v13156, key←v13184, procRef←v13212)
   word class←v13156;
   word key←v13184;
   word procRef←v13212;
   {
   register ptr gf←c46708 =  (ptr) &globalframe;
   /* StoreProc: */ 
SOURCE(19620, 146)
SOURCE(19701, 65)
   {
      word pd155;
      pd155 = (* (( (ptr) (* (( (ptr) gf←c46708)+221)/* var←c41268 */  ))+14) );
      (* (( (ptr) class←v13156)+17) ) = (word) ( *( (fPt) ((*  (ptr) pd155 ))))((* (( (ptr) class←v13156)+17) ), key←v13184, procRef←v13212, pd155)
      ;
      };
   }

static word LookupProc←P4740(self←v13296, key←v13324)
   word self←v13296;
   word key←v13324;
   {
   register ptr gf←c46740 =  (ptr) &globalframe;
   word procRef←v13368;
   /* LookupProc: */ 
SOURCE(19772, 141)
SOURCE(19772, 141)
   procRef←v13368 = 0;
SOURCE(19853, 60)
   {
      word pd156;
      pd156 = (* (( (ptr) (* (( (ptr) gf←c46740)+221)/* var←c41268 */  ))+12) );
      return((word) ( *( (fPt) ((*  (ptr) pd156 ))))((* (( (ptr) (*  (ptr) self←v13296 ))+17) ), key←v13324, pd156));
      };
   }

static void DefaultBackup←P4800(self←v13548, char←v13576)
   word self←v13548;
   word char←v13576;
   {
   register ptr gf←c46772 =  (ptr) &globalframe;
   word data←v15928;
   /* DefaultBackup: */ 
SOURCE(20230, 519)
SOURCE(20281, 52)
   data←v15928 = XR←Narrow((word) LookupData←P4560(self←v13548, (* (( (ptr) gf←c46772)+43) )), (* (( (ptr) gf←c46772)+8) ));
SOURCE(20335, 158)
   if ((data←v15928 == 0)) {
SOURCE(20356, 87)
      {
         word var←c44820;
         word var←c44852;
         word var←c44884;
         {
            word pd157;
            pd157 = (* (( (ptr) (* (( (ptr) gf←c46772)+219)/* var←c41076 */  ))+105) );
            var←c44820 = (word) ( *( (fPt) ((*  (ptr) pd157 ))))(0, 0, 0, pd157);
            };
         {
            word pd158;
            pd158 = (* (( (ptr) (* (( (ptr) gf←c46772)+223)/* var←c43700 */  ))+4) );
            var←c44852 = (word) ( *( (fPt) ((*  (ptr) pd158 ))))(8, pd158);
            };
         var←c44884 = XR←NewObject(8, (* (( (ptr) gf←c46772)+8) ));
         (*  (ptr) var←c44884 ) = var←c44820;
         (* (( (ptr) var←c44884)+1) ) = var←c44852;
         data←v15928 = var←c44884;
         };
SOURCE(20445, 48)
      (void) StoreData←P4500(self←v13548, (* (( (ptr) gf←c46772)+43) ), data←v15928);
      };
SOURCE(20496, 59)
   if (((*  (ptr) data←v15928 ) == self←v13548)) {
SOURCE(20523, 32)
      {
         W4 var←c0513;
         (*  (ptr) (word) &var←c0513 ) = 4;
         (* (( (ptr) (word) &var←c0513) + 1) ) = self←v13548;
         (* (( (ptr) (word) &var←c0513) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0513) + 3) ) = 0;
         (void) XR←RaiseError((word) (( (bPt) gf←c46772)+180), (word) &var←c0513);
         };
      };
SOURCE(20640, 90)
   (void) AmbushStream←P4380(self←v13548, (* (( (ptr) gf←c46772)+5)/* backupProcs←v5324 */  ), data←v15928, (*  (ptr) data←v15928 ))
   ;
SOURCE(20732, 17)
   {
      word pd159;
      pd159 = (* (( (ptr) (* (( (ptr) gf←c46772)+219)/* var←c41076 */  ))+18) );
      (void) ( *( (fPt) ((*  (ptr) pd159 ))))(self←v13548, char←v13576, pd159);
      };
   }

static void BackupBackup←P4860(formal←c0648, char←v13664)
   word formal←c0648;
   word char←v13664;
   {
   W8 var←c46804;
   /* declaration of self←v13636 skipped */ 
   register ptr gf←c46836 =  (ptr) &globalframe;
   word data←v15972;
   var←c46804.f4/* self←v13636 */  = formal←c0648;
   /* BackupBackup: */ 
SOURCE(20754, 228)
SOURCE(20804, 52)
   data←v15972 = XR←Narrow((word) LookupData←P4560(var←c46804.f4/* self←v13636 */ , (* (( (ptr) gf←c46836)+43) )), (* (( (ptr) gf←c46836)+8)
       ));
SOURCE(20858, 124)
   {
      word var←c44916;
      {
         /* declaration of var←c44948 skipped */ 
         /* declaration of to←v38200 skipped */ 
         /* declaration of from←v38228 skipped */ 
         var←c46804.f6/* to←v38200 */  = (* (( (ptr) data←v15972)+1) );
         var←c46804.f7/* from←v38228 */  = char←v13664;
         {
            word var←c05;
            {
               word var←c0632;
               var←c0632 = (word) &var←c46804;
               var←c05 = (word) XR←Enable(( ((word)  (fPt) NoName←Q8088) ), ( ((word)  (fPt) NoName←Q8148) ), var←c0632);
               };
            /* removed trivial cond node */ 
            };
         var←c44916 = var←c46804.f5/* var←c44948 */ ;
         };
      (* (( (ptr) data←v15972)+1) ) = var←c44916;
      };
   }

static word NoName←Q8088(formal←c0618)
   word formal←c0618;
   {
   register ptr gf←c0617 =  (ptr) &globalframe;
   if (((*  (hPt) (* (( (ptr) formal←c0618)+6) ) ) >= (* (( (hPt) (* (( (ptr) formal←c0618)+6) ))+1) ))) {
      {
         word pd160;
         pd160 = (* (( (ptr) (* (( (ptr) gf←c0617)+223)/* var←c43700 */  ))+11) );
         (* (( (ptr) formal←c0618)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd160 ))))((* (( (ptr) formal←c0618)+6) ), (* (( (ptr) formal←c0618)+7)
             ), pd160);
         };
      return(5);
      };
   {
      word idx161;
      word limit162;
      (* ((( (bPt) (* (( (ptr) formal←c0618)+6) ))+4)+(
            idx161 = (word) (*  (hPt) (* (( (ptr) formal←c0618)+6) ) ),
            limit162 = (word) (* (( (hPt) (* (( (ptr) formal←c0618)+6) ))+1) ),
            BCK(idx161, limit162)
            )) ) = (* (( (bPt) formal←c0618)+31) );
      };
   {
      word idx163;
      (*  (hPt) (* (( (ptr) formal←c0618)+6) ) ) = (
         idx163 = (word) ((*  (hPt) (* (( (ptr) formal←c0618)+6) ) ) + 1),
         BCK(idx163, 32768)
         );
      };
   (* (( (ptr) formal←c0618)+5) ) = (* (( (ptr) formal←c0618)+6) );
   return(5);
   /* c2c skipped dead code */ 
   }

static word BackupGetChar←P4920(self←v13724)
   word self←v13724;
   {
   register ptr gf←c46868 =  (ptr) &globalframe;
   word char←v13768;
   word data←v16016;
   /* BackupGetChar: */ 
SOURCE(20987, 258)
SOURCE(21047, 42)
   data←v16016 = XR←Narrow((* (( (ptr) self←v13724)+1) ), (* (( (ptr) gf←c46868)+8) ));
SOURCE(21091, 42)
   {
      word var←c45044;
      word var←c45076;
      var←c45044 = ((*  (hPt) (* (( (ptr) data←v16016)+1) ) ) - 1);
      var←c45076 = (* (( (ptr) data←v16016)+1) );
      {
         word limit164;
         char←v13768 = (word) (* ((( (bPt) var←c45076)+4)+(
               limit164 = (word) (* (( (hPt) var←c45076)+1) ),
               BCK(var←c45044, limit164)
               )) );
         };
      };
SOURCE(21135, 43)
   {
      word idx165;
      (*  (hPt) (* (( (ptr) data←v16016)+1) ) ) = (
         idx165 = (word) ((*  (hPt) (* (( (ptr) data←v16016)+1) ) ) - 1),
         BCK(idx165, 32768)
         );
      };
SOURCE(21180, 51)
   if (((*  (hPt) (* (( (ptr) data←v16016)+1) ) ) == 0)) {
SOURCE(21211, 20)
      (void) UnAmbushStream←P4440(self←v13724);
      };
SOURCE(21233, 12)
   return(char←v13768);
   }

static word BackupEndOf←P4980(self←v13828)
   word self←v13828;
   {
   word var←c13872;
   /* BackupEndOf: */ 
SOURCE(21250, 65)
SOURCE(21302, 13)
   return(0);
   }

static word BackupCharsAvail←P5040(self←v13932, wait←v13960)
   word self←v13932;
   word wait←v13960;
   {
   register ptr gf←c46900 =  (ptr) &globalframe;
   word var←c14004;
   word data←v16060;
   /* BackupCharsAvail: */ 
SOURCE(21320, 215)
SOURCE(21388, 42)
   data←v16060 = XR←Narrow((* (( (ptr) self←v13932)+1) ), (* (( (ptr) gf←c46900)+8) ));
SOURCE(21432, 58)
   if (((*  (hPt) (* (( (ptr) data←v16060)+1) ) ) > 0)) {
SOURCE(21463, 27)
      return((*  (hPt) (* (( (ptr) data←v16060)+1) ) ));
      };
SOURCE(21492, 43)
   {
      word pd166;
      pd166 = (* (( (ptr) (* (( (ptr) gf←c46900)+219)/* var←c41076 */  ))+17) );
      return((word) ( *( (fPt) ((*  (ptr) pd166 ))))((* (( (ptr) self←v13932)+3) ), wait←v13960, pd166));
      };
   }

static void BackupReset←P5100(self←v14064)
   word self←v14064;
   {
   register ptr gf←c46932 =  (ptr) &globalframe;
   word data←v16104;
   /* BackupReset: */ 
SOURCE(21540, 139)
SOURCE(21577, 42)
   data←v16104 = XR←Narrow((* (( (ptr) self←v14064)+1) ), (* (( (ptr) gf←c46932)+8) ));
SOURCE(21621, 22)
   (*  (hPt) (* (( (ptr) data←v16104)+1) ) ) = 0;
SOURCE(21645, 20)
   (void) UnAmbushStream←P4440(self←v14064);
SOURCE(21667, 12)
   {
      word pd167;
      pd167 = (* (( (ptr) (* (( (ptr) gf←c46932)+219)/* var←c41076 */  ))+27) );
      (void) ( *( (fPt) ((*  (ptr) pd167 ))))(self←v14064, pd167);
      };
   }

static void NoName←Q8148(formal←c0539, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0539;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0622 =  (ptr) &globalframe;
   if ((formal←c200013 == (* (( (ptr) (* (( (ptr) gf←c0622)+224)/* var←c44980 */  ))+8) ))) {
SOURCE(20945, 37)
      {
         W4 var←c0538;
         (*  (ptr) (word) &var←c0538 ) = 5;
         (* (( (ptr) (word) &var←c0538) + 1) ) = (* (( (ptr) formal←c200012)+4) );
         (* (( (ptr) (word) &var←c0538) + 2) ) = 0;
         (* (( (ptr) (word) &var←c0538) + 3) ) = 0;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c0622)+219)/* var←c41076 */  ))+5) ), (word) &var←c0538);
         };
      };
   (*  (ptr) formal←c0539 ) = 0;
   (* (( (ptr) formal←c0539)+1) ) = 0;
   return;
   }

static void NoName←Q8208(formal←c0545, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0545;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0623 =  (ptr) &globalframe;
   if ((formal←c200009 == (word) (( (bPt) gf←c0623)+184))) {
      {
         word stream←v32044;
         stream←v32044 = (*  (ptr) formal←c200011 );
SOURCE(6601, 8)
         (*  (ptr) formal←c0545 ) = 2;
         (* (( (ptr) formal←c0545)+1) ) = 4;
         return;
         };
      };
   (*  (ptr) formal←c0545 ) = 0;
   (* (( (ptr) formal←c0545)+1) ) = 0;
   return;
   }

static void NoName←Q8268(formal←c0551, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0551;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0624 =  (ptr) &globalframe;
   if ((formal←c200005 == (word) (( (bPt) gf←c0624)+184))) {
      {
         word stream←v31064;
         stream←v31064 = (*  (ptr) formal←c200007 );
SOURCE(6146, 8)
         (*  (ptr) formal←c0551 ) = 2;
         (* (( (ptr) formal←c0551)+1) ) = 3;
         return;
         };
      };
   (*  (ptr) formal←c0551 ) = 0;
   (* (( (ptr) formal←c0551)+1) ) = 0;
   return;
   }

static void NoName←Q8328(formal←c0564, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0564;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0625 =  (ptr) &globalframe;
   if ((formal←c200001 == (word) (( (bPt) gf←c0625)+180))) {
      {
         word ec←v30148;
         word stream←v30176;
         word details←v30204;
         word msg←v30232;
         ec←v30148 = (*  (ptr) formal←c200003 );
         stream←v30176 = (* (( (ptr) formal←c200003)+1) );
         details←v30204 = (* (( (ptr) formal←c200003)+2) );
         msg←v30232 = (* (( (ptr) formal←c200003)+3) );
SOURCE(3144, 86)
         {
            W2 var←c41524;
            {
               word v←v38152;
               v←v38152 = ec←v30148;
               var←c41524.f0 = 4;
               var←c41524.f1 = v←v38152;
               };
            {
               W2 var←c41620;
               W2 var←c41652;
               var←c41620.f0 = 11;
               var←c41620.f1 = (* (( (ptr) formal←c200000)+6) );
               var←c41652.f0 = 11;
               var←c41652.f1 = msg←v30232;
               {
                  word pd168;
                  pd168 = (* (( (ptr) (* (( (ptr) gf←c0625)+219)/* var←c41076 */  ))+62) );
                  (* (( (ptr) formal←c200000)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd168 ))))((* (( (ptr) gf←c0625)+35) ), var←c41620, var←c41524, var←c41652, pd168)
                  ;
                  };
               };
            };
SOURCE(3232, 9)
         (*  (ptr) formal←c0564 ) = 2;
         (* (( (ptr) formal←c0564)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0564 ) = 0;
   (* (( (ptr) formal←c0564)+1) ) = 0;
   return;
   }

/* file: IOCommonImpl, module: IOCommonImpl, compiled at: April 10, 1992 6:17:46 pm PDT */ 
extern void XR←install←IOCommonImpl() {
   NoName←Q7848();
   }
extern void XR←run←IOCommonImpl() { XR←Start(&globalframe); }