aggr Notemsg { 'a' 0 note; }; defn Notemsg(addr) { complex Notemsg addr; print(" note ", addr.note, "\n"); }; union Length { 'a' 0 clength; { 'D' 0 hlength; 'D' 4 length; }; }; defn Length(addr) { complex Length addr; print(" clength ", addr.clength, "\n"); }; aggr Qid { 'U' 0 path; 'U' 4 vers; }; defn Qid(addr) { complex Qid addr; print(" path ", addr.path, "\n"); print(" vers ", addr.vers, "\n"); }; aggr Dir { 'a' 0 name; 'a' 28 uid; 'a' 56 gid; Qid 84 qid; 'U' 92 mode; 'D' 96 atime; 'D' 100 mtime; { 'a' 104 clength; { 'D' 104 hlength; 'D' 108 length; }; }; 'u' 112 type; 'u' 114 dev; }; defn Dir(addr) { complex Dir addr; print(" name ", addr.name, "\n"); print(" uid ", addr.uid, "\n"); print(" gid ", addr.gid, "\n"); print("Qid qid {\n"); Qid(addr.qid); print("}\n"); print(" mode ", addr.mode, "\n"); print(" atime ", addr.atime, "\n"); print(" mtime ", addr.mtime, "\n"); print(" type ", addr.type, "\n"); print(" dev ", addr.dev, "\n"); }; aggr Waitmsg { 'a' 0 pid; 'a' 12 time; 'a' 48 msg; }; defn Waitmsg(addr) { complex Waitmsg addr; print(" pid ", addr.pid, "\n"); print(" time ", addr.time, "\n"); print(" msg ", addr.msg, "\n"); }; aggr Tm { 'D' 0 sec; 'D' 4 min; 'D' 8 hour; 'D' 12 mday; 'D' 16 mon; 'D' 20 year; 'D' 24 wday; 'D' 28 yday; 'a' 32 zone; }; defn Tm(addr) { complex Tm addr; print(" sec ", addr.sec, "\n"); print(" min ", addr.min, "\n"); print(" hour ", addr.hour, "\n"); print(" mday ", addr.mday, "\n"); print(" mon ", addr.mon, "\n"); print(" year ", addr.year, "\n"); print(" wday ", addr.wday, "\n"); print(" yday ", addr.yday, "\n"); print(" zone ", addr.zone, "\n"); }; aggr Arg { 'X' 0 arg0; 'D' 4 ac; 'X' 8 av; 'X' 12 p; }; defn Arg(addr) { complex Arg addr; print(" arg0 ", addr.arg0, "\n"); print(" ac ", addr.ac, "\n"); print(" av ", addr.av, "\n"); print(" p ", addr.p, "\n"); }; aggr Printspec { 'X' 0 o; 'D' 4 f1; 'D' 8 f2; 'D' 12 f3; 'D' 16 chr; 'X' 20 out; 'X' 24 eout; }; defn Printspec(addr) { complex Printspec addr; print(" o ", addr.o, "\n"); print(" f1 ", addr.f1, "\n"); print(" f2 ", addr.f2, "\n"); print(" f3 ", addr.f3, "\n"); print(" chr ", addr.chr, "\n"); print(" out ", addr.out, "\n"); print(" eout ", addr.eout, "\n"); }; adt Lock { 'D' 0 val; }; defn Lock(addr) { complex Lock addr; print(" val ", addr.val, "\n"); }; adt QLock { Lock 0 use; 'D' 4 used; 'X' 8 queue; }; defn QLock(addr) { complex QLock addr; print("Lock use {\n"); Lock(addr.use); print("}\n"); print(" used ", addr.used, "\n"); print(" queue ", addr.queue, "\n"); }; adt RWlock { { 'D' 0 val; }; QLock 4 x; QLock 16 k; 'D' 28 readers; }; defn RWlock(addr) { complex RWlock addr; print("QLock x {\n"); QLock(addr.x); print("}\n"); print("QLock k {\n"); QLock(addr.k); print("}\n"); print(" readers ", addr.readers, "\n"); }; adt Ref { Lock 0 l; 'D' 4 cnt; }; defn Ref(addr) { complex Ref addr; print("Lock l {\n"); Lock(addr.l); print("}\n"); print(" cnt ", addr.cnt, "\n"); }; aggr Point { 'D' 0 x; 'D' 4 y; }; defn Point(addr) { complex Point addr; print(" x ", addr.x, "\n"); print(" y ", addr.y, "\n"); }; aggr Rectangle { Point 0 min; Point 8 max; }; defn Rectangle(addr) { complex Rectangle addr; print("Point min {\n"); Point(addr.min); print("}\n"); print("Point max {\n"); Point(addr.max); print("}\n"); }; aggr Bitmap { Rectangle 0 r; Rectangle 16 clipr; 'D' 32 ldepth; 'D' 36 id; 'X' Bitmap 40 cache; }; defn Bitmap(addr) { complex Bitmap addr; print("Rectangle r {\n"); Rectangle(addr.r); print("}\n"); print("Rectangle clipr {\n"); Rectangle(addr.clipr); print("}\n"); print(" ldepth ", addr.ldepth, "\n"); print(" id ", addr.id, "\n"); print(" cache ", addr.cache, "\n"); }; aggr Mouse { 'D' 0 buttons; Point 4 xy; 'U' 12 msec; }; defn Mouse(addr) { complex Mouse addr; print(" buttons ", addr.buttons, "\n"); print("Point xy {\n"); Point(addr.xy); print("}\n"); print(" msec ", addr.msec, "\n"); }; aggr Cursor { Point 0 offset; 'a' 8 clr; 'a' 40 set; }; defn Cursor(addr) { complex Cursor addr; print("Point offset {\n"); Point(addr.offset); print("}\n"); print(" clr ", addr.clr, "\n"); print(" set ", addr.set, "\n"); }; aggr Linedesc { 'D' 0 x0; 'D' 4 y0; 'C' 8 xmajor; 'C' 9 slopeneg; 'D' 12 dminor; 'D' 16 dmajor; }; defn Linedesc(addr) { complex Linedesc addr; print(" x0 ", addr.x0, "\n"); print(" y0 ", addr.y0, "\n"); print(" xmajor ", addr.xmajor, "\n"); print(" slopeneg ", addr.slopeneg, "\n"); print(" dminor ", addr.dminor, "\n"); print(" dmajor ", addr.dmajor, "\n"); }; aggr Fontchar { 'u' 0 x; 'C' 2 top; 'C' 3 bottom; 'C' 4 left; 'C' 5 width; }; defn Fontchar(addr) { complex Fontchar addr; print(" x ", addr.x, "\n"); print(" top ", addr.top, "\n"); print(" bottom ", addr.bottom, "\n"); print(" left ", addr.left, "\n"); print(" width ", addr.width, "\n"); }; aggr Subfont { 'd' 0 n; 'C' 2 height; 'C' 3 ascent; 'X' Fontchar 4 info; 'D' 8 id; }; defn Subfont(addr) { complex Subfont addr; print(" n ", addr.n, "\n"); print(" height ", addr.height, "\n"); print(" ascent ", addr.ascent, "\n"); print(" info ", addr.info, "\n"); print(" id ", addr.id, "\n"); }; aggr Cachefont { 'u' 0 min; 'u' 2 max; 'D' 4 abs; 'X' 8 name; }; defn Cachefont(addr) { complex Cachefont addr; print(" min ", addr.min, "\n"); print(" max ", addr.max, "\n"); print(" abs ", addr.abs, "\n"); print(" name ", addr.name, "\n"); }; aggr Cacheinfo { 'u' 0 value; 'u' 2 age; 'U' 4 xright; { 'u' 8 x; 'C' 10 top; 'C' 11 bottom; 'C' 12 left; 'C' 13 width; }; }; defn Cacheinfo(addr) { complex Cacheinfo addr; print(" value ", addr.value, "\n"); print(" age ", addr.age, "\n"); print(" xright ", addr.xright, "\n"); }; aggr Cachesubf { 'U' 0 age; 'X' Cachefont 4 cf; 'X' Subfont 8 f; }; defn Cachesubf(addr) { complex Cachesubf addr; print(" age ", addr.age, "\n"); print(" cf ", addr.cf, "\n"); print(" f ", addr.f, "\n"); }; aggr Font { 'X' 0 name; 'C' 4 height; 'C' 5 ascent; 'C' 6 width; 'C' 7 ldepth; 'd' 8 id; 'd' 10 nsub; 'U' 12 age; 'D' 16 ncache; 'D' 20 nsubf; 'X' Cacheinfo 24 cache; 'X' Cachesubf 28 subf; 'X' Cachefont 32 sub; }; defn Font(addr) { complex Font addr; print(" name ", addr.name, "\n"); print(" height ", addr.height, "\n"); print(" ascent ", addr.ascent, "\n"); print(" width ", addr.width, "\n"); print(" ldepth ", addr.ldepth, "\n"); print(" id ", addr.id, "\n"); print(" nsub ", addr.nsub, "\n"); print(" age ", addr.age, "\n"); print(" ncache ", addr.ncache, "\n"); print(" nsubf ", addr.nsubf, "\n"); print(" cache ", addr.cache, "\n"); print(" subf ", addr.subf, "\n"); print(" sub ", addr.sub, "\n"); }; aggr RGB { 'U' 0 red; 'U' 4 green; 'U' 8 blue; }; defn RGB(addr) { complex RGB addr; print(" red ", addr.red, "\n"); print(" green ", addr.green, "\n"); print(" blue ", addr.blue, "\n"); }; complex Bitmap screen; complex Font font; aggr Frbox { 'D' 0 wid; 'D' 4 nrune; { 'X' 8 ptr; { 'd' 8 bc; 'd' 10 minwid; }; }; }; defn Frbox(addr) { complex Frbox addr; print(" wid ", addr.wid, "\n"); print(" nrune ", addr.nrune, "\n"); }; aggr Frame { 'X' Font 0 font; 'X' Bitmap 4 b; Rectangle 8 r; Rectangle 24 entire; 'X' Frbox 40 box; 'X' 44 scroll; 'U' 48 p0; 'U' 52 p1; 'd' 56 left; 'u' 58 nbox; 'u' 60 nalloc; 'u' 62 maxtab; 'u' 64 nchars; 'u' 66 nlines; 'u' 68 maxlines; 'u' 70 lastlinefull; 'u' 72 modified; }; defn Frame(addr) { complex Frame addr; print(" font ", addr.font, "\n"); print(" b ", addr.b, "\n"); print("Rectangle r {\n"); Rectangle(addr.r); print("}\n"); print("Rectangle entire {\n"); Rectangle(addr.entire); print("}\n"); print(" box ", addr.box, "\n"); print(" scroll ", addr.scroll, "\n"); print(" p0 ", addr.p0, "\n"); print(" p1 ", addr.p1, "\n"); print(" left ", addr.left, "\n"); print(" nbox ", addr.nbox, "\n"); print(" nalloc ", addr.nalloc, "\n"); print(" maxtab ", addr.maxtab, "\n"); print(" nchars ", addr.nchars, "\n"); print(" nlines ", addr.nlines, "\n"); print(" maxlines ", addr.maxlines, "\n"); print(" lastlinefull ", addr.lastlinefull, "\n"); print(" modified ", addr.modified, "\n"); }; complex Bitmap frones; aggr Fcall { 'C' 0 type; 'd' 2 fid; 'u' 4 tag; { { 'u' 8 oldtag; Qid 12 qid; 'a' 20 rauth; }; { 'a' 8 uname; 'a' 36 aname; 'a' 64 ticket; 'a' 136 auth; }; { 'a' 8 ename; 'a' 72 authid; 'a' 100 authdom; 'a' 148 chal; }; { 'U' 8 perm; 'd' 12 newfid; 'a' 14 name; 'C' 42 mode; }; { 'D' 8 offset; 'D' 12 count; 'X' 16 data; }; { 'a' 8 stat; }; }; }; defn Fcall(addr) { complex Fcall addr; print(" type ", addr.type, "\n"); print(" fid ", addr.fid, "\n"); print(" tag ", addr.tag, "\n"); }; aggr Range { 'D' 0 q0; 'D' 4 q1; }; defn Range(addr) { complex Range addr; print(" q0 ", addr.q0, "\n"); print(" q1 ", addr.q1, "\n"); }; aggr Block { 'U' 0 addr; { 'U' 4 n; 'X' Block 4 next; }; }; defn Block(addr) { complex Block addr; print(" addr ", addr.addr, "\n"); }; adt Disk { 'D' 0 fd; 'U' 4 addr; 'a' 8 free; }; defn Disk(addr) { complex Disk addr; print(" fd ", addr.fd, "\n"); print(" addr ", addr.addr, "\n"); print(" free ", addr.free, "\n"); }; adt Buffer { 'U' 0 nc; 'X' 4 c; 'U' 8 cnc; 'U' 12 cmax; 'U' 16 cq; 'D' 20 cdirty; 'U' 24 cbi; 'X' Block 28 bl; 'U' 32 nbl; }; defn Buffer(addr) { complex Buffer addr; print(" nc ", addr.nc, "\n"); print(" c ", addr.c, "\n"); print(" cnc ", addr.cnc, "\n"); print(" cmax ", addr.cmax, "\n"); print(" cq ", addr.cq, "\n"); print(" cdirty ", addr.cdirty, "\n"); print(" cbi ", addr.cbi, "\n"); print(" bl ", addr.bl, "\n"); print(" nbl ", addr.nbl, "\n"); }; adt File { { 'U' 0 nc; 'X' 4 c; 'U' 8 cnc; 'U' 12 cmax; 'U' 16 cq; 'D' 20 cdirty; 'U' 24 cbi; 'X' Block 28 bl; 'U' 32 nbl; }; Buffer 36 delta; Buffer 72 epsilon; 'X' 108 name; 'D' 112 nname; 'D' 116 seq; 'D' 120 mod; 'X' Text 124 text; }; defn File(addr) { complex File addr; print("Buffer delta {\n"); Buffer(addr.delta); print("}\n"); print("Buffer epsilon {\n"); Buffer(addr.epsilon); print("}\n"); print(" name ", addr.name, "\n"); print(" nname ", addr.nname, "\n"); print(" seq ", addr.seq, "\n"); print(" mod ", addr.mod, "\n"); print(" text ", addr.text, "\n"); }; adt Text { { { 'U' 0 nc; 'X' 4 c; 'U' 8 cnc; 'U' 12 cmax; 'U' 16 cq; 'D' 20 cdirty; 'U' 24 cbi; 'X' Block 28 bl; 'U' 32 nbl; }; Buffer 36 delta; Buffer 72 epsilon; 'X' 108 name; 'D' 112 nname; 'D' 116 seq; 'D' 120 mod; 'X' Text 124 text; }; { 'X' Font 128 font; 'X' Bitmap 132 b; Rectangle 136 r; Rectangle 152 entire; 'X' Frbox 168 box; 'X' 172 scroll; 'U' 176 p0; 'U' 180 p1; 'd' 184 left; 'u' 186 nbox; 'u' 188 nalloc; 'u' 190 maxtab; 'u' 192 nchars; 'u' 194 nlines; 'u' 196 maxlines; 'u' 198 lastlinefull; 'u' 200 modified; }; 'U' 204 org; 'U' 208 q0; 'U' 212 q1; 'X' Window 216 w; Rectangle 220 scrollr; Rectangle 236 lastsr; Rectangle 252 all; 'X' Row 268 row; 'X' Column 272 col; 'U' 276 eq0; 'U' 280 cq0; 'D' 284 ncache; 'D' 288 ncachealloc; 'X' 292 cache; }; defn Text(addr) { complex Text addr; print(" org ", addr.org, "\n"); print(" q0 ", addr.q0, "\n"); print(" q1 ", addr.q1, "\n"); print(" w ", addr.w, "\n"); print("Rectangle scrollr {\n"); Rectangle(addr.scrollr); print("}\n"); print("Rectangle lastsr {\n"); Rectangle(addr.lastsr); print("}\n"); print("Rectangle all {\n"); Rectangle(addr.all); print("}\n"); print(" row ", addr.row, "\n"); print(" col ", addr.col, "\n"); print(" eq0 ", addr.eq0, "\n"); print(" cq0 ", addr.cq0, "\n"); print(" ncache ", addr.ncache, "\n"); print(" ncachealloc ", addr.ncachealloc, "\n"); print(" cache ", addr.cache, "\n"); }; adt Window { { Lock 0 use; 'D' 4 used; 'X' 8 queue; }; { Lock 12 l; 'D' 16 cnt; }; Text 20 tag; Text 316 body; Rectangle 612 r; 'C' 628 isdir; 'C' 629 filemenu; 'C' 630 dirty; 'D' 632 id; Range 636 addr; Range 644 limit; 'a' 652 isopen; 'C' 665 nomark; 'C' 666 noscroll; 'X' Column 668 col; 'X' Xfid 672 eventx; 'X' 676 events; 'D' 680 nevents; 'D' 684 owner; 'D' 688 maxlines; 'X' Dirlist 692 dlp; 'D' 696 ndl; 'D' 700 putseq; }; defn Window(addr) { complex Window addr; print("Text tag {\n"); Text(addr.tag); print("}\n"); print("Text body {\n"); Text(addr.body); print("}\n"); print("Rectangle r {\n"); Rectangle(addr.r); print("}\n"); print(" isdir ", addr.isdir, "\n"); print(" filemenu ", addr.filemenu, "\n"); print(" dirty ", addr.dirty, "\n"); print(" id ", addr.id, "\n"); print("Range addr {\n"); Range(addr.addr); print("}\n"); print("Range limit {\n"); Range(addr.limit); print("}\n"); print(" isopen ", addr.isopen, "\n"); print(" nomark ", addr.nomark, "\n"); print(" noscroll ", addr.noscroll, "\n"); print(" col ", addr.col, "\n"); print(" eventx ", addr.eventx, "\n"); print(" events ", addr.events, "\n"); print(" nevents ", addr.nevents, "\n"); print(" owner ", addr.owner, "\n"); print(" maxlines ", addr.maxlines, "\n"); print(" dlp ", addr.dlp, "\n"); print(" ndl ", addr.ndl, "\n"); print(" putseq ", addr.putseq, "\n"); }; adt Column { Rectangle 0 r; Text 16 tag; 'X' Row 312 row; 'X' Window 316 w; 'D' 320 nw; 'D' 324 safe; }; defn Column(addr) { complex Column addr; print("Rectangle r {\n"); Rectangle(addr.r); print("}\n"); print("Text tag {\n"); Text(addr.tag); print("}\n"); print(" row ", addr.row, "\n"); print(" w ", addr.w, "\n"); print(" nw ", addr.nw, "\n"); print(" safe ", addr.safe, "\n"); }; adt Row { { Lock 0 use; 'D' 4 used; 'X' 8 queue; }; Rectangle 12 r; Text 28 tag; 'X' Column 324 col; 'D' 328 ncol; }; defn Row(addr) { complex Row addr; print("Rectangle r {\n"); Rectangle(addr.r); print("}\n"); print("Text tag {\n"); Text(addr.tag); print("}\n"); print(" col ", addr.col, "\n"); print(" ncol ", addr.ncol, "\n"); }; aggr Timer { 'D' 0 dt; 'X' 4 c; 'X' Timer 8 next; }; defn Timer(addr) { complex Timer addr; print(" dt ", addr.dt, "\n"); print(" c ", addr.c, "\n"); print(" next ", addr.next, "\n"); }; aggr Command { 'D' 0 pid; 'X' 4 name; 'D' 8 nname; 'X' 12 text; 'X' 16 av; 'X' Mntdir 20 md; 'X' Command 24 next; }; defn Command(addr) { complex Command addr; print(" pid ", addr.pid, "\n"); print(" name ", addr.name, "\n"); print(" nname ", addr.nname, "\n"); print(" text ", addr.text, "\n"); print(" av ", addr.av, "\n"); print(" md ", addr.md, "\n"); print(" next ", addr.next, "\n"); }; aggr Dirtab { 'X' 0 name; 'U' 4 qid; 'U' 8 perm; }; defn Dirtab(addr) { complex Dirtab addr; print(" name ", addr.name, "\n"); print(" qid ", addr.qid, "\n"); print(" perm ", addr.perm, "\n"); }; aggr Mntdir { 'D' 0 id; 'D' 4 ref; 'X' 8 dir; 'D' 12 ndir; 'X' Mntdir 16 next; }; defn Mntdir(addr) { complex Mntdir addr; print(" id ", addr.id, "\n"); print(" ref ", addr.ref, "\n"); print(" dir ", addr.dir, "\n"); print(" ndir ", addr.ndir, "\n"); print(" next ", addr.next, "\n"); }; aggr Fid { 'D' 0 fid; 'D' 4 busy; 'D' 8 open; Qid 12 qid; 'X' Window 20 w; 'X' Dirtab 24 dir; 'X' Fid 28 next; 'X' Mntdir 32 mntdir; 'D' 36 nrpart; 'a' 40 rpart; }; defn Fid(addr) { complex Fid addr; print(" fid ", addr.fid, "\n"); print(" busy ", addr.busy, "\n"); print(" open ", addr.open, "\n"); print("Qid qid {\n"); Qid(addr.qid); print("}\n"); print(" w ", addr.w, "\n"); print(" dir ", addr.dir, "\n"); print(" next ", addr.next, "\n"); print(" mntdir ", addr.mntdir, "\n"); print(" nrpart ", addr.nrpart, "\n"); print(" rpart ", addr.rpart, "\n"); }; adt Xfid { 'U' 0 tid; { 'C' 4 type; 'd' 6 fid; 'u' 8 tag; { { 'u' 12 oldtag; Qid 16 qid; 'a' 24 rauth; }; { 'a' 12 uname; 'a' 40 aname; 'a' 68 ticket; 'a' 140 auth; }; { 'a' 12 ename; 'a' 76 authid; 'a' 104 authdom; 'a' 152 chal; }; { 'U' 12 perm; 'd' 16 newfid; 'a' 18 name; 'C' 46 mode; }; { 'D' 12 offset; 'D' 16 count; 'X' 20 data; }; { 'a' 12 stat; }; }; }; 'X' Xfid 160 next; 'X' 164 c; 'X' Fid 168 f; 'X' 172 buf; 'D' 176 flushed; }; defn Xfid(addr) { complex Xfid addr; print(" tid ", addr.tid, "\n"); print(" next ", addr.next, "\n"); print(" c ", addr.c, "\n"); print(" f ", addr.f, "\n"); print(" buf ", addr.buf, "\n"); print(" flushed ", addr.flushed, "\n"); }; aggr Rangeset { 'a' 0 r; }; defn Rangeset(addr) { complex Rangeset addr; print(" r ", addr.r, "\n"); }; aggr Dirlist { 'X' 0 r; 'D' 4 nr; 'D' 8 wid; }; defn Dirlist(addr) { complex Dirlist addr; print(" r ", addr.r, "\n"); print(" nr ", addr.nr, "\n"); print(" wid ", addr.wid, "\n"); }; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Column readfile:c; complex Window readfile:w; complex Timer keyboardtask:timer; complex Timer keyboardtask:null; complex Text keyboardtask:t; complex Text mousetask:t; complex Window mousetask:w; complex Waitmsg waittask:w; complex Command waittask:command; complex Command waittask:c; complex Command waittask:lc; complex Text waittask:t; complex Xfid xfidalloctask:xfree; complex Xfid xfidalloctask:x; complex Mouse mouseproc:m; complex Waitmsg waitproc:w; complex Cursor boxcursor; complex Rectangle iconinit:r; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Column readfile:c; complex Window readfile:w; complex Timer keyboardtask:timer; complex Timer keyboardtask:null; complex Text keyboardtask:t; complex Text mousetask:t; complex Window mousetask:w; complex Waitmsg waittask:w; complex Command waittask:command; complex Command waittask:c; complex Command waittask:lc; complex Text waittask:t; complex Xfid xfidalloctask:xfree; complex Xfid xfidalloctask:x; complex Mouse mouseproc:m; complex Waitmsg waitproc:w; complex Cursor boxcursor; complex Rectangle iconinit:r; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Text number:t; complex Range number:r; complex Text regexp:t; complex Range regexp:lim; complex Range regexp:r; complex Rangeset regexp:sel; complex Text address:t; complex Range address:lim; complex Range address:ar; complex Range address:r; complex Range address:nr; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Buffer Buffer_sizecache:b; complex Buffer Buffer_flush:b; complex Buffer Buffer_setcache:b; complex Block Buffer_setcache:blp; complex Block Buffer_setcache:bl; complex Buffer Buffer_addblock:b; complex Buffer Buffer_delblock:b; complex Buffer Buffer_insert:b; complex Buffer Buffer_delete:b; complex Buffer Buffer_load:b; complex Buffer Buffer_read:b; complex Buffer Buffer_reset:b; complex Buffer Buffer_close:b; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Column Column_init:c; complex Rectangle Column_init:r; complex Rectangle Column_init:r1; complex Text Column_init:t; complex Column Column_add:c; complex Window Column_add:w; complex Rectangle Column_add:r; complex Rectangle Column_add:r1; complex Window Column_add:v; complex Column Column_close:c; complex Window Column_close:w; complex Rectangle Column_close:r; complex Column Column_closeall:c; complex Window Column_closeall:w; complex Column Column_mousebut:c; complex Column Column_reshape:c; complex Rectangle Column_reshape:r; complex Rectangle Column_reshape:r1; complex Rectangle Column_reshape:r2; complex Window Column_reshape:w; complex Column Column_grow:c; complex Window Column_grow:w; complex Rectangle Column_grow:r; complex Rectangle Column_grow:cr; complex Window Column_grow:v; complex Column Column_dragwin:c; complex Window Column_dragwin:w; complex Rectangle Column_dragwin:r; complex Point Column_dragwin:p; complex Point Column_dragwin:op; complex Window Column_dragwin:v; complex Column Column_dragwin:nc; complex Column Column_which:c; complex Point Column_which:p; complex Window Column_which:w; complex Column Column_clean:c; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Block blist; complex Disk Disk_init:d; complex Disk Disk_new:d; complex Block Disk_new:b; complex Disk Disk_release:d; complex Block Disk_release:b; complex Disk Disk_write:d; complex Block Disk_write:bp; complex Block Disk_write:b; complex Disk Disk_read:d; complex Block Disk_read:b; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Buffer snarfbuf; aggr Exectab { 'X' 0 name; 'X' 4 fn; 'D' 8 mark; 'D' 12 flag1; 'D' 16 flag2; }; defn Exectab(addr) { complex Exectab addr; print(" name ", addr.name, "\n"); print(" fn ", addr.fn, "\n"); print(" mark ", addr.mark, "\n"); print(" flag1 ", addr.flag1, "\n"); print(" flag2 ", addr.flag2, "\n"); }; complex Exectab exectab; complex Exectab lookup:e; complex Text execute:t; complex Exectab execute:e; complex Text newcol:et; complex Text newcol:t; complex Column newcol:c; complex Text delcol:et; complex Text delcol:t; complex Text del:et; complex Text del:t; complex Text undo:et; complex Text undo:t; complex Text get:et; complex Text get:t; complex Text put:et; complex Text put:t; complex Text cut:et; complex Text cut:t; complex Text paste:et; complex Text paste:t; complex Text look:et; complex Text look:t; complex Text send:et; complex Text send:t; complex Text exit:et; complex Text exit:t; complex Text id:et; complex Text id:t; complex Text kill:et; complex Text kill:t; complex Command run:c; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; aggr Undo { 'd' 0 type; 'd' 2 mod; 'U' 4 seq; 'U' 8 p0; 'U' 12 n; }; defn Undo(addr) { complex Undo addr; print(" type ", addr.type, "\n"); print(" mod ", addr.mod, "\n"); print(" seq ", addr.seq, "\n"); print(" p0 ", addr.p0, "\n"); print(" n ", addr.n, "\n"); }; complex File File_insert:f; complex File File_uninsert:f; complex Buffer File_uninsert:delta; complex Undo File_uninsert:u; complex File File_delete:f; complex File File_undelete:f; complex Buffer File_undelete:delta; complex Undo File_undelete:u; complex File File_setname:f; complex File File_unsetname:f; complex Buffer File_unsetname:delta; complex Undo File_unsetname:u; complex File File_load:f; complex File File_undo:f; complex Undo File_undo:u; complex Buffer File_undo:delta; complex Buffer File_undo:epsilon; complex File File_reset:f; complex File File_close:f; complex File File_mark:f; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Fid fids; complex Dirtab dirtab; complex Dirtab dirtabw; aggr Mnt { { Lock 0 use; 'D' 4 used; 'X' 8 queue; }; 'D' 12 id; 'X' Mntdir 16 md; }; defn Mnt(addr) { complex Mnt addr; print(" id ", addr.id, "\n"); print(" md ", addr.md, "\n"); }; complex Mnt mnt; complex Xfid fsysproc:x; complex Fid fsysproc:f; complex Fcall fsysproc:t; complex Mntdir fsysaddid:m; complex Mntdir fsysdelid:idm; complex Mntdir fsysdelid:m; complex Mntdir fsysdelid:prev; complex Mntdir fsysmount:m; complex Xfid respond:x; complex Fcall respond:t; complex Xfid fsysnop:x; complex Fid fsysnop:f; complex Fcall fsysnop:t; complex Xfid fsyssession:x; complex Fid fsyssession:f; complex Fcall fsyssession:t; complex Xfid fsysflush:x; complex Fid fsysflush:f; complex Xfid fsysattach:x; complex Fid fsysattach:f; complex Fcall fsysattach:t; complex Mntdir fsysattach:m; complex Xfid fsysclone:x; complex Fid fsysclone:f; complex Fid fsysclone:nf; complex Fcall fsysclone:t; complex Xfid fsyswalk:x; complex Fid fsyswalk:f; complex Fcall fsyswalk:t; complex Dirtab fsyswalk:d; complex Window fsyswalk:w; complex Xfid fsysclwalk:x; complex Fid fsysclwalk:f; complex Fcall fsysclwalk:t; complex Xfid fsysopen:x; complex Fid fsysopen:f; complex Fcall fsysopen:t; complex Xfid fsyscreate:x; complex Fid fsyscreate:f; complex Fcall fsyscreate:t; complex Xfid fsysread:x; complex Fid fsysread:f; complex Fcall fsysread:t; complex Dirtab fsysread:d; complex Dirtab fsysread:dt; complex Column fsysread:c; complex Xfid fsyswrite:x; complex Fid fsyswrite:f; complex Xfid fsysclunk:x; complex Fid fsysclunk:f; complex Fcall fsysclunk:t; complex Xfid fsysremove:x; complex Fid fsysremove:f; complex Fcall fsysremove:t; complex Xfid fsysstat:x; complex Fid fsysstat:f; complex Fcall fsysstat:t; complex Xfid fsyswstat:x; complex Fid fsyswstat:f; complex Fcall fsyswstat:t; complex Fid newfid:f; complex Fid newfid:ff; complex Fid newfid:fh; complex Dirtab dostat:dir; complex Dir dostat:d; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; aggr Expand { 'U' 0 q0; 'U' 4 q1; 'X' 8 name; 'D' 12 nname; 'X' 16 bname; 'D' 20 jump; 'X' Text 24 at; 'D' 28 a0; 'D' 32 a1; }; defn Expand(addr) { complex Expand addr; print(" q0 ", addr.q0, "\n"); print(" q1 ", addr.q1, "\n"); print(" name ", addr.name, "\n"); print(" nname ", addr.nname, "\n"); print(" bname ", addr.bname, "\n"); print(" jump ", addr.jump, "\n"); print(" at ", addr.at, "\n"); print(" a0 ", addr.a0, "\n"); print(" a1 ", addr.a1, "\n"); }; complex Text look3:t; complex Text look3:ct; complex Expand look3:e; complex Text search:ct; complex Text includename:t; complex Text dirname:t; complex Text expandfile:t; complex Expand expandfile:e; complex Window expandfile:w; complex Text expand:t; complex Expand expand:e; complex Window lookfile:w; complex Column lookfile:c; complex Text lookfile:t; complex Window lookid:w; complex Column lookid:c; complex Text openfile:t; complex Expand openfile:e; complex Range openfile:r; complex Window openfile:w; complex Column openfile:c; complex Text new:et; complex Text new:t; complex Expand new:e; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Rangeset sel; aggr Inst { 'U' 0 type; { 'D' 4 sid; 'D' 4 subid; 'D' 4 class; 'X' Inst 4 other; 'X' Inst 4 right; }; { 'X' Inst 8 left; 'X' Inst 8 next; }; }; defn Inst(addr) { complex Inst addr; print(" type ", addr.type, "\n"); }; complex Inst program; complex Inst progp; complex Inst startinst; complex Inst bstartinst; complex Inst rechan; aggr Ilist { 'X' Inst 0 inst; Rangeset 4 se; 'U' 84 startp; }; defn Ilist(addr) { complex Ilist addr; print(" inst ", addr.inst, "\n"); print("Rangeset se {\n"); Rangeset(addr.se); print("}\n"); print(" startp ", addr.startp, "\n"); }; complex Ilist tl; complex Ilist nl; complex Ilist list; complex Rangeset sempty; aggr Node { 'X' Inst 0 first; 'X' Inst 4 last; }; defn Node(addr) { complex Node addr; print(" first ", addr.first, "\n"); print(" last ", addr.last, "\n"); }; complex Node andstack; complex Node andp; complex Inst rxcompile:oprogp; complex Inst operand:i; complex Inst pushand:f; complex Inst pushand:l; complex Node evaluntil:op1; complex Node evaluntil:op2; complex Inst evaluntil:inst1; complex Inst evaluntil:inst2; complex Inst optimize:start; complex Inst optimize:inst; complex Inst optimize:target; complex Ilist addinst:l; complex Inst addinst:inst; complex Rangeset addinst:sep; complex Ilist addinst:p; complex Text rxexecute:t; complex Inst rxexecute:inst; complex Ilist rxexecute:tlp; complex Rangeset newmatch:sp; complex Text rxbexecute:t; complex Inst rxbexecute:inst; complex Ilist rxbexecute:tlp; complex Rangeset bnewmatch:sp; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Row Row_init:row; complex Rectangle Row_init:r; complex Rectangle Row_init:r1; complex Text Row_init:t; complex Row Row_add:row; complex Column Row_add:c; complex Rectangle Row_add:r; complex Rectangle Row_add:r1; complex Column Row_add:d; complex Row Row_reshape:row; complex Rectangle Row_reshape:r; complex Rectangle Row_reshape:r1; complex Rectangle Row_reshape:r2; complex Column Row_reshape:c; complex Row Row_dragcol:row; complex Column Row_dragcol:c; complex Rectangle Row_dragcol:r; complex Point Row_dragcol:p; complex Point Row_dragcol:op; complex Column Row_dragcol:d; complex Row Row_close:row; complex Column Row_close:c; complex Rectangle Row_close:r; complex Row Row_whichcol:row; complex Point Row_whichcol:p; complex Column Row_whichcol:c; complex Row Row_which:row; complex Point Row_which:p; complex Column Row_which:c; complex Row Row_type:row; complex Point Row_type:p; complex Text Row_type:t; complex Window Row_type:w; complex Row Row_clean:row; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Rectangle scrpos:r; complex Rectangle scrpos:q; complex Bitmap scrx; complex Text Text_scrdraw:t; complex Rectangle Text_scrdraw:r; complex Rectangle Text_scrdraw:r1; complex Rectangle Text_scrdraw:r2; complex Timer scrsleep:timer; complex Text Text_scroll:t; complex Rectangle Text_scroll:s; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Text Text_init:t; complex Rectangle Text_init:r; complex Text Text_reshape:t; complex Rectangle Text_reshape:r; complex Text Text_close:t; complex Dirlist dircmp:da; complex Dirlist dircmp:db; complex Text Text_columnate:t; complex Dirlist Text_columnate:dlp; complex Dirlist Text_columnate:dl; complex Text Text_load:t; complex Dirlist Text_load:dl; complex Dirlist Text_load:dlp; complex Dir Text_load:d; complex Dir Text_load:dbuf; complex Text Text_insert:t; complex Text Text_fill:t; complex Text Text_delete:t; complex Text Text_readc:t; complex Text Text_bswidth:t; complex Text Text_type:t; complex Text Text_commit:t; complex Text clicktext; complex Text selecttext; complex Frame framescroll:f; complex Text Text_framescroll:t; complex Text Text_select:t; complex Text Text_show:t; complex Text Text_setselect:t; complex Text Text_select23:t; complex Bitmap Text_select23:txt; complex Text Text_select2:t; complex Text Text_select3:t; complex Text Text_doubleclick:t; complex Text Text_clickmatch:t; complex Text Text_backnl:t; complex Text Text_setorigin:t; complex Text Text_reset:t; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Timer ctimer; complex Timer timeproc:t; complex Timer timeproc:x; complex Timer timer; complex Timer timerstart:t; complex Timer timerstop:t; complex Timer timerwaittask:timer; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; aggr Fbuf { { Lock 0 use; 'D' 4 used; 'X' 8 queue; }; 'X' 12 free; }; defn Fbuf(addr) { complex Fbuf addr; print(" free ", addr.free, "\n"); }; complex Fbuf fbuf; complex Point prevmouse; complex Window mousew; complex Window errorwin:w; complex Mntdir warning:md; complex Window warning:w; complex Text warning:t; complex Text tgetc:t; complex Window savemouse:w; complex Window restoremouse:w; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Window Window_init:w; complex Rectangle Window_init:r; complex Rectangle Window_init:r1; complex Window Window_reshape:w; complex Rectangle Window_reshape:r; complex Rectangle Window_reshape:r1; complex Bitmap Window_reshape:b; complex Window Window_lock:w; complex Window Window_unlock:w; complex Window Window_mousebut:w; complex Window Window_dirfree:w; complex Dirlist Window_dirfree:dl; complex Window Window_close:w; complex Window Window_delete:w; complex Xfid Window_delete:x; complex Window Window_undo:w; complex Text Window_undo:body; complex Window Window_setname:w; complex Text Window_setname:t; complex Window Window_type:w; complex Text Window_type:t; complex Window Window_settag:w; complex Bitmap Window_settag:b; complex Window Window_commit:w; complex Text Window_commit:t; complex Window Window_clean:w; complex Window Window_event:w; complex Xfid Window_event:x; complex Bitmap screen; complex Font font; complex Bitmap frones; complex Mouse mouse; complex Bitmap darkgrey; complex Bitmap lightgrey; complex Bitmap modbutton; complex Bitmap colbutton; complex Bitmap button; complex Bitmap underline; complex Cursor boxcursor; complex Row row; complex Disk disk; complex Text mousetext; complex Text seltext; complex Text typetext; complex Rectangle nullrect; complex Mouse cmouse; complex Waitmsg cwait; complex Command ccommand; complex Xfid cxfidalloc; complex Xfid cxfidfree; complex Xfid Xfid_ctl:x; complex Window ctlprint:w; complex Xfid Xfid_flush:x; complex Fcall Xfid_flush:fc; complex Window Xfid_flush:w; complex Column Xfid_flush:c; complex Xfid Xfid_flush:wx; complex Xfid Xfid_walk:x; complex Fcall Xfid_walk:fc; complex Column Xfid_walk:c; complex Window Xfid_walk:w; complex Xfid Xfid_open:x; complex Fcall Xfid_open:fc; complex Window Xfid_open:w; complex Xfid Xfid_close:x; complex Fcall Xfid_close:fc; complex Window Xfid_close:w; complex Xfid Xfid_read:x; complex Fcall Xfid_read:fc; complex Window Xfid_read:w; complex Xfid Xfid_write:x; complex Fcall Xfid_write:fc; complex Window Xfid_write:w; complex Range Xfid_write:a; complex Text Xfid_write:t; complex Mntdir Xfid_write:md; complex Xfid Xfid_ctlwrite:x; complex Window Xfid_ctlwrite:w; complex Fcall Xfid_ctlwrite:fc; complex Text Xfid_ctlwrite:t; complex Xfid Xfid_eventwrite:x; complex Window Xfid_eventwrite:w; complex Fcall Xfid_eventwrite:fc; complex Text Xfid_eventwrite:t; complex Xfid Xfid_utfread:x; complex Text Xfid_utfread:t; complex Fcall Xfid_utfread:fc; complex Window Xfid_utfread:w; complex Xfid Xfid_runeread:x; complex Text Xfid_runeread:t; complex Fcall Xfid_runeread:fc; complex Window Xfid_runeread:w; complex Xfid Xfid_eventread:x; complex Window Xfid_eventread:w; complex Fcall Xfid_eventread:fc; complex Xfid Xfid_indexread:x; complex Fcall Xfid_indexread:fc; complex Window Xfid_indexread:w; complex Column Xfid_indexread:c;