/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: May 26, 1992 5:01:50 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: TEditDisplayImpl, module: TEditDisplayImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2104748541,1479972657] TEditDisplayImpl";
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 {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef struct {word f0, f1;} W2;
typedef word (*fPt)();
typedef struct {W8 f; word r;} W9;
typedef W9 *W9Pt;
typedef struct {unsigned f:1, u2:7;} * P1x0b;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W4 r;} W12;
typedef W2 *W2Pt;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W16 r;} W32;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W16 f; W11 r;} W27;
typedef struct {W32 f; W27 r;} W59;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
static float fc78 = 0.0;
static float fc79 = 1.0;
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#define INEG(x)  ( (word) ( - ((int) (word) (x)) ) )
static void NoName←Q4128();
static void TEditDisplayImpl←P0();
static word PaintTEditDocument←P60();
static word NoName←Q4188();
static void Cleanup←P1056();
static word BiggerLineTable←P120();
static void InvalidateLines←P180();
static word Intersects←P240();
static word Inside←P300();
static void LineRectangle←P360();
static void InvalidateLinesOutsideOfRectangle←P420();
static void InvalidateLinesTouchingRectangle←P480();
static void DisplayNewlineIndicator←P540();
static void Path←P1308();
static void Inner←P1368();
static word LockedPaint←P600();
static void CheckBottomVisible←P660();
static void CheckStartLocation←P720();
static word CheckLocNode←P1716();
static void AutoScroll←P780();
static word NoName←Q4248();
static void RefreshViewer←P840();
static word WhileInPosRange←P900();
static void Cleanup←P2064();
static void GetStyleInfo←P2124();
static word FullyVisible←P2184();
static word TryMoveUp←P2244();
static word FindBelow←P3120();
static void ClearEntries←P2304();
static void MoveScanLines←P2364();
static void TryMoveDown←P2424();
static void MoveLinesDown←P2484();
static word NextNode←P2544();
static void ClearLine←P2604();
static word WhyGoOn←P2664();
static void painter←P2820();
static void NoName←Q4308();
static void NoName←Q4368();
static struct {unsigned f; char r[16];} string1 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\113\175\243\331\300\252\247\212\133\100\354\000\000"};
static struct {unsigned f; char r[4];} string4 = {65540, "\251\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\343\357\262\137\300\144\166\356\317\100\164\000\000"};
static struct {unsigned f; char r[16];} string6 = {851981, "\006\005\000\001\004\001\054\001\070\001\100\114\001\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\343\357\262\137\300\144\166\356\317\100\230\000\000"};
static struct {unsigned f; char r[12];} string8 = {589833, "\011\000\044\100\100\040\000\014\001\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\174\107\267\236\300\027\127\205\140\100\164\000\000"};
static struct {unsigned f; char r[4];} string10 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string11 = {786448, "TakeDownPSel\000\000\000"};
static struct {unsigned f; char r[20];} string12 = {1179668, "PaintTEditDocument\000"};
static struct {unsigned f; char r[12];} string13 = {524300, "ShowPSel\000\000\000"};
static struct {unsigned f; char r[16];} string14 = {786448, "TakeDownSSel\000\000\000"};
static struct {unsigned f; char r[12];} string15 = {524300, "ShowSSel\000\000\000"};
static struct {unsigned f; char r[16];} string16 = {786448, "TakeDownFSel\000\000\000"};
static struct {unsigned f; char r[12];} string17 = {524300, "ShowFSel\000\000\000"};
static struct {unsigned f; char r[8];} string18 = {262152, "Text\000\000\000"};
static struct {unsigned f; char r[4];} string19 = {65540, "\012\000\000"};
static struct {unsigned f; char r[12];} string20 = {589836, "StyleKind\000\000"};
static struct {unsigned f; char r[8];} string21 = {327688, "Print\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\175\163\351\375\300\130\066\227\061\100\164\000\000"};
static struct {unsigned f; char r[8];} string23 = {458759, "\006\001@H\004G\377"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\162\231\152\170\300\133\216\116\202\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\004\173\141\246\300\255\256\170\002\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\170\064\225\306\300\207\372\245\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\263\272\165\301\300\364\117\256\374\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\136\334\260\200\300\074\241\343\352\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\167\317\044\003\300\277\140\004\026\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\375\366\273\111\300\156\046\321\053\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\346\312\312\137\300\332\074\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\261\010\310\246\300\337\340\027\051\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\042\224\360\026\300\243\254\175\360\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\353\351\362\137\300\156\374\044\211\100\150\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\241\200\031\316\300\154\273\372\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string39 = {851984, "\257\300\255\037\131\057\300\313\250\372\104\100\150\000\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\343\112\327\166\300\041\341\335\211\100\150\000\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "\257\300\334\224\340\220\300\346\355\242\107\100\150\000\000"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\174\107\267\236\300\027\127\205\140\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\354\332\367\333\300\361\203\205\173\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\016\126\010\321\300\354\015\363\112\100\150\000\000"};
static struct {
   word f0[5]; word f5; word f6[23]; word f29; 
   word f30; word f31; word f32; word f33; 
   word f34; word f35; word f36; word f37; 
   word f38; word f39; word f40; word f41; 
   word f42; word f43; word f44; word f45; 
   word f46; word f47; word f48; word f49; 
   word f50; word f51; word f52; word f53; 
   word f54; word f55; word f56; word f57; 
   word f58; word f59; word f60[22]; 
   } globalframe = {
   {0}, 1, {0}, (word) WhileInPosRange←P900, 
   0, (word) RefreshViewer←P840, 0, (word) AutoScroll←P780, 
   0, (word) CheckStartLocation←P720, 0, (word) CheckBottomVisible←P660, 
   0, (word) LockedPaint←P600, 0, (word) DisplayNewlineIndicator←P540, 
   0, (word) InvalidateLinesTouchingRectangle←P480, 0, (word) InvalidateLinesOutsideOfRectangle←P420, 
   0, (word) LineRectangle←P360, 0, (word) Inside←P300, 
   0, (word) Intersects←P240, 0, (word) InvalidateLines←P180, 
   0, (word) BiggerLineTable←P120, 0, (word) PaintTEditDocument←P60, 
   0, (word) TEditDisplayImpl←P0, {0}
   };

static void NoName←Q4128()
   {
   register ptr gf←c0370 =  (ptr) &globalframe;
   word var←c38440;
   (* (( (ptr) gf←c0370)+7) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0370)+10) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0370)+11) ) = (word) XR←GetTypeIndexS((word) (&string4));
   (* (( (ptr) gf←c0370)+12) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0370)+13) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0370)+16) ) = (word) XR←GetTypeIndexS((word) (&string9));
   (* (( (ptr) gf←c0370)+17) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c0370)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c0370)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+7) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0370)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0370)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0370)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0370)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0370)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0370)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0370)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+7) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0370)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0370)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0370)+17) ), (word) &string21);
   (void) XR←DeclareGlobalFrame((word) "TEditDisplayImpl", &globalframe, (word) XR←GetTypeIndex((word) &string22, 0, (word) &string23)
      , (word) (( (bPt) gf←c0370)+236)/* var←c34056 */ );
   var←c38440 = (word) XR←ImportInterface((word) "Carets", (word) XR←GetTypeIndexS((word) (&string24)), 5);
   (* (( (ptr) gf←c0370)+66)/* var←c34824 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 262657);
   var←c38440 = (word) XR←ImportInterface((word) "EditSpan", (word) XR←GetTypeIndexS((word) (&string25)), 23);
   (* (( (ptr) gf←c0370)+71)/* var←c35688 */  ) = var←c38440;
   var←c38440 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string26)), 84);
   (* (( (ptr) gf←c0370)+65)/* var←c34696 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 1326597);
   (void) XR←ImportProcS(var←c38440, 790786);
   (void) XR←ImportProcS(var←c38440, 1856007);
   (void) XR←ImportProcS(var←c38440, 536578);
   (void) XR←ImportProcS(var←c38440, 801283);
   (void) XR←ImportProcS(var←c38440, 537602);
   (void) XR←ImportProcS(var←c38440, 526338);
   var←c38440 = (word) XR←ImportInterface((word) "ImagerBackdoor", (word) XR←GetTypeIndexS((word) (&string27)), 42);
   (* (( (ptr) gf←c0370)+78)/* var←c37512 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 1840647);
   (void) XR←ImportProcS(var←c38440, 68424965);
   (void) XR←ImportProcS(var←c38440, 67899395);
   var←c38440 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string28)), 55);
   (* (( (ptr) gf←c0370)+79)/* var←c37544 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 262401);
   (void) XR←ImportProcS(var←c38440, 67382273);
   var←c38440 = (word) XR←ImportInterface((word) "InputFocus", (word) XR←GetTypeIndexS((word) (&string29)), 6);
   (* (( (ptr) gf←c0370)+70)/* var←c35624 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 67108864);
   var←c38440 = (word) XR←ImportInterface((word) "NodeReader", (word) XR←GetTypeIndexS((word) (&string30)), 12);
   (* (( (ptr) gf←c0370)+73)/* var←c35784 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 262401);
   (void) XR←ImportProcS(var←c38440, 67634690);
   (void) XR←ImportProcS(var←c38440, 67633154);
   var←c38440 = (word) XR←ImportInterface((word) "NodeStyle", (word) XR←GetTypeIndexS((word) (&string31)), 41);
   (* (( (ptr) gf←c0370)+77)/* var←c36744 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 67635458);
   var←c38440 = (word) XR←ImportInterface((word) "NodeStyleOps", (word) XR←GetTypeIndexS((word) (&string32)), 23);
   (* (( (ptr) gf←c0370)+76)/* var←c36648 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 789251);
   (void) XR←ImportProcS(var←c38440, 262913);
   (void) XR←ImportProcS(var←c38440, 67109376);
   var←c38440 = (word) XR←ImportInterface((word) "Scaled", (word) XR←GetTypeIndexS((word) (&string33)), 19);
   (* (( (ptr) gf←c0370)+80)/* var←c38376 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 67375105);
   var←c38440 = (word) XR←ImportInterface((word) "TextEdit", (word) XR←GetTypeIndexS((word) (&string34)), 39);
   (* (( (ptr) gf←c0370)+63)/* var←c34632 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 67371521);
   (void) XR←ImportProcS(var←c38440, 67380481);
   var←c38440 = (word) XR←ImportInterface((word) "TextNode", (word) XR←GetTypeIndexS((word) (&string35)), 34);
   (* (( (ptr) gf←c0370)+72)/* var←c35720 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 67373569);
   (void) XR←ImportProcS(var←c38440, 135007491);
   (void) XR←ImportProcS(var←c38440, 67372289);
   (void) XR←ImportProcS(var←c38440, 67374081);
   (void) XR←ImportProcS(var←c38440, 67377153);
   var←c38440 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string36)), 43);
   (* (( (ptr) gf←c0370)+64)/* var←c34664 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 67896323);
   var←c38440 = (word) XR←ImportInterface((word) "TEditFormat", (word) XR←GetTypeIndexS((word) (&string37)), 17);
   (* (( (ptr) gf←c0370)+75)/* var←c36616 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 263937);
   (void) XR←ImportProcS(var←c38440, 524802);
   (void) XR←ImportProcS(var←c38440, 1573126);
   (void) XR←ImportProcS(var←c38440, 67110400);
   var←c38440 = (word) XR←ImportInterface((word) "TEditLocks", (word) XR←GetTypeIndexS((word) (&string38)), 7);
   (* (( (ptr) gf←c0370)+62)/* var←c34184 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 67372545);
   (void) XR←ImportProcS(var←c38440, 263425);
   (void) XR←ImportProcS(var←c38440, 68420613);
   var←c38440 = (word) XR←ImportInterface((word) "TEditScrolling", (word) XR←GetTypeIndexS((word) (&string39)), 3);
   (* (( (ptr) gf←c0370)+74)/* var←c35976 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 1049092);
   var←c38440 = (word) XR←ImportInterface((word) "TEditSelection", (word) XR←GetTypeIndexS((word) (&string40)), 68);
   (* (( (ptr) gf←c0370)+67)/* var←c34856 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 134495233);
   (void) XR←ImportProcS(var←c38440, 67386113);
   (void) XR←ImportProcS(var←c38440, 1055492);
   (void) XR←ImportProcS(var←c38440, 793091);
   (void) XR←ImportProcS(var←c38440, 792835);
   (void) XR←ImportProcS(var←c38440, 793859);
   (void) XR←ImportProcS(var←c38440, 269313);
   var←c38440 = (word) XR←ImportInterface((word) "TEditSelectionPrivate", (word) XR←GetTypeIndexS((word) (&string41)), 3);
   (* (( (ptr) gf←c0370)+69)/* var←c35144 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 0);
   var←c38440 = (word) XR←ImportInterface((word) "TEditTouchup", (word) XR←GetTypeIndexS((word) (&string42)), 6);
   (* (( (ptr) gf←c0370)+61)/* var←c34152 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 512);
   var←c38440 = (word) XR←ImportInterface((word) "ViewerOps", (word) XR←GetTypeIndexS((word) (&string43)), 43);
   (* (( (ptr) gf←c0370)+68)/* var←c34952 */  ) = var←c38440;
   (void) XR←ImportProcS(var←c38440, 67639554);
   (void) XR←ImportProcS(var←c38440, 135010819);
   var←c38440 = (word) XR←ExportInterface((word) "TEditPrivate", (word) XR←GetTypeIndexS((word) (&string44)), 12);
   (* (( (ptr) gf←c0370)+81)/* var←c38472 */  ) = var←c38440;
   (void) XR←ExportProcS(var←c38440, (word) (( (bPt) gf←c0370)+228)/* var←c34024 */ , 68157956);
   }

static void TEditDisplayImpl←P0(formal←c046, formal←c045)
   word formal←c046;
   word formal←c045;
   {
   /* TEditDisplayImpl: */ 
   /* moved to installation proc */ 
   }

static word PaintTEditDocument←P60(formal←c0456, formal←c0457, formal←c0458, formal←c0459)
   word formal←c0456;
   word formal←c0457;
   word formal←c0458;
   word formal←c0459;
   {
   W13 var←c38504;
   /* declaration of self←v27300 skipped */ 
   /* declaration of context←v27328 skipped */ 
   /* declaration of whatChanged←v27356 skipped */ 
   /* declaration of clear←v27384 skipped */ 
   register ptr gf←c38536 =  (ptr) &globalframe;
   word quit←v27428;
   /* declaration of var←c34088 skipped */ 
   (* (( (ptr) &var←c38504)+4)/* self←v27300 */  ) = formal←c0456;
   (* (( (ptr) &var←c38504)+5)/* context←v27328 */  ) = formal←c0457;
   (* (( (ptr) &var←c38504)+6)/* whatChanged←v27356 */  ) = formal←c0458;
   (* (( (ptr) &var←c38504)+7)/* clear←v27384 */  ) = formal←c0459;
   /* PaintTEditDocument: */ 
SOURCE(2201, 698)
   {
      word tmpAddr45;
      tmpAddr45 = (word) (( (ptr) &var←c38504)+8)/* var←c34088 */ ;
      (*  (ptr) tmpAddr45 ) = ( ((word)  (fPt) Cleanup←P1056) );
      (* (( (ptr) tmpAddr45) + 1) ) = 1;
      };
SOURCE(2201, 698)
   quit←v27428 = 0;
SOURCE(2256, 643)
   {
      word var←c34120;
      var←c34120 = (* (( (ptr) (* (( (ptr) &var←c38504)+4)/* self←v27300 */  ))+26) );
      if ((var←c34120 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) gf←c38536)+12) ) == XR←GetReferentType(var←c34120))) {
         {
            /* declaration of tdd←v6844 skipped */ 
            (* (( (ptr) &var←c38504)+10)/* tdd←v6844 */  ) = var←c34120;
SOURCE(2309, 592)
            {
               word interrupt←v6888;
               /* declaration of lock←v6916 skipped */ 
SOURCE(2311, 134)
               interrupt←v6888 =  ( (((0 != (* (( (ptr) &var←c38504)+7)/* clear←v27384 */  )) || ((* (( (ptr) &var←c38504)+6)/* whatChanged←v27356 */  ) == (*  (ptr) (* (
                  ( (ptr) (* (( (ptr) gf←c38536)+61)/* var←c34152 */  ))+4) ) ))) || ((* (( (ptr) &var←c38504)+6)/* whatChanged←v27356 */  ) == 0)) ? 1 :  ( ((* (
                  ( (ptr) &var←c38504)+6)/* whatChanged←v27356 */  ) == 0) ? 1 : ((* (( (ptr) gf←c38536)+10) ) == XR←GetReferentType(* (( (ptr) &var←c38504)+6)
               /* whatChanged←v27356 */  )) )  ) ;
SOURCE(2447, 30)
               (* (( (ptr) &var←c38504)+11)/* lock←v6916 */  ) = 0;
SOURCE(2597, 288)
               {
                  word pd46;
                  pd46 = (* (( (ptr) (* (( (ptr) gf←c38536)+62)/* var←c34184 */  ))+8) );
                  (* (( (ptr) &var←c38504)+11)/* lock←v6916 */  ) = (word) ( *( (fPt) ((*  (ptr) pd46 ))))((* (( (ptr) &var←c38504)+10)/* tdd←v6844 */  ), (* (
                        ( (ptr) gf←c38536)+19) ), 0, interrupt←v6888, 1, pd46);
                  };
SOURCE(2680, 21)
               (* (( (ptr) (* (( (ptr) &var←c38504)+10)/* tdd←v6844 */  ))+10) ) = 0;
SOURCE(2743, 142)
               if (((* (( (ptr) &var←c38504)+11)/* lock←v6916 */  ) == 0)) {
SOURCE(2762, 22)
                  if ((0 == interrupt←v6888)) {
SOURCE(2784, 6)
                     (void) XR←RaiseUnnamedError();
                     };
                  }
               else {
SOURCE(2799, 86)
                  {
                     /* declaration of var←c01 skipped */ 
                     {
                        word var←c0409;
                        var←c0409 = (word) &var←c38504;
                         (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q4188) ), ( ((word)  (fPt) NoName←Q4368) ), var←c0409);
                        };
                     quit←v27428 = (* (( (ptr) &var←c38504)+12)/* var←c01 */  );
                     };
                  };
SOURCE(2890, 9)
               (void) Cleanup←P1056((word) ((( (bPt) &var←c38504)+32)/* var←c34088 */ ));
               };
            };
         }
      else {
         lab←L100000: ;
         };
      };
SOURCE(2201, 698)
   return(quit←v27428);
   }

static word NoName←Q4188(formal←c0372)
   word formal←c0372;
   {
SOURCE(2799, 86)
   (* (( (ptr) formal←c0372)+12) ) = (word) LockedPaint←P600((* (( (ptr) formal←c0372)+4) ), (* (( (ptr) formal←c0372)+5) ), (* (
         ( (ptr) formal←c0372)+6) ), (* (( (ptr) formal←c0372)+7) ), (* (( (ptr) formal←c0372)+10) ), (* (( (ptr) formal←c0372)+11)
       ));
   return(0);
   }

static void Cleanup←P1056(formal←c38600)
   word formal←c38600;
   {
   register ptr gf←c38568 =  (ptr) &globalframe;
   formal←c38600 = (formal←c38600 - 32);
   /* Cleanup: */ 
SOURCE(2479, 16)
SOURCE(2497, 92)
   if (((* (( (ptr) formal←c38600)+11) ) != 0)) {
SOURCE(2518, 31)
      {
         word pd47;
         pd47 = (* (( (ptr) (* (( (ptr) gf←c38568)+62)/* var←c34184 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd47 ))))((* ((( (ptr) formal←c38600)+10)) ), pd47);
         };
SOURCE(2551, 26)
      {
         word pd48;
         pd48 = (* (( (ptr) (* (( (ptr) gf←c38568)+61)/* var←c34152 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd48 ))))(pd48);
         };
SOURCE(2579, 10)
      (* (( (ptr) formal←c38600)+11) ) = 0;
      };
   }

static word BiggerLineTable←P120(oldTable←v4508, newSize←v4536)
   word oldTable←v4508;
   word newSize←v4536;
   {
   register ptr gf←c38632 =  (ptr) &globalframe;
   word lineTable←v4580;
   /* BiggerLineTable: */ 
SOURCE(2925, 304)
SOURCE(2925, 304)
   lineTable←v4580 = 0;
SOURCE(3018, 52)
   {
      word var←c34216;
      word var←c34248;
      word var←c34280;
      var←c34216 = SGNCK(newSize←v4536);
      var←c34248 = (var←c34216 * 36);
      var←c34280 = XR←NewObject((12 + var←c34248), (* (( (ptr) gf←c38632)+13) ));
      (* (( (ptr) var←c34280)+2) ) = var←c34216;
      lineTable←v4580 = var←c34280;
      };
SOURCE(3072, 38)
   (*  (ptr) lineTable←v4580 ) = (*  (ptr) oldTable←v4508 );
SOURCE(3112, 32)
   (* (( (ptr) lineTable←v4580)+1) ) = (* (( (ptr) oldTable←v4508)+1) );
SOURCE(3146, 83)
   {
      register word n←v7004 = 0;
      register word noName←c34312;
      {
         word idx49;
         noName←c34312 = (
            idx49 = (*  (ptr) oldTable←v4508 ),
            SGNCK(idx49)
            );
         };
      if ((n←v7004 > noName←c34312)) {
         goto lab←L100003;
         };
      lab←L100006: ;
SOURCE(3203, 26)
      {
         word limit50;
         word limit51;
         (* (( (W9Pt) (( (ptr) lineTable←v4580)+3))+(
               limit50 = (* (( (ptr) lineTable←v4580)+2) ),
               BCK(n←v7004, limit50)
               )) ) = (* (( (W9Pt) (( (ptr) oldTable←v4508)+3))+(
               limit51 = (* (( (ptr) oldTable←v4508)+2) ),
               BCK(n←v7004, limit51)
               )) );
         };
      if ((n←v7004 >= noName←c34312)) {
         goto lab←L100003;
         };
      n←v7004 = (n←v7004 + 1);
      goto lab←L100006;
      lab←L100003: ;
      };
SOURCE(2925, 304)
   return(lineTable←v4580);
   }

static void InvalidateLines←P180(lineTable←v4640, start←v4668, end←v4696)
   word lineTable←v4640;
   word start←v4668;
   word end←v4696;
   {
   /* InvalidateLines: */ 
SOURCE(3244, 122)
SOURCE(3310, 56)
   {
      register word i←v7048;
      register word noName←c34344;
      i←v7048 = start←v4668;
      noName←c34344 = end←v4696;
      if (( (int)i←v7048 >=  (int)noName←c34344)) {
         goto lab←L100007;
         };
      lab←L100010: ;
SOURCE(3340, 26)
      {
         word limit52;
         ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) lineTable←v4640)+12))+(
                  limit52 = (* (( (ptr) lineTable←v4640)+2) ),
                  BCK(i←v7048, limit52)
                  ))) + 8))->f = 0;
         };
      i←v7048 = (i←v7048 + 1);
      if (( (int)i←v7048 <  (int)noName←c34344)) {
         goto lab←L100010;
         };
      lab←L100007: ;
      };
   }

static word Intersects←P240(a←v4884, b←v4912)
   W4 a←v4884;
   W4 b←v4912;
   {
   word var←c4956;
   word ymin←v7092;
   word ymax←v7120;
   word xmin←v7148;
   word xmax←v7176;
   /* Intersects: */ 
SOURCE(3427, 233)
SOURCE(3476, 31)
   {
      word x53;
      word x54;
      ymin←v7092 = (x53 = a←v4884.f1,
         x54 = b←v4912.f1,
         MAX((int)(word), x53, x54));
      };
SOURCE(3509, 39)
   {
      word x55;
      word x56;
      ymax←v7120 = (x55 = (a←v4884.f1 + a←v4884.f3),
         x56 = (b←v4912.f1 + b←v4912.f3),
         MIN((int)(word), x55, x56));
      };
SOURCE(3550, 31)
   {
      word x57;
      word x58;
      xmin←v7148 = (x57 = a←v4884.f0,
         x58 = b←v4912.f0,
         MAX((int)(word), x57, x58));
      };
SOURCE(3583, 39)
   {
      word x59;
      word x60;
      xmax←v7176 = (x59 = (a←v4884.f0 + a←v4884.f2),
         x60 = (b←v4912.f0 + b←v4912.f2),
         MIN((int)(word), x59, x60));
      };
SOURCE(3624, 36)
   {
      word tc61;
      if (( (int)xmax←v7176 >  (int)xmin←v7148)) {
         tc61 =  (word) ( (int)ymax←v7120 >  (int)ymin←v7092);
         }
      else {
         tc61 =  (word) 0;
         };
      return(tc61);
      };
   }

static word Inside←P300(a←v5016, b←v5044)
   W4 a←v5016;
   W4 b←v5044;
   {
   word var←c5088;
   /* Inside: */ 
SOURCE(3666, 141)
SOURCE(3711, 96)
   {
      word tc62;
      if ( (  ( ( (int)a←v5016.f1 >=  (int)b←v5044.f1) ? ( (int)(a←v5016.f1 + a←v5016.f3) <  (int)(b←v5044.f1 + b←v5044.f3)) : 0 )  ? ( (int)a←v5016.f0 >=  (int)b←v5044.f0) : 0 ) ) {
         tc62 =  (word) ( (int)(a←v5016.f0 + a←v5016.f2) <  (int)(b←v5044.f0 + b←v5044.f2));
         }
      else {
         tc62 =  (word) 0;
         };
      return(tc62);
      };
   }

static void LineRectangle←P360(formal←c087, lineTable←v5148, i←v5176, ch←v5204)
   word formal←c087;
   word lineTable←v5148;
   word i←v5176;
   word ch←v5204;
   {
   word var←c0472;
   word var←c0473;
   word var←c0474;
   word var←c0475;
   W9 lineRec←v7220;
   word ascent←v7248;
   word descent←v7276;
   /* LineRectangle: */ 
SOURCE(3813, 369)
   /* Return var split */ 
SOURCE(3892, 45)
   {
      word limit63;
      lineRec←v7220 = (* (( (W9Pt) (( (ptr) lineTable←v5148)+3))+(
            limit63 = (* (( (ptr) lineTable←v5148)+2) ),
            BCK(i←v5176, limit63)
            )) );
      };
SOURCE(3939, 75)
   ascent←v7248 =  ( ((* (( (ptr) &lineRec←v7220)+3) ) == 2147483647) ? ch←v5204 : (* (( (ptr) &lineRec←v7220)+3) ) ) ;
SOURCE(4016, 79)
   descent←v7276 =  ( ((* (( (ptr) &lineRec←v7220)+4) ) == 2147483647) ? ch←v5204 : (* (( (ptr) &lineRec←v7220)+4) ) ) ;
SOURCE(4097, 85)
   var←c0472 = (* (( (ptr) &lineRec←v7220)+7) );
   var←c0473 = ((ch←v5204 - (* (( (ptr) &lineRec←v7220)+6) )) - descent←v7276);
   var←c0474 = (* (( (ptr) &lineRec←v7220)+8) );
   var←c0475 = (ascent←v7248 + descent←v7276);
   /* removed tail goto */ 
   (* (( (ptr) formal←c087)+3) ) = var←c0475;
   (* (( (ptr) formal←c087)+2) ) = var←c0474;
   (* (( (ptr) formal←c087)+1) ) = var←c0473;
   (*  (ptr) formal←c087 ) = var←c0472;
   return;
   }

static void InvalidateLinesOutsideOfRectangle←P420(lineTable←v5308, rect←v5336, ch←v5364)
   word lineTable←v5308;
   W4 rect←v5336;
   word ch←v5364;
   {
   /* InvalidateLinesOutsideOfRectangle: */ 
SOURCE(4188, 217)
SOURCE(4276, 129)
   {
      register word i←v7320 = 0;
      register word noName←c34408;
      W4 var←c34440;
      noName←c34408 = (*  (ptr) lineTable←v5308 );
      if (( (int)i←v7320 >  (int)noName←c34408)) {
         goto lab←L100012;
         };
      lab←L100015: ;
SOURCE(4321, 84)
      (void) LineRectangle←P360((word) &var←c34440, lineTable←v5308, i←v7320, ch←v5364);
      if ((0 == (word) Inside←P300(var←c34440, rect←v5336))) {
SOURCE(4379, 26)
         {
            word limit64;
            ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) lineTable←v5308)+12))+(
                     limit64 = (* (( (ptr) lineTable←v5308)+2) ),
                     BCK(i←v7320, limit64)
                     ))) + 8))->f = 0;
            };
         };
      if (( (int)i←v7320 >=  (int)noName←c34408)) {
         goto lab←L100012;
         };
      i←v7320 = (i←v7320 + 1);
      goto lab←L100015;
      lab←L100012: ;
      };
   }

static void InvalidateLinesTouchingRectangle←P480(lineTable←v5424, rect←v5452, ch←v5480)
   word lineTable←v5424;
   W4 rect←v5452;
   word ch←v5480;
   {
   /* InvalidateLinesTouchingRectangle: */ 
SOURCE(4420, 212)
SOURCE(4507, 125)
   {
      register word i←v7364 = 0;
      register word noName←c34472;
      W4 var←c34504;
      noName←c34472 = (*  (ptr) lineTable←v5424 );
      if (( (int)i←v7364 >  (int)noName←c34472)) {
         goto lab←L100016;
         };
      lab←L100019: ;
SOURCE(4548, 84)
      (void) LineRectangle←P360((word) &var←c34504, lineTable←v5424, i←v7364, ch←v5480);
      if ((0 != (word) Intersects←P240(var←c34504, rect←v5452))) {
SOURCE(4606, 26)
         {
            word limit65;
            ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) lineTable←v5424)+12))+(
                     limit65 = (* (( (ptr) lineTable←v5424)+2) ),
                     BCK(i←v7364, limit65)
                     ))) + 8))->f = 0;
            };
         };
      if (( (int)i←v7364 >=  (int)noName←c34472)) {
         goto lab←L100016;
         };
      i←v7364 = (i←v7364 + 1);
      goto lab←L100019;
      lab←L100016: ;
      };
   }

static void DisplayNewlineIndicator←P540(root←v5540, formal←c0460, formal←c0461, formal←c0462)
   word root←v5540;
   word formal←c0460;
   word formal←c0461;
   word formal←c0462;
   {
   W12 var←c38664;
   /* declaration of context←v5568 skipped */ 
   /* declaration of cw←v5596 skipped */ 
   /* declaration of ch←v5624 skipped */ 
   register ptr gf←c38696 =  (ptr) &globalframe;
   /* declaration of var←c34536 skipped */ 
   /* declaration of var←c34568 skipped */ 
   /* declaration of white←v7408 skipped */ 
   (* (( (ptr) &var←c38664)+4)/* context←v5568 */  ) = formal←c0460;
   (* (( (ptr) &var←c38664)+5)/* cw←v5596 */  ) = formal←c0461;
   (* (( (ptr) &var←c38664)+6)/* ch←v5624 */  ) = formal←c0462;
   /* DisplayNewlineIndicator: */ 
SOURCE(4769, 505)
   {
      word tmpAddr66;
      tmpAddr66 = (word) (( (ptr) &var←c38664)+7)/* var←c34536 */ ;
      (*  (ptr) tmpAddr66 ) = ( ((word)  (fPt) Inner←P1368) );
      (* (( (ptr) tmpAddr66) + 1) ) = 1;
      };
   {
      word tmpAddr67;
      tmpAddr67 = (word) (( (ptr) &var←c38664)+9)/* var←c34568 */ ;
      (*  (ptr) tmpAddr67 ) = ( ((word)  (fPt) Path←P1308) );
      (* (( (ptr) tmpAddr67) + 1) ) = 1;
      };
SOURCE(4866, 84)
   {
      word var←c34600;
      {
         word pd68;
         pd68 = (* (( (ptr) (* (( (ptr) gf←c38696)+63)/* var←c34632 */  ))+41) );
         var←c34600 = (word) ( *( (fPt) ((*  (ptr) pd68 ))))(root←v5540, pd68);
         };
      {
         word pd69;
         pd69 = (* (( (ptr) (* (( (ptr) gf←c38696)+64)/* var←c34664 */  ))+8) );
         (* (( (ptr) &var←c38664)+11)/* white←v7408 */  ) = (word) ( *( (fPt) ((*  (ptr) pd69 ))))(var←c34600, (* (( (ptr) gf←c38696)+26)
             ), 1, pd69);
         };
      };
SOURCE(5170, 36)
   if ((0 == (* (( (ptr) &var←c38664)+11)/* white←v7408 */  ))) {
SOURCE(5188, 18)
      (* (( (ptr) gf←c38696)+4)/* everPainted←v4092 */  ) = 1;
      };
SOURCE(5208, 66)
   if ((0 != (* (( (ptr) gf←c38696)+4)/* everPainted←v4092 */  ))) {
SOURCE(5228, 46)
      {
         word pd70;
         pd70 = (* (( (ptr) (* (( (ptr) gf←c38696)+65)/* var←c34696 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd70 ))))((* (( (ptr) &var←c38664)+4)/* context←v5568 */  ), (word) (( (bPt) &var←c38664)+28)
            /* var←c34536 */ , pd70);
         };
      };
   }

static void Path←P1308(moveTo←v31796, lineTo←v31824, curveTo←v31852, conicTo←v31880, arcTo←v31908, formal←c38728)
   word moveTo←v31796;
   word lineTo←v31824;
   word curveTo←v31852;
   word conicTo←v31880;
   word arcTo←v31908;
   word formal←c38728;
   {
   formal←c38728 = (formal←c38728 - 36);
   /* Path: */ 
SOURCE(4952, 86)
SOURCE(4982, 18)
   {
      W2 var←c34728;
      {
         float tf71;
         var←c34728.f0 = (
            tf71 = (float)(int)(* (( (ptr) formal←c38728)+5) ),  *(word*)&tf71
            );
         };
      {
         float tf72;
         var←c34728.f1 = (
            tf72 = (float)(int)((* (( (ptr) formal←c38728)+6) ) - 6),  *(word*)&tf72
            );
         };
      (void) ( *( (fPt) ((*  (ptr) moveTo←v31796 ))))(var←c34728, moveTo←v31796);
      };
SOURCE(5002, 18)
   {
      W2 var←c34760;
      {
         float tf73;
         var←c34760.f0 = (
            tf73 = (float)(int)((* (( (ptr) formal←c38728)+5) ) - 6),  *(word*)&tf73
            );
         };
      {
         float tf74;
         var←c34760.f1 = (
            tf74 = (float)(int)(* (( (ptr) formal←c38728)+6) ),  *(word*)&tf74
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v31824 ))))(var←c34760, lineTo←v31824);
      };
SOURCE(5022, 16)
   {
      W2 var←c34792;
      {
         float tf75;
         var←c34792.f0 = (
            tf75 = (float)(int)(* (( (ptr) formal←c38728)+5) ),  *(word*)&tf75
            );
         };
      {
         float tf76;
         var←c34792.f1 = (
            tf76 = (float)(int)(* (( (ptr) formal←c38728)+6) ),  *(word*)&tf76
            );
         };
      (void) ( *( (fPt) ((*  (ptr) lineTo←v31824 ))))(var←c34792, lineTo←v31824);
      };
   }

static void Inner←P1368(formal←c38792)
   word formal←c38792;
   {
   register ptr gf←c38760 =  (ptr) &globalframe;
   formal←c38792 = (formal←c38792 - 28);
   /* Inner: */ 
SOURCE(5043, 122)
SOURCE(5059, 59)
   {
      word pd77;
      pd77 = (* (( (ptr) (* (( (ptr) gf←c38760)+65)/* var←c34696 */  ))+56) );
      (void) ( *( (fPt) ((*  (ptr) pd77 ))))((* (( (ptr) formal←c38792)+4) ),  ( (0 != (* (( (ptr) formal←c38792)+11) )) ? (*  (ptr) &fc78 ) : (*  (ptr) &fc79 ) ) , pd77)
      ;
      };
SOURCE(5120, 45)
   {
      word pd80;
      pd80 = (* (( (ptr) (* (( (ptr) gf←c38760)+65)/* var←c34696 */  ))+62) );
      (void) ( *( (fPt) ((*  (ptr) pd80 ))))((* (( (ptr) formal←c38792)+4) ), (word) (( (bPt) formal←c38792)+36), 0, pd80);
      };
   }

static word LockedPaint←P600(self←v5684, context←v5712, whatChanged←v5740, clear←v5768, tdd←v5796, lock←v5824)
   word self←v5684;
   word context←v5712;
   word whatChanged←v5740;
   word clear←v5768;
   word tdd←v5796;
   word lock←v5824;
   {
   register ptr gf←c38824 =  (ptr) &globalframe;
   word quit←v5884;
   word newSize←v7524;
   word typescript←v7552;
   word refreshing←v7580;
   word redisplay←v7608;
   word moveDownLines←v7636 = 0;
   word moveDownDistance←v7664 = 0;
   /* LockedPaint: */ 
SOURCE(5280, 3290)
SOURCE(5280, 3290)
   quit←v5884 = 0;
SOURCE(5453, 57)
   newSize←v7524 = (IOP2( / ,  (int)(* (( (ptr) self←v5684)+8) ),  (int)8) + 1);
SOURCE(5512, 35)
   typescript←v7552 = ((* (( (ptr) tdd←v5796)+11) ) != 0);
SOURCE(5549, 51)
   refreshing←v7580 = (whatChanged←v5740 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c38824)+61)/* var←c34152 */  ))+5) ) ));
SOURCE(5602, 95)
   redisplay←v7608 =  ( (((0 != clear←v5768) || (0 != refreshing←v7580)) || (whatChanged←v5740 == (*  (ptr) (* (( (ptr) (* (
         ( (ptr) gf←c38824)+61)/* var←c34152 */  ))+4) ) ))) ? 1 : (whatChanged←v5740 == 0) ) ;
SOURCE(5810, 31)
   {
      word pd81;
      pd81 = (* (( (ptr) (* (( (ptr) gf←c38824)+66)/* var←c34824 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd81 ))))(self←v5684, pd81);
      };
SOURCE(5843, 98)
   if (( (int)newSize←v7524 >  (int)(* (( (ptr) (* (( (ptr) tdd←v5796)+1) ))+2) ))) {
SOURCE(5886, 55)
      (* (( (ptr) tdd←v5796)+1) ) = (word) BiggerLineTable←P120((* (( (ptr) tdd←v5796)+1) ), newSize←v7524);
      };
SOURCE(5946, 1106)
   if ((0 != redisplay←v7608)) {
SOURCE(5966, 50)
      if ((0 != clear←v5768)) {
SOURCE(5980, 36)
         {
            word pd82;
            pd82 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+32) );
            (void) ( *( (fPt) ((*  (ptr) pd82 ))))(self←v5684, pd82);
            };
         };
SOURCE(6018, 82)
      if ((0 == refreshing←v7580)) {
SOURCE(6041, 59)
         (void) InvalidateLines←P180((* (( (ptr) tdd←v5796)+1) ), 0, ((*  (ptr) (* (( (ptr) tdd←v5796)+1) ) ) + 1));
         };
      }
   else {
SOURCE(6111, 941)
      {
         word var←c34888;
         word var←c34920;
         var←c34888 = whatChanged←v5740;
         if ((var←c34888 == 0)) {
            goto lab←L100020;
            };
         var←c34920 = XR←GetReferentType(var←c34888);
         if (((* (( (ptr) gf←c38824)+16) ) == var←c34920)) {
            {
               word x←v7708;
               x←v7708 = var←c34888;
SOURCE(6182, 14)
               if ((0 != clear←v5768)) {
SOURCE(6196, 5)
                  (void) XR←RaiseUnnamedError();
                  };
SOURCE(6203, 23)
               moveDownLines←v7636 = (*  (ptr) x←v7708 );
SOURCE(6228, 29)
               moveDownDistance←v7664 = (* (( (ptr) x←v7708)+1) );
SOURCE(6259, 29)
               redisplay←v7608 = 1;
               refreshing←v7580 = 1;
               };
            goto endif083;
            };
         if (((* (( (ptr) gf←c38824)+10) ) == var←c34920)) {
            {
               word rect←v7764;
               rect←v7764 = var←c34888;
SOURCE(6331, 255)
               {
                  word sx←v7808 = 0;
                  word sy←v7836 = 0;
                  word var←c35048;
SOURCE(6350, 51)
                  {
                     W2 var←c34984;
                     {
                        word pd84;
                        pd84 = (* (( (ptr) (* (( (ptr) gf←c38824)+68)/* var←c34952 */  ))+30) );
                        (void) ( *( (fPt) ((*  (ptr) pd84 ))))((word) &var←c34984, self←v5684, 0, 0, pd84);
                        };
                     sy←v7836 = var←c34984.f1;
                     sx←v7808 = var←c34984.f0;
                     };
SOURCE(6403, 97)
                  {
                     W4 var←c35016;
                     var←c35016.f0 = ((*  (ptr) rect←v7764 ) - sx←v7808);
                     var←c35016.f1 = ((* (( (ptr) rect←v7764)+1) ) - sy←v7836);
                     var←c35016.f2 = (* (( (ptr) rect←v7764)+2) );
                     var←c35016.f3 = (* (( (ptr) rect←v7764)+3) );
                     (void) InvalidateLinesOutsideOfRectangle←P420((* (( (ptr) tdd←v5796)+1) ), var←c35016, (* (( (ptr) self←v5684)+8) ));
                     };
SOURCE(6502, 51)
                  {
                     word idx85;
                     word limit86;
                     var←c35048 = (* (( (ptr) tdd←v5796)+1) );
                     ((P1x0b) (( (bPt) (( (W9Pt) (( (ptr) var←c35048)+3))+(
/*1*/   idx85 = (*  (ptr) (* (( (ptr) tdd←v5796)+1) ) ),
/*1*/   limit86 = (* (( (ptr) var←c35048)+2) ),
/*1*/   BCK(idx85, limit86)
/*1*/   ))) + 8))->f = 0;
                     };
SOURCE(6555, 29)
                  redisplay←v7608 = 1;
                  refreshing←v7580 = 1;
                  };
               };
            goto endif083;
            };
         if (((* (( (ptr) gf←c38824)+11) ) == var←c34920)) {
            {
               word atom←v7880;
               atom←v7880 = var←c34888;
SOURCE(6605, 447)
               {
                  word var←c35080;
                  var←c35080 = atom←v7880;
                  if ((var←c35080 == (* (( (ptr) gf←c38824)+18) ))) {
SOURCE(6639, 56)
                     {
                        word pd88;
                        pd88 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+33) );
                        (void) ( *( (fPt) ((*  (ptr) pd88 ))))(0, self←v5684, context←v5712, pd88);
                        };
                     goto endif087;
                     };
                  if ((var←c35080 == (* (( (ptr) gf←c38824)+20) ))) {
SOURCE(6710, 52)
                     {
                        word pd89;
                        pd89 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+29) );
                        (void) ( *( (fPt) ((*  (ptr) pd89 ))))(0, self←v5684, context←v5712, pd89);
                        };
                     goto endif087;
                     };
                  if ((var←c35080 == (* (( (ptr) gf←c38824)+21) ))) {
SOURCE(6781, 58)
                     {
                        word pd90;
                        pd90 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+33) );
                        (void) ( *( (fPt) ((*  (ptr) pd90 ))))(1, self←v5684, context←v5712, pd90);
                        };
                     goto endif087;
                     };
                  if ((var←c35080 == (* (( (ptr) gf←c38824)+22) ))) {
SOURCE(6854, 54)
                     {
                        word pd91;
                        pd91 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+29) );
                        (void) ( *( (fPt) ((*  (ptr) pd91 ))))(1, self←v5684, context←v5712, pd91);
                        };
                     goto endif087;
                     };
                  if ((var←c35080 == (* (( (ptr) gf←c38824)+23) ))) {
SOURCE(6927, 57)
                     {
                        word pd92;
                        pd92 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+33) );
                        (void) ( *( (fPt) ((*  (ptr) pd92 ))))(2, self←v5684, context←v5712, pd92);
                        };
                     goto endif087;
                     };
                  if ((var←c35080 == (* (( (ptr) gf←c38824)+24) ))) {
SOURCE(6999, 53)
                     {
                        word pd93;
                        pd93 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+29) );
                        (void) ( *( (fPt) ((*  (ptr) pd93 ))))(2, self←v5684, context←v5712, pd93);
                        };
                     goto endif087;
                     };
SOURCE(7065, 5)
                  (void) XR←RaiseUnnamedError();
                  goto endif087;
                  endif087: ;
                  };
               };
            goto endif083;
            };
         lab←L100020: ;
SOURCE(7086, 5)
         (void) XR←RaiseUnnamedError();
         goto endif083;
         endif083: ;
         };
      };
SOURCE(7096, 522)
   if ((0 != redisplay←v7608)) {
      {
         word var←c0410;
         word var←c35112;
SOURCE(7116, 59)
         {
            word pd94;
            pd94 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+30) );
            (void) ( *( (fPt) ((*  (ptr) pd94 ))))(0, self←v5684, context←v5712, pd94);
            };
SOURCE(7177, 61)
         {
            word pd95;
            pd95 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+30) );
            (void) ( *( (fPt) ((*  (ptr) pd95 ))))(1, self←v5684, context←v5712, pd95);
            };
SOURCE(7240, 60)
         {
            word pd96;
            pd96 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+30) );
            (void) ( *( (fPt) ((*  (ptr) pd96 ))))(2, self←v5684, context←v5712, pd96);
            };
SOURCE(7302, 48)
         if ((0 != typescript←v7552)) {
SOURCE(7321, 29)
            (void) CheckBottomVisible←P660(self←v5684, tdd←v5796);
            };
SOURCE(7352, 64)
         {
            word limit97;
            var←c35112 = (* (( (ptr) tdd←v5796)+1) );
            var←c0410 = (var←c0410 & 4294967294) | ((((unsigned)(* (( (bPt) (( (W9Pt) (( (ptr) var←c35112)+3))+(
                        limit97 = (* (( (ptr) var←c35112)+2) ),
                        BCK(0, limit97)
                        )))+8) ) << 24) >> 31));
            };
         if ( ! (var←c0410 & 1)) {
SOURCE(7387, 29)
            (void) CheckStartLocation←P720(self←v5684, tdd←v5796);
            };
SOURCE(7418, 43)
         {
            word pd98;
            pd98 = (* (( (ptr) (* (( (ptr) gf←c38824)+69)/* var←c35144 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd98 ))))(pd98);
            };
SOURCE(7506, 112)
         (void) RefreshViewer←P840(self←v5684, tdd←v5796, context←v5712, clear←v5768,  ( (0 != refreshing←v7580) ? (0 == typescript←v7552) : 0 ) , lock←v5824
            , moveDownLines←v7636, moveDownDistance←v7664);
         };
      };
SOURCE(7623, 395)
   {
      word var←c35176;
      var←c35176 = whatChanged←v5740;
      if (((var←c35176 == (* (( (ptr) gf←c38824)+18) )) || (var←c35176 == (* (( (ptr) gf←c38824)+21) ))) || (var←c35176 == (* (
         ( (ptr) gf←c38824)+23) ))) {
         }
      else {
         {
            word tc99;
            word pd100;
            if ( ( (0 != refreshing←v7580) ? (0 == typescript←v7552) : 0 ) ) {
               pd100 = (* (( (ptr) (* (( (ptr) gf←c38824)+62)/* var←c34184 */  ))+10) );
               tc99 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd100 ))))(lock←v5824, pd100));
               }
            else {
               tc99 =  (word) 0;
               };
            if (tc99) {
               }
            else {
SOURCE(7813, 71)
               {
                  word pd101;
                  pd101 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+31) );
                  (void) ( *( (fPt) ((*  (ptr) pd101 ))))(0, self←v5684, context←v5712, (0 == (* (( (ptr) tdd←v5796)+6) )), pd101);
                  };
SOURCE(7886, 64)
               {
                  word pd102;
                  pd102 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+31) );
                  (void) ( *( (fPt) ((*  (ptr) pd102 ))))(1, self←v5684, context←v5712, 1, pd102);
                  };
SOURCE(7952, 66)
               {
                  word pd103;
                  pd103 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+31) );
                  (void) ( *( (fPt) ((*  (ptr) pd103 ))))(2, self←v5684, context←v5712, 0, pd103);
                  };
               };
            };
         };
      };
SOURCE(8021, 432)
   if ((0 == (* (( (ptr) tdd←v5796)+9) ))) {
SOURCE(8043, 410)
      {
         word var←c35208;
         var←c35208 = (* (( (ptr) tdd←v5796)+17) );
         switch (var←c35208) {
            case 0: 
               break;
            case 1: 
SOURCE(8091, 49)
               (void) AutoScroll←P780(self←v5684, (* (( (ptr) tdd←v5796)+3) ), 1, 0);
               break;
            case 2: 
SOURCE(8154, 301)
               {
                  word sel←v7924;
SOURCE(8156, 180)
                  {
                     word var←c35240;
                     var←c35240 = (* (( (ptr) tdd←v5796)+4) );
                     switch (var←c35240) {
                        case 0: 
                           sel←v7924 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+4) ) );
                           break;
                        case 1: 
                           sel←v7924 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+5) ) );
                           break;
                        case 2: 
                           sel←v7924 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+6) ) );
                           break;
                        default: 
                           sel←v7924 = (
/*1*/   XR←RaiseUnnamedError(), 0
/*1*/   );
                           break;
                        };
                     };
SOURCE(8338, 115)
                  {
                     word pd104;
                     pd104 = (* (( (ptr) (* (( (ptr) gf←c38824)+67)/* var←c34856 */  ))+63) );
                     if (((word) ( *( (fPt) ((*  (ptr) pd104 ))))(sel←v7924, pd104) == (*  (ptr) tdd←v5796 ))) {
SOURCE(8389, 64)
                        (void) AutoScroll←P780(self←v5684, (* (( (ptr) tdd←v5796)+3) ), 0, (* (( (ptr) tdd←v5796)+4) ));
                        };
                     };
                  };
               break;
            default: 
SOURCE(8469, 5)
               (void) XR←RaiseUnnamedError();
               break;
            };
         };
      };
SOURCE(8476, 94)
   if (((*  (ptr) (*  (ptr) self←v5684 ) ) == (* (( (ptr) gf←c38824)+25) ))) {
SOURCE(8510, 60)
      (void) DisplayNewlineIndicator←P540((*  (ptr) tdd←v5796 ), context←v5712, (* (( (ptr) self←v5684)+7) ), (* (( (ptr) self←v5684)+8)
          ));
      };
SOURCE(5280, 3290)
   return(quit←v5884);
   }

static void CheckBottomVisible←P660(self←v5944, tdd←v5972)
   word self←v5944;
   word tdd←v5972;
   {
   register ptr gf←c38856 =  (ptr) &globalframe;
   word var←c0411;
   word var←c35272;
   word var←c35304;
   word var←c0412;
   /* CheckBottomVisible: */ 
SOURCE(8609, 509)
SOURCE(8677, 37)
   if ((0 == (* (( (ptr) gf←c38856)+5)/* checkBottomVisible←v4204 */  ))) {
SOURCE(8708, 6)
      return;
      };
SOURCE(8716, 62)
   {
      word idx105;
      word limit106;
      var←c35272 = (* (( (ptr) tdd←v5972)+1) );
      var←c0411 = (var←c0411 & 4294967294) | ((((unsigned)(* (( (bPt) (( (W9Pt) (( (ptr) var←c35272)+3))+(
                  idx105 = (*  (ptr) (* (( (ptr) tdd←v5972)+1) ) ),
                  limit106 = (* (( (ptr) var←c35272)+2) ),
                  BCK(idx105, limit106)
                  )))+8) ) << 24) >> 31));
      };
   if ( ! (var←c0411 & 1)) {
SOURCE(8772, 6)
      return;
      };
SOURCE(8780, 338)
   {
      word idx107;
      word limit108;
      var←c35304 = (* (( (ptr) tdd←v5972)+1) );
      var←c0412 = (* (( (ptr) (( (W9Pt) (( (ptr) var←c35304)+3))+(
               idx107 = (*  (ptr) (* (( (ptr) tdd←v5972)+1) ) ),
               limit108 = (* (( (ptr) var←c35304)+2) ),
               BCK(idx107, limit108)
               )))+6) );
      };
   if (( (int)(* (( (ptr) self←v5944)+8) ) <  (int)var←c0412)) {
SOURCE(8844, 276)
      {
         word delta←v7968;
         word n←v7996 = 0;
         word var←c35368;
         word var←c0414;
         word var←c35496;
SOURCE(8846, 68)
         {
            word var←c35336;
            word var←c0413;
            {
               word idx109;
               word limit110;
               var←c35336 = (* (( (ptr) tdd←v5972)+1) );
               var←c0413 = (* (( (ptr) (( (W9Pt) (( (ptr) var←c35336)+3))+(
                        idx109 = (*  (ptr) (* (( (ptr) tdd←v5972)+1) ) ),
                        limit110 = (* (( (ptr) var←c35336)+2) ),
                        BCK(idx109, limit110)
                        )))+6) );
               };
            delta←v7968 = (var←c0413 - (* (( (ptr) self←v5944)+8) ));
            };
SOURCE(8932, 77)
         lab←L100023: ;
         {
            word tc111;
            if (( (int)n←v7996 !=  (int)(*  (ptr) (* (( (ptr) tdd←v5972)+1) ) ))) {
               {
                  word limit112;
                  var←c35368 = (* (( (ptr) tdd←v5972)+1) );
                  var←c0414 = (* (( (ptr) (( (W9Pt) (( (ptr) var←c35368)+3))+(
                           limit112 = (* (( (ptr) var←c35368)+2) ),
                           BCK(n←v7996, limit112)
                           )))+6) );
                  };
               tc111 =  (word) ( (int)var←c0414 <=  (int)delta←v7968);
               }
            else {
               tc111 =  (word) 0;
               };
            if (tc111) {
               }
            else {
               goto lab←L100021;
               };
            };
SOURCE(9002, 7)
         n←v7996 = (n←v7996 + 1);
         goto lab←L100023;
         lab←L100021: ;
SOURCE(9020, 66)
         {
            word var←c35464;
            var←c35464 = (* (( (ptr) tdd←v5972)+1) );
            {
               word var←c35400;
               word var←c35432;
               {
                  word x113;
                  var←c35400 = (x113 = (*  (ptr) (* (( (ptr) tdd←v5972)+1) ) ),
                     MIN((int)(word), x113, (n←v7996 + 1)));
                  };
               var←c35432 = (* (( (ptr) tdd←v5972)+1) );
               {
                  word limit114;
                  word limit115;
                  (* (( (W9Pt) (( (ptr) var←c35464)+3))+(
                        limit114 = (* (( (ptr) var←c35464)+2) ),
                        BCK(0, limit114)
                        )) ) = (* (( (W9Pt) (( (ptr) var←c35432)+3))+(
                        limit115 = (* (( (ptr) var←c35432)+2) ),
                        BCK(var←c35400, limit115)
                        )) );
                  };
               };
            };
SOURCE(9088, 30)
         {
            word limit116;
            var←c35496 = (* (( (ptr) tdd←v5972)+1) );
            ((P1x0b) (( (bPt) (( (W9Pt) (( (ptr) var←c35496)+3))+(
                     limit116 = (* (( (ptr) var←c35496)+2) ),
                     BCK(0, limit116)
                     ))) + 8))->f = 0;
            };
         };
      };
   }

static void CheckStartLocation←P720(self←v6032, formal←c0463)
   word self←v6032;
   word formal←c0463;
   {
   W9 var←c38888;
   /* declaration of tdd←v6060 skipped */ 
   register ptr gf←c38920 =  (ptr) &globalframe;
   /* declaration of var←c35528 skipped */ 
   /* declaration of startLoc←v8040 skipped */ 
   word var←c35592;
   W2 var←c0415;
   W2 var←c35656;
   word var←c35848;
   (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ) = formal←c0463;
   /* CheckStartLocation: */ 
SOURCE(9232, 1525)
   {
      word tmpAddr117;
      tmpAddr117 = (word) (( (ptr) &var←c38888)+5)/* var←c35528 */ ;
      (*  (ptr) tmpAddr117 ) = ( ((word)  (fPt) CheckLocNode←P1716) );
      (* (( (ptr) tmpAddr117) + 1) ) = 1;
      };
SOURCE(9300, 38)
   (* (( (ptr) &var←c38888)+7) ) = 0;
   (* (( (ptr) &var←c38888)+8) ) = 0;
SOURCE(9489, 297)
   {
      word limit118;
      var←c35592 = (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+1) );
      var←c0415 = (*  (W2Pt) (( (W9Pt) (( (ptr) var←c35592)+3))+(
            limit118 = (* (( (ptr) var←c35592)+2) ),
            BCK(0, limit118)
            )) );
      };
   if ((0 == (word) CheckLocNode←P1716(var←c0415, (word) (( (bPt) &var←c38888)+20)/* var←c35528 */ ))) {
SOURCE(9538, 248)
      {
         word tc119;
         word pd120;
         pd120 = (* (( (ptr) (* (( (ptr) gf←c38920)+70)/* var←c35624 */  ))+4) );
         if (((*  (ptr) ( *( (fPt) ((*  (ptr) pd120 ))))(pd120) ) == self←v6032)) {
            {
               word pd121;
               pd121 = (* (( (ptr) (* (( (ptr) gf←c38920)+67)/* var←c34856 */  ))+64) );
               (void) ( *( (fPt) ((*  (ptr) pd121 ))))((word) &var←c35656, (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c38920)+67)/* var←c34856 */  ))+4)
                   ) ), pd121);
               };
            tc119 =  (word) (0 != (word) CheckLocNode←P1716(var←c35656, (word) (( (bPt) &var←c38888)+20)/* var←c35528 */ ));
            }
         else {
            tc119 =  (word) 0;
            };
         if ((tc119 || (0 != (word) CheckLocNode←P1716((*  (W2Pt) (* (( (ptr) (* (( (ptr) gf←c38920)+71)/* var←c35688 */  ))+25) ) ), (word) (
               ( (bPt) &var←c38888)+20)/* var←c35528 */ ))) || (0 != (word) CheckLocNode←P1716((*  (W2Pt) (* (( (ptr) (* (( (ptr) gf←c38920)+71)
               /* var←c35688 */  ))+26) ) ), (word) (( (bPt) &var←c38888)+20)/* var←c35528 */ ))) {
SOURCE(9714, 25)
            (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+5) ) = 1;
            }
         else {
SOURCE(9739, 47)
            {
               word pd122;
               pd122 = (* (( (ptr) (* (( (ptr) gf←c38920)+72)/* var←c35720 */  ))+28) );
               (* (( (ptr) &var←c38888)+7) ) = (word) ( *( (fPt) ((*  (ptr) pd122 ))))((*  (ptr) ((* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  )) ), pd122)
               ;
               };
            (* (( (ptr) &var←c38888)+8) ) = 0;
            };
         };
      };
SOURCE(9789, 221)
   if (((* (( (ptr) &var←c38888)+7) ) != 0)) {
SOURCE(9817, 195)
      {
         word size←v8216;
SOURCE(9819, 40)
         {
            word pd123;
            pd123 = (* (( (ptr) (* (( (ptr) gf←c38920)+63)/* var←c34632 */  ))+6) );
            size←v8216 = (word) ( *( (fPt) ((*  (ptr) pd123 ))))((* ((( (ptr) &var←c38888)+7)) ), pd123);
            };
SOURCE(9861, 149)
         if (( (int)(* (( (ptr) &var←c38888)+8) ) <  (int)0) || ( (int)(* (( (ptr) &var←c38888)+8) ) >=  (int)size←v8216)) {
            {
               word var←c35752;
SOURCE(9903, 30)
               {
                  word limit124;
                  var←c35752 = (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+1) );
                  ((P1x0b) (( (bPt) (( (W9Pt) (( (ptr) var←c35752)+3))+(
                           limit124 = (* (( (ptr) var←c35752)+2) ),
                           BCK(0, limit124)
                           ))) + 8))->f = 0;
                  };
SOURCE(9935, 19)
               (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+5) ) = 1;
SOURCE(9956, 54)
               {
                  word x125;
                  word x126;
                  (* (( (ptr) &var←c38888)+8) ) = (x126 = (x125 = (* (( (ptr) &var←c38888)+8) ),
                        MIN((int)(word), (size←v8216 - 1), x125)),
                     MAX((int)(word), x126, 0));
                  };
               };
            };
         };
      };
SOURCE(10015, 544)
   if ( (  ( (0 != (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+5) )) ? ((* (( (ptr) &var←c38888)+7) ) != 0) : 0 )  ? ( (int)(* (
      ( (ptr) &var←c38888)+8) ) >  (int)0) : 0 ) ) {
SOURCE(10083, 478)
      {
         word rdr←v8260;
         word minIndex←v8288;
         word fallback←v8316;
         word foundBreak←v8344;
SOURCE(10087, 51)
         {
            word pd127;
            pd127 = (* (( (ptr) (* (( (ptr) gf←c38920)+73)/* var←c35784 */  ))+4) );
            rdr←v8260 = (word) ( *( (fPt) ((*  (ptr) pd127 ))))((* (( (ptr) &var←c38888)+7) ), 0, pd127);
            };
SOURCE(10140, 47)
         {
            word x128;
            minIndex←v8288 = (x128 = ((* (( (ptr) &var←c38888)+8) ) - 200),
               MAX((int)(word), x128, 0));
            };
SOURCE(10189, 30)
         fallback←v8316 = (* (( (ptr) &var←c38888)+8) );
SOURCE(10221, 32)
         foundBreak←v8344 = (* (( (ptr) &var←c38888)+8) );
SOURCE(10255, 229)
         {
            register word i←v8388;
            i←v8388 = (* (( (ptr) &var←c38888)+8) );
            if (( (int)minIndex←v8288 >=  (int)i←v8388)) {
               goto lab←L100024;
               };
            i←v8388 = (i←v8388 - 1);
            lab←L100027: ;
            {
               word char←v8432;
SOURCE(10310, 47)
               {
                  word pd129;
                  pd129 = (* (( (ptr) (* (( (ptr) gf←c38920)+73)/* var←c35784 */  ))+10) );
                  char←v8432 = (word) ( *( (fPt) ((*  (ptr) pd129 ))))(rdr←v8260, i←v8388, pd129);
                  };
SOURCE(10359, 80)
               {
                  word var←c35816;
                  var←c35816 = char←v8432;
                  switch (var←c35816) {
                     case 13: case 10: 
SOURCE(10390, 16)
                        foundBreak←v8344 = (i←v8388 + 1);
SOURCE(10408, 4)
                        goto lab←L100025;
                     case 32: 
SOURCE(10424, 15)
                        fallback←v8316 = (i←v8388 + 1);
                        break;
                     };
                  };
               };
            if (( (int)minIndex←v8288 >=  (int)i←v8388)) {
               goto lab←L100024;
               };
            i←v8388 = (i←v8388 - 1);
            goto lab←L100027;
            lab←L100024: ;
SOURCE(10470, 14)
            foundBreak←v8344 = 0;
            lab←L100025: ;
            };
SOURCE(10495, 42)
         (* (( (ptr) &var←c38888)+8) ) = (MIN((int)(word), foundBreak←v8344, fallback←v8316));
SOURCE(10539, 20)
         {
            word pd130;
            pd130 = (* (( (ptr) (* (( (ptr) gf←c38920)+73)/* var←c35784 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd130 ))))(rdr←v8260, pd130);
            };
         };
      };
SOURCE(10564, 20)
   (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+5) ) = 0;
SOURCE(10586, 31)
   {
      word limit131;
      var←c35848 = (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+1) );
      (*  (W2Pt) (( (W9Pt) (( (ptr) var←c35848)+3))+(
            limit131 = (* (( (ptr) var←c35848)+2) ),
            BCK(0, limit131)
            )) ) = (*  (W2Pt) (( (ptr) &var←c38888)+7)/* startLoc←v8040 */  );
      };
SOURCE(10619, 138)
   if (((* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+2) ) < 1023)) {
SOURCE(10692, 65)
      {
         word var←c35880;
         {
            word x132;
            word pd133;
            word x134;
            word idx135;
            pd133 = (* (( (ptr) (* (( (ptr) gf←c38920)+72)/* var←c35720 */  ))+16) );
            var←c35880 = (
               idx135 = (word) (x132 = (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+2) ),
                  x134 = (word) ( *( (fPt) ((*  (ptr) pd133 ))))((* ((( (ptr) &var←c38888)+7)) ), pd133),
                  MAX((int)(word), x132, x134)),
               BCK(idx135, 1024)
               );
            };
         (* (( (ptr) (* (( (ptr) &var←c38888)+4)/* tdd←v6060 */  ))+2) ) = var←c35880;
         };
      };
   }

static word CheckLocNode←P1716(loc←v8144, formal←c38984)
   W2 loc←v8144;
   word formal←c38984;
   {
   register ptr gf←c38952 =  (ptr) &globalframe;
   word var←c8188;
   formal←c38984 = (formal←c38984 - 20);
   /* CheckLocNode: */ 
SOURCE(9340, 145)
SOURCE(9403, 14)
   (*  (W2Pt) (( (ptr) formal←c38984)+7) ) = loc←v8144;
SOURCE(9419, 66)
   {
      word tc136;
      word pd137;
      if ((loc←v8144.f0 != 0)) {
         pd137 = (* (( (ptr) (* (( (ptr) gf←c38952)+72)/* var←c35720 */  ))+9) );
         tc136 =  (word) ((word) ( *( (fPt) ((*  (ptr) pd137 ))))(loc←v8144.f0, pd137) == (*  (ptr) (* (( (ptr) formal←c38984)+4) ) ));
         }
      else {
         tc136 =  (word) 0;
         };
      return(tc136);
      };
   }

static void AutoScroll←P780(formal←c0464, formal←c0465, formal←c0466, formal←c0467)
   word formal←c0464;
   word formal←c0465;
   word formal←c0466;
   word formal←c0467;
   {
   W8 var←c39016;
   /* declaration of self←v6120 skipped */ 
   /* declaration of tryToGlitch←v6148 skipped */ 
   /* declaration of toEndOfDoc←v6176 skipped */ 
   /* declaration of id←v6204 skipped */ 
   var←c39016.f4/* self←v6120 */  = formal←c0464;
   var←c39016.f5/* tryToGlitch←v6148 */  = formal←c0465;
   var←c39016.f6/* toEndOfDoc←v6176 */  = formal←c0466;
   var←c39016.f7/* id←v6204 */  = formal←c0467;
   /* AutoScroll: */ 
SOURCE(10764, 444)
SOURCE(10860, 348)
SOURCE(10862, 304)
   {
      word var←c02;
      {
         word var←c0416;
         var←c0416 = (word) &var←c39016;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q4248) ), ( ((word)  (fPt) NoName←Q4308) ), var←c0416);
         };
      if ((var←c02 == 2)) {
         goto lab←L100028;
         };
      };
   goto lab←L100032;
   lab←L100028: ;
   lab←L100032: ;
   }

static word NoName←Q4248(formal←c0386)
   word formal←c0386;
   {
   register ptr gf←c0385 =  (ptr) &globalframe;
SOURCE(10891, 275)
   if (((* (( (ptr) formal←c0386)+4) ) != 0)) {
SOURCE(10910, 256)
      {
         word var←c35944;
         var←c35944 = (* (( (ptr) (* (( (ptr) formal←c0386)+4) ))+26) );
         if ((var←c35944 == 0)) {
            goto lab←L100031;
            };
         if (((* (( (ptr) gf←c0385)+12) ) == XR←GetReferentType(var←c35944))) {
            {
               word tdd←v8476;
               tdd←v8476 = var←c35944;
SOURCE(10965, 37)
               if ((0 == (* (( (ptr) tdd←v8476)+9) ))) {
SOURCE(10987, 15)
                  (* (( (ptr) tdd←v8476)+17) ) = 0;
                  };
SOURCE(11078, 60)
               {
                  word pd138;
                  pd138 = (* (( (ptr) (* (( (ptr) gf←c0385)+74)/* var←c35976 */  ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd138 ))))((* (( (ptr) formal←c0386)+4) ), (* (( (ptr) formal←c0386)+5) ), (* (( (ptr) formal←c0386)+6)
                      ), (* (( (ptr) formal←c0386)+7) ), pd138);
                  };
SOURCE(11140, 26)
               {
                  word pd139;
                  pd139 = (* (( (ptr) (* (( (ptr) gf←c0385)+61)/* var←c34152 */  ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd139 ))))(pd139);
                  };
               };
            }
         else {
            lab←L100031: ;
            };
         };
      };
   return(0);
   }

static void RefreshViewer←P840(viewer←v6264, tdd←v6292, dc←v6320, displayClear←v6348, refresh←v6376, lock←v6404, moveDownLines←v6432, moveDownDistance←v6460)
   word viewer←v6264;
   word tdd←v6292;
   word dc←v6320;
   word displayClear←v6348;
   word refresh←v6376;
   word lock←v6404;
   word moveDownLines←v6432;
   word moveDownDistance←v6460;
   {
   register ptr gf←c39048 =  (ptr) &globalframe;
   word n←v8520 = 0;
   word start←v8548 = 0;
   word end←v8576 = 0;
   word lines←v8604;
   /* RefreshViewer: */ 
SOURCE(11212, 1102)
SOURCE(11431, 46)
   lines←v8604 = (* (( (ptr) tdd←v6292)+1) );
SOURCE(11479, 33)
   {
      word pd140;
      pd140 = (* (( (ptr) (* (( (ptr) gf←c39048)+65)/* var←c34696 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd140 ))))(dc←v6320, (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c39048)+65)/* var←c34696 */  ))+54)
          ) ), pd140);
      };
SOURCE(11514, 737)
   lab←L100035: ;
   if (( (int)n←v8520 <=  (int)(*  (ptr) lines←v8604 ))) {
      }
   else {
      goto lab←L100033;
      };
SOURCE(11572, 679)
   {
      word limit141;
      if ((int)(* (( (ptr) (( (W9Pt) (( (ptr) lines←v8604)+3))+(
               limit141 = (* (( (ptr) lines←v8604)+2) ),
               BCK(n←v8520, limit141)
               )))+2) )<0) {
SOURCE(11595, 13)
         n←v8520 = (n←v8520 + 1);
         }
      else {
         {
            word var←c36040;
            word var←c0417;
SOURCE(11610, 9)
            start←v8548 = n←v8520;
SOURCE(11621, 68)
            lab←L100038: ;
            if (( (int)(n←v8520 + 1) <=  (int)(*  (ptr) lines←v8604 ))) {
               }
            else {
               goto lab←L100036;
               };
            {
               word var←c36008;
SOURCE(11651, 25)
               {
                  word limit142;
                  var←c36008 = (n←v8520 + 1);
                  if ((* (( (bPt) (( (W9Pt) (( (ptr) lines←v8604)+3))+(
                           limit142 = (* (( (ptr) lines←v8604)+2) ),
                           BCK(var←c36008, limit142)
                           )))+8) ) & 0200) {
SOURCE(11676, 4)
                     goto lab←L100037;
                     };
                  };
SOURCE(11682, 7)
               n←v8520 = (n←v8520 + 1);
               };
            goto lab←L100038;
            lab←L100036: ;
            lab←L100037: ;
SOURCE(11700, 7)
            end←v8576 = n←v8520;
SOURCE(11709, 256)
            {
               word tc143;
               word limit145;
               if (( (int)start←v8548 >  (int)0)) {
                  {
                     word limit144;
                     var←c36040 = (start←v8548 - 1);
                     var←c0417 = (*  (ptr) (( (W9Pt) (( (ptr) lines←v8604)+3))+(
                           limit144 = (* (( (ptr) lines←v8604)+2) ),
                           BCK(var←c36040, limit144)
                           )) );
                     };
                  tc143 =  (word) ((*  (ptr) (( (W9Pt) (( (ptr) lines←v8604)+3))+(
                        limit145 = (* (( (ptr) lines←v8604)+2) ),
                        BCK(start←v8548, limit145)
                        )) ) != var←c0417);
                  }
               else {
                  tc143 =  (word) 0;
                  };
               if (tc143) {
                  {
                     word var←c36072;
                     W2 var←c0202;
SOURCE(11781, 26)
                     {
                        word limit146;
                        (* (( (ptr) (( (W9Pt) (( (ptr) lines←v8604)+3))+(
/*1*/      limit146 = (* (( (ptr) lines←v8604)+2) ),
/*1*/      BCK(start←v8548, limit146)
/*1*/      )))+1) ) = 0;
                        };
SOURCE(11809, 156)
                     {
                        word var←c36104;
                        word var←c0418;
                        {
                           word limit147;
                           var←c36104 = (start←v8548 - 1);
                           var←c0418 = (*  (ptr) (( (W9Pt) (( (ptr) lines←v8604)+3))+(
/*1*/      limit147 = (* (( (ptr) lines←v8604)+2) ),
/*1*/      BCK(var←c36104, limit147)
/*1*/      )) );
                           };
                        {
                           word pd148;
                           pd148 = (* (( (ptr) (* (( (ptr) gf←c39048)+72)/* var←c35720 */  ))+17) );
                           (void) ( *( (fPt) ((*  (ptr) pd148 ))))((word) &var←c0202, var←c0418, (* (( (ptr) tdd←v6292)+2) ), 0, pd148);
                           };
                        };
                     var←c36072 = var←c0202.f0;
                     {
                        word limit149;
                        (*  (ptr) (( (W9Pt) (( (ptr) lines←v8604)+3))+(
/*1*/   limit149 = (* (( (ptr) lines←v8604)+2) ),
/*1*/   BCK(start←v8548, limit149)
/*1*/   )) ) = var←c36072;
                        };
                     if ((var←c36072 == 0)) {
SOURCE(11915, 50)
                        start←v8548 = (start←v8548 - 1);
                        };
                     };
                  };
               };
SOURCE(11968, 110)
            n←v8520 = (word) WhileInPosRange←P900(viewer←v6264, tdd←v6292, dc←v6320, start←v8548, end←v8576, displayClear←v6348
               , refresh←v6376, lock←v6404, moveDownLines←v6432, moveDownDistance←v6460);
SOURCE(12080, 36)
            moveDownDistance←v6460 = 0;
            moveDownLines←v6432 = 0;
SOURCE(12149, 102)
            {
               word tc150;
               word pd151;
               if ((0 != refresh←v6376)) {
                  pd151 = (* (( (ptr) (* (( (ptr) gf←c39048)+62)/* var←c34184 */  ))+10) );
                  tc150 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd151 ))))(lock←v6404, pd151));
                  }
               else {
                  tc150 =  (word) 0;
                  };
               if (tc150 || ((* (( (ptr) tdd←v6292)+16) ) > 0)) {
SOURCE(12227, 16)
                  (* (( (ptr) tdd←v6292)+9) ) = 1;
SOURCE(12245, 6)
                  return;
                  };
               };
            };
         };
      };
   goto lab←L100035;
   lab←L100033: ;
SOURCE(12268, 46)
   (* (( (ptr) tdd←v6292)+9) ) = 0;
   (* (( (ptr) tdd←v6292)+7) ) = 0;
   (* (( (ptr) tdd←v6292)+8) ) = 0;
   }

static word WhileInPosRange←P900(formal←c0468, tdd←v6548, formal←c0469, start←v6604, formal←c0470, formal←c0471, refresh←v6688, lock←v6716, moveDownLines←v6744, moveDownDistance←v6772)
   word formal←c0468;
   word tdd←v6548;
   word formal←c0469;
   word start←v6604;
   word formal←c0470;
   word formal←c0471;
   word refresh←v6688;
   word lock←v6716;
   word moveDownLines←v6744;
   word moveDownDistance←v6772;
   {
   W59 var←c39080;
   /* declaration of viewer←v6520 skipped */ 
   /* declaration of dc←v6576 skipped */ 
   /* declaration of end←v6632 skipped */ 
   /* declaration of displayClear←v6660 skipped */ 
   register ptr gf←c39112 =  (ptr) &globalframe;
   /* declaration of line←v6816 skipped */ 
   /* declaration of var←c36136 skipped */ 
   /* declaration of var←c36168 skipped */ 
   /* declaration of var←c36200 skipped */ 
   /* declaration of var←c36232 skipped */ 
   /* declaration of var←c36264 skipped */ 
   /* declaration of var←c36296 skipped */ 
   /* declaration of var←c36328 skipped */ 
   /* declaration of var←c36360 skipped */ 
   /* declaration of var←c36392 skipped */ 
   /* declaration of var←c36424 skipped */ 
   /* declaration of var←c36456 skipped */ 
   /* declaration of var←c36488 skipped */ 
   /* declaration of lines←v8648 skipped */ 
   /* declaration of oldBottomY←v8676 skipped */ 
   /* declaration of kindOfStyle←v8704 skipped */ 
   (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ) = formal←c0468;
   (* (( (ptr) &var←c39080)+5)/* dc←v6576 */  ) = formal←c0469;
   (* (( (ptr) &var←c39080)+6)/* end←v6632 */  ) = formal←c0470;
   (* (( (ptr) &var←c39080)+7)/* displayClear←v6660 */  ) = formal←c0471;
   /* WhileInPosRange: */ 
SOURCE(12320, 12530)
   {
      word tmpAddr152;
      tmpAddr152 = (word) (( (ptr) &var←c39080)+9)/* var←c36136 */ ;
      (*  (ptr) tmpAddr152 ) = ( ((word)  (fPt) painter←P2820) );
      (* (( (ptr) tmpAddr152) + 1) ) = 1;
      };
   {
      word tmpAddr153;
      tmpAddr153 = (word) (( (ptr) &var←c39080)+11)/* var←c36168 */ ;
      (*  (ptr) tmpAddr153 ) = ( ((word)  (fPt) WhyGoOn←P2664) );
      (* (( (ptr) tmpAddr153) + 1) ) = 1;
      };
   {
      word tmpAddr154;
      tmpAddr154 = (word) (( (ptr) &var←c39080)+13)/* var←c36200 */ ;
      (*  (ptr) tmpAddr154 ) = ( ((word)  (fPt) ClearLine←P2604) );
      (* (( (ptr) tmpAddr154) + 1) ) = 1;
      };
   {
      word tmpAddr155;
      tmpAddr155 = (word) (( (ptr) &var←c39080)+15)/* var←c36232 */ ;
      (*  (ptr) tmpAddr155 ) = ( ((word)  (fPt) NextNode←P2544) );
      (* (( (ptr) tmpAddr155) + 1) ) = 1;
      };
   {
      word tmpAddr156;
      tmpAddr156 = (word) (( (ptr) &var←c39080)+17)/* var←c36264 */ ;
      (*  (ptr) tmpAddr156 ) = ( ((word)  (fPt) MoveLinesDown←P2484) );
      (* (( (ptr) tmpAddr156) + 1) ) = 1;
      };
   {
      word tmpAddr157;
      tmpAddr157 = (word) (( (ptr) &var←c39080)+19)/* var←c36296 */ ;
      (*  (ptr) tmpAddr157 ) = ( ((word)  (fPt) TryMoveDown←P2424) );
      (* (( (ptr) tmpAddr157) + 1) ) = 1;
      };
   {
      word tmpAddr158;
      tmpAddr158 = (word) (( (ptr) &var←c39080)+21)/* var←c36328 */ ;
      (*  (ptr) tmpAddr158 ) = ( ((word)  (fPt) MoveScanLines←P2364) );
      (* (( (ptr) tmpAddr158) + 1) ) = 1;
      };
   {
      word tmpAddr159;
      tmpAddr159 = (word) (( (ptr) &var←c39080)+23)/* var←c36360 */ ;
      (*  (ptr) tmpAddr159 ) = ( ((word)  (fPt) ClearEntries←P2304) );
      (* (( (ptr) tmpAddr159) + 1) ) = 1;
      };
   {
      word tmpAddr160;
      tmpAddr160 = (word) (( (ptr) &var←c39080)+25)/* var←c36392 */ ;
      (*  (ptr) tmpAddr160 ) = ( ((word)  (fPt) TryMoveUp←P2244) );
      (* (( (ptr) tmpAddr160) + 1) ) = 1;
      };
   {
      word tmpAddr161;
      tmpAddr161 = (word) (( (ptr) &var←c39080)+27)/* var←c36424 */ ;
      (*  (ptr) tmpAddr161 ) = ( ((word)  (fPt) FullyVisible←P2184) );
      (* (( (ptr) tmpAddr161) + 1) ) = 1;
      };
   {
      word tmpAddr162;
      tmpAddr162 = (word) (( (ptr) &var←c39080)+29)/* var←c36456 */ ;
      (*  (ptr) tmpAddr162 ) = ( ((word)  (fPt) GetStyleInfo←P2124) );
      (* (( (ptr) tmpAddr162) + 1) ) = 1;
      };
   {
      word tmpAddr163;
      tmpAddr163 = (word) (( (ptr) &var←c39080)+31)/* var←c36488 */ ;
      (*  (ptr) tmpAddr163 ) = ( ((word)  (fPt) Cleanup←P2064) );
      (* (( (ptr) tmpAddr163) + 1) ) = 1;
      };
SOURCE(12545, 46)
   (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) = (* (( (ptr) tdd←v6548)+1) );
SOURCE(12593, 73)
   {
      word limit164;
      word limit165;
      word x166;
      (* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  ) = (x166 = ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)
                  /* lines←v8648 */  ))+3))+(
                  limit164 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                  BCK(start←v6604, limit164)
                  )))+6) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                  limit165 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                  BCK(start←v6604, limit165)
                  )))+3) )),
         MAX((int)(word), x166, 0));
      };
SOURCE(12668, 110)
   {
      word tc167;
      word pd168;
      pd168 = (* (( (ptr) (* (( (ptr) gf←c39112)+68)/* var←c34952 */  ))+29) );
      if (((word) ( *( (fPt) ((*  (ptr) pd168 ))))((* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ), (* (( (ptr) gf←c39112)+27)
          ), pd168) == (* (( (ptr) gf←c39112)+28) ))) {
         tc167 =  (word) 1;
         }
      else {
         tc167 =  (word) 0;
         };
      (* (( (ptr) &var←c39080)+35)/* kindOfStyle←v8704 */  ) = tc167;
      };
   {
      word var←c36520;
      word var←c0419;
      word var←c36552;
      word var←c0420;
      word var←c0421;
      word var←c36584;
      word var←c0422;
SOURCE(12780, 54)
      {
         word limit169;
         if (((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                  limit169 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                  BCK(start←v6604, limit169)
                  )))+3) ) == 2147483647)) {
SOURCE(12820, 14)
            (* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  ) = 0;
            };
         };
SOURCE(12836, 26)
      {
         word limit170;
         ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+12))+(
                  limit170 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                  BCK(start←v6604, limit170)
                  ))) + 8))->f = 0;
         };
SOURCE(12864, 166)
      lab←L100041: ;
      {
         word tc171;
         if (( (int)start←v6604 >  (int)0)) {
            {
               word limit172;
               var←c36520 = (start←v6604 - 1);
               var←c0419 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                        limit172 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                        BCK(var←c36520, limit172)
                        )))+6) );
               };
            {
               word limit173;
               var←c36552 = (start←v6604 - 1);
               var←c0420 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                        limit173 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                        BCK(var←c36552, limit173)
                        )))+4) );
               };
            var←c0421 = (var←c0419 + var←c0420);
            if (( (int)var←c0421 >  (int)(* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  ))) {
               tc171 =  (word) 1;
               }
            else {
               {
                  word limit174;
                  var←c36584 = (start←v6604 - 1);
                  var←c0422 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                           limit174 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                           BCK(var←c36584, limit174)
                           )))+4) );
                  };
               tc171 =  (word) (var←c0422 == 2147483647);
               };
            }
         else {
            tc171 =  (word) 0;
            };
         if (tc171) {
            }
         else {
            goto lab←L100039;
            };
         };
SOURCE(12987, 15)
      start←v6604 = (start←v6604 - 1);
SOURCE(13004, 26)
      {
         word limit175;
         ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+12))+(
                  limit175 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                  BCK(start←v6604, limit175)
                  ))) + 8))->f = 0;
         };
      goto lab←L100041;
      lab←L100039: ;
SOURCE(13041, 11811)
      {
         /* declaration of node←v8748 skipped */ 
         /* declaration of pos←v8776 skipped */ 
         /* declaration of leading←v8804 skipped */ 
         /* declaration of topLeading←v8832 skipped */ 
         /* declaration of bottomLeading←v8860 skipped */ 
         /* declaration of nodeLeading←v8888 skipped */ 
         /* declaration of knowBottomLeading←v8916 skipped */ 
         /* declaration of y←v8944 skipped */ 
         word nodeSize←v8972;
         word styleInit←v9000 = 1;
         word yMatchRun←v9028 = 1;
         /* declaration of yMatch←v9056 skipped */ 
         word eraseToEnd←v9084 = 0;
         /* declaration of lineInfo←v9112 skipped */ 
         /* declaration of nodeStyle←v9140 skipped */ 
         /* declaration of styleInfoNode←v9196 skipped */ 
         /* declaration of checkedVisible←v9252 skipped */ 
         /* declaration of fullyVisible←v9280 skipped */ 
         /* declaration of found←v9336 skipped */ 
         /* declaration of level←v9504 skipped */ 
         /* declaration of maxLevel←v9532 skipped */ 
         /* declaration of levelClipping←v9560 skipped */ 
         /* declaration of last←v9588 skipped */ 
         /* declaration of next←v9616 skipped */ 
         /* declaration of continueReason←v9728 skipped */ 
         /* declaration of firstTimeThrough←v9784 skipped */ 
         word var←c0423;
SOURCE(13043, 50)
         {
            word limit176;
            (* (( (ptr) &var←c39080)+36)/* node←v8748 */  ) = (*  (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3)
               )+(
                  limit176 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                  BCK(start←v6604, limit176)
                  )) );
            };
SOURCE(13095, 33)
         {
            word limit177;
            (* (( (ptr) &var←c39080)+37)/* pos←v8776 */  ) = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3)
                  )+(
                     limit177 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                     BCK(start←v6604, limit177)
                     )))+1) );
            };
SOURCE(13130, 16)
         (* (( (ptr) &var←c39080)+38)/* leading←v8804 */  ) = 0;
SOURCE(13148, 19)
         (* (( (ptr) &var←c39080)+39)/* topLeading←v8832 */  ) = 0;
SOURCE(13169, 22)
         (* (( (ptr) &var←c39080)+40)/* bottomLeading←v8860 */  ) = 0;
SOURCE(13193, 20)
         (* (( (ptr) &var←c39080)+41)/* nodeLeading←v8888 */  ) = 0;
SOURCE(13215, 37)
         (* (( (ptr) &var←c39080)+42)/* knowBottomLeading←v8916 */  ) = ( (int)start←v6604 ==  (int)0);
SOURCE(13282, 10)
         (* (( (ptr) &var←c39080)+43)/* y←v8944 */  ) = 0;
SOURCE(13294, 35)
         {
            word pd178;
            pd178 = (* (( (ptr) (* (( (ptr) gf←c39112)+63)/* var←c34632 */  ))+6) );
            nodeSize←v8972 = (word) ( *( (fPt) ((*  (ptr) pd178 ))))((* ((( (ptr) &var←c39080)+36)/* node←v8748 */ ) ), pd178);
            };
SOURCE(13379, 20)
         (* (( (ptr) &var←c39080)+44)/* yMatch←v9056 */  ) = 0;
SOURCE(13427, 55)
         {
            word pd179;
            pd179 = (* (( (ptr) (* (( (ptr) gf←c39112)+75)/* var←c36616 */  ))+10) );
            (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ) = (word) ( *( (fPt) ((*  (ptr) pd179 ))))(pd179);
            };
SOURCE(13484, 47)
         {
            word pd180;
            pd180 = (* (( (ptr) (* (( (ptr) gf←c39112)+76)/* var←c36648 */  ))+6) );
            (* (( (ptr) &var←c39080)+46)/* nodeStyle←v9140 */  ) = (word) ( *( (fPt) ((*  (ptr) pd180 ))))(pd180);
            };
SOURCE(13648, 33)
         (* (( (ptr) &var←c39080)+47)/* styleInfoNode←v9196 */  ) = 0;
SOURCE(14388, 42)
         (* (( (ptr) &var←c39080)+48)/* checkedVisible←v9252 */  ) = 0;
         (* (( (ptr) &var←c39080)+49)/* fullyVisible←v9280 */  ) = 0;
SOURCE(14851, 14)
         (* (( (ptr) &var←c39080)+50)/* found←v9336 */  ) = 0;
SOURCE(19630, 18)
         (* (( (ptr) &var←c39080)+51)/* level←v9504 */  ) = 0;
SOURCE(19689, 33)
         (* (( (ptr) &var←c39080)+52)/* maxLevel←v9532 */  ) = (* (( (ptr) tdd←v6548)+2) );
SOURCE(19724, 54)
         (* (( (ptr) &var←c39080)+53)/* levelClipping←v9560 */  ) = ( (int)(* (( (ptr) &var←c39080)+52)/* maxLevel←v9532 */  ) <  (int)1023);
SOURCE(19780, 24)
         (* (( (ptr) &var←c39080)+54)/* last←v9588 */  ) = 0;
         (* (( (ptr) &var←c39080)+55)/* next←v9616 */  ) = 0;
SOURCE(20368, 37)
         (* (( (ptr) &var←c39080)+56)/* continueReason←v9728 */  ) = 0;
SOURCE(21012, 29)
         (* (( (ptr) &var←c39080)+57)/* firstTimeThrough←v9784 */  ) = 1;
SOURCE(21044, 146)
         if (((* (( (ptr) &var←c39080)+36)/* node←v8748 */  ) == 0)) { goto then0181;};
         (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) = start←v6604;
         var←c0423 = start←v6604;
         if (( (int)var←c0423 >  (int)(*  (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) )) || ( (int)(* (( (ptr) &var←c39080)+6)
         /* end←v6632 */  ) <  (int)0)) {
            then0181: ;
SOURCE(21111, 60)
            if (((* (( (ptr) &var←c39080)+36)/* node←v8748 */  ) == 0)) {
SOURCE(21128, 43)
               {
                  word var←c36680;
                  {
                     word limit182;
                     var←c36680 = (word) (( (W9Pt) (( (bPt) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+12))+(
                           limit182 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                           BCK(start←v6604, limit182)
                           ));
                     };
                  XR←FillWords(&(* (W9Pt) (var←c36680)), 9, 0);
                  (* (( (ptr) var←c36680)+2) ) = 2147483648;
                  };
               };
SOURCE(21173, 9)
            (void) Cleanup←P2064((word) ((( (bPt) &var←c39080)+124)/* var←c36488 */ ));
SOURCE(21184, 6)
            return((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ));
            };
SOURCE(21193, 22)
         (* (( (ptr) &var←c39080)+48)/* checkedVisible←v9252 */  ) = 0;
SOURCE(21217, 106)
         if ( ( ( (int)moveDownLines←v6744 >  (int)0) ? (0 != (word) FullyVisible←P2184((word) ((( (bPt) &var←c39080)+108)/* var←c36424 */ ))
         ) : 0 ) ) {
SOURCE(21264, 59)
            (void) MoveLinesDown←P2484(0, moveDownLines←v6744, 0, moveDownDistance←v6772, 0, (word) (( (bPt) &var←c39080)+68)/* var←c36264 */ )
            ;
            };
SOURCE(21328, 2874)
         lab←L100044: ;
         if (((word) WhyGoOn←P2664((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ), (word) (( (bPt) &var←c39080)+44)/* var←c36168 */ )
          != 0)) {
            }
         else {
            goto lab←L100042;
            };
         {
            word yPrevious←v10868;
            word stopIt←v10896;
            word var←c36808;
            word var←c0425;
            word var←c0426;
            word var←c0429;
            word var←c37384;
SOURCE(21358, 18)
            yPrevious←v10868 = (* (( (ptr) &var←c39080)+43)/* y←v8944 */  );
SOURCE(21378, 82)
            {
               word tc183;
               word tc184;
               word pd185;
               if ((0 != refresh←v6688)) {
                  pd185 = (* (( (ptr) (* (( (ptr) gf←c39112)+62)/* var←c34184 */  ))+10) );
                  tc184 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd185 ))))(lock←v6716, pd185));
                  }
               else {
                  tc184 =  (word) 0;
                  };
               if (tc184) {
                  tc183 =  (word) 1;
                  }
               else {
                  tc183 =  (word) ((* (( (ptr) tdd←v6548)+16) ) > 0);
                  };
               stopIt←v10896 = tc183;
               };
SOURCE(21702, 293)
            if ((0 != stopIt←v10896)) {
SOURCE(21719, 44)
               (void) ClearEntries←P2304((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ), (*  (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) ), (word) (
                     ( (bPt) &var←c39080)+92)/* var←c36360 */ );
SOURCE(21765, 21)
               (*  (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) ) = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  );
SOURCE(21788, 29)
               {
                  word var←c36712;
                  {
                     word idx186;
                     word limit187;
                     var←c36712 = (word) (( (W9Pt) (( (bPt) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+12))+(
                           idx186 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                           limit187 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                           BCK(idx186, limit187)
                           ));
                     };
                  (*  (ptr) var←c36712 ) = (* (( (ptr) &var←c39080)+36)/* node←v8748 */  );
                  (* (( (ptr) var←c36712)+1) ) = (* (( (ptr) &var←c39080)+37)/* pos←v8776 */  );
                  };
SOURCE(21819, 23)
               (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+1) ) = (* (( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+8)
                );
SOURCE(21844, 32)
               {
                  word idx188;
                  word limit189;
                  (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                           idx188 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                           limit189 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                           BCK(idx188, limit189)
                           )))+6) ) = (* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  );
                  };
SOURCE(21878, 22)
               {
                  word idx190;
                  word limit191;
                  (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                           idx190 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                           limit191 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                           BCK(idx190, limit191)
                           )))+3) ) = 0;
                  };
SOURCE(21902, 32)
               {
                  word idx192;
                  word limit193;
                  (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                           idx192 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                           limit193 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                           BCK(idx192, limit193)
                           )))+4) ) = 2147483647;
                  };
SOURCE(21936, 25)
               {
                  word idx194;
                  word limit195;
                  ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+12))+(
                           idx194 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                           limit195 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                           BCK(idx194, limit195)
                           ))) + 8))->f = 0;
                  };
SOURCE(21963, 9)
               (void) Cleanup←P2064((word) ((( (bPt) &var←c39080)+124)/* var←c36488 */ ));
SOURCE(21974, 21)
               return(2147483647);
               };
SOURCE(22000, 18)
            (void) GetStyleInfo←P2124((* (( (ptr) &var←c39080)+36)/* node←v8748 */  ), (word) (( (bPt) &var←c39080)+116)/* var←c36456 */ )
            ;
SOURCE(22020, 201)
            {
               word pd196;
               if (( (int)(* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) ==  (int)0)) {
                  pd196 = (* (( (ptr) (* (( (ptr) gf←c39112)+77)/* var←c36744 */  ))+13) );
                  (* (( (ptr) &var←c39080)+43)/* y←v8944 */  ) = (word) ( *( (fPt) ((*  (ptr) pd196 ))))((* (( (ptr) &var←c39080)+46)/* nodeStyle←v9140 */  ), 19, pd196)
                  ;
                  }
               else {
                  {
                     word var←c36776;
                     word var←c0424;
                     {
                        word tc197;
                        word limit198;
                        if (( (int)(* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) !=  (int)start←v6604)) {
                           tc197 =  (word) (* (( (ptr) &var←c39080)+43) );
                           /* y←v8944 */ }
                        else {
                           var←c36776 = ((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) - 1);
                           tc197 =  (word) (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
/*1*/         limit198 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/         BCK(var←c36776, limit198)
/*1*/         )))+6) );
                           };
                        var←c0424 = tc197;
                        };
                     (* (( (ptr) &var←c39080)+43)/* y←v8944 */  ) = (var←c0424 +  ( ( (int)(* (( (ptr) &var←c39080)+37)/* pos←v8776 */  ) ==  (int)0) ? (* (
                        ( (ptr) &var←c39080)+41)/* nodeLeading←v8888 */  ) : (* (( (ptr) &var←c39080)+38)/* leading←v8804 */  ) ) );
                     };
                  };
               };
SOURCE(22223, 30)
            {
               word idx199;
               word limit200;
               (* (( (ptr) &var←c39080)+44)/* yMatch←v9056 */  ) = ( (int)(* (( (ptr) &var←c39080)+43)/* y←v8944 */  ) ==  (int)(* (( (ptr) (
                     ( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                        idx199 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                        limit200 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                        BCK(idx199, limit200)
                        )))+6) ));
               };
SOURCE(22255, 115)
            {
               word tc201;
               if (( (int)(* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) >  (int)0)) {
                  {
                     word tc202;
                     if ((* (( (bPt) (* (( (ptr) &var←c39080)+36)/* node←v8748 */  ))+36) ) & 010) {
                        {
                           word limit203;
                           var←c36808 = ((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) - 1);
                           var←c0425 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
/*1*/         limit203 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/         BCK(var←c36808, limit203)
/*1*/         )))+4) );
                           };
                        tc202 =  (word) (yPrevious←v10868 + var←c0425);
                        }
                     else {
                        tc202 =  (word) (* (( (ptr) &var←c39080)+43) );
                        /* y←v8944 */ };
                     var←c0426 = tc202;
                     };
                  tc201 =  (word) ( (int)var←c0426 >=  (int)(* (( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+8) ));
                  }
               else {
                  tc201 =  (word) 0;
                  };
               if (tc201) {
SOURCE(22353, 17)
                  eraseToEnd←v9084 = 1;
SOURCE(22372, 4)
                  goto lab←L100043;
                  };
               };
SOURCE(22379, 78)
            if (( (int)(* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) ==  (int)0)) {
               (* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  ) = 0;
               }
            else {
               {
                  word var←c36840;
                  word var←c0427;
                  word var←c36872;
                  word var←c0428;
                  {
                     word limit204;
                     var←c36840 = ((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) - 1);
                     var←c0427 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
/*1*/   limit204 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/   BCK(var←c36840, limit204)
/*1*/   )))+6) );
                     };
                  {
                     word limit205;
                     var←c36872 = ((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) - 1);
                     var←c0428 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
/*1*/   limit205 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/   BCK(var←c36872, limit205)
/*1*/   )))+4) );
                     };
                  (* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  ) = (var←c0427 + var←c0428);
                  };
               };
SOURCE(22459, 1491)
            if ((0 != (* (( (ptr) &var←c39080)+7)/* displayClear←v6660 */  )) || (0 == (word) TryMoveUp←P2244((word) ((( (bPt) &var←c39080)+100)
               /* var←c36392 */ )))) {
SOURCE(22499, 1453)
               {
                  /* declaration of backgroundColor←v10940 skipped */ 
SOURCE(22501, 35)
                  (* (( (ptr) &var←c39080)+58)/* backgroundColor←v10940 */  ) = 0;
SOURCE(22822, 132)
                  {
                     word var←c36904;
                     {
                        word var←c36936;
                        word int←v33528;
                        int←v33528 = (* (( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+7) );
                        var←c36936 = (int←v33528 << 16);
                        var←c36904 = var←c36936;
                        };
                     {
                        word pd206;
                        pd206 = (* (( (ptr) (* (( (ptr) gf←c39112)+75)/* var←c36616 */  ))+5) );
                        (void) ( *( (fPt) ((*  (ptr) pd206 ))))((* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ), (* (( (ptr) &var←c39080)+36)
                           /* node←v8748 */  ), (* (( (ptr) &var←c39080)+37)/* pos←v8776 */  ), (* (( (ptr) &var←c39080)+46)/* nodeStyle←v9140 */  ), var←c36904, 0, pd206)
                        ;
                        };
                     };
SOURCE(22956, 69)
                  if ((0 == (* (( (ptr) &var←c39080)+7)/* displayClear←v6660 */  ))) {
SOURCE(22981, 44)
                     (void) TryMoveDown←P2424((* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+14) ), (* (( (ptr) (* (( (ptr) &var←c39080)+45)
                           /* lineInfo←v9112 */  ))+16) ), (word) (( (bPt) &var←c39080)+76)/* var←c36296 */ );
                     };
SOURCE(23027, 183)
                  {
                     word clearToY←v11028;
SOURCE(23028, 31)
                     clearToY←v11028 = ((* (( (ptr) &var←c39080)+43)/* y←v8944 */  ) - (* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+13)
                      ));
SOURCE(23061, 144)
                     if (( (int)(* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  ) <=  (int)clearToY←v11028)) {
SOURCE(23094, 30)
                        (* (( (ptr) &var←c39080)+58)/* backgroundColor←v10940 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c39112)+65)/* var←c34696 */  ))+55)
                         ) );
SOURCE(23126, 56)
                        if ((0 == (* (( (ptr) &var←c39080)+7)/* displayClear←v6660 */  ))) {
SOURCE(23151, 31)
                           (void) ClearLine←P2604((* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  ), clearToY←v11028, (word) (( (bPt) &var←c39080)+52)
/*1*/   /* var←c36200 */ );
                           };
SOURCE(23184, 21)
                        (* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  ) = clearToY←v11028;
                        };
                     };
SOURCE(23213, 374)
                  if ((0 != (* (( (ptr) &var←c39080)+7)/* displayClear←v6660 */  ))) {
SOURCE(23234, 15)
                     (void) painter←P2820((word) ((( (bPt) &var←c39080)+36)/* var←c36136 */ ));
                     }
                  else {
SOURCE(23249, 343)
                     {
                        word ymin←v11072;
                        word ymax←v11100;
SOURCE(23251, 37)
                        ymin←v11072 = (((* (( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+8) ) - (* (( (ptr) &var←c39080)+43)/* y←v8944 */  )) + 
                        (* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+11) ));
SOURCE(23290, 37)
                        ymax←v11100 = (((* (( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+8) ) - (* (( (ptr) &var←c39080)+43)/* y←v8944 */  )) + 
                        (* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+13) ));
SOURCE(23329, 100)
                        if (((* (( (ptr) &var←c39080)+56)/* continueReason←v9728 */  ) == 3)) {
SOURCE(23368, 38)
                           {
/*1*/   word x207;
/*1*/   ymin←v11072 = (x207 = ((* (( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+8) ) - (* (( (ptr) &var←c39080)+34)/* oldBottomY←v8676 */  )),
/*1*/      MAX((int)(word), x207, ymin←v11072));
/*1*/   };
SOURCE(23408, 21)
                           (* (( (ptr) &var←c39080)+58)/* backgroundColor←v10940 */  ) = 0;
                           };
SOURCE(23434, 153)
                        if (( (int)ymin←v11072 <  (int)ymax←v11100)) {
SOURCE(23456, 131)
                           {
/*1*/   word pd208;
/*1*/   pd208 = (* (( (ptr) (* (( (ptr) gf←c39112)+65)/* var←c34696 */  ))+86) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd208 ))))((* (( (ptr) &var←c39080)+5)/* dc←v6576 */  ), (word) (( (bPt) &var←c39080)+36)/* var←c36136 */ , 0, ymin←v11072, (* (
/*1*/         ( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+7) ), (ymax←v11100 - ymin←v11072)
/*1*/      , (* (( (ptr) &var←c39080)+58)/* backgroundColor←v10940 */  ), pd208);
/*1*/   };
                           };
                        };
                     };
SOURCE(23595, 355)
                  {
                     word var←c37000;
                     word var←c37032;
                     word var←c37064;
                     word var←c37096;
                     word var←c37128;
                     word var←c37320;
                     word var←c37352;
                     var←c37000 = (* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+16) );
                     {
                        word x209;
                        word idx210;
                        word x211;
                        var←c37032 = (x211 = (
/*1*/   idx210 = (word) (x209 = (* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+13) ),
/*1*/      MAX((int)(word), x209, 0)),
/*1*/   SGNCK(idx210)
/*1*/   ),
                           MIN( (unsigned) , x211, 2147483647));
                        };
                     {
                        word x212;
                        word idx213;
                        word x214;
                        var←c37064 = (x214 = (
/*1*/   idx213 = (word) (x212 = INEG((* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+11) )),
/*1*/      MAX((int)(word), x212, 0)),
/*1*/   SGNCK(idx213)
/*1*/   ),
                           MIN( (unsigned) , x214, 2147483647));
                        };
                     var←c37096 = (* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+14) );
                     {
                        word var←c37160;
                        word a←v33448;
                        a←v33448 = (* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+9) );
                        {
                           word a←v20240;
                           {
/*1*/   word i←v21104;
/*1*/   i←v21104 = (a←v33448 + 32768);
/*1*/   a←v20240 = i←v21104;
/*1*/   };
                           var←c37160 =  (word)( (int)a←v20240 >> 16);
                           };
                        {
                           word x215;
                           var←c37128 = (x215 = (MAX((int)(word), var←c37160, 2147483648)),
/*1*/   MIN((int)(word), x215, 2147483647));
                           };
                        };
                     var←c37320 = ((* (( (ptr) (* (( (ptr) &var←c39080)+45)/* lineInfo←v9112 */  ))+12) ) - (* (( (ptr) (* (( (ptr) &var←c39080)+45)
                        /* lineInfo←v9112 */  ))+10) ));
                     {
                        word idx216;
                        word limit217;
                        var←c37352 = (word) (( (W9Pt) (( (bPt) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+12))+(
/*1*/   idx216 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
/*1*/   limit217 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/   BCK(idx216, limit217)
/*1*/   ));
                        };
                     (*  (ptr) var←c37352 ) = (* (( (ptr) &var←c39080)+36)/* node←v8748 */  );
                     (* (( (ptr) var←c37352)+1) ) = (* (( (ptr) &var←c39080)+37)/* pos←v8776 */  );
                     (* (( (ptr) var←c37352)+2) ) = (( (((unsigned)var←c37000 << 1) >> 1) ) + 2147483648);
                     (* (( (ptr) var←c37352)+3) ) = var←c37032;
                     (* (( (ptr) var←c37352)+4) ) = var←c37064;
                     (* (( (ptr) var←c37352)+5) ) = var←c37096;
                     {
                        word x218;
                        word x219;
                        (* (( (ptr) var←c37352)+6) ) = (x219 = (x218 = (* (( (ptr) &var←c39080)+43)/* y←v8944 */  ),
/*1*/   MAX((int)(word), x218, 2147483648)),
                           MIN((int)(word), x219, 2147483647));
                        };
                     (* (( (ptr) var←c37352)+7) ) = var←c37128;
                     (* (( (ptr) var←c37352)+8) ) = var←c37320;
                     };
                  };
               };
SOURCE(23955, 30)
            {
               word idx220;
               word limit221;
               (* (( (ptr) &var←c39080)+37)/* pos←v8776 */  ) = ((* (( (ptr) &var←c39080)+37)/* pos←v8776 */  ) + (* (( (ptr) (( (W9Pt) (
                        ( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
                        idx220 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                        limit221 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
                        BCK(idx220, limit221)
                        )))+5) ));
               };
SOURCE(23987, 15)
            (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) = ((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) + 1);
SOURCE(24004, 37)
            if (((* (( (ptr) &var←c39080)+56)/* continueReason←v9728 */  ) == 3)) {
SOURCE(24041, 4)
               goto lab←L100043;
               };
SOURCE(24047, 155)
            {
               word tc222;
               if (( (int)(* (( (ptr) &var←c39080)+37)/* pos←v8776 */  ) >=  (int)nodeSize←v8972)) {
                  {
                     word limit223;
                     var←c37384 = ((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) - 1);
                     var←c0429 = (var←c0429 & 2147483648) | (( (((unsigned)(* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3)
/*1*/   )+(
/*1*/      limit223 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/      BCK(var←c37384, limit223)
/*1*/      )))+2) ) << 1) >> 1) ));
                     };
                  tc222 =  (word) (( (((unsigned)var←c0429 << 1) >> 1) ) != 1);
                  }
               else {
                  tc222 =  (word) 0;
                  };
               if (tc222) {
SOURCE(24098, 17)
                  (* (( (ptr) &var←c39080)+36)/* node←v8748 */  ) = (word) NextNode←P2544((word) ((( (bPt) &var←c39080)+60)/* var←c36232 */ ))
                  ;
SOURCE(24117, 37)
                  if (((* (( (ptr) &var←c39080)+36)/* node←v8748 */  ) == 0)) {
SOURCE(24137, 17)
                     eraseToEnd←v9084 = 1;
SOURCE(24156, 4)
                     goto lab←L100043;
                     };
SOURCE(24163, 30)
                  {
                     word pd224;
                     pd224 = (* (( (ptr) (* (( (ptr) gf←c39112)+63)/* var←c34632 */  ))+6) );
                     nodeSize←v8972 = (word) ( *( (fPt) ((*  (ptr) pd224 ))))((* ((( (ptr) &var←c39080)+36)/* node←v8748 */ ) ), pd224);
                     };
SOURCE(24195, 7)
                  (* (( (ptr) &var←c39080)+37)/* pos←v8776 */  ) = 0;
                  };
               };
            };
         goto lab←L100044;
         lab←L100042: ;
         lab←L100043: ;
SOURCE(24216, 620)
         if ((0 != eraseToEnd←v9084) || ( (int)(* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) >=  (int)(* (( (ptr) (* (( (ptr) &var←c39080)+33)
            /* lines←v8648 */  ))+2) ))) {
SOURCE(24259, 436)
            {
               word bottomOfNewLines←v11144 = 0;
SOURCE(24288, 170)
               if (( (int)(* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) !=  (int)0)) {
SOURCE(24305, 155)
                  {
                     word descent←v11188;
                     word var←c37416;
SOURCE(24307, 36)
                     {
                        word limit225;
                        var←c37416 = ((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) - 1);
                        descent←v11188 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
/*1*/      limit225 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/      BCK(var←c37416, limit225)
/*1*/      )))+4) );
                        };
SOURCE(24345, 113)
                     if ((descent←v11188 == 2147483647)) {
SOURCE(24374, 34)
                        bottomOfNewLines←v11144 = (* (( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+8) );
                        }
                     else {
SOURCE(24408, 50)
                        {
                           word var←c37448;
                           word var←c0430;
                           {
/*1*/   word limit226;
/*1*/   var←c37448 = ((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ) - 1);
/*1*/   var←c0430 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
/*1*/            limit226 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/            BCK(var←c37448, limit226)
/*1*/            )))+6) );
/*1*/   };
                           bottomOfNewLines←v11144 = (var←c0430 + descent←v11188);
                           };
                        };
                     };
                  };
SOURCE(24463, 30)
               {
                  word x227;
                  (*  (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) ) = ((x227 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                     MAX((int)(word), x227, 1)) - 1);
                  };
SOURCE(24511, 48)
               (void) ClearEntries←P2304(((*  (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) ) + 1), ((* (( (ptr) (* (( (ptr) &var←c39080)+33)
                     /* lines←v8648 */  ))+2) ) - 1), (word) (( (bPt) &var←c39080)+92)/* var←c36360 */ );
SOURCE(24561, 100)
               if ( ( (0 == (* (( (ptr) &var←c39080)+7)/* displayClear←v6660 */  )) ? ( (int)bottomOfNewLines←v11144 <  (int)(* (( (ptr) (* (
                     ( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+1) )) : 0 ) ) {
SOURCE(24621, 40)
                  (void) ClearLine←P2604(bottomOfNewLines←v11144, (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+1) ), (word) (
                        ( (bPt) &var←c39080)+52)/* var←c36200 */ );
                  };
SOURCE(24663, 30)
               (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+1) ) = bottomOfNewLines←v11144;
               };
            }
         else {
SOURCE(24704, 51)
            {
               word x228;
               word x229;
               word x230;
               (*  (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) ) = (x228 = (*  (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) ),
                  x230 = ((x229 = (* (( (ptr) &var←c39080)+8)/* line←v6816 */  ),
                     MAX((int)(word), x229, 1)) - 1),
                  MAX((int)(word), x228, x230));
               };
SOURCE(24757, 79)
            {
               word idx231;
               word limit232;
               word x233;
               word x234;
               word x235;
               word x236;
               (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+1) ) = (x235 = (x233 = ((* (( (ptr) &var←c39080)+43)/* y←v8944 */  ) + 
                     (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+3))+(
/*1*/   idx231 = (*  (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ) ),
/*1*/   limit232 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+2) ),
/*1*/   BCK(idx231, limit232)
/*1*/   )))+4) )),
                     x234 = (* (( (ptr) (* (( (ptr) &var←c39080)+4)/* viewer←v6520 */  ))+8) ),
                     MIN((int)(word), x233, x234)),
                  x236 = (* (( (ptr) (* (( (ptr) &var←c39080)+33)/* lines←v8648 */  ))+1) ),
                  MAX((int)(word), x235, x236));
               };
            };
SOURCE(24841, 9)
         (void) Cleanup←P2064((word) ((( (bPt) &var←c39080)+124)/* var←c36488 */ ));
         };
      };
SOURCE(12320, 12530)
   return((* (( (ptr) &var←c39080)+8)/* line←v6816 */  ));
   }

static void Cleanup←P2064(formal←c39176)
   word formal←c39176;
   {
   register ptr gf←c39144 =  (ptr) &globalframe;
   formal←c39176 = (formal←c39176 - 124);
   /* Cleanup: */ 
SOURCE(13533, 16)
SOURCE(13551, 29)
   {
      word pd237;
      pd237 = (* (( (ptr) (* (( (ptr) gf←c39144)+75)/* var←c36616 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd237 ))))((* ((( (ptr) formal←c39176)+45)) ), pd237);
      };
SOURCE(13582, 14)
   (* (( (ptr) formal←c39176)+45) ) = 0;
SOURCE(13598, 28)
   {
      word pd238;
      pd238 = (* (( (ptr) (* (( (ptr) gf←c39144)+76)/* var←c36648 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd238 ))))((* ((( (ptr) formal←c39176)+46)) ), pd238);
      };
SOURCE(13628, 15)
   (* (( (ptr) formal←c39176)+46) ) = 0;
   }

static void GetStyleInfo←P2124(node←v9876, formal←c39240)
   word node←v9876;
   word formal←c39240;
   {
   register ptr gf←c39208 =  (ptr) &globalframe;
   formal←c39240 = (formal←c39240 - 116);
   /* GetStyleInfo: */ 
SOURCE(13739, 20)
SOURCE(13783, 35)
   if ((node←v9876 == (* (( (ptr) formal←c39240)+47) ))) {
SOURCE(13812, 6)
      return;
      };
SOURCE(13851, 20)
   (* (( (ptr) formal←c39240)+47) ) = node←v9876;
SOURCE(13873, 200)
   if ( ( (0 == (* (( (ptr) formal←c39240)+42) )) ? ( (int)(* (( (ptr) formal←c39240)+37) ) ==  (int)0) : 0 ) ) {
SOURCE(13944, 69)
      {
         word var←c37480;
         word var←c0431;
         {
            word limit239;
            var←c37480 = ((* (( (ptr) formal←c39240)+8) ) - 1);
            var←c0431 = (*  (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39240)+33) ))+3))+(
                  limit239 = (* (( (ptr) (* (( (ptr) formal←c39240)+33) ))+2) ),
                  BCK(var←c37480, limit239)
                  )) );
            };
         {
            word pd240;
            pd240 = (* (( (ptr) (* (( (ptr) gf←c39208)+76)/* var←c36648 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd240 ))))((* (( (ptr) formal←c39240)+46) ), var←c0431, (* (( (ptr) formal←c39240)+35) ), pd240)
            ;
            };
         };
SOURCE(14015, 58)
      {
         word pd241;
         pd241 = (* (( (ptr) (* (( (ptr) gf←c39208)+77)/* var←c36744 */  ))+13) );
         (* (( (ptr) formal←c39240)+40) ) = (word) ( *( (fPt) ((*  (ptr) pd241 ))))((* (( (ptr) formal←c39240)+46) ), 28, pd241);
         };
      };
SOURCE(14078, 51)
   {
      word pd242;
      pd242 = (* (( (ptr) (* (( (ptr) gf←c39208)+76)/* var←c36648 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd242 ))))((* (( (ptr) formal←c39240)+46) ), node←v9876, (* (( (ptr) formal←c39240)+35) ), pd242)
      ;
      };
SOURCE(14131, 46)
   {
      word pd243;
      pd243 = (* (( (ptr) (* (( (ptr) gf←c39208)+77)/* var←c36744 */  ))+13) );
      (* (( (ptr) formal←c39240)+38) ) = (word) ( *( (fPt) ((*  (ptr) pd243 ))))((* (( (ptr) formal←c39240)+46) ), 22, pd243);
      };
SOURCE(14179, 72)
   {
      word x244;
      word pd245;
      word x246;
      pd245 = (* (( (ptr) (* (( (ptr) gf←c39208)+77)/* var←c36744 */  ))+13) );
      (* (( (ptr) formal←c39240)+39) ) = (x244 = (* (( (ptr) formal←c39240)+40) ),
         x246 = (word) ( *( (fPt) ((*  (ptr) pd245 ))))((* (( (ptr) formal←c39240)+46) ), 25, pd245),
         MAX((int)(word), x244, x246));
      };
SOURCE(14253, 44)
   {
      word x247;
      word x248;
      (* (( (ptr) formal←c39240)+41) ) = (x247 = (* (( (ptr) formal←c39240)+40) ),
         x248 = (* (( (ptr) formal←c39240)+39) ),
         MAX((int)(word), x247, x248));
      };
SOURCE(14299, 58)
   {
      word pd249;
      pd249 = (* (( (ptr) (* (( (ptr) gf←c39208)+77)/* var←c36744 */  ))+13) );
      (* (( (ptr) formal←c39240)+40) ) = (word) ( *( (fPt) ((*  (ptr) pd249 ))))((* (( (ptr) formal←c39240)+46) ), 28, pd249);
      };
SOURCE(14359, 24)
   (* (( (ptr) formal←c39240)+42) ) = 1;
   }

static word FullyVisible←P2184(formal←c39304)
   word formal←c39304;
   {
   register ptr gf←c39272 =  (ptr) &globalframe;
   word var←c9936;
   formal←c39304 = (formal←c39304 - 108);
   /* FullyVisible: */ 
SOURCE(14432, 28)
SOURCE(14470, 350)
   if ((0 == (* (( (ptr) formal←c39304)+48) ))) {
SOURCE(14497, 325)
      {
         word m←v11232;
SOURCE(14499, 110)
         {
            word pd250;
            pd250 = (* (( (ptr) (* (( (ptr) gf←c39272)+78)/* var←c37512 */  ))+20) );
            m←v11232 = (word) ( *( (fPt) ((*  (ptr) pd250 ))))((* (( (ptr) formal←c39304)+5) ), 0, 1, pd250);
            };
SOURCE(14611, 153)
         {
            word tc251;
            word tc252;
            word pd253;
            word pd254;
            pd253 = (* (( (ptr) (* (( (ptr) gf←c39272)+79)/* var←c37544 */  ))+48) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd253 ))))(m←v11232, pd253))) {
               tc252 =  (word) ( (int)(* (( (ptr) m←v11232)+6) ) ==  (int)0);
               }
            else {
               tc252 =  (word) 0;
               };
            if (tc252) {
               tc251 =  (word) ( (int)(* (( (ptr) m←v11232)+7) ) ==  (int)0);
               }
            else {
               tc251 =  (word) 0;
               };
            if (tc251) {
               pd254 = (* (( (ptr) (* (( (ptr) gf←c39272)+78)/* var←c37512 */  ))+25) );
               (* (( (ptr) formal←c39304)+49) ) = ((word) ( *( (fPt) ((*  (ptr) pd254 ))))((* (( (ptr) formal←c39304)+5) ), 0, 0, (* (( (ptr) (* (
                        ( (ptr) formal←c39304)+4) ))+7) ), (* (( (ptr) (* (( (ptr) formal←c39304)+4) ))+8) ), pd254) == 2);
               }
            else {
               (* (( (ptr) formal←c39304)+49) ) = 0;
               };
            };
SOURCE(14766, 31)
         {
            word pd255;
            pd255 = (* (( (ptr) (* (( (ptr) gf←c39272)+79)/* var←c37544 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd255 ))))(m←v11232, pd255);
            };
SOURCE(14799, 21)
         (* (( (ptr) formal←c39304)+48) ) = 1;
         };
      };
SOURCE(14825, 21)
   return((* (( (ptr) formal←c39304)+49) ));
   }

static word TryMoveUp←P2244(formal←c39368)
   word formal←c39368;
   {
   W6 var←c39336;
   word ok←v9996;
   /* declaration of var←c37576 skipped */ 
   word to←v11276;
   word from←v11304;
   word num←v11332;
   word dist←v11360;
   word bottom←v11388;
   word diff←v11416;
   word dirtyScanlinesInFirstTextline←v11444 = 0;
   formal←c39368 = (formal←c39368 - 100);
   var←c39336.f0 = formal←c39368;
   /* TryMoveUp: */ 
SOURCE(14887, 25)
   {
      word tmpAddr256;
      tmpAddr256 = (word) (( (ptr) &var←c39336)+4)/* var←c37576 */ ;
      (*  (ptr) tmpAddr256 ) = ( ((word)  (fPt) FindBelow←P3120) );
      (* (( (ptr) tmpAddr256) + 1) ) = 1;
      };
SOURCE(15249, 60)
   if ((0 == (word) FullyVisible←P2184((word) ((( (bPt) formal←c39368)+108)))) || (0 == (word) FindBelow←P3120((word) ((( (bPt) &var←c39336)+16)
      /* var←c37576 */ )))) {
SOURCE(15295, 14)
      return(0);
      };
SOURCE(15311, 102)
   {
      word tc257;
      word idx258;
      word limit259;
      word idx260;
      word limit261;
      if (( (int)(* (( (ptr) formal←c39368)+50) ) ==  (int)(*  (ptr) (* (( (ptr) formal←c39368)+33) ) ))) {
         tc257 =  (word) ( (int)((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                  idx258 = (* (( (ptr) formal←c39368)+50) ),
                  limit259 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                  BCK(idx258, limit259)
                  )))+6) ) + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                  idx260 = (* (( (ptr) formal←c39368)+50) ),
                  limit261 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                  BCK(idx260, limit261)
                  )))+4) )) >=  (int)(* (( (ptr) (* (( (ptr) formal←c39368)+4) ))+8) ));
         }
      else {
         tc257 =  (word) 0;
         };
      if (tc257) {
SOURCE(15399, 14)
         return(0);
         };
      };
SOURCE(15436, 184)
   {
      word tc262;
      if (( (int)(* (( (ptr) formal←c39368)+50) ) >  (int)0)) {
         {
            word var←c37608;
            word var←c0432;
            word var←c37640;
            word var←c0433;
            word var←c0434;
            word var←c0435;
            {
               word limit263;
               var←c37608 = ((* (( (ptr) formal←c39368)+50) ) - 1);
               var←c0432 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                        limit263 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                        BCK(var←c37608, limit263)
                        )))+6) );
               };
            {
               word limit264;
               var←c37640 = ((* (( (ptr) formal←c39368)+50) ) - 1);
               var←c0433 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                        limit264 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                        BCK(var←c37640, limit264)
                        )))+4) );
               };
            var←c0434 = (var←c0432 + var←c0433);
            {
               word idx265;
               word limit266;
               var←c0435 = (var←c0434 - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                        idx265 = (* (( (ptr) formal←c39368)+50) ),
                        limit266 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                        BCK(idx265, limit266)
                        )))+6) ));
               };
            {
               word idx267;
               word limit268;
               word x269;
               dirtyScanlinesInFirstTextline←v11444 = (x269 = (var←c0435 - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33)
                            ))+3))+(
                           idx267 = (* (( (ptr) formal←c39368)+50) ),
                           limit268 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                           BCK(idx267, limit268)
                           )))+3) )),
                  MAX((int)(word), 0, x269));
               };
            };
         tc262 =  (word) (dirtyScanlinesInFirstTextline←v11444 > 0);
         }
      else {
         tc262 =  (word) 0;
         };
      if (tc262) {
SOURCE(15594, 26)
         {
            word idx270;
            word limit271;
            ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) (* (( (ptr) formal←c39368)+33) ))+12))+(
                     idx270 = (* (( (ptr) formal←c39368)+50) ),
                     limit271 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                     BCK(idx270, limit271)
                     ))) + 8))->f = 0;
            };
         };
      };
SOURCE(15622, 58)
   {
      word idx272;
      word limit273;
      to←v11276 = (((* (( (ptr) formal←c39368)+43) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
               idx272 = (* (( (ptr) formal←c39368)+50) ),
               limit273 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
               BCK(idx272, limit273)
               )))+3) )) + dirtyScanlinesInFirstTextline←v11444);
      };
SOURCE(15682, 79)
   {
      word idx274;
      word limit275;
      word idx276;
      word limit277;
      from←v11304 = (((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
               idx274 = (* (( (ptr) formal←c39368)+50) ),
               limit275 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
               BCK(idx274, limit275)
               )))+6) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
               idx276 = (* (( (ptr) formal←c39368)+50) ),
               limit277 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
               BCK(idx276, limit277)
               )))+3) )) + dirtyScanlinesInFirstTextline←v11444);
      };
SOURCE(15763, 109)
   if (( (int)to←v11276 <  (int)0)) {
SOURCE(15806, 14)
      from←v11304 = (from←v11304 - to←v11276);
SOURCE(15866, 6)
      to←v11276 = 0;
      };
SOURCE(15877, 14)
   dist←v11360 = (from←v11304 - to←v11276);
SOURCE(15917, 31)
   if (( (int)dist←v11360 <  (int)0)) {
SOURCE(15934, 14)
      return(0);
      };
SOURCE(15976, 36)
   {
      word x278;
      word x279;
      bottom←v11388 = (x278 = (* (( (ptr) (* (( (ptr) formal←c39368)+4) ))+8) ),
         x279 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+1) ),
         MIN((int)(word), x278, x279));
      };
SOURCE(16014, 17)
   num←v11332 = (bottom←v11388 - from←v11304);
SOURCE(16065, 31)
   if (( (int)num←v11332 <=  (int)0)) {
SOURCE(16082, 14)
      return(0);
      };
SOURCE(16098, 25)
   (void) ClearLine←P2604((* (( (ptr) formal←c39368)+34) ), to←v11276, (word) (( (bPt) formal←c39368)+52));
SOURCE(16156, 28)
   (void) MoveScanLines←P2364(to←v11276, from←v11304, num←v11332, (word) (( (bPt) formal←c39368)+84));
SOURCE(16217, 30)
   (void) ClearLine←P2604((bottom←v11388 - dist←v11360), bottom←v11388, (word) (( (bPt) formal←c39368)+52));
SOURCE(16282, 30)
   (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+1) ) = ((* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+1) ) - dist←v11360);
SOURCE(16359, 17)
   diff←v11416 = ((* (( (ptr) formal←c39368)+50) ) - (* (( (ptr) formal←c39368)+8) ));
SOURCE(16405, 310)
   if (( (int)diff←v11416 !=  (int)0)) {
SOURCE(16454, 73)
      {
         register word n←v11576;
         register word noName←c37672;
         n←v11576 = (* (( (ptr) formal←c39368)+8) );
         noName←c37672 = ((*  (ptr) (* (( (ptr) formal←c39368)+33) ) ) - diff←v11416);
         if (( (int)n←v11576 >  (int)noName←c37672)) {
            goto lab←L100049;
            };
         lab←L100052: ;
SOURCE(16503, 24)
         {
            word var←c37704;
            var←c37704 = (n←v11576 + diff←v11416);
            {
               word limit280;
               word limit281;
               (* (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                     limit280 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                     BCK(n←v11576, limit280)
                     )) ) = (* (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                     limit281 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                     BCK(var←c37704, limit281)
                     )) );
               };
            };
         if (( (int)n←v11576 >=  (int)noName←c37672)) {
            goto lab←L100049;
            };
         n←v11576 = (n←v11576 + 1);
         goto lab←L100052;
         lab←L100049: ;
         };
SOURCE(16578, 51)
      (void) ClearEntries←P2304((((*  (ptr) (* (( (ptr) formal←c39368)+33) ) ) - diff←v11416) + 1), (*  (ptr) (* (( (ptr) formal←c39368)+33)
          ) ), (word) (( (bPt) formal←c39368)+92));
SOURCE(16663, 36)
      (*  (ptr) (* (( (ptr) formal←c39368)+33) ) ) = ((*  (ptr) (* (( (ptr) formal←c39368)+33) ) ) - diff←v11416);
SOURCE(16701, 14)
      (* (( (ptr) formal←c39368)+6) ) = ((* (( (ptr) formal←c39368)+6) ) - diff←v11416);
      };
SOURCE(16720, 108)
   {
      register word n←v11620;
      register word noName←c37736;
      n←v11620 = (* (( (ptr) formal←c39368)+8) );
      noName←c37736 = (*  (ptr) (* (( (ptr) formal←c39368)+33) ) );
      if (( (int)n←v11620 >  (int)noName←c37736)) {
         goto lab←L100053;
         };
      lab←L100056: ;
SOURCE(16788, 40)
      {
         word limit282;
         word limit283;
         (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                  limit282 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                  BCK(n←v11620, limit282)
                  )))+6) ) = ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39368)+33) ))+3))+(
                  limit283 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
                  BCK(n←v11620, limit283)
                  )))+6) ) - dist←v11360);
         };
      if (( (int)n←v11620 >=  (int)noName←c37736)) {
         goto lab←L100053;
         };
      n←v11620 = (n←v11620 + 1);
      goto lab←L100056;
      lab←L100053: ;
      };
SOURCE(16839, 35)
   {
      word idx284;
      word limit285;
      ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) (* (( (ptr) formal←c39368)+33) ))+12))+(
               idx284 = (*  (ptr) (* (( (ptr) formal←c39368)+33) ) ),
               limit285 = (* (( (ptr) (* (( (ptr) formal←c39368)+33) ))+2) ),
               BCK(idx284, limit285)
               ))) + 8))->f = 0;
      };
SOURCE(16876, 15)
   return(1);
   }

static word FindBelow←P3120(formal←c39400)
   word formal←c39400;
   {
   word ok←v11548;
   formal←c39400 = (formal←c39400 - 16);
   /* FindBelow: */ 
SOURCE(15015, 25)
SOURCE(15054, 162)
   {
      register word n←v11664;
      register word noName←c37768;
      W2 var←c37800;
      n←v11664 = (* (( (ptr) (*  (ptr) formal←c39400 ))+8) );
      noName←c37768 = (*  (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ) );
      if (( (int)n←v11664 >  (int)noName←c37768)) {
         goto lab←L100057;
         };
      lab←L100060: ;
SOURCE(15098, 118)
      {
         word tc286;
         word limit287;
         word limit288;
         if ((int)(* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ))+3))+(
                  limit287 = (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ))+2) ),
                  BCK(n←v11664, limit287)
                  )))+2) )<0) {
            var←c37800.f0 = (* (( (ptr) (*  (ptr) formal←c39400 ))+36) );
            var←c37800.f1 = (* (( (ptr) (*  (ptr) formal←c39400 ))+37) );
            tc286 =  (word) XR←EqualWords((( (W9Pt) (( (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ))+3))+(
                     limit288 = (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ))+2) ),
                     BCK(n←v11664, limit288)
                     )), &var←c37800, 2);
            }
         else {
            tc286 =  (word) 0;
            };
         if (tc286) {
SOURCE(15151, 9)
            (* (( (ptr) (*  (ptr) formal←c39400 ))+50) ) = n←v11664;
SOURCE(15162, 54)
            {
               word limit289;
               word limit290;
               return(( (int)((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ))+3))+(
                        limit289 = (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ))+2) ),
                        BCK(n←v11664, limit289)
                        )))+6) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ))+3))+(
                        limit290 = (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c39400 ))+33) ))+2) ),
                        BCK(n←v11664, limit290)
                        )))+3) )) >  (int)(* (( (ptr) (*  (ptr) formal←c39400 ))+34) )));
               };
            };
         };
      if (( (int)n←v11664 >=  (int)noName←c37768)) {
         goto lab←L100057;
         };
      n←v11664 = (n←v11664 + 1);
      goto lab←L100060;
      lab←L100057: ;
      };
SOURCE(15230, 14)
   return(0);
   }

static void ClearEntries←P2304(from←v10056, to←v10084, formal←c39432)
   word from←v10056;
   word to←v10084;
   word formal←c39432;
   {
   formal←c39432 = (formal←c39432 - 92);
   /* ClearEntries: */ 
SOURCE(16894, 20)
SOURCE(16937, 129)
   {
      register word n←v11708;
      register word noName←c37832;
      n←v11708 = from←v10056;
      noName←c37832 = to←v10084;
      if (( (int)n←v11708 >  (int)noName←c37832)) {
         goto lab←L100061;
         };
      lab←L100064: ;
SOURCE(16969, 97)
      {
         word var←c37864;
         {
            word limit291;
            var←c37864 = (word) (( (W9Pt) (( (bPt) (* (( (ptr) formal←c39432)+33) ))+12))+(
                  limit291 = (* (( (ptr) (* (( (ptr) formal←c39432)+33) ))+2) ),
                  BCK(n←v11708, limit291)
                  ));
            };
         XR←FillWords(&(* (W9Pt) (var←c37864)), 9, 0);
         };
      if (( (int)n←v11708 >=  (int)noName←c37832)) {
         goto lab←L100061;
         };
      n←v11708 = (n←v11708 + 1);
      goto lab←L100064;
      lab←L100061: ;
      };
   }

static void MoveScanLines←P2364(to←v10144, from←v10172, height←v10200, formal←c39496)
   word to←v10144;
   word from←v10172;
   word height←v10200;
   word formal←c39496;
   {
   register ptr gf←c39464 =  (ptr) &globalframe;
   formal←c39496 = (formal←c39496 - 84);
   /* MoveScanLines: */ 
SOURCE(17080, 21)
SOURCE(17128, 90)
   if (((*  (ptr) (*  (ptr) (* (( (ptr) formal←c39496)+4) ) ) ) == (* (( (ptr) gf←c39464)+25) ))) {
SOURCE(17164, 54)
      (void) DisplayNewlineIndicator←P540(0, (* (( (ptr) formal←c39496)+5) ), (* (( (ptr) (* (( (ptr) formal←c39496)+4) ))+7) ), (* (
            ( (ptr) (* (( (ptr) formal←c39496)+4) ))+8) ));
      };
SOURCE(17220, 215)
   if (( (int)height←v10200 >  (int)0)) {
SOURCE(17237, 198)
      {
         word pd292;
         pd292 = (* (( (ptr) (* (( (ptr) gf←c39464)+78)/* var←c37512 */  ))+26) );
         (void) ( *( (fPt) ((*  (ptr) pd292 ))))((* (( (ptr) formal←c39496)+5) ), (* (( (ptr) (* (( (ptr) formal←c39496)+4) ))+7) ), height←v10200, 0, (((* (
               ( (ptr) (* (( (ptr) formal←c39496)+4) ))+8) ) - from←v10172) - height←v10200), 0
            , (((* (( (ptr) (* (( (ptr) formal←c39496)+4) ))+8) ) - to←v10144) - height←v10200), pd292);
         };
      };
   }

static void TryMoveDown←P2424(nchars←v10260, end←v10288, formal←c39528)
   word nchars←v10260;
   word end←v10288;
   word formal←c39528;
   {
   W2 next←v11752;
   word from←v11780;
   word lead←v11808;
   word dist←v11836;
   formal←c39528 = (formal←c39528 - 76);
   /* TryMoveDown: */ 
SOURCE(17440, 19)
SOURCE(17510, 23)
   next←v11752.f0 = 0;
   next←v11752.f1 = 0;
SOURCE(17558, 58)
   {
      word idx294;
      word limit295;
      if ((0 == (word) FullyVisible←P2184((word) ((( (bPt) formal←c39528)+108))))) { goto then0293;};
      if ( ! ((int)(* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39528)+33) ))+3))+(
               idx294 = (* (( (ptr) formal←c39528)+8) ),
               limit295 = (* (( (ptr) (* (( (ptr) formal←c39528)+33) ))+2) ),
               BCK(idx294, limit295)
               )))+2) )<0)) {
         then0293: ;
SOURCE(17610, 6)
         return;
         };
      };
SOURCE(17618, 45)
   {
      word idx296;
      word limit297;
      word idx298;
      word limit299;
      from←v11780 = ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39528)+33) ))+3))+(
               idx296 = (* (( (ptr) formal←c39528)+8) ),
               limit297 = (* (( (ptr) (* (( (ptr) formal←c39528)+33) ))+2) ),
               BCK(idx296, limit297)
               )))+6) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39528)+33) ))+3))+(
               idx298 = (* (( (ptr) formal←c39528)+8) ),
               limit299 = (* (( (ptr) (* (( (ptr) formal←c39528)+33) ))+2) ),
               BCK(idx298, limit299)
               )))+3) ));
      };
SOURCE(17665, 32)
   if (( (int)(* (( (ptr) formal←c39528)+34) ) >  (int)from←v11780)) {
SOURCE(17691, 6)
      return;
      };
SOURCE(17725, 62)
   if ((end←v10288 == 0)) {
      {
         W2 var←c37928;
         var←c37928.f0 = (word) NextNode←P2544((word) ((( (bPt) formal←c39528)+60)));
         var←c37928.f1 = 0;
         next←v11752 = var←c37928;
         };
      }
   else {
      next←v11752.f0 = (* (( (ptr) formal←c39528)+36) );
      next←v11752.f1 = ((* (( (ptr) formal←c39528)+37) ) + nchars←v10260);
      };
SOURCE(17789, 37)
   {
      word idx300;
      word limit301;
      if ( ! XR←EqualWords((( (W9Pt) (( (ptr) (* (( (ptr) formal←c39528)+33) ))+3))+(
               idx300 = (* (( (ptr) formal←c39528)+8) ),
               limit301 = (* (( (ptr) (* (( (ptr) formal←c39528)+33) ))+2) ),
               BCK(idx300, limit301)
               )), &next←v11752, 2)) {
SOURCE(17820, 6)
         return;
         };
      };
SOURCE(17828, 130)
   if ((end←v10288 == 0)) {
SOURCE(17892, 23)
      (void) GetStyleInfo←P2124(next←v11752.f0, (word) (( (bPt) formal←c39528)+116));
SOURCE(17917, 18)
      lead←v11808 = (* (( (ptr) formal←c39528)+41) );
      }
   else {
SOURCE(17944, 14)
      lead←v11808 = (* (( (ptr) formal←c39528)+38) );
      };
SOURCE(17960, 33)
   {
      word idx302;
      word limit303;
      dist←v11836 = (((* (( (ptr) formal←c39528)+43) ) + lead←v11808) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39528)+33)
                ))+3))+(
               idx302 = (* (( (ptr) formal←c39528)+8) ),
               limit303 = (* (( (ptr) (* (( (ptr) formal←c39528)+33) ))+2) ),
               BCK(idx302, limit303)
               )))+6) ));
      };
SOURCE(18022, 42)
   (void) MoveLinesDown←P2484((* (( (ptr) formal←c39528)+8) ), 1, from←v11780, dist←v11836, 1, (word) (( (bPt) formal←c39528)+68)
      );
   }

static void MoveLinesDown←P2484(startLine←v10348, numLines←v10376, from←v10404, dist←v10432, clear←v10460, formal←c39560)
   word startLine←v10348;
   word numLines←v10376;
   word from←v10404;
   word dist←v10432;
   word clear←v10460;
   word formal←c39560;
   {
   word to←v11880;
   word num←v11908;
   word bottom←v11936;
   word visible←v11964 = 0;
   word dirtyScanlinesInFirstTextline←v11992;
   formal←c39560 = (formal←c39560 - 68);
   /* MoveLinesDown: */ 
SOURCE(18067, 21)
SOURCE(18243, 24)
   if (( (int)dist←v10432 <=  (int)0)) {
SOURCE(18261, 6)
      return;
      };
SOURCE(18293, 14)
   to←v11880 = (from←v10404 + dist←v10432);
SOURCE(18309, 41)
   {
      word x304;
      word x305;
      bottom←v11936 = (x304 = ((* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+1) ) + dist←v10432),
         x305 = (* (( (ptr) (* (( (ptr) formal←c39560)+4) ))+8) ),
         MIN((int)(word), x304, x305));
      };
SOURCE(18376, 15)
   num←v11908 = (bottom←v11936 - to←v11880);
SOURCE(18428, 23)
   if (( (int)num←v11908 <=  (int)0)) {
SOURCE(18445, 6)
      return;
      };
SOURCE(18492, 35)
   (void) MoveScanLines←P2364((from←v10404 + dist←v10432), from←v10404, num←v11908, (word) (( (bPt) formal←c39560)+84));
SOURCE(18529, 283)
   {
      word tc306;
      if (( (int)startLine←v10348 >  (int)0)) {
         {
            word var←c37992;
            word var←c0436;
            word var←c38024;
            word var←c0437;
            word var←c0438;
            word var←c0439;
            {
               word limit307;
               var←c37992 = (startLine←v10348 - 1);
               var←c0436 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                        limit307 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                        BCK(var←c37992, limit307)
                        )))+6) );
               };
            {
               word limit308;
               var←c38024 = (startLine←v10348 - 1);
               var←c0437 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                        limit308 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                        BCK(var←c38024, limit308)
                        )))+4) );
               };
            var←c0438 = (var←c0436 + var←c0437);
            {
               word limit309;
               var←c0439 = (var←c0438 - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                        limit309 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                        BCK(startLine←v10348, limit309)
                        )))+6) ));
               };
            {
               word limit310;
               dirtyScanlinesInFirstTextline←v11992 = (var←c0439 - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                        limit310 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                        BCK(startLine←v10348, limit310)
                        )))+3) ));
               };
            };
         tc306 =  (word) ( (int)dirtyScanlinesInFirstTextline←v11992 >  (int)0);
         }
      else {
         tc306 =  (word) 0;
         };
      if (tc306) {
SOURCE(18701, 30)
         {
            word limit311;
            ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) (* (( (ptr) formal←c39560)+33) ))+12))+(
                     limit311 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                     BCK(startLine←v10348, limit311)
                     ))) + 8))->f = 0;
            };
SOURCE(18733, 51)
         (void) ClearLine←P2604(from←v10404, (to←v11880 + dirtyScanlinesInFirstTextline←v11992), (word) (( (bPt) formal←c39560)+52)
            );
         }
      else {
SOURCE(18793, 19)
         (void) ClearLine←P2604(from←v10404, to←v11880, (word) (( (bPt) formal←c39560)+52));
         };
      };
SOURCE(18831, 782)
   {
      register word noName←c38056;
      register word n←v12036;
      noName←c38056 = startLine←v10348;
      n←v12036 = (*  (ptr) (* (( (ptr) formal←c39560)+33) ) );
      if (( (int)noName←c38056 >  (int)n←v12036)) {
         goto lab←L100065;
         };
      lab←L100068: ;
      {
         word newOffset←v12080;
         word var←c38120;
SOURCE(18907, 37)
         if (( (int)(n←v12036 + numLines←v10376) >=  (int)(* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ))) {
SOURCE(18944, 4)
            goto lab←L100067;
            };
SOURCE(18972, 33)
         {
            word limit312;
            newOffset←v12080 = ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                     limit312 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                     BCK(n←v12036, limit312)
                     )))+6) ) + dist←v10432);
            };
SOURCE(19027, 46)
         {
            word limit313;
            if (( (int)(newOffset←v12080 - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                     limit313 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                     BCK(n←v12036, limit313)
                     )))+3) )) >  (int)(* (( (ptr) (* (( (ptr) formal←c39560)+4) ))+8) ))) {
SOURCE(19073, 4)
               goto lab←L100067;
               };
            };
SOURCE(19107, 249)
         {
            word tc314;
            word limit315;
            if ((0 == visible←v11964)) {
               tc314 =  (word) ( (int)(newOffset←v12080 + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                        limit315 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                        BCK(n←v12036, limit315)
                        )))+4) )) <=  (int)(* (( (ptr) (* (( (ptr) formal←c39560)+4) ))+8) ));
               }
            else {
               tc314 =  (word) 0;
               };
            if (tc314) {
SOURCE(19173, 14)
               visible←v11964 = 1;
SOURCE(19189, 27)
               (*  (ptr) (* (( (ptr) formal←c39560)+33) ) ) = (n←v12036 + numLines←v10376);
SOURCE(19218, 22)
               {
                  word limit316;
                  ((P1x0b) (( (bPt) (( (W9Pt) (( (bPt) (* (( (ptr) formal←c39560)+33) ))+12))+(
                           limit316 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                           BCK(n←v12036, limit316)
                           ))) + 8))->f = 0;
                  };
SOURCE(19279, 40)
               {
                  word limit317;
                  (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+1) ) = (newOffset←v12080 + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33)
                            ))+3))+(
                           limit317 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                           BCK(n←v12036, limit317)
                           )))+4) ));
                  };
SOURCE(19321, 35)
               (void) ClearLine←P2604((* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+1) ), (* (( (ptr) (* (( (ptr) formal←c39560)+4) ))+8)
                   ), (word) (( (bPt) formal←c39560)+52));
               };
            };
SOURCE(19359, 28)
         {
            word var←c38088;
            var←c38088 = (n←v12036 + numLines←v10376);
            {
               word limit318;
               word limit319;
               (* (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                     limit318 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                     BCK(var←c38088, limit318)
                     )) ) = (* (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                     limit319 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                     BCK(n←v12036, limit319)
                     )) );
               };
            };
SOURCE(19427, 37)
         {
            word limit320;
            var←c38120 = (n←v12036 + numLines←v10376);
            (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                     limit320 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                     BCK(var←c38120, limit320)
                     )))+6) ) = newOffset←v12080;
            };
SOURCE(19489, 124)
         if ((0 == visible←v11964)) {
            {
               word var←c38152;
SOURCE(19511, 27)
               (*  (ptr) (* (( (ptr) formal←c39560)+33) ) ) = (n←v12036 + numLines←v10376);
SOURCE(19540, 40)
               {
                  word limit321;
                  (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+1) ) = (newOffset←v12080 + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33)
                            ))+3))+(
                           limit321 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                           BCK(n←v12036, limit321)
                           )))+4) ));
                  };
SOURCE(19582, 31)
               {
                  word limit322;
                  var←c38152 = (n←v12036 + numLines←v10376);
                  ((P1x0b) (( (bPt) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39560)+33) ))+3))+(
                           limit322 = (* (( (ptr) (* (( (ptr) formal←c39560)+33) ))+2) ),
                           BCK(var←c38152, limit322)
                           ))) + 8))->f = 0;
                  };
               };
            };
         };
      lab←L100067: ;
      if (( (int)noName←c38056 >=  (int)n←v12036)) {
         goto lab←L100065;
         };
      n←v12036 = (n←v12036 - 1);
      goto lab←L100068;
      lab←L100065: ;
      };
   }

static word NextNode←P2544(formal←c39624)
   word formal←c39624;
   {
   register ptr gf←c39592 =  (ptr) &globalframe;
   word var←c10520;
   formal←c39624 = (formal←c39624 - 60);
   /* NextNode: */ 
SOURCE(19806, 24)
SOURCE(19848, 31)
   if (((* (( (ptr) formal←c39624)+36) ) == (* (( (ptr) formal←c39624)+54) ))) {
SOURCE(19866, 13)
      return((* (( (ptr) formal←c39624)+55) ));
      };
SOURCE(19898, 11)
   (* (( (ptr) formal←c39624)+54) ) = (* (( (ptr) formal←c39624)+36) );
SOURCE(19911, 121)
   if ((0 != (* (( (ptr) formal←c39624)+53) ))) {
SOURCE(19933, 66)
      {
         W2 var←c38184;
         {
            word pd323;
            pd323 = (* (( (ptr) (* (( (ptr) gf←c39592)+72)/* var←c35720 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd323 ))))((word) &var←c38184, (* (( (ptr) formal←c39624)+36) ), (* (( (ptr) formal←c39624)+52)
                ), (* (( (ptr) formal←c39624)+51) ), pd323);
            };
         (* (( (ptr) formal←c39624)+51) ) = var←c38184.f1;
         (* (( (ptr) formal←c39624)+55) ) = var←c38184.f0;
         };
      }
   else {
SOURCE(19999, 33)
      {
         word pd324;
         pd324 = (* (( (ptr) (* (( (ptr) gf←c39592)+72)/* var←c35720 */  ))+14) );
         (* (( (ptr) formal←c39624)+55) ) = (word) ( *( (fPt) ((*  (ptr) pd324 ))))((* ((( (ptr) formal←c39624)+36)) ), pd324);
         };
      };
SOURCE(20034, 15)
   return((* (( (ptr) formal←c39624)+55) ));
   }

static void ClearLine←P2604(oldBottomY←v10580, newBottomY←v10608, formal←c39688)
   word oldBottomY←v10580;
   word newBottomY←v10608;
   word formal←c39688;
   {
   register ptr gf←c39656 =  (ptr) &globalframe;
   formal←c39688 = (formal←c39688 - 52);
   /* ClearLine: */ 
SOURCE(20052, 17)
SOURCE(20102, 39)
   if (( (int)oldBottomY←v10580 >=  (int)newBottomY←v10608)) {
SOURCE(20135, 6)
      return;
      };
SOURCE(20143, 33)
   {
      word pd325;
      pd325 = (* (( (ptr) (* (( (ptr) gf←c39656)+65)/* var←c34696 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd325 ))))((* (( (ptr) formal←c39688)+5) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c39656)+65)
            /* var←c34696 */  ))+55) ) ), pd325);
      };
SOURCE(20178, 84)
   {
      word pd326;
      pd326 = (* (( (ptr) (* (( (ptr) gf←c39656)+65)/* var←c34696 */  ))+66) );
      (void) ( *( (fPt) ((*  (ptr) pd326 ))))((* (( (ptr) formal←c39688)+5) ), 0, ((* (( (ptr) (* (( (ptr) formal←c39688)+4) ))+8)
          ) - newBottomY←v10608), (* (( (ptr) (* (( (ptr) formal←c39688)+4) ))+7) ), (newBottomY←v10608 - oldBottomY←v10580), pd326)
      ;
      };
SOURCE(20264, 33)
   {
      word pd327;
      pd327 = (* (( (ptr) (* (( (ptr) gf←c39656)+65)/* var←c34696 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd327 ))))((* (( (ptr) formal←c39688)+5) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c39656)+65)
            /* var←c34696 */  ))+54) ) ), pd327);
      };
   }

static word WhyGoOn←P2664(lineNumber←v10796, formal←c39720)
   word lineNumber←v10796;
   word formal←c39720;
   {
   word cr←v10840;
   formal←c39720 = (formal←c39720 - 44);
   /* WhyGoOn: */ 
SOURCE(20407, 15)
   {
      W2 var←c38216;
      word var←c38248;
      word var←c0440;
      word var←c38280;
      word var←c0441;
      word var←c38312;
      word var←c0442;
      word var←c0443;
      if (( (int)(* (( (ptr) formal←c39720)+8) ) >=  (int)(* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ))) {
SOURCE(20521, 9)
         cr←v10840 = 0;
         }
      else {
         if (( (int)(* (( (ptr) formal←c39720)+8) ) <=  (int)(* (( (ptr) formal←c39720)+6) ))) {
SOURCE(20549, 12)
            cr←v10840 = 1;
            }
         else {
            {
               word idx329;
               word limit330;
               word idx331;
               word limit332;
               if (( (int)(* (( (ptr) formal←c39720)+8) ) >  (int)(*  (ptr) (* (( (ptr) formal←c39720)+33) ) ))) { goto then0328;};
               if ( ! ((int)(* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39720)+33) ))+3))+(
                        idx329 = (* (( (ptr) formal←c39720)+8) ),
                        limit330 = (* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ),
                        BCK(idx329, limit330)
                        )))+2) )<0)) { goto then0328;};
               var←c38216.f0 = (* (( (ptr) formal←c39720)+36) );
               var←c38216.f1 = (* (( (ptr) formal←c39720)+37) );
               if ( ! XR←EqualWords((( (W9Pt) (( (ptr) (* (( (ptr) formal←c39720)+33) ))+3))+(
                        idx331 = (* (( (ptr) formal←c39720)+8) ),
                        limit332 = (* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ),
                        BCK(idx331, limit332)
                        )), &var←c38216, 2) || (0 == (* (( (ptr) formal←c39720)+44) ))) {
                  then0328: ;
SOURCE(20660, 16)
                  cr←v10840 = 2;
                  }
               else {
                  {
                     word tc333;
                     word idx334;
                     word limit335;
                     word idx340;
                     word limit341;
                     word idx342;
                     word limit343;
                     if ( ( (0 == (* (( (ptr) formal←c39720)+7) )) ? ( (int)(* (( (ptr) formal←c39720)+8) ) >  (int)0) : 0 ) ) {
                        if (((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39720)+33) ))+3))+(
/*1*/      idx334 = (* (( (ptr) formal←c39720)+8) ),
/*1*/      limit335 = (* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ),
/*1*/      BCK(idx334, limit335)
/*1*/      )))+3) ) == 2147483647)) { goto then0336;};
                        {
                           word limit337;
                           var←c38248 = ((* (( (ptr) formal←c39720)+8) ) - 1);
                           var←c0440 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39720)+33) ))+3))+(
/*1*/         limit337 = (* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ),
/*1*/         BCK(var←c38248, limit337)
/*1*/         )))+4) );
                           };
                        if ((var←c0440 == 2147483647)) {
                           then0336: ;
                           tc333 =  (word) 1;
                           }
                        else {
                           {
/*1*/   word limit338;
/*1*/   var←c38280 = ((* (( (ptr) formal←c39720)+8) ) - 1);
/*1*/   var←c0441 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39720)+33) ))+3))+(
/*1*/            limit338 = (* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ),
/*1*/            BCK(var←c38280, limit338)
/*1*/            )))+6) );
/*1*/   };
                           {
/*1*/   word limit339;
/*1*/   var←c38312 = ((* (( (ptr) formal←c39720)+8) ) - 1);
/*1*/   var←c0442 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39720)+33) ))+3))+(
/*1*/            limit339 = (* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ),
/*1*/            BCK(var←c38312, limit339)
/*1*/            )))+4) );
/*1*/   };
                           var←c0443 = (var←c0441 + var←c0442);
                           tc333 =  (word) ( (int)((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39720)+33) ))+3))+(
/*1*/         idx340 = (* (( (ptr) formal←c39720)+8) ),
/*1*/         limit341 = (* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ),
/*1*/         BCK(idx340, limit341)
/*1*/         )))+6) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c39720)+33) ))+3))+(
/*1*/         idx342 = (* (( (ptr) formal←c39720)+8) ),
/*1*/         limit343 = (* (( (ptr) (* (( (ptr) formal←c39720)+33) ))+2) ),
/*1*/         BCK(idx342, limit343)
/*1*/         )))+3) )) <  (int)var←c0443);
                           };
                        }
                     else {
                        tc333 =  (word) 0;
                        };
                     if (tc333) {
SOURCE(20878, 16)
                        cr←v10840 = 3;
                        }
                     else {
SOURCE(20907, 9)
                        cr←v10840 = 0;
                        };
                     };
                  };
               };
            };
         };
SOURCE(20918, 19)
      (* (( (ptr) formal←c39720)+56) ) = cr←v10840;
      };
SOURCE(20407, 15)
   return(cr←v10840);
   }

static void painter←P2820(formal←c39784)
   word formal←c39784;
   {
   register ptr gf←c39752 =  (ptr) &globalframe;
   formal←c39784 = (formal←c39784 - 36);
   /* painter: */ 
SOURCE(22538, 16)
SOURCE(22556, 24)
   (* (( (ptr) formal←c39784)+57) ) = 0;
SOURCE(22582, 63)
   {
      word var←c38344;
      {
         word pd344;
         pd344 = (* (( (ptr) (* (( (ptr) gf←c39752)+80)/* var←c38376 */  ))+20) );
         var←c38344 = (word) ( *( (fPt) ((*  (ptr) pd344 ))))((* ((( (ptr) (* (( (ptr) formal←c39784)+45) ))+9)) ), pd344);
         };
      {
         W2 var←c38408;
         var←c38408.f0 = var←c38344;
         {
            float tf345;
            var←c38408.f1 = (
               tf345 = (float)(int)((* (( (ptr) (* (( (ptr) formal←c39784)+4) ))+8) ) - (* (( (ptr) formal←c39784)+43) )),  *(word*)&tf345
               );
            };
         {
            word pd346;
            pd346 = (* (( (ptr) (* (( (ptr) gf←c39752)+65)/* var←c34696 */  ))+21) );
            (void) ( *( (fPt) ((*  (ptr) pd346 ))))((* (( (ptr) formal←c39784)+5) ), var←c38408, pd346);
            };
         };
      };
   if ((0 != (* (( (ptr) formal←c39784)+7) )) || ((* (( (ptr) formal←c39784)+58) ) != 0)) {
      }
   else {
SOURCE(22716, 38)
      (void) ClearLine←P2604((* (( (ptr) formal←c39784)+34) ), ((* (( (ptr) formal←c39784)+43) ) - (* (( (ptr) (* (( (ptr) formal←c39784)+45)
             ))+11) )), (word) (( (bPt) formal←c39784)+52));
      };
SOURCE(22756, 28)
   (* (( (ptr) formal←c39784)+34) ) = ((* (( (ptr) formal←c39784)+43) ) - (* (( (ptr) (* (( (ptr) formal←c39784)+45) ))+11) ));
SOURCE(22786, 31)
   {
      word pd347;
      pd347 = (* (( (ptr) (* (( (ptr) gf←c39752)+75)/* var←c36616 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd347 ))))((* (( (ptr) formal←c39784)+45) ), (* (( (ptr) formal←c39784)+5) ), pd347);
      };
   }

static void NoName←Q4308(formal←c0364, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0364;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   if ((formal←c200005 == XR←Aborted)) {
SOURCE(10880, 9)
      (*  (ptr) formal←c0364 ) = 2;
      (* (( (ptr) formal←c0364)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0364 ) = 0;
   (* (( (ptr) formal←c0364)+1) ) = 0;
   return;
   }

static void NoName←Q4368(formal←c0369, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0369;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   if ((formal←c200001 == XR←Unwind)) {
SOURCE(2875, 10)
      (void) Cleanup←P1056((word) ((( (bPt) formal←c200000)+32)));
      };
   (*  (ptr) formal←c0369 ) = 0;
   (* (( (ptr) formal←c0369)+1) ) = 0;
   return;
   }

/* file: TEditDisplayImpl, module: TEditDisplayImpl, compiled at: May 26, 1992 5:01:48 pm PDT */ 
extern void XR←install←TEditDisplayImpl() {
   NoName←Q4128();
   }
extern void XR←run←TEditDisplayImpl() { XR←Start(&globalframe); }