/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 11, 1993 8:11:07 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: GGSliceImplF, module: GGSliceImplF */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [365406149,139869278] GGSliceImplF";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W16 f; W7 r;} W23;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W2 *W2Pt;
typedef W6 *W6Pt;
typedef struct {W8 f; word r;} W9;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W8 f; W4 r;} W12;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {word f0, f1, f2;} W3;
typedef W3 *W3Pt;
typedef W5 *W5Pt;
#define SOURCE(p, l) /* source p, l */
static float fc92 = 1.0;
static float fc93 = 2834.646;
static float fc103 = 0.0;
static float fc108 = 100.0;
static float fc111 = 2.0;
static float fc139 = -1.0;
static float fc171 = 2000.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc233 = 8701.28;
static float fc237 = 8710.19;
static float fc242 = 5.0;
static float fc246 = 8612.04;
static float fc255 = 8706.08;
static float fc266 = 1E16;
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc341 = 1E6;
static void NoName←Q7452();
static void GGSliceImplF←P0();
static word BuildIPSliceClass←P60();
static word MakeIPSliceFromFile←P120();
static word MakeIPSliceFromMaster←P180();
static word NoName←Q7512();
static word NoName←Q7572();
static word CheckPair←P5580();
static void ShowWarnings←P5688();
static void PlayFakeScene←P5748();
static word MakeIPSliceFromMaskPixel←P240();
static word MakeIPSliceAux←P300();
static void SetIncludeByValue←P360();
static word GetIncludeByValue←P420();
static void SetDefaultUseLatestIPVersion←P480();
static word GetDefaultUseLatestIPVersion←P540();
static void IPSetBoundBox←P600();
static word IPGetBoundBox←P660();
static word IPGetTightBox←P720();
static word IPCopy←P780();
static void IPRestore←P840();
static void IPDrawParts←P900();
static void DoIPDrawParts←P5952();
static void IPDrawTransform←P960();
static void DoIPDrawTransform←P6012();
static void IPDrawSelectionFeedback←P1020();
static word FindImagerObject←P1080();
static word CompareProps←P6120();
static word CreateProps←P1140();
static void CachedIPDraw←P1200();
static word NoName←Q7632();
static void IPDrawObject←P1260();
static void IPDrawInnards←P1320();
static word NoName←Q7692();
static void DrawSelectionFeedbackAux←P1380();
static void DoDrawFeedback←P6228();
static void IPTransform←P1440();
static word IPDescribe←P1500();
static word IPDescribeHit←P1560();
static void IPFileout←P1620();
static void FromMemory←P6480();
static word IPFilein←P1680();
static word NoName←Q7752();
static word IPIsEmptyParts←P1740();
static word IPIsCompleteParts←P1800();
static word IPNewParts←P1860();
static word IPUnionParts←P1920();
static word IPDiffParts←P1980();
static void IPMovingParts←P2040();
static word IPAugmentParts←P2100();
static word IPPointsInDescriptor←P2160();
static void IPWalkPointsInDescriptor←P2220();
static word IPPointPairsInDescriptor←P2280();
static word IPSegmentsInDescriptor←P2340();
static word IPWalkSegments←P2400();
static void IPNextSegment←P2460();
static void IPNextPoint←P2520();
static void GetIPPoint←P2580();
static void IPNextPointPair←P2640();
static void IPClosestPoint←P2700();
static void IPClosestSegment←P2760();
static void IPFilledPathsUnderPoint←P2820();
static word PointIsInBox←P2880();
static void MakeComplete←P2940();
static word IsComplete←P3000();
static word IsEmpty←P3060();
static word NoOpIsEmptyParts←P3120();
static word NoOpIsCompleteParts←P3180();
static word NoOpNewParts←P3240();
static word NoOpUnionParts←P3300();
static word NoOpDifferenceParts←P3360();
static void NoOpMovingParts←P3420();
static word NoOpAugmentParts←P3480();
static word NoOpAlterParts←P3540();
static void NoOpSetSelectedFields←P3600();
static word NoOpPointsInDescriptor←P3660();
static word NoOpPointPairsInDescriptor←P3720();
static word NoOpSegmentsInDescriptor←P3780();
static word NoOpWalkSegments←P3840();
static void NoOpNextPoint←P3900();
static void NoOpNextPointPair←P3960();
static void NoOpNextSegment←P4020();
static void NoOpClosestPoint←P4080();
static void NoOpClosestJointToHitData←P4140();
static void NoOpClosestPointAndTangent←P4200();
static void NoOpClosestSegment←P4260();
static void NoOpFilledPathsUnderPoint←P4320();
static void NoOpLineIntersection←P4380();
static void NoOpCircleIntersection←P4440();
static word NoOpHitDataAsSimpleCurve←P4500();
static void NoOpSetDefaults←P4560();
static word NoOpSetStrokeWidth←P4620();
static void NoOpGetStrokeWidth←P4680();
static void NoOpSetStrokeEnd←P4740();
static void NoOpGetStrokeEnd←P4800();
static void NoOpSetStrokeJoint←P4860();
static void NoOpGetStrokeJoint←P4920();
static void NoOpSetStrokeColor←P4980();
static void NoOpGetStrokeColor←P5040();
static void NoOpSetFillColor←P5100();
static void NoOpGetFillColor←P5160();
static void NoOpSetArrows←P5220();
static void NoOpGetArrows←P5280();
static void NoOpSetDashed←P5340();
static void NoOpGetDashed←P5400();
static void GetMaster←P5460();
static void Init←P5520();
static void NoName←Q7812();
static void NoName←Q7872();
static void NoName←Q7932();
static void NoName←Q7992();
static void NoName←Q8052();
static struct {unsigned f; char r[16];} string1 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\146\072\276\323\300\221\127\350\046\100\200\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\144\000\000"};
static struct {unsigned f; char r[4];} string6 = {196611, "\004@\321"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\224\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\011\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\107\210\000\000"};
static struct {unsigned f; char r[20];} string10 = {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];} string11 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\025\307\247\305\300\010\126\074\136\100\244\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\354\000\000"};
static struct {unsigned f; char r[4];} string14 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\214\000\000"};
static struct {unsigned f; char r[44];} string16 = {2752556, "\260\006\005\146\151\162\163\164\257\300\015\277\004\146\300\034\367\146\045\112\114\005\004\162\145\163\164\214\257\300\015\277\004\146\300\034\367\146\045\112\114\261\000"};
static struct {unsigned f; char r[28];} string17 = {1572888, "\006\002\000\007\000\040\016\000\003\001\000\000\000\000\014\014\000\014\014\014\014\000\010\001\000\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\025\307\247\305\300\010\126\074\136\100\260\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\025\307\247\305\300\010\126\074\136\100\274\000\000"};
static struct {unsigned f; char r[4];} string20 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\025\307\247\305\300\010\126\074\136\100\214\000\000"};
static struct {unsigned f; char r[4];} string22 = {196611, "\004B{"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\247\365\203\234\300\047\265\225\046\100\324\000\000"};
static struct {unsigned f; char r[32];} string24 = {1966110, "\006\015\000\001\004\001\010\001\034\001\040\001\044\001\050\001\054\001\060\001\064\001\074\001\100\110\001\100\130\001\000"};
static struct {unsigned f; char r[48];} string25 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\247\365\203\234\300\047\265\225\046\100\324\005\004\162\145\163\164\214\216\257\300\247\365\203\234\300\047\265\225\046\100\324\261\000\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\025\307\247\305\300\010\126\074\136\100\230\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\025\307\247\305\300\010\126\074\136\102\000\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\104\254\000\000"};
static struct {unsigned f; char r[4];} string29 = {131074, "\003\005\000"};
static struct {unsigned f; char r[12];} string30 = {655372, "GGIPObject\000"};
static struct {unsigned f; char r[12];} string31 = {524300, "Gargoyle\000\000\000"};
static struct {unsigned f; char r[24];} string32 = {1441816, "Imager Warning[%g]: %g\000"};
static struct {unsigned f; char r[8];} string33 = {458760, "Warning"};
static struct {unsigned f; char r[4];} string34 = {131076, "IP\000"};
static struct {unsigned f; char r[12];} string35 = {720908, "bottom edge"};
static struct {unsigned f; char r[12];} string36 = {655372, "right edge\000"};
static struct {unsigned f; char r[12];} string37 = {720908, "an IP slice"};
static struct {unsigned f; char r[32];} string38 = {1900576, "multiple parts of an IP slice\000\000"};
static struct {unsigned f; char r[24];} string39 = {1507352, "NO parts of an IP slice"};
static struct {unsigned f; char r[16];} string40 = {983056, " of an IP slice"};
static struct {unsigned f; char r[12];} string41 = {524300, "top edge\000\000\000"};
static struct {unsigned f; char r[8];} string42 = {327688, "\042%q\042 \000\000"};
static struct {unsigned f; char r[20];} string43 = {1114132, " includeByValue: \000\000"};
static struct {unsigned f; char r[24];} string44 = {1376280, "Interpress/Xerox/3.0 \000\000"};
static struct {unsigned f; char r[4];} string45 = {196612, "%g\012"};
static struct {unsigned f; char r[12];} string46 = {655372, " props: ( \000"};
static struct {unsigned f; char r[4];} string47 = {65540, ")\000\000"};
static struct {unsigned f; char r[16];} string48 = {983056, "includeByValue:"};
static struct {unsigned f; char r[12];} string49 = {589836, "props: ( \000\000"};
static struct {unsigned f; char r[12];} string50 = {589836, "left edge\000\000"};
static struct {unsigned f; char r[20];} string51 = {1179668, "lower right corner\000"};
static struct {unsigned f; char r[20];} string52 = {1179668, "upper right corner\000"};
static struct {unsigned f; char r[20];} string53 = {1114132, "upper left corner\000\000"};
static struct {unsigned f; char r[20];} string54 = {1048596, "Broken Invariant\000\000\000"};
static struct {unsigned f; char r[40];} string55 = {2490408, "All slice classes must have this proc.\000"};
static struct {unsigned f; char r[20];} string56 = {1114132, "lower left corner\000\000"};
static struct {unsigned f; char r[8];} string57 = {458760, "IP read"};
static struct {unsigned f; char r[16];} string58 = {851984, "\257\300\025\307\247\305\300\010\126\074\136\100\164\000\000"};
static struct {unsigned f; char r[20];} string59 = {1114129, "\006\005\034\001\040\001\044\001\050\001\100\234\010\000\004\034\001\000\000"};
static struct {unsigned f; char r[16];} string60 = {851984, "\257\300\322\334\347\304\300\124\107\000\027\100\150\000\000"};
static struct {unsigned f; char r[16];} string61 = {851984, "\257\300\103\154\257\030\300\165\276\076\350\100\150\000\000"};
static struct {unsigned f; char r[16];} string62 = {851984, "\257\300\344\212\014\176\300\070\230\121\123\100\150\000\000"};
static struct {unsigned f; char r[16];} string63 = {851984, "\257\300\161\264\233\303\300\026\075\022\161\100\150\000\000"};
static struct {unsigned f; char r[16];} string64 = {851984, "\257\300\265\217\206\011\300\172\271\371\033\100\150\000\000"};
static struct {unsigned f; char r[16];} string65 = {851984, "\257\300\254\061\235\240\300\234\075\103\347\100\150\000\000"};
static struct {unsigned f; char r[16];} string66 = {851984, "\257\300\354\026\341\177\300\147\046\234\221\100\150\000\000"};
static struct {unsigned f; char r[16];} string67 = {851984, "\257\300\034\077\173\126\300\270\206\201\035\100\150\000\000"};
static struct {unsigned f; char r[16];} string68 = {851984, "\257\300\236\155\220\261\300\040\017\026\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string69 = {851984, "\257\300\045\215\147\016\300\153\043\150\276\100\150\000\000"};
static struct {unsigned f; char r[16];} string70 = {851984, "\257\300\317\075\344\275\300\105\331\241\110\100\150\000\000"};
static struct {unsigned f; char r[16];} string71 = {851984, "\257\300\347\101\365\007\300\150\102\366\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string72 = {851984, "\257\300\043\211\212\366\300\343\003\307\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string73 = {851984, "\257\300\235\036\354\311\300\234\133\201\260\100\150\000\000"};
static struct {unsigned f; char r[4];} string74 = {1195856748, "ice"};
static struct {unsigned f; char r[16];} string75 = {851984, "\257\300U$)\337\300Xo9\243@t\000\000"};
static struct {unsigned f; char r[16];} string76 = {851984, "\257\300\336\025\013\356\300\216\115\352\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string77 = {851984, "\257\300\104\154\010\164\300\126\073\363\036\100\150\000\000"};
static struct {unsigned f; char r[16];} string78 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\000\172\225\152\300\104\041\252\375\100\150\000\000"};
static struct {unsigned f; char r[16];} string80 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string81 = {851984, "\257\300\124\360\214\337\300\200\347\202\313\100\150\000\000"};
static struct {unsigned f; char r[16];} string82 = {851984, "\257\300\320\075\073\162\300\001\171\341\017\100\150\000\000"};
static struct {unsigned f; char r[16];} string83 = {851984, "\257\300\260\031\103\232\300\163\372\347\321\100\150\000\000"};
static struct {unsigned f; char r[16];} string84 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string85 = {851984, "\257\300\146\072\276\323\300\221\127\350\046\100\150\000\000"};
static struct {unsigned f; char r[16];} string86 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string87 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string88 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string89 = {851984, "\257\300\072\337\114\355\300\232\070\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string90 = {851984, "\257\300\004\142\347\110\300\363\053\254\345\100\150\000\000"};
static W2 dummy278;
static struct {
   word f0[67]; word f67; word f68; word f69; 
   word f70; word f71; word f72; word f73; 
   word f74; word f75; word f76; word f77; 
   word f78; word f79; word f80; word f81; 
   word f82; word f83; word f84; word f85; 
   word f86; word f87; word f88; word f89; 
   word f90; word f91; word f92; word f93; 
   word f94; word f95; word f96; word f97; 
   word f98; word f99; word f100; word f101; 
   word f102; word f103; word f104; word f105; 
   word f106; word f107; word f108; word f109; 
   word f110; word f111; word f112; word f113; 
   word f114; word f115; word f116; word f117; 
   word f118; word f119; word f120; word f121; 
   word f122; word f123; word f124; word f125; 
   word f126; word f127; word f128; word f129; 
   word f130; word f131; word f132; word f133; 
   word f134; word f135; word f136; word f137; 
   word f138; word f139; word f140; word f141; 
   word f142; word f143; word f144; word f145; 
   word f146; word f147; word f148; word f149; 
   word f150; word f151; word f152; word f153; 
   word f154; word f155; word f156; word f157; 
   word f158; word f159; word f160; word f161; 
   word f162; word f163; word f164; word f165; 
   word f166; word f167; word f168; word f169; 
   word f170; word f171; word f172; word f173; 
   word f174; word f175; word f176; word f177; 
   word f178; word f179; word f180; word f181; 
   word f182; word f183; word f184; word f185; 
   word f186; word f187; word f188; word f189; 
   word f190; word f191; word f192; word f193; 
   word f194; word f195; word f196; word f197; 
   word f198; word f199; word f200; word f201; 
   word f202; word f203; word f204; word f205; 
   word f206; word f207; word f208; word f209; 
   word f210; word f211; word f212; word f213; 
   word f214; word f215; word f216; word f217; 
   word f218; 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[56]; 
   } globalframe = {
   {0}, (word) Init←P5520, 0, (word) GetMaster←P5460, 
   0, (word) NoOpGetDashed←P5400, 0, (word) NoOpSetDashed←P5340, 
   0, (word) NoOpGetArrows←P5280, 0, (word) NoOpSetArrows←P5220, 
   0, (word) NoOpGetFillColor←P5160, 0, (word) NoOpSetFillColor←P5100, 
   0, (word) NoOpGetStrokeColor←P5040, 0, (word) NoOpSetStrokeColor←P4980, 
   0, (word) NoOpGetStrokeJoint←P4920, 0, (word) NoOpSetStrokeJoint←P4860, 
   0, (word) NoOpGetStrokeEnd←P4800, 0, (word) NoOpSetStrokeEnd←P4740, 
   0, (word) NoOpGetStrokeWidth←P4680, 0, (word) NoOpSetStrokeWidth←P4620, 
   0, (word) NoOpSetDefaults←P4560, 0, (word) NoOpHitDataAsSimpleCurve←P4500, 
   0, (word) NoOpCircleIntersection←P4440, 0, (word) NoOpLineIntersection←P4380, 
   0, (word) NoOpFilledPathsUnderPoint←P4320, 0, (word) NoOpClosestSegment←P4260, 
   0, (word) NoOpClosestPointAndTangent←P4200, 0, (word) NoOpClosestJointToHitData←P4140, 
   0, (word) NoOpClosestPoint←P4080, 0, (word) NoOpNextSegment←P4020, 
   0, (word) NoOpNextPointPair←P3960, 0, (word) NoOpNextPoint←P3900, 
   0, (word) NoOpWalkSegments←P3840, 0, (word) NoOpSegmentsInDescriptor←P3780, 
   0, (word) NoOpPointPairsInDescriptor←P3720, 0, (word) NoOpPointsInDescriptor←P3660, 
   0, (word) NoOpSetSelectedFields←P3600, 0, (word) NoOpAlterParts←P3540, 
   0, (word) NoOpAugmentParts←P3480, 0, (word) NoOpMovingParts←P3420, 
   0, (word) NoOpDifferenceParts←P3360, 0, (word) NoOpUnionParts←P3300, 
   0, (word) NoOpNewParts←P3240, 0, (word) NoOpIsCompleteParts←P3180, 
   0, (word) NoOpIsEmptyParts←P3120, 0, (word) IsEmpty←P3060, 
   0, (word) IsComplete←P3000, 0, (word) MakeComplete←P2940, 
   0, (word) PointIsInBox←P2880, 0, (word) IPFilledPathsUnderPoint←P2820, 
   0, (word) IPClosestSegment←P2760, 0, (word) IPClosestPoint←P2700, 
   0, (word) IPNextPointPair←P2640, 0, (word) GetIPPoint←P2580, 
   0, (word) IPNextPoint←P2520, 0, (word) IPNextSegment←P2460, 
   0, (word) IPWalkSegments←P2400, 0, (word) IPSegmentsInDescriptor←P2340, 
   0, (word) IPPointPairsInDescriptor←P2280, 0, (word) IPWalkPointsInDescriptor←P2220, 
   0, (word) IPPointsInDescriptor←P2160, 0, (word) IPAugmentParts←P2100, 
   0, (word) IPMovingParts←P2040, 0, (word) IPDiffParts←P1980, 
   0, (word) IPUnionParts←P1920, 0, (word) IPNewParts←P1860, 
   0, (word) IPIsCompleteParts←P1800, 0, (word) IPIsEmptyParts←P1740, 
   0, (word) IPFilein←P1680, 0, (word) IPFileout←P1620, 
   0, (word) IPDescribeHit←P1560, 0, (word) IPDescribe←P1500, 
   0, (word) IPTransform←P1440, 0, (word) DrawSelectionFeedbackAux←P1380, 
   0, (word) IPDrawInnards←P1320, 0, (word) IPDrawObject←P1260, 
   0, (word) CachedIPDraw←P1200, 0, (word) CreateProps←P1140, 
   0, (word) FindImagerObject←P1080, 0, (word) IPDrawSelectionFeedback←P1020, 
   0, (word) IPDrawTransform←P960, 0, (word) IPDrawParts←P900, 
   0, (word) IPRestore←P840, 0, (word) IPCopy←P780, 
   0, (word) IPGetTightBox←P720, 0, (word) IPGetBoundBox←P660, 
   0, (word) IPSetBoundBox←P600, 0, (word) GetDefaultUseLatestIPVersion←P540, 
   0, (word) SetDefaultUseLatestIPVersion←P480, 0, (word) GetIncludeByValue←P420, 
   0, (word) SetIncludeByValue←P360, 0, (word) MakeIPSliceAux←P300, 
   0, (word) MakeIPSliceFromMaskPixel←P240, 0, (word) MakeIPSliceFromMaster←P180, 
   0, (word) MakeIPSliceFromFile←P120, 0, (word) BuildIPSliceClass←P60, 
   0, (word) GGSliceImplF←P0, {0}
   };

static void NoName←Q7452()
   {
   register ptr gf←c0889 =  (ptr) &globalframe;
   word var←c87772;
   (* (( (ptr) gf←c0889)+12) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0889)+13) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0889)+14) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0889)+15) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (* (( (ptr) gf←c0889)+16) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string8);
   (* (( (ptr) gf←c0889)+18) ) = (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11);
   (* (( (ptr) gf←c0889)+19) ) = (word) XR←GetTypeIndexS((word) (&string12));
   (* (( (ptr) gf←c0889)+24) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string2);
   (* (( (ptr) gf←c0889)+25) ) = (word) XR←GetTypeIndex((word) &string14, 0, (word) &string2);
   (* (( (ptr) gf←c0889)+28) ) = (word) XR←GetTypeIndexS((word) (&string15));
   (* (( (ptr) gf←c0889)+29) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string17);
   (* (( (ptr) gf←c0889)+30) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string2);
   (* (( (ptr) gf←c0889)+31) ) = (word) XR←GetTypeIndex((word) &string19, 0, (word) &string20);
   (* (( (ptr) gf←c0889)+32) ) = (word) XR←GetTypeIndex((word) &string21, 0, (word) &string22);
   (* (( (ptr) gf←c0889)+33) ) = (word) XR←GetTypeIndex((word) &string23, 0, (word) &string24);
   (* (( (ptr) gf←c0889)+35) ) = (word) XR←GetTypeIndex((word) &string25, 0, (word) &string11);
   (* (( (ptr) gf←c0889)+36) ) = (word) XR←GetTypeIndexS((word) (&string26));
   (* (( (ptr) gf←c0889)+37) ) = (word) XR←GetTypeIndex((word) &string27, 0, (word) &string2);
   (* (( (ptr) gf←c0889)+38) ) = (word) XR←GetTypeIndex((word) &string28, 0, (word) &string29);
   (*  (ptr) (( (bPt) gf←c0889)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+25) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c0889)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+25) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c0889)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c0889)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+25) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c0889)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+25) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c0889)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c0889)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c0889)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c0889)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c0889)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c0889)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c0889)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c0889)+204) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c0889)+208) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c0889)+212) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c0889)+216) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c0889)+220) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c0889)+224) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c0889)+228) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c0889)+232) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c0889)+236) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c0889)+240) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c0889)+244) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string52);
   (*  (ptr) (( (bPt) gf←c0889)+248) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string53);
   (*  (ptr) (( (bPt) gf←c0889)+252) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string54);
   (*  (ptr) (( (bPt) gf←c0889)+256) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string55);
   (*  (ptr) (( (bPt) gf←c0889)+260) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string56);
   (*  (ptr) (( (bPt) gf←c0889)+264) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0889)+12) ), (word) &string57);
   (void) XR←DeclareGlobalFrame((word) "GGSliceImplF", &globalframe, (word) XR←GetTypeIndex((word) &string58, 0, (word) &string59)
      , (word) (( (bPt) gf←c0889)+1004)/* var←c82620 */ );
   var←c87772 = (word) XR←ImportInterface((word) "Feedback", (word) XR←GetTypeIndexS((word) (&string60)), 25);
   (* (( (ptr) gf←c0889)+277)/* var←c83036 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67372545);
   (void) XR←ImportProcS(var←c87772, 1313029);
   (void) XR←ImportProcS(var←c87772, 1050628);
   var←c87772 = (word) XR←ImportInterface((word) "FileNames", (word) XR←GetTypeIndexS((word) (&string61)), 17);
   (* (( (ptr) gf←c0889)+302)/* var←c86076 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67373313);
   var←c87772 = (word) XR←ImportInterface((word) "FS", (word) XR←GetTypeIndexS((word) (&string62)), 36);
   (* (( (ptr) gf←c0889)+303)/* var←c86108 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 403703812);
   var←c87772 = (word) XR←ImportInterface((word) "FunctionCache", (word) XR←GetTypeIndexS((word) (&string63)), 14);
   (* (( (ptr) gf←c0889)+294)/* var←c84892 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67633154);
   (void) XR←ImportProcS(var←c87772, 1311237);
   (void) XR←ImportProcS(var←c87772, 135005443);
   var←c87772 = (word) XR←ImportInterface((word) "GGBoundBox", (word) XR←GetTypeIndexS((word) (&string64)), 24);
   (* (( (ptr) gf←c0889)+284)/* var←c83420 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 337647364);
   (void) XR←ImportProcS(var←c87772, 337647108);
   (void) XR←ImportProcS(var←c87772, 527618);
   (void) XR←ImportProcS(var←c87772, 268699393);
   (void) XR←ImportProcS(var←c87772, 67634434);
   (void) XR←ImportProcS(var←c87772, 67109376);
   (void) XR←ImportProcS(var←c87772, 67373057);
   (void) XR←ImportProcS(var←c87772, 68158977);
   (void) XR←ImportProcS(var←c87772, 67371777);
   (void) XR←ImportProcS(var←c87772, 68681990);
   var←c87772 = (word) XR←ImportInterface((word) "GGFileOps", (word) XR←GetTypeIndexS((word) (&string65)), 7);
   (* (( (ptr) gf←c0889)+306)/* var←c87676 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 135005699);
   var←c87772 = (word) XR←ImportInterface((word) "GGFromImager", (word) XR←GetTypeIndexS((word) (&string66)), 2);
   (* (( (ptr) gf←c0889)+287)/* var←c83708 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67633410);
   var←c87772 = (word) XR←ImportInterface((word) "GGMUserProfile", (word) XR←GetTypeIndexS((word) (&string67)), 3);
   (* (( (ptr) gf←c0889)+295)/* var←c85052 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67109120);
   var←c87772 = (word) XR←ImportInterface((word) "GGParseIn", (word) XR←GetTypeIndexS((word) (&string68)), 26);
   (* (( (ptr) gf←c0889)+301)/* var←c86044 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 525826);
   (void) XR←ImportProcS(var←c87772, 67373313);
   (void) XR←ImportProcS(var←c87772, 262401);
   (void) XR←ImportProcS(var←c87772, 67376641);
   (void) XR←ImportProcS(var←c87772, 67376129);
   (void) XR←ImportProcS(var←c87772, 525570);
   (void) XR←ImportProcS(var←c87772, 67377409);
   (void) XR←ImportProcS(var←c87772, 67375105);
   var←c87772 = (word) XR←ImportInterface((word) "GGParseOut", (word) XR←GetTypeIndexS((word) (&string69)), 15);
   (* (( (ptr) gf←c0889)+299)/* var←c85948 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 526594);
   (void) XR←ImportProcS(var←c87772, 527106);
   (void) XR←ImportProcS(var←c87772, 527874);
   (void) XR←ImportProcS(var←c87772, 525826);
   var←c87772 = (word) XR←ImportInterface((word) "GGProps", (word) XR←GetTypeIndexS((word) (&string70)), 11);
   (* (( (ptr) gf←c0889)+291)/* var←c84540 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 1050116);
   var←c87772 = (word) XR←ImportInterface((word) "GGScene", (word) XR←GetTypeIndexS((word) (&string71)), 50);
   (* (( (ptr) gf←c0889)+288)/* var←c83740 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 263169);
   (void) XR←ImportProcS(var←c87772, 67380993);
   (void) XR←ImportProcS(var←c87772, 67381249);
   var←c87772 = (word) XR←ImportInterface((word) "GGSegment", (word) XR←GetTypeIndexS((word) (&string72)), 47);
   (* (( (ptr) gf←c0889)+290)/* var←c83996 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67374337);
   (void) XR←ImportProcS(var←c87772, 68419843);
   var←c87772 = (word) XR←ImportInterface((word) "GGShapes", (word) XR←GetTypeIndexS((word) (&string73)), 20);
   (* (( (ptr) gf←c0889)+293)/* var←c84828 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 1052419);
   (void) XR←ImportProcS(var←c87772, 1314820);
   (void) XR←ImportProcS(var←c87772, 1315076);
   var←c87772 = (word) XR←ImportInterface((word) &string74, (word) XR←GetTypeIndexS((word) (&string75)), 128);
   (* (( (ptr) gf←c0889)+279)/* var←c83132 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67634178);
   (void) XR←ImportProcS(var←c87772, 67371777);
   (void) XR←ImportProcS(var←c87772, 134774274);
   (void) XR←ImportProcS(var←c87772, 68189444);
   (void) XR←ImportProcS(var←c87772, 336100354);
   (void) XR←ImportProcS(var←c87772, 1866503);
   (void) XR←ImportProcS(var←c87772, 134511105);
   (void) XR←ImportProcS(var←c87772, 1341701);
   (void) XR←ImportProcS(var←c87772, 134772738);
   (void) XR←ImportProcS(var←c87772, 1341189);
   (void) XR←ImportProcS(var←c87772, 134772226);
   (void) XR←ImportProcS(var←c87772, 1340677);
   (void) XR←ImportProcS(var←c87772, 134771714);
   (void) XR←ImportProcS(var←c87772, 1078020);
   (void) XR←ImportProcS(var←c87772, 134771202);
   (void) XR←ImportProcS(var←c87772, 1077508);
   (void) XR←ImportProcS(var←c87772, 134770690);
   (void) XR←ImportProcS(var←c87772, 68185860);
   (void) XR←ImportProcS(var←c87772, 1076740);
   (void) XR←ImportProcS(var←c87772, 67661058);
   (void) XR←ImportProcS(var←c87772, 134769666);
   (void) XR←ImportProcS(var←c87772, 134769410);
   (void) XR←ImportProcS(var←c87772, 470837251);
   (void) XR←ImportProcS(var←c87772, 337143556);
   (void) XR←ImportProcS(var←c87772, 810499);
   (void) XR←ImportProcS(var←c87772, 67656962);
   (void) XR←ImportProcS(var←c87772, 67653634);
   (void) XR←ImportProcS(var←c87772, 806659);
   (void) XR←ImportProcS(var←c87772, 1854727);
   (void) XR←ImportProcS(var←c87772, 2115848);
   (void) XR←ImportProcS(var←c87772, 2377737);
   (void) XR←ImportProcS(var←c87772, 279297);
   (void) XR←ImportProcS(var←c87772, 68189956);
   var←c87772 = (word) XR←ImportInterface((word) "GGSliceOps", (word) XR←GetTypeIndexS((word) (&string76)), 73);
   (* (( (ptr) gf←c0889)+292)/* var←c84732 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67901699);
   (void) XR←ImportProcS(var←c87772, 470820867);
   (void) XR←ImportProcS(var←c87772, 67634434);
   var←c87772 = (word) XR←ImportInterface((word) "GGTransform", (word) XR←GetTypeIndexS((word) (&string77)), 7);
   (* (( (ptr) gf←c0889)+289)/* var←c83868 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 135004418);
   (void) XR←ImportProcS(var←c87772, 67108864);
   var←c87772 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string78)), 84);
   (* (( (ptr) gf←c0889)+282)/* var←c83356 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 1328387);
   (void) XR←ImportProcS(var←c87772, 1331972);
   (void) XR←ImportProcS(var←c87772, 526850);
   (void) XR←ImportProcS(var←c87772, 526338);
   (void) XR←ImportProcS(var←c87772, 542978);
   (void) XR←ImportProcS(var←c87772, 541186);
   (void) XR←ImportProcS(var←c87772, 540930);
   (void) XR←ImportProcS(var←c87772, 540674);
   (void) XR←ImportProcS(var←c87772, 531202);
   (void) XR←ImportProcS(var←c87772, 536578);
   (void) XR←ImportProcS(var←c87772, 527106);
   var←c87772 = (word) XR←ImportInterface((word) "ImagerBox", (word) XR←GetTypeIndexS((word) (&string79)), 7);
   (* (( (ptr) gf←c0889)+286)/* var←c83644 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 269484289);
   var←c87772 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string80)), 3);
   (* (( (ptr) gf←c0889)+296)/* var←c85148 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67371521);
   var←c87772 = (word) XR←ImportInterface((word) "ImagerInterpress", (word) XR←GetTypeIndexS((word) (&string81)), 10);
   (* (( (ptr) gf←c0889)+300)/* var←c85980 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 264449);
   (void) XR←ImportProcS(var←c87772, 788227);
   (void) XR←ImportProcS(var←c87772, 67633666);
   var←c87772 = (word) XR←ImportInterface((word) "ImagerMaskCapture", (word) XR←GetTypeIndexS((word) (&string82)), 5);
   (* (( (ptr) gf←c0889)+285)/* var←c83516 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 269221891);
   var←c87772 = (word) XR←ImportInterface((word) "ImagerMemory", (word) XR←GetTypeIndexS((word) (&string83)), 4);
   (* (( (ptr) gf←c0889)+281)/* var←c83324 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 524802);
   (void) XR←ImportProcS(var←c87772, 67108864);
   var←c87772 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string84)), 55);
   (* (( (ptr) gf←c0889)+278)/* var←c83068 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67635458);
   (void) XR←ImportProcS(var←c87772, 67908355);
   (void) XR←ImportProcS(var←c87772, 135013122);
   (void) XR←ImportProcS(var←c87772, 67371521);
   (void) XR←ImportProcS(var←c87772, 402927105);
   (void) XR←ImportProcS(var←c87772, 67383041);
   (void) XR←ImportProcS(var←c87772, 269757186);
   (void) XR←ImportProcS(var←c87772, 67371777);
   var←c87772 = (word) XR←ImportInterface((word) "InterpressInterpreter", (word) XR←GetTypeIndexS((word) (&string85)), 8);
   (* (( (ptr) gf←c0889)+283)/* var←c83388 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 68420357);
   (void) XR←ImportProcS(var←c87772, 1312005);
   var←c87772 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string86)), 103);
   (* (( (ptr) gf←c0889)+298)/* var←c85916 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67917827);
   (void) XR←ImportProcS(var←c87772, 67389953);
   (void) XR←ImportProcS(var←c87772, 67641090);
   (void) XR←ImportProcS(var←c87772, 67378689);
   (void) XR←ImportProcS(var←c87772, 1071364);
   (void) XR←ImportProcS(var←c87772, 528642);
   (void) XR←ImportProcS(var←c87772, 1063171);
   var←c87772 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string87)), 16);
   (* (( (ptr) gf←c0889)+280)/* var←c83292 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67895555);
   (void) XR←ImportProcS(var←c87772, 67896835);
   (void) XR←ImportProcS(var←c87772, 67635458);
   var←c87772 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string88)), 43);
   (* (( (ptr) gf←c0889)+297)/* var←c85756 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67373569);
   (void) XR←ImportProcS(var←c87772, 67633666);
   var←c87772 = (word) XR←ImportInterface((word) "SymTab", (word) XR←GetTypeIndexS((word) (&string89)), 13);
   (* (( (ptr) gf←c0889)+305)/* var←c87612 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 67633410);
   (void) XR←ImportProcS(var←c87772, 67897091);
   (void) XR←ImportProcS(var←c87772, 134742786);
   var←c87772 = (word) XR←ImportInterface((word) "Vectors2d", (word) XR←GetTypeIndexS((word) (&string90)), 21);
   (* (( (ptr) gf←c0889)+304)/* var←c87292 */  ) = var←c87772;
   (void) XR←ImportProcS(var←c87772, 135268098);
   (void) XR←ImportProcS(var←c87772, 68161282);
   var←c87772 = (word) XR←ExportInterface((word) &string74, (word) XR←GetTypeIndexS((word) (&string75)), 128);
   (* (( (ptr) gf←c0889)+307)/* var←c87804 */  ) = var←c87772;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+996)/* var←c82588 */ , 67121664, (word) "BuildIPSliceClass");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+980)/* var←c82524 */ , 69219080, (word) "MakeIPSliceFromMaster")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+972)/* var←c82492 */ , 68170756, (word) "MakeIPSliceFromMaskPixel")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+956)/* var←c82428 */ , 800259, (word) "SetIncludeByValue");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+948)/* var←c82396 */ , 67385089, (word) "GetIncludeByValue");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+940)/* var←c82364 */ , 276481, (word) "SetDefaultUseLatestIPVersion")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+932)/* var←c82332 */ , 67123456, (word) "GetDefaultUseLatestIPVersion")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+580)/* var←c80924 */ , 67393281, (word) "NoOpIsCompleteParts")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+572)/* var←c80892 */ , 67917827, (word) "NoOpNewParts");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+564)/* var←c80860 */ , 67655938, (word) "NoOpUnionParts");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+556)/* var←c80828 */ , 67656194, (word) "NoOpDifferenceParts")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+548)/* var←c80796 */ , 270555908, (word) "NoOpMovingParts");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+540)/* var←c80764 */ , 67656706, (word) "NoOpAugmentParts");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+532)/* var←c80732 */ , 67656962, (word) "NoOpAlterParts");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+524)/* var←c80700 */ , 810499, (word) "NoOpSetSelectedFields")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+516)/* var←c80668 */ , 67395329, (word) "NoOpPointsInDescriptor")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+508)/* var←c80636 */ , 67395585, (word) "NoOpPointPairsInDescriptor")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+500)/* var←c80604 */ , 67395841, (word) "NoOpSegmentsInDescriptor")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+492)/* var←c80572 */ , 67658242, (word) "NoOpWalkSegments");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+484)/* var←c80540 */ , 201876226, (word) "NoOpNextPoint");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+476)/* var←c80508 */ , 336094210, (word) "NoOpNextPointPair")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+468)/* var←c80476 */ , 134767874, (word) "NoOpNextSegment");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+460)/* var←c80444 */ , 470836739, (word) "NoOpClosestPoint");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+452)/* var←c80412 */ , 337143556, (word) "NoOpClosestJointToHitData")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+444)/* var←c80380 */ , 470837251, (word) "NoOpClosestPointAndTangent")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+436)/* var←c80348 */ , 470837507, (word) "NoOpClosestSegment")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+428)/* var←c80316 */ , 135293443, (word) "NoOpFilledPathsUnderPoint")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+420)/* var←c80284 */ , 134769410, (word) "NoOpLineIntersection")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+412)/* var←c80252 */ , 134769666, (word) "NoOpCircleIntersection")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+404)/* var←c80220 */ , 67661058, (word) "NoOpHitDataAsSimpleCurve")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+396)/* var←c80188 */ , 1076740, (word) "NoOpSetDefaults");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+388)/* var←c80156 */ , 68185860, (word) "NoOpSetStrokeWidth")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+380)/* var←c80124 */ , 134770690, (word) "NoOpGetStrokeWidth")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+372)/* var←c80092 */ , 1077508, (word) "NoOpSetStrokeEnd");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+364)/* var←c80060 */ , 134771202, (word) "NoOpGetStrokeEnd");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+356)/* var←c80028 */ , 1078020, (word) "NoOpSetStrokeJoint");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+348)/* var←c79996 */ , 134771714, (word) "NoOpGetStrokeJoint")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+340)/* var←c79964 */ , 1340677, (word) "NoOpSetStrokeColor");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+332)/* var←c79932 */ , 134772226, (word) "NoOpGetStrokeColor")
   ;
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+324)/* var←c79900 */ , 1341189, (word) "NoOpSetFillColor");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+316)/* var←c79868 */ , 134772738, (word) "NoOpGetFillColor");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+308)/* var←c79836 */ , 1341701, (word) "NoOpSetArrows");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+300)/* var←c79804 */ , 134511105, (word) "NoOpGetArrows");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+292)/* var←c79772 */ , 1866503, (word) "NoOpSetDashed");
   (void) XR←ExportProcS(var←c87772, (word) (( (bPt) gf←c0889)+284)/* var←c79740 */ , 336100354, (word) "NoOpGetDashed");
   }

static void GGSliceImplF←P0(formal←c0152, formal←c0151)
   word formal←c0152;
   word formal←c0151;
   {
   register ptr gf←c87836 =  (ptr) &globalframe;
   /* GGSliceImplF: */ 
SOURCE(503, 43986)
   XR←FillWords(&(* (W4Pt) ((( (ptr) gf←c87836)+257)/* var←c82748 */ )), 4, 1);
   XR←FillWords(&(* (W4Pt) ((( (ptr) gf←c87836)+261)/* var←c82812 */ )), 4, 1);
   XR←FillWords(&(* (W4Pt) ((( (ptr) gf←c87836)+265)/* var←c82876 */ )), 4, 1);
SOURCE(2473, 24)
   (* (( (ptr) gf←c87836)+4)/* Problem←v5296 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c87836)+277)/* var←c83036 */  ))+28)
    ) );
SOURCE(19806, 58)
   {
      word pd91;
      pd91 = (* (( (ptr) (* (( (ptr) gf←c87836)+278)/* var←c83068 */  ))+7) );
      (* (( (ptr) gf←c87836)+7)/* identity←v6388 */  ) = (word) ( *( (fPt) ((*  (ptr) pd91 ))))((*  (ptr) (&fc92) ), pd91);
      };
SOURCE(44483, 6)
   (void) Init←P5520();
   }

static word BuildIPSliceClass←P60()
   {
   register ptr gf←c87868 =  (ptr) &globalframe;
   word class←v9480;
   /* BuildIPSliceClass: */ 
SOURCE(4331, 5216)
SOURCE(4331, 5216)
   class←v9480 = 0;
SOURCE(4411, 5136)
   {
      word var←c83100;
      var←c83100 = XR←NewObject(252, (* (( (ptr) gf←c87868)+24) ));
      (*  (ptr) var←c83100 ) = (* (( (ptr) gf←c87868)+43) );
      (* (( (ptr) var←c83100)+1) ) = (word) (( (bPt) gf←c87868)+916)/* var←c82268 */ ;
      (* (( (ptr) var←c83100)+2) ) = (* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+131) );
      (* (( (ptr) var←c83100)+3) ) = (word) (( (bPt) gf←c87868)+908)/* var←c82236 */ ;
      (* (( (ptr) var←c83100)+4) ) = (word) (( (bPt) gf←c87868)+900)/* var←c82204 */ ;
      (* (( (ptr) var←c83100)+5) ) = (* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+71) );
      (* (( (ptr) var←c83100)+6) ) = (word) (( (bPt) gf←c87868)+892)/* var←c82172 */ ;
      (* (( (ptr) var←c83100)+7) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+76) );
      (* (( (ptr) var←c83100)+8) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+77) );
      (* (( (ptr) var←c83100)+9) ) = (word) (( (bPt) gf←c87868)+884)/* var←c82140 */ ;
      (* (( (ptr) var←c83100)+10) ) = (word) (( (bPt) gf←c87868)+876)/* var←c82108 */ ;
      (* (( (ptr) var←c83100)+11) ) = (word) (( (bPt) gf←c87868)+868)/* var←c82076 */ ;
      (* (( (ptr) var←c83100)+12) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+81) );
      (* (( (ptr) var←c83100)+13) ) = XR←CheckProc(0);
      (* (( (ptr) var←c83100)+14) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+83) );
      (* (( (ptr) var←c83100)+15) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+84) );
      (* (( (ptr) var←c83100)+16) ) = (word) (( (bPt) gf←c87868)+812)/* var←c81852 */ ;
      (* (( (ptr) var←c83100)+17) ) = (word) (( (bPt) gf←c87868)+804)/* var←c81820 */ ;
      (* (( (ptr) var←c83100)+18) ) = (word) (( (bPt) gf←c87868)+796)/* var←c81788 */ ;
      (* (( (ptr) var←c83100)+19) ) = (word) (( (bPt) gf←c87868)+788)/* var←c81756 */ ;
      (* (( (ptr) var←c83100)+20) ) = (word) (( (bPt) gf←c87868)+780)/* var←c81724 */ ;
      (* (( (ptr) var←c83100)+21) ) = (word) (( (bPt) gf←c87868)+772)/* var←c81692 */ ;
      (* (( (ptr) var←c83100)+22) ) = (word) (( (bPt) gf←c87868)+764)/* var←c81660 */ ;
      (* (( (ptr) var←c83100)+23) ) = (word) (( (bPt) gf←c87868)+756)/* var←c81628 */ ;
      (* (( (ptr) var←c83100)+24) ) = (word) (( (bPt) gf←c87868)+748)/* var←c81596 */ ;
      (* (( (ptr) var←c83100)+25) ) = (word) (( (bPt) gf←c87868)+740)/* var←c81564 */ ;
      (* (( (ptr) var←c83100)+26) ) = (word) (( (bPt) gf←c87868)+732)/* var←c81532 */ ;
      (* (( (ptr) var←c83100)+27) ) = (word) (( (bPt) gf←c87868)+724)/* var←c81500 */ ;
      (* (( (ptr) var←c83100)+28) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+97) );
      (* (( (ptr) var←c83100)+29) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+98) );
      (* (( (ptr) var←c83100)+30) ) = (word) (( (bPt) gf←c87868)+716)/* var←c81468 */ ;
      (* (( (ptr) var←c83100)+31) ) = (word) (( (bPt) gf←c87868)+708)/* var←c81436 */ ;
      (* (( (ptr) var←c83100)+32) ) = (word) (( (bPt) gf←c87868)+700)/* var←c81404 */ ;
      (* (( (ptr) var←c83100)+33) ) = (word) (( (bPt) gf←c87868)+692)/* var←c81372 */ ;
      (* (( (ptr) var←c83100)+34) ) = (word) (( (bPt) gf←c87868)+684)/* var←c81340 */ ;
      (* (( (ptr) var←c83100)+35) ) = (word) (( (bPt) gf←c87868)+668)/* var←c81276 */ ;
      (* (( (ptr) var←c83100)+36) ) = (word) (( (bPt) gf←c87868)+652)/* var←c81212 */ ;
      (* (( (ptr) var←c83100)+37) ) = (word) (( (bPt) gf←c87868)+676)/* var←c81308 */ ;
      (* (( (ptr) var←c83100)+38) ) = (word) (( (bPt) gf←c87868)+644)/* var←c81180 */ ;
      (* (( (ptr) var←c83100)+39) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+107) );
      (* (( (ptr) var←c83100)+40) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+108) );
      (* (( (ptr) var←c83100)+41) ) = (word) (( (bPt) gf←c87868)+636)/* var←c81148 */ ;
      (* (( (ptr) var←c83100)+42) ) = (word) (( (bPt) gf←c87868)+628)/* var←c81116 */ ;
      (* (( (ptr) var←c83100)+43) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+111) );
      (* (( (ptr) var←c83100)+44) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+112) );
      (* (( (ptr) var←c83100)+45) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+113) );
      (* (( (ptr) var←c83100)+46) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+114) );
      (* (( (ptr) var←c83100)+47) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+115) );
      (* (( (ptr) var←c83100)+48) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+116) );
      (* (( (ptr) var←c83100)+49) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+117) );
      (* (( (ptr) var←c83100)+50) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+118) );
      (* (( (ptr) var←c83100)+51) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+119) );
      (* (( (ptr) var←c83100)+52) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+120) );
      (* (( (ptr) var←c83100)+53) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+121) );
      (* (( (ptr) var←c83100)+54) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+122) );
      (* (( (ptr) var←c83100)+55) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+123) );
      (* (( (ptr) var←c83100)+56) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+124) );
      (* (( (ptr) var←c83100)+57) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+125) );
      (* (( (ptr) var←c83100)+58) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+126) );
      (* (( (ptr) var←c83100)+59) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+127) );
      (* (( (ptr) var←c83100)+60) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+128) );
      (* (( (ptr) var←c83100)+61) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+129) );
      (* (( (ptr) var←c83100)+62) ) = XR←CheckProc(* (( (ptr) (* (( (ptr) gf←c87868)+279)/* var←c83132 */  ))+130) );
      class←v9480 = var←c83100;
      };
SOURCE(4331, 5216)
   return(class←v9480);
   }

static word MakeIPSliceFromFile←P120(fullName←v9540, router←v9568, transform←v9596, localTightBox←v9624, localBox←v9652, includeByValue←v9680)
   word fullName←v9540;
   word router←v9568;
   word transform←v9596;
   word localTightBox←v9624;
   word localBox←v9652;
   word includeByValue←v9680;
   {
   word slice←v9724;
   word ipMaster←v17252 = 0;
   word success←v17280 = 0;
   /* MakeIPSliceFromFile: */ 
SOURCE(6537, 3010)
SOURCE(6537, 3010)
   slice←v9724 = 0;
SOURCE(6821, 2726)
   {
      W2 var←c83164;
      (void) GetMaster←P5460((word) &var←c83164, fullName←v9540, router←v9568);
      success←v17280 = var←c83164.f1;
      ipMaster←v17252 = var←c83164.f0;
      };
SOURCE(6872, 34)
   if ((0 == success←v17280)) {
SOURCE(6892, 14)
      ipMaster←v17252 = 0;
      };
SOURCE(6944, 2603)
   slice←v9724 = (word) MakeIPSliceFromMaster←P180(ipMaster←v17252, (*  (ptr) &fc93 ), fullName←v9540, router←v9568, transform←v9596, localTightBox←v9624
      , localBox←v9652, includeByValue←v9680);
SOURCE(6537, 3010)
   return(slice←v9724);
   }

static word MakeIPSliceFromMaster←P180(formal←c0997, formal←c0998, fullName←v9840, formal←c0999, transform←v9896, formal←c01000, formal←c01001, includeByValue←v9980)
   word formal←c0997;
   word formal←c0998;
   word fullName←v9840;
   word formal←c0999;
   word transform←v9896;
   word formal←c01000;
   word formal←c01001;
   word includeByValue←v9980;
   {
   W23 var←c87900;
   /* declaration of ipMaster←v9784 skipped */ 
   /* declaration of pixelsPerUnit←v9812 skipped */ 
   /* declaration of router←v9868 skipped */ 
   /* declaration of localTightBox←v9924 skipped */ 
   /* declaration of localBox←v9952 skipped */ 
   register ptr gf←c87932 =  (ptr) &globalframe;
   word slice←v10024;
   /* declaration of var←c83196 skipped */ 
   /* declaration of var←c83228 skipped */ 
   /* declaration of var←c83260 skipped */ 
   word found←v17352 = 0;
   /* declaration of memContext←v17380 skipped */ 
   word masterStuff←v17408 = 0;
   /* declaration of contextStuff←v17436 skipped */ 
   (* (( (ptr) &var←c87900)+4)/* ipMaster←v9784 */  ) = formal←c0997;
   (* (( (ptr) &var←c87900)+5)/* pixelsPerUnit←v9812 */  ) = formal←c0998;
   (* (( (ptr) &var←c87900)+6)/* router←v9868 */  ) = formal←c0999;
   (* (( (ptr) &var←c87900)+7)/* localTightBox←v9924 */  ) = formal←c01000;
   (* (( (ptr) &var←c87900)+8)/* localBox←v9952 */  ) = formal←c01001;
   /* MakeIPSliceFromMaster: */ 
SOURCE(7068, 2941)
   {
      word tmpAddr94;
      tmpAddr94 = (word) (( (ptr) &var←c87900)+9)/* var←c83196 */ ;
      (*  (ptr) tmpAddr94 ) = ( ((word)  (fPt) PlayFakeScene←P5748) );
      (* (( (ptr) tmpAddr94) + 1) ) = 1;
      };
   {
      word tmpAddr95;
      tmpAddr95 = (word) (( (ptr) &var←c87900)+11)/* var←c83228 */ ;
      (*  (ptr) tmpAddr95 ) = ( ((word)  (fPt) ShowWarnings←P5688) );
      (* (( (ptr) tmpAddr95) + 1) ) = 1;
      };
   {
      word tmpAddr96;
      tmpAddr96 = (word) (( (ptr) &var←c87900)+13)/* var←c83260 */ ;
      (*  (ptr) tmpAddr96 ) = ( ((word)  (fPt) CheckPair←P5580) );
      (* (( (ptr) tmpAddr96) + 1) ) = 1;
      };
SOURCE(7068, 2941)
   slice←v10024 = 0;
SOURCE(7803, 26)
   (* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ) = 0;
SOURCE(7861, 30)
   (* (( (ptr) &var←c87900)+16)/* contextStuff←v17436 */  ) = 0;
SOURCE(7894, 1653)
   {
      word pd97;
      pd97 = (* (( (ptr) (* (( (ptr) gf←c87932)+280)/* var←c83292 */  ))+13) );
      found←v17352 = (word) ( *( (fPt) ((*  (ptr) pd97 ))))((* (( (ptr) gf←c87932)+9)/* contextTable←v8460 */  ), (word) (( (bPt) &var←c87900)+52)
         /* var←c83260 */ , pd97);
      };
SOURCE(7941, 1953)
   if ((0 == found←v17352)) {
SOURCE(7959, 1937)
SOURCE(8187, 1360)
      {
         word pd98;
         pd98 = (* (( (ptr) (* (( (ptr) gf←c87932)+281)/* var←c83324 */  ))+4) );
         (* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ) = (word) ( *( (fPt) ((*  (ptr) pd98 ))))(pd98);
         };
SOURCE(8246, 40)
      {
         word pd99;
         pd99 = (* (( (ptr) (* (( (ptr) gf←c87932)+282)/* var←c83356 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd99 ))))((* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ), (* (( (ptr) &var←c87900)+5)
            /* pixelsPerUnit←v9812 */  ), pd99);
         };
SOURCE(8315, 41)
      {
         word pd100;
         pd100 = (* (( (ptr) (* (( (ptr) gf←c87932)+282)/* var←c83356 */  ))+52) );
         (void) ( *( (fPt) ((*  (ptr) pd100 ))))((* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ), (*  (ptr) (* (( (ptr) (* (
                  ( (ptr) gf←c87932)+282)/* var←c83356 */  ))+54) ) ), pd100);
         };
SOURCE(8358, 39)
      {
         word pd101;
         pd101 = (* (( (ptr) (* (( (ptr) gf←c87932)+282)/* var←c83356 */  ))+31) );
         (void) ( *( (fPt) ((*  (ptr) pd101 ))))((* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ), (*  (ptr) &fc92 ), pd101)
         ;
         };
SOURCE(8399, 38)
      {
         word pd102;
         pd102 = (* (( (ptr) (* (( (ptr) gf←c87932)+282)/* var←c83356 */  ))+68) );
         (void) ( *( (fPt) ((*  (ptr) pd102 ))))((* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ), (*  (ptr) &fc103 ), pd102)
         ;
         };
SOURCE(8439, 39)
      {
         word pd104;
         pd104 = (* (( (ptr) (* (( (ptr) gf←c87932)+282)/* var←c83356 */  ))+69) );
         (void) ( *( (fPt) ((*  (ptr) pd104 ))))((* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ), 0, pd104);
         };
SOURCE(8480, 40)
      {
         word pd105;
         pd105 = (* (( (ptr) (* (( (ptr) gf←c87932)+282)/* var←c83356 */  ))+70) );
         (void) ( *( (fPt) ((*  (ptr) pd105 ))))((* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ), 0, pd105);
         };
SOURCE(8523, 118)
      if (((* (( (ptr) &var←c87900)+4)/* ipMaster←v9784 */  ) != 0)) {
SOURCE(8546, 95)
         {
            word pd106;
            pd106 = (* (( (ptr) (* (( (ptr) gf←c87932)+283)/* var←c83388 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd106 ))))((* (( (ptr) &var←c87900)+4)/* ipMaster←v9784 */  ), 1, (* (( (ptr) &var←c87900)+15)
               /* memContext←v17380 */  ), (word) (( (bPt) &var←c87900)+44)/* var←c83228 */ , 1, pd106);
            };
         };
SOURCE(8644, 1045)
      if (((* (( (ptr) &var←c87900)+7)/* localTightBox←v9924 */  ) == 0)) {
SOURCE(8674, 1015)
         if (((* (( (ptr) &var←c87900)+4)/* ipMaster←v9784 */  ) == 0)) {
SOURCE(8699, 848)
            {
               word pd107;
               pd107 = (* (( (ptr) (* (( (ptr) gf←c87932)+284)/* var←c83420 */  ))+5) );
               (* (( (ptr) &var←c87900)+7)/* localTightBox←v9924 */  ) = (word) ( *( (fPt) ((*  (ptr) pd107 ))))((*  (ptr) &fc103 ), (*  (ptr) &fc103 ), (*  (ptr) &fc108 ), (*  (ptr) &fc108 ), 0, 0, pd107)
               ;
               };
SOURCE(8755, 792)
            {
               word pd109;
               pd109 = (* (( (ptr) (* (( (ptr) gf←c87932)+284)/* var←c83420 */  ))+7) );
               (* (( (ptr) &var←c87900)+8)/* localBox←v9952 */  ) = (word) ( *( (fPt) ((*  (ptr) pd109 ))))((* ((( (ptr) &var←c87900)+7)
                  /* localTightBox←v9924 */ ) ), pd109);
               };
            }
         else {
SOURCE(8815, 874)
            if ((0 != (* (( (ptr) gf←c87932)+5)/* useMaskCapture←v5800 */  ))) {
SOURCE(8838, 486)
               {
                  W4 sfBox←v17768;
                  W4 imagerBox←v17796;
SOURCE(8840, 13)
                  sfBox←v17768.f0 = 0;
                  sfBox←v17768.f1 = 0;
                  sfBox←v17768.f2 = 0;
                  sfBox←v17768.f3 = 0;
SOURCE(8884, 663)
                  {
                     /* declaration of var←c83484 skipped */ 
                     {
                        word pd110;
                        pd110 = (* (( (ptr) (* (( (ptr) gf←c87932)+278)/* var←c83068 */  ))+7) );
                        (* (( (ptr) &var←c87900)+17)/* var←c83484 */  ) = (word) ( *( (fPt) ((*  (ptr) pd110 ))))((*  (ptr) (&fc111) ), pd110);
                        };
                     {
                        /* declaration of var←c01 skipped */ 
                        (* (( (ptr) &var←c87900)+18)/* var←c01 */  ) = (* (( (ptr) (* (( (ptr) gf←c87932)+285)/* var←c83516 */  ))+4) );
                        {
                           /* declaration of var←c02 skipped */ 
                           {
/*1*/   word var←c0974;
/*1*/   var←c0974 = (word) &var←c87900;
/*1*/    (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7572) ), ( ((word)  (fPt) NoName←Q8052) ), var←c0974);
/*1*/   };
                           sfBox←v17768 = (*  (W4Pt) (( (ptr) &var←c87900)+19)/* var←c02 */  );
                           };
                        };
                     };
SOURCE(9008, 539)
                  {
                     word var←c83548;
                     W4 var←c83580;
                     {
                        word pd112;
                        pd112 = (* (( (ptr) (* (( (ptr) gf←c87932)+278)/* var←c83068 */  ))+7) );
                        var←c83548 = (word) ( *( (fPt) ((*  (ptr) pd112 ))))((*  (ptr) (&fc111) ), pd112);
                        };
                     {
                        W4 var←c0188;
                        {
                           W4 var←c83612;
                           {
/*1*/   float tf113;
/*1*/   var←c83612.f0 = (
/*1*/      tf113 = (float)(int)sfBox←v17768.f0,  *(word*)&tf113
/*1*/      );
/*1*/   };
                           {
/*1*/   float tf114;
/*1*/   var←c83612.f1 = (
/*1*/      tf114 = (float)(int)sfBox←v17768.f1,  *(word*)&tf114
/*1*/      );
/*1*/   };
                           {
/*1*/   float tf115;
/*1*/   var←c83612.f2 = (
/*1*/      tf115 = (float)(int)sfBox←v17768.f2,  *(word*)&tf115
/*1*/      );
/*1*/   };
                           {
/*1*/   float tf116;
/*1*/   var←c83612.f3 = (
/*1*/      tf116 = (float)(int)sfBox←v17768.f3,  *(word*)&tf116
/*1*/      );
/*1*/   };
                           {
/*1*/   word pd117;
/*1*/   pd117 = (* (( (ptr) (* (( (ptr) gf←c87932)+286)/* var←c83644 */  ))+5) );
/*1*/   (void) ( *( (fPt) ((*  (ptr) pd117 ))))((word) &var←c0188, var←c83612, pd117);
/*1*/   };
                           };
                        var←c83580 = var←c0188;
                        };
                     {
                        W4 var←c0189;
                        {
                           word pd118;
                           pd118 = (* (( (ptr) (* (( (ptr) gf←c87932)+278)/* var←c83068 */  ))+47) );
                           (void) ( *( (fPt) ((*  (ptr) pd118 ))))((word) &var←c0189, var←c83548, var←c83580, pd118);
                           };
                        imagerBox←v17796 = var←c0189;
                        };
                     };
SOURCE(9206, 341)
                  {
                     word pd119;
                     pd119 = (* (( (ptr) (* (( (ptr) gf←c87932)+284)/* var←c83420 */  ))+10) );
                     (* (( (ptr) &var←c87900)+7)/* localTightBox←v9924 */  ) = (word) ( *( (fPt) ((*  (ptr) pd119 ))))(imagerBox←v17796, pd119)
                     ;
                     };
SOURCE(9273, 274)
                  {
                     word pd120;
                     pd120 = (* (( (ptr) (* (( (ptr) gf←c87932)+284)/* var←c83420 */  ))+7) );
                     (* (( (ptr) &var←c87900)+8)/* localBox←v9952 */  ) = (word) ( *( (fPt) ((*  (ptr) pd120 ))))((* ((( (ptr) &var←c87900)+7)
                        /* localTightBox←v9924 */ ) ), pd120);
                     };
                  };
               }
            else {
SOURCE(9331, 360)
               {
                  /* declaration of fakeCamera←v17840 skipped */ 
                  word fakeScene←v17868;
SOURCE(9333, 35)
                  (* (( (ptr) &var←c87900)+17)/* fakeCamera←v17840 */  ) = XR←NewObject(20, (* (( (ptr) gf←c87932)+28) ));
                  (* (( (ptr) (* (( (ptr) &var←c87900)+17)/* fakeCamera←v17840 */  ))+4) ) = (*  (ptr) &fc92 );
SOURCE(9370, 115)
                  {
                     /* declaration of var←c03 skipped */ 
                     (* (( (ptr) &var←c87900)+18)/* var←c03 */  ) = (* (( (ptr) (* (( (ptr) gf←c87932)+287)/* var←c83708 */  ))+5) );
                     {
                        /* declaration of var←c04 skipped */ 
                        {
                           word var←c0975;
                           var←c0975 = (word) &var←c87900;
                            (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7512) ), ( ((word)  (fPt) NoName←Q7992) ), var←c0975);
                           };
                        fakeScene←v17868 = (* (( (ptr) &var←c87900)+19)/* var←c04 */  );
                        };
                     };
SOURCE(9555, 50)
                  {
                     word pd121;
                     pd121 = (* (( (ptr) (* (( (ptr) gf←c87932)+288)/* var←c83740 */  ))+44) );
                     (* (( (ptr) &var←c87900)+7)/* localTightBox←v9924 */  ) = (word) ( *( (fPt) ((*  (ptr) pd121 ))))(fakeScene←v17868, pd121)
                     ;
                     };
SOURCE(9607, 45)
                  {
                     word pd122;
                     pd122 = (* (( (ptr) (* (( (ptr) gf←c87932)+288)/* var←c83740 */  ))+43) );
                     (* (( (ptr) &var←c87900)+8)/* localBox←v9952 */  ) = (word) ( *( (fPt) ((*  (ptr) pd122 ))))(fakeScene←v17868, pd122);
                     };
SOURCE(9654, 35)
                  {
                     word pd123;
                     pd123 = (* (( (ptr) (* (( (ptr) gf←c87932)+288)/* var←c83740 */  ))+8) );
                     (void) ( *( (fPt) ((*  (ptr) pd123 ))))(fakeScene←v17868, pd123);
                     };
                  };
               };
            };
         };
SOURCE(9701, 58)
      {
         word var←c83772;
         var←c83772 = XR←NewObject(8, (* (( (ptr) gf←c87932)+30) ));
         (*  (ptr) var←c83772 ) = (* (( (ptr) &var←c87900)+4)/* ipMaster←v9784 */  );
         (* (( (ptr) var←c83772)+1) ) = (* (( (ptr) &var←c87900)+5)/* pixelsPerUnit←v9812 */  );
         masterStuff←v17408 = var←c83772;
         };
SOURCE(9761, 72)
      {
         word var←c83804;
         var←c83804 = XR←NewObject(12, (* (( (ptr) gf←c87932)+31) ));
         (*  (ptr) var←c83804 ) = (* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  );
         (* (( (ptr) var←c83804)+1) ) = (* (( (ptr) &var←c87900)+7)/* localTightBox←v9924 */  );
         (* (( (ptr) var←c83804)+2) ) = (* (( (ptr) &var←c87900)+8)/* localBox←v9952 */  );
         (* (( (ptr) &var←c87900)+16)/* contextStuff←v17436 */  ) = var←c83804;
         };
SOURCE(9835, 59)
      {
         word var←c83836;
         word pd124;
         pd124 = (* (( (ptr) (* (( (ptr) gf←c87932)+280)/* var←c83292 */  ))+10) );
         var←c83836 = (word) ( *( (fPt) ((*  (ptr) pd124 ))))((* (( (ptr) gf←c87932)+9)/* contextTable←v8460 */  ), masterStuff←v17408, (* (
               ( (ptr) &var←c87900)+16)/* contextStuff←v17436 */  ), pd124);
         };
      };
SOURCE(9900, 109)
   slice←v10024 = (word) MakeIPSliceAux←P300(fullName←v9840, (* (( (ptr) &var←c87900)+15)/* memContext←v17380 */  ), (* (( (ptr) &var←c87900)+6)
      /* router←v9868 */  ), transform←v9896, includeByValue←v9980, (* (( (ptr) &var←c87900)+7)/* localTightBox←v9924 */  )
      , (* (( (ptr) &var←c87900)+8)/* localBox←v9952 */  ), 0);
SOURCE(7068, 2941)
   return(slice←v10024);
   }

static word NoName←Q7512(formal←c0893)
   word formal←c0893;
   {
SOURCE(9370, 115)
   {
      word pd125;
      pd125 = (* (( (ptr) formal←c0893)+18) );
      (* (( (ptr) formal←c0893)+19) ) = (word) ( *( (fPt) ((*  (ptr) pd125 ))))((word) (( (bPt) formal←c0893)+36), (* (( (ptr) formal←c0893)+17)
          ), pd125);
      };
   return(0);
   }

static word NoName←Q7572(formal←c0894)
   word formal←c0894;
   {
SOURCE(8884, 663)
   {
      word pd126;
      pd126 = (* (( (ptr) formal←c0894)+18) );
      (void) ( *( (fPt) ((*  (ptr) pd126 ))))((word) (( (bPt) formal←c0894)+76), (word) (( (bPt) formal←c0894)+36), (* (( (ptr) formal←c0894)+17)
          ), 0, pd126);
      };
   return(0);
   }

static word CheckPair←P5580(key←v17512, val←v17540, formal←c87996)
   word key←v17512;
   word val←v17540;
   word formal←c87996;
   {
   register ptr gf←c87964 =  (ptr) &globalframe;
   word quit←v17584;
   word mRef←v17912;
   formal←c87996 = (formal←c87996 - 52);
   /* CheckPair: */ 
SOURCE(7382, 392)
SOURCE(7382, 392)
   quit←v17584 = 0;
SOURCE(7466, 35)
   mRef←v17912 = XR←Narrow(key←v17512, (* (( (ptr) gf←c87964)+30) ));
SOURCE(7503, 271)
   {
      word x127;
      word x128;
      if ( ( ((*  (ptr) mRef←v17912 ) == (* (( (ptr) formal←c87996)+4) )) ? ((
         x127 = (* (( (ptr) mRef←v17912)+1) ),  *(float*)&x127
         ) == (
         x128 = (* (( (ptr) formal←c87996)+5) ),  *(float*)&x128
         )) : 0 ) ) {
SOURCE(7571, 26)
         (* (( (ptr) formal←c87996)+16) ) = XR←Narrow(val←v17540, (* (( (ptr) gf←c87964)+31) ));
SOURCE(7599, 36)
         (* (( (ptr) formal←c87996)+15) ) = (*  (ptr) (* (( (ptr) formal←c87996)+16) ) );
SOURCE(7637, 68)
         if (((* (( (ptr) formal←c87996)+7) ) == 0)) {
SOURCE(7663, 42)
            (* (( (ptr) formal←c87996)+7) ) = (* (( (ptr) (* (( (ptr) formal←c87996)+16) ))+1) );
            };
SOURCE(7707, 53)
         if (((* (( (ptr) formal←c87996)+8) ) == 0)) {
SOURCE(7728, 32)
            (* (( (ptr) formal←c87996)+8) ) = (* (( (ptr) (* (( (ptr) formal←c87996)+16) ))+2) );
            };
SOURCE(7762, 12)
         return(1);
         };
      };
SOURCE(7382, 392)
   return(quit←v17584);
   }

static void ShowWarnings←P5688(class←v57144, code←v57172, explanation←v57200, propList←v57228, formal←c88060)
   word class←v57144;
   word code←v57172;
   word explanation←v57200;
   word propList←v57228;
   word formal←c88060;
   {
   register ptr gf←c88028 =  (ptr) &globalframe;
   formal←c88060 = (formal←c88060 - 44);
   /* ShowWarnings: */ 
SOURCE(7983, 46)
SOURCE(8031, 56)
   {
      word pd129;
      pd129 = (* (( (ptr) (* (( (ptr) gf←c88028)+277)/* var←c83036 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd129 ))))((* (( (ptr) formal←c88060)+6) ), 0, (* (( (ptr) gf←c88028)+42) ), explanation←v57200, pd129)
      ;
      };
   }

static void PlayFakeScene←P5748(context←v17740, formal←c88124)
   word context←v17740;
   word formal←c88124;
   {
   register ptr gf←c88092 =  (ptr) &globalframe;
   formal←c88124 = (formal←c88124 - 36);
   /* PlayFakeScene: */ 
SOURCE(8092, 21)
SOURCE(8142, 40)
   {
      word pd130;
      pd130 = (* (( (ptr) (* (( (ptr) gf←c88092)+281)/* var←c83324 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd130 ))))((* (( (ptr) formal←c88124)+15) ), context←v17740, pd130);
      };
   }

static word MakeIPSliceFromMaskPixel←P240(pa←v10084, color←v10112, router←v10140, transform←v10168)
   word pa←v10084;
   word color←v10112;
   word router←v10140;
   word transform←v10168;
   {
   register ptr gf←c88156 =  (ptr) &globalframe;
   word slice←v10212;
   word memContext←v17968 = 0;
   word ipData←v17996 = 0;
   word inverse←v18024 = 0;
   W2 inverseScale←v18052;
   word localTightBox←v18080 = 0;
   word localBox←v18108 = 0;
   /* MakeIPSliceFromMaskPixel: */ 
SOURCE(10045, 1387)
SOURCE(10045, 1387)
   slice←v10212 = 0;
   {
      W6 var←c0216;
SOURCE(10373, 44)
      {
         word pd131;
         pd131 = (* (( (ptr) (* (( (ptr) gf←c88156)+281)/* var←c83324 */  ))+4) );
         memContext←v17968 = (word) ( *( (fPt) ((*  (ptr) pd131 ))))(pd131);
         };
SOURCE(10419, 34)
      {
         word pd132;
         pd132 = (* (( (ptr) (* (( (ptr) gf←c88156)+282)/* var←c83356 */  ))+52) );
         (void) ( *( (fPt) ((*  (ptr) pd132 ))))(memContext←v17968, color←v10112, pd132);
         };
SOURCE(10455, 32)
      {
         word pd133;
         pd133 = (* (( (ptr) (* (( (ptr) gf←c88156)+282)/* var←c83356 */  ))+77) );
         (void) ( *( (fPt) ((*  (ptr) pd133 ))))(memContext←v17968, pa←v10084, pd133);
         };
SOURCE(10490, 71)
      {
         word pd134;
         if ((transform←v10168 == 0)) {
            pd134 = (* (( (ptr) (* (( (ptr) gf←c88156)+289)/* var←c83868 */  ))+4) );
            transform←v10168 = (word) ( *( (fPt) ((*  (ptr) pd134 ))))(pd134);
            }
         else {
            transform←v10168 = transform←v10168;
            };
         };
SOURCE(10563, 48)
      {
         word pd135;
         pd135 = (* (( (ptr) (* (( (ptr) gf←c88156)+278)/* var←c83068 */  ))+51) );
         inverse←v18024 = (word) ( *( (fPt) ((*  (ptr) pd135 ))))(transform←v10168, pd135);
         };
SOURCE(10613, 53)
      {
         word pd136;
         pd136 = (* (( (ptr) (* (( (ptr) gf←c88156)+278)/* var←c83068 */  ))+50) );
         (void) ( *( (fPt) ((*  (ptr) pd136 ))))((word) &var←c0216, inverse←v18024, pd136);
         };
      inverseScale←v18052 = (*  (W2Pt) (( (ptr) &var←c0216)+1) );
SOURCE(10668, 51)
      {
         word pd137;
         pd137 = (* (( (ptr) (* (( (ptr) gf←c88156)+284)/* var←c83420 */  ))+12) );
         localTightBox←v18080 = (word) ( *( (fPt) ((*  (ptr) pd137 ))))(pa←v10084, pd137);
         };
SOURCE(10721, 49)
      {
         word pd138;
         pd138 = (* (( (ptr) (* (( (ptr) gf←c88156)+284)/* var←c83420 */  ))+7) );
         localBox←v18108 = (word) ( *( (fPt) ((*  (ptr) pd138 ))))(localTightBox←v18080, pd138);
         };
SOURCE(10773, 267)
      {
         word var←c83900;
         word var←c84028;
         {
            W2 var←c83932;
            W2 var←c83964;
            var←c83932.f0 = (*  (ptr) &fc139 );
            var←c83932.f1 = (*  (ptr) &fc139 );
            var←c83964.f0 = (*  (ptr) &fc92 );
            var←c83964.f1 = (*  (ptr) &fc92 );
            {
               word pd140;
               pd140 = (* (( (ptr) (* (( (ptr) gf←c88156)+290)/* var←c83996 */  ))+5) );
               var←c83900 = (word) ( *( (fPt) ((*  (ptr) pd140 ))))(var←c83932, var←c83964, 0, pd140);
               };
            };
         var←c84028 = XR←NewObject(40, (* (( (ptr) gf←c88156)+32) ));
         (*  (ptr) var←c84028 ) = localTightBox←v18080;
         (* (( (ptr) var←c84028)+1) ) = localBox←v18108;
         (* (( (ptr) var←c84028)+2) ) = 1;
         (* (( (ptr) var←c84028)+4) ) = memContext←v17968;
         (* (( (ptr) var←c84028)+5) ) = transform←v10168;
         (* (( (ptr) var←c84028)+6) ) = inverse←v18024;
         (*  (W2Pt) (( (ptr) var←c84028)+7) ) = inverseScale←v18052;
         (* (( (ptr) var←c84028)+9) ) = var←c83900;
         ipData←v17996 = var←c84028;
         };
SOURCE(11043, 29)
      (* (( (ptr) (* (( (ptr) ipData←v17996)+9) ))+2) ) = (*  (ptr) &fc139 );
SOURCE(11110, 300)
      {
         word var←c84060;
         word var←c84092;
         word var←c84124;
         word var←c84156;
         {
            word pd141;
            pd141 = (* (( (ptr) (* (( (ptr) gf←c88156)+279)/* var←c83132 */  ))+7) );
            var←c84060 = (word) ( *( (fPt) ((*  (ptr) pd141 ))))((* ((( (ptr) gf←c88156)+43)) ), pd141);
            };
         {
            word pd142;
            pd142 = (* (( (ptr) (* (( (ptr) gf←c88156)+284)/* var←c83420 */  ))+6) );
            var←c84092 = (word) ( *( (fPt) ((*  (ptr) pd142 ))))(pd142);
            };
         {
            word pd143;
            pd143 = (* (( (ptr) (* (( (ptr) gf←c88156)+284)/* var←c83420 */  ))+6) );
            var←c84124 = (word) ( *( (fPt) ((*  (ptr) pd143 ))))(pd143);
            };
         var←c84156 = XR←NewObject(92, (* (( (ptr) gf←c88156)+33) ));
         (*  (ptr) var←c84156 ) = var←c84060;
         (* (( (ptr) var←c84156)+1) ) = ipData←v17996;
         (*  (W4Pt) (( (ptr) var←c84156)+3) ) = (*  (W4Pt) (( (ptr) gf←c88156)+253)/* var←c82684 */  );
         (* (( (ptr) var←c84156)+13) ) = var←c84092;
         (* (( (ptr) var←c84156)+15) ) = var←c84124;
         (* (( (ptr) var←c84156)+21) ) =  (word) -1;
         slice←v10212 = var←c84156;
         };
SOURCE(11412, 20)
      (void) IPSetBoundBox←P600(slice←v10212);
      };
SOURCE(10045, 1387)
   return(slice←v10212);
   }

static word MakeIPSliceAux←P300(fileName←v10272, memContext←v10300, router←v10328, transform←v10356, includeByValue←v10384, localTightBox←v10412, localBox←v10440, seg←v10468)
   word fileName←v10272;
   word memContext←v10300;
   word router←v10328;
   word transform←v10356;
   word includeByValue←v10384;
   word localTightBox←v10412;
   word localBox←v10440;
   word seg←v10468;
   {
   register ptr gf←c88188 =  (ptr) &globalframe;
   word slice←v10512;
   word ipData←v18152 = 0;
   word inverse←v18180 = 0;
   W2 inverseScale←v18208;
   /* MakeIPSliceAux: */ 
SOURCE(11438, 1213)
SOURCE(11438, 1213)
   slice←v10512 = 0;
   {
      W6 var←c0237;
SOURCE(11773, 71)
      {
         word pd144;
         if ((transform←v10356 == 0)) {
            pd144 = (* (( (ptr) (* (( (ptr) gf←c88188)+289)/* var←c83868 */  ))+4) );
            transform←v10356 = (word) ( *( (fPt) ((*  (ptr) pd144 ))))(pd144);
            }
         else {
            transform←v10356 = transform←v10356;
            };
         };
SOURCE(11846, 48)
      {
         word pd145;
         pd145 = (* (( (ptr) (* (( (ptr) gf←c88188)+278)/* var←c83068 */  ))+51) );
         inverse←v18180 = (word) ( *( (fPt) ((*  (ptr) pd145 ))))(transform←v10356, pd145);
         };
SOURCE(11896, 53)
      {
         word pd146;
         pd146 = (* (( (ptr) (* (( (ptr) gf←c88188)+278)/* var←c83068 */  ))+50) );
         (void) ( *( (fPt) ((*  (ptr) pd146 ))))((word) &var←c0237, inverse←v18180, pd146);
         };
      inverseScale←v18208 = (*  (W2Pt) (( (ptr) &var←c0237)+1) );
SOURCE(11952, 307)
      {
         word var←c84188;
         word var←c84284;
         if ((seg←v10468 != 0)) {
            var←c84188 = seg←v10468;
            }
         else {
            {
               W2 var←c84220;
               W2 var←c84252;
               var←c84220.f0 = (*  (ptr) &fc139 );
               var←c84220.f1 = (*  (ptr) &fc139 );
               var←c84252.f0 = (*  (ptr) &fc92 );
               var←c84252.f1 = (*  (ptr) &fc92 );
               {
                  word pd147;
                  pd147 = (* (( (ptr) (* (( (ptr) gf←c88188)+290)/* var←c83996 */  ))+5) );
                  var←c84188 = (word) ( *( (fPt) ((*  (ptr) pd147 ))))(var←c84220, var←c84252, 0, pd147);
                  };
               };
            };
         var←c84284 = XR←NewObject(40, (* (( (ptr) gf←c88188)+32) ));
         (*  (ptr) var←c84284 ) = localTightBox←v10412;
         (* (( (ptr) var←c84284)+1) ) = localBox←v10440;
         (* (( (ptr) var←c84284)+2) ) = includeByValue←v10384;
         (* (( (ptr) var←c84284)+3) ) = fileName←v10272;
         (* (( (ptr) var←c84284)+4) ) = memContext←v10300;
         (* (( (ptr) var←c84284)+5) ) = transform←v10356;
         (* (( (ptr) var←c84284)+6) ) = inverse←v18180;
         (*  (W2Pt) (( (ptr) var←c84284)+7) ) = inverseScale←v18208;
         (* (( (ptr) var←c84284)+9) ) = var←c84188;
         ipData←v18152 = var←c84284;
         };
SOURCE(12262, 29)
      (* (( (ptr) (* (( (ptr) ipData←v18152)+9) ))+2) ) = (*  (ptr) &fc139 );
SOURCE(12329, 300)
      {
         word var←c84316;
         word var←c84348;
         word var←c84380;
         word var←c84412;
         {
            word pd148;
            pd148 = (* (( (ptr) (* (( (ptr) gf←c88188)+279)/* var←c83132 */  ))+7) );
            var←c84316 = (word) ( *( (fPt) ((*  (ptr) pd148 ))))((* ((( (ptr) gf←c88188)+43)) ), pd148);
            };
         {
            word pd149;
            pd149 = (* (( (ptr) (* (( (ptr) gf←c88188)+284)/* var←c83420 */  ))+6) );
            var←c84348 = (word) ( *( (fPt) ((*  (ptr) pd149 ))))(pd149);
            };
         {
            word pd150;
            pd150 = (* (( (ptr) (* (( (ptr) gf←c88188)+284)/* var←c83420 */  ))+6) );
            var←c84380 = (word) ( *( (fPt) ((*  (ptr) pd150 ))))(pd150);
            };
         var←c84412 = XR←NewObject(92, (* (( (ptr) gf←c88188)+33) ));
         (*  (ptr) var←c84412 ) = var←c84316;
         (* (( (ptr) var←c84412)+1) ) = ipData←v18152;
         (*  (W4Pt) (( (ptr) var←c84412)+3) ) = (*  (W4Pt) (( (ptr) gf←c88188)+253)/* var←c82684 */  );
         (* (( (ptr) var←c84412)+13) ) = var←c84348;
         (* (( (ptr) var←c84412)+15) ) = var←c84380;
         (* (( (ptr) var←c84412)+21) ) =  (word) -1;
         slice←v10512 = var←c84412;
         };
SOURCE(12631, 20)
      (void) IPSetBoundBox←P600(slice←v10512);
      };
SOURCE(11438, 1213)
   return(slice←v10512);
   }

static void SetIncludeByValue←P360(slice←v10572, includeByValue←v10600, history←v10628)
   word slice←v10572;
   word includeByValue←v10600;
   word history←v10628;
   {
   register ptr gf←c88220 =  (ptr) &globalframe;
   word ipData←v18252;
   /* SetIncludeByValue: */ 
SOURCE(12656, 170)
SOURCE(12751, 35)
   ipData←v18252 = XR←Narrow((* (( (ptr) slice←v10572)+1) ), (* (( (ptr) gf←c88220)+32) ));
SOURCE(12788, 38)
   (* (( (ptr) ipData←v18252)+2) ) = includeByValue←v10600;
   }

static word GetIncludeByValue←P420(slice←v10688)
   word slice←v10688;
   {
   register ptr gf←c88252 =  (ptr) &globalframe;
   word includeByValue←v10732;
   word ipData←v18296;
   /* GetIncludeByValue: */ 
SOURCE(12832, 164)
SOURCE(12832, 164)
   includeByValue←v10732 = 0;
SOURCE(12921, 35)
   ipData←v18296 = XR←Narrow((* (( (ptr) slice←v10688)+1) ), (* (( (ptr) gf←c88252)+32) ));
SOURCE(12958, 38)
   includeByValue←v10732 = (* (( (ptr) ipData←v18296)+2) );
SOURCE(12832, 164)
   return(includeByValue←v10732);
   }

static void SetDefaultUseLatestIPVersion←P480(useLatestIPVersion←v10792)
   word useLatestIPVersion←v10792;
   {
   register ptr gf←c88284 =  (ptr) &globalframe;
   /* SetDefaultUseLatestIPVersion: */ 
SOURCE(13037, 113)
SOURCE(13110, 40)
   (* (( (ptr) gf←c88284)+6)/* gUseLatestIPVersion←v5940 */  ) = useLatestIPVersion←v10792;
   }

static word GetDefaultUseLatestIPVersion←P540()
   {
   register ptr gf←c88316 =  (ptr) &globalframe;
   word useLatestIPVersion←v10852;
   /* GetDefaultUseLatestIPVersion: */ 
SOURCE(13155, 124)
SOURCE(13239, 40)
   useLatestIPVersion←v10852 = (* (( (ptr) gf←c88316)+6)/* gUseLatestIPVersion←v5940 */  );
SOURCE(13155, 124)
   return(useLatestIPVersion←v10852);
   }

static void IPSetBoundBox←P600(slice←v10912)
   word slice←v10912;
   {
   register ptr gf←c88348 =  (ptr) &globalframe;
   word ipData←v18340;
   /* IPSetBoundBox: */ 
SOURCE(13285, 245)
SOURCE(13324, 35)
   ipData←v18340 = XR←Narrow((* (( (ptr) slice←v10912)+1) ), (* (( (ptr) gf←c88348)+32) ));
SOURCE(13361, 86)
   {
      word pd151;
      pd151 = (* (( (ptr) (* (( (ptr) gf←c88348)+284)/* var←c83420 */  ))+9) );
      (* (( (ptr) slice←v10912)+13) ) = (word) ( *( (fPt) ((*  (ptr) pd151 ))))((*  (ptr) ipData←v18340 ), (* (( (ptr) ipData←v18340)+5)
          ), pd151);
      };
SOURCE(13449, 81)
   {
      word pd152;
      pd152 = (* (( (ptr) (* (( (ptr) gf←c88348)+284)/* var←c83420 */  ))+9) );
      (* (( (ptr) slice←v10912)+15) ) = (word) ( *( (fPt) ((*  (ptr) pd152 ))))((* (( (ptr) ipData←v18340)+1) ), (* (( (ptr) ipData←v18340)+5)
          ), pd152);
      };
   }

static word IPGetBoundBox←P660(slice←v10972, parts←v11000)
   word slice←v10972;
   word parts←v11000;
   {
   word box←v11044;
   /* IPGetBoundBox: */ 
SOURCE(13536, 109)
SOURCE(13536, 109)
   box←v11044 = 0;
SOURCE(13623, 22)
   return((* (( (ptr) slice←v10972)+15) ));
   }

static word IPGetTightBox←P720(slice←v11104, parts←v11132)
   word slice←v11104;
   word parts←v11132;
   {
   register ptr gf←c88380 =  (ptr) &globalframe;
   word box←v11176;
   word ipData←v18384;
   /* IPGetTightBox: */ 
SOURCE(13651, 146)
SOURCE(13651, 146)
   box←v11176 = 0;
SOURCE(13738, 35)
   ipData←v18384 = XR←Narrow((* (( (ptr) slice←v11104)+1) ), (* (( (ptr) gf←c88380)+32) ));
SOURCE(13775, 22)
   return((* (( (ptr) slice←v11104)+13) ));
   }

static word IPCopy←P780(slice←v11236, parts←v11264)
   word slice←v11236;
   word parts←v11264;
   {
   register ptr gf←c88412 =  (ptr) &globalframe;
   word copy←v11308;
   word copySlice←v18428 = 0;
   word ipData←v18456;
   word transform←v18484;
   /* IPCopy: */ 
SOURCE(13802, 517)
SOURCE(13802, 517)
   copy←v11308 = 0;
SOURCE(13907, 35)
   ipData←v18456 = XR←Narrow((* (( (ptr) slice←v11236)+1) ), (* (( (ptr) gf←c88412)+32) ));
SOURCE(13944, 78)
   {
      word pd153;
      pd153 = (* (( (ptr) (* (( (ptr) gf←c88412)+278)/* var←c83068 */  ))+6) );
      transform←v18484 = (word) ( *( (fPt) ((*  (ptr) pd153 ))))((* ((( (ptr) ipData←v18456)+5)) ), pd153);
      };
SOURCE(14024, 215)
   {
      word var←c84444;
      word var←c84476;
      word var←c84508;
      {
         word pd154;
         pd154 = (* (( (ptr) (* (( (ptr) gf←c88412)+284)/* var←c83420 */  ))+7) );
         var←c84444 = (word) ( *( (fPt) ((*  (ptr) pd154 ))))((*  (ptr) (ipData←v18456) ), pd154);
         };
      {
         word pd155;
         pd155 = (* (( (ptr) (* (( (ptr) gf←c88412)+284)/* var←c83420 */  ))+7) );
         var←c84476 = (word) ( *( (fPt) ((*  (ptr) pd155 ))))((* ((( (ptr) ipData←v18456)+1)) ), pd155);
         };
      {
         word pd156;
         pd156 = (* (( (ptr) (* (( (ptr) gf←c88412)+290)/* var←c83996 */  ))+17) );
         var←c84508 = (word) ( *( (fPt) ((*  (ptr) pd156 ))))((* ((( (ptr) ipData←v18456)+9)) ), pd156);
         };
      copySlice←v18428 = (word) MakeIPSliceAux←P300((* (( (ptr) ipData←v18456)+3) ), (* (( (ptr) ipData←v18456)+4) ), 0, transform←v18484, (* (
            ( (ptr) ipData←v18456)+2) ), var←c84444
         , var←c84476, var←c84508);
      };
SOURCE(14241, 53)
   {
      word pd157;
      pd157 = (* (( (ptr) (* (( (ptr) gf←c88412)+291)/* var←c84540 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd157 ))))(slice←v11236, copySlice←v18428, 0, 0, pd157);
      };
SOURCE(14296, 23)
   {
      word var←c84604;
      word var←c84636;
      var←c84604 = XR←NewObject(8, (* (( (ptr) gf←c88412)+35) ));
      var←c84636 = var←c84604;
      (*  (ptr) var←c84636 ) = copySlice←v18428;
      return(var←c84604);
      };
   }

static void IPRestore←P840(from←v11452, to←v11480)
   word from←v11452;
   word to←v11480;
   {
   register ptr gf←c88444 =  (ptr) &globalframe;
   /* IPRestore: */ 
SOURCE(14325, 1194)
SOURCE(14370, 27)
   if ((to←v11480 == 0) || (from←v11452 == 0)) {
SOURCE(14397, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(14404, 28)
   if (((*  (ptr) to←v11480 ) != (*  (ptr) from←v11452 ))) {
SOURCE(14432, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(14439, 26)
   if (((*  (ptr) (*  (ptr) to←v11480 ) ) != (* (( (ptr) gf←c88444)+43) ))) {
SOURCE(14465, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(14472, 1049)
   {
      word fromData←v18528;
      word toData←v18556;
SOURCE(14478, 36)
      fromData←v18528 = XR←Narrow((* (( (ptr) from←v11452)+1) ), (* (( (ptr) gf←c88444)+32) ));
SOURCE(14516, 32)
      toData←v18556 = XR←Narrow((* (( (ptr) to←v11480)+1) ), (* (( (ptr) gf←c88444)+32) ));
SOURCE(14551, 438)
      if ((0 != (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c88444)+279)/* var←c83132 */  ))+67) ) ))) {
SOURCE(14581, 47)
         (*  (W6Pt) (*  (ptr) toData←v18556 ) ) = (*  (W6Pt) (*  (ptr) fromData←v18528 ) );
SOURCE(14630, 37)
         (*  (W6Pt) (* (( (ptr) toData←v18556)+1) ) ) = (*  (W6Pt) (* (( (ptr) fromData←v18528)+1) ) );
SOURCE(14669, 47)
         (* (( (ptr) toData←v18556)+2) ) = (* (( (ptr) fromData←v18528)+2) );
SOURCE(14718, 27)
         (* (( (ptr) toData←v18556)+3) ) = (* (( (ptr) fromData←v18528)+3) );
SOURCE(14747, 25)
         (* (( (ptr) toData←v18556)+4) ) = (* (( (ptr) fromData←v18528)+4) );
SOURCE(14817, 37)
         (* (( (ptr) toData←v18556)+5) ) = (* (( (ptr) fromData←v18528)+5) );
SOURCE(14856, 33)
         (* (( (ptr) toData←v18556)+6) ) = (* (( (ptr) fromData←v18528)+6) );
SOURCE(14891, 43)
         (*  (W2Pt) (( (ptr) toData←v18556)+7) ) = (*  (W2Pt) (( (ptr) fromData←v18528)+7) );
SOURCE(14936, 25)
         (* (( (ptr) toData←v18556)+9) ) = (* (( (ptr) fromData←v18528)+9) );
         }
      else {
SOURCE(14970, 19)
         (* (( (ptr) to←v11480)+1) ) = (* (( (ptr) from←v11452)+1) );
         };
SOURCE(14992, 39)
      (*  (W4Pt) (( (ptr) to←v11480)+3) ) = (*  (W4Pt) (( (ptr) from←v11452)+3) );
SOURCE(15051, 28)
      (* (( (ptr) to←v11480)+7) ) = 0;
SOURCE(15105, 25)
      (* (( (ptr) to←v11480)+8) ) = 0;
SOURCE(15156, 28)
      (* (( (ptr) to←v11480)+9) ) = 0;
SOURCE(15210, 27)
      (* (( (ptr) to←v11480)+10) ) = 0;
SOURCE(15263, 29)
      (*  (W6Pt) (* (( (ptr) to←v11480)+13) ) ) = (*  (W6Pt) (* (( (ptr) from←v11452)+13) ) );
SOURCE(15294, 37)
      (* (( (ptr) to←v11480)+14) ) = (* (( (ptr) from←v11452)+14) );
SOURCE(15333, 29)
      (*  (W6Pt) (* (( (ptr) to←v11480)+15) ) ) = (*  (W6Pt) (* (( (ptr) from←v11452)+15) ) );
SOURCE(15364, 27)
      (* (( (ptr) to←v11480)+16) ) = (* (( (ptr) from←v11452)+16) );
SOURCE(15393, 29)
      (* (( (ptr) to←v11480)+17) ) = (* (( (ptr) from←v11452)+17) );
SOURCE(15424, 33)
      (* (( (ptr) to←v11480)+18) ) = (* (( (ptr) from←v11452)+18) );
SOURCE(15459, 27)
      (* (( (ptr) to←v11480)+19) ) = (* (( (ptr) from←v11452)+19) );
SOURCE(15488, 31)
      (* (( (ptr) to←v11480)+20) ) = (* (( (ptr) from←v11452)+20) );
      };
   }

static void IPDrawParts←P900(formal←c01002, parts←v11568, formal←c01003, camera←v11624, quick←v11652)
   word formal←c01002;
   word parts←v11568;
   word formal←c01003;
   word camera←v11624;
   word quick←v11652;
   {
   W8 var←c88476;
   /* declaration of slice←v11540 skipped */ 
   /* declaration of dc←v11596 skipped */ 
   register ptr gf←c88508 =  (ptr) &globalframe;
   /* declaration of var←c84668 skipped */ 
   word ipData←v18600;
   word ipParts←v18628;
   var←c88476.f4/* slice←v11540 */  = formal←c01002;
   var←c88476.f5/* dc←v11596 */  = formal←c01003;
   /* IPDrawParts: */ 
SOURCE(15530, 312)
   {
      word tmpAddr158;
      tmpAddr158 = (word) (( (ptr) &var←c88476)+6)/* var←c84668 */ ;
      (*  (ptr) tmpAddr158 ) = ( ((word)  (fPt) DoIPDrawParts←P5952) );
      (* (( (ptr) tmpAddr158) + 1) ) = 1;
      };
SOURCE(15641, 35)
   ipData←v18600 = XR←Narrow((* (( (ptr) var←c88476.f4/* slice←v11540 */ )+1) ), (* (( (ptr) gf←c88508)+32) ));
SOURCE(15678, 32)
   ipParts←v18628 = XR←Narrow(parts←v11568, (* (( (ptr) gf←c88508)+36) ));
SOURCE(15769, 73)
   if ((ipParts←v18628 == 0) || (0 != (* (( (ptr) ipParts←v18628)+8) ))) {
SOURCE(15810, 32)
      {
         word pd159;
         pd159 = (* (( (ptr) (* (( (ptr) gf←c88508)+282)/* var←c83356 */  ))+12) );
         (void) ( *( (fPt) ((*  (ptr) pd159 ))))(var←c88476.f5/* dc←v11596 */ , (word) (( (bPt) &var←c88476)+24)/* var←c84668 */ , pd159)
         ;
         };
      };
   }

static void DoIPDrawParts←P5952(formal←c88540)
   word formal←c88540;
   {
   formal←c88540 = (formal←c88540 - 24);
   /* DoIPDrawParts: */ 
SOURCE(15712, 52)
SOURCE(15736, 28)
   (void) CachedIPDraw←P1200((* (( (ptr) formal←c88540)+5) ), (* (( (ptr) formal←c88540)+4) ), 0);
   }

static void IPDrawTransform←P960(formal←c01004, parts←v11740, formal←c01005, camera←v11796, formal←c01006, editConstraints←v11852)
   word formal←c01004;
   word parts←v11740;
   word formal←c01005;
   word camera←v11796;
   word formal←c01006;
   word editConstraints←v11852;
   {
   W9 var←c88572;
   /* declaration of slice←v11712 skipped */ 
   /* declaration of dc←v11768 skipped */ 
   /* declaration of transform←v11824 skipped */ 
   register ptr gf←c88604 =  (ptr) &globalframe;
   /* declaration of var←c84700 skipped */ 
   (* (( (ptr) &var←c88572)+4)/* slice←v11712 */  ) = formal←c01004;
   (* (( (ptr) &var←c88572)+5)/* dc←v11768 */  ) = formal←c01005;
   (* (( (ptr) &var←c88572)+6)/* transform←v11824 */  ) = formal←c01006;
   /* IPDrawTransform: */ 
SOURCE(15848, 266)
   {
      word tmpAddr160;
      tmpAddr160 = (word) (( (ptr) &var←c88572)+7)/* var←c84700 */ ;
      (*  (ptr) tmpAddr160 ) = ( ((word)  (fPt) DoIPDrawTransform←P6012) );
      (* (( (ptr) tmpAddr160) + 1) ) = 1;
      };
SOURCE(16078, 36)
   {
      word pd161;
      pd161 = (* (( (ptr) (* (( (ptr) gf←c88604)+282)/* var←c83356 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd161 ))))((* (( (ptr) &var←c88572)+5)/* dc←v11768 */  ), (word) (( (bPt) &var←c88572)+28)/* var←c84700 */ , pd161)
      ;
      };
   }

static void DoIPDrawTransform←P6012(formal←c88636)
   word formal←c88636;
   {
   formal←c88636 = (formal←c88636 - 28);
   /* DoIPDrawTransform: */ 
SOURCE(16011, 62)
SOURCE(16039, 34)
   (void) CachedIPDraw←P1200((* (( (ptr) formal←c88636)+5) ), (* (( (ptr) formal←c88636)+4) ), (* (( (ptr) formal←c88636)+6)
       ));
   }

static void IPDrawSelectionFeedback←P1020(slice←v11912, selectedParts←v11940, hotParts←v11968, dc←v11996, camera←v12024, dragInProgress←v12052, caretIsMoving←v12080, hideHot←v12108, quick←v12136)
   word slice←v11912;
   word selectedParts←v11940;
   word hotParts←v11968;
   word dc←v11996;
   word camera←v12024;
   word dragInProgress←v12052;
   word caretIsMoving←v12080;
   word hideHot←v12108;
   word quick←v12136;
   {
   register ptr gf←c88668 =  (ptr) &globalframe;
   word slowNormal←v18776 = 0;
   word slowHot←v18804 = 0;
   word completeNormal←v18832 = 0;
   word completeHot←v18860 = 0;
   W2 firstJoint←v18888;
   word normalParts←v18916 = 0;
   word hotIPParts←v18944 = 0;
   word ipData←v18972;
   word transform←v19000;
   /* IPDrawSelectionFeedback: */ 
SOURCE(16121, 1736)
SOURCE(16425, 35)
   ipData←v18972 = XR←Narrow((* (( (ptr) slice←v11912)+1) ), (* (( (ptr) gf←c88668)+32) ));
SOURCE(16462, 44)
   transform←v19000 = (* (( (ptr) ipData←v18972)+5) );
SOURCE(16509, 72)
   if (((0 != caretIsMoving←v12080) || (0 != dragInProgress←v12052)) || ((*  (ptr) camera←v12024 ) == 2)) {
SOURCE(16575, 6)
      return;
      };
SOURCE(16583, 53)
   if ( ( (selectedParts←v11940 == 0) ? (hotParts←v11968 == 0) : 0 ) ) {
SOURCE(16630, 6)
      return;
      };
SOURCE(16638, 35)
   normalParts←v18916 = XR←Narrow(selectedParts←v11940, (* (( (ptr) gf←c88668)+36) ));
SOURCE(16675, 29)
   hotIPParts←v18944 = XR←Narrow(hotParts←v11968, (* (( (ptr) gf←c88668)+36) ));
SOURCE(16706, 60)
   if ((normalParts←v18916 != 0)) {
      completeNormal←v18832 =  (unsigned) (0 != (word) IsComplete←P3000(normalParts←v18916));
      }
   else {
      completeNormal←v18832 =  (unsigned) 0;
      };
SOURCE(16768, 55)
   if ((hotIPParts←v18944 != 0)) {
      completeHot←v18860 =  (unsigned) (0 != (word) IsComplete←P3000(hotIPParts←v18944));
      }
   else {
      completeHot←v18860 =  (unsigned) 0;
      };
SOURCE(16825, 78)
   if ((normalParts←v18916 != 0)) {
      if ((0 == quick←v12136)) {
         slowNormal←v18776 =  (unsigned) 1;
         }
      else {
         if ((0 != quick←v12136)) {
            slowNormal←v18776 =  (unsigned) (0 == completeNormal←v18832);
            }
         else {
            slowNormal←v18776 =  (unsigned) 0;
            };
         };
      }
   else {
      slowNormal←v18776 =  (unsigned) 0;
      };
SOURCE(16905, 71)
   if ((hotIPParts←v18944 != 0)) {
      if ((0 == quick←v12136)) {
         slowHot←v18804 =  (unsigned) 1;
         }
      else {
         if ((0 != quick←v12136)) {
            slowHot←v18804 =  (unsigned) (0 == completeHot←v18860);
            }
         else {
            slowHot←v18804 =  (unsigned) 0;
            };
         };
      }
   else {
      slowHot←v18804 =  (unsigned) 0;
      };
SOURCE(16978, 324)
   if (((0 != slowNormal←v18776) && (0 != slowHot←v18804))) {
SOURCE(17009, 93)
      (void) DrawSelectionFeedbackAux←P1380(slice←v11912, ipData←v18972, normalParts←v18916, hotIPParts←v18944, dc←v11996, transform←v19000
         , camera←v12024);
      }
   else {
SOURCE(17102, 200)
      if ((0 != slowNormal←v18776)) {
SOURCE(17121, 86)
         (void) DrawSelectionFeedbackAux←P1380(slice←v11912, ipData←v18972, normalParts←v18916, 0, dc←v11996, transform←v19000
            , camera←v12024);
         }
      else {
SOURCE(17207, 95)
         if ((0 != slowHot←v18804)) {
SOURCE(17223, 79)
            (void) DrawSelectionFeedbackAux←P1380(slice←v11912, ipData←v18972, 0, hotIPParts←v18944, dc←v11996, transform←v19000
               , camera←v12024);
            };
         };
      };
SOURCE(17304, 329)
   if ( ( (0 == slowNormal←v18776) ? (0 != completeNormal←v18832) : 0 )  ||  ( (0 == slowHot←v18804) ? (0 != completeHot←v18860) : 0 ) ) {
SOURCE(17381, 254)
      {
         word fullParts←v19044;
SOURCE(17383, 71)
         fullParts←v19044 =  ( (0 != completeNormal←v18832) ? normalParts←v18916 : hotIPParts←v18944 ) ;
SOURCE(17456, 34)
         {
            word var←c84764;
            word pd162;
            pd162 = (* (( (ptr) (* (( (ptr) gf←c88668)+292)/* var←c84732 */  ))+9) );
            var←c84764 = (word) ( *( (fPt) ((*  (ptr) pd162 ))))(slice←v11912, 0, pd162);
            };
SOURCE(17525, 108)
         {
            W2 var←c0315;
            {
               W2 var←c84796;
               var←c84796.f0 = (*  (ptr) (*  (ptr) ipData←v18972 ) );
               var←c84796.f1 = (* (( (ptr) (*  (ptr) ipData←v18972 ))+1) );
               {
                  word pd163;
                  pd163 = (* (( (ptr) (* (( (ptr) gf←c88668)+278)/* var←c83068 */  ))+39) );
                  (void) ( *( (fPt) ((*  (ptr) pd163 ))))((word) &var←c0315, transform←v19000, var←c84796, pd163);
                  };
               };
            firstJoint←v18888 = var←c0315;
            };
         };
      };
SOURCE(17638, 104)
   if ( ( (0 == slowHot←v18804) ? (0 != completeHot←v18860) : 0 ) ) {
SOURCE(17674, 68)
      {
         word pd164;
         pd164 = (* (( (ptr) (* (( (ptr) gf←c88668)+293)/* var←c84828 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd164 ))))(dc←v11996, firstJoint←v18888, 1, (* (( (ptr) camera←v12024)+4) ), pd164);
         };
      };
SOURCE(17744, 113)
   if ( ( (0 == slowNormal←v18776) ? (0 != completeNormal←v18832) : 0 ) ) {
SOURCE(17786, 71)
      {
         word pd165;
         pd165 = (* (( (ptr) (* (( (ptr) gf←c88668)+293)/* var←c84828 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd165 ))))(dc←v11996, firstJoint←v18888, 0, (* (( (ptr) camera←v12024)+4) ), pd165);
         };
      };
   }

static word FindImagerObject←P1080(formal←c01007)
   word formal←c01007;
   {
   W7 var←c88700;
   /* declaration of ipData←v12280 skipped */ 
   register ptr gf←c88732 =  (ptr) &globalframe;
   word object←v12324;
   /* declaration of var←c84860 skipped */ 
   word value←v19116 = 0;
   word ok←v19144;
   var←c88700.f4/* ipData←v12280 */  = formal←c01007;
   /* FindImagerObject: */ 
SOURCE(17958, 458)
   {
      word tmpAddr166;
      tmpAddr166 = (word) (( (ptr) &var←c88700)+5)/* var←c84860 */ ;
      (*  (ptr) tmpAddr166 ) = ( ((word)  (fPt) CompareProps←P6120) );
      (* (( (ptr) tmpAddr166) + 1) ) = 1;
      };
SOURCE(17958, 458)
   object←v12324 = 0;
SOURCE(18282, 90)
   {
      W2 var←c84924;
      {
         word pd167;
         pd167 = (* (( (ptr) (* (( (ptr) gf←c88732)+294)/* var←c84892 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd167 ))))((word) &var←c84924, (* (( (ptr) gf←c88732)+8)/* cache←v8432 */  ), (word) (( (bPt) &var←c88700)+20)
            /* var←c84860 */ , (* (( (ptr) gf←c88732)+39) ), pd167);
         };
      ok←v19144 = var←c84924.f1;
      value←v19116 = var←c84924.f0;
      };
SOURCE(18374, 42)
   if ((0 != ok←v19144)) {
      return(XR←Narrow(value←v19116, (* (( (ptr) gf←c88732)+38) )));
      }
   else {
      return(0);
      };
   }

static word CompareProps←P6120(argument←v65740, formal←c88796)
   word argument←v65740;
   word formal←c88796;
   {
   register ptr gf←c88764 =  (ptr) &globalframe;
   word good←v65784;
   word cachedProps←v19188;
   word cachedSlice←v19216;
   word cachedData←v19244;
   formal←c88796 = (formal←c88796 - 20);
   /* CompareProps: */ 
SOURCE(18034, 204)
SOURCE(18078, 37)
   cachedProps←v19188 = XR←Narrow(argument←v65740, (* (( (ptr) gf←c88764)+37) ));
SOURCE(18117, 38)
   cachedSlice←v19216 = (*  (ptr) cachedProps←v19188 );
SOURCE(18157, 45)
   cachedData←v19244 = XR←Narrow((* (( (ptr) cachedSlice←v19216)+1) ), (* (( (ptr) gf←c88764)+32) ));
SOURCE(18205, 33)
   return( (unsigned) ((* (( (ptr) cachedData←v19244)+4) ) == (* (( (ptr) (* (( (ptr) formal←c88796)+4) ))+4) )));
   }

static word CreateProps←P1140(slice←v12384)
   word slice←v12384;
   {
   register ptr gf←c88828 =  (ptr) &globalframe;
   word props←v12428;
   /* CreateProps: */ 
SOURCE(18422, 116)
SOURCE(18422, 116)
   props←v12428 = 0;
SOURCE(18482, 21)
   {
      word var←c84988;
      var←c84988 = XR←NewObject(8, (* (( (ptr) gf←c88828)+37) ));
      (* (( (ptr) var←c84988)+1) ) = 1;
      props←v12428 = var←c84988;
      };
SOURCE(18505, 33)
   {
      word var←c85020;
      var←c85020 = (*  (ptr) IPCopy←P780(slice←v12384, 0) );
      (*  (ptr) props←v12428 ) = var←c85020;
      };
SOURCE(18422, 116)
   return(props←v12428);
   }

static void CachedIPDraw←P1200(formal←c01008, slice←v12516, viewView←v12544)
   word formal←c01008;
   word slice←v12516;
   word viewView←v12544;
   {
   W10 var←c88860;
   /* declaration of dc←v12488 skipped */ 
   register ptr gf←c88892 =  (ptr) &globalframe;
   /* declaration of object←v19288 skipped */ 
   word ipProps←v19316 = 0;
   word ipData←v19344;
   /* declaration of success←v19372 skipped */ 
   (* (( (ptr) &var←c88860)+4)/* dc←v12488 */  ) = formal←c01008;
   /* CachedIPDraw: */ 
SOURCE(18544, 1253)
SOURCE(18693, 21)
   (* (( (ptr) &var←c88860)+5)/* object←v19288 */  ) = 0;
SOURCE(18732, 35)
   ipData←v19344 = XR←Narrow((* (( (ptr) slice←v12516)+1) ), (* (( (ptr) gf←c88892)+32) ));
SOURCE(18769, 20)
   (* (( (ptr) &var←c88860)+6)/* success←v19372 */  ) = 1;
SOURCE(18792, 1005)
   {
      word tc168;
      word pd169;
      word pd170;
      pd169 = (* (( (ptr) (* (( (ptr) gf←c88892)+295)/* var←c85052 */  ))+5) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd169 ))))(pd169))) {
         if ((viewView←v12544 == 0)) {
            tc168 =  (word) 1;
            }
         else {
            pd170 = (* (( (ptr) (* (( (ptr) gf←c88892)+278)/* var←c83068 */  ))+55) );
            tc168 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd170 ))))(viewView←v12544, (* (( (ptr) gf←c88892)+7)/* identity←v6388 */  ), (*  (ptr) &fc171 ), pd170)
            );
            };
         }
      else {
         tc168 =  (word) 0;
         };
      if (tc168) {
SOURCE(18890, 33)
         (* (( (ptr) &var←c88860)+5)/* object←v19288 */  ) = (word) FindImagerObject←P1080(ipData←v19344);
SOURCE(18925, 300)
         if (((* (( (ptr) &var←c88860)+5)/* object←v19288 */  ) == 0)) {
SOURCE(18947, 280)
            {
               W4 clipR←v19416;
               word props←v19444;
SOURCE(18972, 75)
               {
                  word pd172;
                  pd172 = (* (( (ptr) (* (( (ptr) gf←c88892)+284)/* var←c83420 */  ))+11) );
                  (void) ( *( (fPt) ((*  (ptr) pd172 ))))((word) &clipR←v19416, (* (( (ptr) ipData←v19344)+1) ), pd172);
                  };
SOURCE(19049, 33)
               props←v19444 = (word) CreateProps←P1140(slice←v12516);
SOURCE(19085, 79)
               {
                  word var←c85084;
                  var←c85084 = XR←NewObject(24, (* (( (ptr) gf←c88892)+38) ));
                  (*  (ptr) var←c85084 ) = (word) (( (bPt) gf←c88892)+836)/* var←c81948 */ ;
                  (*  (W4Pt) (( (ptr) var←c85084)+1) ) = clipR←v19416;
                  (* (( (ptr) var←c85084)+5) ) = props←v19444;
                  (* (( (ptr) &var←c88860)+5)/* object←v19288 */  ) = var←c85084;
                  };
SOURCE(19166, 59)
               {
                  word pd173;
                  pd173 = (* (( (ptr) (* (( (ptr) gf←c88892)+294)/* var←c84892 */  ))+6) );
                  (void) ( *( (fPt) ((*  (ptr) pd173 ))))((* (( (ptr) gf←c88892)+8)/* cache←v8432 */  ), props←v19444, (* (( (ptr) &var←c88860)+5)
                     /* object←v19288 */  ), 60, (* (( (ptr) gf←c88892)+39) ), pd173);
                  };
               };
            };
SOURCE(19230, 438)
SOURCE(19236, 29)
         ipProps←v19316 = XR←Narrow((* (( (ptr) (* (( (ptr) &var←c88860)+5)/* object←v19288 */  ))+5) ), (* (( (ptr) gf←c88892)+37)
             ));
SOURCE(19267, 51)
         if ((viewView←v12544 != 0)) {
SOURCE(19290, 28)
            {
               word pd174;
               pd174 = (* (( (ptr) (* (( (ptr) gf←c88892)+282)/* var←c83356 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd174 ))))((* (( (ptr) &var←c88860)+4)/* dc←v12488 */  ), viewView←v12544, pd174);
               };
            };
SOURCE(19320, 36)
         {
            word pd175;
            pd175 = (* (( (ptr) (* (( (ptr) gf←c88892)+282)/* var←c83356 */  ))+14) );
            (void) ( *( (fPt) ((*  (ptr) pd175 ))))((* (( (ptr) &var←c88860)+4)/* dc←v12488 */  ), (* (( (ptr) ipData←v19344)+5) ), pd175)
            ;
            };
SOURCE(19358, 30)
         if ((0 == (* (( (ptr) ipProps←v19316)+1) ))) {
SOURCE(19388, 14)
            goto lab←L100004;
            };
SOURCE(19404, 132)
SOURCE(19404, 132)
         {
            /* declaration of var←c05 skipped */ 
            /* declaration of var←c06 skipped */ 
            (* (( (ptr) &var←c88860)+7) ) = (*  (ptr) &fc103 );
            (* (( (ptr) &var←c88860)+8) ) = (*  (ptr) &fc103 );
            (* (( (ptr) &var←c88860)+9)/* var←c06 */  ) = (* (( (ptr) (* (( (ptr) gf←c88892)+282)/* var←c83356 */  ))+87) );
            {
               word var←c07;
               {
                  word var←c0976;
                  var←c0976 = (word) &var←c88860;
                  var←c07 = (word) XR←Enable(( ((word)  (fPt) NoName←Q7632) ), ( ((word)  (fPt) NoName←Q7932) ), var←c0976);
                  };
               /* removed trivial cond node */ 
               };
            };
SOURCE(19554, 47)
         if ((0 == (* (( (ptr) &var←c88860)+6)/* success←v19372 */  ))) {
SOURCE(19576, 25)
            (* (( (ptr) ipProps←v19316)+1) ) = 0;
SOURCE(19603, 14)
            goto lab←L100004;
            };
         goto lab←L100009;
         lab←L100004: ;
SOURCE(19641, 25)
         (void) IPDrawInnards←P1320((* (( (ptr) &var←c88860)+4)/* dc←v12488 */  ), ipData←v19344);
         lab←L100009: ;
         }
      else {
SOURCE(19681, 51)
         if ((viewView←v12544 != 0)) {
SOURCE(19704, 28)
            {
               word pd176;
               pd176 = (* (( (ptr) (* (( (ptr) gf←c88892)+282)/* var←c83356 */  ))+14) );
               (void) ( *( (fPt) ((*  (ptr) pd176 ))))((* (( (ptr) &var←c88860)+4)/* dc←v12488 */  ), viewView←v12544, pd176);
               };
            };
SOURCE(19734, 36)
         {
            word pd177;
            pd177 = (* (( (ptr) (* (( (ptr) gf←c88892)+282)/* var←c83356 */  ))+14) );
            (void) ( *( (fPt) ((*  (ptr) pd177 ))))((* (( (ptr) &var←c88860)+4)/* dc←v12488 */  ), (* (( (ptr) ipData←v19344)+5) ), pd177)
            ;
            };
SOURCE(19772, 25)
         (void) IPDrawInnards←P1320((* (( (ptr) &var←c88860)+4)/* dc←v12488 */  ), ipData←v19344);
         };
      };
   }

static word NoName←Q7632(formal←c0921)
   word formal←c0921;
   {
SOURCE(19404, 132)
   {
      word pd178;
      pd178 = (* (( (ptr) formal←c0921)+9) );
      (void) ( *( (fPt) ((*  (ptr) pd178 ))))((* (( (ptr) formal←c0921)+4) ), (* (( (ptr) formal←c0921)+5) ), (*  (W2Pt) (( (ptr) formal←c0921)+7)
          ), 1, pd178);
      };
   return(0);
   }

static void IPDrawObject←P1260(self←v12604, context←v12632)
   word self←v12604;
   word context←v12632;
   {
   register ptr gf←c88924 =  (ptr) &globalframe;
   word ipProps←v19488;
   word ipData←v19516;
   /* IPDrawObject: */ 
SOURCE(19867, 209)
SOURCE(19965, 34)
   ipProps←v19488 = XR←Narrow((* (( (ptr) self←v12604)+5) ), (* (( (ptr) gf←c88924)+37) ));
SOURCE(20001, 43)
   ipData←v19516 = XR←Narrow((* (( (ptr) (*  (ptr) ipProps←v19488 ))+1) ), (* (( (ptr) gf←c88924)+32) ));
SOURCE(20046, 30)
   (void) IPDrawInnards←P1320(context←v12632, ipData←v19516);
   }

static void IPDrawInnards←P1320(formal←c01009, formal←c01010)
   word formal←c01009;
   word formal←c01010;
   {
   W6 var←c88956;
   /* declaration of dc←v12692 skipped */ 
   /* declaration of ipData←v12720 skipped */ 
   var←c88956.f4/* dc←v12692 */  = formal←c01009;
   var←c88956.f5/* ipData←v12720 */  = formal←c01010;
   /* IPDrawInnards: */ 
SOURCE(20082, 411)
SOURCE(20143, 350)
   {
      word var←c0977;
      var←c0977 = (word) &var←c88956;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q7692) ), ( ((word)  (fPt) NoName←Q7872) ), var←c0977);
      };
   }

static word NoName←Q7692(formal←c0924)
   word formal←c0924;
   {
   register ptr gf←c0923 =  (ptr) &globalframe;
SOURCE(20367, 33)
   {
      word pd179;
      pd179 = (* (( (ptr) (* (( (ptr) gf←c0923)+282)/* var←c83356 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd179 ))))((* (( (ptr) formal←c0924)+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0923)+282)/* var←c83356 */  ))+54)
          ) ), pd179);
      };
SOURCE(20458, 35)
   {
      word pd180;
      pd180 = (* (( (ptr) (* (( (ptr) gf←c0923)+281)/* var←c83324 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd180 ))))((* (( (ptr) (* (( (ptr) formal←c0924)+5) ))+4) ), (* (( (ptr) formal←c0924)+4) ), pd180)
      ;
      };
   return(0);
   }

static void DrawSelectionFeedbackAux←P1380(slice←v12780, formal←c01011, formal←c01012, formal←c01013, formal←c01014, formal←c01015, formal←c01016)
   word slice←v12780;
   word formal←c01011;
   word formal←c01012;
   word formal←c01013;
   word formal←c01014;
   word formal←c01015;
   word formal←c01016;
   {
   W12 var←c88988;
   /* declaration of ipData←v12808 skipped */ 
   /* declaration of normalParts←v12836 skipped */ 
   /* declaration of hotParts←v12864 skipped */ 
   /* declaration of dc←v12892 skipped */ 
   /* declaration of t←v12920 skipped */ 
   /* declaration of camera←v12948 skipped */ 
   register ptr gf←c89020 =  (ptr) &globalframe;
   /* declaration of var←c85340 skipped */ 
   (* (( (ptr) &var←c88988)+4)/* ipData←v12808 */  ) = formal←c01011;
   (* (( (ptr) &var←c88988)+5)/* normalParts←v12836 */  ) = formal←c01012;
   (* (( (ptr) &var←c88988)+6)/* hotParts←v12864 */  ) = formal←c01013;
   (* (( (ptr) &var←c88988)+7)/* dc←v12892 */  ) = formal←c01014;
   (* (( (ptr) &var←c88988)+8)/* t←v12920 */  ) = formal←c01015;
   (* (( (ptr) &var←c88988)+9)/* camera←v12948 */  ) = formal←c01016;
   /* DrawSelectionFeedbackAux: */ 
SOURCE(20499, 1458)
   {
      word tmpAddr181;
      tmpAddr181 = (word) (( (ptr) &var←c88988)+10)/* var←c85340 */ ;
      (*  (ptr) tmpAddr181 ) = ( ((word)  (fPt) DoDrawFeedback←P6228) );
      (* (( (ptr) tmpAddr181) + 1) ) = 1;
      };
SOURCE(21924, 33)
   {
      word pd182;
      pd182 = (* (( (ptr) (* (( (ptr) gf←c89020)+282)/* var←c83356 */  ))+12) );
      (void) ( *( (fPt) ((*  (ptr) pd182 ))))((* (( (ptr) &var←c88988)+7)/* dc←v12892 */  ), (word) (( (bPt) &var←c88988)+40)/* var←c85340 */ , pd182)
      ;
      };
   }

static void DoDrawFeedback←P6228(formal←c89084)
   word formal←c89084;
   {
   register ptr gf←c89052 =  (ptr) &globalframe;
   word box←v19620;
   word thisCPisHot←v19648;
   word thisCPisSelected←v19676;
   W8 pts←v19704;
   formal←c89084 = (formal←c89084 - 40);
   /* DoDrawFeedback: */ 
SOURCE(20661, 1228)
SOURCE(20686, 36)
   box←v19620 = (*  (ptr) (* (( (ptr) formal←c89084)+4) ) );
SOURCE(20789, 62)
   {
      W2 var←c85372;
      {
         W2 var←c0364;
         {
            W2 var←c85404;
            var←c85404.f0 = (*  (ptr) box←v19620 );
            var←c85404.f1 = (* (( (ptr) box←v19620)+1) );
            {
               word pd183;
               pd183 = (* (( (ptr) (* (( (ptr) gf←c89052)+278)/* var←c83068 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd183 ))))((word) &var←c0364, (* (( (ptr) formal←c89084)+8) ), var←c85404, pd183);
               };
            };
         var←c85372 = var←c0364;
         };
      (*  (W2Pt) &pts←v19704 ) = var←c85372;
      };
SOURCE(20853, 62)
   {
      W2 var←c85436;
      {
         W2 var←c0367;
         {
            W2 var←c85468;
            var←c85468.f0 = (*  (ptr) box←v19620 );
            var←c85468.f1 = (* (( (ptr) box←v19620)+3) );
            {
               word pd184;
               pd184 = (* (( (ptr) (* (( (ptr) gf←c89052)+278)/* var←c83068 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd184 ))))((word) &var←c0367, (* (( (ptr) formal←c89084)+8) ), var←c85468, pd184);
               };
            };
         var←c85436 = var←c0367;
         };
      (*  (W2Pt) (( (ptr) &pts←v19704)+2) ) = var←c85436;
      };
SOURCE(20917, 62)
   {
      W2 var←c85500;
      {
         W2 var←c0370;
         {
            W2 var←c85532;
            var←c85532.f0 = (* (( (ptr) box←v19620)+2) );
            var←c85532.f1 = (* (( (ptr) box←v19620)+3) );
            {
               word pd185;
               pd185 = (* (( (ptr) (* (( (ptr) gf←c89052)+278)/* var←c83068 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd185 ))))((word) &var←c0370, (* (( (ptr) formal←c89084)+8) ), var←c85532, pd185);
               };
            };
         var←c85500 = var←c0370;
         };
      (*  (W2Pt) (( (ptr) &pts←v19704)+4) ) = var←c85500;
      };
SOURCE(20981, 62)
   {
      W2 var←c85564;
      {
         W2 var←c0373;
         {
            W2 var←c85596;
            var←c85596.f0 = (* (( (ptr) box←v19620)+2) );
            var←c85596.f1 = (* (( (ptr) box←v19620)+1) );
            {
               word pd186;
               pd186 = (* (( (ptr) (* (( (ptr) gf←c89052)+278)/* var←c83068 */  ))+39) );
               (void) ( *( (fPt) ((*  (ptr) pd186 ))))((word) &var←c0373, (* (( (ptr) formal←c89084)+8) ), var←c85596, pd186);
               };
            };
         var←c85564 = var←c0373;
         };
      (*  (W2Pt) (( (ptr) &pts←v19704)+6) ) = var←c85564;
      };
SOURCE(21045, 437)
   {
      register word point←v19784 = 0;
      if (( (int)point←v19784 >  (int)3)) {
         goto lab←L100012;
         };
      lab←L100015: ;
SOURCE(21087, 53)
      if (((* (( (ptr) formal←c89084)+6) ) != 0)) {
         thisCPisHot←v19648 =  (unsigned) (0 != (* (( (ptr) (* (( (ptr) formal←c89084)+6) ))+BCK(point←v19784, 4)) ));
         }
      else {
         thisCPisHot←v19648 =  (unsigned) 0;
         };
SOURCE(21142, 64)
      if (((* (( (ptr) formal←c89084)+5) ) != 0)) {
         thisCPisSelected←v19676 =  (unsigned) (0 != (* (( (ptr) (* (( (ptr) formal←c89084)+5) ))+BCK(point←v19784, 4)) ));
         }
      else {
         thisCPisSelected←v19676 =  (unsigned) 0;
         };
SOURCE(21208, 83)
      if ((0 != thisCPisHot←v19648)) {
SOURCE(21228, 63)
         {
            word pd187;
            pd187 = (* (( (ptr) (* (( (ptr) gf←c89052)+293)/* var←c84828 */  ))+20) );
            (void) ( *( (fPt) ((*  (ptr) pd187 ))))((* (( (ptr) formal←c89084)+7) ), (* (( (W2Pt) &pts←v19704)+BCK(point←v19784, 4)) ), 1, (* (
                  ( (ptr) (* (( (ptr) formal←c89084)+9) ))+4) ), pd187);
            };
         };
SOURCE(21293, 91)
      if ((0 != thisCPisSelected←v19676)) {
SOURCE(21318, 66)
         {
            word pd188;
            pd188 = (* (( (ptr) (* (( (ptr) gf←c89052)+293)/* var←c84828 */  ))+20) );
            (void) ( *( (fPt) ((*  (ptr) pd188 ))))((* (( (ptr) formal←c89084)+7) ), (* (( (W2Pt) &pts←v19704)+BCK(point←v19784, 4)) ), 0, (* (
                  ( (ptr) (* (( (ptr) formal←c89084)+9) ))+4) ), pd188);
            };
         };
SOURCE(21386, 96)
      if ( ( (0 == thisCPisHot←v19648) ? (0 == thisCPisSelected←v19676) : 0 ) ) {
SOURCE(21435, 47)
         {
            word pd189;
            pd189 = (* (( (ptr) (* (( (ptr) gf←c89052)+293)/* var←c84828 */  ))+19) );
            (void) ( *( (fPt) ((*  (ptr) pd189 ))))((* (( (ptr) formal←c89084)+7) ), (* (( (W2Pt) &pts←v19704)+BCK(point←v19784, 4)) ), (* (
                  ( (ptr) (* (( (ptr) formal←c89084)+9) ))+4) ), pd189);
            };
         };
      if (( (int)point←v19784 >=  (int)3)) {
         goto lab←L100012;
         };
      point←v19784 = (point←v19784 + 1);
      goto lab←L100015;
      lab←L100012: ;
      };
SOURCE(21493, 32)
   {
      word pd190;
      pd190 = (* (( (ptr) (* (( (ptr) gf←c89052)+282)/* var←c83356 */  ))+70) );
      (void) ( *( (fPt) ((*  (ptr) pd190 ))))((* (( (ptr) formal←c89084)+7) ), 2, pd190);
      };
SOURCE(21527, 30)
   {
      word pd191;
      pd191 = (* (( (ptr) (* (( (ptr) gf←c89052)+282)/* var←c83356 */  ))+68) );
      (void) ( *( (fPt) ((*  (ptr) pd191 ))))((* (( (ptr) formal←c89084)+7) ), (*  (ptr) &fc92 ), pd191);
      };
SOURCE(21559, 33)
   {
      word pd192;
      pd192 = (* (( (ptr) (* (( (ptr) gf←c89052)+282)/* var←c83356 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd192 ))))((* (( (ptr) formal←c89084)+7) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c89052)+282)
            /* var←c83356 */  ))+54) ) ), pd192);
      };
SOURCE(21594, 295)
   if (((* (( (ptr) formal←c89084)+5) ) != 0)) {
SOURCE(21622, 267)
      {
         register word edge←v19828 = 0;
         if (( (int)edge←v19828 >  (int)3)) {
            goto lab←L100016;
            };
         lab←L100019: ;
SOURCE(21662, 227)
         if ((0 != (* ((( (ptr) (* (( (ptr) formal←c89084)+5) ))+4)+BCK(edge←v19828, 4)) ))) {
SOURCE(21694, 195)
            {
               word var←c85628;
               var←c85628 = edge←v19828;
               switch (var←c85628) {
                  case 0: 
SOURCE(21717, 37)
                     {
                        word pd193;
                        pd193 = (* (( (ptr) (* (( (ptr) gf←c89052)+282)/* var←c83356 */  ))+73) );
                        (void) ( *( (fPt) ((*  (ptr) pd193 ))))((* (( (ptr) formal←c89084)+7) ), (*  (W2Pt) &pts←v19704 ), (*  (W2Pt) (( (ptr) &pts←v19704)+2)
                            ), pd193);
                        };
                     break;
                  case 1: 
SOURCE(21762, 37)
                     {
                        word pd194;
                        pd194 = (* (( (ptr) (* (( (ptr) gf←c89052)+282)/* var←c83356 */  ))+73) );
                        (void) ( *( (fPt) ((*  (ptr) pd194 ))))((* (( (ptr) formal←c89084)+7) ), (*  (W2Pt) (( (ptr) &pts←v19704)+2) ), (*  (W2Pt) (
/*1*/   ( (ptr) &pts←v19704)+4) ), pd194);
                        };
                     break;
                  case 2: 
SOURCE(21807, 37)
                     {
                        word pd195;
                        pd195 = (* (( (ptr) (* (( (ptr) gf←c89052)+282)/* var←c83356 */  ))+73) );
                        (void) ( *( (fPt) ((*  (ptr) pd195 ))))((* (( (ptr) formal←c89084)+7) ), (*  (W2Pt) (( (ptr) &pts←v19704)+4) ), (*  (W2Pt) (
/*1*/   ( (ptr) &pts←v19704)+6) ), pd195);
                        };
                     break;
                  case 3: 
SOURCE(21852, 37)
                     {
                        word pd196;
                        pd196 = (* (( (ptr) (* (( (ptr) gf←c89052)+282)/* var←c83356 */  ))+73) );
                        (void) ( *( (fPt) ((*  (ptr) pd196 ))))((* (( (ptr) formal←c89084)+7) ), (*  (W2Pt) (( (ptr) &pts←v19704)+6) ), (*  (W2Pt) &pts←v19704 ), pd196)
                        ;
                        };
                     break;
                  default: 
SOURCE(21902, 5)
                     (void) XR←RaiseUnnamedError();
                     break;
                  };
               };
            };
         if (( (int)edge←v19828 >=  (int)3)) {
            goto lab←L100016;
            };
         edge←v19828 = (edge←v19828 + 1);
         goto lab←L100019;
         lab←L100016: ;
         };
      };
   }

static void IPTransform←P1440(slice←v13008, parts←v13036, transform←v13064, editConstraints←v13092, history←v13120)
   word slice←v13008;
   word parts←v13036;
   word transform←v13064;
   word editConstraints←v13092;
   word history←v13120;
   {
   register ptr gf←c89116 =  (ptr) &globalframe;
   word ipData←v19872;
   /* IPTransform: */ 
SOURCE(21963, 413)
SOURCE(22109, 35)
   ipData←v19872 = XR←Narrow((* (( (ptr) slice←v13008)+1) ), (* (( (ptr) gf←c89116)+32) ));
SOURCE(22146, 75)
   {
      word pd197;
      pd197 = (* (( (ptr) (* (( (ptr) gf←c89116)+278)/* var←c83068 */  ))+13) );
      (* (( (ptr) ipData←v19872)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd197 ))))((* (( (ptr) ipData←v19872)+5) ), transform←v13064, pd197)
      ;
      };
SOURCE(22223, 62)
   {
      word pd198;
      pd198 = (* (( (ptr) (* (( (ptr) gf←c89116)+278)/* var←c83068 */  ))+51) );
      (* (( (ptr) ipData←v19872)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd198 ))))((* ((( (ptr) ipData←v19872)+5)) ), pd198);
      };
SOURCE(22287, 67)
   {
      W2 var←c85660;
      W6 var←c0384;
      {
         word pd199;
         pd199 = (* (( (ptr) (* (( (ptr) gf←c89116)+278)/* var←c83068 */  ))+50) );
         (void) ( *( (fPt) ((*  (ptr) pd199 ))))((word) &var←c0384, (* (( (ptr) ipData←v19872)+6) ), pd199);
         };
      var←c85660 = (*  (W2Pt) (( (ptr) &var←c0384)+1) );
      (*  (W2Pt) (( (ptr) ipData←v19872)+7) ) = var←c85660;
      };
SOURCE(22356, 20)
   (void) IPSetBoundBox←P600(slice←v13008);
   }

static word IPDescribe←P1500(sliceD←v13180)
   word sliceD←v13180;
   {
   register ptr gf←c89148 =  (ptr) &globalframe;
   word rope←v13224;
   word prefix←v19916 = 0;
   word ipParts←v19944 = 0;
   word eCount←v19972 = 0;
   word pCount←v20000 = 0;
   /* IPDescribe: */ 
SOURCE(22382, 639)
SOURCE(22382, 639)
   rope←v13224 = 0;
SOURCE(22517, 48)
   if (((* (( (ptr) sliceD←v13180)+1) ) == 0)) {
SOURCE(22544, 21)
      return((* (( (ptr) gf←c89148)+46) ));
      };
SOURCE(22567, 30)
   ipParts←v19944 = XR←Narrow((* (( (ptr) sliceD←v13180)+1) ), (* (( (ptr) gf←c89148)+36) ));
SOURCE(22599, 112)
   {
      register word i←v20044 = 0;
      if (( (int)i←v20044 >  (int)3)) {
         goto lab←L100020;
         };
      lab←L100023: ;
SOURCE(22637, 74)
      if ((0 != (* (( (ptr) ipParts←v19944)+BCK(i←v20044, 4)) ))) {
         {
            W4 var←c85692;
SOURCE(22665, 19)
            pCount←v20000 = (pCount←v20000 + 1);
SOURCE(22686, 25)
            var←c85692.f0 = (* (( (ptr) gf←c89148)+65) );
            var←c85692.f1 = (* (( (ptr) gf←c89148)+62) );
            var←c85692.f2 = (* (( (ptr) gf←c89148)+61) );
            var←c85692.f3 = (* (( (ptr) gf←c89148)+60) );
            prefix←v19916 = (* (( (ptr) (&var←c85692
               ))+BCK(i←v20044, 4)) );
            };
         };
      if (( (int)i←v20044 >=  (int)3)) {
         goto lab←L100020;
         };
      i←v20044 = (i←v20044 + 1);
      goto lab←L100023;
      lab←L100020: ;
      };
SOURCE(22725, 107)
   {
      register word i←v20088 = 0;
      if (( (int)i←v20088 >  (int)3)) {
         goto lab←L100024;
         };
      lab←L100027: ;
SOURCE(22762, 70)
      if ((0 != (* ((( (ptr) ipParts←v19944)+4)+BCK(i←v20088, 4)) ))) {
         {
            W4 var←c85724;
SOURCE(22789, 18)
            eCount←v19972 = (eCount←v19972 + 1);
SOURCE(22809, 23)
            var←c85724.f0 = (* (( (ptr) gf←c89148)+59) );
            var←c85724.f1 = (* (( (ptr) gf←c89148)+50) );
            var←c85724.f2 = (* (( (ptr) gf←c89148)+45) );
            var←c85724.f3 = (* (( (ptr) gf←c89148)+44) );
            prefix←v19916 = (* (( (ptr) (&var←c85724
               ))+BCK(i←v20088, 4)) );
            };
         };
      if (( (int)i←v20088 >=  (int)3)) {
         goto lab←L100024;
         };
      i←v20088 = (i←v20088 + 1);
      goto lab←L100027;
      lab←L100024: ;
      };
SOURCE(22846, 63)
   if (((pCount←v20000 + eCount←v19972) > 1)) {
SOURCE(22870, 39)
      return((* (( (ptr) gf←c89148)+47) ));
      };
SOURCE(22911, 63)
   if ( ( (eCount←v19972 == 0) ? (pCount←v20000 == 0) : 0 ) ) {
SOURCE(22941, 33)
      return((* (( (ptr) gf←c89148)+48) ));
      };
SOURCE(22976, 45)
   {
      word pd200;
      pd200 = (* (( (ptr) (* (( (ptr) gf←c89148)+297)/* var←c85756 */  ))+6) );
      rope←v13224 = (word) ( *( (fPt) ((*  (ptr) pd200 ))))(prefix←v19916, (* (( (ptr) gf←c89148)+49) ), pd200);
      };
SOURCE(22382, 639)
   return(rope←v13224);
   }

static word IPDescribeHit←P1560(slice←v13284, hitData←v13312)
   word slice←v13284;
   word hitData←v13312;
   {
   register ptr gf←c89180 =  (ptr) &globalframe;
   word rope←v13372;
   word ipHitData←v20132;
   word prefix←v20160 = 0;
   /* IPDescribeHit: */ 
SOURCE(23027, 334)
SOURCE(23027, 334)
   rope←v13372 = 0;
SOURCE(23110, 38)
   ipHitData←v20132 = XR←Narrow(hitData←v13312, (* (( (ptr) gf←c89180)+19) ));
   {
      W4 var←c85788;
      W4 var←c85820;
SOURCE(23169, 140)
      if (( (int)((*  (ptr) ipHitData←v20132 ) - 1) !=  (int) (word) -1)) {
SOURCE(23196, 45)
         {
            word idx201;
            var←c85788.f0 = (* (( (ptr) gf←c89180)+65) );
            var←c85788.f1 = (* (( (ptr) gf←c89180)+62) );
            var←c85788.f2 = (* (( (ptr) gf←c89180)+61) );
            var←c85788.f3 = (* (( (ptr) gf←c89180)+60) );
            prefix←v20160 = (* (( (ptr) (&var←c85788
               ))+(
                  idx201 = (word) ((*  (ptr) ipHitData←v20132 ) - 1),
                  BCK(idx201, 4)
                  )) );
            };
         }
      else {
SOURCE(23241, 68)
         if (( (int)(* (( (ptr) ipHitData←v20132)+1) ) !=  (int) (word) -1)) {
SOURCE(23267, 42)
            {
               word idx202;
               var←c85820.f0 = (* (( (ptr) gf←c89180)+59) );
               var←c85820.f1 = (* (( (ptr) gf←c89180)+50) );
               var←c85820.f2 = (* (( (ptr) gf←c89180)+45) );
               var←c85820.f3 = (* (( (ptr) gf←c89180)+44) );
               prefix←v20160 = (* (( (ptr) (&var←c85820
                  ))+(
                     idx202 = (* (( (ptr) ipHitData←v20132)+1) ),
                     BCK(idx202, 4)
                     )) );
               };
            }
         else {
SOURCE(23309, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
SOURCE(23316, 45)
      {
         word pd203;
         pd203 = (* (( (ptr) (* (( (ptr) gf←c89180)+297)/* var←c85756 */  ))+6) );
         rope←v13372 = (word) ( *( (fPt) ((*  (ptr) pd203 ))))(prefix←v20160, (* (( (ptr) gf←c89180)+49) ), pd203);
         };
      };
SOURCE(23027, 334)
   return(rope←v13372);
   }

static void IPFileout←P1620(slice←v13432, f←v13460)
   word slice←v13432;
   word f←v13460;
   {
   W7 var←c89212;
   register ptr gf←c89244 =  (ptr) &globalframe;
   /* declaration of var←c85852 skipped */ 
   /* declaration of ipData←v20232 skipped */ 
   word ipRef←v20260 = 0;
   word masterStream←v20288 = 0;
   word masterSize←v20316;
   word masterRope←v20344 = 0;
   /* IPFileout: */ 
SOURCE(23367, 1230)
   {
      word tmpAddr204;
      tmpAddr204 = (word) (( (ptr) &var←c89212)+4)/* var←c85852 */ ;
      (*  (ptr) tmpAddr204 ) = ( ((word)  (fPt) FromMemory←P6480) );
      (* (( (ptr) tmpAddr204) + 1) ) = 1;
      };
SOURCE(23589, 35)
   var←c89212.f6/* ipData←v20232 */  = XR←Narrow((* (( (ptr) slice←v13432)+1) ), (* (( (ptr) gf←c89244)+32) ));
SOURCE(23722, 39)
   {
      W2 var←c85884;
      var←c85884.f0 = 11;
      var←c85884.f1 = (* (( (ptr) var←c89212.f6/* ipData←v20232 */ )+3) );
      {
         word pd205;
         pd205 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+61) );
         (void) ( *( (fPt) ((*  (ptr) pd205 ))))(f←v13460, (* (( (ptr) gf←c89244)+51) ), var←c85884, pd205);
         };
      };
SOURCE(23763, 51)
   {
      word pd206;
      pd206 = (* (( (ptr) (* (( (ptr) gf←c89244)+299)/* var←c85948 */  ))+10) );
      (void) ( *( (fPt) ((*  (ptr) pd206 ))))(f←v13460, (* (( (ptr) var←c89212.f6/* ipData←v20232 */ )+5) ), pd206);
      };
SOURCE(23816, 16)
   {
      word pd207;
      pd207 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd207 ))))(f←v13460, 32, pd207);
      };
SOURCE(23834, 44)
   {
      word pd208;
      pd208 = (* (( (ptr) (* (( (ptr) gf←c89244)+299)/* var←c85948 */  ))+18) );
      (void) ( *( (fPt) ((*  (ptr) pd208 ))))(f←v13460, (*  (ptr) var←c89212.f6/* ipData←v20232 */  ), pd208);
      };
SOURCE(23880, 16)
   {
      word pd209;
      pd209 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd209 ))))(f←v13460, 32, pd209);
      };
SOURCE(23898, 39)
   {
      word pd210;
      pd210 = (* (( (ptr) (* (( (ptr) gf←c89244)+299)/* var←c85948 */  ))+18) );
      (void) ( *( (fPt) ((*  (ptr) pd210 ))))(f←v13460, (* (( (ptr) var←c89212.f6/* ipData←v20232 */ )+1) ), pd210);
      };
SOURCE(23939, 30)
   {
      word pd211;
      pd211 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd211 ))))(f←v13460, (* (( (ptr) gf←c89244)+52) ), 0, 2147483647, pd211);
      };
SOURCE(23971, 46)
   {
      word pd212;
      pd212 = (* (( (ptr) (* (( (ptr) gf←c89244)+299)/* var←c85948 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd212 ))))(f←v13460, (* (( (ptr) var←c89212.f6/* ipData←v20232 */ )+2) ), pd212);
      };
SOURCE(24019, 16)
   {
      word pd213;
      pd213 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd213 ))))(f←v13460, 10, pd213);
      };
SOURCE(24038, 356)
   if ((0 != (* (( (ptr) var←c89212.f6/* ipData←v20232 */ )+2) ))) {
SOURCE(24070, 23)
      {
         word pd214;
         pd214 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+34) );
         masterStream←v20288 = (word) ( *( (fPt) ((*  (ptr) pd214 ))))(0, pd214);
         };
SOURCE(24095, 80)
      {
         word pd215;
         pd215 = (* (( (ptr) (* (( (ptr) gf←c89244)+300)/* var←c85980 */  ))+6) );
         ipRef←v20260 = (word) ( *( (fPt) ((*  (ptr) pd215 ))))(masterStream←v20288, (* (( (ptr) gf←c89244)+53) ), pd215);
         };
SOURCE(24177, 42)
      {
         word pd216;
         pd216 = (* (( (ptr) (* (( (ptr) gf←c89244)+300)/* var←c85980 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd216 ))))(ipRef←v20260, (word) (( (bPt) &var←c89212)+16)/* var←c85852 */ , (*  (ptr) &fc92 ), pd216)
         ;
         };
SOURCE(24221, 30)
      {
         word pd217;
         pd217 = (* (( (ptr) (* (( (ptr) gf←c89244)+300)/* var←c85980 */  ))+13) );
         (void) ( *( (fPt) ((*  (ptr) pd217 ))))(ipRef←v20260, pd217);
         };
SOURCE(24253, 39)
      {
         word pd218;
         pd218 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+35) );
         masterRope←v20344 = (word) ( *( (fPt) ((*  (ptr) pd218 ))))(masterStream←v20288, 1, pd218);
         };
SOURCE(24294, 36)
      {
         word pd219;
         word idx220;
         pd219 = (* (( (ptr) (* (( (ptr) gf←c89244)+297)/* var←c85756 */  ))+14) );
         masterSize←v20316 = (
            idx220 = (word) ( *( (fPt) ((*  (ptr) pd219 ))))(masterRope←v20344, pd219),
            SGNCK(idx220)
            );
         };
SOURCE(24333, 38)
      {
         W2 var←c86012;
         var←c86012.f0 = 5;
         var←c86012.f1 = SGNCK(masterSize←v20316);
         {
            word pd221;
            pd221 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd221 ))))(f←v13460, (* (( (ptr) gf←c89244)+54) ), var←c86012, pd221);
            };
         };
SOURCE(24373, 21)
      {
         word pd222;
         pd222 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd222 ))))(f←v13460, masterRope←v20344, 0, 2147483647, pd222);
         };
      };
SOURCE(24400, 23)
   {
      word pd223;
      pd223 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd223 ))))(f←v13460, (* (( (ptr) gf←c89244)+55) ), 0, 2147483647, pd223);
      };
SOURCE(24425, 45)
   {
      word pd224;
      pd224 = (* (( (ptr) (* (( (ptr) gf←c89244)+299)/* var←c85948 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd224 ))))(f←v13460,  (unsigned) ((* (( (ptr) (* (( (ptr) var←c89212.f6/* ipData←v20232 */ )+9)
             ))+25) ) != 0), pd224);
      };
SOURCE(24472, 93)
   if (((* (( (ptr) (* (( (ptr) var←c89212.f6/* ipData←v20232 */ )+9) ))+25) ) != 0)) {
SOURCE(24501, 48)
      {
         word pd225;
         pd225 = (* (( (ptr) (* (( (ptr) gf←c89244)+299)/* var←c85948 */  ))+13) );
         (void) ( *( (fPt) ((*  (ptr) pd225 ))))(f←v13460, (* (( (ptr) (* (( (ptr) var←c89212.f6/* ipData←v20232 */ )+9) ))+25) ), pd225)
         ;
         };
      }
   else {
SOURCE(24549, 16)
      {
         word pd226;
         pd226 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+21) );
         (void) ( *( (fPt) ((*  (ptr) pd226 ))))(f←v13460, 32, pd226);
         };
      };
SOURCE(24583, 14)
   {
      word pd227;
      pd227 = (* (( (ptr) (* (( (ptr) gf←c89244)+298)/* var←c85916 */  ))+93) );
      (void) ( *( (fPt) ((*  (ptr) pd227 ))))(f←v13460, (* (( (ptr) gf←c89244)+56) ), 0, 2147483647, pd227);
      };
   }

static void FromMemory←P6480(dc←v20420, formal←c89308)
   word dc←v20420;
   word formal←c89308;
   {
   register ptr gf←c89276 =  (ptr) &globalframe;
   formal←c89308 = (formal←c89308 - 16);
   /* FromMemory: */ 
SOURCE(23416, 168)
SOURCE(23458, 33)
   {
      word pd228;
      pd228 = (* (( (ptr) (* (( (ptr) gf←c89276)+282)/* var←c83356 */  ))+52) );
      (void) ( *( (fPt) ((*  (ptr) pd228 ))))(dc←v20420, (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c89276)+282)/* var←c83356 */  ))+54)
          ) ), pd228);
      };
SOURCE(23549, 35)
   {
      word pd229;
      pd229 = (* (( (ptr) (* (( (ptr) gf←c89276)+281)/* var←c83324 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd229 ))))((* (( (ptr) (* (( (ptr) formal←c89308)+6) ))+4) ), dc←v20420, pd229);
      };
   }

static word IPFilein←P1680(f←v13520, version←v13548, router←v13576, camera←v13604)
   word f←v13520;
   word version←v13548;
   word router←v13576;
   word camera←v13604;
   {
   W12 var←c89340;
   register ptr gf←c89372 =  (ptr) &globalframe;
   word slice←v13648;
   word ipMaster←v20448 = 0;
   /* declaration of fullName←v20476 skipped */ 
   word success←v20504 = 0;
   word transform←v20532 = 0;
   word masterText←v20560 = 0;
   word masterSize←v20588;
   word includeByValue←v20616;
   word localTightBox←v20644 = 0;
   word localBox←v20672 = 0;
   word props←v20700 = 0;
   /* IPFilein: */ 
SOURCE(24603, 2136)
SOURCE(24603, 2136)
   slice←v13648 = 0;
SOURCE(24762, 19)
   (* (( (ptr) &var←c89340)+4)/* fullName←v20476 */  ) = 0;
SOURCE(24985, 29)
   {
      word pd230;
      pd230 = (* (( (ptr) (* (( (ptr) gf←c89372)+298)/* var←c85916 */  ))+78) );
      (* (( (ptr) &var←c89340)+4)/* fullName←v20476 */  ) = (word) ( *( (fPt) ((*  (ptr) pd230 ))))(f←v13520, pd230);
      };
SOURCE(25016, 43)
   {
      word pd231;
      pd231 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+20) );
      transform←v20532 = (word) ( *( (fPt) ((*  (ptr) pd231 ))))(f←v13520, pd231);
      };
SOURCE(25061, 321)
   {
      word x232;
      word x234;
      if (((
         x232 = version←v13548,  *(float*)&x232
         ) >= (
         x234 = (*  (ptr) &fc233 ),  *(float*)&x234
         ))) {
SOURCE(25090, 36)
         {
            word pd235;
            pd235 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+29) );
            localTightBox←v20644 = (word) ( *( (fPt) ((*  (ptr) pd235 ))))(f←v13520, pd235);
            };
SOURCE(25128, 168)
         {
            word x236;
            word x238;
            if (((
               x236 = version←v13548,  *(float*)&x236
               ) >= (
               x238 = (*  (ptr) &fc237 ),  *(float*)&x238
               ))) {
SOURCE(25157, 31)
               {
                  word pd239;
                  pd239 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+29) );
                  localBox←v20672 = (word) ( *( (fPt) ((*  (ptr) pd239 ))))(f←v13520, pd239);
                  };
               }
            else {
SOURCE(25199, 49)
               {
                  word pd240;
                  pd240 = (* (( (ptr) (* (( (ptr) gf←c89372)+284)/* var←c83420 */  ))+7) );
                  localBox←v20672 = (word) ( *( (fPt) ((*  (ptr) pd240 ))))(localTightBox←v20644, pd240);
                  };
SOURCE(25250, 46)
               {
                  word pd241;
                  pd241 = (* (( (ptr) (* (( (ptr) gf←c89372)+284)/* var←c83420 */  ))+17) );
                  (void) ( *( (fPt) ((*  (ptr) pd241 ))))(localTightBox←v20644, (*  (ptr) &fc242 ), pd241);
                  };
               };
            };
         }
      else {
SOURCE(25347, 19)
         localTightBox←v20644 = 0;
SOURCE(25368, 14)
         localBox←v20672 = 0;
         };
      };
SOURCE(25385, 235)
   {
      word pd243;
      pd243 = (* (( (ptr) (* (( (ptr) gf←c89372)+297)/* var←c85756 */  ))+14) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd243 ))))((* ((( (ptr) &var←c89340)+4)/* fullName←v20476 */ ) ), pd243) !=  (int)0)) {
SOURCE(25420, 111)
         if ((0 != (word) GetDefaultUseLatestIPVersion←P540())) {
SOURCE(25461, 49)
            {
               word pd244;
               pd244 = (* (( (ptr) (* (( (ptr) gf←c89372)+302)/* var←c86076 */  ))+13) );
               (* (( (ptr) &var←c89340)+4)/* fullName←v20476 */  ) = (word) ( *( (fPt) ((*  (ptr) pd244 ))))((* ((( (ptr) &var←c89340)+4)
                  /* fullName←v20476 */ ) ), pd244);
               };
SOURCE(25512, 19)
            localTightBox←v20644 = 0;
            };
SOURCE(25572, 48)
SOURCE(25572, 48)
         {
            W6 var←c86140;
            {
               /* declaration of var←c08 skipped */ 
               (* (( (ptr) &var←c89340)+5)/* var←c08 */  ) = (* (( (ptr) (* (( (ptr) gf←c89372)+303)/* var←c86108 */  ))+12) );
               {
                  /* declaration of var←c09 skipped */ 
                  {
                     word var←c010;
                     {
                        word var←c0978;
                        var←c0978 = (word) &var←c89340;
                        var←c010 = (word) XR←Enable(( ((word)  (fPt) NoName←Q7752) ), ( ((word)  (fPt) NoName←Q7812) ), var←c0978);
                        };
                     if ((var←c010 == 3)) {
                        goto lab←L100029;
                        };
                     };
                  var←c86140 = (*  (W6Pt) (( (ptr) &var←c89340)+6)/* var←c09 */  );
                  };
               };
            (* (( (ptr) &var←c89340)+4)/* fullName←v20476 */  ) = var←c86140.f0;
            };
         lab←L100029: ;
         };
      };
SOURCE(25717, 610)
   {
      word x245;
      word x247;
      if (((
         x245 = version←v13548,  *(float*)&x245
         ) >= (
         x247 = (*  (ptr) &fc246 ),  *(float*)&x247
         ))) {
SOURCE(25746, 40)
         {
            word pd248;
            pd248 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd248 ))))(f←v13520, (* (( (ptr) gf←c89372)+57) ), pd248);
            };
SOURCE(25788, 38)
         {
            word pd249;
            pd249 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+24) );
            includeByValue←v20616 = (word) ( *( (fPt) ((*  (ptr) pd249 ))))(f←v13520, pd249);
            };
SOURCE(25829, 396)
         if ((0 != includeByValue←v20616)) {
SOURCE(25854, 34)
            {
               word pd250;
               pd250 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+26) );
               masterSize←v20588 = (word) ( *( (fPt) ((*  (ptr) pd250 ))))(f←v13520, pd250);
               };
SOURCE(25890, 22)
            {
               word pd251;
               pd251 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd251 ))))(f←v13520, pd251);
               };
SOURCE(25914, 44)
            {
               word pd252;
               pd252 = (* (( (ptr) (* (( (ptr) gf←c89372)+298)/* var←c85916 */  ))+92) );
               masterText←v20560 = (word) ( *( (fPt) ((*  (ptr) pd252 ))))(f←v13520, SGNCK(masterSize←v20588), 1, pd252);
               };
SOURCE(25961, 58)
            {
               word pd253;
               pd253 = (* (( (ptr) (* (( (ptr) gf←c89372)+283)/* var←c83388 */  ))+7) );
               ipMaster←v20448 = (word) ( *( (fPt) ((*  (ptr) pd253 ))))(masterText←v20560, 0, 0, 0, 0, pd253);
               };
SOURCE(26022, 104)
            slice←v13648 = (word) MakeIPSliceFromMaster←P180(ipMaster←v20448, (*  (ptr) &fc92 ), (* (( (ptr) &var←c89340)+4)/* fullName←v20476 */  ), router←v13576, transform←v20532, localTightBox←v20644
               , localBox←v20672, 1);
            }
         else {
SOURCE(26137, 88)
            slice←v13648 = (word) MakeIPSliceFromFile←P120((* (( (ptr) &var←c89340)+4)/* fullName←v20476 */  ), router←v13576, transform←v20532, localTightBox←v20644, localBox←v20672, 0)
            ;
            };
         }
      else {
SOURCE(26239, 88)
         slice←v13648 = (word) MakeIPSliceFromFile←P120((* (( (ptr) &var←c89340)+4)/* fullName←v20476 */  ), router←v13576, transform←v20532, localTightBox←v20644, localBox←v20672, 0)
         ;
         };
      };
SOURCE(26332, 407)
   {
      word x254;
      word x256;
      if (((
         x254 = version←v13548,  *(float*)&x254
         ) >= (
         x256 = (*  (ptr) &fc255 ),  *(float*)&x256
         ))) {
SOURCE(26357, 396)
         {
            word hasProps←v20828 = 0;
SOURCE(26408, 34)
            {
               word pd257;
               pd257 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+9) );
               (void) ( *( (fPt) ((*  (ptr) pd257 ))))(f←v13520, (* (( (ptr) gf←c89372)+58) ), pd257);
               };
SOURCE(26444, 32)
            {
               word pd258;
               pd258 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+24) );
               hasProps←v20828 = (word) ( *( (fPt) ((*  (ptr) pd258 ))))(f←v13520, pd258);
               };
SOURCE(26478, 61)
            {
               word pd259;
               if ((0 != hasProps←v20828)) {
                  pd259 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+13) );
                  props←v20700 = (word) ( *( (fPt) ((*  (ptr) pd259 ))))(f←v13520, pd259);
                  }
               else {
                  props←v20700 = 0;
                  };
               };
SOURCE(26541, 25)
            {
               word pd260;
               pd260 = (* (( (ptr) (* (( (ptr) gf←c89372)+301)/* var←c86044 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd260 ))))(f←v13520, 41, pd260);
               };
SOURCE(26568, 171)
            if ((props←v20700 != 0)) {
SOURCE(26586, 164)
               {
                  word seg←v20872;
SOURCE(26588, 45)
                  seg←v20872 = (* (( (ptr) XR←Narrow((* (( (ptr) slice←v13648)+1) ), (* (( (ptr) gf←c89372)+32) )))+9) );
SOURCE(26635, 104)
                  {
                     register word next←v20916;
                     next←v20916 = props←v20700;
                     lab←L100035: ;
                     if ((next←v20916 != 0)) {
                        }
                     else {
                        goto lab←L100032;
                        };
SOURCE(26700, 39)
                     {
                        word var←c86172;
                        var←c86172 = XR←NewObject(8, (* (( (ptr) gf←c89372)+18) ));
                        (*  (ptr) var←c86172 ) = (*  (ptr) next←v20916 );
                        (* (( (ptr) var←c86172)+1) ) = (* (( (ptr) seg←v20872)+25) );
                        (* (( (ptr) seg←v20872)+25) ) = var←c86172;
                        };
                     next←v20916 = (* (( (ptr) next←v20916)+1) );
                     goto lab←L100035;
                     lab←L100032: ;
                     };
                  };
               };
            };
         };
      };
SOURCE(24603, 2136)
   return(slice←v13648);
   }

static word NoName←Q7752(formal←c0935)
   word formal←c0935;
   {
SOURCE(25572, 48)
   {
      word pd261;
      pd261 = (* (( (ptr) formal←c0935)+5) );
      (void) ( *( (fPt) ((*  (ptr) pd261 ))))((word) (( (bPt) formal←c0935)+24), (* (( (ptr) formal←c0935)+4) ), 2147483647, 1, 0, pd261)
      ;
      };
   return(0);
   }

static word IPIsEmptyParts←P1740(sliceD←v13708)
   word sliceD←v13708;
   {
   word var←c13752;
   /* IPIsEmptyParts: */ 
SOURCE(26759, 103)
SOURCE(26759, 103)
   var←c13752 = 0;
SOURCE(26833, 29)
   return((word) IsEmpty←P3060((* ((( (ptr) sliceD←v13708)+1)) )));
   }

static word IPIsCompleteParts←P1800(sliceD←v13812)
   word sliceD←v13812;
   {
   word var←c13856;
   /* IPIsCompleteParts: */ 
SOURCE(26868, 109)
SOURCE(26868, 109)
   var←c13856 = 0;
SOURCE(26945, 32)
   return((word) IsComplete←P3000((* ((( (ptr) sliceD←v13812)+1)) )));
   }

static word IPNewParts←P1860(slice←v13916, hitData←v13944, mode←v13972)
   word slice←v13916;
   word hitData←v13944;
   word mode←v13972;
   {
   register ptr gf←c89404 =  (ptr) &globalframe;
   word sliceD←v14028;
   word ipHitData←v21044;
   word ipParts←v21072;
   /* IPNewParts: */ 
SOURCE(26983, 1237)
SOURCE(26983, 1237)
   sliceD←v14028 = 0;
SOURCE(27089, 38)
   ipHitData←v21044 = XR←Narrow(hitData←v13944, (* (( (ptr) gf←c89404)+19) ));
SOURCE(27129, 78)
   ipParts←v21072 = XR←NewObject(36, (* (( (ptr) gf←c89404)+36) ));
SOURCE(27209, 903)
   {
      word var←c86300;
      var←c86300 = mode←v13972;
      switch (var←c86300) {
         case 0: 
SOURCE(27239, 139)
            if (( (int)((*  (ptr) ipHitData←v21044 ) - 1) !=  (int) (word) -1)) {
SOURCE(27266, 44)
               {
                  word idx262;
                  (* (( (ptr) ipParts←v21072)+(
                        idx262 = (word) ((*  (ptr) ipHitData←v21044 ) - 1),
                        BCK(idx262, 4)
                        )) ) = 1;
                  };
               }
            else {
SOURCE(27310, 68)
               if (( (int)(* (( (ptr) ipHitData←v21044)+1) ) !=  (int) (word) -1)) {
SOURCE(27336, 42)
                  {
                     word idx263;
                     (* ((( (ptr) ipParts←v21072)+4)+(
                           idx263 = (* (( (ptr) ipHitData←v21044)+1) ),
                           BCK(idx263, 4)
                           )) ) = 1;
                     };
                  }
               else {
SOURCE(27378, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            break;
         case 1: 
SOURCE(27399, 456)
            if (( (int)((*  (ptr) ipHitData←v21044 ) - 1) !=  (int) (word) -1)) {
SOURCE(27428, 38)
               {
                  word idx264;
                  (* (( (ptr) ipParts←v21072)+(
                        idx264 = (word) ((*  (ptr) ipHitData←v21044 ) - 1),
                        BCK(idx264, 4)
                        )) ) = 1;
                  };
               }
            else {
SOURCE(27475, 382)
               {
                  word hitData←v21116 = 0;
                  word pointHitData←v21144 = 0;
                  word success←v21172;
                  word wholeD←v21200 = 0;
SOURCE(27560, 38)
                  wholeD←v21200 = (word) IPNewParts←P1860(slice←v13916, 0, 6);
SOURCE(27600, 114)
                  {
                     W7 var←c86332;
                     {
                        word pd265;
                        pd265 = (* (( (ptr) (* (( (ptr) gf←c89404)+292)/* var←c84732 */  ))+44) );
                        (void) ( *( (fPt) ((*  (ptr) pd265 ))))((word) &var←c86332, wholeD←v21200, (*  (W2Pt) (( (ptr) ipHitData←v21044)+2) ), (*  (ptr) &fc266 ), pd265)
                        ;
                        };
                     success←v21172 = var←c86332.f6;
                     hitData←v21116 = var←c86332.f5;
                     };
SOURCE(27716, 20)
                  if ((0 == success←v21172)) {
SOURCE(27736, 5)
                     (void) XR←RaiseUnnamedError();
                     };
SOURCE(27743, 30)
                  pointHitData←v21144 = XR←Narrow(hitData←v21116, (* (( (ptr) gf←c89404)+19) ));
SOURCE(27775, 32)
                  if (( (int)((*  (ptr) pointHitData←v21144 ) - 1) ==  (int) (word) -1)) {
SOURCE(27807, 5)
                     (void) XR←RaiseUnnamedError();
                     };
SOURCE(27814, 41)
                  {
                     word idx267;
                     (* (( (ptr) ipParts←v21072)+(
                           idx267 = (word) ((*  (ptr) pointHitData←v21144 ) - 1),
                           BCK(idx267, 4)
                           )) ) = 1;
                     };
                  };
               };
SOURCE(27860, 22)
            (* (( (ptr) ipParts←v21072)+8) ) = 1;
            break;
         case 3: 
SOURCE(27898, 87)
            if (( (int)(* (( (ptr) ipHitData←v21044)+1) ) !=  (int) (word) -1)) {
SOURCE(27925, 36)
               {
                  word idx268;
                  (* ((( (ptr) ipParts←v21072)+4)+(
                        idx268 = (* (( (ptr) ipHitData←v21044)+1) ),
                        BCK(idx268, 4)
                        )) ) = 1;
                  };
SOURCE(27963, 22)
               (* (( (ptr) ipParts←v21072)+8) ) = 1;
               };
            break;
         case 2: 
SOURCE(28008, 26)
            XR←FillWords(&(* (W4Pt) (ipParts←v21072)), 4, 1);
SOURCE(28036, 25)
            XR←FillWords(&(* (W4Pt) ((( (ptr) ipParts←v21072)+4))), 4, 1);
            break;
         case 5: case 6: case 7: 
SOURCE(28091, 21)
            (void) MakeComplete←P2940(ipParts←v21072);
            break;
         case 8: 
            break;
         default: 
SOURCE(28161, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(28168, 52)
   {
      word pd269;
      pd269 = (* (( (ptr) (* (( (ptr) gf←c89404)+279)/* var←c83132 */  ))+8) );
      sliceD←v14028 = (word) ( *( (fPt) ((*  (ptr) pd269 ))))(slice←v13916, ipParts←v21072, pd269);
      };
SOURCE(26983, 1237)
   return(sliceD←v14028);
   }

static word IPUnionParts←P1920(partsA←v14088, partsB←v14116)
   word partsA←v14088;
   word partsB←v14116;
   {
   register ptr gf←c89436 =  (ptr) &globalframe;
   word aPlusB←v14160;
   word ipPartsA←v21256;
   word ipPartsB←v21284;
   word newParts←v21312 = 0;
   /* IPUnionParts: */ 
SOURCE(28226, 746)
SOURCE(28226, 746)
   aPlusB←v14160 = 0;
SOURCE(28334, 40)
   ipPartsA←v21256 = XR←Narrow((* (( (ptr) partsA←v14088)+1) ), (* (( (ptr) gf←c89436)+36) ));
SOURCE(28376, 40)
   ipPartsB←v21284 = XR←Narrow((* (( (ptr) partsB←v14116)+1) ), (* (( (ptr) gf←c89436)+36) ));
SOURCE(28437, 37)
   if ((partsA←v14088 == 0) || (partsB←v14116 == 0)) {
SOURCE(28474, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(28481, 41)
   if (((* (( (ptr) partsA←v14088)+1) ) == 0)) {
SOURCE(28508, 14)
      return(partsB←v14116);
      };
SOURCE(28524, 41)
   if (((* (( (ptr) partsB←v14116)+1) ) == 0)) {
SOURCE(28551, 14)
      return(partsA←v14088);
      };
SOURCE(28567, 70)
   newParts←v21312 = XR←NewObject(36, (* (( (ptr) gf←c89436)+36) ));
SOURCE(28639, 99)
   {
      register word i←v21356 = 0;
      if (( (int)i←v21356 >  (int)3)) {
         goto lab←L100036;
         };
      lab←L100039: ;
SOURCE(28677, 61)
      if ((0 != (* (( (ptr) ipPartsA←v21256)+BCK(i←v21356, 4)) ))) {
         (* (( (ptr) newParts←v21312)+BCK(i←v21356, 4)) ) =  (unsigned) 1;
         }
      else {
         (* (( (ptr) newParts←v21312)+BCK(i←v21356, 4)) ) =  (unsigned) (0 != (* (( (ptr) ipPartsB←v21284)+BCK(i←v21356, 4)) ));
         };
      if (( (int)i←v21356 >=  (int)3)) {
         goto lab←L100036;
         };
      i←v21356 = (i←v21356 + 1);
      goto lab←L100039;
      lab←L100036: ;
      };
SOURCE(28749, 95)
   {
      register word i←v21400 = 0;
      if (( (int)i←v21400 >  (int)3)) {
         goto lab←L100040;
         };
      lab←L100043: ;
SOURCE(28786, 58)
      if ((0 != (* ((( (ptr) ipPartsA←v21256)+4)+BCK(i←v21400, 4)) ))) {
         (* ((( (ptr) newParts←v21312)+4)+BCK(i←v21400, 4)) ) =  (unsigned) 1;
         }
      else {
         (* ((( (ptr) newParts←v21312)+4)+BCK(i←v21400, 4)) ) =  (unsigned) (0 != (* ((( (ptr) ipPartsB←v21284)+4)+BCK(i←v21400, 4)
            ) ));
         };
      if (( (int)i←v21400 >=  (int)3)) {
         goto lab←L100040;
         };
      i←v21400 = (i←v21400 + 1);
      goto lab←L100043;
      lab←L100040: ;
      };
SOURCE(28855, 55)
   if ((0 != (* (( (ptr) ipPartsA←v21256)+8) ))) {
      (* (( (ptr) newParts←v21312)+8) ) =  (unsigned) 1;
      }
   else {
      (* (( (ptr) newParts←v21312)+8) ) =  (unsigned) (0 != (* (( (ptr) ipPartsB←v21284)+8) ));
      };
SOURCE(28912, 60)
   {
      word pd270;
      pd270 = (* (( (ptr) (* (( (ptr) gf←c89436)+279)/* var←c83132 */  ))+8) );
      aPlusB←v14160 = (word) ( *( (fPt) ((*  (ptr) pd270 ))))((*  (ptr) partsA←v14088 ), newParts←v21312, pd270);
      };
SOURCE(28226, 746)
   return(aPlusB←v14160);
   }

static word IPDiffParts←P1980(partsA←v14220, partsB←v14248)
   word partsA←v14220;
   word partsB←v14248;
   {
   register ptr gf←c89468 =  (ptr) &globalframe;
   word aMinusB←v14292;
   word ipPartsA←v21444;
   word ipPartsB←v21472;
   word newParts←v21500 = 0;
   /* IPDiffParts: */ 
SOURCE(28978, 774)
SOURCE(28978, 774)
   aMinusB←v14292 = 0;
SOURCE(29086, 40)
   ipPartsA←v21444 = XR←Narrow((* (( (ptr) partsA←v14220)+1) ), (* (( (ptr) gf←c89468)+36) ));
SOURCE(29128, 40)
   ipPartsB←v21472 = XR←Narrow((* (( (ptr) partsB←v14248)+1) ), (* (( (ptr) gf←c89468)+36) ));
SOURCE(29189, 37)
   if ((partsA←v14220 == 0) || (partsB←v14248 == 0)) {
SOURCE(29226, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(29233, 63)
   if (((* (( (ptr) partsA←v14220)+1) ) == 0) || ((* (( (ptr) partsB←v14248)+1) ) == 0)) {
SOURCE(29282, 14)
      return(partsA←v14220);
      };
SOURCE(29298, 70)
   newParts←v21500 = XR←NewObject(36, (* (( (ptr) gf←c89468)+36) ));
SOURCE(29370, 115)
   {
      register word i←v21544 = 0;
      if (( (int)i←v21544 >  (int)3)) {
         goto lab←L100044;
         };
      lab←L100047: ;
SOURCE(29408, 77)
      if ((0 != (* (( (ptr) ipPartsB←v21472)+BCK(i←v21544, 4)) ))) {
         (* (( (ptr) newParts←v21500)+BCK(i←v21544, 4)) ) = 0;
         }
      else {
         (* (( (ptr) newParts←v21500)+BCK(i←v21544, 4)) ) = (* (( (ptr) ipPartsA←v21444)+BCK(i←v21544, 4)) );
         };
      if (( (int)i←v21544 >=  (int)3)) {
         goto lab←L100044;
         };
      i←v21544 = (i←v21544 + 1);
      goto lab←L100047;
      lab←L100044: ;
      };
SOURCE(29496, 111)
   {
      register word i←v21588 = 0;
      if (( (int)i←v21588 >  (int)3)) {
         goto lab←L100048;
         };
      lab←L100051: ;
SOURCE(29533, 74)
      if ((0 != (* ((( (ptr) ipPartsB←v21472)+4)+BCK(i←v21588, 4)) ))) {
         (* ((( (ptr) newParts←v21500)+4)+BCK(i←v21588, 4)) ) = 0;
         }
      else {
         (* ((( (ptr) newParts←v21500)+4)+BCK(i←v21588, 4)) ) = (* ((( (ptr) ipPartsA←v21444)+4)+BCK(i←v21588, 4)) );
         };
      if (( (int)i←v21588 >=  (int)3)) {
         goto lab←L100048;
         };
      i←v21588 = (i←v21588 + 1);
      goto lab←L100051;
      lab←L100048: ;
      };
SOURCE(29618, 71)
   if ((0 != (* (( (ptr) ipPartsB←v21472)+8) ))) {
      (* (( (ptr) newParts←v21500)+8) ) = 0;
      }
   else {
      (* (( (ptr) newParts←v21500)+8) ) = (* (( (ptr) ipPartsA←v21444)+8) );
      };
SOURCE(29691, 61)
   {
      word pd271;
      pd271 = (* (( (ptr) (* (( (ptr) gf←c89468)+279)/* var←c83132 */  ))+8) );
      aMinusB←v14292 = (word) ( *( (fPt) ((*  (ptr) pd271 ))))((*  (ptr) partsA←v14220 ), newParts←v21500, pd271);
      };
SOURCE(28978, 774)
   return(aMinusB←v14292);
   }

static void IPMovingParts←P2040(formal←c0478, slice←v14352, selectedParts←v14380, editConstraints←v14408, bezierDrag←v14436)
   word formal←c0478;
   word slice←v14352;
   word selectedParts←v14380;
   word editConstraints←v14408;
   W5 bezierDrag←v14436;
   {
   register ptr gf←c89500 =  (ptr) &globalframe;
   word background←v14480;
   word overlay←v14508;
   word rubber←v14536;
   word drag←v14564;
   word dragParts←v21632;
   word backgroundParts←v21660;
   /* IPMovingParts: */ 
SOURCE(29758, 860)
SOURCE(29758, 860)
   background←v14480 = 0;
SOURCE(29758, 860)
   overlay←v14508 = 0;
SOURCE(29758, 860)
   rubber←v14536 = 0;
SOURCE(29758, 860)
   drag←v14564 = 0;
SOURCE(29966, 93)
   dragParts←v21632 = XR←NewObject(36, (* (( (ptr) gf←c89500)+36) ));
   XR←FillWords(&(* (W4Pt) (dragParts←v21632)), 4, 1);
   XR←FillWords(&(* (W4Pt) ((( (ptr) dragParts←v21632)+4))), 4, 1);
   (* (( (ptr) dragParts←v21632)+8) ) = 1;
SOURCE(30061, 99)
   backgroundParts←v21660 = XR←NewObject(36, (* (( (ptr) gf←c89500)+36) ));
   XR←FillWords(&(* (W4Pt) (backgroundParts←v21660)), 4, 1);
   XR←FillWords(&(* (W4Pt) ((( (ptr) backgroundParts←v21660)+4))), 4, 1);
   (* (( (ptr) backgroundParts←v21660)+8) ) = 1;
SOURCE(30162, 273)
   if ((0 != (word) IsEmpty←P3060(selectedParts←v14380))) {
SOURCE(30217, 28)
      XR←FillWords(&(* (W4Pt) ((( (ptr) dragParts←v21632)+4))), 4, 0);
SOURCE(30247, 29)
      XR←FillWords(&(* (W4Pt) (dragParts←v21632)), 4, 0);
SOURCE(30278, 25)
      (* (( (ptr) dragParts←v21632)+8) ) = 0;
      }
   else {
SOURCE(30331, 34)
      XR←FillWords(&(* (W4Pt) ((( (ptr) backgroundParts←v21660)+4))), 4, 0);
SOURCE(30367, 35)
      XR←FillWords(&(* (W4Pt) (backgroundParts←v21660)), 4, 0);
SOURCE(30404, 31)
      (* (( (ptr) backgroundParts←v21660)+8) ) = 0;
      };
SOURCE(30440, 64)
   {
      word pd272;
      pd272 = (* (( (ptr) (* (( (ptr) gf←c89500)+279)/* var←c83132 */  ))+8) );
      background←v14480 = (word) ( *( (fPt) ((*  (ptr) pd272 ))))(slice←v14352, backgroundParts←v21660, pd272);
      };
SOURCE(30506, 58)
   {
      word var←c86492;
      {
         word pd273;
         pd273 = (* (( (ptr) (* (( (ptr) gf←c89500)+279)/* var←c83132 */  ))+8) );
         var←c86492 = (word) ( *( (fPt) ((*  (ptr) pd273 ))))(slice←v14352, 0, pd273);
         };
      rubber←v14536 = var←c86492;
      overlay←v14508 = var←c86492;
      };
SOURCE(30566, 52)
   {
      word pd274;
      pd274 = (* (( (ptr) (* (( (ptr) gf←c89500)+279)/* var←c83132 */  ))+8) );
      drag←v14564 = (word) ( *( (fPt) ((*  (ptr) pd274 ))))(slice←v14352, dragParts←v21632, pd274);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0478 ) = background←v14480;
   (* (( (ptr) formal←c0478)+1) ) = overlay←v14508;
   (* (( (ptr) formal←c0478)+2) ) = rubber←v14536;
   (* (( (ptr) formal←c0478)+3) ) = drag←v14564;
   return;
   }

static word IPAugmentParts←P2100(sliceD←v14624, selectClass←v14652)
   word sliceD←v14624;
   word selectClass←v14652;
   {
   register ptr gf←c89532 =  (ptr) &globalframe;
   word more←v14696;
   word ipParts←v21704;
   word newParts←v21732;
   /* IPAugmentParts: */ 
SOURCE(30624, 675)
SOURCE(30624, 675)
   more←v14696 = 0;
SOURCE(30736, 39)
   ipParts←v21704 = XR←Narrow((* (( (ptr) sliceD←v14624)+1) ), (* (( (ptr) gf←c89532)+36) ));
SOURCE(30777, 111)
   newParts←v21732 = XR←NewObject(36, (* (( (ptr) gf←c89532)+36) ));
   (*  (W4Pt) newParts←v21732 ) = (*  (W4Pt) ipParts←v21704 );
   (*  (W4Pt) (( (ptr) newParts←v21732)+4) ) = (*  (W4Pt) (( (ptr) ipParts←v21704)+4) );
   (* (( (ptr) newParts←v21732)+8) ) = (* (( (ptr) ipParts←v21704)+8) );
SOURCE(30890, 320)
   {
      register word i←v21776 = 0;
      if (( (int)i←v21776 >  (int)3)) {
         goto lab←L100053;
         };
      lab←L100056: ;
SOURCE(30927, 283)
      if ((0 != (* ((( (ptr) ipParts←v21704)+4)+BCK(i←v21776, 4)) ))) {
SOURCE(30952, 258)
         {
            word var←c86556;
            var←c86556 = i←v21776;
            switch (var←c86556) {
               case 0: 
SOURCE(30972, 25)
                  (*  (ptr) newParts←v21732 ) = 1;
SOURCE(30999, 25)
                  (* (( (ptr) newParts←v21732)+1) ) = 1;
                  break;
               case 1: 
SOURCE(31034, 25)
                  (* (( (ptr) newParts←v21732)+1) ) = 1;
SOURCE(31061, 25)
                  (* (( (ptr) newParts←v21732)+2) ) = 1;
                  break;
               case 2: 
SOURCE(31096, 25)
                  (* (( (ptr) newParts←v21732)+2) ) = 1;
SOURCE(31123, 25)
                  (* (( (ptr) newParts←v21732)+3) ) = 1;
                  break;
               case 3: 
SOURCE(31158, 25)
                  (* (( (ptr) newParts←v21732)+3) ) = 1;
SOURCE(31185, 25)
                  (*  (ptr) newParts←v21732 ) = 1;
                  break;
               default: 
SOURCE(31225, 5)
                  (void) XR←RaiseUnnamedError();
                  break;
               };
            };
         };
      if (( (int)i←v21776 >=  (int)3)) {
         goto lab←L100053;
         };
      i←v21776 = (i←v21776 + 1);
      goto lab←L100056;
      lab←L100053: ;
      };
SOURCE(31241, 58)
   {
      word pd275;
      pd275 = (* (( (ptr) (* (( (ptr) gf←c89532)+279)/* var←c83132 */  ))+8) );
      more←v14696 = (word) ( *( (fPt) ((*  (ptr) pd275 ))))((*  (ptr) sliceD←v14624 ), newParts←v21732, pd275);
      };
SOURCE(30624, 675)
   return(more←v14696);
   }

static word IPPointsInDescriptor←P2160(sliceD←v14756)
   word sliceD←v14756;
   {
   register ptr gf←c89564 =  (ptr) &globalframe;
   word pointGen←v14800;
   word parts←v21820;
   /* IPPointsInDescriptor: */ 
SOURCE(31305, 292)
SOURCE(31305, 292)
   pointGen←v14800 = 0;
SOURCE(31397, 37)
   parts←v21820 = XR←Narrow((* (( (ptr) sliceD←v14756)+1) ), (* (( (ptr) gf←c89564)+36) ));
SOURCE(31436, 56)
   {
      word var←c86588;
      var←c86588 = XR←NewObject(16, (* (( (ptr) gf←c89564)+16) ));
      (*  (ptr) var←c86588 ) = sliceD←v14756;
      pointGen←v14800 = var←c86588;
      };
SOURCE(31494, 103)
   {
      register word point←v21864 = 0;
      if (( (int)point←v21864 >  (int)3)) {
         goto lab←L100057;
         };
      lab←L100060: ;
SOURCE(31536, 61)
      if ((0 != (* (( (ptr) parts←v21820)+BCK(point←v21864, 4)) ))) {
SOURCE(31564, 33)
         (* (( (ptr) pointGen←v14800)+1) ) = ((* (( (ptr) pointGen←v14800)+1) ) + 1);
         };
      if (( (int)point←v21864 >=  (int)3)) {
         goto lab←L100057;
         };
      point←v21864 = (point←v21864 + 1);
      goto lab←L100060;
      lab←L100057: ;
      };
SOURCE(31305, 292)
   return(pointGen←v14800);
   }

static void IPWalkPointsInDescriptor←P2220(sliceD←v14860, walkProc←v14888)
   word sliceD←v14860;
   word walkProc←v14888;
   {
   register ptr gf←c89596 =  (ptr) &globalframe;
   word parts←v21908;
   word ipData←v21936;
   word done←v21964 = 0;
   /* IPWalkPointsInDescriptor: */ 
SOURCE(31612, 324)
SOURCE(31698, 37)
   parts←v21908 = XR←Narrow((* (( (ptr) sliceD←v14860)+1) ), (* (( (ptr) gf←c89596)+36) ));
SOURCE(31737, 42)
   ipData←v21936 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v14860 ))+1) ), (* (( (ptr) gf←c89596)+32) ));
SOURCE(31801, 135)
   {
      register word point←v22008 = 0;
      if (( (int)point←v22008 >  (int)3)) {
         goto lab←L100061;
         };
      lab←L100064: ;
SOURCE(31843, 93)
      if ((0 != (* (( (ptr) parts←v21908)+BCK(point←v22008, 4)) ))) {
SOURCE(31873, 42)
         {
            W2 var←c86620;
            (void) GetIPPoint←P2580((word) &var←c86620, ipData←v21936, point←v22008);
            done←v21964 = (word) ( *( (fPt) ((*  (ptr) walkProc←v14888 ))))(var←c86620, walkProc←v14888);
            };
SOURCE(31917, 19)
         if ((0 != done←v21964)) {
SOURCE(31930, 6)
            return;
            };
         };
      if (( (int)point←v22008 >=  (int)3)) {
         goto lab←L100061;
         };
      point←v22008 = (point←v22008 + 1);
      goto lab←L100064;
      lab←L100061: ;
      };
   }

static word IPPointPairsInDescriptor←P2280(sliceD←v14948)
   word sliceD←v14948;
   {
   register ptr gf←c89628 =  (ptr) &globalframe;
   word pointPairGen←v14992;
   word parts←v22052;
   /* IPPointPairsInDescriptor: */ 
SOURCE(31954, 343)
SOURCE(31954, 343)
   pointPairGen←v14992 = 0;
SOURCE(32058, 37)
   parts←v22052 = XR←Narrow((* (( (ptr) sliceD←v14948)+1) ), (* (( (ptr) gf←c89628)+36) ));
SOURCE(32097, 64)
   {
      word var←c86652;
      var←c86652 = XR←NewObject(16, (* (( (ptr) gf←c89628)+15) ));
      (*  (ptr) var←c86652 ) = sliceD←v14948;
      pointPairGen←v14992 = var←c86652;
      };
SOURCE(32190, 107)
   {
      register word edge←v22096 = 0;
      if (( (int)edge←v22096 >  (int)3)) {
         goto lab←L100065;
         };
      lab←L100068: ;
SOURCE(32230, 67)
      if ((0 != (* ((( (ptr) parts←v22052)+4)+BCK(edge←v22096, 4)) ))) {
SOURCE(32256, 41)
         (* (( (ptr) pointPairGen←v14992)+1) ) = ((* (( (ptr) pointPairGen←v14992)+1) ) + 1);
         };
      if (( (int)edge←v22096 >=  (int)3)) {
         goto lab←L100065;
         };
      edge←v22096 = (edge←v22096 + 1);
      goto lab←L100068;
      lab←L100065: ;
      };
SOURCE(31954, 343)
   return(pointPairGen←v14992);
   }

static word IPSegmentsInDescriptor←P2340(sliceD←v15052)
   word sliceD←v15052;
   {
   register ptr gf←c89660 =  (ptr) &globalframe;
   word segGen←v15096;
   word parts←v22140;
   /* IPSegmentsInDescriptor: */ 
SOURCE(32312, 319)
SOURCE(32312, 319)
   segGen←v15096 = 0;
SOURCE(32406, 37)
   parts←v22140 = XR←Narrow((* (( (ptr) sliceD←v15052)+1) ), (* (( (ptr) gf←c89660)+36) ));
SOURCE(32445, 76)
   {
      word var←c86684;
      var←c86684 = XR←NewObject(32, (* (( (ptr) gf←c89660)+14) ));
      (* (( (ptr) var←c86684)+6) ) = sliceD←v15052;
      segGen←v15096 = var←c86684;
      };
SOURCE(32550, 81)
   {
      register word edge←v22184 = 0;
      if (( (int)edge←v22184 >  (int)3)) {
         goto lab←L100069;
         };
      lab←L100072: ;
SOURCE(32590, 41)
      if ((0 != (* ((( (ptr) parts←v22140)+4)+BCK(edge←v22184, 4)) ))) {
SOURCE(32616, 15)
         (* (( (ptr) segGen←v15096)+1) ) = 1;
         };
      if (( (int)edge←v22184 >=  (int)3)) {
         goto lab←L100069;
         };
      edge←v22184 = (edge←v22184 + 1);
      goto lab←L100072;
      lab←L100069: ;
      };
SOURCE(32312, 319)
   return(segGen←v15096);
   }

static word IPWalkSegments←P2400(slice←v15156, walkProc←v15184)
   word slice←v15156;
   word walkProc←v15184;
   {
   register ptr gf←c89692 =  (ptr) &globalframe;
   word sliceD←v15228;
   word ipData←v22228;
   /* IPWalkSegments: */ 
SOURCE(32678, 236)
SOURCE(32678, 236)
   sliceD←v15228 = 0;
SOURCE(32772, 35)
   ipData←v22228 = XR←Narrow((* (( (ptr) slice←v15156)+1) ), (* (( (ptr) gf←c89692)+32) ));
SOURCE(32809, 105)
   if ((0 != (word) ( *( (fPt) ((*  (ptr) walkProc←v15184 ))))((* (( (ptr) ipData←v22228)+9) ), 0, walkProc←v15184))) {
      return((word) IPNewParts←P1860(slice←v15156, 0, 6));
      }
   else {
      return((word) IPNewParts←P1860(slice←v15156, 0, 8));
      };
   }

static void IPNextSegment←P2460(formal←c0518, slice←v15288, segGen←v15316)
   word formal←c0518;
   word slice←v15288;
   word segGen←v15316;
   {
   register ptr gf←c89724 =  (ptr) &globalframe;
   word seg←v15360;
   word transform←v15388;
   /* IPNextSegment: */ 
SOURCE(32920, 261)
SOURCE(32920, 261)
   seg←v15360 = 0;
SOURCE(32920, 261)
   transform←v15388 = 0;
SOURCE(33035, 146)
   if ((segGen←v15316 == 0) || ((* (( (ptr) segGen←v15316)+1) ) == 0)) {
SOURCE(33073, 22)
      seg←v15360 = 0;
      transform←v15388 = 0;
      goto lab←L100073;
      }
   else {
SOURCE(33095, 88)
      {
         word ipData←v22272;
SOURCE(33097, 49)
         ipData←v22272 = XR←Narrow((* (( (ptr) (*  (ptr) (* (( (ptr) segGen←v15316)+6) ) ))+1) ), (* (( (ptr) gf←c89724)+32) ));
SOURCE(33148, 16)
         seg←v15360 = (* (( (ptr) ipData←v22272)+9) );
SOURCE(33166, 15)
         (* (( (ptr) segGen←v15316)+1) ) = 0;
         };
      };
   /* removed tail goto */ 
   lab←L100073: ;
   (*  (ptr) formal←c0518 ) = seg←v15360;
   (* (( (ptr) formal←c0518)+1) ) = transform←v15388;
   return;
   }

static void IPNextPoint←P2520(formal←c0527, slice←v15448, pointGen←v15476)
   word formal←c0527;
   word slice←v15448;
   word pointGen←v15476;
   {
   register ptr gf←c89756 =  (ptr) &globalframe;
   W3 pointAndDone←v15520;
   /* IPNextPoint: */ 
SOURCE(33190, 667)
SOURCE(33303, 554)
   if ((pointGen←v15476 == 0) || ((* (( (ptr) pointGen←v15476)+1) ) == 0)) {
SOURCE(33347, 24)
      pointAndDone←v15520.f2 = 1;
SOURCE(33373, 6)
      goto lab←L100074;
      }
   else {
SOURCE(33388, 524)
      {
         word sliceD←v22316;
         word ipData←v22344;
         word ipParts←v22372;
         register word index←v22400 =  (word) -1;
SOURCE(33390, 41)
         sliceD←v22316 = (*  (ptr) pointGen←v15476 );
SOURCE(33433, 42)
         ipData←v22344 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v22316 ))+1) ), (* (( (ptr) gf←c89756)+32) ));
SOURCE(33477, 39)
         ipParts←v22372 = XR←Narrow((* (( (ptr) sliceD←v22316)+1) ), (* (( (ptr) gf←c89756)+36) ));
SOURCE(33539, 25)
         pointAndDone←v15520.f2 = 0;
SOURCE(33566, 95)
         index←v22400 = (* (( (ptr) pointGen←v15476)+2) );
         lab←L100078: ;
         if (( (int)index←v22400 <  (int)4)) {
            }
         else {
            goto lab←L100075;
            };
SOURCE(33631, 30)
         if ((0 != (* (( (ptr) ipParts←v22372)+BCK(index←v22400, 4)) ))) {
SOURCE(33661, 4)
            goto lab←L100076;
            };
         index←v22400 = (index←v22400 + 1);
         goto lab←L100078;
         lab←L100075: ;
         lab←L100076: ;
SOURCE(33720, 46)
         (void) GetIPPoint←P2580((word) &pointAndDone←v15520, ipData←v22344, index←v22400);
SOURCE(33768, 31)
         {
            word idx276;
            (* (( (ptr) pointGen←v15476)+1) ) = (
               idx276 = (word) ((* (( (ptr) pointGen←v15476)+1) ) - 1),
               SGNCK(idx276)
               );
            };
SOURCE(33801, 56)
         {
            word idx277;
            (* (( (ptr) pointGen←v15476)+2) ) = (
               idx277 = (word)  ( ((* (( (ptr) pointGen←v15476)+1) ) == 0) ? 99 : (index←v22400 + 1) ) ,
               SGNCK(idx277)
               );
            };
         };
      };
   /* removed tail goto */ 
   lab←L100074: ;
   (*  (W3Pt) formal←c0527 ) = pointAndDone←v15520;
   return;
   }

static void GetIPPoint←P2580(formal←c0539, ipData←v15580, index←v15608)
   word formal←c0539;
   word ipData←v15580;
   word index←v15608;
   {
   register ptr gf←c89788 =  (ptr) &globalframe;
   W2 point←v15652;
   word box←v22444;
   /* GetIPPoint: */ 
SOURCE(33919, 308)
SOURCE(33996, 36)
   box←v22444 = (*  (ptr) ipData←v15580 );
SOURCE(34034, 193)
   {
      W2 var←c86748;
      {
         word var←c86780;
         var←c86780 = index←v15608;
         switch (var←c86780) {
            case 0: 
               var←c86748.f0 = (*  (ptr) box←v22444 );
               var←c86748.f1 = (* (( (ptr) box←v22444)+1) );
               break;
            case 1: 
               var←c86748.f0 = (*  (ptr) box←v22444 );
               var←c86748.f1 = (* (( (ptr) box←v22444)+3) );
               break;
            case 2: 
               var←c86748.f0 = (* (( (ptr) box←v22444)+2) );
               var←c86748.f1 = (* (( (ptr) box←v22444)+3) );
               break;
            case 3: 
               var←c86748.f0 = (* (( (ptr) box←v22444)+2) );
               var←c86748.f1 = (* (( (ptr) box←v22444)+1) );
               break;
            default: 
               var←c86748 = (*  (W2Pt) (
                  XR←RaiseUnnamedError(), &dummy278
                  ) );
               break;
            };
         };
      {
         W2 var←c0538;
         {
            word pd279;
            pd279 = (* (( (ptr) (* (( (ptr) gf←c89788)+278)/* var←c83068 */  ))+39) );
            (void) ( *( (fPt) ((*  (ptr) pd279 ))))((word) &var←c0538, (* (( (ptr) ipData←v15580)+5) ), var←c86748, pd279);
            };
         point←v15652 = var←c0538;
         };
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0539 ) = point←v15652;
   return;
   }

static void IPNextPointPair←P2640(formal←c0567, slice←v15712, pointPairGen←v15740)
   word formal←c0567;
   word slice←v15712;
   word pointPairGen←v15740;
   {
   register ptr gf←c89820 =  (ptr) &globalframe;
   W5 pointPairAndDone←v15784;
   /* IPNextPointPair: */ 
SOURCE(34233, 1560)
SOURCE(34366, 1427)
   if ((pointPairGen←v15740 == 0) || ((* (( (ptr) pointPairGen←v15740)+1) ) == 0)) {
SOURCE(34418, 28)
      pointPairAndDone←v15784.f4 = 1;
SOURCE(34448, 6)
      goto lab←L100080;
      }
   else {
SOURCE(34463, 1384)
      {
         word sliceD←v22488;
         word ipData←v22516;
         word ipParts←v22544;
         word box←v22572;
         word t←v22600;
         register word index←v22628 =  (word) -1;
SOURCE(34465, 45)
         sliceD←v22488 = (*  (ptr) pointPairGen←v15740 );
SOURCE(34512, 42)
         ipData←v22516 = XR←Narrow((* (( (ptr) (*  (ptr) sliceD←v22488 ))+1) ), (* (( (ptr) gf←c89820)+32) ));
SOURCE(34556, 39)
         ipParts←v22544 = XR←Narrow((* (( (ptr) sliceD←v22488)+1) ), (* (( (ptr) gf←c89820)+36) ));
SOURCE(34597, 36)
         box←v22572 = (*  (ptr) ipData←v22516 );
SOURCE(34635, 58)
         t←v22600 = (* (( (ptr) ipData←v22516)+5) );
SOURCE(34716, 29)
         pointPairAndDone←v15784.f4 = 0;
SOURCE(34747, 97)
         index←v22628 = (* (( (ptr) pointPairGen←v15740)+2) );
         lab←L100084: ;
         if (( (int)index←v22628 <  (int)4)) {
            }
         else {
            goto lab←L100081;
            };
SOURCE(34815, 29)
         if ((0 != (* ((( (ptr) ipParts←v22544)+4)+BCK(index←v22628, 4)) ))) {
SOURCE(34844, 4)
            goto lab←L100082;
            };
         index←v22628 = (index←v22628 + 1);
         goto lab←L100084;
         lab←L100081: ;
         lab←L100082: ;
SOURCE(34901, 783)
         {
            word var←c86940;
            var←c86940 = index←v22628;
            switch (var←c86940) {
               case 0: 
SOURCE(34977, 76)
                  {
                     W2 var←c0551;
                     {
                        W2 var←c86972;
                        var←c86972.f0 = (*  (ptr) box←v22572 );
                        var←c86972.f1 = (* (( (ptr) box←v22572)+1) );
                        {
                           word pd280;
                           pd280 = (* (( (ptr) (* (( (ptr) gf←c89820)+278)/* var←c83068 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd280 ))))((word) &var←c0551, t←v22600, var←c86972, pd280);
                           };
                        };
                     (*  (W2Pt) &pointPairAndDone←v15784 ) = var←c0551;
                     };
SOURCE(35055, 76)
                  {
                     W2 var←c0553;
                     {
                        W2 var←c87004;
                        var←c87004.f0 = (*  (ptr) box←v22572 );
                        var←c87004.f1 = (* (( (ptr) box←v22572)+3) );
                        {
                           word pd281;
                           pd281 = (* (( (ptr) (* (( (ptr) gf←c89820)+278)/* var←c83068 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd281 ))))((word) &var←c0553, t←v22600, var←c87004, pd281);
                           };
                        };
                     (*  (W2Pt) (( (ptr) &pointPairAndDone←v15784)+2) ) = var←c0553;
                     };
                  break;
               case 1: 
SOURCE(35143, 76)
                  {
                     W2 var←c0555;
                     {
                        W2 var←c87036;
                        var←c87036.f0 = (*  (ptr) box←v22572 );
                        var←c87036.f1 = (* (( (ptr) box←v22572)+3) );
                        {
                           word pd282;
                           pd282 = (* (( (ptr) (* (( (ptr) gf←c89820)+278)/* var←c83068 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd282 ))))((word) &var←c0555, t←v22600, var←c87036, pd282);
                           };
                        };
                     (*  (W2Pt) &pointPairAndDone←v15784 ) = var←c0555;
                     };
SOURCE(35221, 76)
                  {
                     W2 var←c0557;
                     {
                        W2 var←c87068;
                        var←c87068.f0 = (* (( (ptr) box←v22572)+2) );
                        var←c87068.f1 = (* (( (ptr) box←v22572)+3) );
                        {
                           word pd283;
                           pd283 = (* (( (ptr) (* (( (ptr) gf←c89820)+278)/* var←c83068 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd283 ))))((word) &var←c0557, t←v22600, var←c87068, pd283);
                           };
                        };
                     (*  (W2Pt) (( (ptr) &pointPairAndDone←v15784)+2) ) = var←c0557;
                     };
                  break;
               case 2: 
SOURCE(35309, 76)
                  {
                     W2 var←c0559;
                     {
                        W2 var←c87100;
                        var←c87100.f0 = (* (( (ptr) box←v22572)+2) );
                        var←c87100.f1 = (* (( (ptr) box←v22572)+3) );
                        {
                           word pd284;
                           pd284 = (* (( (ptr) (* (( (ptr) gf←c89820)+278)/* var←c83068 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd284 ))))((word) &var←c0559, t←v22600, var←c87100, pd284);
                           };
                        };
                     (*  (W2Pt) &pointPairAndDone←v15784 ) = var←c0559;
                     };
SOURCE(35387, 76)
                  {
                     W2 var←c0561;
                     {
                        W2 var←c87132;
                        var←c87132.f0 = (* (( (ptr) box←v22572)+2) );
                        var←c87132.f1 = (* (( (ptr) box←v22572)+1) );
                        {
                           word pd285;
                           pd285 = (* (( (ptr) (* (( (ptr) gf←c89820)+278)/* var←c83068 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd285 ))))((word) &var←c0561, t←v22600, var←c87132, pd285);
                           };
                        };
                     (*  (W2Pt) (( (ptr) &pointPairAndDone←v15784)+2) ) = var←c0561;
                     };
                  break;
               case 3: 
SOURCE(35475, 76)
                  {
                     W2 var←c0563;
                     {
                        W2 var←c87164;
                        var←c87164.f0 = (* (( (ptr) box←v22572)+2) );
                        var←c87164.f1 = (* (( (ptr) box←v22572)+1) );
                        {
                           word pd286;
                           pd286 = (* (( (ptr) (* (( (ptr) gf←c89820)+278)/* var←c83068 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd286 ))))((word) &var←c0563, t←v22600, var←c87164, pd286);
                           };
                        };
                     (*  (W2Pt) &pointPairAndDone←v15784 ) = var←c0563;
                     };
SOURCE(35553, 76)
                  {
                     W2 var←c0565;
                     {
                        W2 var←c87196;
                        var←c87196.f0 = (*  (ptr) box←v22572 );
                        var←c87196.f1 = (* (( (ptr) box←v22572)+1) );
                        {
                           word pd287;
                           pd287 = (* (( (ptr) (* (( (ptr) gf←c89820)+278)/* var←c83068 */  ))+39) );
                           (void) ( *( (fPt) ((*  (ptr) pd287 ))))((word) &var←c0565, t←v22600, var←c87196, pd287);
                           };
                        };
                     (*  (W2Pt) (( (ptr) &pointPairAndDone←v15784)+2) ) = var←c0565;
                     };
                  break;
               default: 
SOURCE(35645, 39)
                  {
                     word var←c0566;
                     var←c0566 = (* (( (ptr) gf←c89820)+63) );
                     (void) (XR←RaiseSignal((* (( (ptr) gf←c89820)+4)/* Problem←v5296 */  ), 0, (word) &var←c0566));
                     };
                  break;
               };
            };
SOURCE(35686, 41)
         {
            word idx288;
            (* (( (ptr) pointPairGen←v15740)+1) ) = (
               idx288 = (word) ((* (( (ptr) pointPairGen←v15740)+1) ) - 1),
               SGNCK(idx288)
               );
            };
SOURCE(35729, 64)
         {
            word idx289;
            (* (( (ptr) pointPairGen←v15740)+2) ) = (
               idx289 = (word)  ( ((* (( (ptr) pointPairGen←v15740)+1) ) == 0) ? 99 : (index←v22628 + 1) ) ,
               SGNCK(idx289)
               );
            };
         };
      };
   /* removed tail goto */ 
   lab←L100080: ;
   (*  (W5Pt) formal←c0567 ) = pointPairAndDone←v15784;
   return;
   }

static void IPClosestPoint←P2700(formal←c0591, sliceD←v15844, testPoint←v15872, tolerance←v15900)
   word formal←c0591;
   word sliceD←v15844;
   W2 testPoint←v15872;
   word tolerance←v15900;
   {
   register ptr gf←c89852 =  (ptr) &globalframe;
   W2 bestPoint←v15944;
   word bestDist←v15972;
   W2 bestNormal←v16000;
   word hitData←v16028;
   word success←v16056;
   word index←v22672 = 9999;
   word slice←v22700;
   word ipData←v22728;
   word tightBox←v22756;
   W6 toleranceBox←v22784;
   /* IPClosestPoint: */ 
SOURCE(35854, 1184)
SOURCE(35854, 1184)
   bestNormal←v16000.f0 = (*  (ptr) &fc103 );
   bestNormal←v16000.f1 = (*  (ptr) &fc139 );
SOURCE(35854, 1184)
   hitData←v16028 = 0;
SOURCE(35854, 1184)
   success←v16056 = 0;
SOURCE(36071, 27)
   slice←v22700 = (*  (ptr) sliceD←v15844 );
SOURCE(36100, 35)
   ipData←v22728 = XR←Narrow((* (( (ptr) slice←v22700)+1) ), (* (( (ptr) gf←c89852)+32) ));
SOURCE(36137, 50)
   {
      word pd290;
      pd290 = (* (( (ptr) (* (( (ptr) gf←c89852)+292)/* var←c84732 */  ))+9) );
      tightBox←v22756 = (word) ( *( (fPt) ((*  (ptr) pd290 ))))(slice←v22700, 0, pd290);
      };
SOURCE(36189, 138)
   {
      word x291;
      word x292;
      *(float*)&toleranceBox←v22784.f0 = (
         x291 = (*  (ptr) tightBox←v22756 ),  *(float*)&x291
         ) - (
         x292 = tolerance←v15900,  *(float*)&x292
         );
      };
   {
      word x293;
      word x294;
      *(float*)&toleranceBox←v22784.f1 = (
         x293 = (* (( (ptr) tightBox←v22756)+1) ),  *(float*)&x293
         ) - (
         x294 = tolerance←v15900,  *(float*)&x294
         );
      };
   {
      word x295;
      word x296;
      *(float*)&toleranceBox←v22784.f2 = (
         x295 = (* (( (ptr) tightBox←v22756)+2) ),  *(float*)&x295
         ) + (
         x296 = tolerance←v15900,  *(float*)&x296
         );
      };
   {
      word x297;
      word x298;
      *(float*)&toleranceBox←v22784.f3 = (
         x297 = (* (( (ptr) tightBox←v22756)+3) ),  *(float*)&x297
         ) + (
         x298 = tolerance←v15900,  *(float*)&x298
         );
      };
   toleranceBox←v22784.f4 = 0;
   toleranceBox←v22784.f5 = 0;
SOURCE(36354, 684)
   if ((0 != (word) PointIsInBox←P2880(testPoint←v15872, toleranceBox←v22784))) {
SOURCE(36400, 643)
      {
         word ipHitData←v22828 = 0;
         word ipParts←v22856;
         W2 localTestpoint←v22884;
         word localTolerance←v22912;
SOURCE(36424, 39)
         ipParts←v22856 = XR←Narrow((* (( (ptr) sliceD←v15844)+1) ), (* (( (ptr) gf←c89852)+36) ));
SOURCE(36465, 72)
         {
            word pd299;
            pd299 = (* (( (ptr) (* (( (ptr) gf←c89852)+289)/* var←c83868 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd299 ))))((word) &localTestpoint←v22884, (* (( (ptr) ipData←v22728)+6) ), testPoint←v15872, pd299)
            ;
            };
SOURCE(36539, 87)
         {
            float tf300;
            word x301;
            word x302;
            float tf303;
            float tf304;
            word x305;
            float tf306;
            localTolerance←v22912 = (
               tf306 = FABS(((
                     x301 = tolerance←v15900,  *(float*)&x301
                     ) * FMAX((
                        x302 = (* (( (ptr) ipData←v22728)+7) ),  *(float*)&x302
                        ), (
                        x305 = (* (( (ptr) ipData←v22728)+8) ),  *(float*)&x305
                        ), tf303, tf304)), tf300),  *(word*)&tf306
               );
            };
SOURCE(36680, 133)
         {
            W5 var←c87260;
            {
               word pd307;
               pd307 = (* (( (ptr) (* (( (ptr) gf←c89852)+284)/* var←c83420 */  ))+26) );
               (void) ( *( (fPt) ((*  (ptr) pd307 ))))((word) &var←c87260, (*  (ptr) ipData←v22728 ), localTestpoint←v22884, localTolerance←v22912, (*  (W4Pt) ipParts←v22856 ), pd307)
               ;
               };
            success←v16056 = var←c87260.f4;
            bestPoint←v15944 = (*  (W2Pt) (( (ptr) &var←c87260)+2) );
            index←v22672 = var←c87260.f1;
            bestDist←v15972 = var←c87260.f0;
            };
SOURCE(36815, 223)
         if ((0 != success←v16056)) {
SOURCE(36833, 62)
            {
               word pd308;
               pd308 = (* (( (ptr) (* (( (ptr) gf←c89852)+289)/* var←c83868 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd308 ))))((word) &bestPoint←v15944, (* (( (ptr) ipData←v22728)+5) ), bestPoint←v15944, pd308)
               ;
               };
SOURCE(36897, 51)
            {
               word pd309;
               pd309 = (* (( (ptr) (* (( (ptr) gf←c89852)+304)/* var←c87292 */  ))+19) );
               bestDist←v15972 = (word) ( *( (fPt) ((*  (ptr) pd309 ))))(testPoint←v15872, bestPoint←v15944, pd309);
               };
SOURCE(36950, 88)
            {
               word var←c87324;
               {
                  word var←c87356;
                  var←c87356 = XR←NewObject(16, (* (( (ptr) gf←c89852)+19) ));
                  (*  (ptr) var←c87356 ) = BCK((index←v22672 + 1), 5);
                  (* (( (ptr) var←c87356)+1) ) =  (word) -1;
                  (*  (W2Pt) (( (ptr) var←c87356)+2) ) = bestPoint←v15944;
                  var←c87324 = var←c87356;
                  };
               ipHitData←v22828 = var←c87324;
               hitData←v16028 = var←c87324;
               };
            };
         };
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0591 ) = bestPoint←v15944;
   (* (( (ptr) formal←c0591)+2) ) = bestDist←v15972;
   (*  (W2Pt) (( (ptr) formal←c0591)+3) ) = bestNormal←v16000;
   (* (( (ptr) formal←c0591)+5) ) = hitData←v16028;
   (* (( (ptr) formal←c0591)+6) ) = success←v16056;
   return;
   }

static void IPClosestSegment←P2760(formal←c0617, sliceD←v16128, testPoint←v16156, tolerance←v16184)
   word formal←c0617;
   word sliceD←v16128;
   W2 testPoint←v16156;
   word tolerance←v16184;
   {
   register ptr gf←c89884 =  (ptr) &globalframe;
   W2 bestPoint←v16228;
   word bestDist←v16256;
   W2 bestNormal←v16284;
   word hitData←v16312;
   word success←v16340;
   word slice←v22956;
   word ipData←v22984;
   word tightBox←v23012;
   W6 toleranceBox←v23040;
   /* IPClosestSegment: */ 
SOURCE(37050, 1309)
SOURCE(37050, 1309)
   bestNormal←v16284.f0 = (*  (ptr) &fc103 );
   bestNormal←v16284.f1 = (*  (ptr) &fc139 );
SOURCE(37050, 1309)
   hitData←v16312 = 0;
SOURCE(37050, 1309)
   success←v16340 = 0;
SOURCE(37251, 27)
   slice←v22956 = (*  (ptr) sliceD←v16128 );
SOURCE(37280, 35)
   ipData←v22984 = XR←Narrow((* (( (ptr) slice←v22956)+1) ), (* (( (ptr) gf←c89884)+32) ));
SOURCE(37317, 50)
   {
      word pd310;
      pd310 = (* (( (ptr) (* (( (ptr) gf←c89884)+292)/* var←c84732 */  ))+9) );
      tightBox←v23012 = (word) ( *( (fPt) ((*  (ptr) pd310 ))))(slice←v22956, 0, pd310);
      };
SOURCE(37369, 138)
   {
      word x311;
      word x312;
      *(float*)&toleranceBox←v23040.f0 = (
         x311 = (*  (ptr) tightBox←v23012 ),  *(float*)&x311
         ) - (
         x312 = tolerance←v16184,  *(float*)&x312
         );
      };
   {
      word x313;
      word x314;
      *(float*)&toleranceBox←v23040.f1 = (
         x313 = (* (( (ptr) tightBox←v23012)+1) ),  *(float*)&x313
         ) - (
         x314 = tolerance←v16184,  *(float*)&x314
         );
      };
   {
      word x315;
      word x316;
      *(float*)&toleranceBox←v23040.f2 = (
         x315 = (* (( (ptr) tightBox←v23012)+2) ),  *(float*)&x315
         ) + (
         x316 = tolerance←v16184,  *(float*)&x316
         );
      };
   {
      word x317;
      word x318;
      *(float*)&toleranceBox←v23040.f3 = (
         x317 = (* (( (ptr) tightBox←v23012)+3) ),  *(float*)&x317
         ) + (
         x318 = tolerance←v16184,  *(float*)&x318
         );
      };
   toleranceBox←v23040.f4 = 0;
   toleranceBox←v23040.f5 = 0;
SOURCE(37534, 825)
   if ((0 != (word) PointIsInBox←P2880(testPoint←v16156, toleranceBox←v23040))) {
SOURCE(37580, 784)
      {
         word ipHitData←v23084 = 0;
         word index←v23112 = 9999;
         word ipData←v23140;
         word ipParts←v23168;
         W2 localTestpoint←v23196;
         word localTolerance←v23224;
SOURCE(37623, 35)
         ipData←v23140 = XR←Narrow((* (( (ptr) slice←v22956)+1) ), (* (( (ptr) gf←c89884)+32) ));
SOURCE(37660, 39)
         ipParts←v23168 = XR←Narrow((* (( (ptr) sliceD←v16128)+1) ), (* (( (ptr) gf←c89884)+36) ));
SOURCE(37701, 72)
         {
            word pd319;
            pd319 = (* (( (ptr) (* (( (ptr) gf←c89884)+289)/* var←c83868 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd319 ))))((word) &localTestpoint←v23196, (* (( (ptr) ipData←v23140)+6) ), testPoint←v16156, pd319)
            ;
            };
SOURCE(37808, 87)
         {
            float tf320;
            word x321;
            word x322;
            float tf323;
            float tf324;
            word x325;
            float tf326;
            localTolerance←v23224 = (
               tf326 = FABS(((
                     x321 = tolerance←v16184,  *(float*)&x321
                     ) * FMAX((
                        x322 = (* (( (ptr) ipData←v23140)+7) ),  *(float*)&x322
                        ), (
                        x325 = (* (( (ptr) ipData←v23140)+8) ),  *(float*)&x325
                        ), tf323, tf324)), tf320),  *(word*)&tf326
               );
            };
SOURCE(37949, 135)
         {
            W5 var←c87420;
            {
               word pd327;
               pd327 = (* (( (ptr) (* (( (ptr) gf←c89884)+284)/* var←c83420 */  ))+27) );
               (void) ( *( (fPt) ((*  (ptr) pd327 ))))((word) &var←c87420, (*  (ptr) ipData←v23140 ), localTestpoint←v23196, localTolerance←v23224, (*  (W4Pt) ipParts←v23168 ), pd327)
               ;
               };
            success←v16340 = var←c87420.f4;
            bestPoint←v16228 = (*  (W2Pt) (( (ptr) &var←c87420)+2) );
            index←v23112 = var←c87420.f1;
            bestDist←v16256 = var←c87420.f0;
            };
SOURCE(38086, 273)
         if ((0 != success←v16340)) {
SOURCE(38104, 62)
            {
               word pd328;
               pd328 = (* (( (ptr) (* (( (ptr) gf←c89884)+289)/* var←c83868 */  ))+5) );
               (void) ( *( (fPt) ((*  (ptr) pd328 ))))((word) &bestPoint←v16228, (* (( (ptr) ipData←v23140)+5) ), bestPoint←v16228, pd328)
               ;
               };
SOURCE(38168, 51)
            {
               word pd329;
               pd329 = (* (( (ptr) (* (( (ptr) gf←c89884)+304)/* var←c87292 */  ))+19) );
               bestDist←v16256 = (word) ( *( (fPt) ((*  (ptr) pd329 ))))(testPoint←v16156, bestPoint←v16228, pd329);
               };
SOURCE(38221, 88)
            {
               word var←c87452;
               {
                  word var←c87484;
                  var←c87484 = XR←NewObject(16, (* (( (ptr) gf←c89884)+19) ));
                  (* (( (ptr) var←c87484)+1) ) = index←v23112;
                  (*  (W2Pt) (( (ptr) var←c87484)+2) ) = bestPoint←v16228;
                  var←c87452 = var←c87484;
                  };
               ipHitData←v23084 = var←c87452;
               hitData←v16312 = var←c87452;
               };
SOURCE(38311, 48)
            {
               word pd330;
               pd330 = (* (( (ptr) (* (( (ptr) gf←c89884)+304)/* var←c87292 */  ))+11) );
               (void) ( *( (fPt) ((*  (ptr) pd330 ))))((word) &bestNormal←v16284, testPoint←v16156, bestPoint←v16228, pd330);
               };
            };
         };
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0617 ) = bestPoint←v16228;
   (* (( (ptr) formal←c0617)+2) ) = bestDist←v16256;
   (*  (W2Pt) (( (ptr) formal←c0617)+3) ) = bestNormal←v16284;
   (* (( (ptr) formal←c0617)+5) ) = hitData←v16312;
   (* (( (ptr) formal←c0617)+6) ) = success←v16340;
   return;
   }

static void IPFilledPathsUnderPoint←P2820(formal←c0635, slice←v16412, point←v16440, tolerance←v16468)
   word formal←c0635;
   word slice←v16412;
   W2 point←v16440;
   word tolerance←v16468;
   {
   register ptr gf←c89916 =  (ptr) &globalframe;
   word hitData←v16512;
   word moreHitDatas←v16540;
   word ipData←v23268;
   W2 pointBox←v23296;
   word box←v23324;
   word success←v23352 = 0;
   /* IPFilledPathsUnderPoint: */ 
SOURCE(38371, 766)
SOURCE(38371, 766)
   hitData←v16512 = 0;
SOURCE(38371, 766)
   moreHitDatas←v16540 = 0;
SOURCE(38528, 35)
   ipData←v23268 = XR←Narrow((* (( (ptr) slice←v16412)+1) ), (* (( (ptr) gf←c89916)+32) ));
SOURCE(38565, 71)
   {
      word pd331;
      pd331 = (* (( (ptr) (* (( (ptr) gf←c89916)+278)/* var←c83068 */  ))+39) );
      (void) ( *( (fPt) ((*  (ptr) pd331 ))))((word) &pointBox←v23296, (* (( (ptr) ipData←v23268)+6) ), point←v16440, pd331);
      };
SOURCE(38638, 36)
   box←v23324 = (*  (ptr) ipData←v23268 );
SOURCE(38700, 144)
   {
      word x332;
      word x333;
      word x334;
      word x335;
      word x336;
      word x337;
      word x338;
      word x339;
      if ((0 != (* (( (ptr) (*  (ptr) ipData←v23268 ))+5) ))) {
         success←v23352 =  (unsigned) 1;
         }
      else {
         if ( (  ( ((
            x332 = pointBox←v23296.f0,  *(float*)&x332
            ) >= (
            x333 = (*  (ptr) box←v23324 ),  *(float*)&x333
            )) ? ((
            x334 = pointBox←v23296.f0,  *(float*)&x334
            ) <= (
            x335 = (* (( (ptr) box←v23324)+2) ),  *(float*)&x335
            )) : 0 )  ? ((
            x336 = pointBox←v23296.f1,  *(float*)&x336
            ) >= (
            x337 = (* (( (ptr) box←v23324)+1) ),  *(float*)&x337
            )) : 0 ) ) {
            success←v23352 =  (unsigned) ((
               x338 = pointBox←v23296.f1,  *(float*)&x338
               ) <= (
               x339 = (* (( (ptr) box←v23324)+3) ),  *(float*)&x339
               ));
            }
         else {
            success←v23352 =  (unsigned) 0;
            };
         };
      };
SOURCE(38847, 290)
   if ((0 != success←v23352)) {
SOURCE(38863, 276)
      {
         word bestDist←v23396;
         word segNum←v23424;
         W2 bestPoint←v23452;
SOURCE(38913, 81)
         {
            W5 var←c87516;
            {
               word pd340;
               pd340 = (* (( (ptr) (* (( (ptr) gf←c89916)+284)/* var←c83420 */  ))+27) );
               (void) ( *( (fPt) ((*  (ptr) pd340 ))))((word) &var←c87516, box←v23324, pointBox←v23296, (*  (ptr) &fc341 ), (*  (W4Pt) (
                     ( (ptr) gf←c89916)+257)/* var←c82748 */  ), pd340);
               };
            success←v23352 = var←c87516.f4;
            bestPoint←v23452 = (*  (W2Pt) (( (ptr) &var←c87516)+2) );
            segNum←v23424 = var←c87516.f1;
            bestDist←v23396 = var←c87516.f0;
            };
SOURCE(38996, 62)
         {
            word pd342;
            pd342 = (* (( (ptr) (* (( (ptr) gf←c89916)+289)/* var←c83868 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd342 ))))((word) &bestPoint←v23452, (* (( (ptr) ipData←v23268)+5) ), bestPoint←v23452, pd342)
            ;
            };
SOURCE(39060, 77)
         {
            word var←c87548;
            var←c87548 = XR←NewObject(16, (* (( (ptr) gf←c89916)+19) ));
            (* (( (ptr) var←c87548)+1) ) = segNum←v23424;
            (*  (W2Pt) (( (ptr) var←c87548)+2) ) = bestPoint←v23452;
            hitData←v16512 = var←c87548;
            };
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0635 ) = hitData←v16512;
   (* (( (ptr) formal←c0635)+1) ) = moreHitDatas←v16540;
   return;
   }

static word PointIsInBox←P2880(test←v16708, box←v16736)
   W2 test←v16708;
   W6 box←v16736;
   {
   word var←c16780;
   /* PointIsInBox: */ 
SOURCE(39146, 170)
SOURCE(39146, 170)
   var←c16780 = 0;
SOURCE(39224, 92)
   {
      word tc343;
      word x344;
      word x345;
      word x346;
      word x347;
      word x348;
      word x349;
      word x350;
      word x351;
      if ( (  ( ((
         x344 = test←v16708.f0,  *(float*)&x344
         ) >= (
         x345 = box←v16736.f0,  *(float*)&x345
         )) ? ((
         x346 = test←v16708.f0,  *(float*)&x346
         ) <= (
         x347 = box←v16736.f2,  *(float*)&x347
         )) : 0 )  ? ((
         x348 = test←v16708.f1,  *(float*)&x348
         ) >= (
         x349 = box←v16736.f1,  *(float*)&x349
         )) : 0 ) ) {
         tc343 =  (word)  (unsigned) ((
            x350 = test←v16708.f1,  *(float*)&x350
            ) <= (
            x351 = box←v16736.f3,  *(float*)&x351
            ));
         }
      else {
         tc343 =  (word)  (unsigned) 0;
         };
      return(tc343);
      };
   }

static void MakeComplete←P2940(parts←v16840)
   word parts←v16840;
   {
   register ptr gf←c89948 =  (ptr) &globalframe;
   word ipParts←v23496;
   /* MakeComplete: */ 
SOURCE(39322, 155)
SOURCE(39366, 32)
   ipParts←v23496 = XR←Narrow(parts←v16840, (* (( (ptr) gf←c89948)+36) ));
SOURCE(39400, 26)
   XR←FillWords(&(* (W4Pt) (ipParts←v23496)), 4, 1);
SOURCE(39428, 25)
   XR←FillWords(&(* (W4Pt) ((( (ptr) ipParts←v23496)+4))), 4, 1);
SOURCE(39455, 22)
   (* (( (ptr) ipParts←v23496)+8) ) = 1;
   }

static word IsComplete←P3000(parts←v16900)
   word parts←v16900;
   {
   register ptr gf←c89980 =  (ptr) &globalframe;
   word var←c16944;
   word ipParts←v23540;
   /* IsComplete: */ 
SOURCE(39483, 199)
SOURCE(39483, 199)
   var←c16944 = 0;
SOURCE(39547, 32)
   ipParts←v23540 = XR←Narrow(parts←v16900, (* (( (ptr) gf←c89980)+36) ));
SOURCE(39581, 101)
   {
      word tc352;
      if ( (  ( (ipParts←v23540 != 0) ? XR←EqualWords(ipParts←v23540, (( (ptr) gf←c89980)+261)/* var←c82812 */ , 4) : 0 )  ? XR←EqualWords(
         (( (ptr) ipParts←v23540)+4), (( (ptr) gf←c89980)+265)/* var←c82876 */ , 4) : 0 ) ) {
         tc352 =  (word)  (unsigned) ((* (( (ptr) ipParts←v23540)+8) ) == 1);
         }
      else {
         tc352 =  (word)  (unsigned) 0;
         };
      return(tc352);
      };
   }

static word IsEmpty←P3060(parts←v17004)
   word parts←v17004;
   {
   register ptr gf←c90012 =  (ptr) &globalframe;
   word var←c17048;
   word ipParts←v23584;
   /* IsEmpty: */ 
SOURCE(39688, 202)
SOURCE(39688, 202)
   var←c17048 = 0;
SOURCE(39749, 32)
   ipParts←v23584 = XR←Narrow(parts←v17004, (* (( (ptr) gf←c90012)+36) ));
SOURCE(39783, 107)
   {
      word tc353;
      if ((ipParts←v23584 == 0)) {
         tc353 =  (word)  (unsigned) 1;
         }
      else {
         if ( ( (XR←EqualWords(ipParts←v23584, (( (ptr) gf←c90012)+269)/* var←c82940 */ , 4)) ? XR←EqualWords((( (ptr) ipParts←v23584)+4)
            , (( (ptr) gf←c90012)+273)/* var←c83004 */ , 4) : 0 ) ) {
            tc353 =  (word)  (unsigned) ((* (( (ptr) ipParts←v23584)+8) ) == 0);
            }
         else {
            tc353 =  (word)  (unsigned) 0;
            };
         };
      return(tc353);
      };
   }

static word NoOpIsEmptyParts←P3120(sliceD←v39628)
   word sliceD←v39628;
   {
   register ptr gf←c90044 =  (ptr) &globalframe;
   word var←c39672;
   /* NoOpIsEmptyParts: */ 
SOURCE(39896, 140)
SOURCE(39960, 62)
   {
      word var←c0649;
      var←c0649 = (* (( (ptr) gf←c90044)+64) );
      (void) (XR←RaiseSignal((* (( (ptr) gf←c90044)+4)/* Problem←v5296 */  ), 0, (word) &var←c0649));
      };
SOURCE(40024, 12)
   return(1);
   }

static word NoOpIsCompleteParts←P3180(sliceD←v39732)
   word sliceD←v39732;
   {
   register ptr gf←c90076 =  (ptr) &globalframe;
   word var←c39776;
   /* NoOpIsCompleteParts: */ 
SOURCE(40041, 147)
SOURCE(40111, 62)
   {
      word var←c0652;
      var←c0652 = (* (( (ptr) gf←c90076)+64) );
      (void) (XR←RaiseSignal((* (( (ptr) gf←c90076)+4)/* Problem←v5296 */  ), 0, (word) &var←c0652));
      };
SOURCE(40175, 13)
   return(0);
   }

static word NoOpNewParts←P3240(slice←v39836, hitData←v39864, mode←v39892)
   word slice←v39836;
   word hitData←v39864;
   word mode←v39892;
   {
   register ptr gf←c90108 =  (ptr) &globalframe;
   word sliceD←v39936;
   /* NoOpNewParts: */ 
SOURCE(40193, 118)
SOURCE(40193, 118)
   sliceD←v39936 = 0;
SOURCE(40249, 62)
   {
      word var←c0657;
      var←c0657 = (* (( (ptr) gf←c90108)+64) );
      (void) (XR←RaiseSignal((* (( (ptr) gf←c90108)+4)/* Problem←v5296 */  ), 0, (word) &var←c0657));
      };
SOURCE(40193, 118)
   return(sliceD←v39936);
   }

static word NoOpUnionParts←P3300(partsA←v39996, partsB←v40024)
   word partsA←v39996;
   word partsB←v40024;
   {
   register ptr gf←c90140 =  (ptr) &globalframe;
   word aPlusB←v40068;
   /* NoOpUnionParts: */ 
SOURCE(40316, 122)
SOURCE(40316, 122)
   aPlusB←v40068 = 0;
SOURCE(40376, 62)
   {
      word var←c0661;
      var←c0661 = (* (( (ptr) gf←c90140)+64) );
      (void) (XR←RaiseSignal((* (( (ptr) gf←c90140)+4)/* Problem←v5296 */  ), 0, (word) &var←c0661));
      };
SOURCE(40316, 122)
   return(aPlusB←v40068);
   }

static word NoOpDifferenceParts←P3360(partsA←v40128, partsB←v40156)
   word partsA←v40128;
   word partsB←v40156;
   {
   register ptr gf←c90172 =  (ptr) &globalframe;
   word aMinusB←v40200;
   /* NoOpDifferenceParts: */ 
SOURCE(40443, 132)
SOURCE(40443, 132)
   aMinusB←v40200 = 0;
SOURCE(40513, 62)
   {
      word var←c0665;
      var←c0665 = (* (( (ptr) gf←c90172)+64) );
      (void) (XR←RaiseSignal((* (( (ptr) gf←c90172)+4)/* Problem←v5296 */  ), 0, (word) &var←c0665));
      };
SOURCE(40443, 132)
   return(aMinusB←v40200);
   }

static void NoOpMovingParts←P3420(formal←c0675, slice←v40260, selectedParts←v40288, editConstraints←v40316, bezierDrag←v40344)
   word formal←c0675;
   word slice←v40260;
   word selectedParts←v40288;
   word editConstraints←v40316;
   W5 bezierDrag←v40344;
   {
   register ptr gf←c90204 =  (ptr) &globalframe;
   word background←v40388;
   word overlay←v40416;
   word rubber←v40444;
   word drag←v40472;
   /* NoOpMovingParts: */ 
SOURCE(40580, 124)
SOURCE(40580, 124)
   background←v40388 = 0;
SOURCE(40580, 124)
   overlay←v40416 = 0;
SOURCE(40580, 124)
   rubber←v40444 = 0;
SOURCE(40580, 124)
   drag←v40472 = 0;
SOURCE(40642, 62)
   {
      word var←c0674;
      var←c0674 = (* (( (ptr) gf←c90204)+64) );
      (void) (XR←RaiseSignal((* (( (ptr) gf←c90204)+4)/* Problem←v5296 */  ), 0, (word) &var←c0674));
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0675 ) = background←v40388;
   (* (( (ptr) formal←c0675)+1) ) = overlay←v40416;
   (* (( (ptr) formal←c0675)+2) ) = rubber←v40444;
   (* (( (ptr) formal←c0675)+3) ) = drag←v40472;
   return;
   }

static word NoOpAugmentParts←P3480(sliceD←v40532, selectClass←v40560)
   word sliceD←v40532;
   word selectClass←v40560;
   {
   register ptr gf←c90236 =  (ptr) &globalframe;
   word more←v40604;
   /* NoOpAugmentParts: */ 
SOURCE(40709, 126)
SOURCE(40709, 126)
   more←v40604 = 0;
SOURCE(40773, 62)
   {
      word var←c0679;
      var←c0679 = (* (( (ptr) gf←c90236)+64) );
      (void) (XR←RaiseSignal((* (( (ptr) gf←c90236)+4)/* Problem←v5296 */  ), 0, (word) &var←c0679));
      };
SOURCE(40709, 126)
   return(more←v40604);
   }

static word NoOpAlterParts←P3540(sliceD←v40664, action←v40692)
   word sliceD←v40664;
   word action←v40692;
   {
   word alteredD←v40736;
   /* NoOpAlterParts: */ 
SOURCE(40840, 71)
SOURCE(40840, 71)
   alteredD←v40736 = 0;
SOURCE(40900, 11)
   return(0);
   }

static void NoOpSetSelectedFields←P3600(sliceD←v40796, selected←v40824, selectClass←v40852)
   word sliceD←v40796;
   word selected←v40824;
   word selectClass←v40852;
   {
   /* NoOpSetSelectedFields: */ 
   }

static word NoOpPointsInDescriptor←P3660(sliceD←v40912)
   word sliceD←v40912;
   {
   word pointGen←v40956;
   /* NoOpPointsInDescriptor: */ 
SOURCE(40993, 90)
SOURCE(40993, 90)
   pointGen←v40956 = 0;
SOURCE(41069, 14)
   pointGen←v40956 = 0;
SOURCE(40993, 90)
   return(pointGen←v40956);
   }

static word NoOpPointPairsInDescriptor←P3720(sliceD←v41016)
   word sliceD←v41016;
   {
   word pointPairGen←v41060;
   /* NoOpPointPairsInDescriptor: */ 
SOURCE(41088, 102)
SOURCE(41088, 102)
   pointPairGen←v41060 = 0;
SOURCE(41172, 18)
   pointPairGen←v41060 = 0;
SOURCE(41088, 102)
   return(pointPairGen←v41060);
   }

static word NoOpSegmentsInDescriptor←P3780(sliceD←v41120)
   word sliceD←v41120;
   {
   word segGen←v41164;
   /* NoOpSegmentsInDescriptor: */ 
SOURCE(41195, 92)
SOURCE(41195, 92)
   segGen←v41164 = 0;
SOURCE(41275, 12)
   segGen←v41164 = 0;
SOURCE(41195, 92)
   return(segGen←v41164);
   }

static word NoOpWalkSegments←P3840(slice←v41224, walkProc←v41252)
   word slice←v41224;
   word walkProc←v41252;
   {
   register ptr gf←c90268 =  (ptr) &globalframe;
   word sliceD←v41296;
   /* NoOpWalkSegments: */ 
SOURCE(41292, 110)
SOURCE(41292, 110)
   sliceD←v41296 = 0;
SOURCE(41356, 46)
   {
      word pd354;
      pd354 = (* (( (ptr) (* (( (ptr) gf←c90268)+292)/* var←c84732 */  ))+29) );
      sliceD←v41296 = (word) ( *( (fPt) ((*  (ptr) pd354 ))))(slice←v41224, 0, 8, pd354);
      };
SOURCE(41292, 110)
   return(sliceD←v41296);
   }

static void NoOpNextPoint←P3900(formal←c0698, slice←v41356, pointGen←v41384)
   word formal←c0698;
   word slice←v41356;
   word pointGen←v41384;
   {
   W3 pointAndDone←v41428;
   /* NoOpNextPoint: */ 
SOURCE(41407, 82)
SOURCE(41465, 24)
   pointAndDone←v41428.f2 = 1;
   /* removed tail goto */ 
   (*  (W3Pt) formal←c0698 ) = pointAndDone←v41428;
   return;
   }

static void NoOpNextPointPair←P3960(formal←c0702, slice←v41488, pointPairGen←v41516)
   word formal←c0702;
   word slice←v41488;
   word pointPairGen←v41516;
   {
   W5 pointPairAndDone←v41560;
   /* NoOpNextPointPair: */ 
SOURCE(41494, 94)
SOURCE(41560, 28)
   pointPairAndDone←v41560.f4 = 1;
   /* removed tail goto */ 
   (*  (W5Pt) formal←c0702 ) = pointPairAndDone←v41560;
   return;
   }

static void NoOpNextSegment←P4020(formal←c0707, slice←v41620, segGen←v41648)
   word formal←c0707;
   word slice←v41620;
   word segGen←v41648;
   {
   word seg←v41692;
   word transform←v41720;
   /* NoOpNextSegment: */ 
SOURCE(41593, 71)
SOURCE(41593, 71)
   seg←v41692 = 0;
SOURCE(41593, 71)
   transform←v41720 = 0;
SOURCE(41655, 9)
   seg←v41692 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0707 ) = seg←v41692;
   (* (( (ptr) formal←c0707)+1) ) = transform←v41720;
   return;
   }

static void NoOpClosestPoint←P4080(formal←c0717, sliceD←v41780, testPoint←v41808, tolerance←v41836)
   word formal←c0717;
   word sliceD←v41780;
   W2 testPoint←v41808;
   word tolerance←v41836;
   {
   register ptr gf←c90300 =  (ptr) &globalframe;
   W2 bestPoint←v41880;
   word bestDist←v41908;
   W2 bestNormal←v41936;
   word hitData←v41964;
   word success←v41992;
   /* NoOpClosestPoint: */ 
SOURCE(41669, 125)
SOURCE(41669, 125)
   hitData←v41964 = 0;
SOURCE(41733, 61)
   {
      word var←c0716;
      var←c0716 = (* (( (ptr) gf←c90300)+64) );
      (void) XR←RaiseError((* (( (ptr) gf←c90300)+4)/* Problem←v5296 */  ), (word) &var←c0716);
      };
   }

static void NoOpClosestJointToHitData←P4140(formal←c0727, sliceD←v42052, mapPoint←v42080, testPoint←v42108, hitData←v42136)
   word formal←c0727;
   word sliceD←v42052;
   W2 mapPoint←v42080;
   W2 testPoint←v42108;
   word hitData←v42136;
   {
   register ptr gf←c90332 =  (ptr) &globalframe;
   word jointD←v42180;
   W2 point←v42208;
   W2 normal←v42236;
   /* NoOpClosestJointToHitData: */ 
SOURCE(41799, 200)
SOURCE(41799, 200)
   jointD←v42180 = 0;
SOURCE(41881, 101)
   {
      W7 var←c87580;
      {
         word pd355;
         pd355 = (* (( (ptr) (* (( (ptr) gf←c90332)+292)/* var←c84732 */  ))+44) );
         (void) ( *( (fPt) ((*  (ptr) pd355 ))))((word) &var←c87580, sliceD←v42052, mapPoint←v42080, (*  (ptr) &fc266 ), pd355);
         };
      normal←v42236 = (*  (W2Pt) (( (ptr) &var←c87580)+3) );
      point←v42208 = (*  (W2Pt) &var←c87580 );
      };
SOURCE(41984, 15)
   jointD←v42180 = sliceD←v42052;
   /* removed tail goto */ 
   (*  (ptr) formal←c0727 ) = jointD←v42180;
   (*  (W2Pt) (( (ptr) formal←c0727)+1) ) = point←v42208;
   (*  (W2Pt) (( (ptr) formal←c0727)+3) ) = normal←v42236;
   return;
   }

static void NoOpClosestPointAndTangent←P4200(formal←c0736, sliceD←v42296, testPoint←v42324, tolerance←v42352)
   word formal←c0736;
   word sliceD←v42296;
   W2 testPoint←v42324;
   word tolerance←v42352;
   {
   W2 bestPoint←v42396;
   word bestDist←v42424;
   W2 tangent←v42452;
   word hitData←v42480;
   word success←v42508;
   /* NoOpClosestPointAndTangent: */ 
SOURCE(42004, 176)
SOURCE(42004, 176)
   hitData←v42480 = 0;
SOURCE(42088, 15)
   success←v42508 = 0;
SOURCE(42105, 20)
   tangent←v42452.f0 = (*  (ptr) &fc92 );
   tangent←v42452.f1 = (*  (ptr) &fc103 );
SOURCE(42127, 29)
   bestDist←v42424 = 2139095039;
SOURCE(42158, 22)
   bestPoint←v42396.f0 = (*  (ptr) &fc103 );
   bestPoint←v42396.f1 = (*  (ptr) &fc103 );
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0736 ) = bestPoint←v42396;
   (* (( (ptr) formal←c0736)+2) ) = bestDist←v42424;
   (*  (W2Pt) (( (ptr) formal←c0736)+3) ) = tangent←v42452;
   (* (( (ptr) formal←c0736)+5) ) = hitData←v42480;
   (* (( (ptr) formal←c0736)+6) ) = success←v42508;
   return;
   }

static void NoOpClosestSegment←P4260(formal←c0746, sliceD←v42568, testPoint←v42596, tolerance←v42624)
   word formal←c0746;
   word sliceD←v42568;
   W2 testPoint←v42596;
   word tolerance←v42624;
   {
   register ptr gf←c90364 =  (ptr) &globalframe;
   W2 bestPoint←v42668;
   word bestDist←v42696;
   W2 bestNormal←v42724;
   word hitData←v42752;
   word success←v42780;
   /* NoOpClosestSegment: */ 
SOURCE(42185, 129)
SOURCE(42185, 129)
   hitData←v42752 = 0;
SOURCE(42253, 61)
   {
      word var←c0745;
      var←c0745 = (* (( (ptr) gf←c90364)+64) );
      (void) XR←RaiseError((* (( (ptr) gf←c90364)+4)/* Problem←v5296 */  ), (word) &var←c0745);
      };
   }

static void NoOpFilledPathsUnderPoint←P4320(formal←c0752, slice←v42840, point←v42868, tolerance←v42896)
   word formal←c0752;
   word slice←v42840;
   W2 point←v42868;
   word tolerance←v42896;
   {
   word hitData←v42940;
   word moreHitDatas←v42968;
   /* NoOpFilledPathsUnderPoint: */ 
SOURCE(42319, 115)
SOURCE(42319, 115)
   hitData←v42940 = 0;
SOURCE(42319, 115)
   moreHitDatas←v42968 = 0;
SOURCE(42401, 13)
   hitData←v42940 = 0;
SOURCE(42416, 18)
   moreHitDatas←v42968 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0752 ) = hitData←v42940;
   (* (( (ptr) formal←c0752)+1) ) = moreHitDatas←v42968;
   return;
   }

static void NoOpLineIntersection←P4380(formal←c0757, sliceD←v43028, line←v43056)
   word formal←c0757;
   word sliceD←v43028;
   word line←v43056;
   {
   word points←v43100;
   word pointCount←v43128;
   /* NoOpLineIntersection: */ 
SOURCE(42439, 100)
SOURCE(42439, 100)
   points←v43100 = 0;
SOURCE(42511, 12)
   points←v43100 = 0;
SOURCE(42525, 14)
   pointCount←v43128 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0757 ) = points←v43100;
   (* (( (ptr) formal←c0757)+1) ) = pointCount←v43128;
   return;
   }

static void NoOpCircleIntersection←P4440(formal←c0762, sliceD←v43188, circle←v43216)
   word formal←c0762;
   word sliceD←v43188;
   word circle←v43216;
   {
   word points←v43260;
   word pointCount←v43288;
   /* NoOpCircleIntersection: */ 
SOURCE(42544, 104)
SOURCE(42544, 104)
   points←v43260 = 0;
SOURCE(42620, 12)
   points←v43260 = 0;
SOURCE(42634, 14)
   pointCount←v43288 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0762 ) = points←v43260;
   (* (( (ptr) formal←c0762)+1) ) = pointCount←v43288;
   return;
   }

static word NoOpHitDataAsSimpleCurve←P4500(slice←v43348, hitData←v43376)
   word slice←v43348;
   word hitData←v43376;
   {
   word simpleCurve←v43420;
   /* NoOpHitDataAsSimpleCurve: */ 
SOURCE(42653, 97)
SOURCE(42653, 97)
   simpleCurve←v43420 = 0;
SOURCE(42733, 17)
   simpleCurve←v43420 = 0;
SOURCE(42653, 97)
   return(simpleCurve←v43420);
   }

static void NoOpSetDefaults←P4560(slice←v43480, parts←v43508, defaults←v43536, history←v43564)
   word slice←v43480;
   word parts←v43508;
   word defaults←v43536;
   word history←v43564;
   {
   /* NoOpSetDefaults: */ 
   }

static word NoOpSetStrokeWidth←P4620(slice←v43624, parts←v43652, strokeWidth←v43680, history←v43708)
   word slice←v43624;
   word parts←v43652;
   word strokeWidth←v43680;
   word history←v43708;
   {
   word box←v43752;
   /* NoOpSetStrokeWidth: */ 
SOURCE(42820, 66)
SOURCE(42820, 66)
   box←v43752 = 0;
SOURCE(42820, 66)
   return(box←v43752);
   }

static void NoOpGetStrokeWidth←P4680(formal←c0779, slice←v43812, parts←v43840)
   word formal←c0779;
   word slice←v43812;
   word parts←v43840;
   {
   word strokeWidth←v43884;
   word isUnique←v43912;
   /* NoOpGetStrokeWidth: */ 
SOURCE(42891, 66)
SOURCE(42891, 66)
   strokeWidth←v43884 = (*  (ptr) &fc103 );
SOURCE(42891, 66)
   isUnique←v43912 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c0779 ) = strokeWidth←v43884;
   (* (( (ptr) formal←c0779)+1) ) = isUnique←v43912;
   return;
   }

static void NoOpSetStrokeEnd←P4740(slice←v43972, parts←v44000, strokeEnd←v44028, history←v44056)
   word slice←v43972;
   word parts←v44000;
   word strokeEnd←v44028;
   word history←v44056;
   {
   /* NoOpSetStrokeEnd: */ 
   }

static void NoOpGetStrokeEnd←P4800(formal←c0788, slice←v44116, parts←v44144)
   word formal←c0788;
   word slice←v44116;
   word parts←v44144;
   {
   word strokeEnd←v44188;
   word isUnique←v44216;
   /* NoOpGetStrokeEnd: */ 
SOURCE(43029, 62)
SOURCE(43029, 62)
   strokeEnd←v44188 = 2;
SOURCE(43029, 62)
   isUnique←v44216 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c0788 ) = strokeEnd←v44188;
   (* (( (ptr) formal←c0788)+1) ) = isUnique←v44216;
   return;
   }

static void NoOpSetStrokeJoint←P4860(slice←v44276, parts←v44304, strokeJoint←v44332, history←v44360)
   word slice←v44276;
   word parts←v44304;
   word strokeJoint←v44332;
   word history←v44360;
   {
   /* NoOpSetStrokeJoint: */ 
   }

static void NoOpGetStrokeJoint←P4920(formal←c0797, slice←v44420, parts←v44448)
   word formal←c0797;
   word slice←v44420;
   word parts←v44448;
   {
   word strokeJoint←v44492;
   word isUnique←v44520;
   /* NoOpGetStrokeJoint: */ 
SOURCE(43167, 66)
SOURCE(43167, 66)
   strokeJoint←v44492 = 2;
SOURCE(43167, 66)
   isUnique←v44520 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c0797 ) = strokeJoint←v44492;
   (* (( (ptr) formal←c0797)+1) ) = isUnique←v44520;
   return;
   }

static void NoOpSetStrokeColor←P4980(slice←v44580, parts←v44608, color←v44636, setHow←v44664, history←v44692)
   word slice←v44580;
   word parts←v44608;
   word color←v44636;
   word setHow←v44664;
   word history←v44692;
   {
   /* NoOpSetStrokeColor: */ 
   }

static void NoOpGetStrokeColor←P5040(formal←c0807, slice←v44752, parts←v44780)
   word formal←c0807;
   word slice←v44752;
   word parts←v44780;
   {
   word color←v44824;
   word isUnique←v44852;
   /* NoOpGetStrokeColor: */ 
SOURCE(43309, 66)
SOURCE(43309, 66)
   color←v44824 = 0;
SOURCE(43309, 66)
   isUnique←v44852 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c0807 ) = color←v44824;
   (* (( (ptr) formal←c0807)+1) ) = isUnique←v44852;
   return;
   }

static void NoOpSetFillColor←P5100(slice←v44912, parts←v44940, color←v44968, setHow←v44996, history←v45024)
   word slice←v44912;
   word parts←v44940;
   word color←v44968;
   word setHow←v44996;
   word history←v45024;
   {
   /* NoOpSetFillColor: */ 
   }

static void NoOpGetFillColor←P5160(formal←c0817, slice←v45084, parts←v45112)
   word formal←c0817;
   word slice←v45084;
   word parts←v45112;
   {
   word color←v45156;
   word isUnique←v45184;
   /* NoOpGetFillColor: */ 
SOURCE(43447, 75)
SOURCE(43447, 75)
   color←v45156 = 0;
SOURCE(43447, 75)
   isUnique←v45184 = 1;
SOURCE(43511, 11)
   color←v45156 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0817 ) = color←v45156;
   (* (( (ptr) formal←c0817)+1) ) = isUnique←v45184;
   return;
   }

static void NoOpSetArrows←P5220(slice←v45244, parts←v45272, leftDown←v45300, rightUp←v45328, history←v45356)
   word slice←v45244;
   word parts←v45272;
   word leftDown←v45300;
   word rightUp←v45328;
   word history←v45356;
   {
   /* NoOpSetArrows: */ 
   }

static void NoOpGetArrows←P5280(formal←c0826, slice←v45416)
   word formal←c0826;
   word slice←v45416;
   {
   word leftDown←v45460;
   word rightUp←v45488;
   /* NoOpGetArrows: */ 
SOURCE(43588, 56)
SOURCE(43588, 56)
   leftDown←v45460 = 0;
SOURCE(43588, 56)
   rightUp←v45488 = 0;
   /* removed tail goto */ 
   (*  (ptr) formal←c0826 ) = leftDown←v45460;
   (* (( (ptr) formal←c0826)+1) ) = rightUp←v45488;
   return;
   }

static void NoOpSetDashed←P5340(slice←v45548, parts←v45576, dashed←v45604, pattern←v45632, offset←v45660, length←v45688, history←v45716)
   word slice←v45548;
   word parts←v45576;
   word dashed←v45604;
   word pattern←v45632;
   word offset←v45660;
   word length←v45688;
   word history←v45716;
   {
   /* NoOpSetDashed: */ 
   }

static void NoOpGetDashed←P5400(formal←c0841, slice←v45776, parts←v45804)
   word formal←c0841;
   word slice←v45776;
   word parts←v45804;
   {
   word dashed←v45848;
   word pattern←v45876;
   word offset←v45904;
   word length←v45932;
   word isUnique←v45960;
   /* NoOpGetDashed: */ 
SOURCE(43710, 56)
SOURCE(43710, 56)
   dashed←v45848 = 0;
SOURCE(43710, 56)
   pattern←v45876 = 0;
SOURCE(43710, 56)
   offset←v45904 = (*  (ptr) &fc103 );
SOURCE(43710, 56)
   length←v45932 = (*  (ptr) &fc103 );
SOURCE(43710, 56)
   isUnique←v45960 = 1;
   /* removed tail goto */ 
   (*  (ptr) formal←c0841 ) = dashed←v45848;
   (* (( (ptr) formal←c0841)+1) ) = pattern←v45876;
   (* (( (ptr) formal←c0841)+2) ) = offset←v45904;
   (* (( (ptr) formal←c0841)+3) ) = length←v45932;
   (* (( (ptr) formal←c0841)+4) ) = isUnique←v45960;
   return;
   }

static void GetMaster←P5460(formal←c0852, fullName←v17108, router←v17136)
   word formal←c0852;
   word fullName←v17108;
   word router←v17136;
   {
   register ptr gf←c90396 =  (ptr) &globalframe;
   word ipMaster←v17180;
   word success←v17208;
   word val←v23628 = 0;
   /* GetMaster: */ 
SOURCE(43772, 405)
SOURCE(43772, 405)
   ipMaster←v17180 = 0;
SOURCE(43772, 405)
   success←v17208 = 0;
SOURCE(43922, 53)
   {
      W2 var←c87644;
      {
         word pd356;
         pd356 = (* (( (ptr) (* (( (ptr) gf←c90396)+305)/* var←c87612 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd356 ))))((word) &var←c87644, (* (( (ptr) gf←c90396)+10)/* masterTable←v8488 */  ), fullName←v17108, pd356)
         ;
         };
      val←v23628 = var←c87644.f1;
      success←v17208 = var←c87644.f0;
      };
SOURCE(43977, 200)
   if ((0 != success←v17208)) {
SOURCE(43993, 28)
      ipMaster←v17180 = XR←Narrow(val←v23628, (* (( (ptr) gf←c90396)+13) ));
      }
   else {
SOURCE(44023, 85)
      {
         W2 var←c87708;
         {
            word pd357;
            pd357 = (* (( (ptr) (* (( (ptr) gf←c90396)+306)/* var←c87676 */  ))+10) );
            (void) ( *( (fPt) ((*  (ptr) pd357 ))))((word) &var←c87708, (* (( (ptr) gf←c90396)+66) ), router←v17136, fullName←v17108, pd357)
            ;
            };
         success←v17208 = var←c87708.f1;
         ipMaster←v17180 = var←c87708.f0;
         };
SOURCE(44110, 67)
      if ((0 != success←v17208)) {
SOURCE(44126, 51)
         {
            word var←c87740;
            word pd358;
            pd358 = (* (( (ptr) (* (( (ptr) gf←c90396)+305)/* var←c87612 */  ))+11) );
            var←c87740 = (word) ( *( (fPt) ((*  (ptr) pd358 ))))((* (( (ptr) gf←c90396)+10)/* masterTable←v8488 */  ), fullName←v17108, ipMaster←v17180, pd358)
            ;
            };
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c0852 ) = ipMaster←v17180;
   (* (( (ptr) formal←c0852)+1) ) = success←v17208;
   return;
   }

static void Init←P5520()
   {
   register ptr gf←c90428 =  (ptr) &globalframe;
   /* Init: */ 
SOURCE(44186, 126)
SOURCE(44204, 30)
   {
      word pd359;
      pd359 = (* (( (ptr) (* (( (ptr) gf←c90428)+280)/* var←c83292 */  ))+5) );
      (* (( (ptr) gf←c90428)+9)/* contextTable←v8460 */  ) = (word) ( *( (fPt) ((*  (ptr) pd359 ))))(17, 0, 0, pd359);
      };
SOURCE(44236, 29)
   {
      word pd360;
      pd360 = (* (( (ptr) (* (( (ptr) gf←c90428)+305)/* var←c87612 */  ))+5) );
      (* (( (ptr) gf←c90428)+10)/* masterTable←v8488 */  ) = (word) ( *( (fPt) ((*  (ptr) pd360 ))))(17, 1, pd360);
      };
SOURCE(44267, 45)
   {
      word pd361;
      pd361 = (* (( (ptr) (* (( (ptr) gf←c90428)+294)/* var←c84892 */  ))+4) );
      (* (( (ptr) gf←c90428)+8)/* cache←v8432 */  ) = (word) ( *( (fPt) ((*  (ptr) pd361 ))))(100, 2147483647, pd361);
      };
   }

static void NoName←Q7812(formal←c0858, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0858;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   register ptr gf←c0969 =  (ptr) &globalframe;
   if ((formal←c200017 == (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c0969)+303)/* var←c86108 */  ))+4) ) ))) {
      {
         W4 error←v74328;
         error←v74328 = (*  (W4Pt) formal←c200019 );
SOURCE(25620, 8)
         (*  (ptr) formal←c0858 ) = 2;
         (* (( (ptr) formal←c0858)+1) ) = 3;
         return;
         };
      };
   (*  (ptr) formal←c0858 ) = 0;
   (* (( (ptr) formal←c0858)+1) ) = 0;
   return;
   }

static void NoName←Q7872(formal←c0868, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0868;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0970 =  (ptr) &globalframe;
   if ((formal←c200013 == (* (( (ptr) (* (( (ptr) gf←c0970)+296)/* var←c85148 */  ))+5) ))) {
      {
         W3 error←v67476;
         error←v67476 = (*  (W3Pt) formal←c200015 );
SOURCE(20175, 179)
         {
            word var←c85180;
            word var←c85212;
            {
               word pd362;
               pd362 = (* (( (ptr) (* (( (ptr) gf←c0970)+277)/* var←c83036 */  ))+10) );
               var←c85180 = (word) ( *( (fPt) ((*  (ptr) pd362 ))))((* ((( (ptr) gf←c0970)+40)) ), pd362);
               };
            {
               word var←c85244;
               word var←c85276;
               var←c85244 = XR←NewObject(12, (* (( (ptr) gf←c0970)+29) ));
               var←c85276 = var←c85244;
               (*  (ptr) var←c85276 ) = 1;
               {
                  word pd363;
                  pd363 = (* (( (ptr) (* (( (ptr) gf←c0970)+296)/* var←c85148 */  ))+6) );
                  (* (( (ptr) var←c85276)+1) ) = (word) ( *( (fPt) ((*  (ptr) pd363 ))))(error←v67476.f0, pd363);
                  };
               (* (( (ptr) var←c85276)+2) ) = XR←NewObject(12, (* (( (ptr) gf←c0970)+29) ));
               var←c85276 = (* (( (ptr) var←c85276)+2) );
               (*  (ptr) var←c85276 ) = 11;
               (* (( (ptr) var←c85276)+1) ) = error←v67476.f1;
               var←c85212 = var←c85244;
               };
            {
               word pd364;
               pd364 = (* (( (ptr) (* (( (ptr) gf←c0970)+277)/* var←c83036 */  ))+13) );
               (void) ( *( (fPt) ((*  (ptr) pd364 ))))(var←c85180, 0, (* (( (ptr) gf←c0970)+42) ), (* (( (ptr) gf←c0970)+41) ), var←c85212, pd364)
               ;
               };
            };
SOURCE(20356, 6)
         (*  (ptr) formal←c0868 ) = 1;
         (* (( (ptr) formal←c0868)+1) ) = 0;
         return;
         };
      };
   (*  (ptr) formal←c0868 ) = 0;
   (* (( (ptr) formal←c0868)+1) ) = 0;
   return;
   }

static void NoName←Q7932(formal←c0874, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0874;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0971 =  (ptr) &globalframe;
   if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0971)+285)/* var←c83516 */  ))+5) ))) {
      {
         word why←v67276;
         why←v67276 = (*  (ptr) formal←c200011 );
SOURCE(19521, 15)
         (* (( (ptr) formal←c200008)+6) ) = 0;
SOURCE(19538, 8)
         (*  (ptr) formal←c0874 ) = 2;
         (* (( (ptr) formal←c0874)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0874 ) = 0;
   (* (( (ptr) formal←c0874)+1) ) = 0;
   return;
   }

static void NoName←Q7992(formal←c0882, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0882;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0972 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0972)+287)/* var←c83708 */  ))+4) ))) {
      {
         word context←v61256;
         word code←v61284;
         word message←v61312;
         context←v61256 = (*  (ptr) formal←c200007 );
         code←v61284 = (* (( (ptr) formal←c200007)+1) );
         message←v61312 = (* (( (ptr) formal←c200007)+2) );
SOURCE(9487, 52)
         {
            word pd365;
            pd365 = (* (( (ptr) (* (( (ptr) gf←c0972)+277)/* var←c83036 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd365 ))))((* (( (ptr) formal←c200004)+6) ), 0, (* (( (ptr) gf←c0972)+42) ), message←v61312, pd365)
            ;
            };
SOURCE(9541, 6)
         (*  (ptr) formal←c0882 ) = 1;
         (* (( (ptr) formal←c0882)+1) ) = 0;
         return;
         };
      };
   (*  (ptr) formal←c0882 ) = 0;
   (* (( (ptr) formal←c0882)+1) ) = 0;
   return;
   }

static void NoName←Q8052(formal←c0888, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0888;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0973 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0973)+285)/* var←c83516 */  ))+5) ))) {
      {
         word why←v59828;
         why←v59828 = (*  (ptr) formal←c200003 );
SOURCE(8999, 7)
         (*  (ptr) formal←c0888 ) = 1;
         (* (( (ptr) formal←c0888)+1) ) = 0;
         return;
         };
      };
   (*  (ptr) formal←c0888 ) = 0;
   (* (( (ptr) formal←c0888)+1) ) = 0;
   return;
   }

/* file: GGSliceImplF, module: GGSliceImplF, compiled at: July 11, 1993 8:11:05 pm PDT */ 
extern void XR←install←GGSliceImplF() {
   XR←FillWords(&dummy278, 2, 0);
   NoName←Q7452();
   }
extern void XR←run←GGSliceImplF() { XR←Start(&globalframe); }