/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: June 12, 1992 1:17:11 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XTkXScrollerImpl, module: XTkXScrollerImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [577989105,1250511228] XTkXScrollerImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W8 f; word r;} W9;
typedef struct {W16 f; W9 r;} W25;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef W5 *W5Pt;
typedef struct {W8 f; W2 r;} W10;
#define SOURCE(p, l) /* source p, l */
#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) )
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
static void NoName←Q1668();
static void XTkXScrollerImpl←P0();
static word InitClass←P60();
static word EntrySetPos←P120();
static void EntryGetPos←P180();
static word CreateXScroller←P240();
static word IsXScroller←P300();
static void XScrollerInitInstPart←P420();
static word Child←P480();
static void GetOffset←P540();
static void SetOffset←P600();
static void SetBindXY←P660();
static void PleaseResizeChild←P720();
static word InternalEnumerateChildren←P780();
static void ConfigureLR←P840();
static void SizingLR←P1020();
static void ReplaceChild←P900();
static void action←P1224();
static void PreferredSizeLR←P960();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\042\163\151\361\300\112\211\111\174\100\214\000\000"};
static struct {unsigned f; char r[12];} string4 = {589836, "XScroller\000\000"};
static struct {unsigned f; char r[12];} string5 = {589836, "xScroller\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\042\163\151\361\300\112\211\111\174\100\164\000\000"};
static struct {unsigned f; char r[8];} string7 = {262148, "\004\200a\000\000\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\033\115\307\000\300\214\060\055\310\100\150\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\227\370\144\253\300\176\165\034\110\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\143\260\340\122\300\057\146\075\005\100\150\000\000"};
static struct {
   word f0[15]; word f15; word f16; word f17; 
   word f18; word f19; word f20; word f21; 
   word f22; word f23; word f24; word f25; 
   word f26; word f27; word f28; word f29; 
   word f30; word f31; word f32; word f33; 
   word f34; word f35; word f36; word f37; 
   word f38; word f39; word f40; word f41; 
   word f42; word f43; word f44; word f45; 
   word f46; word f47; word f48; word f49; 
   word f50; word f51; word f52[4]; 
   } globalframe = {
   {0}, (word) PreferredSizeLR←P960, 0, (word) ReplaceChild←P900, 
   0, (word) ConfigureLR←P840, 0, (word) InternalEnumerateChildren←P780, 
   0, (word) PleaseResizeChild←P720, 0, (word) SetBindXY←P660, 
   0, (word) SetOffset←P600, 0, (word) GetOffset←P540, 
   0, (word) Child←P480, 0, (word) XScrollerInitInstPart←P420, 
   0, (word) IsXScroller←P300, 0, (word) CreateXScroller←P240, 
   0, (word) EntryGetPos←P180, 0, (word) EntrySetPos←P120, 
   0, (word) InitClass←P60, 0, (word) XTkXScrollerImpl←P0, 
   0, 2147483648, 2147483648, 2147483648, 
   2147483648, 2147483648, {0}
   };

static void NoName←Q1668()
   {
   register ptr gf←c0113 =  (ptr) &globalframe;
   word var←c17648;
   (* (( (ptr) gf←c0113)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0113)+11) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c0113)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0113)+10) ), (word) &string4);
   (*  (ptr) (( (bPt) gf←c0113)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0113)+10) ), (word) &string5);
   (void) XR←DeclareGlobalFrame((word) "XTkXScrollerImpl", &globalframe, (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7)
      , (word) (( (bPt) gf←c0113)+180)/* var←c17136 */ );
   var←c17648 = (word) XR←ImportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string8)), 218);
   (* (( (ptr) gf←c0113)+54)/* var←c17584 */  ) = var←c17648;
   (void) XR←ImportProcS(var←c17648, 539906);
   var←c17648 = (word) XR←ImportInterface((word) "XTk", (word) XR←GetTypeIndexS((word) (&string9)), 50);
   (* (( (ptr) gf←c0113)+53)/* var←c17328 */  ) = var←c17648;
   (void) XR←ImportProcS(var←c17648, 274177);
   (void) XR←ImportProcS(var←c17648, 272641);
   (void) XR←ImportProcS(var←c17648, 786947);
   (void) XR←ImportProcS(var←c17648, 67642370);
   (void) XR←ImportProcS(var←c17648, 69992451);
   var←c17648 = (word) XR←ImportInterface((word) "XTkFriends", (word) XR←GetTypeIndexS((word) (&string10)), 33);
   (* (( (ptr) gf←c0113)+52)/* var←c17264 */  ) = var←c17648;
   (void) XR←ImportProcS(var←c17648, 265217);
   (void) XR←ImportProcS(var←c17648, 531970);
   (void) XR←ImportProcS(var←c17648, 531202);
   (void) XR←ImportProcS(var←c17648, 264961);
   (void) XR←ImportProcS(var←c17648, 2098180);
   (void) XR←ImportProcS(var←c17648, 337643012);
   (void) XR←ImportProcS(var←c17648, 2102532);
   (void) XR←ImportProcS(var←c17648, 530178);
   (void) XR←ImportProcS(var←c17648, 73666049);
   var←c17648 = (word) XR←ExportInterface((word) "XTkXScroller", (word) XR←GetTypeIndexS((word) (&string11)), 8);
   (* (( (ptr) gf←c0113)+55)/* var←c17680 */  ) = var←c17648;
   (void) XR←ExportVar(var←c17648, 0, (word) (( (bPt) gf←c0113)+32)/* xScrollerClass←v2664 */ );
   (void) XR←ExportProcS(var←c17648, (word) (( (bPt) gf←c0113)+148)/* var←c17008 */ , 70254852);
   (void) XR←ExportProcS(var←c17648, (word) (( (bPt) gf←c0113)+140)/* var←c16976 */ , 67371521);
   (void) XR←ExportProcS(var←c17648, (word) (( (bPt) gf←c0113)+124)/* var←c16912 */ , 67371777);
   (void) XR←ExportProcS(var←c17648, (word) (( (bPt) gf←c0113)+68)/* var←c16688 */ , 1049604);
   (void) XR←ExportProcS(var←c17648, (word) (( (bPt) gf←c0113)+116)/* var←c16880 */ , 134481153);
   (void) XR←ExportProcS(var←c17648, (word) (( (bPt) gf←c0113)+108)/* var←c16848 */ , 787970);
   (void) XR←ExportProcS(var←c17648, (word) (( (bPt) gf←c0113)+100)/* var←c16816 */ , 788227);
   }

static void XTkXScrollerImpl←P0(formal←c028, formal←c027)
   word formal←c028;
   word formal←c027;
   {
   register ptr gf←c17712 =  (ptr) &globalframe;
   /* XTkXScrollerImpl: */ 
SOURCE(47, 6957)
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
SOURCE(263, 46)
   (* (( (ptr) gf←c17712)+8)/* xScrollerClass←v2664 */  ) = (word) InitClass←P60();
   }

static word InitClass←P60()
   {
   register ptr gf←c17744 =  (ptr) &globalframe;
   word csc←v3248;
   /* InitClass: */ 
SOURCE(311, 359)
SOURCE(311, 359)
   csc←v3248 = 0;
SOURCE(370, 300)
   {
      W25 var←c031;
      (*  (ptr) &var←c031 ) = (* (( (ptr) gf←c17744)+14) );
      (* (( (ptr) &var←c031)+1) ) = (* (( (ptr) gf←c17744)+13) );
      (* (( (ptr) &var←c031)+2) ) = 0;
      (* (( (ptr) &var←c031)+3) ) = 1;
      (* (( (ptr) &var←c031)+4) ) = 0;
      (* (( (ptr) &var←c031)+5) ) = 0;
      (* (( (ptr) &var←c031)+6) ) = (word) (( (bPt) gf←c17744)+60)/* var←c16656 */ ;
      (* (( (ptr) &var←c031)+7) ) = (word) (( (bPt) gf←c17744)+76)/* var←c16720 */ ;
      (* (( (ptr) &var←c031)+8) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+9) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+10) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+11) ) = (* (( (ptr) (* (( (ptr) gf←c17744)+52)/* var←c17264 */  ))+27) );
      (* (( (ptr) &var←c031)+12) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+13) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+14) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+15) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+16) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+17) ) = (word) (( (bPt) gf←c17744)+84)/* var←c16752 */ ;
      (* (( (ptr) &var←c031)+18) ) = (word) (( (bPt) gf←c17744)+132)/* var←c16944 */ ;
      (* (( (ptr) &var←c031)+19) ) = 0;
      (* (( (ptr) &var←c031)+20) ) = 0;
      (* (( (ptr) &var←c031)+21) ) = 0;
      (* (( (ptr) &var←c031)+22) ) = 0;
      (* (( (ptr) &var←c031)+23) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c031)+24) ) = XR←CheckProc(0);
      {
         word pd12;
         pd12 = (* (( (ptr) (* (( (ptr) gf←c17744)+52)/* var←c17264 */  ))+18) );
         csc←v3248 = (word) ( *( (fPt) ((*  (ptr) pd12 ))))((word) (&var←c031), pd12);
         };
      };
SOURCE(311, 359)
   return(csc←v3248);
   }

static word EntrySetPos←P120(xsd←v3448, p←v3476)
   word xsd←v3448;
   W2 p←v3476;
   {
   register ptr gf←c17776 =  (ptr) &globalframe;
   word new←v3520;
   /* EntrySetPos: */ 
SOURCE(813, 272)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17776)+16)/* LOCK←v2580 */ ));
SOURCE(888, 66)
   if ((0 != (* (( (ptr) xsd←v3448)+1) ))) {
SOURCE(907, 13)
      p←v3476.f0 = 0;
      }
   else {
SOURCE(920, 34)
      {
         word x13;
         word x14;
         p←v3476.f0 = (x14 = (x13 = p←v3476.f0,
               MAX((int)(word), x13, 4294957296)),
            MIN((int)(word), x14, 10000));
         };
      };
SOURCE(956, 66)
   if ((0 != (* (( (ptr) xsd←v3448)+2) ))) {
SOURCE(975, 13)
      p←v3476.f1 = 0;
      }
   else {
SOURCE(988, 34)
      {
         word x15;
         word x16;
         p←v3476.f1 = (x16 = (x15 = p←v3476.f1,
               MAX((int)(word), x15, 4294957296)),
            MIN((int)(word), x16, 10000));
         };
      };
SOURCE(1024, 32)
   if (XR←EqualWords((( (ptr) xsd←v3448)+3), &p←v3476, 2)) {
SOURCE(1042, 14)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c17776)+16)/* LOCK←v2580 */ ));
      return(0);
      };
SOURCE(1058, 11)
   (*  (W2Pt) (( (ptr) xsd←v3448)+3) ) = p←v3476;
SOURCE(1071, 14)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c17776)+16)/* LOCK←v2580 */ ));
   return(1);
   }

static void EntryGetPos←P180(formal←c038, xsd←v3580)
   word formal←c038;
   word xsd←v3580;
   {
   register ptr gf←c17808 =  (ptr) &globalframe;
   W2 p←v3624;
   /* EntryGetPos: */ 
SOURCE(1090, 81)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17808)+16)/* LOCK←v2580 */ ));
SOURCE(1154, 17)
   p←v3624 = (*  (W2Pt) (( (ptr) xsd←v3580)+3) );
   /* removed tail goto */ 
   (void) (XR←MonitorExit((word) (( (bPt) gf←c17808)+16)/* LOCK←v2580 */ ));
   (*  (W2Pt) formal←c038 ) = p←v3624;
   return;
   }

static word CreateXScroller←P240(widgetSpec←v3684, child←v3712, bindx←v3740, bindy←v3768)
   W9 widgetSpec←v3684;
   word child←v3712;
   word bindx←v3740;
   word bindy←v3768;
   {
   register ptr gf←c17840 =  (ptr) &globalframe;
   word xScroller←v3812;
   /* CreateXScroller: */ 
SOURCE(1176, 292)
SOURCE(1176, 292)
   xScroller←v3812 = 0;
SOURCE(1319, 56)
   {
      word pd17;
      pd17 = (* (( (ptr) (* (( (ptr) gf←c17840)+53)/* var←c17328 */  ))+4) );
      xScroller←v3812 = (word) ( *( (fPt) ((*  (ptr) pd17 ))))(widgetSpec←v3684, (* (( (ptr) gf←c17840)+8)/* xScrollerClass←v2664 */  ), 0, pd17)
      ;
      };
SOURCE(1377, 54)
   if ((child←v3712 != 0)) {
SOURCE(1395, 36)
      (void) ReplaceChild←P900(xScroller←v3812, child←v3712, 1, 0);
      };
SOURCE(1433, 35)
   (void) SetBindXY←P660(xScroller←v3812, bindx←v3740, bindy←v3768);
SOURCE(1176, 292)
   return(xScroller←v3812);
   }

static word IsXScroller←P300(widget←v3872)
   word widget←v3872;
   {
   register ptr gf←c17872 =  (ptr) &globalframe;
   word var←c3916;
   /* IsXScroller: */ 
SOURCE(1472, 111)
SOURCE(1537, 46)
   {
      word var←c17392;
      word widget←v16580;
      word class←v16608;
      widget←v16580 = widget←v3872;
      class←v16608 = (* (( (ptr) gf←c17872)+8)/* xScrollerClass←v2664 */  );
      {
         word pd18;
         if (((* (( (ptr) widget←v16580)+4) ) == class←v16608)) {
            var←c17392 = 1;
            }
         else {
            pd18 = (* (( (ptr) (* (( (ptr) gf←c17872)+53)/* var←c17328 */  ))+40) );
            var←c17392 = (word) ( *( (fPt) ((*  (ptr) pd18 ))))(widget←v16580, class←v16608, pd18);
            };
         };
      return(var←c17392);
      };
   }

static void XScrollerInitInstPart←P420(widget←v8160, arguments←v8188)
   word widget←v8160;
   word arguments←v8188;
   {
   register ptr gf←c17904 =  (ptr) &globalframe;
   word xsd←v4604;
   /* XScrollerInitInstPart: */ 
SOURCE(1728, 256)
SOURCE(1780, 33)
   xsd←v4604 = XR←NewObject(20, (* (( (ptr) gf←c17904)+11) ));
SOURCE(1815, 54)
   {
      word val←v16532;
      val←v16532 = xsd←v4604;
      {
         word idx19;
         word limit20;
         (* ((( (ptr) widget←v8160)+49)+(
               idx19 = (* (( (ptr) (* (( (ptr) gf←c17904)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit20 = (* (( (ptr) widget←v8160)+48) ),
               BCK(idx19, limit20)
               )) ) = val←v16532;
         };
      };
SOURCE(1871, 38)
   {
      word pd21;
      pd21 = (* (( (ptr) (* (( (ptr) gf←c17904)+53)/* var←c17328 */  ))+6) );
      (void) ( *( (fPt) ((*  (ptr) pd21 ))))(widget←v8160, 6, 1, pd21);
      };
SOURCE(1911, 73)
   if (( (int)(* (( (ptr) widget←v8160)+9) ) <  (int)0)) {
SOURCE(1951, 33)
      (* (( (ptr) widget←v8160)+9) ) = 0;
      };
   }

static word Child←P480(xScroller←v4080)
   word xScroller←v4080;
   {
   register ptr gf←c17936 =  (ptr) &globalframe;
   word var←c4124;
   word xsd←v4648;
   /* Child: */ 
SOURCE(1990, 135)
SOURCE(1990, 135)
   var←c4124 = 0;
SOURCE(2064, 41)
   {
      word idx22;
      word limit23;
      xsd←v4648 = XR←Narrow((* ((( (ptr) xScroller←v4080)+49)+(
               idx22 = (* (( (ptr) (* (( (ptr) gf←c17936)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit23 = (* (( (ptr) xScroller←v4080)+48) ),
               BCK(idx22, limit23)
               )) ), (* (( (ptr) gf←c17936)+11) ));
      };
SOURCE(2107, 18)
   return((*  (ptr) xsd←v4648 ));
   }

static void GetOffset←P540(formal←c060, xScroller←v4184)
   word formal←c060;
   word xScroller←v4184;
   {
   register ptr gf←c17968 =  (ptr) &globalframe;
   W2 p←v4228;
   word xsd←v4692;
   /* GetOffset: */ 
SOURCE(2131, 135)
SOURCE(2203, 41)
   {
      word idx24;
      word limit25;
      xsd←v4692 = XR←Narrow((* ((( (ptr) xScroller←v4184)+49)+(
               idx24 = (* (( (ptr) (* (( (ptr) gf←c17968)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit25 = (* (( (ptr) xScroller←v4184)+48) ),
               BCK(idx24, limit25)
               )) ), (* (( (ptr) gf←c17968)+11) ));
      };
SOURCE(2246, 20)
   (void) EntryGetPos←P180((word) &p←v4228, xsd←v4692);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c060 ) = p←v4228;
   return;
   }

static void SetOffset←P600(xScroller←v4288, p←v4316)
   word xScroller←v4288;
   W2 p←v4316;
   {
   register ptr gf←c18000 =  (ptr) &globalframe;
   word xsd←v4736;
   word new←v4764;
   /* SetOffset: */ 
SOURCE(2273, 258)
SOURCE(2336, 41)
   {
      word idx26;
      word limit27;
      xsd←v4736 = XR←Narrow((* ((( (ptr) xScroller←v4288)+49)+(
               idx26 = (* (( (ptr) (* (( (ptr) gf←c18000)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit27 = (* (( (ptr) xScroller←v4288)+48) ),
               BCK(idx26, limit27)
               )) ), (* (( (ptr) gf←c18000)+11) ));
      };
SOURCE(2379, 31)
   new←v4764 = (word) EntrySetPos←P120(xsd←v4736, p←v4316);
SOURCE(2412, 119)
   if ((0 != new←v4764)) {
SOURCE(2426, 30)
      {
         word pd28;
         pd28 = (* (( (ptr) (* (( (ptr) gf←c18000)+53)/* var←c17328 */  ))+45) );
         (void) ( *( (fPt) ((*  (ptr) pd28 ))))(xScroller←v4288, pd28);
         };
SOURCE(2458, 73)
      if (((* (( (ptr) xScroller←v4288)+38) ) == 0)) {
SOURCE(2491, 40)
         {
            word pd29;
            pd29 = (* (( (ptr) (* (( (ptr) gf←c18000)+53)/* var←c17328 */  ))+51) );
            (void) ( *( (fPt) ((*  (ptr) pd29 ))))(xScroller←v4288, pd29);
            };
         };
      };
   }

static void SetBindXY←P660(xScroller←v4376, bindx←v4404, bindy←v4432)
   word xScroller←v4376;
   word bindx←v4404;
   word bindy←v4432;
   {
   register ptr gf←c18032 =  (ptr) &globalframe;
   word xsd←v4808;
   word new←v4836;
   /* SetBindXY: */ 
SOURCE(2539, 318)
SOURCE(2609, 41)
   {
      word idx30;
      word limit31;
      xsd←v4808 = XR←Narrow((* ((( (ptr) xScroller←v4376)+49)+(
               idx30 = (* (( (ptr) (* (( (ptr) gf←c18032)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit31 = (* (( (ptr) xScroller←v4376)+48) ),
               BCK(idx30, limit31)
               )) ), (* (( (ptr) gf←c18032)+11) ));
      };
SOURCE(2652, 46)
   new←v4836 =  ( ((* (( (ptr) xsd←v4808)+1) ) != bindx←v4404) ? 1 : ((* (( (ptr) xsd←v4808)+2) ) != bindy←v4432) ) ;
SOURCE(2700, 157)
   if ((0 != new←v4836)) {
SOURCE(2714, 17)
      (* (( (ptr) xsd←v4808)+1) ) = bindx←v4404;
SOURCE(2733, 17)
      (* (( (ptr) xsd←v4808)+2) ) = bindy←v4432;
SOURCE(2752, 30)
      {
         word pd32;
         pd32 = (* (( (ptr) (* (( (ptr) gf←c18032)+53)/* var←c17328 */  ))+45) );
         (void) ( *( (fPt) ((*  (ptr) pd32 ))))(xScroller←v4376, pd32);
         };
SOURCE(2784, 73)
      if (((* (( (ptr) xScroller←v4376)+38) ) == 0)) {
SOURCE(2817, 40)
         {
            word pd33;
            pd33 = (* (( (ptr) (* (( (ptr) gf←c18032)+53)/* var←c17328 */  ))+51) );
            (void) ( *( (fPt) ((*  (ptr) pd33 ))))(xScroller←v4376, pd33);
            };
         };
      };
   }

static void PleaseResizeChild←P720(widget←v8248, child←v8276)
   word widget←v8248;
   word child←v8276;
   {
   register ptr gf←c18064 =  (ptr) &globalframe;
   /* PleaseResizeChild: */ 
SOURCE(2865, 110)
SOURCE(2909, 27)
   {
      word pd34;
      pd34 = (* (( (ptr) (* (( (ptr) gf←c18064)+53)/* var←c17328 */  ))+45) );
      (void) ( *( (fPt) ((*  (ptr) pd34 ))))(widget←v8248, pd34);
      };
SOURCE(2938, 37)
   {
      word pd35;
      pd35 = (* (( (ptr) (* (( (ptr) gf←c18064)+53)/* var←c17328 */  ))+51) );
      (void) ( *( (fPt) ((*  (ptr) pd35 ))))(widget←v8248, pd35);
      };
   }

static word InternalEnumerateChildren←P780(self←v8336, classLevel←v8364, proc←v8392, data←v8420)
   word self←v8336;
   word classLevel←v8364;
   word proc←v8392;
   word data←v8420;
   {
   register ptr gf←c18096 =  (ptr) &globalframe;
   word stop←v8464;
   word xsd←v4880;
   word c←v4908;
   /* InternalEnumerateChildren: */ 
SOURCE(2979, 217)
SOURCE(2979, 217)
   stop←v8464 = 0;
SOURCE(3044, 36)
   {
      word idx36;
      word limit37;
      xsd←v4880 = XR←Narrow((* ((( (ptr) self←v8336)+49)+(
               idx36 = (* (( (ptr) (* (( (ptr) gf←c18096)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit37 = (* (( (ptr) self←v8336)+48) ),
               BCK(idx36, limit37)
               )) ), (* (( (ptr) gf←c18096)+11) ));
      };
SOURCE(3082, 25)
   c←v4908 = (*  (ptr) xsd←v4880 );
SOURCE(3109, 87)
   if ( ( (c←v4908 != 0) ? ((* (( (ptr) c←v4908)+38) ) < 4) : 0 ) ) {
SOURCE(3143, 53)
      if ((0 != (word) ( *( (fPt) ((*  (ptr) proc←v8392 ))))(self←v8336, c←v4908, data←v8420, proc←v8392))) {
SOURCE(3177, 11)
         stop←v8464 = 1;
SOURCE(3190, 6)
         return(stop←v8464);
         };
      };
SOURCE(2979, 217)
   return(stop←v8464);
   }

static void ConfigureLR←P840(widget←v8524, formal←c0138, mapping←v8580, reConsiderChildren←v8608)
   word widget←v8524;
   W5 formal←c0138;
   word mapping←v8580;
   word reConsiderChildren←v8608;
   {
   W11 var←c18128;
   /* declaration of geometry←v8552 skipped */ 
   register ptr gf←c18160 =  (ptr) &globalframe;
   /* declaration of var←c17488 skipped */ 
   word existW←v4980;
   word createW←v5008;
   (*  (W5Pt) (( (ptr) &var←c18128)+4)/* geometry←v8552 */  ) = formal←c0138;
   /* ConfigureLR: */ 
SOURCE(3206, 1639)
   {
      word tmpAddr38;
      tmpAddr38 = (word) (( (ptr) &var←c18128)+9)/* var←c17488 */ ;
      (*  (ptr) tmpAddr38 ) = ( ((word)  (fPt) SizingLR←P1020) );
      (* (( (ptr) tmpAddr38) + 1) ) = 1;
      };
SOURCE(4421, 48)
   existW←v4980 = ((* (( (ptr) widget←v8524)+44) ) < 2);
SOURCE(4471, 48)
   createW←v5008 =  ( (mapping←v8580 < 2) ? (0 == existW←v4980) : 0 ) ;
SOURCE(4521, 150)
   if ((0 != createW←v5008)) {
SOURCE(4539, 132)
      if (((* (( (ptr) widget←v8524)+16) ) ==  (word) -1)) {
SOURCE(4598, 73)
         (* (( (ptr) widget←v8524)+16) ) = (* (( (ptr) (* (( (ptr) (* (( (ptr) widget←v8524)+36) ))+1) ))+2) );
         };
      };
SOURCE(4674, 63)
   {
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c18160)+52)/* var←c17264 */  ))+25) );
      (void) ( *( (fPt) ((*  (ptr) pd39 ))))(widget←v8524, (*  (W5Pt) (( (ptr) &var←c18128)+4)/* geometry←v8552 */  ), mapping←v8580, 0, pd39)
      ;
      };
SOURCE(4739, 106)
   if (((0 != existW←v4980) || (0 != createW←v5008))) {
SOURCE(4765, 82)
      {
         word doChildren←v5140;
SOURCE(4767, 48)
         doChildren←v5140 = ((0 != reConsiderChildren←v8608) || (0 != createW←v5008));
SOURCE(4817, 28)
         (void) SizingLR←P1020(widget←v8524, doChildren←v5140, (word) (( (bPt) &var←c18128)+36)/* var←c17488 */ );
         };
      };
   }

static void SizingLR←P1020(widget←v5084, reConsiderChildren←v5112, formal←c18224)
   word widget←v5084;
   word reConsiderChildren←v5112;
   word formal←c18224;
   {
   register ptr gf←c18192 =  (ptr) &globalframe;
   word xsd←v5184;
   word child←v5212;
   formal←c18224 = (formal←c18224 - 36);
   /* SizingLR: */ 
SOURCE(3241, 1172)
SOURCE(3307, 38)
   {
      word idx40;
      word limit41;
      xsd←v5184 = XR←Narrow((* ((( (ptr) widget←v5084)+49)+(
               idx40 = (* (( (ptr) (* (( (ptr) gf←c18192)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit41 = (* (( (ptr) widget←v5084)+48) ),
               BCK(idx40, limit41)
               )) ), (* (( (ptr) gf←c18192)+11) ));
      };
SOURCE(3347, 29)
   child←v5212 = (*  (ptr) xsd←v5184 );
SOURCE(3378, 87)
   if ((0 != reConsiderChildren←v5112)) {
SOURCE(3405, 60)
      {
         word pd42;
         pd42 = (* (( (ptr) (* (( (ptr) gf←c18192)+53)/* var←c17328 */  ))+6) );
         (void) ( *( (fPt) ((*  (ptr) pd42 ))))(widget←v5084, 0, 0, pd42);
         };
      };
SOURCE(3467, 946)
   if ((child←v5212 != 0)) {
SOURCE(3485, 930)
      {
         W5 g←v5256;
SOURCE(3487, 14)
         g←v5256.f0 = 2147483648;
         g←v5256.f1 = 2147483648;
         g←v5256.f2 = 2147483648;
         g←v5256.f3 = 2147483648;
         g←v5256.f4 = 2147483648;
SOURCE(3503, 59)
         if ( ( ((* (( (ptr) child←v5212)+38) ) != 0) ? (0 == reConsiderChildren←v5112) : 0 ) ) {
SOURCE(3556, 6)
            return;
            };
SOURCE(3564, 775)
         if (((* (( (ptr) child←v5212)+10) ) == 0)) {
SOURCE(3595, 746)
            {
               W5 proposed←v5300;
               word ms←v5328 = 25;
SOURCE(3598, 36)
               proposed←v5300 = (*  (W5Pt) (( (ptr) child←v5212)+39) );
SOURCE(3672, 75)
               if ((0 != (* (( (ptr) xsd←v5184)+1) ))) {
SOURCE(3692, 41)
                  proposed←v5300.f2 = (* (( (ptr) formal←c18224)+6) );
SOURCE(3735, 12)
                  ms←v5328 = (ms←v5328 & 4294967291) | (((1)) << 2);
                  };
SOURCE(3752, 76)
               if ((0 != (* (( (ptr) xsd←v5184)+2) ))) {
SOURCE(3772, 42)
                  proposed←v5300.f3 = (* (( (ptr) formal←c18224)+6) );
SOURCE(3816, 12)
                  ms←v5328 = (ms←v5328 & 4294967293) | (((1)) << 1);
                  };
SOURCE(3833, 78)
               {
                  word pd43;
                  pd43 = (* (( (ptr) (* (( (ptr) gf←c18192)+52)/* var←c17264 */  ))+10) );
                  (void) ( *( (fPt) ((*  (ptr) pd43 ))))((word) &g←v5256, child←v5212, 0, proposed←v5300, ms←v5328, pd43);
                  };
SOURCE(3913, 24)
               (void) EntryGetPos←P180((word) &g←v5256, xsd←v5184);
SOURCE(3939, 41)
               if (( (int)g←v5256.f4 <  (int)0)) {
SOURCE(3963, 17)
                  g←v5256.f4 = 0;
                  };
SOURCE(3982, 130)
               if ((0 != (* (( (ptr) xsd←v5184)+1) ))) {
SOURCE(4002, 39)
                  g←v5256.f2 = (* (( (ptr) widget←v5084)+41) );
SOURCE(4043, 69)
                  if (( (int)g←v5256.f2 >  (int)0)) {
SOURCE(4066, 46)
                     g←v5256.f2 = (g←v5256.f2 - IOP2( * ,  (int)2,  (int)g←v5256.f4));
                     };
                  };
SOURCE(4116, 135)
               if ((0 != (* (( (ptr) xsd←v5184)+2) ))) {
SOURCE(4136, 41)
                  g←v5256.f3 = (* (( (ptr) widget←v5084)+42) );
SOURCE(4179, 72)
                  if (( (int)g←v5256.f3 >  (int)0)) {
SOURCE(4203, 48)
                     g←v5256.f3 = (g←v5256.f3 - IOP2( * ,  (int)2,  (int)g←v5256.f4));
                     };
                  };
SOURCE(4255, 40)
               if (( (int)g←v5256.f2 <=  (int)0)) {
SOURCE(4279, 16)
                  g←v5256.f2 = 1;
                  };
SOURCE(4297, 42)
               if (( (int)g←v5256.f3 <=  (int)0)) {
SOURCE(4322, 17)
                  g←v5256.f3 = 1;
                  };
               };
            };
SOURCE(4344, 69)
         {
            word pd44;
            pd44 = (* (( (ptr) (* (( (ptr) gf←c18192)+52)/* var←c17264 */  ))+8) );
            (void) ( *( (fPt) ((*  (ptr) pd44 ))))(child←v5212, g←v5256, (* (( (ptr) child←v5212)+10) ), reConsiderChildren←v5112, pd44)
            ;
            };
         };
      };
   }

static void ReplaceChild←P900(formal←c0139, formal←c0140, formal←c0141, formal←c0142)
   word formal←c0139;
   word formal←c0140;
   word formal←c0141;
   word formal←c0142;
   {
   W10 var←c18256;
   /* declaration of xScroller←v4492 skipped */ 
   /* declaration of child←v4520 skipped */ 
   /* declaration of delayed←v4548 skipped */ 
   /* declaration of preventDestructionOfOldChild←v4576 skipped */ 
   register ptr gf←c18288 =  (ptr) &globalframe;
   /* declaration of var←c17552 skipped */ 
   (* (( (ptr) &var←c18256)+4)/* xScroller←v4492 */  ) = formal←c0139;
   (* (( (ptr) &var←c18256)+5)/* child←v4520 */  ) = formal←c0140;
   (* (( (ptr) &var←c18256)+6)/* delayed←v4548 */  ) = formal←c0141;
   (* (( (ptr) &var←c18256)+7)/* preventDestructionOfOldChild←v4576 */  ) = formal←c0142;
   /* ReplaceChild: */ 
SOURCE(4854, 1016)
   {
      word tmpAddr45;
      tmpAddr45 = (word) (( (ptr) &var←c18256)+8)/* var←c17552 */ ;
      (*  (ptr) tmpAddr45 ) = ( ((word)  (fPt) action←P1224) );
      (* (( (ptr) tmpAddr45) + 1) ) = 1;
      };
SOURCE(5755, 115)
   if (((* (( (ptr) (* (( (ptr) &var←c18256)+4)/* xScroller←v4492 */  ))+45) ) == 0) || ((* (( (ptr) (* (( (ptr) &var←c18256)+4)
      /* xScroller←v4492 */  ))+38) ) >= 2)) {
SOURCE(5814, 15)
      (void) action←P1224((word) ((( (bPt) &var←c18256)+32)/* var←c17552 */ ));
      }
   else {
SOURCE(5829, 41)
      {
         word pd46;
         pd46 = (* (( (ptr) (* (( (ptr) gf←c18288)+54)/* var←c17584 */  ))+65) );
         (void) ( *( (fPt) ((*  (ptr) pd46 ))))((* (( (ptr) (* (( (ptr) &var←c18256)+4)/* xScroller←v4492 */  ))+45) ), (word) (( (bPt) &var←c18256)+32)
            /* var←c17552 */ , pd46);
         };
      };
   }

static void action←P1224(formal←c18352)
   word formal←c18352;
   {
   register ptr gf←c18320 =  (ptr) &globalframe;
   word xsd←v5432;
   word oldChild←v5460;
   formal←c18352 = (formal←c18352 - 32);
   /* action: */ 
SOURCE(4994, 753)
SOURCE(5014, 41)
   {
      word idx47;
      word limit48;
      xsd←v5432 = XR←Narrow((* ((( (ptr) (* (( (ptr) formal←c18352)+4) ))+49)+(
               idx47 = (* (( (ptr) (* (( (ptr) gf←c18320)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit48 = (* (( (ptr) (* (( (ptr) formal←c18352)+4) ))+48) ),
               BCK(idx47, limit48)
               )) ), (* (( (ptr) gf←c18320)+11) ));
      };
SOURCE(5057, 32)
   oldChild←v5460 = (*  (ptr) xsd←v5432 );
SOURCE(5091, 29)
   if ((oldChild←v5460 == (* (( (ptr) formal←c18352)+5) ))) {
SOURCE(5114, 6)
      return;
      };
SOURCE(5122, 275)
   if ((oldChild←v5460 != 0)) {
SOURCE(5145, 34)
      if (((* (( (ptr) oldChild←v5460)+31) ) != (* (( (ptr) formal←c18352)+4) ))) {
SOURCE(5179, 5)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(5186, 89)
      if (((* (( (ptr) oldChild←v5460)+38) ) < 2)) {
SOURCE(5219, 56)
         {
            word pd49;
            pd49 = (* (( (ptr) (* (( (ptr) gf←c18320)+52)/* var←c17264 */  ))+8) );
            (void) ( *( (fPt) ((*  (ptr) pd49 ))))(oldChild←v5460, (*  (W5Pt) (( (ptr) gf←c18320)+47)/* var←c17200 */  ), 2, 1, pd49)
            ;
            };
         };
SOURCE(5277, 120)
      if ((0 != (* (( (ptr) formal←c18352)+7) ))) {
SOURCE(5315, 41)
         {
            word pd50;
            pd50 = (* (( (ptr) (* (( (ptr) gf←c18320)+52)/* var←c17264 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd50 ))))(oldChild←v5460, pd50);
            };
         }
      else {
SOURCE(5356, 41)
         {
            word pd51;
            pd51 = (* (( (ptr) (* (( (ptr) gf←c18320)+52)/* var←c17264 */  ))+31) );
            (void) ( *( (fPt) ((*  (ptr) pd51 ))))(oldChild←v5460, 0, pd51);
            };
         };
      };
SOURCE(5400, 196)
   if (((* (( (ptr) formal←c18352)+5) ) != 0)) {
SOURCE(5420, 100)
      {
         word var←c17616;
         var←c17616 = (* (( (ptr) (* (( (ptr) formal←c18352)+5) ))+31) );
         if ((var←c17616 == 0) || (var←c17616 == (* (( (ptr) formal←c18352)+4) ))) {
SOURCE(5463, 57)
            {
               word pd52;
               pd52 = (* (( (ptr) (* (( (ptr) gf←c18320)+52)/* var←c17264 */  ))+34) );
               (void) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) formal←c18352)+5) ), (* (( (ptr) formal←c18352)+4) ), pd52);
               };
            }
         else {
SOURCE(5533, 5)
            (void) XR←RaiseUnnamedError();
            };
         };
SOURCE(5540, 56)
      if (((* (( (ptr) (* (( (ptr) formal←c18352)+5) ))+10) ) == 3)) {
SOURCE(5572, 24)
         (* (( (ptr) (* (( (ptr) formal←c18352)+5) ))+10) ) = 0;
         };
      };
SOURCE(5601, 17)
   (*  (ptr) xsd←v5432 ) = (* (( (ptr) formal←c18352)+5) );
SOURCE(5620, 30)
   {
      word pd53;
      pd53 = (* (( (ptr) (* (( (ptr) gf←c18320)+53)/* var←c17328 */  ))+45) );
      (void) ( *( (fPt) ((*  (ptr) pd53 ))))((* ((( (ptr) formal←c18352)+4)) ), pd53);
      };
SOURCE(5652, 95)
   if (((* (( (ptr) (* (( (ptr) formal←c18352)+4) ))+38) ) == 0)) {
SOURCE(5687, 60)
      if ((0 == (* (( (ptr) formal←c18352)+6) ))) {
SOURCE(5704, 43)
         {
            word pd54;
            pd54 = (* (( (ptr) (* (( (ptr) gf←c18320)+52)/* var←c17264 */  ))+16) );
            (void) ( *( (fPt) ((*  (ptr) pd54 ))))((* ((( (ptr) formal←c18352)+4)) ), pd54);
            };
         };
      };
   }

static void PreferredSizeLR←P960(formal←c0112, widget←v8668, mode←v8696, proposed←v8724, maySkip←v8752)
   word formal←c0112;
   word widget←v8668;
   word mode←v8696;
   W5 proposed←v8724;
   word maySkip←v8752;
   {
   register ptr gf←c18384 =  (ptr) &globalframe;
   W5 preferred←v8796;
   word xsd←v5504;
   /* PreferredSizeLR: */ 
SOURCE(5876, 1128)
SOURCE(5876, 1128)
   preferred←v8796.f0 = 2147483648;
   preferred←v8796.f1 = 2147483648;
   preferred←v8796.f2 = 2147483648;
   preferred←v8796.f3 = 2147483648;
   preferred←v8796.f4 = 2147483648;
SOURCE(5919, 38)
   {
      word idx55;
      word limit56;
      xsd←v5504 = XR←Narrow((* ((( (ptr) widget←v8668)+49)+(
               idx55 = (* (( (ptr) (* (( (ptr) gf←c18384)+8)/* xScrollerClass←v2664 */  ))+4) ),
               limit56 = (* (( (ptr) widget←v8668)+48) ),
               BCK(idx55, limit56)
               )) ), (* (( (ptr) gf←c18384)+11) ));
      };
SOURCE(5959, 157)
   (*  (W2Pt) &preferred←v8796 ) = (*  (W2Pt) (( (ptr) widget←v8668)+5) );
   preferred←v8796.f2 = (* (( (ptr) widget←v8668)+7) );
   preferred←v8796.f3 = (* (( (ptr) widget←v8668)+8) );
   preferred←v8796.f4 = (* (( (ptr) widget←v8668)+9) );
SOURCE(6119, 643)
   if (((*  (ptr) xsd←v5504 ) != 0)) {
SOURCE(6143, 62)
      if (( (int)preferred←v8796.f2 >  (int)0) || (0 == (* (( (ptr) xsd←v5504)+1) ))) {
SOURCE(6188, 17)
         maySkip←v8752 = (maySkip←v8752 & 4294967291) | (((1)) << 2);
         };
SOURCE(6207, 63)
      if (( (int)preferred←v8796.f3 >  (int)0) || (0 == (* (( (ptr) xsd←v5504)+2) ))) {
SOURCE(6253, 17)
         maySkip←v8752 = (maySkip←v8752 & 4294967293) | (((1)) << 1);
         };
SOURCE(6272, 490)
      if ( ! (maySkip←v8752 & 04) ||  ! (maySkip←v8752 & 02)) {
SOURCE(6307, 457)
         {
            W5 proposed←v5548;
SOURCE(6309, 33)
            proposed←v5548 = preferred←v8796;
SOURCE(6345, 24)
            proposed←v5548.f4 = 0;
SOURCE(6371, 30)
            maySkip←v8752 = (maySkip←v8752 & 4294967287) | (((1)) << 3);
            maySkip←v8752 = (maySkip←v8752 & 4294967279) | (((1)) << 4);
SOURCE(6403, 73)
            {
               word pd57;
               pd57 = (* (( (ptr) (* (( (ptr) gf←c18384)+52)/* var←c17264 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd57 ))))((word) &proposed←v5548, (*  (ptr) xsd←v5504 ), mode←v8696, proposed←v5548, maySkip←v8752, pd57)
               ;
               };
SOURCE(6478, 55)
            if (( (int)proposed←v5548.f4 <  (int)0)) {
SOURCE(6509, 24)
               proposed←v5548.f4 = 0;
               };
SOURCE(6535, 111)
            if ( ( (0 != (* (( (ptr) xsd←v5504)+1) )) ? ( (int)proposed←v5548.f2 >  (int)0) : 0 ) ) {
SOURCE(6580, 66)
               preferred←v8796.f2 = (proposed←v5548.f2 + IOP2( * ,  (int)2,  (int)proposed←v5548.f4));
               };
SOURCE(6648, 114)
            if ( ( (0 != (* (( (ptr) xsd←v5504)+2) )) ? ( (int)proposed←v5548.f3 >  (int)0) : 0 ) ) {
SOURCE(6694, 68)
               preferred←v8796.f3 = (proposed←v5548.f3 + IOP2( * ,  (int)2,  (int)proposed←v5548.f4));
               };
            };
         };
      };
SOURCE(6770, 53)
   preferred←v8796.f4 = (* (( (ptr) widget←v8668)+9) );
SOURCE(6825, 57)
   if (( (int)preferred←v8796.f4 <  (int)0)) {
SOURCE(6857, 25)
      preferred←v8796.f4 = 0;
      };
SOURCE(6884, 58)
   if (( (int)preferred←v8796.f2 <=  (int)0)) {
SOURCE(6916, 26)
      preferred←v8796.f2 = 300;
      };
SOURCE(6944, 60)
   if (( (int)preferred←v8796.f3 <=  (int)0)) {
SOURCE(6977, 27)
      preferred←v8796.f3 = 200;
      };
   /* removed tail goto */ 
   (*  (W5Pt) formal←c0112 ) = preferred←v8796;
   return;
   }

/* file: XTkXScrollerImpl, module: XTkXScrollerImpl, compiled at: June 12, 1992 1:17:10 pm PDT */ 
extern void XR←install←XTkXScrollerImpl() {
   NoName←Q1668();
   }
extern void XR←run←XTkXScrollerImpl() { XR←Start(&globalframe); }