/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: July 28, 1993 10:15:14 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: ImagerColorImpl, module: ImagerColorImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4137215315,3216195333] ImagerColorImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2;} W3;
typedef W2 *W2Pt;
typedef struct {W8 f; W2 r;} W10;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W3 *W3Pt;
typedef struct {word f0, f1, f2, f3;} W4;
#define SOURCE(p, l) /* source p, l */
static float fc95 = 0.0;
static float fc106 = 0.253;
static float fc107 = 0.684;
static float fc108 = 0.063;
static float fc109 = 0.500;
static float fc110 = -0.500;
static float fc111 = 0.000;
static float fc112 = 0.250;
static float fc115 = 1000.0;
static float fc116 = 2000.0;
static float fc118 = 2.944;
static float fc119 = -1.461;
static float fc120 = -0.457;
static float fc121 = -1.095;
static float fc122 = 2.026;
static float fc123 = 0.036;
static float fc124 = 0.078;
static float fc125 = -0.272;
static float fc126 = 1.452;
static float fc127 = 500.0;
static float fc128 = 10.0;
static float fc133 = 1.0;
static float fc136 = 100.0;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc239 = 0.08;
static float fc242 = 9.033;
static float fc246 = 0.16;
static float fc248 = 1.16;
static float fc251 = 3.0;
static float fc361 = 6.0;
#define FMIN(x, y, tx, ty)  ( (tx=((float) x)) <= (ty=((float) y)) ? tx : ty )
#define FMAX(x, y, tx, ty)  ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
static float fc422 = 2.0;
static float fc429 = 4.0;
static float fc588 = 0.008856;
static float fc593 = 7.787;
static float fc596 = 16.0;
static float fc598 = 116.0;
static float fc602 = 0.2068929;
static float fc626 = 0.964;
static float fc631 = 200.0;
static float fc635 = 0.824;
static float fc760 = 0.9;
static float fc763 = 0.05;
static float fc766 = 0.95;
static float fc791 = 255.0;
static void NoName←Q11340();
static void ImagerColorImpl←P0();
static word Find←P60();
static word SampleFromReal←P300();
static word SampleEncodingFetch←P360();
static word MakePE←P420();
static word GetSE←P480();
static word CreateColorOperatorGrayLinear←P540();
static word sampleTable←P6948();
static word GetCreateDataGrayLinear←P600();
static void GenerateElements←P7008();
static word GetPixelEncodingGrayLinear←P660();
static void ApplyGrayLinear←P720();
static word DataEqualGrayLinear←P780();
static word NewColorOperatorGrayLinear←P840();
static word ColorFromGray←P900();
static word CreateColorOperatorGrayDensity←P960();
static word sampleTable←P7068();
static word GetCreateDataGrayDensity←P1020();
static void GenerateElements←P7128();
static word GetPixelEncodingGrayDensity←P1080();
static void ApplyGrayDensity←P1140();
static word DataEqualGrayDensity←P1200();
static word NewColorOperatorGrayDensity←P1260();
static word CreateColorOperatorGrayVisual←P1320();
static word sampleTable←P7188();
static word GetCreateDataGrayVisual←P1380();
static void GenerateElements←P7248();
static word GetPixelEncodingGrayVisual←P1440();
static void ApplyGrayVisual←P1500();
static word DataEqualGrayVisual←P1560();
static word NewColorOperatorGrayVisual←P1620();
static word CreateColorOperatorMap←P1680();
static word map←P7308();
static word GetCreateDataMap←P1740();
static word GetIdentityPixelEncoding←P1800();
static void ApplyMap←P1860();
static word DataEqualMap←P1920();
static word DataMapSize←P1980();
static void DataMapGet←P2040();
static word StructureFromDataMap←P2100();
static word NewColorOperatorMap←P2160();
static word ClassBuildMap←P2220();
static void Action←P7560();
static word CreateColorOperatorBuildMap←P2280();
static word map←P7620();
static word GetCreateDataBuildMap←P2340();
static void MapElements←P7680();
static void GenerateElements←P7740();
static void ApplyBuildMap←P2400();
static word PixelMapped←P7848();
static word DataEqualBuildMap←P2460();
static word NewColorOperatorBuildMap←P2520();
static word CreateColorOperatorRGB←P2580();
static word GetCreateDataRGB←P2640();
static void GenerateElements←P7956();
static word GetPixelEncodingRGB←P2700();
static void ApplyRGB←P2760();
static word DataEqualRGB←P2820();
static word NewColorOperatorRGB←P2880();
static word ColorFromRGB←P2940();
static word InitSolidColors←P3000();
static word Def←P8112();
static word ColorFromHSV←P3060();
static void HSVFromColor←P3120();
static word ToRange←P3180();
static void RGBFromHSV←P3240();
static void HSVFromRGB←P3300();
static word CreateColorOperatorOldRGB←P3360();
static word CreateColorOperatorWithRenderingHints←P3420();
static word NewRenderingHints←P3480();
static word Det3←P3540();
static word Cofactor3←P3600();
static word Invert3←P3660();
static word Mul3←P3720();
static void Apply3←P3780();
static void Apply3Out←P3840();
static word ColorFromYES←P3900();
static void YESFromColor←P3960();
static word CreateColorOperatorYES←P4020();
static word GetPixelEncodingYES←P4080();
static void ApplyYES←P4140();
static word GetCreateDataYES←P4200();
static void GenerateElements←P8892();
static word DataEqualYES←P4260();
static word NewColorOperatorYES←P4320();
static word ColorFromCIELAB←P4380();
static word F←P4440();
static word G←P4500();
static void CIELABFromColor←P4560();
static word CreateColorOperatorCIELAB←P4620();
static word GetPixelEncodingCIELAB←P4680();
static void ApplyCIELAB←P4740();
static word NewColorOperatorCIELAB←P4800();
static word ExtraColorFromHighlight←P4860();
static word ColorFromHighlight←P4920();
static void HighlightFromColor←P4980();
static word NarrowToConstantColor←P5040();
static word CreateColorOperatorHighlight←P5100();
static word GetPixelEncodingHighlight←P5160();
static void ApplyHighlight←P5220();
static word GetCreateDataHighlight←P5280();
static void GenerateElements←P9456();
static word DataEqualHighlight←P5340();
static word ExtraNewColorOperatorHighlight←P5400();
static word NewColorOperatorHighlight←P5460();
static word SignalTypeFromSignalTypeName←P5520();
static word SignalTypeNameFromSignalType←P5580();
static word GetProcessArgIndices←P5640();
static word CreateColorOperatorProcess←P5700();
static word SignalNames←P9660();
static word GetCreateDataProcess←P5760();
static void GenerateSignalNameElements←P9720();
static void GenerateElements←P9780();
static word GetPixelEncodingProcess←P5820();
static void ApplyProcess←P5880();
static void DoApplyProcess←P5940();
static word DataEqualProcess←P6000();
static word EqualSignalNames←P6060();
static word CMYKSignalNames←P6120();
static word EnlistSignalNames←P6180();
static word NewColorOperatorProcess←P6240();
static word NewColorOperatorCMYK←P6300();
static word ColorFromCMYK←P6360();
static word NarrowToOpConstantColor←P6420();
static word ColorFromPixel←P6480();
static word MakeSampledBlack←P6540();
static word MakeSampledColor←P6600();
static void RGBFromColor←P6660();
static word IntensityFromStipple←P6720();
static word ColorFromStipple←P6780();
static word Define←P6840();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\207\164\301\163\300\327\135\041\305\105\234\000\000"};
static struct {unsigned f; char r[4];} string2 = {196611, "\004@A"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\207\164\301\163\300\327\135\041\305\100\340\000\000"};
static struct {unsigned f; char r[16];} string4 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string5 = {65537, "\001\000\000"};
static struct {unsigned f; char r[44];} string6 = {2752556, "\260\006\005\146\151\162\163\164\257\300\207\164\301\163\300\327\135\041\305\104\130\005\004\162\145\163\164\214\257\300\207\164\301\163\300\327\135\041\305\104\130\261\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\207\164\301\163\300\327\135\041\305\106\214\000\000"};
static struct {unsigned f; char r[48];} string9 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\132\124\077\010\300\370\073\075\073\100\230\005\004\162\145\163\164\214\216\257\300\132\124\077\010\300\370\073\075\073\100\230\261\000\000\000"};
static struct {unsigned f; char r[4];} string10 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\105\204\000\000"};
static struct {unsigned f; char r[4];} string12 = {131074, "\004\030\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\104\350\000\000"};
static struct {unsigned f; char r[4];} string14 = {196611, "\004A\014"};
static struct {unsigned f; char r[12];} string15 = {720908, "\205\210\242\000\002\205\210\242\000\002\256"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\104\020\000\000"};
static struct {unsigned f; char r[4];} string17 = {131074, "\003\004\000"};
static struct {unsigned f; char r[32];} string18 = {1835040, "\205\257\300\366\230\345\123\300\277\263\077\005\102\344\216\257\300\132\124\077\010\300\370\073\075\073\100\230\000\000\000"};
static struct {unsigned f; char r[4];} string19 = {196611, "\004@\377"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\102\250\000\000"};
static struct {unsigned f; char r[4];} string21 = {131074, "\003\002\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\102\110\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\132\124\077\010\300\370\073\075\073\100\354\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\101\304\000\000"};
static struct {unsigned f; char r[12];} string25 = {524296, "\011\000\004\000\040\000\004\001\000\000\000"};
static struct {unsigned f; char r[44];} string26 = {2752556, "\260\006\005\146\151\162\163\164\257\300\240\236\274\171\300\344\000\142\023\100\200\005\004\162\145\163\164\214\257\300\240\236\274\171\300\344\000\142\023\100\200\261\000"};
static struct {unsigned f; char r[4];} string27 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\101\240\000\000"};
static struct {unsigned f; char r[4];} string29 = {131076, "\216\251\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\101\174\000\000"};
static struct {unsigned f; char r[4];} string31 = {131074, "\003\003\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300ZT?\010\300\370;=;@t\000\000"};
static struct {unsigned f; char r[20];} string33 = {1048592, "\007\000\040\003\007\040\040\002\003\002\004\074\004\016\004\006\000\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300ZT?\010\300\370;=;BT\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\101\100\000\000"};
static struct {unsigned f; char r[12];} string36 = {589836, "Highlight\000\000"};
static struct {unsigned f; char r[16];} string37 = {983056, "Xerox/Highlight"};
static struct {unsigned f; char r[36];} string38 = {2293796, "Wrong type (expected ConstantColor)"};
static struct {unsigned f; char r[16];} string39 = {851984, "Xerox/Process\000\000"};
static struct {unsigned f; char r[8];} string40 = {327688, "Color\000\000"};
static struct {unsigned f; char r[8];} string41 = {458760, "density"};
static struct {unsigned f; char r[16];} string42 = {851984, "transmittance\000\000"};
static struct {unsigned f; char r[12];} string43 = {720908, "reflectance"};
static struct {unsigned f; char r[16];} string44 = {917520, "Xerox/BuildMap\000"};
static struct {unsigned f; char r[12];} string45 = {655372, "dotPercent\000"};
static struct {unsigned f; char r[24];} string46 = {1376280, "Xerox/HighlightLinear\000\000"};
static struct {unsigned f; char r[16];} string47 = {786448, "Xerox/CIELAB\000\000\000"};
static struct {unsigned f; char r[20];} string48 = {1114132, "Xerox/Solid/Black\000\000"};
static struct {unsigned f; char r[16];} string49 = {983056, "Xerox/Solid/Red"};
static struct {unsigned f; char r[20];} string50 = {1114132, "Xerox/Solid/Green\000\000"};
static struct {unsigned f; char r[20];} string51 = {1048596, "Xerox/Solid/Blue\000\000\000"};
static struct {unsigned f; char r[20];} string52 = {1048596, "Xerox/Solid/Cyan\000\000\000"};
static struct {unsigned f; char r[20];} string53 = {1245204, "Xerox/Solid/Magenta"};
static struct {unsigned f; char r[20];} string54 = {1179668, "Xerox/Solid/Yellow\000"};
static struct {unsigned f; char r[20];} string55 = {1114132, "Xerox/Solid/White\000\000"};
static struct {unsigned f; char r[8];} string56 = {327688, "Solid\000\000"};
static struct {unsigned f; char r[32];} string57 = {1900576, "Obsolete color model operator\000\000"};
static struct {unsigned f; char r[8];} string58 = {262152, "name\000\000\000"};
static struct {unsigned f; char r[16];} string59 = {983056, "Xerox/YESLinear"};
static struct {unsigned f; char r[68];} string60 = {4194372, "ImagerColor.HighlightFromColor is not implemented for this color\000\000\000"};
static struct {unsigned f; char r[32];} string61 = {1900576, "Color must be a ConstantColor\000\000"};
static struct {unsigned f; char r[8];} string62 = {458760, "culprit"};
static struct {unsigned f; char r[36];} string63 = {2097188, "Xerox/Research/AddRenderingHints\000\000\000"};
static struct {unsigned f; char r[56];} string64 = {3407928, "Unknown Signal type for Xerox/Process color operator\000\000\000"};
static struct {unsigned f; char r[8];} string65 = {393224, "signal\000"};
static struct {unsigned f; char r[68];} string66 = {4325444, "Nonstandard arguments passed to Xerox/Process Color Model Operator\000"};
static struct {unsigned f; char r[28];} string67 = {1572892, "Xerox/Research/RGBLinear\000\000\000"};
static struct {unsigned f; char r[28];} string68 = {1572892, "unimplemented signalType\000\000\000"};
static struct {unsigned f; char r[12];} string69 = {655372, "signalType\000"};
static struct {unsigned f; char r[16];} string70 = {983056, "Xerox/RGBLinear"};
static struct {unsigned f; char r[32];} string71 = {1966112, "No substitute for SpecialColor\000"};
static struct {unsigned f; char r[12];} string72 = {589836, "Xerox/Map\000\000"};
static struct {unsigned f; char r[20];} string73 = {1048596, "Xerox/GrayVisual\000\000\000"};
static struct {unsigned f; char r[20];} string74 = {1114132, "Xerox/GrayDensity\000\000"};
static struct {unsigned f; char r[8];} string75 = {458760, "Stipple"};
static struct {unsigned f; char r[20];} string76 = {1048596, "Xerox/GrayLinear\000\000\000"};
static struct {unsigned f; char r[16];} string77 = {851984, "\257\300\366\230\345\123\300\277\263\077\005\100\164\000\000"};
static struct {unsigned f; char r[88];} string78 = {5505108, "\006\036\020\001\024\001\030\001\034\001\040\001\044\001\050\001\054\001\060\001\064\001\070\001\074\001\100\100\001\100\104\001\100\110\001\100\114\001\100\120\001\100\124\001\100\130\001\100\134\001\100\140\001\100\144\001\100\150\001\100\154\001\100\160\001\100\170\001\100\174\001\100\200\001\100\204\001\101\014\010\000\004\051\001\000\000\000"};
static struct {unsigned f; char r[16];} string79 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\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 = {1231905127, "erColorPrivate"};
static struct {unsigned f; char r[16];} string82 = {851984, "\257\300\207\164\301\163\300\327\135\041\305\100\150\000\000"};
static struct {unsigned f; char r[16];} string83 = {851984, "\257\300\230\052\311\306\300\242\375\035\324\100\150\000\000"};
static struct {unsigned f; char r[16];} string84 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string85 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string86 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string87 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string88 = {851984, "\257\300\072\337\114\355\300\232\070\352\142\100\150\000\000"};
static struct {unsigned f; char r[12];} string89 = {1231905127, "erTestProbe"};
static struct {unsigned f; char r[16];} string90 = {851984, "\257\300\135\274\070\011\300\016\076\207\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string91 = {851984, "\257\300ZT?\010\300\370;=;@h\000\000"};
static struct {unsigned f; char r[32];} string92 = {1966112, "\211\022\021StructureClassRep\300ZT?\010\300\370;=;\000"};
static struct {unsigned f; char r[36];} string93 = {2228260, "\211\026\025ColorOperatorClassRep\300ZT?\010\300\370;=;\000"};
static struct {
   word f0[108]; word f108; word f109; word f110; 
   word f111; word f112; word f113; word f114; 
   word f115; word f116; word f117; word f118; 
   word f119; word f120; word f121; word f122; 
   word f123; word f124; word f125; word f126; 
   word f127; word f128; word f129; word f130; 
   word f131; word f132; word f133; word f134; 
   word f135; word f136; word f137; word f138; 
   word f139; word f140; word f141; word f142; 
   word f143; word f144; word f145; word f146; 
   word f147; word f148; word f149; word f150; 
   word f151; word f152; word f153; word f154; 
   word f155; word f156; word f157; word f158; 
   word f159; word f160; word f161; word f162; 
   word f163; word f164; word f165; word f166; 
   word f167; word f168; word f169; word f170; 
   word f171; word f172; word f173; word f174; 
   word f175; word f176; word f177; word f178; 
   word f179; word f180; word f181; word f182; 
   word f183; word f184; word f185; word f186; 
   word f187; word f188; word f189; word f190; 
   word f191; word f192; word f193; word f194; 
   word f195; word f196; word f197; word f198; 
   word f199; word f200; word f201; word f202; 
   word f203; word f204; word f205; word f206; 
   word f207; word f208; word f209; word f210; 
   word f211; word f212; word f213; word f214; 
   word f215; word f216; word f217; word f218; 
   word f219; word f220; word f221; word f222; 
   word f223; word f224; word f225; word f226; 
   word f227; word f228; word f229; word f230; 
   word f231; word f232; word f233; word f234; 
   word f235; word f236; word f237; word f238; 
   word f239; word f240; word f241; word f242; 
   word f243; word f244; word f245; word f246; 
   word f247; word f248; word f249; word f250; 
   word f251; word f252; word f253; word f254; 
   word f255; word f256; word f257; word f258; 
   word f259; word f260; word f261; word f262; 
   word f263; word f264; word f265; word f266; 
   word f267; word f268; word f269; word f270; 
   word f271; word f272; word f273; word f274; 
   word f275; word f276; word f277; word f278; 
   word f279; word f280; word f281; word f282; 
   word f283; word f284; word f285; word f286; 
   word f287; word f288; word f289; word f290; 
   word f291; word f292; word f293; word f294; 
   word f295; word f296; word f297; word f298; 
   word f299; word f300; word f301; word f302; 
   word f303; word f304; word f305; word f306; 
   word f307; word f308; word f309; word f310; 
   word f311; word f312; word f313; word f314; 
   word f315; word f316; word f317; word f318; 
   word f319; word f320; word f321; word f322; 
   word f323; word f324; word f325; word f326; 
   word f327; word f328; word f329; word f330; 
   word f331[13]; 
   } globalframe = {
   {0}, (word) Define←P6840, 0, (word) ColorFromStipple←P6780, 
   0, (word) IntensityFromStipple←P6720, 0, (word) RGBFromColor←P6660, 
   0, (word) MakeSampledColor←P6600, 0, (word) MakeSampledBlack←P6540, 
   0, (word) ColorFromPixel←P6480, 0, (word) NarrowToOpConstantColor←P6420, 
   0, (word) ColorFromCMYK←P6360, 0, (word) NewColorOperatorCMYK←P6300, 
   0, (word) NewColorOperatorProcess←P6240, 0, (word) EnlistSignalNames←P6180, 
   0, (word) CMYKSignalNames←P6120, 0, (word) EqualSignalNames←P6060, 
   0, (word) DataEqualProcess←P6000, 0, (word) DoApplyProcess←P5940, 
   0, (word) ApplyProcess←P5880, 0, (word) GetPixelEncodingProcess←P5820, 
   0, (word) GetCreateDataProcess←P5760, 0, (word) CreateColorOperatorProcess←P5700, 
   0, (word) GetProcessArgIndices←P5640, 0, (word) SignalTypeNameFromSignalType←P5580, 
   0, (word) SignalTypeFromSignalTypeName←P5520, 0, (word) NewColorOperatorHighlight←P5460, 
   0, (word) ExtraNewColorOperatorHighlight←P5400, 0, (word) DataEqualHighlight←P5340, 
   0, (word) GetCreateDataHighlight←P5280, 0, (word) ApplyHighlight←P5220, 
   0, (word) GetPixelEncodingHighlight←P5160, 0, (word) CreateColorOperatorHighlight←P5100, 
   0, (word) NarrowToConstantColor←P5040, 0, (word) HighlightFromColor←P4980, 
   0, (word) ColorFromHighlight←P4920, 0, (word) ExtraColorFromHighlight←P4860, 
   0, (word) NewColorOperatorCIELAB←P4800, 0, (word) ApplyCIELAB←P4740, 
   0, (word) GetPixelEncodingCIELAB←P4680, 0, (word) CreateColorOperatorCIELAB←P4620, 
   0, (word) CIELABFromColor←P4560, 0, (word) G←P4500, 
   0, (word) F←P4440, 0, (word) ColorFromCIELAB←P4380, 
   0, (word) NewColorOperatorYES←P4320, 0, (word) DataEqualYES←P4260, 
   0, (word) GetCreateDataYES←P4200, 0, (word) ApplyYES←P4140, 
   0, (word) GetPixelEncodingYES←P4080, 0, (word) CreateColorOperatorYES←P4020, 
   0, (word) YESFromColor←P3960, 0, (word) ColorFromYES←P3900, 
   0, (word) Apply3Out←P3840, 0, (word) Apply3←P3780, 
   0, (word) Mul3←P3720, 0, (word) Invert3←P3660, 
   0, (word) Cofactor3←P3600, 0, (word) Det3←P3540, 
   0, (word) NewRenderingHints←P3480, 0, (word) CreateColorOperatorWithRenderingHints←P3420, 
   0, (word) CreateColorOperatorOldRGB←P3360, 0, (word) HSVFromRGB←P3300, 
   0, (word) RGBFromHSV←P3240, 0, (word) ToRange←P3180, 
   0, (word) HSVFromColor←P3120, 0, (word) ColorFromHSV←P3060, 
   0, (word) InitSolidColors←P3000, 0, (word) ColorFromRGB←P2940, 
   0, (word) NewColorOperatorRGB←P2880, 0, (word) DataEqualRGB←P2820, 
   0, (word) ApplyRGB←P2760, 0, (word) GetPixelEncodingRGB←P2700, 
   0, (word) GetCreateDataRGB←P2640, 0, (word) CreateColorOperatorRGB←P2580, 
   0, (word) NewColorOperatorBuildMap←P2520, 0, (word) DataEqualBuildMap←P2460, 
   0, (word) ApplyBuildMap←P2400, 0, (word) GetCreateDataBuildMap←P2340, 
   0, (word) CreateColorOperatorBuildMap←P2280, 0, (word) ClassBuildMap←P2220, 
   0, (word) NewColorOperatorMap←P2160, 0, (word) StructureFromDataMap←P2100, 
   0, (word) DataMapGet←P2040, 0, (word) DataMapSize←P1980, 
   0, (word) DataEqualMap←P1920, 0, (word) ApplyMap←P1860, 
   0, (word) GetIdentityPixelEncoding←P1800, 0, (word) GetCreateDataMap←P1740, 
   0, (word) CreateColorOperatorMap←P1680, 0, (word) NewColorOperatorGrayVisual←P1620, 
   0, (word) DataEqualGrayVisual←P1560, 0, (word) ApplyGrayVisual←P1500, 
   0, (word) GetPixelEncodingGrayVisual←P1440, 0, (word) GetCreateDataGrayVisual←P1380, 
   0, (word) CreateColorOperatorGrayVisual←P1320, 0, (word) NewColorOperatorGrayDensity←P1260, 
   0, (word) DataEqualGrayDensity←P1200, 0, (word) ApplyGrayDensity←P1140, 
   0, (word) GetPixelEncodingGrayDensity←P1080, 0, (word) GetCreateDataGrayDensity←P1020, 
   0, (word) CreateColorOperatorGrayDensity←P960, 0, (word) ColorFromGray←P900, 
   0, (word) NewColorOperatorGrayLinear←P840, 0, (word) DataEqualGrayLinear←P780, 
   0, (word) ApplyGrayLinear←P720, 0, (word) GetPixelEncodingGrayLinear←P660, 
   0, (word) GetCreateDataGrayLinear←P600, 0, (word) CreateColorOperatorGrayLinear←P540, 
   0, (word) GetSE←P480, 0, (word) MakePE←P420, 
   0, (word) SampleEncodingFetch←P360, 0, (word) SampleFromReal←P300, 
   0, (word) Find←P60, 0, (word) ImagerColorImpl←P0, 
   {0}
   };

static void NoName←Q11340()
   {
   register ptr gf←c01131 =  (ptr) &globalframe;
   word var←c77664;
   (* (( (ptr) gf←c01131)+34) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c01131)+35) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c01131)+37) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c01131)+39) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c01131)+40) ) = (word) XR←GetTypeIndexS((word) (&string8));
   (* (( (ptr) gf←c01131)+43) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c01131)+44) ) = (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12);
   (* (( (ptr) gf←c01131)+45) ) = (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14);
   (* (( (ptr) gf←c01131)+46) ) = (word) XR←GetTypeIndexS((word) (&string15));
   (* (( (ptr) gf←c01131)+47) ) = (word) XR←GetTypeIndex((word) &string16, 0, (word) &string17);
   (* (( (ptr) gf←c01131)+48) ) = (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19);
   (* (( (ptr) gf←c01131)+49) ) = (word) XR←GetTypeIndex((word) &string20, 0, (word) &string21);
   (* (( (ptr) gf←c01131)+50) ) = (word) XR←GetTypeIndex((word) &string22, 0, (word) &string10);
   (* (( (ptr) gf←c01131)+51) ) = (word) XR←GetTypeIndex((word) &string23, 0, (word) &string10);
   (* (( (ptr) gf←c01131)+52) ) = (word) XR←GetTypeIndex((word) &string24, 0, (word) &string25);
   (* (( (ptr) gf←c01131)+55) ) = (word) XR←GetTypeIndex((word) &string26, 0, (word) &string27);
   (* (( (ptr) gf←c01131)+58) ) = (word) XR←GetTypeIndex((word) &string28, 0, (word) &string21);
   (* (( (ptr) gf←c01131)+59) ) = (word) XR←GetTypeIndex((word) &string29, 0, (word) &string5);
   (* (( (ptr) gf←c01131)+60) ) = (word) XR←GetTypeIndex((word) &string30, 0, (word) &string31);
   (* (( (ptr) gf←c01131)+62) ) = (word) XR←GetTypeIndex((word) &string32, 0, (word) &string33);
   (* (( (ptr) gf←c01131)+64) ) = (word) XR←GetTypeIndex((word) &string34, 0, (word) &string25);
   (* (( (ptr) gf←c01131)+65) ) = (word) XR←GetTypeIndex((word) &string35, 0, (word) &string21);
   (*  (ptr) (( (bPt) gf←c01131)+268) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+59) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c01131)+272) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c01131)+276) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c01131)+280) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string39);
   (*  (ptr) (( (bPt) gf←c01131)+284) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+59) ), (word) &string40);
   (*  (ptr) (( (bPt) gf←c01131)+288) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string41);
   (*  (ptr) (( (bPt) gf←c01131)+292) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string42);
   (*  (ptr) (( (bPt) gf←c01131)+296) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string43);
   (*  (ptr) (( (bPt) gf←c01131)+300) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string44);
   (*  (ptr) (( (bPt) gf←c01131)+304) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string45);
   (*  (ptr) (( (bPt) gf←c01131)+308) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string46);
   (*  (ptr) (( (bPt) gf←c01131)+312) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string47);
   (*  (ptr) (( (bPt) gf←c01131)+316) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string48);
   (*  (ptr) (( (bPt) gf←c01131)+320) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string49);
   (*  (ptr) (( (bPt) gf←c01131)+324) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string50);
   (*  (ptr) (( (bPt) gf←c01131)+328) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string51);
   (*  (ptr) (( (bPt) gf←c01131)+332) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string52);
   (*  (ptr) (( (bPt) gf←c01131)+336) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string53);
   (*  (ptr) (( (bPt) gf←c01131)+340) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string54);
   (*  (ptr) (( (bPt) gf←c01131)+344) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string55);
   (*  (ptr) (( (bPt) gf←c01131)+348) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+59) ), (word) &string56);
   (*  (ptr) (( (bPt) gf←c01131)+352) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string57);
   (*  (ptr) (( (bPt) gf←c01131)+356) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+59) ), (word) &string58);
   (*  (ptr) (( (bPt) gf←c01131)+360) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string59);
   (*  (ptr) (( (bPt) gf←c01131)+364) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string60);
   (*  (ptr) (( (bPt) gf←c01131)+368) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string61);
   (*  (ptr) (( (bPt) gf←c01131)+372) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+59) ), (word) &string62);
   (*  (ptr) (( (bPt) gf←c01131)+376) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string63);
   (*  (ptr) (( (bPt) gf←c01131)+380) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string64);
   (*  (ptr) (( (bPt) gf←c01131)+384) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+59) ), (word) &string65);
   (*  (ptr) (( (bPt) gf←c01131)+388) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string66);
   (*  (ptr) (( (bPt) gf←c01131)+392) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string67);
   (*  (ptr) (( (bPt) gf←c01131)+396) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string68);
   (*  (ptr) (( (bPt) gf←c01131)+400) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+59) ), (word) &string69);
   (*  (ptr) (( (bPt) gf←c01131)+404) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string70);
   (*  (ptr) (( (bPt) gf←c01131)+408) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string71);
   (*  (ptr) (( (bPt) gf←c01131)+412) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string72);
   (*  (ptr) (( (bPt) gf←c01131)+416) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string73);
   (*  (ptr) (( (bPt) gf←c01131)+420) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string74);
   (*  (ptr) (( (bPt) gf←c01131)+424) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+59) ), (word) &string75);
   (*  (ptr) (( (bPt) gf←c01131)+428) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c01131)+37) ), (word) &string76);
   (void) XR←DeclareGlobalFrame((word) "ImagerColorImpl", &globalframe, (word) XR←GetTypeIndex((word) &string77, 0, (word) &string78)
      , (word) (( (bPt) gf←c01131)+1320)/* var←c66848 */ );
   var←c77664 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string79)), 16);
   (* (( (ptr) gf←c01131)+339)/* var←c75584 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 67895555);
   (void) XR←ImportProcS(var←c77664, 67372289);
   var←c77664 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string80)), 3);
   (* (( (ptr) gf←c01131)+336)/* var←c70432 */  ) = var←c77664;
   var←c77664 = (word) XR←ImportInterface((word) &string81, (word) XR←GetTypeIndexS((word) (&string82)), 48);
   (* (( (ptr) gf←c01131)+332)/* var←c66976 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 269825);
   (void) XR←ImportProcS(var←c77664, 67634178);
   (void) XR←ImportProcS(var←c77664, 134742786);
   (void) XR←ImportProcS(var←c77664, 67379201);
   (void) XR←ImportProcS(var←c77664, 67642626);
   (void) XR←ImportProcS(var←c77664, 67642882);
   (void) XR←ImportProcS(var←c77664, 67636226);
   (void) XR←ImportProcS(var←c77664, 67376129);
   (void) XR←ImportProcS(var←c77664, 67375873);
   (void) XR←ImportProcS(var←c77664, 67897347);
   (void) XR←ImportProcS(var←c77664, 67899651);
   (void) XR←ImportProcS(var←c77664, 67380225);
   (void) XR←ImportProcS(var←c77664, 67635714);
   (void) XR←ImportProcS(var←c77664, 67639554);
   (void) XR←ImportProcS(var←c77664, 67377921);
   (void) XR←ImportProcS(var←c77664, 67635458);
   (void) XR←ImportProcS(var←c77664, 68431109);
   (void) XR←ImportProcS(var←c77664, 67637762);
   (void) XR←ImportProcS(var←c77664, 67374337);
   (void) XR←ImportProcS(var←c77664, 67377153);
   (void) XR←ImportProcS(var←c77664, 67371265);
   (void) XR←ImportProcS(var←c77664, 67634946);
   (void) XR←ImportProcS(var←c77664, 67634434);
   (void) XR←ImportProcS(var←c77664, 67633666);
   (void) XR←ImportProcS(var←c77664, 67638530);
   (void) XR←ImportProcS(var←c77664, 67641602);
   (void) XR←ImportProcS(var←c77664, 68955143);
   var←c77664 = (word) XR←ImportInterface((word) "ImagerPixelArray", (word) XR←GetTypeIndexS((word) (&string83)), 13);
   (* (( (ptr) gf←c01131)+341)/* var←c77248 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 67633922);
   var←c77664 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string84)), 11);
   (* (( (ptr) gf←c01131)+337)/* var←c70656 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 67371265);
   (void) XR←ImportProcS(var←c77664, 67371521);
   var←c77664 = (word) XR←ImportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string85)), 36);
   (* (( (ptr) gf←c01131)+335)/* var←c69760 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 67633922);
   var←c77664 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string86)), 16);
   (* (( (ptr) gf←c01131)+333)/* var←c67424 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 788995);
   (void) XR←ImportProcS(var←c77664, 67895555);
   var←c77664 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string87)), 43);
   (* (( (ptr) gf←c01131)+338)/* var←c75360 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 67896323);
   var←c77664 = (word) XR←ImportInterface((word) "SymTab", (word) XR←GetTypeIndexS((word) (&string88)), 13);
   (* (( (ptr) gf←c01131)+334)/* var←c68800 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 134742786);
   var←c77664 = (word) XR←ImportInterface((word) &string89, (word) XR←GetTypeIndexS((word) (&string90)), 1);
   (* (( (ptr) gf←c01131)+340)/* var←c76160 */  ) = var←c77664;
   (void) XR←ImportProcS(var←c77664, 1835015);
   var←c77664 = (word) XR←ExportInterface((word) "ImagerColor", (word) XR←GetTypeIndexS((word) (&string91)), 32);
   (* (( (ptr) gf←c01131)+342)/* var←c77696 */  ) = var←c77664;
   (void) XR←ExportType((word) "StructureClassRep", (word) XR←GetTypeIndexS((word) (&string92)), (word) XR←GetTypeIndexS((word) (&string3))
      );
   (void) XR←ExportType((word) "ColorOperatorClassRep", (word) XR←GetTypeIndexS((word) (&string93)), (word) XR←GetTypeIndex(
         (word) &string1, 0, (word) &string2));
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+1312)/* var←c66816 */ , 67371521, (word) "Find");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+480)/* var←c63488 */ , 67633922, (word) "ColorFromPixel");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+488)/* var←c63520 */ , 67372033, (word) "NarrowToOpConstantColor")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+472)/* var←c63456 */ , 67896579, (word) "MakeSampledBlack");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+464)/* var←c63424 */ , 67896835, (word) "MakeSampledColor");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+1224)/* var←c66464 */ , 67372801, (word) "ColorFromGray");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+1232)/* var←c66496 */ , 68159492, (word) "NewColorOperatorGrayLinear")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+1176)/* var←c66272 */ , 68421893, (word) "NewColorOperatorGrayDensity")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+1128)/* var←c66080 */ , 68160004, (word) "NewColorOperatorGrayVisual")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+1056)/* var←c65792 */ , 67635970, (word) "NewColorOperatorMap")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+1008)/* var←c65600 */ , 67898371, (word) "NewColorOperatorBuildMap")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+952)/* var←c65376 */ , 67898625, (word) "ColorFromRGB");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+456)/* var←c63392 */ , 201592321, (word) "RGBFromColor");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+960)/* var←c65408 */ , 68161284, (word) "NewColorOperatorRGB")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+936)/* var←c65312 */ , 67899395, (word) "ColorFromHSV");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+928)/* var←c65280 */ , 201593089, (word) "HSVFromColor");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+824)/* var←c64864 */ , 67899905, (word) "ColorFromYES");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+816)/* var←c64832 */ , 201593601, (word) "YESFromColor");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+768)/* var←c64640 */ , 68686854, (word) "NewColorOperatorYES")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+760)/* var←c64608 */ , 67900673, (word) "ColorFromCIELAB");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+736)/* var←c64512 */ , 201594369, (word) "CIELABFromColor");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+704)/* var←c64384 */ , 68687622, (word) "NewColorOperatorCIELAB")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+688)/* var←c64320 */ , 67639297, (word) "ColorFromHighlight")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+680)/* var←c64288 */ , 134486273, (word) "HighlightFromColor")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+616)/* var←c64032 */ , 68688390, (word) "NewColorOperatorHighlight")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+608)/* var←c64000 */ , 67377921, (word) "SignalTypeFromSignalTypeName")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+600)/* var←c63968 */ , 67378177, (word) "SignalTypeNameFromSignalType")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+512)/* var←c63616 */ , 68951303, (word) "NewColorOperatorProcess")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+496)/* var←c63552 */ , 68165121, (word) "ColorFromCMYK");
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+504)/* var←c63584 */ , 67378945, (word) "NewColorOperatorCMYK")
   ;
   var←c77664 = (word) XR←ExportInterface((word) &string81, (word) XR←GetTypeIndexS((word) (&string82)), 48);
   (* (( (ptr) gf←c01131)+343)/* var←c77728 */  ) = var←c77664;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+448)/* var←c63360 */ , 67382785, (word) "IntensityFromStipple")
   ;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+440)/* var←c63328 */ , 67645186, (word) "ColorFromStipple");
   var←c77664 = (word) XR←ExportInterface((word) &string89, (word) XR←GetTypeIndexS((word) (&string90)), 1);
   (* (( (ptr) gf←c01131)+343)/* var←c77728 */  ) = var←c77664;
   (void) XR←ExportProcS(var←c77664, (word) (( (bPt) gf←c01131)+552)/* var←c63776 */ , 1835015, (word) "DoApplyProcess");
   }

static void ImagerColorImpl←P0(formal←c0213, formal←c0158)
   word formal←c0213;
   word formal←c0158;
   {
   register ptr gf←c77760 =  (ptr) &globalframe;
   /* ImagerColorImpl: */ 
SOURCE(371, 55404)
SOURCE(4064, 328)
   {
      word var←c66880;
      var←c66880 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      {
         word var←c66944;
         var←c66944 = var←c66880;
         };
      {
         word pd94;
         pd94 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+4)/* classGrayLinear←v4484 */  ) = (word) ( *( (fPt) ((*  (ptr) pd94 ))))((* (( (ptr) gf←c77760)+107)
             ), (word) (( (bPt) gf←c77760)+1272)/* var←c66656 */ , (word) (( (bPt) gf←c77760)+1264)/* var←c66624 */ , (word) (( (bPt) gf←c77760)+1256)
            /* var←c66592 */ , (word) (( (bPt) gf←c77760)+1248)/* var←c66560 */ , (word) (( (bPt) gf←c77760)+1240)/* var←c66528 */ 
            , var←c66880, pd94);
         };
      };
SOURCE(6506, 83)
   {
      float tf96;
      (* (( (ptr) gf←c77760)+5)/* makeGrayLinear←v4708 */  ) = (word) NewColorOperatorGrayLinear←P840((*  (ptr) &fc95 ), (
            tf96 = (float)(unsigned)1000,  *(word*)&tf96
            ), 0, 0);
      };
SOURCE(6956, 335)
   {
      word var←c67008;
      var←c67008 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      {
         word var←c67072;
         var←c67072 = var←c67008;
         };
      {
         word pd97;
         pd97 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+6)/* classGrayDensity←v4820 */  ) = (word) ( *( (fPt) ((*  (ptr) pd97 ))))((* (( (ptr) gf←c77760)+105)
             ), (word) (( (bPt) gf←c77760)+1216)/* var←c66432 */ , (word) (( (bPt) gf←c77760)+1208)/* var←c66400 */ , (word) (( (bPt) gf←c77760)+1200)
            /* var←c66368 */ , (word) (( (bPt) gf←c77760)+1192)/* var←c66336 */ , (word) (( (bPt) gf←c77760)+1184)/* var←c66304 */ 
            , var←c67008, pd97);
         };
      };
SOURCE(9704, 328)
   {
      word var←c67104;
      var←c67104 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      {
         word var←c67168;
         var←c67168 = var←c67104;
         };
      {
         word pd98;
         pd98 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+7)/* classGrayVisual←v5072 */  ) = (word) ( *( (fPt) ((*  (ptr) pd98 ))))((* (( (ptr) gf←c77760)+104)
             ), (word) (( (bPt) gf←c77760)+1168)/* var←c66240 */ , (word) (( (bPt) gf←c77760)+1160)/* var←c66208 */ , (word) (( (bPt) gf←c77760)+1152)
            /* var←c66176 */ , (word) (( (bPt) gf←c77760)+1144)/* var←c66144 */ , (word) (( (bPt) gf←c77760)+1136)/* var←c66112 */ 
            , var←c67104, pd98);
         };
      };
SOURCE(12232, 299)
   {
      word var←c67200;
      {
         word var←c67232;
         word var←c67264;
         var←c67232 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67264 = var←c67232;
         (* (( (ptr) var←c67264)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67264 = (* (( (ptr) var←c67264)+1) );
         (*  (ptr) var←c67264 ) = 1;
         var←c67200 = var←c67232;
         };
      {
         word pd99;
         pd99 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+8)/* classMapChromatic←v5324 */  ) = (word) ( *( (fPt) ((*  (ptr) pd99 ))))((* (( (ptr) gf←c77760)+103)
             ), (word) (( (bPt) gf←c77760)+1120)/* var←c66048 */ , (word) (( (bPt) gf←c77760)+1112)/* var←c66016 */ , (word) (( (bPt) gf←c77760)+1104)
            /* var←c65984 */ , (word) (( (bPt) gf←c77760)+1096)/* var←c65952 */ , (word) (( (bPt) gf←c77760)+1088)/* var←c65920 */ 
            , var←c67200, pd99);
         };
      };
SOURCE(12534, 294)
   {
      word var←c67296;
      var←c67296 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      {
         word var←c67360;
         var←c67360 = var←c67296;
         };
      {
         word pd100;
         pd100 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+9)/* classMapMonochrome←v5352 */  ) = (word) ( *( (fPt) ((*  (ptr) pd100 ))))((* (( (ptr) gf←c77760)+103)
             ), (word) (( (bPt) gf←c77760)+1120)/* var←c66048 */ , (word) (( (bPt) gf←c77760)+1112)/* var←c66016 */ , (word) (( (bPt) gf←c77760)+1104)
            /* var←c65984 */ , (word) (( (bPt) gf←c77760)+1096)/* var←c65952 */ , (word) (( (bPt) gf←c77760)+1088)/* var←c65920 */ 
            , var←c67296, pd100);
         };
      };
SOURCE(14486, 101)
   {
      word var←c67392;
      var←c67392 = XR←NewObject(8, (* (( (ptr) gf←c77760)+35) ));
      (*  (ptr) var←c67392 ) = (word) (( (bPt) gf←c77760)+1080)/* var←c65888 */ ;
      (* (( (ptr) var←c67392)+1) ) = (word) (( (bPt) gf←c77760)+1072)/* var←c65856 */ ;
      (* (( (ptr) gf←c77760)+10)/* dataMapStructureClass←v5576 */  ) = var←c67392;
      };
SOURCE(15518, 48)
   {
      word pd101;
      pd101 = (* (( (ptr) (* (( (ptr) gf←c77760)+333)/* var←c67424 */  ))+5) );
      (* (( (ptr) gf←c77760)+11)/* classBuildMapTable←v5716 */  ) = (word) ( *( (fPt) ((*  (ptr) pd101 ))))(17, 0, 0, pd101);
      };
SOURCE(18638, 291)
   {
      word var←c67456;
      {
         word var←c67488;
         word var←c67520;
         var←c67488 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67520 = var←c67488;
         (* (( (ptr) var←c67520)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67520 = (* (( (ptr) var←c67520)+1) );
         (*  (ptr) var←c67520 ) = 1;
         var←c67456 = var←c67488;
         };
      {
         word pd102;
         pd102 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+12)/* classRGB←v5968 */  ) = (word) ( *( (fPt) ((*  (ptr) pd102 ))))((* (( (ptr) gf←c77760)+101) ), (word) (
               ( (bPt) gf←c77760)+1000)/* var←c65568 */ , (word) (( (bPt) gf←c77760)+992)/* var←c65536 */ , (word) (( (bPt) gf←c77760)+984)
            /* var←c65504 */ , (word) (( (bPt) gf←c77760)+976)/* var←c65472 */ , (word) (( (bPt) gf←c77760)+968)/* var←c65440 */ 
            , var←c67456, pd102);
         };
      };
SOURCE(21385, 58)
   {
      float tf103;
      (* (( (ptr) gf←c77760)+13)/* rgb1000←v6164 */  ) = (word) NewColorOperatorRGB←P2880((
            tf103 = (float)(unsigned)1000,  *(word*)&tf103
            ), (*  (ptr) &fc95 ), 0, 0);
      };
SOURCE(21859, 70)
   (* (( (ptr) gf←c77760)+14)/* solidColors←v6248 */  ) = (word) InitSolidColors←P3000();
SOURCE(24193, 258)
   {
      word pd104;
      pd104 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
      (* (( (ptr) gf←c77760)+15)/* researchRGBLinear←v6444 */  ) = (word) ( *( (fPt) ((*  (ptr) pd104 ))))((* (( (ptr) gf←c77760)+98)
          ), (word) (( (bPt) gf←c77760)+896)/* var←c65152 */ , 0, 0, 0, 0
         , 0, pd104);
      };
SOURCE(24772, 278)
   {
      word pd105;
      pd105 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
      (* (( (ptr) gf←c77760)+16)/* addRenderingHints←v6500 */  ) = (word) ( *( (fPt) ((*  (ptr) pd105 ))))((* (( (ptr) gf←c77760)+94)
          ), (word) (( (bPt) gf←c77760)+888)/* var←c65120 */ , 0, 0, 0, 0
         , 0, pd105);
      };
SOURCE(27873, 123)
   {
      word var←c67552;
      var←c67552 = XR←NewObject(36, (* (( (ptr) gf←c77760)+46) ));
      (*  (ptr) var←c67552 ) = (*  (ptr) &fc106 );
      (* (( (ptr) var←c67552)+1) ) = (*  (ptr) &fc107 );
      (* (( (ptr) var←c67552)+2) ) = (*  (ptr) &fc108 );
      (* (( (ptr) var←c67552)+3) ) = (*  (ptr) &fc109 );
      (* (( (ptr) var←c67552)+4) ) = (*  (ptr) &fc110 );
      (* (( (ptr) var←c67552)+5) ) = (*  (ptr) &fc111 );
      (* (( (ptr) var←c67552)+6) ) = (*  (ptr) &fc112 );
      (* (( (ptr) var←c67552)+7) ) = (*  (ptr) &fc112 );
      (* (( (ptr) var←c67552)+8) ) = (*  (ptr) &fc110 );
      (* (( (ptr) gf←c77760)+17)/* matYESFromRGB←v6892 */  ) = var←c67552;
      };
SOURCE(27999, 47)
   (* (( (ptr) gf←c77760)+18)/* matRGBFromYES←v6920 */  ) = (word) Invert3←P3660((* ((( (ptr) gf←c77760)+17)/* matYESFromRGB←v6892 */ ) ))
   ;
SOURCE(28049, 297)
   {
      word var←c67584;
      {
         word var←c67616;
         word var←c67648;
         var←c67616 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67648 = var←c67616;
         (* (( (ptr) var←c67648)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67648 = (* (( (ptr) var←c67648)+1) );
         (*  (ptr) var←c67648 ) = 3;
         (* (( (ptr) var←c67648)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67648 = (* (( (ptr) var←c67648)+1) );
         (*  (ptr) var←c67648 ) = 1;
         var←c67584 = var←c67616;
         };
      {
         word pd113;
         pd113 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+19)/* classYES←v6948 */  ) = (word) ( *( (fPt) ((*  (ptr) pd113 ))))((* (( (ptr) gf←c77760)+90) ), (word) (
               ( (bPt) gf←c77760)+808)/* var←c64800 */ , (word) (( (bPt) gf←c77760)+784)/* var←c64704 */ , (word) (( (bPt) gf←c77760)+800)
            /* var←c64768 */ , (word) (( (bPt) gf←c77760)+792)/* var←c64736 */ , (word) (( (bPt) gf←c77760)+776)/* var←c64672 */ 
            , var←c67584, pd113);
         };
      };
SOURCE(28406, 126)
   {
      float tf114;
      (* (( (ptr) gf←c77760)+20)/* yes1000←v7032 */  ) = (word) NewColorOperatorYES←P4320((
            tf114 = (float)(unsigned)1000,  *(word*)&tf114
            ), (*  (ptr) &fc95 ), (*  (ptr) &fc115 ), (*  (ptr) &fc116 ), 0, 0);
      };
SOURCE(32280, 347)
   {
      word var←c67680;
      {
         word var←c67712;
         word var←c67744;
         var←c67712 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67744 = var←c67712;
         (* (( (ptr) var←c67744)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67744 = (* (( (ptr) var←c67744)+1) );
         (*  (ptr) var←c67744 ) = 2;
         (* (( (ptr) var←c67744)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67744 = (* (( (ptr) var←c67744)+1) );
         (*  (ptr) var←c67744 ) = 1;
         var←c67680 = var←c67712;
         };
      {
         word pd117;
         pd117 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+21)/* classCIELAB←v7368 */  ) = (word) ( *( (fPt) ((*  (ptr) pd117 ))))((* (( (ptr) gf←c77760)+78)
             ), (word) (( (bPt) gf←c77760)+728)/* var←c64480 */ , (word) (( (bPt) gf←c77760)+784)/* var←c64704 */ , (word) (( (bPt) gf←c77760)+720)
            /* var←c64448 */ , (word) (( (bPt) gf←c77760)+712)/* var←c64416 */ , (word) (( (bPt) gf←c77760)+776)/* var←c64672 */ 
            , var←c67680, pd117);
         };
      };
SOURCE(32630, 123)
   {
      word var←c67776;
      var←c67776 = XR←NewObject(36, (* (( (ptr) gf←c77760)+46) ));
      (*  (ptr) var←c67776 ) = (*  (ptr) &fc118 );
      (* (( (ptr) var←c67776)+1) ) = (*  (ptr) &fc119 );
      (* (( (ptr) var←c67776)+2) ) = (*  (ptr) &fc120 );
      (* (( (ptr) var←c67776)+3) ) = (*  (ptr) &fc121 );
      (* (( (ptr) var←c67776)+4) ) = (*  (ptr) &fc122 );
      (* (( (ptr) var←c67776)+5) ) = (*  (ptr) &fc123 );
      (* (( (ptr) var←c67776)+6) ) = (*  (ptr) &fc124 );
      (* (( (ptr) var←c67776)+7) ) = (*  (ptr) &fc125 );
      (* (( (ptr) var←c67776)+8) ) = (*  (ptr) &fc126 );
      (* (( (ptr) gf←c77760)+22)/* matRGBFromXYZ←v7396 */  ) = var←c67776;
      };
SOURCE(32756, 47)
   (* (( (ptr) gf←c77760)+23)/* matXYZFromRGB←v7424 */  ) = (word) Invert3←P3660((* ((( (ptr) gf←c77760)+22)/* matRGBFromXYZ←v7396 */ ) ))
   ;
SOURCE(32806, 102)
   (* (( (ptr) gf←c77760)+24)/* cielab1000←v7452 */  ) = (word) NewColorOperatorCIELAB←P4800((*  (ptr) &fc115 ), (*  (ptr) &fc95 ), (*  (ptr) &fc127 ), (*  (ptr) &fc128 ), 0, 0)
   ;
SOURCE(33506, 22)
   {
      word var←c67808;
      word var←c67840;
      var←c67808 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      var←c67840 = var←c67808;
      (*  (ptr) var←c67840 ) = 2;
      (* (( (ptr) var←c67840)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      var←c67840 = (* (( (ptr) var←c67840)+1) );
      (*  (ptr) var←c67840 ) = 1;
      (* (( (ptr) var←c67840)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      var←c67840 = (* (( (ptr) var←c67840)+1) );
      (* (( (ptr) gf←c77760)+25)/* chooseCIELABorRGBorY←v7620 */  ) = var←c67808;
      };
SOURCE(36972, 353)
   {
      word var←c67872;
      {
         word var←c67904;
         word var←c67936;
         var←c67904 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67936 = var←c67904;
         (*  (ptr) var←c67936 ) = 4;
         (* (( (ptr) var←c67936)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67936 = (* (( (ptr) var←c67936)+1) );
         (* (( (ptr) var←c67936)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c67936 = (* (( (ptr) var←c67936)+1) );
         (*  (ptr) var←c67936 ) = 1;
         var←c67872 = var←c67904;
         };
      {
         word pd129;
         pd129 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+26)/* classHighlightPassThru←v7872 */  ) = (word) ( *( (fPt) ((*  (ptr) pd129 ))))((* (( (ptr) gf←c77760)+77)
             ), (word) (( (bPt) gf←c77760)+664)/* var←c64224 */ , (word) (( (bPt) gf←c77760)+640)/* var←c64128 */ , (word) (( (bPt) gf←c77760)+656)
            /* var←c64192 */ , (word) (( (bPt) gf←c77760)+648)/* var←c64160 */ , (word) (( (bPt) gf←c77760)+632)/* var←c64096 */ 
            , var←c67872, pd129);
         };
      };
SOURCE(37328, 333)
   {
      word var←c67968;
      {
         word var←c68000;
         word var←c68032;
         var←c68000 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c68032 = var←c68000;
         (* (( (ptr) var←c68032)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c68032 = (* (( (ptr) var←c68032)+1) );
         (*  (ptr) var←c68032 ) = 1;
         var←c67968 = var←c68000;
         };
      {
         word pd130;
         pd130 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+27)/* classHighlight←v7900 */  ) = (word) ( *( (fPt) ((*  (ptr) pd130 ))))((* (( (ptr) gf←c77760)+77)
             ), (word) (( (bPt) gf←c77760)+664)/* var←c64224 */ , (word) (( (bPt) gf←c77760)+640)/* var←c64128 */ , (word) (( (bPt) gf←c77760)+656)
            /* var←c64192 */ , (word) (( (bPt) gf←c77760)+648)/* var←c64160 */ , (word) (( (bPt) gf←c77760)+632)/* var←c64096 */ 
            , var←c67968, pd130);
         };
      };
SOURCE(44572, 313)
   {
      word var←c68064;
      {
         word var←c68096;
         word var←c68128;
         var←c68096 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c68128 = var←c68096;
         (* (( (ptr) var←c68128)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c68128 = (* (( (ptr) var←c68128)+1) );
         (*  (ptr) var←c68128 ) = 1;
         var←c68064 = var←c68096;
         };
      {
         word pd131;
         pd131 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+28)/* classProcess←v8404 */  ) = (word) ( *( (fPt) ((*  (ptr) pd131 ))))((* (( (ptr) gf←c77760)+70)
             ), (word) (( (bPt) gf←c77760)+584)/* var←c63904 */ , (word) (( (bPt) gf←c77760)+576)/* var←c63872 */ , (word) (( (bPt) gf←c77760)+568)
            /* var←c63840 */ , (word) (( (bPt) gf←c77760)+560)/* var←c63808 */ , (word) (( (bPt) gf←c77760)+544)/* var←c63744 */ 
            , var←c68064, pd131);
         };
      };
SOURCE(44888, 41)
   (* (( (ptr) gf←c77760)+29)/* cmykColorSpace←v8432 */  ) = 5;
SOURCE(44970, 348)
   {
      word var←c68160;
      {
         word var←c68192;
         word var←c68224;
         var←c68192 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c68224 = var←c68192;
         (* (( (ptr) var←c68224)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
         var←c68224 = (* (( (ptr) var←c68224)+1) );
         (*  (ptr) var←c68224 ) = 1;
         var←c68160 = var←c68192;
         };
      {
         word pd132;
         pd132 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) gf←c77760)+30)/* classCMYK←v8460 */  ) = (word) ( *( (fPt) ((*  (ptr) pd132 ))))((* (( (ptr) gf←c77760)+70) ), (word) (
               ( (bPt) gf←c77760)+584)/* var←c63904 */ , (word) (( (bPt) gf←c77760)+576)/* var←c63872 */ , (word) (( (bPt) gf←c77760)+568)
            /* var←c63840 */ , (word) (( (bPt) gf←c77760)+560)/* var←c63808 */ , (word) (( (bPt) gf←c77760)+544)/* var←c63744 */ 
            , var←c68160, pd132);
         };
      };
SOURCE(50874, 17)
   (* (( (ptr) gf←c77760)+31)/* cmykSignalNames←v8796 */  ) = (word) EnlistSignalNames←P6180(4, (word) (( (bPt) gf←c77760)+528)
      /* var←c63680 */ );
SOURCE(51853, 52)
   (* (( (ptr) gf←c77760)+32)/* cmyk1000←v8880 */  ) = (word) NewColorOperatorCMYK←P6300(1000);
SOURCE(53506, 14)
   {
      word var←c68256;
      word var←c68288;
      var←c68256 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      var←c68288 = var←c68256;
      (*  (ptr) var←c68288 ) = 1;
      (* (( (ptr) var←c68288)+1) ) = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      var←c68288 = (* (( (ptr) var←c68288)+1) );
      (* (( (ptr) gf←c77760)+33)/* eitherRGBorY←v9076 */  ) = var←c68256;
      };
SOURCE(54929, 101)
   {
      word var←c68352;
      {
         word var←c68320;
         var←c68320 = (word) NewColorOperatorGrayLinear←P840((*  (ptr) &fc133 ), (*  (ptr) &fc95 ), 0, 0);
         {
            word pd134;
            pd134 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+37) );
            var←c68352 = (word) ( *( (fPt) ((*  (ptr) pd134 ))))(var←c68320, 0, pd134);
            };
         };
      };
SOURCE(55033, 75)
   {
      word var←c68416;
      {
         word var←c68384;
         var←c68384 = (word) NewColorOperatorRGB←P2880((*  (ptr) &fc133 ), (*  (ptr) &fc95 ), 0, 0);
         {
            word pd135;
            pd135 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+37) );
            var←c68416 = (word) ( *( (fPt) ((*  (ptr) pd135 ))))(var←c68384, 1, pd135);
            };
         };
      };
SOURCE(55111, 132)
   {
      word var←c68480;
      {
         word var←c68448;
         var←c68448 = (word) NewColorOperatorCIELAB←P4800((*  (ptr) &fc136 ), (*  (ptr) &fc95 ), (*  (ptr) &fc95 ), (*  (ptr) &fc133 ), 0, 0)
         ;
         {
            word pd137;
            pd137 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+37) );
            var←c68480 = (word) ( *( (fPt) ((*  (ptr) pd137 ))))(var←c68448, 2, pd137);
            };
         };
      };
SOURCE(55246, 124)
   {
      word var←c68544;
      {
         word var←c68512;
         var←c68512 = (word) NewColorOperatorYES←P4320((*  (ptr) &fc133 ), (*  (ptr) &fc95 ), (*  (ptr) &fc95 ), (*  (ptr) &fc133 ), 0, 0)
         ;
         {
            word pd138;
            pd138 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+37) );
            var←c68544 = (word) ( *( (fPt) ((*  (ptr) pd138 ))))(var←c68512, 3, pd138);
            };
         };
      };
SOURCE(55373, 239)
   {
      word var←c68704;
      {
         word var←c68576;
         {
            word var←c68608;
            {
               word var←c68640;
               {
                  W2 var←c68672;
                  var←c68672.f0 = (*  (ptr) &fc95 );
                  var←c68672.f1 = (*  (ptr) &fc133 );
                  var←c68640 = (word) ColorFromHighlight←P4920(var←c68672);
                  };
               var←c68608 = (word) Define←P6840((* (( (ptr) gf←c77760)+68) ), (* (( (ptr) gf←c77760)+67) ), var←c68640);
               };
            var←c68576 = (word) ExtraNewColorOperatorHighlight←P5400((*  (ptr) &fc133 ), (*  (ptr) &fc95 ), 0, (* (( (ptr) (* (( (ptr) gf←c77760)+14)
                  /* solidColors←v6248 */  ))+7) ), var←c68608, 0);
            };
         {
            word pd139;
            pd139 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+37) );
            var←c68704 = (word) ( *( (fPt) ((*  (ptr) pd139 ))))(var←c68576, 4, pd139);
            };
         };
      };
SOURCE(55615, 81)
   {
      word var←c68736;
      var←c68736 = (word) NewColorOperatorCMYK←P6300(255);
      {
         word pd140;
         pd140 = (* (( (ptr) (* (( (ptr) gf←c77760)+332)/* var←c66976 */  ))+37) );
         (* (( (ptr) gf←c77760)+29)/* cmykColorSpace←v8432 */  ) = (word) ( *( (fPt) ((*  (ptr) pd140 ))))(var←c68736, 5, pd140);
         };
      };
SOURCE(55698, 77)
   {
      word var←c68768;
      var←c68768 = XR←NewObject(8, (* (( (ptr) gf←c77760)+39) ));
      (*  (ptr) var←c68768 ) = (* (( (ptr) gf←c77760)+29)/* cmykColorSpace←v8432 */  );
      (* (( (ptr) var←c68768)+1) ) = (* (( (ptr) (* (( (ptr) gf←c77760)+30)/* classCMYK←v8460 */  ))+6) );
      (* (( (ptr) (* (( (ptr) gf←c77760)+30)/* classCMYK←v8460 */  ))+6) ) = var←c68768;
      };
   }

static word Find←P60(name←v9280)
   word name←v9280;
   {
   register ptr gf←c77792 =  (ptr) &globalframe;
   word var←c9324;
   word color←v21440;
   /* Find: */ 
SOURCE(2630, 165)
SOURCE(2689, 89)
   {
      W2 var←c0217;
      word var←c01258;
      {
         word pd141;
         pd141 = (* (( (ptr) (* (( (ptr) gf←c77792)+334)/* var←c68800 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd141 ))))((word) &var←c0217, (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c77792)+332)/* var←c66976 */  ))+33)
             ) ), name←v9280, pd141);
         };
      var←c01258 = var←c0217.f1;
      color←v21440 = XR←Narrow(var←c01258, (* (( (ptr) gf←c77792)+62) ));
      };
   if ((color←v21440 == 0)) {
      goto lab←L100000;
      };
   if (((*  (ptr) color←v21440 ) == 0)) {
      goto lab←L100000;
      };
   (void) XR←RaiseError(XR←NarrowFault, 0);
   lab←L100000: ;
SOURCE(2780, 15)
   return(color←v21440);
   }

static word SampleFromReal←P300(r←v9752, max←v9780)
   word r←v9752;
   word max←v9780;
   {
   word var←c9824;
   /* SampleFromReal: */ 
SOURCE(3117, 112)
SOURCE(3186, 43)
   {
      word var←c01259;
      {
         word var←c68896;
         {
            word x142;
            word x143;
            word x144;
            word x145;
            word x146;
            *(float*)&var←c68896 = (
               x146 =  ( ((
                  x142 = r←v9752,  *(float*)&x142
                  ) <= (
                  x143 = (*  (ptr) &fc95 ),  *(float*)&x143
                  )) ? (*  (ptr) &fc95 ) :  ( ((
                  x144 = r←v9752,  *(float*)&x144
                  ) > (
                  x145 = (*  (ptr) &fc133 ),  *(float*)&x145
                  )) ? (*  (ptr) &fc133 ) : r←v9752 )  ) ,  *(float*)&x146
               ) * (float)(unsigned)max←v9780;
            };
         {
            word idx147;
            var←c01259 = (
               idx147 = (word) XR←REAL32←Round(var←c68896),
               SGNCK(idx147)
               );
            };
         };
      return(var←c01259);
      };
   }

static word SampleEncodingFetch←P360(sampleEncoding←v9884, value←v9912)
   word sampleEncoding←v9884;
   word value←v9912;
   {
   word var←c9956;
   /* SampleEncodingFetch: */ 
SOURCE(3233, 236)
SOURCE(3343, 126)
   if ((sampleEncoding←v9884 == 0)) {
      return(value←v9912);
      }
   else {
      {
         word var←c68960;
         {
            word x148;
            word x149;
            word x150;
            var←c68960 = (x149 = (x148 = (word) XR←REAL32←Round(value←v9912),
                  MAX((int)(word), x148, 0)),
               x150 = ((*  (ptr) sampleEncoding←v9884 ) - 1),
               MIN((int)(word), x149, x150));
            };
         {
            word limit151;
            return((* ((( (ptr) sampleEncoding←v9884)+1)+(
                  limit151 = (*  (ptr) sampleEncoding←v9884 ),
                  BCK(var←c68960, limit151)
                  )) ));
            };
         };
      };
   }

static word MakePE←P420(size←v10016, sampleTableProc←v10044)
   word size←v10016;
   word sampleTableProc←v10044;
   {
   register ptr gf←c77824 =  (ptr) &globalframe;
   word var←c10088;
   word se←v21484;
   /* MakePE: */ 
SOURCE(3475, 311)
SOURCE(3584, 81)
   {
      word pd152;
      pd152 = (* (( (ptr) (* (( (ptr) gf←c77824)+332)/* var←c66976 */  ))+25) );
      se←v21484 = (word) ( *( (fPt) ((*  (ptr) pd152 ))))(size←v10016, sampleTableProc←v10044, pd152);
      };
SOURCE(3667, 119)
   if ((se←v21484 == 0)) {
SOURCE(3684, 18)
      return(0);
      }
   else {
SOURCE(3702, 84)
      {
         word pe←v21528;
SOURCE(3704, 56)
         pe←v21528 = XR←NewObject(8, (* (( (ptr) gf←c77824)+64) ));
         (*  (ptr) pe←v21528 ) = 1;
SOURCE(3762, 10)
         {
            word limit153;
            (* ((( (ptr) pe←v21528)+1)+(
                  limit153 = (*  (ptr) pe←v21528 ),
                  BCK(0, limit153)
                  )) ) = se←v21484;
            };
SOURCE(3774, 12)
         return(pe←v21528);
         };
      };
   }

static word GetSE←P480(pm←v10148)
   word pm←v10148;
   {
   word var←c10192;
   /* GetSE: */ 
SOURCE(3793, 145)
SOURCE(3854, 29)
   if ((pm←v10148 == 0)) {
SOURCE(3871, 12)
      return(0);
      };
SOURCE(3885, 31)
   if (((*  (ptr) pm←v10148 ) != 1)) {
SOURCE(3916, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(3923, 15)
   {
      word limit154;
      return((* ((( (ptr) pm←v10148)+1)+(
            limit154 = (*  (ptr) pm←v10148 ),
            BCK(0, limit154)
            )) ));
      };
   }

static word CreateColorOperatorGrayLinear←P540(class←v44664, structure←v44692)
   word class←v44664;
   word structure←v44692;
   {
   W7 var←c77856;
   register ptr gf←c77888 =  (ptr) &globalframe;
   word var←c44736;
   /* declaration of var←c69024 skipped */ 
   word size←v21572;
   word sWhite←v21600;
   word sBlack←v21628;
   /* declaration of mapStructure←v21656 skipped */ 
   word colorOperator←v21712;
   /* CreateColorOperatorGrayLinear: */ 
SOURCE(4395, 608)
   {
      word tmpAddr155;
      tmpAddr155 = (word) (( (ptr) &var←c77856)+4)/* var←c69024 */ ;
      (*  (ptr) tmpAddr155 ) = ( ((word)  (fPt) sampleTable←P6948) );
      (* (( (ptr) tmpAddr155) + 1) ) = 1;
      };
SOURCE(4454, 55)
   {
      word pd156;
      pd156 = (* (( (ptr) (* (( (ptr) gf←c77888)+332)/* var←c66976 */  ))+6) );
      size←v21572 = (word) ( *( (fPt) ((*  (ptr) pd156 ))))(structure←v44692, 3, pd156);
      };
SOURCE(4511, 56)
   {
      word pd157;
      pd157 = (* (( (ptr) (* (( (ptr) gf←c77888)+332)/* var←c66976 */  ))+9) );
      sWhite←v21600 = (word) ( *( (fPt) ((*  (ptr) pd157 ))))(structure←v44692, 0, pd157);
      };
SOURCE(4569, 56)
   {
      word pd158;
      pd158 = (* (( (ptr) (* (( (ptr) gf←c77888)+332)/* var←c66976 */  ))+9) );
      sBlack←v21628 = (word) ( *( (fPt) ((*  (ptr) pd158 ))))(structure←v44692, 1, pd158);
      };
SOURCE(4627, 72)
   {
      word pd159;
      pd159 = (* (( (ptr) (* (( (ptr) gf←c77888)+332)/* var←c66976 */  ))+11) );
      var←c77856.f6/* mapStructure←v21656 */  = (word) ( *( (fPt) ((*  (ptr) pd159 ))))(structure←v44692, 2, pd159);
      };
SOURCE(4802, 176)
   {
      word var←c69056;
      {
         word pd160;
         word idx161;
         pd160 = (* (( (ptr) (* (( (ptr) gf←c77888)+332)/* var←c66976 */  ))+5) );
         var←c69056 = (
            idx161 = (word) ( *( (fPt) ((*  (ptr) pd160 ))))(var←c77856.f6/* mapStructure←v21656 */ , pd160),
            SGNCK(idx161)
            );
         };
      colorOperator←v21712 = (word) NewColorOperatorGrayLinear←P840(sWhite←v21600, sBlack←v21628, var←c69056, (word) (( (bPt) &var←c77856)+16)
         /* var←c69024 */ );
      };
SOURCE(4980, 23)
   return(colorOperator←v21712);
   }

static word sampleTable←P6948(i←v21788, formal←c77952)
   word i←v21788;
   word formal←c77952;
   {
   register ptr gf←c77920 =  (ptr) &globalframe;
   word var←c21832;
   formal←c77952 = (formal←c77952 - 16);
   /* sampleTable: */ 
SOURCE(4701, 98)
SOURCE(4746, 53)
   {
      word pd162;
      pd162 = (* (( (ptr) (* (( (ptr) gf←c77920)+332)/* var←c66976 */  ))+9) );
      return((word) ( *( (fPt) ((*  (ptr) pd162 ))))((* (( (ptr) formal←c77952)+6) ), i←v21788, pd162));
      };
   }

static word GetCreateDataGrayLinear←P600(colorOperator←v44796)
   word colorOperator←v44796;
   {
   W8 var←c77984;
   register ptr gf←c78016 =  (ptr) &globalframe;
   word var←c44840;
   /* declaration of var←c69120 skipped */ 
   /* declaration of data←v21860 skipped */ 
   /* declaration of mapStructure←v21888 skipped */ 
   word structure←v21944;
   /* GetCreateDataGrayLinear: */ 
SOURCE(5007, 454)
   {
      word tmpAddr163;
      tmpAddr163 = (word) (( (ptr) &var←c77984)+4)/* var←c69120 */ ;
      (*  (ptr) tmpAddr163 ) = ( ((word)  (fPt) GenerateElements←P7008) );
      (* (( (ptr) tmpAddr163) + 1) ) = 1;
      };
SOURCE(5054, 49)
   var←c77984.f6/* data←v21860 */  = XR←Narrow((* (( (ptr) colorOperator←v44796)+3) ), (* (( (ptr) gf←c78016)+65) ));
SOURCE(5105, 88)
   {
      word var←c69152;
      var←c69152 = (word) GetSE←P480((* ((( (ptr) var←c77984.f6/* data←v21860 */ )+2)) ));
      {
         word pd164;
         pd164 = (* (( (ptr) (* (( (ptr) gf←c78016)+332)/* var←c66976 */  ))+28) );
         var←c77984.f7/* mapStructure←v21888 */  = (word) ( *( (fPt) ((*  (ptr) pd164 ))))(var←c69152, pd164);
         };
      };
SOURCE(5351, 89)
   {
      word pd165;
      pd165 = (* (( (ptr) (* (( (ptr) gf←c78016)+332)/* var←c66976 */  ))+17) );
      structure←v21944 = (word) ( *( (fPt) ((*  (ptr) pd165 ))))((word) ((( (bPt) &var←c77984)+16)/* var←c69120 */ ), pd165);
      };
SOURCE(5442, 19)
   return(structure←v21944);
   }

static void GenerateElements←P7008(elementAction←v55128, formal←c78048)
   word elementAction←v55128;
   word formal←c78048;
   {
   formal←c78048 = (formal←c78048 - 16);
   /* GenerateElements: */ 
SOURCE(5195, 151)
SOURCE(5234, 34)
   {
      W2 var←c69184;
      var←c69184.f0 = 2;
      var←c69184.f1 = (*  (ptr) (* (( (ptr) formal←c78048)+6) ) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55128 ))))(var←c69184, elementAction←v55128);
      };
SOURCE(5270, 34)
   {
      W2 var←c69216;
      var←c69216.f0 = 2;
      var←c69216.f1 = (* (( (ptr) (* (( (ptr) formal←c78048)+6) ))+1) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55128 ))))(var←c69216, elementAction←v55128);
      };
SOURCE(5306, 40)
   {
      W2 var←c69248;
      var←c69248.f0 = 1;
      var←c69248.f1 = (* (( (ptr) formal←c78048)+7) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55128 ))))(var←c69248, elementAction←v55128);
      };
   }

static word GetPixelEncodingGrayLinear←P660(colorOperator←v44900)
   word colorOperator←v44900;
   {
   register ptr gf←c78080 =  (ptr) &globalframe;
   word var←c44944;
   word data←v21988;
   /* GetPixelEncodingGrayLinear: */ 
SOURCE(5465, 121)
SOURCE(5518, 49)
   data←v21988 = XR←Narrow((* (( (ptr) colorOperator←v44900)+3) ), (* (( (ptr) gf←c78080)+65) ));
SOURCE(5569, 17)
   return((* (( (ptr) data←v21988)+2) ));
   }

static void ApplyGrayLinear←P720(colorOperator←v45004, pixelIn←v45032, colorSpace←v45060, out←v45088)
   word colorOperator←v45004;
   word pixelIn←v45032;
   word colorSpace←v45060;
   word out←v45088;
   {
   register ptr gf←c78112 =  (ptr) &globalframe;
   word data←v22032;
   word s←v22060;
   word f←v22088;
   word x←v22116;
   /* ApplyGrayLinear: */ 
SOURCE(5590, 222)
SOURCE(5621, 49)
   data←v22032 = XR←Narrow((* (( (ptr) colorOperator←v45004)+3) ), (* (( (ptr) gf←c78112)+65) ));
SOURCE(5672, 20)
   s←v22060 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v45032 ))))(0, pixelIn←v45032);
SOURCE(5694, 51)
   {
      word x166;
      word x167;
      word x168;
      word x169;
      *(float*)&f←v22088 = ((
         x166 = s←v22060,  *(float*)&x166
         ) - (
         x167 = (*  (ptr) data←v22032 ),  *(float*)&x167
         )) / ((
         x168 = (* (( (ptr) data←v22032)+1) ),  *(float*)&x168
         ) - (
         x169 = (*  (ptr) data←v22032 ),  *(float*)&x169
         ));
      };
SOURCE(5747, 53)
   {
      word x170;
      word x171;
      word x172;
      word x173;
      word x174;
      word x175;
      float tf176;
      x←v22116 =  ( ((
         x170 = f←v22088,  *(float*)&x170
         ) <= (
         x171 = (*  (ptr) &fc95 ),  *(float*)&x171
         )) ? (*  (ptr) &fc133 ) :  ( ((
         x172 = f←v22088,  *(float*)&x172
         ) >= (
         x173 = (*  (ptr) &fc133 ),  *(float*)&x173
         )) ? (*  (ptr) &fc95 ) : (
         tf176 = (
            x174 = (*  (ptr) &fc133 ),  *(float*)&x174
            ) - (
            x175 = f←v22088,  *(float*)&x175
            ),  *(word*)&tf176
         ) )  ) ;
      };
SOURCE(5802, 10)
   {
      word limit177;
      (* ((( (ptr) out←v45088)+2)+(
            limit177 = (* (( (ptr) out←v45088)+1) ),
            BCK(0, limit177)
            )) ) = x←v22116;
      };
   }

static word DataEqualGrayLinear←P780(selfData←v45148, otherData←v45176)
   word selfData←v45148;
   word otherData←v45176;
   {
   register ptr gf←c78144 =  (ptr) &globalframe;
   word var←c45220;
   word a←v22160;
   word b←v22188;
   /* DataEqualGrayLinear: */ 
SOURCE(5818, 223)
SOURCE(5857, 36)
   a←v22160 = XR←Narrow(selfData←v45148, (* (( (ptr) gf←c78144)+65) ));
SOURCE(5895, 37)
   b←v22188 = XR←Narrow(otherData←v45176, (* (( (ptr) gf←c78144)+65) ));
SOURCE(5934, 107)
   {
      word tc178;
      word x179;
      word x180;
      word x181;
      word x182;
      word pd183;
      if ( ( ((
         x179 = (*  (ptr) a←v22160 ),  *(float*)&x179
         ) == (
         x180 = (*  (ptr) b←v22188 ),  *(float*)&x180
         )) ? ((
         x181 = (* (( (ptr) a←v22160)+1) ),  *(float*)&x181
         ) == (
         x182 = (* (( (ptr) b←v22188)+1) ),  *(float*)&x182
         )) : 0 ) ) {
         pd183 = (* (( (ptr) (* (( (ptr) gf←c78144)+332)/* var←c66976 */  ))+22) );
         tc178 =  (word)  (unsigned) (0 != (word) ( *( (fPt) ((*  (ptr) pd183 ))))((* (( (ptr) a←v22160)+2) ), (* (( (ptr) b←v22188)+2)
             ), pd183));
         }
      else {
         tc178 =  (word)  (unsigned) 0;
         };
      return(tc178);
      };
   }

static word NewColorOperatorGrayLinear←P840(sWhite←v10364, sBlack←v10392, sampleTableSize←v10420, sampleTableProc←v10448)
   word sWhite←v10364;
   word sBlack←v10392;
   word sampleTableSize←v10420;
   word sampleTableProc←v10448;
   {
   register ptr gf←c78176 =  (ptr) &globalframe;
   word var←c10492;
   word data←v22232;
   /* NewColorOperatorGrayLinear: */ 
SOURCE(6045, 429)
SOURCE(6202, 129)
   {
      word var←c69312;
      word var←c69344;
      var←c69312 = (word) MakePE←P420(sampleTableSize←v10420, sampleTableProc←v10448);
      var←c69344 = XR←NewObject(12, (* (( (ptr) gf←c78176)+65) ));
      (*  (ptr) var←c69344 ) = sWhite←v10364;
      (* (( (ptr) var←c69344)+1) ) = sBlack←v10392;
      (* (( (ptr) var←c69344)+2) ) = var←c69312;
      data←v22232 = var←c69344;
      };
SOURCE(6333, 141)
   {
      word pd184;
      pd184 = (* (( (ptr) (* (( (ptr) gf←c78176)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd184 ))))(0, 1, (* (( (ptr) gf←c78176)+4)/* classGrayLinear←v4484 */  ), data←v22232, 0, pd184)
      );
      };
   }

static word ColorFromGray←P900(f←v10552)
   word f←v10552;
   {
   register ptr gf←c78208 =  (ptr) &globalframe;
   word var←c10596;
   word color←v22276;
   /* ColorFromGray: */ 
SOURCE(6592, 224)
SOURCE(6659, 53)
   color←v22276 = XR←NewObject(20, (* (( (ptr) gf←c78208)+62) ));
   (* (( (ptr) color←v22276)+3) ) = 1;
SOURCE(6714, 36)
   (* (( (ptr) color←v22276)+2) ) = (* (( (ptr) gf←c78208)+5)/* makeGrayLinear←v4708 */  );
SOURCE(6752, 48)
   {
      word var←c69440;
      {
         float tf185;
         var←c69440 = (
            tf185 = (float)(unsigned)(word) SampleFromReal←P300(f←v10552, 1000),  *(word*)&tf185
            );
         };
      {
         word limit186;
         (* ((( (ptr) color←v22276)+4)+(
               limit186 = (* (( (ptr) color←v22276)+3) ),
               BCK(0, limit186)
               )) ) = var←c69440;
         };
      };
SOURCE(6802, 14)
   return(color←v22276);
   }

static word CreateColorOperatorGrayDensity←P960(class←v45312, structure←v45340)
   word class←v45312;
   word structure←v45340;
   {
   W7 var←c78240;
   register ptr gf←c78272 =  (ptr) &globalframe;
   word var←c45384;
   /* declaration of var←c69472 skipped */ 
   word size←v22320;
   word sWhite←v22348;
   word sBlack←v22376;
   word dBlack←v22404;
   /* declaration of mapStructure←v22432 skipped */ 
   word colorOperator←v22488;
   /* CreateColorOperatorGrayDensity: */ 
SOURCE(7294, 684)
   {
      word tmpAddr187;
      tmpAddr187 = (word) (( (ptr) &var←c78240)+4)/* var←c69472 */ ;
      (*  (ptr) tmpAddr187 ) = ( ((word)  (fPt) sampleTable←P7068) );
      (* (( (ptr) tmpAddr187) + 1) ) = 1;
      };
SOURCE(7354, 55)
   {
      word pd188;
      pd188 = (* (( (ptr) (* (( (ptr) gf←c78272)+332)/* var←c66976 */  ))+6) );
      size←v22320 = (word) ( *( (fPt) ((*  (ptr) pd188 ))))(structure←v45340, 4, pd188);
      };
SOURCE(7411, 56)
   {
      word pd189;
      pd189 = (* (( (ptr) (* (( (ptr) gf←c78272)+332)/* var←c66976 */  ))+9) );
      sWhite←v22348 = (word) ( *( (fPt) ((*  (ptr) pd189 ))))(structure←v45340, 0, pd189);
      };
SOURCE(7469, 56)
   {
      word pd190;
      pd190 = (* (( (ptr) (* (( (ptr) gf←c78272)+332)/* var←c66976 */  ))+9) );
      sBlack←v22376 = (word) ( *( (fPt) ((*  (ptr) pd190 ))))(structure←v45340, 1, pd190);
      };
SOURCE(7527, 56)
   {
      word pd191;
      pd191 = (* (( (ptr) (* (( (ptr) gf←c78272)+332)/* var←c66976 */  ))+9) );
      dBlack←v22404 = (word) ( *( (fPt) ((*  (ptr) pd191 ))))(structure←v45340, 2, pd191);
      };
SOURCE(7585, 72)
   {
      word pd192;
      pd192 = (* (( (ptr) (* (( (ptr) gf←c78272)+332)/* var←c66976 */  ))+11) );
      var←c78240.f6/* mapStructure←v22432 */  = (word) ( *( (fPt) ((*  (ptr) pd192 ))))(structure←v45340, 3, pd192);
      };
SOURCE(7760, 193)
   {
      word var←c69504;
      {
         word pd193;
         word idx194;
         pd193 = (* (( (ptr) (* (( (ptr) gf←c78272)+332)/* var←c66976 */  ))+5) );
         var←c69504 = (
            idx194 = (word) ( *( (fPt) ((*  (ptr) pd193 ))))(var←c78240.f6/* mapStructure←v22432 */ , pd193),
            SGNCK(idx194)
            );
         };
      colorOperator←v22488 = (word) NewColorOperatorGrayDensity←P1260(sWhite←v22348, sBlack←v22376, dBlack←v22404, var←c69504, (word) (
            ( (bPt) &var←c78240)+16)/* var←c69472 */ );
      };
SOURCE(7955, 23)
   return(colorOperator←v22488);
   }

static word sampleTable←P7068(i←v22564, formal←c78336)
   word i←v22564;
   word formal←c78336;
   {
   register ptr gf←c78304 =  (ptr) &globalframe;
   word var←c22608;
   formal←c78336 = (formal←c78336 - 16);
   /* sampleTable: */ 
SOURCE(7659, 98)
SOURCE(7704, 53)
   {
      word pd195;
      pd195 = (* (( (ptr) (* (( (ptr) gf←c78304)+332)/* var←c66976 */  ))+9) );
      return((word) ( *( (fPt) ((*  (ptr) pd195 ))))((* (( (ptr) formal←c78336)+6) ), i←v22564, pd195));
      };
   }

static word GetCreateDataGrayDensity←P1020(colorOperator←v45444)
   word colorOperator←v45444;
   {
   W8 var←c78368;
   register ptr gf←c78400 =  (ptr) &globalframe;
   word var←c45488;
   /* declaration of var←c69568 skipped */ 
   /* declaration of data←v22636 skipped */ 
   /* declaration of mapStructure←v22664 skipped */ 
   word structure←v22720;
   /* GetCreateDataGrayDensity: */ 
SOURCE(7982, 492)
   {
      word tmpAddr196;
      tmpAddr196 = (word) (( (ptr) &var←c78368)+4)/* var←c69568 */ ;
      (*  (ptr) tmpAddr196 ) = ( ((word)  (fPt) GenerateElements←P7128) );
      (* (( (ptr) tmpAddr196) + 1) ) = 1;
      };
SOURCE(8030, 50)
   var←c78368.f6/* data←v22636 */  = XR←Narrow((* (( (ptr) colorOperator←v45444)+3) ), (* (( (ptr) gf←c78400)+60) ));
SOURCE(8082, 88)
   {
      word var←c69600;
      var←c69600 = (word) GetSE←P480((* ((( (ptr) var←c78368.f6/* data←v22636 */ )+3)) ));
      {
         word pd197;
         pd197 = (* (( (ptr) (* (( (ptr) gf←c78400)+332)/* var←c66976 */  ))+28) );
         var←c78368.f7/* mapStructure←v22664 */  = (word) ( *( (fPt) ((*  (ptr) pd197 ))))(var←c69600, pd197);
         };
      };
SOURCE(8364, 89)
   {
      word pd198;
      pd198 = (* (( (ptr) (* (( (ptr) gf←c78400)+332)/* var←c66976 */  ))+17) );
      structure←v22720 = (word) ( *( (fPt) ((*  (ptr) pd198 ))))((word) ((( (bPt) &var←c78368)+16)/* var←c69568 */ ), pd198);
      };
SOURCE(8455, 19)
   return(structure←v22720);
   }

static void GenerateElements←P7128(elementAction←v55896, formal←c78432)
   word elementAction←v55896;
   word formal←c78432;
   {
   formal←c78432 = (formal←c78432 - 16);
   /* GenerateElements: */ 
SOURCE(8172, 187)
SOURCE(8211, 34)
   {
      W2 var←c69632;
      var←c69632.f0 = 2;
      var←c69632.f1 = (*  (ptr) (* (( (ptr) formal←c78432)+6) ) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55896 ))))(var←c69632, elementAction←v55896);
      };
SOURCE(8247, 34)
   {
      W2 var←c69664;
      var←c69664.f0 = 2;
      var←c69664.f1 = (* (( (ptr) (* (( (ptr) formal←c78432)+6) ))+1) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55896 ))))(var←c69664, elementAction←v55896);
      };
SOURCE(8283, 34)
   {
      W2 var←c69696;
      var←c69696.f0 = 2;
      var←c69696.f1 = (* (( (ptr) (* (( (ptr) formal←c78432)+6) ))+2) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55896 ))))(var←c69696, elementAction←v55896);
      };
SOURCE(8319, 40)
   {
      W2 var←c69728;
      var←c69728.f0 = 1;
      var←c69728.f1 = (* (( (ptr) formal←c78432)+7) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55896 ))))(var←c69728, elementAction←v55896);
      };
   }

static word GetPixelEncodingGrayDensity←P1080(colorOperator←v45548)
   word colorOperator←v45548;
   {
   register ptr gf←c78464 =  (ptr) &globalframe;
   word var←c45592;
   word data←v22764;
   /* GetPixelEncodingGrayDensity: */ 
SOURCE(8478, 123)
SOURCE(8532, 50)
   data←v22764 = XR←Narrow((* (( (ptr) colorOperator←v45548)+3) ), (* (( (ptr) gf←c78464)+60) ));
SOURCE(8584, 17)
   return((* (( (ptr) data←v22764)+3) ));
   }

static void ApplyGrayDensity←P1140(colorOperator←v45652, pixelIn←v45680, colorSpace←v45708, out←v45736)
   word colorOperator←v45652;
   word pixelIn←v45680;
   word colorSpace←v45708;
   word out←v45736;
   {
   register ptr gf←c78496 =  (ptr) &globalframe;
   word data←v22808;
   word s←v22836;
   word d←v22864;
   word f←v22892;
   word x←v22920;
   /* ApplyGrayDensity: */ 
SOURCE(8605, 255)
SOURCE(8637, 50)
   data←v22808 = XR←Narrow((* (( (ptr) colorOperator←v45652)+3) ), (* (( (ptr) gf←c78496)+60) ));
SOURCE(8689, 20)
   s←v22836 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v45680 ))))(0, pixelIn←v45680);
SOURCE(8711, 65)
   {
      word x199;
      word x200;
      word x201;
      word x202;
      word x203;
      *(float*)&d←v22864 = (((
         x199 = s←v22836,  *(float*)&x199
         ) - (
         x200 = (*  (ptr) data←v22808 ),  *(float*)&x200
         )) / ((
         x201 = (* (( (ptr) data←v22808)+1) ),  *(float*)&x201
         ) - (
         x202 = (*  (ptr) data←v22808 ),  *(float*)&x202
         ))) * (
         x203 = (* (( (ptr) data←v22808)+2) ),  *(float*)&x203
         );
      };
SOURCE(8778, 47)
   {
      word pd204;
      word x205;
      float tf206;
      pd204 = (* (( (ptr) (* (( (ptr) gf←c78496)+335)/* var←c69760 */  ))+7) );
      f←v22892 = (word) ( *( (fPt) ((*  (ptr) pd204 ))))((*  (ptr) &fc128 ), (
            tf206 =  - (
               x205 = d←v22864,  *(float*)&x205
               ),  *(word*)&tf206
            ), pd204);
      };
SOURCE(8827, 21)
   {
      word x←v62700;
      {
         word x207;
         word x208;
         *(float*)&x←v62700 = (
            x207 = (*  (ptr) &fc133 ),  *(float*)&x207
            ) - (
            x208 = f←v22892,  *(float*)&x208
            );
         };
SOURCE(2971, 27)
      {
         word x209;
         word x210;
         word x211;
         word x212;
         if (((
            x209 = x←v62700,  *(float*)&x209
            ) <= (
            x210 = (*  (ptr) &fc95 ),  *(float*)&x210
            ))) {
            x←v22920 = (*  (ptr) &fc95 );
            }
         else {
            if (((
               x211 = x←v62700,  *(float*)&x211
               ) > (
               x212 = (*  (ptr) &fc133 ),  *(float*)&x212
               ))) {
               x←v22920 = (*  (ptr) &fc133 );
               }
            else {
               x←v22920 = x←v62700;
               };
            };
         };
      };
SOURCE(8850, 10)
   {
      word limit213;
      (* ((( (ptr) out←v45736)+2)+(
            limit213 = (* (( (ptr) out←v45736)+1) ),
            BCK(0, limit213)
            )) ) = x←v22920;
      };
   }

static word DataEqualGrayDensity←P1200(selfData←v45796, otherData←v45824)
   word selfData←v45796;
   word otherData←v45824;
   {
   register ptr gf←c78528 =  (ptr) &globalframe;
   word var←c45868;
   word a←v22964;
   word b←v22992;
   /* DataEqualGrayDensity: */ 
SOURCE(8866, 250)
SOURCE(8906, 37)
   a←v22964 = XR←Narrow(selfData←v45796, (* (( (ptr) gf←c78528)+60) ));
SOURCE(8945, 38)
   b←v22992 = XR←Narrow(otherData←v45824, (* (( (ptr) gf←c78528)+60) ));
SOURCE(8985, 131)
   {
      word tc214;
      word x215;
      word x216;
      word x217;
      word x218;
      word x219;
      word x220;
      word pd221;
      if ( (  ( ((
         x215 = (*  (ptr) a←v22964 ),  *(float*)&x215
         ) == (
         x216 = (*  (ptr) b←v22992 ),  *(float*)&x216
         )) ? ((
         x217 = (* (( (ptr) a←v22964)+1) ),  *(float*)&x217
         ) == (
         x218 = (* (( (ptr) b←v22992)+1) ),  *(float*)&x218
         )) : 0 )  ? ((
         x219 = (* (( (ptr) a←v22964)+2) ),  *(float*)&x219
         ) == (
         x220 = (* (( (ptr) b←v22992)+2) ),  *(float*)&x220
         )) : 0 ) ) {
         pd221 = (* (( (ptr) (* (( (ptr) gf←c78528)+332)/* var←c66976 */  ))+22) );
         tc214 =  (word)  (unsigned) (0 != (word) ( *( (fPt) ((*  (ptr) pd221 ))))((* (( (ptr) a←v22964)+3) ), (* (( (ptr) b←v22992)+3)
             ), pd221));
         }
      else {
         tc214 =  (word)  (unsigned) 0;
         };
      return(tc214);
      };
   }

static word NewColorOperatorGrayDensity←P1260(sWhite←v10796, sBlack←v10824, dBlack←v10852, sampleTableSize←v10880, sampleTableProc←v10908)
   word sWhite←v10796;
   word sBlack←v10824;
   word dBlack←v10852;
   word sampleTableSize←v10880;
   word sampleTableProc←v10908;
   {
   register ptr gf←c78560 =  (ptr) &globalframe;
   word var←c10952;
   word data←v23036;
   /* NewColorOperatorGrayDensity: */ 
SOURCE(9120, 456)
SOURCE(9286, 146)
   {
      word var←c69888;
      word var←c69920;
      var←c69888 = (word) MakePE←P420(sampleTableSize←v10880, sampleTableProc←v10908);
      var←c69920 = XR←NewObject(16, (* (( (ptr) gf←c78560)+60) ));
      (*  (ptr) var←c69920 ) = sWhite←v10796;
      (* (( (ptr) var←c69920)+1) ) = sBlack←v10824;
      (* (( (ptr) var←c69920)+2) ) = dBlack←v10852;
      (* (( (ptr) var←c69920)+3) ) = var←c69888;
      data←v23036 = var←c69920;
      };
SOURCE(9434, 142)
   {
      word pd222;
      pd222 = (* (( (ptr) (* (( (ptr) gf←c78560)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd222 ))))(0, 1, (* (( (ptr) gf←c78560)+6)/* classGrayDensity←v4820 */  ), data←v23036, 0, pd222)
      );
      };
   }

static word CreateColorOperatorGrayVisual←P1320(class←v45928, structure←v45956)
   word class←v45928;
   word structure←v45956;
   {
   W7 var←c78592;
   register ptr gf←c78624 =  (ptr) &globalframe;
   word var←c46000;
   /* declaration of var←c69984 skipped */ 
   word size←v23080;
   word sWhite←v23108;
   word sBlack←v23136;
   /* declaration of mapStructure←v23164 skipped */ 
   word colorOperator←v23220;
   /* CreateColorOperatorGrayVisual: */ 
SOURCE(10035, 608)
   {
      word tmpAddr223;
      tmpAddr223 = (word) (( (ptr) &var←c78592)+4)/* var←c69984 */ ;
      (*  (ptr) tmpAddr223 ) = ( ((word)  (fPt) sampleTable←P7188) );
      (* (( (ptr) tmpAddr223) + 1) ) = 1;
      };
SOURCE(10094, 55)
   {
      word pd224;
      pd224 = (* (( (ptr) (* (( (ptr) gf←c78624)+332)/* var←c66976 */  ))+6) );
      size←v23080 = (word) ( *( (fPt) ((*  (ptr) pd224 ))))(structure←v45956, 3, pd224);
      };
SOURCE(10151, 56)
   {
      word pd225;
      pd225 = (* (( (ptr) (* (( (ptr) gf←c78624)+332)/* var←c66976 */  ))+9) );
      sWhite←v23108 = (word) ( *( (fPt) ((*  (ptr) pd225 ))))(structure←v45956, 0, pd225);
      };
SOURCE(10209, 56)
   {
      word pd226;
      pd226 = (* (( (ptr) (* (( (ptr) gf←c78624)+332)/* var←c66976 */  ))+9) );
      sBlack←v23136 = (word) ( *( (fPt) ((*  (ptr) pd226 ))))(structure←v45956, 1, pd226);
      };
SOURCE(10267, 72)
   {
      word pd227;
      pd227 = (* (( (ptr) (* (( (ptr) gf←c78624)+332)/* var←c66976 */  ))+11) );
      var←c78592.f6/* mapStructure←v23164 */  = (word) ( *( (fPt) ((*  (ptr) pd227 ))))(structure←v45956, 2, pd227);
      };
SOURCE(10442, 176)
   {
      word var←c70016;
      {
         word pd228;
         word idx229;
         pd228 = (* (( (ptr) (* (( (ptr) gf←c78624)+332)/* var←c66976 */  ))+5) );
         var←c70016 = (
            idx229 = (word) ( *( (fPt) ((*  (ptr) pd228 ))))(var←c78592.f6/* mapStructure←v23164 */ , pd228),
            SGNCK(idx229)
            );
         };
      colorOperator←v23220 = (word) NewColorOperatorGrayVisual←P1620(sWhite←v23108, sBlack←v23136, var←c70016, (word) (( (bPt) &var←c78592)+16)
         /* var←c69984 */ );
      };
SOURCE(10620, 23)
   return(colorOperator←v23220);
   }

static word sampleTable←P7188(i←v23296, formal←c78688)
   word i←v23296;
   word formal←c78688;
   {
   register ptr gf←c78656 =  (ptr) &globalframe;
   word var←c23340;
   formal←c78688 = (formal←c78688 - 16);
   /* sampleTable: */ 
SOURCE(10341, 98)
SOURCE(10386, 53)
   {
      word pd230;
      pd230 = (* (( (ptr) (* (( (ptr) gf←c78656)+332)/* var←c66976 */  ))+9) );
      return((word) ( *( (fPt) ((*  (ptr) pd230 ))))((* (( (ptr) formal←c78688)+6) ), i←v23296, pd230));
      };
   }

static word GetCreateDataGrayVisual←P1380(colorOperator←v46060)
   word colorOperator←v46060;
   {
   W8 var←c78720;
   register ptr gf←c78752 =  (ptr) &globalframe;
   word var←c46104;
   /* declaration of var←c70080 skipped */ 
   /* declaration of data←v23368 skipped */ 
   /* declaration of mapStructure←v23396 skipped */ 
   word structure←v23452;
   /* GetCreateDataGrayVisual: */ 
SOURCE(10647, 454)
   {
      word tmpAddr231;
      tmpAddr231 = (word) (( (ptr) &var←c78720)+4)/* var←c70080 */ ;
      (*  (ptr) tmpAddr231 ) = ( ((word)  (fPt) GenerateElements←P7248) );
      (* (( (ptr) tmpAddr231) + 1) ) = 1;
      };
SOURCE(10694, 49)
   var←c78720.f6/* data←v23368 */  = XR←Narrow((* (( (ptr) colorOperator←v46060)+3) ), (* (( (ptr) gf←c78752)+58) ));
SOURCE(10745, 88)
   {
      word var←c70112;
      var←c70112 = (word) GetSE←P480((* ((( (ptr) var←c78720.f6/* data←v23368 */ )+2)) ));
      {
         word pd232;
         pd232 = (* (( (ptr) (* (( (ptr) gf←c78752)+332)/* var←c66976 */  ))+28) );
         var←c78720.f7/* mapStructure←v23396 */  = (word) ( *( (fPt) ((*  (ptr) pd232 ))))(var←c70112, pd232);
         };
      };
SOURCE(10991, 89)
   {
      word pd233;
      pd233 = (* (( (ptr) (* (( (ptr) gf←c78752)+332)/* var←c66976 */  ))+17) );
      structure←v23452 = (word) ( *( (fPt) ((*  (ptr) pd233 ))))((word) ((( (bPt) &var←c78720)+16)/* var←c70080 */ ), pd233);
      };
SOURCE(11082, 19)
   return(structure←v23452);
   }

static void GenerateElements←P7248(elementAction←v55956, formal←c78784)
   word elementAction←v55956;
   word formal←c78784;
   {
   formal←c78784 = (formal←c78784 - 16);
   /* GenerateElements: */ 
SOURCE(10835, 151)
SOURCE(10874, 34)
   {
      W2 var←c70144;
      var←c70144.f0 = 2;
      var←c70144.f1 = (*  (ptr) (* (( (ptr) formal←c78784)+6) ) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55956 ))))(var←c70144, elementAction←v55956);
      };
SOURCE(10910, 34)
   {
      W2 var←c70176;
      var←c70176.f0 = 2;
      var←c70176.f1 = (* (( (ptr) (* (( (ptr) formal←c78784)+6) ))+1) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55956 ))))(var←c70176, elementAction←v55956);
      };
SOURCE(10946, 40)
   {
      W2 var←c70208;
      var←c70208.f0 = 1;
      var←c70208.f1 = (* (( (ptr) formal←c78784)+7) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v55956 ))))(var←c70208, elementAction←v55956);
      };
   }

static word GetPixelEncodingGrayVisual←P1440(colorOperator←v46164)
   word colorOperator←v46164;
   {
   register ptr gf←c78816 =  (ptr) &globalframe;
   word var←c46208;
   word data←v23496;
   /* GetPixelEncodingGrayVisual: */ 
SOURCE(11105, 121)
SOURCE(11158, 49)
   data←v23496 = XR←Narrow((* (( (ptr) colorOperator←v46164)+3) ), (* (( (ptr) gf←c78816)+58) ));
SOURCE(11209, 17)
   return((* (( (ptr) data←v23496)+2) ));
   }

static void ApplyGrayVisual←P1500(colorOperator←v46268, pixelIn←v46296, colorSpace←v46324, out←v46352)
   word colorOperator←v46268;
   word pixelIn←v46296;
   word colorSpace←v46324;
   word out←v46352;
   {
   register ptr gf←c78848 =  (ptr) &globalframe;
   word data←v23540;
   word s←v23568;
   word L←v23596;
   word Y←v23624;
   /* ApplyGrayVisual: */ 
SOURCE(11230, 234)
SOURCE(11261, 49)
   data←v23540 = XR←Narrow((* (( (ptr) colorOperator←v46268)+3) ), (* (( (ptr) gf←c78848)+58) ));
SOURCE(11312, 20)
   s←v23568 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v46296 ))))(0, pixelIn←v46296);
SOURCE(11334, 51)
   {
      word x234;
      word x235;
      word x236;
      word x237;
      *(float*)&L←v23596 = ((
         x234 = s←v23568,  *(float*)&x234
         ) - (
         x235 = (* (( (ptr) data←v23540)+1) ),  *(float*)&x235
         )) / ((
         x236 = (*  (ptr) data←v23540 ),  *(float*)&x236
         ) - (
         x237 = (* (( (ptr) data←v23540)+1) ),  *(float*)&x237
         ));
      };
SOURCE(11387, 57)
   {
      word x238;
      word x240;
      word x241;
      word x243;
      float tf244;
      word x245;
      word x247;
      word x249;
      float tf250;
      Y←v23624 =  ( ((
         x238 = L←v23596,  *(float*)&x238
         ) <= (
         x240 = (*  (ptr) &fc239 ),  *(float*)&x240
         )) ? (
         tf244 = (
            x241 = L←v23596,  *(float*)&x241
            ) / (
            x243 = (*  (ptr) &fc242 ),  *(float*)&x243
            ),  *(word*)&tf244
         ) : XR←RealPwr((
            tf250 = ((
               x245 = L←v23596,  *(float*)&x245
               ) + (
               x247 = (*  (ptr) &fc246 ),  *(float*)&x247
               )) / (
               x249 = (*  (ptr) &fc248 ),  *(float*)&x249
               ),  *(word*)&tf250
            ), (*  (ptr) &fc251 )) ) ;
      };
SOURCE(11446, 18)
   {
      word x252;
      word x253;
      word limit254;
      word x255;
      word x256;
      word limit257;
      word limit258;
      if (((
         x252 = Y←v23624,  *(float*)&x252
         ) <= (
         x253 = (*  (ptr) &fc95 ),  *(float*)&x253
         ))) {
         (* ((( (ptr) out←v46352)+2)+(
               limit254 = (* (( (ptr) out←v46352)+1) ),
               BCK(0, limit254)
               )) ) = (*  (ptr) &fc95 );
         }
      else {
         if (((
            x255 = Y←v23624,  *(float*)&x255
            ) > (
            x256 = (*  (ptr) &fc133 ),  *(float*)&x256
            ))) {
            (* ((( (ptr) out←v46352)+2)+(
                  limit257 = (* (( (ptr) out←v46352)+1) ),
                  BCK(0, limit257)
                  )) ) = (*  (ptr) &fc133 );
            }
         else {
            (* ((( (ptr) out←v46352)+2)+(
                  limit258 = (* (( (ptr) out←v46352)+1) ),
                  BCK(0, limit258)
                  )) ) = Y←v23624;
            };
         };
      };
   }

static word DataEqualGrayVisual←P1560(selfData←v46412, otherData←v46440)
   word selfData←v46412;
   word otherData←v46440;
   {
   register ptr gf←c78880 =  (ptr) &globalframe;
   word var←c46484;
   word a←v23668;
   word b←v23696;
   /* DataEqualGrayVisual: */ 
SOURCE(11470, 223)
SOURCE(11509, 36)
   a←v23668 = XR←Narrow(selfData←v46412, (* (( (ptr) gf←c78880)+58) ));
SOURCE(11547, 37)
   b←v23696 = XR←Narrow(otherData←v46440, (* (( (ptr) gf←c78880)+58) ));
SOURCE(11586, 107)
   {
      word tc259;
      word x260;
      word x261;
      word x262;
      word x263;
      word pd264;
      if ( ( ((
         x260 = (*  (ptr) a←v23668 ),  *(float*)&x260
         ) == (
         x261 = (*  (ptr) b←v23696 ),  *(float*)&x261
         )) ? ((
         x262 = (* (( (ptr) a←v23668)+1) ),  *(float*)&x262
         ) == (
         x263 = (* (( (ptr) b←v23696)+1) ),  *(float*)&x263
         )) : 0 ) ) {
         pd264 = (* (( (ptr) (* (( (ptr) gf←c78880)+332)/* var←c66976 */  ))+22) );
         tc259 =  (word)  (unsigned) (0 != (word) ( *( (fPt) ((*  (ptr) pd264 ))))((* (( (ptr) a←v23668)+2) ), (* (( (ptr) b←v23696)+2)
             ), pd264));
         }
      else {
         tc259 =  (word)  (unsigned) 0;
         };
      return(tc259);
      };
   }

static word NewColorOperatorGrayVisual←P1620(sWhite←v11124, sBlack←v11152, sampleTableSize←v11180, sampleTableProc←v11208)
   word sWhite←v11124;
   word sBlack←v11152;
   word sampleTableSize←v11180;
   word sampleTableProc←v11208;
   {
   register ptr gf←c78912 =  (ptr) &globalframe;
   word var←c11252;
   word data←v23740;
   /* NewColorOperatorGrayVisual: */ 
SOURCE(11697, 429)
SOURCE(11854, 129)
   {
      word var←c70272;
      word var←c70304;
      var←c70272 = (word) MakePE←P420(sampleTableSize←v11180, sampleTableProc←v11208);
      var←c70304 = XR←NewObject(12, (* (( (ptr) gf←c78912)+58) ));
      (*  (ptr) var←c70304 ) = sWhite←v11124;
      (* (( (ptr) var←c70304)+1) ) = sBlack←v11152;
      (* (( (ptr) var←c70304)+2) ) = var←c70272;
      data←v23740 = var←c70304;
      };
SOURCE(11985, 141)
   {
      word pd265;
      pd265 = (* (( (ptr) (* (( (ptr) gf←c78912)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd265 ))))(0, 1, (* (( (ptr) gf←c78912)+7)/* classGrayVisual←v5072 */  ), data←v23740, 0, pd265)
      );
      };
   }

static word CreateColorOperatorMap←P1680(class←v46544, formal←c01297)
   word class←v46544;
   word formal←c01297;
   {
   W7 var←c78944;
   /* declaration of structure←v46572 skipped */ 
   register ptr gf←c78976 =  (ptr) &globalframe;
   word var←c46616;
   /* declaration of var←c70368 skipped */ 
   word size←v23784;
   word colorOperator←v23840;
   var←c78944.f4/* structure←v46572 */  = formal←c01297;
   /* CreateColorOperatorMap: */ 
SOURCE(12831, 517)
   {
      word tmpAddr266;
      tmpAddr266 = (word) (( (ptr) &var←c78944)+5)/* var←c70368 */ ;
      (*  (ptr) tmpAddr266 ) = ( ((word)  (fPt) map←P7308) );
      (* (( (ptr) tmpAddr266) + 1) ) = 1;
      };
SOURCE(12883, 47)
   {
      word pd267;
      pd267 = (* (( (ptr) (* (( (ptr) gf←c78976)+332)/* var←c66976 */  ))+5) );
      size←v23784 = (word) ( *( (fPt) ((*  (ptr) pd267 ))))(var←c78944.f4/* structure←v46572 */ , pd267);
      };
SOURCE(13239, 84)
   colorOperator←v23840 = (word) NewColorOperatorMap←P2160(SGNCK((size←v23784 - 1)), (word) (( (bPt) &var←c78944)+20)/* var←c70368 */ )
   ;
SOURCE(13325, 23)
   return(colorOperator←v23840);
   }

static word map←P7308(i←v23916, formal←c79040)
   word i←v23916;
   word formal←c79040;
   {
   register ptr gf←c79008 =  (ptr) &globalframe;
   word var←c23960;
   word color←v23988;
   formal←c79040 = (formal←c79040 - 20);
   /* map: */ 
SOURCE(12932, 302)
SOURCE(12979, 57)
   {
      word pd268;
      pd268 = (* (( (ptr) (* (( (ptr) gf←c79008)+332)/* var←c66976 */  ))+13) );
      color←v23988 = (word) ( *( (fPt) ((*  (ptr) pd268 ))))((* (( (ptr) formal←c79040)+4) ), i←v23916, pd268);
      };
SOURCE(13038, 196)
   {
      word var←c70400;
      var←c70400 = color←v23988;
      if ((var←c70400 == 0)) {
         goto lab←L100002;
         };
      if (((*  (ptr) var←c70400 ) == 0)) {
         {
            word constantColor←v24032;
            constantColor←v24032 = var←c70400;
SOURCE(13093, 22)
            return(constantColor←v24032);
            };
         }
      else {
         lab←L100002: ;
SOURCE(13128, 106)
         {
            word var←c70464;
            {
               word var←c70496;
               word var←c70528;
               var←c70496 = XR←NewObject(12, (* (( (ptr) gf←c79008)+55) ));
               var←c70528 = var←c70496;
               (*  (ptr) var←c70528 ) = (* (( (ptr) gf←c79008)+71) );
               (* (( (ptr) var←c70528)+1) ) = color←v23988;
               var←c70464 = var←c70496;
               };
            {
               W3 var←c0398;
               var←c0398.f0 = 70;
               var←c0398.f1 = (* (( (ptr) gf←c79008)+69) );
               var←c0398.f2 = var←c70464;
               (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c79008)+336)/* var←c70432 */  ))+4) ), (word) &var←c0398);
               };
            };
         };
      };
   }

static word GetCreateDataMap←P1740(colorOperator←v46676)
   word colorOperator←v46676;
   {
   register ptr gf←c79072 =  (ptr) &globalframe;
   word var←c46720;
   word data←v24076;
   word structure←v24104;
   /* GetCreateDataMap: */ 
SOURCE(13352, 154)
SOURCE(13392, 42)
   data←v24076 = XR←Narrow((* (( (ptr) colorOperator←v46676)+3) ), (* (( (ptr) gf←c79072)+52) ));
SOURCE(13436, 49)
   structure←v24104 = (word) StructureFromDataMap←P2100(data←v24076);
SOURCE(13487, 19)
   return(structure←v24104);
   }

static word GetIdentityPixelEncoding←P1800(colorOperator←v46780)
   word colorOperator←v46780;
   {
   word var←c46824;
   /* GetIdentityPixelEncoding: */ 
SOURCE(13510, 64)
SOURCE(13561, 13)
   return(0);
   }

static void ApplyMap←P1860(colorOperator←v46884, pixelIn←v46912, colorSpace←v46940, out←v46968)
   word colorOperator←v46884;
   word pixelIn←v46912;
   word colorSpace←v46940;
   word out←v46968;
   {
   register ptr gf←c79104 =  (ptr) &globalframe;
   word data←v24148;
   word color←v24176;
   /* ApplyMap: */ 
SOURCE(13578, 314)
SOURCE(13602, 42)
   data←v24148 = XR←Narrow((* (( (ptr) colorOperator←v46884)+3) ), (* (( (ptr) gf←c79104)+52) ));
SOURCE(13646, 104)
   {
      word var←c70592;
      {
         word var←c70688;
         {
            word var←c70624;
            word var←c01260;
            var←c70624 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v46912 ))))(0, pixelIn←v46912);
            {
               word pd269;
               word x270;
               pd269 = (* (( (ptr) (* (( (ptr) gf←c79104)+337)/* var←c70656 */  ))+6) );
               var←c01260 = (x270 = (word) ( *( (fPt) ((*  (ptr) pd269 ))))(var←c70624, pd269),
                  MAX((int)(word), x270, 0));
               };
            {
               word x271;
               var←c70688 = (x271 = ((*  (ptr) data←v24148 ) - 1),
                  MIN((int)(word), var←c01260, x271));
               };
            };
         {
            word limit272;
            var←c70592 = (* ((( (ptr) data←v24148)+1)+(
                  limit272 = (*  (ptr) data←v24148 ),
                  BCK(var←c70688, limit272)
                  )) );
            };
         };
      color←v24176 = (word) NarrowToOpConstantColor←P6420(var←c70592);
      };
SOURCE(13752, 140)
   {
      word var←c70720;
      var←c70720 = colorSpace←v46940;
      if ((var←c70720 == 0)) {
SOURCE(13781, 53)
         {
            word var←c70752;
            {
               word pd273;
               pd273 = (* (( (ptr) (* (( (ptr) gf←c79104)+332)/* var←c66976 */  ))+31) );
               var←c70752 = (word) ( *( (fPt) ((*  (ptr) pd273 ))))(color←v24176, pd273);
               };
            {
               word limit274;
               (* ((( (ptr) out←v46968)+2)+(
                     limit274 = (* (( (ptr) out←v46968)+1) ),
                     BCK(0, limit274)
                     )) ) = var←c70752;
               };
            };
         }
      else {
         if ((var←c70720 == 1)) {
SOURCE(13844, 48)
            {
               W3 var←c70784;
               (void) RGBFromColor←P6660((word) &var←c70784, color←v24176);
               {
                  word limit275;
                  (* ((( (ptr) out←v46968)+2)+(
                        limit275 = (* (( (ptr) out←v46968)+1) ),
                        BCK(2, limit275)
                        )) ) = var←c70784.f2;
                  };
               {
                  word limit276;
                  (* ((( (ptr) out←v46968)+2)+(
                        limit276 = (* (( (ptr) out←v46968)+1) ),
                        BCK(1, limit276)
                        )) ) = var←c70784.f1;
                  };
               {
                  word limit277;
                  (* ((( (ptr) out←v46968)+2)+(
                        limit277 = (* (( (ptr) out←v46968)+1) ),
                        BCK(0, limit277)
                        )) ) = var←c70784.f0;
                  };
               };
            }
         else {
SOURCE(13905, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   }

static word DataEqualMap←P1920(selfData←v47028, otherData←v47056)
   word selfData←v47028;
   word otherData←v47056;
   {
   register ptr gf←c79136 =  (ptr) &globalframe;
   word var←c47100;
   word a←v24220;
   word b←v24248;
   /* DataEqualMap: */ 
SOURCE(13916, 292)
SOURCE(13948, 29)
   a←v24220 = XR←Narrow(selfData←v47028, (* (( (ptr) gf←c79136)+52) ));
SOURCE(13979, 30)
   b←v24248 = XR←Narrow(otherData←v47056, (* (( (ptr) gf←c79136)+52) ));
SOURCE(14011, 25)
   if ((a←v24220 == b←v24248)) {
SOURCE(14023, 13)
      return(1);
      };
SOURCE(14038, 38)
   if (((*  (ptr) a←v24220 ) != (*  (ptr) b←v24248 ))) {
SOURCE(14062, 14)
      return(0);
      };
SOURCE(14078, 106)
   {
      register word i←v24292 = 0;
      register word noName←c70816;
      noName←c70816 = (*  (ptr) a←v24220 );
      if ((i←v24292 >= noName←c70816)) {
         goto lab←L100003;
         };
      lab←L100006: ;
SOURCE(14107, 77)
      {
         word pd278;
         word limit279;
         word limit280;
         pd278 = (* (( (ptr) (* (( (ptr) gf←c79136)+332)/* var←c66976 */  ))+29) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd278 ))))((* ((( (ptr) a←v24220)+1)+(
                  limit279 = (*  (ptr) a←v24220 ),
                  BCK(i←v24292, limit279)
                  )) ), (* ((( (ptr) b←v24248)+1)+(
                  limit280 = (*  (ptr) b←v24248 ),
                  BCK(i←v24292, limit280)
                  )) ), pd278))) {
SOURCE(14170, 14)
            return(0);
            };
         };
      i←v24292 = (i←v24292 + 1);
      if ((i←v24292 < noName←c70816)) {
         goto lab←L100006;
         };
      lab←L100003: ;
      };
SOURCE(14195, 13)
   return(1);
   }

static word DataMapSize←P1980(structure←v11416)
   word structure←v11416;
   {
   register ptr gf←c79168 =  (ptr) &globalframe;
   word var←c11460;
   word dataMap←v24336;
   /* DataMapSize: */ 
SOURCE(14214, 124)
SOURCE(14273, 41)
   dataMap←v24336 = XR←Narrow((* (( (ptr) structure←v11416)+1) ), (* (( (ptr) gf←c79168)+52) ));
SOURCE(14316, 22)
   return((*  (ptr) dataMap←v24336 ));
   }

static void DataMapGet←P2040(formal←c0434, structure←v11520, i←v11548)
   word formal←c0434;
   word structure←v11520;
   word i←v11548;
   {
   register ptr gf←c79200 =  (ptr) &globalframe;
   W2 var←c11592;
   word dataMap←v24380;
   /* DataMapGet: */ 
SOURCE(14341, 142)
SOURCE(14411, 41)
   dataMap←v24380 = XR←Narrow((* (( (ptr) structure←v11520)+1) ), (* (( (ptr) gf←c79200)+52) ));
SOURCE(14454, 29)
   {
      W2 var←c70880;
      {
         W2 var←c70848;
         var←c70848.f0 = 4;
         {
            word limit281;
            var←c70848.f1 = (* ((( (ptr) dataMap←v24380)+1)+(
                  limit281 = (*  (ptr) dataMap←v24380 ),
                  BCK(i←v11548, limit281)
                  )) );
            };
         var←c70880 = var←c70848;
         };
      var←c11592 = var←c70880;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0434 ) = var←c11592;
   return;
   }

static word StructureFromDataMap←P2100(dataMap←v11652)
   word dataMap←v11652;
   {
   register ptr gf←c79232 =  (ptr) &globalframe;
   word var←c11696;
   word structure←v24424;
   /* StructureFromDataMap: */ 
SOURCE(14589, 198)
SOURCE(14666, 100)
   structure←v24424 = XR←NewObject(8, (* (( (ptr) gf←c79232)+51) ));
   (*  (ptr) structure←v24424 ) = (* (( (ptr) gf←c79232)+10)/* dataMapStructureClass←v5576 */  );
   (* (( (ptr) structure←v24424)+1) ) = dataMap←v11652;
SOURCE(14768, 19)
   return(structure←v24424);
   }

static word NewColorOperatorMap←P2160(maxSampleValue←v11756, map←v11784)
   word maxSampleValue←v11756;
   word map←v11784;
   {
   register ptr gf←c79264 =  (ptr) &globalframe;
   word var←c11932;
   word data←v24468;
   word chromatic←v24496 = 0;
   /* NewColorOperatorMap: */ 
SOURCE(14791, 595)
SOURCE(14915, 49)
   {
      word var←c70944;
      word var←c70976;
      word var←c71008;
      var←c70944 = BCK((maxSampleValue←v11756 + 1), 67108863);
      var←c70976 = ((word) var←c70944 << 2);
      var←c71008 = XR←NewObject((4 + var←c70976), (* (( (ptr) gf←c79264)+52) ));
      (*  (ptr) var←c71008 ) = var←c70944;
      data←v24468 = var←c71008;
      };
SOURCE(14991, 195)
   {
      register word s0←v24540 = 0;
      register word noName←c71040;
      noName←c71040 = maxSampleValue←v11756;
      if ((s0←v24540 > noName←c71040)) {
         goto lab←L100008;
         };
      lab←L100011: ;
      {
         word color←v24584;
         word op←v24612;
SOURCE(15029, 30)
         color←v24584 = (word) ( *( (fPt) ((*  (ptr) map←v11784 ))))(s0←v24540, map←v11784);
SOURCE(15061, 52)
         op←v24612 = (word) NarrowToOpConstantColor←P6420(color←v24584);
SOURCE(15115, 18)
         {
            word limit282;
            (* ((( (ptr) data←v24468)+1)+(
                  limit282 = (*  (ptr) data←v24468 ),
                  BCK(s0←v24540, limit282)
                  )) ) = color←v24584;
            };
SOURCE(15135, 51)
         if ((0 != chromatic←v24496)) {
            chromatic←v24496 =  (unsigned) 1;
            }
         else {
            chromatic←v24496 =  (unsigned) (0 != (*  (ptr) (* (( (ptr) op←v24612)+2) ) ));
            };
         };
      if ((s0←v24540 >= noName←c71040)) {
         goto lab←L100008;
         };
      s0←v24540 = (s0←v24540 + 1);
      goto lab←L100011;
      lab←L100008: ;
      };
SOURCE(15197, 189)
   {
      word pd283;
      pd283 = (* (( (ptr) (* (( (ptr) gf←c79264)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd283 ))))(chromatic←v24496, 1,  ( (0 != chromatic←v24496) ? (* (( (ptr) gf←c79264)+8)
         /* classMapChromatic←v5324 */  ) : (* (( (ptr) gf←c79264)+9)/* classMapMonochrome←v5352 */  ) ) , data←v24468, 0, pd283));
      };
   }

static word ClassBuildMap←P2220(formal←c01298)
   word formal←c01298;
   {
   W8 var←c79296;
   /* declaration of supportedOutputs←v12076 skipped */ 
   register ptr gf←c79328 =  (ptr) &globalframe;
   /* declaration of classBuildMap←v12204 skipped */ 
   /* declaration of var←c71104 skipped */ 
   var←c79296.f4/* supportedOutputs←v12076 */  = formal←c01298;
   /* ClassBuildMap: */ 
SOURCE(15568, 591)
   {
      word tmpAddr284;
      tmpAddr284 = (word) (( (ptr) &var←c79296)+6)/* var←c71104 */ ;
      (*  (ptr) tmpAddr284 ) = ( ((word)  (fPt) Action←P7560) );
      (* (( (ptr) tmpAddr284) + 1) ) = 1;
      };
SOURCE(15568, 591)
   var←c79296.f5/* classBuildMap←v12204 */  = 0;
SOURCE(16100, 59)
   {
      word pd285;
      pd285 = (* (( (ptr) (* (( (ptr) gf←c79328)+333)/* var←c67424 */  ))+14) );
      (void) ( *( (fPt) ((*  (ptr) pd285 ))))((* (( (ptr) gf←c79328)+11)/* classBuildMapTable←v5716 */  ), var←c79296.f4/* supportedOutputs←v12076 */ , (word) (
            ( (bPt) &var←c79296)+24)/* var←c71104 */ , pd285);
      };
SOURCE(15568, 591)
   return(var←c79296.f5/* classBuildMap←v12204 */ );
   }

static void Action←P7560(formal←c0457, found←v57304, val←v57332, formal←c79392)
   word formal←c0457;
   word found←v57304;
   word val←v57332;
   word formal←c79392;
   {
   register ptr gf←c79360 =  (ptr) &globalframe;
   word op←v57376;
   word new←v57404;
   formal←c79392 = (formal←c79392 - 24);
   /* Action: */ 
SOURCE(15675, 419)
SOURCE(15675, 419)
   op←v57376 = 0;
SOURCE(15675, 419)
   new←v57404 = 0;
SOURCE(15707, 387)
   if ((0 != found←v57304)) {
SOURCE(15723, 28)
      (* (( (ptr) formal←c79392)+5) ) = XR←Narrow(val←v57332, (* (( (ptr) gf←c79360)+34) ));
      }
   else {
SOURCE(15760, 302)
      {
         word pd286;
         pd286 = (* (( (ptr) (* (( (ptr) gf←c79360)+332)/* var←c66976 */  ))+48) );
         (* (( (ptr) formal←c79392)+5) ) = (word) ( *( (fPt) ((*  (ptr) pd286 ))))((* (( (ptr) gf←c79360)+75) ), (word) (( (bPt) gf←c79360)+1040)
            /* var←c65728 */ , (word) (( (bPt) gf←c79360)+1032)/* var←c65696 */ , (word) (( (bPt) gf←c79360)+1104)/* var←c65984 */ , (word) (
               ( (bPt) gf←c79360)+1024)/* var←c65664 */ , (word) (( (bPt) gf←c79360)+1016)/* var←c65632 */ 
            , (* (( (ptr) formal←c79392)+4) ), pd286);
         };
SOURCE(16064, 30)
      op←v57376 = 1;
      new←v57404 = (* (( (ptr) formal←c79392)+5) );
      goto lab←L100012;
      };
   /* removed tail goto */ 
   lab←L100012: ;
   (*  (ptr) formal←c0457 ) = op←v57376;
   (* (( (ptr) formal←c0457)+1) ) = new←v57404;
   return;
   }

static word CreateColorOperatorBuildMap←P2280(class←v48296, structure←v48324)
   word class←v48296;
   word structure←v48324;
   {
   W7 var←c79424;
   register ptr gf←c79456 =  (ptr) &globalframe;
   word var←c48368;
   /* declaration of var←c71136 skipped */ 
   word size←v24700;
   /* declaration of v←v24728 skipped */ 
   word baseColorOperator←v24756;
   word colorOperator←v24812;
   /* CreateColorOperatorBuildMap: */ 
SOURCE(16165, 519)
   {
      word tmpAddr287;
      tmpAddr287 = (word) (( (ptr) &var←c79424)+4)/* var←c71136 */ ;
      (*  (ptr) tmpAddr287 ) = ( ((word)  (fPt) map←P7620) );
      (* (( (ptr) tmpAddr287) + 1) ) = 1;
      };
SOURCE(16222, 55)
   {
      word pd288;
      pd288 = (* (( (ptr) (* (( (ptr) gf←c79456)+332)/* var←c66976 */  ))+6) );
      size←v24700 = (word) ( *( (fPt) ((*  (ptr) pd288 ))))(structure←v48324, 2, pd288);
      };
SOURCE(16279, 61)
   {
      word pd289;
      pd289 = (* (( (ptr) (* (( (ptr) gf←c79456)+332)/* var←c66976 */  ))+11) );
      var←c79424.f6/* v←v24728 */  = (word) ( *( (fPt) ((*  (ptr) pd289 ))))(structure←v48324, 0, pd289);
      };
SOURCE(16342, 85)
   {
      word pd290;
      pd290 = (* (( (ptr) (* (( (ptr) gf←c79456)+332)/* var←c66976 */  ))+14) );
      baseColorOperator←v24756 = (word) ( *( (fPt) ((*  (ptr) pd290 ))))(structure←v48324, 1, pd290);
      };
SOURCE(16513, 146)
   {
      word var←c71168;
      {
         word pd291;
         word idx292;
         pd291 = (* (( (ptr) (* (( (ptr) gf←c79456)+332)/* var←c66976 */  ))+5) );
         var←c71168 = (
            idx292 = (word) ((word) ( *( (fPt) ((*  (ptr) pd291 ))))(var←c79424.f6/* v←v24728 */ , pd291) - 1),
            SGNCK(idx292)
            );
         };
      colorOperator←v24812 = (word) NewColorOperatorBuildMap←P2520(baseColorOperator←v24756, var←c71168, (word) (( (bPt) &var←c79424)+16)
         /* var←c71136 */ );
      };
SOURCE(16661, 23)
   return(colorOperator←v24812);
   }

static word map←P7620(i←v24888, formal←c79520)
   word i←v24888;
   word formal←c79520;
   {
   register ptr gf←c79488 =  (ptr) &globalframe;
   word var←c24932;
   formal←c79520 = (formal←c79520 - 16);
   /* map: */ 
SOURCE(16429, 81)
SOURCE(16467, 43)
   {
      word pd293;
      pd293 = (* (( (ptr) (* (( (ptr) gf←c79488)+332)/* var←c66976 */  ))+9) );
      return((word) ( *( (fPt) ((*  (ptr) pd293 ))))((* (( (ptr) formal←c79520)+6) ), i←v24888, pd293));
      };
   }

static word GetCreateDataBuildMap←P2340(colorOperator←v48428)
   word colorOperator←v48428;
   {
   W10 var←c79552;
   register ptr gf←c79584 =  (ptr) &globalframe;
   word var←c48472;
   /* declaration of var←c71232 skipped */ 
   /* declaration of var←c71264 skipped */ 
   /* declaration of data←v24960 skipped */ 
   /* declaration of mapStructure←v25016 skipped */ 
   word structure←v25072;
   /* GetCreateDataBuildMap: */ 
SOURCE(16688, 541)
   {
      word tmpAddr294;
      tmpAddr294 = (word) (( (ptr) &var←c79552)+4)/* var←c71232 */ ;
      (*  (ptr) tmpAddr294 ) = ( ((word)  (fPt) GenerateElements←P7740) );
      (* (( (ptr) tmpAddr294) + 1) ) = 1;
      };
   {
      word tmpAddr295;
      tmpAddr295 = (word) (( (ptr) &var←c79552)+6)/* var←c71264 */ ;
      (*  (ptr) tmpAddr295 ) = ( ((word)  (fPt) MapElements←P7680) );
      (* (( (ptr) tmpAddr295) + 1) ) = 1;
      };
SOURCE(16733, 47)
   (* (( (ptr) &var←c79552)+8)/* data←v24960 */  ) = XR←Narrow((* (( (ptr) colorOperator←v48428)+3) ), (* (( (ptr) gf←c79584)+50)
       ));
SOURCE(16894, 87)
   {
      word pd296;
      pd296 = (* (( (ptr) (* (( (ptr) gf←c79584)+332)/* var←c66976 */  ))+17) );
      (* (( (ptr) &var←c79552)+9)/* mapStructure←v25016 */  ) = (word) ( *( (fPt) ((*  (ptr) pd296 ))))((word) ((( (bPt) &var←c79552)+24)
         /* var←c71264 */ ), pd296);
      };
SOURCE(17119, 89)
   {
      word pd297;
      pd297 = (* (( (ptr) (* (( (ptr) gf←c79584)+332)/* var←c66976 */  ))+17) );
      structure←v25072 = (word) ( *( (fPt) ((*  (ptr) pd297 ))))((word) ((( (bPt) &var←c79552)+16)/* var←c71232 */ ), pd297);
      };
SOURCE(17210, 19)
   return(structure←v25072);
   }

static void MapElements←P7680(elementAction←v57808, formal←c79616)
   word elementAction←v57808;
   word formal←c79616;
   {
   formal←c79616 = (formal←c79616 - 24);
   /* MapElements: */ 
SOURCE(16782, 109)
SOURCE(16816, 75)
   {
      register word i←v25116 = 0;
      register word noName←c71296;
      noName←c71296 = (*  (ptr) (*  (ptr) (* (( (ptr) formal←c79616)+8) ) ) );
      if ((i←v25116 >= noName←c71296)) {
         goto lab←L100013;
         };
      lab←L100016: ;
SOURCE(16850, 41)
      {
         W2 var←c71328;
         word var←c71360;
         var←c71328.f0 = 2;
         {
            word limit298;
            var←c71360 = (*  (ptr) (* (( (ptr) formal←c79616)+8) ) );
            var←c71328.f1 = (* ((( (ptr) var←c71360)+1)+(
                  limit298 = (*  (ptr) var←c71360 ),
                  BCK(i←v25116, limit298)
                  )) );
            };
         (void) ( *( (fPt) ((*  (ptr) elementAction←v57808 ))))(var←c71328, elementAction←v57808);
         };
      i←v25116 = (i←v25116 + 1);
      if ((i←v25116 < noName←c71296)) {
         goto lab←L100016;
         };
      lab←L100013: ;
      };
   }

static void GenerateElements←P7740(elementAction←v57868, formal←c79648)
   word elementAction←v57868;
   word formal←c79648;
   {
   formal←c79648 = (formal←c79648 - 16);
   /* GenerateElements: */ 
SOURCE(16983, 131)
SOURCE(17022, 40)
   {
      W2 var←c71392;
      var←c71392.f0 = 1;
      var←c71392.f1 = (* (( (ptr) formal←c79648)+9) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v57868 ))))(var←c71392, elementAction←v57868);
      };
SOURCE(17064, 50)
   {
      W2 var←c71424;
      var←c71424.f0 = 5;
      var←c71424.f1 = (* (( (ptr) (* (( (ptr) formal←c79648)+8) ))+1) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v57868 ))))(var←c71424, elementAction←v57868);
      };
   }

static void ApplyBuildMap←P2400(colorOperator←v48532, formal←c01299, colorSpace←v48588, out←v48616)
   word colorOperator←v48532;
   word formal←c01299;
   word colorSpace←v48588;
   word out←v48616;
   {
   W9 var←c79680;
   /* declaration of pixelIn←v48560 skipped */ 
   register ptr gf←c79712 =  (ptr) &globalframe;
   /* declaration of var←c71456 skipped */ 
   /* declaration of data←v25160 skipped */ 
   word class←v25188;
   /* declaration of pe←v25216 skipped */ 
   (* (( (ptr) &var←c79680)+4)/* pixelIn←v48560 */  ) = formal←c01299;
   /* ApplyBuildMap: */ 
SOURCE(17233, 456)
   {
      word tmpAddr299;
      tmpAddr299 = (word) (( (ptr) &var←c79680)+5)/* var←c71456 */ ;
      (*  (ptr) tmpAddr299 ) = ( ((word)  (fPt) PixelMapped←P7848) );
      (* (( (ptr) tmpAddr299) + 1) ) = 1;
      };
SOURCE(17262, 47)
   (* (( (ptr) &var←c79680)+7)/* data←v25160 */  ) = XR←Narrow((* (( (ptr) colorOperator←v48532)+3) ), (* (( (ptr) gf←c79712)+50)
       ));
SOURCE(17311, 52)
   class←v25188 = (* (( (ptr) (* (( (ptr) (* (( (ptr) &var←c79680)+7)/* data←v25160 */  ))+1) ))+2) );
SOURCE(17365, 75)
   {
      word pd300;
      pd300 = (* (( (ptr) (* (( (ptr) gf←c79712)+332)/* var←c66976 */  ))+40) );
      (* (( (ptr) &var←c79680)+8)/* pe←v25216 */  ) = (word) ( *( (fPt) ((*  (ptr) pd300 ))))((* ((( (ptr) (* (( (ptr) &var←c79680)+7)
            /* data←v25160 */  ))+1)) ), pd300);
      };
SOURCE(17628, 61)
   {
      word pd301;
      pd301 = (* (( (ptr) class←v25188)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd301 ))))((* (( (ptr) (* (( (ptr) &var←c79680)+7)/* data←v25160 */  ))+1) ), (word) (( (bPt) &var←c79680)+20)
         /* var←c71456 */ , colorSpace←v48588, out←v48616, pd301);
      };
   }

static word PixelMapped←P7848(i←v58156, formal←c79776)
   word i←v58156;
   word formal←c79776;
   {
   register ptr gf←c79744 =  (ptr) &globalframe;
   word var←c58200;
   word check←v25288;
   word s0←v25316;
   word s←v25344;
   word t←v25372;
   formal←c79776 = (formal←c79776 - 20);
   /* PixelMapped: */ 
SOURCE(17442, 181)
SOURCE(17469, 17)
   check←v25288 = BCK(i←v58156, 1);
SOURCE(17488, 21)
   {
      word pd302;
      pd302 = (* (( (ptr) formal←c79776)+4) );
      s0←v25316 = (word) ( *( (fPt) ((*  (ptr) pd302 ))))(0, pd302);
      };
SOURCE(17511, 41)
   s←v25344 = (word) SampleEncodingFetch←P360((*  (ptr) (* (( (ptr) formal←c79776)+7) ) ), s0←v25316);
SOURCE(17554, 57)
   {
      word pd303;
      pd303 = (* (( (ptr) (* (( (ptr) gf←c79744)+332)/* var←c66976 */  ))+21) );
      t←v25372 = (word) ( *( (fPt) ((*  (ptr) pd303 ))))((* (( (ptr) formal←c79776)+8) ), i←v58156, s←v25344, pd303);
      };
SOURCE(17613, 10)
   return(t←v25372);
   }

static word DataEqualBuildMap←P2460(selfData←v48676, otherData←v48704)
   word selfData←v48676;
   word otherData←v48704;
   {
   register ptr gf←c79808 =  (ptr) &globalframe;
   word var←c48748;
   word a←v25436;
   word b←v25464;
   /* DataEqualBuildMap: */ 
SOURCE(17695, 304)
SOURCE(17732, 34)
   a←v25436 = XR←Narrow(selfData←v48676, (* (( (ptr) gf←c79808)+50) ));
SOURCE(17768, 35)
   b←v25464 = XR←Narrow(otherData←v48704, (* (( (ptr) gf←c79808)+50) ));
SOURCE(17805, 56)
   if (((* (( (ptr) a←v25436)+1) ) != (* (( (ptr) b←v25464)+1) ))) {
SOURCE(17847, 14)
      return(0);
      };
SOURCE(17863, 42)
   if (((*  (ptr) (*  (ptr) a←v25436 ) ) != (*  (ptr) (*  (ptr) b←v25464 ) ))) {
SOURCE(17891, 14)
      return(0);
      };
SOURCE(17907, 77)
   {
      register word i←v25508 = 0;
      register word noName←c71488;
      word var←c71520;
      word var←c01261;
      word var←c71552;
      noName←c71488 = (*  (ptr) (*  (ptr) a←v25436 ) );
      if ((i←v25508 >= noName←c71488)) {
         goto lab←L100017;
         };
      lab←L100020: ;
SOURCE(17938, 46)
      {
         word x305;
         word limit306;
         word x307;
         var←c71520 = (*  (ptr) a←v25436 );
         {
            word limit304;
            var←c01261 = (* ((( (ptr) var←c71520)+1)+(
                  limit304 = (*  (ptr) var←c71520 ),
                  BCK(i←v25508, limit304)
                  )) );
            };
         var←c71552 = (*  (ptr) b←v25464 );
         if ((((
            x305 = var←c01261,  *(float*)&x305
            ) != (
            x307 = (* ((( (ptr) var←c71552)+1)+(
                  limit306 = (*  (ptr) var←c71552 ),
                  BCK(i←v25508, limit306)
                  )) ),  *(float*)&x307
            ))
         )) {
SOURCE(17962, 22)
            return(0);
            };
         };
      i←v25508 = (i←v25508 + 1);
      if ((i←v25508 < noName←c71488)) {
         goto lab←L100020;
         };
      lab←L100017: ;
      };
SOURCE(17986, 13)
   return(1);
   }

static word NewColorOperatorBuildMap←P2520(colorOperator←v12264, maxSampleValue←v12292, map←v12320)
   word colorOperator←v12264;
   word maxSampleValue←v12292;
   word map←v12320;
   {
   register ptr gf←c79840 =  (ptr) &globalframe;
   word var←c12468;
   word data←v25552;
   /* NewColorOperatorBuildMap: */ 
SOURCE(18005, 517)
SOURCE(18155, 41)
   data←v25552 = XR←NewObject(8, (* (( (ptr) gf←c79840)+50) ));
SOURCE(18198, 92)
   {
      word pd308;
      pd308 = (* (( (ptr) (* (( (ptr) gf←c79840)+332)/* var←c66976 */  ))+25) );
      (*  (ptr) data←v25552 ) = (word) ( *( (fPt) ((*  (ptr) pd308 ))))((maxSampleValue←v12292 + 1), map←v12320, pd308);
      };
SOURCE(18292, 34)
   (* (( (ptr) data←v25552)+1) ) = colorOperator←v12264;
SOURCE(18328, 194)
   {
      word var←c71616;
      var←c71616 = (word) ClassBuildMap←P2220((* ((( (ptr) (* (( (ptr) colorOperator←v12264)+2) ))+6)) ));
      {
         word pd309;
         pd309 = (* (( (ptr) (* (( (ptr) gf←c79840)+332)/* var←c66976 */  ))+49) );
         return((word) ( *( (fPt) ((*  (ptr) pd309 ))))((*  (ptr) colorOperator←v12264 ), 1, var←c71616, data←v25552, 0, pd309));
         };
      };
   }

static word CreateColorOperatorRGB←P2580(class←v48808, structure←v48836)
   word class←v48808;
   word structure←v48836;
   {
   register ptr gf←c79872 =  (ptr) &globalframe;
   word var←c48880;
   word consistencyTest←v25596;
   word sWhite←v25624;
   word sBlack←v25652;
   word pixelEncodingStructure←v25680;
   word map←v25708;
   word appearanceHints←v25736;
   word colorOperator←v25764;
   /* CreateColorOperatorRGB: */ 
SOURCE(18932, 651)
SOURCE(18984, 66)
   {
      word pd310;
      pd310 = (* (( (ptr) (* (( (ptr) gf←c79872)+332)/* var←c66976 */  ))+6) );
      consistencyTest←v25596 = (word) ( *( (fPt) ((*  (ptr) pd310 ))))(structure←v48836, 4, pd310);
      };
SOURCE(19052, 56)
   {
      word pd311;
      pd311 = (* (( (ptr) (* (( (ptr) gf←c79872)+332)/* var←c66976 */  ))+9) );
      sWhite←v25624 = (word) ( *( (fPt) ((*  (ptr) pd311 ))))(structure←v48836, 0, pd311);
      };
SOURCE(19110, 56)
   {
      word pd312;
      pd312 = (* (( (ptr) (* (( (ptr) gf←c79872)+332)/* var←c66976 */  ))+9) );
      sBlack←v25652 = (word) ( *( (fPt) ((*  (ptr) pd312 ))))(structure←v48836, 1, pd312);
      };
SOURCE(19168, 93)
   {
      word pd313;
      pd313 = (* (( (ptr) (* (( (ptr) gf←c79872)+332)/* var←c66976 */  ))+12) );
      pixelEncodingStructure←v25680 = (word) ( *( (fPt) ((*  (ptr) pd313 ))))(structure←v48836, 2, 3, pd313);
      };
SOURCE(19263, 90)
   {
      word pd314;
      pd314 = (* (( (ptr) (* (( (ptr) gf←c79872)+332)/* var←c66976 */  ))+23) );
      map←v25708 = (word) ( *( (fPt) ((*  (ptr) pd314 ))))(pixelEncodingStructure←v25680, pd314);
      };
SOURCE(19355, 75)
   {
      word pd315;
      pd315 = (* (( (ptr) (* (( (ptr) gf←c79872)+332)/* var←c66976 */  ))+11) );
      appearanceHints←v25736 = (word) ( *( (fPt) ((*  (ptr) pd315 ))))(structure←v48836, 3, pd315);
      };
SOURCE(19432, 126)
   colorOperator←v25764 = (word) NewColorOperatorRGB←P2880(sWhite←v25624, sBlack←v25652, map←v25708, appearanceHints←v25736)
   ;
SOURCE(19560, 23)
   return(colorOperator←v25764);
   }

static word GetCreateDataRGB←P2640(formal←c01300)
   word formal←c01300;
   {
   W8 var←c79904;
   /* declaration of colorOperator←v48940 skipped */ 
   register ptr gf←c79936 =  (ptr) &globalframe;
   word var←c48984;
   /* declaration of var←c71648 skipped */ 
   /* declaration of data←v25808 skipped */ 
   word structure←v25864;
   var←c79904.f4/* colorOperator←v48940 */  = formal←c01300;
   /* GetCreateDataRGB: */ 
SOURCE(19587, 588)
   {
      word tmpAddr316;
      tmpAddr316 = (word) (( (ptr) &var←c79904)+5)/* var←c71648 */ ;
      (*  (ptr) tmpAddr316 ) = ( ((word)  (fPt) GenerateElements←P7956) );
      (* (( (ptr) tmpAddr316) + 1) ) = 1;
      };
SOURCE(19627, 42)
   var←c79904.f7/* data←v25808 */  = XR←Narrow((* (( (ptr) var←c79904.f4/* colorOperator←v48940 */ )+3) ), (* (( (ptr) gf←c79936)+49)
       ));
SOURCE(20065, 89)
   {
      word pd317;
      pd317 = (* (( (ptr) (* (( (ptr) gf←c79936)+332)/* var←c66976 */  ))+17) );
      structure←v25864 = (word) ( *( (fPt) ((*  (ptr) pd317 ))))((word) ((( (bPt) &var←c79904)+20)/* var←c71648 */ ), pd317);
      };
SOURCE(20156, 19)
   return(structure←v25864);
   }

static void GenerateElements←P7956(elementAction←v58780, formal←c80000)
   word elementAction←v58780;
   word formal←c80000;
   {
   register ptr gf←c79968 =  (ptr) &globalframe;
   formal←c80000 = (formal←c80000 - 20);
   /* GenerateElements: */ 
SOURCE(19671, 391)
SOURCE(19710, 34)
   {
      W2 var←c71680;
      var←c71680.f0 = 2;
      var←c71680.f1 = (*  (ptr) (* (( (ptr) formal←c80000)+7) ) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v58780 ))))(var←c71680, elementAction←v58780);
      };
SOURCE(19746, 34)
   {
      W2 var←c71712;
      var←c71712.f0 = 2;
      var←c71712.f1 = (* (( (ptr) (* (( (ptr) formal←c80000)+7) ))+1) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v58780 ))))(var←c71712, elementAction←v58780);
      };
SOURCE(19782, 144)
   if (((* (( (ptr) (* (( (ptr) formal←c80000)+7) ))+2) ) == 0)) {
SOURCE(19809, 24)
      {
         W2 var←c71744;
         var←c71744.f0 = 3;
         var←c71744.f1 = 0;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v58780 ))))(var←c71744, elementAction←v58780);
         };
      }
   else {
SOURCE(19842, 84)
      {
         word var←c71776;
         {
            word pd318;
            pd318 = (* (( (ptr) (* (( (ptr) gf←c79968)+332)/* var←c66976 */  ))+24) );
            var←c71776 = (word) ( *( (fPt) ((*  (ptr) pd318 ))))((* ((( (ptr) (* (( (ptr) formal←c80000)+7) ))+2)) ), pd318);
            };
         {
            W2 var←c71808;
            var←c71808.f0 = 1;
            var←c71808.f1 = var←c71776;
            (void) ( *( (fPt) ((*  (ptr) elementAction←v58780 ))))(var←c71808, elementAction←v58780);
            };
         };
      };
SOURCE(19929, 133)
   if (((* (( (ptr) (* (( (ptr) formal←c80000)+4) ))+4) ) == 0)) {
SOURCE(19975, 29)
      {
         W2 var←c71840;
         var←c71840.f0 = 3;
         var←c71840.f1 = 0;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v58780 ))))(var←c71840, elementAction←v58780);
         };
      }
   else {
SOURCE(20004, 58)
      {
         W2 var←c71872;
         var←c71872.f0 = 1;
         var←c71872.f1 = (* (( (ptr) (* (( (ptr) formal←c80000)+4) ))+4) );
         (void) ( *( (fPt) ((*  (ptr) elementAction←v58780 ))))(var←c71872, elementAction←v58780);
         };
      };
   }

static word GetPixelEncodingRGB←P2700(colorOperator←v49044)
   word colorOperator←v49044;
   {
   register ptr gf←c80032 =  (ptr) &globalframe;
   word var←c49088;
   word data←v25908;
   /* GetPixelEncodingRGB: */ 
SOURCE(20179, 108)
SOURCE(20225, 42)
   data←v25908 = XR←Narrow((* (( (ptr) colorOperator←v49044)+3) ), (* (( (ptr) gf←c80032)+49) ));
SOURCE(20269, 18)
   return((* (( (ptr) data←v25908)+2) ));
   }

static void ApplyRGB←P2760(colorOperator←v49148, pixelIn←v49176, colorSpace←v49204, out←v49232)
   word colorOperator←v49148;
   word pixelIn←v49176;
   word colorSpace←v49204;
   word out←v49232;
   {
   register ptr gf←c80064 =  (ptr) &globalframe;
   word data←v25952;
   word sWhite←v25980;
   word sBlack←v26008;
   word d←v26036;
   word pm←v26064;
   W3 x←v26092;
   /* ApplyRGB: */ 
SOURCE(20291, 419)
SOURCE(20315, 42)
   data←v25952 = XR←Narrow((* (( (ptr) colorOperator←v49148)+3) ), (* (( (ptr) gf←c80064)+49) ));
SOURCE(20359, 26)
   sWhite←v25980 = (*  (ptr) data←v25952 );
SOURCE(20387, 26)
   sBlack←v26008 = (* (( (ptr) data←v25952)+1) );
SOURCE(20415, 33)
   {
      word x319;
      word x320;
      word x321;
      *(float*)&d←v26036 = (
         x319 = (*  (ptr) &fc133 ),  *(float*)&x319
         ) / ((
         x320 = sWhite←v25980,  *(float*)&x320
         ) - (
         x321 = sBlack←v26008,  *(float*)&x321
         ));
      };
SOURCE(20450, 28)
   pm←v26064 = (* (( (ptr) data←v25952)+2) );
SOURCE(20505, 59)
   {
      register word i←v26172 = 0;
      lab←L100024: ;
SOURCE(20532, 32)
      {
         word var←c71904;
         {
            word x322;
            word x323;
            word x324;
            *(float*)&var←c71904 = ((
               x322 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v49176 ))))(i←v26172, pixelIn←v49176),  *(float*)&x322
               ) - (
               x323 = sBlack←v26008,  *(float*)&x323
               )) * (
               x324 = d←v26036,  *(float*)&x324
               );
            };
         (* (( (ptr) &x←v26092)+i←v26172) ) = var←c71904;
         };
      if ((i←v26172 >= 2)) {
         goto lab←L100021;
         };
      i←v26172 = (i←v26172 + 1);
      goto lab←L100024;
      lab←L100021: ;
      };
SOURCE(20575, 135)
   {
      word var←c71936;
      var←c71936 = colorSpace←v49204;
      if ((var←c71936 == 1)) {
SOURCE(20606, 45)
         {
            register word i←v26236 = 0;
            lab←L100028: ;
SOURCE(20630, 21)
            {
               word limit325;
               (* ((( (ptr) out←v49232)+2)+(
                     limit325 = (* (( (ptr) out←v49232)+1) ),
                     BCK(i←v26236, limit325)
                     )) ) = (* (( (ptr) &x←v26092)+BCK(i←v26236, 3)) );
               };
            if ((i←v26236 >= 2)) {
               goto lab←L100025;
               };
            i←v26236 = (i←v26236 + 1);
            goto lab←L100028;
            lab←L100025: ;
            };
         }
      else {
         if ((var←c71936 == 0)) {
SOURCE(20661, 49)
            {
               word x←v62564;
               {
                  word x326;
                  word x327;
                  word x328;
                  word x329;
                  word x330;
                  word x331;
                  *(float*)&x←v62564 = (((
                     x326 = (*  (ptr) &fc106 ),  *(float*)&x326
                     ) * (
                     x327 = x←v26092.f0,  *(float*)&x327
                     )) + ((
                     x328 = (*  (ptr) &fc107 ),  *(float*)&x328
                     ) * (
                     x329 = x←v26092.f1,  *(float*)&x329
                     ))) + ((
                     x330 = (*  (ptr) &fc108 ),  *(float*)&x330
                     ) * (
                     x331 = x←v26092.f2,  *(float*)&x331
                     ));
                  };
SOURCE(2971, 27)
               {
                  word x332;
                  word x333;
                  word limit334;
                  word x335;
                  word x336;
                  word limit337;
                  word limit338;
                  if (((
                     x332 = x←v62564,  *(float*)&x332
                     ) <= (
                     x333 = (*  (ptr) &fc95 ),  *(float*)&x333
                     ))) {
                     (* ((( (ptr) out←v49232)+2)+(
                           limit334 = (* (( (ptr) out←v49232)+1) ),
                           BCK(0, limit334)
                           )) ) = (*  (ptr) &fc95 );
                     }
                  else {
                     if (((
                        x335 = x←v62564,  *(float*)&x335
                        ) > (
                        x336 = (*  (ptr) &fc133 ),  *(float*)&x336
                        ))) {
                        (* ((( (ptr) out←v49232)+2)+(
/*1*/   limit337 = (* (( (ptr) out←v49232)+1) ),
/*1*/   BCK(0, limit337)
/*1*/   )) ) = (*  (ptr) &fc133 );
                        }
                     else {
                        (* ((( (ptr) out←v49232)+2)+(
/*1*/   limit338 = (* (( (ptr) out←v49232)+1) ),
/*1*/   BCK(0, limit338)
/*1*/   )) ) = x←v62564;
                        };
                     };
                  };
               };
            }
         else {
SOURCE(20726, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
   }

static word DataEqualRGB←P2820(selfData←v49292, otherData←v49320)
   word selfData←v49292;
   word otherData←v49320;
   {
   register ptr gf←c80096 =  (ptr) &globalframe;
   word var←c49364;
   word a←v26280;
   word b←v26308;
   /* DataEqualRGB: */ 
SOURCE(20737, 259)
SOURCE(20769, 29)
   a←v26280 = XR←Narrow(selfData←v49292, (* (( (ptr) gf←c80096)+49) ));
SOURCE(20800, 30)
   b←v26308 = XR←Narrow(otherData←v49320, (* (( (ptr) gf←c80096)+49) ));
SOURCE(20832, 69)
   {
      word x339;
      word x340;
      word x341;
      word x342;
      if (((
         x339 = (*  (ptr) a←v26280 ),  *(float*)&x339
         ) != (
         x340 = (*  (ptr) b←v26308 ),  *(float*)&x340
         )) || ((
         x341 = (* (( (ptr) a←v26280)+1) ),  *(float*)&x341
         ) != (
         x342 = (* (( (ptr) b←v26308)+1) ),  *(float*)&x342
         ))) {
SOURCE(20887, 14)
         return(0);
         };
      };
SOURCE(20903, 78)
   {
      word pd343;
      pd343 = (* (( (ptr) (* (( (ptr) gf←c80096)+332)/* var←c66976 */  ))+22) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd343 ))))((* (( (ptr) a←v26280)+2) ), (* (( (ptr) b←v26308)+2) ), pd343))) {
SOURCE(20967, 14)
         return(0);
         };
      };
SOURCE(20983, 13)
   return(1);
   }

static word NewColorOperatorRGB←P2880(sWhite←v12640, sBlack←v12668, map←v12696, appearanceHints←v12724)
   word sWhite←v12640;
   word sBlack←v12668;
   word map←v12696;
   word appearanceHints←v12724;
   {
   register ptr gf←c80128 =  (ptr) &globalframe;
   word var←c12768;
   word data←v26352;
   /* NewColorOperatorRGB: */ 
SOURCE(21002, 379)
SOURCE(21156, 76)
   data←v26352 = XR←NewObject(12, (* (( (ptr) gf←c80128)+49) ));
   (*  (ptr) data←v26352 ) = sWhite←v12640;
   (* (( (ptr) data←v26352)+1) ) = sBlack←v12668;
   (* (( (ptr) data←v26352)+2) ) = map←v12696;
SOURCE(21234, 147)
   {
      word pd344;
      pd344 = (* (( (ptr) (* (( (ptr) gf←c80128)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd344 ))))(1, 3, (* (( (ptr) gf←c80128)+12)/* classRGB←v5968 */  ), data←v26352, appearanceHints←v12724, pd344)
      );
      };
   }

static word ColorFromRGB←P2940(rgb←v12828)
   W3 rgb←v12828;
   {
   register ptr gf←c80160 =  (ptr) &globalframe;
   word var←c12872;
   word color←v26396;
   /* ColorFromRGB: */ 
SOURCE(21446, 329)
SOURCE(21513, 53)
   color←v26396 = XR←NewObject(28, (* (( (ptr) gf←c80160)+62) ));
   (* (( (ptr) color←v26396)+3) ) = 3;
SOURCE(21568, 29)
   (* (( (ptr) color←v26396)+2) ) = (* (( (ptr) gf←c80160)+13)/* rgb1000←v6164 */  );
SOURCE(21599, 52)
   {
      word var←c72128;
      {
         float tf345;
         var←c72128 = (
            tf345 = (float)(unsigned)(word) SampleFromReal←P300(rgb←v12828.f0, 1000),  *(word*)&tf345
            );
         };
      {
         word limit346;
         (* ((( (ptr) color←v26396)+4)+(
               limit346 = (* (( (ptr) color←v26396)+3) ),
               BCK(0, limit346)
               )) ) = var←c72128;
         };
      };
SOURCE(21653, 52)
   {
      word var←c72160;
      {
         float tf347;
         var←c72160 = (
            tf347 = (float)(unsigned)(word) SampleFromReal←P300(rgb←v12828.f1, 1000),  *(word*)&tf347
            );
         };
      {
         word limit348;
         (* ((( (ptr) color←v26396)+4)+(
               limit348 = (* (( (ptr) color←v26396)+3) ),
               BCK(1, limit348)
               )) ) = var←c72160;
         };
      };
SOURCE(21707, 52)
   {
      word var←c72192;
      {
         float tf349;
         var←c72192 = (
            tf349 = (float)(unsigned)(word) SampleFromReal←P300(rgb←v12828.f2, 1000),  *(word*)&tf349
            );
         };
      {
         word limit350;
         (* ((( (ptr) color←v26396)+4)+(
               limit350 = (* (( (ptr) color←v26396)+3) ),
               BCK(2, limit350)
               )) ) = var←c72192;
         };
      };
SOURCE(21761, 14)
   return(color←v26396);
   }

static word InitSolidColors←P3000()
   {
   W6 var←c80192;
   register ptr gf←c80224 =  (ptr) &globalframe;
   word var←c13200;
   /* declaration of var←c72224 skipped */ 
   word a←v26440;
   /* InitSolidColors: */ 
SOURCE(21931, 658)
   {
      word tmpAddr351;
      tmpAddr351 = (word) (( (ptr) &var←c80192)+4)/* var←c72224 */ ;
      (*  (ptr) tmpAddr351 ) = ( ((word)  (fPt) Def←P8112) );
      (* (( (ptr) tmpAddr351) + 1) ) = 1;
      };
SOURCE(22005, 81)
   a←v26440 = XR←NewObject(32, (* (( (ptr) gf←c80224)+48) ));
SOURCE(22212, 44)
   (*  (ptr) a←v26440 ) = (word) Def←P8112((* (( (ptr) gf←c80224)+79) ), (*  (ptr) &fc95 ), (*  (ptr) &fc95 ), (*  (ptr) &fc95 ), (word) (
         ( (bPt) &var←c80192)+16)/* var←c72224 */ );
SOURCE(22258, 40)
   (* (( (ptr) a←v26440)+1) ) = (word) Def←P8112((* (( (ptr) gf←c80224)+80) ), (*  (ptr) &fc133 ), (*  (ptr) &fc95 ), (*  (ptr) &fc95 ), (word) (
         ( (bPt) &var←c80192)+16)/* var←c72224 */ );
SOURCE(22300, 44)
   (* (( (ptr) a←v26440)+2) ) = (word) Def←P8112((* (( (ptr) gf←c80224)+81) ), (*  (ptr) &fc95 ), (*  (ptr) &fc133 ), (*  (ptr) &fc95 ), (word) (
         ( (bPt) &var←c80192)+16)/* var←c72224 */ );
SOURCE(22346, 42)
   (* (( (ptr) a←v26440)+3) ) = (word) Def←P8112((* (( (ptr) gf←c80224)+82) ), (*  (ptr) &fc95 ), (*  (ptr) &fc95 ), (*  (ptr) &fc133 ), (word) (
         ( (bPt) &var←c80192)+16)/* var←c72224 */ );
SOURCE(22390, 42)
   (* (( (ptr) a←v26440)+4) ) = (word) Def←P8112((* (( (ptr) gf←c80224)+83) ), (*  (ptr) &fc95 ), (*  (ptr) &fc133 ), (*  (ptr) &fc133 ), (word) (
         ( (bPt) &var←c80192)+16)/* var←c72224 */ );
SOURCE(22434, 48)
   (* (( (ptr) a←v26440)+5) ) = (word) Def←P8112((* (( (ptr) gf←c80224)+84) ), (*  (ptr) &fc133 ), (*  (ptr) &fc95 ), (*  (ptr) &fc133 ), (word) (
         ( (bPt) &var←c80192)+16)/* var←c72224 */ );
SOURCE(22484, 46)
   (* (( (ptr) a←v26440)+6) ) = (word) Def←P8112((* (( (ptr) gf←c80224)+85) ), (*  (ptr) &fc133 ), (*  (ptr) &fc133 ), (*  (ptr) &fc95 ), (word) (
         ( (bPt) &var←c80192)+16)/* var←c72224 */ );
SOURCE(22532, 44)
   (* (( (ptr) a←v26440)+7) ) = (word) Def←P8112((* (( (ptr) gf←c80224)+86) ), (*  (ptr) &fc133 ), (*  (ptr) &fc133 ), (*  (ptr) &fc133 ), (word) (
         ( (bPt) &var←c80192)+16)/* var←c72224 */ );
SOURCE(22578, 11)
   return(a←v26440);
   }

static word Def←P8112(name←v26588, r←v26616, g←v26644, b←v26672, formal←c80288)
   word name←v26588;
   word r←v26616;
   word g←v26644;
   word b←v26672;
   word formal←c80288;
   {
   register ptr gf←c80256 =  (ptr) &globalframe;
   word var←c26716;
   formal←c80288 = (formal←c80288 - 16);
   /* Def: */ 
SOURCE(22088, 121)
SOURCE(22154, 55)
   {
      W3 var←c72352;
      word var←c72320;
      var←c72352.f0 = r←v26616;
      var←c72352.f1 = g←v26644;
      var←c72352.f2 = b←v26672;
      var←c72320 = (word) ColorFromRGB←P2940(var←c72352);
      return((word) Define←P6840(name←v26588, (* (( (ptr) gf←c80256)+87) ), var←c72320));
      };
   }

static word ColorFromHSV←P3060(H←v13288, S←v13316, V←v13344)
   word H←v13288;
   word S←v13316;
   word V←v13344;
   {
   word var←c13388;
   /* ColorFromHSV: */ 
SOURCE(22592, 115)
SOURCE(22664, 43)
   {
      W3 var←c0586;
      W3 var←c72416;
      (void) RGBFromHSV←P3240((word) &var←c0586, H←v13288, S←v13316, V←v13344);
      var←c72416 = var←c0586;
      return((word) ColorFromRGB←P2940(var←c72416));
      };
   }

static void HSVFromColor←P3120(formal←c0595, c←v13448)
   word formal←c0595;
   word c←v13448;
   {
   word H←v13492;
   word S←v13520;
   word V←v13548;
   /* HSVFromColor: */ 
SOURCE(22711, 110)
SOURCE(22786, 35)
   {
      W3 var←c72480;
      {
         W3 var←c72448;
         (void) RGBFromColor←P6660((word) &var←c72448, c←v13448);
         {
            W3 var←c0594;
            (void) HSVFromRGB←P3300((word) &var←c0594, var←c72448);
            var←c72480 = var←c0594;
            };
         };
      H←v13492 = var←c72480.f0;
      S←v13520 = var←c72480.f1;
      V←v13548 = var←c72480.f2;
      /* removed tail goto */ 
      };
   (*  (ptr) formal←c0595 ) = H←v13492;
   (* (( (ptr) formal←c0595)+1) ) = S←v13520;
   (* (( (ptr) formal←c0595)+2) ) = V←v13548;
   return;
   }

static word ToRange←P3180(v←v13608)
   word v←v13608;
   {
   word var←c13652;
   /* ToRange: */ 
SOURCE(22825, 90)
SOURCE(22868, 47)
   {
      word x352;
      word x353;
      word x354;
      word x355;
      if (((
         x352 = v←v13608,  *(float*)&x352
         ) < (
         x353 = (*  (ptr) &fc95 ),  *(float*)&x353
         ))) {
         return((*  (ptr) &fc95 ));
         }
      else {
         if (((
            x354 = v←v13608,  *(float*)&x354
            ) > (
            x355 = (*  (ptr) &fc133 ),  *(float*)&x355
            ))) {
            return((*  (ptr) &fc133 ));
            }
         else {
            return(v←v13608);
            };
         };
      };
   }

static void RGBFromHSV←P3240(formal←c0608, hue←v13712, saturation←v13740, value←v13768)
   word formal←c0608;
   word hue←v13712;
   word saturation←v13740;
   word value←v13768;
   {
   register ptr gf←c80320 =  (ptr) &globalframe;
   W3 var←c13812;
   word ihue←v26744;
   word fhue←v26772;
   word m←v26800;
   word n←v26828;
   word k←v26856;
   /* RGBFromHSV: */ 
SOURCE(22922, 642)
SOURCE(23020, 61)
   {
      word x356;
      word x357;
      word x358;
      word x359;
      if (((
         x356 = value←v13768,  *(float*)&x356
         ) == (
         x357 = (*  (ptr) &fc95 ),  *(float*)&x357
         )) || ((
         x358 = saturation←v13740,  *(float*)&x358
         ) == (
         x359 = (*  (ptr) &fc95 ),  *(float*)&x359
         ))) {
SOURCE(23052, 29)
         var←c13812.f0 = value←v13768;
         var←c13812.f1 = value←v13768;
         var←c13812.f2 = value←v13768;
         goto lab←L100031;
         };
      };
SOURCE(23083, 18)
   hue←v13712 = (word) ToRange←P3180(hue←v13712);
SOURCE(23103, 32)
   saturation←v13740 = (word) ToRange←P3180(saturation←v13740);
SOURCE(23137, 22)
   value←v13768 = (word) ToRange←P3180(value←v13768);
SOURCE(23161, 11)
   {
      word x360;
      word x362;
      *(float*)&hue←v13712 = (
         x360 = hue←v13712,  *(float*)&x360
         ) * (
         x362 = (*  (ptr) &fc361 ),  *(float*)&x362
         );
      };
SOURCE(23174, 20)
   {
      word pd363;
      pd363 = (* (( (ptr) (* (( (ptr) gf←c80320)+337)/* var←c70656 */  ))+5) );
      ihue←v26744 = (word) ( *( (fPt) ((*  (ptr) pd363 ))))(hue←v13712, pd363);
      };
SOURCE(23210, 15)
   {
      word x364;
      *(float*)&fhue←v26772 = (
         x364 = hue←v13712,  *(float*)&x364
         ) - (float)(int)ihue←v26744;
      };
SOURCE(23244, 23)
   if (( (int)ihue←v26744 ==  (int)6)) {
SOURCE(23259, 8)
      ihue←v26744 = 0;
      };
SOURCE(23269, 24)
   {
      word x365;
      word x366;
      word x367;
      *(float*)&m←v26800 = (
         x365 = value←v13768,  *(float*)&x365
         ) * ((
         x366 = (*  (ptr) &fc133 ),  *(float*)&x366
         ) - (
         x367 = saturation←v13740,  *(float*)&x367
         ));
      };
SOURCE(23295, 31)
   {
      word x368;
      word x369;
      word x370;
      word x371;
      *(float*)&n←v26828 = (
         x368 = value←v13768,  *(float*)&x368
         ) * ((
         x369 = (*  (ptr) &fc133 ),  *(float*)&x369
         ) - ((
         x370 = saturation←v13740,  *(float*)&x370
         ) * (
         x371 = fhue←v26772,  *(float*)&x371
         )));
      };
SOURCE(23328, 35)
   {
      word x372;
      word x373;
      word x374;
      word x375;
      word x376;
      *(float*)&k←v26856 = (
         x372 = value←v13768,  *(float*)&x372
         ) * ((
         x373 = (*  (ptr) &fc133 ),  *(float*)&x373
         ) - ((
         x374 = saturation←v13740,  *(float*)&x374
         ) * ((
         x375 = (*  (ptr) &fc133 ),  *(float*)&x375
         ) - (
         x376 = fhue←v26772,  *(float*)&x376
         ))));
      };
SOURCE(23365, 199)
   {
      word var←c72544;
      var←c72544 = ihue←v26744;
      switch (var←c72544) {
         case 0: 
SOURCE(23387, 19)
            var←c13812.f0 = value←v13768;
            var←c13812.f1 = k←v26856;
            var←c13812.f2 = m←v26800;
            /* removed tail goto */ 
            break;
         case 1: 
SOURCE(23413, 19)
            var←c13812.f0 = n←v26828;
            var←c13812.f1 = value←v13768;
            var←c13812.f2 = m←v26800;
            /* removed tail goto */ 
            break;
         case 2: 
SOURCE(23439, 19)
            var←c13812.f0 = m←v26800;
            var←c13812.f1 = value←v13768;
            var←c13812.f2 = k←v26856;
            /* removed tail goto */ 
            break;
         case 3: 
SOURCE(23465, 19)
            var←c13812.f0 = m←v26800;
            var←c13812.f1 = n←v26828;
            var←c13812.f2 = value←v13768;
            /* removed tail goto */ 
            break;
         case 4: 
SOURCE(23491, 19)
            var←c13812.f0 = k←v26856;
            var←c13812.f1 = m←v26800;
            var←c13812.f2 = value←v13768;
            /* removed tail goto */ 
            break;
         case 5: 
SOURCE(23517, 19)
            var←c13812.f0 = value←v13768;
            var←c13812.f1 = m←v26800;
            var←c13812.f2 = n←v26828;
            /* removed tail goto */ 
            break;
         default: 
SOURCE(23549, 15)
            var←c13812.f0 = (*  (ptr) &fc95 );
            var←c13812.f1 = (*  (ptr) &fc95 );
            var←c13812.f2 = (*  (ptr) &fc95 );
            /* removed tail goto */ 
            break;
         };
      };
   lab←L100031: ;
   (*  (W3Pt) formal←c0608 ) = var←c13812;
   return;
   }

static void HSVFromRGB←P3300(formal←c0625, val←v13872)
   word formal←c0625;
   W3 val←v13872;
   {
   word H←v13916;
   word S←v13944;
   word V←v13972;
   word r←v26900;
   word g←v26928;
   word b←v26956;
   word min←v26984;
   word max←v27012;
   word value←v27040;
   word saturation←v27068;
   /* HSVFromRGB: */ 
SOURCE(23570, 613)
SOURCE(23626, 24)
   r←v26900 = (word) ToRange←P3180(val←v13872.f0);
SOURCE(23652, 24)
   g←v26928 = (word) ToRange←P3180(val←v13872.f1);
SOURCE(23678, 24)
   b←v26956 = (word) ToRange←P3180(val←v13872.f2);
SOURCE(23704, 24)
   {
      word x377;
      float tf378;
      float tf379;
      word x380;
      float tf381;
      float tf382;
      float tf383;
      word x384;
      float tf385;
      tf381 = FMIN((
            x377 = r←v26900,  *(float*)&x377
            ), (
            x380 = g←v26928,  *(float*)&x380
            ), tf378, tf379);
      min←v26984 = (
         tf385 = FMIN(tf381, (
               x384 = b←v26956,  *(float*)&x384
               ), tf382, tf383),  *(word*)&tf385
         );
      };
SOURCE(23749, 24)
   {
      word x386;
      float tf387;
      float tf388;
      word x389;
      float tf390;
      float tf391;
      float tf392;
      word x393;
      float tf394;
      tf390 = FMAX((
            x386 = r←v26900,  *(float*)&x386
            ), (
            x389 = g←v26928,  *(float*)&x389
            ), tf387, tf388);
      max←v27012 = (
         tf394 = FMAX(tf390, (
               x393 = b←v26956,  *(float*)&x393
               ), tf391, tf392),  *(word*)&tf394
         );
      };
SOURCE(23799, 17)
   value←v27040 = max←v27012;
SOURCE(23818, 53)
   {
      word x395;
      word x396;
      word x397;
      word x398;
      word x399;
      float tf400;
      saturation←v27068 =  ( ((
         x395 = max←v27012,  *(float*)&x395
         ) != (
         x396 = (*  (ptr) &fc95 ),  *(float*)&x396
         )) ? (
         tf400 = ((
            x397 = max←v27012,  *(float*)&x397
            ) - (
            x398 = min←v26984,  *(float*)&x398
            )) / (
            x399 = max←v27012,  *(float*)&x399
            ),  *(word*)&tf400
         ) : (*  (ptr) &fc95 ) ) ;
      };
SOURCE(23873, 310)
   {
      word x401;
      word x402;
      if (((
         x401 = saturation←v27068,  *(float*)&x401
         ) == (
         x402 = (*  (ptr) &fc95 ),  *(float*)&x402
         ))) {
SOURCE(23896, 32)
         H←v13916 = (*  (ptr) &fc95 );
         S←v13944 = (*  (ptr) &fc95 );
         V←v13972 = value←v27040;
         /* removed tail goto */ 
         }
      else {
SOURCE(23928, 257)
         {
            word rc←v27112;
            word gc←v27140;
            word bc←v27168;
            word hue←v27196;
SOURCE(23930, 32)
            {
               word x403;
               word x404;
               word x405;
               word x406;
               *(float*)&rc←v27112 = ((
                  x403 = max←v27012,  *(float*)&x403
                  ) - (
                  x404 = r←v26900,  *(float*)&x404
                  )) / ((
                  x405 = max←v27012,  *(float*)&x405
                  ) - (
                  x406 = min←v26984,  *(float*)&x406
                  ));
               };
SOURCE(23964, 32)
            {
               word x407;
               word x408;
               word x409;
               word x410;
               *(float*)&gc←v27140 = ((
                  x407 = max←v27012,  *(float*)&x407
                  ) - (
                  x408 = g←v26928,  *(float*)&x408
                  )) / ((
                  x409 = max←v27012,  *(float*)&x409
                  ) - (
                  x410 = min←v26984,  *(float*)&x410
                  ));
               };
SOURCE(23998, 32)
            {
               word x411;
               word x412;
               word x413;
               word x414;
               *(float*)&bc←v27168 = ((
                  x411 = max←v27012,  *(float*)&x411
                  ) - (
                  x412 = b←v26956,  *(float*)&x412
                  )) / ((
                  x413 = max←v27012,  *(float*)&x413
                  ) - (
                  x414 = min←v26984,  *(float*)&x414
                  ));
               };
SOURCE(24032, 90)
            {
               word var←c72800;
               var←c72800 = max←v27012;
               {
                  word x415;
                  word x416;
                  word x417;
                  word x418;
                  float tf419;
                  word x420;
                  word x421;
                  word x423;
                  word x424;
                  word x425;
                  float tf426;
                  word x427;
                  word x428;
                  word x430;
                  word x431;
                  word x432;
                  float tf433;
                  word x434;
                  word x435;
                  *(float*)&hue←v27196 = (
                     x434 =  ( ((
                        x415 = var←c72800,  *(float*)&x415
                        ) == (
                        x416 = r←v26900,  *(float*)&x416
                        )) ? (
                        tf419 = (
                           x417 = bc←v27168,  *(float*)&x417
                           ) - (
                           x418 = gc←v27140,  *(float*)&x418
                           ),  *(word*)&tf419
                        ) :  ( ((
                        x420 = var←c72800,  *(float*)&x420
                        ) == (
                        x421 = g←v26928,  *(float*)&x421
                        )) ? (
                        tf426 = ((
                           x423 = (*  (ptr) &fc422 ),  *(float*)&x423
                           ) + (
                           x424 = rc←v27112,  *(float*)&x424
                           )) - (
                           x425 = bc←v27168,  *(float*)&x425
                           ),  *(word*)&tf426
                        ) :  ( ((
                        x427 = var←c72800,  *(float*)&x427
                        ) == (
                        x428 = b←v26956,  *(float*)&x428
                        )) ? (
                        tf433 = ((
                           x430 = (*  (ptr) &fc429 ),  *(float*)&x430
                           ) + (
                           x431 = gc←v27140,  *(float*)&x431
                           )) - (
                           x432 = rc←v27112,  *(float*)&x432
                           ),  *(word*)&tf433
                        ) : (
                        XR←RaiseUnnamedError(), 0
                        ) )  )  ) ,  *(float*)&x434
                     ) / (
                     x435 = (*  (ptr) &fc361 ),  *(float*)&x435
                     );
                  };
               };
SOURCE(24124, 27)
            {
               word x436;
               word x437;
               if (((
                  x436 = hue←v27196,  *(float*)&x436
                  ) < (
                  x437 = (*  (ptr) &fc95 ),  *(float*)&x437
                  ))) {
SOURCE(24138, 13)
                  {
                     word x438;
                     word x439;
                     *(float*)&hue←v27196 = (
                        x438 = hue←v27196,  *(float*)&x438
                        ) + (
                        x439 = (*  (ptr) &fc133 ),  *(float*)&x439
                        );
                     };
                  };
               };
SOURCE(24153, 30)
            H←v13916 = hue←v27196;
            S←v13944 = saturation←v27068;
            V←v13972 = value←v27040;
            /* removed tail goto */ 
            };
         };
      };
   (*  (ptr) formal←c0625 ) = H←v13916;
   (* (( (ptr) formal←c0625)+1) ) = S←v13944;
   (* (( (ptr) formal←c0625)+2) ) = V←v13972;
   return;
   }

static word CreateColorOperatorOldRGB←P3360(class←v49424, structure←v49452)
   word class←v49424;
   word structure←v49452;
   {
   register ptr gf←c80352 =  (ptr) &globalframe;
   word var←c49496;
   word consistencyTest←v27240;
   word sWhite←v27268;
   word colorOperator←v27296;
   /* CreateColorOperatorOldRGB: */ 
SOURCE(24454, 315)
SOURCE(24509, 66)
   {
      word pd440;
      pd440 = (* (( (ptr) (* (( (ptr) gf←c80352)+332)/* var←c66976 */  ))+6) );
      consistencyTest←v27240 = (word) ( *( (fPt) ((*  (ptr) pd440 ))))(structure←v49452, 1, pd440);
      };
SOURCE(24577, 56)
   {
      word pd441;
      pd441 = (* (( (ptr) (* (( (ptr) gf←c80352)+332)/* var←c66976 */  ))+9) );
      sWhite←v27268 = (word) ( *( (fPt) ((*  (ptr) pd441 ))))(structure←v49452, 0, pd441);
      };
SOURCE(24635, 109)
   colorOperator←v27296 = (word) NewColorOperatorRGB←P2880(sWhite←v27268, (*  (ptr) &fc95 ), 0, 0);
SOURCE(24746, 23)
   return(colorOperator←v27296);
   }

static word CreateColorOperatorWithRenderingHints←P3420(class←v49556, structure←v49584)
   word class←v49556;
   word structure←v49584;
   {
   register ptr gf←c80384 =  (ptr) &globalframe;
   word var←c49628;
   word size←v27340;
   word baseColorOperator←v27368;
   word appearanceHints←v27396;
   word colorOperator←v27424;
   /* CreateColorOperatorWithRenderingHints: */ 
SOURCE(25053, 538)
SOURCE(25120, 55)
   {
      word pd442;
      pd442 = (* (( (ptr) (* (( (ptr) gf←c80384)+332)/* var←c66976 */  ))+6) );
      size←v27340 = (word) ( *( (fPt) ((*  (ptr) pd442 ))))(structure←v49584, 2, pd442);
      };
SOURCE(25177, 85)
   {
      word pd443;
      pd443 = (* (( (ptr) (* (( (ptr) gf←c80384)+332)/* var←c66976 */  ))+14) );
      baseColorOperator←v27368 = (word) ( *( (fPt) ((*  (ptr) pd443 ))))(structure←v49584, 0, pd443);
      };
SOURCE(25264, 75)
   {
      word pd444;
      pd444 = (* (( (ptr) (* (( (ptr) gf←c80384)+332)/* var←c66976 */  ))+11) );
      appearanceHints←v27396 = (word) ( *( (fPt) ((*  (ptr) pd444 ))))(structure←v49584, 1, pd444);
      };
SOURCE(25341, 116)
   colorOperator←v27424 = (word) NewRenderingHints←P3480(baseColorOperator←v27368, appearanceHints←v27396);
SOURCE(25459, 108)
   {
      word var←c72832;
      {
         word var←c72864;
         word var←c72896;
         var←c72864 = XR←NewObject(12, (* (( (ptr) gf←c80384)+55) ));
         var←c72896 = var←c72864;
         (*  (ptr) var←c72896 ) = (* (( (ptr) gf←c80384)+89) );
         (* (( (ptr) var←c72896)+1) ) = (*  (ptr) class←v49556 );
         var←c72832 = var←c72864;
         };
      {
         W3 var←c0643;
         var←c0643.f0 = 100;
         var←c0643.f1 = (* (( (ptr) gf←c80384)+88) );
         var←c0643.f2 = var←c72832;
         (void) (XR←RaiseSignal((* (( (ptr) (* (( (ptr) gf←c80384)+336)/* var←c70432 */  ))+5) ), 0, (word) &var←c0643));
         };
      };
SOURCE(25569, 22)
   return(colorOperator←v27424);
   }

static word NewRenderingHints←P3480(colorOperator←v14032, appearanceHints←v14060)
   word colorOperator←v14032;
   word appearanceHints←v14060;
   {
   register ptr gf←c80416 =  (ptr) &globalframe;
   word var←c14104;
   word newRenderingHints←v27468;
   /* NewRenderingHints: */ 
SOURCE(25597, 442)
SOURCE(25708, 108)
   {
      word pd445;
      pd445 = (* (( (ptr) (* (( (ptr) gf←c80416)+332)/* var←c66976 */  ))+16) );
      newRenderingHints←v27468 = (word) ( *( (fPt) ((*  (ptr) pd445 ))))(appearanceHints←v14060, (* (( (ptr) colorOperator←v14032)+4)
          ), pd445);
      };
SOURCE(25818, 221)
   {
      word pd446;
      pd446 = (* (( (ptr) (* (( (ptr) gf←c80416)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd446 ))))((*  (ptr) colorOperator←v14032 ), (* (( (ptr) colorOperator←v14032)+1) ), (* (
            ( (ptr) colorOperator←v14032)+2) ), (* (( (ptr) colorOperator←v14032)+3) ), newRenderingHints←v27468, pd446));
      };
   }

static word Det3←P3540(m←v14248)
   word m←v14248;
   {
   word var←c14292;
   word a00←v27512;
   word a01←v27540;
   word a02←v27568;
   word a10←v27596;
   word a11←v27624;
   word a12←v27652;
   word a20←v27680;
   word a21←v27708;
   word a22←v27736;
   /* Det3: */ 
SOURCE(26134, 327)
SOURCE(26177, 19)
   a00←v27512 = (*  (ptr) m←v14248 );
SOURCE(26198, 19)
   a01←v27540 = (* (( (ptr) m←v14248)+1) );
SOURCE(26219, 19)
   a02←v27568 = (* (( (ptr) m←v14248)+2) );
SOURCE(26240, 19)
   a10←v27596 = (* (( (ptr) m←v14248)+3) );
SOURCE(26261, 19)
   a11←v27624 = (* (( (ptr) m←v14248)+4) );
SOURCE(26282, 19)
   a12←v27652 = (* (( (ptr) m←v14248)+5) );
SOURCE(26303, 19)
   a20←v27680 = (* (( (ptr) m←v14248)+6) );
SOURCE(26324, 19)
   a21←v27708 = (* (( (ptr) m←v14248)+7) );
SOURCE(26345, 19)
   a22←v27736 = (* (( (ptr) m←v14248)+8) );
SOURCE(26366, 95)
   {
      word x447;
      word x448;
      word x449;
      word x450;
      word x451;
      word x452;
      word x453;
      word x454;
      word x455;
      word x456;
      word x457;
      word x458;
      word x459;
      word x460;
      word x461;
      word x462;
      word x463;
      word x464;
      float tf465;
      return((
         tf465 = (((((((
            x447 = a00←v27512,  *(float*)&x447
            ) * (
            x448 = a11←v27624,  *(float*)&x448
            )) * (
            x449 = a22←v27736,  *(float*)&x449
            )) + (((
            x450 = a01←v27540,  *(float*)&x450
            ) * (
            x451 = a12←v27652,  *(float*)&x451
            )) * (
            x452 = a20←v27680,  *(float*)&x452
            ))) + (((
            x453 = a02←v27568,  *(float*)&x453
            ) * (
            x454 = a10←v27596,  *(float*)&x454
            )) * (
            x455 = a21←v27708,  *(float*)&x455
            ))) - (((
            x456 = a20←v27680,  *(float*)&x456
            ) * (
            x457 = a11←v27624,  *(float*)&x457
            )) * (
            x458 = a02←v27568,  *(float*)&x458
            ))) - (((
            x459 = a21←v27708,  *(float*)&x459
            ) * (
            x460 = a12←v27652,  *(float*)&x460
            )) * (
            x461 = a00←v27512,  *(float*)&x461
            ))) - (((
            x462 = a22←v27736,  *(float*)&x462
            ) * (
            x463 = a10←v27596,  *(float*)&x463
            )) * (
            x464 = a01←v27540,  *(float*)&x464
            )),  *(word*)&tf465
         ));
      };
   }

static word Cofactor3←P3600(m←v14352, i←v14380, j←v14408)
   word m←v14352;
   word i←v14380;
   word j←v14408;
   {
   word var←c14472;
   word d←v27864;
   /* Cofactor3: */ 
SOURCE(26465, 392)
SOURCE(26766, 47)
   {
      word idx466;
      word idx467;
      word x468;
      word idx469;
      word idx470;
      word x471;
      word idx472;
      word idx473;
      word x474;
      word idx475;
      word idx476;
      word x477;
      *(float*)&d←v27864 = ((
         x468 = (* (( (ptr) (( (W3Pt) m←v14352)+(
                  idx466 = (word)  ( (0 < i←v14380) ? 0 : 1 ) ,
                  BCK(idx466, 3)
                  )))+(
               idx467 = (word)  ( (0 < j←v14408) ? 0 : 1 ) ,
               BCK(idx467, 3)
               )) ),  *(float*)&x468
         ) * (
         x471 = (* (( (ptr) (( (W3Pt) m←v14352)+(
                  idx469 = (word)  ( (1 < i←v14380) ? 1 : 2 ) ,
                  BCK(idx469, 3)
                  )))+(
               idx470 = (word)  ( (1 < j←v14408) ? 1 : 2 ) ,
               BCK(idx470, 3)
               )) ),  *(float*)&x471
         )) - ((
         x474 = (* (( (ptr) (( (W3Pt) m←v14352)+(
                  idx472 = (word)  ( (1 < i←v14380) ? 1 : 2 ) ,
                  BCK(idx472, 3)
                  )))+(
               idx473 = (word)  ( (0 < j←v14408) ? 0 : 1 ) ,
               BCK(idx473, 3)
               )) ),  *(float*)&x474
         ) * (
         x477 = (* (( (ptr) (( (W3Pt) m←v14352)+(
                  idx475 = (word)  ( (0 < i←v14380) ? 0 : 1 ) ,
                  BCK(idx475, 3)
                  )))+(
               idx476 = (word)  ( (1 < j←v14408) ? 1 : 2 ) ,
               BCK(idx476, 3)
               )) ),  *(float*)&x477
         ));
      };
SOURCE(26815, 42)
   {
      word x478;
      float tf479;
      if ((((i←v14380 + j←v14408) & 1) == 0)) {
         return(d←v27864);
         }
      else {
         return((
            tf479 =  - (
               x478 = d←v27864,  *(float*)&x478
               ),  *(word*)&tf479
            ));
         };
      };
   }

static word Invert3←P3660(m←v14532)
   word m←v14532;
   {
   register ptr gf←c80448 =  (ptr) &globalframe;
   word var←c14576;
   word a←v28348;
   word det←v28376;
   /* Invert3: */ 
SOURCE(26863, 216)
SOURCE(26912, 28)
   a←v28348 = XR←NewObject(36, (* (( (ptr) gf←c80448)+46) ));
SOURCE(26942, 19)
   det←v28376 = (word) Det3←P3540(m←v14532);
SOURCE(26963, 86)
   {
      register word i←v28420 = 0;
      lab←L100036: ;
SOURCE(26990, 59)
      {
         register word j←v28484 = 0;
         lab←L100040: ;
SOURCE(27017, 32)
         {
            word var←c72992;
            {
               word x480;
               word x481;
               *(float*)&var←c72992 = (
                  x480 = (word) Cofactor3←P3600(m←v14532, i←v28420, j←v28484),  *(float*)&x480
                  ) / (
                  x481 = det←v28376,  *(float*)&x481
                  );
               };
            (* (( (ptr) (( (W3Pt) a←v28348)+j←v28484))+i←v28420) ) = var←c72992;
            };
         if ((j←v28484 >= 2)) {
            goto lab←L100037;
            };
         j←v28484 = (j←v28484 + 1);
         goto lab←L100040;
         lab←L100037: ;
         };
      if ((i←v28420 >= 2)) {
         goto lab←L100033;
         };
      i←v28420 = (i←v28420 + 1);
      goto lab←L100036;
      lab←L100033: ;
      };
SOURCE(27069, 10)
   return(a←v28348);
   }

static word Mul3←P3720(m←v14636, n←v14664)
   word m←v14636;
   word n←v14664;
   {
   register ptr gf←c80480 =  (ptr) &globalframe;
   word var←c14708;
   word a←v28548;
   /* Mul3: */ 
SOURCE(27085, 250)
SOURCE(27134, 28)
   a←v28548 = XR←NewObject(36, (* (( (ptr) gf←c80480)+46) ));
SOURCE(27164, 141)
   {
      register word i←v28592 = 0;
      lab←L100044: ;
SOURCE(27191, 114)
      {
         register word j←v28656 = 0;
         lab←L100048: ;
         {
            word s←v28720;
SOURCE(27218, 11)
            s←v28720 = (*  (ptr) &fc95 );
SOURCE(27231, 52)
            {
               register word k←v28764 = 0;
               lab←L100052: ;
SOURCE(27258, 25)
               {
                  word x482;
                  word x483;
                  word x484;
                  *(float*)&s←v28720 = (
                     x482 = s←v28720,  *(float*)&x482
                     ) + ((
                     x483 = (* (( (ptr) (( (W3Pt) m←v14636)+i←v28592))+k←v28764) ),  *(float*)&x483
                     ) * (
                     x484 = (* (( (ptr) (( (W3Pt) n←v14664)+k←v28764))+j←v28656) ),  *(float*)&x484
                     ));
                  };
               if ((k←v28764 >= 2)) {
                  goto lab←L100049;
                  };
               k←v28764 = (k←v28764 + 1);
               goto lab←L100052;
               lab←L100049: ;
               };
SOURCE(27294, 11)
            (* (( (ptr) (( (W3Pt) a←v28548)+i←v28592))+j←v28656) ) = s←v28720;
            };
         if ((j←v28656 >= 2)) {
            goto lab←L100045;
            };
         j←v28656 = (j←v28656 + 1);
         goto lab←L100048;
         lab←L100045: ;
         };
      if ((i←v28592 >= 2)) {
         goto lab←L100041;
         };
      i←v28592 = (i←v28592 + 1);
      goto lab←L100044;
      lab←L100041: ;
      };
SOURCE(27325, 10)
   return(a←v28548);
   }

static void Apply3←P3780(formal←c0683, m←v14768, u←v14796)
   word formal←c0683;
   word m←v14768;
   W3 u←v14796;
   {
   W3 v←v14876;
   /* Apply3: */ 
SOURCE(27341, 165)
SOURCE(27430, 76)
   {
      register word i←v28828 = 0;
      lab←L100057: ;
SOURCE(27457, 49)
      {
         word x485;
         word x486;
         word x487;
         word x488;
         word x489;
         word x490;
         *(float*)(( (ptr) &v←v14876)+i←v28828) = (((
            x485 = (* (( (W3Pt) m←v14768)+i←v28828) ).f0,  *(float*)&x485
            ) * (
            x486 = u←v14796.f0,  *(float*)&x486
            )) + ((
            x487 = (* (( (W3Pt) m←v14768)+i←v28828) ).f1,  *(float*)&x487
            ) * (
            x488 = u←v14796.f1,  *(float*)&x488
            ))) + ((
            x489 = (* (( (W3Pt) m←v14768)+i←v28828) ).f2,  *(float*)&x489
            ) * (
            x490 = u←v14796.f2,  *(float*)&x490
            ));
         };
      if ((i←v28828 >= 2)) {
         goto lab←L100054;
         };
      i←v28828 = (i←v28828 + 1);
      goto lab←L100057;
      lab←L100054: ;
      };
   /* removed tail goto */ 
   (*  (W3Pt) formal←c0683 ) = v←v14876;
   return;
   }

static void Apply3Out←P3840(m←v14972, u0←v15000, u1←v15028, u2←v15056, out←v15084)
   word m←v14972;
   word u0←v15000;
   word u1←v15028;
   word u2←v15056;
   word out←v15084;
   {
   /* Apply3Out: */ 
SOURCE(27521, 140)
SOURCE(27589, 72)
   {
      register word i←v28892 = 0;
      lab←L100061: ;
SOURCE(27616, 45)
      {
         word limit491;
         word x492;
         word x493;
         word x494;
         word x495;
         word x496;
         word x497;
         *(float*)((( (ptr) out←v15084)+2)+(
               limit491 = (* (( (ptr) out←v15084)+1) ),
               BCK(i←v28892, limit491)
               )) = (((
            x492 = (* (( (W3Pt) m←v14972)+i←v28892) ).f0,  *(float*)&x492
            ) * (
            x493 = u0←v15000,  *(float*)&x493
            )) + ((
            x494 = (* (( (W3Pt) m←v14972)+i←v28892) ).f1,  *(float*)&x494
            ) * (
            x495 = u1←v15028,  *(float*)&x495
            ))) + ((
            x496 = (* (( (W3Pt) m←v14972)+i←v28892) ).f2,  *(float*)&x496
            ) * (
            x497 = u2←v15056,  *(float*)&x497
            ));
         };
      if ((i←v28892 >= 2)) {
         goto lab←L100058;
         };
      i←v28892 = (i←v28892 + 1);
      goto lab←L100061;
      lab←L100058: ;
      };
   }

static word ColorFromYES←P3900(yes←v15312)
   W3 yes←v15312;
   {
   register ptr gf←c80512 =  (ptr) &globalframe;
   word var←c15356;
   word color←v28956;
   /* ColorFromYES: */ 
SOURCE(28534, 415)
SOURCE(28601, 53)
   color←v28956 = XR←NewObject(28, (* (( (ptr) gf←c80512)+62) ));
   (* (( (ptr) color←v28956)+3) ) = 3;
SOURCE(28702, 29)
   (* (( (ptr) color←v28956)+2) ) = (* (( (ptr) gf←c80512)+20)/* yes1000←v7032 */  );
SOURCE(28733, 52)
   {
      word var←c73056;
      {
         float tf498;
         var←c73056 = (
            tf498 = (float)(unsigned)(word) SampleFromReal←P300(yes←v15312.f0, 1000),  *(word*)&tf498
            );
         };
      {
         word limit499;
         (* ((( (ptr) color←v28956)+4)+(
               limit499 = (* (( (ptr) color←v28956)+3) ),
               BCK(0, limit499)
               )) ) = var←c73056;
         };
      };
SOURCE(28787, 72)
   {
      word var←c73088;
      {
         word var←c73120;
         word x←v62856;
         {
            word x500;
            word x501;
            word x502;
            *(float*)&x←v62856 = ((
               x500 = yes←v15312.f1,  *(float*)&x500
               ) * (
               x501 = (*  (ptr) &fc116 ),  *(float*)&x501
               )) + (
               x502 = (*  (ptr) &fc115 ),  *(float*)&x502
               );
            };
SOURCE(3066, 47)
         {
            word x503;
            word x504;
            word x505;
            word x506;
            word x507;
            word x508;
            word x509;
            word x510;
            word x511;
            float tf512;
            word idx513;
            var←c73120 = (
               idx513 = (word) XR←REAL32←Round( ( ((
                     x503 = x←v62856,  *(float*)&x503
                     ) <= (
                     x504 = (*  (ptr) &fc95 ),  *(float*)&x504
                     )) ? (*  (ptr) &fc95 ) :  ( ((
                     x505 = x←v62856,  *(float*)&x505
                     ) > ((
                     x506 = (*  (ptr) &fc422 ),  *(float*)&x506
                     ) * (
                     x507 = (*  (ptr) &fc116 ),  *(float*)&x507
                     )) + (
                     x508 = (*  (ptr) &fc115 ),  *(float*)&x508
                     )) ? (
                     tf512 = ((
                        x509 = (*  (ptr) &fc422 ),  *(float*)&x509
                        ) * (
                        x510 = (*  (ptr) &fc116 ),  *(float*)&x510
                        )) + (
                        x511 = (*  (ptr) &fc115 ),  *(float*)&x511
                        ),  *(word*)&tf512
                     ) : x←v62856 )  ) ),
               SGNCK(idx513)
               );
            };
         {
            float tf514;
            var←c73088 = (
               tf514 = (float)(unsigned)var←c73120,  *(word*)&tf514
               );
            };
         };
      {
         word limit515;
         (* ((( (ptr) color←v28956)+4)+(
               limit515 = (* (( (ptr) color←v28956)+3) ),
               BCK(1, limit515)
               )) ) = var←c73088;
         };
      };
SOURCE(28861, 72)
   {
      word var←c73184;
      {
         word var←c73216;
         word x←v62808;
         {
            word x516;
            word x517;
            word x518;
            *(float*)&x←v62808 = ((
               x516 = yes←v15312.f2,  *(float*)&x516
               ) * (
               x517 = (*  (ptr) &fc116 ),  *(float*)&x517
               )) + (
               x518 = (*  (ptr) &fc115 ),  *(float*)&x518
               );
            };
SOURCE(3066, 47)
         {
            word x519;
            word x520;
            word x521;
            word x522;
            word x523;
            word x524;
            word x525;
            word x526;
            word x527;
            float tf528;
            word idx529;
            var←c73216 = (
               idx529 = (word) XR←REAL32←Round( ( ((
                     x519 = x←v62808,  *(float*)&x519
                     ) <= (
                     x520 = (*  (ptr) &fc95 ),  *(float*)&x520
                     )) ? (*  (ptr) &fc95 ) :  ( ((
                     x521 = x←v62808,  *(float*)&x521
                     ) > ((
                     x522 = (*  (ptr) &fc422 ),  *(float*)&x522
                     ) * (
                     x523 = (*  (ptr) &fc116 ),  *(float*)&x523
                     )) + (
                     x524 = (*  (ptr) &fc115 ),  *(float*)&x524
                     )) ? (
                     tf528 = ((
                        x525 = (*  (ptr) &fc422 ),  *(float*)&x525
                        ) * (
                        x526 = (*  (ptr) &fc116 ),  *(float*)&x526
                        )) + (
                        x527 = (*  (ptr) &fc115 ),  *(float*)&x527
                        ),  *(word*)&tf528
                     ) : x←v62808 )  ) ),
               SGNCK(idx529)
               );
            };
         {
            float tf530;
            var←c73184 = (
               tf530 = (float)(unsigned)var←c73216,  *(word*)&tf530
               );
            };
         };
      {
         word limit531;
         (* ((( (ptr) color←v28956)+4)+(
               limit531 = (* (( (ptr) color←v28956)+3) ),
               BCK(2, limit531)
               )) ) = var←c73184;
         };
      };
SOURCE(28935, 14)
   return(color←v28956);
   }

static void YESFromColor←P3960(formal←c0707, c←v15416)
   word formal←c0707;
   word c←v15416;
   {
   register ptr gf←c80544 =  (ptr) &globalframe;
   W3 var←c15460;
   W3 rgb←v29028;
   W3 yes←v29056;
   /* YESFromColor: */ 
SOURCE(28955, 201)
SOURCE(29020, 26)
   (void) RGBFromColor←P6660((word) &rgb←v29028, c←v15416);
SOURCE(29048, 72)
   {
      W3 var←c0706;
      {
         W3 var←c73280;
         var←c73280.f0 = rgb←v29028.f0;
         var←c73280.f1 = rgb←v29028.f1;
         var←c73280.f2 = rgb←v29028.f2;
         (void) Apply3←P3780((word) &var←c0706, (* (( (ptr) gf←c80544)+17)/* matYESFromRGB←v6892 */  ), var←c73280);
         };
      yes←v29056 = var←c0706;
      };
SOURCE(29122, 34)
   var←c15460.f0 = yes←v29056.f0;
   var←c15460.f1 = yes←v29056.f1;
   var←c15460.f2 = yes←v29056.f2;
   /* removed tail goto */ 
   (*  (W3Pt) formal←c0707 ) = var←c15460;
   return;
   }

static word CreateColorOperatorYES←P4020(class←v49688, structure←v49716)
   word class←v49688;
   word structure←v49716;
   {
   register ptr gf←c80576 =  (ptr) &globalframe;
   word var←c49760;
   word consistencyTest←v29136;
   word sWhite←v29164;
   word sBlack←v29192;
   word sneutral←v29220;
   word srange←v29248;
   word pixelEncodingStructure←v29276;
   word map←v29304;
   word appearanceHints←v29332;
   word colorOperator←v29360;
   /* CreateColorOperatorYES: */ 
SOURCE(29160, 805)
SOURCE(29212, 66)
   {
      word pd532;
      pd532 = (* (( (ptr) (* (( (ptr) gf←c80576)+332)/* var←c66976 */  ))+6) );
      consistencyTest←v29136 = (word) ( *( (fPt) ((*  (ptr) pd532 ))))(structure←v49716, 6, pd532);
      };
SOURCE(29280, 56)
   {
      word pd533;
      pd533 = (* (( (ptr) (* (( (ptr) gf←c80576)+332)/* var←c66976 */  ))+9) );
      sWhite←v29164 = (word) ( *( (fPt) ((*  (ptr) pd533 ))))(structure←v49716, 0, pd533);
      };
SOURCE(29338, 56)
   {
      word pd534;
      pd534 = (* (( (ptr) (* (( (ptr) gf←c80576)+332)/* var←c66976 */  ))+9) );
      sBlack←v29192 = (word) ( *( (fPt) ((*  (ptr) pd534 ))))(structure←v49716, 1, pd534);
      };
SOURCE(29396, 58)
   {
      word pd535;
      pd535 = (* (( (ptr) (* (( (ptr) gf←c80576)+332)/* var←c66976 */  ))+9) );
      sneutral←v29220 = (word) ( *( (fPt) ((*  (ptr) pd535 ))))(structure←v49716, 2, pd535);
      };
SOURCE(29456, 56)
   {
      word pd536;
      pd536 = (* (( (ptr) (* (( (ptr) gf←c80576)+332)/* var←c66976 */  ))+9) );
      srange←v29248 = (word) ( *( (fPt) ((*  (ptr) pd536 ))))(structure←v49716, 3, pd536);
      };
SOURCE(29514, 93)
   {
      word pd537;
      pd537 = (* (( (ptr) (* (( (ptr) gf←c80576)+332)/* var←c66976 */  ))+12) );
      pixelEncodingStructure←v29276 = (word) ( *( (fPt) ((*  (ptr) pd537 ))))(structure←v49716, 4, 3, pd537);
      };
SOURCE(29609, 90)
   {
      word pd538;
      pd538 = (* (( (ptr) (* (( (ptr) gf←c80576)+332)/* var←c66976 */  ))+23) );
      map←v29304 = (word) ( *( (fPt) ((*  (ptr) pd538 ))))(pixelEncodingStructure←v29276, pd538);
      };
SOURCE(29701, 75)
   {
      word pd539;
      pd539 = (* (( (ptr) (* (( (ptr) gf←c80576)+332)/* var←c66976 */  ))+11) );
      appearanceHints←v29332 = (word) ( *( (fPt) ((*  (ptr) pd539 ))))(structure←v49716, 5, pd539);
      };
SOURCE(29778, 162)
   colorOperator←v29360 = (word) NewColorOperatorYES←P4320(sWhite←v29164, sBlack←v29192, sneutral←v29220, srange←v29248, map←v29304, appearanceHints←v29332)
   ;
SOURCE(29942, 23)
   return(colorOperator←v29360);
   }

static word GetPixelEncodingYES←P4080(colorOperator←v49924)
   word colorOperator←v49924;
   {
   register ptr gf←c80608 =  (ptr) &globalframe;
   word var←c49968;
   word data←v29404;
   /* GetPixelEncodingYES: */ 
SOURCE(29969, 108)
SOURCE(30015, 42)
   data←v29404 = XR←Narrow((* (( (ptr) colorOperator←v49924)+3) ), (* (( (ptr) gf←c80608)+47) ));
SOURCE(30059, 18)
   return((* (( (ptr) data←v29404)+4) ));
   }

static void ApplyYES←P4140(colorOperator←v50028, pixelIn←v50056, colorSpace←v50084, out←v50112)
   word colorOperator←v50028;
   word pixelIn←v50056;
   word colorSpace←v50084;
   word out←v50112;
   {
   register ptr gf←c80640 =  (ptr) &globalframe;
   word data←v29448;
   word sWhite←v29476;
   word sBlack←v29504;
   word pm←v29532;
   word Y←v29588;
   /* ApplyYES: */ 
SOURCE(30081, 573)
SOURCE(30105, 42)
   data←v29448 = XR←Narrow((* (( (ptr) colorOperator←v50028)+3) ), (* (( (ptr) gf←c80640)+47) ));
SOURCE(30149, 26)
   sWhite←v29476 = (*  (ptr) data←v29448 );
SOURCE(30177, 26)
   sBlack←v29504 = (* (( (ptr) data←v29448)+1) );
SOURCE(30205, 28)
   pm←v29532 = (* (( (ptr) data←v29448)+4) );
SOURCE(30301, 45)
   {
      word x540;
      word x541;
      word x542;
      word x543;
      *(float*)&Y←v29588 = ((
         x540 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v50056 ))))(0, pixelIn←v50056),  *(float*)&x540
         ) - (
         x541 = sBlack←v29504,  *(float*)&x541
         )) / ((
         x542 = sWhite←v29476,  *(float*)&x542
         ) - (
         x543 = sBlack←v29504,  *(float*)&x543
         ));
      };
SOURCE(30348, 306)
   if ((colorSpace←v50084 == 0)) {
SOURCE(30374, 11)
      {
         word limit544;
         (* ((( (ptr) out←v50112)+2)+(
               limit544 = (* (( (ptr) out←v50112)+1) ),
               BCK(0, limit544)
               )) ) = Y←v29588;
         };
      }
   else {
SOURCE(30392, 285)
      {
         word sneutral←v29736;
         word srange←v29764;
         word E←v29792;
         word S←v29820;
SOURCE(30394, 30)
         sneutral←v29736 = (* (( (ptr) data←v29448)+2) );
SOURCE(30426, 26)
         srange←v29764 = (* (( (ptr) data←v29448)+3) );
SOURCE(30454, 38)
         {
            word x545;
            word x546;
            word x547;
            *(float*)&E←v29792 = ((
               x545 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v50056 ))))(1, pixelIn←v50056),  *(float*)&x545
               ) - (
               x546 = sneutral←v29736,  *(float*)&x546
               )) / (
               x547 = srange←v29764,  *(float*)&x547
               );
            };
SOURCE(30494, 38)
         {
            word x548;
            word x549;
            word x550;
            *(float*)&S←v29820 = ((
               x548 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v50056 ))))(2, pixelIn←v50056),  *(float*)&x548
               ) - (
               x549 = sneutral←v29736,  *(float*)&x549
               )) / (
               x550 = srange←v29764,  *(float*)&x550
               );
            };
SOURCE(30534, 120)
         {
            word var←c73344;
            var←c73344 = colorSpace←v50084;
            if ((var←c73344 == 3)) {
SOURCE(30567, 10)
               {
                  word limit551;
                  (* ((( (ptr) out←v50112)+2)+(
                        limit551 = (* (( (ptr) out←v50112)+1) ),
                        BCK(0, limit551)
                        )) ) = Y←v29588;
                  };
SOURCE(30579, 10)
               {
                  word limit552;
                  (* ((( (ptr) out←v50112)+2)+(
                        limit552 = (* (( (ptr) out←v50112)+1) ),
                        BCK(1, limit552)
                        )) ) = E←v29792;
                  };
SOURCE(30591, 10)
               {
                  word limit553;
                  (* ((( (ptr) out←v50112)+2)+(
                        limit553 = (* (( (ptr) out←v50112)+1) ),
                        BCK(2, limit553)
                        )) ) = S←v29820;
                  };
               }
            else {
               if ((var←c73344 == 1)) {
SOURCE(30616, 38)
                  (void) Apply3Out←P3840((* (( (ptr) gf←c80640)+18)/* matRGBFromYES←v6920 */  ), Y←v29588, E←v29792, S←v29820, out←v50112);
                  }
               else {
SOURCE(30670, 5)
                  (void) XR←RaiseUnnamedError();
                  };
               };
            };
         };
      };
   }

static word GetCreateDataYES←P4200(formal←c01301)
   word formal←c01301;
   {
   W8 var←c80672;
   /* declaration of colorOperator←v49820 skipped */ 
   register ptr gf←c80704 =  (ptr) &globalframe;
   word var←c49864;
   /* declaration of var←c73376 skipped */ 
   /* declaration of data←v29864 skipped */ 
   word structure←v29920;
   var←c80672.f4/* colorOperator←v49820 */  = formal←c01301;
   /* GetCreateDataYES: */ 
SOURCE(30684, 662)
   {
      word tmpAddr554;
      tmpAddr554 = (word) (( (ptr) &var←c80672)+5)/* var←c73376 */ ;
      (*  (ptr) tmpAddr554 ) = ( ((word)  (fPt) GenerateElements←P8892) );
      (* (( (ptr) tmpAddr554) + 1) ) = 1;
      };
SOURCE(30724, 42)
   var←c80672.f7/* data←v29864 */  = XR←Narrow((* (( (ptr) var←c80672.f4/* colorOperator←v49820 */ )+3) ), (* (( (ptr) gf←c80704)+47)
       ));
SOURCE(31236, 89)
   {
      word pd555;
      pd555 = (* (( (ptr) (* (( (ptr) gf←c80704)+332)/* var←c66976 */  ))+17) );
      structure←v29920 = (word) ( *( (fPt) ((*  (ptr) pd555 ))))((word) ((( (bPt) &var←c80672)+20)/* var←c73376 */ ), pd555);
      };
SOURCE(31327, 19)
   return(structure←v29920);
   }

static void GenerateElements←P8892(elementAction←v59376, formal←c80768)
   word elementAction←v59376;
   word formal←c80768;
   {
   register ptr gf←c80736 =  (ptr) &globalframe;
   formal←c80768 = (formal←c80768 - 20);
   /* GenerateElements: */ 
SOURCE(30768, 465)
SOURCE(30807, 34)
   {
      W2 var←c73408;
      var←c73408.f0 = 2;
      var←c73408.f1 = (*  (ptr) (* (( (ptr) formal←c80768)+7) ) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v59376 ))))(var←c73408, elementAction←v59376);
      };
SOURCE(30843, 34)
   {
      W2 var←c73440;
      var←c73440.f0 = 2;
      var←c73440.f1 = (* (( (ptr) (* (( (ptr) formal←c80768)+7) ))+1) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v59376 ))))(var←c73440, elementAction←v59376);
      };
SOURCE(30879, 36)
   {
      W2 var←c73472;
      var←c73472.f0 = 2;
      var←c73472.f1 = (* (( (ptr) (* (( (ptr) formal←c80768)+7) ))+2) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v59376 ))))(var←c73472, elementAction←v59376);
      };
SOURCE(30917, 34)
   {
      W2 var←c73504;
      var←c73504.f0 = 2;
      var←c73504.f1 = (* (( (ptr) (* (( (ptr) formal←c80768)+7) ))+3) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v59376 ))))(var←c73504, elementAction←v59376);
      };
SOURCE(30953, 144)
   if (((* (( (ptr) (* (( (ptr) formal←c80768)+7) ))+4) ) == 0)) {
SOURCE(30980, 24)
      {
         W2 var←c73536;
         var←c73536.f0 = 3;
         var←c73536.f1 = 0;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v59376 ))))(var←c73536, elementAction←v59376);
         };
      }
   else {
SOURCE(31013, 84)
      {
         word var←c73568;
         {
            word pd556;
            pd556 = (* (( (ptr) (* (( (ptr) gf←c80736)+332)/* var←c66976 */  ))+24) );
            var←c73568 = (word) ( *( (fPt) ((*  (ptr) pd556 ))))((* ((( (ptr) (* (( (ptr) formal←c80768)+7) ))+4)) ), pd556);
            };
         {
            W2 var←c73600;
            var←c73600.f0 = 1;
            var←c73600.f1 = var←c73568;
            (void) ( *( (fPt) ((*  (ptr) elementAction←v59376 ))))(var←c73600, elementAction←v59376);
            };
         };
      };
SOURCE(31100, 133)
   if (((* (( (ptr) (* (( (ptr) formal←c80768)+4) ))+4) ) == 0)) {
SOURCE(31146, 29)
      {
         W2 var←c73632;
         var←c73632.f0 = 3;
         var←c73632.f1 = 0;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v59376 ))))(var←c73632, elementAction←v59376);
         };
      }
   else {
SOURCE(31175, 58)
      {
         W2 var←c73664;
         var←c73664.f0 = 1;
         var←c73664.f1 = (* (( (ptr) (* (( (ptr) formal←c80768)+4) ))+4) );
         (void) ( *( (fPt) ((*  (ptr) elementAction←v59376 ))))(var←c73664, elementAction←v59376);
         };
      };
   }

static word DataEqualYES←P4260(selfData←v50172, otherData←v50200)
   word selfData←v50172;
   word otherData←v50200;
   {
   register ptr gf←c80800 =  (ptr) &globalframe;
   word var←c50244;
   word a←v29964;
   word b←v29992;
   /* DataEqualYES: */ 
SOURCE(31350, 313)
SOURCE(31382, 29)
   a←v29964 = XR←Narrow(selfData←v50172, (* (( (ptr) gf←c80800)+47) ));
SOURCE(31413, 30)
   b←v29992 = XR←Narrow(otherData←v50200, (* (( (ptr) gf←c80800)+47) ));
SOURCE(31445, 123)
   {
      word x557;
      word x558;
      word x559;
      word x560;
      word x561;
      word x562;
      word x563;
      word x564;
      if (((((
         x557 = (*  (ptr) a←v29964 ),  *(float*)&x557
         ) != (
         x558 = (*  (ptr) b←v29992 ),  *(float*)&x558
         )) || ((
         x559 = (* (( (ptr) a←v29964)+1) ),  *(float*)&x559
         ) != (
         x560 = (* (( (ptr) b←v29992)+1) ),  *(float*)&x560
         ))) || ((
         x561 = (* (( (ptr) a←v29964)+2) ),  *(float*)&x561
         ) != (
         x562 = (* (( (ptr) b←v29992)+2) ),  *(float*)&x562
         ))) || ((
         x563 = (* (( (ptr) a←v29964)+3) ),  *(float*)&x563
         ) != (
         x564 = (* (( (ptr) b←v29992)+3) ),  *(float*)&x564
         ))) {
SOURCE(31554, 14)
         return(0);
         };
      };
SOURCE(31570, 78)
   {
      word pd565;
      pd565 = (* (( (ptr) (* (( (ptr) gf←c80800)+332)/* var←c66976 */  ))+22) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd565 ))))((* (( (ptr) a←v29964)+4) ), (* (( (ptr) b←v29992)+4) ), pd565))) {
SOURCE(31634, 14)
         return(0);
         };
      };
SOURCE(31650, 13)
   return(1);
   }

static word NewColorOperatorYES←P4320(sWhite←v15520, sBlack←v15548, sneutral←v15576, srange←v15604, map←v15632, appearanceHints←v15660)
   word sWhite←v15520;
   word sBlack←v15548;
   word sneutral←v15576;
   word srange←v15604;
   word map←v15632;
   word appearanceHints←v15660;
   {
   register ptr gf←c80832 =  (ptr) &globalframe;
   word var←c15704;
   word data←v30036;
   /* NewColorOperatorYES: */ 
SOURCE(31669, 423)
SOURCE(31831, 112)
   data←v30036 = XR←NewObject(20, (* (( (ptr) gf←c80832)+47) ));
   (*  (ptr) data←v30036 ) = sWhite←v15520;
   (* (( (ptr) data←v30036)+1) ) = sBlack←v15548;
   (* (( (ptr) data←v30036)+2) ) = sneutral←v15576;
   (* (( (ptr) data←v30036)+3) ) = srange←v15604;
   (* (( (ptr) data←v30036)+4) ) = map←v15632;
SOURCE(31945, 147)
   {
      word pd566;
      pd566 = (* (( (ptr) (* (( (ptr) gf←c80832)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd566 ))))(1, 3, (* (( (ptr) gf←c80832)+19)/* classYES←v6948 */  ), data←v30036, appearanceHints←v15660, pd566)
      );
      };
   }

static word ColorFromCIELAB←P4380(cielab←v15776)
   W3 cielab←v15776;
   {
   register ptr gf←c80864 =  (ptr) &globalframe;
   word var←c15820;
   word color←v30080;
   /* ColorFromCIELAB: */ 
SOURCE(32910, 325)
SOURCE(32986, 53)
   color←v30080 = XR←NewObject(28, (* (( (ptr) gf←c80864)+62) ));
   (* (( (ptr) color←v30080)+3) ) = 3;
SOURCE(33041, 32)
   (* (( (ptr) color←v30080)+2) ) = (* (( (ptr) gf←c80864)+24)/* cielab1000←v7452 */  );
SOURCE(33075, 44)
   {
      word var←c73792;
      {
         word pd567;
         word x568;
         word x569;
         float tf570;
         float tf571;
         pd567 = (* (( (ptr) (* (( (ptr) gf←c80864)+337)/* var←c70656 */  ))+6) );
         var←c73792 = (
            tf571 = (float)(int)(word) ( *( (fPt) ((*  (ptr) pd567 ))))((
                  tf570 = (
                     x568 = cielab←v15776.f0,  *(float*)&x568
                     ) * (
                     x569 = (*  (ptr) &fc128 ),  *(float*)&x569
                     ),  *(word*)&tf570
                  ), pd567),  *(word*)&tf571
            );
         };
      {
         word limit572;
         (* ((( (ptr) color←v30080)+4)+(
               limit572 = (* (( (ptr) color←v30080)+3) ),
               BCK(0, limit572)
               )) ) = var←c73792;
         };
      };
SOURCE(33121, 48)
   {
      word var←c73824;
      {
         word pd573;
         word x574;
         word x575;
         word x576;
         float tf577;
         float tf578;
         pd573 = (* (( (ptr) (* (( (ptr) gf←c80864)+337)/* var←c70656 */  ))+6) );
         var←c73824 = (
            tf578 = (float)(int)(word) ( *( (fPt) ((*  (ptr) pd573 ))))((
                  tf577 = ((
                     x574 = cielab←v15776.f1,  *(float*)&x574
                     ) * (
                     x575 = (*  (ptr) &fc128 ),  *(float*)&x575
                     )) + (
                     x576 = (*  (ptr) &fc127 ),  *(float*)&x576
                     ),  *(word*)&tf577
                  ), pd573),  *(word*)&tf578
            );
         };
      {
         word limit579;
         (* ((( (ptr) color←v30080)+4)+(
               limit579 = (* (( (ptr) color←v30080)+3) ),
               BCK(1, limit579)
               )) ) = var←c73824;
         };
      };
SOURCE(33171, 48)
   {
      word var←c73856;
      {
         word pd580;
         word x581;
         word x582;
         word x583;
         float tf584;
         float tf585;
         pd580 = (* (( (ptr) (* (( (ptr) gf←c80864)+337)/* var←c70656 */  ))+6) );
         var←c73856 = (
            tf585 = (float)(int)(word) ( *( (fPt) ((*  (ptr) pd580 ))))((
                  tf584 = ((
                     x581 = cielab←v15776.f2,  *(float*)&x581
                     ) * (
                     x582 = (*  (ptr) &fc128 ),  *(float*)&x582
                     )) + (
                     x583 = (*  (ptr) &fc127 ),  *(float*)&x583
                     ),  *(word*)&tf584
                  ), pd580),  *(word*)&tf585
            );
         };
      {
         word limit586;
         (* ((( (ptr) color←v30080)+4)+(
               limit586 = (* (( (ptr) color←v30080)+3) ),
               BCK(2, limit586)
               )) ) = var←c73856;
         };
      };
SOURCE(33221, 14)
   return(color←v30080);
   }

static word F←P4440(t←v15880)
   word t←v15880;
   {
   word var←c15924;
   /* F: */ 
SOURCE(33241, 107)
SOURCE(33278, 70)
   {
      word x587;
      word x589;
      word x590;
      word x591;
      float tf592;
      word x594;
      word x595;
      word x597;
      word x599;
      float tf600;
      if (((
         x587 = t←v15880,  *(float*)&x587
         ) > (
         x589 = (*  (ptr) &fc588 ),  *(float*)&x589
         ))) {
         return(XR←RealPwr(t←v15880, (
               tf592 = (
                  x590 = (*  (ptr) &fc133 ),  *(float*)&x590
                  ) / (
                  x591 = (*  (ptr) &fc251 ),  *(float*)&x591
                  ),  *(word*)&tf592
               )));
         }
      else {
         return((
            tf600 = ((
               x594 = (*  (ptr) &fc593 ),  *(float*)&x594
               ) * (
               x595 = t←v15880,  *(float*)&x595
               )) + ((
               x597 = (*  (ptr) &fc596 ),  *(float*)&x597
               ) / (
               x599 = (*  (ptr) &fc598 ),  *(float*)&x599
               )),  *(word*)&tf600
            ));
         };
      };
   }

static word G←P4500(ft←v15984)
   word ft←v15984;
   {
   word var←c16028;
   /* G: */ 
SOURCE(33354, 109)
SOURCE(33392, 71)
   {
      word x601;
      word x603;
      word x604;
      word x605;
      word x606;
      float tf607;
      word x608;
      word x609;
      word x610;
      word x611;
      float tf612;
      if (((
         x601 = ft←v15984,  *(float*)&x601
         ) > (
         x603 = (*  (ptr) &fc602 ),  *(float*)&x603
         ))) {
         return((
            tf607 = ((
               x604 = ft←v15984,  *(float*)&x604
               ) * (
               x605 = ft←v15984,  *(float*)&x605
               )) * (
               x606 = ft←v15984,  *(float*)&x606
               ),  *(word*)&tf607
            ));
         }
      else {
         return((
            tf612 = ((
               x608 = ft←v15984,  *(float*)&x608
               ) - ((
               x609 = (*  (ptr) &fc596 ),  *(float*)&x609
               ) / (
               x610 = (*  (ptr) &fc598 ),  *(float*)&x610
               ))) / (
               x611 = (*  (ptr) &fc593 ),  *(float*)&x611
               ),  *(word*)&tf612
            ));
         };
      };
   }

static void CIELABFromColor←P4560(formal←c0785, c←v16172)
   word formal←c0785;
   word c←v16172;
   {
   register ptr gf←c80896 =  (ptr) &globalframe;
   W3 r←v16216;
   word colorSpace←v30124;
   word p←v30152;
   /* CIELABFromColor: */ 
SOURCE(33574, 669)
SOURCE(33648, 99)
   {
      word pd613;
      pd613 = (* (( (ptr) (* (( (ptr) gf←c80896)+332)/* var←c66976 */  ))+42) );
      colorSpace←v30124 = (word) ( *( (fPt) ((*  (ptr) pd613 ))))((* (( (ptr) c←v16172)+2) ), (* (( (ptr) gf←c80896)+25)/* chooseCIELABorRGBorY←v7620 */  ), pd613)
      ;
      };
SOURCE(33749, 72)
   {
      word pd614;
      pd614 = (* (( (ptr) (* (( (ptr) gf←c80896)+332)/* var←c66976 */  ))+41) );
      p←v30152 = (word) ( *( (fPt) ((*  (ptr) pd614 ))))(c←v16172, colorSpace←v30124, pd614);
      };
SOURCE(33823, 354)
   {
      word var←c73888;
      var←c73888 = colorSpace←v30124;
      switch (var←c73888) {
         case 2: 
SOURCE(33857, 22)
            {
               word limit615;
               r←v16216.f0 = (* ((( (ptr) p←v30152)+2)+(
                     limit615 = (* (( (ptr) p←v30152)+1) ),
                     BCK(0, limit615)
                     )) );
               };
            {
               word limit616;
               r←v16216.f1 = (* ((( (ptr) p←v30152)+2)+(
                     limit616 = (* (( (ptr) p←v30152)+1) ),
                     BCK(1, limit616)
                     )) );
               };
            {
               word limit617;
               r←v16216.f2 = (* ((( (ptr) p←v30152)+2)+(
                     limit617 = (* (( (ptr) p←v30152)+1) ),
                     BCK(2, limit617)
                     )) );
               };
            break;
         case 1: 
SOURCE(33889, 204)
            {
               W3 xyz←v30196;
               word fY←v30224;
SOURCE(33891, 69)
               {
                  W3 var←c0782;
                  {
                     W3 var←c73920;
                     {
                        word limit618;
                        var←c73920.f0 = (* ((( (ptr) p←v30152)+2)+(
/*1*/   limit618 = (* (( (ptr) p←v30152)+1) ),
/*1*/   BCK(0, limit618)
/*1*/   )) );
                        };
                     {
                        word limit619;
                        var←c73920.f1 = (* ((( (ptr) p←v30152)+2)+(
/*1*/   limit619 = (* (( (ptr) p←v30152)+1) ),
/*1*/   BCK(1, limit619)
/*1*/   )) );
                        };
                     {
                        word limit620;
                        var←c73920.f2 = (* ((( (ptr) p←v30152)+2)+(
/*1*/   limit620 = (* (( (ptr) p←v30152)+1) ),
/*1*/   BCK(2, limit620)
/*1*/   )) );
                        };
                     (void) Apply3←P3780((word) &var←c0782, (* (( (ptr) gf←c80896)+23)/* matXYZFromRGB←v7424 */  ), var←c73920);
                     };
                  xyz←v30196 = var←c0782;
                  };
SOURCE(33962, 20)
               fY←v30224 = (word) F←P4440(xyz←v30196.f1);
SOURCE(33984, 25)
               {
                  word x621;
                  word x622;
                  word x623;
                  *(float*)&r←v16216.f0 = ((
                     x621 = (*  (ptr) &fc598 ),  *(float*)&x621
                     ) * (
                     x622 = fY←v30224,  *(float*)&x622
                     )) - (
                     x623 = (*  (ptr) &fc596 ),  *(float*)&x623
                     );
                  };
SOURCE(34011, 39)
               {
                  word x624;
                  word x625;
                  word x627;
                  float tf628;
                  word x629;
                  word x630;
                  *(float*)&r←v16216.f1 = (
                     x624 = (*  (ptr) &fc127 ),  *(float*)&x624
                     ) * ((
                     x629 = (word) F←P4440((
                           tf628 = (
/*1*/   x625 = xyz←v30196.f0,  *(float*)&x625
/*1*/   ) / (
/*1*/   x627 = (*  (ptr) &fc626 ),  *(float*)&x627
/*1*/   ),  *(word*)&tf628
                           )),  *(float*)&x629
                     ) - (
                     x630 = fY←v30224,  *(float*)&x630
                     ));
                  };
SOURCE(34052, 39)
               {
                  word x632;
                  word x633;
                  word x634;
                  word x636;
                  float tf637;
                  word x638;
                  *(float*)&r←v16216.f2 = (
                     x632 = (*  (ptr) &fc631 ),  *(float*)&x632
                     ) * ((
                     x633 = fY←v30224,  *(float*)&x633
                     ) - (
                     x638 = (word) F←P4440((
                           tf637 = (
/*1*/   x634 = xyz←v30196.f2,  *(float*)&x634
/*1*/   ) / (
/*1*/   x636 = (*  (ptr) &fc635 ),  *(float*)&x636
/*1*/   ),  *(word*)&tf637
                           )),  *(float*)&x638
                     ));
                  };
               };
            break;
         case 0: 
SOURCE(34102, 77)
            {
               word fY←v30304;
SOURCE(34104, 18)
               {
                  word limit639;
                  fY←v30304 = (word) F←P4440((* (((( (ptr) p←v30152)+2)+(
                           limit639 = (* (( (ptr) p←v30152)+1) ),
                           BCK(0, limit639)
                           ))) ));
                  };
SOURCE(34124, 27)
               {
                  word x640;
                  word x641;
                  word x642;
                  *(float*)&r←v16216.f0 = ((
                     x640 = (*  (ptr) &fc598 ),  *(float*)&x640
                     ) * (
                     x641 = fY←v30304,  *(float*)&x641
                     )) - (
                     x642 = (*  (ptr) &fc596 ),  *(float*)&x642
                     );
                  };
SOURCE(34153, 11)
               r←v16216.f1 = (*  (ptr) &fc95 );
SOURCE(34166, 11)
               r←v16216.f2 = (*  (ptr) &fc95 );
               };
            break;
         default: 
SOURCE(34193, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
SOURCE(34200, 43)
   {
      word pd643;
      pd643 = (* (( (ptr) (* (( (ptr) gf←c80896)+332)/* var←c66976 */  ))+36) );
      p←v30152 = (word) ( *( (fPt) ((*  (ptr) pd643 ))))(p←v30152, pd643);
      };
   /* removed tail goto */ 
   (*  (W3Pt) formal←c0785 ) = r←v16216;
   return;
   }

static word CreateColorOperatorCIELAB←P4620(class←v50336, structure←v50364)
   word class←v50336;
   word structure←v50364;
   {
   register ptr gf←c80928 =  (ptr) &globalframe;
   word var←c50408;
   word consistencyTest←v30348;
   word sWhite←v30376;
   word sBlack←v30404;
   word sneutral←v30432;
   word srange←v30460;
   word pixelEncodingStructure←v30488;
   word map←v30516;
   word appearanceHints←v30544;
   word colorOperator←v30572;
   /* CreateColorOperatorCIELAB: */ 
SOURCE(34249, 811)
SOURCE(34304, 66)
   {
      word pd644;
      pd644 = (* (( (ptr) (* (( (ptr) gf←c80928)+332)/* var←c66976 */  ))+6) );
      consistencyTest←v30348 = (word) ( *( (fPt) ((*  (ptr) pd644 ))))(structure←v50364, 6, pd644);
      };
SOURCE(34372, 56)
   {
      word pd645;
      pd645 = (* (( (ptr) (* (( (ptr) gf←c80928)+332)/* var←c66976 */  ))+9) );
      sWhite←v30376 = (word) ( *( (fPt) ((*  (ptr) pd645 ))))(structure←v50364, 0, pd645);
      };
SOURCE(34430, 56)
   {
      word pd646;
      pd646 = (* (( (ptr) (* (( (ptr) gf←c80928)+332)/* var←c66976 */  ))+9) );
      sBlack←v30404 = (word) ( *( (fPt) ((*  (ptr) pd646 ))))(structure←v50364, 1, pd646);
      };
SOURCE(34488, 58)
   {
      word pd647;
      pd647 = (* (( (ptr) (* (( (ptr) gf←c80928)+332)/* var←c66976 */  ))+9) );
      sneutral←v30432 = (word) ( *( (fPt) ((*  (ptr) pd647 ))))(structure←v50364, 2, pd647);
      };
SOURCE(34548, 56)
   {
      word pd648;
      pd648 = (* (( (ptr) (* (( (ptr) gf←c80928)+332)/* var←c66976 */  ))+9) );
      srange←v30460 = (word) ( *( (fPt) ((*  (ptr) pd648 ))))(structure←v50364, 3, pd648);
      };
SOURCE(34606, 93)
   {
      word pd649;
      pd649 = (* (( (ptr) (* (( (ptr) gf←c80928)+332)/* var←c66976 */  ))+12) );
      pixelEncodingStructure←v30488 = (word) ( *( (fPt) ((*  (ptr) pd649 ))))(structure←v50364, 4, 3, pd649);
      };
SOURCE(34701, 90)
   {
      word pd650;
      pd650 = (* (( (ptr) (* (( (ptr) gf←c80928)+332)/* var←c66976 */  ))+23) );
      map←v30516 = (word) ( *( (fPt) ((*  (ptr) pd650 ))))(pixelEncodingStructure←v30488, pd650);
      };
SOURCE(34793, 75)
   {
      word pd651;
      pd651 = (* (( (ptr) (* (( (ptr) gf←c80928)+332)/* var←c66976 */  ))+11) );
      appearanceHints←v30544 = (word) ( *( (fPt) ((*  (ptr) pd651 ))))(structure←v50364, 5, pd651);
      };
SOURCE(34870, 165)
   colorOperator←v30572 = (word) NewColorOperatorCIELAB←P4800(sWhite←v30376, sBlack←v30404, sneutral←v30432, srange←v30460, map←v30516, appearanceHints←v30544)
   ;
SOURCE(35037, 23)
   return(colorOperator←v30572);
   }

static word GetPixelEncodingCIELAB←P4680(colorOperator←v50468)
   word colorOperator←v50468;
   {
   register ptr gf←c80960 =  (ptr) &globalframe;
   word var←c50512;
   word data←v30616;
   /* GetPixelEncodingCIELAB: */ 
SOURCE(35064, 114)
SOURCE(35113, 45)
   data←v30616 = XR←Narrow((* (( (ptr) colorOperator←v50468)+3) ), (* (( (ptr) gf←c80960)+47) ));
SOURCE(35160, 18)
   return((* (( (ptr) data←v30616)+4) ));
   }

static void ApplyCIELAB←P4740(colorOperator←v50572, pixelIn←v50600, colorSpace←v50628, out←v50656)
   word colorOperator←v50572;
   word pixelIn←v50600;
   word colorSpace←v50628;
   word out←v50656;
   {
   register ptr gf←c80992 =  (ptr) &globalframe;
   word data←v30660;
   word sWhite←v30688;
   word sBlack←v30716;
   word pm←v30744;
   word Lstar01←v30800;
   /* ApplyCIELAB: */ 
SOURCE(35182, 891)
SOURCE(35209, 45)
   data←v30660 = XR←Narrow((* (( (ptr) colorOperator←v50572)+3) ), (* (( (ptr) gf←c80992)+47) ));
SOURCE(35256, 26)
   sWhite←v30688 = (*  (ptr) data←v30660 );
SOURCE(35284, 26)
   sBlack←v30716 = (* (( (ptr) data←v30660)+1) );
SOURCE(35312, 28)
   pm←v30744 = (* (( (ptr) data←v30660)+4) );
SOURCE(35409, 59)
   {
      word x←v62472;
      {
         word x652;
         word x653;
         word x654;
         word x655;
         *(float*)&x←v62472 = ((
            x652 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v50600 ))))(0, pixelIn←v50600),  *(float*)&x652
            ) - (
            x653 = sBlack←v30716,  *(float*)&x653
            )) / ((
            x654 = sWhite←v30688,  *(float*)&x654
            ) - (
            x655 = sBlack←v30716,  *(float*)&x655
            ));
         };
SOURCE(2971, 27)
      {
         word x656;
         word x657;
         word x658;
         word x659;
         if (((
            x656 = x←v62472,  *(float*)&x656
            ) <= (
            x657 = (*  (ptr) &fc95 ),  *(float*)&x657
            ))) {
            Lstar01←v30800 = (*  (ptr) &fc95 );
            }
         else {
            if (((
               x658 = x←v62472,  *(float*)&x658
               ) > (
               x659 = (*  (ptr) &fc133 ),  *(float*)&x659
               ))) {
               Lstar01←v30800 = (*  (ptr) &fc133 );
               }
            else {
               Lstar01←v30800 = x←v62472;
               };
            };
         };
      };
SOURCE(35470, 603)
   if ((colorSpace←v50628 == 2)) {
SOURCE(35500, 166)
      {
         word sneutral←v30948;
         word srange←v30976;
SOURCE(35502, 30)
         sneutral←v30948 = (* (( (ptr) data←v30660)+2) );
SOURCE(35534, 26)
         srange←v30976 = (* (( (ptr) data←v30660)+3) );
SOURCE(35562, 24)
         {
            word limit660;
            word x661;
            word x662;
            *(float*)((( (ptr) out←v50656)+2)+(
                  limit660 = (* (( (ptr) out←v50656)+1) ),
                  BCK(0, limit660)
                  )) = (
               x661 = Lstar01←v30800,  *(float*)&x661
               ) * (
               x662 = (*  (ptr) &fc136 ),  *(float*)&x662
               );
            };
SOURCE(35588, 37)
         {
            word var←c74016;
            {
               word x663;
               word x664;
               word x665;
               *(float*)&var←c74016 = ((
                  x663 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v50600 ))))(1, pixelIn←v50600),  *(float*)&x663
                  ) - (
                  x664 = sneutral←v30948,  *(float*)&x664
                  )) / (
                  x665 = srange←v30976,  *(float*)&x665
                  );
               };
            {
               word limit666;
               (* ((( (ptr) out←v50656)+2)+(
                     limit666 = (* (( (ptr) out←v50656)+1) ),
                     BCK(1, limit666)
                     )) ) = var←c74016;
               };
            };
SOURCE(35627, 37)
         {
            word var←c74048;
            {
               word x667;
               word x668;
               word x669;
               *(float*)&var←c74048 = ((
                  x667 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v50600 ))))(2, pixelIn←v50600),  *(float*)&x667
                  ) - (
                  x668 = sneutral←v30948,  *(float*)&x668
                  )) / (
                  x669 = srange←v30976,  *(float*)&x669
                  );
               };
            {
               word limit670;
               (* ((( (ptr) out←v50656)+2)+(
                     limit670 = (* (( (ptr) out←v50656)+1) ),
                     BCK(2, limit670)
                     )) ) = var←c74048;
               };
            };
         };
      }
   else {
SOURCE(35673, 426)
      {
         word fY←v31020;
         word Y←v31048;
SOURCE(35675, 34)
         {
            word x671;
            word x672;
            word x673;
            *(float*)&fY←v31020 = ((
               x671 = Lstar01←v30800,  *(float*)&x671
               ) + (
               x672 = (*  (ptr) &fc246 ),  *(float*)&x672
               )) / (
               x673 = (*  (ptr) &fc248 ),  *(float*)&x673
               );
            };
SOURCE(35711, 15)
         Y←v31048 = (word) G←P4500(fY←v31020);
SOURCE(35728, 345)
         if ((colorSpace←v50628 == 0)) {
SOURCE(35754, 11)
            {
               word limit674;
               (* ((( (ptr) out←v50656)+2)+(
                     limit674 = (* (( (ptr) out←v50656)+1) ),
                     BCK(0, limit674)
                     )) ) = Y←v31048;
               };
            }
         else {
SOURCE(35772, 324)
            {
               word sneutral←v31092;
               word srange←v31120;
               word astar←v31148;
               word bstar←v31176;
               word X←v31204;
               word Z←v31232;
SOURCE(35774, 30)
               sneutral←v31092 = (* (( (ptr) data←v30660)+2) );
SOURCE(35806, 26)
               srange←v31120 = (* (( (ptr) data←v30660)+3) );
SOURCE(35834, 42)
               {
                  word x675;
                  word x676;
                  word x677;
                  *(float*)&astar←v31148 = ((
                     x675 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v50600 ))))(1, pixelIn←v50600),  *(float*)&x675
                     ) - (
                     x676 = sneutral←v31092,  *(float*)&x676
                     )) / (
                     x677 = srange←v31120,  *(float*)&x677
                     );
                  };
SOURCE(35878, 42)
               {
                  word x678;
                  word x679;
                  word x680;
                  *(float*)&bstar←v31176 = ((
                     x678 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v50600 ))))(2, pixelIn←v50600),  *(float*)&x678
                     ) - (
                     x679 = sneutral←v31092,  *(float*)&x679
                     )) / (
                     x680 = srange←v31120,  *(float*)&x680
                     );
                  };
SOURCE(35922, 38)
               {
                  word x681;
                  word x682;
                  word x683;
                  float tf684;
                  word x685;
                  word x686;
                  *(float*)&X←v31204 = (
                     x685 = (word) G←P4500((
                           tf684 = ((
/*1*/   x681 = astar←v31148,  *(float*)&x681
/*1*/   ) / (
/*1*/   x682 = (*  (ptr) &fc127 ),  *(float*)&x682
/*1*/   )) + (
/*1*/   x683 = fY←v31020,  *(float*)&x683
/*1*/   ),  *(word*)&tf684
                           )),  *(float*)&x685
                     ) * (
                     x686 = (*  (ptr) &fc626 ),  *(float*)&x686
                     );
                  };
SOURCE(35962, 38)
               {
                  word x687;
                  word x688;
                  word x689;
                  float tf690;
                  word x691;
                  word x692;
                  *(float*)&Z←v31232 = (
                     x691 = (word) G←P4500((
                           tf690 = (
/*1*/   x687 = fY←v31020,  *(float*)&x687
/*1*/   ) - ((
/*1*/   x688 = bstar←v31176,  *(float*)&x688
/*1*/   ) / (
/*1*/   x689 = (*  (ptr) &fc631 ),  *(float*)&x689
/*1*/   )),  *(word*)&tf690
                           )),  *(float*)&x691
                     ) * (
                     x692 = (*  (ptr) &fc635 ),  *(float*)&x692
                     );
                  };
SOURCE(36002, 71)
               {
                  word var←c74080;
                  var←c74080 = colorSpace←v50628;
                  if ((var←c74080 == 1)) {
SOURCE(36035, 38)
                     (void) Apply3Out←P3840((* (( (ptr) gf←c80992)+22)/* matRGBFromXYZ←v7396 */  ), X←v31204, Y←v31048, Z←v31232, out←v50656);
                     }
                  else {
SOURCE(36089, 5)
                     (void) XR←RaiseUnnamedError();
                     };
                  };
               };
            };
         };
      };
   }

static word NewColorOperatorCIELAB←P4800(sWhite←v16276, sBlack←v16304, sneutral←v16332, srange←v16360, map←v16388, appearanceHints←v16416)
   word sWhite←v16276;
   word sBlack←v16304;
   word sneutral←v16332;
   word srange←v16360;
   word map←v16388;
   word appearanceHints←v16416;
   {
   register ptr gf←c81024 =  (ptr) &globalframe;
   word var←c16460;
   word data←v31276;
   /* NewColorOperatorCIELAB: */ 
SOURCE(36106, 435)
SOURCE(36271, 118)
   data←v31276 = XR←NewObject(20, (* (( (ptr) gf←c81024)+47) ));
   (*  (ptr) data←v31276 ) = sWhite←v16276;
   (* (( (ptr) data←v31276)+1) ) = sBlack←v16304;
   (* (( (ptr) data←v31276)+2) ) = sneutral←v16332;
   (* (( (ptr) data←v31276)+3) ) = srange←v16360;
   (* (( (ptr) data←v31276)+4) ) = map←v16388;
SOURCE(36391, 150)
   {
      word pd693;
      pd693 = (* (( (ptr) (* (( (ptr) gf←c81024)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd693 ))))(1, 3, (* (( (ptr) gf←c81024)+21)/* classCIELAB←v7368 */  ), data←v31276, appearanceHints←v16416, pd693)
      );
      };
   }

static word ExtraColorFromHighlight←P4860(highlight←v16800, baseColor←v16828, highlightColor←v16856, appearanceHints←v16884)
   W2 highlight←v16800;
   word baseColor←v16828;
   word highlightColor←v16856;
   word appearanceHints←v16884;
   {
   register ptr gf←c81056 =  (ptr) &globalframe;
   word var←c16928;
   word color←v31320;
   /* ExtraColorFromHighlight: */ 
SOURCE(37664, 745)
SOURCE(37850, 53)
   color←v31320 = XR←NewObject(24, (* (( (ptr) gf←c81056)+62) ));
   (* (( (ptr) color←v31320)+3) ) = 2;
SOURCE(37905, 61)
   if ((baseColor←v16828 == 0)) {
SOURCE(37929, 37)
      baseColor←v16828 = (word) Find←P60((* ((( (ptr) gf←c81056)+86)) ));
      };
SOURCE(37968, 129)
   if ((highlightColor←v16856 == 0)) {
SOURCE(37997, 100)
      {
         word var←c74208;
         word var←c74240;
         var←c74208 = (word) Find←P60((* ((( (ptr) gf←c81056)+86)) ));
         var←c74240 = (word) Find←P60((* ((( (ptr) gf←c81056)+80)) ));
         {
            W2 var←c74272;
            var←c74272.f0 = (*  (ptr) &fc95 );
            var←c74272.f1 = (*  (ptr) &fc133 );
            highlightColor←v16856 = (word) ExtraColorFromHighlight←P4860(var←c74272, var←c74208, var←c74240, 0);
            };
         };
      };
SOURCE(38099, 173)
   {
      float tf694;
      (* (( (ptr) color←v31320)+2) ) = (word) ExtraNewColorOperatorHighlight←P5400((
            tf694 = (float)(unsigned)1000,  *(word*)&tf694
            ), (*  (ptr) &fc95 ), 0, baseColor←v16828, highlightColor←v16856, appearanceHints←v16884);
      };
SOURCE(38274, 58)
   {
      word var←c74304;
      {
         float tf695;
         var←c74304 = (
            tf695 = (float)(unsigned)(word) SampleFromReal←P300(highlight←v16800.f0, 1000),  *(word*)&tf695
            );
         };
      {
         word limit696;
         (* ((( (ptr) color←v31320)+4)+(
               limit696 = (* (( (ptr) color←v31320)+3) ),
               BCK(0, limit696)
               )) ) = var←c74304;
         };
      };
SOURCE(38334, 58)
   {
      word var←c74336;
      {
         float tf697;
         var←c74336 = (
            tf697 = (float)(unsigned)(word) SampleFromReal←P300(highlight←v16800.f1, 1000),  *(word*)&tf697
            );
         };
      {
         word limit698;
         (* ((( (ptr) color←v31320)+4)+(
               limit698 = (* (( (ptr) color←v31320)+3) ),
               BCK(1, limit698)
               )) ) = var←c74336;
         };
      };
SOURCE(38394, 15)
   return(color←v31320);
   }

static word ColorFromHighlight←P4920(highlight←v16988)
   W2 highlight←v16988;
   {
   word var←c17032;
   /* ColorFromHighlight: */ 
SOURCE(38413, 128)
SOURCE(38498, 43)
   return((word) ExtraColorFromHighlight←P4860(highlight←v16988, 0, 0, 0));
   }

static void HighlightFromColor←P4980(formal←c0854, c←v17092)
   word formal←c0854;
   word c←v17092;
   {
   register ptr gf←c81088 =  (ptr) &globalframe;
   W2 var←c17136;
   word class←v31364;
   /* HighlightFromColor: */ 
SOURCE(38547, 483)
SOURCE(38624, 49)
   class←v31364 = (* (( (ptr) (* (( (ptr) c←v17092)+2) ))+2) );
SOURCE(38675, 231)
   {
      register word tail←v31408;
      tail←v31408 = (* (( (ptr) class←v31364)+6) );
      lab←L100071: ;
      if ((tail←v31408 != 0)) {
         }
      else {
         goto lab←L100068;
         };
SOURCE(38758, 148)
      if (((*  (ptr) tail←v31408 ) == 4)) {
SOURCE(38790, 118)
         {
            word p←v31536;
SOURCE(38792, 91)
            {
               word pd699;
               pd699 = (* (( (ptr) (* (( (ptr) gf←c81088)+332)/* var←c66976 */  ))+41) );
               p←v31536 = (word) ( *( (fPt) ((*  (ptr) pd699 ))))(c←v17092, 4, pd699);
               };
SOURCE(38885, 21)
            {
               W2 var←c74432;
               {
                  W2 var←c74400;
                  {
                     word limit700;
                     var←c74400.f0 = (* ((( (ptr) p←v31536)+2)+(
                           limit700 = (* (( (ptr) p←v31536)+1) ),
                           BCK(0, limit700)
                           )) );
                     };
                  {
                     word limit701;
                     var←c74400.f1 = (* ((( (ptr) p←v31536)+2)+(
                           limit701 = (* (( (ptr) p←v31536)+1) ),
                           BCK(1, limit701)
                           )) );
                     };
                  var←c74432 = var←c74400;
                  };
               var←c17136 = var←c74432;
               goto lab←L100067;
               };
            };
         };
      tail←v31408 = (* (( (ptr) tail←v31408)+1) );
      goto lab←L100071;
      lab←L100068: ;
      };
SOURCE(38920, 110)
   {
      W3 var←c0853;
      var←c0853.f0 = 102;
      var←c0853.f1 = (* (( (ptr) gf←c81088)+91) );
      var←c0853.f2 = 0;
      (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81088)+336)/* var←c70432 */  ))+4) ), (word) &var←c0853);
      };
   lab←L100067: ;
   (*  (W2Pt) formal←c0854 ) = var←c17136;
   return;
   }

static word NarrowToConstantColor←P5040(color←v17196)
   word color←v17196;
   {
   register ptr gf←c81120 =  (ptr) &globalframe;
   word var←c17240;
   /* NarrowToConstantColor: */ 
SOURCE(39036, 243)
SOURCE(39107, 172)
   {
      word var←c74496;
      var←c74496 = color←v17196;
      if ((var←c74496 == 0)) {
         goto lab←L100072;
         };
      if (((*  (ptr) var←c74496 ) == 0)) {
         {
            word color←v31580;
            color←v31580 = var←c74496;
SOURCE(39154, 14)
            return(color←v31580);
            };
         }
      else {
         lab←L100072: ;
SOURCE(39181, 98)
         {
            word var←c74528;
            {
               word var←c74560;
               word var←c74592;
               var←c74560 = XR←NewObject(12, (* (( (ptr) gf←c81120)+55) ));
               var←c74592 = var←c74560;
               (*  (ptr) var←c74592 ) = (* (( (ptr) gf←c81120)+93) );
               (* (( (ptr) var←c74592)+1) ) = color←v17196;
               var←c74528 = var←c74560;
               };
            {
               W3 var←c0863;
               var←c0863.f0 = 62;
               var←c0863.f1 = (* (( (ptr) gf←c81120)+92) );
               var←c0863.f2 = var←c74528;
               (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81120)+336)/* var←c70432 */  ))+4) ), (word) &var←c0863);
               };
            };
         };
      };
   }

static word CreateColorOperatorHighlight←P5100(class←v50748, structure←v50776)
   word class←v50748;
   word structure←v50776;
   {
   register ptr gf←c81152 =  (ptr) &globalframe;
   word var←c50820;
   word consistencyTest←v31624;
   word sWhite←v31652;
   word sBlack←v31680;
   word pixelEncodingStructure←v31708;
   word baseColor←v31736;
   word highlightColor←v31764;
   word appearanceHints←v31792;
   word map←v31820;
   word colorOperator←v31848;
   /* CreateColorOperatorHighlight: */ 
SOURCE(39285, 905)
SOURCE(39343, 66)
   {
      word pd702;
      pd702 = (* (( (ptr) (* (( (ptr) gf←c81152)+332)/* var←c66976 */  ))+6) );
      consistencyTest←v31624 = (word) ( *( (fPt) ((*  (ptr) pd702 ))))(structure←v50776, 6, pd702);
      };
SOURCE(39411, 56)
   {
      word pd703;
      pd703 = (* (( (ptr) (* (( (ptr) gf←c81152)+332)/* var←c66976 */  ))+9) );
      sWhite←v31652 = (word) ( *( (fPt) ((*  (ptr) pd703 ))))(structure←v50776, 0, pd703);
      };
SOURCE(39469, 56)
   {
      word pd704;
      pd704 = (* (( (ptr) (* (( (ptr) gf←c81152)+332)/* var←c66976 */  ))+9) );
      sBlack←v31680 = (word) ( *( (fPt) ((*  (ptr) pd704 ))))(structure←v50776, 1, pd704);
      };
SOURCE(39527, 93)
   {
      word pd705;
      pd705 = (* (( (ptr) (* (( (ptr) gf←c81152)+332)/* var←c66976 */  ))+12) );
      pixelEncodingStructure←v31708 = (word) ( *( (fPt) ((*  (ptr) pd705 ))))(structure←v50776, 2, 3, pd705);
      };
SOURCE(39622, 92)
   {
      word var←c74656;
      {
         word pd706;
         pd706 = (* (( (ptr) (* (( (ptr) gf←c81152)+332)/* var←c66976 */  ))+13) );
         var←c74656 = (word) ( *( (fPt) ((*  (ptr) pd706 ))))(structure←v50776, 3, pd706);
         };
      baseColor←v31736 = (word) NarrowToConstantColor←P5040(var←c74656);
      };
SOURCE(39716, 97)
   {
      word var←c74688;
      {
         word pd707;
         pd707 = (* (( (ptr) (* (( (ptr) gf←c81152)+332)/* var←c66976 */  ))+13) );
         var←c74688 = (word) ( *( (fPt) ((*  (ptr) pd707 ))))(structure←v50776, 4, pd707);
         };
      highlightColor←v31764 = (word) NarrowToConstantColor←P5040(var←c74688);
      };
SOURCE(39815, 75)
   {
      word pd708;
      pd708 = (* (( (ptr) (* (( (ptr) gf←c81152)+332)/* var←c66976 */  ))+11) );
      appearanceHints←v31792 = (word) ( *( (fPt) ((*  (ptr) pd708 ))))(structure←v50776, 5, pd708);
      };
SOURCE(39892, 90)
   {
      word pd709;
      pd709 = (* (( (ptr) (* (( (ptr) gf←c81152)+332)/* var←c66976 */  ))+23) );
      map←v31820 = (word) ( *( (fPt) ((*  (ptr) pd709 ))))(pixelEncodingStructure←v31708, pd709);
      };
SOURCE(39984, 181)
   colorOperator←v31848 = (word) ExtraNewColorOperatorHighlight←P5400(sWhite←v31652, sBlack←v31680, 0, baseColor←v31736, highlightColor←v31764, appearanceHints←v31792)
   ;
SOURCE(40167, 23)
   return(colorOperator←v31848);
   }

static word GetPixelEncodingHighlight←P5160(colorOperator←v50984)
   word colorOperator←v50984;
   {
   register ptr gf←c81184 =  (ptr) &globalframe;
   word var←c51028;
   word data←v31892;
   /* GetPixelEncodingHighlight: */ 
SOURCE(40194, 120)
SOURCE(40246, 48)
   data←v31892 = XR←Narrow((* (( (ptr) colorOperator←v50984)+3) ), (* (( (ptr) gf←c81184)+45) ));
SOURCE(40296, 18)
   return((* (( (ptr) data←v31892)+2) ));
   }

static void ApplyHighlight←P5220(colorOperator←v51088, pixelIn←v51116, colorSpace←v51144, out←v51172)
   word colorOperator←v51088;
   word pixelIn←v51116;
   word colorSpace←v51144;
   word out←v51172;
   {
   register ptr gf←c81216 =  (ptr) &globalframe;
   word data←v31936;
   word sWhite←v31964;
   word sBlack←v31992;
   word pm←v32020;
   word b←v32076;
   word h←v32104;
   /* ApplyHighlight: */ 
SOURCE(40318, 664)
SOURCE(40348, 48)
   data←v31936 = XR←Narrow((* (( (ptr) colorOperator←v51088)+3) ), (* (( (ptr) gf←c81216)+45) ));
SOURCE(40398, 26)
   sWhite←v31964 = (*  (ptr) data←v31936 );
SOURCE(40426, 26)
   sBlack←v31992 = (* (( (ptr) data←v31936)+1) );
SOURCE(40454, 28)
   pm←v32020 = (* (( (ptr) data←v31936)+2) );
SOURCE(40550, 45)
   {
      word x710;
      word x711;
      word x712;
      word x713;
      *(float*)&b←v32076 = ((
         x710 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v51116 ))))(0, pixelIn←v51116),  *(float*)&x710
         ) - (
         x711 = sBlack←v31992,  *(float*)&x711
         )) / ((
         x712 = sWhite←v31964,  *(float*)&x712
         ) - (
         x713 = sBlack←v31992,  *(float*)&x713
         ));
      };
SOURCE(40597, 45)
   {
      word x714;
      word x715;
      word x716;
      word x717;
      *(float*)&h←v32104 = ((
         x714 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v51116 ))))(1, pixelIn←v51116),  *(float*)&x714
         ) - (
         x715 = sBlack←v31992,  *(float*)&x715
         )) / ((
         x716 = sWhite←v31964,  *(float*)&x716
         ) - (
         x717 = sBlack←v31992,  *(float*)&x717
         ));
      };
SOURCE(40644, 338)
   {
      word var←c74720;
      var←c74720 = colorSpace←v51144;
      switch (var←c74720) {
         case 4: 
SOURCE(40742, 10)
            {
               word limit718;
               (* ((( (ptr) out←v51172)+2)+(
                     limit718 = (* (( (ptr) out←v51172)+1) ),
                     BCK(0, limit718)
                     )) ) = b←v32076;
               };
SOURCE(40754, 10)
            {
               word limit719;
               (* ((( (ptr) out←v51172)+2)+(
                     limit719 = (* (( (ptr) out←v51172)+1) ),
                     BCK(1, limit719)
                     )) ) = h←v32104;
               };
            break;
         case 1: 
SOURCE(40779, 47)
            {
               word limit720;
               word x721;
               word x722;
               word x723;
               word x724;
               *(float*)((( (ptr) out←v51172)+2)+(
                     limit720 = (* (( (ptr) out←v51172)+1) ),
                     BCK(0, limit720)
                     )) = ((
                  x721 = b←v32076,  *(float*)&x721
                  ) * (
                  x722 = (* (( (ptr) data←v31936)+4) ),  *(float*)&x722
                  )) + ((
                  x723 = h←v32104,  *(float*)&x723
                  ) * (
                  x724 = (* (( (ptr) data←v31936)+9) ),  *(float*)&x724
                  ));
               };
SOURCE(40828, 47)
            {
               word limit725;
               word x726;
               word x727;
               word x728;
               word x729;
               *(float*)((( (ptr) out←v51172)+2)+(
                     limit725 = (* (( (ptr) out←v51172)+1) ),
                     BCK(1, limit725)
                     )) = ((
                  x726 = b←v32076,  *(float*)&x726
                  ) * (
                  x727 = (* (( (ptr) data←v31936)+5) ),  *(float*)&x727
                  )) + ((
                  x728 = h←v32104,  *(float*)&x728
                  ) * (
                  x729 = (* (( (ptr) data←v31936)+10) ),  *(float*)&x729
                  ));
               };
SOURCE(40877, 47)
            {
               word limit730;
               word x731;
               word x732;
               word x733;
               word x734;
               *(float*)((( (ptr) out←v51172)+2)+(
                     limit730 = (* (( (ptr) out←v51172)+1) ),
                     BCK(2, limit730)
                     )) = ((
                  x731 = b←v32076,  *(float*)&x731
                  ) * (
                  x732 = (* (( (ptr) data←v31936)+6) ),  *(float*)&x732
                  )) + ((
                  x733 = h←v32104,  *(float*)&x733
                  ) * (
                  x734 = (* (( (ptr) data←v31936)+11) ),  *(float*)&x734
                  ));
               };
            break;
         case 0: 
SOURCE(40937, 45)
            {
               word limit735;
               word x736;
               word x737;
               word x738;
               word x739;
               *(float*)((( (ptr) out←v51172)+2)+(
                     limit735 = (* (( (ptr) out←v51172)+1) ),
                     BCK(0, limit735)
                     )) = ((
                  x736 = b←v32076,  *(float*)&x736
                  ) * (
                  x737 = (* (( (ptr) data←v31936)+7) ),  *(float*)&x737
                  )) + ((
                  x738 = h←v32104,  *(float*)&x738
                  ) * (
                  x739 = (* (( (ptr) data←v31936)+12) ),  *(float*)&x739
                  ));
               };
            break;
         default: 
SOURCE(40998, 5)
            (void) XR←RaiseUnnamedError();
            break;
         };
      };
   }

static word GetCreateDataHighlight←P5280(formal←c01302)
   word formal←c01302;
   {
   W8 var←c81248;
   /* declaration of colorOperator←v50880 skipped */ 
   register ptr gf←c81280 =  (ptr) &globalframe;
   word var←c50924;
   /* declaration of var←c74752 skipped */ 
   /* declaration of data←v32252 skipped */ 
   word structure←v32308;
   var←c81248.f4/* colorOperator←v50880 */  = formal←c01302;
   /* GetCreateDataHighlight: */ 
SOURCE(41009, 685)
   {
      word tmpAddr740;
      tmpAddr740 = (word) (( (ptr) &var←c81248)+5)/* var←c74752 */ ;
      (*  (ptr) tmpAddr740 ) = ( ((word)  (fPt) GenerateElements←P9456) );
      (* (( (ptr) tmpAddr740) + 1) ) = 1;
      };
SOURCE(41055, 48)
   var←c81248.f7/* data←v32252 */  = XR←Narrow((* (( (ptr) var←c81248.f4/* colorOperator←v50880 */ )+3) ), (* (( (ptr) gf←c81280)+45)
       ));
SOURCE(41584, 89)
   {
      word pd741;
      pd741 = (* (( (ptr) (* (( (ptr) gf←c81280)+332)/* var←c66976 */  ))+17) );
      structure←v32308 = (word) ( *( (fPt) ((*  (ptr) pd741 ))))((word) ((( (bPt) &var←c81248)+20)/* var←c74752 */ ), pd741);
      };
SOURCE(41675, 19)
   return(structure←v32308);
   }

static void GenerateElements←P9456(elementAction←v60184, formal←c81344)
   word elementAction←v60184;
   word formal←c81344;
   {
   register ptr gf←c81312 =  (ptr) &globalframe;
   formal←c81344 = (formal←c81344 - 20);
   /* GenerateElements: */ 
SOURCE(41105, 476)
SOURCE(41144, 34)
   {
      W2 var←c74784;
      var←c74784.f0 = 2;
      var←c74784.f1 = (*  (ptr) (* (( (ptr) formal←c81344)+7) ) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v60184 ))))(var←c74784, elementAction←v60184);
      };
SOURCE(41180, 34)
   {
      W2 var←c74816;
      var←c74816.f0 = 2;
      var←c74816.f1 = (* (( (ptr) (* (( (ptr) formal←c81344)+7) ))+1) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v60184 ))))(var←c74816, elementAction←v60184);
      };
SOURCE(41216, 144)
   if (((* (( (ptr) (* (( (ptr) formal←c81344)+7) ))+2) ) == 0)) {
SOURCE(41243, 24)
      {
         W2 var←c74848;
         var←c74848.f0 = 3;
         var←c74848.f1 = 0;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v60184 ))))(var←c74848, elementAction←v60184);
         };
      }
   else {
SOURCE(41276, 84)
      {
         word var←c74880;
         {
            word pd742;
            pd742 = (* (( (ptr) (* (( (ptr) gf←c81312)+332)/* var←c66976 */  ))+24) );
            var←c74880 = (word) ( *( (fPt) ((*  (ptr) pd742 ))))((* ((( (ptr) (* (( (ptr) formal←c81344)+7) ))+2)) ), pd742);
            };
         {
            W2 var←c74912;
            var←c74912.f0 = 1;
            var←c74912.f1 = var←c74880;
            (void) ( *( (fPt) ((*  (ptr) elementAction←v60184 ))))(var←c74912, elementAction←v60184);
            };
         };
      };
SOURCE(41363, 38)
   {
      W2 var←c74944;
      var←c74944.f0 = 4;
      var←c74944.f1 = (* (( (ptr) (* (( (ptr) formal←c81344)+7) ))+3) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v60184 ))))(var←c74944, elementAction←v60184);
      };
SOURCE(41403, 43)
   {
      W2 var←c74976;
      var←c74976.f0 = 4;
      var←c74976.f1 = (* (( (ptr) (* (( (ptr) formal←c81344)+7) ))+8) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v60184 ))))(var←c74976, elementAction←v60184);
      };
SOURCE(41448, 133)
   if (((* (( (ptr) (* (( (ptr) formal←c81344)+4) ))+4) ) == 0)) {
SOURCE(41494, 29)
      {
         W2 var←c75008;
         var←c75008.f0 = 3;
         var←c75008.f1 = 0;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v60184 ))))(var←c75008, elementAction←v60184);
         };
      }
   else {
SOURCE(41523, 58)
      {
         W2 var←c75040;
         var←c75040.f0 = 1;
         var←c75040.f1 = (* (( (ptr) (* (( (ptr) formal←c81344)+4) ))+4) );
         (void) ( *( (fPt) ((*  (ptr) elementAction←v60184 ))))(var←c75040, elementAction←v60184);
         };
      };
   }

static word DataEqualHighlight←P5340(selfData←v51232, otherData←v51260)
   word selfData←v51232;
   word otherData←v51260;
   {
   register ptr gf←c81376 =  (ptr) &globalframe;
   word var←c51304;
   word a←v32352;
   word b←v32380;
   /* DataEqualHighlight: */ 
SOURCE(41698, 473)
SOURCE(41736, 35)
   a←v32352 = XR←Narrow(selfData←v51232, (* (( (ptr) gf←c81376)+45) ));
SOURCE(41773, 36)
   b←v32380 = XR←Narrow(otherData←v51260, (* (( (ptr) gf←c81376)+45) ));
SOURCE(41811, 69)
   {
      word x743;
      word x744;
      word x745;
      word x746;
      if (((
         x743 = (*  (ptr) a←v32352 ),  *(float*)&x743
         ) != (
         x744 = (*  (ptr) b←v32380 ),  *(float*)&x744
         )) || ((
         x745 = (* (( (ptr) a←v32352)+1) ),  *(float*)&x745
         ) != (
         x746 = (* (( (ptr) b←v32380)+1) ),  *(float*)&x746
         ))) {
SOURCE(41866, 14)
         return(0);
         };
      };
SOURCE(41882, 78)
   {
      word pd747;
      pd747 = (* (( (ptr) (* (( (ptr) gf←c81376)+332)/* var←c66976 */  ))+22) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd747 ))))((* (( (ptr) a←v32352)+2) ), (* (( (ptr) b←v32380)+2) ), pd747))) {
SOURCE(41946, 14)
         return(0);
         };
      };
SOURCE(41962, 91)
   {
      word pd748;
      pd748 = (* (( (ptr) (* (( (ptr) gf←c81376)+332)/* var←c66976 */  ))+29) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd748 ))))((* (( (ptr) a←v32352)+3) ), (* (( (ptr) b←v32380)+3) ), pd748))) {
SOURCE(42039, 14)
         return(0);
         };
      };
SOURCE(42055, 101)
   {
      word pd749;
      pd749 = (* (( (ptr) (* (( (ptr) gf←c81376)+332)/* var←c66976 */  ))+29) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd749 ))))((* (( (ptr) a←v32352)+8) ), (* (( (ptr) b←v32380)+8) ), pd749))) {
SOURCE(42142, 14)
         return(0);
         };
      };
SOURCE(42158, 13)
   return(1);
   }

static word ExtraNewColorOperatorHighlight←P5400(sWhite←v17300, sBlack←v17328, map←v17356, baseColor←v17384, highlightColor←v17412, appearanceHints←v17440)
   word sWhite←v17300;
   word sBlack←v17328;
   word map←v17356;
   word baseColor←v17384;
   word highlightColor←v17412;
   word appearanceHints←v17440;
   {
   register ptr gf←c81408 =  (ptr) &globalframe;
   word var←c17484;
   word base←v32424;
   word highlight←v32452;
   W3 baseRGB←v32480;
   word highlightY←v32508;
   word data←v32536;
   word whiteBase←v32564;
   word normalHighlight←v32592;
   word class←v32620;
   /* ExtraNewColorOperatorHighlight: */ 
SOURCE(42177, 1088)
SOURCE(42367, 58)
   base←v32424 = (word) NarrowToOpConstantColor←P6420(baseColor←v17384);
SOURCE(42427, 68)
   highlight←v32452 = (word) NarrowToOpConstantColor←P6420(highlightColor←v17412);
SOURCE(42497, 33)
   (void) RGBFromColor←P6660((word) &baseRGB←v32480, base←v32424);
SOURCE(42532, 67)
   {
      word pd750;
      pd750 = (* (( (ptr) (* (( (ptr) gf←c81408)+332)/* var←c66976 */  ))+31) );
      highlightY←v32508 = (word) ( *( (fPt) ((*  (ptr) pd750 ))))(highlight←v32452, pd750);
      };
SOURCE(42601, 272)
   {
      word var←c75072;
      W3 var←c75104;
      word var←c75136;
      {
         word pd751;
         pd751 = (* (( (ptr) (* (( (ptr) gf←c81408)+332)/* var←c66976 */  ))+31) );
         var←c75072 = (word) ( *( (fPt) ((*  (ptr) pd751 ))))(base←v32424, pd751);
         };
      (void) RGBFromColor←P6660((word) &var←c75104, highlight←v32452);
      var←c75136 = XR←NewObject(52, (* (( (ptr) gf←c81408)+45) ));
      (*  (ptr) var←c75136 ) = sWhite←v17300;
      (* (( (ptr) var←c75136)+1) ) = sBlack←v17328;
      (* (( (ptr) var←c75136)+2) ) = map←v17356;
      (* (( (ptr) var←c75136)+3) ) = baseColor←v17384;
      (*  (W3Pt) (( (ptr) var←c75136)+4) ) = baseRGB←v32480;
      (* (( (ptr) var←c75136)+7) ) = var←c75072;
      (* (( (ptr) var←c75136)+8) ) = highlightColor←v17412;
      (*  (W3Pt) (( (ptr) var←c75136)+9) ) = var←c75104;
      (* (( (ptr) var←c75136)+12) ) = highlightY←v32508;
      data←v32536 = var←c75136;
      };
SOURCE(42875, 61)
   {
      word x752;
      float tf753;
      float tf754;
      word x755;
      float tf756;
      float tf757;
      float tf758;
      word x759;
      word x761;
      tf756 = FMIN((
            x752 = baseRGB←v32480.f0,  *(float*)&x752
            ), (
            x755 = baseRGB←v32480.f1,  *(float*)&x755
            ), tf753, tf754);
      whiteBase←v32564 =  (unsigned) (FMIN(tf756, (
            x759 = baseRGB←v32480.f2,  *(float*)&x759
            ), tf757, tf758) >= (
         x761 = (*  (ptr) &fc760 ),  *(float*)&x761
         ));
      };
SOURCE(42938, 52)
   {
      word x762;
      word x764;
      word x765;
      word x767;
      normalHighlight←v32592 =  (unsigned)  ( ((
         x762 = highlightY←v32508,  *(float*)&x762
         ) >= (
         x764 = (*  (ptr) &fc763 ),  *(float*)&x764
         )) ? ((
         x765 = highlightY←v32508,  *(float*)&x765
         ) <= (
         x767 = (*  (ptr) &fc766 ),  *(float*)&x767
         )) : 0 ) ;
      };
SOURCE(42992, 127)
   class←v32620 =  ( ((0 != whiteBase←v32564) && (0 != normalHighlight←v32592)) ? (* (( (ptr) gf←c81408)+26)/* classHighlightPassThru←v7872 */  ) : (* (
      ( (ptr) gf←c81408)+27)/* classHighlight←v7900 */  ) ) ;
SOURCE(43121, 144)
   {
      word pd768;
      pd768 = (* (( (ptr) (* (( (ptr) gf←c81408)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd768 ))))(1, 2, class←v32620, data←v32536, appearanceHints←v17440, pd768));
      };
   }

static word NewColorOperatorHighlight←P5460(sWhite←v17544, sBlack←v17572, map←v17600, baseColor←v17628, highlightColor←v17656, appearanceHints←v17684)
   word sWhite←v17544;
   word sBlack←v17572;
   word map←v17600;
   word baseColor←v17628;
   word highlightColor←v17656;
   word appearanceHints←v17684;
   {
   word var←c17728;
   /* NewColorOperatorHighlight: */ 
SOURCE(43269, 364)
SOURCE(43463, 170)
   return((word) ExtraNewColorOperatorHighlight←P5400(sWhite←v17544, sBlack←v17572, map←v17600, baseColor←v17628, highlightColor←v17656, appearanceHints←v17684)
   );
   }

static word SignalTypeFromSignalTypeName←P5520(name←v18076)
   word name←v18076;
   {
   register ptr gf←c81440 =  (ptr) &globalframe;
   word var←c18120;
   /* SignalTypeFromSignalTypeName: */ 
SOURCE(43981, 389)
SOURCE(44061, 309)
   {
      register word signal←v32664;
      signal←v32664 = 0;
      lab←L100076: ;
      {
         word rope←v32708;
SOURCE(44121, 49)
         rope←v32708 = (word) SignalTypeNameFromSignalType←P5580(signal←v32664);
SOURCE(44172, 143)
         if ((rope←v32708 == 0)) {
SOURCE(44191, 124)
            {
               word var←c75232;
               {
                  word var←c75264;
                  word var←c75296;
                  var←c75264 = XR←NewObject(12, (* (( (ptr) gf←c81440)+55) ));
                  var←c75296 = var←c75264;
                  (*  (ptr) var←c75296 ) = (* (( (ptr) gf←c81440)+96) );
                  (* (( (ptr) var←c75296)+1) ) = name←v18076;
                  var←c75232 = var←c75264;
                  };
               {
                  W3 var←c0947;
                  var←c0947.f0 = 64;
                  var←c0947.f1 = (* (( (ptr) gf←c81440)+95) );
                  var←c0947.f2 = var←c75232;
                  (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81440)+336)/* var←c70432 */  ))+4) ), (word) &var←c0947);
                  };
               };
            };
SOURCE(44317, 53)
         {
            word pd769;
            pd769 = (* (( (ptr) (* (( (ptr) gf←c81440)+338)/* var←c75360 */  ))+8) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd769 ))))(name←v18076, rope←v32708, 0, pd769))) {
SOURCE(44355, 15)
               return(signal←v32664);
               };
            };
         };
      signal←v32664 = (signal←v32664 + 1);
      goto lab←L100076;
      };
   }

static word SignalTypeNameFromSignalType←P5580(signal←v18180)
   word signal←v18180;
   {
   register ptr gf←c81472 =  (ptr) &globalframe;
   word var←c18224;
   /* SignalTypeNameFromSignalType: */ 
SOURCE(44385, 183)
SOURCE(44467, 101)
   if ((signal←v18180 < 4)) {
SOURCE(44515, 40)
      {
         word var←c01262;
         W4 var←c75392;
         var←c75392.f0 = (* (( (ptr) gf←c81472)+76) );
         var←c75392.f1 = (* (( (ptr) gf←c81472)+74) );
         var←c75392.f2 = (* (( (ptr) gf←c81472)+73) );
         var←c75392.f3 = (* (( (ptr) gf←c81472)+72) );
         var←c01262 = (* (( (ptr) (&var←c75392
            ))+BCK(signal←v18180, 4)) );
         return(var←c01262);
         };
      }
   else {
SOURCE(44555, 13)
      return(0);
      };
   }

static word GetProcessArgIndices←P5640(structure←v18284)
   word structure←v18284;
   {
   register ptr gf←c81504 =  (ptr) &globalframe;
   word var←c18328;
   /* GetProcessArgIndices: */ 
SOURCE(45321, 412)
SOURCE(45420, 313)
   {
      W2 var←c75424;
      {
         word pd770;
         pd770 = (* (( (ptr) (* (( (ptr) gf←c81504)+332)/* var←c66976 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd770 ))))((word) &var←c75424, structure←v18284, 2, pd770);
         };
      if ((var←c75424.f0 == 0)) {
         {
            W2 e←v32752;
            e←v32752 = var←c75424;
SOURCE(45496, 117)
            {
               W3 var←c0957;
               var←c0957.f0 = 72;
               var←c0957.f1 = (* (( (ptr) gf←c81504)+97) );
               var←c0957.f2 = 0;
               (void) (XR←RaiseSignal((* (( (ptr) (* (( (ptr) gf←c81504)+336)/* var←c70432 */  ))+5) ), 0, (word) &var←c0957));
               };
SOURCE(45615, 75)
            return(82485);
            };
         }
      else {
SOURCE(45706, 27)
         return(74565);
         };
      };
   }

static word CreateColorOperatorProcess←P5700(class←v51460, structure←v51488)
   word class←v51460;
   word structure←v51488;
   {
   W7 var←c81536;
   register ptr gf←c81568 =  (ptr) &globalframe;
   word var←c51532;
   /* declaration of var←c75488 skipped */ 
   word consistencyTest←v32796;
   word ai←v32824;
   word su←v32852;
   word sz←v32880;
   word signalTypeAtom←v32908;
   /* declaration of signalNamesStructure←v32936 skipped */ 
   word signals←v32964;
   word pixelEncodingStructure←v33020;
   word map←v33048;
   word deviceProps←v33076;
   word colorOperator←v33104;
   /* CreateColorOperatorProcess: */ 
SOURCE(45814, 1236)
   {
      word tmpAddr771;
      tmpAddr771 = (word) (( (ptr) &var←c81536)+4)/* var←c75488 */ ;
      (*  (ptr) tmpAddr771 ) = ( ((word)  (fPt) SignalNames←P9660) );
      (* (( (ptr) tmpAddr771) + 1) ) = 1;
      };
SOURCE(45870, 66)
   {
      word pd772;
      pd772 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+6) );
      consistencyTest←v32796 = (word) ( *( (fPt) ((*  (ptr) pd772 ))))(structure←v51488, 6, pd772);
      };
SOURCE(45938, 72)
   ai←v32824 = (word) GetProcessArgIndices←P5640(structure←v51488);
SOURCE(46012, 58)
   {
      word pd773;
      pd773 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+9) );
      su←v32852 = (word) ( *( (fPt) ((*  (ptr) pd773 ))))(structure←v51488,  (unsigned) (((unsigned)ai←v32824 << 8) >> 28), pd773)
      ;
      };
SOURCE(46072, 58)
   {
      word pd774;
      pd774 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+9) );
      sz←v32880 = (word) ( *( (fPt) ((*  (ptr) pd774 ))))(structure←v51488,  (unsigned) (((unsigned)ai←v32824 << 12) >> 28), pd774)
      ;
      };
SOURCE(46132, 78)
   {
      word pd775;
      pd775 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+8) );
      signalTypeAtom←v32908 = (word) ( *( (fPt) ((*  (ptr) pd775 ))))(structure←v51488,  (unsigned) (((unsigned)ai←v32824 << 20) >> 28), pd775)
      ;
      };
SOURCE(46212, 95)
   {
      word pd776;
      pd776 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+11) );
      var←c81536.f6/* signalNamesStructure←v32936 */  = (word) ( *( (fPt) ((*  (ptr) pd776 ))))(structure←v51488,  (unsigned) (((unsigned)ai←v32824 << 24) >> 28), pd776)
      ;
      };
SOURCE(46309, 61)
   {
      word pd777;
      word idx778;
      pd777 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+5) );
      signals←v32964 = (
         idx778 = (word) ( *( (fPt) ((*  (ptr) pd777 ))))(var←c81536.f6/* signalNamesStructure←v32936 */ , pd777),
         SGNCK(idx778)
         );
      };
SOURCE(46511, 109)
   {
      word pd779;
      pd779 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+12) );
      pixelEncodingStructure←v33020 = (word) ( *( (fPt) ((*  (ptr) pd779 ))))(structure←v51488,  (unsigned) (((unsigned)ai←v32824 << 16) >> 28), signals←v32964, pd779)
      ;
      };
SOURCE(46622, 90)
   {
      word pd780;
      pd780 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+23) );
      map←v33048 = (word) ( *( (fPt) ((*  (ptr) pd780 ))))(pixelEncodingStructure←v33020, pd780);
      };
SOURCE(46714, 86)
   {
      word pd781;
      pd781 = (* (( (ptr) (* (( (ptr) gf←c81568)+332)/* var←c66976 */  ))+11) );
      deviceProps←v33076 = (word) ( *( (fPt) ((*  (ptr) pd781 ))))(structure←v51488,  (unsigned) (ai←v32824 & 017), pd781);
      };
SOURCE(46802, 223)
   {
      word var←c75520;
      {
         word var←c75552;
         {
            word pd782;
            pd782 = (* (( (ptr) (* (( (ptr) gf←c81568)+339)/* var←c75584 */  ))+9) );
            var←c75552 = (word) ( *( (fPt) ((*  (ptr) pd782 ))))(signalTypeAtom←v32908, pd782);
            };
         var←c75520 = (word) SignalTypeFromSignalTypeName←P5520(var←c75552);
         };
      colorOperator←v33104 = (word) NewColorOperatorProcess←P6240(su←v32852, sz←v32880, signals←v32964, map←v33048, var←c75520, (word) (
            ( (bPt) &var←c81536)+16)/* var←c75488 */ 
         , deviceProps←v33076);
      };
SOURCE(47027, 23)
   return(colorOperator←v33104);
   }

static word SignalNames←P9660(signal←v33216, formal←c81632)
   word signal←v33216;
   word formal←c81632;
   {
   register ptr gf←c81600 =  (ptr) &globalframe;
   word var←c33260;
   formal←c81632 = (formal←c81632 - 16);
   /* SignalNames: */ 
SOURCE(46372, 136)
SOURCE(46432, 76)
   {
      word var←c75648;
      {
         word pd783;
         pd783 = (* (( (ptr) (* (( (ptr) gf←c81600)+332)/* var←c66976 */  ))+13) );
         var←c75648 = (word) ( *( (fPt) ((*  (ptr) pd783 ))))((* (( (ptr) formal←c81632)+6) ), signal←v33216, pd783);
         };
      if ((var←c75648 == 0)) {
         goto lab←L100077;
         };
      if (((*  (ptr) var←c75648 ) == 0)) {
         goto lab←L100077;
         };
      (void) XR←RaiseError(XR←NarrowFault, 0);
      lab←L100077: ;
      return(var←c75648);
      };
   }

static word GetCreateDataProcess←P5760(formal←c01303)
   word formal←c01303;
   {
   W10 var←c81664;
   /* declaration of colorOperator←v51592 skipped */ 
   register ptr gf←c81696 =  (ptr) &globalframe;
   word var←c51636;
   /* declaration of var←c75680 skipped */ 
   /* declaration of var←c75712 skipped */ 
   /* declaration of data←v33288 skipped */ 
   word structure←v33372;
   (* (( (ptr) &var←c81664)+4)/* colorOperator←v51592 */  ) = formal←c01303;
   /* GetCreateDataProcess: */ 
SOURCE(47054, 958)
   {
      word tmpAddr784;
      tmpAddr784 = (word) (( (ptr) &var←c81664)+5)/* var←c75680 */ ;
      (*  (ptr) tmpAddr784 ) = ( ((word)  (fPt) GenerateElements←P9780) );
      (* (( (ptr) tmpAddr784) + 1) ) = 1;
      };
   {
      word tmpAddr785;
      tmpAddr785 = (word) (( (ptr) &var←c81664)+7)/* var←c75712 */ ;
      (*  (ptr) tmpAddr785 ) = ( ((word)  (fPt) GenerateSignalNameElements←P9720) );
      (* (( (ptr) tmpAddr785) + 1) ) = 1;
      };
SOURCE(47098, 46)
   (* (( (ptr) &var←c81664)+9)/* data←v33288 */  ) = XR←Narrow((* (( (ptr) (* (( (ptr) &var←c81664)+4)/* colorOperator←v51592 */  ))+3)
       ), (* (( (ptr) gf←c81696)+44) ));
SOURCE(47902, 89)
   {
      word pd786;
      pd786 = (* (( (ptr) (* (( (ptr) gf←c81696)+332)/* var←c66976 */  ))+17) );
      structure←v33372 = (word) ( *( (fPt) ((*  (ptr) pd786 ))))((word) ((( (bPt) &var←c81664)+20)/* var←c75680 */ ), pd786);
      };
SOURCE(47993, 19)
   return(structure←v33372);
   }

static void GenerateSignalNameElements←P9720(elementAction←v61072, formal←c81728)
   word elementAction←v61072;
   word formal←c81728;
   {
   formal←c81728 = (formal←c81728 - 28);
   /* GenerateSignalNameElements: */ 
SOURCE(47146, 165)
SOURCE(47195, 116)
   {
      register word tail←v33416;
      tail←v33416 = (* (( (ptr) (* (( (ptr) formal←c81728)+9) ))+3) );
      lab←L100081: ;
      if ((tail←v33416 != 0)) {
         }
      else {
         goto lab←L100078;
         };
SOURCE(47277, 34)
      {
         W2 var←c75744;
         var←c75744.f0 = 4;
         var←c75744.f1 = (*  (ptr) tail←v33416 );
         (void) ( *( (fPt) ((*  (ptr) elementAction←v61072 ))))(var←c75744, elementAction←v61072);
         };
      tail←v33416 = (* (( (ptr) tail←v33416)+1) );
      goto lab←L100081;
      lab←L100078: ;
      };
   }

static void GenerateElements←P9780(elementAction←v61132, formal←c81792)
   word elementAction←v61132;
   word formal←c81792;
   {
   register ptr gf←c81760 =  (ptr) &globalframe;
   formal←c81792 = (formal←c81792 - 20);
   /* GenerateElements: */ 
SOURCE(47325, 574)
SOURCE(47364, 30)
   {
      W2 var←c75776;
      var←c75776.f0 = 2;
      var←c75776.f1 = (*  (ptr) (* (( (ptr) formal←c81792)+9) ) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v61132 ))))(var←c75776, elementAction←v61132);
      };
SOURCE(47396, 30)
   {
      W2 var←c75808;
      var←c75808.f0 = 2;
      var←c75808.f1 = (* (( (ptr) (* (( (ptr) formal←c81792)+9) ))+1) );
      (void) ( *( (fPt) ((*  (ptr) elementAction←v61132 ))))(var←c75808, elementAction←v61132);
      };
SOURCE(47428, 142)
   if (((* (( (ptr) (* (( (ptr) formal←c81792)+9) ))+4) ) == 0)) {
SOURCE(47454, 24)
      {
         W2 var←c75840;
         var←c75840.f0 = 3;
         var←c75840.f1 = 0;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v61132 ))))(var←c75840, elementAction←v61132);
         };
      }
   else {
SOURCE(47487, 83)
      {
         word var←c75872;
         {
            word pd787;
            pd787 = (* (( (ptr) (* (( (ptr) gf←c81760)+332)/* var←c66976 */  ))+24) );
            var←c75872 = (word) ( *( (fPt) ((*  (ptr) pd787 ))))((* ((( (ptr) (* (( (ptr) formal←c81792)+9) ))+4)) ), pd787);
            };
         {
            W2 var←c75904;
            var←c75904.f0 = 1;
            var←c75904.f1 = var←c75872;
            (void) ( *( (fPt) ((*  (ptr) elementAction←v61132 ))))(var←c75904, elementAction←v61132);
            };
         };
      };
SOURCE(47573, 84)
   {
      word var←c75936;
      {
         word var←c75968;
         var←c75968 = (word) SignalTypeNameFromSignalType←P5580((* ((( (ptr) (* (( (ptr) formal←c81792)+9) ))+2)) ));
         {
            word pd788;
            pd788 = (* (( (ptr) (* (( (ptr) gf←c81760)+339)/* var←c75584 */  ))+5) );
            var←c75936 = (word) ( *( (fPt) ((*  (ptr) pd788 ))))(var←c75968, 0, 2147483647, pd788);
            };
         };
      {
         W2 var←c76000;
         var←c76000.f0 = 0;
         var←c76000.f1 = var←c75936;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v61132 ))))(var←c76000, elementAction←v61132);
         };
      };
SOURCE(47659, 105)
   {
      word var←c76032;
      {
         word pd789;
         pd789 = (* (( (ptr) (* (( (ptr) gf←c81760)+332)/* var←c66976 */  ))+17) );
         var←c76032 = (word) ( *( (fPt) ((*  (ptr) pd789 ))))((word) ((( (bPt) formal←c81792)+28)), pd789);
         };
      {
         W2 var←c76064;
         var←c76064.f0 = 1;
         var←c76064.f1 = var←c76032;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v61132 ))))(var←c76064, elementAction←v61132);
         };
      };
SOURCE(47766, 133)
   if (((* (( (ptr) (* (( (ptr) formal←c81792)+4) ))+4) ) == 0)) {
SOURCE(47812, 29)
      {
         W2 var←c76096;
         var←c76096.f0 = 3;
         var←c76096.f1 = 0;
         (void) ( *( (fPt) ((*  (ptr) elementAction←v61132 ))))(var←c76096, elementAction←v61132);
         };
      }
   else {
SOURCE(47841, 58)
      {
         W2 var←c76128;
         var←c76128.f0 = 1;
         var←c76128.f1 = (* (( (ptr) (* (( (ptr) formal←c81792)+4) ))+4) );
         (void) ( *( (fPt) ((*  (ptr) elementAction←v61132 ))))(var←c76128, elementAction←v61132);
         };
      };
   }

static word GetPixelEncodingProcess←P5820(colorOperator←v51696)
   word colorOperator←v51696;
   {
   register ptr gf←c81824 =  (ptr) &globalframe;
   word var←c51740;
   word data←v33544;
   /* GetPixelEncodingProcess: */ 
SOURCE(48016, 115)
SOURCE(48066, 46)
   data←v33544 = XR←Narrow((* (( (ptr) colorOperator←v51696)+3) ), (* (( (ptr) gf←c81824)+44) ));
SOURCE(48114, 17)
   return((* (( (ptr) data←v33544)+4) ));
   }

static void ApplyProcess←P5880(colorOperator←v51800, pixelIn←v51828, colorSpace←v51856, out←v51884)
   word colorOperator←v51800;
   word pixelIn←v51828;
   word colorSpace←v51856;
   word out←v51884;
   {
   register ptr gf←c81856 =  (ptr) &globalframe;
   word data←v33588;
   /* ApplyProcess: */ 
SOURCE(48135, 244)
SOURCE(48163, 46)
   data←v33588 = XR←Narrow((* (( (ptr) colorOperator←v51800)+3) ), (* (( (ptr) gf←c81856)+44) ));
SOURCE(48211, 168)
   {
      word pd790;
      pd790 = (* (( (ptr) (* (( (ptr) gf←c81856)+340)/* var←c76160 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd790 ))))((*  (ptr) data←v33588 ), (* (( (ptr) data←v33588)+1) ), (* (( (ptr) data←v33588)+2)
          ), (* (( (ptr) data←v33588)+3) ), pixelIn←v51828, colorSpace←v51856
         , out←v51884, pd790);
      };
   }

static void DoApplyProcess←P5940(su←v18608, sz←v18636, signalType←v18664, signalNames←v18692, pixelIn←v18720, colorSpace←v18748, out←v18776)
   word su←v18608;
   word sz←v18636;
   word signalType←v18664;
   word signalNames←v18692;
   word pixelIn←v18720;
   word colorSpace←v18748;
   word out←v18776;
   {
   register ptr gf←c81888 =  (ptr) &globalframe;
   W3 rgb←v33632;
   word i←v33660 = 0;
   /* DoApplyProcess: */ 
SOURCE(48385, 1209)
SOURCE(48579, 20)
   rgb←v33632.f0 = (*  (ptr) &fc133 );
   rgb←v33632.f1 = (*  (ptr) &fc133 );
   rgb←v33632.f2 = (*  (ptr) &fc133 );
SOURCE(48632, 962)
   if ( ( (colorSpace←v18748 == (* (( (ptr) gf←c81888)+29)/* cmykColorSpace←v8432 */  )) ? (signalType←v18664 == 1) : 0 ) ) {
SOURCE(48697, 118)
      {
         word scaleFactor←v33704;
SOURCE(48699, 39)
         {
            word x792;
            word x793;
            word x794;
            *(float*)&scaleFactor←v33704 = (
               x792 = (*  (ptr) &fc791 ),  *(float*)&x792
               ) / ((
               x793 = sz←v18636,  *(float*)&x793
               ) - (
               x794 = su←v18608,  *(float*)&x794
               ));
            };
SOURCE(48740, 64)
         {
            register word i←v33748 = 0;
            lab←L100085: ;
SOURCE(48764, 40)
            {
               word var←c76224;
               {
                  word x795;
                  word x796;
                  word x797;
                  *(float*)&var←c76224 = ((
                     x795 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v18720 ))))(i←v33748, pixelIn←v18720),  *(float*)&x795
                     ) - (
                     x796 = su←v18608,  *(float*)&x796
                     )) * (
                     x797 = scaleFactor←v33704,  *(float*)&x797
                     );
                  };
               {
                  word limit798;
                  (* ((( (ptr) out←v18776)+2)+(
                        limit798 = (* (( (ptr) out←v18776)+1) ),
                        BCK(i←v33748, limit798)
                        )) ) = var←c76224;
                  };
               };
            if ((i←v33748 >= 3)) {
               goto lab←L100082;
               };
            i←v33748 = (i←v33748 + 1);
            goto lab←L100085;
            lab←L100082: ;
            };
         };
      }
   else {
SOURCE(48824, 615)
      {
         register word tail←v33792;
         tail←v33792 = signalNames←v18692;
         lab←L100089: ;
         if ((tail←v33792 != 0)) {
            }
         else {
            goto lab←L100086;
            };
         {
            W3 ink←v33920;
            word siv←v33948;
            word sivalue←v33976;
            word reflectance←v34004;
SOURCE(48901, 60)
            {
               word var←c76256;
               var←c76256 = (word) NarrowToOpConstantColor←P6420((*  (ptr) (tail←v33792) ));
               (void) RGBFromColor←P6660((word) &ink←v33920, var←c76256);
               };
SOURCE(48963, 22)
            siv←v33948 = (word) ( *( (fPt) ((*  (ptr) pixelIn←v18720 ))))(i←v33660, pixelIn←v18720);
SOURCE(48987, 41)
            {
               word x799;
               word x800;
               word x801;
               word x802;
               *(float*)&sivalue←v33976 = ((
                  x799 = siv←v33948,  *(float*)&x799
                  ) - (
                  x800 = sz←v18636,  *(float*)&x800
                  )) / ((
                  x801 = su←v18608,  *(float*)&x801
                  ) - (
                  x802 = sz←v18636,  *(float*)&x802
                  ));
               };
SOURCE(49030, 27)
            reflectance←v34004 = sivalue←v33976;
SOURCE(49159, 185)
            {
               word var←c76288;
               var←c76288 = signalType←v18664;
               if ((var←c76288 == 1)) {
                  }
               else {
SOURCE(49212, 132)
                  {
                     word var←c76320;
                     {
                        word var←c76352;
                        word var←c76384;
                        var←c76352 = XR←NewObject(12, (* (( (ptr) gf←c81888)+55) ));
                        var←c76384 = var←c76352;
                        (*  (ptr) var←c76384 ) = (* (( (ptr) gf←c81888)+100) );
                        (* (( (ptr) var←c76384)+1) ) = (word) SignalTypeNameFromSignalType←P5580(signalType←v18664);
                        var←c76320 = var←c76352;
                        };
                     {
                        W3 var←c01032;
                        var←c01032.f0 = 103;
                        var←c01032.f1 = (* (( (ptr) gf←c81888)+99) );
                        var←c01032.f2 = var←c76320;
                        (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c81888)+336)/* var←c70432 */  ))+4) ), (word) &var←c01032);
                        };
                     };
                  };
               };
SOURCE(49346, 26)
            {
               word x803;
               word x804;
               word x805;
               word x806;
               word x807;
               word x808;
               *(float*)&rgb←v33632.f0 = (
                  x803 = rgb←v33632.f0,  *(float*)&x803
                  ) * ((
                  x804 = (*  (ptr) &fc133 ),  *(float*)&x804
                  ) - (((
                  x805 = (*  (ptr) &fc133 ),  *(float*)&x805
                  ) - (
                  x806 = reflectance←v34004,  *(float*)&x806
                  )) * ((
                  x807 = (*  (ptr) &fc133 ),  *(float*)&x807
                  ) - (
                  x808 = ink←v33920.f0,  *(float*)&x808
                  ))));
               };
SOURCE(49374, 26)
            {
               word x809;
               word x810;
               word x811;
               word x812;
               word x813;
               word x814;
               *(float*)&rgb←v33632.f1 = (
                  x809 = rgb←v33632.f1,  *(float*)&x809
                  ) * ((
                  x810 = (*  (ptr) &fc133 ),  *(float*)&x810
                  ) - (((
                  x811 = (*  (ptr) &fc133 ),  *(float*)&x811
                  ) - (
                  x812 = reflectance←v34004,  *(float*)&x812
                  )) * ((
                  x813 = (*  (ptr) &fc133 ),  *(float*)&x813
                  ) - (
                  x814 = ink←v33920.f1,  *(float*)&x814
                  ))));
               };
SOURCE(49402, 26)
            {
               word x815;
               word x816;
               word x817;
               word x818;
               word x819;
               word x820;
               *(float*)&rgb←v33632.f2 = (
                  x815 = rgb←v33632.f2,  *(float*)&x815
                  ) * ((
                  x816 = (*  (ptr) &fc133 ),  *(float*)&x816
                  ) - (((
                  x817 = (*  (ptr) &fc133 ),  *(float*)&x817
                  ) - (
                  x818 = reflectance←v34004,  *(float*)&x818
                  )) * ((
                  x819 = (*  (ptr) &fc133 ),  *(float*)&x819
                  ) - (
                  x820 = ink←v33920.f2,  *(float*)&x820
                  ))));
               };
SOURCE(49430, 9)
            i←v33660 = (i←v33660 + 1);
            };
         tail←v33792 = (* (( (ptr) tail←v33792)+1) );
         goto lab←L100089;
         lab←L100086: ;
         };
SOURCE(49450, 144)
      {
         word var←c76480;
         var←c76480 = colorSpace←v18748;
         if ((var←c76480 == 0)) {
SOURCE(49481, 52)
            {
               word x←v62380;
               {
                  word x821;
                  word x822;
                  word x823;
                  word x824;
                  word x825;
                  word x826;
                  *(float*)&x←v62380 = (((
                     x821 = (*  (ptr) &fc106 ),  *(float*)&x821
                     ) * (
                     x822 = rgb←v33632.f0,  *(float*)&x822
                     )) + ((
                     x823 = (*  (ptr) &fc107 ),  *(float*)&x823
                     ) * (
                     x824 = rgb←v33632.f1,  *(float*)&x824
                     ))) + ((
                     x825 = (*  (ptr) &fc108 ),  *(float*)&x825
                     ) * (
                     x826 = rgb←v33632.f2,  *(float*)&x826
                     ));
                  };
SOURCE(2971, 27)
               {
                  word x827;
                  word x828;
                  word limit829;
                  word x830;
                  word x831;
                  word limit832;
                  word limit833;
                  if (((
                     x827 = x←v62380,  *(float*)&x827
                     ) <= (
                     x828 = (*  (ptr) &fc95 ),  *(float*)&x828
                     ))) {
                     (* ((( (ptr) out←v18776)+2)+(
                           limit829 = (* (( (ptr) out←v18776)+1) ),
                           BCK(0, limit829)
                           )) ) = (*  (ptr) &fc95 );
                     }
                  else {
                     if (((
                        x830 = x←v62380,  *(float*)&x830
                        ) > (
                        x831 = (*  (ptr) &fc133 ),  *(float*)&x831
                        ))) {
                        (* ((( (ptr) out←v18776)+2)+(
/*1*/   limit832 = (* (( (ptr) out←v18776)+1) ),
/*1*/   BCK(0, limit832)
/*1*/   )) ) = (*  (ptr) &fc133 );
                        }
                     else {
                        (* ((( (ptr) out←v18776)+2)+(
/*1*/   limit833 = (* (( (ptr) out←v18776)+1) ),
/*1*/   BCK(0, limit833)
/*1*/   )) ) = x←v62380;
                        };
                     };
                  };
               };
            }
         else {
            if ((var←c76480 == 1)) {
SOURCE(49548, 14)
               {
                  word limit834;
                  (* ((( (ptr) out←v18776)+2)+(
                        limit834 = (* (( (ptr) out←v18776)+1) ),
                        BCK(0, limit834)
                        )) ) = rgb←v33632.f0;
                  };
SOURCE(49564, 14)
               {
                  word limit835;
                  (* ((( (ptr) out←v18776)+2)+(
                        limit835 = (* (( (ptr) out←v18776)+1) ),
                        BCK(1, limit835)
                        )) ) = rgb←v33632.f1;
                  };
SOURCE(49580, 14)
               {
                  word limit836;
                  (* ((( (ptr) out←v18776)+2)+(
                        limit836 = (* (( (ptr) out←v18776)+1) ),
                        BCK(2, limit836)
                        )) ) = rgb←v33632.f2;
                  };
               }
            else {
SOURCE(49610, 5)
               (void) XR←RaiseUnnamedError();
               };
            };
         };
      };
   }

static word DataEqualProcess←P6000(selfData←v51944, otherData←v51972)
   word selfData←v51944;
   word otherData←v51972;
   {
   register ptr gf←c81920 =  (ptr) &globalframe;
   word var←c52016;
   word a←v34208;
   word b←v34236;
   /* DataEqualProcess: */ 
SOURCE(49624, 361)
SOURCE(49660, 33)
   a←v34208 = XR←Narrow(selfData←v51944, (* (( (ptr) gf←c81920)+44) ));
SOURCE(49695, 34)
   b←v34236 = XR←Narrow(otherData←v51972, (* (( (ptr) gf←c81920)+44) ));
SOURCE(49731, 86)
   {
      word x837;
      word x838;
      word x839;
      word x840;
      if ((((
         x837 = (*  (ptr) a←v34208 ),  *(float*)&x837
         ) != (
         x838 = (*  (ptr) b←v34236 ),  *(float*)&x838
         )) || ((
         x839 = (* (( (ptr) a←v34208)+1) ),  *(float*)&x839
         ) != (
         x840 = (* (( (ptr) b←v34236)+1) ),  *(float*)&x840
         ))) || ((* (( (ptr) a←v34208)+2) ) != (* (( (ptr) b←v34236)+2) ))) {
SOURCE(49803, 14)
         return(0);
         };
      };
SOURCE(49819, 73)
   if ((0 == (word) EqualSignalNames←P6060((* (( (ptr) a←v34208)+3) ), (* (( (ptr) b←v34236)+3) )))) {
SOURCE(49878, 14)
      return(0);
      };
SOURCE(49894, 76)
   {
      word pd841;
      pd841 = (* (( (ptr) (* (( (ptr) gf←c81920)+332)/* var←c66976 */  ))+22) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd841 ))))((* (( (ptr) a←v34208)+4) ), (* (( (ptr) b←v34236)+4) ), pd841))) {
SOURCE(49956, 14)
         return(0);
         };
      };
SOURCE(49972, 13)
   return(1);
   }

static word EqualSignalNames←P6060(a←v18920, b←v18948)
   word a←v18920;
   word b←v18948;
   {
   word var←c19076;
   word atail←v34280;
   word btail←v34308;
   /* EqualSignalNames: */ 
SOURCE(49991, 367)
SOURCE(50063, 7)
   atail←v34280 = a←v18920;
SOURCE(50097, 7)
   btail←v34308 = b←v18948;
SOURCE(50131, 193)
   lab←L100093: ;
   if ( ( (atail←v34280 != 0) ? (btail←v34308 != 0) : 0 ) ) {
      }
   else {
      goto lab←L100091;
      };
SOURCE(50167, 48)
   if (((*  (ptr) atail←v34280 ) != (*  (ptr) btail←v34308 ))) {
SOURCE(50201, 14)
      return(0);
      };
SOURCE(50286, 18)
   atail←v34280 = (* (( (ptr) atail←v34280)+1) );
SOURCE(50306, 18)
   btail←v34308 = (* (( (ptr) btail←v34308)+1) );
   goto lab←L100093;
   lab←L100091: ;
SOURCE(50335, 23)
   return( (unsigned) (atail←v34280 == btail←v34308));
   }

static word CMYKSignalNames←P6120(signal←v19136)
   word signal←v19136;
   {
   register ptr gf←c81952 =  (ptr) &globalframe;
   word var←c19180;
   word solid←v34520;
   /* CMYKSignalNames: */ 
SOURCE(50362, 198)
SOURCE(50426, 104)
   {
      word var←c76576;
      var←c76576 = signal←v19136;
      switch (var←c76576) {
         case 0: 
            solid←v34520 = 4;
            break;
         case 1: 
            solid←v34520 = 5;
            break;
         case 2: 
            solid←v34520 = 6;
            break;
         case 3: 
            solid←v34520 = 0;
            break;
         default: 
            solid←v34520 = 0;
            break;
         };
      };
SOURCE(50532, 28)
   return((* (( (ptr) (* (( (ptr) gf←c81952)+14)/* solidColors←v6248 */  ))+solid←v34520) ));
   }

static word EnlistSignalNames←P6180(signals←v19240, signalNames←v19268)
   word signals←v19240;
   word signalNames←v19268;
   {
   register ptr gf←c81984 =  (ptr) &globalframe;
   word var←c19416;
   word signalNameList←v34564 = 0;
   /* EnlistSignalNames: */ 
SOURCE(50564, 306)
SOURCE(50741, 94)
   {
      register word i←v34692;
      i←v34692 = signals←v19240;
      if ((0 >= i←v34692)) {
         goto lab←L100094;
         };
      i←v34692 = (i←v34692 - 1);
      lab←L100097: ;
SOURCE(50782, 53)
      {
         word var←c76608;
         word var←c76640;
         var←c76608 = (word) ( *( (fPt) ((*  (ptr) signalNames←v19268 ))))(i←v34692, signalNames←v19268);
         var←c76640 = XR←NewObject(8, (* (( (ptr) gf←c81984)+43) ));
         (*  (ptr) var←c76640 ) = var←c76608;
         (* (( (ptr) var←c76640)+1) ) = signalNameList←v34564;
         signalNameList←v34564 = var←c76640;
         };
      if ((0 >= i←v34692)) {
         goto lab←L100094;
         };
      i←v34692 = (i←v34692 - 1);
      goto lab←L100097;
      lab←L100094: ;
      };
SOURCE(50846, 24)
   return(signalNameList←v34564);
   }

static word NewColorOperatorProcess←P6240(su←v19644, sz←v19672, signals←v19700, map←v19728, signalType←v19756, signalNames←v19784, deviceProps←v19812)
   word su←v19644;
   word sz←v19672;
   word signals←v19700;
   word map←v19728;
   word signalType←v19756;
   word signalNames←v19784;
   word deviceProps←v19812;
   {
   register ptr gf←c82016 =  (ptr) &globalframe;
   word var←c19960;
   word signalNameList←v34736;
   word class←v34764;
   word data←v34792;
   /* NewColorOperatorProcess: */ 
SOURCE(50955, 694)
SOURCE(51186, 16)
   signalNameList←v34736 = (word) EnlistSignalNames←P6180(signals←v19700, signalNames←v19784);
SOURCE(51267, 113)
   class←v34764 =  ( (0 != (word) EqualSignalNames←P6060(signalNameList←v34736, (* (( (ptr) gf←c82016)+31)/* cmykSignalNames←v8796 */  ))
   ) ? (* (( (ptr) gf←c82016)+30)/* classCMYK←v8460 */  ) : (* (( (ptr) gf←c82016)+28)/* classProcess←v8404 */  ) ) ;
SOURCE(51382, 120)
   data←v34792 = XR←NewObject(20, (* (( (ptr) gf←c82016)+44) ));
   (*  (ptr) data←v34792 ) = su←v19644;
   (* (( (ptr) data←v34792)+1) ) = sz←v19672;
   (* (( (ptr) data←v34792)+2) ) = signalType←v19756;
   (* (( (ptr) data←v34792)+3) ) = signalNameList←v34736;
   (* (( (ptr) data←v34792)+4) ) = map←v19728;
SOURCE(51504, 145)
   {
      word pd842;
      pd842 = (* (( (ptr) (* (( (ptr) gf←c82016)+332)/* var←c66976 */  ))+49) );
      return((word) ( *( (fPt) ((*  (ptr) pd842 ))))(1, signals←v19700, class←v34764, data←v34792, deviceProps←v19812, pd842));
      };
   }

static word NewColorOperatorCMYK←P6300(maxIn←v20020)
   word maxIn←v20020;
   {
   register ptr gf←c82048 =  (ptr) &globalframe;
   word var←c20064;
   /* NewColorOperatorCMYK: */ 
SOURCE(51655, 194)
SOURCE(51730, 119)
   {
      float tf843;
      return((word) NewColorOperatorProcess←P6240((*  (ptr) &fc95 ), (
            tf843 = (float)(unsigned)maxIn←v20020,  *(word*)&tf843
            ), 4, 0, 1, (word) (( (bPt) gf←c82048)+528)/* var←c63680 */ 
         , 0));
      };
   }

static word ColorFromCMYK←P6360(cmyk←v20124)
   W4 cmyk←v20124;
   {
   register ptr gf←c82080 =  (ptr) &globalframe;
   word var←c20168;
   word color←v34920;
   /* ColorFromCMYK: */ 
SOURCE(51938, 347)
SOURCE(52008, 53)
   color←v34920 = XR←NewObject(32, (* (( (ptr) gf←c82080)+62) ));
   (* (( (ptr) color←v34920)+3) ) = 4;
SOURCE(52063, 30)
   (* (( (ptr) color←v34920)+2) ) = (* (( (ptr) gf←c82080)+32)/* cmyk1000←v8880 */  );
SOURCE(52095, 42)
   {
      word var←c76800;
      {
         word pd844;
         word x845;
         word x846;
         float tf847;
         float tf848;
         pd844 = (* (( (ptr) (* (( (ptr) gf←c82080)+337)/* var←c70656 */  ))+6) );
         var←c76800 = (
            tf848 = (float)(int)(word) ( *( (fPt) ((*  (ptr) pd844 ))))((
                  tf847 = (
                     x845 = cmyk←v20124.f0,  *(float*)&x845
                     ) * (
                     x846 = (*  (ptr) &fc115 ),  *(float*)&x846
                     ),  *(word*)&tf847
                  ), pd844),  *(word*)&tf848
            );
         };
      {
         word limit849;
         (* ((( (ptr) color←v34920)+4)+(
               limit849 = (* (( (ptr) color←v34920)+3) ),
               BCK(0, limit849)
               )) ) = var←c76800;
         };
      };
SOURCE(52139, 42)
   {
      word var←c76832;
      {
         word pd850;
         word x851;
         word x852;
         float tf853;
         float tf854;
         pd850 = (* (( (ptr) (* (( (ptr) gf←c82080)+337)/* var←c70656 */  ))+6) );
         var←c76832 = (
            tf854 = (float)(int)(word) ( *( (fPt) ((*  (ptr) pd850 ))))((
                  tf853 = (
                     x851 = cmyk←v20124.f1,  *(float*)&x851
                     ) * (
                     x852 = (*  (ptr) &fc115 ),  *(float*)&x852
                     ),  *(word*)&tf853
                  ), pd850),  *(word*)&tf854
            );
         };
      {
         word limit855;
         (* ((( (ptr) color←v34920)+4)+(
               limit855 = (* (( (ptr) color←v34920)+3) ),
               BCK(1, limit855)
               )) ) = var←c76832;
         };
      };
SOURCE(52183, 42)
   {
      word var←c76864;
      {
         word pd856;
         word x857;
         word x858;
         float tf859;
         float tf860;
         pd856 = (* (( (ptr) (* (( (ptr) gf←c82080)+337)/* var←c70656 */  ))+6) );
         var←c76864 = (
            tf860 = (float)(int)(word) ( *( (fPt) ((*  (ptr) pd856 ))))((
                  tf859 = (
                     x857 = cmyk←v20124.f2,  *(float*)&x857
                     ) * (
                     x858 = (*  (ptr) &fc115 ),  *(float*)&x858
                     ),  *(word*)&tf859
                  ), pd856),  *(word*)&tf860
            );
         };
      {
         word limit861;
         (* ((( (ptr) color←v34920)+4)+(
               limit861 = (* (( (ptr) color←v34920)+3) ),
               BCK(2, limit861)
               )) ) = var←c76864;
         };
      };
SOURCE(52227, 42)
   {
      word var←c76896;
      {
         word pd862;
         word x863;
         word x864;
         float tf865;
         float tf866;
         pd862 = (* (( (ptr) (* (( (ptr) gf←c82080)+337)/* var←c70656 */  ))+6) );
         var←c76896 = (
            tf866 = (float)(int)(word) ( *( (fPt) ((*  (ptr) pd862 ))))((
                  tf865 = (
                     x863 = cmyk←v20124.f3,  *(float*)&x863
                     ) * (
                     x864 = (*  (ptr) &fc115 ),  *(float*)&x864
                     ),  *(word*)&tf865
                  ), pd862),  *(word*)&tf866
            );
         };
      {
         word limit867;
         (* ((( (ptr) color←v34920)+4)+(
               limit867 = (* (( (ptr) color←v34920)+3) ),
               BCK(3, limit867)
               )) ) = var←c76896;
         };
      };
SOURCE(52271, 14)
   return(color←v34920);
   }

static word NarrowToOpConstantColor←P6420(color←v20228)
   word color←v20228;
   {
   register ptr gf←c82112 =  (ptr) &globalframe;
   word var←c20272;
   word c←v34964;
   /* NarrowToOpConstantColor: */ 
SOURCE(52290, 344)
SOURCE(52380, 24)
   c←v34964 = color←v20228;
SOURCE(52406, 228)
   lab←L100100: ;
SOURCE(52409, 225)
   {
      word var←c76928;
      var←c76928 = c←v34964;
      if ((var←c76928 == 0)) {
         goto lab←L100101;
         };
      {
         word var←c77088;
         var←c77088 = (* (( (ptr) var←c76928)+1) );
         if ((var←c77088 == 1)) {
            {
               word special←v35008;
               special←v35008 = var←c76928;
SOURCE(52453, 22)
               c←v34964 = (* (( (ptr) special←v35008)+5) );
               };
            }
         else {
            if ((var←c77088 == 0)) {
               {
                  word op←v35052;
                  op←v35052 = var←c76928;
SOURCE(52500, 11)
                  return(op←v35052);
                  };
               }
            else {
               lab←L100101: ;
SOURCE(52524, 110)
               {
                  word var←c76960;
                  {
                     word var←c76992;
                     word var←c77024;
                     var←c76992 = XR←NewObject(12, (* (( (ptr) gf←c82112)+55) ));
                     var←c77024 = var←c76992;
                     (*  (ptr) var←c77024 ) = (* (( (ptr) gf←c82112)+71) );
                     (* (( (ptr) var←c77024)+1) ) = color←v20228;
                     var←c76960 = var←c76992;
                     };
                  {
                     W3 var←c01087;
                     var←c01087.f0 = 122;
                     var←c01087.f1 = (* (( (ptr) gf←c82112)+102) );
                     var←c01087.f2 = var←c76960;
                     (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c82112)+336)/* var←c70432 */  ))+4) ), (word) &var←c01087);
                     };
                  };
               };
            };
         };
      };
   goto lab←L100100;
   }

static word ColorFromPixel←P6480(colorOperator←v20332, pixel←v20360)
   word colorOperator←v20332;
   word pixel←v20360;
   {
   register ptr gf←c82144 =  (ptr) &globalframe;
   word var←c20508;
   word size←v35096;
   word color←v35124;
   /* ColorFromPixel: */ 
SOURCE(52640, 350)
SOURCE(52774, 43)
   size←v35096 = (* (( (ptr) colorOperator←v20332)+1) );
SOURCE(52819, 56)
   {
      word var←c77120;
      word var←c77152;
      word var←c77184;
      var←c77120 = BCK(size←v35096, 67108863);
      var←c77152 = ((word) var←c77120 << 2);
      var←c77184 = XR←NewObject((16 + var←c77152), (* (( (ptr) gf←c82144)+62) ));
      (* (( (ptr) var←c77184)+3) ) = var←c77120;
      color←v35124 = var←c77184;
      };
SOURCE(52877, 35)
   (* (( (ptr) color←v35124)+2) ) = colorOperator←v20332;
SOURCE(52914, 60)
   {
      register word i←v35168 = 0;
      if ((i←v35168 >= size←v35096)) {
         goto lab←L100102;
         };
      lab←L100105: ;
SOURCE(52941, 33)
      {
         word var←c77216;
         var←c77216 = (word) ( *( (fPt) ((*  (ptr) pixel←v20360 ))))(i←v35168, pixel←v20360);
         {
            word limit868;
            (* ((( (ptr) color←v35124)+4)+(
                  limit868 = (* (( (ptr) color←v35124)+3) ),
                  BCK(i←v35168, limit868)
                  )) ) = var←c77216;
            };
         };
      i←v35168 = (i←v35168 + 1);
      if ((i←v35168 < size←v35096)) {
         goto lab←L100105;
         };
      lab←L100102: ;
      };
SOURCE(52976, 14)
   return(color←v35124);
   }

static word MakeSampledBlack←P6540(pa←v20568, um←v20596, clear←v20624)
   word pa←v20568;
   word um←v20596;
   word clear←v20624;
   {
   register ptr gf←c82176 =  (ptr) &globalframe;
   word var←c20668;
   /* MakeSampledBlack: */ 
SOURCE(52995, 288)
SOURCE(53110, 29)
   if (((* (( (ptr) pa←v20568)+1) ) != 1)) {
SOURCE(53139, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(53146, 49)
   {
      word pd869;
      pd869 = (* (( (ptr) (* (( (ptr) gf←c82176)+341)/* var←c77248 */  ))+7) );
      if (((word) ( *( (fPt) ((*  (ptr) pd869 ))))(pa←v20568, 0, pd869) != 1)) {
SOURCE(53195, 5)
         (void) XR←RaiseUnnamedError();
         };
      };
SOURCE(53202, 81)
   {
      word var←c77312;
      var←c77312 = XR←NewObject(16, (* (( (ptr) gf←c82176)+62) ));
      (*  (ptr) var←c77312 ) = 2;
      (* (( (ptr) var←c77312)+1) ) = pa←v20568;
      (* (( (ptr) var←c77312)+2) ) = um←v20596;
      (* (( (ptr) var←c77312)+3) ) = clear←v20624;
      return(var←c77312);
      };
   }

static word MakeSampledColor←P6600(pa←v20728, um←v20756, colorOperator←v20784)
   word pa←v20728;
   word um←v20756;
   word colorOperator←v20784;
   {
   register ptr gf←c82208 =  (ptr) &globalframe;
   word var←c20828;
   /* MakeSampledColor: */ 
SOURCE(53289, 211)
SOURCE(53413, 87)
   {
      word var←c77376;
      var←c77376 = XR←NewObject(16, (* (( (ptr) gf←c82208)+62) ));
      (*  (ptr) var←c77376 ) = 1;
      (* (( (ptr) var←c77376)+1) ) = pa←v20728;
      (* (( (ptr) var←c77376)+2) ) = um←v20756;
      (* (( (ptr) var←c77376)+3) ) = colorOperator←v20784;
      return(var←c77376);
      };
   }

static void RGBFromColor←P6660(formal←c01113, c←v20972)
   word formal←c01113;
   word c←v20972;
   {
   register ptr gf←c82240 =  (ptr) &globalframe;
   W3 rgb←v21016;
   word p←v35212;
   /* RGBFromColor: */ 
SOURCE(53577, 387)
SOURCE(53577, 387)
   rgb←v21016.f0 = (*  (ptr) &fc95 );
   rgb←v21016.f1 = (*  (ptr) &fc95 );
   rgb←v21016.f2 = (*  (ptr) &fc95 );
SOURCE(53659, 128)
   {
      word var←c77408;
      {
         word pd870;
         pd870 = (* (( (ptr) (* (( (ptr) gf←c82240)+332)/* var←c66976 */  ))+42) );
         var←c77408 = (word) ( *( (fPt) ((*  (ptr) pd870 ))))((* (( (ptr) c←v20972)+2) ), (* (( (ptr) gf←c82240)+33)/* eitherRGBorY←v9076 */  ), pd870)
         ;
         };
      {
         word pd871;
         pd871 = (* (( (ptr) (* (( (ptr) gf←c82240)+332)/* var←c66976 */  ))+41) );
         p←v35212 = (word) ( *( (fPt) ((*  (ptr) pd871 ))))(c←v20972, var←c77408, pd871);
         };
      };
SOURCE(53789, 100)
   {
      word var←c77440;
      var←c77440 = (* (( (ptr) p←v35212)+1) );
      if ((var←c77440 == 1)) {
SOURCE(53812, 24)
         {
            word limit872;
            rgb←v21016.f0 = (* ((( (ptr) p←v35212)+2)+(
                  limit872 = (* (( (ptr) p←v35212)+1) ),
                  BCK(0, limit872)
                  )) );
            };
         {
            word limit873;
            rgb←v21016.f1 = (* ((( (ptr) p←v35212)+2)+(
                  limit873 = (* (( (ptr) p←v35212)+1) ),
                  BCK(0, limit873)
                  )) );
            };
         {
            word limit874;
            rgb←v21016.f2 = (* ((( (ptr) p←v35212)+2)+(
                  limit874 = (* (( (ptr) p←v35212)+1) ),
                  BCK(0, limit874)
                  )) );
            };
         }
      else {
         if ((var←c77440 == 3)) {
SOURCE(53865, 24)
            {
               word limit875;
               rgb←v21016.f0 = (* ((( (ptr) p←v35212)+2)+(
                     limit875 = (* (( (ptr) p←v35212)+1) ),
                     BCK(0, limit875)
                     )) );
               };
            {
               word limit876;
               rgb←v21016.f1 = (* ((( (ptr) p←v35212)+2)+(
                     limit876 = (* (( (ptr) p←v35212)+1) ),
                     BCK(1, limit876)
                     )) );
               };
            {
               word limit877;
               rgb←v21016.f2 = (* ((( (ptr) p←v35212)+2)+(
                     limit877 = (* (( (ptr) p←v35212)+1) ),
                     BCK(2, limit877)
                     )) );
               };
            }
         else {
SOURCE(53914, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
      };
SOURCE(53921, 43)
   {
      word pd878;
      pd878 = (* (( (ptr) (* (( (ptr) gf←c82240)+332)/* var←c66976 */  ))+36) );
      p←v35212 = (word) ( *( (fPt) ((*  (ptr) pd878 ))))(p←v35212, pd878);
      };
   /* removed tail goto */ 
   (*  (W3Pt) formal←c01113 ) = rgb←v21016;
   return;
   }

static word IntensityFromStipple←P6720(word←v21076)
   word word←v21076;
   {
   word var←c21120;
   word bits←v35284;
   word count←v35312 = 0;
   /* IntensityFromStipple: */ 
SOURCE(53970, 276)
SOURCE(54053, 56)
   bits←v35284 = word←v21076;
SOURCE(54157, 56)
   {
      register word i←v35412 = 0;
      lab←L100110: ;
SOURCE(54184, 29)
      {
         word ix879;
         count←v35312 = (count←v35312 +  (unsigned) (
            ix879 = (BCK(i←v35412, 16) + 16),
            ((word) bits←v35284 >> (31 - (word) ix879)) & 1
            ));
         };
      if ((i←v35412 >= 15)) {
         goto lab←L100107;
         };
      i←v35412 = (i←v35412 + 1);
      goto lab←L100110;
      lab←L100107: ;
      };
SOURCE(54215, 31)
   {
      float tf880;
      return((
         tf880 = (float)(int)(16 - count←v35312) / (float)(unsigned)16,  *(word*)&tf880
         ));
      };
   }

static word ColorFromStipple←P6780(word←v21180, function←v21208)
   word word←v21180;
   word function←v21208;
   {
   register ptr gf←c82272 =  (ptr) &globalframe;
   word var←c21252;
   word data←v35456;
   /* ColorFromStipple: */ 
SOURCE(54252, 360)
SOURCE(54342, 112)
   data←v35456 = XR←NewObject(8, (* (( (ptr) gf←c82272)+40) ));
   (*  (ptr) data←v35456 ) = word←v21180;
   (* (( (ptr) data←v35456)+1) ) = function←v21208;
SOURCE(54456, 156)
   {
      word var←c77568;
      word var←c77536;
      word var←c77600;
      {
         word x881;
         word x882;
         *(float*)&var←c77568 = (
            x881 = (*  (ptr) &fc133 ),  *(float*)&x881
            ) - (
            x882 = (word) IntensityFromStipple←P6720(word←v21180),  *(float*)&x882
            );
         };
      var←c77536 = (word) ColorFromGray←P900(var←c77568);
      var←c77600 = XR←NewObject(24, (* (( (ptr) gf←c82272)+62) ));
      (* (( (ptr) var←c77600)+1) ) = 1;
      (* (( (ptr) var←c77600)+2) ) = (* (( (ptr) gf←c82272)+106) );
      (* (( (ptr) var←c77600)+4) ) = data←v35456;
      (* (( (ptr) var←c77600)+5) ) = var←c77536;
      return(var←c77600);
      };
   }

static word Define←P6840(name←v21312, type←v21340, substitute←v21368)
   word name←v21312;
   word type←v21340;
   word substitute←v21368;
   {
   register ptr gf←c82304 =  (ptr) &globalframe;
   word var←c21412;
   word special←v35500;
   /* Define: */ 
SOURCE(54618, 307)
SOURCE(54711, 147)
   special←v35500 = XR←NewObject(24, (* (( (ptr) gf←c82304)+62) ));
   (* (( (ptr) special←v35500)+1) ) = 1;
   (* (( (ptr) special←v35500)+2) ) = type←v21340;
   (* (( (ptr) special←v35500)+3) ) = name←v21312;
   (* (( (ptr) special←v35500)+5) ) = substitute←v21368;
SOURCE(54860, 46)
   {
      word pd883;
      pd883 = (* (( (ptr) (* (( (ptr) gf←c82304)+332)/* var←c66976 */  ))+34) );
      (void) ( *( (fPt) ((*  (ptr) pd883 ))))(special←v35500, pd883);
      };
SOURCE(54908, 17)
   return(special←v35500);
   }

/* file: ImagerColorImpl, module: ImagerColorImpl, compiled at: July 28, 1993 10:15:12 am PDT */ 
extern void XR←install←ImagerColorImpl() {
   NoName←Q11340();
   }
extern void XR←run←ImagerColorImpl() { XR←Start(&globalframe); }