/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 13, 1993 1:26:28 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGStateImpl, module: GGStateImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3938991418,2097500082] GGStateImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W5 r;} W13;
typedef struct {W8 f; word r;} W9;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W8 f; W6 r;} W14;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W16 f; W14 r;} W30;
typedef struct {W8 f; W4 r;} W12;
typedef struct {W16 f; W12 r;} W28;
typedef struct {W16 f; W11 r;} W27;
typedef W27 *W27Pt;
typedef W28 *W28Pt;
#define SOURCE(p, l) /* source p, l */
static float fc135 = 1.0;
static float fc136 = 0.0;
static float fc137 = 100.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc168 = 0.5;
static float fc170 = 8.5;
static float fc172 = 72.0;
static float fc174 = 2.0;
static float fc177 = 11.0;
static float fc240 = 777.0;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc245 = 0.001;
static float fc261 = 180.0;
static float fc264 = 360.0;
static float fc294 = 1.0e37;
static void NoName←Q10608();
static void GGStateImpl←P0();
static void RegisterViewportProc←P60();
static void DefaultViewport←P120();
static void NotNewVersion←P180();
static void ChangeIcon←P240();
static word ColorToolIsBound←P300();
static void GetViewport←P360();
static word GetGGInputFocus←P420();
static word GetAnchor←P480();
static void GetBiScrollersTransforms←P540();
static word GetBiScrollersTransform←P600();
static word GetBiScrollersScale←P660();
static void BiScrollersConcat←P720();
static void SetBiScrollersTransform←P780();
static word SGN←P840();
static void ConstantVector←P900();
static word ZeroProtect←P960();
static void BiScrollersScale←P1020();
static void BiScrollersRotate←P1080();
static void BiScrollersShift←P1140();
static void BiScrollersAlign←P1200();
static void ClientExtremaProc←P1260();
static void GGExtremaProc←P1320();
static void BiScrollersBoxScale←P1380();
static void DoBSUserAction←P1440();
static void ViewLimitsOfImage←P1500();
static void Norm←P1560();
static void BiScrollersPreviousTransform←P1620();
static void ChangeTransform←P1680();
static word GetFilterLists←P1740();
static word AddSlopeFilter←P8844();
static word AddRadiusFilter←P8904();
static word AddAngleFilter←P8964();
static word AddDistanceFilter←P9024();
static void SetAllAlignmentStates←P1800();
static void DeleteSelectedAlignments←P1860();
static void DeleteSelected←P9276();
static word GetSortedButtonHandle←P1920();
static void ToggleAlignment←P1980();
static void FindAndToggleValue←P9336();
static void GetSlopeAlignments←P2040();
static word AddSlope←P9396();
static void GetSlopeValue←P2100();
static void SetSlopeValue←P2160();
static word SelectSlope←P2220();
static word AddSlope←P2280();
static word ButtonsFromValues←P2340();
static void AddSlopeList←P2400();
static void NewSlopeList←P2460();
static word MergeScalarButtonLists←P2520();
static void CompareValues←P2580();
static void SpliceToList←P2640();
static void GetAngleAlignments←P2700();
static word AddAngle←P9504();
static void GetAngleValue←P2760();
static void SetAngleValue←P2820();
static word SelectAngle←P2880();
static word AddAngle←P2940();
static void AddAngleList←P3000();
static void NewAngleList←P3060();
static void GetRadiusAlignments←P3120();
static word AddRadius←P9564();
static void GetRadiusValue←P3180();
static void SetRadiusValue←P3240();
static word SelectRadius←P3300();
static word AddRadius←P3360();
static void AddRadiusList←P3420();
static void NewRadiusList←P3480();
static word GetRadiusCircleCache←P3540();
static void SetRadiusCircleCache←P3600();
static void GetLineDistanceAlignments←P3660();
static word AddDistance←P9624();
static void GetLineDistanceValue←P3720();
static void SetLineDistanceValue←P3780();
static word SelectLineDistance←P3840();
static word AddLineDistance←P3900();
static void AddLineDistanceList←P3960();
static void NewLineDistanceList←P4020();
static word ScalarToRope←P4080();
static word GetMidpoints←P4140();
static void SetMidpoints←P4200();
static word GetWorkingDirectory←P4260();
static void SetWorkingDirectory←P4320();
static word GetShowAlignments←P4380();
static void SetShowAlignments←P4440();
static word GetUseBackingMap←P4500();
static void SetUseBackingMap←P4560();
static word GetDoubleBuffer←P4620();
static void SetDoubleBuffer←P4680();
static word GetActive←P4740();
static void SetActive←P4800();
static word GetReadOnly←P4860();
static void SetReadOnly←P4920();
static word GetPalette←P4980();
static void SetPalette←P5040();
static word GetDefaults←P5100();
static void SetDefaults←P5160();
static word DisplayStyleFromAtom←P5220();
static word AtomFromDisplayStyle←P5280();
static word GetDisplayStyle←P5340();
static void SetDisplayStyle←P5400();
static void CycleDisplayStyle←P5460();
static void GetDefaultDashPattern←P5520();
static void SetDefaultDashPattern←P5580();
static word GetDefaultFillColor←P5640();
static void SetDefaultFillColor←P5700();
static word GetDefaultStrokeColor←P5760();
static void SetDefaultStrokeColor←P5820();
static word GetDefaultStrokeJoint←P5880();
static void SetDefaultStrokeJoint←P5940();
static word GetDefaultStrokeEnd←P6000();
static void SetDefaultStrokeEnd←P6060();
static void GetDefaultDropShadows←P6120();
static void SetDefaultDropShadows←P6180();
static word GetDefaultFont←P6240();
static void SetDefaultFont←P6300();
static word GetGravity←P6360();
static void SetGravity←P6420();
static word GetGravityExtent←P6480();
static void SetGravityExtent←P6540();
static word GravityTypeFromAtom←P6600();
static word AtomFromGravityType←P6660();
static word GetGravityType←P6720();
static void SetGravityType←P6780();
static void CycleGravityType←P6840();
static word GetHeuristics←P6900();
static void SetHeuristics←P6960();
static word GetScaleUnit←P7020();
static void SetScaleUnit←P7080();
static void UndoScale←P7140();
static void UpdateCursorLooks←P7200();
static word GetSliceToExtend←P7260();
static void SetSliceToExtend←P7320();
static word GetSelectMode←P7380();
static void SetSelectMode←P7440();
static word GetExtendMode←P7500();
static void SetExtendMode←P7560();
static word GetQuickClickMode←P7620();
static void SetQuickClickMode←P7680();
static word GetSelectionCycler←P7740();
static void SetSelectionCycler←P7800();
static word GetFullName←P7860();
static void StoreAdvisory←P7920();
static void GetAdvisory←P7980();
static void ClearAdvisory←P8040();
static word AdviseRestore←P8100();
static void SetNameFileLabel←P8160();
static word GetBiScroller←P8220();
static void GrabInputFocus←P8280();
static word GetWidth←P8340();
static word GetHeight←P8400();
static void ShowHelp←P8460();
static word ReloadTipTable←P8520();
static word NoName←Q10668();
static void PaintActionArea←P8580();
static void GGEdited←P8640();
static void NoName←Q10728();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\122\207\370\054\300\315\202\135\375\100\200\000\000"};
static struct {unsigned f; char r[12];} string2 = {589833, "\007\000\040\003\004\036\004\016\014\000\000"};
static struct {unsigned f; char r[4];} string3 = {65540, "\251\000\000"};
static struct {unsigned f; char r[4];} string4 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string5 = {65537, "\001\000\000"};
static struct {unsigned f; char r[4];} string6 = {65540, "\232\000\000"};
static struct {unsigned f; char r[20];} string7 = {1179668, "\260\006\005\146\151\162\163\164\217\005\004\162\145\163\164\214\217\261\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[24];} string9 = {1310744, "\260\006\005\146\151\162\163\164\214\217\005\004\162\145\163\164\214\214\217\261\000\000\000"};
static struct {unsigned f; char r[20];} string10 = {1179668, "\260\006\005\146\151\162\163\164\256\005\004\162\145\163\164\214\256\261\000"};
static struct {unsigned f; char r[4];} string11 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string12 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string13 = {65540, "\256\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\314\006\055\020\300\004\067\017\043\100\164\000\000"};
static struct {unsigned f; char r[4];} string15 = {131074, "\004\017\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\345\207\354\240\300\306\063\246\015\100\200\000\000"};
static struct {unsigned f; char r[4];} string17 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\100\200\000\000"};
static struct {unsigned f; char r[68];} string19 = {4325442, "\006\031\000\001\004\001\010\001\014\001\024\001\030\001\034\001\044\001\050\001\054\001\060\001\064\001\070\001\074\001\100\100\001\100\104\001\100\110\001\100\164\001\100\170\001\100\224\004\017\100\244\004\100\171\100\300\001\100\304\001\100\310\001\100\320\001\000"};
static struct {unsigned f; char r[24];} string20 = {1507352, "ViewersPaintEntireScene"};
static struct {unsigned f; char r[12];} string21 = {655372, "ActionArea\000"};
static struct {unsigned f; char r[64];} string22 = {4063296, "ColorTool operation failed: please install ColorTool and retry\000"};
static struct {unsigned f; char r[12];} string23 = {589836, "Complaint\000\000"};
static struct {unsigned f; char r[36];} string24 = {2228260, "Attempt to use illegal slope value\000"};
static struct {unsigned f; char r[8];} string25 = {327688, "%6.5f\000\000"};
static struct {unsigned f; char r[8];} string26 = {327688, "clean\000\000"};
static struct {unsigned f; char r[8];} string27 = {327688, "clear\000\000"};
static struct {unsigned f; char r[12];} string28 = {720908, "ToggleSlope"};
static struct {unsigned f; char r[36];} string29 = {2228260, "Attempt to use illegal angle value\000"};
static struct {unsigned f; char r[12];} string30 = {720908, "ToggleAngle"};
static struct {unsigned f; char r[36];} string31 = {2293796, "Attempt to use illegal radius value"};
static struct {unsigned f; char r[16];} string32 = {786448, "ToggleRadius\000\000\000"};
static struct {unsigned f; char r[44];} string33 = {2752556, "Attempt to use illegal line distance value\000"};
static struct {unsigned f; char r[16];} string34 = {917520, "ToggleDistance\000"};
static struct {unsigned f; char r[8];} string35 = {327688, "%1.2f\000\000"};
static struct {unsigned f; char r[8];} string36 = {327688, "Value\000\000"};
static struct {unsigned f; char r[12];} string37 = {589836, "Midpoints\000\000"};
static struct {unsigned f; char r[16];} string38 = {917520, "ShowAlignments\000"};
static struct {unsigned f; char r[16];} string39 = {851984, "UseBackingMap\000\000"};
static struct {unsigned f; char r[16];} string40 = {786448, "DoubleBuffer\000\000\000"};
static struct {unsigned f; char r[8];} string41 = {393224, "Active\000"};
static struct {unsigned f; char r[12];} string42 = {524300, "Editable\000\000\000"};
static struct {unsigned f; char r[8];} string43 = {458760, "Palette"};
static struct {unsigned f;  char r0[200]; char r1[200]; char r2[112];} string44
   = { 33292800,
   "Poppy1\012Class: PopUpButton\012Menu: (\012  ((TransferFillColor) \042TransferFillColor\042 \042Transfer this button's fill color to selected objects in the input focus viewer\042)\012  ((TransferBothColors) \042TransferBothCol",
   "ors\042 \042Transfer this button's fill and stroke colors to selected objects in the input focus viewer\042)\012  ((TransferStrokeColor) \042TransferStrokeColor\042 \042Transfer this button's stroke color to selected obje",
   "cts in the input focus viewer\042)\012  )\012Feedback: (\012  (MouseMoved <SetCursor bullseye>))\012MessageHandler: Palette\000\000\000"};
static struct {unsigned f; char r[12];} string45 = {655372, "ButtonData\000"};
static struct {unsigned f; char r[16];} string46 = {917520, "SpecifiedFonts\000"};
static struct {unsigned f; char r[16];} string47 = {917520, "AlternateFonts\000"};
static struct {unsigned f; char r[8];} string48 = {458760, "WYSIWYG"};
static struct {unsigned f; char r[12];} string49 = {720908, "ScreenStyle"};
static struct {unsigned f; char r[8];} string50 = {458760, "Gravity"};
static struct {unsigned f; char r[16];} string51 = {851984, "GravityExtent\000\000"};
static struct {unsigned f; char r[16];} string52 = {786448, "PreferPoints\000\000\000"};
static struct {unsigned f; char r[12];} string53 = {720908, "PreferLines"};
static struct {unsigned f; char r[12];} string54 = {720908, "GravityType"};
static struct {unsigned f; char r[8];} string55 = {262152, "Auto\000\000\000"};
static struct {unsigned f; char r[16];} string56 = {786448, "SetScaleUnit\000\000\000"};
static struct {unsigned f; char r[12];} string57 = {589836, "GGPanel: \000\000"};
static struct {unsigned f; char r[12];} string58 = {524300, "Gargoyle\000\000\000"};
static struct {unsigned f; char r[56];} string59 = {3407928, "Restore failed: picture destroyed; try Save or Store\000\000\000"};
static struct {unsigned f; char r[56];} string60 = {3473464, "Restore failed: can't restore unnamed viewer; try Get\000\000"};
static struct {unsigned f; char r[16];} string61 = {786448, "MouseActions\000\000\000"};
static struct {unsigned f; char r[16];} string62 = {786448, "GGHelp.tioga\000\000\000"};
static struct {unsigned f; char r[8];} string63 = {327688, "Fonts\000\000"};
static struct {unsigned f; char r[20];} string64 = {1245204, "GGFontSampler.tioga"};
static struct {unsigned f; char r[8];} string65 = {393224, "Colors\000"};
static struct {unsigned f; char r[16];} string66 = {917520, "GGColors.tioga\000"};
static struct {unsigned f; char r[20];} string67 = {1114132, "GargoyleDoc.tioga\000\000"};
static struct {unsigned f; char r[8];} string68 = {262152, "Text\000\000\000"};
static struct {unsigned f; char r[12];} string69 = {524300, "Feedback\000\000\000"};
static struct {unsigned f; char r[12];} string70 = {720908, "Help opened"};
static struct {unsigned f; char r[16];} string71 = {786448, "Gargoyle.tip\000\000\000"};
static struct {unsigned f; char r[32];} string72 = {1835040, "Reloading tip table %g. . . \000\000\000"};
static struct {unsigned f; char r[32];} string73 = {1835040, "Cannot read TIP table file: \000\000\000"};
static struct {unsigned f; char r[36];} string74 = {2228260, "Error(s) saved on TIP.Errors for: \000"};
static struct {unsigned f; char r[8];} string75 = {262152, "Done\000\000\000"};
static struct {unsigned f; char r[16];} string76 = {851984, "\257\300\352\310\075\072\300\175\005\117\262\100\164\000\000"};
static struct {unsigned f; char r[16];} string77 = {983055, "\006\004\020\001\024\001\030\001\100\164\010\000\004\071\001"};
static struct {unsigned f; char r[16];} string78 = {851984, "\257\300\121\216\014\136\300\111\163\224\167\100\150\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\101\370\323\224\300\165\315\304\000\100\150\000\000"};
static struct {unsigned f; char r[16];} string80 = {851984, "\257\300\345\207\354\240\300\306\063\246\015\100\150\000\000"};
static struct {unsigned f; char r[16];} string81 = {851984, "\257\300\252\311\132\134\300\226\023\126\352\100\150\000\000"};
static struct {unsigned f; char r[16];} string82 = {851984, "\257\300\207\224\334\150\300\367\303\105\360\100\150\000\000"};
static struct {unsigned f; char r[16];} string83 = {851984, "\257\300\115\266\333\252\300\351\105\225\122\100\150\000\000"};
static struct {unsigned f; char r[16];} string84 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string85 = {851984, "\257\300\103\154\257\030\300\165\276\076\350\100\150\000\000"};
static struct {unsigned f; char r[16];} string86 = {851984, "\257\300\344\212\014\176\300\070\230\121\123\100\150\000\000"};
static struct {unsigned f; char r[16];} string87 = {851984, "\257\300\133\220\237\206\300\254\332\015\112\100\164\000\000"};
static struct {unsigned f; char r[16];} string88 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string89 = {851984, "\257\300\231\005\151\136\300\275\231\323\274\100\150\000\000"};
static struct {unsigned f; char r[16];} string90 = {851984, "\257\300\252\050\175\356\300\250\337\044\120\100\150\000\000"};
static struct {unsigned f; char r[16];} string91 = {851984, "\257\300\317\075\344\275\300\105\331\241\110\100\150\000\000"};
static struct {unsigned f; char r[16];} string92 = {851984, "\257\300\207\142\037\125\300\254\056\012\025\100\150\000\000"};
static struct {unsigned f; char r[16];} string93 = {851984, "\257\300\347\101\365\007\300\150\102\366\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string94 = {851984, "\257\300\340\114\347\077\300\130\206\301\040\100\150\000\000"};
static struct {unsigned f; char r[16];} string95 = {851984, "\257\300\272\336\377\011\300\305\371\262\224\100\150\000\000"};
static struct {unsigned f; char r[16];} string96 = {851984, "\257\300\355\324\264\170\300\276\334\312\210\100\150\000\000"};
static struct {unsigned f; char r[16];} string97 = {851984, "\257\300\037\132\057\032\300\262\356\113\061\100\150\000\000"};
static struct {unsigned f; char r[16];} string98 = {851984, "\257\300\144\143\124\312\300\122\224\357\133\100\150\000\000"};
static struct {unsigned f; char r[16];} string99 = {851984, "\257\300\356\024\243\250\300\175\157\203\227\100\150\000\000"};
static struct {unsigned f; char r[16];} string100 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string101 = {851984, "\257\300\263\272\165\301\300\364\117\256\374\100\150\000\000"};
static struct {unsigned f; char r[16];} string102 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string103 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string104 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string105 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string106 = {851984, "\257\300\054\221\365\223\300\171\063\250\230\100\150\000\000"};
static struct {unsigned f; char r[16];} string107 = {851984, "\257\300\026\052\121\143\300\234\275\317\206\100\150\000\000"};
static struct {unsigned f; char r[16];} string108 = {851984, "\257\300\354\332\367\333\300\361\203\205\173\100\150\000\000"};
static struct {unsigned f; char r[16];} string109 = {851984, "\257\300\045\005\337\143\300\252\356\334\244\100\150\000\000"};
static struct {unsigned f; char r[16];} string110 = {851984, "\257\300\206\055\004\241\300\261\334\001\116\100\150\000\000"};
static struct {unsigned f; char r[16];} string111 = {851984, "\257\300\042\164\344\073\300\334\025\274\173\100\150\000\000"};
static struct {unsigned f; char r[16];} string112 = {851984, "\257\300\252\043\023\037\300\070\056\113\065\100\150\000\000"};
static struct {unsigned f; char r[20];} string113 = {1245204, "\211\007\006Change\300\252#\023\037\3008.K5"};
static struct {unsigned f; char r[16];} string114 = {851984, "\257\300\223\145\303\043\300\372\023\025\003\100\150\000\000"};
static struct {unsigned f; char r[28];} string115 = {1572892, "\211\014\013\104\162\141\147\104\141\164\141\117\142\152\300\223\145\303\043\300\372\023\025\003\000\000\000"};
static struct {unsigned f; char r[16];} string116 = {851984, "\257\300\333\030\273\126\300\173\036\033\131\100\200\000\000"};
static struct {unsigned f; char r[20];} string117 = {1114129, "\006\006\050\001\054\001\060\001\064\001\100\100\001\100\110\004\030\000\000"};
static struct {unsigned f; char r[28];} string118 = {1572892, "\211\014\013\103\157\156\164\162\157\154\163\117\142\152\300\223\145\303\043\300\372\023\025\003\000\000\000"};
static struct {unsigned f; char r[16];} string119 = {851984, "\257\300\365$\303)\300KDZZ@t\000\000"};
static struct {unsigned f; char r[88];} string120 = {5701719, "\006\041\000\001\004\001\010\001\014\001\020\001\024\001\030\001\034\001\040\001\050\001\054\001\064\001\070\001\074\001\100\100\001\100\104\001\100\110\001\100\114\001\100\120\001\100\124\001\100\130\001\100\140\001\100\150\001\100\160\001\100\164\001\100\174\001\100\200\001\100\204\001\100\210\001\100\214\001\100\220\001\100\224\001\100\230\001"};
static struct {unsigned f; char r[28];} string121 = {1638428, "\211\015\014\123\164\141\164\145\104\141\164\141\117\142\152\300\223\145\303\043\300\372\023\025\003\000\000"};
static struct {unsigned f; char r[16];} string122 = {851984, "\257\300\037\225\114\266\300\245\306\376\114\100\164\000\000"};
static struct {unsigned f; char r[4];} string123 = {131074, "\004<\000"};
static struct {unsigned f; char r[28];} string124 = {1638428, "\211\015\014\105\155\142\145\144\104\141\164\141\117\142\152\300\223\145\303\043\300\372\023\025\003\000\000"};
static struct {unsigned f; char r[16];} string125 = {851984, "\257\300\036\073\304\257\300\266\014\226\240\100\164\000\000"};
static struct {unsigned f; char r[4];} string126 = {131074, "\004,\000"};
static struct {unsigned f; char r[28];} string127 = {1769500, "\211\017\016\122\145\146\162\145\163\150\104\141\164\141\117\142\152\300\223\145\303\043\300\372\023\025\003"};
static struct {unsigned f; char r[16];} string128 = {851984, "\257\300\026\355\016\312\300\171\207\041\370\100\200\000\000"};
static struct {unsigned f; char r[44];} string129 = {2752554, "\006\020\000\001\014\001\020\001\024\001\030\001\034\001\070\001\074\001\100\100\001\100\104\001\100\110\001\100\114\001\100\120\001\100\124\001\100\130\001\100\144\001\000"};
static struct {unsigned f; char r[16];} string130 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\150\000\000"};
static struct {unsigned f; char r[24];} string131 = {1376280, "\211\011\010\123\143\145\156\145\117\142\152\300\247\365\203\234\300\047\265\225\046\000\000"};
static struct {unsigned f; char r[16];} string132 = {851984, "\257\300\023\042\171\072\300\052\367\123\170\100\164\000\000"};
static struct {unsigned f; char r[28];} string133 = {1572888, "\006\010\014\001\020\001\024\001\030\004\155\273\100\120\013\100\214\001\100\220\001\100\224\001\000\000\000"};
static struct {
   word f0[86]; word f86; word f87; word f88; 
   word f89; word f90; word f91; word f92; 
   word f93; word f94; word f95; word f96; 
   word f97; word f98; word f99; word f100; 
   word f101; word f102; word f103; word f104; 
   word f105; word f106; word f107; word f108; 
   word f109; word f110; word f111; word f112; 
   word f113; word f114; word f115; word f116; 
   word f117; word f118; word f119; word f120; 
   word f121; word f122; word f123; word f124; 
   word f125; word f126; word f127; word f128; 
   word f129; word f130; word f131; word f132; 
   word f133; word f134; word f135; word f136; 
   word f137; word f138; word f139; word f140; 
   word f141; word f142; word f143; word f144; 
   word f145; word f146; word f147; word f148; 
   word f149; word f150; word f151; word f152; 
   word f153; word f154; word f155; word f156; 
   word f157; word f158; word f159; word f160; 
   word f161; word f162; word f163; word f164; 
   word f165; word f166; word f167; word f168; 
   word f169; word f170; word f171; word f172; 
   word f173; word f174; word f175; word f176; 
   word f177; word f178; word f179; word f180; 
   word f181; word f182; word f183; word f184; 
   word f185; word f186; word f187; word f188; 
   word f189; word f190; word f191; word f192; 
   word f193; word f194; word f195; word f196; 
   word f197; word f198; word f199; word f200; 
   word f201; word f202; word f203; word f204; 
   word f205; word f206; word f207; word f208; 
   word f209; word f210; word f211; word f212; 
   word f213; word f214; word f215; word f216; 
   word f217; word f218; word f219; word f220; 
   word f221; word f222; word f223; word f224; 
   word f225; word f226; word f227; word f228; 
   word f229; word f230; word f231; word f232; 
   word f233; word f234; word f235; word f236; 
   word f237; word f238; word f239; word f240; 
   word f241; word f242; word f243; word f244; 
   word f245; word f246; word f247; word f248; 
   word f249; word f250; word f251; word f252; 
   word f253; word f254; word f255; word f256; 
   word f257; word f258; word f259; word f260; 
   word f261; word f262; word f263; word f264; 
   word f265; word f266; word f267; word f268; 
   word f269; word f270; word f271; word f272; 
   word f273; word f274; word f275; word f276; 
   word f277; word f278; word f279; word f280; 
   word f281; word f282; word f283; word f284; 
   word f285; word f286; word f287; word f288; 
   word f289; word f290; word f291; word f292; 
   word f293; word f294; word f295; word f296; 
   word f297; word f298; word f299; word f300; 
   word f301; word f302; word f303; word f304; 
   word f305; word f306; word f307; word f308; 
   word f309; word f310; word f311; word f312; 
   word f313; word f314; word f315; word f316; 
   word f317; word f318; word f319; word f320; 
   word f321; word f322; word f323; word f324; 
   word f325; word f326; word f327; word f328; 
   word f329; word f330; word f331; word f332; 
   word f333; word f334; word f335; word f336; 
   word f337; word f338; word f339; word f340; 
   word f341; word f342; word f343; word f344; 
   word f345; word f346; word f347; word f348; 
   word f349; word f350; word f351; word f352; 
   word f353; word f354; word f355; word f356; 
   word f357; word f358; word f359; word f360; 
   word f361; word f362; word f363; word f364; 
   word f365; word f366; word f367; word f368; 
   word f369; word f370; word f371; word f372; 
   word f373; word f374; word f375[35]; 
   } globalframe = {
   {0}, (word) GGEdited←P8640, 0, (word) PaintActionArea←P8580, 
   0, (word) ReloadTipTable←P8520, 0, (word) ShowHelp←P8460, 
   0, (word) GetHeight←P8400, 0, (word) GetWidth←P8340, 
   0, (word) GrabInputFocus←P8280, 0, (word) GetBiScroller←P8220, 
   0, (word) SetNameFileLabel←P8160, 0, (word) AdviseRestore←P8100, 
   0, (word) ClearAdvisory←P8040, 0, (word) GetAdvisory←P7980, 
   0, (word) StoreAdvisory←P7920, 0, (word) GetFullName←P7860, 
   0, (word) SetSelectionCycler←P7800, 0, (word) GetSelectionCycler←P7740, 
   0, (word) SetQuickClickMode←P7680, 0, (word) GetQuickClickMode←P7620, 
   0, (word) SetExtendMode←P7560, 0, (word) GetExtendMode←P7500, 
   0, (word) SetSelectMode←P7440, 0, (word) GetSelectMode←P7380, 
   0, (word) SetSliceToExtend←P7320, 0, (word) GetSliceToExtend←P7260, 
   0, (word) UpdateCursorLooks←P7200, 0, (word) UndoScale←P7140, 
   0, (word) SetScaleUnit←P7080, 0, (word) GetScaleUnit←P7020, 
   0, (word) SetHeuristics←P6960, 0, (word) GetHeuristics←P6900, 
   0, (word) CycleGravityType←P6840, 0, (word) SetGravityType←P6780, 
   0, (word) GetGravityType←P6720, 0, (word) AtomFromGravityType←P6660, 
   0, (word) GravityTypeFromAtom←P6600, 0, (word) SetGravityExtent←P6540, 
   0, (word) GetGravityExtent←P6480, 0, (word) SetGravity←P6420, 
   0, (word) GetGravity←P6360, 0, (word) SetDefaultFont←P6300, 
   0, (word) GetDefaultFont←P6240, 0, (word) SetDefaultDropShadows←P6180, 
   0, (word) GetDefaultDropShadows←P6120, 0, (word) SetDefaultStrokeEnd←P6060, 
   0, (word) GetDefaultStrokeEnd←P6000, 0, (word) SetDefaultStrokeJoint←P5940, 
   0, (word) GetDefaultStrokeJoint←P5880, 0, (word) SetDefaultStrokeColor←P5820, 
   0, (word) GetDefaultStrokeColor←P5760, 0, (word) SetDefaultFillColor←P5700, 
   0, (word) GetDefaultFillColor←P5640, 0, (word) SetDefaultDashPattern←P5580, 
   0, (word) GetDefaultDashPattern←P5520, 0, (word) CycleDisplayStyle←P5460, 
   0, (word) SetDisplayStyle←P5400, 0, (word) GetDisplayStyle←P5340, 
   0, (word) AtomFromDisplayStyle←P5280, 0, (word) DisplayStyleFromAtom←P5220, 
   0, (word) SetDefaults←P5160, 0, (word) GetDefaults←P5100, 
   0, (word) SetPalette←P5040, 0, (word) GetPalette←P4980, 
   0, (word) SetReadOnly←P4920, 0, (word) GetReadOnly←P4860, 
   0, (word) SetActive←P4800, 0, (word) GetActive←P4740, 
   0, (word) SetDoubleBuffer←P4680, 0, (word) GetDoubleBuffer←P4620, 
   0, (word) SetUseBackingMap←P4560, 0, (word) GetUseBackingMap←P4500, 
   0, (word) SetShowAlignments←P4440, 0, (word) GetShowAlignments←P4380, 
   0, (word) SetWorkingDirectory←P4320, 0, (word) GetWorkingDirectory←P4260, 
   0, (word) SetMidpoints←P4200, 0, (word) GetMidpoints←P4140, 
   0, (word) ScalarToRope←P4080, 0, (word) NewLineDistanceList←P4020, 
   0, (word) AddLineDistanceList←P3960, 0, (word) AddLineDistance←P3900, 
   0, (word) SelectLineDistance←P3840, 0, (word) SetLineDistanceValue←P3780, 
   0, (word) GetLineDistanceValue←P3720, 0, (word) GetLineDistanceAlignments←P3660, 
   0, (word) SetRadiusCircleCache←P3600, 0, (word) GetRadiusCircleCache←P3540, 
   0, (word) NewRadiusList←P3480, 0, (word) AddRadiusList←P3420, 
   0, (word) AddRadius←P3360, 0, (word) SelectRadius←P3300, 
   0, (word) SetRadiusValue←P3240, 0, (word) GetRadiusValue←P3180, 
   0, (word) GetRadiusAlignments←P3120, 0, (word) NewAngleList←P3060, 
   0, (word) AddAngleList←P3000, 0, (word) AddAngle←P2940, 
   0, (word) SelectAngle←P2880, 0, (word) SetAngleValue←P2820, 
   0, (word) GetAngleValue←P2760, 0, (word) GetAngleAlignments←P2700, 
   0, (word) SpliceToList←P2640, 0, (word) CompareValues←P2580, 
   0, (word) MergeScalarButtonLists←P2520, 0, (word) NewSlopeList←P2460, 
   0, (word) AddSlopeList←P2400, 0, (word) ButtonsFromValues←P2340, 
   0, (word) AddSlope←P2280, 0, (word) SelectSlope←P2220, 
   0, (word) SetSlopeValue←P2160, 0, (word) GetSlopeValue←P2100, 
   0, (word) GetSlopeAlignments←P2040, 0, (word) ToggleAlignment←P1980, 
   0, (word) GetSortedButtonHandle←P1920, 0, (word) DeleteSelectedAlignments←P1860, 
   0, (word) SetAllAlignmentStates←P1800, 0, (word) GetFilterLists←P1740, 
   0, (word) ChangeTransform←P1680, 0, (word) BiScrollersPreviousTransform←P1620, 
   0, (word) Norm←P1560, 0, (word) ViewLimitsOfImage←P1500, 
   0, (word) DoBSUserAction←P1440, 0, (word) BiScrollersBoxScale←P1380, 
   0, (word) GGExtremaProc←P1320, 0, (word) ClientExtremaProc←P1260, 
   0, (word) BiScrollersAlign←P1200, 0, (word) BiScrollersShift←P1140, 
   0, (word) BiScrollersRotate←P1080, 0, (word) BiScrollersScale←P1020, 
   0, (word) ZeroProtect←P960, 0, (word) ConstantVector←P900, 
   0, (word) SGN←P840, 0, (word) SetBiScrollersTransform←P780, 
   0, (word) BiScrollersConcat←P720, 0, (word) GetBiScrollersScale←P660, 
   0, (word) GetBiScrollersTransform←P600, 0, (word) GetBiScrollersTransforms←P540, 
   0, (word) GetAnchor←P480, 0, (word) GetGGInputFocus←P420, 
   0, (word) GetViewport←P360, 0, (word) ColorToolIsBound←P300, 
   0, (word) ChangeIcon←P240, 0, (word) NotNewVersion←P180, 
   0, (word) DefaultViewport←P120, 0, (word) RegisterViewportProc←P60, 
   0, (word) GGStateImpl←P0, {0}
   };

static void NoName←Q10608()
   {
   register ptr gf←c0999 =  (ptr) &globalframe;
   word var←c100612;
   (* (( (ptr) gf←c0999)+8) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0999)+15) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c0999)+16) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0999)+18) ) = (word) XR←GetTypeIndexS((word) (&string6));
   (* (( (ptr) gf←c0999)+20) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0999)+21) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string8);
   (* (( (ptr) gf←c0999)+22) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0999)+24) ) = (word) XR←GetTypeIndex((word) &string12, 0, (word) &string5);
   (* (( (ptr) gf←c0999)+25) ) = (word) XR←GetTypeIndexS((word) (&string13));
   (* (( (ptr) gf←c0999)+26) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string15);
   (* (( (ptr) gf←c0999)+27) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string17);
   (* (( (ptr) gf←c0999)+28) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19);
   (*  (ptr) (( (bPt) gf←c0999)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0999)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0999)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0999)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0999)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0999)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0999)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0999)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0999)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0999)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c0999)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0999)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0999)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0999)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0999)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0999)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0999)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0999)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0999)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0999)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0999)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c0999)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c0999)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c0999)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c0999)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c0999)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c0999)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c0999)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c0999)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c0999)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c0999)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c0999)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c0999)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string52);
   (*  (ptr) (( (bPt) gf←c0999)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string53);
   (*  (ptr) (( (bPt) gf←c0999)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string54);
   (*  (ptr) (( (bPt) gf←c0999)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string55);
   (*  (ptr) (( (bPt) gf←c0999)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string56);
   (*  (ptr) (( (bPt) gf←c0999)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string57);
   (*  (ptr) (( (bPt) gf←c0999)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string58);
   (*  (ptr) (( (bPt) gf←c0999)+276) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string59);
   (*  (ptr) (( (bPt) gf←c0999)+280) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string60);
   (*  (ptr) (( (bPt) gf←c0999)+284) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string61);
   (*  (ptr) (( (bPt) gf←c0999)+288) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string62);
   (*  (ptr) (( (bPt) gf←c0999)+292) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string63);
   (*  (ptr) (( (bPt) gf←c0999)+296) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string64);
   (*  (ptr) (( (bPt) gf←c0999)+300) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string65);
   (*  (ptr) (( (bPt) gf←c0999)+304) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string66);
   (*  (ptr) (( (bPt) gf←c0999)+308) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string67);
   (*  (ptr) (( (bPt) gf←c0999)+312) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string68);
   (*  (ptr) (( (bPt) gf←c0999)+316) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+16) ), (word) &string69);
   (*  (ptr) (( (bPt) gf←c0999)+320) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string70);
   (*  (ptr) (( (bPt) gf←c0999)+324) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string71);
   (*  (ptr) (( (bPt) gf←c0999)+328) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string72);
   (*  (ptr) (( (bPt) gf←c0999)+332) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string73);
   (*  (ptr) (( (bPt) gf←c0999)+336) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string74);
   (*  (ptr) (( (bPt) gf←c0999)+340) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0999)+24) ), (word) &string75);
   (void) XR←DeclareGlobalFrame((word) "GGStateImpl", &globalframe, (word) XR←GetTypeIndex((word) &string76, 0, (word) &string77)
      , (word) (( (bPt) gf←c0999)+1496)/* var←c94436 */ );
   var←c100612 = (word) XR←ImportInterface((word) "Angles2d", (word) XR←GetTypeIndexS((word) (&string78)), 11);
   (* (( (ptr) gf←c0999)+388)/* var←c95972 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67371009);
   var←c100612 = (word) XR←ImportInterface((word) "AtomButtons", (word) XR←GetTypeIndexS((word) (&string79)), 21);
   (* (( (ptr) gf←c0999)+387)/* var←c95876 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 1313285);
   (void) XR←ImportProcS(var←c100612, 68947716);
   (void) XR←ImportProcS(var←c100612, 788227);
   (void) XR←ImportProcS(var←c100612, 788739);
   (void) XR←ImportProcS(var←c100612, 789251);
   (void) XR←ImportProcS(var←c100612, 787971);
   var←c100612 = (word) XR←ImportInterface((word) "BiScrollers", (word) XR←GetTypeIndexS((word) (&string80)), 30);
   (* (( (ptr) gf←c0999)+382)/* var←c95012 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67371521);
   (void) XR←ImportProcS(var←c100612, 67373569);
   var←c100612 = (word) XR←ImportInterface((word) "BiScrollersTransforms", (word) XR←GetTypeIndexS((word) (&string81)), 7);
   (* (( (ptr) gf←c0999)+383)/* var←c95236 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 70256139);
   (void) XR←ImportProcS(var←c100612, 70255622);
   (void) XR←ImportProcS(var←c100612, 70779658);
   (void) XR←ImportProcS(var←c100612, 67895811);
   (void) XR←ImportProcS(var←c100612, 69206278);
   (void) XR←ImportProcS(var←c100612, 69730311);
   var←c100612 = (word) XR←ImportInterface((word) "ColorTool", (word) XR←GetTypeIndexS((word) (&string82)), 10);
   (* (( (ptr) gf←c0999)+379)/* var←c94788 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67372289);
   var←c100612 = (word) XR←ImportInterface((word) "EmbeddedButtons", (word) XR←GetTypeIndexS((word) (&string83)), 32);
   (* (( (ptr) gf←c0999)+397)/* var←c99140 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 1056516);
   (void) XR←ImportProcS(var←c100612, 67902979);
   var←c100612 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string84)), 25);
   (* (( (ptr) gf←c0999)+380)/* var←c94820 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 1575429);
   (void) XR←ImportProcS(var←c100612, 1050628);
   var←c100612 = (word) XR←ImportInterface((word) "FileNames", (word) XR←GetTypeIndexS((word) (&string85)), 17);
   (* (( (ptr) gf←c0999)+395)/* var←c98948 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67634946);
   (void) XR←ImportProcS(var←c100612, 67373313);
   (void) XR←ImportProcS(var←c100612, 67635202);
   var←c100612 = (word) XR←ImportInterface((word) "FS", (word) XR←GetTypeIndexS((word) (&string86)), 36);
   (* (( (ptr) gf←c0999)+404)/* var←c100260 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 940048898);
   var←c100612 = (word) XR←ImportInterface((word) "Geom2D", (word) XR←GetTypeIndexS((word) (&string87)), 23);
   (* (( (ptr) gf←c0999)+386)/* var←c95492 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 270012674);
   var←c100612 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string88)), 24);
   (* (( (ptr) gf←c0999)+385)/* var←c95396 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67372033);
   var←c100612 = (word) XR←ImportInterface((word) "GGCoreOps", (word) XR←GetTypeIndexS((word) (&string89)), 37);
   (* (( (ptr) gf←c0999)+389)/* var←c96292 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 526082);
   (void) XR←ImportProcS(var←c100612, 67110144);
   (void) XR←ImportProcS(var←c100612, 135796739);
   (void) XR←ImportProcS(var←c100612, 134223616);
   (void) XR←ImportProcS(var←c100612, 135008771);
   (void) XR←ImportProcS(var←c100612, 135007747);
   (void) XR←ImportProcS(var←c100612, 134222080);
   (void) XR←ImportProcS(var←c100612, 134221056);
   var←c100612 = (word) XR←ImportInterface((word) "GGHistory", (word) XR←GetTypeIndexS((word) (&string90)), 20);
   (* (( (ptr) gf←c0999)+401)/* var←c99748 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 787971);
   var←c100612 = (word) XR←ImportInterface((word) "GGProps", (word) XR←GetTypeIndexS((word) (&string91)), 11);
   (* (( (ptr) gf←c0999)+399)/* var←c99236 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67895811);
   (void) XR←ImportProcS(var←c100612, 135004419);
   (void) XR←ImportProcS(var←c100612, 67635202);
   (void) XR←ImportProcS(var←c100612, 1048580);
   var←c100612 = (word) XR←ImportInterface((word) "GGRefresh", (word) XR←GetTypeIndexS((word) (&string92)), 30);
   (* (( (ptr) gf←c0999)+398)/* var←c99172 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 267777);
   (void) XR←ImportProcS(var←c100612, 267009);
   var←c100612 = (word) XR←ImportInterface((word) "GGScene", (word) XR←GetTypeIndexS((word) (&string93)), 50);
   (* (( (ptr) gf←c0999)+384)/* var←c95364 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67380225);
   var←c100612 = (word) XR←ImportInterface((word) "GGSessionLog", (word) XR←GetTypeIndexS((word) (&string94)), 7);
   (* (( (ptr) gf←c0999)+407)/* var←c100516 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 135004931);
   var←c100612 = (word) XR←ImportInterface((word) "GGUIUtility", (word) XR←GetTypeIndexS((word) (&string95)), 10);
   (* (( (ptr) gf←c0999)+403)/* var←c100228 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67110656);
   var←c100612 = (word) XR←ImportInterface((word) "GGUserInput", (word) XR←GetTypeIndexS((word) (&string96)), 13);
   (* (( (ptr) gf←c0999)+393)/* var←c97220 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 525058);
   var←c100612 = (word) XR←ImportInterface((word) "GGUserProfile", (word) XR←GetTypeIndexS((word) (&string97)), 25);
   (* (( (ptr) gf←c0999)+400)/* var←c99524 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67112960);
   (void) XR←ImportProcS(var←c100612, 67109888);
   var←c100612 = (word) XR←ImportInterface((word) "GGViewerOps", (word) XR←GetTypeIndexS((word) (&string98)), 8);
   (* (( (ptr) gf←c0999)+390)/* var←c96452 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67633922);
   (void) XR←ImportProcS(var←c100612, 787459);
   (void) XR←ImportProcS(var←c100612, 67633410);
   var←c100612 = (word) XR←ImportInterface((word) "GGWindow", (word) XR←GetTypeIndexS((word) (&string99)), 12);
   (* (( (ptr) gf←c0999)+377)/* var←c94660 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 789251);
   (void) XR←ImportProcS(var←c100612, 1572870);
   (void) XR←ImportProcS(var←c100612, 335546368);
   var←c100612 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string100)), 55);
   (* (( (ptr) gf←c0999)+376)/* var←c94468 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67383041);
   (void) XR←ImportProcS(var←c100612, 135013122);
   (void) XR←ImportProcS(var←c100612, 67634689);
   (void) XR←ImportProcS(var←c100612, 67635458);
   (void) XR←ImportProcS(var←c100612, 134493185);
   (void) XR←ImportProcS(var←c100612, 67371777);
   var←c100612 = (word) XR←ImportInterface((word) "InputFocus", (word) XR←GetTypeIndexS((word) (&string101)), 6);
   (* (( (ptr) gf←c0999)+381)/* var←c94980 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 524546);
   (void) XR←ImportProcS(var←c100612, 67108864);
   var←c100612 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string102)), 103);
   (* (( (ptr) gf←c0999)+394)/* var←c98916 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67910402);
   var←c100612 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string103)), 11);
   (* (( (ptr) gf←c0999)+402)/* var←c100068 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67371521);
   var←c100612 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string104)), 36);
   (* (( (ptr) gf←c0999)+391)/* var←c96484 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67904259);
   var←c100612 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string105)), 43);
   (* (( (ptr) gf←c0999)+396)/* var←c99012 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67896323);
   (void) XR←ImportProcS(var←c100612, 67633666);
   (void) XR←ImportProcS(var←c100612, 67898627);
   (void) XR←ImportProcS(var←c100612, 67373569);
   (void) XR←ImportProcS(var←c100612, 67634434);
   var←c100612 = (word) XR←ImportInterface((word) "TiogaMenuOps", (word) XR←GetTypeIndexS((word) (&string106)), 25);
   (* (( (ptr) gf←c0999)+405)/* var←c100388 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 787715);
   var←c100612 = (word) XR←ImportInterface((word) "TIPUser", (word) XR←GetTypeIndexS((word) (&string107)), 4);
   (* (( (ptr) gf←c0999)+406)/* var←c100484 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 67371009);
   var←c100612 = (word) XR←ImportInterface((word) "ViewerOps", (word) XR←GetTypeIndexS((word) (&string108)), 43);
   (* (( (ptr) gf←c0999)+378)/* var←c94692 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 532994);
   (void) XR←ImportProcS(var←c100612, 525826);
   (void) XR←ImportProcS(var←c100612, 1049348);
   (void) XR←ImportProcS(var←c100612, 532482);
   (void) XR←ImportProcS(var←c100612, 74973699);
   (void) XR←ImportProcS(var←c100612, 529410);
   (void) XR←ImportProcS(var←c100612, 67376897);
   (void) XR←ImportProcS(var←c100612, 1051652);
   var←c100612 = (word) XR←ImportInterface((word) "ViewerTools", (word) XR←GetTypeIndexS((word) (&string109)), 12);
   (* (( (ptr) gf←c0999)+392)/* var←c96516 */  ) = var←c100612;
   (void) XR←ImportProcS(var←c100612, 524802);
   var←c100612 = (word) XR←ExportInterface((word) "GGState", (word) XR←GetTypeIndexS((word) (&string110)), 119);
   (* (( (ptr) gf←c0999)+408)/* var←c100644 */  ) = var←c100612;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1472)/* var←c94340 */ , 524290, (word) "NotNewVersion");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1464)/* var←c94308 */ , 524546, (word) "ChangeIcon");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1456)/* var←c94276 */ , 67371521, (word) "ColorToolIsBound")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1448)/* var←c94244 */ , 268698369, (word) "GetViewport");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1440)/* var←c94212 */ , 67109888, (word) "GetGGInputFocus");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1432)/* var←c94180 */ , 67372289, (word) "GetAnchor");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1416)/* var←c94116 */ , 67372545, (word) "GetBiScrollersTransform")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1408)/* var←c94084 */ , 67372801, (word) "GetBiScrollersScale")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1424)/* var←c94148 */ , 134481921, (word) "GetBiScrollersTransforms")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1392)/* var←c94020 */ , 1050884, (word) "SetBiScrollersTransform")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1400)/* var←c94052 */ , 1051140, (word) "BiScrollersConcat")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1360)/* var←c93892 */ , 1051394, (word) "BiScrollersScale");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1352)/* var←c93860 */ , 789506, (word) "BiScrollersRotate");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1344)/* var←c93828 */ , 789763, (word) "BiScrollersShift");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1336)/* var←c93796 */ , 2625030, (word) "BiScrollersAlign");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1312)/* var←c93700 */ , 2625284, (word) "BiScrollersBoxScale")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1280)/* var←c93572 */ , 266241, (word) "BiScrollersPreviousTransform")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1304)/* var←c93668 */ , 528642, (word) "DoBSUserAction");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1264)/* var←c93508 */ , 67375617, (word) "GetFilterLists");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1256)/* var←c93476 */ , 791299, (word) "SetAllAlignmentStates")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1248)/* var←c93444 */ , 529410, (word) "DeleteSelectedAlignments")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1232)/* var←c93380 */ , 135009539, (word) "ToggleAlignment")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1216)/* var←c93316 */ , 134485505, (word) "GetSlopeValue");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1208)/* var←c93284 */ , 530178, (word) "SetSlopeValue");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1200)/* var←c93252 */ , 67377153, (word) "SelectSlope");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1224)/* var←c93348 */ , 134486273, (word) "GetSlopeAlignments")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1192)/* var←c93220 */ , 67901955, (word) "AddSlope");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1176)/* var←c93156 */ , 793347, (word) "AddSlopeList");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1168)/* var←c93124 */ , 793603, (word) "NewSlopeList");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1136)/* var←c92996 */ , 134487297, (word) "GetAngleAlignments")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1128)/* var←c92964 */ , 134487553, (word) "GetAngleValue");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1120)/* var←c92932 */ , 532226, (word) "SetAngleValue");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1112)/* var←c92900 */ , 67379201, (word) "SelectAngle");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1104)/* var←c92868 */ , 67903747, (word) "AddAngle");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1096)/* var←c92836 */ , 795139, (word) "AddAngleList");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1088)/* var←c92804 */ , 795395, (word) "NewAngleList");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1080)/* var←c92772 */ , 201597953, (word) "GetRadiusAlignments")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1072)/* var←c92740 */ , 134489345, (word) "GetRadiusValue");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1064)/* var←c92708 */ , 534018, (word) "SetRadiusValue");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1056)/* var←c92676 */ , 67380993, (word) "SelectRadius");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1048)/* var←c92644 */ , 68167684, (word) "AddRadius");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1040)/* var←c92612 */ , 1059076, (word) "AddRadiusList");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1032)/* var←c92580 */ , 1059332, (word) "NewRadiusList");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1024)/* var←c92548 */ , 67382017, (word) "GetRadiusCircleCache")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1016)/* var←c92516 */ , 535554, (word) "SetRadiusCircleCache")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1008)/* var←c92484 */ , 201600257, (word) "GetLineDistanceAlignments")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1000)/* var←c92452 */ , 134491649, (word) "GetLineDistanceValue")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+992)/* var←c92420 */ , 536322, (word) "SetLineDistanceValue")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+984)/* var←c92388 */ , 67383297, (word) "SelectLineDistance")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+976)/* var←c92356 */ , 68169988, (word) "AddLineDistance");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+968)/* var←c92324 */ , 1061380, (word) "AddLineDistanceList")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+960)/* var←c92292 */ , 1061636, (word) "NewLineDistanceList")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+944)/* var←c92228 */ , 67384321, (word) "GetMidpoints");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+936)/* var←c92196 */ , 537858, (word) "SetMidpoints");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+912)/* var←c92100 */ , 67384833, (word) "GetShowAlignments")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+904)/* var←c92068 */ , 538370, (word) "SetShowAlignments");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+880)/* var←c91972 */ , 67385345, (word) "GetDoubleBuffer");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+872)/* var←c91940 */ , 538882, (word) "SetDoubleBuffer");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+896)/* var←c92036 */ , 67385857, (word) "GetUseBackingMap");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+888)/* var←c92004 */ , 539394, (word) "SetUseBackingMap");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+864)/* var←c91908 */ , 67386369, (word) "GetActive");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+856)/* var←c91876 */ , 539906, (word) "SetActive");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+848)/* var←c91844 */ , 67386881, (word) "GetReadOnly");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+840)/* var←c91812 */ , 540418, (word) "SetReadOnly");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+832)/* var←c91780 */ , 67387393, (word) "GetPalette");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+824)/* var←c91748 */ , 540930, (word) "SetPalette");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+816)/* var←c91716 */ , 67387905, (word) "GetDefaults");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+808)/* var←c91684 */ , 541442, (word) "SetDefaults");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+784)/* var←c91588 */ , 67388417, (word) "GetDisplayStyle");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+776)/* var←c91556 */ , 541954, (word) "SetDisplayStyle");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+768)/* var←c91524 */ , 542210, (word) "CycleDisplayStyle");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+760)/* var←c91492 */ , 268715777, (word) "GetDefaultDashPattern")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+752)/* var←c91460 */ , 1329157, (word) "SetDefaultDashPattern")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+744)/* var←c91428 */ , 67389697, (word) "GetDefaultFillColor")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+736)/* var←c91396 */ , 543234, (word) "SetDefaultFillColor")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+728)/* var←c91364 */ , 67390209, (word) "GetDefaultStrokeColor")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+720)/* var←c91332 */ , 543746, (word) "SetDefaultStrokeColor")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+712)/* var←c91300 */ , 67390721, (word) "GetDefaultStrokeJoint")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+704)/* var←c91268 */ , 544258, (word) "SetDefaultStrokeJoint")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+696)/* var←c91236 */ , 67391233, (word) "GetDefaultStrokeEnd")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+688)/* var←c91204 */ , 544770, (word) "SetDefaultStrokeEnd")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+680)/* var←c91172 */ , 268718337, (word) "GetDefaultDropShadows")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+672)/* var←c91140 */ , 1331716, (word) "SetDefaultDropShadows")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+664)/* var←c91108 */ , 67392257, (word) "GetDefaultFont");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+656)/* var←c91076 */ , 545794, (word) "SetDefaultFont");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+648)/* var←c91044 */ , 67392769, (word) "GetGravity");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+640)/* var←c91012 */ , 546306, (word) "SetGravity");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+632)/* var←c90980 */ , 67393281, (word) "GetGravityExtent");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+624)/* var←c90948 */ , 546818, (word) "SetGravityExtent");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+600)/* var←c90852 */ , 67393793, (word) "GetGravityType");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+592)/* var←c90820 */ , 547330, (word) "SetGravityType");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+584)/* var←c90788 */ , 547586, (word) "CycleGravityType");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+576)/* var←c90756 */ , 67394561, (word) "GetHeuristics");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+568)/* var←c90724 */ , 548098, (word) "SetHeuristics");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+560)/* var←c90692 */ , 67395073, (word) "GetScaleUnit");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+552)/* var←c90660 */ , 810755, (word) "SetScaleUnit");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+528)/* var←c90564 */ , 67395585, (word) "GetSliceToExtend");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+520)/* var←c90532 */ , 549122, (word) "SetSliceToExtend");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+512)/* var←c90500 */ , 67396097, (word) "GetSelectMode");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+504)/* var←c90468 */ , 549634, (word) "SetSelectMode");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+496)/* var←c90436 */ , 67396609, (word) "GetExtendMode");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+488)/* var←c90404 */ , 550146, (word) "SetExtendMode");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+480)/* var←c90372 */ , 67134976, (word) "GetQuickClickMode")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+472)/* var←c90340 */ , 288513, (word) "SetQuickClickMode");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+464)/* var←c90308 */ , 67397633, (word) "GetSelectionCycler")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+456)/* var←c90276 */ , 551170, (word) "SetSelectionCycler");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+448)/* var←c90244 */ , 67398145, (word) "GetFullName");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+384)/* var←c89988 */ , 67398401, (word) "GetWidth");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+376)/* var←c89956 */ , 67398657, (word) "GetHeight");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+392)/* var←c90020 */ , 290049, (word) "GrabInputFocus");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+352)/* var←c89860 */ , 290305, (word) "PaintActionArea");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+432)/* var←c90180 */ , 814851, (word) "GetAdvisory");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+440)/* var←c90212 */ , 815107, (word) "StoreAdvisory");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+424)/* var←c90148 */ , 291073, (word) "ClearAdvisory");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+416)/* var←c90116 */ , 67400193, (word) "AdviseRestore");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+368)/* var←c89924 */ , 553730, (word) "ShowHelp");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+360)/* var←c89892 */ , 67400961, (word) "ReloadTipTable");
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+344)/* var←c89828 */ , 554498, (word) "GGEdited");
   var←c100612 = (word) XR←ExportInterface((word) "GGStateExtras", (word) XR←GetTypeIndexS((word) (&string111)), 4);
   (* (( (ptr) gf←c0999)+408)/* var←c100644 */  ) = var←c100612;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1488)/* var←c94404 */ , 786435, (word) "RegisterViewportProc")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+1480)/* var←c94372 */ , 268960002, (word) "DefaultViewport")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+928)/* var←c92164 */ , 67371521, (word) "GetWorkingDirectory")
   ;
   (void) XR←ExportProcS(var←c100612, (word) (( (bPt) gf←c0999)+920)/* var←c92132 */ , 525058, (word) "SetWorkingDirectory")
   ;
   var←c100612 = (word) XR←ExportInterface((word) "GGHistoryTypes", (word) XR←GetTypeIndexS((word) (&string112)), 2);
   (* (( (ptr) gf←c0999)+409)/* var←c100676 */  ) = var←c100612;
   (void) XR←ExportType((word) "Change", (word) XR←GetTypeIndexS((word) (&string113)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   var←c100612 = (word) XR←ExportInterface((word) "GGInterfaceTypes", (word) XR←GetTypeIndexS((word) (&string114)), 6);
   (* (( (ptr) gf←c0999)+409)/* var←c100676 */  ) = var←c100612;
   (void) XR←ExportType((word) "DragDataObj", (word) XR←GetTypeIndexS((word) (&string115)), (word) XR←GetTypeIndex((word) &string116, 0, (word) &string117)
      );
   (void) XR←ExportType((word) "ControlsObj", (word) XR←GetTypeIndexS((word) (&string118)), (word) XR←GetTypeIndex((word) &string119, 0, (word) &string120)
      );
   (void) XR←ExportType((word) "StateDataObj", (word) XR←GetTypeIndexS((word) (&string121)), (word) XR←GetTypeIndex((word) &string122, 0, (word) &string123)
      );
   (void) XR←ExportType((word) "EmbedDataObj", (word) XR←GetTypeIndexS((word) (&string124)), (word) XR←GetTypeIndex((word) &string125, 0, (word) &string126)
      );
   (void) XR←ExportType((word) "RefreshDataObj", (word) XR←GetTypeIndexS((word) (&string127)), (word) XR←GetTypeIndex((word) &string128, 0, (word) &string129)
      );
   var←c100612 = (word) XR←ExportInterface((word) "GGModelTypes", (word) XR←GetTypeIndexS((word) (&string130)), 1);
   (* (( (ptr) gf←c0999)+409)/* var←c100676 */  ) = var←c100612;
   (void) XR←ExportType((word) "SceneObj", (word) XR←GetTypeIndexS((word) (&string131)), (word) XR←GetTypeIndex((word) &string132, 0, (word) &string133)
      );
   }

static void GGStateImpl←P0(formal←c0192, formal←c0190)
   word formal←c0192;
   word formal←c0190;
   {
   register ptr gf←c100708 =  (ptr) &globalframe;
   /* GGStateImpl: */ 
SOURCE(699, 57121)
SOURCE(5853, 58)
   {
      word pd134;
      pd134 = (* (( (ptr) (* (( (ptr) gf←c100708)+376)/* var←c94468 */  ))+7) );
      (* (( (ptr) gf←c100708)+4)/* identity←v6276 */  ) = (word) ( *( (fPt) ((*  (ptr) pd134 ))))((*  (ptr) (&fc135) ), pd134);
      };
SOURCE(35117, 33)
   {
      word var←c94500;
      var←c94500 = XR←NewObject(4, (* (( (ptr) gf←c100708)+18) ));
      (*  (ptr) var←c94500 ) = 1;
      (* (( (ptr) gf←c100708)+5)/* true←v8264 */  ) = var←c94500;
      };
SOURCE(35152, 35)
   (* (( (ptr) gf←c100708)+6)/* false←v8292 */  ) = XR←NewObject(4, (* (( (ptr) gf←c100708)+18) ));
   }

static void RegisterViewportProc←P60(ggData←v10360, proc←v10388, clientData←v10416)
   word ggData←v10360;
   word proc←v10388;
   word clientData←v10416;
   {
   /* RegisterViewportProc: */ 
SOURCE(3404, 170)
SOURCE(3502, 32)
   (* (( (ptr) (* (( (ptr) ggData←v10360)+2) ))+1) ) = XR←CheckProc(proc←v10388);
SOURCE(3536, 38)
   (* (( (ptr) (* (( (ptr) ggData←v10360)+2) ))+2) ) = clientData←v10416;
   }

static void DefaultViewport←P120(formal←c0200, ggData←v55072, clientData←v55100)
   word formal←c0200;
   word ggData←v55072;
   word clientData←v55100;
   {
   W4 rect←v55144;
   /* DefaultViewport: */ 
SOURCE(3579, 207)
SOURCE(3620, 166)
   if (((* (( (ptr) (*  (ptr) ggData←v55072 ))+4) ) == 0)) {
SOURCE(3661, 27)
      rect←v55144.f0 = (*  (ptr) &fc136 );
      rect←v55144.f1 = (*  (ptr) &fc136 );
      rect←v55144.f2 = (*  (ptr) &fc137 );
      rect←v55144.f3 = (*  (ptr) &fc137 );
      goto lab←L100000;
      }
   else {
SOURCE(3688, 100)
      {
         word actionArea←v29604;
SOURCE(3690, 47)
         actionArea←v29604 = (* (( (ptr) (*  (ptr) ggData←v55072 ))+5) );
SOURCE(3739, 47)
         rect←v55144.f0 = (*  (ptr) &fc136 );
         rect←v55144.f1 = (*  (ptr) &fc136 );
         {
            float tf138;
            rect←v55144.f2 = (
               tf138 = (float)(int)(* (( (ptr) actionArea←v29604)+7) ),  *(word*)&tf138
               );
            };
         {
            float tf139;
            rect←v55144.f3 = (
               tf139 = (float)(int)(* (( (ptr) actionArea←v29604)+8) ),  *(word*)&tf139
               );
            };
         };
      };
   /* removed tail goto */ 
   lab←L100000: ;
   (*  (W4Pt) formal←c0200 ) = rect←v55144;
   return;
   }

static void NotNewVersion←P180(ggData←v10492, op←v10520)
   word ggData←v10492;
   word op←v10520;
   {
   register ptr gf←c100740 =  (ptr) &globalframe;
   /* NotNewVersion: */ 
SOURCE(3794, 599)
SOURCE(3852, 99)
   if ((((*  (ptr) ggData←v10492 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v10492 ))+1) ) == 0)) || ((*  (ptr) (*  (ptr) ggData←v10492 ) ) == 0)) {
SOURCE(3945, 6)
      return;
      };
SOURCE(3953, 40)
   (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v10492 ))+1) )) + 19) ) &= 4227858431;
SOURCE(4042, 41)
   (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v10492 ) )) + 19) ) &= 4227858431;
SOURCE(4085, 144)
   {
      word var←c94596;
      {
         word var←c94628;
         W5 var←c0205;
         W5 var←c0206;
         var←c94628 = op←v10520;
         if ((var←c94628 == (* (( (ptr) gf←c100740)+36) ))) {
            {
               word pd140;
               pd140 = (* (( (ptr) (* (( (ptr) gf←c100740)+377)/* var←c94660 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd140 ))))((word) (&var←c0205), pd140);
               };
            var←c94596 = var←c0205.f1;
            }
         else {
            if ((var←c94628 == (* (( (ptr) gf←c100740)+35) ))) {
               {
                  word pd141;
                  pd141 = (* (( (ptr) (* (( (ptr) gf←c100740)+377)/* var←c94660 */  ))+12) );
                  (void) ( *( (fPt) ((*  (ptr) pd141 ))))((word) (&var←c0206), pd141);
                  };
               var←c94596 = var←c0206.f3;
               }
            else {
               var←c94596 = (
                  XR←RaiseUnnamedError(), 0
                  );
               };
            };
         };
      (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v10492 ) ))+17) ) = var←c94596;
      };
SOURCE(4231, 54)
   {
      word pd142;
      pd142 = (* (( (ptr) (* (( (ptr) gf←c100740)+378)/* var←c94692 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd142 ))))((*  (ptr) (*  (ptr) ggData←v10492 ) ), 3, 1, 0, pd142);
      };
SOURCE(4287, 106)
   if (((*  (ptr) (*  (ptr) ggData←v10492 ) ) != (* (( (ptr) (*  (ptr) ggData←v10492 ))+1) ))) {
SOURCE(4340, 53)
      {
         word pd143;
         pd143 = (* (( (ptr) (* (( (ptr) gf←c100740)+378)/* var←c94692 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd143 ))))((* (( (ptr) (*  (ptr) ggData←v10492 ))+1) ), 3, 1, 0, pd143);
         };
      };
   }

static void ChangeIcon←P240(ggData←v10580, op←v10608)
   word ggData←v10580;
   word op←v10608;
   {
   register ptr gf←c100772 =  (ptr) &globalframe;
   /* ChangeIcon: */ 
SOURCE(4399, 325)
SOURCE(4454, 68)
   if (((*  (ptr) ggData←v10580 ) == 0) || ((*  (ptr) (*  (ptr) ggData←v10580 ) ) == 0)) {
SOURCE(4516, 6)
      return;
      };
SOURCE(4524, 144)
   {
      word var←c94724;
      {
         word var←c94756;
         W5 var←c0211;
         W5 var←c0212;
         var←c94756 = op←v10608;
         if ((var←c94756 == (* (( (ptr) gf←c100772)+36) ))) {
            {
               word pd144;
               pd144 = (* (( (ptr) (* (( (ptr) gf←c100772)+377)/* var←c94660 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd144 ))))((word) (&var←c0211), pd144);
               };
            var←c94724 = var←c0211.f1;
            }
         else {
            if ((var←c94756 == (* (( (ptr) gf←c100772)+35) ))) {
               {
                  word pd145;
                  pd145 = (* (( (ptr) (* (( (ptr) gf←c100772)+377)/* var←c94660 */  ))+12) );
                  (void) ( *( (fPt) ((*  (ptr) pd145 ))))((word) (&var←c0212), pd145);
                  };
               var←c94724 = var←c0212.f3;
               }
            else {
               var←c94724 = (
                  XR←RaiseUnnamedError(), 0
                  );
               };
            };
         };
      (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v10580 ) ))+17) ) = var←c94724;
      };
SOURCE(4670, 54)
   {
      word pd146;
      pd146 = (* (( (ptr) (* (( (ptr) gf←c100772)+378)/* var←c94692 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd146 ))))((*  (ptr) (*  (ptr) ggData←v10580 ) ), 3, 1, 0, pd146);
      };
   }

static word ColorToolIsBound←P300(ggData←v10668)
   word ggData←v10668;
   {
   register ptr gf←c100804 =  (ptr) &globalframe;
   word var←c10712;
   /* ColorToolIsBound: */ 
SOURCE(4730, 259)
SOURCE(4730, 259)
   var←c10712 = 0;
SOURCE(4804, 65)
   if ((0 != (word) XR←IsBound((* ((( (ptr) (* (( (ptr) gf←c100804)+379)/* var←c94788 */  ))+9)) )))) {
SOURCE(4857, 12)
      return(1);
      };
SOURCE(4871, 118)
   {
      word pd147;
      pd147 = (* (( (ptr) (* (( (ptr) gf←c100804)+380)/* var←c94820 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd147 ))))((* (( (ptr) ggData←v10668)+3) ), 0, (* (( (ptr) gf←c100804)+32) ), (* (( (ptr) gf←c100804)+31)
          ), pd147);
      };
SOURCE(4730, 259)
   return(var←c10712);
   }

static void GetViewport←P360(formal←c0221, ggData←v10772)
   word formal←c0221;
   word ggData←v10772;
   {
   W4 rect←v10816;
   /* GetViewport: */ 
SOURCE(4995, 226)
SOURCE(5074, 147)
   if (((* (( (ptr) (* (( (ptr) ggData←v10772)+2) ))+1) ) == 0)) {
SOURCE(5114, 38)
      {
         W4 var←c94884;
         (void) DefaultViewport←P120((word) &var←c94884, ggData←v10772, 0);
         rect←v10816 = var←c94884;
         /* removed tail goto */ 
         };
      }
   else {
SOURCE(5152, 69)
      {
         W4 var←c94948;
         {
            word pd148;
            pd148 = (* (( (ptr) (* (( (ptr) ggData←v10772)+2) ))+1) );
            (void) ( *( (fPt) ((*  (ptr) pd148 ))))((word) &var←c94948, ggData←v10772, (* (( (ptr) (* (( (ptr) ggData←v10772)+2) ))+2)
                ), pd148);
            };
         rect←v10816 = var←c94948;
         /* removed tail goto */ 
         };
      };
   (*  (W4Pt) formal←c0221 ) = rect←v10816;
   return;
   }

static word GetGGInputFocus←P420()
   {
   register ptr gf←c100836 =  (ptr) &globalframe;
   word focusData←v10876;
   word theirViewer←v29648 = 0;
   word inputFocus←v29676;
   /* GetGGInputFocus: */ 
SOURCE(5227, 530)
SOURCE(5227, 530)
   focusData←v10876 = 0;
SOURCE(5315, 57)
   {
      word pd149;
      pd149 = (* (( (ptr) (* (( (ptr) gf←c100836)+381)/* var←c94980 */  ))+4) );
      inputFocus←v29676 = (word) ( *( (fPt) ((*  (ptr) pd149 ))))(pd149);
      };
SOURCE(5374, 57)
   if ((inputFocus←v29676 == 0) || ((*  (ptr) inputFocus←v29676 ) == 0)) {
SOURCE(5425, 6)
      return(focusData←v10876);
      };
SOURCE(5433, 30)
   theirViewer←v29648 = (*  (ptr) inputFocus←v29676 );
SOURCE(5465, 292)
   if (((*  (ptr) (*  (ptr) theirViewer←v29648 ) ) == (* (( (ptr) gf←c100836)+30) ))) {
SOURCE(5510, 111)
      {
         word biscroller←v29720;
SOURCE(5512, 49)
         biscroller←v29720 = XR←Narrow((* (( (ptr) theirViewer←v29648)+26) ), (* (( (ptr) gf←c100836)+27) ));
SOURCE(5563, 56)
         {
            word pd150;
            pd150 = (* (( (ptr) (* (( (ptr) gf←c100836)+382)/* var←c95012 */  ))+14) );
            focusData←v10876 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd150 ))))(biscroller←v29720, pd150), (* (( (ptr) gf←c100836)+28)
                ));
            };
         };
      }
   else {
SOURCE(5628, 129)
      if (((* (( (ptr) inputFocus←v29676)+1) ) != 0)) {
SOURCE(5660, 97)
         {
            word var←c95044;
            var←c95044 = (* (( (ptr) inputFocus←v29676)+1) );
            if ((var←c95044 == 0)) {
               goto lab←L100002;
               };
            if (((* (( (ptr) gf←c100836)+28) ) == XR←GetReferentType(var←c95044))) {
               {
                  word ggData←v29764;
                  ggData←v29764 = var←c95044;
SOURCE(5711, 18)
                  focusData←v10876 = ggData←v29764;
                  };
               }
            else {
               lab←L100002: ;
SOURCE(5742, 15)
               focusData←v10876 = 0;
               };
            };
         };
      };
SOURCE(5227, 530)
   return(focusData←v10876);
   }

static word GetAnchor←P480(ggData←v10936)
   word ggData←v10936;
   {
   word var←c10980;
   /* GetAnchor: */ 
SOURCE(5766, 81)
SOURCE(5826, 21)
   return((* (( (ptr) ggData←v10936)+14) ));
   }

static void GetBiScrollersTransforms←P540(formal←c0237, ggData←v11040)
   word formal←c0237;
   word ggData←v11040;
   {
   register ptr gf←c100868 =  (ptr) &globalframe;
   word clientToViewer←v11084;
   word viewerToClient←v11112;
   /* GetBiScrollersTransforms: */ 
SOURCE(5913, 340)
SOURCE(5913, 340)
   clientToViewer←v11084 = 0;
SOURCE(5913, 340)
   viewerToClient←v11112 = 0;
SOURCE(6029, 224)
   if (((* (( (ptr) (*  (ptr) ggData←v11040 ))+4) ) == 0)) {
SOURCE(6070, 84)
      clientToViewer←v11084 = (* (( (ptr) (* (( (ptr) ggData←v11040)+1) ))+2) );
      viewerToClient←v11112 = (* (( (ptr) (* (( (ptr) ggData←v11040)+1) ))+3) );
      goto lab←L100003;
      }
   else {
SOURCE(6154, 99)
      {
         W2 var←c95140;
         {
            W2 var←c0236;
            {
               word var←c01118;
               {
                  word pd151;
                  pd151 = (* (( (ptr) (* (( (ptr) gf←c100868)+382)/* var←c95012 */  ))+6) );
                  var←c01118 = (* (( (ptr) ( *( (fPt) ((*  (ptr) pd151 ))))(0, pd151))+3) );
                  };
               (void) ( *( (fPt) ((*  (ptr) var←c01118 ))))((word) &var←c0236, (* (( (ptr) (*  (ptr) ggData←v11040 ))+4) ), 0, var←c01118)
               ;
               };
            var←c95140 = var←c0236;
            };
         viewerToClient←v11112 = var←c95140.f1;
         clientToViewer←v11084 = var←c95140.f0;
         };
      };
   /* removed tail goto */ 
   lab←L100003: ;
   (*  (ptr) formal←c0237 ) = clientToViewer←v11084;
   (* (( (ptr) formal←c0237)+1) ) = viewerToClient←v11112;
   return;
   }

static word GetBiScrollersTransform←P600(ggData←v11172)
   word ggData←v11172;
   {
   word clientToViewer←v11216;
   word bs←v29808;
   W2 var←c0241;
   /* GetBiScrollersTransform: */ 
SOURCE(6259, 267)
SOURCE(6259, 267)
   clientToViewer←v11216 = 0;
SOURCE(6358, 43)
   bs←v29808 = (* (( (ptr) (*  (ptr) ggData←v11172 ))+4) );
SOURCE(6403, 123)
   if ((bs←v29808 == 0)) {
SOURCE(6420, 48)
      return((* (( (ptr) (* (( (ptr) ggData←v11172)+1) ))+2) ));
      }
   else {
SOURCE(6468, 58)
      {
         word pd152;
         pd152 = (* (( (ptr) (*  (ptr) bs←v29808 ))+3) );
         (void) ( *( (fPt) ((*  (ptr) pd152 ))))((word) &var←c0241, bs←v29808, 0, pd152);
         };
      clientToViewer←v11216 = var←c0241.f0;
      };
SOURCE(6259, 267)
   return(clientToViewer←v11216);
   }

static word GetBiScrollersScale←P660(ggData←v11276)
   word ggData←v11276;
   {
   register ptr gf←c100900 =  (ptr) &globalframe;
   word s←v11320;
   word clientToViewer←v29852;
   W2 var←c0245;
   /* GetBiScrollersScale: */ 
SOURCE(6532, 195)
SOURCE(6604, 64)
   clientToViewer←v29852 = (word) GetBiScrollersTransform←P600(ggData←v11276);
SOURCE(6670, 57)
   {
      word pd153;
      pd153 = (* (( (ptr) (* (( (ptr) gf←c100900)+376)/* var←c94468 */  ))+56) );
      (void) ( *( (fPt) ((*  (ptr) pd153 ))))((word) &var←c0245, clientToViewer←v29852, pd153);
      };
   s←v11320 = var←c0245.f0;
SOURCE(6532, 195)
   return(s←v11320);
   }

static void BiScrollersConcat←P720(ggData←v11380, t←v11408, paint←v11436, ageOp←v11464)
   word ggData←v11380;
   word t←v11408;
   word paint←v11436;
   word ageOp←v11464;
   {
   register ptr gf←c100932 =  (ptr) &globalframe;
   word bs←v29896;
   word old←v29924;
   W2 var←c0252;
   word new←v29952;
   /* BiScrollersConcat: */ 
SOURCE(6733, 616)
SOURCE(6849, 43)
   bs←v29896 = (* (( (ptr) (*  (ptr) ggData←v11380 ))+4) );
SOURCE(6894, 64)
   (void) GetBiScrollersTransforms←P540((word) &var←c0252, ggData←v11380);
   old←v29924 = var←c0252.f0;
SOURCE(6960, 30)
   {
      word pd154;
      pd154 = (* (( (ptr) (* (( (ptr) gf←c100932)+376)/* var←c94468 */  ))+13) );
      new←v29952 = (word) ( *( (fPt) ((*  (ptr) pd154 ))))(old←v29924, t←v11408, pd154);
      };
SOURCE(6992, 357)
   if ((bs←v29896 == 0)) {
SOURCE(7011, 36)
      (void) ChangeTransform←P1680(ggData←v11380, new←v29952, 1);
      }
   else {
SOURCE(7058, 108)
      {
         word pd155;
         pd155 = (* (( (ptr) (*  (ptr) bs←v29896 ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd155 ))))(bs←v29896, new←v29952,  ( (ageOp←v11464 == 1) ? 1 : 0 ) , 0, pd155);
         };
SOURCE(7168, 181)
      if ((0 != paint←v11436)) {
SOURCE(7182, 167)
         {
            word pd156;
            pd156 = (* (( (ptr) (* (( (ptr) gf←c100932)+377)/* var←c94660 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd156 ))))((* (( (ptr) gf←c100932)+29) ), ggData←v11380, 4, 0, 0, 1, pd156);
            };
         };
      };
   }

static void SetBiScrollersTransform←P780(ggData←v11524, clientToViewer←v11552, paint←v11580, ageOp←v11608)
   word ggData←v11524;
   word clientToViewer←v11552;
   word paint←v11580;
   word ageOp←v11608;
   {
   register ptr gf←c100964 =  (ptr) &globalframe;
   word bs←v29996;
   /* SetBiScrollersTransform: */ 
SOURCE(7402, 558)
SOURCE(7537, 43)
   bs←v29996 = (* (( (ptr) (*  (ptr) ggData←v11524 ))+4) );
SOURCE(7582, 378)
   if ((bs←v29996 == 0)) {
SOURCE(7601, 46)
      (void) ChangeTransform←P1680(ggData←v11524, clientToViewer←v11552, ageOp←v11608);
      }
   else {
SOURCE(7658, 119)
      {
         word pd157;
         pd157 = (* (( (ptr) (*  (ptr) bs←v29996 ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd157 ))))(bs←v29996, clientToViewer←v11552,  ( (ageOp←v11608 == 1) ? 1 : 0 ) , 0, pd157);
         };
SOURCE(7779, 181)
      if ((0 != paint←v11580)) {
SOURCE(7793, 167)
         {
            word pd158;
            pd158 = (* (( (ptr) (* (( (ptr) gf←c100964)+377)/* var←c94660 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd158 ))))((* (( (ptr) gf←c100964)+29) ), ggData←v11524, 4, 0, 0, 1, pd158);
            };
         };
      };
   }

static word SGN←P840(r←v11668)
   word r←v11668;
   {
   word sgn←v11712;
   /* SGN: */ 
SOURCE(8013, 113)
SOURCE(8062, 64)
   {
      word var←c95172;
      var←c95172 = r←v11668;
      {
         word x159;
         word x160;
         word x161;
         word x162;
         word x163;
         word x164;
         word idx165;
         sgn←v11712 = (
            idx165 = (word) ( ( ((
               x159 = var←c95172,  *(float*)&x159
               ) < (
               x160 = (*  (ptr) &fc136 ),  *(float*)&x160
               )) ?  (word) -1 :  ( ((
               x161 = var←c95172,  *(float*)&x161
               ) == (
               x162 = (*  (ptr) &fc136 ),  *(float*)&x162
               )) ? 0 :  ( ((
               x163 = var←c95172,  *(float*)&x163
               ) > (
               x164 = (*  (ptr) &fc136 ),  *(float*)&x164
               )) ? 1 : (
               XR←RaiseUnnamedError(), 0
               ) )  )  )  + 1),
            BCK(idx165, 3)
            );
         };
      };
SOURCE(8013, 113)
   return(sgn←v11712);
   }

static void ConstantVector←P900(formal←c0264, ggData←v11792)
   word formal←c0264;
   word ggData←v11792;
   {
   W2 cv←v11836;
   /* ConstantVector: */ 
SOURCE(8130, 83)
SOURCE(8198, 15)
   cv←v11836.f0 = (*  (ptr) &fc137 );
   cv←v11836.f1 = (*  (ptr) &fc137 );
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0264 ) = cv←v11836;
   return;
   }

static word ZeroProtect←P960(r←v11896)
   word r←v11896;
   {
   word r0←v11940;
   /* ZeroProtect: */ 
SOURCE(8230, 81)
SOURCE(8280, 31)
   {
      word x166;
      word x167;
      if (((
         x166 = r←v11896,  *(float*)&x166
         ) == (
         x167 = (*  (ptr) &fc136 ),  *(float*)&x167
         ))) {
         r0←v11940 = (*  (ptr) &fc135 );
         }
      else {
         r0←v11940 = r←v11896;
         };
      };
SOURCE(8230, 81)
   return(r0←v11940);
   }

static void BiScrollersScale←P1020(ggData←v12000, op←v12028)
   word ggData←v12000;
   W3 op←v12028;
   {
   register ptr gf←c100996 =  (ptr) &globalframe;
   word bs←v30040;
   word old←v30068;
   word new←v30096 = 0;
   W4 viewport←v30124;
   word cw←v30152;
   word ch←v30180;
   W2 pp←v30208;
   word vanilla←v30236 = 0;
   word mayStretch←v30264 = 1;
   /* BiScrollersScale: */ 
SOURCE(8367, 787)
SOURCE(8431, 38)
   bs←v30040 = (word) GetBiScroller←P8220(ggData←v12000);
SOURCE(8471, 53)
   old←v30068 = (word) GetBiScrollersTransform←P600(ggData←v12000);
SOURCE(8547, 48)
   (void) GetViewport←P360((word) &viewport←v30124, ggData←v12000);
SOURCE(8598, 21)
   cw←v30152 = viewport←v30124.f2;
SOURCE(8621, 21)
   ch←v30180 = viewport←v30124.f3;
SOURCE(8728, 301)
   if ((bs←v30040 == 0)) {
SOURCE(8745, 21)
      pp←v30208.f0 = (*  (ptr) &fc168 );
      pp←v30208.f1 = (*  (ptr) &fc168 );
SOURCE(8805, 85)
      {
         W2 var←c95204;
         {
            word x169;
            word x171;
            word x173;
            word x175;
            *(float*)&var←c95204.f0 = ((
               x169 = cw←v30152,  *(float*)&x169
               ) - ((
               x171 = (*  (ptr) &fc170 ),  *(float*)&x171
               ) * (
               x173 = (*  (ptr) &fc172 ),  *(float*)&x173
               ))) / (
               x175 = (*  (ptr) &fc174 ),  *(float*)&x175
               );
            };
         {
            word x176;
            word x178;
            word x179;
            word x180;
            *(float*)&var←c95204.f1 = ((
               x176 = ch←v30180,  *(float*)&x176
               ) - ((
               x178 = (*  (ptr) &fc177 ),  *(float*)&x178
               ) * (
               x179 = (*  (ptr) &fc172 ),  *(float*)&x179
               ))) / (
               x180 = (*  (ptr) &fc174 ),  *(float*)&x180
               );
            };
         {
            word pd181;
            pd181 = (* (( (ptr) (* (( (ptr) gf←c100996)+376)/* var←c94468 */  ))+10) );
            vanilla←v30236 = (word) ( *( (fPt) ((*  (ptr) pd181 ))))(var←c95204, pd181);
            };
         };
SOURCE(8892, 17)
      mayStretch←v30264 = 1;
      }
   else {
SOURCE(8920, 29)
      pp←v30208 = (*  (W2Pt) (( (ptr) (* (( (ptr) bs←v30040)+1) ))+24) );
SOURCE(8951, 37)
      {
         word pd182;
         pd182 = (* (( (ptr) (* (( (ptr) bs←v30040)+1) ))+23) );
         vanilla←v30236 = (word) ( *( (fPt) ((*  (ptr) pd182 ))))(bs←v30040, pd182);
         };
SOURCE(8990, 39)
      mayStretch←v30264 = (* (( (ptr) (* (( (ptr) bs←v30040)+1) ))+20) );
      };
SOURCE(9034, 75)
   {
      word pd183;
      pd183 = (* (( (ptr) (* (( (ptr) gf←c100996)+383)/* var←c95236 */  ))+4) );
      new←v30096 = (word) ( *( (fPt) ((*  (ptr) pd183 ))))(old←v30068, op←v12028, cw←v30152, ch←v30180, pp←v30208, vanilla←v30236
         , mayStretch←v30264, pd183);
      };
SOURCE(9111, 43)
   (void) SetBiScrollersTransform←P780(ggData←v12000, new←v30096, 0, 0);
   }

static void BiScrollersRotate←P1080(ggData←v12088, op←v12116)
   word ggData←v12088;
   W2 op←v12116;
   {
   register ptr gf←c101028 =  (ptr) &globalframe;
   word bs←v30308;
   word old←v30336;
   word new←v30364 = 0;
   W4 viewport←v30392;
   word cw←v30420;
   word ch←v30448;
   W2 pp←v30476;
   word vanilla←v30504 = 0;
   /* BiScrollersRotate: */ 
SOURCE(9221, 689)
SOURCE(9295, 38)
   bs←v30308 = (word) GetBiScroller←P8220(ggData←v12088);
SOURCE(9335, 53)
   old←v30336 = (word) GetBiScrollersTransform←P600(ggData←v12088);
SOURCE(9411, 48)
   (void) GetViewport←P360((word) &viewport←v30392, ggData←v12088);
SOURCE(9462, 21)
   cw←v30420 = viewport←v30392.f2;
SOURCE(9485, 21)
   ch←v30448 = viewport←v30392.f3;
SOURCE(9555, 241)
   if ((bs←v30308 == 0)) {
SOURCE(9572, 21)
      pp←v30476.f0 = (*  (ptr) &fc168 );
      pp←v30476.f1 = (*  (ptr) &fc168 );
SOURCE(9632, 85)
      {
         W2 var←c95268;
         {
            word x184;
            word x185;
            word x186;
            word x187;
            *(float*)&var←c95268.f0 = ((
               x184 = cw←v30420,  *(float*)&x184
               ) - ((
               x185 = (*  (ptr) &fc170 ),  *(float*)&x185
               ) * (
               x186 = (*  (ptr) &fc172 ),  *(float*)&x186
               ))) / (
               x187 = (*  (ptr) &fc174 ),  *(float*)&x187
               );
            };
         {
            word x188;
            word x189;
            word x190;
            word x191;
            *(float*)&var←c95268.f1 = ((
               x188 = ch←v30448,  *(float*)&x188
               ) - ((
               x189 = (*  (ptr) &fc177 ),  *(float*)&x189
               ) * (
               x190 = (*  (ptr) &fc172 ),  *(float*)&x190
               ))) / (
               x191 = (*  (ptr) &fc174 ),  *(float*)&x191
               );
            };
         {
            word pd192;
            pd192 = (* (( (ptr) (* (( (ptr) gf←c101028)+376)/* var←c94468 */  ))+10) );
            vanilla←v30504 = (word) ( *( (fPt) ((*  (ptr) pd192 ))))(var←c95268, pd192);
            };
         };
      }
   else {
SOURCE(9728, 29)
      pp←v30476 = (*  (W2Pt) (( (ptr) (* (( (ptr) bs←v30308)+1) ))+24) );
SOURCE(9759, 37)
      {
         word pd193;
         pd193 = (* (( (ptr) (* (( (ptr) bs←v30308)+1) ))+23) );
         vanilla←v30504 = (word) ( *( (fPt) ((*  (ptr) pd193 ))))(bs←v30308, pd193);
         };
      };
SOURCE(9801, 64)
   {
      word pd194;
      pd194 = (* (( (ptr) (* (( (ptr) gf←c101028)+383)/* var←c95236 */  ))+5) );
      new←v30364 = (word) ( *( (fPt) ((*  (ptr) pd194 ))))(old←v30336, op←v12116, cw←v30420, ch←v30448, pp←v30476, vanilla←v30504, pd194)
      ;
      };
SOURCE(9867, 43)
   (void) SetBiScrollersTransform←P780(ggData←v12088, new←v30364, 0, 0);
   }

static void BiScrollersShift←P1140(ggData←v12176, dx←v12204, dy←v12232)
   word ggData←v12176;
   word dx←v12204;
   word dy←v12232;
   {
   register ptr gf←c101060 =  (ptr) &globalframe;
   word bs←v30548;
   word old←v30576;
   word new←v30604 = 0;
   /* BiScrollersShift: */ 
SOURCE(9916, 272)
SOURCE(9981, 38)
   bs←v30548 = (word) GetBiScroller←P8220(ggData←v12176);
SOURCE(10021, 53)
   old←v30576 = (word) GetBiScrollersTransform←P600(ggData←v12176);
SOURCE(10097, 46)
   {
      word pd195;
      pd195 = (* (( (ptr) (* (( (ptr) gf←c101060)+383)/* var←c95236 */  ))+6) );
      new←v30604 = (word) ( *( (fPt) ((*  (ptr) pd195 ))))(old←v30576, dx←v12204, dy←v12232, pd195);
      };
SOURCE(10145, 43)
   (void) SetBiScrollersTransform←P780(ggData←v12176, new←v30604, 0, 0);
   }

static void BiScrollersAlign←P1200(ggData←v12292, client←v12320, viewer←v12348, doX←v12376, doY←v12404, ageOp←v12432)
   word ggData←v12292;
   W3 client←v12320;
   W3 viewer←v12348;
   word doX←v12376;
   word doY←v12404;
   word ageOp←v12432;
   {
   register ptr gf←c101092 =  (ptr) &globalframe;
   word bs←v30648;
   word new←v30676 = 0;
   word old←v30704;
   W4 viewport←v30732;
   word cw←v30760;
   word ch←v30788;
   /* BiScrollersAlign: */ 
SOURCE(10194, 490)
SOURCE(10319, 38)
   bs←v30648 = (word) GetBiScroller←P8220(ggData←v12292);
SOURCE(10380, 53)
   old←v30704 = (word) GetBiScrollersTransform←P600(ggData←v12292);
SOURCE(10435, 48)
   (void) GetViewport←P360((word) &viewport←v30732, ggData←v12292);
SOURCE(10486, 21)
   cw←v30760 = viewport←v30732.f2;
SOURCE(10509, 21)
   ch←v30788 = viewport←v30732.f3;
SOURCE(10532, 107)
   {
      word pd196;
      pd196 = (* (( (ptr) (* (( (ptr) gf←c101092)+383)/* var←c95236 */  ))+7) );
      new←v30676 = (word) ( *( (fPt) ((*  (ptr) pd196 ))))(old←v30704, client←v12320, viewer←v12348, doX←v12376, doY←v12404, cw←v30760
         , ch←v30788, (word) (( (bPt) gf←c101092)+1328)/* var←c93764 */ , ggData←v12292, 1, pd196);
      };
SOURCE(10641, 43)
   (void) SetBiScrollersTransform←P780(ggData←v12292, new←v30676, 0, 0);
   }

static void ClientExtremaProc←P1260(formal←c0318, clientData←v55856, direction←v55884)
   word formal←c0318;
   word clientData←v55856;
   W2 direction←v55884;
   {
   register ptr gf←c101124 =  (ptr) &globalframe;
   W2 min←v55928;
   W2 max←v55956;
   word ggData←v30832;
   /* ClientExtremaProc: */ 
SOURCE(10690, 133)
SOURCE(10747, 35)
   ggData←v30832 = XR←Narrow(clientData←v55856, (* (( (ptr) gf←c101124)+28) ));
SOURCE(10784, 39)
   {
      W4 var←c95300;
      (void) GGExtremaProc←P1320((word) &var←c95300, ggData←v30832, direction←v55884);
      min←v55928 = (*  (W2Pt) &var←c95300 );
      max←v55956 = (*  (W2Pt) (( (ptr) &var←c95300)+2) );
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0318 ) = min←v55928;
   (*  (W2Pt) (( (ptr) formal←c0318)+2) ) = max←v55956;
   return;
   }

static void GGExtremaProc←P1320(formal←c0330, ggData←v12492, direction←v12520)
   word formal←c0330;
   word ggData←v12492;
   W2 direction←v12520;
   {
   register ptr gf←c101156 =  (ptr) &globalframe;
   W2 min←v12564;
   W2 max←v12592;
   W4 area←v30876;
   word bigBox←v30904;
   /* GGExtremaProc: */ 
SOURCE(10829, 385)
SOURCE(10929, 91)
   {
      word var←c95332;
      {
         word pd197;
         pd197 = (* (( (ptr) (* (( (ptr) gf←c101156)+384)/* var←c95364 */  ))+40) );
         var←c95332 = (*  (ptr) ( *( (fPt) ((*  (ptr) pd197 ))))((* ((( (ptr) ggData←v12492)+11)) ), pd197) );
         };
      {
         word pd198;
         pd198 = (* (( (ptr) (* (( (ptr) gf←c101156)+385)/* var←c95396 */  ))+8) );
         bigBox←v30904 = (word) ( *( (fPt) ((*  (ptr) pd198 ))))(var←c95332, pd198);
         };
      };
SOURCE(11022, 134)
   if ((bigBox←v30904 != 0)) {
      area←v30876.f0 = (*  (ptr) bigBox←v30904 );
      area←v30876.f1 = (* (( (ptr) bigBox←v30904)+1) );
      {
         word x199;
         word x200;
         *(float*)&area←v30876.f2 = (
            x199 = (* (( (ptr) bigBox←v30904)+2) ),  *(float*)&x199
            ) - (
            x200 = (*  (ptr) bigBox←v30904 ),  *(float*)&x200
            );
         };
      {
         word x201;
         word x202;
         *(float*)&area←v30876.f3 = (
            x201 = (* (( (ptr) bigBox←v30904)+3) ),  *(float*)&x201
            ) - (
            x202 = (* (( (ptr) bigBox←v30904)+1) ),  *(float*)&x202
            );
         };
      }
   else {
      area←v30876.f0 = (*  (ptr) &fc136 );
      area←v30876.f1 = (*  (ptr) &fc136 );
      area←v30876.f2 = (*  (ptr) &fc135 );
      area←v30876.f3 = (*  (ptr) &fc135 );
      };
SOURCE(11158, 56)
   {
      W4 var←c95524;
      {
         word pd203;
         pd203 = (* (( (ptr) (* (( (ptr) gf←c101156)+386)/* var←c95492 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd203 ))))((word) &var←c95524, area←v30876, direction←v12520, pd203);
         };
      max←v12592 = (*  (W2Pt) (( (ptr) &var←c95524)+2) );
      min←v12564 = (*  (W2Pt) &var←c95524 );
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0330 ) = min←v12564;
   (*  (W2Pt) (( (ptr) formal←c0330)+2) ) = max←v12592;
   return;
   }

static void BiScrollersBoxScale←P1380(ggData←v12652, from←v12680, to←v12708, uniformly←v12736)
   word ggData←v12652;
   W4 from←v12680;
   W4 to←v12708;
   word uniformly←v12736;
   {
   register ptr gf←c101188 =  (ptr) &globalframe;
   word new←v30948 = 0;
   word old←v30976;
   word mayStretch←v31004 = 1;
   word preferIntegerCoefficients←v31032 = 0;
   /* BiScrollersBoxScale: */ 
SOURCE(11220, 409)
SOURCE(11361, 53)
   old←v30976 = (word) GetBiScrollersTransform←P600(ggData←v12652);
SOURCE(11483, 101)
   {
      word pd204;
      pd204 = (* (( (ptr) (* (( (ptr) gf←c101188)+383)/* var←c95236 */  ))+8) );
      new←v30948 = (word) ( *( (fPt) ((*  (ptr) pd204 ))))(old←v30976, from←v12680, to←v12708, uniformly←v12736, mayStretch←v31004, preferIntegerCoefficients←v31032, pd204)
      ;
      };
SOURCE(11586, 43)
   (void) SetBiScrollersTransform←P780(ggData←v12652, new←v30948, 0, 0);
   }

static void DoBSUserAction←P1440(ggData←v12796, event←v12824)
   word ggData←v12796;
   word event←v12824;
   {
   register ptr gf←c101220 =  (ptr) &globalframe;
   word bs←v31076;
   word new←v31104 = 0;
   word old←v31132;
   W4 viewport←v31160;
   word cw←v31188;
   word ch←v31216;
   W2 pp←v31244;
   word vanilla←v31272 = 0;
   word mayStretch←v31300 = 1;
   word preferIntegerCoefficients←v31328 = 0;
   /* DoBSUserAction: */ 
SOURCE(11635, 848)
SOURCE(11704, 38)
   bs←v31076 = (word) GetBiScroller←P8220(ggData←v12796);
SOURCE(11765, 53)
   old←v31132 = (word) GetBiScrollersTransform←P600(ggData←v12796);
SOURCE(11820, 48)
   (void) GetViewport←P360((word) &viewport←v31160, ggData←v12796);
SOURCE(11871, 21)
   cw←v31188 = viewport←v31160.f2;
SOURCE(11894, 21)
   ch←v31216 = viewport←v31160.f3;
SOURCE(12043, 204)
   if ((bs←v31076 == 0)) {
SOURCE(12060, 21)
      pp←v31244.f0 = (*  (ptr) &fc168 );
      pp←v31244.f1 = (*  (ptr) &fc168 );
SOURCE(12083, 85)
      {
         W2 var←c95556;
         {
            word x205;
            word x206;
            word x207;
            word x208;
            *(float*)&var←c95556.f0 = ((
               x205 = cw←v31188,  *(float*)&x205
               ) - ((
               x206 = (*  (ptr) &fc170 ),  *(float*)&x206
               ) * (
               x207 = (*  (ptr) &fc172 ),  *(float*)&x207
               ))) / (
               x208 = (*  (ptr) &fc174 ),  *(float*)&x208
               );
            };
         {
            word x209;
            word x210;
            word x211;
            word x212;
            *(float*)&var←c95556.f1 = ((
               x209 = ch←v31216,  *(float*)&x209
               ) - ((
               x210 = (*  (ptr) &fc177 ),  *(float*)&x210
               ) * (
               x211 = (*  (ptr) &fc172 ),  *(float*)&x211
               ))) / (
               x212 = (*  (ptr) &fc174 ),  *(float*)&x212
               );
            };
         {
            word pd213;
            pd213 = (* (( (ptr) (* (( (ptr) gf←c101220)+376)/* var←c94468 */  ))+10) );
            vanilla←v31272 = (word) ( *( (fPt) ((*  (ptr) pd213 ))))(var←c95556, pd213);
            };
         };
      }
   else {
SOURCE(12179, 29)
      pp←v31244 = (*  (W2Pt) (( (ptr) (* (( (ptr) bs←v31076)+1) ))+24) );
SOURCE(12210, 37)
      {
         word pd214;
         pd214 = (* (( (ptr) (* (( (ptr) bs←v31076)+1) ))+23) );
         vanilla←v31272 = (word) ( *( (fPt) ((*  (ptr) pd214 ))))(bs←v31076, pd214);
         };
      };
SOURCE(12253, 185)
   {
      word pd215;
      pd215 = (* (( (ptr) (* (( (ptr) gf←c101220)+383)/* var←c95236 */  ))+10) );
      new←v31104 = (word) ( *( (fPt) ((*  (ptr) pd215 ))))(old←v31132, event←v12824, cw←v31188, ch←v31216, pp←v31244, vanilla←v31272
         , (* (( (ptr) (* (( (ptr) ggData←v12796)+1) ))+4) ), mayStretch←v31300, preferIntegerCoefficients←v31328, (word) (( (bPt) gf←c101220)+1328)
         /* var←c93764 */ , ggData←v12796, pd215);
      };
SOURCE(12440, 43)
   (void) SetBiScrollersTransform←P780(ggData←v12796, new←v31104, 0, 0);
   }

static void ViewLimitsOfImage←P1500(formal←c0362, t←v12980, min←v13008, max←v13036, axis←v13064)
   word formal←c0362;
   word t←v12980;
   W2 min←v13008;
   W2 max←v13036;
   word axis←v13064;
   {
   register ptr gf←c101252 =  (ptr) &globalframe;
   word vmin←v13108;
   word vmax←v13136;
   /* ViewLimitsOfImage: */ 
SOURCE(12489, 229)
SOURCE(12586, 22)
   {
      word pd216;
      pd216 = (* (( (ptr) (* (( (ptr) gf←c101252)+376)/* var←c94468 */  ))+39) );
      (void) ( *( (fPt) ((*  (ptr) pd216 ))))((word) &min←v13008, t←v12980, min←v13008, pd216);
      };
SOURCE(12610, 22)
   {
      word pd217;
      pd217 = (* (( (ptr) (* (( (ptr) gf←c101252)+376)/* var←c94468 */  ))+39) );
      (void) ( *( (fPt) ((*  (ptr) pd217 ))))((word) &max←v13036, t←v12980, max←v13036, pd217);
      };
SOURCE(12634, 84)
   {
      word var←c95588;
      var←c95588 = axis←v13064;
      if ((var←c95588 == 0)) {
SOURCE(12657, 12)
         vmin←v13108 = min←v13008.f0;
SOURCE(12671, 12)
         vmax←v13136 = max←v13036.f0;
         }
      else {
         if ((var←c95588 == 1)) {
SOURCE(12692, 12)
            vmin←v13108 = min←v13008.f1;
SOURCE(12706, 12)
            vmax←v13136 = max←v13036.f1;
            }
         else {
SOURCE(12732, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0362 ) = vmin←v13108;
   (* (( (ptr) formal←c0362)+1) ) = vmax←v13136;
   return;
   }

static void Norm←P1560(formal←c0369, t←v13196, axis←v13224)
   word formal←c0369;
   word t←v13196;
   word axis←v13224;
   {
   W2 norm←v13268;
   W6 tn←v31372;
   /* Norm: */ 
SOURCE(12743, 186)
SOURCE(12812, 36)
   {
      W6 tn←v89780;
      tn←v89780.f0 = (*  (ptr) t←v13196 );
      tn←v89780.f1 = (* (( (ptr) t←v13196)+3) );
      tn←v89780.f2 = (* (( (ptr) t←v13196)+1) );
      tn←v89780.f3 = (* (( (ptr) t←v13196)+4) );
      tn←v89780.f4 = (* (( (ptr) t←v13196)+2) );
      tn←v89780.f5 = (* (( (ptr) t←v13196)+5) );
      tn←v31372 = tn←v89780;
      };
SOURCE(12850, 79)
   {
      word var←c95652;
      var←c95652 = axis←v13224;
      if ((var←c95652 == 0)) {
SOURCE(12872, 25)
         norm←v13268.f0 = tn←v31372.f0;
         norm←v13268.f1 = tn←v31372.f2;
         }
      else {
         if ((var←c95652 == 1)) {
SOURCE(12904, 25)
            norm←v13268.f0 = tn←v31372.f1;
            norm←v13268.f1 = tn←v31372.f3;
            }
         else {
SOURCE(12942, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0369 ) = norm←v13268;
   return;
   }

static void BiScrollersPreviousTransform←P1620(ggData←v13328)
   word ggData←v13328;
   {
   /* BiScrollersPreviousTransform: */ 
SOURCE(12953, 155)
SOURCE(13016, 92)
   (void) SetBiScrollersTransform←P780(ggData←v13328, (* (( (ptr) (* (( (ptr) ggData←v13328)+1) ))+4) ), 0, 0);
   }

static void ChangeTransform←P1680(ggData←v13388, new←v13416, ageOp←v13444)
   word ggData←v13388;
   word new←v13416;
   word ageOp←v13444;
   {
   register ptr gf←c101284 =  (ptr) &globalframe;
   /* ChangeTransform: */ 
SOURCE(13114, 479)
SOURCE(13187, 44)
   {
      word x218;
      word x219;
      word x220;
      word x221;
      word x222;
      if ((((
         x218 = (*  (ptr) new←v13416 ),  *(float*)&x218
         ) * (
         x219 = (* (( (ptr) new←v13416)+4) ),  *(float*)&x219
         )) - ((
         x220 = (* (( (ptr) new←v13416)+1) ),  *(float*)&x220
         ) * (
         x221 = (* (( (ptr) new←v13416)+3) ),  *(float*)&x221
         )) == (
         x222 = (*  (ptr) &fc136 ),  *(float*)&x222
         ))) {
SOURCE(13225, 6)
         return;
         };
      };
SOURCE(13271, 192)
   {
      word var←c95684;
      var←c95684 = ageOp←v13444;
      if ((var←c95684 == 0)) {
SOURCE(13303, 79)
         (* (( (ptr) (* (( (ptr) ggData←v13388)+1) ))+5) ) = (* (( (ptr) (* (( (ptr) ggData←v13388)+1) ))+3) );
SOURCE(13384, 79)
         (* (( (ptr) (* (( (ptr) ggData←v13388)+1) ))+4) ) = (* (( (ptr) (* (( (ptr) ggData←v13388)+1) ))+2) );
         }
      else {
         if ((var←c95684 == 1)) {
            }
         else {
SOURCE(13495, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
SOURCE(13502, 40)
   (* (( (ptr) (* (( (ptr) ggData←v13388)+1) ))+2) ) = new←v13416;
SOURCE(13544, 49)
   {
      word pd223;
      pd223 = (* (( (ptr) (* (( (ptr) gf←c101284)+376)/* var←c94468 */  ))+51) );
      (* (( (ptr) (* (( (ptr) ggData←v13388)+1) ))+3) ) = (word) ( *( (fPt) ((*  (ptr) pd223 ))))(new←v13416, pd223);
      };
   }

static word GetFilterLists←P1740(ggData←v13504)
   word ggData←v13504;
   {
   W13 var←c101316;
   register ptr gf←c101348 =  (ptr) &globalframe;
   /* declaration of filterLists←v13548 skipped */ 
   /* declaration of var←c95716 skipped */ 
   /* declaration of var←c95748 skipped */ 
   /* declaration of var←c95780 skipped */ 
   /* declaration of var←c95812 skipped */ 
   /* GetFilterLists: */ 
SOURCE(13599, 1654)
   {
      word tmpAddr224;
      tmpAddr224 = (word) (( (ptr) &var←c101316)+5)/* var←c95716 */ ;
      (*  (ptr) tmpAddr224 ) = ( ((word)  (fPt) AddDistanceFilter←P9024) );
      (* (( (ptr) tmpAddr224) + 1) ) = 1;
      };
   {
      word tmpAddr225;
      tmpAddr225 = (word) (( (ptr) &var←c101316)+7)/* var←c95748 */ ;
      (*  (ptr) tmpAddr225 ) = ( ((word)  (fPt) AddAngleFilter←P8964) );
      (* (( (ptr) tmpAddr225) + 1) ) = 1;
      };
   {
      word tmpAddr226;
      tmpAddr226 = (word) (( (ptr) &var←c101316)+9)/* var←c95780 */ ;
      (*  (ptr) tmpAddr226 ) = ( ((word)  (fPt) AddRadiusFilter←P8904) );
      (* (( (ptr) tmpAddr226) + 1) ) = 1;
      };
   {
      word tmpAddr227;
      tmpAddr227 = (word) (( (ptr) &var←c101316)+11)/* var←c95812 */ ;
      (*  (ptr) tmpAddr227 ) = ( ((word)  (fPt) AddSlopeFilter←P8844) );
      (* (( (ptr) tmpAddr227) + 1) ) = 1;
      };
SOURCE(13599, 1654)
   (* (( (ptr) &var←c101316)+4)/* filterLists←v13548 */  ) = 0;
SOURCE(14671, 56)
   {
      word var←c95844;
      var←c95844 = XR←NewObject(20, (* (( (ptr) gf←c101348)+26) ));
      (* (( (ptr) var←c95844)+4) ) = (*  (ptr) &fc172 );
      (* (( (ptr) &var←c101316)+4)/* filterLists←v13548 */  ) = var←c95844;
      };
SOURCE(14729, 114)
   if (((* (( (ptr) (*  (ptr) ggData←v13504 ))+22) ) != 0)) {
SOURCE(14769, 74)
      {
         word pd228;
         pd228 = (* (( (ptr) (* (( (ptr) gf←c101348)+387)/* var←c95876 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd228 ))))((* (( (ptr) (*  (ptr) ggData←v13504 ))+22) ), (word) (( (bPt) &var←c101316)+44)/* var←c95812 */ , 0, pd228)
         ;
         };
      };
SOURCE(14845, 117)
   if (((* (( (ptr) (*  (ptr) ggData←v13504 ))+26) ) != 0)) {
SOURCE(14886, 76)
      {
         word pd229;
         pd229 = (* (( (ptr) (* (( (ptr) gf←c101348)+387)/* var←c95876 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd229 ))))((* (( (ptr) (*  (ptr) ggData←v13504 ))+26) ), (word) (( (bPt) &var←c101316)+36)/* var←c95780 */ , 0, pd229)
         ;
         };
      };
SOURCE(14964, 123)
   if (((* (( (ptr) (*  (ptr) ggData←v13504 ))+29) ) != 0)) {
SOURCE(15007, 80)
      {
         word pd230;
         pd230 = (* (( (ptr) (* (( (ptr) gf←c101348)+387)/* var←c95876 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd230 ))))((* (( (ptr) (*  (ptr) ggData←v13504 ))+29) ), (word) (( (bPt) &var←c101316)+20)/* var←c95716 */ , 0, pd230)
         ;
         };
      };
SOURCE(15089, 114)
   if (((* (( (ptr) (*  (ptr) ggData←v13504 ))+24) ) != 0)) {
SOURCE(15129, 74)
      {
         word pd231;
         pd231 = (* (( (ptr) (* (( (ptr) gf←c101348)+387)/* var←c95876 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd231 ))))((* (( (ptr) (*  (ptr) ggData←v13504 ))+24) ), (word) (( (bPt) &var←c101316)+28)/* var←c95748 */ , 0, pd231)
         ;
         };
      };
SOURCE(15205, 48)
   (* (( (ptr) (* (( (ptr) &var←c101316)+4)/* filterLists←v13548 */  ))+4) ) = (* (( (ptr) (* (( (ptr) ggData←v13504)+18) ))+13)
    );
SOURCE(13599, 1654)
   return((* (( (ptr) &var←c101316)+4)/* filterLists←v13548 */  ));
   }

static word AddSlopeFilter←P8844(state←v31576, name←v31604, value←v31632, clientData←v31660, formal←c101412)
   word state←v31576;
   word name←v31604;
   word value←v31632;
   word clientData←v31660;
   word formal←c101412;
   {
   register ptr gf←c101380 =  (ptr) &globalframe;
   word done←v31728;
   formal←c101412 = (formal←c101412 - 44);
   /* AddSlopeFilter: */ 
SOURCE(13683, 252)
SOURCE(13683, 252)
   done←v31728 = 0;
SOURCE(13805, 130)
   if ((0 != state←v31576)) {
SOURCE(13819, 118)
      {
         word real←v32392;
SOURCE(13821, 37)
         real←v32392 = (*  (ptr) XR←Narrow(value←v31632, (* (( (ptr) gf←c101380)+25) )) );
SOURCE(13860, 75)
         {
            word var←c95908;
            {
               word var←c95940;
               word var←c96004;
               {
                  word pd232;
                  pd232 = (* (( (ptr) (* (( (ptr) gf←c101380)+388)/* var←c95972 */  ))+4) );
                  var←c95940 = (word) ( *( (fPt) ((*  (ptr) pd232 ))))(real←v32392, pd232);
                  };
               var←c96004 = XR←NewObject(8, (* (( (ptr) gf←c101380)+22) ));
               (*  (ptr) var←c96004 ) = var←c95940;
               (* (( (ptr) var←c96004)+1) ) = (*  (ptr) (* (( (ptr) formal←c101412)+4) ) );
               var←c95908 = var←c96004;
               };
            (*  (ptr) (* (( (ptr) formal←c101412)+4) ) ) = var←c95908;
            };
         };
      };
SOURCE(13683, 252)
   return(done←v31728);
   }

static word AddRadiusFilter←P8904(state←v31788, name←v31816, value←v31844, clientData←v31872, formal←c101476)
   word state←v31788;
   word name←v31816;
   word value←v31844;
   word clientData←v31872;
   word formal←c101476;
   {
   register ptr gf←c101444 =  (ptr) &globalframe;
   word done←v31940;
   formal←c101476 = (formal←c101476 - 36);
   /* AddRadiusFilter: */ 
SOURCE(13943, 231)
SOURCE(13943, 231)
   done←v31940 = 0;
SOURCE(14066, 108)
   if ((0 != state←v31788)) {
SOURCE(14080, 96)
      {
         word real←v32448;
SOURCE(14082, 37)
         real←v32448 = (*  (ptr) XR←Narrow(value←v31844, (* (( (ptr) gf←c101444)+25) )) );
SOURCE(14121, 53)
         {
            word var←c96036;
            var←c96036 = XR←NewObject(8, (* (( (ptr) gf←c101444)+22) ));
            (*  (ptr) var←c96036 ) = real←v32448;
            (* (( (ptr) var←c96036)+1) ) = (* (( (ptr) (* (( (ptr) formal←c101476)+4) ))+1) );
            (* (( (ptr) (* (( (ptr) formal←c101476)+4) ))+1) ) = var←c96036;
            };
         };
      };
SOURCE(13943, 231)
   return(done←v31940);
   }

static word AddAngleFilter←P8964(state←v32000, name←v32028, value←v32056, clientData←v32084, formal←c101540)
   word state←v32000;
   word name←v32028;
   word value←v32056;
   word clientData←v32084;
   word formal←c101540;
   {
   register ptr gf←c101508 =  (ptr) &globalframe;
   word done←v32152;
   formal←c101540 = (formal←c101540 - 28);
   /* AddAngleFilter: */ 
SOURCE(14182, 232)
SOURCE(14182, 232)
   done←v32152 = 0;
SOURCE(14304, 110)
   if ((0 != state←v32000)) {
SOURCE(14318, 98)
      {
         word real←v32504;
SOURCE(14320, 37)
         real←v32504 = (*  (ptr) XR←Narrow(value←v32056, (* (( (ptr) gf←c101508)+25) )) );
SOURCE(14359, 55)
         {
            word var←c96068;
            var←c96068 = XR←NewObject(8, (* (( (ptr) gf←c101508)+22) ));
            (*  (ptr) var←c96068 ) = real←v32504;
            (* (( (ptr) var←c96068)+1) ) = (* (( (ptr) (* (( (ptr) formal←c101540)+4) ))+2) );
            (* (( (ptr) (* (( (ptr) formal←c101540)+4) ))+2) ) = var←c96068;
            };
         };
      };
SOURCE(14182, 232)
   return(done←v32152);
   }

static word AddDistanceFilter←P9024(state←v32212, name←v32240, value←v32268, clientData←v32296, formal←c101604)
   word state←v32212;
   word name←v32240;
   word value←v32268;
   word clientData←v32296;
   word formal←c101604;
   {
   register ptr gf←c101572 =  (ptr) &globalframe;
   word done←v32364;
   formal←c101604 = (formal←c101604 - 20);
   /* AddDistanceFilter: */ 
SOURCE(14422, 241)
SOURCE(14422, 241)
   done←v32364 = 0;
SOURCE(14547, 116)
   if ((0 != state←v32212)) {
SOURCE(14561, 104)
      {
         word real←v32560;
SOURCE(14563, 37)
         real←v32560 = (*  (ptr) XR←Narrow(value←v32268, (* (( (ptr) gf←c101572)+25) )) );
SOURCE(14602, 61)
         {
            word var←c96100;
            var←c96100 = XR←NewObject(8, (* (( (ptr) gf←c101572)+22) ));
            (*  (ptr) var←c96100 ) = real←v32560;
            (* (( (ptr) var←c96100)+1) ) = (* (( (ptr) (* (( (ptr) formal←c101604)+4) ))+3) );
            (* (( (ptr) (* (( (ptr) formal←c101604)+4) ))+3) ) = var←c96100;
            };
         };
      };
SOURCE(14422, 241)
   return(done←v32364);
   }

static void SetAllAlignmentStates←P1800(ggData←v13608, type←v13636, state←v13664)
   word ggData←v13608;
   word type←v13636;
   word state←v13664;
   {
   register ptr gf←c101636 =  (ptr) &globalframe;
   /* SetAllAlignmentStates: */ 
SOURCE(15304, 629)
SOURCE(15394, 539)
   {
      word var←c96132;
      var←c96132 = type←v13636;
      switch (var←c96132) {
         case 0: 
SOURCE(15420, 116)
            if (((* (( (ptr) (*  (ptr) ggData←v13608 ))+22) ) != 0)) {
SOURCE(15462, 74)
               {
                  word pd233;
                  pd233 = (* (( (ptr) (* (( (ptr) gf←c101636)+387)/* var←c95876 */  ))+15) );
                  (void) ( *( (fPt) ((*  (ptr) pd233 ))))(ggData←v13608, (* (( (ptr) (*  (ptr) ggData←v13608 ))+22) ), state←v13664, pd233)
                  ;
                  };
               };
            break;
         case 1: 
SOURCE(15547, 116)
            if (((* (( (ptr) (*  (ptr) ggData←v13608 ))+24) ) != 0)) {
SOURCE(15589, 74)
               {
                  word pd234;
                  pd234 = (* (( (ptr) (* (( (ptr) gf←c101636)+387)/* var←c95876 */  ))+15) );
                  (void) ( *( (fPt) ((*  (ptr) pd234 ))))(ggData←v13608, (* (( (ptr) (*  (ptr) ggData←v13608 ))+24) ), state←v13664, pd234)
                  ;
                  };
               };
            break;
         case 2: 
SOURCE(15675, 118)
            if (((* (( (ptr) (*  (ptr) ggData←v13608 ))+26) ) != 0)) {
SOURCE(15718, 75)
               {
                  word pd235;
                  pd235 = (* (( (ptr) (* (( (ptr) gf←c101636)+387)/* var←c95876 */  ))+15) );
                  (void) ( *( (fPt) ((*  (ptr) pd235 ))))(ggData←v13608, (* (( (ptr) (*  (ptr) ggData←v13608 ))+26) ), state←v13664, pd235)
                  ;
                  };
               };
            break;
         case 3: 
SOURCE(15811, 122)
            if (((* (( (ptr) (*  (ptr) ggData←v13608 ))+29) ) != 0)) {
SOURCE(15856, 77)
               {
                  word pd236;
                  pd236 = (* (( (ptr) (* (( (ptr) gf←c101636)+387)/* var←c95876 */  ))+15) );
                  (void) ( *( (fPt) ((*  (ptr) pd236 ))))(ggData←v13608, (* (( (ptr) (*  (ptr) ggData←v13608 ))+29) ), state←v13664, pd236)
                  ;
                  };
               };
            break;
         };
      };
   }

static void DeleteSelectedAlignments←P1860(ggData←v13724, type←v13752)
   word ggData←v13724;
   word type←v13752;
   {
   W6 var←c101668;
   register ptr gf←c101700 =  (ptr) &globalframe;
   /* declaration of var←c96164 skipped */ 
   word handle←v32644;
   /* DeleteSelectedAlignments: */ 
SOURCE(15948, 362)
   {
      word tmpAddr237;
      tmpAddr237 = (word) (( (ptr) &var←c101668)+4)/* var←c96164 */ ;
      (*  (ptr) tmpAddr237 ) = ( ((word)  (fPt) DeleteSelected←P9276) );
      (* (( (ptr) tmpAddr237) + 1) ) = 1;
      };
SOURCE(16181, 64)
   handle←v32644 = (word) GetSortedButtonHandle←P1920(ggData←v13724, type←v13752);
SOURCE(16247, 63)
   {
      word pd238;
      pd238 = (* (( (ptr) (* (( (ptr) gf←c101700)+387)/* var←c95876 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd238 ))))(ggData←v13724, handle←v32644, (word) (( (bPt) &var←c101668)+16)/* var←c96164 */ , pd238)
      ;
      };
   }

static void DeleteSelected←P9276(formal←c0426, state←v32720, name←v32748, value←v32776, clientData←v32804, formal←c101732)
   word formal←c0426;
   word state←v32720;
   word name←v32748;
   word value←v32776;
   word clientData←v32804;
   word formal←c101732;
   {
   word found←v32872;
   word done←v32900;
   formal←c101732 = (formal←c101732 - 16);
   /* DeleteSelected: */ 
SOURCE(16028, 148)
SOURCE(16028, 148)
   done←v32900 = 0;
SOURCE(16163, 13)
   found←v32872 = state←v32720;
   /* removed tail goto */ 
   (*  (ptr) formal←c0426 ) = found←v32872;
   (* (( (ptr) formal←c0426)+1) ) = done←v32900;
   return;
   }

static word GetSortedButtonHandle←P1920(ggData←v13812, type←v13840)
   word ggData←v13812;
   word type←v13840;
   {
   word handle←v13884;
   /* GetSortedButtonHandle: */ 
SOURCE(16316, 311)
SOURCE(16316, 311)
   handle←v13884 = 0;
SOURCE(16423, 204)
   {
      word var←c96196;
      var←c96196 = type←v13840;
      switch (var←c96196) {
         case 0: 
            handle←v13884 = (* (( (ptr) (*  (ptr) ggData←v13812 ))+22) );
            break;
         case 1: 
            handle←v13884 = (* (( (ptr) (*  (ptr) ggData←v13812 ))+24) );
            break;
         case 2: 
            handle←v13884 = (* (( (ptr) (*  (ptr) ggData←v13812 ))+26) );
            break;
         case 3: 
            handle←v13884 = (* (( (ptr) (*  (ptr) ggData←v13812 ))+29) );
            break;
         default: 
            handle←v13884 = 0;
            break;
         };
      };
SOURCE(16316, 311)
   return(handle←v13884);
   }

static void ToggleAlignment←P1980(formal←c0438, ggData←v13944, formal←c01136, type←v14000)
   word formal←c0438;
   word ggData←v13944;
   word formal←c01136;
   word type←v14000;
   {
   W9 var←c101764;
   /* declaration of alignVal←v13972 skipped */ 
   register ptr gf←c101796 =  (ptr) &globalframe;
   /* declaration of menuValue←v14044 skipped */ 
   /* declaration of changedToOn←v14072 skipped */ 
   /* declaration of var←c96228 skipped */ 
   word handle←v32956;
   (* (( (ptr) &var←c101764)+4)/* alignVal←v13972 */  ) = formal←c01136;
   /* ToggleAlignment: */ 
SOURCE(16633, 684)
   {
      word tmpAddr239;
      tmpAddr239 = (word) (( (ptr) &var←c101764)+7)/* var←c96228 */ ;
      (*  (ptr) tmpAddr239 ) = ( ((word)  (fPt) FindAndToggleValue←P9336) );
      (* (( (ptr) tmpAddr239) + 1) ) = 1;
      };
SOURCE(16633, 684)
   (* (( (ptr) &var←c101764)+5)/* menuValue←v14044 */  ) = (*  (ptr) &fc240 );
SOURCE(16633, 684)
   (* (( (ptr) &var←c101764)+6)/* changedToOn←v14072 */  ) = 0;
SOURCE(17192, 64)
   handle←v32956 = (word) GetSortedButtonHandle←P1920(ggData←v13944, type←v14000);
SOURCE(17259, 58)
   {
      word pd241;
      pd241 = (* (( (ptr) (* (( (ptr) gf←c101796)+387)/* var←c95876 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd241 ))))(handle←v32956, (word) (( (bPt) &var←c101764)+28)/* var←c96228 */ , 0, pd241);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0438 ) = (* (( (ptr) &var←c101764)+5)/* menuValue←v14044 */  );
   (* (( (ptr) formal←c0438)+1) ) = (* (( (ptr) &var←c101764)+6)/* changedToOn←v14072 */  );
   return;
   }

static void FindAndToggleValue←P9336(formal←c0448, state←v33032, name←v33060, value←v33088, clientData←v33116, formal←c101860)
   word formal←c0448;
   word state←v33032;
   word name←v33060;
   word value←v33088;
   word clientData←v33116;
   word formal←c101860;
   {
   register ptr gf←c101828 =  (ptr) &globalframe;
   word newState←v33184;
   word newName←v33212;
   word newValue←v33240;
   word done←v33268;
   word real←v33308;
   formal←c101860 = (formal←c101860 - 28);
   /* FindAndToggleValue: */ 
SOURCE(16781, 406)
SOURCE(16781, 406)
   newName←v33212 = 0;
SOURCE(16781, 406)
   newValue←v33240 = 0;
SOURCE(16781, 406)
   done←v33268 = 0;
SOURCE(16968, 37)
   real←v33308 = (*  (ptr) XR←Narrow(value←v33088, (* (( (ptr) gf←c101828)+25) )) );
SOURCE(17030, 139)
   {
      float tf242;
      word x243;
      word x244;
      word x246;
      if ((FABS(((
            x243 = real←v33308,  *(float*)&x243
            ) - (
            x244 = (* (( (ptr) formal←c101860)+4) ),  *(float*)&x244
            )), tf242) < (
         x246 = (*  (ptr) &fc245 ),  *(float*)&x246
         ))) {
SOURCE(17069, 20)
         newState←v33184 =  (unsigned) (0 == state←v33032);
SOURCE(17091, 22)
         (* (( (ptr) formal←c101860)+6) ) = newState←v33184;
SOURCE(17115, 16)
         (* (( (ptr) formal←c101860)+5) ) = real←v33308;
SOURCE(17133, 11)
         done←v33268 = 1;
         }
      else {
SOURCE(17153, 16)
         newState←v33184 = state←v33032;
         };
      };
SOURCE(17171, 16)
   newValue←v33240 = value←v33088;
   /* removed tail goto */ 
   (*  (ptr) formal←c0448 ) = newState←v33184;
   (* (( (ptr) formal←c0448)+1) ) = newName←v33212;
   (* (( (ptr) formal←c0448)+2) ) = newValue←v33240;
   (* (( (ptr) formal←c0448)+3) ) = done←v33268;
   return;
   }

static void GetSlopeAlignments←P2040(formal←c0459, ggData←v14132)
   word formal←c0459;
   word ggData←v14132;
   {
   W10 var←c101892;
   register ptr gf←c101924 =  (ptr) &globalframe;
   /* declaration of values←v14176 skipped */ 
   /* declaration of on←v14204 skipped */ 
   /* declaration of var←c96260 skipped */ 
   /* declaration of valuePtr←v33420 skipped */ 
   /* declaration of boolPtr←v33448 skipped */ 
   /* GetSlopeAlignments: */ 
SOURCE(17323, 627)
   {
      word tmpAddr247;
      tmpAddr247 = (word) (( (ptr) &var←c101892)+6)/* var←c96260 */ ;
      (*  (ptr) tmpAddr247 ) = ( ((word)  (fPt) AddSlope←P9396) );
      (* (( (ptr) tmpAddr247) + 1) ) = 1;
      };
SOURCE(17323, 627)
   (* (( (ptr) &var←c101892)+4)/* values←v14176 */  ) = 0;
SOURCE(17323, 627)
   (* (( (ptr) &var←c101892)+5)/* on←v14204 */  ) = 0;
SOURCE(17702, 10)
   (* (( (ptr) &var←c101892)+8)/* valuePtr←v33420 */  ) = 0;
SOURCE(17726, 9)
   (* (( (ptr) &var←c101892)+9)/* boolPtr←v33448 */  ) = 0;
SOURCE(17749, 46)
   {
      W2 var←c96324;
      {
         word pd248;
         pd248 = (* (( (ptr) (* (( (ptr) gf←c101924)+389)/* var←c96292 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd248 ))))((word) (&var←c96324), pd248);
         };
      (* (( (ptr) &var←c101892)+8)/* valuePtr←v33420 */  ) = var←c96324.f1;
      (* (( (ptr) &var←c101892)+4)/* values←v14176 */  ) = var←c96324.f0;
      };
SOURCE(17797, 41)
   {
      W2 var←c96356;
      {
         word pd249;
         pd249 = (* (( (ptr) (* (( (ptr) gf←c101924)+389)/* var←c96292 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd249 ))))((word) (&var←c96356), pd249);
         };
      (* (( (ptr) &var←c101892)+9)/* boolPtr←v33448 */  ) = var←c96356.f1;
      (* (( (ptr) &var←c101892)+5)/* on←v14204 */  ) = var←c96356.f0;
      };
SOURCE(17840, 110)
   if (((* (( (ptr) (*  (ptr) ggData←v14132 ))+22) ) != 0)) {
SOURCE(17882, 68)
      {
         word pd250;
         pd250 = (* (( (ptr) (* (( (ptr) gf←c101924)+387)/* var←c95876 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd250 ))))((* (( (ptr) (*  (ptr) ggData←v14132 ))+22) ), (word) (( (bPt) &var←c101892)+24)/* var←c96260 */ , 0, pd250)
         ;
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0459 ) = (* (( (ptr) &var←c101892)+4)/* values←v14176 */  );
   (* (( (ptr) formal←c0459)+1) ) = (* (( (ptr) &var←c101892)+5)/* on←v14204 */  );
   return;
   }

static word AddSlope←P9396(state←v33524, name←v33552, value←v33580, clientData←v33608, formal←c101988)
   word state←v33524;
   word name←v33552;
   word value←v33580;
   word clientData←v33608;
   word formal←c101988;
   {
   register ptr gf←c101956 =  (ptr) &globalframe;
   word done←v33676;
   word real←v33872;
   formal←c101988 = (formal←c101988 - 24);
   /* AddSlope: */ 
SOURCE(17425, 272)
SOURCE(17425, 272)
   done←v33676 = 0;
SOURCE(17541, 37)
   real←v33872 = (*  (ptr) XR←Narrow(value←v33580, (* (( (ptr) gf←c101956)+25) )) );
SOURCE(17580, 62)
   {
      W2 var←c96388;
      {
         word pd251;
         pd251 = (* (( (ptr) (* (( (ptr) gf←c101956)+389)/* var←c96292 */  ))+18) );
         (void) ( *( (fPt) ((*  (ptr) pd251 ))))((word) &var←c96388, real←v33872, (* (( (ptr) formal←c101988)+4) ), (* (( (ptr) formal←c101988)+8)
             ), pd251);
         };
      (* (( (ptr) formal←c101988)+8) ) = var←c96388.f1;
      (* (( (ptr) formal←c101988)+4) ) = var←c96388.f0;
      };
SOURCE(17644, 53)
   {
      W2 var←c96420;
      {
         word pd252;
         pd252 = (* (( (ptr) (* (( (ptr) gf←c101956)+389)/* var←c96292 */  ))+22) );
         (void) ( *( (fPt) ((*  (ptr) pd252 ))))((word) &var←c96420, state←v33524, (* (( (ptr) formal←c101988)+5) ), (* (( (ptr) formal←c101988)+9)
             ), pd252);
         };
      (* (( (ptr) formal←c101988)+9) ) = var←c96420.f1;
      (* (( (ptr) formal←c101988)+5) ) = var←c96420.f0;
      };
SOURCE(17425, 272)
   return(done←v33676);
   }

static void GetSlopeValue←P2100(formal←c0473, ggData←v14432)
   word formal←c0473;
   word ggData←v14432;
   {
   register ptr gf←c102020 =  (ptr) &globalframe;
   word degrees←v14476;
   word success←v14504;
   /* GetSlopeValue: */ 
SOURCE(17957, 684)
SOURCE(17957, 684)
   success←v14504 = 1;
SOURCE(18051, 58)
   if (((* (( (ptr) (*  (ptr) ggData←v14432 ))+32) ) == 0)) {
SOURCE(18091, 18)
      degrees←v14476 = (*  (ptr) &fc136 );
      success←v14504 = 0;
      goto lab←L100014;
      };
SOURCE(18111, 76)
   {
      word pd253;
      pd253 = (* (( (ptr) (* (( (ptr) gf←c102020)+390)/* var←c96452 */  ))+5) );
      degrees←v14476 = (word) ( *( (fPt) ((*  (ptr) pd253 ))))((* (( (ptr) (*  (ptr) ggData←v14432 ))+32) ), 2139095039, pd253)
      ;
      };
SOURCE(18189, 169)
   {
      word x254;
      word x255;
      if (((
         x254 = degrees←v14476,  *(float*)&x254
         ) == (
         x255 = 2139095039,  *(float*)&x255
         ))) {
SOURCE(18228, 90)
         {
            word pd256;
            pd256 = (* (( (ptr) (* (( (ptr) gf←c102020)+380)/* var←c94820 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd256 ))))((* (( (ptr) ggData←v14432)+3) ), 0, (* (( (ptr) gf←c102020)+32) ), (* (( (ptr) gf←c102020)+33)
                ), pd256);
            };
SOURCE(18320, 13)
         degrees←v14476 = (*  (ptr) &fc136 );
SOURCE(18335, 15)
         success←v14504 = 0;
SOURCE(18352, 6)
         goto lab←L100014;
         };
      };
SOURCE(18363, 37)
   {
      word pd257;
      pd257 = (* (( (ptr) (* (( (ptr) gf←c102020)+388)/* var←c95972 */  ))+4) );
      degrees←v14476 = (word) ( *( (fPt) ((*  (ptr) pd257 ))))(degrees←v14476, pd257);
      };
SOURCE(18402, 43)
   {
      word x258;
      word x259;
      if (((
         x258 = degrees←v14476,  *(float*)&x258
         ) < (
         x259 = (*  (ptr) &fc136 ),  *(float*)&x259
         ))) {
SOURCE(18422, 23)
         {
            word x260;
            word x262;
            *(float*)&degrees←v14476 = (
               x260 = degrees←v14476,  *(float*)&x260
               ) + (
               x262 = (*  (ptr) &fc261 ),  *(float*)&x262
               );
            };
         };
      };
SOURCE(18447, 35)
   {
      word x263;
      word x265;
      if (((
         x263 = degrees←v14476,  *(float*)&x263
         ) == (
         x265 = (*  (ptr) &fc264 ),  *(float*)&x265
         ))) {
SOURCE(18469, 13)
         degrees←v14476 = (*  (ptr) &fc136 );
         };
      };
SOURCE(18484, 157)
   {
      word pd266;
      pd266 = (* (( (ptr) (* (( (ptr) gf←c102020)+391)/* var←c96484 */  ))+39) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd266 ))))(degrees←v14476, (* (( (ptr) ggData←v14432)+25) ), 116, pd266))) {
SOURCE(18557, 45)
         degrees←v14476 = (* (( (ptr) ggData←v14432)+25) );
         }
      else {
SOURCE(18602, 39)
         (* (( (ptr) ggData←v14432)+25) ) = degrees←v14476;
         };
      };
   /* removed tail goto */ 
   lab←L100014: ;
   (*  (ptr) formal←c0473 ) = degrees←v14476;
   (* (( (ptr) formal←c0473)+1) ) = success←v14504;
   return;
   }

static void SetSlopeValue←P2160(ggData←v14564, degrees←v14592)
   word ggData←v14564;
   word degrees←v14592;
   {
   register ptr gf←c102052 =  (ptr) &globalframe;
   /* SetSlopeValue: */ 
SOURCE(18647, 208)
SOURCE(18710, 39)
   (* (( (ptr) ggData←v14564)+25) ) = degrees←v14592;
SOURCE(18751, 104)
   if (((* (( (ptr) (*  (ptr) ggData←v14564 ))+32) ) != 0)) {
SOURCE(18791, 64)
      {
         word pd267;
         pd267 = (* (( (ptr) (* (( (ptr) gf←c102052)+390)/* var←c96452 */  ))+8) );
         (void) ( *( (fPt) ((*  (ptr) pd267 ))))((* (( (ptr) (*  (ptr) ggData←v14564 ))+32) ), degrees←v14592, (* (( (ptr) gf←c102052)+34)
             ), pd267);
         };
      };
   }

static word SelectSlope←P2220(ggData←v14652)
   word ggData←v14652;
   {
   register ptr gf←c102084 =  (ptr) &globalframe;
   word success←v14696;
   /* SelectSlope: */ 
SOURCE(18861, 187)
SOURCE(18861, 187)
   success←v14696 = 1;
SOURCE(18938, 110)
   if (((* (( (ptr) (*  (ptr) ggData←v14652 ))+32) ) == 0)) {
SOURCE(18976, 21)
      success←v14696 = 0;
      }
   else {
SOURCE(18997, 51)
      {
         word pd268;
         pd268 = (* (( (ptr) (* (( (ptr) gf←c102084)+392)/* var←c96516 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd268 ))))((* (( (ptr) (*  (ptr) ggData←v14652 ))+32) ), 0, pd268);
         };
      };
SOURCE(18861, 187)
   return(success←v14696);
   }

static word AddSlope←P2280(ggData←v14756, degrees←v14784, on←v14812)
   word ggData←v14756;
   word degrees←v14784;
   word on←v14812;
   {
   register ptr gf←c102116 =  (ptr) &globalframe;
   word alreadyThere←v14856;
   word oldFoundButton←v33928 = 0;
   /* AddSlope: */ 
SOURCE(19054, 399)
SOURCE(19206, 54)
   if (((* (( (ptr) (*  (ptr) ggData←v14756 ))+22) ) == 0)) {
SOURCE(19248, 12)
      return(1);
      };
SOURCE(19262, 154)
   {
      word var←c96548;
      {
         word var←c96580;
         word var←c96612;
         var←c96580 = XR←NewObject(8, (* (( (ptr) gf←c102116)+21) ));
         var←c96612 = var←c96580;
         {
            word var←c96676;
            word var←c96708;
            var←c96676 = XR←NewObject(8, (* (( (ptr) gf←c102116)+20) ));
            var←c96708 = var←c96676;
            (*  (ptr) var←c96708 ) = (* (( (ptr) gf←c102116)+37) );
            (* (( (ptr) var←c96708)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c102116)+20) ));
            var←c96708 = (* (( (ptr) var←c96708)+1) );
            {
               word var←c96772;
               var←c96772 = XR←NewObject(4, (* (( (ptr) gf←c102116)+25) ));
               (*  (ptr) var←c96772 ) = degrees←v14784;
               (*  (ptr) var←c96708 ) = var←c96772;
               };
            (*  (ptr) var←c96612 ) = var←c96676;
            };
         var←c96548 = var←c96580;
         };
      {
         W4 var←c96804;
         var←c96804.f0 = 0;
         var←c96804.f1 = degrees←v14784;
         var←c96804.f2 = var←c96548;
         var←c96804.f3 = on←v14812;
         {
            word pd269;
            pd269 = (* (( (ptr) (* (( (ptr) gf←c102116)+387)/* var←c95876 */  ))+19) );
            oldFoundButton←v33928 = (word) ( *( (fPt) ((*  (ptr) pd269 ))))(ggData←v14756, (* (( (ptr) (*  (ptr) ggData←v14756 ))+22)
                ), var←c96804, 1, pd269);
            };
         };
      };
SOURCE(19418, 35)
   alreadyThere←v14856 =  (unsigned) (oldFoundButton←v33928 != 0);
SOURCE(19054, 399)
   return(alreadyThere←v14856);
   }

static word ButtonsFromValues←P2340(atom←v14916, names←v14944, values←v14972, on←v15000)
   word atom←v14916;
   word names←v14944;
   register word values←v14972;
   word on←v15000;
   {
   register ptr gf←c102148 =  (ptr) &globalframe;
   word buttonList←v15296;
   word ptr←v33972 = 0;
   word name←v34000 = 0;
   word active←v34028 = 0;
   /* ButtonsFromValues: */ 
SOURCE(19459, 664)
SOURCE(19459, 664)
   buttonList←v15296 = 0;
SOURCE(19687, 53)
   {
      W2 var←c96836;
      {
         word pd270;
         pd270 = (* (( (ptr) (* (( (ptr) gf←c102148)+389)/* var←c96292 */  ))+27) );
         (void) ( *( (fPt) ((*  (ptr) pd270 ))))((word) (&var←c96836), pd270);
         };
      ptr←v33972 = var←c96836.f1;
      buttonList←v15296 = var←c96836.f0;
      };
SOURCE(19742, 381)
   values←v14972 = values←v14972;
   lab←L100018: ;
   if ((values←v14972 != 0)) {
      }
   else {
      goto lab←L100015;
      };
SOURCE(19797, 70)
   if ((names←v14944 == 0)) {
      name←v34000 = (word) ScalarToRope←P4080((*  (ptr) (values←v14972) ));
      }
   else {
      name←v34000 = (*  (ptr) names←v14944 );
      };
SOURCE(19869, 45)
   if ((on←v15000 == 0)) {
      active←v34028 = 0;
      }
   else {
      active←v34028 = (*  (ptr) on←v15000 );
      };
SOURCE(19916, 136)
   {
      W2 var←c97156;
      {
         word var←c96868;
         {
            word var←c96900;
            word var←c96932;
            var←c96900 = XR←NewObject(8, (* (( (ptr) gf←c102148)+21) ));
            var←c96932 = var←c96900;
            {
               word var←c96996;
               word var←c97028;
               var←c96996 = XR←NewObject(8, (* (( (ptr) gf←c102148)+20) ));
               var←c97028 = var←c96996;
               (*  (ptr) var←c97028 ) = atom←v14916;
               (* (( (ptr) var←c97028)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c102148)+20) ));
               var←c97028 = (* (( (ptr) var←c97028)+1) );
               {
                  word var←c97092;
                  var←c97092 = XR←NewObject(4, (* (( (ptr) gf←c102148)+25) ));
                  (*  (ptr) var←c97092 ) = (*  (ptr) values←v14972 );
                  (*  (ptr) var←c97028 ) = var←c97092;
                  };
               (*  (ptr) var←c96932 ) = var←c96996;
               };
            var←c96868 = var←c96900;
            };
         {
            W2 var←c0508;
            {
               W4 var←c97124;
               var←c97124.f0 = name←v34000;
               var←c97124.f1 = (*  (ptr) values←v14972 );
               var←c97124.f2 = var←c96868;
               var←c97124.f3 = active←v34028;
               {
                  word pd271;
                  pd271 = (* (( (ptr) (* (( (ptr) gf←c102148)+389)/* var←c96292 */  ))+28) );
                  (void) ( *( (fPt) ((*  (ptr) pd271 ))))((word) &var←c0508, var←c97124, buttonList←v15296, ptr←v33972, pd271);
                  };
               };
            var←c97156 = var←c0508;
            };
         };
      ptr←v33972 = var←c97156.f1;
      buttonList←v15296 = var←c97156.f0;
      };
SOURCE(20054, 38)
   if ((names←v14944 != 0)) {
SOURCE(20074, 18)
      names←v14944 = (* (( (ptr) names←v14944)+1) );
      };
SOURCE(20094, 29)
   if ((on←v15000 != 0)) {
SOURCE(20111, 12)
      on←v15000 = (* (( (ptr) on←v15000)+1) );
      };
   values←v14972 = (* (( (ptr) values←v14972)+1) );
   goto lab←L100018;
   lab←L100015: ;
SOURCE(19459, 664)
   return(buttonList←v15296);
   }

static void AddSlopeList←P2400(ggData←v15440, degrees←v15468, on←v15496)
   word ggData←v15440;
   word degrees←v15468;
   word on←v15496;
   {
   register ptr gf←c102180 =  (ptr) &globalframe;
   word buttonList←v34156 = 0;
   word oldList←v34184 = 0;
   word oldValues←v34212 = 0;
   word oldOn←v34240 = 0;
   /* AddSlopeList: */ 
SOURCE(20138, 586)
SOURCE(20321, 48)
   if (((* (( (ptr) (*  (ptr) ggData←v15440 ))+22) ) == 0)) {
SOURCE(20363, 6)
      return;
      };
SOURCE(20371, 62)
   buttonList←v34156 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102180)+37) ), 0, degrees←v15468, on←v15496);
SOURCE(20435, 47)
   {
      W2 var←c97188;
      (void) GetSlopeAlignments←P2040((word) &var←c97188, ggData←v15440);
      oldOn←v34240 = var←c97188.f1;
      oldValues←v34212 = var←c97188.f0;
      };
SOURCE(20484, 64)
   oldList←v34184 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102180)+37) ), 0, oldValues←v34212, oldOn←v34240);
SOURCE(20550, 63)
   buttonList←v34156 = (word) MergeScalarButtonLists←P2520(buttonList←v34156, oldList←v34184, 0);
SOURCE(20615, 109)
   {
      word pd272;
      pd272 = (* (( (ptr) (* (( (ptr) gf←c102180)+387)/* var←c95876 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd272 ))))((* (( (ptr) (*  (ptr) ggData←v15440 ))+22) ), ggData←v15440, (* (( (ptr) (* (( (ptr) gf←c102180)+393)
            /* var←c97220 */  ))+7) ), 0, buttonList←v34156, pd272);
      };
   }

static void NewSlopeList←P2460(ggData←v15724, degrees←v15752, on←v15780)
   word ggData←v15724;
   word degrees←v15752;
   word on←v15780;
   {
   register ptr gf←c102212 =  (ptr) &globalframe;
   word buttonList←v34536 = 0;
   /* NewSlopeList: */ 
SOURCE(20730, 351)
SOURCE(20858, 48)
   if (((* (( (ptr) (*  (ptr) ggData←v15724 ))+22) ) == 0)) {
SOURCE(20900, 6)
      return;
      };
SOURCE(20908, 62)
   buttonList←v34536 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102212)+37) ), 0, degrees←v15752, on←v15780);
SOURCE(20972, 109)
   {
      word pd273;
      pd273 = (* (( (ptr) (* (( (ptr) gf←c102212)+387)/* var←c95876 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd273 ))))((* (( (ptr) (*  (ptr) ggData←v15724 ))+22) ), ggData←v15724, (* (( (ptr) (* (( (ptr) gf←c102212)+393)
            /* var←c97220 */  ))+7) ), 0, buttonList←v34536, pd273);
      };
   }

static word MergeScalarButtonLists←P2520(list1←v16008, list2←v16036, ascending←v16064)
   word list1←v16008;
   word list2←v16036;
   word ascending←v16064;
   {
   word mergedList←v16192;
   word ptr←v34664 = 0;
   word done←v34692 = 0;
   word list1Is←v34720;
   /* MergeScalarButtonLists: */ 
SOURCE(21087, 867)
SOURCE(21087, 867)
   mergedList←v16192 = 0;
SOURCE(21311, 643)
   lab←L100021: ;
SOURCE(21314, 56)
   {
      W2 var←c97252;
      (void) CompareValues←P2580((word) &var←c97252, list1←v16008, list2←v16036, ascending←v16064);
      done←v34692 = var←c97252.f1;
      list1Is←v34720 = var←c97252.f0;
      };
SOURCE(21372, 19)
   if ((0 != done←v34692)) {
SOURCE(21385, 6)
      return(mergedList←v16192);
      };
SOURCE(21393, 463)
   {
      word var←c97284;
      var←c97284 = list1Is←v34720;
      switch (var←c97284) {
         case 0: 
SOURCE(21421, 63)
            {
               W3 var←c97316;
               (void) SpliceToList←P2640((word) &var←c97316, list1←v16008, mergedList←v16192, ptr←v34664);
               ptr←v34664 = var←c97316.f2;
               mergedList←v16192 = var←c97316.f1;
               list1←v16008 = var←c97316.f0;
               };
            break;
         case 2: 
SOURCE(21497, 63)
            {
               W3 var←c97348;
               (void) SpliceToList←P2640((word) &var←c97348, list2←v16036, mergedList←v16192, ptr←v34664);
               ptr←v34664 = var←c97348.f2;
               mergedList←v16192 = var←c97348.f1;
               list2←v16036 = var←c97348.f0;
               };
            break;
         case 1: 
SOURCE(21571, 287)
            {
               word state←v34848;
SOURCE(21573, 46)
               state←v34848 =  (unsigned)  ( (0 != (* (( (ptr) list1←v16008)+3) )) ? 1 : (0 != (* (( (ptr) list2←v16036)+3) )) ) ;
SOURCE(21621, 210)
               if (((*  (ptr) list1←v16008 ) != 0)) {
SOURCE(21654, 63)
                  {
                     W3 var←c97380;
                     (void) SpliceToList←P2640((word) &var←c97380, list1←v16008, mergedList←v16192, ptr←v34664);
                     ptr←v34664 = var←c97380.f2;
                     mergedList←v16192 = var←c97380.f1;
                     list1←v16008 = var←c97380.f0;
                     };
SOURCE(21719, 18)
                  list2←v16036 = (* (( (ptr) list2←v16036)+4) );
                  }
               else {
SOURCE(21748, 63)
                  {
                     W3 var←c97412;
                     (void) SpliceToList←P2640((word) &var←c97412, list2←v16036, mergedList←v16192, ptr←v34664);
                     ptr←v34664 = var←c97412.f2;
                     mergedList←v16192 = var←c97412.f1;
                     list2←v16036 = var←c97412.f0;
                     };
SOURCE(21813, 18)
                  list1←v16008 = (* (( (ptr) list1←v16008)+4) );
                  };
SOURCE(21836, 20)
               (* (( (ptr) ptr←v34664)+3) ) = state←v34848;
               };
            break;
         default: 
SOURCE(21872, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(21879, 75)
   if (((*  (ptr) ptr←v34664 ) == 0)) {
SOURCE(21908, 46)
      (*  (ptr) ptr←v34664 ) = (word) ScalarToRope←P4080((* ((( (ptr) ptr←v34664)+1)) ));
      };
   goto lab←L100021;
   }

static void CompareValues←P2580(formal←c0546, list1←v16336, list2←v16364, ascending←v16392)
   word formal←c0546;
   word list1←v16336;
   word list2←v16364;
   word ascending←v16392;
   {
   word list1Is←v16520;
   word done←v16548;
   /* CompareValues: */ 
SOURCE(21969, 698)
SOURCE(21969, 698)
   done←v16548 = 0;
SOURCE(22134, 111)
   if ((list1←v16336 == 0)) {
SOURCE(22156, 89)
      if ((list2←v16364 == 0)) {
SOURCE(22177, 11)
         done←v16548 = 1;
SOURCE(22190, 14)
         list1Is←v16520 = 0;
SOURCE(22206, 6)
         goto lab←L100022;
         }
      else {
SOURCE(22220, 17)
         list1Is←v16520 = 2;
SOURCE(22239, 6)
         goto lab←L100022;
         };
      };
SOURCE(22250, 43)
   if ((list2←v16364 == 0)) {
SOURCE(22271, 14)
      list1Is←v16520 = 0;
SOURCE(22287, 6)
      goto lab←L100022;
      };
SOURCE(22296, 371)
   if ((0 != ascending←v16392)) {
SOURCE(22316, 170)
      {
         word x274;
         word x275;
         word x276;
         if (((
            x274 = (* (( (ptr) list1←v16336)+1) ),  *(float*)&x274
            ) + (
            x275 = (*  (ptr) &fc245 ),  *(float*)&x275
            ) < (
            x276 = (* (( (ptr) list2←v16364)+1) ),  *(float*)&x276
            ))) {
SOURCE(22372, 20)
            list1Is←v16520 = 0;
            }
         else {
SOURCE(22392, 94)
            {
               word x277;
               word x278;
               word x279;
               if (((
                  x277 = (* (( (ptr) list1←v16336)+1) ),  *(float*)&x277
                  ) - (
                  x278 = (*  (ptr) &fc245 ),  *(float*)&x278
                  ) > (
                  x279 = (* (( (ptr) list2←v16364)+1) ),  *(float*)&x279
                  ))) {
SOURCE(22448, 23)
                  list1Is←v16520 = 2;
                  }
               else {
SOURCE(22471, 15)
                  list1Is←v16520 = 1;
                  };
               };
            };
         };
      }
   else {
SOURCE(22497, 170)
      {
         word x280;
         word x281;
         word x282;
         if (((
            x280 = (* (( (ptr) list1←v16336)+1) ),  *(float*)&x280
            ) + (
            x281 = (*  (ptr) &fc245 ),  *(float*)&x281
            ) < (
            x282 = (* (( (ptr) list2←v16364)+1) ),  *(float*)&x282
            ))) {
SOURCE(22553, 23)
            list1Is←v16520 = 2;
            }
         else {
SOURCE(22576, 91)
            {
               word x283;
               word x284;
               word x285;
               if (((
                  x283 = (* (( (ptr) list1←v16336)+1) ),  *(float*)&x283
                  ) - (
                  x284 = (*  (ptr) &fc245 ),  *(float*)&x284
                  ) > (
                  x285 = (* (( (ptr) list2←v16364)+1) ),  *(float*)&x285
                  ))) {
SOURCE(22632, 20)
                  list1Is←v16520 = 0;
                  }
               else {
SOURCE(22652, 15)
                  list1Is←v16520 = 1;
                  };
               };
            };
         };
      };
   /* removed tail goto */ 
   lab←L100022: ;
   (*  (ptr) formal←c0546 ) = list1Is←v16520;
   (* (( (ptr) formal←c0546)+1) ) = done←v16548;
   return;
   }

static void SpliceToList←P2640(formal←c0553, list←v16608, mergedList←v16636, ptr←v16664)
   word formal←c0553;
   word list←v16608;
   word mergedList←v16636;
   word ptr←v16664;
   {
   word newList←v16792;
   word newMergedList←v16820;
   word newPtr←v16848;
   /* SpliceToList: */ 
SOURCE(22676, 377)
SOURCE(22676, 377)
   newList←v16792 = 0;
SOURCE(22676, 377)
   newMergedList←v16820 = 0;
SOURCE(22676, 377)
   newPtr←v16848 = 0;
SOURCE(22808, 19)
   newList←v16792 = (* (( (ptr) list←v16608)+4) );
SOURCE(22853, 15)
   (* (( (ptr) list←v16608)+4) ) = 0;
SOURCE(22889, 69)
   if ((mergedList←v16636 == 0)) {
SOURCE(22915, 20)
      newMergedList←v16820 = list←v16608;
SOURCE(22937, 13)
      newPtr←v16848 = list←v16608;
SOURCE(22952, 6)
      goto lab←L100023;
      };
SOURCE(22961, 26)
   newMergedList←v16820 = mergedList←v16636;
SOURCE(22989, 15)
   (* (( (ptr) ptr←v16664)+4) ) = list←v16608;
SOURCE(23040, 13)
   newPtr←v16848 = list←v16608;
   /* removed tail goto */ 
   lab←L100023: ;
   (*  (ptr) formal←c0553 ) = newList←v16792;
   (* (( (ptr) formal←c0553)+1) ) = newMergedList←v16820;
   (* (( (ptr) formal←c0553)+2) ) = newPtr←v16848;
   return;
   }

static void GetAngleAlignments←P2700(formal←c0564, ggData←v16992)
   word formal←c0564;
   word ggData←v16992;
   {
   W10 var←c102244;
   register ptr gf←c102276 =  (ptr) &globalframe;
   /* declaration of values←v17036 skipped */ 
   /* declaration of on←v17064 skipped */ 
   /* declaration of var←c97444 skipped */ 
   /* declaration of valuePtr←v34964 skipped */ 
   /* declaration of boolPtr←v34992 skipped */ 
   /* GetAngleAlignments: */ 
SOURCE(23086, 627)
   {
      word tmpAddr286;
      tmpAddr286 = (word) (( (ptr) &var←c102244)+6)/* var←c97444 */ ;
      (*  (ptr) tmpAddr286 ) = ( ((word)  (fPt) AddAngle←P9504) );
      (* (( (ptr) tmpAddr286) + 1) ) = 1;
      };
SOURCE(23086, 627)
   (* (( (ptr) &var←c102244)+4)/* values←v17036 */  ) = 0;
SOURCE(23086, 627)
   (* (( (ptr) &var←c102244)+5)/* on←v17064 */  ) = 0;
SOURCE(23465, 10)
   (* (( (ptr) &var←c102244)+8)/* valuePtr←v34964 */  ) = 0;
SOURCE(23489, 9)
   (* (( (ptr) &var←c102244)+9)/* boolPtr←v34992 */  ) = 0;
SOURCE(23512, 46)
   {
      W2 var←c97476;
      {
         word pd287;
         pd287 = (* (( (ptr) (* (( (ptr) gf←c102276)+389)/* var←c96292 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd287 ))))((word) (&var←c97476), pd287);
         };
      (* (( (ptr) &var←c102244)+8)/* valuePtr←v34964 */  ) = var←c97476.f1;
      (* (( (ptr) &var←c102244)+4)/* values←v17036 */  ) = var←c97476.f0;
      };
SOURCE(23560, 41)
   {
      W2 var←c97508;
      {
         word pd288;
         pd288 = (* (( (ptr) (* (( (ptr) gf←c102276)+389)/* var←c96292 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd288 ))))((word) (&var←c97508), pd288);
         };
      (* (( (ptr) &var←c102244)+9)/* boolPtr←v34992 */  ) = var←c97508.f1;
      (* (( (ptr) &var←c102244)+5)/* on←v17064 */  ) = var←c97508.f0;
      };
SOURCE(23603, 110)
   if (((* (( (ptr) (*  (ptr) ggData←v16992 ))+24) ) != 0)) {
SOURCE(23645, 68)
      {
         word pd289;
         pd289 = (* (( (ptr) (* (( (ptr) gf←c102276)+387)/* var←c95876 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd289 ))))((* (( (ptr) (*  (ptr) ggData←v16992 ))+24) ), (word) (( (bPt) &var←c102244)+24)/* var←c97444 */ , 0, pd289)
         ;
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0564 ) = (* (( (ptr) &var←c102244)+4)/* values←v17036 */  );
   (* (( (ptr) formal←c0564)+1) ) = (* (( (ptr) &var←c102244)+5)/* on←v17064 */  );
   return;
   }

static word AddAngle←P9504(state←v35068, name←v35096, value←v35124, clientData←v35152, formal←c102340)
   word state←v35068;
   word name←v35096;
   word value←v35124;
   word clientData←v35152;
   word formal←c102340;
   {
   register ptr gf←c102308 =  (ptr) &globalframe;
   word done←v35220;
   word real←v35416;
   formal←c102340 = (formal←c102340 - 24);
   /* AddAngle: */ 
SOURCE(23188, 272)
SOURCE(23188, 272)
   done←v35220 = 0;
SOURCE(23304, 37)
   real←v35416 = (*  (ptr) XR←Narrow(value←v35124, (* (( (ptr) gf←c102308)+25) )) );
SOURCE(23343, 62)
   {
      W2 var←c97540;
      {
         word pd290;
         pd290 = (* (( (ptr) (* (( (ptr) gf←c102308)+389)/* var←c96292 */  ))+18) );
         (void) ( *( (fPt) ((*  (ptr) pd290 ))))((word) &var←c97540, real←v35416, (* (( (ptr) formal←c102340)+4) ), (* (( (ptr) formal←c102340)+8)
             ), pd290);
         };
      (* (( (ptr) formal←c102340)+8) ) = var←c97540.f1;
      (* (( (ptr) formal←c102340)+4) ) = var←c97540.f0;
      };
SOURCE(23407, 53)
   {
      W2 var←c97572;
      {
         word pd291;
         pd291 = (* (( (ptr) (* (( (ptr) gf←c102308)+389)/* var←c96292 */  ))+22) );
         (void) ( *( (fPt) ((*  (ptr) pd291 ))))((word) &var←c97572, state←v35068, (* (( (ptr) formal←c102340)+5) ), (* (( (ptr) formal←c102340)+9)
             ), pd291);
         };
      (* (( (ptr) formal←c102340)+9) ) = var←c97572.f1;
      (* (( (ptr) formal←c102340)+5) ) = var←c97572.f0;
      };
SOURCE(23188, 272)
   return(done←v35220);
   }

static void GetAngleValue←P2760(formal←c0578, ggData←v17292)
   word formal←c0578;
   word ggData←v17292;
   {
   register ptr gf←c102372 =  (ptr) &globalframe;
   word degrees←v17336;
   word success←v17364;
   /* GetAngleValue: */ 
SOURCE(23719, 632)
SOURCE(23719, 632)
   success←v17364 = 1;
SOURCE(23813, 58)
   if (((* (( (ptr) (*  (ptr) ggData←v17292 ))+33) ) == 0)) {
SOURCE(23853, 18)
      degrees←v17336 = (*  (ptr) &fc136 );
      success←v17364 = 0;
      goto lab←L100025;
      };
SOURCE(23873, 76)
   {
      word pd292;
      pd292 = (* (( (ptr) (* (( (ptr) gf←c102372)+390)/* var←c96452 */  ))+5) );
      degrees←v17336 = (word) ( *( (fPt) ((*  (ptr) pd292 ))))((* (( (ptr) (*  (ptr) ggData←v17292 ))+33) ), 2139095039, pd292)
      ;
      };
SOURCE(23951, 162)
   {
      word x293;
      word x295;
      if (((
         x293 = degrees←v17336,  *(float*)&x293
         ) > (
         x295 = (*  (ptr) &fc294 ),  *(float*)&x295
         ))) {
SOURCE(23983, 90)
         {
            word pd296;
            pd296 = (* (( (ptr) (* (( (ptr) gf←c102372)+380)/* var←c94820 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd296 ))))((* (( (ptr) ggData←v17292)+3) ), 0, (* (( (ptr) gf←c102372)+32) ), (* (( (ptr) gf←c102372)+38)
                ), pd296);
            };
SOURCE(24075, 13)
         degrees←v17336 = (*  (ptr) &fc136 );
SOURCE(24090, 15)
         success←v17364 = 0;
SOURCE(24107, 6)
         goto lab←L100025;
         };
      };
SOURCE(24118, 37)
   {
      word pd297;
      pd297 = (* (( (ptr) (* (( (ptr) gf←c102372)+388)/* var←c95972 */  ))+4) );
      degrees←v17336 = (word) ( *( (fPt) ((*  (ptr) pd297 ))))(degrees←v17336, pd297);
      };
SOURCE(24157, 35)
   {
      word x298;
      word x299;
      if (((
         x298 = degrees←v17336,  *(float*)&x298
         ) == (
         x299 = (*  (ptr) &fc264 ),  *(float*)&x299
         ))) {
SOURCE(24179, 13)
         degrees←v17336 = (*  (ptr) &fc136 );
         };
      };
SOURCE(24194, 157)
   {
      word pd300;
      pd300 = (* (( (ptr) (* (( (ptr) gf←c102372)+391)/* var←c96484 */  ))+39) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd300 ))))(degrees←v17336, (* (( (ptr) ggData←v17292)+26) ), 116, pd300))) {
SOURCE(24267, 45)
         degrees←v17336 = (* (( (ptr) ggData←v17292)+26) );
         }
      else {
SOURCE(24312, 39)
         (* (( (ptr) ggData←v17292)+26) ) = degrees←v17336;
         };
      };
   /* removed tail goto */ 
   lab←L100025: ;
   (*  (ptr) formal←c0578 ) = degrees←v17336;
   (* (( (ptr) formal←c0578)+1) ) = success←v17364;
   return;
   }

static void SetAngleValue←P2820(ggData←v17424, degrees←v17452)
   word ggData←v17424;
   word degrees←v17452;
   {
   register ptr gf←c102404 =  (ptr) &globalframe;
   /* SetAngleValue: */ 
SOURCE(24357, 208)
SOURCE(24420, 39)
   (* (( (ptr) ggData←v17424)+26) ) = degrees←v17452;
SOURCE(24461, 104)
   if (((* (( (ptr) (*  (ptr) ggData←v17424 ))+33) ) != 0)) {
SOURCE(24501, 64)
      {
         word pd301;
         pd301 = (* (( (ptr) (* (( (ptr) gf←c102404)+390)/* var←c96452 */  ))+8) );
         (void) ( *( (fPt) ((*  (ptr) pd301 ))))((* (( (ptr) (*  (ptr) ggData←v17424 ))+33) ), degrees←v17452, (* (( (ptr) gf←c102404)+34)
             ), pd301);
         };
      };
   }

static word SelectAngle←P2880(ggData←v17512)
   word ggData←v17512;
   {
   register ptr gf←c102436 =  (ptr) &globalframe;
   word success←v17556;
   /* SelectAngle: */ 
SOURCE(24571, 187)
SOURCE(24571, 187)
   success←v17556 = 1;
SOURCE(24648, 110)
   if (((* (( (ptr) (*  (ptr) ggData←v17512 ))+33) ) == 0)) {
SOURCE(24686, 21)
      success←v17556 = 0;
      }
   else {
SOURCE(24707, 51)
      {
         word pd302;
         pd302 = (* (( (ptr) (* (( (ptr) gf←c102436)+392)/* var←c96516 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd302 ))))((* (( (ptr) (*  (ptr) ggData←v17512 ))+33) ), 0, pd302);
         };
      };
SOURCE(24571, 187)
   return(success←v17556);
   }

static word AddAngle←P2940(ggData←v17616, degrees←v17644, on←v17672)
   word ggData←v17616;
   word degrees←v17644;
   word on←v17672;
   {
   register ptr gf←c102468 =  (ptr) &globalframe;
   word alreadyThere←v17716;
   word oldFoundButton←v35472 = 0;
   /* AddAngle: */ 
SOURCE(24764, 434)
SOURCE(24916, 54)
   if (((* (( (ptr) (*  (ptr) ggData←v17616 ))+24) ) == 0)) {
SOURCE(24958, 12)
      return(1);
      };
SOURCE(24972, 189)
   {
      word var←c97604;
      {
         word var←c97636;
         word var←c97668;
         var←c97636 = XR←NewObject(8, (* (( (ptr) gf←c102468)+21) ));
         var←c97668 = var←c97636;
         {
            word var←c97732;
            word var←c97764;
            var←c97732 = XR←NewObject(8, (* (( (ptr) gf←c102468)+20) ));
            var←c97764 = var←c97732;
            (*  (ptr) var←c97764 ) = (* (( (ptr) gf←c102468)+39) );
            (* (( (ptr) var←c97764)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c102468)+20) ));
            var←c97764 = (* (( (ptr) var←c97764)+1) );
            {
               word var←c97828;
               var←c97828 = XR←NewObject(4, (* (( (ptr) gf←c102468)+25) ));
               (*  (ptr) var←c97828 ) = degrees←v17644;
               (*  (ptr) var←c97764 ) = var←c97828;
               };
            (*  (ptr) var←c97668 ) = var←c97732;
            };
         var←c97604 = var←c97636;
         };
      {
         W4 var←c97860;
         var←c97860.f0 = 0;
         var←c97860.f1 = degrees←v17644;
         var←c97860.f2 = var←c97604;
         var←c97860.f3 = on←v17672;
         {
            word pd303;
            pd303 = (* (( (ptr) (* (( (ptr) gf←c102468)+387)/* var←c95876 */  ))+19) );
            oldFoundButton←v35472 = (word) ( *( (fPt) ((*  (ptr) pd303 ))))(ggData←v17616, (* (( (ptr) (*  (ptr) ggData←v17616 ))+24)
                ), var←c97860, 1, pd303);
            };
         };
      };
SOURCE(25163, 35)
   alreadyThere←v17716 =  (unsigned) (oldFoundButton←v35472 != 0);
SOURCE(24764, 434)
   return(alreadyThere←v17716);
   }

static void AddAngleList←P3000(ggData←v17776, degrees←v17804, on←v17832)
   word ggData←v17776;
   word degrees←v17804;
   word on←v17832;
   {
   register ptr gf←c102500 =  (ptr) &globalframe;
   word buttonList←v35516 = 0;
   word oldList←v35544 = 0;
   word oldValues←v35572 = 0;
   word oldOn←v35600 = 0;
   /* AddAngleList: */ 
SOURCE(25204, 586)
SOURCE(25387, 48)
   if (((* (( (ptr) (*  (ptr) ggData←v17776 ))+24) ) == 0)) {
SOURCE(25429, 6)
      return;
      };
SOURCE(25437, 62)
   buttonList←v35516 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102500)+39) ), 0, degrees←v17804, on←v17832);
SOURCE(25501, 47)
   {
      W2 var←c97892;
      (void) GetAngleAlignments←P2700((word) &var←c97892, ggData←v17776);
      oldOn←v35600 = var←c97892.f1;
      oldValues←v35572 = var←c97892.f0;
      };
SOURCE(25550, 64)
   oldList←v35544 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102500)+39) ), 0, oldValues←v35572, oldOn←v35600);
SOURCE(25616, 63)
   buttonList←v35516 = (word) MergeScalarButtonLists←P2520(buttonList←v35516, oldList←v35544, 0);
SOURCE(25681, 109)
   {
      word pd304;
      pd304 = (* (( (ptr) (* (( (ptr) gf←c102500)+387)/* var←c95876 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd304 ))))((* (( (ptr) (*  (ptr) ggData←v17776 ))+24) ), ggData←v17776, (* (( (ptr) (* (( (ptr) gf←c102500)+393)
            /* var←c97220 */  ))+7) ), 0, buttonList←v35516, pd304);
      };
   }

static void NewAngleList←P3060(ggData←v18060, degrees←v18088, on←v18116)
   word ggData←v18060;
   word degrees←v18088;
   word on←v18116;
   {
   register ptr gf←c102532 =  (ptr) &globalframe;
   word buttonList←v35896 = 0;
   /* NewAngleList: */ 
SOURCE(25796, 351)
SOURCE(25924, 48)
   if (((* (( (ptr) (*  (ptr) ggData←v18060 ))+24) ) == 0)) {
SOURCE(25966, 6)
      return;
      };
SOURCE(25974, 62)
   buttonList←v35896 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102532)+39) ), 0, degrees←v18088, on←v18116);
SOURCE(26038, 109)
   {
      word pd305;
      pd305 = (* (( (ptr) (* (( (ptr) gf←c102532)+387)/* var←c95876 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd305 ))))((* (( (ptr) (*  (ptr) ggData←v18060 ))+24) ), ggData←v18060, (* (( (ptr) (* (( (ptr) gf←c102532)+393)
            /* var←c97220 */  ))+7) ), 0, buttonList←v35896, pd305);
      };
   }

static void GetRadiusAlignments←P3120(formal←c0620, ggData←v18344)
   word formal←c0620;
   word ggData←v18344;
   {
   W11 var←c102564;
   register ptr gf←c102596 =  (ptr) &globalframe;
   word names←v18388;
   /* declaration of values←v18416 skipped */ 
   /* declaration of on←v18444 skipped */ 
   /* declaration of var←c97924 skipped */ 
   /* declaration of nameListt←v36052 skipped */ 
   /* declaration of valuePtr←v36080 skipped */ 
   /* declaration of boolPtr←v36108 skipped */ 
   /* GetRadiusAlignments: */ 
SOURCE(26153, 781)
   {
      word tmpAddr306;
      tmpAddr306 = (word) (( (ptr) &var←c102564)+6)/* var←c97924 */ ;
      (*  (ptr) tmpAddr306 ) = ( ((word)  (fPt) AddRadius←P9564) );
      (* (( (ptr) tmpAddr306) + 1) ) = 1;
      };
SOURCE(26153, 781)
   names←v18388 = 0;
SOURCE(26153, 781)
   (* (( (ptr) &var←c102564)+4)/* values←v18416 */  ) = 0;
SOURCE(26153, 781)
   (* (( (ptr) &var←c102564)+5)/* on←v18444 */  ) = 0;
SOURCE(26599, 20)
   (* (( (ptr) &var←c102564)+8)/* nameListt←v36052 */  ) = 0;
SOURCE(26621, 10)
   (* (( (ptr) &var←c102564)+9)/* valuePtr←v36080 */  ) = 0;
SOURCE(26645, 9)
   (* (( (ptr) &var←c102564)+10)/* boolPtr←v36108 */  ) = 0;
SOURCE(26668, 36)
   {
      word pd307;
      pd307 = (* (( (ptr) (* (( (ptr) gf←c102596)+389)/* var←c96292 */  ))+9) );
      (* (( (ptr) &var←c102564)+8)/* nameListt←v36052 */  ) = (word) ( *( (fPt) ((*  (ptr) pd307 ))))(pd307);
      };
SOURCE(26706, 46)
   {
      W2 var←c97956;
      {
         word pd308;
         pd308 = (* (( (ptr) (* (( (ptr) gf←c102596)+389)/* var←c96292 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd308 ))))((word) (&var←c97956), pd308);
         };
      (* (( (ptr) &var←c102564)+9)/* valuePtr←v36080 */  ) = var←c97956.f1;
      (* (( (ptr) &var←c102564)+4)/* values←v18416 */  ) = var←c97956.f0;
      };
SOURCE(26754, 41)
   {
      W2 var←c97988;
      {
         word pd309;
         pd309 = (* (( (ptr) (* (( (ptr) gf←c102596)+389)/* var←c96292 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd309 ))))((word) (&var←c97988), pd309);
         };
      (* (( (ptr) &var←c102564)+10)/* boolPtr←v36108 */  ) = var←c97988.f1;
      (* (( (ptr) &var←c102564)+5)/* on←v18444 */  ) = var←c97988.f0;
      };
SOURCE(26797, 113)
   if (((* (( (ptr) (*  (ptr) ggData←v18344 ))+26) ) != 0)) {
SOURCE(26840, 70)
      {
         word pd310;
         pd310 = (* (( (ptr) (* (( (ptr) gf←c102596)+387)/* var←c95876 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd310 ))))((* (( (ptr) (*  (ptr) ggData←v18344 ))+26) ), (word) (( (bPt) &var←c102564)+24)/* var←c97924 */ , 0, pd310)
         ;
         };
      };
SOURCE(26912, 22)
   names←v18388 = (*  (ptr) (* (( (ptr) &var←c102564)+8)/* nameListt←v36052 */  ) );
   /* removed tail goto */ 
   (*  (ptr) formal←c0620 ) = names←v18388;
   (* (( (ptr) formal←c0620)+1) ) = (* (( (ptr) &var←c102564)+4)/* values←v18416 */  );
   (* (( (ptr) formal←c0620)+2) ) = (* (( (ptr) &var←c102564)+5)/* on←v18444 */  );
   return;
   }

static word AddRadius←P9564(state←v36184, name←v36212, value←v36240, clientData←v36268, formal←c102660)
   word state←v36184;
   word name←v36212;
   word value←v36240;
   word clientData←v36268;
   word formal←c102660;
   {
   register ptr gf←c102628 =  (ptr) &globalframe;
   word done←v36336;
   word real←v36532;
   formal←c102660 = (formal←c102660 - 24);
   /* AddRadius: */ 
SOURCE(26282, 312)
SOURCE(26282, 312)
   done←v36336 = 0;
SOURCE(26399, 37)
   real←v36532 = (*  (ptr) XR←Narrow(value←v36240, (* (( (ptr) gf←c102628)+25) )) );
SOURCE(26438, 37)
   {
      word pd311;
      pd311 = (* (( (ptr) (* (( (ptr) gf←c102628)+389)/* var←c96292 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd311 ))))(name←v36212, (* (( (ptr) formal←c102660)+8) ), pd311);
      };
SOURCE(26477, 62)
   {
      W2 var←c98020;
      {
         word pd312;
         pd312 = (* (( (ptr) (* (( (ptr) gf←c102628)+389)/* var←c96292 */  ))+18) );
         (void) ( *( (fPt) ((*  (ptr) pd312 ))))((word) &var←c98020, real←v36532, (* (( (ptr) formal←c102660)+4) ), (* (( (ptr) formal←c102660)+9)
             ), pd312);
         };
      (* (( (ptr) formal←c102660)+9) ) = var←c98020.f1;
      (* (( (ptr) formal←c102660)+4) ) = var←c98020.f0;
      };
SOURCE(26541, 53)
   {
      W2 var←c98052;
      {
         word pd313;
         pd313 = (* (( (ptr) (* (( (ptr) gf←c102628)+389)/* var←c96292 */  ))+22) );
         (void) ( *( (fPt) ((*  (ptr) pd313 ))))((word) &var←c98052, state←v36184, (* (( (ptr) formal←c102660)+5) ), (* (( (ptr) formal←c102660)+10)
             ), pd313);
         };
      (* (( (ptr) formal←c102660)+10) ) = var←c98052.f1;
      (* (( (ptr) formal←c102660)+5) ) = var←c98052.f0;
      };
SOURCE(26282, 312)
   return(done←v36336);
   }

static void GetRadiusValue←P3180(formal←c0634, ggData←v18756)
   word formal←c0634;
   word ggData←v18756;
   {
   register ptr gf←c102692 =  (ptr) &globalframe;
   word radius←v18800;
   word success←v18828;
   /* GetRadiusValue: */ 
SOURCE(26940, 564)
SOURCE(26940, 564)
   success←v18828 = 1;
SOURCE(27034, 59)
   if (((* (( (ptr) (*  (ptr) ggData←v18756 ))+34) ) == 0)) {
SOURCE(27075, 18)
      radius←v18800 = (*  (ptr) &fc136 );
      success←v18828 = 0;
      goto lab←L100027;
      };
SOURCE(27095, 84)
   {
      word pd314;
      pd314 = (* (( (ptr) (* (( (ptr) gf←c102692)+390)/* var←c96452 */  ))+7) );
      radius←v18800 = (word) ( *( (fPt) ((*  (ptr) pd314 ))))((* (( (ptr) (*  (ptr) ggData←v18756 ))+34) ), 2139095039, pd314);
      };
SOURCE(27181, 161)
   {
      word x315;
      word x316;
      if (((
         x315 = radius←v18800,  *(float*)&x315
         ) > (
         x316 = (*  (ptr) &fc294 ),  *(float*)&x316
         ))) {
SOURCE(27212, 91)
         {
            word pd317;
            pd317 = (* (( (ptr) (* (( (ptr) gf←c102692)+380)/* var←c94820 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd317 ))))((* (( (ptr) ggData←v18756)+3) ), 0, (* (( (ptr) gf←c102692)+32) ), (* (( (ptr) gf←c102692)+40)
                ), pd317);
            };
SOURCE(27305, 12)
         radius←v18800 = (*  (ptr) &fc136 );
SOURCE(27319, 15)
         success←v18828 = 0;
SOURCE(27336, 6)
         goto lab←L100027;
         };
      };
SOURCE(27347, 157)
   {
      word pd318;
      pd318 = (* (( (ptr) (* (( (ptr) gf←c102692)+391)/* var←c96484 */  ))+39) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd318 ))))(radius←v18800, (* (( (ptr) ggData←v18756)+27) ), 116, pd318))) {
SOURCE(27420, 45)
         radius←v18800 = (* (( (ptr) ggData←v18756)+27) );
         }
      else {
SOURCE(27465, 39)
         (* (( (ptr) ggData←v18756)+27) ) = radius←v18800;
         };
      };
   /* removed tail goto */ 
   lab←L100027: ;
   (*  (ptr) formal←c0634 ) = radius←v18800;
   (* (( (ptr) formal←c0634)+1) ) = success←v18828;
   return;
   }

static void SetRadiusValue←P3240(ggData←v18888, radius←v18916)
   word ggData←v18888;
   word radius←v18916;
   {
   register ptr gf←c102724 =  (ptr) &globalframe;
   /* SetRadiusValue: */ 
SOURCE(27510, 209)
SOURCE(27573, 39)
   (* (( (ptr) ggData←v18888)+27) ) = radius←v18916;
SOURCE(27614, 105)
   if (((* (( (ptr) (*  (ptr) ggData←v18888 ))+34) ) != 0)) {
SOURCE(27655, 64)
      {
         word pd319;
         pd319 = (* (( (ptr) (* (( (ptr) gf←c102724)+390)/* var←c96452 */  ))+8) );
         (void) ( *( (fPt) ((*  (ptr) pd319 ))))((* (( (ptr) (*  (ptr) ggData←v18888 ))+34) ), radius←v18916, (* (( (ptr) gf←c102724)+34)
             ), pd319);
         };
      };
   }

static word SelectRadius←P3300(ggData←v18976)
   word ggData←v18976;
   {
   register ptr gf←c102756 =  (ptr) &globalframe;
   word success←v19020;
   /* SelectRadius: */ 
SOURCE(27725, 190)
SOURCE(27725, 190)
   success←v19020 = 1;
SOURCE(27803, 112)
   if (((* (( (ptr) (*  (ptr) ggData←v18976 ))+34) ) == 0)) {
SOURCE(27842, 21)
      success←v19020 = 0;
      }
   else {
SOURCE(27863, 52)
      {
         word pd320;
         pd320 = (* (( (ptr) (* (( (ptr) gf←c102756)+392)/* var←c96516 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd320 ))))((* (( (ptr) (*  (ptr) ggData←v18976 ))+34) ), 0, pd320);
         };
      };
SOURCE(27725, 190)
   return(success←v19020);
   }

static word AddRadius←P3360(ggData←v19080, name←v19108, radius←v19136, on←v19164)
   word ggData←v19080;
   word name←v19108;
   word radius←v19136;
   word on←v19164;
   {
   register ptr gf←c102788 =  (ptr) &globalframe;
   word alreadyThere←v19208;
   word oldFoundButton←v36588 = 0;
   /* AddRadius: */ 
SOURCE(27921, 453)
SOURCE(28090, 55)
   if (((* (( (ptr) (*  (ptr) ggData←v19080 ))+26) ) == 0)) {
SOURCE(28133, 12)
      return(1);
      };
SOURCE(28147, 190)
   {
      word var←c98084;
      {
         word var←c98116;
         word var←c98148;
         var←c98116 = XR←NewObject(8, (* (( (ptr) gf←c102788)+21) ));
         var←c98148 = var←c98116;
         {
            word var←c98212;
            word var←c98244;
            var←c98212 = XR←NewObject(8, (* (( (ptr) gf←c102788)+20) ));
            var←c98244 = var←c98212;
            (*  (ptr) var←c98244 ) = (* (( (ptr) gf←c102788)+41) );
            (* (( (ptr) var←c98244)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c102788)+20) ));
            var←c98244 = (* (( (ptr) var←c98244)+1) );
            {
               word var←c98308;
               var←c98308 = XR←NewObject(4, (* (( (ptr) gf←c102788)+25) ));
               (*  (ptr) var←c98308 ) = radius←v19136;
               (*  (ptr) var←c98244 ) = var←c98308;
               };
            (*  (ptr) var←c98148 ) = var←c98212;
            };
         var←c98084 = var←c98116;
         };
      {
         W4 var←c98340;
         var←c98340.f0 = name←v19108;
         var←c98340.f1 = radius←v19136;
         var←c98340.f2 = var←c98084;
         var←c98340.f3 = on←v19164;
         {
            word pd321;
            pd321 = (* (( (ptr) (* (( (ptr) gf←c102788)+387)/* var←c95876 */  ))+19) );
            oldFoundButton←v36588 = (word) ( *( (fPt) ((*  (ptr) pd321 ))))(ggData←v19080, (* (( (ptr) (*  (ptr) ggData←v19080 ))+26)
                ), var←c98340, 0, pd321);
            };
         };
      };
SOURCE(28339, 35)
   alreadyThere←v19208 =  (unsigned) (oldFoundButton←v36588 != 0);
SOURCE(27921, 453)
   return(alreadyThere←v19208);
   }

static void AddRadiusList←P3420(ggData←v19268, names←v19296, radii←v19324, on←v19352)
   word ggData←v19268;
   word names←v19296;
   word radii←v19324;
   word on←v19352;
   {
   register ptr gf←c102820 =  (ptr) &globalframe;
   word buttonList←v36632 = 0;
   word oldList←v36660 = 0;
   word oldNames←v36688 = 0;
   word oldValues←v36716 = 0;
   word oldOn←v36744 = 0;
   /* AddRadiusList: */ 
SOURCE(28380, 659)
SOURCE(28617, 49)
   if (((* (( (ptr) (*  (ptr) ggData←v19268 ))+26) ) == 0)) {
SOURCE(28660, 6)
      return;
      };
SOURCE(28668, 63)
   buttonList←v36632 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102820)+41) ), names←v19296, radii←v19324, on←v19352);
SOURCE(28733, 58)
   {
      W3 var←c98372;
      (void) GetRadiusAlignments←P3120((word) &var←c98372, ggData←v19268);
      oldOn←v36744 = var←c98372.f2;
      oldValues←v36716 = var←c98372.f1;
      oldNames←v36688 = var←c98372.f0;
      };
SOURCE(28793, 70)
   oldList←v36660 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102820)+41) ), oldNames←v36688, oldValues←v36716, oldOn←v36744)
   ;
SOURCE(28865, 62)
   buttonList←v36632 = (word) MergeScalarButtonLists←P2520(buttonList←v36632, oldList←v36660, 1);
SOURCE(28929, 110)
   {
      word pd322;
      pd322 = (* (( (ptr) (* (( (ptr) gf←c102820)+387)/* var←c95876 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd322 ))))((* (( (ptr) (*  (ptr) ggData←v19268 ))+26) ), ggData←v19268, (* (( (ptr) (* (( (ptr) gf←c102820)+393)
            /* var←c97220 */  ))+7) ), 0, buttonList←v36632, pd322);
      };
   }

static void NewRadiusList←P3480(ggData←v19664, names←v19692, radii←v19720, on←v19748)
   word ggData←v19664;
   word names←v19692;
   word radii←v19720;
   word on←v19748;
   {
   register ptr gf←c102852 =  (ptr) &globalframe;
   word buttonList←v37124 = 0;
   /* NewRadiusList: */ 
SOURCE(29045, 379)
SOURCE(29198, 49)
   if (((* (( (ptr) (*  (ptr) ggData←v19664 ))+26) ) == 0)) {
SOURCE(29241, 6)
      return;
      };
SOURCE(29249, 63)
   buttonList←v37124 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c102852)+41) ), names←v19692, radii←v19720, on←v19748);
SOURCE(29314, 110)
   {
      word pd323;
      pd323 = (* (( (ptr) (* (( (ptr) gf←c102852)+387)/* var←c95876 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd323 ))))((* (( (ptr) (*  (ptr) ggData←v19664 ))+26) ), ggData←v19664, (* (( (ptr) (* (( (ptr) gf←c102852)+393)
            /* var←c97220 */  ))+7) ), 0, buttonList←v37124, pd323);
      };
   }

static word GetRadiusCircleCache←P3540(ggData←v20060)
   word ggData←v20060;
   {
   word cache←v20104;
   /* GetRadiusCircleCache: */ 
SOURCE(29430, 133)
SOURCE(29430, 133)
   cache←v20104 = 0;
SOURCE(29522, 41)
   cache←v20104 = (* (( (ptr) (*  (ptr) ggData←v20060 ))+28) );
SOURCE(29430, 133)
   return(cache←v20104);
   }

static void SetRadiusCircleCache←P3600(ggData←v20164, cache←v20192)
   word ggData←v20164;
   word cache←v20192;
   {
   /* SetRadiusCircleCache: */ 
SOURCE(29568, 124)
SOURCE(29651, 41)
   (* (( (ptr) (*  (ptr) ggData←v20164 ))+28) ) = cache←v20192;
   }

static void GetLineDistanceAlignments←P3660(formal←c0684, ggData←v20252)
   word formal←c0684;
   word ggData←v20252;
   {
   W11 var←c102884;
   register ptr gf←c102916 =  (ptr) &globalframe;
   word names←v20296;
   /* declaration of values←v20324 skipped */ 
   /* declaration of on←v20352 skipped */ 
   /* declaration of var←c98404 skipped */ 
   /* declaration of nameListt←v37280 skipped */ 
   /* declaration of valuePtr←v37308 skipped */ 
   /* declaration of boolPtr←v37336 skipped */ 
   /* GetLineDistanceAlignments: */ 
SOURCE(29698, 795)
   {
      word tmpAddr324;
      tmpAddr324 = (word) (( (ptr) &var←c102884)+6)/* var←c98404 */ ;
      (*  (ptr) tmpAddr324 ) = ( ((word)  (fPt) AddDistance←P9624) );
      (* (( (ptr) tmpAddr324) + 1) ) = 1;
      };
SOURCE(29698, 795)
   names←v20296 = 0;
SOURCE(29698, 795)
   (* (( (ptr) &var←c102884)+4)/* values←v20324 */  ) = 0;
SOURCE(29698, 795)
   (* (( (ptr) &var←c102884)+5)/* on←v20352 */  ) = 0;
SOURCE(30152, 20)
   (* (( (ptr) &var←c102884)+8)/* nameListt←v37280 */  ) = 0;
SOURCE(30174, 10)
   (* (( (ptr) &var←c102884)+9)/* valuePtr←v37308 */  ) = 0;
SOURCE(30198, 9)
   (* (( (ptr) &var←c102884)+10)/* boolPtr←v37336 */  ) = 0;
SOURCE(30221, 36)
   {
      word pd325;
      pd325 = (* (( (ptr) (* (( (ptr) gf←c102916)+389)/* var←c96292 */  ))+9) );
      (* (( (ptr) &var←c102884)+8)/* nameListt←v37280 */  ) = (word) ( *( (fPt) ((*  (ptr) pd325 ))))(pd325);
      };
SOURCE(30259, 46)
   {
      W2 var←c98436;
      {
         word pd326;
         pd326 = (* (( (ptr) (* (( (ptr) gf←c102916)+389)/* var←c96292 */  ))+17) );
         (void) ( *( (fPt) ((*  (ptr) pd326 ))))((word) (&var←c98436), pd326);
         };
      (* (( (ptr) &var←c102884)+9)/* valuePtr←v37308 */  ) = var←c98436.f1;
      (* (( (ptr) &var←c102884)+4)/* values←v20324 */  ) = var←c98436.f0;
      };
SOURCE(30307, 41)
   {
      W2 var←c98468;
      {
         word pd327;
         pd327 = (* (( (ptr) (* (( (ptr) gf←c102916)+389)/* var←c96292 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd327 ))))((word) (&var←c98468), pd327);
         };
      (* (( (ptr) &var←c102884)+10)/* boolPtr←v37336 */  ) = var←c98468.f1;
      (* (( (ptr) &var←c102884)+5)/* on←v20352 */  ) = var←c98468.f0;
      };
SOURCE(30350, 119)
   if (((* (( (ptr) (*  (ptr) ggData←v20252 ))+29) ) != 0)) {
SOURCE(30395, 74)
      {
         word pd328;
         pd328 = (* (( (ptr) (* (( (ptr) gf←c102916)+387)/* var←c95876 */  ))+10) );
         (void) ( *( (fPt) ((*  (ptr) pd328 ))))((* (( (ptr) (*  (ptr) ggData←v20252 ))+29) ), (word) (( (bPt) &var←c102884)+24)/* var←c98404 */ , 0, pd328)
         ;
         };
      };
SOURCE(30471, 22)
   names←v20296 = (*  (ptr) (* (( (ptr) &var←c102884)+8)/* nameListt←v37280 */  ) );
   /* removed tail goto */ 
   (*  (ptr) formal←c0684 ) = names←v20296;
   (* (( (ptr) formal←c0684)+1) ) = (* (( (ptr) &var←c102884)+4)/* values←v20324 */  );
   (* (( (ptr) formal←c0684)+2) ) = (* (( (ptr) &var←c102884)+5)/* on←v20352 */  );
   return;
   }

static word AddDistance←P9624(state←v37412, name←v37440, value←v37468, clientData←v37496, formal←c102980)
   word state←v37412;
   word name←v37440;
   word value←v37468;
   word clientData←v37496;
   word formal←c102980;
   {
   register ptr gf←c102948 =  (ptr) &globalframe;
   word done←v37564;
   word real←v37760;
   formal←c102980 = (formal←c102980 - 24);
   /* AddDistance: */ 
SOURCE(29833, 314)
SOURCE(29833, 314)
   done←v37564 = 0;
SOURCE(29952, 37)
   real←v37760 = (*  (ptr) XR←Narrow(value←v37468, (* (( (ptr) gf←c102948)+25) )) );
SOURCE(29991, 37)
   {
      word pd329;
      pd329 = (* (( (ptr) (* (( (ptr) gf←c102948)+389)/* var←c96292 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd329 ))))(name←v37440, (* (( (ptr) formal←c102980)+8) ), pd329);
      };
SOURCE(30030, 62)
   {
      W2 var←c98500;
      {
         word pd330;
         pd330 = (* (( (ptr) (* (( (ptr) gf←c102948)+389)/* var←c96292 */  ))+18) );
         (void) ( *( (fPt) ((*  (ptr) pd330 ))))((word) &var←c98500, real←v37760, (* (( (ptr) formal←c102980)+4) ), (* (( (ptr) formal←c102980)+9)
             ), pd330);
         };
      (* (( (ptr) formal←c102980)+9) ) = var←c98500.f1;
      (* (( (ptr) formal←c102980)+4) ) = var←c98500.f0;
      };
SOURCE(30094, 53)
   {
      W2 var←c98532;
      {
         word pd331;
         pd331 = (* (( (ptr) (* (( (ptr) gf←c102948)+389)/* var←c96292 */  ))+22) );
         (void) ( *( (fPt) ((*  (ptr) pd331 ))))((word) &var←c98532, state←v37412, (* (( (ptr) formal←c102980)+5) ), (* (( (ptr) formal←c102980)+10)
             ), pd331);
         };
      (* (( (ptr) formal←c102980)+10) ) = var←c98532.f1;
      (* (( (ptr) formal←c102980)+5) ) = var←c98532.f0;
      };
SOURCE(29833, 314)
   return(done←v37564);
   }

static void GetLineDistanceValue←P3720(formal←c0698, ggData←v20664)
   word formal←c0698;
   word ggData←v20664;
   {
   register ptr gf←c103012 =  (ptr) &globalframe;
   word distance←v20708;
   word success←v20736;
   /* GetLineDistanceValue: */ 
SOURCE(30499, 593)
SOURCE(30499, 593)
   success←v20736 = 1;
SOURCE(30601, 61)
   if (((* (( (ptr) (*  (ptr) ggData←v20664 ))+35) ) == 0)) {
SOURCE(30644, 18)
      distance←v20708 = (*  (ptr) &fc136 );
      success←v20736 = 0;
      goto lab←L100029;
      };
SOURCE(30664, 80)
   {
      word pd332;
      pd332 = (* (( (ptr) (* (( (ptr) gf←c103012)+390)/* var←c96452 */  ))+5) );
      distance←v20708 = (word) ( *( (fPt) ((*  (ptr) pd332 ))))((* (( (ptr) (*  (ptr) ggData←v20664 ))+35) ), 2139095039, pd332)
      ;
      };
SOURCE(30746, 172)
   {
      word x333;
      word x334;
      if (((
         x333 = distance←v20708,  *(float*)&x333
         ) > (
         x334 = (*  (ptr) &fc294 ),  *(float*)&x334
         ))) {
SOURCE(30779, 98)
         {
            word pd335;
            pd335 = (* (( (ptr) (* (( (ptr) gf←c103012)+380)/* var←c94820 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd335 ))))((* (( (ptr) ggData←v20664)+3) ), 0, (* (( (ptr) gf←c103012)+32) ), (* (( (ptr) gf←c103012)+42)
                ), pd335);
            };
SOURCE(30879, 14)
         distance←v20708 = (*  (ptr) &fc136 );
SOURCE(30895, 15)
         success←v20736 = 0;
SOURCE(30912, 6)
         goto lab←L100029;
         };
      };
SOURCE(30923, 169)
   {
      word pd336;
      pd336 = (* (( (ptr) (* (( (ptr) gf←c103012)+391)/* var←c96484 */  ))+39) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd336 ))))(distance←v20708, (* (( (ptr) ggData←v20664)+28) ), 116, pd336))) {
SOURCE(31000, 49)
         distance←v20708 = (* (( (ptr) ggData←v20664)+28) );
         }
      else {
SOURCE(31049, 43)
         (* (( (ptr) ggData←v20664)+28) ) = distance←v20708;
         };
      };
   /* removed tail goto */ 
   lab←L100029: ;
   (*  (ptr) formal←c0698 ) = distance←v20708;
   (* (( (ptr) formal←c0698)+1) ) = success←v20736;
   return;
   }

static void SetLineDistanceValue←P3780(ggData←v20796, distance←v20824)
   word ggData←v20796;
   word distance←v20824;
   {
   register ptr gf←c103044 =  (ptr) &globalframe;
   /* SetLineDistanceValue: */ 
SOURCE(31098, 227)
SOURCE(31169, 43)
   (* (( (ptr) ggData←v20796)+28) ) = distance←v20824;
SOURCE(31214, 111)
   if (((* (( (ptr) (*  (ptr) ggData←v20796 ))+35) ) != 0)) {
SOURCE(31257, 68)
      {
         word pd337;
         pd337 = (* (( (ptr) (* (( (ptr) gf←c103044)+390)/* var←c96452 */  ))+8) );
         (void) ( *( (fPt) ((*  (ptr) pd337 ))))((* (( (ptr) (*  (ptr) ggData←v20796 ))+35) ), distance←v20824, (* (( (ptr) gf←c103044)+34)
             ), pd337);
         };
      };
   }

static word SelectLineDistance←P3840(ggData←v20884)
   word ggData←v20884;
   {
   register ptr gf←c103076 =  (ptr) &globalframe;
   word success←v20928;
   /* SelectLineDistance: */ 
SOURCE(31331, 200)
SOURCE(31331, 200)
   success←v20928 = 1;
SOURCE(31415, 116)
   if (((* (( (ptr) (*  (ptr) ggData←v20884 ))+35) ) == 0)) {
SOURCE(31456, 21)
      success←v20928 = 0;
      }
   else {
SOURCE(31477, 54)
      {
         word pd338;
         pd338 = (* (( (ptr) (* (( (ptr) gf←c103076)+392)/* var←c96516 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd338 ))))((* (( (ptr) (*  (ptr) ggData←v20884 ))+35) ), 0, pd338);
         };
      };
SOURCE(31331, 200)
   return(success←v20928);
   }

static word AddLineDistance←P3900(ggData←v20988, name←v21016, distance←v21044, on←v21072)
   word ggData←v20988;
   word name←v21016;
   word distance←v21044;
   word on←v21072;
   {
   register ptr gf←c103108 =  (ptr) &globalframe;
   word alreadyThere←v21116;
   word oldFoundButton←v37816 = 0;
   /* AddLineDistance: */ 
SOURCE(31537, 471)
SOURCE(31714, 57)
   if (((* (( (ptr) (*  (ptr) ggData←v20988 ))+29) ) == 0)) {
SOURCE(31759, 12)
      return(1);
      };
SOURCE(31773, 198)
   {
      word var←c98564;
      {
         word var←c98596;
         word var←c98628;
         var←c98596 = XR←NewObject(8, (* (( (ptr) gf←c103108)+21) ));
         var←c98628 = var←c98596;
         {
            word var←c98692;
            word var←c98724;
            var←c98692 = XR←NewObject(8, (* (( (ptr) gf←c103108)+20) ));
            var←c98724 = var←c98692;
            (*  (ptr) var←c98724 ) = (* (( (ptr) gf←c103108)+43) );
            (* (( (ptr) var←c98724)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c103108)+20) ));
            var←c98724 = (* (( (ptr) var←c98724)+1) );
            {
               word var←c98788;
               var←c98788 = XR←NewObject(4, (* (( (ptr) gf←c103108)+25) ));
               (*  (ptr) var←c98788 ) = distance←v21044;
               (*  (ptr) var←c98724 ) = var←c98788;
               };
            (*  (ptr) var←c98628 ) = var←c98692;
            };
         var←c98564 = var←c98596;
         };
      {
         W4 var←c98820;
         var←c98820.f0 = name←v21016;
         var←c98820.f1 = distance←v21044;
         var←c98820.f2 = var←c98564;
         var←c98820.f3 = on←v21072;
         {
            word pd339;
            pd339 = (* (( (ptr) (* (( (ptr) gf←c103108)+387)/* var←c95876 */  ))+19) );
            oldFoundButton←v37816 = (word) ( *( (fPt) ((*  (ptr) pd339 ))))(ggData←v20988, (* (( (ptr) (*  (ptr) ggData←v20988 ))+29)
                ), var←c98820, 0, pd339);
            };
         };
      };
SOURCE(31973, 35)
   alreadyThere←v21116 =  (unsigned) (oldFoundButton←v37816 != 0);
SOURCE(31537, 471)
   return(alreadyThere←v21116);
   }

static void AddLineDistanceList←P3960(ggData←v21176, names←v21204, distances←v21232, on←v21260)
   word ggData←v21176;
   word names←v21204;
   word distances←v21232;
   word on←v21260;
   {
   register ptr gf←c103140 =  (ptr) &globalframe;
   word buttonList←v37860 = 0;
   word oldList←v37888 = 0;
   word oldNames←v37916 = 0;
   word oldValues←v37944 = 0;
   word oldOn←v37972 = 0;
   /* AddLineDistanceList: */ 
SOURCE(32014, 687)
SOURCE(32261, 51)
   if (((* (( (ptr) (*  (ptr) ggData←v21176 ))+29) ) == 0)) {
SOURCE(32306, 6)
      return;
      };
SOURCE(32314, 69)
   buttonList←v37860 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c103140)+43) ), names←v21204, distances←v21232, on←v21260)
   ;
SOURCE(32385, 64)
   {
      W3 var←c98852;
      (void) GetLineDistanceAlignments←P3660((word) &var←c98852, ggData←v21176);
      oldOn←v37972 = var←c98852.f2;
      oldValues←v37944 = var←c98852.f1;
      oldNames←v37916 = var←c98852.f0;
      };
SOURCE(32451, 72)
   oldList←v37888 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c103140)+43) ), oldNames←v37916, oldValues←v37944, oldOn←v37972)
   ;
SOURCE(32525, 62)
   buttonList←v37860 = (word) MergeScalarButtonLists←P2520(buttonList←v37860, oldList←v37888, 1);
SOURCE(32589, 112)
   {
      word pd340;
      pd340 = (* (( (ptr) (* (( (ptr) gf←c103140)+387)/* var←c95876 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd340 ))))((* (( (ptr) (*  (ptr) ggData←v21176 ))+29) ), ggData←v21176, (* (( (ptr) (* (( (ptr) gf←c103140)+393)
            /* var←c97220 */  ))+7) ), 0, buttonList←v37860, pd340);
      };
   }

static void NewLineDistanceList←P4020(ggData←v21572, names←v21600, distances←v21628, on←v21656)
   word ggData←v21572;
   word names←v21600;
   word distances←v21628;
   word on←v21656;
   {
   register ptr gf←c103172 =  (ptr) &globalframe;
   word buttonList←v38352 = 0;
   /* NewLineDistanceList: */ 
SOURCE(32707, 399)
SOURCE(32870, 51)
   if (((* (( (ptr) (*  (ptr) ggData←v21572 ))+29) ) == 0)) {
SOURCE(32915, 6)
      return;
      };
SOURCE(32923, 69)
   buttonList←v38352 = (word) ButtonsFromValues←P2340((* (( (ptr) gf←c103172)+43) ), names←v21600, distances←v21628, on←v21656)
   ;
SOURCE(32994, 112)
   {
      word pd341;
      pd341 = (* (( (ptr) (* (( (ptr) gf←c103172)+387)/* var←c95876 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd341 ))))((* (( (ptr) (*  (ptr) ggData←v21572 ))+29) ), ggData←v21572, (* (( (ptr) (* (( (ptr) gf←c103172)+393)
            /* var←c97220 */  ))+7) ), 0, buttonList←v38352, pd341);
      };
   }

static word ScalarToRope←P4080(scalar←v21968)
   word scalar←v21968;
   {
   register ptr gf←c103204 =  (ptr) &globalframe;
   word rope←v22012;
   /* ScalarToRope: */ 
SOURCE(33112, 460)
SOURCE(33112, 460)
   rope←v22012 = 0;
   {
      word var←c98980;
      word var←c99076;
SOURCE(33194, 41)
      {
         W2 var←c98884;
         var←c98884.f0 = 8;
         var←c98884.f1 = scalar←v21968;
         {
            word pd342;
            pd342 = (* (( (ptr) (* (( (ptr) gf←c103204)+394)/* var←c98916 */  ))+63) );
            rope←v22012 = (word) ( *( (fPt) ((*  (ptr) pd342 ))))((* (( (ptr) gf←c103204)+44) ), var←c98884, pd342);
            };
         };
SOURCE(33237, 34)
      {
         word pd343;
         pd343 = (* (( (ptr) (* (( (ptr) gf←c103204)+395)/* var←c98948 */  ))+12) );
         rope←v22012 = (word) ( *( (fPt) ((*  (ptr) pd343 ))))(rope←v22012, 32, pd343);
         };
SOURCE(33301, 130)
      lab←L100032: ;
      {
         word pd345;
         {
            word pd344;
            pd344 = (* (( (ptr) (* (( (ptr) gf←c103204)+396)/* var←c99012 */  ))+14) );
            var←c98980 = ((word) ( *( (fPt) ((*  (ptr) pd344 ))))(rope←v22012, pd344) - 1);
            };
         pd345 = (* (( (ptr) (* (( (ptr) gf←c103204)+396)/* var←c99012 */  ))+9) );
         if (((word) ( *( (fPt) ((*  (ptr) pd345 ))))(rope←v22012, var←c98980, pd345) == 48)) {
            }
         else {
            goto lab←L100030;
            };
         };
SOURCE(33365, 66)
      {
         word var←c99044;
         {
            word pd346;
            pd346 = (* (( (ptr) (* (( (ptr) gf←c103204)+396)/* var←c99012 */  ))+14) );
            var←c99044 = ((word) ( *( (fPt) ((*  (ptr) pd346 ))))(rope←v22012, pd346) - 1);
            };
         {
            word pd347;
            pd347 = (* (( (ptr) (* (( (ptr) gf←c103204)+396)/* var←c99012 */  ))+17) );
            rope←v22012 = (word) ( *( (fPt) ((*  (ptr) pd347 ))))(rope←v22012, 0, var←c99044, pd347);
            };
         };
      goto lab←L100032;
      lab←L100030: ;
SOURCE(33442, 130)
      {
         word pd349;
         {
            word pd348;
            pd348 = (* (( (ptr) (* (( (ptr) gf←c103204)+396)/* var←c99012 */  ))+14) );
            var←c99076 = ((word) ( *( (fPt) ((*  (ptr) pd348 ))))(rope←v22012, pd348) - 1);
            };
         pd349 = (* (( (ptr) (* (( (ptr) gf←c103204)+396)/* var←c99012 */  ))+9) );
         if (((word) ( *( (fPt) ((*  (ptr) pd349 ))))(rope←v22012, var←c99076, pd349) == 46)) {
SOURCE(33506, 66)
            {
               word var←c99108;
               {
                  word pd350;
                  pd350 = (* (( (ptr) (* (( (ptr) gf←c103204)+396)/* var←c99012 */  ))+14) );
                  var←c99108 = ((word) ( *( (fPt) ((*  (ptr) pd350 ))))(rope←v22012, pd350) - 1);
                  };
               {
                  word pd351;
                  pd351 = (* (( (ptr) (* (( (ptr) gf←c103204)+396)/* var←c99012 */  ))+17) );
                  rope←v22012 = (word) ( *( (fPt) ((*  (ptr) pd351 ))))(rope←v22012, 0, var←c99108, pd351);
                  };
               };
            };
         };
      };
SOURCE(33112, 460)
   return(rope←v22012);
   }

static word GetMidpoints←P4140(ggData←v22072)
   word ggData←v22072;
   {
   register ptr gf←c103236 =  (ptr) &globalframe;
   word var←c22116;
   /* GetMidpoints: */ 
SOURCE(33579, 367)
SOURCE(33641, 305)
   if (((*  (ptr) ggData←v22072 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v22072 ))+37) ) == 0)) {
SOURCE(33709, 18)
      return(1);
      }
   else {
SOURCE(33727, 221)
      {
         word val←v38524;
         word trueOrFalse←v38552 = 0;
SOURCE(33729, 77)
         {
            word pd352;
            pd352 = (* (( (ptr) (* (( (ptr) gf←c103236)+397)/* var←c99140 */  ))+34) );
            val←v38524 = (word) ( *( (fPt) ((*  (ptr) pd352 ))))((* (( (ptr) gf←c103236)+46) ), (* (( (ptr) (*  (ptr) ggData←v22072 ))+37)
                ), (* (( (ptr) gf←c103236)+45) ), pd352);
            };
SOURCE(33831, 30)
         if ((val←v38524 == 0)) {
SOURCE(33849, 12)
            return(1);
            };
SOURCE(33899, 25)
         trueOrFalse←v38552 = XR←Narrow(val←v38524, (* (( (ptr) gf←c103236)+18) ));
SOURCE(33926, 20)
         return((*  (ptr) trueOrFalse←v38552 ));
         };
      };
   }

static void SetMidpoints←P4200(ggData←v22176, midpointsOn←v22204)
   word ggData←v22176;
   word midpointsOn←v22204;
   {
   register ptr gf←c103268 =  (ptr) &globalframe;
   /* SetMidpoints: */ 
SOURCE(33955, 245)
SOURCE(34021, 74)
   if (((*  (ptr) ggData←v22176 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v22176 ))+37) ) == 0)) {
SOURCE(34089, 6)
      return;
      };
SOURCE(34097, 103)
   {
      word pd353;
      pd353 = (* (( (ptr) (* (( (ptr) gf←c103268)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd353 ))))((* (( (ptr) gf←c103268)+46) ),  ( (0 != midpointsOn←v22204) ? (* (( (ptr) gf←c103268)+5)
         /* true←v8264 */  ) : (* (( (ptr) gf←c103268)+6)/* false←v8292 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v22176 ))+37) ), (* (
            ( (ptr) gf←c103268)+45) ), pd353);
      };
   }

static word GetWorkingDirectory←P4260(ggData←v22264)
   word ggData←v22264;
   {
   word var←c22308;
   /* GetWorkingDirectory: */ 
SOURCE(34206, 95)
SOURCE(34275, 26)
   return((* (( (ptr) ggData←v22264)+6) ));
   }

static void SetWorkingDirectory←P4320(ggData←v22368, directory←v22396)
   word ggData←v22368;
   word directory←v22396;
   {
   /* SetWorkingDirectory: */ 
SOURCE(34306, 101)
SOURCE(34377, 30)
   (* (( (ptr) ggData←v22368)+6) ) = directory←v22396;
   }

static word GetShowAlignments←P4380(ggData←v22456)
   word ggData←v22456;
   {
   register ptr gf←c103300 =  (ptr) &globalframe;
   word var←c22500;
   /* GetShowAlignments: */ 
SOURCE(34413, 377)
SOURCE(34480, 310)
   if (((*  (ptr) ggData←v22456 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v22456 ))+37) ) == 0)) {
SOURCE(34548, 18)
      return(1);
      }
   else {
SOURCE(34566, 226)
      {
         word val←v38620;
         word trueOrFalse←v38648 = 0;
SOURCE(34568, 82)
         {
            word pd354;
            pd354 = (* (( (ptr) (* (( (ptr) gf←c103300)+397)/* var←c99140 */  ))+34) );
            val←v38620 = (word) ( *( (fPt) ((*  (ptr) pd354 ))))((* (( (ptr) gf←c103300)+47) ), (* (( (ptr) (*  (ptr) ggData←v22456 ))+37)
                ), (* (( (ptr) gf←c103300)+45) ), pd354);
            };
SOURCE(34675, 30)
         if ((val←v38620 == 0)) {
SOURCE(34693, 12)
            return(1);
            };
SOURCE(34743, 25)
         trueOrFalse←v38648 = XR←Narrow(val←v38620, (* (( (ptr) gf←c103300)+18) ));
SOURCE(34770, 20)
         return((*  (ptr) trueOrFalse←v38648 ));
         };
      };
   }

static void SetShowAlignments←P4440(ggData←v22560, showAlignments←v22588)
   word ggData←v22560;
   word showAlignments←v22588;
   {
   register ptr gf←c103332 =  (ptr) &globalframe;
   /* SetShowAlignments: */ 
SOURCE(34799, 312)
SOURCE(34873, 74)
   if (((*  (ptr) ggData←v22560 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v22560 ))+37) ) == 0)) {
SOURCE(34941, 6)
      return;
      };
SOURCE(34949, 111)
   {
      word pd355;
      pd355 = (* (( (ptr) (* (( (ptr) gf←c103332)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd355 ))))((* (( (ptr) gf←c103332)+47) ),  ( (0 != showAlignments←v22588) ? (* (( (ptr) gf←c103332)+5)
         /* true←v8264 */  ) : (* (( (ptr) gf←c103332)+6)/* false←v8292 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v22560 ))+37) ), (* (
            ( (ptr) gf←c103332)+45) ), pd355);
      };
SOURCE(35062, 49)
   (* (( (ptr) (* (( (ptr) ggData←v22560)+15) ))+3) ) =  (unsigned) (0 == showAlignments←v22588);
   }

static word GetUseBackingMap←P4500(ggData←v22672)
   word ggData←v22672;
   {
   register ptr gf←c103364 =  (ptr) &globalframe;
   word var←c22716;
   /* GetUseBackingMap: */ 
SOURCE(35190, 404)
SOURCE(35256, 338)
   if (((*  (ptr) ggData←v22672 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v22672 ))+37) ) == 0)) {
SOURCE(35324, 47)
      return((* (( (ptr) (* (( (ptr) ggData←v22672)+1) ))+1) ));
      }
   else {
SOURCE(35371, 225)
      {
         word val←v38716;
         word trueOrFalse←v38744 = 0;
SOURCE(35373, 81)
         {
            word pd356;
            pd356 = (* (( (ptr) (* (( (ptr) gf←c103364)+397)/* var←c99140 */  ))+34) );
            val←v38716 = (word) ( *( (fPt) ((*  (ptr) pd356 ))))((* (( (ptr) gf←c103364)+48) ), (* (( (ptr) (*  (ptr) ggData←v22672 ))+37)
                ), (* (( (ptr) gf←c103364)+45) ), pd356);
            };
SOURCE(35479, 30)
         if ((val←v38716 == 0)) {
SOURCE(35497, 12)
            return(1);
            };
SOURCE(35547, 25)
         trueOrFalse←v38744 = XR←Narrow(val←v38716, (* (( (ptr) gf←c103364)+18) ));
SOURCE(35574, 20)
         return((*  (ptr) trueOrFalse←v38744 ));
         };
      };
   }

static void SetUseBackingMap←P4560(ggData←v22776, useBackingMap←v22804)
   word ggData←v22776;
   word useBackingMap←v22804;
   {
   register ptr gf←c103396 =  (ptr) &globalframe;
   /* SetUseBackingMap: */ 
SOURCE(35603, 417)
SOURCE(35675, 127)
   if (((*  (ptr) ggData←v22776 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v22776 ))+37) ) == 0)) {
SOURCE(35745, 49)
      (* (( (ptr) (* (( (ptr) ggData←v22776)+1) ))+1) ) = useBackingMap←v22804;
SOURCE(35796, 6)
      return;
      };
SOURCE(35807, 109)
   {
      word pd357;
      pd357 = (* (( (ptr) (* (( (ptr) gf←c103396)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd357 ))))((* (( (ptr) gf←c103396)+48) ),  ( (0 != useBackingMap←v22804) ? (* (( (ptr) gf←c103396)+5)
         /* true←v8264 */  ) : (* (( (ptr) gf←c103396)+6)/* false←v8292 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v22776 ))+37) ), (* (
            ( (ptr) gf←c103396)+45) ), pd357);
      };
SOURCE(35918, 102)
   if ((0 != useBackingMap←v22804)) {
SOURCE(35942, 38)
      {
         word pd358;
         pd358 = (* (( (ptr) (* (( (ptr) gf←c103396)+398)/* var←c99172 */  ))+23) );
         (void) ( *( (fPt) ((*  (ptr) pd358 ))))(ggData←v22776, pd358);
         };
SOURCE(35982, 38)
      {
         word pd359;
         pd359 = (* (( (ptr) (* (( (ptr) gf←c103396)+398)/* var←c99172 */  ))+26) );
         (void) ( *( (fPt) ((*  (ptr) pd359 ))))(ggData←v22776, pd359);
         };
      };
   }

static word GetDoubleBuffer←P4620(ggData←v22864)
   word ggData←v22864;
   {
   register ptr gf←c103428 =  (ptr) &globalframe;
   word var←c22908;
   /* GetDoubleBuffer: */ 
SOURCE(36029, 401)
SOURCE(36094, 336)
   if (((*  (ptr) ggData←v22864 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v22864 ))+37) ) == 0)) {
SOURCE(36162, 46)
      return((*  (ptr) (* (( (ptr) ggData←v22864)+1) ) ));
      }
   else {
SOURCE(36208, 224)
      {
         word val←v38812;
         word trueOrFalse←v38840 = 0;
SOURCE(36210, 80)
         {
            word pd360;
            pd360 = (* (( (ptr) (* (( (ptr) gf←c103428)+397)/* var←c99140 */  ))+34) );
            val←v38812 = (word) ( *( (fPt) ((*  (ptr) pd360 ))))((* (( (ptr) gf←c103428)+49) ), (* (( (ptr) (*  (ptr) ggData←v22864 ))+37)
                ), (* (( (ptr) gf←c103428)+45) ), pd360);
            };
SOURCE(36315, 30)
         if ((val←v38812 == 0)) {
SOURCE(36333, 12)
            return(1);
            };
SOURCE(36383, 25)
         trueOrFalse←v38840 = XR←Narrow(val←v38812, (* (( (ptr) gf←c103428)+18) ));
SOURCE(36410, 20)
         return((*  (ptr) trueOrFalse←v38840 ));
         };
      };
   }

static void SetDoubleBuffer←P4680(ggData←v22968, doubleBuffer←v22996)
   word ggData←v22968;
   word doubleBuffer←v22996;
   {
   register ptr gf←c103460 =  (ptr) &globalframe;
   /* SetDoubleBuffer: */ 
SOURCE(36439, 410)
SOURCE(36509, 125)
   if (((*  (ptr) ggData←v22968 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v22968 ))+37) ) == 0)) {
SOURCE(36579, 47)
      (*  (ptr) (* (( (ptr) ggData←v22968)+1) ) ) = doubleBuffer←v22996;
SOURCE(36628, 6)
      return;
      };
SOURCE(36639, 107)
   {
      word pd361;
      pd361 = (* (( (ptr) (* (( (ptr) gf←c103460)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd361 ))))((* (( (ptr) gf←c103460)+49) ),  ( (0 != doubleBuffer←v22996) ? (* (( (ptr) gf←c103460)+5)
         /* true←v8264 */  ) : (* (( (ptr) gf←c103460)+6)/* false←v8292 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v22968 ))+37) ), (* (
            ( (ptr) gf←c103460)+45) ), pd361);
      };
SOURCE(36748, 101)
   if ((0 != doubleBuffer←v22996)) {
SOURCE(36771, 38)
      {
         word pd362;
         pd362 = (* (( (ptr) (* (( (ptr) gf←c103460)+398)/* var←c99172 */  ))+23) );
         (void) ( *( (fPt) ((*  (ptr) pd362 ))))(ggData←v22968, pd362);
         };
SOURCE(36811, 38)
      {
         word pd363;
         pd363 = (* (( (ptr) (* (( (ptr) gf←c103460)+398)/* var←c99172 */  ))+26) );
         (void) ( *( (fPt) ((*  (ptr) pd363 ))))(ggData←v22968, pd363);
         };
      };
   }

static word GetActive←P4740(ggData←v23056)
   word ggData←v23056;
   {
   register ptr gf←c103492 =  (ptr) &globalframe;
   word var←c23100;
   /* GetActive: */ 
SOURCE(36858, 368)
SOURCE(36917, 42)
   if (((*  (ptr) ggData←v23056 ) == 0)) {
SOURCE(36947, 12)
      return(1);
      };
SOURCE(36961, 265)
   if (((* (( (ptr) (*  (ptr) ggData←v23056 ))+37) ) == 0)) {
SOURCE(37004, 36)
      return((* (( (ptr) (*  (ptr) ggData←v23056 ))+9) ));
      }
   else {
SOURCE(37040, 191)
      {
         word val←v38908;
         word trueOrFalse←v38936 = 0;
SOURCE(37042, 74)
         {
            word pd364;
            pd364 = (* (( (ptr) (* (( (ptr) gf←c103492)+397)/* var←c99140 */  ))+34) );
            val←v38908 = (word) ( *( (fPt) ((*  (ptr) pd364 ))))((* (( (ptr) gf←c103492)+50) ), (* (( (ptr) (*  (ptr) ggData←v23056 ))+37)
                ), (* (( (ptr) gf←c103492)+45) ), pd364);
            };
SOURCE(37141, 85)
         if ((val←v38908 == 0)) {
SOURCE(37159, 18)
            return(1);
            }
         else {
SOURCE(37179, 25)
            trueOrFalse←v38936 = XR←Narrow(val←v38908, (* (( (ptr) gf←c103492)+18) ));
SOURCE(37206, 20)
            return((*  (ptr) trueOrFalse←v38936 ));
            };
         };
      };
   }

static void SetActive←P4800(ggData←v23160, activeOn←v23188)
   word ggData←v23160;
   word activeOn←v23188;
   {
   register ptr gf←c103524 =  (ptr) &globalframe;
   /* SetActive: */ 
SOURCE(37238, 277)
SOURCE(37298, 36)
   if (((*  (ptr) ggData←v23160 ) == 0)) {
SOURCE(37328, 6)
      return;
      };
SOURCE(37336, 179)
   if (((* (( (ptr) (*  (ptr) ggData←v23160 ))+37) ) == 0)) {
SOURCE(37379, 39)
      (* (( (ptr) (*  (ptr) ggData←v23160 ))+9) ) = activeOn←v23188;
      }
   else {
SOURCE(37418, 97)
      {
         word pd365;
         pd365 = (* (( (ptr) (* (( (ptr) gf←c103524)+397)/* var←c99140 */  ))+35) );
         (void) ( *( (fPt) ((*  (ptr) pd365 ))))((* (( (ptr) gf←c103524)+50) ),  ( (0 != activeOn←v23188) ? (* (( (ptr) gf←c103524)+5)
            /* true←v8264 */  ) : (* (( (ptr) gf←c103524)+6)/* false←v8292 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v23160 ))+37) ), (* (
               ( (ptr) gf←c103524)+45) ), pd365);
         };
      };
   }

static word GetReadOnly←P4860(ggData←v23248)
   word ggData←v23248;
   {
   register ptr gf←c103556 =  (ptr) &globalframe;
   word var←c23292;
   /* GetReadOnly: */ 
SOURCE(37521, 381)
SOURCE(37582, 320)
   if (((*  (ptr) ggData←v23248 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v23248 ))+37) ) == 0)) {
SOURCE(37650, 42)
      return((* (( (ptr) (* (( (ptr) ggData←v23248)+1) ))+6) ));
      }
   else {
SOURCE(37692, 212)
      {
         word trueOrFalse←v39004 = 0;
         word val←v39032;
SOURCE(37717, 76)
         {
            word pd366;
            pd366 = (* (( (ptr) (* (( (ptr) gf←c103556)+397)/* var←c99140 */  ))+34) );
            val←v39032 = (word) ( *( (fPt) ((*  (ptr) pd366 ))))((* (( (ptr) gf←c103556)+51) ), (* (( (ptr) (*  (ptr) ggData←v23248 ))+37)
                ), (* (( (ptr) gf←c103556)+45) ), pd366);
            };
SOURCE(37795, 54)
         if ((val←v39032 == 0)) {
SOURCE(37813, 36)
            return((* (( (ptr) (* (( (ptr) ggData←v23248)+1) ))+6) ));
            };
SOURCE(37851, 25)
         trueOrFalse←v39004 = XR←Narrow(val←v39032, (* (( (ptr) gf←c103556)+18) ));
SOURCE(37878, 24)
         return( (unsigned) (0 == (*  (ptr) trueOrFalse←v39004 )));
         };
      };
   }

static void SetReadOnly←P4920(ggData←v23352, readOnly←v23380)
   word ggData←v23352;
   word readOnly←v23380;
   {
   register ptr gf←c103588 =  (ptr) &globalframe;
   /* SetReadOnly: */ 
SOURCE(37911, 278)
SOURCE(37973, 39)
   (* (( (ptr) (* (( (ptr) ggData←v23352)+1) ))+6) ) = readOnly←v23380;
SOURCE(38014, 74)
   if (((*  (ptr) ggData←v23352 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v23352 ))+37) ) == 0)) {
SOURCE(38082, 6)
      return;
      };
SOURCE(38090, 99)
   {
      word pd367;
      pd367 = (* (( (ptr) (* (( (ptr) gf←c103588)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd367 ))))((* (( (ptr) gf←c103588)+51) ),  ( (0 != readOnly←v23380) ? (* (( (ptr) gf←c103588)+6)
         /* false←v8292 */  ) : (* (( (ptr) gf←c103588)+5)/* true←v8264 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v23352 ))+37) ), (* (
            ( (ptr) gf←c103588)+45) ), pd367);
      };
   }

static word GetPalette←P4980(ggData←v23440)
   word ggData←v23440;
   {
   register ptr gf←c103620 =  (ptr) &globalframe;
   word var←c23484;
   /* GetPalette: */ 
SOURCE(38195, 367)
SOURCE(38255, 43)
   if (((*  (ptr) ggData←v23440 ) == 0)) {
SOURCE(38285, 13)
      return(0);
      };
SOURCE(38300, 262)
   if (((* (( (ptr) (*  (ptr) ggData←v23440 ))+37) ) == 0)) {
SOURCE(38343, 37)
      return((* (( (ptr) (*  (ptr) ggData←v23440 ))+12) ));
      }
   else {
SOURCE(38380, 184)
      {
         word val←v39100;
         word trueOrFalse←v39128 = 0;
SOURCE(38382, 75)
         {
            word pd368;
            pd368 = (* (( (ptr) (* (( (ptr) gf←c103620)+397)/* var←c99140 */  ))+34) );
            val←v39100 = (word) ( *( (fPt) ((*  (ptr) pd368 ))))((* (( (ptr) gf←c103620)+52) ), (* (( (ptr) (*  (ptr) ggData←v23440 ))+37)
                ), (* (( (ptr) gf←c103620)+45) ), pd368);
            };
SOURCE(38482, 31)
         if ((val←v39100 == 0)) {
SOURCE(38500, 13)
            return(0);
            };
SOURCE(38515, 25)
         trueOrFalse←v39128 = XR←Narrow(val←v39100, (* (( (ptr) gf←c103620)+18) ));
SOURCE(38542, 20)
         return((*  (ptr) trueOrFalse←v39128 ));
         };
      };
   }

static void SetPalette←P5040(ggData←v23544, paletteOn←v23572)
   word ggData←v23544;
   word paletteOn←v23572;
   {
   register ptr gf←c103652 =  (ptr) &globalframe;
   word val←v39196 = 0;
   word isUnique←v39224 = 1;
   /* SetPalette: */ 
SOURCE(38571, 1178)
SOURCE(38666, 36)
   if (((*  (ptr) ggData←v23544 ) == 0)) {
SOURCE(38696, 6)
      return;
      };
SOURCE(38704, 183)
   if (((* (( (ptr) (*  (ptr) ggData←v23544 ))+37) ) == 0)) {
SOURCE(38747, 41)
      (* (( (ptr) (*  (ptr) ggData←v23544 ))+12) ) = paletteOn←v23572;
      }
   else {
SOURCE(38788, 99)
      {
         word pd369;
         pd369 = (* (( (ptr) (* (( (ptr) gf←c103652)+397)/* var←c99140 */  ))+35) );
         (void) ( *( (fPt) ((*  (ptr) pd369 ))))((* (( (ptr) gf←c103652)+52) ),  ( (0 != paletteOn←v23572) ? (* (( (ptr) gf←c103652)+5)
            /* true←v8264 */  ) : (* (( (ptr) gf←c103652)+6)/* false←v8292 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v23544 ))+37) ), (* (
               ( (ptr) gf←c103652)+45) ), pd369);
         };
      };
SOURCE(38889, 814)
   if ((0 != paletteOn←v23572)) {
SOURCE(38907, 650)
      {
         word buttonDataRope←v39280;
SOURCE(38909, 550)
         buttonDataRope←v39280 = (* (( (ptr) gf←c103652)+53) );
SOURCE(39461, 94)
         {
            word var←c99204;
            {
               word pd370;
               pd370 = (* (( (ptr) (* (( (ptr) gf←c103652)+399)/* var←c99236 */  ))+12) );
               var←c99204 = (word) ( *( (fPt) ((*  (ptr) pd370 ))))((* (( (ptr) gf←c103652)+54) ), buttonDataRope←v39280, pd370);
               };
            {
               word pd371;
               pd371 = (* (( (ptr) (* (( (ptr) gf←c103652)+399)/* var←c99236 */  ))+4) );
               (void) ( *( (fPt) ((*  (ptr) pd371 ))))((* (( (ptr) ggData←v23544)+12) ), 0, (* (( (ptr) gf←c103652)+54) ), var←c99204, pd371)
               ;
               };
            };
         };
      }
   else {
SOURCE(39566, 65)
      {
         W2 var←c99268;
         {
            word pd372;
            pd372 = (* (( (ptr) (* (( (ptr) gf←c103652)+399)/* var←c99236 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd372 ))))((word) &var←c99268, (* (( (ptr) ggData←v23544)+12) ), 0, (* (( (ptr) gf←c103652)+54)
                ), pd372);
            };
         isUnique←v39224 = var←c99268.f1;
         val←v39196 = var←c99268.f0;
         };
SOURCE(39633, 70)
      if ((val←v39196 != 0)) {
SOURCE(39651, 52)
         {
            word var←c99300;
            word pd373;
            pd373 = (* (( (ptr) (* (( (ptr) gf←c103652)+399)/* var←c99236 */  ))+6) );
            var←c99300 = (word) ( *( (fPt) ((*  (ptr) pd373 ))))((* (( (ptr) ggData←v23544)+12) ), 0, (* (( (ptr) gf←c103652)+54) ), pd373)
            ;
            };
         };
      };
SOURCE(39708, 41)
   if ((0 != paletteOn←v23572)) {
SOURCE(39726, 23)
      (void) SetActive←P4800(ggData←v23544, 1);
      };
   }

static word GetDefaults←P5100(ggData←v23632)
   word ggData←v23632;
   {
   word var←c23676;
   /* GetDefaults: */ 
SOURCE(40829, 91)
SOURCE(40897, 23)
   return((* (( (ptr) ggData←v23632)+30) ));
   }

static void SetDefaults←P5160(ggData←v23736, defaults←v23764)
   word ggData←v23736;
   word defaults←v23764;
   {
   /* SetDefaults: */ 
SOURCE(40926, 95)
SOURCE(40995, 26)
   (* (( (ptr) ggData←v23736)+30) ) = defaults←v23764;
   }

static word DisplayStyleFromAtom←P5220(atom←v23824)
   word atom←v23824;
   {
   register ptr gf←c103684 =  (ptr) &globalframe;
   word style←v23868;
   /* DisplayStyleFromAtom: */ 
SOURCE(41027, 186)
SOURCE(41101, 112)
   {
      word var←c99332;
      var←c99332 = atom←v23824;
      if ((var←c99332 == (* (( (ptr) gf←c103684)+55) ))) {
         style←v23868 = 0;
         goto endif0374;
         };
      if ((var←c99332 == (* (( (ptr) gf←c103684)+56) ))) {
         style←v23868 = 1;
         goto endif0374;
         };
      if ((var←c99332 == (* (( (ptr) gf←c103684)+57) ))) {
         style←v23868 = 0;
         goto endif0374;
         };
      style←v23868 = 0;
      goto endif0374;
      endif0374: ;
      };
SOURCE(41027, 186)
   return(style←v23868);
   }

static word AtomFromDisplayStyle←P5280(style←v23928)
   word style←v23928;
   {
   register ptr gf←c103716 =  (ptr) &globalframe;
   word atom←v23972;
   /* AtomFromDisplayStyle: */ 
SOURCE(41219, 168)
SOURCE(41219, 168)
   atom←v23972 = 0;
SOURCE(41293, 94)
   {
      word var←c99364;
      var←c99364 = style←v23928;
      if ((var←c99364 == 0)) {
         atom←v23972 = (* (( (ptr) gf←c103716)+55) );
         }
      else {
         if ((var←c99364 == 1)) {
            atom←v23972 = (* (( (ptr) gf←c103716)+56) );
            }
         else {
            atom←v23972 = (
               XR←RaiseUnnamedError(), 0
               );
            };
         };
      };
SOURCE(41219, 168)
   return(atom←v23972);
   }

static word GetDisplayStyle←P5340(ggData←v24032)
   word ggData←v24032;
   {
   register ptr gf←c103748 =  (ptr) &globalframe;
   word var←c24076;
   /* GetDisplayStyle: */ 
SOURCE(41393, 378)
SOURCE(41466, 305)
   if (((*  (ptr) ggData←v24032 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v24032 ))+37) ) == 0)) {
SOURCE(41534, 19)
      return(0);
      }
   else {
SOURCE(41553, 220)
      {
         word val←v39324;
         word atom←v39352 = 0;
SOURCE(41555, 79)
         {
            word pd375;
            pd375 = (* (( (ptr) (* (( (ptr) gf←c103748)+397)/* var←c99140 */  ))+34) );
            val←v39324 = (word) ( *( (fPt) ((*  (ptr) pd375 ))))((* (( (ptr) gf←c103748)+58) ), (* (( (ptr) (*  (ptr) ggData←v24032 ))+37)
                ), (* (( (ptr) gf←c103748)+45) ), pd375);
            };
SOURCE(41648, 31)
         if ((val←v39324 == 0)) {
SOURCE(41666, 13)
            return(0);
            };
SOURCE(41717, 18)
         atom←v39352 = XR←Narrow(val←v39324, (* (( (ptr) gf←c103748)+15) ));
SOURCE(41737, 34)
         return((word) DisplayStyleFromAtom←P5220(atom←v39352));
         };
      };
   }

static void SetDisplayStyle←P5400(ggData←v24136, displayStyle←v24164)
   word ggData←v24136;
   word displayStyle←v24164;
   {
   register ptr gf←c103780 =  (ptr) &globalframe;
   word wantName←v39408;
   /* SetDisplayStyle: */ 
SOURCE(41780, 328)
SOURCE(41858, 51)
   wantName←v39408 = (word) AtomFromDisplayStyle←P5280(displayStyle←v24164);
SOURCE(41911, 74)
   if (((*  (ptr) ggData←v24136 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v24136 ))+37) ) == 0)) {
SOURCE(41979, 6)
      return;
      };
SOURCE(41987, 78)
   {
      word pd376;
      pd376 = (* (( (ptr) (* (( (ptr) gf←c103780)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd376 ))))((* (( (ptr) gf←c103780)+58) ), wantName←v39408, (* (( (ptr) (*  (ptr) ggData←v24136 ))+37)
          ), (* (( (ptr) gf←c103780)+45) ), pd376);
      };
SOURCE(42067, 41)
   (* (( (ptr) (* (( (ptr) ggData←v24136)+15) ))+1) ) = displayStyle←v24164;
   }

static void CycleDisplayStyle←P5460(ggData←v24224, forward←v24252)
   word ggData←v24224;
   word forward←v24252;
   {
   register ptr gf←c103812 =  (ptr) &globalframe;
   word wantName←v39452 = 0;
   word isName←v39480 = 0;
   word camera←v39508;
   word val←v39536 = 0;
   /* CycleDisplayStyle: */ 
SOURCE(42114, 962)
SOURCE(42205, 30)
   camera←v39508 = (* (( (ptr) ggData←v24224)+15) );
SOURCE(42247, 74)
   if (((*  (ptr) ggData←v24224 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v24224 ))+37) ) == 0)) {
SOURCE(42315, 6)
      return;
      };
SOURCE(42323, 74)
   {
      word pd377;
      pd377 = (* (( (ptr) (* (( (ptr) gf←c103812)+397)/* var←c99140 */  ))+34) );
      val←v39536 = (word) ( *( (fPt) ((*  (ptr) pd377 ))))((* (( (ptr) gf←c103812)+58) ), (* (( (ptr) (*  (ptr) ggData←v24224 ))+37)
          ), (* (( (ptr) gf←c103812)+45) ), pd377);
      };
SOURCE(42399, 20)
   isName←v39480 = XR←Narrow(val←v39536, (* (( (ptr) gf←c103812)+15) ));
SOURCE(42421, 329)
   if ((0 != forward←v24252)) {
SOURCE(42439, 150)
      {
         word var←c99428;
         var←c99428 = isName←v39480;
         if ((var←c99428 == (* (( (ptr) gf←c103812)+55) ))) {
            wantName←v39452 = (* (( (ptr) gf←c103812)+56) );
            goto endif0378;
            };
         if ((var←c99428 == (* (( (ptr) gf←c103812)+56) ))) {
            wantName←v39452 = (* (( (ptr) gf←c103812)+57) );
            goto endif0378;
            };
         if ((var←c99428 == (* (( (ptr) gf←c103812)+57) ))) {
            wantName←v39452 = (* (( (ptr) gf←c103812)+55) );
            goto endif0378;
            };
         wantName←v39452 = (* (( (ptr) gf←c103812)+55) );
         goto endif0378;
         endif0378: ;
         };
      }
   else {
SOURCE(42600, 150)
      {
         word var←c99460;
         var←c99460 = isName←v39480;
         if ((var←c99460 == (* (( (ptr) gf←c103812)+55) ))) {
            wantName←v39452 = (* (( (ptr) gf←c103812)+57) );
            goto endif0379;
            };
         if ((var←c99460 == (* (( (ptr) gf←c103812)+56) ))) {
            wantName←v39452 = (* (( (ptr) gf←c103812)+55) );
            goto endif0379;
            };
         if ((var←c99460 == (* (( (ptr) gf←c103812)+57) ))) {
            wantName←v39452 = (* (( (ptr) gf←c103812)+56) );
            goto endif0379;
            };
         wantName←v39452 = (* (( (ptr) gf←c103812)+55) );
         goto endif0379;
         endif0379: ;
         };
      };
SOURCE(42755, 78)
   {
      word pd380;
      pd380 = (* (( (ptr) (* (( (ptr) gf←c103812)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd380 ))))((* (( (ptr) gf←c103812)+58) ), wantName←v39452, (* (( (ptr) (*  (ptr) ggData←v24224 ))+37)
          ), (* (( (ptr) gf←c103812)+45) ), pd380);
      };
SOURCE(42835, 241)
   {
      word var←c99492;
      var←c99492 = wantName←v39452;
      if ((var←c99492 == (* (( (ptr) gf←c103812)+55) ))) {
SOURCE(42877, 21)
         (*  (ptr) camera←v39508 ) = 0;
SOURCE(42900, 27)
         (* (( (ptr) camera←v39508)+1) ) = 0;
         goto endif0381;
         };
      if ((var←c99492 == (* (( (ptr) gf←c103812)+56) ))) {
SOURCE(42953, 21)
         (*  (ptr) camera←v39508 ) = 0;
SOURCE(42976, 28)
         (* (( (ptr) camera←v39508)+1) ) = 1;
         goto endif0381;
         };
      if ((var←c99492 == (* (( (ptr) gf←c103812)+57) ))) {
SOURCE(43023, 24)
         (*  (ptr) camera←v39508 ) = 2;
SOURCE(43049, 27)
         (* (( (ptr) camera←v39508)+1) ) = 0;
         goto endif0381;
         };
SOURCE(43092, 5)
      (void) XR←RaiseUnnamedError();
      goto endif0381;
      endif0381: ;
      };
   }

static void GetDefaultDashPattern←P5520(formal←c0823, ggData←v24312)
   word formal←c0823;
   word ggData←v24312;
   {
   word dashed←v24356;
   word pattern←v24384;
   word offset←v24412;
   word length←v24440;
   /* GetDefaultDashPattern: */ 
SOURCE(43104, 264)
SOURCE(43104, 264)
   pattern←v24384 = 0;
SOURCE(43236, 31)
   dashed←v24356 = (* (( (ptr) (* (( (ptr) ggData←v24312)+30) ))+3) );
SOURCE(43269, 33)
   pattern←v24384 = (* (( (ptr) (* (( (ptr) ggData←v24312)+30) ))+4) );
SOURCE(43304, 31)
   offset←v24412 = (* (( (ptr) (* (( (ptr) ggData←v24312)+30) ))+5) );
SOURCE(43337, 31)
   length←v24440 = (* (( (ptr) (* (( (ptr) ggData←v24312)+30) ))+6) );
   /* removed tail goto */ 
   (*  (ptr) formal←c0823 ) = dashed←v24356;
   (* (( (ptr) formal←c0823)+1) ) = pattern←v24384;
   (* (( (ptr) formal←c0823)+2) ) = offset←v24412;
   (* (( (ptr) formal←c0823)+3) ) = length←v24440;
   return;
   }

static void SetDefaultDashPattern←P5580(ggData←v24500, dashed←v24528, pattern←v24556, offset←v24584, length←v24612)
   word ggData←v24500;
   word dashed←v24528;
   word pattern←v24556;
   word offset←v24584;
   word length←v24612;
   {
   /* SetDefaultDashPattern: */ 
SOURCE(43373, 255)
SOURCE(43496, 31)
   (* (( (ptr) (* (( (ptr) ggData←v24500)+30) ))+3) ) = dashed←v24528;
SOURCE(43529, 33)
   (* (( (ptr) (* (( (ptr) ggData←v24500)+30) ))+4) ) = pattern←v24556;
SOURCE(43564, 31)
   (* (( (ptr) (* (( (ptr) ggData←v24500)+30) ))+5) ) = offset←v24584;
SOURCE(43597, 31)
   (* (( (ptr) (* (( (ptr) ggData←v24500)+30) ))+6) ) = length←v24612;
   }

static word GetDefaultFillColor←P5640(ggData←v24672)
   word ggData←v24672;
   {
   word fillColor←v24716;
   /* GetDefaultFillColor: */ 
SOURCE(43633, 125)
SOURCE(43633, 125)
   fillColor←v24716 = 0;
SOURCE(43721, 37)
   fillColor←v24716 = (* (( (ptr) (* (( (ptr) ggData←v24672)+30) ))+8) );
SOURCE(43633, 125)
   return(fillColor←v24716);
   }

static void SetDefaultFillColor←P5700(ggData←v24776, fillColor←v24804)
   word ggData←v24776;
   word fillColor←v24804;
   {
   /* SetDefaultFillColor: */ 
SOURCE(43763, 116)
SOURCE(43842, 37)
   (* (( (ptr) (* (( (ptr) ggData←v24776)+30) ))+8) ) = fillColor←v24804;
   }

static word GetDefaultStrokeColor←P5760(ggData←v24864)
   word ggData←v24864;
   {
   word strokeColor←v24908;
   /* GetDefaultStrokeColor: */ 
SOURCE(43884, 133)
SOURCE(43884, 133)
   strokeColor←v24908 = 0;
SOURCE(43976, 41)
   strokeColor←v24908 = (* (( (ptr) (* (( (ptr) ggData←v24864)+30) ))+7) );
SOURCE(43884, 133)
   return(strokeColor←v24908);
   }

static void SetDefaultStrokeColor←P5820(ggData←v24968, strokeColor←v24996)
   word ggData←v24968;
   word strokeColor←v24996;
   {
   /* SetDefaultStrokeColor: */ 
SOURCE(44022, 124)
SOURCE(44105, 41)
   (* (( (ptr) (* (( (ptr) ggData←v24968)+30) ))+7) ) = strokeColor←v24996;
   }

static word GetDefaultStrokeJoint←P5880(ggData←v25056)
   word ggData←v25056;
   {
   word strokeJoint←v25100;
   /* GetDefaultStrokeJoint: */ 
SOURCE(44151, 132)
SOURCE(44242, 41)
   strokeJoint←v25100 = (* (( (ptr) (* (( (ptr) ggData←v25056)+30) ))+1) );
SOURCE(44151, 132)
   return(strokeJoint←v25100);
   }

static void SetDefaultStrokeJoint←P5940(ggData←v25160, strokeJoint←v25188)
   word ggData←v25160;
   word strokeJoint←v25188;
   {
   /* SetDefaultStrokeJoint: */ 
SOURCE(44288, 123)
SOURCE(44370, 41)
   (* (( (ptr) (* (( (ptr) ggData←v25160)+30) ))+1) ) = strokeJoint←v25188;
   }

static word GetDefaultStrokeEnd←P6000(ggData←v25248)
   word ggData←v25248;
   {
   word strokeEnd←v25292;
   /* GetDefaultStrokeEnd: */ 
SOURCE(44416, 122)
SOURCE(44501, 37)
   strokeEnd←v25292 = (* (( (ptr) (* (( (ptr) ggData←v25248)+30) ))+2) );
SOURCE(44416, 122)
   return(strokeEnd←v25292);
   }

static void SetDefaultStrokeEnd←P6060(ggData←v25352, strokeEnd←v25380)
   word ggData←v25352;
   word strokeEnd←v25380;
   {
   /* SetDefaultStrokeEnd: */ 
SOURCE(44543, 113)
SOURCE(44619, 37)
   (* (( (ptr) (* (( (ptr) ggData←v25352)+30) ))+2) ) = strokeEnd←v25380;
   }

static void GetDefaultDropShadows←P6120(formal←c0849, ggData←v25440)
   word formal←c0849;
   word ggData←v25440;
   {
   word dropShadowOn←v25484;
   W2 dropShadowOffset←v25512;
   word dropShadowColor←v25540;
   /* GetDefaultDropShadows: */ 
SOURCE(44661, 289)
SOURCE(44661, 289)
   dropShadowColor←v25540 = 0;
SOURCE(44803, 43)
   dropShadowOn←v25484 = (* (( (ptr) (* (( (ptr) ggData←v25440)+30) ))+11) );
SOURCE(44848, 51)
   dropShadowOffset←v25512 = (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v25440)+30) ))+12) );
SOURCE(44901, 49)
   dropShadowColor←v25540 = (* (( (ptr) (* (( (ptr) ggData←v25440)+30) ))+14) );
   /* removed tail goto */ 
   (*  (ptr) formal←c0849 ) = dropShadowOn←v25484;
   (*  (W2Pt) (( (ptr) formal←c0849)+1) ) = dropShadowOffset←v25512;
   (* (( (ptr) formal←c0849)+3) ) = dropShadowColor←v25540;
   return;
   }

static void SetDefaultDropShadows←P6180(ggData←v25600, dropShadowOn←v25628, dropShadowOffset←v25656, dropShadowColor←v25684)
   word ggData←v25600;
   word dropShadowOn←v25628;
   W2 dropShadowOffset←v25656;
   word dropShadowColor←v25684;
   {
   /* SetDefaultDropShadows: */ 
SOURCE(44955, 280)
SOURCE(45088, 43)
   (* (( (ptr) (* (( (ptr) ggData←v25600)+30) ))+11) ) = dropShadowOn←v25628;
SOURCE(45133, 51)
   (*  (W2Pt) (( (ptr) (* (( (ptr) ggData←v25600)+30) ))+12) ) = dropShadowOffset←v25656;
SOURCE(45186, 49)
   (* (( (ptr) (* (( (ptr) ggData←v25600)+30) ))+14) ) = dropShadowColor←v25684;
   }

static word GetDefaultFont←P6240(ggData←v25744)
   word ggData←v25744;
   {
   word fontData←v25788;
   /* GetDefaultFont: */ 
SOURCE(45240, 109)
SOURCE(45240, 109)
   fontData←v25788 = 0;
SOURCE(45318, 31)
   fontData←v25788 = (* (( (ptr) (* (( (ptr) ggData←v25744)+30) ))+9) );
SOURCE(45240, 109)
   return(fontData←v25788);
   }

static void SetDefaultFont←P6300(ggData←v25848, fontData←v25876)
   word ggData←v25848;
   word fontData←v25876;
   {
   /* SetDefaultFont: */ 
SOURCE(45354, 100)
SOURCE(45423, 31)
   (* (( (ptr) (* (( (ptr) ggData←v25848)+30) ))+9) ) = fontData←v25876;
   }

static word GetGravity←P6360(ggData←v25936)
   word ggData←v25936;
   {
   register ptr gf←c103844 =  (ptr) &globalframe;
   word var←c25980;
   /* GetGravity: */ 
SOURCE(45460, 363)
SOURCE(45520, 303)
   if (((*  (ptr) ggData←v25936 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v25936 ))+37) ) == 0)) {
SOURCE(45588, 18)
      return(1);
      }
   else {
SOURCE(45606, 219)
      {
         word val←v39592;
         word trueOrFalse←v39620 = 0;
SOURCE(45608, 75)
         {
            word pd382;
            pd382 = (* (( (ptr) (* (( (ptr) gf←c103844)+397)/* var←c99140 */  ))+34) );
            val←v39592 = (word) ( *( (fPt) ((*  (ptr) pd382 ))))((* (( (ptr) gf←c103844)+59) ), (* (( (ptr) (*  (ptr) ggData←v25936 ))+37)
                ), (* (( (ptr) gf←c103844)+45) ), pd382);
            };
SOURCE(45708, 30)
         if ((val←v39592 == 0)) {
SOURCE(45726, 12)
            return(1);
            };
SOURCE(45776, 25)
         trueOrFalse←v39620 = XR←Narrow(val←v39592, (* (( (ptr) gf←c103844)+18) ));
SOURCE(45803, 20)
         return((*  (ptr) trueOrFalse←v39620 ));
         };
      };
   }

static void SetGravity←P6420(ggData←v26040, gravityOn←v26068)
   word ggData←v26040;
   word gravityOn←v26068;
   {
   register ptr gf←c103876 =  (ptr) &globalframe;
   /* SetGravity: */ 
SOURCE(45832, 264)
SOURCE(45894, 74)
   if (((*  (ptr) ggData←v26040 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v26040 ))+37) ) == 0)) {
SOURCE(45962, 6)
      return;
      };
SOURCE(45970, 99)
   {
      word pd383;
      pd383 = (* (( (ptr) (* (( (ptr) gf←c103876)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd383 ))))((* (( (ptr) gf←c103876)+59) ),  ( (0 != gravityOn←v26068) ? (* (( (ptr) gf←c103876)+5)
         /* true←v8264 */  ) : (* (( (ptr) gf←c103876)+6)/* false←v8292 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v26040 ))+37) ), (* (
            ( (ptr) gf←c103876)+45) ), pd383);
      };
SOURCE(46071, 25)
   (void) UpdateCursorLooks←P7200(ggData←v26040);
   }

static word GetGravityExtent←P6480(ggData←v26128)
   word ggData←v26128;
   {
   register ptr gf←c103908 =  (ptr) &globalframe;
   word inches←v26172;
   word screenDots←v39688;
   /* GetGravityExtent: */ 
SOURCE(46102, 448)
SOURCE(46194, 324)
   if (((*  (ptr) ggData←v26128 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v26128 ))+37) ) == 0)) {
SOURCE(46262, 58)
      {
         word pd384;
         pd384 = (* (( (ptr) (* (( (ptr) gf←c103908)+400)/* var←c99524 */  ))+8) );
         screenDots←v39688 = (word) ( *( (fPt) ((*  (ptr) pd384 ))))(pd384);
         };
      }
   else {
SOURCE(46320, 203)
      {
         word val←v39732;
SOURCE(46322, 81)
         {
            word pd385;
            pd385 = (* (( (ptr) (* (( (ptr) gf←c103908)+397)/* var←c99140 */  ))+34) );
            val←v39732 = (word) ( *( (fPt) ((*  (ptr) pd385 ))))((* (( (ptr) gf←c103908)+60) ), (* (( (ptr) (*  (ptr) ggData←v26128 ))+37)
                ), (* (( (ptr) gf←c103908)+45) ), pd385);
            };
SOURCE(46405, 113)
         if ((val←v39732 == 0)) {
SOURCE(46423, 58)
            {
               word pd386;
               pd386 = (* (( (ptr) (* (( (ptr) gf←c103908)+400)/* var←c99524 */  ))+8) );
               screenDots←v39688 = (word) ( *( (fPt) ((*  (ptr) pd386 ))))(pd386);
               };
            }
         else {
SOURCE(46483, 35)
            screenDots←v39688 = (*  (ptr) XR←Narrow(val←v39732, (* (( (ptr) gf←c103908)+25) )) );
            };
         };
      };
SOURCE(46526, 24)
   {
      word x387;
      word x388;
      *(float*)&inches←v26172 = (
         x387 = screenDots←v39688,  *(float*)&x387
         ) / (
         x388 = (*  (ptr) &fc172 ),  *(float*)&x388
         );
      };
SOURCE(46102, 448)
   return(inches←v26172);
   }

static void SetGravityExtent←P6540(ggData←v26232, inches←v26260)
   word ggData←v26232;
   word inches←v26260;
   {
   register ptr gf←c103940 =  (ptr) &globalframe;
   word screenDots←v39800;
   word refReal←v39828 = 0;
   /* SetGravityExtent: */ 
SOURCE(46556, 350)
SOURCE(46659, 74)
   if (((*  (ptr) ggData←v26232 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v26232 ))+37) ) == 0)) {
SOURCE(46727, 6)
      return;
      };
SOURCE(46735, 24)
   {
      word x389;
      word x390;
      *(float*)&screenDots←v39800 = (
         x389 = inches←v26260,  *(float*)&x389
         ) * (
         x390 = (*  (ptr) &fc172 ),  *(float*)&x390
         );
      };
SOURCE(46761, 32)
   {
      word var←c99556;
      var←c99556 = XR←NewObject(4, (* (( (ptr) gf←c103940)+25) ));
      (*  (ptr) var←c99556 ) = screenDots←v39800;
      refReal←v39828 = var←c99556;
      };
SOURCE(46795, 79)
   {
      word pd391;
      pd391 = (* (( (ptr) (* (( (ptr) gf←c103940)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd391 ))))((* (( (ptr) gf←c103940)+60) ), refReal←v39828, (* (( (ptr) (*  (ptr) ggData←v26232 ))+37)
          ), (* (( (ptr) gf←c103940)+45) ), pd391);
      };
SOURCE(46877, 29)
   (*  (ptr) (* (( (ptr) ggData←v26232)+18) ) ) = screenDots←v39800;
   }

static word GravityTypeFromAtom←P6600(atom←v26320)
   word atom←v26320;
   {
   register ptr gf←c103972 =  (ptr) &globalframe;
   word gravityType←v26364;
   /* GravityTypeFromAtom: */ 
SOURCE(46914, 215)
SOURCE(46992, 137)
   if ((atom←v26320 == (* (( (ptr) gf←c103972)+61) ))) {
      gravityType←v26364 = 1;
      }
   else {
      if ((atom←v26320 == (* (( (ptr) gf←c103972)+62) ))) {
         gravityType←v26364 = 0;
         }
      else {
         gravityType←v26364 = 1;
         };
      };
SOURCE(46914, 215)
   return(gravityType←v26364);
   }

static word AtomFromGravityType←P6660(gravityType←v26424)
   word gravityType←v26424;
   {
   register ptr gf←c104004 =  (ptr) &globalframe;
   word atom←v26468;
   /* AtomFromGravityType: */ 
SOURCE(47135, 207)
SOURCE(47135, 207)
   atom←v26468 = 0;
SOURCE(47213, 129)
   {
      word var←c99588;
      var←c99588 = gravityType←v26424;
      switch (var←c99588) {
         case 1: 
            atom←v26468 = (* (( (ptr) gf←c104004)+61) );
            break;
         case 0: case 2: 
            atom←v26468 = (* (( (ptr) gf←c104004)+62) );
            break;
         default: 
            atom←v26468 = (
               XR←RaiseUnnamedError(), 0
               );
            break;
         };
      };
SOURCE(47135, 207)
   return(atom←v26468);
   }

static word GetGravityType←P6720(ggData←v26528)
   word ggData←v26528;
   {
   register ptr gf←c104036 =  (ptr) &globalframe;
   word gravityType←v26572;
   /* GetGravityType: */ 
SOURCE(47348, 408)
SOURCE(47432, 324)
   if (((*  (ptr) ggData←v26528 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v26528 ))+37) ) == 0)) {
SOURCE(47500, 29)
      return(1);
      }
   else {
SOURCE(47529, 229)
      {
         word val←v39884;
         word atom←v39912 = 0;
SOURCE(47531, 79)
         {
            word pd392;
            pd392 = (* (( (ptr) (* (( (ptr) gf←c104036)+397)/* var←c99140 */  ))+34) );
            val←v39884 = (word) ( *( (fPt) ((*  (ptr) pd392 ))))((* (( (ptr) gf←c104036)+63) ), (* (( (ptr) (*  (ptr) ggData←v26528 ))+37)
                ), (* (( (ptr) gf←c104036)+45) ), pd392);
            };
SOURCE(47624, 41)
         if ((val←v39884 == 0)) {
SOURCE(47642, 23)
            return(1);
            };
SOURCE(47703, 18)
         atom←v39912 = XR←Narrow(val←v39884, (* (( (ptr) gf←c104036)+15) ));
SOURCE(47723, 33)
         return((word) GravityTypeFromAtom←P6600(atom←v39912));
         };
      };
   }

static void SetGravityType←P6780(ggData←v26632, gravityType←v26660)
   word ggData←v26632;
   word gravityType←v26660;
   {
   register ptr gf←c104068 =  (ptr) &globalframe;
   word atom←v39968 = 0;
   /* SetGravityType: */ 
SOURCE(47765, 347)
SOURCE(47852, 74)
   if (((*  (ptr) ggData←v26632 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v26632 ))+37) ) == 0)) {
SOURCE(47920, 6)
      return;
      };
SOURCE(47928, 39)
   atom←v39968 = (word) AtomFromGravityType←P6660(gravityType←v26660);
SOURCE(47969, 74)
   {
      word pd393;
      pd393 = (* (( (ptr) (* (( (ptr) gf←c104068)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd393 ))))((* (( (ptr) gf←c104068)+63) ), atom←v39968, (* (( (ptr) (*  (ptr) ggData←v26632 ))+37)
          ), (* (( (ptr) gf←c104068)+45) ), pd393);
      };
SOURCE(48045, 40)
   (* (( (ptr) (* (( (ptr) ggData←v26632)+18) ))+11) ) = gravityType←v26660;
SOURCE(48087, 25)
   (void) UpdateCursorLooks←P7200(ggData←v26632);
   }

static void CycleGravityType←P6840(ggData←v26720, forward←v26748)
   word ggData←v26720;
   word forward←v26748;
   {
   word gravityType←v40012;
   /* CycleGravityType: */ 
SOURCE(48118, 399)
SOURCE(48210, 74)
   if (((*  (ptr) ggData←v26720 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v26720 ))+37) ) == 0)) {
SOURCE(48278, 6)
      return;
      };
SOURCE(48286, 36)
   gravityType←v40012 = (word) GetGravityType←P6720(ggData←v26720);
SOURCE(48324, 87)
   if ((gravityType←v40012 == 1)) {
      gravityType←v40012 = 0;
      }
   else {
      gravityType←v40012 = 1;
      };
SOURCE(48413, 35)
   (void) SetGravityType←P6780(ggData←v26720, gravityType←v40012);
SOURCE(48450, 40)
   (* (( (ptr) (* (( (ptr) ggData←v26720)+18) ))+11) ) = gravityType←v40012;
SOURCE(48492, 25)
   (void) UpdateCursorLooks←P7200(ggData←v26720);
   }

static word GetHeuristics←P6900(ggData←v26808)
   word ggData←v26808;
   {
   register ptr gf←c104100 =  (ptr) &globalframe;
   word var←c26852;
   /* GetHeuristics: */ 
SOURCE(48523, 365)
SOURCE(48586, 302)
   if (((*  (ptr) ggData←v26808 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v26808 ))+37) ) == 0)) {
SOURCE(48654, 19)
      return(0);
      }
   else {
SOURCE(48673, 217)
      {
         word val←v40056;
         word trueOrFalse←v40084 = 0;
SOURCE(48675, 72)
         {
            word pd394;
            pd394 = (* (( (ptr) (* (( (ptr) gf←c104100)+397)/* var←c99140 */  ))+34) );
            val←v40056 = (word) ( *( (fPt) ((*  (ptr) pd394 ))))((* (( (ptr) gf←c104100)+64) ), (* (( (ptr) (*  (ptr) ggData←v26808 ))+37)
                ), (* (( (ptr) gf←c104100)+45) ), pd394);
            };
SOURCE(48772, 31)
         if ((val←v40056 == 0)) {
SOURCE(48790, 13)
            return(0);
            };
SOURCE(48841, 25)
         trueOrFalse←v40084 = XR←Narrow(val←v40056, (* (( (ptr) gf←c104100)+18) ));
SOURCE(48868, 20)
         return((*  (ptr) trueOrFalse←v40084 ));
         };
      };
   }

static void SetHeuristics←P6960(ggData←v26912, heuristicsOn←v26940)
   word ggData←v26912;
   word heuristicsOn←v26940;
   {
   register ptr gf←c104132 =  (ptr) &globalframe;
   /* SetHeuristics: */ 
SOURCE(48897, 243)
SOURCE(48965, 74)
   if (((*  (ptr) ggData←v26912 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v26912 ))+37) ) == 0)) {
SOURCE(49033, 6)
      return;
      };
SOURCE(49041, 99)
   {
      word pd395;
      pd395 = (* (( (ptr) (* (( (ptr) gf←c104132)+397)/* var←c99140 */  ))+35) );
      (void) ( *( (fPt) ((*  (ptr) pd395 ))))((* (( (ptr) gf←c104132)+64) ),  ( (0 != heuristicsOn←v26940) ? (* (( (ptr) gf←c104132)+5)
         /* true←v8264 */  ) : (* (( (ptr) gf←c104132)+6)/* false←v8292 */  ) ) , (* (( (ptr) (*  (ptr) ggData←v26912 ))+37) ), (* (
            ( (ptr) gf←c104132)+45) ), pd395);
      };
   }

static word GetScaleUnit←P7020(ggData←v27000)
   word ggData←v27000;
   {
   word var←c27044;
   /* GetScaleUnit: */ 
SOURCE(49147, 94)
SOURCE(49209, 32)
   return((* (( (ptr) (* (( (ptr) ggData←v27000)+18) ))+13) ));
   }

static void SetScaleUnit←P7080(ggData←v27104, unit←v27132, history←v27160)
   word ggData←v27104;
   word unit←v27132;
   word history←v27160;
   {
   register ptr gf←c104164 =  (ptr) &globalframe;
   /* SetScaleUnit: */ 
SOURCE(49247, 399)
SOURCE(49329, 317)
   {
      word x396;
      word x397;
      if (((
         x396 = unit←v27132,  *(float*)&x396
         ) > (
         x397 = (*  (ptr) &fc136 ),  *(float*)&x397
         ))) {
SOURCE(49347, 304)
         {
            word oldValue←v40152;
SOURCE(49349, 53)
            {
               word var←c99652;
               word var←c99684;
               var←c99652 = (word) GetScaleUnit←P7020(ggData←v27104);
               var←c99684 = XR←NewObject(4, (* (( (ptr) gf←c104164)+25) ));
               (*  (ptr) var←c99684 ) = var←c99652;
               oldValue←v40152 = var←c99684;
               };
SOURCE(49404, 31)
            (* (( (ptr) (* (( (ptr) ggData←v27104)+18) ))+13) ) = unit←v27132;
SOURCE(49455, 191)
            if ((history←v27160 != 0)) {
SOURCE(49475, 173)
               {
                  word changeRef←v40208;
SOURCE(49477, 122)
                  changeRef←v40208 = XR←NewObject(16, (* (( (ptr) gf←c104164)+8) ));
                  (*  (ptr) changeRef←v40208 ) = 1;
                  (* (( (ptr) changeRef←v40208)+1) ) = (* (( (ptr) gf←c104164)+65) );
                  (* (( (ptr) changeRef←v40208)+2) ) = (* (( (ptr) ggData←v27104)+11) );
                  (* (( (ptr) changeRef←v40208)+3) ) = oldValue←v40152;
SOURCE(49601, 45)
                  {
                     word pd398;
                     pd398 = (* (( (ptr) (* (( (ptr) gf←c104164)+401)/* var←c99748 */  ))+10) );
                     (void) ( *( (fPt) ((*  (ptr) pd398 ))))(history←v27160, (word) (( (bPt) gf←c104164)+544)/* var←c90628 */ , changeRef←v40208, pd398)
                     ;
                     };
                  };
               };
            };
         };
      };
   }

static void UndoScale←P7140(historyData←v27220, currentEvent←v27248)
   word historyData←v27220;
   word currentEvent←v27248;
   {
   register ptr gf←c104196 =  (ptr) &globalframe;
   word stateData←v40264;
   /* UndoScale: */ 
SOURCE(49657, 175)
SOURCE(49731, 57)
   if ((historyData←v27220 == 0)) {
      goto lab←L100035;
      };
   if (((*  (ptr) historyData←v27220 ) == 1)) {
      goto lab←L100035;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100035: ;
   stateData←v40264 = historyData←v27220;
SOURCE(49790, 42)
   {
      word var←c99780;
      word oldValue←v40320;
      var←c99780 = (* (( (ptr) stateData←v40264)+1) );
      if ((var←c99780 == (* (( (ptr) gf←c104196)+65) ))) {
SOURCE(49832, 51)
SOURCE(49834, 47)
         oldValue←v40320 = XR←Narrow((* (( (ptr) stateData←v40264)+3) ), (* (( (ptr) gf←c104196)+25) ));
         };
      };
   }

static void UpdateCursorLooks←P7200(ggData←v27320)
   word ggData←v27320;
   {
   register ptr gf←c104228 =  (ptr) &globalframe;
   /* UpdateCursorLooks: */ 
SOURCE(49899, 352)
SOURCE(49944, 307)
   {
      word var←c99812;
      var←c99812 = (word) GetGravity←P6360(ggData←v27320);
      if ((var←c99812 == 1)) {
SOURCE(49983, 185)
         {
            word var←c99844;
            var←c99844 = (word) GetGravityType←P6720(ggData←v27320);
            switch (var←c99844) {
               case 1: 
SOURCE(50037, 48)
                  {
                     word pd399;
                     pd399 = (* (( (ptr) (* (( (ptr) gf←c104228)+377)/* var←c94660 */  ))+15) );
                     (void) ( *( (fPt) ((*  (ptr) pd399 ))))(1, ggData←v27320, 0, pd399);
                     };
                  break;
               case 0: case 2: 
SOURCE(50121, 47)
                  {
                     word pd400;
                     pd400 = (* (( (ptr) (* (( (ptr) gf←c104228)+377)/* var←c94660 */  ))+15) );
                     (void) ( *( (fPt) ((*  (ptr) pd400 ))))(0, ggData←v27320, 0, pd400);
                     };
                  break;
               default: 
SOURCE(50181, 5)
                  (void) XR←RaiseUnnamedError();
                  break;
               };
            };
         }
      else {
         if ((var←c99812 == 0)) {
SOURCE(50197, 54)
            {
               word pd401;
               pd401 = (* (( (ptr) (* (( (ptr) gf←c104228)+377)/* var←c94660 */  ))+15) );
               (void) ( *( (fPt) ((*  (ptr) pd401 ))))(1, ggData←v27320, 1, pd401);
               };
            };
         };
      };
   }

static word GetSliceToExtend←P7260(ggData←v27380)
   word ggData←v27380;
   {
   word sliceD←v27424;
   /* GetSliceToExtend: */ 
SOURCE(50287, 118)
SOURCE(50287, 118)
   sliceD←v27424 = 0;
SOURCE(50372, 33)
   return((* (( (ptr) (* (( (ptr) ggData←v27380)+16) ))+16) ));
   }

static void SetSliceToExtend←P7320(ggData←v27484, sliceD←v27512)
   word ggData←v27484;
   word sliceD←v27512;
   {
   /* SetSliceToExtend: */ 
SOURCE(50410, 110)
SOURCE(50486, 34)
   (* (( (ptr) (* (( (ptr) ggData←v27484)+16) ))+16) ) = sliceD←v27512;
   }

static word GetSelectMode←P7380(ggData←v27572)
   word ggData←v27572;
   {
   word selectMode←v27616;
   /* GetSelectMode: */ 
SOURCE(50526, 112)
SOURCE(50607, 31)
   return((* (( (ptr) (* (( (ptr) ggData←v27572)+16) ))+14) ));
   }

static void SetSelectMode←P7440(ggData←v27676, selectMode←v27704)
   word ggData←v27676;
   word selectMode←v27704;
   {
   /* SetSelectMode: */ 
SOURCE(50644, 108)
SOURCE(50716, 36)
   (* (( (ptr) (* (( (ptr) ggData←v27676)+16) ))+14) ) = selectMode←v27704;
   }

static word GetExtendMode←P7500(ggData←v27764)
   word ggData←v27764;
   {
   word extendMode←v27808;
   /* GetExtendMode: */ 
SOURCE(50758, 111)
SOURCE(50839, 30)
   return((* (( (ptr) (* (( (ptr) ggData←v27764)+16) ))+15) ));
   }

static void SetExtendMode←P7560(ggData←v27868, extendMode←v27896)
   word ggData←v27868;
   word extendMode←v27896;
   {
   /* SetExtendMode: */ 
SOURCE(50875, 107)
SOURCE(50947, 35)
   (* (( (ptr) (* (( (ptr) ggData←v27868)+16) ))+15) ) = extendMode←v27896;
   }

static word GetQuickClickMode←P7620()
   {
   register ptr gf←c104260 =  (ptr) &globalframe;
   word on←v27956;
   /* GetQuickClickMode: */ 
SOURCE(50988, 76)
SOURCE(51042, 22)
   return((* (( (ptr) gf←c104260)+7)/* quickClickMode←v9832 */  ));
   }

static void SetQuickClickMode←P7680(on←v28016)
   word on←v28016;
   {
   register ptr gf←c104292 =  (ptr) &globalframe;
   /* SetQuickClickMode: */ 
SOURCE(51070, 65)
SOURCE(51116, 19)
   (* (( (ptr) gf←c104292)+7)/* quickClickMode←v9832 */  ) = on←v28016;
   }

static word GetSelectionCycler←P7740(ggData←v28076)
   word ggData←v28076;
   {
   word featureCycler←v28120;
   /* GetSelectionCycler: */ 
SOURCE(51204, 143)
SOURCE(51204, 143)
   featureCycler←v28120 = 0;
SOURCE(51296, 51)
   featureCycler←v28120 = (* (( (ptr) (* (( (ptr) ggData←v28076)+11) ))+19) );
SOURCE(51204, 143)
   return(featureCycler←v28120);
   }

static void SetSelectionCycler←P7800(ggData←v28180, featureCycler←v28208)
   word ggData←v28180;
   word featureCycler←v28208;
   {
   /* SetSelectionCycler: */ 
SOURCE(51353, 134)
SOURCE(51436, 51)
   (* (( (ptr) (* (( (ptr) ggData←v28180)+11) ))+19) ) = featureCycler←v28208;
   }

static word GetFullName←P7860(ggData←v28268)
   word ggData←v28268;
   {
   word fullName←v28312;
   /* GetFullName: */ 
SOURCE(51495, 359)
SOURCE(51495, 359)
   fullName←v28312 = 0;
SOURCE(51566, 41)
   if (((*  (ptr) ggData←v28268 ) == 0)) {
SOURCE(51596, 11)
      return(0);
      };
SOURCE(51609, 133)
   if ((((* (( (ptr) (*  (ptr) ggData←v28268 ))+1) ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v28268 ))+2) ) == 0)) || ((*  (ptr) (*  (ptr) ggData←v28268 ) ) == 0)) {
SOURCE(51710, 32)
      return((* (( (ptr) (*  (ptr) ggData←v28268 ))+3) ));
      };
SOURCE(51744, 110)
   if (((* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28268 ) ))+14) ) != 0)) {
      fullName←v28312 = (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28268 ) ))+14) );
      }
   else {
      fullName←v28312 = (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28268 ))+1) ))+14) );
      };
SOURCE(51495, 359)
   return(fullName←v28312);
   }

static void StoreAdvisory←P7920(ggData←v28372, fullName←v28400, versionSpecified←v28428)
   word ggData←v28372;
   word fullName←v28400;
   word versionSpecified←v28428;
   {
   register ptr gf←c104324 =  (ptr) &globalframe;
   word nameNoBang←v40376;
   /* StoreAdvisory: */ 
SOURCE(51860, 268)
SOURCE(51948, 57)
   {
      word pd402;
      pd402 = (* (( (ptr) (* (( (ptr) gf←c104324)+395)/* var←c98948 */  ))+13) );
      nameNoBang←v40376 = (word) ( *( (fPt) ((*  (ptr) pd402 ))))(fullName←v28400, pd402);
      };
SOURCE(52007, 121)
   {
      word var←c99876;
      {
         word pd403;
         pd403 = (* (( (ptr) (* (( (ptr) gf←c104324)+395)/* var←c98948 */  ))+11) );
         var←c99876 = (word) ( *( (fPt) ((*  (ptr) pd403 ))))(nameNoBang←v40376, 1, pd403);
         };
      (void) SetNameFileLabel←P8160(ggData←v28372,  ( (0 != versionSpecified←v28428) ? fullName←v28400 : nameNoBang←v40376 ) , fullName←v28400, var←c99876)
      ;
      };
   }

static void GetAdvisory←P7980(ggData←v28488, fullName←v28516, versionSpecified←v28544)
   word ggData←v28488;
   word fullName←v28516;
   word versionSpecified←v28544;
   {
   /* GetAdvisory: */ 
SOURCE(52134, 135)
SOURCE(52220, 49)
   (void) StoreAdvisory←P7920(ggData←v28488, fullName←v28516, versionSpecified←v28544);
   }

static void ClearAdvisory←P8040(ggData←v28604)
   word ggData←v28604;
   {
   register ptr gf←c104356 =  (ptr) &globalframe;
   /* ClearAdvisory: */ 
SOURCE(52275, 442)
SOURCE(52361, 132)
   if (((((*  (ptr) ggData←v28604 ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v28604 ))+1) ) == 0)) || ((* (( (ptr) (*  (ptr) ggData←v28604 ))+2)
    ) == 0)) || ((*  (ptr) (*  (ptr) ggData←v28604 ) ) == 0)) {
SOURCE(52487, 6)
      return;
      };
SOURCE(52495, 39)
   (void) SetNameFileLabel←P8160(ggData←v28604, 0, 0, 0);
SOURCE(52536, 65)
   {
      word pd404;
      pd404 = (* (( (ptr) (* (( (ptr) gf←c104356)+396)/* var←c99012 */  ))+6) );
      (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28604 ))+1) ))+13) ) = (word) ( *( (fPt) ((*  (ptr) pd404 ))))((* (( (ptr) gf←c104356)+67)
          ), (* (( (ptr) gf←c104356)+68) ), pd404);
      };
SOURCE(52603, 41)
   (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28604 ))+1) ))+15) ) = (* (( (ptr) gf←c104356)+67) );
SOURCE(52646, 71)
   {
      word var←c99908;
      var←c99908 = (* (( (ptr) gf←c104356)+68) );
      (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28604 ) ))+15) ) = var←c99908;
      (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28604 ) ))+13) ) = var←c99908;
      };
   }

static word AdviseRestore←P8100(ggData←v28664)
   word ggData←v28664;
   {
   register ptr gf←c104388 =  (ptr) &globalframe;
   word ok←v28708;
   word name←v40464 = 0;
   /* AdviseRestore: */ 
SOURCE(52723, 720)
SOURCE(52723, 720)
   ok←v28708 = 0;
SOURCE(52810, 43)
   if (((*  (ptr) ggData←v28664 ) == 0)) {
SOURCE(52840, 13)
      return(0);
      };
SOURCE(52855, 244)
   if ((((* (( (ptr) (*  (ptr) ggData←v28664 ))+1) ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v28664 ))+2) ) == 0)) || ((*  (ptr) (*  (ptr) ggData←v28664 ) ) == 0)) {
SOURCE(52956, 37)
      name←v40464 = (* (( (ptr) (*  (ptr) ggData←v28664 ))+3) );
      }
   else {
SOURCE(52993, 106)
      if (((* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28664 ) ))+13) ) != 0)) {
         name←v40464 = (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28664 ) ))+13) );
         }
      else {
         name←v40464 = (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28664 ))+1) ))+13) );
         };
      };
SOURCE(53101, 342)
   if ( ( ((*  (ptr) (*  (ptr) ggData←v28664 ) ) != 0) ? (((unsigned)(* (( (bPt) (*  (ptr) (*  (ptr) ggData←v28664 ) ))+77) ) << 25) >> 31) : 0 ) ) {
SOURCE(53175, 114)
      {
         word pd405;
         pd405 = (* (( (ptr) (* (( (ptr) gf←c104388)+380)/* var←c94820 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd405 ))))((* (( (ptr) ggData←v28664)+3) ), 0, (* (( (ptr) gf←c104388)+32) ), (* (( (ptr) gf←c104388)+69)
             ), pd405);
         };
      }
   else {
SOURCE(53289, 154)
      {
         word pd406;
         pd406 = (* (( (ptr) (* (( (ptr) gf←c104388)+396)/* var←c99012 */  ))+8) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd406 ))))(name←v40464, 0, 1, pd406))) {
SOURCE(53319, 115)
            {
               word pd407;
               pd407 = (* (( (ptr) (* (( (ptr) gf←c104388)+380)/* var←c94820 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd407 ))))((* (( (ptr) ggData←v28664)+3) ), 0, (* (( (ptr) gf←c104388)+32) ), (* (( (ptr) gf←c104388)+70)
                   ), pd407);
               };
            }
         else {
SOURCE(53434, 9)
            ok←v28708 = 1;
            };
         };
      };
SOURCE(52723, 720)
   return(ok←v28708);
   }

static void SetNameFileLabel←P8160(ggData←v28768, name←v28796, file←v28824, label←v28852)
   word ggData←v28768;
   word name←v28796;
   word file←v28824;
   word label←v28852;
   {
   /* SetNameFileLabel: */ 
SOURCE(53449, 539)
SOURCE(53518, 36)
   if (((*  (ptr) ggData←v28768 ) == 0)) {
SOURCE(53548, 6)
      return;
      };
SOURCE(53556, 31)
   (* (( (ptr) (*  (ptr) ggData←v28768 ))+3) ) = file←v28824;
SOURCE(53589, 107)
   if ((((* (( (ptr) (*  (ptr) ggData←v28768 ))+1) ) == 0) || ((* (( (ptr) (*  (ptr) ggData←v28768 ))+2) ) == 0)) || ((*  (ptr) (*  (ptr) ggData←v28768 ) ) == 0)) {
SOURCE(53690, 6)
      return;
      };
SOURCE(53698, 94)
   {
      word var←c99940;
      var←c99940 = name←v28796;
      (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28768 ))+2) ))+13) ) = name←v28796;
      (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28768 ))+1) ))+13) ) = var←c99940;
      (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28768 ) ))+13) ) = var←c99940;
      };
SOURCE(53794, 94)
   {
      word var←c99972;
      var←c99972 = file←v28824;
      (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28768 ))+2) ))+14) ) = file←v28824;
      (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28768 ))+1) ))+14) ) = var←c99972;
      (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28768 ) ))+14) ) = var←c99972;
      };
SOURCE(53890, 98)
   {
      word var←c100004;
      var←c100004 = label←v28852;
      (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28768 ))+2) ))+15) ) = label←v28852;
      (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v28768 ))+1) ))+15) ) = var←c100004;
      (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v28768 ) ))+15) ) = var←c100004;
      };
   }

static word GetBiScroller←P8220(ggData←v28912)
   word ggData←v28912;
   {
   word bs←v28956;
   /* GetBiScroller: */ 
SOURCE(53994, 105)
SOURCE(53994, 105)
   bs←v28956 = 0;
SOURCE(54068, 31)
   bs←v28956 = (* (( (ptr) (*  (ptr) ggData←v28912 ))+4) );
SOURCE(53994, 105)
   return(bs←v28956);
   }

static void GrabInputFocus←P8280(ggData←v29016)
   word ggData←v29016;
   {
   register ptr gf←c104420 =  (ptr) &globalframe;
   /* GrabInputFocus: */ 
SOURCE(54105, 106)
SOURCE(54154, 57)
   {
      word pd408;
      pd408 = (* (( (ptr) (* (( (ptr) gf←c104420)+381)/* var←c94980 */  ))+5) );
      (void) ( *( (fPt) ((*  (ptr) pd408 ))))((* (( (ptr) (*  (ptr) ggData←v29016 ))+5) ), 0, pd408);
      };
   }

static word GetWidth←P8340(ggData←v29076)
   word ggData←v29076;
   {
   register ptr gf←c104452 =  (ptr) &globalframe;
   word width←v29120;
   /* GetWidth: */ 
SOURCE(54217, 140)
SOURCE(54316, 41)
   {
      W4 var←c0957;
      word var←c100036;
      (void) GetViewport←P360((word) &var←c0957, ggData←v29076);
      var←c100036 = var←c0957.f2;
      {
         word pd409;
         pd409 = (* (( (ptr) (* (( (ptr) gf←c104452)+402)/* var←c100068 */  ))+6) );
         width←v29120 = (word) ( *( (fPt) ((*  (ptr) pd409 ))))(var←c100036, pd409);
         };
      };
SOURCE(54217, 140)
   return(width←v29120);
   }

static word GetHeight←P8400(ggData←v29180)
   word ggData←v29180;
   {
   register ptr gf←c104484 =  (ptr) &globalframe;
   word height←v29224;
   /* GetHeight: */ 
SOURCE(54363, 143)
SOURCE(54464, 42)
   {
      W4 var←c0961;
      word var←c100100;
      (void) GetViewport←P360((word) &var←c0961, ggData←v29180);
      var←c100100 = var←c0961.f3;
      {
         word pd410;
         pd410 = (* (( (ptr) (* (( (ptr) gf←c104484)+402)/* var←c100068 */  ))+6) );
         height←v29224 = (word) ( *( (fPt) ((*  (ptr) pd410 ))))(var←c100100, pd410);
         };
      };
SOURCE(54363, 143)
   return(height←v29224);
   }

static void ShowHelp←P8460(ggData←v29284, category←v29312)
   word ggData←v29284;
   word category←v29312;
   {
   register ptr gf←c104516 =  (ptr) &globalframe;
   word openHeight←v40508 = 140;
   word help←v40536 = 0;
   word name←v40564 = 0;
   /* ShowHelp: */ 
SOURCE(54511, 1119)
SOURCE(54628, 253)
   {
      word var←c100132;
      var←c100132 = category←v29312;
      if ((var←c100132 == (* (( (ptr) gf←c104516)+71) ))) {
SOURCE(54667, 21)
         name←v40564 = (* (( (ptr) gf←c104516)+72) );
SOURCE(54690, 16)
         openHeight←v40508 = 140;
         goto endif0411;
         };
      if ((var←c100132 == (* (( (ptr) gf←c104516)+73) ))) {
SOURCE(54720, 28)
         name←v40564 = (* (( (ptr) gf←c104516)+74) );
SOURCE(54750, 16)
         openHeight←v40508 = 210;
         goto endif0411;
         };
      if ((var←c100132 == (* (( (ptr) gf←c104516)+75) ))) {
SOURCE(54781, 23)
         name←v40564 = (* (( (ptr) gf←c104516)+76) );
SOURCE(54806, 16)
         openHeight←v40508 = 210;
         goto endif0411;
         };
SOURCE(54837, 26)
      name←v40564 = (* (( (ptr) gf←c104516)+77) );
SOURCE(54865, 16)
      openHeight←v40508 = 115;
      goto endif0411;
      endif0411: ;
      };
SOURCE(54884, 417)
   {
      word var←c100196;
      W14 var←c0970;
      word var←c100164;
      {
         word pd412;
         pd412 = (* (( (ptr) (* (( (ptr) gf←c104516)+403)/* var←c100228 */  ))+11) );
         var←c100196 = (word) ( *( (fPt) ((*  (ptr) pd412 ))))(pd412);
         };
      {
         word pd413;
         pd413 = (* (( (ptr) (* (( (ptr) gf←c104516)+404)/* var←c100260 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd413 ))))((word) &var←c0970, name←v40564, var←c100196, pd413);
         };
      var←c100164 = (*  (ptr) &var←c0970 );
      {
         word pd414;
         pd414 = (* (( (ptr) (* (( (ptr) gf←c104516)+378)/* var←c94692 */  ))+27) );
         help←v40536 = (word) ( *( (fPt) ((*  (ptr) pd414 ))))(var←c100164, pd414);
         };
      };
   if ((help←v40536 != 0)) {
SOURCE(55017, 61)
      if (((* (( (ptr) help←v40536)+18) ) != 2)) {
SOURCE(55043, 35)
         {
            word pd415;
            pd415 = (* (( (ptr) (* (( (ptr) gf←c104516)+378)/* var←c94692 */  ))+24) );
            (void) ( *( (fPt) ((*  (ptr) pd415 ))))(help←v40536, 2, pd415);
            };
         };
      }
   else {
SOURCE(55089, 119)
      {
         W28 var←c100292;
         W30 var←c0972;
         (*  (ptr) (word) &var←c0972 ) = (* (( (ptr) gf←c104516)+78) );
         XR←FillWords(&(* (W27Pt) (&var←c100292)), 27, 0);
         (* (( (ptr) &var←c100292)+17) ) =  (word) -1;
         (* (( (ptr) &var←c100292)+18) ) = 2;
         (* (( (ptr) &var←c100292)+19) ) = 1493172224;
         (* (( (ptr) &var←c100292)+20) ) = openHeight←v40508;
         (* (( (ptr) &var←c100292)+27) ) = 27;
         (*  (W28Pt) (( (ptr) (word) &var←c0972) + 1) ) = var←c100292;
         (* (( (ptr) (word) &var←c0972) + 29) ) = 0;
         {
            word pd416;
            pd416 = (* (( (ptr) (* (( (ptr) gf←c104516)+378)/* var←c94692 */  ))+6) );
            help←v40536 = (word) ( *( (fPt) ((*  (ptr) pd416 ))))((word) (&var←c0972), pd416);
            };
         };
SOURCE(55210, 91)
      {
         word var←c100324;
         {
            word var←c100356;
            {
               word pd417;
               pd417 = (* (( (ptr) (* (( (ptr) gf←c104516)+403)/* var←c100228 */  ))+11) );
               var←c100356 = (word) ( *( (fPt) ((*  (ptr) pd417 ))))(pd417);
               };
            {
               word pd418;
               pd418 = (* (( (ptr) (* (( (ptr) gf←c104516)+396)/* var←c99012 */  ))+6) );
               var←c100324 = (word) ( *( (fPt) ((*  (ptr) pd418 ))))(var←c100356, name←v40564, pd418);
               };
            };
         {
            word pd419;
            pd419 = (* (( (ptr) (* (( (ptr) gf←c104516)+405)/* var←c100388 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd419 ))))(help←v40536, var←c100324, 0, pd419);
            };
         };
      };
SOURCE(55306, 63)
   {
      word pd420;
      pd420 = (* (( (ptr) (* (( (ptr) gf←c104516)+378)/* var←c94692 */  ))+36) );
      (void) ( *( (fPt) ((*  (ptr) pd420 ))))(help←v40536, openHeight←v40508, pd420);
      };
SOURCE(55371, 59)
   {
      word pd421;
      pd421 = (* (( (ptr) (* (( (ptr) gf←c104516)+378)/* var←c94692 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd421 ))))(help←v40536, 0, 0, 0, pd421);
      };
SOURCE(55459, 47)
   {
      word pd422;
      pd422 = (* (( (ptr) (* (( (ptr) gf←c104516)+378)/* var←c94692 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd422 ))))(help←v40536, 0, pd422);
      };
SOURCE(55508, 30)
   {
      word pd423;
      pd423 = (* (( (ptr) (* (( (ptr) gf←c104516)+378)/* var←c94692 */  ))+38) );
      (void) ( *( (fPt) ((*  (ptr) pd423 ))))(2, 1, pd423);
      };
SOURCE(55564, 66)
   {
      word pd424;
      pd424 = (* (( (ptr) (* (( (ptr) gf←c104516)+380)/* var←c94820 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd424 ))))((* (( (ptr) ggData←v29284)+3) ), 0, (* (( (ptr) gf←c104516)+79) ), (* (( (ptr) gf←c104516)+80)
          ), pd424);
      };
   }

static word ReloadTipTable←P8520(ggData←v29372)
   word ggData←v29372;
   {
   W9 var←c104548;
   register ptr gf←c104580 =  (ptr) &globalframe;
   /* declaration of success←v29416 skipped */ 
   word newTable←v40608 = 0;
   word actionArea←v40636 = 0;
   /* declaration of tableName←v40664 skipped */ 
   /* declaration of msg←v40692 skipped */ 
   /* ReloadTipTable: */ 
SOURCE(55636, 805)
SOURCE(55636, 805)
   (* (( (ptr) &var←c104548)+4)/* success←v29416 */  ) = 1;
SOURCE(55764, 25)
   (* (( (ptr) &var←c104548)+5)/* tableName←v40664 */  ) = 0;
   (* (( (ptr) &var←c104548)+6)/* msg←v40692 */  ) = 0;
SOURCE(55791, 70)
   {
      word var←c100420;
      {
         word pd425;
         pd425 = (* (( (ptr) (* (( (ptr) gf←c104580)+403)/* var←c100228 */  ))+11) );
         var←c100420 = (word) ( *( (fPt) ((*  (ptr) pd425 ))))(pd425);
         };
      {
         word pd426;
         pd426 = (* (( (ptr) (* (( (ptr) gf←c104580)+396)/* var←c99012 */  ))+6) );
         (* (( (ptr) &var←c104548)+5)/* tableName←v40664 */  ) = (word) ( *( (fPt) ((*  (ptr) pd426 ))))(var←c100420, (* (( (ptr) gf←c104580)+81)
             ), pd426);
         };
      };
SOURCE(55863, 98)
   {
      W2 var←c100452;
      var←c100452.f0 = 11;
      var←c100452.f1 = (* (( (ptr) &var←c104548)+5)/* tableName←v40664 */  );
      {
         word pd427;
         pd427 = (* (( (ptr) (* (( (ptr) gf←c104580)+380)/* var←c94820 */  ))+14) );
         (void) ( *( (fPt) ((*  (ptr) pd427 ))))((* (( (ptr) ggData←v29372)+3) ), 1, (* (( (ptr) gf←c104580)+79) ), (* (( (ptr) gf←c104580)+82)
             ), var←c100452, pd427);
         };
      };
SOURCE(55963, 268)
SOURCE(55963, 268)
   {
      /* declaration of var←c01 skipped */ 
      (* (( (ptr) &var←c104548)+7)/* var←c01 */  ) = (* (( (ptr) (* (( (ptr) gf←c104580)+406)/* var←c100484 */  ))+4) );
      {
         /* declaration of var←c02 skipped */ 
         {
            word var←c03;
            {
               word var←c01119;
               var←c01119 = (word) &var←c104548;
               var←c03 = (word) XR←Enable(( ((word)  (fPt) NoName←Q10668) ), ( ((word)  (fPt) NoName←Q10728) ), var←c01119);
               };
            if ((var←c03 == 2)) {
               goto lab←L100037;
               };
            };
         newTable←v40608 = (* (( (ptr) &var←c104548)+8)/* var←c02 */  );
         };
      };
   lab←L100037: ;
SOURCE(56245, 196)
   if ((0 != (* (( (ptr) &var←c104548)+4)/* success←v29416 */  ))) {
SOURCE(56263, 23)
      if ((newTable←v40608 == 0)) {
SOURCE(56286, 5)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(56293, 54)
      {
         word pd428;
         pd428 = (* (( (ptr) (* (( (ptr) gf←c104580)+380)/* var←c94820 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd428 ))))((* (( (ptr) ggData←v29372)+3) ), 3, (* (( (ptr) gf←c104580)+79) ), (* (( (ptr) gf←c104580)+85)
             ), pd428);
         };
SOURCE(56349, 26)
      (* (( (ptr) ggData←v29372)+49) ) = newTable←v40608;
      }
   else {
SOURCE(56384, 57)
      {
         word pd429;
         pd429 = (* (( (ptr) (* (( (ptr) gf←c104580)+380)/* var←c94820 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd429 ))))((* (( (ptr) ggData←v29372)+3) ), 0, (* (( (ptr) gf←c104580)+32) ), (* (( (ptr) &var←c104548)+6)
            /* msg←v40692 */  ), pd429);
         };
      };
SOURCE(55636, 805)
   return((* (( (ptr) &var←c104548)+4)/* success←v29416 */  ));
   }

static word NoName←Q10668(formal←c01114)
   word formal←c01114;
   {
SOURCE(55963, 268)
   {
      word pd430;
      pd430 = (* (( (ptr) formal←c01114)+7) );
      (* (( (ptr) formal←c01114)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd430 ))))((* ((( (ptr) formal←c01114)+5)) ), pd430);
      };
   return(0);
   }

static void PaintActionArea←P8580(ggData←v29476)
   word ggData←v29476;
   {
   register ptr gf←c104612 =  (ptr) &globalframe;
   /* PaintActionArea: */ 
SOURCE(56447, 163)
SOURCE(56497, 113)
   {
      word pd431;
      pd431 = (* (( (ptr) (* (( (ptr) gf←c104612)+378)/* var←c94692 */  ))+16) );
      (void) ( *( (fPt) ((*  (ptr) pd431 ))))((* (( (ptr) (*  (ptr) ggData←v29476 ))+5) ), 1, 0, ggData←v29476, pd431);
      };
   }

static void GGEdited←P8640(ggData←v29536, clientData←v29564)
   word ggData←v29536;
   word clientData←v29564;
   {
   register ptr gf←c104644 =  (ptr) &globalframe;
   /* GGEdited: */ 
SOURCE(56617, 1203)
SOURCE(56677, 338)
   {
      word pd432;
      pd432 = (* (( (ptr) (* (( (ptr) gf←c104644)+400)/* var←c99524 */  ))+20) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd432 ))))(pd432))) {
SOURCE(56722, 75)
         (* (( (ptr) (* (( (ptr) ggData←v29536)+29) ))+5) ) = ((* (( (ptr) (* (( (ptr) ggData←v29536)+29) ))+5) ) + 1);
SOURCE(56799, 216)
         if ((((* (( (ptr) (* (( (ptr) ggData←v29536)+29) ))+5) ) % 20) == 0)) {
SOURCE(56853, 162)
            {
               W2 var←c100548;
               {
                  word pd433;
                  pd433 = (* (( (ptr) (* (( (ptr) gf←c104644)+407)/* var←c100516 */  ))+7) );
                  (void) ( *( (fPt) ((*  (ptr) pd433 ))))((word) &var←c100548, (* (( (ptr) (* (( (ptr) ggData←v29536)+29) ))+4) ), (* (( (ptr) (* (
                           ( (ptr) ggData←v29536)+29) ))+3) ), (* (( (ptr) ggData←v29536)+3) ), pd433);
                  };
               (* (( (ptr) (* (( (ptr) ggData←v29536)+29) ))+3) ) = var←c100548.f1;
               (* (( (ptr) (* (( (ptr) ggData←v29536)+29) ))+4) ) = var←c100548.f0;
               };
            };
         };
      };
SOURCE(57020, 99)
   if ((((*  (ptr) ggData←v29536 ) == 0) || ((*  (ptr) (*  (ptr) ggData←v29536 ) ) == 0)) || ((* (( (ptr) (*  (ptr) ggData←v29536 ))+1)
    ) == 0)) {
SOURCE(57113, 6)
      return;
      };
SOURCE(57121, 699)
   if ( ! ((* (( (bPt) (*  (ptr) (*  (ptr) ggData←v29536 ) ))+76) ) & 04)) {
SOURCE(57167, 658)
      {
         word dirtyNoNameIconG←v40736;
         word dirtyIconG←v40764;
SOURCE(57217, 80)
         {
            W5 var←c100580;
            {
               word pd434;
               pd434 = (* (( (ptr) (* (( (ptr) gf←c104644)+377)/* var←c94660 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd434 ))))((word) (&var←c100580), pd434);
               };
            dirtyIconG←v40764 = var←c100580.f4;
            dirtyNoNameIconG←v40736 = var←c100580.f2;
            };
SOURCE(57299, 102)
         if (((* (( (ptr) (*  (ptr) (*  (ptr) ggData←v29536 ) ))+14) ) == 0)) {
            (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v29536 ) ))+17) ) = dirtyNoNameIconG←v40736;
            }
         else {
            (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v29536 ) ))+17) ) = dirtyIconG←v40764;
            };
SOURCE(57403, 39)
         (* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v29536 ))+1) )) + 19) ) |= 67108864;
SOURCE(57487, 40)
         (* (( (ptr) (*  (ptr) (*  (ptr) ggData←v29536 ) )) + 19) ) |= 67108864;
SOURCE(57529, 118)
         if (((* (( (ptr) (*  (ptr) (*  (ptr) ggData←v29536 ) ))+22) ) == 0)) {
SOURCE(57593, 54)
            {
               word pd435;
               pd435 = (* (( (ptr) (* (( (ptr) gf←c104644)+378)/* var←c94692 */  ))+16) );
               (void) ( *( (fPt) ((*  (ptr) pd435 ))))((*  (ptr) (*  (ptr) ggData←v29536 ) ), 3, 1, 0, pd435);
               };
            };
SOURCE(57649, 171)
         if (((*  (ptr) (*  (ptr) ggData←v29536 ) ) != (* (( (ptr) (*  (ptr) ggData←v29536 ))+1) ))) {
SOURCE(57704, 116)
            if (((* (( (ptr) (* (( (ptr) (*  (ptr) ggData←v29536 ))+1) ))+22) ) == 0)) {
SOURCE(57767, 53)
               {
                  word pd436;
                  pd436 = (* (( (ptr) (* (( (ptr) gf←c104644)+378)/* var←c94692 */  ))+16) );
                  (void) ( *( (fPt) ((*  (ptr) pd436 ))))((* (( (ptr) (*  (ptr) ggData←v29536 ))+1) ), 3, 1, 0, pd436);
                  };
               };
            };
         };
      };
   }

static void NoName←Q10728(formal←c0998, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0998;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c01117 =  (ptr) &globalframe;
   if ((formal←c200001 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c01117)+404)/* var←c100260 */  ))+4) ) ))) {
      {
         W4 error←v88852;
         error←v88852 = (*  (W4Pt) formal←c200003 );
SOURCE(56031, 15)
         (* (( (ptr) formal←c200000)+4) ) = 0;
SOURCE(56049, 60)
         {
            word pd437;
            pd437 = (* (( (ptr) (* (( (ptr) gf←c01117)+396)/* var←c99012 */  ))+6) );
            (* (( (ptr) formal←c200000)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd437 ))))((* (( (ptr) gf←c01117)+83) ), (* (( (ptr) formal←c200000)+5)
                ), pd437);
            };
SOURCE(56111, 8)
         (*  (ptr) formal←c0998 ) = 2;
         (* (( (ptr) formal←c0998)+1) ) = 2;
         return;
         };
      }
   else {
      if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c01117)+406)/* var←c100484 */  ))+6) ))) {
         {
            word errorMsg←v89004;
            errorMsg←v89004 = (*  (ptr) formal←c200003 );
SOURCE(56148, 15)
            (* (( (ptr) formal←c200000)+4) ) = 0;
SOURCE(56165, 66)
            {
               word pd438;
               pd438 = (* (( (ptr) (* (( (ptr) gf←c01117)+396)/* var←c99012 */  ))+6) );
               (* (( (ptr) formal←c200000)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd438 ))))((* (( (ptr) gf←c01117)+84) ), (* (( (ptr) formal←c200000)+5)
                   ), pd438);
               };
SOURCE(56233, 8)
            (*  (ptr) formal←c0998 ) = 2;
            (* (( (ptr) formal←c0998)+1) ) = 2;
            return;
            };
         };
      };
   (*  (ptr) formal←c0998 ) = 0;
   (* (( (ptr) formal←c0998)+1) ) = 0;
   return;
   }

/* file: GGStateImpl, module: GGStateImpl, compiled at: July 13, 1993 1:26:26 pm PDT */ 
extern void XR←install←GGStateImpl() {
   NoName←Q10608();
   }
extern void XR←run←GGStateImpl() { XR←Start(&globalframe); }