/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: November 3, 1992 12:32:16 pm PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: TEditSelectionImpl, module: TEditSelectionImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1571098451,3430257031] TEditSelectionImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W16 f; W11 r;} W27;
typedef W27 *W27Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W8 f; word r;} W9;
typedef struct {W8 f; W5 r;} W13;
typedef W9 *W9Pt;
typedef struct {W8 f; W7 r;} W15;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W8 f; W4 r;} W12;
typedef struct {W8 f; W6 r;} W14;
#define SOURCE(p, l) /* source p, l */
#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) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q7140();
static void TEditSelectionImpl←P0();
static void UnlockDocAndPSel←P60();
static void LockBothSelections←P120();
static void UnlockBothSelections←P180();
static void LockSel←P240();
static word NoName←Q7200();
static void UnlockSel←P300();
static word NoName←Q7260();
static word Create←P360();
static word Alloc←P420();
static word NoName←Q7320();
static void Free←P480();
static void Copy←P540();
static word NoName←Q7380();
static void MakePointSelection←P600();
static void ChangeSelections←P660();
static word NoName←Q7440();
static void PushOrExchangeSelections←P720();
static void DoPush←P3336();
static void MakePrimary←P780();
static void DoMakePrimary←P3396();
static void MakeSecondary←P840();
static void DoMakeSecondary←P3456();
static void CancelPrimary←P900();
static void CancelSecondary←P960();
static void CancelFeedback←P1020();
static void FakeSecondary←P1080();
static void inner←P3516();
static void Deselect←P1140();
static void inner←P3576();
static void MakeSelection←P1200();
static void inner←P3636();
static void ShowSel←P1260();
static void inner←P3792();
static void inner←P3852();
static word NoName←Q7500();
static void MarkSelection←P1320();
static void EffectSelect←P4056();
static void EffectSelAll←P4260();
static void ExtendSelection←P1380();
static void TooHard←P4368();
static void BumpLoc←P4476();
static void DecLoc←P4632();
static void ComputeSpanLines←P1440();
static void ComputePosLine←P1500();
static void ComputePosPoint←P1560();
static word IsPosPastLine←P4884();
static void FindPos←P4944();
static void FixupSelection←P1620();
static void FixupCaret←P1680();
static void PutCaretOnNextLine←P5256();
static void KillSelection←P1740();
static void ModifyPSel←P1800();
static void inner←P5364();
static word NoName←Q7560();
static void SelectEverything←P1860();
static void DoSelEverything←P5472();
static void PendingDeleteSelection←P1920();
static void DoPDel←P5532();
static void NotPendingDeleteSelection←P1980();
static void DoNotPDel←P5592();
static void CaretBeforeSelection←P2040();
static void DoCaretBeforeSelection←P5652();
static void CaretAfterSelection←P2100();
static void DoCaretAfterSelection←P5712();
static void WithLockedSelection←P2160();
static word NoName←Q7620();
static word SelectionRoot←P2220();
static void InputModify←P2280();
static void inner←P5916();
static void CallWithSelAndDocAndTddLocks←P2340();
static word NoName←Q7680();
static void Cleanup←P6072();
static void ShowPosition←P2400();
static word NoName←Q7740();
static word NoName←Q7800();
static void Position←P2460();
static word FmtRange←P2520();
static word CurrentPositionMessage←P2580();
static void ShowGivenPosition←P2640();
static void DoPosition←P6228();
static void ShowGivenPositionRange←P2700();
static void DoPosition←P6288();
static void GoToEndOfNode←P2760();
static void DoIt←P6396();
static word TargetFromSel←P2820();
static void FindFeedback←P2880();
static void Find←P2940();
static void LockedFind←P6648();
static void FindRope←P3000();
static word DoFind←P3060();
static void LockedDoFind←P6708();
static void LocationsFromSelection←P3120();
static word FindTarget←P3180();
static void NoName←Q7860();
static void NoName←Q7920();
static void NoName←Q7980();
static void NoName←Q8040();
static void NoName←Q8100();
static void NoName←Q8160();
static void NoName←Q8220();
static void NoName←Q8280();
static void NoName←Q8340();
static void NoName←Q8400();
static void NoName←Q8460();
static word NoName←Q8520();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\135\245\017\123\300\314\165\221\207\100\200\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\014\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\135\245\017\123\300\314\165\221\207\101\064\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\343\357\262\137\300\144\166\356\317\100\274\000\000"};
static struct {unsigned f; char r[4];} string5 = {196611, "\004H\007"};
static struct {unsigned f; char r[16];} string6 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string7 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\343\357\262\137\300\144\166\356\317\100\164\000\000"};
static struct {unsigned f; char r[16];} string9 = {851981, "\006\005\000\001\004\001\054\001\070\001\100\114\001\000\000"};
static struct {unsigned f; char r[4];} string10 = {131076, "\216\251\000"};
static struct {unsigned f; char r[12];} string11 = {524300, "Deselect\000\000\000"};
static struct {unsigned f; char r[16];} string12 = {786448, "TakeDownPSel\000\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "FakeSecondary\000\000"};
static struct {unsigned f; char r[16];} string14 = {786448, "TakeDownSSel\000\000\000"};
static struct {unsigned f; char r[16];} string15 = {786448, "TakeDownFSel\000\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "MakeSelection\000\000"};
static struct {unsigned f; char r[12];} string17 = {524300, "ShowPSel\000\000\000"};
static struct {unsigned f; char r[12];} string18 = {524300, "ShowFSel\000\000\000"};
static struct {unsigned f; char r[12];} string19 = {524300, "ShowSSel\000\000\000"};
static struct {unsigned f; char r[8];} string20 = {458760, "ShowSel"};
static struct {unsigned f; char r[24];} string21 = {1310744, "ChangeBothSelections\000\000\000"};
static struct {unsigned f; char r[16];} string22 = {983056, "CallWithSelLock"};
static struct {unsigned f; char r[20];} string23 = {1048596, "SelectionHistory\000\000\000"};
static struct {unsigned f; char r[12];} string24 = {720908, "InputModify"};
static struct {unsigned f; char r[32];} string25 = {1835040, "CallWithSelAndDocAndTddLocks\000\000\000"};
static struct {unsigned f; char r[4];} string26 = {131076, "..\000"};
static struct {unsigned f; char r[56];} string27 = {3407928, "Select character count or count..count for position.\000\000\000"};
static struct {unsigned f; char r[28];} string28 = {1703964, " (excluding comment nodes)\000"};
static struct {unsigned f; char r[28];} string29 = {1703964, " (including comment nodes)\000"};
static struct {unsigned f; char r[28];} string30 = {1638428, "Select target for search.\000\000"};
static struct {unsigned f; char r[4];} string31 = {196612, "..."};
static struct {unsigned f; char r[12];} string32 = {720908, " not found."};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\135\245\017\123\300\314\165\221\207\100\164\000\000"};
static struct {unsigned f; char r[64];} string34 = {3932220, "\006\022\040\004\007\100\104\001\100\110\001\100\114\001\100\120\001\100\124\001\100\130\001\100\134\001\100\140\001\100\144\001\100\150\001\100\154\001\100\160\001\100\164\001\100\170\001\100\174\001\100\220\001\100\314\010\000\004\026\001\000\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\162\231\152\170\300\133\216\116\202\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\255\053\300\023\300\142\135\315\105\100\150\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\004\173\141\246\300\255\256\170\002\100\150\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string39 = {851984, "\257\300\170\064\225\306\300\207\372\245\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\263\272\165\301\300\364\117\256\374\100\150\000\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "\257\300\074\270\063\045\300\023\342\016\224\100\150\000\000"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\013\141\323\354\300\341\005\243\127\100\150\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\241\200\031\316\300\154\273\372\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\146\107\314\260\300\352\117\305\000\100\150\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\351\360\047\051\300\272\273\201\332\100\150\000\000"};
static struct {unsigned f; char r[16];} string48 = {851984, "\257\300R-\356\251\300YX]$@h\000\000"};
static struct {unsigned f; char r[16];} string49 = {851984, "\257\300\071\221\120\257\300\230\321\322\204\100\150\000\000"};
static struct {unsigned f; char r[12];} string50 = {1413833833, "tSelection"};
static struct {unsigned f; char r[16];} string51 = {851984, "\257\300\343\112\327\166\300\041\341\335\211\100\150\000\000"};
static struct {unsigned f; char r[16];} string52 = {851984, "\257\300\334\224\340\220\300\346\355\242\107\100\150\000\000"};
static struct {unsigned f; char r[16];} string53 = {851984, "\257\300\174\107\267\236\300\027\127\205\140\100\150\000\000"};
static struct {unsigned f; char r[16];} string54 = {851984, "\257\300\261\010\310\246\300\337\340\027\051\100\150\000\000"};
static struct {unsigned f; char r[16];} string55 = {851984, "\257\300\131\122\261\047\300\056\251\077\203\100\150\000\000"};
static struct {unsigned f; char r[16];} string56 = {851984, "\257\300\042\224\360\026\300\243\254\175\360\100\150\000\000"};
static struct {unsigned f; char r[16];} string57 = {851984, "\257\300\254\115\304\364\300\360\125\113\107\100\150\000\000"};
static struct {unsigned f; char r[16];} string58 = {851984, "\257\300\254\253\350\355\300\233\126\335\104\100\150\000\000"};
static struct {unsigned f; char r[16];} string59 = {851984, "\257\300\354\332\367\333\300\361\203\205\173\100\150\000\000"};
static struct {unsigned f; char r[16];} string60 = {851984, "\257\300\040\353\020\254\300\226\145\363\233\100\150\000\000"};
static struct {unsigned f; char r[16];} string61 = {851984, "\257\300\161\363\331\216\300\223\304\230\020\100\150\000\000"};
static struct {
   word f0[74]; word f74; word f75; word f76; 
   word f77; word f78; word f79; word f80; 
   word f81; word f82; word f83; word f84; 
   word f85; word f86; word f87; word f88; 
   word f89; word f90; word f91; word f92; 
   word f93; word f94; word f95; word f96; 
   word f97; word f98; word f99; word f100; 
   word f101; word f102; word f103; word f104; 
   word f105; word f106; word f107; word f108; 
   word f109; word f110; word f111; word f112; 
   word f113; word f114; word f115; word f116; 
   word f117; word f118; word f119; word f120; 
   word f121; word f122; word f123; word f124; 
   word f125; word f126; word f127; word f128; 
   word f129; word f130; word f131; word f132; 
   word f133; word f134; word f135; word f136; 
   word f137; word f138; word f139; word f140; 
   word f141; word f142; word f143; word f144; 
   word f145; word f146; word f147; word f148; 
   word f149; word f150; word f151; word f152; 
   word f153; word f154; word f155; word f156; 
   word f157; word f158; word f159; word f160; 
   word f161; word f162; word f163; word f164; 
   word f165; word f166; word f167; word f168; 
   word f169; word f170; word f171; word f172; 
   word f173; word f174; word f175; word f176; 
   word f177; word f178; word f179; word f180; 
   word f181[26]; 
   } globalframe = {
   {0}, (word) FindTarget←P3180, 0, (word) LocationsFromSelection←P3120, 
   0, (word) DoFind←P3060, 0, (word) FindRope←P3000, 
   0, (word) Find←P2940, 0, (word) FindFeedback←P2880, 
   0, (word) TargetFromSel←P2820, 0, (word) GoToEndOfNode←P2760, 
   0, (word) ShowGivenPositionRange←P2700, 0, (word) ShowGivenPosition←P2640, 
   0, (word) CurrentPositionMessage←P2580, 0, (word) FmtRange←P2520, 
   0, (word) Position←P2460, 0, (word) ShowPosition←P2400, 
   0, (word) CallWithSelAndDocAndTddLocks←P2340, 0, (word) InputModify←P2280, 
   0, (word) SelectionRoot←P2220, 0, (word) WithLockedSelection←P2160, 
   0, (word) CaretAfterSelection←P2100, 0, (word) CaretBeforeSelection←P2040, 
   0, (word) NotPendingDeleteSelection←P1980, 0, (word) PendingDeleteSelection←P1920, 
   0, (word) SelectEverything←P1860, 0, (word) ModifyPSel←P1800, 
   0, (word) KillSelection←P1740, 0, (word) FixupCaret←P1680, 
   0, (word) FixupSelection←P1620, 0, (word) ComputePosPoint←P1560, 
   0, (word) ComputePosLine←P1500, 0, (word) ComputeSpanLines←P1440, 
   0, (word) ExtendSelection←P1380, 0, (word) MarkSelection←P1320, 
   0, (word) ShowSel←P1260, 0, (word) MakeSelection←P1200, 
   0, (word) Deselect←P1140, 0, (word) FakeSecondary←P1080, 
   0, (word) CancelFeedback←P1020, 0, (word) CancelSecondary←P960, 
   0, (word) CancelPrimary←P900, 0, (word) MakeSecondary←P840, 
   0, (word) MakePrimary←P780, 0, (word) PushOrExchangeSelections←P720, 
   0, (word) ChangeSelections←P660, 0, (word) MakePointSelection←P600, 
   0, (word) Copy←P540, 0, (word) Free←P480, 
   0, (word) Alloc←P420, 0, (word) Create←P360, 
   0, (word) UnlockSel←P300, 0, (word) LockSel←P240, 
   0, (word) UnlockBothSelections←P180, 0, (word) LockBothSelections←P120, 
   0, (word) UnlockDocAndPSel←P60, 0, (word) TEditSelectionImpl←P0, 
   {0}
   };

static void NoName←Q7140()
   {
   register ptr gf←c0583 =  (ptr) &globalframe;
   word var←c47804;
   (* (( (ptr) gf←c0583)+37) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0583)+39) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0583)+41) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0583)+47) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0583)+48) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9);
   (* (( (ptr) gf←c0583)+50) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string7);
   (*  (ptr) (( (bPt) gf←c0583)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c0583)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+50) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0583)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0583)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+50) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0583)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+50) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0583)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0583)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+50) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0583)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+50) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0583)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+50) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0583)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0583)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0583)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0583)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+50) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0583)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0583)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0583)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0583)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0583)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0583)+276) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0583)+280) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0583)+284) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0583)+288) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0583)+47) ), (word) &string32);
   (void) XR←DeclareGlobalFrame((word) "TEditSelectionImpl", &globalframe, (word) XR←GetTypeIndex((word) &string33, 0, (word) &string34)
      , (word) (( (bPt) gf←c0583)+720)/* var←c43036 */ );
   var←c47804 = (word) XR←ImportInterface((word) "Carets", (word) XR←GetTypeIndexS((word) (&string35)), 5);
   (* (( (ptr) gf←c0583)+195)/* var←c45980 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 262401);
   (void) XR←ImportProcS(var←c47804, 1048580);
   var←c47804 = (word) XR←ImportInterface((word) "Convert", (word) XR←GetTypeIndexS((word) (&string36)), 73);
   (* (( (ptr) gf←c0583)+198)/* var←c46268 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 67901187);
   (void) XR←ImportProcS(var←c47804, 67634690);
   var←c47804 = (word) XR←ImportInterface((word) "EditSpan", (word) XR←GetTypeIndexS((word) (&string37)), 23);
   (* (( (ptr) gf←c0583)+191)/* var←c44540 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 67637762);
   var←c47804 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string38)), 84);
   (* (( (ptr) gf←c0583)+190)/* var←c44348 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 1326597);
   (void) XR←ImportProcS(var←c47804, 536578);
   var←c47804 = (word) XR←ImportInterface((word) "ImagerBackdoor", (word) XR←GetTypeIndexS((word) (&string39)), 42);
   (* (( (ptr) gf←c0583)+182)/* var←c43356 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 67641602);
   var←c47804 = (word) XR←ImportInterface((word) "InputFocus", (word) XR←GetTypeIndexS((word) (&string40)), 6);
   (* (( (ptr) gf←c0583)+187)/* var←c43932 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 524546);
   (void) XR←ImportProcS(var←c47804, 67108864);
   var←c47804 = (word) XR←ImportInterface((word) "MessageWindow", (word) XR←GetTypeIndexS((word) (&string41)), 7);
   (* (( (ptr) gf←c0583)+199)/* var←c46332 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 0);
   (void) XR←ImportProcS(var←c47804, 512);
   (void) XR←ImportProcS(var←c47804, 524546);
   var←c47804 = (word) XR←ImportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string42)), 22);
   (* (( (ptr) gf←c0583)+184)/* var←c43420 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 526081);
   (void) XR←ImportProcS(var←c47804, 134219776);
   var←c47804 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string43)), 43);
   (* (( (ptr) gf←c0583)+197)/* var←c46204 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 67633666);
   (void) XR←ImportProcS(var←c47804, 68419845);
   (void) XR←ImportProcS(var←c47804, 67898627);
   (void) XR←ImportProcS(var←c47804, 68158980);
   (void) XR←ImportProcS(var←c47804, 67373825);
   var←c47804 = (word) XR←ImportInterface((word) "TEditInput", (word) XR←GetTypeIndexS((word) (&string44)), 44);
   (* (( (ptr) gf←c0583)+204)/* var←c47420 */  ) = var←c47804;
   var←c47804 = (word) XR←ImportInterface((word) "TEditLocks", (word) XR←GetTypeIndexS((word) (&string45)), 7);
   (* (( (ptr) gf←c0583)+183)/* var←c43388 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 263425);
   (void) XR←ImportProcS(var←c47804, 68420613);
   (void) XR←ImportProcS(var←c47804, 262913);
   var←c47804 = (word) XR←ImportInterface((word) "TEditInputOps", (word) XR←GetTypeIndexS((word) (&string46)), 66);
   (* (( (ptr) gf←c0583)+202)/* var←c46812 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 524290);
   var←c47804 = (word) XR←ImportInterface((word) "TEditOps", (word) XR←GetTypeIndexS((word) (&string47)), 12);
   (* (( (ptr) gf←c0583)+196)/* var←c46172 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 263681);
   (void) XR←ImportProcS(var←c47804, 67371265);
   (void) XR←ImportProcS(var←c47804, 67108864);
   var←c47804 = (word) XR←ImportInterface((word) "TEditProfile", (word) XR←GetTypeIndexS((word) (&string48)), 19);
   (* (( (ptr) gf←c0583)+200)/* var←c46620 */  ) = var←c47804;
   var←c47804 = (word) XR←ImportInterface((word) "TEditRefresh", (word) XR←GetTypeIndexS((word) (&string49)), 3);
   (* (( (ptr) gf←c0583)+201)/* var←c46652 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 786947);
   var←c47804 = (word) XR←ImportInterface((word) &string50, (word) XR←GetTypeIndexS((word) (&string51)), 68);
   (* (( (ptr) gf←c0583)+185)/* var←c43804 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 134495233);
   (void) XR←ImportProcS(var←c47804, 279041);
   (void) XR←ImportProcS(var←c47804, 268289);
   (void) XR←ImportProcS(var←c47804, 67376897);
   var←c47804 = (word) XR←ImportInterface((word) "TEditSelectionPrivate", (word) XR←GetTypeIndexS((word) (&string52)), 3);
   (* (( (ptr) gf←c0583)+194)/* var←c45212 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 135266563);
   var←c47804 = (word) XR←ImportInterface((word) "TEditTouchup", (word) XR←GetTypeIndexS((word) (&string53)), 6);
   (* (( (ptr) gf←c0583)+189)/* var←c44188 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 263425);
   (void) XR←ImportProcS(var←c47804, 67633922);
   var←c47804 = (word) XR←ImportInterface((word) "TextEdit", (word) XR←GetTypeIndexS((word) (&string54)), 39);
   (* (( (ptr) gf←c0583)+192)/* var←c44604 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 67373313);
   (void) XR←ImportProcS(var←c47804, 136583945);
   (void) XR←ImportProcS(var←c47804, 67380481);
   (void) XR←ImportProcS(var←c47804, 136585481);
   (void) XR←ImportProcS(var←c47804, 67633154);
   (void) XR←ImportProcS(var←c47804, 67371521);
   var←c47804 = (word) XR←ImportInterface((word) "TextEditExtras", (word) XR←GetTypeIndexS((word) (&string55)), 2);
   (* (( (ptr) gf←c0583)+203)/* var←c47228 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 67895555);
   var←c47804 = (word) XR←ImportInterface((word) "TextNode", (word) XR←GetTypeIndexS((word) (&string56)), 34);
   (* (( (ptr) gf←c0583)+193)/* var←c44668 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 67109632);
   (void) XR←ImportProcS(var←c47804, 67379201);
   (void) XR←ImportProcS(var←c47804, 135270404);
   (void) XR←ImportProcS(var←c47804, 68162307);
   (void) XR←ImportProcS(var←c47804, 67376641);
   (void) XR←ImportProcS(var←c47804, 67377153);
   (void) XR←ImportProcS(var←c47804, 67372289);
   (void) XR←ImportProcS(var←c47804, 135007491);
   (void) XR←ImportProcS(var←c47804, 67372033);
   (void) XR←ImportProcS(var←c47804, 67374081);
   (void) XR←ImportProcS(var←c47804, 67635970);
   (void) XR←ImportProcS(var←c47804, 67373569);
   var←c47804 = (word) XR←ImportInterface((word) "TiogaFind", (word) XR←GetTypeIndexS((word) (&string57)), 5);
   (* (( (ptr) gf←c0583)+205)/* var←c47580 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 204210697);
   var←c47804 = (word) XR←ImportInterface((word) "ViewerLocks", (word) XR←GetTypeIndexS((word) (&string58)), 9);
   (* (( (ptr) gf←c0583)+188)/* var←c44124 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 524290);
   var←c47804 = (word) XR←ImportInterface((word) "ViewerOps", (word) XR←GetTypeIndexS((word) (&string59)), 43);
   (* (( (ptr) gf←c0583)+186)/* var←c43836 */  ) = var←c47804;
   (void) XR←ImportProcS(var←c47804, 10752);
   (void) XR←ImportProcS(var←c47804, 792579);
   (void) XR←ImportProcS(var←c47804, 67639554);
   (void) XR←ImportProcS(var←c47804, 1051652);
   var←c47804 = (word) XR←ExportInterface((word) &string50, (word) XR←GetTypeIndexS((word) (&string51)), 68);
   (* (( (ptr) gf←c0583)+206)/* var←c47836 */  ) = var←c47804;
   (void) XR←ExportVar(var←c47804, 0, (word) (( (bPt) gf←c0583)+68)/* pSel←v4456 */ );
   (void) XR←ExportVar(var←c47804, 1, (word) (( (bPt) gf←c0583)+72)/* sSel←v4484 */ );
   (void) XR←ExportVar(var←c47804, 2, (word) (( (bPt) gf←c0583)+76)/* fSel←v4512 */ );
   (void) XR←ExportVar(var←c47804, 3, (word) (( (bPt) gf←c0583)+80)/* oldSel←v4540 */ );
   (void) XR←ExportVar(var←c47804, 4, (word) (( (bPt) gf←c0583)+84)/* nilSel←v4568 */ );
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+672)/* var←c42844 */ , 67110144);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+664)/* var←c42812 */ , 67110400);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+656)/* var←c42780 */ , 263937);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+648)/* var←c42748 */ , 526338);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+624)/* var←c42652 */ , 2304);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+616)/* var←c42620 */ , 2560);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+608)/* var←c42588 */ , 2816);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+600)/* var←c42556 */ , 3072);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+592)/* var←c42524 */ , 3328);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+584)/* var←c42492 */ , 3584);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+408)/* var←c41788 */ , 790275);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+712)/* var←c43004 */ , 266241);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+688)/* var←c42908 */ , 528642);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+680)/* var←c42876 */ , 266753);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+704)/* var←c42972 */ , 267009);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+696)/* var←c42940 */ , 5120);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+560)/* var←c42396 */ , 1316101);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+576)/* var←c42460 */ , 270081);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+568)/* var←c42428 */ , 270337);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+544)/* var←c42332 */ , 1057028);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+536)/* var←c42300 */ , 1581574);
   (void) XR←ExportVar(var←c47804, 35, (word) (( (bPt) gf←c0583)+292)/* var←c41308 */ );
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+528)/* var←c42268 */ , 269755394);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+520)/* var←c42236 */ , 135275779);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+512)/* var←c42204 */ , 605300228);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+504)/* var←c42172 */ , 1058564);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+496)/* var←c42140 */ , 272385);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+488)/* var←c42108 */ , 10496);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+640)/* var←c42716 */ , 797186);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+416)/* var←c41820 */ , 535298);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+472)/* var←c42044 */ , 11264);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+464)/* var←c42012 */ , 12288);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+456)/* var←c41980 */ , 12544);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+448)/* var←c41948 */ , 12800);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+440)/* var←c41916 */ , 13056);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+424)/* var←c41852 */ , 67386113);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+392)/* var←c41724 */ , 278017);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+328)/* var←c41468 */ , 1588998);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+320)/* var←c41436 */ , 1851399);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+312)/* var←c41404 */ , 68960519);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+400)/* var←c41756 */ , 541442);
   var←c47804 = (word) XR←ExportInterface((word) "TEditSelectionOps", (word) XR←GetTypeIndexS((word) (&string60)), 2);
   (* (( (ptr) gf←c0583)+206)/* var←c47836 */  ) = var←c47804;
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+368)/* var←c41628 */ , 786435);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+360)/* var←c41596 */ , 1573126);
   var←c47804 = (word) XR←ExportInterface((word) "TEditSelectionOpsExtras", (word) XR←GetTypeIndexS((word) (&string61)), 2);
   (* (( (ptr) gf←c0583)+206)/* var←c47836 */  ) = var←c47804;
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+376)/* var←c41660 */ , 67633154);
   (void) XR←ExportProcS(var←c47804, (word) (( (bPt) gf←c0583)+352)/* var←c41564 */ , 262401);
   }

static void TEditSelectionImpl←P0(formal←c0120, formal←c0117)
   word formal←c0120;
   word formal←c0117;
   {
   register ptr gf←c47868 =  (ptr) &globalframe;
   /* TEditSelectionImpl: */ 
SOURCE(1170, 32128)
SOURCE(2064, 82)
   (* (( (ptr) gf←c47868)+8) ) = XR←NewObject(24, (* (( (ptr) gf←c47868)+37) ));
   (* (( (ptr) gf←c47868)+9) ) = XR←NewObject(24, (* (( (ptr) gf←c47868)+37) ));
   (* (( (ptr) gf←c47868)+10) ) = XR←NewObject(24, (* (( (ptr) gf←c47868)+37) ));
SOURCE(3199, 33)
   (* (( (ptr) gf←c47868)+17)/* pSel←v4456 */  ) = (word) Create←P360();
SOURCE(3234, 33)
   (* (( (ptr) gf←c47868)+18)/* sSel←v4484 */  ) = (word) Create←P360();
SOURCE(3269, 33)
   (* (( (ptr) gf←c47868)+19)/* fSel←v4512 */  ) = (word) Create←P360();
SOURCE(3304, 35)
   (* (( (ptr) gf←c47868)+20)/* oldSel←v4540 */  ) = (word) Create←P360();
SOURCE(3341, 35)
   (* (( (ptr) gf←c47868)+21)/* nilSel←v4568 */  ) = (word) Create←P360();
SOURCE(7681, 61)
   (* (( (ptr) gf←c47868)+25)/* showPSel←v5128 */  ) = XR←NewObject(8, (* (( (ptr) gf←c47868)+39) ));
SOURCE(7744, 63)
   {
      word var←c43292;
      var←c43292 = XR←NewObject(8, (* (( (ptr) gf←c47868)+39) ));
      (* (( (ptr) var←c43292)+1) ) = 1;
      (* (( (ptr) gf←c47868)+26)/* showSSel←v5156 */  ) = var←c43292;
      };
SOURCE(7809, 62)
   {
      word var←c43324;
      var←c43324 = XR←NewObject(8, (* (( (ptr) gf←c47868)+39) ));
      (* (( (ptr) var←c43324)+1) ) = 2;
      (* (( (ptr) gf←c47868)+27)/* showFSel←v5184 */  ) = var←c43324;
      };
SOURCE(8587, 79)
   {
      word pd62;
      pd62 = (* (( (ptr) (* (( (ptr) gf←c47868)+182)/* var←c43356 */  ))+37) );
      (* (( (ptr) gf←c47868)+28)/* lightGrey←v5240 */  ) = (word) ( *( (fPt) ((*  (ptr) pd62 ))))(520, 1, pd62);
      };
SOURCE(8668, 79)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c47868)+182)/* var←c43356 */  ))+37) );
      (* (( (ptr) gf←c47868)+29)/* darkGrey←v5268 */  ) = (word) ( *( (fPt) ((*  (ptr) pd63 ))))(42405, 1, pd63);
      };
SOURCE(8749, 83)
   {
      word pd64;
      pd64 = (* (( (ptr) (* (( (ptr) gf←c47868)+182)/* var←c43356 */  ))+37) );
      (* (( (ptr) gf←c47868)+30)/* veryDarkGrey←v5296 */  ) = (word) ( *( (fPt) ((*  (ptr) pd64 ))))(60395, 1, pd64);
      };
SOURCE(8834, 76)
   {
      word pd65;
      pd65 = (* (( (ptr) (* (( (ptr) gf←c47868)+182)/* var←c43356 */  ))+37) );
      (* (( (ptr) gf←c47868)+31)/* black←v5324 */  ) = (word) ( *( (fPt) ((*  (ptr) pd65 ))))(65535, 1, pd65);
      };
SOURCE(9021, 27)
   (* (( (ptr) gf←c47868)+32)/* selectionLineWidth←v5408 */  ) = 2;
SOURCE(9050, 26)
   (* (( (ptr) gf←c47868)+33)/* feedbackLineWidth←v5436 */  ) = 4;
SOURCE(9078, 30)
   (* (( (ptr) gf←c47868)+34)/* feedbackLineRaise←v5464 */  ) = 1;
SOURCE(9111, 30)
   (* (( (ptr) gf←c47868)+35)/* selectionDescentLimit←v5492 */  ) = 7;
   }

static void UnlockDocAndPSel←P60(root←v6772)
   word root←v6772;
   {
   register ptr gf←c47900 =  (ptr) &globalframe;
   /* UnlockDocAndPSel: */ 
SOURCE(2170, 92)
SOURCE(2217, 23)
   {
      word pd66;
      pd66 = (* (( (ptr) (* (( (ptr) gf←c47900)+183)/* var←c43388 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd66 ))))(root←v6772, pd66);
      };
SOURCE(2242, 20)
   (void) UnlockSel←P300(0);
   }

static void LockBothSelections←P120(who←v6832)
   word who←v6832;
   {
   /* LockBothSelections: */ 
SOURCE(2266, 96)
SOURCE(2314, 21)
   (void) LockSel←P240(0, who←v6832);
SOURCE(2337, 25)
   (void) LockSel←P240(1, who←v6832);
   }

static void UnlockBothSelections←P180()
   {
   /* UnlockBothSelections: */ 
SOURCE(2366, 79)
SOURCE(2404, 18)
   (void) UnlockSel←P300(0);
SOURCE(2424, 21)
   (void) UnlockSel←P300(1);
   }

static void LockSel←P240(formal←c0766, formal←c0767)
   word formal←c0766;
   word formal←c0767;
   {
   W6 var←c47932;
   /* declaration of selection←v6908 skipped */ 
   /* declaration of who←v6936 skipped */ 
   register ptr gf←c47964 =  (ptr) &globalframe;
   var←c47932.f4/* selection←v6908 */  = formal←c0766;
   var←c47932.f5/* who←v6936 */  = formal←c0767;
   /* LockSel: */ 
SOURCE(2449, 447)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c47964)+16)/* LOCK←v3980 */ ));
SOURCE(2516, 380)
   {
      word var←c0687;
      var←c0687 = (word) &var←c47932;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7200) ), ( ((word)  (fPt) NoName←Q8460) ), var←c0687);
      };
SOURCE(2449, 447)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c47964)+16)/* LOCK←v3980 */ ));
   return;
   }

static word NoName←Q7200(formal←c0588)
   word formal←c0588;
   {
   register ptr gf←c0587 =  (ptr) &globalframe;
SOURCE(2539, 18)
   {
      W2 myProcess←v12432;
      word lock←v12460;
SOURCE(2539, 18)
      (*  (ptr) (word) &myProcess←v12432 ) = 0;
      (* (( (ptr) (word) &myProcess←v12432) + 1) ) = 0;
SOURCE(2559, 34)
      lock←v12460 = (* ((( (ptr) gf←c0587)+8)/* selLock←v4260 */ +(* (( (ptr) formal←c0588)+4) )) );
SOURCE(2603, 43)
SOURCE(2604, 42)
      {
         word pd67;
         pd67 = (* (( (ptr) (* (( (ptr) gf←c0587)+184)/* var←c43420 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd67 ))))((word) (&myProcess←v12432), pd67);
         };
SOURCE(2649, 103)
      if ( ! XR←EqualWords(&myProcess←v12432, lock←v12460, 2)) {
SOURCE(2682, 35)
         lab←L100004: ;
         if (((* (( (ptr) lock←v12460)+4) ) > 0)) {
            }
         else {
            goto lab←L100002;
            };
SOURCE(2704, 13)
         (void) (XR←Wait((word) (( (bPt) gf←c0587)+16)/* LOCK←v3980 */ , (word) (( (bPt) gf←c0587)+44)/* unlocked←v4288 */ ));
         goto lab←L100004;
         lab←L100002: ;
SOURCE(2728, 24)
         (*  (W2Pt) lock←v12460 ) = myProcess←v12432;
         };
SOURCE(2757, 64)
      if (((* (( (ptr) lock←v12460)+4) ) == 0)) {
SOURCE(2778, 25)
         (* (( (ptr) lock←v12460)+3) ) = (* (( (ptr) formal←c0588)+5) );
         }
      else {
SOURCE(2803, 18)
         (* (( (ptr) lock←v12460)+2) ) = (* (( (ptr) formal←c0588)+5) );
         };
SOURCE(2823, 25)
      {
         word idx68;
         (* (( (ptr) lock←v12460)+4) ) = (
            idx68 = (word) ((* (( (ptr) lock←v12460)+4) ) + 1),
            BCK(idx68, 256)
            );
         };
SOURCE(2850, 46)
      {
         word x69;
         word x70;
         (* (( (ptr) lock←v12460)+5) ) = (x69 = (* (( (ptr) lock←v12460)+5) ),
            x70 = (* (( (ptr) lock←v12460)+4) ),
            MAX( (unsigned) , x69, x70));
         };
      };
   return(0);
   }

static void UnlockSel←P300(formal←c0768)
   word formal←c0768;
   {
   W5 var←c47996;
   /* declaration of selection←v6996 skipped */ 
   register ptr gf←c48028 =  (ptr) &globalframe;
   var←c47996.f4/* selection←v6996 */  = formal←c0768;
   /* UnlockSel: */ 
SOURCE(2902, 294)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c48028)+16)/* LOCK←v3980 */ ));
SOURCE(2970, 226)
   {
      word var←c01;
      {
         word var←c0688;
         var←c0688 = (word) &var←c47996;
         var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q7260) ), ( ((word)  (fPt) NoName←Q8400) ), var←c0688);
         };
      if ((var←c01 == 1)) {
         goto lab←L03;
         };
      };
SOURCE(2902, 294)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c48028)+16)/* LOCK←v3980 */ ));
   return;
   lab←L03: ;
   return;
   }

static word NoName←Q7260(formal←c0591)
   word formal←c0591;
   {
   register ptr gf←c0590 =  (ptr) &globalframe;
SOURCE(2993, 34)
   {
      word lock←v12520;
      W2 var←c0130;
      word var←c43452;
SOURCE(2993, 34)
      lock←v12520 = (* ((( (ptr) gf←c0590)+8)/* selLock←v4260 */ +(* (( (ptr) formal←c0591)+4) )) );
SOURCE(3037, 52)
SOURCE(3039, 44)
      {
         word pd71;
         pd71 = (* (( (ptr) (* (( (ptr) gf←c0590)+184)/* var←c43420 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd71 ))))((word) (&var←c0130), pd71);
         };
      if ( ! XR←EqualWords(lock←v12520, &var←c0130, 2)) {
SOURCE(3083, 6)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(3092, 46)
      {
         word idx72;
         var←c43452 = (
            idx72 = (word) ((* (( (ptr) lock←v12520)+4) ) - 1),
            BCK(idx72, 256)
            );
         };
      (* (( (ptr) lock←v12520)+4) ) = var←c43452;
      if ((var←c43452 > 0)) {
SOURCE(3132, 6)
         (void) (XR←MonitorExit((word) (( (bPt) gf←c0590)+16)/* LOCK←v3980 */ ));
         return(1);
         };
SOURCE(3140, 34)
      (* (( (ptr) lock←v12520)+3) ) = 0;
      (* (( (ptr) lock←v12520)+2) ) = 0;
SOURCE(3176, 20)
      (void) (XR←Broadcast((word) (( (bPt) gf←c0590)+44)/* unlocked←v4288 */ ));
      };
   return(0);
   }

static word Create←P360()
   {
   register ptr gf←c48060 =  (ptr) &globalframe;
   word var←c7056;
   /* Create: */ 
SOURCE(3456, 86)
SOURCE(3500, 42)
   {
      word var←c43516;
      var←c43516 = XR←NewObject(108, (* (( (ptr) gf←c48060)+41) ));
      (* (( (ptr) var←c43516)+22) ) = 1;
      return(var←c43516);
      };
   }

static word Alloc←P420()
   {
   W6 var←c48092;
   register ptr gf←c48124 =  (ptr) &globalframe;
   /* declaration of var←c02 skipped */ 
   /* declaration of tSel←v7116 skipped */ 
   /* Alloc: */ 
SOURCE(3546, 261)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c48124)+16)/* LOCK←v3980 */ ));
SOURCE(3546, 261)
   var←c48092.f5/* tSel←v7116 */  = 0;
SOURCE(3601, 206)
   {
      word var←c03;
      {
         word var←c0689;
         var←c0689 = (word) &var←c48092;
         var←c03 = (word) XR←Enable(( ((word)  (fPt) NoName←Q7320) ), ( ((word)  (fPt) NoName←Q8340) ), var←c0689);
         };
      if ((var←c03 == 1)) {
         goto lab←L05;
         };
      };
SOURCE(3546, 261)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c48124)+16)/* LOCK←v3980 */ ));
   return(var←c48092.f5/* tSel←v7116 */ );
   lab←L05: ;
   return(var←c48092.f4/* var←c02 */ );
   }

static word NoName←Q7320(formal←c0595)
   word formal←c0595;
   {
   register ptr gf←c0594 =  (ptr) &globalframe;
SOURCE(3624, 12)
   (* (( (ptr) formal←c0595)+5) ) = (* (( (ptr) gf←c0594)+24)/* tSel3←v4652 */  );
SOURCE(3638, 39)
   if (((* (( (ptr) formal←c0595)+5) ) != 0)) {
SOURCE(3658, 11)
      (* (( (ptr) gf←c0594)+24)/* tSel3←v4652 */  ) = 0;
SOURCE(3671, 6)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0594)+16)/* LOCK←v3980 */ ));
      (* (( (ptr) formal←c0595)+4) ) = (* (( (ptr) formal←c0595)+5) );
      return(1);
      };
SOURCE(3680, 12)
   (* (( (ptr) formal←c0595)+5) ) = (* (( (ptr) gf←c0594)+23)/* tSel2←v4624 */  );
SOURCE(3694, 39)
   if (((* (( (ptr) formal←c0595)+5) ) != 0)) {
SOURCE(3714, 11)
      (* (( (ptr) gf←c0594)+23)/* tSel2←v4624 */  ) = 0;
SOURCE(3727, 6)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0594)+16)/* LOCK←v3980 */ ));
      (* (( (ptr) formal←c0595)+4) ) = (* (( (ptr) formal←c0595)+5) );
      return(1);
      };
SOURCE(3736, 12)
   (* (( (ptr) formal←c0595)+5) ) = (* (( (ptr) gf←c0594)+22)/* tSel1←v4596 */  );
SOURCE(3750, 39)
   if (((* (( (ptr) formal←c0595)+5) ) != 0)) {
SOURCE(3770, 11)
      (* (( (ptr) gf←c0594)+22)/* tSel1←v4596 */  ) = 0;
SOURCE(3783, 6)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0594)+16)/* LOCK←v3980 */ ));
      (* (( (ptr) formal←c0595)+4) ) = (* (( (ptr) formal←c0595)+5) );
      return(1);
      };
SOURCE(3792, 15)
   (* (( (ptr) formal←c0595)+5) ) = (word) Create←P360();
   return(0);
   }

static void Free←P480(tSel←v7176)
   word tSel←v7176;
   {
   register ptr gf←c48156 =  (ptr) &globalframe;
   /* Free: */ 
SOURCE(3813, 208)
SOURCE(3853, 53)
   if ((((* (( (ptr) gf←c48156)+24)/* tSel3←v4652 */  ) == tSel←v7176) || ((* (( (ptr) gf←c48156)+23)/* tSel2←v4624 */  ) == tSel←v7176)) || ((* (
      ( (ptr) gf←c48156)+22)/* tSel1←v4596 */  ) == tSel←v7176)) {
SOURCE(3906, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(3913, 108)
   if (((* (( (ptr) gf←c48156)+24)/* tSel3←v4652 */  ) == 0)) {
SOURCE(3933, 18)
      (* (( (ptr) gf←c48156)+24)/* tSel3←v4652 */  ) = tSel←v7176;
      }
   else {
SOURCE(3951, 70)
      if (((* (( (ptr) gf←c48156)+23)/* tSel2←v4624 */  ) == 0)) {
SOURCE(3971, 18)
         (* (( (ptr) gf←c48156)+23)/* tSel2←v4624 */  ) = tSel←v7176;
         }
      else {
SOURCE(3989, 32)
         if (((* (( (ptr) gf←c48156)+22)/* tSel1←v4596 */  ) == 0)) {
SOURCE(4009, 12)
            (* (( (ptr) gf←c48156)+22)/* tSel1←v4596 */  ) = tSel←v7176;
            };
         };
      };
   }

static void Copy←P540(formal←c0769, formal←c0770)
   word formal←c0769;
   word formal←c0770;
   {
   W6 var←c48188;
   /* declaration of source←v7236 skipped */ 
   /* declaration of dest←v7264 skipped */ 
   register ptr gf←c48220 =  (ptr) &globalframe;
   var←c48188.f4/* source←v7236 */  = formal←c0769;
   var←c48188.f5/* dest←v7264 */  = formal←c0770;
   /* Copy: */ 
SOURCE(4027, 92)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c48220)+16)/* LOCK←v3980 */ ));
SOURCE(4081, 38)
   {
      word var←c0690;
      var←c0690 = (word) &var←c48188;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7380) ), ( ((word)  (fPt) NoName←Q8280) ), var←c0690);
      };
SOURCE(4027, 92)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c48220)+16)/* LOCK←v3980 */ ));
   return;
   }

static word NoName←Q7380(formal←c0598)
   word formal←c0598;
   {
SOURCE(4104, 15)
   (*  (W27Pt) (* (( (ptr) formal←c0598)+5) ) ) = (*  (W27Pt) (* (( (ptr) formal←c0598)+4) ) );
   return(0);
   }

static void MakePointSelection←P600(selection←v7324, pos←v7352)
   word selection←v7324;
   W2 pos←v7352;
   {
   word tSel←v12564;
   /* MakePointSelection: */ 
SOURCE(4124, 310)
SOURCE(4198, 25)
   tSel←v12564 = (word) Alloc←P420();
SOURCE(4225, 35)
   (void) Copy←P540(selection←v7324, tSel←v12564);
SOURCE(4262, 35)
   (*  (W2Pt) (( (ptr) tSel←v12564)+2) ) = pos←v7352;
   (*  (W2Pt) (( (ptr) tSel←v12564)+11) ) = pos←v7352;
SOURCE(4299, 24)
   (* (( (ptr) tSel←v12564)+22) ) = 0;
SOURCE(4325, 26)
   (* (( (ptr) tSel←v12564)+26) ) = 0;
SOURCE(4353, 23)
   (* (( (ptr) tSel←v12564)+24) ) = 0;
SOURCE(4378, 44)
   (void) MakeSelection←P1200(tSel←v12564, 0, 0, 0, 1);
SOURCE(4424, 10)
   (void) Free←P480(tSel←v12564);
   }

static void ChangeSelections←P660(formal←c0771, formal←c0772)
   word formal←c0771;
   word formal←c0772;
   {
   W7 var←c48252;
   /* declaration of proc←v7412 skipped */ 
   /* declaration of sel←v7440 skipped */ 
   register ptr gf←c48284 =  (ptr) &globalframe;
   /* declaration of tSel←v12608 skipped */ 
   var←c48252.f4/* proc←v7412 */  = formal←c0771;
   var←c48252.f5/* sel←v7440 */  = formal←c0772;
   /* ChangeSelections: */ 
SOURCE(4440, 271)
SOURCE(4514, 25)
   var←c48252.f6/* tSel←v12608 */  = (word) Alloc←P420();
SOURCE(4541, 42)
   (void) LockBothSelections←P120((* ((( (ptr) gf←c48284)+61)) ));
SOURCE(4587, 85)
   {
      word var←c0691;
      var←c0691 = (word) &var←c48252;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7440) ), ( ((word)  (fPt) NoName←Q8220) ), var←c0691);
      };
SOURCE(4675, 22)
   (void) UnlockBothSelections←P180();
SOURCE(4699, 12)
   (void) Free←P480(var←c48252.f6/* tSel←v12608 */ );
   }

static word NoName←Q7440(formal←c0600)
   word formal←c0600;
   {
SOURCE(4629, 29)
   (void) Copy←P540((* (( (ptr) formal←c0600)+5) ), (* (( (ptr) formal←c0600)+6) ));
SOURCE(4660, 12)
   {
      word pd73;
      pd73 = (* (( (ptr) formal←c0600)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd73 ))))((* ((( (ptr) formal←c0600)+6)) ), pd73);
      };
   return(0);
   }

static void PushOrExchangeSelections←P720()
   {
   W6 var←c48316;
   register ptr gf←c48348 =  (ptr) &globalframe;
   /* declaration of var←c43580 skipped */ 
   /* PushOrExchangeSelections: */ 
SOURCE(4715, 240)
   {
      word tmpAddr74;
      tmpAddr74 = (word) (( (ptr) &var←c48316)+4)/* var←c43580 */ ;
      (*  (ptr) tmpAddr74 ) = ( ((word)  (fPt) DoPush←P3336) );
      (* (( (ptr) tmpAddr74) + 1) ) = 1;
      };
SOURCE(4923, 32)
   (void) ChangeSelections←P660((word) (( (bPt) &var←c48316)+16)/* var←c43580 */ , (* (( (ptr) gf←c48348)+17)/* pSel←v4456 */  ))
   ;
   }

static void DoPush←P3336(tSel←v12728, formal←c48412)
   word tSel←v12728;
   word formal←c48412;
   {
   register ptr gf←c48380 =  (ptr) &globalframe;
   formal←c48412 = (formal←c48412 - 16);
   /* DoPush: */ 
SOURCE(4757, 163)
SOURCE(4792, 61)
   (void) MakeSelection←P1200( ( ((*  (ptr) (* (( (ptr) gf←c48380)+18)/* sSel←v4484 */  ) ) == 0) ? 0 : (* (( (ptr) gf←c48380)+18)
      /* sSel←v4484 */  ) ) , 0, 0, 0, 1);
SOURCE(4855, 65)
   (void) MakeSelection←P1200( ( ((*  (ptr) tSel←v12728 ) == 0) ? 0 : tSel←v12728 ) , 1, 0, 0, 1);
   }

static void MakePrimary←P780()
   {
   W6 var←c48444;
   register ptr gf←c48476 =  (ptr) &globalframe;
   /* declaration of var←c43612 skipped */ 
   /* MakePrimary: */ 
SOURCE(4959, 164)
   {
      word tmpAddr75;
      tmpAddr75 = (word) (( (ptr) &var←c48444)+4)/* var←c43612 */ ;
      (*  (ptr) tmpAddr75 ) = ( ((word)  (fPt) DoMakePrimary←P3396) );
      (* (( (ptr) tmpAddr75) + 1) ) = 1;
      };
SOURCE(5084, 39)
   (void) ChangeSelections←P660((word) (( (bPt) &var←c48444)+16)/* var←c43612 */ , (* (( (ptr) gf←c48476)+18)/* sSel←v4484 */  ))
   ;
   }

static void DoMakePrimary←P3396(tSel←v12832, formal←c48508)
   word tSel←v12832;
   word formal←c48508;
   {
   formal←c48508 = (formal←c48508 - 16);
   /* DoMakePrimary: */ 
SOURCE(4988, 93)
SOURCE(5030, 19)
   (void) Deselect←P1140(1);
SOURCE(5051, 30)
   (void) MakeSelection←P1200(tSel←v12832, 0, 0, 0, 1);
   }

static void MakeSecondary←P840()
   {
   W6 var←c48540;
   register ptr gf←c48572 =  (ptr) &globalframe;
   /* declaration of var←c43644 skipped */ 
   /* MakeSecondary: */ 
SOURCE(5127, 171)
   {
      word tmpAddr76;
      tmpAddr76 = (word) (( (ptr) &var←c48540)+4)/* var←c43644 */ ;
      (*  (ptr) tmpAddr76 ) = ( ((word)  (fPt) DoMakeSecondary←P3456) );
      (* (( (ptr) tmpAddr76) + 1) ) = 1;
      };
SOURCE(5257, 41)
   (void) ChangeSelections←P660((word) (( (bPt) &var←c48540)+16)/* var←c43644 */ , (* (( (ptr) gf←c48572)+17)/* pSel←v4456 */  ))
   ;
   }

static void DoMakeSecondary←P3456(tSel←v12936, formal←c48604)
   word tSel←v12936;
   word formal←c48604;
   {
   formal←c48604 = (formal←c48604 - 16);
   /* DoMakeSecondary: */ 
SOURCE(5158, 94)
SOURCE(5202, 17)
   (void) Deselect←P1140(0);
SOURCE(5221, 31)
   (void) MakeSelection←P1200(tSel←v12936, 1, 0, 0, 1);
   }

static void CancelPrimary←P900()
   {
   /* CancelPrimary: */ 
SOURCE(5302, 58)
SOURCE(5333, 27)
   (void) MakeSelection←P1200(0, 0, 0, 0, 1);
   }

static void CancelSecondary←P960()
   {
   /* CancelSecondary: */ 
SOURCE(5366, 62)
SOURCE(5399, 29)
   (void) MakeSelection←P1200(0, 1, 0, 0, 1);
   }

static void CancelFeedback←P1020()
   {
   /* CancelFeedback: */ 
SOURCE(5434, 60)
SOURCE(5466, 28)
   (void) MakeSelection←P1200(0, 2, 0, 0, 1);
   }

static void FakeSecondary←P1080(formal←c0773)
   word formal←c0773;
   {
   W7 var←c48636;
   /* declaration of sel←v7656 skipped */ 
   register ptr gf←c48668 =  (ptr) &globalframe;
   /* declaration of var←c43676 skipped */ 
   var←c48636.f4/* sel←v7656 */  = formal←c0773;
   /* FakeSecondary: */ 
SOURCE(5500, 199)
   {
      word tmpAddr77;
      tmpAddr77 = (word) (( (ptr) &var←c48636)+5)/* var←c43676 */ ;
      (*  (ptr) tmpAddr77 ) = ( ((word)  (fPt) inner←P3516) );
      (* (( (ptr) tmpAddr77) + 1) ) = 1;
      };
SOURCE(5645, 54)
   (void) WithLockedSelection←P2160(1, (word) (( (bPt) &var←c48636)+20)/* var←c43676 */ , (* (( (ptr) gf←c48668)+53) ));
   }

static void inner←P3516(formal←c48732)
   word formal←c48732;
   {
   register ptr gf←c48700 =  (ptr) &globalframe;
   formal←c48732 = (formal←c48732 - 20);
   /* inner: */ 
SOURCE(5548, 92)
SOURCE(5564, 45)
   if (((*  (ptr) (* (( (ptr) gf←c48700)+18)/* sSel←v4484 */  ) ) != 0)) {
SOURCE(5590, 19)
      (void) Deselect←P1140(1);
      };
SOURCE(5611, 29)
   (void) Copy←P540((* (( (ptr) formal←c48732)+4) ), (* (( (ptr) gf←c48700)+18)/* sSel←v4484 */  ));
   }

static void Deselect←P1140(formal←c0774)
   word formal←c0774;
   {
   W7 var←c48764;
   /* declaration of selection←v7716 skipped */ 
   register ptr gf←c48796 =  (ptr) &globalframe;
   /* declaration of var←c43708 skipped */ 
   var←c48764.f4/* selection←v7716 */  = formal←c0774;
   /* Deselect: */ 
SOURCE(5705, 649)
   {
      word tmpAddr78;
      tmpAddr78 = (word) (( (ptr) &var←c48764)+5)/* var←c43708 */ ;
      (*  (ptr) tmpAddr78 ) = ( ((word)  (fPt) inner←P3576) );
      (* (( (ptr) tmpAddr78) + 1) ) = 1;
      };
SOURCE(6305, 49)
   (void) WithLockedSelection←P2160(var←c48764.f4/* selection←v7716 */ , (word) (( (bPt) &var←c48764)+20)/* var←c43708 */ , (* (
         ( (ptr) gf←c48796)+51) ));
   }

static void inner←P3576(formal←c48860)
   word formal←c48860;
   {
   register ptr gf←c48828 =  (ptr) &globalframe;
   word sel←v13084;
   word viewer←v13112;
   word op←v13140;
   word down←v13168;
   formal←c48860 = (formal←c48860 - 20);
   /* inner: */ 
SOURCE(5766, 532)
SOURCE(5782, 109)
   {
      word var←c43740;
      var←c43740 = (* (( (ptr) formal←c48860)+4) );
      switch (var←c43740) {
         case 0: 
            sel←v13084 = (* (( (ptr) gf←c48828)+17)/* pSel←v4456 */  );
            break;
         case 1: 
            sel←v13084 = (* (( (ptr) gf←c48828)+18)/* sSel←v4484 */  );
            break;
         case 2: 
            sel←v13084 = (* (( (ptr) gf←c48828)+19)/* fSel←v4512 */  );
            break;
         default: 
            sel←v13084 = (
               XR←RaiseUnnamedError(), 0
               );
            break;
         };
      };
SOURCE(5893, 27)
   viewer←v13112 = (*  (ptr) sel←v13084 );
SOURCE(5922, 130)
   {
      word var←c43772;
      var←c43772 = (* (( (ptr) formal←c48860)+4) );
      switch (var←c43772) {
         case 0: 
            op←v13140 = (* (( (ptr) gf←c48828)+52) );
            break;
         case 1: 
            op←v13140 = (* (( (ptr) gf←c48828)+54) );
            break;
         case 2: 
            op←v13140 = (* (( (ptr) gf←c48828)+55) );
            break;
         default: 
            op←v13140 = (
               XR←RaiseUnnamedError(), 0
               );
            break;
         };
      };
SOURCE(6054, 45)
   {
      word pd79;
      pd79 = (* (( (ptr) (* (( (ptr) gf←c48828)+185)/* var←c43804 */  ))+27) );
      down←v13168 = (word) ( *( (fPt) ((*  (ptr) pd79 ))))((* ((( (ptr) formal←c48860)+4)) ), pd79);
      };
SOURCE(6101, 31)
   (void) Copy←P540((* (( (ptr) gf←c48828)+21)/* nilSel←v4568 */  ), sel←v13084);
SOURCE(6134, 164)
   if ( ( (viewer←v13112 != 0) ? (0 == down←v13168) : 0 ) ) {
SOURCE(6168, 48)
      {
         word pd80;
         pd80 = (* (( (ptr) (* (( (ptr) gf←c48828)+186)/* var←c43836 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd80 ))))(viewer←v13112, 1, 0, op←v13140, pd80);
         };
SOURCE(6218, 80)
      {
         word pd81;
         pd81 = (* (( (ptr) (* (( (ptr) gf←c48828)+185)/* var←c43804 */  ))+27) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd81 ))))((* ((( (ptr) formal←c48860)+4)) ), pd81))) {
SOURCE(6263, 35)
            {
               word pd82;
               pd82 = (* (( (ptr) (* (( (ptr) gf←c48828)+185)/* var←c43804 */  ))+28) );
               (void) ( *( (fPt) ((*  (ptr) pd82 ))))((* ((( (ptr) formal←c48860)+4)) ), pd82);
               };
            };
         };
      };
   }

static void MakeSelection←P1200(formal←c0775, formal←c0776, formal←c0777, formal←c0778, formal←c0779)
   word formal←c0775;
   word formal←c0776;
   word formal←c0777;
   word formal←c0778;
   word formal←c0779;
   {
   W11 var←c48892;
   /* declaration of new←v7776 skipped */ 
   /* declaration of selection←v7804 skipped */ 
   /* declaration of startValid←v7832 skipped */ 
   /* declaration of endValid←v7860 skipped */ 
   /* declaration of forkPaint←v7888 skipped */ 
   register ptr gf←c48924 =  (ptr) &globalframe;
   /* declaration of var←c43868 skipped */ 
   (* (( (ptr) &var←c48892)+4)/* new←v7776 */  ) = formal←c0775;
   (* (( (ptr) &var←c48892)+5)/* selection←v7804 */  ) = formal←c0776;
   (* (( (ptr) &var←c48892)+6)/* startValid←v7832 */  ) = formal←c0777;
   (* (( (ptr) &var←c48892)+7)/* endValid←v7860 */  ) = formal←c0778;
   (* (( (ptr) &var←c48892)+8)/* forkPaint←v7888 */  ) = formal←c0779;
   /* MakeSelection: */ 
SOURCE(6360, 1231)
   {
      word tmpAddr83;
      tmpAddr83 = (word) (( (ptr) &var←c48892)+9)/* var←c43868 */ ;
      (*  (ptr) tmpAddr83 ) = ( ((word)  (fPt) inner←P3636) );
      (* (( (ptr) tmpAddr83) + 1) ) = 1;
      };
SOURCE(7537, 54)
   (void) WithLockedSelection←P2160((* (( (ptr) &var←c48892)+5)/* selection←v7804 */  ), (word) (( (bPt) &var←c48892)+36)/* var←c43868 */ , (* (
         ( (ptr) gf←c48924)+56) ));
   }

static void inner←P3636(formal←c48988)
   word formal←c48988;
   {
   register ptr gf←c48956 =  (ptr) &globalframe;
   word sel←v13272 = 0;
   word op←v13300 = 0;
   formal←c48988 = (formal←c48988 - 36);
   /* inner: */ 
SOURCE(6508, 1021)
SOURCE(6550, 329)
   {
      word var←c43900;
      var←c43900 = (* (( (ptr) formal←c48988)+5) );
      switch (var←c43900) {
         case 0: 
SOURCE(6583, 207)
            {
               word if←v13344;
SOURCE(6585, 45)
               {
                  word pd84;
                  pd84 = (* (( (ptr) (* (( (ptr) gf←c48956)+187)/* var←c43932 */  ))+4) );
                  if←v13344 = (*  (ptr) ( *( (fPt) ((*  (ptr) pd84 ))))(pd84) );
                  };
SOURCE(6632, 10)
               sel←v13272 = (* (( (ptr) gf←c48956)+17)/* pSel←v4456 */  );
SOURCE(6644, 14)
               op←v13300 = (* (( (ptr) gf←c48956)+57) );
SOURCE(6660, 127)
               if (((* (( (ptr) formal←c48988)+4) ) == 0)) {
SOURCE(6677, 44)
                  if ((if←v13344 != 0)) {
SOURCE(6692, 29)
                     {
                        word pd85;
                        pd85 = (* (( (ptr) (* (( (ptr) gf←c48956)+187)/* var←c43932 */  ))+5) );
                        (void) ( *( (fPt) ((*  (ptr) pd85 ))))(0, 0, pd85);
                        };
                     };
                  }
               else {
SOURCE(6729, 58)
                  if ((if←v13344 != (*  (ptr) (* (( (ptr) formal←c48988)+4) ) ))) {
SOURCE(6751, 36)
                     {
                        word pd86;
                        pd86 = (* (( (ptr) (* (( (ptr) gf←c48956)+187)/* var←c43932 */  ))+5) );
                        (void) ( *( (fPt) ((*  (ptr) pd86 ))))((*  (ptr) (* (( (ptr) formal←c48988)+4) ) ), 0, pd86);
                        };
                     };
                  };
               };
            break;
         case 2: 
SOURCE(6807, 10)
            sel←v13272 = (* (( (ptr) gf←c48956)+19)/* fSel←v4512 */  );
SOURCE(6819, 14)
            op←v13300 = (* (( (ptr) gf←c48956)+58) );
            break;
         case 1: 
SOURCE(6853, 10)
            sel←v13272 = (* (( (ptr) gf←c48956)+18)/* sSel←v4484 */  );
SOURCE(6865, 14)
            op←v13300 = (* (( (ptr) gf←c48956)+59) );
            break;
         default: 
SOURCE(6895, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(6902, 62)
   if (((* (( (ptr) formal←c48988)+4) ) == 0) || ((*  (ptr) (* (( (ptr) formal←c48988)+4) ) ) != (*  (ptr) sel←v13272 ))) {
SOURCE(6945, 19)
      (void) Deselect←P1140((* ((( (ptr) formal←c48988)+5)) ));
      };
SOURCE(6966, 563)
   if (((* (( (ptr) formal←c48988)+4) ) != 0)) {
SOURCE(6984, 72)
      if ( ( ((* (( (ptr) formal←c48988)+5) ) != 2) ? ((*  (ptr) (* (( (ptr) gf←c48956)+19)/* fSel←v4512 */  ) ) == (*  (ptr) (* (
         ( (ptr) formal←c48988)+4) ) )) : 0 ) ) {
SOURCE(7038, 18)
         (void) Deselect←P1140(2);
         };
SOURCE(7058, 28)
      (void) Copy←P540((* (( (ptr) formal←c48988)+4) ), sel←v13272);
SOURCE(7088, 35)
      (* (( (ptr) sel←v13272)+10) ) = (* (( (ptr) formal←c48988)+6) );
SOURCE(7125, 31)
      (* (( (ptr) sel←v13272)+19) ) = (* (( (ptr) formal←c48988)+7) );
SOURCE(7158, 55)
      if (((* (( (ptr) sel←v13272)+22) ) == 0)) {
SOURCE(7188, 25)
         (* (( (ptr) sel←v13272)+26) ) = 0;
         };
SOURCE(7215, 314)
      if ((0 != (* (( (ptr) formal←c48988)+8) ))) {
SOURCE(7233, 237)
         {
            word showSel←v13388;
SOURCE(7235, 111)
            {
               word var←c43964;
               var←c43964 = (* (( (ptr) formal←c48988)+5) );
               if ((var←c43964 == 0)) {
                  showSel←v13388 = (* (( (ptr) gf←c48956)+25)/* showPSel←v5128 */  );
                  }
               else {
                  if ((var←c43964 == 1)) {
                     showSel←v13388 = (* (( (ptr) gf←c48956)+26)/* showSSel←v5156 */  );
                     }
                  else {
                     showSel←v13388 = (* (( (ptr) gf←c48956)+27)/* showFSel←v5184 */  );
                     };
                  };
               };
SOURCE(7348, 117)
            if ((0 == (*  (ptr) showSel←v13388 ))) {
SOURCE(7382, 29)
               (*  (ptr) showSel←v13388 ) = 1;
SOURCE(7421, 44)
SOURCE(7423, 42)
               {
                  W2 var←c43996;
                  {
                     W2 var←c0175;
                     word var←c0174;
                     var←c0174 = XR←ExtensionAlloc(6);
                     {
                        word tmpAddr87;
                        tmpAddr87 = (word) var←c0174;
                        (*  (ptr) tmpAddr87 ) = ( ((word)  (fPt) NoName←Q8520) );
                        (* (( (ptr) tmpAddr87) + 1) ) = 0;
                        (* (( (ptr) tmpAddr87) + 2) ) = (word) (( (bPt) gf←c48956)+552)/* var←c42364 */ ;
                        (* (( (ptr) tmpAddr87) + 3) ) = 0;
                        (* (( (ptr) tmpAddr87) + 4) ) = showSel←v13388;
                        (* (( (ptr) tmpAddr87) + 5) ) = op←v13300;
                        };
                     (void) XR←Fork((word) &var←c0175, var←c0174);
                     var←c43996 = var←c0175;
                     };
                  {
                     word pd88;
                     pd88 = (* (( (ptr) (* (( (ptr) gf←c48956)+184)/* var←c43420 */  ))+11) );
                     (void) ( *( (fPt) ((*  (ptr) pd88 ))))(var←c43996, pd88);
                     };
                  };
               };
            };
         }
      else {
SOURCE(7477, 52)
         {
            word pd89;
            pd89 = (* (( (ptr) (* (( (ptr) gf←c48956)+186)/* var←c43836 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd89 ))))((*  (ptr) sel←v13272 ), 1, 0, op←v13300, pd89);
            };
         };
      };
   }

static void ShowSel←P1260(formal←c0780, formal←c0781)
   word formal←c0780;
   word formal←c0781;
   {
   W9 var←c49020;
   /* declaration of my←v8056 skipped */ 
   /* declaration of op←v8084 skipped */ 
   register ptr gf←c49052 =  (ptr) &globalframe;
   /* declaration of var←c44028 skipped */ 
   word selection←v13444;
   /* declaration of sel←v13472 skipped */ 
   (* (( (ptr) &var←c49020)+4)/* my←v8056 */  ) = formal←c0780;
   (* (( (ptr) &var←c49020)+5)/* op←v8084 */  ) = formal←c0781;
   /* ShowSel: */ 
SOURCE(7873, 707)
   {
      word tmpAddr90;
      tmpAddr90 = (word) (( (ptr) &var←c49020)+6)/* var←c44028 */ ;
      (*  (ptr) tmpAddr90 ) = ( ((word)  (fPt) inner←P3792) );
      (* (( (ptr) tmpAddr90) + 1) ) = 1;
      };
SOURCE(7922, 51)
   selection←v13444 = (* (( (ptr) (* (( (ptr) &var←c49020)+4)/* my←v8056 */  ))+1) );
SOURCE(7975, 109)
   {
      word var←c44060;
      var←c44060 = selection←v13444;
      switch (var←c44060) {
         case 0: 
            (* (( (ptr) &var←c49020)+8)/* sel←v13472 */  ) = (* (( (ptr) gf←c49052)+17)/* pSel←v4456 */  );
            break;
         case 1: 
            (* (( (ptr) &var←c49020)+8)/* sel←v13472 */  ) = (* (( (ptr) gf←c49052)+18)/* sSel←v4484 */  );
            break;
         case 2: 
            (* (( (ptr) &var←c49020)+8)/* sel←v13472 */  ) = (* (( (ptr) gf←c49052)+19)/* fSel←v4512 */  );
            break;
         default: 
            (* (( (ptr) &var←c49020)+8)/* sel←v13472 */  ) = (
               XR←RaiseUnnamedError(), 0
               );
            break;
         };
      };
SOURCE(8532, 48)
   (void) WithLockedSelection←P2160(selection←v13444, (word) (( (bPt) &var←c49020)+24)/* var←c44028 */ , (* (( (ptr) gf←c49052)+60)
       ));
   }

static void inner←P3792(formal←c49148)
   word formal←c49148;
   {
   W7 var←c49084;
   register ptr gf←c49116 =  (ptr) &globalframe;
   /* declaration of var←c44092 skipped */ 
   /* declaration of viewer←v13560 skipped */ 
   formal←c49148 = (formal←c49148 - 24);
   var←c49084.f0 = formal←c49148;
   /* inner: */ 
SOURCE(8086, 441)
   {
      word tmpAddr91;
      tmpAddr91 = (word) (( (ptr) &var←c49084)+4)/* var←c44092 */ ;
      (*  (ptr) tmpAddr91 ) = ( ((word)  (fPt) inner←P3852) );
      (* (( (ptr) tmpAddr91) + 1) ) = 1;
      };
SOURCE(8102, 27)
   var←c49084.f6/* viewer←v13560 */  = (*  (ptr) (* (( (ptr) formal←c49148)+8) ) );
SOURCE(8436, 64)
   if ((var←c49084.f6/* viewer←v13560 */  != 0)) {
SOURCE(8455, 45)
      {
         word pd92;
         pd92 = (* (( (ptr) (* (( (ptr) gf←c49116)+188)/* var←c44124 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd92 ))))((word) (( (bPt) &var←c49084)+16)/* var←c44092 */ , var←c49084.f6/* viewer←v13560 */ , pd92)
         ;
         };
      };
SOURCE(8502, 25)
   (*  (ptr) (* (( (ptr) formal←c49148)+4) ) ) = 0;
   }

static void inner←P3852(formal←c49244)
   word formal←c49244;
   {
   W6 var←c49180;
   register ptr gf←c49212 =  (ptr) &globalframe;
   formal←c49244 = (formal←c49244 - 16);
   var←c49180.f0 = formal←c49244;
   /* inner: */ 
SOURCE(8131, 288)
SOURCE(8147, 272)
   {
      word var←c44156;
      var←c44156 = (* (( (ptr) (* (( (ptr) formal←c49244)+6) ))+26) );
      if ((var←c44156 == 0)) {
         goto lab←L100013;
         };
      if (((* (( (ptr) gf←c49212)+48) ) == XR←GetReferentType(var←c44156))) {
         {
            /* declaration of tdd←v13648 skipped */ 
            var←c49180.f4/* tdd←v13648 */  = var←c44156;
SOURCE(8218, 64)
            {
               word pd93;
               pd93 = (* (( (ptr) (* (( (ptr) gf←c49212)+189)/* var←c44188 */  ))+7) );
               if ((0 == (word) ( *( (fPt) ((*  (ptr) pd93 ))))(var←c49180.f4/* tdd←v13648 */ , (* (( (ptr) gf←c49212)+60) ), pd93))) {
SOURCE(8276, 6)
                  return;
                  };
               };
SOURCE(8284, 97)
            {
               /* declaration of var←c04 skipped */ 
               var←c49180.f5/* var←c04 */  = (* (( (ptr) (* (( (ptr) gf←c49212)+186)/* var←c43836 */  ))+16) );
               {
                  word var←c0692;
                  var←c0692 = (word) &var←c49180;
                   (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7500) ), ( ((word)  (fPt) NoName←Q8160) ), var←c0692);
                  };
               };
SOURCE(8383, 36)
            {
               word pd94;
               pd94 = (* (( (ptr) (* (( (ptr) gf←c49212)+189)/* var←c44188 */  ))+9) );
               (void) ( *( (fPt) ((*  (ptr) pd94 ))))(var←c49180.f4/* tdd←v13648 */ , pd94);
               };
            };
         }
      else {
         lab←L100013: ;
         };
      };
   }

static word NoName←Q7500(formal←c0622)
   word formal←c0622;
   {
SOURCE(8284, 97)
   {
      word pd95;
      pd95 = (* (( (ptr) formal←c0622)+5) );
      (void) ( *( (fPt) ((*  (ptr) pd95 ))))((* (( (ptr) (*  (ptr) formal←c0622 ))+6) ), 1, 0, (* (( (ptr) (*  (ptr) (*  (ptr) formal←c0622 ) ))+5)
          ), pd95);
      };
   return(0);
   }

static void MarkSelection←P1320(formal←c0782, viewer←v8384, selection←v8412, formal←c0783)
   word formal←c0782;
   word viewer←v8384;
   word selection←v8412;
   word formal←c0783;
   {
   W13 var←c49276;
   /* declaration of dc←v8356 skipped */ 
   /* declaration of id←v8440 skipped */ 
   register ptr gf←c49308 =  (ptr) &globalframe;
   /* declaration of var←c44220 skipped */ 
   /* declaration of var←c44252 skipped */ 
   (* (( (ptr) &var←c49276)+4)/* dc←v8356 */  ) = formal←c0782;
   (* (( (ptr) &var←c49276)+5)/* id←v8440 */  ) = formal←c0783;
   /* MarkSelection: */ 
SOURCE(9144, 2872)
   {
      word tmpAddr96;
      tmpAddr96 = (word) (( (ptr) &var←c49276)+6)/* var←c44220 */ ;
      (*  (ptr) tmpAddr96 ) = ( ((word)  (fPt) EffectSelAll←P4260) );
      (* (( (ptr) tmpAddr96) + 1) ) = 1;
      };
   {
      word tmpAddr97;
      tmpAddr97 = (word) (( (ptr) &var←c49276)+8)/* var←c44252 */ ;
      (*  (ptr) tmpAddr97 ) = ( ((word)  (fPt) EffectSelect←P4056) );
      (* (( (ptr) tmpAddr97) + 1) ) = 1;
      };
SOURCE(9251, 2765)
   {
      word var←c44284;
      var←c44284 = (* (( (ptr) viewer←v8384)+26) );
      if ((var←c44284 == 0)) {
         goto lab←L100016;
         };
      if (((* (( (ptr) gf←c49308)+48) ) == XR←GetReferentType(var←c44284))) {
         {
            word tdd←v13692;
            tdd←v13692 = var←c44284;
SOURCE(9320, 2750)
            {
               /* declaration of lines←v13736 skipped */ 
               /* declaration of vHeight←v13764 skipped */ 
               /* declaration of selBound←v13792 skipped */ 
               word selColor←v13820;
SOURCE(9322, 46)
               (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ) = (* (( (ptr) tdd←v13692)+1) );
SOURCE(9370, 38)
               (* (( (ptr) &var←c49276)+11)/* vHeight←v13764 */  ) = (* (( (ptr) (*  (ptr) selection←v8412 ))+8) );
SOURCE(9410, 84)
               (* (( (ptr) &var←c49276)+12)/* selBound←v13792 */  ) =  (  ( (0 != (* (( (ptr) selection←v8412)+26) )) ? ((* (( (ptr) &var←c49276)+5)
               /* id←v8440 */  ) != 2) : 0 )  ? 0 : 1 ) ;
SOURCE(9496, 145)
               selColor←v13820 =  ( ((* (( (ptr) &var←c49276)+5)/* id←v8440 */  ) == 0) ? 0 :  ( ((* (( (ptr) &var←c49276)+5)/* id←v8440 */  ) == 2) ? 3 :  ( (0 != (* (
                  ( (ptr) selection←v8412)+26) )) ? 1 : 2 )  )  ) ;
SOURCE(10021, 144)
               if ((( (int)(* (( (ptr) selection←v8412)+13) ) <  (int)0) || ( (int)(* (( (ptr) selection←v8412)+4) ) ==  (int)2147483647)) ||  ( ( (int)(* (
                  ( (ptr) selection←v8412)+4) ) ==  (int)(* (( (ptr) selection←v8412)+13) )) ? (0 != (* (( (ptr) selection←v8412)+18) )) : 0 ) ) {
SOURCE(10159, 6)
                  return;
                  };
SOURCE(10182, 194)
               {
                  word var←c44316;
                  var←c44316 = selColor←v13820;
                  switch (var←c44316) {
                     case 0: 
SOURCE(10212, 26)
                        {
                           word pd98;
                           pd98 = (* (( (ptr) (* (( (ptr) gf←c49308)+190)/* var←c44348 */  ))+52) );
                           (void) ( *( (fPt) ((*  (ptr) pd98 ))))((* (( (ptr) &var←c49276)+4)/* dc←v8356 */  ), (* (( (ptr) gf←c49308)+31)/* black←v5324 */  ), pd98)
                           ;
                           };
                        break;
                     case 1: 
SOURCE(10253, 30)
                        {
                           word pd99;
                           pd99 = (* (( (ptr) (* (( (ptr) gf←c49308)+190)/* var←c44348 */  ))+52) );
                           (void) ( *( (fPt) ((*  (ptr) pd99 ))))((* (( (ptr) &var←c49276)+4)/* dc←v8356 */  ), (* (( (ptr) gf←c49308)+28)/* lightGrey←v5240 */  ), pd99)
                           ;
                           };
                        break;
                     case 2: 
SOURCE(10297, 29)
                        {
                           word pd100;
                           pd100 = (* (( (ptr) (* (( (ptr) gf←c49308)+190)/* var←c44348 */  ))+52) );
                           (void) ( *( (fPt) ((*  (ptr) pd100 ))))((* (( (ptr) &var←c49276)+4)/* dc←v8356 */  ), (* (( (ptr) gf←c49308)+29)/* darkGrey←v5268 */  ), pd100)
                           ;
                           };
                        break;
                     case 3: 
SOURCE(10343, 33)
                        {
                           word pd101;
                           pd101 = (* (( (ptr) (* (( (ptr) gf←c49308)+190)/* var←c44348 */  ))+52) );
                           (void) ( *( (fPt) ((*  (ptr) pd101 ))))((* (( (ptr) &var←c49276)+4)/* dc←v8356 */  ), (* (( (ptr) gf←c49308)+30)/* veryDarkGrey←v5296 */  ), pd101)
                           ;
                           };
                        break;
                     default: 
SOURCE(10389, 5)
                        (void) XR←RaiseUnnamedError();
                        break;
                     };
                  };
               if (( (int)(* (( (ptr) selection←v8412)+4) ) ==  (int)(* (( (ptr) selection←v8412)+13) )) ||  ( ( (int)(* (( (ptr) selection←v8412)+4)
                ) <  (int)0) ? ( (int)(* (( (ptr) selection←v8412)+13) ) ==  (int)0) : 0 ) ) {
SOURCE(10515, 399)
                  {
                     word x←v14036;
                     word y←v14064;
SOURCE(10532, 231)
                     if (( (int)(* (( (ptr) selection←v8412)+4) ) <  (int)0) || (0 != (* (( (ptr) selection←v8412)+9) ))) {
SOURCE(10592, 117)
                        {
                           word line←v14108;
SOURCE(10594, 44)
                           {
/*1*/   word x102;
/*1*/   line←v14108 = (x102 = (* (( (ptr) selection←v8412)+4) ),
/*1*/      MAX((int)(word), 0, x102));
/*1*/   };
SOURCE(10640, 23)
                           {
/*1*/   word limit103;
/*1*/   x←v14036 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+3))+(
/*1*/            limit103 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/            BCK(line←v14108, limit103)
/*1*/            )))+7) );
/*1*/   };
SOURCE(10665, 42)
                           {
/*1*/   word limit104;
/*1*/   word limit105;
/*1*/   y←v14064 = ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+3))+(
/*1*/            limit104 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/            BCK(line←v14108, limit104)
/*1*/            )))+6) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+3))+(
/*1*/            limit105 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/            BCK(line←v14108, limit105)
/*1*/            )))+3) ));
/*1*/   };
                           };
                        }
                     else {
SOURCE(10718, 21)
                        x←v14036 = (* (( (ptr) selection←v8412)+5) );
SOURCE(10741, 22)
                        y←v14064 = (* (( (ptr) selection←v8412)+6) );
                        };
SOURCE(10766, 30)
                     if ((0 != (* (( (ptr) selection←v8412)+18) ))) {
SOURCE(10796, 5)
                        (void) XR←RaiseUnnamedError();
                        };
SOURCE(10843, 71)
                     (void) EffectSelect←P4056(x←v14036, y←v14064, (((* (( (ptr) selection←v8412)+14) ) - x←v14036) + (* (( (ptr) selection←v8412)+16)
                         )), (* (( (ptr) selection←v8412)+17) ), (word) (( (bPt) &var←c49276)+32)/* var←c44252 */ );
                     };
                  }
               else {
                  if ( ( ( (int)(* (( (ptr) selection←v8412)+4) ) ==  (int)(*  (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ) )) ? ( (int)(* (
                     ( (ptr) selection←v8412)+13) ) >  (int)(*  (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ) )) : 0 ) ) {
SOURCE(10996, 163)
                     {
                        word idx106;
                        word limit107;
                        word idx108;
                        word limit109;
                        (void) EffectSelect←P4056((* (( (ptr) selection←v8412)+5) ), (* (( (ptr) selection←v8412)+6) ), (((* (( (ptr) (( (W9Pt) (
/*1*/         ( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+3))+(
/*1*/         idx106 = (* (( (ptr) selection←v8412)+4) ),
/*1*/         limit107 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/         BCK(idx106, limit107)
/*1*/         )))+8) ) + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+3))+(
/*1*/         idx108 = (* (( (ptr) selection←v8412)+4) ),
/*1*/         limit109 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/         BCK(idx108, limit109)
/*1*/         )))+7) )) - (* (( (ptr) selection←v8412)+5) )), (* (( (ptr) selection←v8412)+8) ), (word) (( (bPt) &var←c49276)+32)/* var←c44252 */ )
                        ;
                        };
                     }
                  else {
SOURCE(11173, 894)
                     {
                        word sl←v14152;
                        word el←v14180;
SOURCE(11175, 63)
                        {
                           word x110;
                           word x111;
                           word x112;
                           sl←v14152 = (x112 = (x110 = (*  (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ) ),
/*1*/      x111 = (* (( (ptr) selection←v8412)+4) ),
/*1*/      MIN((int)(word), x110, x111)),
/*1*/   MAX((int)(word), 0, x112));
                           };
SOURCE(11240, 61)
                        {
                           word x113;
                           word x114;
                           word x115;
                           el←v14180 = (x115 = (x113 = (*  (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ) ),
/*1*/      x114 = (* (( (ptr) selection←v8412)+13) ),
/*1*/      MIN((int)(word), x113, x114)),
/*1*/   MAX((int)(word), 0, x115));
                           };
SOURCE(11458, 220)
                        if ( ( ( (int)sl←v14152 ==  (int)(* (( (ptr) selection←v8412)+4) )) ? (0 == (* (( (ptr) selection←v8412)+9) )) : 0 ) ) {
SOURCE(11524, 129)
                           {
/*1*/   word limit116;
/*1*/   word limit117;
/*1*/   (void) EffectSelect←P4056((* (( (ptr) selection←v8412)+5) ), (* (( (ptr) selection←v8412)+6) ), (((* (( (ptr) (( (W9Pt) (
/*1*/               ( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+3))+(
/*1*/               limit116 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/               BCK(sl←v14152, limit116)
/*1*/               )))+8) ) + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+3))+(
/*1*/               limit117 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/               BCK(sl←v14152, limit117)
/*1*/               )))+7) )) - (* (( (ptr) selection←v8412)+5) )), (* (( (ptr) selection←v8412)+8) ), (word) (( (bPt) &var←c49276)+32)/* var←c44252 */ )
/*1*/   ;
/*1*/   };
                           }
                        else {
SOURCE(11662, 16)
                           (void) EffectSelAll←P4260(sl←v14152, (word) (( (bPt) &var←c49276)+24)/* var←c44220 */ );
                           };
SOURCE(11683, 45)
                        {
                           register word n←v14312;
                           n←v14312 = sl←v14152;
                           if (( (int)n←v14312 >=  (int)el←v14180)) {
/*1*/   goto lab←L100017;
/*1*/   };
                           n←v14312 = (n←v14312 + 1);
                           if (( (int)n←v14312 ==  (int)el←v14180)) {
/*1*/   goto lab←L100017;
/*1*/   };
                           lab←L100020: ;
SOURCE(11713, 15)
                           (void) EffectSelAll←P4260(n←v14312, (word) (( (bPt) &var←c49276)+24)/* var←c44220 */ );
                           n←v14312 = (n←v14312 + 1);
                           if (( (int)n←v14312 <  (int)el←v14180)) {
/*1*/   goto lab←L100020;
/*1*/   };
                           lab←L100017: ;
                           };
                        if ((0 != (* (( (ptr) selection←v8412)+18) ))) {
                           }
                        else {
                           if (( (int)el←v14180 ==  (int)(* (( (ptr) selection←v8412)+13) ))) {
SOURCE(11862, 120)
/*1*/   {
/*1*/      word limit118;
/*1*/      word limit119;
/*1*/      (void) EffectSelect←P4056((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+3))+(
/*1*/                  limit118 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/                  BCK(el←v14180, limit118)
/*1*/                  )))+7) ), (* (( (ptr) selection←v8412)+15) ), (((* (( (ptr) selection←v8412)+14) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49276)+10)
/*1*/                  /* lines←v13736 */  ))+3))+(
/*1*/                  limit119 = (* (( (ptr) (* (( (ptr) &var←c49276)+10)/* lines←v13736 */  ))+2) ),
/*1*/                  BCK(el←v14180, limit119)
/*1*/                  )))+7) )) + (* (( (ptr) selection←v8412)+16) )), (* (( (ptr) selection←v8412)+17) ), (word) (( (bPt) &var←c49276)+32)/* var←c44252 */ )
/*1*/      ;
/*1*/      };
/*1*/   }
                           else {
SOURCE(12000, 16)
/*1*/   (void) EffectSelAll←P4260(el←v14180, (word) (( (bPt) &var←c49276)+24)/* var←c44220 */ );
/*1*/   };
                           };
                        };
                     };
                  };
               };
            };
         }
      else {
         lab←L100016: ;
         };
      };
   }

static void EffectSelect←P4056(x←v13924, y←v13952, w←v13980, h←v14008, formal←c49372)
   word x←v13924;
   word y←v13952;
   word w←v13980;
   word h←v14008;
   word formal←c49372;
   {
   register ptr gf←c49340 =  (ptr) &globalframe;
   word lineHeight←v14356;
   word bottom←v14384;
   formal←c49372 = (formal←c49372 - 32);
   /* EffectSelect: */ 
SOURCE(9643, 20)
SOURCE(9688, 36)
   lineHeight←v14356 = (* (( (ptr) gf←c49340)+32)/* selectionLineWidth←v5408 */  );
SOURCE(9726, 29)
   bottom←v14384 = (((* (( (ptr) formal←c49372)+11) ) - y←v13952) - h←v14008);
SOURCE(9757, 90)
   if (((* (( (ptr) formal←c49372)+5) ) == 2)) {
SOURCE(9779, 30)
      lineHeight←v14356 = (* (( (ptr) gf←c49340)+33)/* feedbackLineWidth←v5436 */  );
SOURCE(9811, 36)
      bottom←v14384 = (bottom←v14384 - (* (( (ptr) gf←c49340)+34)/* feedbackLineRaise←v5464 */  ));
      };
SOURCE(9850, 148)
   {
      word var←c44380;
      var←c44380 = (* (( (ptr) formal←c49372)+12) );
      if ((var←c44380 == 1)) {
SOURCE(9879, 51)
         {
            word pd120;
            pd120 = (* (( (ptr) (* (( (ptr) gf←c49340)+190)/* var←c44348 */  ))+66) );
            (void) ( *( (fPt) ((*  (ptr) pd120 ))))((* (( (ptr) formal←c49372)+4) ), x←v13924, bottom←v14384, w←v13980, lineHeight←v14356, pd120)
            ;
            };
         }
      else {
         if ((var←c44380 == 0)) {
SOURCE(9941, 57)
            {
               word pd121;
               pd121 = (* (( (ptr) (* (( (ptr) gf←c49340)+190)/* var←c44348 */  ))+66) );
               (void) ( *( (fPt) ((*  (ptr) pd121 ))))((* (( (ptr) formal←c49372)+4) ), x←v13924, bottom←v14384, w←v13980, (((* (( (ptr) formal←c49372)+11)
                   ) - y←v13952) - bottom←v14384), pd121);
               };
            }
         else {
SOURCE(10011, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   }

static void EffectSelAll←P4260(n←v14284, formal←c49404)
   word n←v14284;
   word formal←c49404;
   {
   formal←c49404 = (formal←c49404 - 24);
   /* EffectSelAll: */ 
SOURCE(11303, 20)
SOURCE(11339, 116)
   {
      word limit122;
      word limit123;
      word limit124;
      word limit125;
      word limit126;
      word limit127;
      word idx128;
      (void) EffectSelect←P4056((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49404)+10) ))+3))+(
                  limit122 = (* (( (ptr) (* (( (ptr) formal←c49404)+10) ))+2) ),
                  BCK(n←v14284, limit122)
                  )))+7) ), ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49404)+10) ))+3))+(
                  limit123 = (* (( (ptr) (* (( (ptr) formal←c49404)+10) ))+2) ),
                  BCK(n←v14284, limit123)
                  )))+6) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49404)+10) ))+3))+(
                  limit124 = (* (( (ptr) (* (( (ptr) formal←c49404)+10) ))+2) ),
                  BCK(n←v14284, limit124)
                  )))+3) )), (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49404)+10) ))+3))+(
                  limit125 = (* (( (ptr) (* (( (ptr) formal←c49404)+10) ))+2) ),
                  BCK(n←v14284, limit125)
                  )))+8) ), (
            idx128 = (word) ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49404)+10) ))+3))+(
                     limit126 = (* (( (ptr) (* (( (ptr) formal←c49404)+10) ))+2) ),
                     BCK(n←v14284, limit126)
                     )))+3) ) + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49404)+10) ))+3))+(
                     limit127 = (* (( (ptr) (* (( (ptr) formal←c49404)+10) ))+2) ),
                     BCK(n←v14284, limit127)
                     )))+4) )),
            SGNCK(idx128)
            ), (word) (( (bPt) formal←c49404)+32));
      };
   }

static void ExtendSelection←P1380(formal←c0784, formal←c0785, formal←c0786, formal←c0787, formal←c0788, updateEnd←v8640)
   word formal←c0784;
   word formal←c0785;
   word formal←c0786;
   word formal←c0787;
   word formal←c0788;
   word updateEnd←v8640;
   {
   W15 var←c49436;
   /* declaration of dc←v8500 skipped */ 
   /* declaration of viewer←v8528 skipped */ 
   /* declaration of old←v8556 skipped */ 
   /* declaration of new←v8584 skipped */ 
   /* declaration of id←v8612 skipped */ 
   register ptr gf←c49468 =  (ptr) &globalframe;
   /* declaration of var←c44412 skipped */ 
   /* declaration of var←c44444 skipped */ 
   /* declaration of var←c44476 skipped */ 
   (* (( (ptr) &var←c49436)+4)/* dc←v8500 */  ) = formal←c0784;
   (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ) = formal←c0785;
   (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ) = formal←c0786;
   (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ) = formal←c0787;
   (* (( (ptr) &var←c49436)+8)/* id←v8612 */  ) = formal←c0788;
   /* ExtendSelection: */ 
SOURCE(12086, 2485)
   {
      word tmpAddr129;
      tmpAddr129 = (word) (( (ptr) &var←c49436)+9)/* var←c44412 */ ;
      (*  (ptr) tmpAddr129 ) = ( ((word)  (fPt) DecLoc←P4632) );
      (* (( (ptr) tmpAddr129) + 1) ) = 1;
      };
   {
      word tmpAddr130;
      tmpAddr130 = (word) (( (ptr) &var←c49436)+11)/* var←c44444 */ ;
      (*  (ptr) tmpAddr130 ) = ( ((word)  (fPt) BumpLoc←P4476) );
      (* (( (ptr) tmpAddr130) + 1) ) = 1;
      };
   {
      word tmpAddr131;
      tmpAddr131 = (word) (( (ptr) &var←c49436)+13)/* var←c44476 */ ;
      (*  (ptr) tmpAddr131 ) = ( ((word)  (fPt) TooHard←P4368) );
      (* (( (ptr) tmpAddr131) + 1) ) = 1;
      };
SOURCE(12437, 2098)
   if ((0 != updateEnd←v8640)) {
SOURCE(12455, 1151)
      {
         word tooHard←v14516;
         word sameNode←v14544;
SOURCE(12651, 54)
         {
            word var←c44508;
            var←c44508 = (* (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+13) );
            if (( (int)var←c44508 <  (int)0)) {
               tooHard←v14516 = 1;
               }
            else {
               tooHard←v14516 = ( (int)var←c44508 >=  (int)2147483647);
               };
            };
SOURCE(12707, 54)
         sameNode←v14544 = ((* (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+11) ) == (* (( (ptr) (* (( (ptr) &var←c49436)+6)
            /* old←v8556 */  ))+11) ));
SOURCE(12763, 32)
         if ((0 != tooHard←v14516)) {
SOURCE(12780, 7)
            (void) TooHard←P4368((word) ((( (bPt) &var←c49436)+52)/* var←c44476 */ ));
SOURCE(12789, 6)
            return;
            };
         if (XR←EqualWords((( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+11), (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+11)
            , 2)) {
            }
         else {
            {
               word tc133;
               word pd134;
               if ( ( (0 != sameNode←v14544) ? ( (int)(* (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+12) ) >  (int)(* (( (ptr) (* (
                     ( (ptr) &var←c49436)+6)/* old←v8556 */  ))+12) )) : 0 ) ) { goto then0132;};
               if ((0 == sameNode←v14544)) {
                  pd134 = (* (( (ptr) (* (( (ptr) gf←c49468)+191)/* var←c44540 */  ))+22) );
                  tc133 =  (word) ((word) ( *( (fPt) ((*  (ptr) pd134 ))))((* (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+11) ), (* (
                        ( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+11) ), pd134) == 2);
                  }
               else {
                  tc133 =  (word) 0;
                  };
               if (tc133) {
                  then0132: ;
SOURCE(12992, 19)
                  (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ) = (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)
                     /* old←v8556 */  ))+11) );
SOURCE(13013, 38)
                  (void) BumpLoc←P4476((word) (( (bPt) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+8), (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)
                        /* new←v8584 */  ))+2) ), (word) (( (bPt) &var←c49436)+44)/* var←c44444 */ );
SOURCE(13053, 86)
                  if ( ( (0 != sameNode←v14544) ? ((* (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ) != (* (( (ptr) (* (( (ptr) &var←c49436)+7)
                     /* new←v8584 */  ))+11) )) : 0 ) ) {
SOURCE(13112, 27)
                     (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ) = (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)
                        /* new←v8584 */  ))+11) );
                     };
SOURCE(13141, 27)
                  (void) FixupSelection←P1620((* (( (ptr) &var←c49436)+7)/* new←v8584 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), 1, 1)
                  ;
SOURCE(13170, 34)
                  (void) MarkSelection←P1320((* (( (ptr) &var←c49436)+4)/* dc←v8500 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), (* (
                        ( (ptr) &var←c49436)+7)/* new←v8584 */  ), (* (( (ptr) &var←c49436)+8)/* id←v8612 */  ));
SOURCE(13206, 17)
                  (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+11) ) = (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)
                     /* new←v8584 */  ))+11) );
                  }
               else {
SOURCE(13238, 365)
                  {
                     W2 save←v14692;
SOURCE(13240, 28)
                     save←v14692 = (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+11) );
SOURCE(13270, 19)
                     (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ) = (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)
                        /* new←v8584 */  ))+11) );
SOURCE(13291, 29)
                     (void) BumpLoc←P4476((word) (( (bPt) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+8), save←v14692, (word) (( (bPt) &var←c49436)+44)
                        /* var←c44444 */ );
SOURCE(13322, 86)
                     if ( ( (0 != sameNode←v14544) ? ((* (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ) != (* (( (ptr) (* (( (ptr) &var←c49436)+7)
                        /* new←v8584 */  ))+11) )) : 0 ) ) {
SOURCE(13381, 27)
                        (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ) = (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)
                           /* old←v8556 */  ))+11) );
                        };
SOURCE(13410, 17)
                     (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+11) ) = (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)
                        /* old←v8556 */  ))+11) );
SOURCE(13429, 40)
                     (void) FixupSelection←P1620((* (( (ptr) &var←c49436)+7)/* new←v8584 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), 1, 0)
                     ;
SOURCE(13484, 34)
                     (void) MarkSelection←P1320((* (( (ptr) &var←c49436)+4)/* dc←v8500 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), (* (
                           ( (ptr) &var←c49436)+7)/* new←v8584 */  ), (* (( (ptr) &var←c49436)+8)/* id←v8612 */  ));
SOURCE(13520, 19)
                     (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+11) ) = (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)
                        /* new←v8584 */  ))+2) );
SOURCE(13541, 18)
                     (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+11) ) = save←v14692;
SOURCE(13561, 40)
                     (void) FixupSelection←P1620((* (( (ptr) &var←c49436)+6)/* old←v8556 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), 0, 1)
                     ;
                     };
                  };
               };
            };
         };
      }
   else {
SOURCE(13613, 927)
      {
         word tooHard←v14836;
         word sameNode←v14864;
SOURCE(13812, 56)
         {
            word var←c44572;
            var←c44572 = (* (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+4) );
            if (( (int)var←c44572 <  (int)0)) {
               tooHard←v14836 = 1;
               }
            else {
               tooHard←v14836 = ( (int)var←c44572 >=  (int)2147483647);
               };
            };
SOURCE(13870, 58)
         sameNode←v14864 = ((* (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ) == (* (( (ptr) (* (( (ptr) &var←c49436)+6)
            /* old←v8556 */  ))+2) ));
SOURCE(13930, 32)
         if ((0 != tooHard←v14836)) {
SOURCE(13947, 7)
            (void) TooHard←P4368((word) ((( (bPt) &var←c49436)+52)/* var←c44476 */ ));
SOURCE(13956, 6)
            return;
            };
         if (XR←EqualWords((( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2), (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+2)
            , 2)) {
            }
         else {
            {
               word tc136;
               word pd137;
               if ( ( (0 != sameNode←v14864) ? ( (int)(* (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+3) ) <  (int)(* (( (ptr) (* (
                     ( (ptr) &var←c49436)+6)/* old←v8556 */  ))+3) )) : 0 ) ) { goto then0135;};
               if ((0 == sameNode←v14864)) {
                  pd137 = (* (( (ptr) (* (( (ptr) gf←c49468)+191)/* var←c44540 */  ))+22) );
                  tc136 =  (word) ((word) ( *( (fPt) ((*  (ptr) pd137 ))))((* (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ), (* (
                        ( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+2) ), pd137) == 0);
                  }
               else {
                  tc136 =  (word) 0;
                  };
               if (tc136) {
                  then0135: ;
SOURCE(14172, 35)
                  (void) DecLoc←P4632((word) (( (bPt) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+44), (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)
                        /* old←v8556 */  ))+2) ), (word) (( (bPt) &var←c49436)+36)/* var←c44412 */ );
SOURCE(14209, 27)
                  (void) FixupSelection←P1620((* (( (ptr) &var←c49436)+7)/* new←v8584 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), 1, 1)
                  ;
SOURCE(14238, 34)
                  (void) MarkSelection←P1320((* (( (ptr) &var←c49436)+4)/* dc←v8500 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), (* (
                        ( (ptr) &var←c49436)+7)/* new←v8584 */  ), (* (( (ptr) &var←c49436)+8)/* id←v8612 */  ));
SOURCE(14274, 21)
                  (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+2) ) = (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)
                     /* new←v8584 */  ))+2) );
                  }
               else {
SOURCE(14310, 227)
                  {
                     W2 save←v15012;
SOURCE(14312, 30)
                     save←v15012 = (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) );
SOURCE(14344, 26)
                     (void) DecLoc←P4632((word) (( (bPt) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+44), save←v15012, (word) (( (bPt) &var←c49436)+36)
                        /* var←c44412 */ );
SOURCE(14372, 21)
                     (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ))+2) ) = (*  (W9Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)
                        /* old←v8556 */  ))+2) );
SOURCE(14395, 40)
                     (void) FixupSelection←P1620((* (( (ptr) &var←c49436)+7)/* new←v8584 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), 0, 1)
                     ;
SOURCE(14437, 34)
                     (void) MarkSelection←P1320((* (( (ptr) &var←c49436)+4)/* dc←v8500 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), (* (
                           ( (ptr) &var←c49436)+7)/* new←v8584 */  ), (* (( (ptr) &var←c49436)+8)/* id←v8612 */  ));
SOURCE(14473, 20)
                     (*  (W2Pt) (( (ptr) (* (( (ptr) &var←c49436)+6)/* old←v8556 */  ))+2) ) = save←v15012;
SOURCE(14495, 40)
                     (void) FixupSelection←P1620((* (( (ptr) &var←c49436)+6)/* old←v8556 */  ), (* (( (ptr) &var←c49436)+5)/* viewer←v8528 */  ), 1, 0)
                     ;
                     };
                  };
               };
            };
         };
      };
SOURCE(14543, 28)
   (void) Copy←P540((* (( (ptr) &var←c49436)+6)/* old←v8556 */  ), (* (( (ptr) &var←c49436)+7)/* new←v8584 */  ));
   }

static void TooHard←P4368(formal←c49500)
   word formal←c49500;
   {
   formal←c49500 = (formal←c49500 - 52);
   /* TooHard: */ 
SOURCE(12211, 221)
SOURCE(12229, 34)
   (void) MarkSelection←P1320((* (( (ptr) formal←c49500)+4) ), (* (( (ptr) formal←c49500)+5) ), (* (( (ptr) formal←c49500)+6)
       ), (* (( (ptr) formal←c49500)+8) ));
SOURCE(12281, 27)
   (void) FixupSelection←P1620((* (( (ptr) formal←c49500)+7) ), (* (( (ptr) formal←c49500)+5) ), 1, 1);
SOURCE(12355, 34)
   (void) MarkSelection←P1320((* (( (ptr) formal←c49500)+4) ), (* (( (ptr) formal←c49500)+5) ), (* (( (ptr) formal←c49500)+7)
       ), (* (( (ptr) formal←c49500)+8) ));
SOURCE(12404, 28)
   (void) Copy←P540((* (( (ptr) formal←c49500)+7) ), (* (( (ptr) formal←c49500)+6) ));
   }

static void BumpLoc←P4476(formal←c0243, loc←v14620, formal←c49564)
   word formal←c0243;
   W2 loc←v14620;
   word formal←c49564;
   {
   register ptr gf←c49532 =  (ptr) &globalframe;
   W2 var←c14664;
   word n←v14736;
   word where←v14764;
   formal←c49564 = (formal←c49564 - 44);
   /* BumpLoc: */ 
SOURCE(12457, 15)
SOURCE(12510, 18)
   n←v14736 = loc←v14620.f0;
SOURCE(12530, 24)
   where←v14764 = (loc←v14620.f1 + 1);
SOURCE(12556, 70)
   {
      word pd138;
      pd138 = (* (( (ptr) (* (( (ptr) gf←c49532)+192)/* var←c44604 */  ))+6) );
      if (( (int)where←v14764 >=  (int)(word) ( *( (fPt) ((*  (ptr) pd138 ))))(n←v14736, pd138))) {
SOURCE(12590, 36)
         {
            W2 var←c44700;
            {
               W2 var←c44636;
               {
                  word pd139;
                  pd139 = (* (( (ptr) (* (( (ptr) gf←c49532)+193)/* var←c44668 */  ))+14) );
                  var←c44636.f0 = (word) ( *( (fPt) ((*  (ptr) pd139 ))))(n←v14736, pd139);
                  };
               var←c44636.f1 = 0;
               var←c44700 = var←c44636;
               };
            var←c14664 = var←c44700;
            goto lab←L100021;
            };
         };
      };
SOURCE(12628, 18)
   var←c14664.f0 = n←v14736;
   var←c14664.f1 = where←v14764;
   /* removed tail goto */ 
   lab←L100021: ;
   (*  (W2Pt) formal←c0243 ) = var←c14664;
   return;
   }

static void DecLoc←P4632(formal←c0249, loc←v14940, formal←c49628)
   word formal←c0249;
   W2 loc←v14940;
   word formal←c49628;
   {
   register ptr gf←c49596 =  (ptr) &globalframe;
   W2 var←c14984;
   word n←v15056 = 0;
   formal←c49628 = (formal←c49628 - 36);
   /* DecLoc: */ 
SOURCE(13615, 14)
SOURCE(13676, 54)
   if (( (int)loc←v14940.f1 >  (int)0)) {
SOURCE(13698, 32)
      var←c14984.f0 = loc←v14940.f0;
      var←c14984.f1 = (loc←v14940.f1 - 1);
      goto lab←L100022;
      };
SOURCE(13732, 35)
   {
      word pd140;
      pd140 = (* (( (ptr) (* (( (ptr) gf←c49596)+193)/* var←c44668 */  ))+15) );
      n←v15056 = (word) ( *( (fPt) ((*  (ptr) pd140 ))))(loc←v14940.f0, 0, pd140);
      };
SOURCE(13769, 40)
   {
      W2 var←c44828;
      {
         W2 var←c44796;
         var←c44796.f0 = n←v15056;
         {
            word pd141;
            word x142;
            pd141 = (* (( (ptr) (* (( (ptr) gf←c49596)+192)/* var←c44604 */  ))+6) );
            var←c44796.f1 = ((x142 = (word) ( *( (fPt) ((*  (ptr) pd141 ))))(n←v15056, pd141),
               MAX((int)(word), x142, 1)) - 1);
            };
         var←c44828 = var←c44796;
         };
      var←c14984 = var←c44828;
      /* removed tail goto */ 
      };
   lab←L100022: ;
   (*  (W2Pt) formal←c0249 ) = var←c14984;
   return;
   }

static void ComputeSpanLines←P1440(formal←c0261, viewer←v8716, span←v8744)
   word formal←c0261;
   word viewer←v8716;
   W4 span←v8744;
   {
   word start←v8788;
   word end←v8816;
   word startClipped←v8844;
   word endClipped←v8872;
   /* ComputeSpanLines: */ 
SOURCE(14612, 504)
SOURCE(14743, 58)
   {
      W2 var←c44860;
      (void) ComputePosLine←P1500((word) &var←c44860, viewer←v8716, (*  (W2Pt) &span←v8744 ), 0);
      startClipped←v8844 = var←c44860.f1;
      start←v8788 = var←c44860.f0;
      };
   if (XR←EqualWords(&span←v8744, (( (ptr) &span←v8744)+2), 2)) {
SOURCE(14845, 11)
      end←v8816 = start←v8788;
SOURCE(14858, 26)
      endClipped←v8872 = startClipped←v8844;
      }
   else {
      if (( (int)start←v8788 ==  (int)2147483647)) {
SOURCE(14910, 19)
         end←v8816 = 2147483647;
         }
      else {
SOURCE(14965, 153)
         {
            word firstLine←v15100;
SOURCE(14967, 84)
            firstLine←v15100 =  ( ( (int)start←v8788 <=  (int)0) ? 0 :  ( (0 != startClipped←v8844) ? (start←v8788 - 1) : start←v8788 )  ) ;
SOURCE(15053, 63)
            {
               W2 var←c44892;
               (void) ComputePosLine←P1500((word) &var←c44892, viewer←v8716, (*  (W2Pt) (( (ptr) &span←v8744)+2) ), firstLine←v15100);
               endClipped←v8872 = var←c44892.f1;
               end←v8816 = var←c44892.f0;
               };
            };
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0261 ) = start←v8788;
   (* (( (ptr) formal←c0261)+1) ) = end←v8816;
   (* (( (ptr) formal←c0261)+2) ) = startClipped←v8844;
   (* (( (ptr) formal←c0261)+3) ) = endClipped←v8872;
   return;
   }

static void ComputePosLine←P1500(formal←c0269, viewer←v8932, pos←v8960, firstLine←v8988)
   word formal←c0269;
   word viewer←v8932;
   W2 pos←v8960;
   word firstLine←v8988;
   {
   word line←v9032;
   word clipped←v9060;
   W9 sp←v15144;
   /* ComputePosLine: */ 
SOURCE(15125, 237)
SOURCE(15252, 80)
   (void) ComputePosPoint←P1560((word) &sp←v15144, viewer←v8932, pos←v8960, firstLine←v8988, 1);
SOURCE(15334, 28)
   line←v9032 = (* (( (ptr) &sp←v15144)+2) );
   clipped←v9060 = (* (( (ptr) &sp←v15144)+7) );
   /* removed tail goto */ 
   (*  (ptr) formal←c0269 ) = line←v9032;
   (* (( (ptr) formal←c0269)+1) ) = clipped←v9060;
   return;
   }

static void ComputePosPoint←P1560(formal←c0295, viewer←v9120, pos←v9148, formal←c0789, lineOnly←v9204)
   word formal←c0295;
   word viewer←v9120;
   W2 pos←v9148;
   word formal←c0789;
   word lineOnly←v9204;
   {
   W10 var←c49660;
   /* declaration of firstLine←v9176 skipped */ 
   register ptr gf←c49692 =  (ptr) &globalframe;
   W9 sp←v9248;
   /* declaration of var←c44924 skipped */ 
   /* declaration of var←c44956 skipped */ 
   (* (( (ptr) &var←c49660)+4)/* firstLine←v9176 */  ) = formal←c0789;
   /* ComputePosPoint: */ 
SOURCE(15368, 2703)
   {
      word tmpAddr143;
      tmpAddr143 = (word) (( (ptr) &var←c49660)+5)/* var←c44924 */ ;
      (*  (ptr) tmpAddr143 ) = ( ((word)  (fPt) FindPos←P4944) );
      (* (( (ptr) tmpAddr143) + 1) ) = 1;
      };
   {
      word tmpAddr144;
      tmpAddr144 = (word) (( (ptr) &var←c49660)+7)/* var←c44956 */ ;
      (*  (ptr) tmpAddr144 ) = ( ((word)  (fPt) IsPosPastLine←P4884) );
      (* (( (ptr) tmpAddr144) + 1) ) = 1;
      };
SOURCE(15368, 2703)
   XR←FillWords(&sp←v9248, 9, 0);
SOURCE(15524, 2547)
   {
      word var←c44988;
      var←c44988 = (* (( (ptr) viewer←v9120)+26) );
      if ((var←c44988 == 0)) {
         goto lab←L100026;
         };
      if (((* (( (ptr) gf←c49692)+48) ) == XR←GetReferentType(var←c44988))) {
         {
            word tdd←v15188;
            tdd←v15188 = var←c44988;
SOURCE(15593, 2480)
            {
               word foundPos←v15232 = 0;
               /* declaration of lines←v15316 skipped */ 
SOURCE(16171, 46)
               (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ) = (* (( (ptr) tdd←v15188)+1) );
SOURCE(16219, 12)
               (*  (W2Pt) &sp←v9248 ) = pos←v9148;
SOURCE(16233, 119)
               {
                  word limit145;
                  if (((*  (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+3))+(
                        limit145 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
                        BCK(0, limit145)
                        )) ) == pos←v9148.f0)) {
SOURCE(16272, 80)
                     {
                        word limit146;
                        if (( (int)(* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+3))+(
/*1*/      limit146 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
/*1*/      BCK(0, limit146)
/*1*/      )))+1) ) >  (int)pos←v9148.f1)) {
SOURCE(16313, 31)
                           (* (( (ptr) &sp←v9248)+2) ) = 2147483649;
                           (* (( (ptr) &sp←v9248)+4) ) = 2147483649;
SOURCE(16346, 6)
                           goto lab←L100025;
                           };
                        };
                     };
                  };
SOURCE(16360, 147)
               {
                  word tc147;
                  word idx148;
                  word limit149;
                  if (((*  (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+3))+(
                        idx148 = (*  (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ) ),
                        limit149 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
                        BCK(idx148, limit149)
                        )) ) == pos←v9148.f0)) {
                     tc147 =  (word) (0 != (word) IsPosPastLine←P4884(pos←v9148, (*  (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ) ), (word) (
                           ( (bPt) &var←c49660)+28)/* var←c44956 */ ));
                     }
                  else {
                     tc147 =  (word) 0;
                     };
                  if (tc147) {
SOURCE(16448, 30)
                     (* (( (ptr) &sp←v9248)+2) ) = 2147483647;
                     (* (( (ptr) &sp←v9248)+4) ) = 2147483647;
SOURCE(16501, 6)
                     goto lab←L100025;
                     };
                  };
SOURCE(16512, 48)
               {
                  word x150;
                  word x151;
                  word x152;
                  (* (( (ptr) &var←c49660)+4)/* firstLine←v9176 */  ) = (x150 = (*  (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ) ),
                     x152 = (x151 = (* (( (ptr) &var←c49660)+4)/* firstLine←v9176 */  ),
                        MAX((int)(word), x151, 0)),
                     MIN((int)(word), x150, x152));
                  };
SOURCE(16562, 34)
               {
                  W2 var←c45020;
                  (void) FindPos←P4944((word) &var←c45020, pos←v9148, (word) (( (bPt) &var←c49660)+20)/* var←c44924 */ );
                  (* (( (ptr) &sp←v9248)+2) ) = var←c45020.f1;
                  foundPos←v15232 = var←c45020.f0;
                  };
SOURCE(16598, 18)
               (* (( (ptr) &sp←v9248)+7) ) = 0;
SOURCE(16618, 988)
               if ((0 == foundPos←v15232)) {
SOURCE(16639, 967)
                  {
                     word var←c45052;
                     {
                        word pd153;
                        word limit154;
                        pd153 = (* (( (ptr) (* (( (ptr) gf←c49692)+191)/* var←c44540 */  ))+22) );
                        var←c45052 = (word) ( *( (fPt) ((*  (ptr) pd153 ))))(pos←v9148.f0, (*  (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)
/*1*/      /* lines←v15316 */  ))+3))+(
/*1*/      limit154 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
/*1*/      BCK(0, limit154)
/*1*/      )) ), pd153);
                        };
                     switch (var←c45052) {
                        case 1: case 0: 
SOURCE(16724, 31)
                           (* (( (ptr) &sp←v9248)+4) ) = 2147483649;
                           (* (( (ptr) &sp←v9248)+2) ) = 2147483649;
SOURCE(16757, 7)
                           goto lab←L100025;
                        case 3: 
SOURCE(16799, 18)
                           (void) XR←RaiseError((word) (( (bPt) gf←c49692)+292)/* var←c41308 */ , 0);
                           break;
                        default: 
SOURCE(16872, 734)
                           if ( ( ((* (( (ptr) tdd←v15188)+2) ) == 1023) ? ((* (( (ptr) tdd←v15188)+18) ) == 0) : 0 ) ) {
SOURCE(16958, 30)
/*1*/   (* (( (ptr) &sp←v9248)+4) ) = 2147483647;
/*1*/   (* (( (ptr) &sp←v9248)+2) ) = 2147483647;
SOURCE(16990, 8)
/*1*/   goto lab←L100025;
/*1*/   }
                           else {
SOURCE(17020, 586)
/*1*/   {
/*1*/      word var←c45084;
/*1*/      {
/*1*/         word pd155;
/*1*/         word idx156;
/*1*/         word limit157;
/*1*/         pd155 = (* (( (ptr) (* (( (ptr) gf←c49692)+191)/* var←c44540 */  ))+22) );
/*1*/         var←c45084 = (word) ( *( (fPt) ((*  (ptr) pd155 ))))(pos←v9148.f0, (*  (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)
/*1*/                  /* lines←v15316 */  ))+3))+(
/*1*/                  idx156 = (*  (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ) ),
/*1*/                  limit157 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
/*1*/                  BCK(idx156, limit157)
/*1*/                  )) ), pd155);
/*1*/         };
/*1*/      switch (var←c45084) {
/*1*/         case 1: case 2: 
SOURCE(17117, 30)
/*1*/            (* (( (ptr) &sp←v9248)+4) ) = 2147483647;
/*1*/            (* (( (ptr) &sp←v9248)+2) ) = 2147483647;
SOURCE(17149, 8)
/*1*/            goto lab←L100025;
/*1*/         case 3: 
SOURCE(17172, 18)
/*1*/            (void) XR←RaiseError((word) (( (bPt) gf←c49692)+292)/* var←c41308 */ , 0);
/*1*/            break;
/*1*/         default: 
SOURCE(17237, 371)
/*1*/            {
/*1*/               word n←v15624;
/*1*/               word delta←v15652;
/*1*/               W2 var←c0289;
SOURCE(17257, 18)
/*1*/               n←v15624 = pos←v9148.f0;
SOURCE(17277, 49)
/*1*/               {
/*1*/                  word pd158;
/*1*/                  pd158 = (* (( (ptr) (* (( (ptr) gf←c49692)+193)/* var←c44668 */  ))+16) );
/*1*/                  delta←v15652 = ((word) ( *( (fPt) ((*  (ptr) pd158 ))))(n←v15624, pd158) - (* (( (ptr) tdd←v15188)+2) ));
/*1*/                  };
SOURCE(17328, 13)
/*1*/               (* (( (ptr) &var←c49660)+4)/* firstLine←v9176 */  ) = 0;
SOURCE(17397, 53)
/*1*/               {
/*1*/                  register word i←v15696 = 0;
/*1*/                  register word noName←c45116;
/*1*/                  noName←c45116 = delta←v15652;
/*1*/                  if (( (int)i←v15696 >=  (int)noName←c45116)) {
/*1*/                     goto lab←L100027;
/*1*/                     };
/*1*/                  lab←L100030: ;
SOURCE(17428, 22)
/*1*/                  {
/*1*/                     word pd159;
/*1*/                     pd159 = (* (( (ptr) (* (( (ptr) gf←c49692)+193)/* var←c44668 */  ))+8) );
/*1*/                     n←v15624 = (word) ( *( (fPt) ((*  (ptr) pd159 ))))(n←v15624, pd159);
/*1*/                     };
/*1*/                  i←v15696 = (i←v15696 + 1);
/*1*/                  if (( (int)i←v15696 <  (int)noName←c45116)) {
/*1*/                     goto lab←L100030;
/*1*/                     };
/*1*/                  lab←L100027: ;
/*1*/                  };
SOURCE(17461, 47)
/*1*/               {
/*1*/                  word pd160;
/*1*/                  pd160 = (* (( (ptr) (* (( (ptr) gf←c49692)+193)/* var←c44668 */  ))+17) );
/*1*/                  (void) ( *( (fPt) ((*  (ptr) pd160 ))))((word) &var←c0289, n←v15624, (* (( (ptr) tdd←v15188)+2) ), 0, pd160);
/*1*/                  };
/*1*/               n←v15624 = var←c0289.f0;
SOURCE(17510, 36)
/*1*/               {
/*1*/                  W2 var←c45180;
/*1*/                  {
/*1*/                     W2 var←c0292;
/*1*/                     {
/*1*/                        W2 var←c45148;
/*1*/                        var←c45148.f0 = n←v15624;
/*1*/                        var←c45148.f1 = 0;
/*1*/                        (void) FindPos←P4944((word) &var←c0292, var←c45148, (word) (( (bPt) &var←c49660)+20)/* var←c44924 */ );
/*1*/                        };
/*1*/                     var←c45180 = var←c0292;
/*1*/                     };
/*1*/                  (* (( (ptr) &sp←v9248)+2) ) = var←c45180.f1;
/*1*/                  foundPos←v15232 = var←c45180.f0;
/*1*/                  };
SOURCE(17548, 39)
/*1*/               if ((0 == foundPos←v15232)) {
SOURCE(17569, 18)
/*1*/                  (void) XR←RaiseError((word) (( (bPt) gf←c49692)+292)/* var←c41308 */ , 0);
/*1*/                  };
SOURCE(17589, 17)
/*1*/               (* (( (ptr) &sp←v9248)+7) ) = 1;
/*1*/               };
/*1*/            break;
/*1*/         };
/*1*/      };
/*1*/   };
                           break;
                        };
                     };
                  };
SOURCE(17617, 37)
               if (((0 != lineOnly←v9204) || (0 != (* (( (ptr) &sp←v9248)+7) )))) {
SOURCE(17648, 6)
                  goto lab←L100025;
                  };
SOURCE(17686, 51)
               {
                  word idx161;
                  word limit162;
                  word idx163;
                  word limit164;
                  (* (( (ptr) &sp←v9248)+4) ) = ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+3))+(
                           idx161 = (* (( (ptr) &sp←v9248)+2) ),
                           limit162 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
                           BCK(idx161, limit162)
                           )))+6) ) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+3))+(
                           idx163 = (* (( (ptr) &sp←v9248)+2) ),
                           limit164 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
                           BCK(idx163, limit164)
                           )))+3) ));
                  };
SOURCE(17739, 79)
               {
                  word idx165;
                  word limit166;
                  word idx167;
                  word limit168;
                  word x169;
                  word x170;
                  word idx171;
                  (* (( (ptr) &sp←v9248)+6) ) = (
                     idx171 = (word) ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+3))+(
/*1*/   idx165 = (* (( (ptr) &sp←v9248)+2) ),
/*1*/   limit166 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
/*1*/   BCK(idx165, limit166)
/*1*/   )))+3) ) + (x169 = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+3))+(
/*1*/      idx167 = (* (( (ptr) &sp←v9248)+2) ),
/*1*/      limit168 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
/*1*/      BCK(idx167, limit168)
/*1*/      )))+4) ),
                        x170 = (* (( (ptr) gf←c49692)+35)/* selectionDescentLimit←v5492 */  ),
                        MIN( (unsigned) , x169, x170))),
                     SGNCK(idx171)
                     );
                  };
SOURCE(17820, 83)
               {
                  W2 var←c45244;
                  {
                     word pd172;
                     pd172 = (* (( (ptr) (* (( (ptr) gf←c49692)+194)/* var←c45212 */  ))+5) );
                     (void) ( *( (fPt) ((*  (ptr) pd172 ))))((word) &var←c45244, viewer←v9120, (* (( (ptr) &sp←v9248)+2) ), pos←v9148, pd172);
                     };
                  (* (( (ptr) &sp←v9248)+5) ) = var←c45244.f1;
                  (* (( (ptr) &sp←v9248)+3) ) = var←c45244.f0;
                  };
SOURCE(17905, 138)
               if (( (int)(* (( (ptr) &sp←v9248)+3) ) ==  (int)2147483647)) {
SOURCE(17936, 107)
                  if (( (int)(* (( (ptr) &sp←v9248)+2) ) ==  (int)(*  (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ) ))) {
SOURCE(17968, 30)
                     (* (( (ptr) &sp←v9248)+4) ) = 2147483647;
                     (* (( (ptr) &sp←v9248)+2) ) = 2147483647;
                     }
                  else {
SOURCE(18006, 27)
                     {
                        word idx173;
                        word limit174;
                        (* (( (ptr) &sp←v9248)+3) ) = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+3))+(
/*1*/      idx173 = (* (( (ptr) &sp←v9248)+2) ),
/*1*/      limit174 = (* (( (ptr) (* (( (ptr) &var←c49660)+9)/* lines←v15316 */  ))+2) ),
/*1*/      BCK(idx173, limit174)
/*1*/      )))+8) );
                        };
SOURCE(18035, 8)
                     (* (( (ptr) &sp←v9248)+5) ) = 0;
                     };
                  };
SOURCE(18049, 22)
               (* (( (ptr) &sp←v9248)+8) ) = 1;
               };
            };
         }
      else {
         lab←L100026: ;
         };
      };
   /* removed tail goto */ 
   lab←L100025: ;
   (*  (W9Pt) formal←c0295 ) = sp←v9248;
   return;
   }

static word IsPosPastLine←P4884(pos←v15392, line←v15420, formal←c49724)
   W2 pos←v15392;
   word line←v15420;
   word formal←c49724;
   {
   word var←c15464;
   word next←v15740;
   formal←c49724 = (formal←c49724 - 28);
   /* IsPosPastLine: */ 
SOURCE(15619, 21)
SOURCE(15700, 47)
   {
      word limit175;
      word limit176;
      next←v15740 = ((* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49724)+9) ))+3))+(
               limit175 = (* (( (ptr) (* (( (ptr) formal←c49724)+9) ))+2) ),
               BCK(line←v15420, limit175)
               )))+1) ) + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49724)+9) ))+3))+(
               limit176 = (* (( (ptr) (* (( (ptr) formal←c49724)+9) ))+2) ),
               BCK(line←v15420, limit176)
               )))+5) ));
      };
SOURCE(15749, 65)
   {
      word tc177;
      word limit178;
      if (( (int)pos←v15392.f1 >=  (int)next←v15740)) {
         tc177 =  (word) (( (((unsigned)(* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49724)+9) ))+3))+(
                  limit178 = (* (( (ptr) (* (( (ptr) formal←c49724)+9) ))+2) ),
                  BCK(line←v15420, limit178)
                  )))+2) ) << 1) >> 1) ) != 0);
         }
      else {
         tc177 =  (word) 0;
         };
      if (tc177) {
SOURCE(15801, 13)
         return(1);
         };
      };
SOURCE(15840, 16)
   return(0);
   }

static void FindPos←P4944(formal←c0305, pos←v15524, formal←c49756)
   word formal←c0305;
   W2 pos←v15524;
   word formal←c49756;
   {
   word found←v15568;
   word line←v15596;
   formal←c49756 = (formal←c49756 - 20);
   /* FindPos: */ 
SOURCE(15859, 15)
SOURCE(15930, 13)
   found←v15568 = 0;
SOURCE(15945, 188)
   {
      register word n←v15784;
      register word noName←c45276;
      n←v15784 = (* (( (ptr) formal←c49756)+4) );
      noName←c45276 = (*  (ptr) (* (( (ptr) formal←c49756)+9) ) );
      if (( (int)n←v15784 >  (int)noName←c45276)) {
         goto lab←L100032;
         };
      lab←L100035: ;
      {
         word limit179;
         if (((*  (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49756)+9) ))+3))+(
               limit179 = (* (( (ptr) (* (( (ptr) formal←c49756)+9) ))+2) ),
               BCK(n←v15784, limit179)
               )) ) == pos←v15524.f0)) {
SOURCE(16043, 39)
            {
               word limit180;
               if (( (int)pos←v15524.f1 <  (int)(* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49756)+9) ))+3))+(
                        limit180 = (* (( (ptr) (* (( (ptr) formal←c49756)+9) ))+2) ),
                        BCK(n←v15784, limit180)
                        )))+1) ))) {
SOURCE(16082, 4)
                  goto lab←L100033;
                  };
               };
SOURCE(16109, 12)
            found←v15568 = 1;
SOURCE(16123, 10)
            line←v15596 = n←v15784;
            }
         else {
            if ((0 != found←v15568)) {
SOURCE(16145, 4)
               goto lab←L100033;
               };
            };
         };
      if (( (int)n←v15784 >=  (int)noName←c45276)) {
         goto lab←L100032;
         };
      n←v15784 = (n←v15784 + 1);
      goto lab←L100035;
      lab←L100032: ;
      lab←L100033: ;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0305 ) = found←v15568;
   (* (( (ptr) formal←c0305)+1) ) = line←v15596;
   return;
   }

static void FixupSelection←P1620(selection←v9308, viewer←v9336, start←v9364, end←v9392)
   word selection←v9308;
   word viewer←v9336;
   word start←v9364;
   word end←v9392;
   {
   /* FixupSelection: */ 
SOURCE(18089, 624)
SOURCE(18185, 76)
   if ((0 != start←v9364)) {
SOURCE(18199, 62)
      (void) ComputePosPoint←P1560((word) (( (bPt) selection←v9308)+8), viewer←v9336, (*  (W2Pt) (( (ptr) selection←v9308)+2) ), 0, 0)
      ;
      };
SOURCE(18263, 450)
   if ((0 != end←v9392)) {
      if (XR←EqualWords((( (ptr) selection←v9308)+2), (( (ptr) selection←v9308)+11), 2)) {
SOURCE(18335, 31)
         (*  (W9Pt) (( (ptr) selection←v9308)+11) ) = (*  (W9Pt) (( (ptr) selection←v9308)+2) );
         }
      else {
         if (( (int)(* (( (ptr) selection←v9308)+4) ) ==  (int)2147483647)) {
SOURCE(18411, 34)
            (* (( (ptr) selection←v9308)+13) ) = 2147483647;
SOURCE(18447, 33)
            (* (( (ptr) selection←v9308)+19) ) = 1;
            }
         else {
SOURCE(18496, 219)
            {
               word firstLine←v15828;
SOURCE(18498, 144)
               firstLine←v15828 =  ( ( (int)(* (( (ptr) selection←v9308)+4) ) <=  (int)0) ? 0 :  ( (0 != (* (( (ptr) selection←v9308)+9)
                )) ? ((* (( (ptr) selection←v9308)+4) ) - 1) : (* (( (ptr) selection←v9308)+4) ) )  ) ;
SOURCE(18644, 69)
               (void) ComputePosPoint←P1560((word) (( (bPt) selection←v9308)+44), viewer←v9336, (*  (W2Pt) (( (ptr) selection←v9308)+11)
                   ), firstLine←v15828, 0);
               };
            };
         };
      };
   }

static void FixupCaret←P1680(formal←c0790)
   word formal←c0790;
   {
   W8 var←c49788;
   /* declaration of selection←v9452 skipped */ 
   register ptr gf←c49820 =  (ptr) &globalframe;
   /* declaration of var←c45308 skipped */ 
   /* declaration of lines←v15872 skipped */ 
   word node←v15900;
   word size←v15928;
   word var←c45372;
   word var←c45404;
   word var←c45436;
   word index←v41260;
   var←c49788.f4/* selection←v9452 */  = formal←c0790;
   /* FixupCaret: */ 
SOURCE(18722, 1662)
   {
      word tmpAddr181;
      tmpAddr181 = (word) (( (ptr) &var←c49788)+5)/* var←c45308 */ ;
      (*  (ptr) tmpAddr181 ) = ( ((word)  (fPt) PutCaretOnNextLine←P5256) );
      (* (( (ptr) tmpAddr181) + 1) ) = 1;
      };
SOURCE(18773, 57)
   var←c49788.f7/* lines←v15872 */  = (* (( (ptr) (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+1) ))+1) );
SOURCE(18832, 35)
   node←v15900 = (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+11) );
SOURCE(18869, 31)
   {
      word pd182;
      pd182 = (* (( (ptr) (* (( (ptr) gf←c49820)+192)/* var←c44604 */  ))+6) );
      size←v15928 = (word) ( *( (fPt) ((*  (ptr) pd182 ))))(node←v15900, pd182);
      };
SOURCE(19598, 786)
   if (((* (( (ptr) var←c49788.f4/* selection←v9452 */ )+24) ) == 0)) {
SOURCE(19635, 284)
      if ((0 != (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+9) ))) {
SOURCE(19667, 59)
         (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+21) ) = 2147483647;
         }
      else {
         {
            word var←c45340;
SOURCE(19728, 36)
            (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+20) ) = (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+5) );
SOURCE(19766, 153)
            var←c45340 = (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+4) );
            if ( ( ( (int)var←c45340 <  (int)0) ? 1 : ( (int)var←c45340 >  (int)(*  (ptr) var←c49788.f7/* lines←v15872 */  )) ) ) {
               (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+21) ) = 2147483647;
               }
            else {
               (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+21) ) = (((* (( (ptr) (*  (ptr) var←c49788.f4/* selection←v9452 */  ))+8)
                ) - (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+6) )) - (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+8) ));
               };
            };
         };
      }
   else {
      if ((0 != (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+18) ))) {
SOURCE(19977, 32)
         (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+21) ) = 2147483647;
         }
      else {
         {
            word x183;
            word tc184;
            var←c45372 = (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+12) );
            if ( ( ( (int)var←c45372 >=  (int)0) ? ( (int)var←c45372 <  (int)size←v15928) : 0 ) ) {
               var←c45404 = (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+13) );
               if (( (int)var←c45404 >=  (int)0)) {
                  tc184 =  (word) ( (int)var←c45404 <=  (int)(*  (ptr) var←c49788.f7/* lines←v15872 */  ));
                  }
               else {
                  tc184 =  (word) 0;
                  };
               }
            else {
               tc184 =  (word) 0;
               };
            if (tc184) {
               index←v41260 = (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+12) );
               {
                  word char←v16176;
                  {
                     word pd185;
                     pd185 = (* (( (ptr) (* (( (ptr) gf←c49820)+192)/* var←c44604 */  ))+4) );
                     char←v16176 = (word) ( *( (fPt) ((*  (ptr) pd185 ))))(node←v15900, index←v41260, pd185);
                     };
SOURCE(19017, 89)
                  if ((((word) char←v16176 >> 8) == 0)) {
SOURCE(19042, 64)
                     {
                        word var←c45468;
                        var←c45468 = BCK(char←v16176, 256);
                        if ((var←c45468 == 13) || (var←c45468 == 10)) {
SOURCE(19094, 12)
                           var←c45436 = 1;
                           goto lab←L100036;
                           };
                        };
                     };
SOURCE(19117, 13)
                  var←c45436 = 0;
                  };
               lab←L100036: ;
               x183 =  (word) (0 != var←c45436);
               }
            else {
               x183 =  (word) 0;
               };
            if (x183) {
SOURCE(20143, 20)
               (void) PutCaretOnNextLine←P5256((word) ((( (bPt) &var←c49788)+20)/* var←c45308 */ ));
               }
            else {
               {
                  word var←c45500;
SOURCE(20181, 50)
                  (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+20) ) = ((* (( (ptr) var←c49788.f4/* selection←v9452 */ )+14) ) + (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+16)
                   ));
SOURCE(20233, 151)
                  var←c45500 = (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+13) );
                  if ( ( ( (int)var←c45500 <  (int)0) ? 1 : ( (int)var←c45500 >  (int)(*  (ptr) var←c49788.f7/* lines←v15872 */  )) ) ) {
                     (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+21) ) = 2147483647;
                     }
                  else {
                     (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+21) ) = (((* (( (ptr) (*  (ptr) var←c49788.f4/* selection←v9452 */  ))+8)
                      ) - (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+15) )) - (* (( (ptr) var←c49788.f4/* selection←v9452 */ )+17) ));
                     };
                  };
               };
            };
         };
      };
   }

static void PutCaretOnNextLine←P5256(formal←c49852)
   word formal←c49852;
   {
   formal←c49852 = (formal←c49852 - 20);
   /* PutCaretOnNextLine: */ 
SOURCE(19135, 437)
SOURCE(19164, 408)
   {
      word var←c45532;
      var←c45532 = (* (( (ptr) (* (( (ptr) formal←c49852)+4) ))+13) );
      if ( ( ( (int)var←c45532 >=  (int)0) ? ( (int)var←c45532 <  (int)(*  (ptr) (* (( (ptr) formal←c49852)+7) ) )) : 0 ) ) {
SOURCE(19221, 180)
         {
            word nextLine←v16204;
SOURCE(19223, 40)
            nextLine←v16204 = ((* (( (ptr) (* (( (ptr) formal←c49852)+4) ))+13) ) + 1);
SOURCE(19265, 42)
            {
               word limit186;
               (* (( (ptr) (* (( (ptr) formal←c49852)+4) ))+20) ) = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49852)+7) ))+3))+(
                        limit186 = (* (( (ptr) (* (( (ptr) formal←c49852)+7) ))+2) ),
                        BCK(nextLine←v16204, limit186)
                        )))+7) );
               };
SOURCE(19309, 90)
            {
               word limit187;
               word limit188;
               (* (( (ptr) (* (( (ptr) formal←c49852)+4) ))+21) ) = (((* (( (ptr) (*  (ptr) (* (( (ptr) formal←c49852)+4) ) ))+8) ) - (* (
                  ( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49852)+7) ))+3))+(
                        limit187 = (* (( (ptr) (* (( (ptr) formal←c49852)+7) ))+2) ),
                        BCK(nextLine←v16204, limit187)
                        )))+6) )) - (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49852)+7) ))+3))+(
                        limit188 = (* (( (ptr) (* (( (ptr) formal←c49852)+7) ))+2) ),
                        BCK(nextLine←v16204, limit188)
                        )))+4) ));
               };
            };
         }
      else {
         if (( (int)var←c45532 ==  (int)(*  (ptr) (* (( (ptr) formal←c49852)+7) ) ))) {
SOURCE(19426, 52)
            {
               word idx189;
               word limit190;
               (* (( (ptr) (* (( (ptr) formal←c49852)+4) ))+20) ) = (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c49852)+7) ))+3))+(
                        idx189 = (* (( (ptr) (* (( (ptr) formal←c49852)+4) ))+13) ),
                        limit190 = (* (( (ptr) (* (( (ptr) formal←c49852)+7) ))+2) ),
                        BCK(idx189, limit190)
                        )))+7) );
               };
SOURCE(19480, 92)
            (* (( (ptr) (* (( (ptr) formal←c49852)+4) ))+21) ) = ((((* (( (ptr) (*  (ptr) (* (( (ptr) formal←c49852)+4) ) ))+8) ) - (* (
               ( (ptr) (* (( (ptr) formal←c49852)+4) ))+15) )) - (* (( (ptr) (* (( (ptr) formal←c49852)+4) ))+17) )) - (* (( (ptr) (* (( (ptr) formal←c49852)+4)
                ))+17) ));
            }
         else {
SOURCE(19588, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   }

static void KillSelection←P1740()
   {
   register ptr gf←c49884 =  (ptr) &globalframe;
   /* KillSelection: */ 
SOURCE(20396, 96)
SOURCE(20427, 65)
   {
      word pd191;
      pd191 = (* (( (ptr) (* (( (ptr) gf←c49884)+187)/* var←c43932 */  ))+4) );
      if (((word) ( *( (fPt) ((*  (ptr) pd191 ))))(pd191) != 0)) {
SOURCE(20466, 26)
         {
            word pd192;
            pd192 = (* (( (ptr) (* (( (ptr) gf←c49884)+187)/* var←c43932 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd192 ))))(0, 0, pd192);
            };
         };
      };
   }

static void ModifyPSel←P1800(formal←c0791)
   word formal←c0791;
   {
   W7 var←c49916;
   /* declaration of proc←v9528 skipped */ 
   register ptr gf←c49948 =  (ptr) &globalframe;
   /* declaration of var←c45564 skipped */ 
   var←c49916.f4/* proc←v9528 */  = formal←c0791;
   /* ModifyPSel: */ 
SOURCE(20498, 338)
   {
      word tmpAddr193;
      tmpAddr193 = (word) (( (ptr) &var←c49916)+5)/* var←c45564 */ ;
      (*  (ptr) tmpAddr193 ) = ( ((word)  (fPt) inner←P5364) );
      (* (( (ptr) tmpAddr193) + 1) ) = 1;
      };
SOURCE(20782, 54)
   (void) WithLockedSelection←P2160(0, (word) (( (bPt) &var←c49916)+20)/* var←c45564 */ , (* (( (ptr) gf←c49948)+62) ));
   }

static void inner←P5364(formal←c50044)
   word formal←c50044;
   {
   W6 var←c49980;
   register ptr gf←c50012 =  (ptr) &globalframe;
   /* declaration of root←v16308 skipped */ 
   formal←c50044 = (formal←c50044 - 20);
   var←c49980.f0 = formal←c50044;
   /* inner: */ 
SOURCE(20569, 205)
SOURCE(20585, 32)
   var←c49980.f4/* root←v16308 */  = (word) SelectionRoot←P2220((* ((( (ptr) gf←c50012)+17)/* pSel←v4456 */ ) ));
SOURCE(20619, 155)
   if ((var←c49980.f4/* root←v16308 */  != 0)) {
SOURCE(20636, 140)
      {
         /* declaration of tSel←v16352 skipped */ 
SOURCE(20638, 25)
         var←c49980.f5/* tSel←v16352 */  = (word) Alloc←P420();
SOURCE(20665, 30)
         (void) Copy←P540((* (( (ptr) gf←c50012)+17)/* pSel←v4456 */  ), var←c49980.f5/* tSel←v16352 */ );
SOURCE(20697, 39)
         {
            word var←c0693;
            var←c0693 = (word) &var←c49980;
             (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7560) ), ( ((word)  (fPt) NoName←Q8100) ), var←c0693);
            };
SOURCE(20738, 24)
         (void) MakeSelection←P1200(var←c49980.f5/* tSel←v16352 */ , 0, 0, 0, 1);
SOURCE(20764, 10)
         (void) Free←P480(var←c49980.f5/* tSel←v16352 */ );
         };
      };
   }

static word NoName←Q7560(formal←c0642)
   word formal←c0642;
   {
SOURCE(20697, 39)
   {
      word pd194;
      pd194 = (* (( (ptr) (*  (ptr) formal←c0642 ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd194 ))))((* (( (ptr) formal←c0642)+4) ), (* (( (ptr) formal←c0642)+5) ), pd194);
      };
   return(0);
   }

static void SelectEverything←P1860()
   {
   W6 var←c50076;
   /* declaration of var←c45596 skipped */ 
   /* SelectEverything: */ 
SOURCE(20842, 345)
   {
      word tmpAddr195;
      tmpAddr195 = (word) (( (ptr) &var←c50076)+4)/* var←c45596 */ ;
      (*  (ptr) tmpAddr195 ) = ( ((word)  (fPt) DoSelEverything←P5472) );
      (* (( (ptr) tmpAddr195) + 1) ) = 1;
      };
SOURCE(21158, 29)
   (void) ModifyPSel←P1800((word) ((( (bPt) &var←c50076)+16)/* var←c45596 */ ));
   }

static void DoSelEverything←P5472(root←v16472, tSel←v16500, formal←c50140)
   word root←v16472;
   word tSel←v16500;
   word formal←c50140;
   {
   register ptr gf←c50108 =  (ptr) &globalframe;
   formal←c50140 = (formal←c50140 - 16);
   /* DoSelEverything: */ 
SOURCE(20876, 277)
SOURCE(20932, 41)
   {
      word pd196;
      pd196 = (* (( (ptr) (* (( (ptr) gf←c50108)+193)/* var←c44668 */  ))+9) );
      root←v16472 = (word) ( *( (fPt) ((*  (ptr) pd196 ))))((* ((( (ptr) tSel←v16500)+2)) ), pd196);
      };
SOURCE(20975, 47)
   {
      word var←c45628;
      {
         word pd197;
         pd197 = (* (( (ptr) (* (( (ptr) gf←c50108)+193)/* var←c44668 */  ))+28) );
         var←c45628 = (word) ( *( (fPt) ((*  (ptr) pd197 ))))(root←v16472, pd197);
         };
      (* (( (ptr) tSel←v16500)+2) ) = var←c45628;
      (* (( (ptr) tSel←v16500)+3) ) = 0;
      };
SOURCE(21024, 45)
   {
      word pd198;
      pd198 = (* (( (ptr) (* (( (ptr) gf←c50108)+193)/* var←c44668 */  ))+26) );
      (* (( (ptr) tSel←v16500)+11) ) = (word) ( *( (fPt) ((*  (ptr) pd198 ))))(root←v16472, pd198);
      };
SOURCE(21071, 55)
   {
      word var←c45660;
      {
         word pd199;
         pd199 = (* (( (ptr) (* (( (ptr) gf←c50108)+192)/* var←c44604 */  ))+6) );
         var←c45660 = ((word) ( *( (fPt) ((*  (ptr) pd199 ))))((* ((( (ptr) tSel←v16500)+11)) ), pd199) - 1);
         };
      (* (( (ptr) tSel←v16500)+12) ) = var←c45660;
      };
SOURCE(21128, 25)
   (* (( (ptr) tSel←v16500)+22) ) = 4;
   }

static void PendingDeleteSelection←P1920()
   {
   W6 var←c50172;
   /* declaration of var←c45692 skipped */ 
   /* PendingDeleteSelection: */ 
SOURCE(21191, 136)
   {
      word tmpAddr200;
      tmpAddr200 = (word) (( (ptr) &var←c50172)+4)/* var←c45692 */ ;
      (*  (ptr) tmpAddr200 ) = ( ((word)  (fPt) DoPDel←P5532) );
      (* (( (ptr) tmpAddr200) + 1) ) = 1;
      };
SOURCE(21307, 20)
   (void) ModifyPSel←P1800((word) ((( (bPt) &var←c50172)+16)/* var←c45692 */ ));
   }

static void DoPDel←P5532(root←v16604, tSel←v16632, formal←c50204)
   word root←v16604;
   word tSel←v16632;
   word formal←c50204;
   {
   formal←c50204 = (formal←c50204 - 16);
   /* DoPDel: */ 
SOURCE(21231, 73)
SOURCE(21278, 26)
   (* (( (ptr) tSel←v16632)+26) ) = 1;
   }

static void NotPendingDeleteSelection←P1980()
   {
   W6 var←c50236;
   /* declaration of var←c45724 skipped */ 
   /* NotPendingDeleteSelection: */ 
SOURCE(21331, 147)
   {
      word tmpAddr201;
      tmpAddr201 = (word) (( (ptr) &var←c50236)+4)/* var←c45724 */ ;
      (*  (ptr) tmpAddr201 ) = ( ((word)  (fPt) DoNotPDel←P5592) );
      (* (( (ptr) tmpAddr201) + 1) ) = 1;
      };
SOURCE(21455, 23)
   (void) ModifyPSel←P1800((word) ((( (bPt) &var←c50236)+16)/* var←c45724 */ ));
   }

static void DoNotPDel←P5592(root←v16736, tSel←v16764, formal←c50268)
   word root←v16736;
   word tSel←v16764;
   word formal←c50268;
   {
   formal←c50268 = (formal←c50268 - 16);
   /* DoNotPDel: */ 
SOURCE(21374, 78)
SOURCE(21424, 28)
   (* (( (ptr) tSel←v16764)+26) ) = 0;
   }

static void CaretBeforeSelection←P2040()
   {
   W6 var←c50300;
   /* declaration of var←c45756 skipped */ 
   /* CaretBeforeSelection: */ 
SOURCE(21482, 163)
   {
      word tmpAddr202;
      tmpAddr202 = (word) (( (ptr) &var←c50300)+4)/* var←c45756 */ ;
      (*  (ptr) tmpAddr202 ) = ( ((word)  (fPt) DoCaretBeforeSelection←P5652) );
      (* (( (ptr) tmpAddr202) + 1) ) = 1;
      };
SOURCE(21609, 36)
   (void) ModifyPSel←P1800((word) ((( (bPt) &var←c50300)+16)/* var←c45756 */ ));
   }

static void DoCaretBeforeSelection←P5652(root←v16868, tSel←v16896, formal←c50332)
   word root←v16868;
   word tSel←v16896;
   word formal←c50332;
   {
   formal←c50332 = (formal←c50332 - 16);
   /* DoCaretBeforeSelection: */ 
SOURCE(21520, 86)
SOURCE(21582, 24)
   (* (( (ptr) tSel←v16896)+24) ) = 0;
   }

static void CaretAfterSelection←P2100()
   {
   W6 var←c50364;
   /* declaration of var←c45788 skipped */ 
   /* CaretAfterSelection: */ 
SOURCE(21649, 193)
   {
      word tmpAddr203;
      tmpAddr203 = (word) (( (ptr) &var←c50364)+4)/* var←c45788 */ ;
      (*  (ptr) tmpAddr203 ) = ( ((word)  (fPt) DoCaretAfterSelection←P5712) );
      (* (( (ptr) tmpAddr203) + 1) ) = 1;
      };
SOURCE(21807, 35)
   (void) ModifyPSel←P1800((word) ((( (bPt) &var←c50364)+16)/* var←c45788 */ ));
   }

static void DoCaretAfterSelection←P5712(root←v17000, tSel←v17028, formal←c50396)
   word root←v17000;
   word tSel←v17028;
   word formal←c50396;
   {
   formal←c50396 = (formal←c50396 - 16);
   /* DoCaretAfterSelection: */ 
SOURCE(21686, 118)
SOURCE(21748, 56)
   if (((* (( (ptr) tSel←v17028)+22) ) != 0)) {
SOURCE(21781, 23)
      (* (( (ptr) tSel←v17028)+24) ) = 1;
      };
   }

static void WithLockedSelection←P2160(formal←c0792, formal←c0793, why←v9812)
   word formal←c0792;
   word formal←c0793;
   word why←v9812;
   {
   W6 var←c50428;
   /* declaration of which←v9756 skipped */ 
   /* declaration of inner←v9784 skipped */ 
   var←c50428.f4/* which←v9756 */  = formal←c0792;
   var←c50428.f5/* inner←v9784 */  = formal←c0793;
   /* WithLockedSelection: */ 
SOURCE(21847, 150)
SOURCE(21922, 19)
   (void) LockSel←P240(var←c50428.f4/* which←v9756 */ , why←v9812);
SOURCE(21943, 36)
   {
      word var←c0694;
      var←c0694 = (word) &var←c50428;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7620) ), ( ((word)  (fPt) NoName←Q8040) ), var←c0694);
      };
SOURCE(21981, 16)
   (void) UnlockSel←P300(var←c50428.f4/* which←v9756 */ );
   }

static word NoName←Q7620(formal←c0649)
   word formal←c0649;
   {
SOURCE(21943, 36)
   {
      word pd204;
      pd204 = (* (( (ptr) formal←c0649)+5) );
      (void) ( *( (fPt) ((*  (ptr) pd204 ))))(pd204);
      };
   return(0);
   }

static word SelectionRoot←P2220(s←v9888)
   word s←v9888;
   {
   register ptr gf←c50460 =  (ptr) &globalframe;
   word root←v9932;
   /* SelectionRoot: */ 
SOURCE(22003, 250)
SOURCE(22003, 250)
   root←v9932 = 0;
SOURCE(22077, 61)
   if (((*  (ptr) s←v9888 ) == 0)) {
SOURCE(22098, 40)
      {
         word pd205;
         pd205 = (* (( (ptr) (* (( (ptr) gf←c50460)+193)/* var←c44668 */  ))+9) );
         return((word) ( *( (fPt) ((*  (ptr) pd205 ))))((* ((( (ptr) s←v9888)+2)) ), pd205));
         };
      };
SOURCE(22140, 113)
   {
      word var←c45852;
      var←c45852 = (* (( (ptr) (*  (ptr) s←v9888 ))+26) );
      if ((var←c45852 == 0)) {
         goto lab←L100041;
         };
      if (((* (( (ptr) gf←c50460)+48) ) == XR←GetReferentType(var←c45852))) {
         {
            word tdd←v17056;
            tdd←v17056 = var←c45852;
SOURCE(22211, 17)
            return((*  (ptr) tdd←v17056 ));
            };
         }
      else {
         lab←L100041: ;
SOURCE(22241, 12)
         return(0);
         };
      };
   }

static void InputModify←P2280(self←v27052, change←v27080)
   word self←v27052;
   word change←v27080;
   {
   W7 var←c50492;
   register ptr gf←c50524 =  (ptr) &globalframe;
   /* declaration of var←c45884 skipped */ 
   /* InputModify: */ 
SOURCE(22259, 551)
   {
      word tmpAddr206;
      tmpAddr206 = (word) (( (ptr) &var←c50492)+4)/* var←c45884 */ ;
      (*  (ptr) tmpAddr206 ) = ( ((word)  (fPt) inner←P5916) );
      (* (( (ptr) tmpAddr206) + 1) ) = 1;
      };
SOURCE(22308, 502)
   {
      word var←c45916;
      var←c45916 = (* (( (ptr) self←v27052)+26) );
      if ((var←c45916 == 0)) {
         goto lab←L100042;
         };
      if (((* (( (ptr) gf←c50524)+48) ) == XR←GetReferentType(var←c45916))) {
         {
            word tdd←v17100;
            tdd←v17100 = var←c45916;
SOURCE(22377, 433)
            {
               word var←c45948;
               var←c45948 = change←v27080;
               switch (var←c45948) {
                  case 0: case 2: 
SOURCE(22408, 58)
                     {
                        word pd207;
                        pd207 = (* (( (ptr) (* (( (ptr) gf←c50524)+195)/* var←c45980 */  ))+4) );
                        (void) ( *( (fPt) ((*  (ptr) pd207 ))))(self←v27052, (* (( (ptr) (* (( (ptr) gf←c50524)+17)/* pSel←v4456 */  ))+20) ), (* (
/*1*/   ( (ptr) (* (( (ptr) gf←c50524)+17)/* pSel←v4456 */  ))+21) ), 0, pd207);
                        };
                     break;
                  case 3: 
SOURCE(22476, 298)
                     {
                        /* declaration of prop←v17172 skipped */ 
SOURCE(22545, 70)
                        {
                           word pd208;
                           pd208 = (* (( (ptr) (* (( (ptr) gf←c50524)+186)/* var←c43836 */  ))+29) );
                           var←c50492.f6/* prop←v17172 */  = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd208 ))))(self←v27052, (* (( (ptr) gf←c50524)+63)
/*1*/       ), pd208), (* (( (ptr) gf←c50524)+41) ));
                           };
SOURCE(22617, 25)
                        {
                           word pd209;
                           pd209 = (* (( (ptr) (* (( (ptr) gf←c50524)+195)/* var←c45980 */  ))+5) );
                           (void) ( *( (fPt) ((*  (ptr) pd209 ))))(0, pd209);
                           };
SOURCE(22644, 76)
                        if ((var←c50492.f6/* prop←v17172 */  == 0)) {
SOURCE(22661, 59)
                           {
/*1*/   word var←c46012;
/*1*/   {
/*1*/      word var←c46044;
/*1*/      var←c46044 = (word) Create←P360();
/*1*/      var←c50492.f6/* prop←v17172 */  = var←c46044;
/*1*/      var←c46012 = var←c46044;
/*1*/      };
/*1*/   {
/*1*/      word pd210;
/*1*/      pd210 = (* (( (ptr) (* (( (ptr) gf←c50524)+186)/* var←c43836 */  ))+28) );
/*1*/      (void) ( *( (fPt) ((*  (ptr) pd210 ))))(self←v27052, (* (( (ptr) gf←c50524)+63) ), var←c46012, pd210);
/*1*/      };
/*1*/   };
                           };
SOURCE(22722, 50)
                        (void) WithLockedSelection←P2160(0, (word) (( (bPt) &var←c50492)+16)/* var←c45884 */ , (* (( (ptr) gf←c50524)+64) ));
                        };
                     break;
                  case 1: 
SOURCE(22785, 25)
                     {
                        word pd211;
                        pd211 = (* (( (ptr) (* (( (ptr) gf←c50524)+195)/* var←c45980 */  ))+5) );
                        (void) ( *( (fPt) ((*  (ptr) pd211 ))))(0, pd211);
                        };
                     break;
                  default: 
SOURCE(22823, 5)
                     (void) XR←RaiseUnnamedError();
                     break;
                  };
               };
            };
         }
      else {
         lab←L100042: ;
         };
      };
   }

static void inner←P5916(formal←c50588)
   word formal←c50588;
   {
   register ptr gf←c50556 =  (ptr) &globalframe;
   formal←c50588 = (formal←c50588 - 16);
   /* inner: */ 
SOURCE(22478, 14)
SOURCE(22493, 30)
   (void) Copy←P540((* (( (ptr) gf←c50556)+17)/* pSel←v4456 */  ), (* (( (ptr) formal←c50588)+6) ));
SOURCE(22525, 17)
   (void) Deselect←P1140(0);
   }

static void CallWithSelAndDocAndTddLocks←P2340(viewer←v9992, formal←c0794, formal←c0795)
   word viewer←v9992;
   word formal←c0794;
   word formal←c0795;
   {
   W11 var←c50620;
   /* declaration of id←v10020 skipped */ 
   /* declaration of proc←v10048 skipped */ 
   register ptr gf←c50652 =  (ptr) &globalframe;
   /* declaration of var←c46076 skipped */ 
   (* (( (ptr) &var←c50620)+4)/* id←v10020 */  ) = formal←c0794;
   (* (( (ptr) &var←c50620)+5)/* proc←v10048 */  ) = formal←c0795;
   /* CallWithSelAndDocAndTddLocks: */ 
SOURCE(22846, 805)
   {
      word tmpAddr212;
      tmpAddr212 = (word) (( (ptr) &var←c50620)+6)/* var←c46076 */ ;
      (*  (ptr) tmpAddr212 ) = ( ((word)  (fPt) Cleanup←P6072) );
      (* (( (ptr) tmpAddr212) + 1) ) = 1;
      };
SOURCE(23005, 646)
   if ((viewer←v9992 != 0)) {
SOURCE(23026, 625)
      {
         word var←c46108;
         var←c46108 = (* (( (ptr) viewer←v9992)+26) );
         if ((var←c46108 == 0)) {
            goto lab←L100043;
            };
         if (((* (( (ptr) gf←c50652)+48) ) == XR←GetReferentType(var←c46108))) {
            {
               /* declaration of tdd←v17232 skipped */ 
               (* (( (ptr) &var←c50620)+8)/* tdd←v17232 */  ) = var←c46108;
SOURCE(23095, 561)
               {
                  /* declaration of tSel←v17276 skipped */ 
                  /* declaration of lockRef←v17304 skipped */ 
SOURCE(23097, 21)
                  (* (( (ptr) &var←c50620)+9)/* tSel←v17276 */  ) = 0;
SOURCE(23120, 33)
                  (* (( (ptr) &var←c50620)+10)/* lockRef←v17304 */  ) = 0;
SOURCE(23277, 374)
                  if (((* (( (ptr) &var←c50620)+8)/* tdd←v17232 */  ) != 0)) {
SOURCE(23297, 354)
                     {
                        word var←c0695;
                        var←c0695 = (word) &var←c50620;
                         (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7680) ), ( ((word)  (fPt) NoName←Q7980) ), var←c0695);
                        };
                     };
                  };
               };
            }
         else {
            lab←L100043: ;
            };
         };
      };
   }

static word NoName←Q7680(formal←c0656)
   word formal←c0656;
   {
   register ptr gf←c0655 =  (ptr) &globalframe;
SOURCE(23325, 43)
   (void) LockSel←P240((* (( (ptr) formal←c0656)+4) ), (* (( (ptr) gf←c0655)+65) ));
SOURCE(23370, 77)
   {
      word pd213;
      pd213 = (* (( (ptr) (* (( (ptr) gf←c0655)+183)/* var←c43388 */  ))+8) );
      (* (( (ptr) formal←c0656)+10) ) = (word) ( *( (fPt) ((*  (ptr) pd213 ))))((* (( (ptr) formal←c0656)+8) ), (* (( (ptr) gf←c0655)+65)
          ), 0, 0, 0, pd213);
      };
SOURCE(23449, 190)
   if (((* (( (ptr) formal←c0656)+10) ) != 0)) {
SOURCE(23469, 170)
      {
         word sel←v17392;
SOURCE(23471, 102)
         {
            word var←c46140;
            var←c46140 = (* (( (ptr) formal←c0656)+4) );
            switch (var←c46140) {
               case 0: 
                  sel←v17392 = (* (( (ptr) gf←c0655)+17)/* pSel←v4456 */  );
                  break;
               case 1: 
                  sel←v17392 = (* (( (ptr) gf←c0655)+18)/* sSel←v4484 */  );
                  break;
               case 2: 
                  sel←v17392 = (* (( (ptr) gf←c0655)+19)/* fSel←v4512 */  );
                  break;
               default: 
                  sel←v17392 = (
                     XR←RaiseUnnamedError(), 0
                     );
                  break;
               };
            };
SOURCE(23575, 14)
         (* (( (ptr) formal←c0656)+9) ) = (word) Alloc←P420();
SOURCE(23591, 29)
         (void) Copy←P540(sel←v17392, (* (( (ptr) formal←c0656)+9) ));
SOURCE(23622, 17)
         {
            word pd214;
            pd214 = (* (( (ptr) formal←c0656)+5) );
            (void) ( *( (fPt) ((*  (ptr) pd214 ))))((* (( (ptr) formal←c0656)+8) ), (* (( (ptr) formal←c0656)+9) ), pd214);
            };
         };
      };
SOURCE(23642, 9)
   (void) Cleanup←P6072((word) ((( (bPt) formal←c0656)+24)));
   return(0);
   }

static void Cleanup←P6072(formal←c50716)
   word formal←c50716;
   {
   register ptr gf←c50684 =  (ptr) &globalframe;
   formal←c50716 = (formal←c50716 - 24);
   /* Cleanup: */ 
SOURCE(23155, 16)
SOURCE(23173, 13)
   (void) UnlockSel←P300((* ((( (ptr) formal←c50716)+4)) ));
SOURCE(23188, 53)
   if (((* (( (ptr) formal←c50716)+10) ) != 0)) {
SOURCE(23210, 31)
      {
         word pd215;
         pd215 = (* (( (ptr) (* (( (ptr) gf←c50684)+183)/* var←c43388 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd215 ))))((* ((( (ptr) formal←c50716)+8)) ), pd215);
         };
      };
SOURCE(23243, 31)
   if (((* (( (ptr) formal←c50716)+9) ) != 0)) {
SOURCE(23262, 12)
      (void) Free←P480((* ((( (ptr) formal←c50716)+9)) ));
      };
   }

static void ShowPosition←P2400(viewer←v10196, skipCommentNodes←v10224)
   word viewer←v10196;
   word skipCommentNodes←v10224;
   {
   W7 var←c50748;
   register ptr gf←c50780 =  (ptr) &globalframe;
   /* ShowPosition: */ 
SOURCE(23672, 706)
SOURCE(23748, 630)
SOURCE(23750, 24)
   {
      word countI←v17436 =  (word) -1;
      word countF←v17464 =  (word) -1;
      word sel←v17492;
      word selLen←v17520;
      word sepStart←v17548;
SOURCE(23776, 37)
      {
         word pd216;
         pd216 = (* (( (ptr) (* (( (ptr) gf←c50780)+196)/* var←c46172 */  ))+4) );
         sel←v17492 = (word) ( *( (fPt) ((*  (ptr) pd216 ))))(pd216);
         };
SOURCE(23815, 28)
      {
         word pd217;
         pd217 = (* (( (ptr) (* (( (ptr) gf←c50780)+197)/* var←c46204 */  ))+15) );
         selLen←v17520 = (word) ( *( (fPt) ((*  (ptr) pd217 ))))(sel←v17492, pd217);
         };
SOURCE(23845, 45)
      {
         word pd218;
         pd218 = (* (( (ptr) (* (( (ptr) gf←c50780)+197)/* var←c46204 */  ))+10) );
         sepStart←v17548 = (word) ( *( (fPt) ((*  (ptr) pd218 ))))(sel←v17492, 0, (* (( (ptr) gf←c50780)+66) ), 1, pd218);
         };
SOURCE(23893, 74)
      {
         /* declaration of var←c46236 skipped */ 
         {
            word pd219;
            pd219 = (* (( (ptr) (* (( (ptr) gf←c50780)+197)/* var←c46204 */  ))+17) );
            var←c50748.f4/* var←c46236 */  = (word) ( *( (fPt) ((*  (ptr) pd219 ))))(sel←v17492, 0, sepStart←v17548, pd219);
            };
         {
            /* declaration of var←c05 skipped */ 
            var←c50748.f5/* var←c05 */  = (* (( (ptr) (* (( (ptr) gf←c50780)+198)/* var←c46268 */  ))+10) );
            {
               /* declaration of var←c06 skipped */ 
               {
                  word var←c07;
                  {
                     word var←c0696;
                     var←c0696 = (word) &var←c50748;
                     var←c07 = (word) XR←Enable(( ((word)  (fPt) NoName←Q7800) ), ( ((word)  (fPt) NoName←Q7920) ), var←c0696);
                     };
                  if ((var←c07 == 2)) {
                     goto lab←L100046;
                     };
                  };
               countI←v17436 = var←c50748.f6/* var←c06 */ ;
               };
            };
         };
SOURCE(23980, 19)
      if (( (int)countI←v17436 <  (int)0)) {
SOURCE(23999, 10)
         goto lab←L100046;
         };
SOURCE(24011, 133)
      if (( (int)sepStart←v17548 <  (int)selLen←v17520)) {
SOURCE(24037, 71)
         {
            /* declaration of var←c46300 skipped */ 
            {
               word pd220;
               pd220 = (* (( (ptr) (* (( (ptr) gf←c50780)+197)/* var←c46204 */  ))+17) );
               var←c50748.f4/* var←c46300 */  = (word) ( *( (fPt) ((*  (ptr) pd220 ))))(sel←v17492, (sepStart←v17548 + 2), 2147483647, pd220)
               ;
               };
            {
               /* declaration of var←c08 skipped */ 
               var←c50748.f5/* var←c08 */  = (* (( (ptr) (* (( (ptr) gf←c50780)+198)/* var←c46268 */  ))+10) );
               {
                  /* declaration of var←c09 skipped */ 
                  {
                     word var←c010;
                     {
                        word var←c0697;
                        var←c0697 = (word) &var←c50748;
                        var←c010 = (word) XR←Enable(( ((word)  (fPt) NoName←Q7740) ), ( ((word)  (fPt) NoName←Q7860) ), var←c0697);
                        };
                     if ((var←c010 == 2)) {
                        goto lab←L100046;
                        };
                     };
                  countF←v17464 = var←c50748.f6/* var←c09 */ ;
                  };
               };
            };
         }
      else {
SOURCE(24125, 19)
         countF←v17464 = (countI←v17436 + 3);
         };
SOURCE(24146, 19)
      if (( (int)countF←v17464 <  (int)0)) {
SOURCE(24165, 10)
         goto lab←L100046;
         };
SOURCE(24177, 81)
      (void) ShowGivenPositionRange←P2700(viewer←v10196, 2, countI←v17436, countF←v17464, skipCommentNodes←v10224, 0);
      };
   goto lab←L100051;
   lab←L100046: ;
SOURCE(24275, 100)
SOURCE(24296, 68)
   {
      word pd221;
      pd221 = (* (( (ptr) (* (( (ptr) gf←c50780)+199)/* var←c46332 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd221 ))))((* (( (ptr) gf←c50780)+67) ), 1, pd221);
      };
SOURCE(24366, 7)
   {
      word pd222;
      pd222 = (* (( (ptr) (* (( (ptr) gf←c50780)+199)/* var←c46332 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd222 ))))(pd222);
      };
   lab←L100051: ;
   }

static word NoName←Q7740(formal←c0660)
   word formal←c0660;
   {
SOURCE(24037, 71)
   {
      word pd223;
      pd223 = (* (( (ptr) formal←c0660)+5) );
      (* (( (ptr) formal←c0660)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd223 ))))((* (( (ptr) formal←c0660)+4) ), 8, pd223);
      };
   return(0);
   }

static word NoName←Q7800(formal←c0661)
   word formal←c0661;
   {
SOURCE(23893, 74)
   {
      word pd224;
      pd224 = (* (( (ptr) formal←c0661)+5) );
      (* (( (ptr) formal←c0661)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd224 ))))((* (( (ptr) formal←c0661)+4) ), 8, pd224);
      };
   return(0);
   }

static void Position←P2460(viewer←v10284)
   word viewer←v10284;
   {
   /* Position: */ 
SOURCE(24383, 94)
SOURCE(24425, 52)
   (void) ShowPosition←P2400(viewer←v10284, 1);
   }

static word FmtRange←P2520(r←v10416, skipCommentNodes←v10444)
   W2 r←v10416;
   word skipCommentNodes←v10444;
   {
   register ptr gf←c50812 =  (ptr) &globalframe;
   word rope←v10488;
   /* FmtRange: */ 
SOURCE(24524, 338)
SOURCE(24524, 338)
   rope←v10488 = 0;
SOURCE(24599, 145)
   if (( (int)r←v10416.f0 ==  (int)r←v10416.f1)) {
SOURCE(24623, 41)
      {
         word pd225;
         pd225 = (* (( (ptr) (* (( (ptr) gf←c50812)+198)/* var←c46268 */  ))+27) );
         rope←v10488 = (word) ( *( (fPt) ((*  (ptr) pd225 ))))(r←v10416.f0, 8, 1, pd225);
         };
      }
   else {
SOURCE(24664, 80)
      {
         word var←c46364;
         word var←c46396;
         {
            word pd226;
            pd226 = (* (( (ptr) (* (( (ptr) gf←c50812)+198)/* var←c46268 */  ))+27) );
            var←c46364 = (word) ( *( (fPt) ((*  (ptr) pd226 ))))(r←v10416.f0, 8, 1, pd226);
            };
         {
            word pd227;
            pd227 = (* (( (ptr) (* (( (ptr) gf←c50812)+198)/* var←c46268 */  ))+27) );
            var←c46396 = (word) ( *( (fPt) ((*  (ptr) pd227 ))))(r←v10416.f1, 8, 1, pd227);
            };
         {
            word pd228;
            pd228 = (* (( (ptr) (* (( (ptr) gf←c50812)+197)/* var←c46204 */  ))+5) );
            rope←v10488 = (word) ( *( (fPt) ((*  (ptr) pd228 ))))(var←c46364, (* (( (ptr) gf←c50812)+66) ), var←c46396, 0, 0, pd228);
            };
         };
      };
SOURCE(24746, 107)
   {
      word pd229;
      pd229 = (* (( (ptr) (* (( (ptr) gf←c50812)+197)/* var←c46204 */  ))+6) );
      rope←v10488 = (word) ( *( (fPt) ((*  (ptr) pd229 ))))(rope←v10488,  ( (0 != skipCommentNodes←v10444) ? (* (( (ptr) gf←c50812)+68)
          ) : (* (( (ptr) gf←c50812)+69) ) ) , pd229);
      };
SOURCE(24855, 7)
   return(rope←v10488);
   }

static word CurrentPositionMessage←P2580(viewer←v10548, skipCommentNodes←v10576)
   word viewer←v10548;
   word skipCommentNodes←v10576;
   {
   register ptr gf←c50844 =  (ptr) &globalframe;
   word var←c10620;
   word tSel←v17592;
   W2 pos←v17620;
   /* CurrentPositionMessage: */ 
SOURCE(24866, 355)
SOURCE(24962, 39)
   {
      word pd230;
      pd230 = (* (( (ptr) (* (( (ptr) gf←c50844)+196)/* var←c46172 */  ))+5) );
      tSel←v17592 = (word) ( *( (fPt) ((*  (ptr) pd230 ))))(1, pd230);
      };
SOURCE(25003, 176)
   {
      word pd231;
      pd231 = (* (( (ptr) (* (( (ptr) gf←c50844)+193)/* var←c44668 */  ))+23) );
      pos←v17620.f0 = (word) ( *( (fPt) ((*  (ptr) pd231 ))))((*  (W2Pt) (( (ptr) tSel←v17592)+2) ), 1, skipCommentNodes←v10576, pd231)
      ;
      };
   {
      word pd232;
      pd232 = (* (( (ptr) (* (( (ptr) gf←c50844)+193)/* var←c44668 */  ))+23) );
      pos←v17620.f1 = (word) ( *( (fPt) ((*  (ptr) pd232 ))))((*  (W2Pt) (( (ptr) tSel←v17592)+11) ), 1, skipCommentNodes←v10576, pd232)
      ;
      };
SOURCE(25181, 40)
   return((word) FmtRange←P2520(pos←v17620, skipCommentNodes←v10576));
   }

static void ShowGivenPosition←P2640(formal←c0796, formal←c0797, formal←c0798)
   word formal←c0796;
   word formal←c0797;
   word formal←c0798;
   {
   W9 var←c50876;
   /* declaration of viewer←v10680 skipped */ 
   /* declaration of pos←v10708 skipped */ 
   /* declaration of skipCommentNodes←v10736 skipped */ 
   /* declaration of var←c46492 skipped */ 
   (* (( (ptr) &var←c50876)+4)/* viewer←v10680 */  ) = formal←c0796;
   (* (( (ptr) &var←c50876)+5)/* pos←v10708 */  ) = formal←c0797;
   (* (( (ptr) &var←c50876)+6)/* skipCommentNodes←v10736 */  ) = formal←c0798;
   /* ShowGivenPosition: */ 
SOURCE(25227, 1074)
   {
      word tmpAddr233;
      tmpAddr233 = (word) (( (ptr) &var←c50876)+7)/* var←c46492 */ ;
      (*  (ptr) tmpAddr233 ) = ( ((word)  (fPt) DoPosition←P6228) );
      (* (( (ptr) tmpAddr233) + 1) ) = 1;
      };
SOURCE(26243, 58)
   (void) CallWithSelAndDocAndTddLocks←P2340((* (( (ptr) &var←c50876)+4)/* viewer←v10680 */  ), 2, (word) (( (bPt) &var←c50876)+28)
      /* var←c46492 */ );
   }

static void DoPosition←P6228(tdd←v17740, tSel←v17768, formal←c50940)
   word tdd←v17740;
   word tSel←v17768;
   word formal←c50940;
   {
   register ptr gf←c50908 =  (ptr) &globalframe;
   W2 first←v17796;
   formal←c50940 = (formal←c50940 - 28);
   /* DoPosition: */ 
SOURCE(25320, 918)
SOURCE(25397, 61)
   {
      word pd234;
      pd234 = (* (( (ptr) (* (( (ptr) gf←c50908)+193)/* var←c44668 */  ))+28) );
      first←v17796.f0 = (word) ( *( (fPt) ((*  (ptr) pd234 ))))((*  (ptr) (tdd←v17740) ), pd234);
      };
   first←v17796.f1 = 0;
SOURCE(25460, 62)
   {
      word x235;
      word pd236;
      word x237;
      pd236 = (* (( (ptr) (* (( (ptr) gf←c50908)+193)/* var←c44668 */  ))+23) );
      (* (( (ptr) formal←c50940)+5) ) = (x235 = (* (( (ptr) formal←c50940)+5) ),
         x237 = (word) ( *( (fPt) ((*  (ptr) pd236 ))))(first←v17796, 1, (* (( (ptr) formal←c50940)+6) ), pd236),
         MAX((int)(word), x235, x237));
      };
SOURCE(25524, 86)
   {
      W2 var←c46556;
      {
         word pd238;
         pd238 = (* (( (ptr) (* (( (ptr) gf←c50908)+193)/* var←c44668 */  ))+20) );
         (void) ( *( (fPt) ((*  (ptr) pd238 ))))((word) &var←c46556, (*  (ptr) tdd←v17740 ), (* (( (ptr) formal←c50940)+5) ), 1, (* (
               ( (ptr) formal←c50940)+6) ), pd238);
         };
      (*  (W2Pt) (( (ptr) tSel←v17768)+11) ) = var←c46556;
      (*  (W2Pt) (( (ptr) tSel←v17768)+2) ) = var←c46556;
      };
SOURCE(25612, 82)
   {
      word var←c46588;
      {
         word x239;
         word pd240;
         word x241;
         pd240 = (* (( (ptr) (* (( (ptr) gf←c50908)+193)/* var←c44668 */  ))+36) );
         var←c46588 = (x239 = ((* (( (ptr) tSel←v17768)+12) ) + 3),
            x241 = (word) ( *( (fPt) ((*  (ptr) pd240 ))))((* ((( (ptr) tSel←v17768)+11)) ), pd240),
            MIN((int)(word), x239, x241));
         };
      (* (( (ptr) tSel←v17768)+12) ) = var←c46588;
      };
SOURCE(25696, 68)
   {
      word x242;
      word x243;
      (* (( (ptr) tSel←v17768)+3) ) = (x242 = (* (( (ptr) tSel←v17768)+12) ),
         x243 = (* (( (ptr) tSel←v17768)+3) ),
         MIN((int)(word), x242, x243));
      };
SOURCE(25766, 122)
   if ( ( ( (int)(* (( (ptr) tSel←v17768)+3) ) ==  (int)(* (( (ptr) tSel←v17768)+12) )) ? ( (int)(* (( (ptr) tSel←v17768)+3)
    ) >  (int)0) : 0 ) ) {
SOURCE(25843, 45)
      (* (( (ptr) tSel←v17768)+3) ) = ((* (( (ptr) tSel←v17768)+3) ) - 1);
      };
SOURCE(25890, 23)
   (* (( (ptr) tSel←v17768)+22) ) = 1;
SOURCE(25915, 20)
   (*  (ptr) tSel←v17768 ) = (* (( (ptr) formal←c50940)+4) );
SOURCE(25937, 15)
   (* (( (ptr) tSel←v17768)+1) ) = tdd←v17740;
SOURCE(25954, 26)
   (* (( (ptr) tSel←v17768)+26) ) = 0;
SOURCE(25982, 77)
   if (((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c50908)+200)/* var←c46620 */  ))+19) ) ) == 0)) {
      (* (( (ptr) tSel←v17768)+24) ) = 0;
      }
   else {
      (* (( (ptr) tSel←v17768)+24) ) = 1;
      };
SOURCE(26061, 40)
   {
      word pd244;
      pd244 = (* (( (ptr) (* (( (ptr) gf←c50908)+196)/* var←c46172 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd244 ))))((* ((( (ptr) formal←c50940)+4)) ), pd244);
      };
SOURCE(26103, 32)
   {
      word pd245;
      pd245 = (* (( (ptr) (* (( (ptr) gf←c50908)+185)/* var←c43804 */  ))+70) );
      (void) ( *( (fPt) ((*  (ptr) pd245 ))))(tSel←v17768, pd245);
      };
SOURCE(26137, 45)
   (void) MakeSelection←P1200(tSel←v17768, 2, 0, 0, 1);
SOURCE(26184, 54)
   {
      word pd246;
      pd246 = (* (( (ptr) (* (( (ptr) gf←c50908)+201)/* var←c46652 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd246 ))))((* (( (ptr) formal←c50940)+4) ), 0, 2, pd246);
      };
   }

static void ShowGivenPositionRange←P2700(formal←c0799, formal←c0800, formal←c0801, formal←c0802, formal←c0803, formal←c0804)
   word formal←c0799;
   word formal←c0800;
   word formal←c0801;
   word formal←c0802;
   word formal←c0803;
   word formal←c0804;
   {
   W12 var←c50972;
   /* declaration of viewer←v10796 skipped */ 
   /* declaration of selectionId←v10824 skipped */ 
   /* declaration of posI←v10852 skipped */ 
   /* declaration of posF←v10880 skipped */ 
   /* declaration of skipCommentNodes←v10908 skipped */ 
   /* declaration of pendingDelete←v10936 skipped */ 
   /* declaration of var←c46684 skipped */ 
   (* (( (ptr) &var←c50972)+4)/* viewer←v10796 */  ) = formal←c0799;
   (* (( (ptr) &var←c50972)+5)/* selectionId←v10824 */  ) = formal←c0800;
   (* (( (ptr) &var←c50972)+6)/* posI←v10852 */  ) = formal←c0801;
   (* (( (ptr) &var←c50972)+7)/* posF←v10880 */  ) = formal←c0802;
   (* (( (ptr) &var←c50972)+8)/* skipCommentNodes←v10908 */  ) = formal←c0803;
   (* (( (ptr) &var←c50972)+9)/* pendingDelete←v10936 */  ) = formal←c0804;
   /* ShowGivenPositionRange: */ 
SOURCE(26307, 963)
   {
      word tmpAddr247;
      tmpAddr247 = (word) (( (ptr) &var←c50972)+10)/* var←c46684 */ ;
      (*  (ptr) tmpAddr247 ) = ( ((word)  (fPt) DoPosition←P6288) );
      (* (( (ptr) tmpAddr247) + 1) ) = 1;
      };
SOURCE(27209, 61)
   (void) CallWithSelAndDocAndTddLocks←P2340((* (( (ptr) &var←c50972)+4)/* viewer←v10796 */  ), (* (( (ptr) &var←c50972)+5)/* selectionId←v10824 */  ), (word) (
         ( (bPt) &var←c50972)+40)/* var←c46684 */ );
   }

static void DoPosition←P6288(tdd←v17916, tSel←v17944, formal←c51036)
   word tdd←v17916;
   word tSel←v17944;
   word formal←c51036;
   {
   register ptr gf←c51004 =  (ptr) &globalframe;
   word pos0←v17972;
   formal←c51036 = (formal←c51036 - 40);
   /* DoPosition: */ 
SOURCE(26446, 758)
SOURCE(26523, 87)
   {
      word var←c46716;
      {
         word pd248;
         pd248 = (* (( (ptr) (* (( (ptr) gf←c51004)+193)/* var←c44668 */  ))+28) );
         var←c46716 = (word) ( *( (fPt) ((*  (ptr) pd248 ))))((*  (ptr) (tdd←v17916) ), pd248);
         };
      {
         W2 var←c46748;
         var←c46748.f0 = var←c46716;
         var←c46748.f1 = 0;
         {
            word pd249;
            pd249 = (* (( (ptr) (* (( (ptr) gf←c51004)+193)/* var←c44668 */  ))+23) );
            pos0←v17972 = (word) ( *( (fPt) ((*  (ptr) pd249 ))))(var←c46748, 1, (* (( (ptr) formal←c51036)+8) ), pd249);
            };
         };
      };
SOURCE(26612, 59)
   if (( (int)(* (( (ptr) formal←c51036)+7) ) <  (int)(* (( (ptr) formal←c51036)+6) ))) {
SOURCE(26632, 39)
      {
         word p←v18016;
SOURCE(26634, 13)
         p←v18016 = (* (( (ptr) formal←c51036)+6) );
SOURCE(26649, 11)
         (* (( (ptr) formal←c51036)+6) ) = (* (( (ptr) formal←c51036)+7) );
SOURCE(26662, 9)
         (* (( (ptr) formal←c51036)+7) ) = p←v18016;
         };
      };
SOURCE(26674, 83)
   {
      word pd250;
      word x251;
      pd250 = (* (( (ptr) (* (( (ptr) gf←c51004)+193)/* var←c44668 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd250 ))))((word) (( (bPt) tSel←v17944)+8), (*  (ptr) tdd←v17916 ), (x251 = (* (( (ptr) formal←c51036)+6)
             ),
            MAX((int)(word), pos0←v17972, x251)), 1, (* (( (ptr) formal←c51036)+8) ), pd250);
      };
SOURCE(26759, 81)
   {
      word pd252;
      word x253;
      pd252 = (* (( (ptr) (* (( (ptr) gf←c51004)+193)/* var←c44668 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd252 ))))((word) (( (bPt) tSel←v17944)+44), (*  (ptr) tdd←v17916 ), (x253 = (* (( (ptr) formal←c51036)+7)
             ),
            MAX((int)(word), pos0←v17972, x253)), 1, (* (( (ptr) formal←c51036)+8) ), pd252);
      };
SOURCE(26842, 23)
   (* (( (ptr) tSel←v17944)+22) ) = 1;
SOURCE(26867, 20)
   (*  (ptr) tSel←v17944 ) = (* (( (ptr) formal←c51036)+4) );
SOURCE(26889, 15)
   (* (( (ptr) tSel←v17944)+1) ) = tdd←v17916;
SOURCE(26906, 34)
   (* (( (ptr) tSel←v17944)+26) ) = (* (( (ptr) formal←c51036)+9) );
SOURCE(26942, 77)
   if (((*  (ptr) (* (( (ptr) (* (( (ptr) gf←c51004)+200)/* var←c46620 */  ))+19) ) ) == 0)) {
      (* (( (ptr) tSel←v17944)+24) ) = 0;
      }
   else {
      (* (( (ptr) tSel←v17944)+24) ) = 1;
      };
SOURCE(27021, 40)
   {
      word pd254;
      pd254 = (* (( (ptr) (* (( (ptr) gf←c51004)+196)/* var←c46172 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd254 ))))((* ((( (ptr) formal←c51036)+4)) ), pd254);
      };
SOURCE(27063, 32)
   {
      word pd255;
      pd255 = (* (( (ptr) (* (( (ptr) gf←c51004)+185)/* var←c43804 */  ))+70) );
      (void) ( *( (fPt) ((*  (ptr) pd255 ))))(tSel←v17944, pd255);
      };
SOURCE(27097, 48)
   (void) MakeSelection←P1200(tSel←v17944, (* (( (ptr) formal←c51036)+5) ), 0, 0, 1);
SOURCE(27147, 57)
   {
      word pd256;
      pd256 = (* (( (ptr) (* (( (ptr) gf←c51004)+201)/* var←c46652 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd256 ))))((* (( (ptr) formal←c51036)+4) ), 0, (* (( (ptr) formal←c51036)+5) ), pd256);
      };
   }

static void GoToEndOfNode←P2760(formal←c0805)
   word formal←c0805;
   {
   W7 var←c51068;
   /* declaration of n←v10996 skipped */ 
   register ptr gf←c51100 =  (ptr) &globalframe;
   /* declaration of var←c46780 skipped */ 
   var←c51068.f4/* n←v10996 */  = formal←c0805;
   /* GoToEndOfNode: */ 
SOURCE(27276, 850)
   {
      word tmpAddr257;
      tmpAddr257 = (word) (( (ptr) &var←c51068)+5)/* var←c46780 */ ;
      (*  (ptr) tmpAddr257 ) = ( ((word)  (fPt) DoIt←P6396) );
      (* (( (ptr) tmpAddr257) + 1) ) = 1;
      };
SOURCE(28073, 53)
   if (( (int)var←c51068.f4/* n←v10996 */  !=  (int)0)) {
SOURCE(28087, 39)
      {
         word pd258;
         pd258 = (* (( (ptr) (* (( (ptr) gf←c51100)+202)/* var←c46812 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd258 ))))((word) (( (bPt) &var←c51068)+20)/* var←c46780 */ , 0, pd258);
         };
      };
   }

static void DoIt←P6396(root←v18136, tSel←v18164, formal←c51164)
   word root←v18136;
   word tSel←v18164;
   word formal←c51164;
   {
   register ptr gf←c51132 =  (ptr) &globalframe;
   word pointSel←v18192;
   W2 pos←v18220;
   formal←c51164 = (formal←c51164 - 20);
   /* DoIt: */ 
SOURCE(27320, 748)
SOURCE(27379, 39)
   pointSel←v18192 = ((* (( (ptr) tSel←v18164)+22) ) == 0);
SOURCE(27420, 51)
   {
      word pd259;
      pd259 = (* (( (ptr) (* (( (ptr) gf←c51132)+185)/* var←c43804 */  ))+64) );
      (void) ( *( (fPt) ((*  (ptr) pd259 ))))((word) &pos←v18220, tSel←v18164, pd259);
      };
SOURCE(27473, 502)
   lab←L100054: ;
   if ( ( (pos←v18220.f0 != 0) ? ( (int)(* (( (ptr) formal←c51164)+4) ) !=  (int)0) : 0 ) ) {
      }
   else {
      goto lab←L100052;
      };
SOURCE(27507, 468)
   if (( (int)(* (( (ptr) formal←c51164)+4) ) >  (int)0)) {
SOURCE(27523, 174)
      {
         word tc260;
         word pd261;
         if ((0 != pointSel←v18192)) {
            pd261 = (* (( (ptr) (* (( (ptr) gf←c51132)+197)/* var←c46204 */  ))+15) );
            tc260 =  (word) ( (int)pos←v18220.f1 ==  (int)(word) ( *( (fPt) ((*  (ptr) pd261 ))))((* ((( (ptr) pos←v18220.f0)+3)) ), pd261)
            );
            }
         else {
            tc260 =  (word) 0;
            };
         if (tc260) {
SOURCE(27581, 118)
            {
               word node←v18264;
SOURCE(27583, 43)
               {
                  word pd262;
                  pd262 = (* (( (ptr) (* (( (ptr) gf←c51132)+193)/* var←c44668 */  ))+14) );
                  node←v18264 = (word) ( *( (fPt) ((*  (ptr) pd262 ))))(pos←v18220.f0, pd262);
                  };
SOURCE(27628, 48)
               {
                  word pd264;
                  if ((node←v18264 == 0)) { goto then0263;};
                  pd264 = (* (( (ptr) (* (( (ptr) gf←c51132)+193)/* var←c44668 */  ))+8) );
                  if (((word) ( *( (fPt) ((*  (ptr) pd264 ))))(node←v18264, pd264) == 0)) {
                     then0263: ;
SOURCE(27676, 4)
                     goto lab←L100053;
                     };
                  };
SOURCE(27682, 15)
               pos←v18220.f0 = node←v18264;
               };
            };
         };
SOURCE(27702, 36)
      {
         word pd265;
         pd265 = (* (( (ptr) (* (( (ptr) gf←c51132)+197)/* var←c46204 */  ))+15) );
         pos←v18220.f1 = (word) ( *( (fPt) ((*  (ptr) pd265 ))))((* ((( (ptr) pos←v18220.f0)+3)) ), pd265);
         };
SOURCE(27740, 15)
      pointSel←v18192 = 1;
SOURCE(27757, 9)
      (* (( (ptr) formal←c51164)+4) ) = ((* (( (ptr) formal←c51164)+4) ) - 1);
      }
   else {
SOURCE(27777, 152)
      if ( ( (0 != pointSel←v18192) ? ( (int)pos←v18220.f1 ==  (int)0) : 0 ) ) {
SOURCE(27812, 119)
         {
            word node←v18308;
SOURCE(27814, 44)
            {
               word pd266;
               pd266 = (* (( (ptr) (* (( (ptr) gf←c51132)+193)/* var←c44668 */  ))+15) );
               node←v18308 = (word) ( *( (fPt) ((*  (ptr) pd266 ))))(pos←v18220.f0, 0, pd266);
               };
SOURCE(27860, 48)
            {
               word pd268;
               if ((node←v18308 == 0)) { goto then0267;};
               pd268 = (* (( (ptr) (* (( (ptr) gf←c51132)+193)/* var←c44668 */  ))+8) );
               if (((word) ( *( (fPt) ((*  (ptr) pd268 ))))(node←v18308, pd268) == 0)) {
                  then0267: ;
SOURCE(27908, 4)
                  goto lab←L100053;
                  };
               };
SOURCE(27914, 15)
            pos←v18220.f0 = node←v18308;
            };
         };
SOURCE(27934, 13)
      pos←v18220.f1 = 0;
SOURCE(27949, 15)
      pointSel←v18192 = 1;
SOURCE(27966, 9)
      (* (( (ptr) formal←c51164)+4) ) = ((* (( (ptr) formal←c51164)+4) ) + 1);
      };
   goto lab←L100054;
   lab←L100052: ;
   lab←L100053: ;
SOURCE(27989, 29)
   (void) MakePointSelection←P600(tSel←v18164, pos←v18220);
SOURCE(28020, 48)
   {
      word pd269;
      pd269 = (* (( (ptr) (* (( (ptr) gf←c51132)+201)/* var←c46652 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd269 ))))((*  (ptr) tSel←v18164 ), 1, 0, pd269);
      };
   }

static word TargetFromSel←P2820(tSel←v11056)
   word tSel←v11056;
   {
   register ptr gf←c51196 =  (ptr) &globalframe;
   word target←v11100;
   W2 loc1←v18352;
   W2 loc2←v18380;
   /* TargetFromSel: */ 
SOURCE(28132, 782)
SOURCE(28132, 782)
   target←v11100 = 0;
SOURCE(28203, 20)
   loc1←v18352.f0 = 0;
   loc1←v18352.f1 = 0;
   loc2←v18380 = loc1←v18352;
SOURCE(28225, 43)
   {
      W4 var←c46876;
      (void) LocationsFromSelection←P3120((word) &var←c46876, tSel←v11056);
      loc2←v18380 = (*  (W2Pt) (( (ptr) &var←c46876)+2) );
      loc1←v18352 = (*  (W2Pt) &var←c46876 );
      };
SOURCE(28270, 66)
   if (XR←EqualWords(&loc1←v18352, &loc2←v18380, 2)) {
SOURCE(28288, 17)
      return(0);
      }
   else {
SOURCE(28305, 31)
      {
         word pd270;
         pd270 = (* (( (ptr) (* (( (ptr) gf←c51196)+193)/* var←c44668 */  ))+7) );
         target←v11100 = (word) ( *( (fPt) ((*  (ptr) pd270 ))))(pd270);
         };
      };
SOURCE(28338, 576)
   {
      register word node←v18424;
      node←v18424 = loc1←v18352.f0;
      lab←L100058: ;
      if ((node←v18424 != 0)) {
         }
      else {
         goto lab←L100055;
         };
      {
         word i0←v18468;
         word i1←v18496;
SOURCE(28411, 50)
         i0←v18468 =  ( (node←v18424 == loc1←v18352.f0) ? loc1←v18352.f1 : 0 ) ;
SOURCE(28463, 68)
         {
            word tc271;
            word pd272;
            if ((node←v18424 == loc2←v18380.f0)) {
               tc271 =  (word) loc2←v18380.f1;
               }
            else {
               pd272 = (* (( (ptr) (* (( (ptr) gf←c51196)+192)/* var←c44604 */  ))+6) );
               tc271 =  (word) ( *( (fPt) ((*  (ptr) pd272 ))))(node←v18424, pd272);
               };
            i1←v18496 = tc271;
            };
SOURCE(28533, 172)
         if ((node←v18424 != loc1←v18352.f0)) {
SOURCE(28556, 149)
            {
               W2 var←c47004;
               {
                  word var←c46908;
                  word var←c46940;
                  {
                     word pd273;
                     pd273 = (* (( (ptr) (* (( (ptr) gf←c51196)+192)/* var←c44604 */  ))+6) );
                     var←c46908 = (word) ( *( (fPt) ((*  (ptr) pd273 ))))(target←v11100, pd273);
                     };
                  {
                     word var←c46972;
                     {
                        word pd274;
                        pd274 = (* (( (ptr) (* (( (ptr) gf←c51196)+193)/* var←c44668 */  ))+9) );
                        var←c46972 = (word) ( *( (fPt) ((*  (ptr) pd274 ))))(node←v18424, pd274);
                        };
                     {
                        word pd275;
                        pd275 = (* (( (ptr) (* (( (ptr) gf←c51196)+192)/* var←c44604 */  ))+41) );
                        var←c46940 = (word) ( *( (fPt) ((*  (ptr) pd275 ))))(var←c46972, pd275);
                        };
                     };
                  {
                     W2 var←c0442;
                     {
                        word pd276;
                        pd276 = (* (( (ptr) (* (( (ptr) gf←c51196)+192)/* var←c44604 */  ))+37) );
                        (void) ( *( (fPt) ((*  (ptr) pd276 ))))((word) &var←c0442, 0, target←v11100, var←c46908, 0, var←c46940
                           , 0, 0, 0, 0, pd276);
                        };
                     var←c47004 = var←c0442;
                     };
                  };
               };
            };
SOURCE(28707, 182)
         if (( (int)i1←v18496 >  (int)i0←v18468)) {
SOURCE(28721, 168)
            {
               W2 var←c47068;
               {
                  word var←c47036;
                  {
                     word pd277;
                     pd277 = (* (( (ptr) (* (( (ptr) gf←c51196)+192)/* var←c44604 */  ))+6) );
                     var←c47036 = (word) ( *( (fPt) ((*  (ptr) pd277 ))))(target←v11100, pd277);
                     };
                  {
                     word pd278;
                     pd278 = (* (( (ptr) (* (( (ptr) gf←c51196)+192)/* var←c44604 */  ))+31) );
                     (void) ( *( (fPt) ((*  (ptr) pd278 ))))((word) &var←c47068, 0, 0, target←v11100, var←c47036, 0
                        , node←v18424, i0←v18468, (i1←v18496 - i0←v18468), 0, pd278);
                     };
                  };
               };
            };
SOURCE(28891, 23)
         if ((node←v18424 == loc2←v18380.f0)) {
SOURCE(28914, 4)
            goto lab←L100056;
            };
         };
      {
         word pd279;
         pd279 = (* (( (ptr) (* (( (ptr) gf←c51196)+193)/* var←c44668 */  ))+14) );
         node←v18424 = (word) ( *( (fPt) ((*  (ptr) pd279 ))))(node←v18424, pd279);
         };
      goto lab←L100058;
      lab←L100055: ;
      lab←L100056: ;
      };
SOURCE(28132, 782)
   return(target←v11100);
   }

static void FindFeedback←P2880(found←v11160, rope←v11188)
   word found←v11160;
   word rope←v11188;
   {
   register ptr gf←c51228 =  (ptr) &globalframe;
   /* FindFeedback: */ 
SOURCE(28966, 373)
SOURCE(29015, 324)
   if ((0 != found←v11160)) {
SOURCE(29029, 27)
      {
         word pd280;
         pd280 = (* (( (ptr) (* (( (ptr) gf←c51228)+199)/* var←c46332 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd280 ))))(pd280);
         };
      }
   else {
SOURCE(29056, 283)
      {
         word pd281;
         pd281 = (* (( (ptr) (* (( (ptr) gf←c51228)+197)/* var←c46204 */  ))+15) );
         if (( (int)(word) ( *( (fPt) ((*  (ptr) pd281 ))))(rope←v11188, pd281) ==  (int)0)) {
SOURCE(29084, 55)
            {
               word pd282;
               pd282 = (* (( (ptr) (* (( (ptr) gf←c51228)+199)/* var←c46332 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd282 ))))((* (( (ptr) gf←c51228)+70) ), 1, pd282);
               };
SOURCE(29141, 21)
            {
               word pd283;
               pd283 = (* (( (ptr) (* (( (ptr) gf←c51228)+199)/* var←c46332 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd283 ))))(pd283);
               };
            }
         else {
SOURCE(29173, 78)
            {
               word pd284;
               pd284 = (* (( (ptr) (* (( (ptr) gf←c51228)+197)/* var←c46204 */  ))+15) );
               if (( (int)(word) ( *( (fPt) ((*  (ptr) pd284 ))))(rope←v11188, pd284) >  (int)50)) {
SOURCE(29200, 51)
                  {
                     word var←c47100;
                     {
                        word pd285;
                        pd285 = (* (( (ptr) (* (( (ptr) gf←c51228)+197)/* var←c46204 */  ))+17) );
                        var←c47100 = (word) ( *( (fPt) ((*  (ptr) pd285 ))))(rope←v11188, 0, 47, pd285);
                        };
                     {
                        word pd286;
                        pd286 = (* (( (ptr) (* (( (ptr) gf←c51228)+197)/* var←c46204 */  ))+6) );
                        rope←v11188 = (word) ( *( (fPt) ((*  (ptr) pd286 ))))(var←c47100, (* (( (ptr) gf←c51228)+71) ), pd286);
                        };
                     };
                  };
               };
SOURCE(29253, 60)
            {
               word var←c47132;
               {
                  word pd287;
                  pd287 = (* (( (ptr) (* (( (ptr) gf←c51228)+197)/* var←c46204 */  ))+6) );
                  var←c47132 = (word) ( *( (fPt) ((*  (ptr) pd287 ))))(rope←v11188, (* (( (ptr) gf←c51228)+72) ), pd287);
                  };
               {
                  word pd288;
                  pd288 = (* (( (ptr) (* (( (ptr) gf←c51228)+199)/* var←c46332 */  ))+5) );
                  (void) ( *( (fPt) ((*  (ptr) pd288 ))))(var←c47132, 1, pd288);
                  };
               };
SOURCE(29315, 24)
            {
               word pd289;
               pd289 = (* (( (ptr) (* (( (ptr) gf←c51228)+186)/* var←c43836 */  ))+46) );
               (void) ( *( (fPt) ((*  (ptr) pd289 ))))(pd289);
               };
            };
         };
      };
   }

static void Find←P2940(formal←c0806, formal←c0807, formal←c0808, formal←c0809, formal←c0810, formal←c0811)
   word formal←c0806;
   word formal←c0807;
   word formal←c0808;
   word formal←c0809;
   word formal←c0810;
   word formal←c0811;
   {
   W14 var←c51260;
   /* declaration of viewer←v11248 skipped */ 
   /* declaration of findWhere←v11276 skipped */ 
   /* declaration of def←v11304 skipped */ 
   /* declaration of word←v11332 skipped */ 
   /* declaration of id←v11360 skipped */ 
   /* declaration of case←v11388 skipped */ 
   register ptr gf←c51292 =  (ptr) &globalframe;
   /* declaration of var←c47164 skipped */ 
   /* declaration of found←v18540 skipped */ 
   /* declaration of target←v18568 skipped */ 
   (* (( (ptr) &var←c51260)+4)/* viewer←v11248 */  ) = formal←c0806;
   (* (( (ptr) &var←c51260)+5)/* findWhere←v11276 */  ) = formal←c0807;
   (* (( (ptr) &var←c51260)+6)/* def←v11304 */  ) = formal←c0808;
   (* (( (ptr) &var←c51260)+7)/* word←v11332 */  ) = formal←c0809;
   (* (( (ptr) &var←c51260)+8)/* id←v11360 */  ) = formal←c0810;
   (* (( (ptr) &var←c51260)+9)/* case←v11388 */  ) = formal←c0811;
   /* Find: */ 
SOURCE(29348, 694)
   {
      word tmpAddr290;
      tmpAddr290 = (word) (( (ptr) &var←c51260)+10)/* var←c47164 */ ;
      (*  (ptr) tmpAddr290 ) = ( ((word)  (fPt) LockedFind←P6648) );
      (* (( (ptr) tmpAddr290) + 1) ) = 1;
      };
SOURCE(29544, 19)
   (* (( (ptr) &var←c51260)+12)/* found←v18540 */  ) = 0;
SOURCE(29565, 18)
   (* (( (ptr) &var←c51260)+13)/* target←v18568 */  ) = 0;
SOURCE(29935, 52)
   (void) CallWithSelAndDocAndTddLocks←P2340((* (( (ptr) &var←c51260)+4)/* viewer←v11248 */  ), (* (( (ptr) &var←c51260)+8)/* id←v11360 */  ), (word) (
         ( (bPt) &var←c51260)+40)/* var←c47164 */ );
SOURCE(29989, 53)
   {
      word var←c47196;
      {
         word pd291;
         pd291 = (* (( (ptr) (* (( (ptr) gf←c51292)+203)/* var←c47228 */  ))+5) );
         var←c47196 = (word) ( *( (fPt) ((*  (ptr) pd291 ))))((* (( (ptr) &var←c51260)+13)/* target←v18568 */  ), 0, 2147483647, pd291)
         ;
         };
      (void) FindFeedback←P2880((* (( (ptr) &var←c51260)+12)/* found←v18540 */  ), var←c47196);
      };
   }

static void LockedFind←P6648(tdd←v18672, tSel←v18700, formal←c51356)
   word tdd←v18672;
   word tSel←v18700;
   word formal←c51356;
   {
   register ptr gf←c51324 =  (ptr) &globalframe;
   formal←c51356 = (formal←c51356 - 40);
   /* LockedFind: */ 
SOURCE(29585, 345)
SOURCE(29662, 28)
   (* (( (ptr) formal←c51356)+13) ) = (word) TargetFromSel←P2820(tSel←v18700);
SOURCE(29692, 79)
   if (((* (( (ptr) formal←c51356)+13) ) == 0)) {
SOURCE(29711, 33)
      (* (( (ptr) formal←c51356)+13) ) = (* (( (ptr) gf←c51324)+36)/* targetOfLastSearch←v6304 */  );
      }
   else {
SOURCE(29744, 27)
      (* (( (ptr) gf←c51324)+36)/* targetOfLastSearch←v6304 */  ) = (* (( (ptr) formal←c51356)+13) );
      };
SOURCE(29773, 157)
   if (((* (( (ptr) formal←c51356)+13) ) != 0)) {
SOURCE(29792, 138)
      (* (( (ptr) formal←c51356)+12) ) = (word) FindTarget←P3180((* (( (ptr) formal←c51356)+4) ), tdd←v18672, tSel←v18700, (* (
            ( (ptr) formal←c51356)+8) ), (* (( (ptr) formal←c51356)+5) ), (* (( (ptr) formal←c51356)+13) )
         , 0, 2147483647, (* (( (ptr) formal←c51356)+6) ), (* (( (ptr) formal←c51356)+7) ), (* (( (ptr) formal←c51356)+9) ));
      };
   }

static void FindRope←P3000(viewer←v11448, rope←v11476, findWhere←v11504, def←v11532, word←v11560, id←v11588, case←v11616)
   word viewer←v11448;
   word rope←v11476;
   word findWhere←v11504;
   word def←v11532;
   word word←v11560;
   word id←v11588;
   word case←v11616;
   {
   word found←v18728;
   /* FindRope: */ 
SOURCE(30047, 305)
SOURCE(30259, 66)
   found←v18728 = (word) DoFind←P3060(viewer←v11448, rope←v11476, findWhere←v11504, def←v11532, word←v11560, id←v11588
      , case←v11616);
SOURCE(30327, 25)
   (void) FindFeedback←P2880(found←v18728, rope←v11476);
   }

static word DoFind←P3060(formal←c0812, formal←c0813, formal←c0814, formal←c0815, formal←c0816, formal←c0817, formal←c0818)
   word formal←c0812;
   word formal←c0813;
   word formal←c0814;
   word formal←c0815;
   word formal←c0816;
   word formal←c0817;
   word formal←c0818;
   {
   W14 var←c51388;
   /* declaration of viewer←v11676 skipped */ 
   /* declaration of rope←v11704 skipped */ 
   /* declaration of findWhere←v11732 skipped */ 
   /* declaration of def←v11760 skipped */ 
   /* declaration of word←v11788 skipped */ 
   /* declaration of id←v11816 skipped */ 
   /* declaration of case←v11844 skipped */ 
   /* declaration of found←v11888 skipped */ 
   /* declaration of var←c47260 skipped */ 
   (* (( (ptr) &var←c51388)+4)/* viewer←v11676 */  ) = formal←c0812;
   (* (( (ptr) &var←c51388)+5)/* rope←v11704 */  ) = formal←c0813;
   (* (( (ptr) &var←c51388)+6)/* findWhere←v11732 */  ) = formal←c0814;
   (* (( (ptr) &var←c51388)+7)/* def←v11760 */  ) = formal←c0815;
   (* (( (ptr) &var←c51388)+8)/* word←v11788 */  ) = formal←c0816;
   (* (( (ptr) &var←c51388)+9)/* id←v11816 */  ) = formal←c0817;
   (* (( (ptr) &var←c51388)+10)/* case←v11844 */  ) = formal←c0818;
   /* DoFind: */ 
SOURCE(30357, 556)
   {
      word tmpAddr292;
      tmpAddr292 = (word) (( (ptr) &var←c51388)+12)/* var←c47260 */ ;
      (*  (ptr) tmpAddr292 ) = ( ((word)  (fPt) LockedDoFind←P6708) );
      (* (( (ptr) tmpAddr292) + 1) ) = 1;
      };
SOURCE(30357, 556)
   (* (( (ptr) &var←c51388)+11)/* found←v11888 */  ) = 0;
SOURCE(30859, 54)
   (void) CallWithSelAndDocAndTddLocks←P2340((* (( (ptr) &var←c51388)+4)/* viewer←v11676 */  ), (* (( (ptr) &var←c51388)+9)/* id←v11816 */  ), (word) (
         ( (bPt) &var←c51388)+48)/* var←c47260 */ );
SOURCE(30357, 556)
   return((* (( (ptr) &var←c51388)+11)/* found←v11888 */  ));
   }

static void LockedDoFind←P6708(tdd←v18848, tSel←v18876, formal←c51452)
   word tdd←v18848;
   word tSel←v18876;
   word formal←c51452;
   {
   register ptr gf←c51420 =  (ptr) &globalframe;
   word target←v18904;
   formal←c51452 = (formal←c51452 - 48);
   /* LockedDoFind: */ 
SOURCE(30597, 257)
SOURCE(30676, 38)
   {
      word pd293;
      pd293 = (* (( (ptr) (* (( (ptr) gf←c51420)+192)/* var←c44604 */  ))+13) );
      target←v18904 = (word) ( *( (fPt) ((*  (ptr) pd293 ))))((* ((( (ptr) formal←c51452)+5)) ), pd293);
      };
SOURCE(30716, 138)
   (* (( (ptr) formal←c51452)+11) ) = (word) FindTarget←P3180((* (( (ptr) formal←c51452)+4) ), tdd←v18848, tSel←v18876, (* (
         ( (ptr) formal←c51452)+9) ), (* (( (ptr) formal←c51452)+6) ), target←v18904
      , 0, 2147483647, (* (( (ptr) formal←c51452)+7) ), (* (( (ptr) formal←c51452)+8) ), (* (( (ptr) formal←c51452)+10) ));
   }

static void LocationsFromSelection←P3120(formal←c0485, tSel←v11948)
   word formal←c0485;
   word tSel←v11948;
   {
   register ptr gf←c51484 =  (ptr) &globalframe;
   W2 loc1←v11992;
   W2 loc2←v12020;
   /* LocationsFromSelection: */ 
SOURCE(30919, 397)
SOURCE(30919, 397)
   loc1←v11992.f0 = 0;
   loc1←v11992.f1 = 0;
SOURCE(30919, 397)
   loc2←v12020.f0 = 0;
   loc2←v12020.f1 = 0;
SOURCE(31001, 21)
   loc1←v11992 = (*  (W2Pt) (( (ptr) tSel←v11948)+2) );
SOURCE(31024, 19)
   loc2←v12020 = (*  (W2Pt) (( (ptr) tSel←v11948)+11) );
SOURCE(31045, 65)
   if ((loc1←v11992.f0 == 0) || (loc2←v12020.f0 == 0)) {
SOURCE(31084, 26)
      loc1←v11992.f0 = 0;
      loc1←v11992.f1 = 0;
      loc2←v12020.f0 = 0;
      loc2←v12020.f1 = 0;
      goto lab←L100059;
      };
SOURCE(31112, 50)
   if (( (int)loc1←v11992.f1 ==  (int) (word) -1)) {
SOURCE(31148, 14)
      loc1←v11992.f1 = 0;
      };
SOURCE(31164, 152)
   if (((* (( (ptr) tSel←v11948)+22) ) == 0)) {
SOURCE(31195, 17)
      loc2←v12020 = loc1←v11992;
      }
   else {
SOURCE(31212, 104)
      if (( (int)loc2←v12020.f1 ==  (int) (word) -1)) {
SOURCE(31248, 43)
         {
            word pd294;
            pd294 = (* (( (ptr) (* (( (ptr) gf←c51484)+192)/* var←c44604 */  ))+6) );
            loc2←v12020.f1 = (word) ( *( (fPt) ((*  (ptr) pd294 ))))(loc2←v12020.f0, pd294);
            };
         }
      else {
SOURCE(31291, 25)
         loc2←v12020.f1 = (loc2←v12020.f1 + 1);
         };
      };
   /* removed tail goto */ 
   lab←L100059: ;
   (*  (W2Pt) formal←c0485 ) = loc1←v11992;
   (*  (W2Pt) (( (ptr) formal←c0485)+2) ) = loc2←v12020;
   return;
   }

static word FindTarget←P3180(viewer←v12080, tdd←v12108, tSel←v12136, id←v12164, findWhere←v12192, target←v12220, targetStart←v12248, targetLen←v12276, def←v12304, word←v12332, case←v12360)
   word viewer←v12080;
   word tdd←v12108;
   word tSel←v12136;
   word id←v12164;
   word findWhere←v12192;
   word target←v12220;
   word targetStart←v12248;
   word targetLen←v12276;
   word def←v12304;
   word word←v12332;
   word case←v12360;
   {
   register ptr gf←c51516 =  (ptr) &globalframe;
   word found←v12404;
   word match←v18948;
   word visible←v18976;
   W2 viewPos←v19004;
   word var←c47388;
   word interrupt←v19032;
   W2 loc1←v19060;
   W2 loc2←v19088;
   word where←v19116 = 0;
   word at←v19144 = 0;
   word atEnd←v19172 = 0;
   /* FindTarget: */ 
SOURCE(31322, 1976)
SOURCE(31322, 1976)
   found←v12404 = 0;
SOURCE(31573, 72)
   match←v18948 =  ( (0 != def←v12304) ? 2 :  ( (0 != word←v12332) ? 1 : 0 )  ) ;
SOURCE(31647, 83)
   if (((*  (ptr) tSel←v12136 ) == viewer←v12080)) {
      {
         word var←c47356;
         var←c47356 = (* (( (ptr) tSel←v12136)+13) );
         if (( (int)var←c47356 >=  (int)0)) {
            visible←v18976 = ( (int)var←c47356 <=  (int)(*  (ptr) (* (( (ptr) tdd←v12108)+1) ) ));
            }
         else {
            visible←v18976 = 0;
            };
         };
      }
   else {
      visible←v18976 = 0;
      };
SOURCE(31732, 46)
   {
      word limit295;
      var←c47388 = (* (( (ptr) tdd←v12108)+1) );
      viewPos←v19004 = (*  (W2Pt) (( (W9Pt) (( (ptr) var←c47388)+3))+(
            limit295 = (* (( (ptr) var←c47388)+2) ),
            BCK(0, limit295)
            )) );
      };
SOURCE(31780, 42)
   interrupt←v19032 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c51516)+204)/* var←c47420 */  ))+5) ) );
SOURCE(31824, 20)
   loc1←v19060.f0 = 0;
   loc1←v19060.f1 = 0;
   loc2←v19088 = loc1←v19060;
SOURCE(31879, 43)
   {
      W4 var←c47484;
      (void) LocationsFromSelection←P3120((word) &var←c47484, tSel←v12136);
      loc2←v19088 = (*  (W2Pt) (( (ptr) &var←c47484)+2) );
      loc1←v19060 = (*  (W2Pt) &var←c47484 );
      };
SOURCE(31924, 18)
   (*  (ptr) interrupt←v19032 ) = 0;
SOURCE(31944, 581)
   {
      word var←c47516;
      var←c47516 = findWhere←v12192;
      switch (var←c47516) {
         case 0: case 2: 
SOURCE(31988, 261)
            {
               W2 pos←v19228;
SOURCE(31990, 49)
               {
                  word tcp296;
                  if ((0 != visible←v18976)) {
                     tcp296 = (word) &loc2←v19088;
                     }
                  else {
                     tcp296 = (word) &viewPos←v19004;
                     };
                  pos←v19228 = (*  (W2Pt) tcp296 );
                  };
SOURCE(32041, 206)
               {
                  W3 var←c47612;
                  {
                     W3 var←c0515;
                     {
                        W2 var←c47548;
                        var←c47548.f0 = 0;
                        var←c47548.f1 = 0;
                        {
                           word pd297;
                           pd297 = (* (( (ptr) (* (( (ptr) gf←c51516)+205)/* var←c47580 */  ))+6) );
                           (void) ( *( (fPt) ((*  (ptr) pd297 ))))((word) &var←c0515, 0, pos←v19228, var←c47548, target←v12220, targetStart←v12248
/*1*/   , targetLen←v12276, case←v12360, match←v18948, interrupt←v19032, pd297);
                           };
                        };
                     var←c47612 = var←c0515;
                     };
                  atEnd←v19172 = var←c47612.f2;
                  at←v19144 = var←c47612.f1;
                  where←v19116 = var←c47612.f0;
                  };
               };
            break;
         case 1: 
SOURCE(32265, 262)
            {
               W2 pos←v19272;
SOURCE(32267, 49)
               {
                  word tcp298;
                  if ((0 != visible←v18976)) {
                     tcp298 = (word) &loc1←v19060;
                     }
                  else {
                     tcp298 = (word) &viewPos←v19004;
                     };
                  pos←v19272 = (*  (W2Pt) tcp298 );
                  };
SOURCE(32318, 207)
               {
                  W3 var←c47676;
                  {
                     W3 var←c0519;
                     {
                        W2 var←c47644;
                        var←c47644.f0 = 0;
                        var←c47644.f1 = 0;
                        {
                           word pd299;
                           pd299 = (* (( (ptr) (* (( (ptr) gf←c51516)+205)/* var←c47580 */  ))+6) );
                           (void) ( *( (fPt) ((*  (ptr) pd299 ))))((word) &var←c0519, 1, var←c47644, pos←v19272, target←v12220, targetStart←v12248
/*1*/   , targetLen←v12276, case←v12360, match←v18948, interrupt←v19032, pd299);
                           };
                        };
                     var←c47676 = var←c0519;
                     };
                  atEnd←v19172 = var←c47676.f2;
                  at←v19144 = var←c47676.f1;
                  where←v19116 = var←c47676.f0;
                  };
               };
            break;
         };
      };
SOURCE(32539, 320)
   if ( (  ( (where←v19116 == 0) ? (findWhere←v12192 == 2) : 0 )  ? (0 == (*  (ptr) interrupt←v19032 )) : 0 ) ) {
SOURCE(32599, 262)
      {
         W2 pos←v19316;
SOURCE(32601, 50)
         {
            word pd300;
            pd300 = (* (( (ptr) (* (( (ptr) gf←c51516)+193)/* var←c44668 */  ))+28) );
            pos←v19316.f0 = (word) ( *( (fPt) ((*  (ptr) pd300 ))))((*  (ptr) (tdd←v12108) ), pd300);
            };
         pos←v19316.f1 = 0;
SOURCE(32653, 206)
         {
            W3 var←c47772;
            {
               W3 var←c0523;
               {
                  W2 var←c47740;
                  var←c47740.f0 = 0;
                  var←c47740.f1 = 0;
                  {
                     word pd301;
                     pd301 = (* (( (ptr) (* (( (ptr) gf←c51516)+205)/* var←c47580 */  ))+6) );
                     (void) ( *( (fPt) ((*  (ptr) pd301 ))))((word) &var←c0523, 0, pos←v19316, var←c47740, target←v12220, targetStart←v12248
                        , targetLen←v12276, case←v12360, match←v18948, interrupt←v19032, pd301);
                     };
                  };
               var←c47772 = var←c0523;
               };
            atEnd←v19172 = var←c47772.f2;
            at←v19144 = var←c47772.f1;
            where←v19116 = var←c47772.f0;
            };
         };
      };
SOURCE(32864, 19)
   found←v12404 = (where←v19116 != 0);
SOURCE(32885, 413)
   if ((0 != found←v12404)) {
SOURCE(32901, 27)
      (* (( (ptr) tSel←v12136)+2) ) = where←v19116;
      (* (( (ptr) tSel←v12136)+3) ) = at←v19144;
SOURCE(32930, 37)
      (* (( (ptr) tSel←v12136)+11) ) = where←v19116;
      (* (( (ptr) tSel←v12136)+12) ) = (MAX((int)(word), 0, (atEnd←v19172 - 1)));
SOURCE(32969, 46)
      if ((0 != word←v12332)) {
         (* (( (ptr) tSel←v12136)+22) ) = 2;
         }
      else {
         (* (( (ptr) tSel←v12136)+22) ) = 1;
         };
SOURCE(33017, 20)
      (*  (ptr) tSel←v12136 ) = viewer←v12080;
SOURCE(33039, 15)
      (* (( (ptr) tSel←v12136)+1) ) = tdd←v12108;
SOURCE(33056, 22)
      (* (( (ptr) tSel←v12136)+24) ) = 1;
SOURCE(33080, 26)
      (* (( (ptr) tSel←v12136)+26) ) = 0;
SOURCE(33108, 40)
      {
         word pd302;
         pd302 = (* (( (ptr) (* (( (ptr) gf←c51516)+196)/* var←c46172 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd302 ))))(viewer←v12080, pd302);
         };
SOURCE(33150, 32)
      {
         word pd303;
         pd303 = (* (( (ptr) (* (( (ptr) gf←c51516)+185)/* var←c43804 */  ))+70) );
         (void) ( *( (fPt) ((*  (ptr) pd303 ))))(tSel←v12136, pd303);
         };
SOURCE(33184, 39)
      (void) MakeSelection←P1200(tSel←v12136, id←v12164, 0, 0, 1);
SOURCE(33225, 23)
      (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c51516)+204)/* var←c47420 */  ))+12) ) ) = 1;
SOURCE(33250, 48)
      {
         word pd304;
         pd304 = (* (( (ptr) (* (( (ptr) gf←c51516)+201)/* var←c46652 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd304 ))))(viewer←v12080, 0, id←v12164, pd304);
         };
      };
SOURCE(31322, 1976)
   return(found←v12404);
   }

static void NoName←Q7860(formal←c0530, formal←c200040, formal←c200041, formal←c200042, formal←c200043)
   word formal←c0530;
   word formal←c200040;
   word formal←c200041;
   word formal←c200042;
   word formal←c200043;
   {
   register ptr gf←c0680 =  (ptr) &globalframe;
   if ((formal←c200041 == (* (( (ptr) (* (( (ptr) gf←c0680)+198)/* var←c46268 */  ))+7) ))) {
      {
         word reason←v36132;
         word index←v36160;
         reason←v36132 = (*  (ptr) formal←c200043 );
         index←v36160 = (* (( (ptr) formal←c200043)+1) );
SOURCE(24108, 17)
         (*  (ptr) formal←c0530 ) = 2;
         (* (( (ptr) formal←c0530)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0530 ) = 0;
   (* (( (ptr) formal←c0530)+1) ) = 0;
   return;
   }

static void NoName←Q7920(formal←c0537, formal←c200036, formal←c200037, formal←c200038, formal←c200039)
   word formal←c0537;
   word formal←c200036;
   word formal←c200037;
   word formal←c200038;
   word formal←c200039;
   {
   register ptr gf←c0681 =  (ptr) &globalframe;
   if ((formal←c200037 == (* (( (ptr) (* (( (ptr) gf←c0681)+198)/* var←c46268 */  ))+7) ))) {
      {
         word reason←v36044;
         word index←v36072;
         reason←v36044 = (*  (ptr) formal←c200039 );
         index←v36072 = (* (( (ptr) formal←c200039)+1) );
SOURCE(23967, 11)
         (*  (ptr) formal←c0537 ) = 2;
         (* (( (ptr) formal←c0537)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0537 ) = 0;
   (* (( (ptr) formal←c0537)+1) ) = 0;
   return;
   }

static void NoName←Q7980(formal←c0542, formal←c200032, formal←c200033, formal←c200034, formal←c200035)
   word formal←c0542;
   word formal←c200032;
   word formal←c200033;
   word formal←c200034;
   word formal←c200035;
   {
   if ((formal←c200033 == XR←Unwind)) {
SOURCE(23314, 9)
      (void) Cleanup←P6072((word) ((( (bPt) formal←c200032)+24)));
      };
   (*  (ptr) formal←c0542 ) = 0;
   (* (( (ptr) formal←c0542)+1) ) = 0;
   return;
   }

static void NoName←Q8040(formal←c0547, formal←c200028, formal←c200029, formal←c200030, formal←c200031)
   word formal←c0547;
   word formal←c200028;
   word formal←c200029;
   word formal←c200030;
   word formal←c200031;
   {
   if ((formal←c200029 == XR←Unwind)) {
SOURCE(21962, 17)
      (void) UnlockSel←P300((* ((( (ptr) formal←c200028)+4)) ));
      };
   (*  (ptr) formal←c0547 ) = 0;
   (* (( (ptr) formal←c0547)+1) ) = 0;
   return;
   }

static void NoName←Q8100(formal←c0552, formal←c200024, formal←c200025, formal←c200026, formal←c200027)
   word formal←c0552;
   word formal←c200024;
   word formal←c200025;
   word formal←c200026;
   word formal←c200027;
   {
   if ((formal←c200025 == XR←Unwind)) {
SOURCE(20725, 11)
      (void) Free←P480((* ((( (ptr) formal←c200024)+5)) ));
      };
   (*  (ptr) formal←c0552 ) = 0;
   (* (( (ptr) formal←c0552)+1) ) = 0;
   return;
   }

static void NoName←Q8160(formal←c0557, formal←c200020, formal←c200021, formal←c200022, formal←c200023)
   word formal←c0557;
   word formal←c200020;
   word formal←c200021;
   word formal←c200022;
   word formal←c200023;
   {
   register ptr gf←c0682 =  (ptr) &globalframe;
   if ((formal←c200021 == XR←Unwind)) {
SOURCE(8344, 37)
      {
         word pd305;
         pd305 = (* (( (ptr) (* (( (ptr) gf←c0682)+189)/* var←c44188 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd305 ))))((* ((( (ptr) formal←c200020)+4)) ), pd305);
         };
      };
   (*  (ptr) formal←c0557 ) = 0;
   (* (( (ptr) formal←c0557)+1) ) = 0;
   return;
   }

static void NoName←Q8220(formal←c0562, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0562;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   if ((formal←c200017 == XR←Unwind)) {
SOURCE(4604, 22)
      (void) UnlockBothSelections←P180();
      };
   (*  (ptr) formal←c0562 ) = 0;
   (* (( (ptr) formal←c0562)+1) ) = 0;
   return;
   }

static void NoName←Q8280(formal←c0567, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0567;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0683 =  (ptr) &globalframe;
   if ((formal←c200013 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0683)+16)/* LOCK←v3980 */ ));
      };
   (*  (ptr) formal←c0567 ) = 0;
   (* (( (ptr) formal←c0567)+1) ) = 0;
   return;
   }

static void NoName←Q8340(formal←c0572, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0572;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0684 =  (ptr) &globalframe;
   if ((formal←c200009 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0684)+16)/* LOCK←v3980 */ ));
      };
   (*  (ptr) formal←c0572 ) = 0;
   (* (( (ptr) formal←c0572)+1) ) = 0;
   return;
   }

static void NoName←Q8400(formal←c0577, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0577;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0685 =  (ptr) &globalframe;
   if ((formal←c200005 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0685)+16)/* LOCK←v3980 */ ));
      };
   (*  (ptr) formal←c0577 ) = 0;
   (* (( (ptr) formal←c0577)+1) ) = 0;
   return;
   }

static void NoName←Q8460(formal←c0582, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0582;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0686 =  (ptr) &globalframe;
   if ((formal←c200001 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0686)+16)/* LOCK←v3980 */ ));
      };
   (*  (ptr) formal←c0582 ) = 0;
   (* (( (ptr) formal←c0582)+1) ) = 0;
   return;
   }

static word NoName←Q8520(formal←c0176)
   word formal←c0176;
   {
   W2 var←c0178;
   word var←c0177;
   /* intermediary proc for a FORK, nArgs: 2, nRets: 0 */ 
   var←c0178 = (*  (W2Pt) (( (ptr) formal←c0176)+4) );
   var←c0177 = (* (( (ptr) formal←c0176)+2) );
   formal←c0176 = XR←ExtensionFree(formal←c0176);
   (void) ( *( (fPt) ((*  (ptr) var←c0177 ))))(var←c0178.f0, var←c0178.f1, var←c0177);
   return(0);
   }

/* file: TEditSelectionImpl, module: TEditSelectionImpl, compiled at: November 3, 1992 12:32:13 pm PST */ 
extern void XR←install←TEditSelectionImpl() {
   NoName←Q7140();
   }
extern void XR←run←TEditSelectionImpl() { XR←Start(&globalframe); }