/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: September 3, 1993 12:58:19 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: InstallationTypesImpl, module: InstallationTypesImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2408724016,1676823515] InstallationTypesImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q2112();
static void InstallationTypesImpl←P0();
static word TypeFromTypeString←P60();
static void UnmonitoredFindTypeFromTypeString←P120();
extern word XR←GetTypeIndex();
static void MaybeGetTypeIndex←P240();
static word TypeStringFromType←P300();
static word UnmonitoredTypeStringFromType←P360();
static word MaybeMonitoredTypeStringFromType←P420();
static void FetchFromList←P600();
static void StoreInList←P660();
static word StringEqual←P720();
static void FetchTypeFromList←P780();
static word Equal←P840();
static word Hash←P900();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\217\222\066\060\300\143\362\113\333\100\230\000\000"};
static struct {unsigned f; char r[44];} string2 = {2752556, "\260\006\005\146\151\162\163\164\257\300\217\222\066\060\300\143\362\113\333\101\210\005\004\162\145\163\164\214\257\300\217\222\066\060\300\143\362\113\333\101\210\261\000"};
static struct {unsigned f; char r[4];} string3 = {131074, "\004\006\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\217\222\066\060\300\143\362\113\333\100\164\000\000"};
static struct {unsigned f; char r[4];} string5 = {196611, "\004@\340"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\223\215\300\016\300\070\141\304\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\317\073\175\317\300\370\307\271\356\100\150\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\242\221\264\046\300\105\142\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\036\137\320\376\300\071\321\170\251\100\150\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\371\361\330\220\300\372\202\000\101\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\200\367\017\371\300\261\172\333\044\100\150\000\000"};
static struct {
   word f0[4]; word f4; word f5[8]; word f13; 
   word f14; 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[6]; 
   } globalframe = {
   {0}, (word) 4, {0}, (word) Hash←P900, 
   0, (word) Equal←P840, 0, (word) FetchTypeFromList←P780, 
   0, (word) StringEqual←P720, 0, (word) StoreInList←P660, 
   0, (word) FetchFromList←P600, 0, (word) MaybeMonitoredTypeStringFromType←P420, 
   0, (word) UnmonitoredTypeStringFromType←P360, 0, (word) TypeStringFromType←P300, 
   0, (word) MaybeGetTypeIndex←P240, 0, (word) XR←GetTypeIndex, 
   0, (word) UnmonitoredFindTypeFromTypeString←P120, 0, (word) TypeFromTypeString←P60, 
   0, (word) InstallationTypesImpl←P0, {0}
   };

static void NoName←Q2112()
   {
   register ptr gf←c0133 =  (ptr) &globalframe;
   word var←c13272;
   (* (( (ptr) gf←c0133)+9) ) = (word) XR←GetTypeIndexS((word) (&string1));
   (* (( (ptr) gf←c0133)+10) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (void) XR←DeclareGlobalFrame((word) "InstallationTypesImpl", &globalframe, (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5)
      , (word) (( (bPt) gf←c0133)+156)/* var←c11928 */ );
   var←c13272 = (word) XR←ImportInterface((word) "CardTab", (word) XR←GetTypeIndexS((word) (&string6)), 12);
   (* (( (ptr) gf←c0133)+42)/* var←c11992 */  ) = var←c13272;
   (void) XR←ImportProcS(var←c13272, 134742786);
   (void) XR←ImportProcS(var←c13272, 67896579);
   (void) XR←ImportProcS(var←c13272, 67371265);
   var←c13272 = (word) XR←ImportInterface((word) "CardTabBackdoor", (word) XR←GetTypeIndexS((word) (&string7)), 2);
   (* (( (ptr) gf←c0133)+44)/* var←c12696 */  ) = var←c13272;
   (void) XR←ImportProcS(var←c13272, 134742018);
   var←c13272 = (word) XR←ImportInterface((word) "RefTab", (word) XR←GetTypeIndexS((word) (&string8)), 16);
   (* (( (ptr) gf←c0133)+41)/* var←c11960 */  ) = var←c13272;
   (void) XR←ImportProcS(var←c13272, 134742786);
   (void) XR←ImportProcS(var←c13272, 67896579);
   (void) XR←ImportProcS(var←c13272, 67895555);
   var←c13272 = (word) XR←ImportInterface((word) "RefTabBackdoor", (word) XR←GetTypeIndexS((word) (&string9)), 2);
   (* (( (ptr) gf←c0133)+43)/* var←c12312 */  ) = var←c13272;
   (void) XR←ImportProcS(var←c13272, 134742018);
   var←c13272 = (word) XR←ExportInterface((word) "MesaLoadState", (word) XR←GetTypeIndexS((word) (&string10)), 20);
   (* (( (ptr) gf←c0133)+45)/* var←c13304 */  ) = var←c13272;
   (void) XR←ExportProcS(var←c13272, (word) (( (bPt) gf←c0133)+116)/* var←c11768 */ , 67375361, (word) "TypeStringFromType")
   ;
   (void) XR←ExportProcS(var←c13272, (word) (( (bPt) gf←c0133)+148)/* var←c11896 */ , 67375617, (word) "TypeFromTypeString")
   ;
   var←c13272 = (word) XR←ExportInterface((word) "MesaLoadStateBackdoor", (word) XR←GetTypeIndexS((word) (&string11)), 3);
   (* (( (ptr) gf←c0133)+45)/* var←c13304 */  ) = var←c13272;
   (void) XR←ExportProcS(var←c13272, (word) (( (bPt) gf←c0133)+108)/* var←c11736 */ , 67371265, (word) "UnmonitoredTypeStringFromType")
   ;
   (void) XR←ExportProcS(var←c13272, (word) (( (bPt) gf←c0133)+140)/* var←c11864 */ , 134480385, (word) "UnmonitoredFindTypeFromTypeString")
   ;
   }

static void InstallationTypesImpl←P0(formal←c037, formal←c027)
   word formal←c037;
   word formal←c027;
   {
   register ptr gf←c13336 =  (ptr) &globalframe;
   /* InstallationTypesImpl: */ 
SOURCE(123, 4763)
   /* moved to installation proc */ 
SOURCE(4542, 59)
   {
      word pd12;
      pd12 = (* (( (ptr) (* (( (ptr) gf←c13336)+41)/* var←c11960 */  ))+5) );
      (* (( (ptr) gf←c13336)+6)/* typeTab←v3420 */  ) = (word) ( *( (fPt) ((*  (ptr) pd12 ))))(509, (word) (( (bPt) gf←c13336)+60)
         /* var←c11544 */ , (word) (( (bPt) gf←c13336)+52)/* var←c11512 */ , pd12);
      };
SOURCE(4603, 37)
   {
      word pd13;
      pd13 = (* (( (ptr) (* (( (ptr) gf←c13336)+42)/* var←c11992 */  ))+5) );
      (* (( (ptr) gf←c13336)+7)/* invTypeTab←v3448 */  ) = (word) ( *( (fPt) ((*  (ptr) pd13 ))))(509, pd13);
      };
SOURCE(4643, 201)
   {
      register word l←v5636;
      l←v5636 = (* (( (ptr) gf←c13336)+5)/* typeList←v3252 */  );
      lab←L100003: ;
      if ((l←v5636 != 0)) {
         }
      else {
         goto lab←L100000;
         };
SOURCE(4699, 65)
      {
         word var←c12088;
         {
            word var←c12024;
            {
               word var←c12056;
               word s←v11308;
               s←v11308 = (*  (ptr) l←v5636 );
SOURCE(3320, 19)
               var←c12056 = s←v11308;
               var←c12024 = var←c12056;
               };
            {
               word pd14;
               pd14 = (* (( (ptr) (* (( (ptr) gf←c13336)+41)/* var←c11960 */  ))+9) );
               var←c12088 = (word) ( *( (fPt) ((*  (ptr) pd14 ))))((* (( (ptr) gf←c13336)+6)/* typeTab←v3420 */  ), var←c12024, (* (( (ptr) l←v5636)+1)
                   ), pd14);
               };
            };
         };
SOURCE(4766, 78)
      {
         word var←c12184;
         {
            word var←c12120;
            {
               word var←c12152;
               word s←v11260;
               s←v11260 = (*  (ptr) l←v5636 );
SOURCE(3320, 19)
               var←c12152 = s←v11260;
               var←c12120 = var←c12152;
               };
            {
               word pd15;
               pd15 = (* (( (ptr) (* (( (ptr) gf←c13336)+42)/* var←c11992 */  ))+9) );
               var←c12184 = (word) ( *( (fPt) ((*  (ptr) pd15 ))))((* (( (ptr) gf←c13336)+7)/* invTypeTab←v3448 */  ), (*  (ptr) (* (( (ptr) l←v5636)+1)
                   ) ), var←c12120, pd15);
               };
            };
         };
      l←v5636 = (* (( (ptr) l←v5636)+2) );
      goto lab←L100003;
      lab←L100000: ;
      };
SOURCE(4855, 14)
   (* (( (ptr) gf←c13336)+5)/* typeList←v3252 */  ) = 0;
   }

static word TypeFromTypeString←P60(typeString←v3816)
   word typeString←v3816;
   {
   word type←v3860;
   /* TypeFromTypeString: */ 
SOURCE(708, 146)
SOURCE(804, 50)
   return((word) XR←GetTypeIndex(typeString←v3816, 0, 0));
   }

static void UnmonitoredFindTypeFromTypeString←P120(formal←c046, typeString←v3920)
   word formal←c046;
   word typeString←v3920;
   {
   word found←v3964;
   word type←v3992;
   word typeIndex←v5764;
   /* UnmonitoredFindTypeFromTypeString: */ 
SOURCE(860, 325)
SOURCE(998, 64)
   {
      W2 var←c12248;
      (void) MaybeGetTypeIndex←P240((word) &var←c12248, typeString←v3920, 0, 0, 1);
      typeIndex←v5764 = var←c12248.f1;
      found←v3964 = var←c12248.f0;
      };
SOURCE(1064, 112)
   if ((0 != found←v3964)) {
SOURCE(1122, 27)
      type←v3992 = typeIndex←v5764;
      }
   else {
SOURCE(1149, 27)
      type←v3992 = 0;
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c046 ) = found←v3964;
   (* (( (ptr) formal←c046)+1) ) = type←v3992;
   return;
   }

extern word XR←GetTypeIndex(typeString←v4052, structure←v4080, rcMapIndex←v4108)
   word typeString←v4052;
   word structure←v4080;
   word rcMapIndex←v4108;
   {
   word typeIndex←v4164;
   /* GetTypeIndex: */ 
SOURCE(1189, 217)
SOURCE(1327, 79)
   {
      word var←c0140;
      W2 var←c051;
      (void) MaybeGetTypeIndex←P240((word) &var←c051, typeString←v4052, structure←v4080, rcMapIndex←v4108, 0);
      var←c0140 = var←c051.f1;
      return(var←c0140);
      };
   }

static void MaybeGetTypeIndex←P240(formal←c073, typeString←v4224, structure←v4252, rcMapIndex←v4280, timidly←v4308)
   word formal←c073;
   word typeString←v4224;
   word structure←v4252;
   word rcMapIndex←v4280;
   word timidly←v4308;
   {
   register ptr gf←c13368 =  (ptr) &globalframe;
   word found←v4364;
   word typeIndex←v4392;
   /* MaybeGetTypeIndex: */ 
SOURCE(1410, 966)
SOURCE(1562, 78)
   if ((structure←v4252 != 0)) {
SOURCE(1586, 54)
      {
         W2 var←c058;
         (*  (ptr) (word) &var←c058 ) = 0;
         (* (( (ptr) (word) &var←c058) + 1) ) = typeString←v4224;
         (void) XR←RaiseError((word) (( (bPt) gf←c13368)+48)/* var←c11480 */ , (word) &var←c058);
         };
      };
SOURCE(1642, 723)
   if (((* (( (ptr) gf←c13368)+6)/* typeTab←v3420 */  ) != 0)) {
SOURCE(1664, 436)
      {
         word val←v5808 = 0;
SOURCE(1683, 116)
         {
            W2 var←c12344;
            {
               word pd16;
               pd16 = (word)  ( (0 != timidly←v4308) ? (* (( (ptr) (* (( (ptr) gf←c13368)+43)/* var←c12312 */  ))+4) ) : (* (( (ptr) (* (
                     ( (ptr) gf←c13368)+41)/* var←c11960 */  ))+7) ) ) ;
               (void) ( *( (fPt) ((*  (ptr) pd16 ))))((word) &var←c12344, (* (( (ptr) gf←c13368)+6)/* typeTab←v3420 */  ), typeString←v4224, pd16)
               ;
               };
            val←v5808 = var←c12344.f1;
            found←v4364 = var←c12344.f0;
            };
SOURCE(1801, 56)
         if ((0 != found←v4364)) {
SOURCE(1815, 42)
            typeIndex←v4392 = (*  (ptr) XR←Narrow(val←v5808, (* (( (ptr) gf←c13368)+9) )) );
            found←v4364 = 1;
            goto lab←L100007;
            };
SOURCE(1859, 44)
         if ((0 != timidly←v4308)) {
SOURCE(1875, 28)
            found←v4364 = 0;
            typeIndex←v4392 = 0;
            goto lab←L100007;
            };
SOURCE(1905, 21)
         typeIndex←v4392 = (* (( (ptr) gf←c13368)+4)/* typeCount←v3224 */  );
SOURCE(1928, 23)
         (* (( (ptr) gf←c13368)+4)/* typeCount←v3224 */  ) = ((* (( (ptr) gf←c13368)+4)/* typeCount←v3224 */  ) + 1);
SOURCE(1953, 86)
         {
            word var←c12504;
            {
               word var←c12440;
               {
                  word var←c12472;
                  var←c12472 = XR←NewObject(8, (* (( (ptr) gf←c13368)+9) ));
                  (*  (ptr) var←c12472 ) = typeIndex←v4392;
                  (* (( (ptr) var←c12472)+1) ) = rcMapIndex←v4280;
                  var←c12440 = var←c12472;
                  };
               {
                  word pd17;
                  pd17 = (* (( (ptr) (* (( (ptr) gf←c13368)+41)/* var←c11960 */  ))+9) );
                  var←c12504 = (word) ( *( (fPt) ((*  (ptr) pd17 ))))((* (( (ptr) gf←c13368)+6)/* typeTab←v3420 */  ), typeString←v4224, var←c12440, pd17)
                  ;
                  };
               };
            };
SOURCE(2041, 57)
         {
            word var←c12536;
            word pd18;
            pd18 = (* (( (ptr) (* (( (ptr) gf←c13368)+42)/* var←c11992 */  ))+9) );
            var←c12536 = (word) ( *( (fPt) ((*  (ptr) pd18 ))))((* (( (ptr) gf←c13368)+7)/* invTypeTab←v3448 */  ), typeIndex←v4392, typeString←v4224, pd18)
            ;
            };
         };
      }
   else {
SOURCE(2107, 260)
      {
         word val←v5852 = 0;
SOURCE(2120, 40)
         {
            W2 var←c12568;
            (void) FetchFromList←P600((word) &var←c12568, typeString←v4224);
            val←v5852 = var←c12568.f1;
            found←v4364 = var←c12568.f0;
            };
SOURCE(2162, 41)
         if ((0 != found←v4364)) {
SOURCE(2176, 27)
            typeIndex←v4392 = (*  (ptr) val←v5852 );
            found←v4364 = 1;
            goto lab←L100007;
            };
SOURCE(2205, 44)
         if ((0 != timidly←v4308)) {
SOURCE(2221, 28)
            found←v4364 = 0;
            typeIndex←v4392 = 0;
            goto lab←L100007;
            };
SOURCE(2251, 21)
         typeIndex←v4392 = (* (( (ptr) gf←c13368)+4)/* typeCount←v3224 */  );
SOURCE(2274, 23)
         (* (( (ptr) gf←c13368)+4)/* typeCount←v3224 */  ) = ((* (( (ptr) gf←c13368)+4)/* typeCount←v3224 */  ) + 1);
SOURCE(2299, 66)
         {
            word var←c12632;
            {
               word var←c12664;
               var←c12664 = XR←NewObject(8, (* (( (ptr) gf←c13368)+9) ));
               (*  (ptr) var←c12664 ) = typeIndex←v4392;
               (* (( (ptr) var←c12664)+1) ) = rcMapIndex←v4280;
               var←c12632 = var←c12664;
               };
            (void) StoreInList←P660(typeString←v4224, var←c12632);
            };
         };
      };
   /* removed tail goto */ 
   lab←L100007: ;
   (*  (ptr) formal←c073 ) = found←v4364;
   (* (( (ptr) formal←c073)+1) ) = typeIndex←v4392;
   return;
   }

static word TypeStringFromType←P300(type←v4452)
   word type←v4452;
   {
   word typeString←v4496;
   /* TypeStringFromType: */ 
SOURCE(2381, 138)
SOURCE(2468, 51)
   return((word) MaybeMonitoredTypeStringFromType←P420(type←v4452, 1));
   }

static word UnmonitoredTypeStringFromType←P360(type←v4556)
   word type←v4556;
   {
   word typeString←v4600;
   /* UnmonitoredTypeStringFromType: */ 
SOURCE(2523, 150)
SOURCE(2621, 52)
   return((word) MaybeMonitoredTypeStringFromType←P420(type←v4556, 0));
   }

static word MaybeMonitoredTypeStringFromType←P420(type←v4660, monitor←v4688)
   word type←v4660;
   word monitor←v4688;
   {
   register ptr gf←c13400 =  (ptr) &globalframe;
   word typeString←v4732;
   /* MaybeMonitoredTypeStringFromType: */ 
SOURCE(2677, 483)
SOURCE(2795, 365)
   if (((* (( (ptr) gf←c13400)+7)/* invTypeTab←v3448 */  ) != 0)) {
SOURCE(2820, 211)
      {
         word found←v5896;
         word val←v5924 = 0;
SOURCE(2853, 112)
         {
            W2 var←c12728;
            {
               word pd19;
               pd19 = (word)  ( (0 != monitor←v4688) ? (* (( (ptr) (* (( (ptr) gf←c13400)+42)/* var←c11992 */  ))+7) ) : (* (( (ptr) (* (
                     ( (ptr) gf←c13400)+44)/* var←c12696 */  ))+4) ) ) ;
               (void) ( *( (fPt) ((*  (ptr) pd19 ))))((word) &var←c12728, (* (( (ptr) gf←c13400)+7)/* invTypeTab←v3448 */  ), type←v4660, pd19)
               ;
               };
            val←v5924 = var←c12728.f1;
            found←v5896 = var←c12728.f0;
            };
SOURCE(2967, 62)
         if ((0 != found←v5896)) {
SOURCE(2981, 37)
            return(val←v5924);
            }
         else {
SOURCE(3018, 11)
            return(0);
            };
         };
      }
   else {
SOURCE(3038, 124)
      {
         word found←v5968;
         word val←v5996;
SOURCE(3066, 48)
         {
            W2 var←c12760;
            (void) FetchTypeFromList←P780((word) &var←c12760, type←v4660);
            val←v5996 = var←c12760.f1;
            found←v5968 = var←c12760.f0;
            };
SOURCE(3116, 44)
         if ((0 != found←v5968)) {
SOURCE(3130, 19)
            return(val←v5996);
            }
         else {
SOURCE(3149, 11)
            return(0);
            };
         };
      };
   }

static void FetchFromList←P600(formal←c094, typeString←v5184)
   word formal←c094;
   word typeString←v5184;
   {
   register ptr gf←c13432 =  (ptr) &globalframe;
   word found←v5228;
   word val←v5256;
   /* FetchFromList: */ 
SOURCE(3448, 239)
SOURCE(3448, 239)
   val←v5256 = 0;
SOURCE(3526, 132)
   {
      register word l←v6040;
      l←v6040 = (* (( (ptr) gf←c13432)+5)/* typeList←v3252 */  );
      lab←L100012: ;
      if ((l←v6040 != 0)) {
         }
      else {
         goto lab←L100009;
         };
SOURCE(3580, 78)
      if ((0 != (word) StringEqual←P720(typeString←v5184, (*  (ptr) l←v6040 )))) {
SOURCE(3632, 26)
         val←v5256 = (* (( (ptr) l←v6040)+1) );
         found←v5228 = 1;
         goto lab←L100008;
         };
      l←v6040 = (* (( (ptr) l←v6040)+2) );
      goto lab←L100012;
      lab←L100009: ;
      };
SOURCE(3669, 18)
   found←v5228 = 0;
   val←v5256 = 0;
   /* removed tail goto */ 
   lab←L100008: ;
   (*  (ptr) formal←c094 ) = found←v5228;
   (* (( (ptr) formal←c094)+1) ) = val←v5256;
   return;
   }

static void StoreInList←P660(typeString←v5316, type←v5344)
   word typeString←v5316;
   word type←v5344;
   {
   register ptr gf←c13464 =  (ptr) &globalframe;
   /* StoreInList: */ 
SOURCE(3693, 100)
SOURCE(3748, 45)
   {
      word var←c12824;
      var←c12824 = XR←NewObject(12, (* (( (ptr) gf←c13464)+10) ));
      (*  (ptr) var←c12824 ) = typeString←v5316;
      (* (( (ptr) var←c12824)+1) ) = type←v5344;
      (* (( (ptr) var←c12824)+2) ) = (* (( (ptr) gf←c13464)+5)/* typeList←v3252 */  );
      (* (( (ptr) gf←c13464)+5)/* typeList←v3252 */  ) = var←c12824;
      };
   }

static word StringEqual←P720(s1←v5404, s2←v5432)
   word s1←v5404;
   word s2←v5432;
   {
   word var←c5476;
   /* StringEqual: */ 
SOURCE(3799, 200)
SOURCE(3861, 43)
   if (( (unsigned) (*  (hPt) s1←v5404 ) !=  (unsigned) (*  (hPt) s2←v5432 ))) {
SOURCE(3889, 15)
      return(0);
      };
SOURCE(3906, 67)
   {
      register word i←v6168 = 0;
      register word noName←c12856;
      noName←c12856 =  (unsigned) (*  (hPt) s1←v5404 );
      if ((i←v6168 >= noName←c12856)) {
         goto lab←L100013;
         };
      lab←L100016: ;
SOURCE(3938, 35)
      {
         word limit20;
         word limit21;
         if (( (unsigned) (word) (* ((( (bPt) s1←v5404)+4)+(
               limit20 = (word)  (unsigned) (* (( (hPt) s1←v5404)+1) ),
               BCK(i←v6168, limit20)
               )) ) !=  (unsigned) (word) (* ((( (bPt) s2←v5432)+4)+(
               limit21 = (word)  (unsigned) (* (( (hPt) s2←v5432)+1) ),
               BCK(i←v6168, limit21)
               )) ))) {
SOURCE(3958, 15)
            return(0);
            };
         };
      i←v6168 = (i←v6168 + 1);
      if ((i←v6168 < noName←c12856)) {
         goto lab←L100016;
         };
      lab←L100013: ;
      };
SOURCE(3985, 14)
   return(1);
   }

static void FetchTypeFromList←P780(formal←c0108, type←v5536)
   word formal←c0108;
   word type←v5536;
   {
   register ptr gf←c13496 =  (ptr) &globalframe;
   word found←v5580;
   word typeString←v5608;
   /* FetchTypeFromList: */ 
SOURCE(4005, 241)
SOURCE(4093, 124)
   {
      register word l←v6212;
      l←v6212 = (* (( (ptr) gf←c13496)+5)/* typeList←v3252 */  );
      lab←L100021: ;
      if ((l←v6212 != 0)) {
         }
      else {
         goto lab←L100018;
         };
SOURCE(4147, 70)
      if ((type←v5536 == (*  (ptr) (* (( (ptr) l←v6212)+1) ) ))) {
SOURCE(4185, 32)
         typeString←v5608 = (*  (ptr) l←v6212 );
         found←v5580 = 1;
         goto lab←L100017;
         };
      l←v6212 = (* (( (ptr) l←v6212)+2) );
      goto lab←L100021;
      lab←L100018: ;
      };
SOURCE(4228, 18)
   found←v5580 = 0;
   typeString←v5608 = 0;
   /* removed tail goto */ 
   lab←L100017: ;
   (*  (ptr) formal←c0108 ) = found←v5580;
   (* (( (ptr) formal←c0108)+1) ) = typeString←v5608;
   return;
   }

static word Equal←P840(key1←v7176, key2←v7204)
   word key1←v7176;
   word key2←v7204;
   {
   word var←c7248;
   /* Equal: */ 
SOURCE(4300, 95)
SOURCE(4336, 59)
   {
      word var←c12952;
      word var←c13016;
      {
         word r←v11212;
         r←v11212 = key1←v7176;
SOURCE(3232, 19)
         var←c12952 = r←v11212;
         };
      {
         word r←v11164;
         r←v11164 = key2←v7204;
SOURCE(3232, 19)
         var←c13016 = r←v11164;
         };
      return((word) StringEqual←P720(var←c12952, var←c13016));
      };
   }

static word Hash←P900(key←v7308)
   word key←v7308;
   {
   word var←c7352;
   word s←v6340;
   /* Hash: */ 
SOURCE(4401, 135)
SOURCE(4435, 28)
   {
      word r←v11116;
      r←v11116 = key←v7308;
SOURCE(3232, 19)
      s←v6340 = r←v11116;
      };
SOURCE(4465, 71)
   {
      word var←c13144;
      word nHalfWords←v11356;
      word p←v11384;
      word var←c13208;
      word cs←v10644 = 0;
      word nHalfWords←v10676;
      word p←v10708;
      word offset←v10740 = 0;
      nHalfWords←v11356 = ((word) ( (unsigned) (*  (hPt) s←v6340 ) + 1) >> 1);
      p←v11384 = (word) (( (bPt) s←v6340)+4);
      nHalfWords←v10676 = nHalfWords←v11356;
      p←v10708 = p←v11384;
      {
         word phw←v10788;
         phw←v10788 = p←v10708;
         {
            register word i←v10836;
            register word noName←c13240;
            i←v10836 = offset←v10740;
            noName←c13240 = (nHalfWords←v10676 + offset←v10740);
            if ((i←v10836 >= noName←c13240)) {
               goto lab←L100025;
               };
            lab←L100028: ;
            {
               word t←v10884;
               word w←v10916;
               w←v10916 =  (unsigned) (word) (* (( (hPt) phw←v10788)+i←v10836) );
               t←v10884 = (cs←v10644 + w←v10916);
               t←v10884 = (( (((unsigned)t←v10884 << 16) >> 16) ) + ((word) t←v10884 >> 16));
               t←v10884 = ((word) t←v10884 << 1);
               {
                  word idx22;
                  cs←v10644 = (
                     idx22 = (word) (( (((unsigned)t←v10884 << 16) >> 16) ) + ((word) t←v10884 >> 16)),
                     BCK(idx22, 65536)
                     );
                  };
               };
            i←v10836 = (i←v10836 + 1);
            if ((i←v10836 < noName←c13240)) {
               goto lab←L100028;
               };
            lab←L100025: ;
            };
         if ((cs←v10644 == 65535)) {
            cs←v10644 = 0;
            };
         var←c13208 = cs←v10644;
         };
      var←c13144 = var←c13208;
      return(var←c13144);
      };
   }

/* file: InstallationTypesImpl, module: InstallationTypesImpl, compiled at: September 3, 1993 12:58:17 pm PDT */ 
extern void XR←install←InstallationTypesImpl() {
   NoName←Q2112();
   }
extern void XR←run←InstallationTypesImpl() { XR←Start(&globalframe); }