diff --git a/0000Boot/0000Kernel.BIN.C b/0000Boot/0000Kernel.BIN.C index 9dc1f6c..085f35c 100644 Binary files a/0000Boot/0000Kernel.BIN.C and b/0000Boot/0000Kernel.BIN.C differ diff --git a/Adam/ADbg.CPP b/Adam/ADbg.CPP index 3b846c1..d2f8863 100644 --- a/Adam/ADbg.CPP +++ b/Adam/ADbg.CPP @@ -106,6 +106,13 @@ Bool ClassRep2(CDoc *doc,U8 *_d,U8 *class_name=lastclass, } else DocPrint(doc,"%08X ",*ptr(U32 *)++); break; + case RT_U64: + if (dynamic) { + doc_e=DocPrint(doc,"$$DA-TRM+RD+UD,RT=U64,A=\"%%08X\"$$ "); + doc_e->data=ptr(U64 *)++; + } else + DocPrint(doc,"%08X ",*ptr(U64 *)++); + break; case RT_F64: if (dynamic) { doc_e=DocPrint(doc,"$$DA-TRM+RD+UD,RT=F64,A=\"%%16g\"$$ "); diff --git a/Adam/ADefine.CPP b/Adam/ADefine.CPP index b70a1cd..9f32160 100644 --- a/Adam/ADefine.CPP +++ b/Adam/ADefine.CPP @@ -11,8 +11,8 @@ U0 LoadDocDefines() //This is cut and replaced when I generate a distro. //See $LK,"DD_TEMPLEOS_LOC",A="FF:::/Demo/AcctExample/TOSDistro.CPP,DD_TEMPLEOS_LOC"$. $TR-C,"LineRep"$ - $ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,708"); -DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","80,702"); + $ID,4$DefinePrint("DD_TEMPLEOS_LOC","119,248"); +DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","79,899"); $ID,-4$ DefinePrint("DD_KERNEL","%08X",bfh); bfh(I64)+=bfh->file_size-1; diff --git a/Adam/DolDoc/DocFind.CPP b/Adam/DolDoc/DocFind.CPP index d65fd97..1e1138f 100644 --- a/Adam/DolDoc/DocFind.CPP +++ b/Adam/DolDoc/DocFind.CPP @@ -385,7 +385,7 @@ I64 EdFindReplace(CDoc *doc) Bool found,unlock; I64 cmd,i,j,plen,rlen,dlen,result=-1,sf_flags; U8 *src,*dst,*dst2; - CDocEntry *doc_ce=doc->cur_entry,*doc_e; + CDocEntry *doc_ce,*doc_e,*doc_marker=NULL; if (doc->find_replace->pmt) cmd=RSAC_REPLACE; else @@ -448,10 +448,8 @@ I64 EdFindReplace(CDoc *doc) goto fr_unlock_done; } - if (doc->find_replace->local_var) { + if (doc->find_replace->local_var) EdSelectFun(doc); - doc_ce=doc->cur_entry; - } if (!doc->find_replace->replace && !doc->find_replace->local_var) { EdFindNext(doc); @@ -462,14 +460,15 @@ I64 EdFindReplace(CDoc *doc) goto fr_unlock_done; rlen=StrLen(doc->find_replace->replace_text); if (doc->root.next!=doc) { - doc_e=doc_ce; + doc_e=doc_marker=DocSplitTag(doc,doc->cur_entry,doc->cur_col, + doc->cur_entry->x+doc->cur_col,doc->cur_entry->y,DOCT_MARKER); do { if (doc_e==doc) { if (doc->find_replace->scan_fwd) doc_e=doc_e->next; else doc_e=doc_e->last; - if (doc_e==doc_ce) + if (doc_e==doc_marker) break; } if (doc_e->type_u8==DOCT_TEXT && @@ -527,9 +526,11 @@ I64 EdFindReplace(CDoc *doc) doc_e=doc_e->next; else doc_e=doc_e->last; - } while (doc_e!=doc_ce); + } while (doc_e!=doc_marker); } fr_unlock_done: + if (doc_marker) + DocEntryDel(doc,doc_marker); DocRemSoftNewLines(doc,NULL); DocRecalc(doc); DocCenter(doc); diff --git a/Adam/DolDoc/DocForm.CPP b/Adam/DolDoc/DocForm.CPP index 1e6302a..801bf9f 100644 --- a/Adam/DolDoc/DocForm.CPP +++ b/Adam/DolDoc/DocForm.CPP @@ -213,7 +213,7 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass, CMemberLst *ml; CDocEntry *doc_e; U8 *fmtstr; - CHashClass *tempc; + CHashClass *tempc,*tempc2; CDoc *doc; Bool result=FALSE; I64 old_border_src=Fs->border_src,has_action; @@ -227,8 +227,28 @@ public Bool DocForm(U8 *_d,U8 *class_name=lastclass, doc->flags|=DOCF_MIN_SIZE; ml=tempc->member_lst_and_root; while (ml) { - if (fmtstr=MemberMetaData("fmtstr",ml)) { - doc_e=DocPrint(doc,"%s",fmtstr); + if ((fmtstr=MemberMetaData("fmtstr",ml)) && + (doc_e=DocPrint(doc,"%s",fmtstr))) { + tempc2=ml->member_class; + if ((doc_e->type_u8==DOCT_DATA || doc_e->type_u8==DOCT_LST || + doc_e->type_u8==DOCT_CHECK_BOX) && !tempc2->ptr_stars_cnt) { + tempc2=OptClassFwd(tempc2); + tempc2-=tempc2->ptr_stars_cnt; + if (tempc2->type & HTT_INTERNAL_TYPE) { + if (ml->dim.next) { //Array + if (tempc2->raw_type==RT_U8 && + LBtr(&doc_e->de_flags,&DOCEf_DFT_LEN)) { + doc_e->len=ml->dim.total_cnt; + if (doc_e->de_flags&DOCEF_HAS_TERMINATOR) + doc_e->len--; + Free(doc_e->tag); //See $LK,"DataTagWidth",A="FA:::/Adam/DolDoc/DocPlain.CPP,DataTagWidth"$ + doc_e->tag=MAlloc(doc_e->len+doc_e->min_col+2, + doc->mem_task); //+2 because "_\0" + } + } else if (LBtr(&doc_e->de_flags,DOCEf_DFT_RAW_TYPE)) + doc_e->raw_type=tempc2->raw_type; + } + } if (doc_e->de_flags&DOCEF_REMALLOC_DATA) { doc_e->user_data=_d+ml->offset; doc_e->data=*doc_e->user_data(U8 **); diff --git a/Adam/DolDoc/DocGr.CPP b/Adam/DolDoc/DocGr.CPP index 3710ae6..01902c6 100644 --- a/Adam/DolDoc/DocGr.CPP +++ b/Adam/DolDoc/DocGr.CPP @@ -53,16 +53,16 @@ public I64 PopUpColorLighting(U8 *header=NULL) class CTransformForm { - F64 x_scale fmtstr "$$DA-TRM,RT=F64,A=\"X Scale :%12.6f\"$$\n"; - F64 y_scale fmtstr "$$DA-TRM,RT=F64,A=\"Y Scale :%12.6f\"$$\n"; - F64 z_scale fmtstr "$$DA-TRM,RT=F64,A=\"Z Scale :%12.6f\"$$\n"; - F64 é_z fmtstr - "\nAngles are in degrees\n$$DA-TRM,RT=F64,A=\"Z-Axis :%12.6f\"$$\n"; - F64 é_y fmtstr "$$DA-TRM,RT=F64,A=\"Y-Axis :%12.6f\"$$\n"; - F64 é_x fmtstr "$$DA-TRM,RT=F64,A=\"X-Axis :%12.6f\"$$\n"; - F64 x_offset fmtstr "\n$$DA-TRM,RT=F64,A=\"X Offset:%12.6f\"$$\n"; - F64 y_offset fmtstr "$$DA-TRM,RT=F64,A=\"Y Offset:%12.6f\"$$\n"; - F64 z_offset fmtstr "$$DA-TRM,RT=F64,A=\"Z Offset:%12.6f\"$$\n"; + F64 x_scale fmtstr "$$DA-TRM,A=\"X Scale :%12.6f\"$$\n"; + F64 y_scale fmtstr "$$DA-TRM,A=\"Y Scale :%12.6f\"$$\n"; + F64 z_scale fmtstr "$$DA-TRM,A=\"Z Scale :%12.6f\"$$\n"; + F64 é_z fmtstr "\nAngles are in degrees\n" + "$$DA-TRM,A=\"Z-Axis :%12.6f\"$$\n"; + F64 é_y fmtstr "$$DA-TRM,A=\"Y-Axis :%12.6f\"$$\n"; + F64 é_x fmtstr "$$DA-TRM,A=\"X-Axis :%12.6f\"$$\n"; + F64 x_offset fmtstr "\n$$DA-TRM,A=\"X Offset:%12.6f\"$$\n"; + F64 y_offset fmtstr "$$DA-TRM,A=\"Y Offset:%12.6f\"$$\n"; + F64 z_offset fmtstr "$$DA-TRM,A=\"Z Offset:%12.6f\"$$\n"; }; Bool PopUpTransform(I64 *r) diff --git a/Adam/DolDoc/DocInit.CPP b/Adam/DolDoc/DocInit.CPP index d6936fe..bc3ce55 100644 --- a/Adam/DolDoc/DocInit.CPP +++ b/Adam/DolDoc/DocInit.CPP @@ -7,7 +7,7 @@ U0 DocInit() CHashGeneric *temph; DefineLstLoad("ST_DOC_CMDS", - "TX\0CR\0SR\0CU\0TB\0CL\0PB\0PL\0LM\0RM\0HD\0FO\0ID\0FG\0" + "TX\0CR\0SR\0CU\0MK\0TB\0CL\0PB\0PL\0LM\0RM\0HD\0FO\0ID\0FG\0" "BG\0FD\0BD\0PT\0WW\0UL\0IV\0BK\0SX\0SY\0CM\0AN\0LK\0BT\0" "DA\0CB\0LS\0MA\0MU\0HX\0TR\0SP\0IB\0IS\0SO\0HL\0HC\0ER\0"); DefineLstLoad("ST_DOC_FLAGS", @@ -15,7 +15,7 @@ U0 DocInit() "LC\0LA\0RC\0RA\0LX\0CX\0RX\0TY\0CY\0BY\0" "HL\0WW\0BK\0IV\0SEL\0UL\0" "TC\0PRY\0MRX\0WR\0L\0X\0Q\0FST\0B\0S\0BD\0C\0CA\0RD\0UD\0P\0M\0" - "TRM\0Z\0H\0TR\0LS\0SK\0PU\0SIF\0FS\0NC\0DD\0"); + "TRM\0Z\0H\0TR\0LS\0SK\0PU\0SIF\0FS\0NC\0DD\0DL\0DRT\0"); DefineLstLoad("ST_LINK_TYPES", "FI\0FA\0FF\0FL\0MN\0PI\0PF\0PL\0BF\0DN\0HI\0AD\0AI\0AA\0AF\0AL\0"); @@ -26,9 +26,9 @@ U0 DocInit() MemSet(doldoc.dft_de_flags, 0,sizeof(doldoc.dft_de_flags)); MemSet(doldoc.dft_type_flags, 0,sizeof(doldoc.dft_type_flags)); - cc=CmpCtrlNew("TX+T;DA+P+TRM+T;CM+LE+RE;AN+T;LK+L+UL+T;MA+X+UL+T;MU+X+UL+T;" - "BT+X+B+T;CB+CA+P+T;LS+LS+P+T;HX+P+Z;TR+TR+C+CA+UL+T;SP+T;IB+T;IS+T;" - "SO+T;HC+T;",CCF_DONT_FREE_BUF); + cc=CmpCtrlNew("TX+T;DA+P+TRM+T+DL+DRT;CM+LE+RE;AN+T;LK+L+UL+T;MA+X+UL+T;" + "MU+X+UL+T;BT+X+B+T;CB+CA+P+T+DRT;LS+LS+P+T+DRT;HX+P+Z;TR+TR+C+CA+UL+T;" + "SP+T;IB+T;IS+T;SO+T;HC+T;",CCF_DONT_FREE_BUF); cc->htc.hash_table_lst=NULL; Lex(cc); while (cc->token==TK_IDENT) { diff --git a/Adam/DolDoc/DocPlain.CPP b/Adam/DolDoc/DocPlain.CPP index 826a5b0..8e083cb 100644 --- a/Adam/DolDoc/DocPlain.CPP +++ b/Adam/DolDoc/DocPlain.CPP @@ -338,9 +338,10 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) } break; case DOCEf_LEN: - if (cc->token) + if (cc->token) { doc_e->len=LexExpression(cc); - else + doc_e->de_flags&=~DOCEF_DFT_LEN; + } else goto pd_err; break; case DOCEf_AUX_STR: @@ -349,7 +350,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) doc_e->aux_str=StrNew(st2,doc->mem_task); Free(st2); //$AN,"Anchor",A="DataTagWidth"$ - if (i==DOCT_DATA) { + if (i==DOCT_DATA) { //See $LK,"DocForm",A="MN:DocForm"$() if (ptr=StrMatch(":",doc_e->aux_str)) doc_e->min_col=ptr-doc_e->aux_str+1; doc_e->tag=MAlloc(doc_e->len+doc_e->min_col+2, @@ -430,6 +431,7 @@ CDocEntry *PrsDollarCmd(CDoc *doc,U8 *st) if (j<0) goto pd_err; doc_e->raw_type=j; + doc_e->de_flags&=~DOCEF_DFT_RAW_TYPE; Lex(cc); } else goto pd_err; diff --git a/Adam/DolDoc/DocPutS.CPP b/Adam/DolDoc/DocPutS.CPP index fcaf794..19beace 100644 --- a/Adam/DolDoc/DocPutS.CPP +++ b/Adam/DolDoc/DocPutS.CPP @@ -2,8 +2,8 @@ CDocEntry *DocPutS(CDoc *doc,U8 *st) {//Don't use this. Use $LK-UL,"DocPrint",A="MN:DocPrint"$(). -//Does not handle partial Doc entries - //Returns last newly created dollar-sign CDocEntry. +//Does not handle partial Doc entries. + //Returns last newly created dollar-sign CDocEntry or NULL. U8 *ptr=st,*ptr2,*st2,*ptr3,*ptr4,*src, *char_bitmap; Bool unlock; @@ -157,6 +157,7 @@ CDocEntry *DocPutS(CDoc *doc,U8 *st) public CDocEntry *DocPrint(CDoc *doc=NULL,U8 *fmt,...) {//You must not print partial doc cmds. +//Returns last newly created dollar-sign CDocEntry or NULL. U8 *buf=StrPrintJoin(NULL,fmt,argc,argv); CDocEntry *result=DocPutS(doc,buf); Free(buf); diff --git a/Adam/DolDoc/DocRecalc.CPP b/Adam/DolDoc/DocRecalc.CPP index bfdbb0f..1b8a9b4 100644 --- a/Adam/DolDoc/DocRecalc.CPP +++ b/Adam/DolDoc/DocRecalc.CPP @@ -129,20 +129,26 @@ U0 DocRecalcXY(CDoc *doc,CDocEntry *doc_e, } CDocEntry *DocSplitTag(CDoc *doc,CDocEntry *doc_e,I64 i,I64 x,I64 y,I64 type_u8) -{//Split tag at i, insert DOCT_SOFT_NEW_LINE or DOCT_CURSOR +{//Split tag at i, insert DOCT_SOFT_NEW_LINE, DOCT_MARKER or DOCT_CURSOR U8 *ptr; - CDocEntry *doc_e2=MAllocIdentical(doc_e,doc->mem_task); - doc_e2->tag=StrNew(doc_e->tag+i,doc->mem_task); - doc_e2->de_flags=doc_e->de_flags&~DOCEG_HAS_ALLOC|DOCEF_TAG; - QueIns(doc_e2,doc_e); - if (doc->cur_entry==doc_e && doc->cur_col>=i) { - doc->cur_entry=doc_e2; - doc->cur_col=doc->cur_col-i; - } - doc_e->tag[i]=0; - ptr=StrNew(doc_e->tag,doc->mem_task); - Free(doc_e->tag); - doc_e->tag=ptr; + CDocEntry *doc_e2; + if (doc_e->type_u8==DOCT_TEXT && i) { + if (itag)) { + doc_e2=MAllocIdentical(doc_e,doc->mem_task); + doc_e2->tag=StrNew(doc_e->tag+i,doc->mem_task); + doc_e2->de_flags=doc_e->de_flags&~DOCEG_HAS_ALLOC|DOCEF_TAG; + QueIns(doc_e2,doc_e); + if (doc->cur_entry==doc_e && doc->cur_col>=i) { + doc->cur_entry=doc_e2; + doc->cur_col=doc->cur_col-i; + } + doc_e->tag[i]=0; + ptr=StrNew(doc_e->tag,doc->mem_task); + Free(doc_e->tag); + doc_e->tag=ptr; + } + } else + doc_e=doc_e->last; doc_e2=DocEntryNewBase(doc,type_u8|doc_e->type & 0xFFFFFF00, doc_e->de_flags&~DOCEG_HAS_ARG,x,y,doc_e->page_line_num); MemCpy(&doc_e2->settings,&doc_e->settings,sizeof(CDocSettings)); diff --git a/Adam/DolDoc/DocWidgetWiz.CPP b/Adam/DolDoc/DocWidgetWiz.CPP index 0300bb9..2db6b8d 100644 --- a/Adam/DolDoc/DocWidgetWiz.CPP +++ b/Adam/DolDoc/DocWidgetWiz.CPP @@ -31,12 +31,12 @@ I64 PopUpLinkType(Bool include_anchor) class CEdFileLink { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,LEN=511,A=\"File :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; I64 book; U8 aux[512]; I64 num; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -44,12 +44,12 @@ class CEdFileLink class CEdFileAnchorLink { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,LEN=511,A=\"File :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; I64 book; - U8 aux[512] fmtstr "$$DA-P,LEN=511,A=\"Anchor Label :%s\"$$\n"; + U8 aux[512] fmtstr "$$DA-P,A=\"Anchor Label :%s\"$$\n"; I64 num; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -57,12 +57,12 @@ class CEdFileAnchorLink class CEdFileFindLink { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,LEN=511,A=\"File :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; I64 book; - U8 aux[512] fmtstr "$$DA-P,LEN=511,A=\"Str :%s\"$$\n"; + U8 aux[512] fmtstr "$$DA-P,A=\"Str :%s\"$$\n"; I64 num fmtstr "$$DA-TRM,A=\"Occurrence Num:%04d\"$$\n"; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -70,12 +70,12 @@ class CEdFileFindLink class CEdFileLineLink { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,LEN=511,A=\"File :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; I64 book; U8 aux[512]; I64 num fmtstr "$$DA-TRM,A=\"Line Num :%04d\"$$\n"; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -83,12 +83,12 @@ class CEdFileLineLink class CEdManPageLink { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book; - U8 aux[512] fmtstr "$$DA-P,LEN=511,A=\"Label :%s\"$$\n"; + U8 aux[512] fmtstr "$$DA-P,A=\"Label :%s\"$$\n"; I64 num; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -96,12 +96,12 @@ class CEdManPageLink class CEdAddrLink { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book; - U8 aux[512] fmtstr "$$DA-P,LEN=511,A=\"Addr Exp :%s\"$$\n"; + U8 aux[512] fmtstr "$$DA-P,A=\"Addr Exp :%s\"$$\n"; I64 num fmtstr "$$DA-TRM,A=\"Bin Size :%04d\"$$\n"; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -109,12 +109,12 @@ class CEdAddrLink class CEdPlaceAnchor { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book; - U8 aux[512] fmtstr "$$DA-P,LEN=511,A=\"Anchor Label :%s\"$$\n"; + U8 aux[512] fmtstr "$$DA-P,A=\"Anchor Label :%s\"$$\n"; I64 num; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up, quote fmtstr "$$CB,\"Quote\"$$\n", hide fmtstr "$$CB,\"Hide\"$$\n"; @@ -122,13 +122,13 @@ class CEdPlaceAnchor class CEdBibleLink { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book fmtstr "$$LS,D=\"ST_BIBLE_BOOKS\"$$\n"; - U8 aux[512] fmtstr "$$DA-P,LEN=511,A=\"Chapter Verse :%s\"$$\n"; + U8 aux[512] fmtstr "$$DA-P,A=\"Chapter Verse :%s\"$$\n"; I64 num; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -136,12 +136,12 @@ class CEdBibleLink class CEdDefLink { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", file[512]; I64 book; - U8 aux[512] fmtstr "$$DA-P,LEN=511,A=\"Word :%s\"$$\n"; + U8 aux[512] fmtstr "$$DA-P,A=\"Word :%s\"$$\n"; I64 num fmtstr "$$DA-TRM,A=\"Def Num :%4d\"$$\n"; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -149,12 +149,12 @@ class CEdDefLink class CEdProject { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - file[512] fmtstr "$$DA-P,LEN=511,A=\"File :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + file[512] fmtstr "$$DA-P,A=\"File :%s\"$$\n"; I64 book; U8 aux[512]; I64 num; - U8 html_link[512] fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; Bool pop_up fmtstr "$$CB,\"PopUp\"$$\n", quote fmtstr "$$CB,\"Quote\"$$\n", hide; @@ -433,13 +433,13 @@ U0 EdInsColor() class CEdPageSetting1 { - U8 val[512] fmtstr "$$DA-P,LEN=511,A=\"Setting Val:%s\"$$\n"; + U8 val[512] fmtstr "$$DA-P,A=\"Setting Val:%s\"$$\n"; Bool winrel; }; class CEdPageSetting2 { - U8 val[512] fmtstr "$$DA-P,LEN=511,A=\"Setting Val:%s\"$$\n"; + U8 val[512] fmtstr "$$DA-P,A=\"Setting Val:%s\"$$\n"; Bool winrel fmtstr "$$CB,\"Win Relative\"$$\n"; }; @@ -507,7 +507,7 @@ I64 PopUpWidgetType() class CEdText { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; Bool left_x fmtstr "$$CB,\"Left X\"$$\n", center_x fmtstr "$$CB,\"Center X\"$$\n", right_x fmtstr "$$CB,\"Right X\"$$\n", @@ -517,16 +517,11 @@ class CEdText underline fmtstr "$$CB,\"Underline\"$$\n", tree fmtstr "$$CB,\"Tree\"$$\n", collapsed fmtstr "$$CB,\"Collapsed\"$$\n"; - U8 scroll_x [512] - fmtstr "$$DA-P,LEN=511,A=\"Scroll X Length Expression:%s\"$$\n", - shift_x [512] - fmtstr "$$DA-P,LEN=511,A=\"X Offset Expression :%s\"$$\n", - shift_y [512] - fmtstr "$$DA-P,LEN=511,A=\"Y Offset Expression :%s\"$$\n", - define_str[512] - fmtstr "$$DA-P,LEN=511,A=\"Define Str :%s\"$$\n", - html_link[512] - fmtstr "$$DA-P,LEN=511,A=\"Html Link :%s\"$$\n"; + U8 scroll_x [512] fmtstr "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", + shift_x [512] fmtstr "$$DA-P,A=\"X Offset Expression :%s\"$$\n", + shift_y [512] fmtstr "$$DA-P,A=\"Y Offset Expression :%s\"$$\n", + define_str[512] fmtstr "$$DA-P,A=\"Define Str :%s\"$$\n", + html_link[512] fmtstr "$$DA-P,A=\"Html Link :%s\"$$\n"; }; U0 EdInsText() @@ -570,8 +565,8 @@ U0 EdInsText() class CEdSong { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - song[512] fmtstr "$$DA-P,LEN=511,A=\"Song :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + song[512] fmtstr "$$DA-P,A=\"Song :%s\"$$\n"; }; U0 EdInsSong() @@ -584,7 +579,7 @@ U0 EdInsSong() class CEdHtmlCode { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Html Code:%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Html Code:%s\"$$\n"; }; U0 EdInsHtml() @@ -597,12 +592,9 @@ U0 EdInsHtml() class CEdMacroMenu { - U8 tag[512] - fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - left_macro[512] - fmtstr "$$DA-P,LEN=511,A=\"Left Click Macro :%s\"$$\n", - left_exp[512] - fmtstr "$$DA-P,LEN=511,A=\"Left Click Expression :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + left_macro[512] fmtstr "$$DA-P,A=\"Left Click Macro :%s\"$$\n", + left_exp[512] fmtstr "$$DA-P,A=\"Left Click Expression :%s\"$$\n"; Bool popup fmtstr "$$CB,\"PopUp\"$$\n", left_is_auto fmtstr "$$CB,\"Left is AutoStr\"$$\n", left_x fmtstr "$$CB,\"Left X \"$$\n", @@ -613,12 +605,9 @@ class CEdMacroMenu invert fmtstr "$$CB,\"Invert\"$$\n", underline fmtstr "$$CB,\"Underline\"$$\n", escape fmtstr "$$CB,\"Escape\"$$\n"; - U8 scroll_x[512] - fmtstr "$$DA-P,LEN=511,A=\"Scroll X Length Expression:%s\"$$\n", - shift_x[512] - fmtstr "$$DA-P,LEN=511,A=\"X Offset Expression :%s\"$$\n", - shift_y[512] - fmtstr "$$DA-P,LEN=511,A=\"Y Offset Expression :%s\"$$\n"; + U8 scroll_x[512] fmtstr "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", + shift_x[512] fmtstr "$$DA-P,A=\"X Offset Expression :%s\"$$\n", + shift_y[512] fmtstr "$$DA-P,A=\"Y Offset Expression :%s\"$$\n"; }; U0 EdInsMacroMenu(Bool is_macro) @@ -633,10 +622,10 @@ U0 EdInsMacroMenu(Bool is_macro) if (e->left_x ) CatPrint(buf,"+LX"); if (e->center_x) CatPrint(buf,"+CX"); if (e->right_x ) CatPrint(buf,"+RX"); - if (e->margin_rel) CatPrint(buf,"+MRX"); + if (e->margin_rel) CatPrint(buf,"+MRX"); if (e->blink) CatPrint(buf,"+BK"); if (e->invert) CatPrint(buf,"+IV"); - if (!e->underline) CatPrint(buf,"-UL"); + if (!e->underline) CatPrint(buf,"-UL"); if (!e->escape) CatPrint(buf,"-X"); if (e->left_is_auto) CatPrint(buf,"+LA"); if (*e->tag || is_macro) { @@ -673,17 +662,16 @@ U0 EdInsMacroMenu(Bool is_macro) class CEdButton { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; Bool popup fmtstr "$$CB,\"PopUp\"$$\n", left_x fmtstr "$$CB,\"Left X \"$$\n", center_x fmtstr "$$CB,\"Center X \"$$\n", right_x fmtstr "$$CB,\"Right X \"$$\n", margin_rel fmtstr "$$CB,\"Margin Rel X\"$$\n", escape fmtstr "$$CB,\"Escape\"$$\n"; - U8 left_macro[512] fmtstr "$$DA-P,LEN=511,A=\"Left Click Macro:%s\"$$\n"; + U8 left_macro[512] fmtstr "$$DA-P,A=\"Left Click Macro:%s\"$$\n"; Bool left_is_auto fmtstr "$$CB,\"Left is AutoStr\"$$\n"; - U8 left_exp[512] fmtstr "$$DA-P,LEN=511," - "A=\"Left Click Expression:%s\"$$\n"; + U8 left_exp[512] fmtstr "$$DA-P,A=\"Left Click Expression:%s\"$$\n"; Bool quote fmtstr "$$CB,\"Quote\"$$\n"; }; @@ -734,8 +722,8 @@ U0 EdInsButton() class CEdCursorMovement { - U8 left_exp[512] fmtstr "$$DA-P,LEN=511,A=\"X Expression (LE):%s\"$$\n", - right_exp[512] fmtstr "$$DA-P,LEN=511,A=\"Y Expression (RE):%s\"$$\n"; + U8 left_exp[512] fmtstr "$$DA-P,A=\"X Expression (LE):%s\"$$\n", + right_exp[512] fmtstr "$$DA-P,A=\"Y Expression (RE):%s\"$$\n"; Bool left_x fmtstr "$$CB,\"Left X \"$$\n", center_x fmtstr "$$CB,\"Center X \"$$\n", right_x fmtstr "$$CB,\"Right X \"$$\n", @@ -753,14 +741,14 @@ U0 EdInsCursorMovement() CEdCursorMovement *e=CAlloc(sizeof(CEdCursorMovement)); if (DocForm(e,,,,ctrl_L_footer)) { *buf=0; - if (e->left_x ) CatPrint(buf,"+LX"); - if (e->center_x) CatPrint(buf,"+CX"); - if (e->right_x ) CatPrint(buf,"+RX"); - if (e->margin_rel) CatPrint(buf,"+MRX"); - if (e->top_y ) CatPrint(buf,"+TY"); - if (e->center_y) CatPrint(buf,"+CY"); - if (e->bottom_y) CatPrint(buf,"+BY"); - if (e->page_rel) CatPrint(buf,"+PRY"); + if (e->left_x ) CatPrint(buf,"+LX"); + if (e->center_x) CatPrint(buf,"+CX"); + if (e->right_x ) CatPrint(buf,"+RX"); + if (e->margin_rel) CatPrint(buf,"+MRX"); + if (e->top_y ) CatPrint(buf,"+TY"); + if (e->center_y) CatPrint(buf,"+CY"); + if (e->bottom_y) CatPrint(buf,"+BY"); + if (e->page_rel) CatPrint(buf,"+PRY"); if (!*e->left_exp) CatPrint(buf,"-LE"); if (!*e->right_exp) CatPrint(buf,"-RE"); if (e->quote) @@ -779,7 +767,7 @@ U0 EdInsCursorMovement() class CEdDataNum { - U8 fmt_str[512] fmtstr "$$DA-P,LEN=511,A=\"Format Str:%s\"$$\n"; + U8 fmt_str[512] fmtstr "$$DA-P,A=\"Format Str:%s\"$$\n"; I64 len; Bool term fmtstr "$$CB,\"Form Field Terminator\"$$\n", remalloc, @@ -789,7 +777,7 @@ class CEdDataNum class CEdDataStr { - U8 fmt_str[512] fmtstr "$$DA-P,LEN=511,A=\"Format Str:%s\"$$\n"; + U8 fmt_str[512] fmtstr "$$DA-P,A=\"Format Str:%s\"$$\n"; I64 len fmtstr "$$DA,A=\"Length:%d\"$$\n"; Bool term fmtstr "$$CB,\"Zero Terminator\"$$\n", remalloc fmtstr "$$CB,\"Remalloc for Unlimited Length\"$$\n", @@ -845,7 +833,7 @@ U0 EdInsData() class CEdCheckBox { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; I64 type fmtstr "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; }; @@ -872,8 +860,8 @@ U0 EdInsCheckBox() class CEdLst { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Dft Select :%s\"$$\n", - define_str[512] fmtstr "$$DA-P,LEN=511,A=\"Define Str :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Dft Select :%s\"$$\n", + define_str[512] fmtstr "$$DA-P,A=\"Define Str :%s\"$$\n"; Bool refresh fmtstr "$$CB,\"Refresh Data\"$$\n"; I64 type fmtstr "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; }; @@ -932,12 +920,11 @@ U0 EdInsHexEd() class CEdBin { - U8 tag[512] fmtstr "$$DA-P,LEN=511," - "A=\"Tag Text :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; I64 bin_num fmtstr "$$DA,A=\"Bin Num:%d\"$$\n"; - U8 bin_ptr_link_file[512] fmtstr "$$DA-P,LEN=511,A=\"File:%s\"$$\n"; + U8 bin_ptr_link_file[512] fmtstr "$$DA-P,A=\"File:%s\"$$\n"; I64 bin_ptr_link_bin_num fmtstr "$$DA,A=\"File Bin Num:%d\"$$\n"; - U8 bin_ptr_link_tag[512] fmtstr "$$DA-P,LEN=511,A=\"File Bin Tag:%s\"$$\n"; + U8 bin_ptr_link_tag[512] fmtstr "$$DA-P,A=\"File Bin Tag:%s\"$$\n"; }; U0 EdInsBin(I64 bin_num,I64 type) @@ -970,7 +957,7 @@ U0 EdInsBin(I64 bin_num,I64 type) class CEdTree { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n"; I64 indent fmtstr "$$DA,A=\"Indention:%d\"$$\n"; Bool collapsed fmtstr "$$CB,\"Collapsed\"$$\n"; }; @@ -1055,7 +1042,7 @@ U0 EdInsWidgetWiz() #define EST_SPRITE_PTR 1 #define EST_DUP_SPRITE 2 #define EST_SPRITE_SIZE 3 -#define EST_SPRITE_MACRO 4 +#define EST_SPRITE_MACRO 4 #define EST_SPRITE_MENU 5 #define EST_SPRITE_LINK 6 @@ -1087,8 +1074,8 @@ I64 PopUpSpriteType() class CEdMacroSprite { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - exp[512] fmtstr "$$DA-P,LEN=511,A=\"Macro :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + exp[512] fmtstr "$$DA-P,A=\"Macro :%s\"$$\n"; Bool escape fmtstr "$$CB,\"Escape\"$$\n", popup fmtstr "$$CB,\"PopUp\"$$\n", is_auto fmtstr "$$CB,\"AutoStr\"$$\n"; @@ -1096,8 +1083,8 @@ class CEdMacroSprite class CEdMenuSprite { - U8 tag[512] fmtstr "$$DA-P,LEN=511,A=\"Tag Text :%s\"$$\n", - exp[512] fmtstr "$$DA-P,LEN=511,A=\"Expression :%s\"$$\n"; + U8 tag[512] fmtstr "$$DA-P,A=\"Tag Text :%s\"$$\n", + exp[512] fmtstr "$$DA-P,A=\"Expression :%s\"$$\n"; Bool escape fmtstr "$$CB,\"Escape\"$$\n", popup, is_auto; diff --git a/Adam/Gr/GrBitMap.CPP b/Adam/Gr/GrBitMap.CPP index efaeb7d..c76df4f 100644 --- a/Adam/Gr/GrBitMap.CPP +++ b/Adam/Gr/GrBitMap.CPP @@ -9,7 +9,7 @@ public Bool GrPlot0(CDC *dc=gr.dc,I64 x,I64 y) if (dc->flags & DCF_LOCATE_NEAREST) { dist=DistSqrI64(x,y,dc->cur_x,dc->cur_y); - if (distnearest_dist) { + if (dist<=dc->nearest_dist) { dc->nearest_dist=dist; dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } @@ -102,7 +102,7 @@ public I64 GrBlot(CDC *dc=gr.dc,I64 x,I64 y,CDC *img) } if (dc->flags & DCF_LOCATE_NEAREST) { dist=DistSqrI64(x+img->width>>1,y+img->height>>1,dc->cur_x,dc->cur_y); - if (distnearest_dist) { + if (dist<=dc->nearest_dist) { dc->nearest_dist=dist; dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } @@ -669,7 +669,7 @@ public I64 GrPutChar(CDC *dc=gr.dc,I64 x,I64 y,U8 ch) } if (dc->flags & DCF_LOCATE_NEAREST) { dist=DistSqrI64(x+w2>>1,y+h2>>1,dc->cur_x,dc->cur_y); - if (distnearest_dist) { + if (dist<=dc->nearest_dist) { dc->nearest_dist=dist; dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } @@ -961,7 +961,7 @@ public I64 GrRect(CDC *dc=gr.dc,I64 x,I64 y,I64 w,I64 h) dist=0; else dist=DistSqrI64(x+w>>1,y+h>>1,dc->cur_x,dc->cur_y); - if (distnearest_dist) { + if (dist<=dc->nearest_dist) { dc->nearest_dist=dist; dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } @@ -1515,7 +1515,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) !not_color && c==dc->color2) && plot) { if (dc->flags & DCF_LOCATE_NEAREST) { dist=DistSqrI64(x3,y3,dc->cur_x,dc->cur_y); - if (distnearest_dist) { + if (dist<=dc->nearest_dist) { dc->nearest_dist=dist; dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } @@ -1592,7 +1592,7 @@ I64 GrRayLen(CDC *dc,I64 *x1,I64 y,I64 z=0,I32 *db=NULL) !not_color && c==dc->color2) && plot) { if (dc->flags & DCF_LOCATE_NEAREST) { dist=DistSqrI64(x3,y3,dc->cur_x,dc->cur_y); - if (distnearest_dist) { + if (dist<=dc->nearest_dist) { dc->nearest_dist=dist; dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } @@ -1721,7 +1721,7 @@ public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0) else dist=SqrI64(dc->cur_x-x2); dist+=SqrI64(y-dc->cur_y); - if (distnearest_dist) { + if (dist<=dc->nearest_dist) { dc->nearest_dist=dist; dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } diff --git a/Adam/Gr/GrGlbls.CPP b/Adam/Gr/GrGlbls.CPP index 2f3205b..9d8ce8b 100644 --- a/Adam/Gr/GrGlbls.CPP +++ b/Adam/Gr/GrGlbls.CPP @@ -36,7 +36,8 @@ public class CGrGlbls I64 screen_zoom,sx,sy; //When zoomed, this keeps the mouse centered. - Bool continuous_scroll; + Bool continuous_scroll, + hide_row,hide_col; } gr; //See $LK,"RLf_VGA",A="FF:::/Kernel/KStart.CPP,RLf_VGA"$ diff --git a/Adam/Gr/GrPrimatives.CPP b/Adam/Gr/GrPrimatives.CPP index 9ce3adc..544bdef 100644 --- a/Adam/Gr/GrPrimatives.CPP +++ b/Adam/Gr/GrPrimatives.CPP @@ -384,7 +384,7 @@ public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z) } if (dc->flags & DCF_LOCATE_NEAREST) { dist=DistSqrI64(x,y,dc->cur_x,dc->cur_y); - if (distnearest_dist) { + if (dist<=dc->nearest_dist) { dc->nearest_dist=dist; dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; } diff --git a/Adam/Gr/GrScreen.CPP b/Adam/Gr/GrScreen.CPP index fd5612c..eedd922 100644 --- a/Adam/Gr/GrScreen.CPP +++ b/Adam/Gr/GrScreen.CPP @@ -172,7 +172,7 @@ U0 GrUpdateTextBG() Bool blink_flag=Blink; U8 *dst2=dst; - if (gr.pan_text_x) { + if (gr.pan_text_x||gr.hide_col) { gr.pan_text_x=ClampI64(gr.pan_text_x,-7,7); j=AbsI64(gr.pan_text_x)/FONT_WIDTH+1; num_cols-=j; @@ -197,7 +197,7 @@ U0 GrUpdateTextBG() } dst=dst2; - if (gr.pan_text_y) { + if (gr.pan_text_y||gr.hide_row) { gr.pan_text_y=ClampI64(gr.pan_text_y,-7,7); j=AbsI64(gr.pan_text_y)/FONT_HEIGHT+1; num_rows-=j; @@ -261,7 +261,7 @@ U0 GrUpdateTextFG() U8 *dst_start=gr.dc2->body,*dst_end=dst_start+w1*gr.dc2->height-7*w1-8; Bool blink_flag=Blink; - if (gr.pan_text_x) { + if (gr.pan_text_x||gr.hide_col) { gr.pan_text_x=ClampI64(gr.pan_text_x,-7,7); j=AbsI64(gr.pan_text_x)/FONT_WIDTH+1; num_cols-=j; @@ -273,7 +273,7 @@ U0 GrUpdateTextFG() w2+=j*FONT_WIDTH; } - if (gr.pan_text_y) { + if (gr.pan_text_y||gr.hide_row) { gr.pan_text_y=ClampI64(gr.pan_text_y,-7,7); j=AbsI64(gr.pan_text_y)/FONT_HEIGHT+1; num_rows-=j; diff --git a/Adam/Gr/SpriteCode.CPP b/Adam/Gr/SpriteCode.CPP index 0071f38..d4e1c24 100644 --- a/Adam/Gr/SpriteCode.CPP +++ b/Adam/Gr/SpriteCode.CPP @@ -238,7 +238,7 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) g.type=type; LexD2I32(cc,&g.pp.x1); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , LexD2I32(cc,&g.pp.x2); break; @@ -247,7 +247,7 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip { LexD2I32(cc,&g.pp.x1); if (cc->token!=':') - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); Lex(cc); //Skip : LexD2I32(cc,&g.pp.x2); g.ppa.x2+=g.pp.x1; @@ -289,7 +289,7 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) g.type=SPT_CIRCLE; LexD2I32(cc,&g.pr.x1); if (cc->token!=':') - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); Lex(cc); //Skip : g.pr.radius=LexExpressionI64(cc); break; @@ -297,17 +297,17 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip { g.pwhas.sides=LexExpressionI64(cc); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); case SPT_ELLIPSE: Lex(cc); //Skip { g.type=type; LexD2I32(cc,&g.pwha.x1); if (cc->token!=':') - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); Lex(cc); //Skip : LexD2I32(cc,&g.pwha.width); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , g.pwha.angle=ã/180*LexExpressionF64(cc); break; @@ -323,11 +323,11 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) g.type=type; LexD2I32(cc,&g.ps.x1); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); if (Lex(cc)==TK_STR) //Skip , st=LexExtStr(cc); else - LexExcept(cc,"expecting string at "); + LexExcept(cc,"Expecting string at "); size=SpriteElemQuedBaseSize(type); i=StrLen(st)+1; result=MAlloc(size+i); @@ -348,7 +348,7 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip , } if (g.nu.num<2) - LexExcept(cc,"expecting point at "); + LexExcept(cc,"Expecting point at "); size=SpriteElemQuedBaseSize(SPT_POLYLINE); result=MAlloc(size+g.nu.num*sizeof(CD2I32)); MemCpy(result,&g,size); @@ -377,7 +377,7 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip , } if (g.nu.num<2) - LexExcept(cc,"expecting point at "); + LexExcept(cc,"Expecting point at "); size=SpriteElemQuedBaseSize(type); result=MAlloc(size+g.nu.num*sizeof(CD3I32)); if (LexExpressionI64(cc)) { @@ -406,11 +406,11 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip { LexD2I32(cc,&g.npu.x); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); tempv=QueVectU8New; while (TRUE) { if (!(i=LexGetChar(cc))) - LexExcept(cc,"expecting '}' at "); + LexExcept(cc,"Expecting '}' at "); if (i=='}') break; if ('0'<=i<='7') @@ -431,16 +431,16 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip { LexD2I32(cc,&g.pwhu.x1); if (cc->token!=':') - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); Lex(cc); //Skip : LexD2I32(cc,&g.pwhu.width); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); tempv=QueVectU8New; num1=0; while (TRUE) { if (!(i=ToUpper(LexGetChar(cc)))) - LexExcept(cc,"expecting '}' at "); + LexExcept(cc,"Expecting '}' at "); if (i=='}') break; if ('0'<=i<='9') @@ -469,16 +469,16 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) if (LexExpressionI64(cc)) { g.type=SPT_SHIFTABLE_MESH; if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , LexD3I32(cc,&g.pmu.x); if (cc->token!=':') - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); Lex(cc); //Skip : } else { g.type=SPT_MESH; if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , } num1=0; @@ -492,7 +492,7 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip , } if (cc->token!=':') - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); Lex(cc); //Skip : num2=0; QueInit(&roott); @@ -503,19 +503,19 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Free(st); Lex(cc); //Skip color if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , tempt->nums[0]=LexExpressionI64(cc); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , tempt->nums[1]=LexExpressionI64(cc); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , tempt->nums[2]=LexExpressionI64(cc); if (cc->token!=')') - LexExcept(cc,"expecting ')' at "); + LexExcept(cc,"Expecting ')' at "); Lex(cc); //Skip ) QueIns(tempt,roott.last); num2++; @@ -553,9 +553,9 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) break; } if (cc->token!='}') - LexExcept(cc,"expecting '}' at "); + LexExcept(cc,"Expecting '}' at "); if (Lex(cc)!=';') - LexExcept(cc,"expecting ';' at "); + LexExcept(cc,"Expecting ';' at "); return result; } @@ -580,7 +580,7 @@ public U8 *Code2Sprite(CDoc *doc,I64 *_size=NULL) if (Lex(cc)=='{') //Skip ident QueIns(Code2SpriteElem(cc,i),root.last); } else if (cc->token) - LexExcept(cc,"expecting sprite element type name at "); + LexExcept(cc,"Expecting sprite element type name at "); } while (cc->token); okay=TRUE; } catch { diff --git a/Adam/Menu.CPP b/Adam/Menu.CPP index 3117a41..44f5610 100644 --- a/Adam/Menu.CPP +++ b/Adam/Menu.CPP @@ -62,9 +62,9 @@ CMenuEntry *MenuNewSub(CCmpCtrl *cc,CTask *task) if (cc->token!=',' && cc->token!=')') tempme->a2=LexExpressionI64(cc); if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); if (Lex(cc)!=';') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); Lex(cc); //Skip ; } else if (cc->token=='{') { Lex(cc); //Skip { @@ -73,11 +73,11 @@ CMenuEntry *MenuNewSub(CCmpCtrl *cc,CTask *task) while (tempse && cc->token!='}') tempse=tempse->next=MenuNewSub(cc,task); if (cc->token!='}') - LexExcept(cc,"missing '}' at "); + LexExcept(cc,"Missing '}' at "); else Lex(cc); //Skip } } else - LexExcept(cc,"expecting '{' at "); + LexExcept(cc,"Expecting '{' at "); } return tempme; } diff --git a/Adam/Opt/Utils/Find.CPP b/Adam/Opt/Utils/Find.CPP index cf65d19..f1200b1 100644 --- a/Adam/Opt/Utils/Find.CPP +++ b/Adam/Opt/Utils/Find.CPP @@ -197,14 +197,14 @@ public I64 FileOcc(U8 *needle_str, class CFind { - U8 find_text[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1," + U8 find_text[STR_LEN] fmtstr "$$DA-P," "A=\"FIND :%s\"$$\n"; - U8 replace_text[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1," + U8 replace_text[STR_LEN] fmtstr "$$DA-P," "A=\"REPLACE :%s\"$$\n"; Bool replace fmtstr "$$CB,\"REPLACE\"$$\n"; Bool match_case fmtstr "$$CB,\"MATCH CASE\"$$\n"; Bool whole_labels fmtstr "$$CB,\"WHOLE LABELS\"$$\n"; - U8 filemask[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"FILE MASK :%s\"$$\n"; + U8 filemask[STR_LEN] fmtstr "$$DA-P,A=\"FILE MASK :%s\"$$\n"; Bool recurse fmtstr "$$CB,\"RECURSE\"$$\n"; }; diff --git a/Apps/Budget/BgtEntry.CPP b/Apps/Budget/BgtEntry.CPP index eaf6981..c1b5d8c 100644 --- a/Apps/Budget/BgtEntry.CPP +++ b/Apps/Budget/BgtEntry.CPP @@ -23,11 +23,11 @@ U0 BgtIns(CBgtEntry *tempb) class CBgtEntryForm { - U8 date[512] fmtstr "$$DA-P,LEN=511,A=\"Date :%s\"$$\n"; + U8 date[512] fmtstr "$$DA-P,A=\"Date :%s\"$$\n"; F64 amount fmtstr "Amount $$$$$$DA,A=\"%6.2f\"$$\n"; - U8 credit[512] fmtstr "$$DA-P,LEN=511,A=\"Credit Acct:%s\"$$\n"; - U8 debit [512] fmtstr "$$DA-P,LEN=511,A=\"Debit Acct:%s\"$$\n"; - U8 desc [512] fmtstr "$$DA-P,LEN=511,A=\"Desc :%s\"$$\n"; + U8 credit[512] fmtstr "$$DA-P,A=\"Credit Acct:%s\"$$\n"; + U8 debit [512] fmtstr "$$DA-P,A=\"Debit Acct:%s\"$$\n"; + U8 desc [512] fmtstr "$$DA-P,A=\"Desc :%s\"$$\n"; }; CBgtEntry *BgtEntryPmt(CBgtEntry *dft=NULL) diff --git a/Apps/Budget/Budget.CPP b/Apps/Budget/Budget.CPP index 5ad24a6..33f7d70 100644 --- a/Apps/Budget/Budget.CPP +++ b/Apps/Budget/Budget.CPP @@ -42,10 +42,10 @@ class CBgtTemplate CBgtTemplate *next,*last; U0 start; - U16 type fmtstr "$$LS,RT=U16,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n"; + U16 type fmtstr "$$LS,D=\"ST_BGT_TEMPLATE_TYPES\"$$\n"; U16 flags; - U8 start_date[16] fmtstr "$$DA-P,LEN=15,A=\"Start Date:%s\"$$\n"; - U8 end_date[16] fmtstr "$$DA-P,LEN=15,A=\"End Date :%s\"$$\n"; + U8 start_date[16] fmtstr "$$DA-P,A=\"Start Date:%s\"$$\n"; + U8 end_date[16] fmtstr "$$DA-P,A=\"End Date :%s\"$$\n"; F64 period fmtstr "$$DA,A=\"Period :%6.2f\"$$\n"; U0 end; diff --git a/Apps/GrModels/BallGen.CPP b/Apps/GrModels/BallGen.CPP index 16ccc28..51288ee 100644 --- a/Apps/GrModels/BallGen.CPP +++ b/Apps/GrModels/BallGen.CPP @@ -13,7 +13,7 @@ class Ball class BallDefineStruct { - F64 radius fmtstr "$$DA-TRM,RT=F64,A=\"Radius :%8.3f\"$$\n"; + F64 radius fmtstr "$$DA-TRM,A=\"Radius :%8.3f\"$$\n"; I64 n_longitude fmtstr "$$DA-TRM,A=\"Longitude Faces:%5d\"$$\n"; I64 n_lattitude fmtstr "$$DA-TRM,A=\"Lattitude Rings:%5d\"$$\n"; }; diff --git a/Apps/GrModels/ManGen.CPP b/Apps/GrModels/ManGen.CPP index 17075a1..7dac487 100644 --- a/Apps/GrModels/ManGen.CPP +++ b/Apps/GrModels/ManGen.CPP @@ -14,66 +14,66 @@ class Man class ManDefineStruct { F64 head_rad fmtstr - "$$DA-TRM,RT=F64,A=\"Head Radius :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Head Radius :%8.3f\"$$\n"; F64 torso_len fmtstr - "$$DA-TRM,RT=F64,A=\"Torso Length :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Torso Length :%8.3f\"$$\n"; F64 arm_len fmtstr - "$$DA-TRM,RT=F64,A=\"Arm Length :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Arm Length :%8.3f\"$$\n"; F64 hand_len fmtstr - "$$DA-TRM,RT=F64,A=\"Hand Length :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Hand Length :%8.3f\"$$\n"; F64 leg_len fmtstr - "$$DA-TRM,RT=F64,A=\"Leg Length :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Leg Length :%8.3f\"$$\n"; F64 foot_len fmtstr - "$$DA-TRM,RT=F64,A=\"Foot Length :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Foot Length :%8.3f\"$$\n"; F64 torso_width fmtstr - "$$DA-TRM,RT=F64,A=\"Torso Width :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Torso Width :%8.3f\"$$\n"; F64 torso_depth fmtstr - "$$DA-TRM,RT=F64,A=\"Torso Depth :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Torso Depth :%8.3f\"$$\n"; F64 arm_rad fmtstr - "$$DA-TRM,RT=F64,A=\"Arm Radius :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Arm Radius :%8.3f\"$$\n"; F64 hand_rad fmtstr - "$$DA-TRM,RT=F64,A=\"Hand Radius :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Hand Radius :%8.3f\"$$\n"; F64 leg_rad fmtstr - "$$DA-TRM,RT=F64,A=\"Leg Radius :%8.3f\"$$\n"; + "$$DA-TRM,A=\"Leg Radius :%8.3f\"$$\n"; F64 foot_rad fmtstr - "$$DA-TRM,RT=F64,A=\"Foot Radius :%8.3f\"$$\n\n"; + "$$DA-TRM,A=\"Foot Radius :%8.3f\"$$\n\n"; F64 r_shoulder_a1 fmtstr - "$$DA-TRM,RT=F64,A=\"R.Shoulder Front/Back Angle:%8.3f\"$$\n"; + "$$DA-TRM,A=\"R.Shoulder Front/Back Angle:%8.3f\"$$\n"; F64 l_shoulder_a1 fmtstr - "$$DA-TRM,RT=F64,A=\"L.Shoulder Front/Back Angle:%8.3f\"$$\n"; + "$$DA-TRM,A=\"L.Shoulder Front/Back Angle:%8.3f\"$$\n"; F64 r_hip_a1 fmtstr - "$$DA-TRM,RT=F64,A=\"R.Hip Front/Back Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"R.Hip Front/Back Angle :%8.3f\"$$\n"; F64 l_hip_a1 fmtstr - "$$DA-TRM,RT=F64,A=\"L.Hip Front/Back Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"L.Hip Front/Back Angle :%8.3f\"$$\n"; F64 r_shoulder_a2 fmtstr - "$$DA-TRM,RT=F64,A=\"R.Shoulder Side Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"R.Shoulder Side Angle :%8.3f\"$$\n"; F64 l_shoulder_a2 fmtstr - "$$DA-TRM,RT=F64,A=\"L.Shoulder Side Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"L.Shoulder Side Angle :%8.3f\"$$\n"; F64 r_hip_a2 fmtstr - "$$DA-TRM,RT=F64,A=\"R.Hip Side Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"R.Hip Side Angle :%8.3f\"$$\n"; F64 l_hip_a2 fmtstr - "$$DA-TRM,RT=F64,A=\"L.Hip Side Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"L.Hip Side Angle :%8.3f\"$$\n"; F64 r_elbow_a fmtstr - "$$DA-TRM,RT=F64,A=\"R.Elbow Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"R.Elbow Angle :%8.3f\"$$\n"; F64 l_elbow_a fmtstr - "$$DA-TRM,RT=F64,A=\"L.Elbow Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"L.Elbow Angle :%8.3f\"$$\n"; F64 r_knee_a fmtstr - "$$DA-TRM,RT=F64,A=\"R.Knee Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"R.Knee Angle :%8.3f\"$$\n"; F64 l_knee_a fmtstr - "$$DA-TRM,RT=F64,A=\"L.Knee Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"L.Knee Angle :%8.3f\"$$\n"; F64 r_wrist_a fmtstr - "$$DA-TRM,RT=F64,A=\"R.Wrist Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"R.Wrist Angle :%8.3f\"$$\n"; F64 l_wrist_a fmtstr - "$$DA-TRM,RT=F64,A=\"L.Wrist Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"L.Wrist Angle :%8.3f\"$$\n"; F64 r_ankle_a fmtstr - "$$DA-TRM,RT=F64,A=\"R.Ankle Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"R.Ankle Angle :%8.3f\"$$\n"; F64 l_ankle_a fmtstr - "$$DA-TRM,RT=F64,A=\"L.Ankle Angle :%8.3f\"$$\n"; + "$$DA-TRM,A=\"L.Ankle Angle :%8.3f\"$$\n"; }; diff --git a/Compiler/Asm.CPP b/Compiler/Asm.CPP index b9e50c3..cdfa574 100644 --- a/Compiler/Asm.CPP +++ b/Compiler/Asm.CPP @@ -1,7 +1,7 @@ Bool PrsAsmImm(CCmpCtrl *cc,CAsmArg *arg) { if (arg->imm_or_off_present) - LexExcept(cc,"already one immediate at "); + LexExcept(cc,"Already one immediate at "); arg->imm_or_off_present=TRUE; arg->num.local_asm_undef_hash=NULL; arg->num.glbl_asm_undef_hash=NULL; @@ -146,8 +146,8 @@ pa_asm_direct_imm: goto pa_asm_indirect_imm; } else if (cc->token=='*') { Lex(cc); - if (cc->token!=TK_INTEGER) - LexExcept(cc,"expecting scale factor at "); + if (cc->token!=TK_INT) + LexExcept(cc,"Expecting scale factor at "); arg->scale=cc->cur_i64; Lex(cc); //skip scale if (arg->reg2!=REG_NONE) @@ -161,7 +161,7 @@ pa_asm_indirect_imm: } } if (cc->token!=']') - LexExcept(cc,"missing ']' at "); + LexExcept(cc,"Missing ']' at "); Lex(cc); //skip ] return; } else @@ -276,7 +276,7 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num, U8_avail); else if (!num2->imm_flag && !(MIN_I8<=num2->num.i<=MAX_I8)) - LexExcept(cc,"branch out of range at "); + LexExcept(cc,"Branch out of range at "); if (num2->imm_flag) { if (num2->num.abs_cnts.abs_addres&1) { tempa=CAlloc(sizeof(CAOTAbsAddr)); @@ -303,7 +303,7 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num, U8_avail); else if (!num2->imm_flag && !(MIN_I16<=num2->num.i<=MAX_I16)) - LexExcept(cc,"branch out of range at "); + LexExcept(cc,"Branch out of range at "); if (num2->imm_flag) { if (num2->num.abs_cnts.abs_addres&1) { tempa=CAlloc(sizeof(CAOTAbsAddr)); @@ -330,7 +330,7 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) num2->num.glbl_asm_undef_hash,cc->lex_include_stk->line_num, U8_avail); else if (!num2->imm_flag && !(MIN_I32<=num2->num.i<=MAX_I32)) - LexExcept(cc,"branch out of range at "); + LexExcept(cc,"Branch out of range at "); if (num2->imm_flag) { if (num2->num.abs_cnts.abs_addres&1) { tempa=CAlloc(sizeof(CAOTAbsAddr)); @@ -387,13 +387,13 @@ Bool AsmStoreNum(CCmpCtrl *cc,CAsmNum2 *num2,I64 cnt,Bool U8_avail) U8 asm_seg_prefixes[6]={0x26,0x2E,0x36,0x3E,0x64,0x65}; -Bool PrsAsmInstruction(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) +Bool PrsAsmInst(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) { CAOTCtrl *aotc=cc->aotc; I64 i,j,a1,a2,om,seg,arg1mask,arg2mask; CAsmArg *tempa1,*tempa2; Bool ModrM_complete,U8_avail=FALSE,found_second_possible=FALSE; - CInstruction *tempi; + CInst *tempi; CAsmIns cur,best; best.U8_cnt=255; @@ -406,12 +406,12 @@ Bool PrsAsmInstruction(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) arg2mask=AsmMakeArgMask(cc,&aotc->arg2); else arg2mask=1; - for (i=0;iinstruction_entry_cnt;i++) { + for (i=0;iinst_entry_cnt;i++) { tempi=&tempo->ins[i]; if (tempi->arg1==ARGT_REL8 || tempi->arg2==ARGT_REL8) U8_avail=TRUE; if (Bt(&arg1mask,tempi->arg1) && Bt(&arg2mask,tempi->arg2) && - (!(tempi->flags&IEF_NOT_IN_64_BIT) || aotc->seg_size!=64)) { + (!(tempi->flags&IEF_NOT_IN_64_BIT) || aotc->seg_size!=64)) { MemSet(&cur,0,sizeof(CAsmIns)); cur.tempi=tempi; ModrM_complete=FALSE; @@ -559,8 +559,7 @@ Bool PrsAsmInstruction(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) } } } - } else if (ARGT_REL8<=a1<=ARGT_REL32 || - ARGT_IMM8<=a1<=ARGT_IMM64 || + } else if (ARGT_REL8<=a1<=ARGT_REL32 || ARGT_IMM8<=a1<=ARGT_IMM64 || ARGT_UIMM8<=a1<=ARGT_UIMM64) { if (a1==ARGT_IMM64 || a2==ARGT_UIMM64) cur.REX|=8; @@ -596,12 +595,11 @@ Bool PrsAsmInstruction(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) cur.last_opcode_U8|=tempa2->fstk; } } - if (a1==ARGT_RM64 || a2==ARGT_RM64 || - a1==ARGT_M64 || a2==ARGT_M64 || + if (a1==ARGT_RM64 || a2==ARGT_RM64 || a1==ARGT_M64 || a2==ARGT_M64 || a1==ARGT_R64 || a2==ARGT_R64) cur.REX|=8; if (ARGT_RM8<=a1<=ARGT_RM64 || ARGT_RM8<=a2<=ARGT_RM64 || - ARGT_M8 <=a1<=ARGT_M64 || ARGT_M8 <=a2<=ARGT_M64) { + ARGT_M8<=a1<=ARGT_M64 || ARGT_M8<=a2<=ARGT_M64) { if (aotc->seg_size==16) cur.has_addr_prefix=TRUE; cur.has_ModrM=TRUE; @@ -801,11 +799,11 @@ Bool PrsAsmInstruction(CCmpCtrl *cc,CHashOpcode *tempo,I64 argcnt) if (!AsmStoreNum(cc,&best.imm,1,U8_avail)) return FALSE; } - if (tempi->flags&IEF_ENDING_ZERO) //ENTER instruction + if (tempi->flags&IEF_ENDING_ZERO) //ENTER inst AOTStoreCodeU8(cc,0); return TRUE; } - LexExcept(cc,"invalid instruction at "); + LexExcept(cc,"Invalid inst at "); } U0 PrsAsmDefine(CCmpCtrl *cc,I64 U8_cnt) @@ -853,11 +851,11 @@ U0 PrsAsmDefine(CCmpCtrl *cc,I64 U8_cnt) cc->hash_entry->user_data0==AKW_DUP) { is_dup=TRUE; if (Lex(cc)!='(') - LexExcept(cc,"expecting '(' at "); + LexExcept(cc,"Expecting '(' at "); Lex(cc); //skip ( dup_val=AsmLexExpression(cc); if (cc->token!=')') - LexExcept(cc,"expecting ')' at "); + LexExcept(cc,"Expecting ')' at "); Lex(cc); //SKIP ) } } @@ -866,7 +864,7 @@ U0 PrsAsmDefine(CCmpCtrl *cc,I64 U8_cnt) num2.num.abs_cnts=cc->abs_cnts; if (is_dup) { if (num2.num.local_asm_undef_hash || num2.num.glbl_asm_undef_hash) - LexExcept(cc,"undefined DUP cnt at "); + LexExcept(cc,"Undefined DUP cnt at "); num2.num.i=dup_val; AsmStoreNum(cc,&num2,i,FALSE); } else { @@ -878,7 +876,7 @@ U0 PrsAsmDefine(CCmpCtrl *cc,I64 U8_cnt) Lex(cc); } if (cc->token!=';') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); Lex(cc); } @@ -887,14 +885,14 @@ U0 PrsBinFile(CCmpCtrl *cc) I64 i,size; U8 *buf,*st; if (cc->token!=TK_STR) - LexExcept(cc,"expecting string at "); + LexExcept(cc,"Expecting string at "); st=DftExt(cc->cur_str,"BIN"); buf=FileRead(st,&size); Free(st); for (i=0;iflags|=CCF_ASM_EXPRESSIONS; if (!(cmp_flags&CMPF_ONE_ASM_INS)) { if (cc->token!='{') - LexExcept(cc,"expecting '{' at "); + LexExcept(cc,"Expecting '{' at "); Lex(cc); } while (cc->token && cc->token!='}') { @@ -925,7 +923,7 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) case AKW_IMPORT: while (cc->token && cc->token!=';') { if (cc->token!=TK_IDENT) - LexExcept(cc,"expecting identifier at "); + LexExcept(cc,"Expecting identifier at "); else { tempex=NULL; tempex=CAlloc(sizeof(CHashExport)); @@ -939,7 +937,7 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) } } if (cc->token!=';') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); Lex(cc); //skip ';'; break; case AKW_MODULE_ORG: @@ -963,7 +961,7 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) if (j>aotc->max_align_bits) aotc->max_align_bits=j; i=CeilU64(aotc->ip,i); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); k=AsmLexExpression(cc); for (j=aotc->ip;jseg_size=64; break; default: - LexExcept(cc,"syntax error at "); + LexExcept(cc,"Syntax error at "); } } else if (cc->hash_entry->type & HTT_OPCODE) { tempo=cc->hash_entry; @@ -1015,7 +1013,7 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) if (tempo->ins[0].arg2) { argcnt++; if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); else { Lex(cc); //skip ',' if (ARGT_REL8<=tempo->ins[0].arg2<=ARGT_REL32) @@ -1025,13 +1023,13 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) } } } - PrsAsmInstruction(cc,tempo,argcnt); + PrsAsmInst(cc,tempo,argcnt); } else if (cc->hash_entry->type & HTT_EXPORT_SYS_SYM) { if (Btr(&cc->hash_entry->type,HTf_UNRESOLVED)) { if (cc->hash_entry->type & HTF_LOCAL) { cc->hash_entry(CHashExport *)->val=aotc->ip; if (Lex(cc)!=':') - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); Lex(cc); } else { if (cc->hash_entry->type & HTF_IMPORT) @@ -1040,7 +1038,7 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) next_last_label=cc->hash_entry->str; Lex(cc); //Skip cur_str if (cc->token!=':' && cc->token!=TK_DBL_COLON) - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); if (cc->token==TK_DBL_COLON) { cc->hash_entry->type|=HTF_EXPORT; HashSrcFileSet(cc,cc->hash_entry); @@ -1053,12 +1051,12 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) } else if (cc->hash_entry(CHashExport *)->val==aotc->ip) { Lex(cc); //Skip cur_str if (cc->token!=':' && cc->token!=TK_DBL_COLON) - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); Lex(cc); } else - LexExcept(cc,"redefinition at "); + LexExcept(cc,"Redefinition at "); } else - LexExcept(cc,"syntax error at "); + LexExcept(cc,"Syntax error at "); } else if (cc->token==TK_IDENT) { tempex=CAlloc(sizeof(CHashExport)); tempex->str=cc->cur_str; @@ -1067,11 +1065,11 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) tempex->val=aotc->ip; Lex(cc); //Skip cur_str if (cc->token!=':' && cc->token!=TK_DBL_COLON) - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); else { if (*tempex->str=='@' && tempex->str[1]=='@') { if (cc->token==TK_DBL_COLON) - LexExcept(cc,"no local glbl exports at "); + LexExcept(cc,"No local glbl exports at "); HashAdd(tempex,cc->htc.local_hash_table); } else HashAdd(tempex,cc->htc.glbl_hash_table); @@ -1099,7 +1097,7 @@ U0 PrsAsmBlk(CCmpCtrl *cc,I64 cmp_flags) } else if (cc->token==';') Lex(cc); else - LexExcept(cc,"syntax error at "); + LexExcept(cc,"Syntax error at "); if (cmp_flags&CMPF_ONE_ASM_INS && (cc->token!=TK_IDENT || !(tempo=cc->hash_entry) || !(tempo->type&(HTT_OPCODE|HTT_ASM_KEYWORD)))) diff --git a/Compiler/AsmInit.CPP b/Compiler/AsmInit.CPP index 08c3323..073fd30 100644 --- a/Compiler/AsmInit.CPP +++ b/Compiler/AsmInit.CPP @@ -1,4 +1,4 @@ -U0 AsmPrsInsFlags(CCmpCtrl *cc,CInstruction *tempi) +U0 AsmPrsInsFlags(CCmpCtrl *cc,CInst *tempi) { I64 i; while (TRUE) { @@ -9,7 +9,7 @@ U0 AsmPrsInsFlags(CCmpCtrl *cc,CInstruction *tempi) break; } else return; - case TK_INTEGER: + case TK_INT: if (cc->cur_i64==16) tempi->flags|=IEF_OP_SIZE16; else if (cc->cur_i64==32) @@ -20,7 +20,7 @@ U0 AsmPrsInsFlags(CCmpCtrl *cc,CInstruction *tempi) case '+': tempi->flags|=IEF_PLUS_OPCODE; case '/': - if (Lex(cc)==TK_INTEGER && cc->cur_i64<8) + if (Lex(cc)==TK_INT && cc->cur_i64<8) tempi->slash_val=cc->cur_i64; else if (cc->token==TK_IDENT) { if (!StrCmp(cc->cur_str,"R")) @@ -49,13 +49,13 @@ U0 AsmPrsInsFlags(CCmpCtrl *cc,CInstruction *tempi) U0 AsmHashLoad() {//See $LK,"::/Compiler/OpCodes.TXT"$. - I64 i,j,size,size1; + I64 i,j,size,size_max; CInternalType *tempit; CCmpCtrl *cc; CHashGeneric *temph; CHashReg *tempr; - CHashOpcode *tempo,*tempo1; - CInstruction *tempi; + CHashOpcode *tempo,*tempo2,*tempo_max; + CInst *tempi; CHashClass *tempc; cmp.size_arg_mask[0]=0x3FF0FFFFFE; @@ -65,42 +65,57 @@ U0 AsmHashLoad() cmp.size_arg_mask[8]=0x0880888880; cmp.asm_hash=HashTableNew(1024); - size1=offset(CHashOpcode.ins)+sizeof(CInstruction)<<5; - tempo=MAlloc(size1); + size_max=offset(CHashOpcode.ins)+sizeof(CInst)<<5; + tempo_max=MAlloc(size_max); cc=CmpCtrlNew(FileRead("OpCodes.TXT"),,"OpCodes.TXT.Z"); cc->htc.hash_table_lst=NULL; Lex(cc); while (cc->token) { if (cc->token!=TK_IDENT) - LexExcept(cc,"expecting identifier at "); + LexExcept(cc,"Expecting identifier at "); i=LstMatch(cc->cur_str,"R8\0R16\0R32\0R64\0SEG\0FSTK\0" "MM\0XMM\0OPCODE\0KEYWORD\0ASM_KEYWORD\0"); if (i<0) LexExcept(cc,"Unknown Stmt"); Lex(cc); //skip keyword if (cc->token!=TK_IDENT) - LexExcept(cc,"expecting identifier at "); + LexExcept(cc,"Expecting identifier at "); switch (i) { - case 8: //OPCODE - MemSet(tempo,0,size1); - tempo->type=HTT_OPCODE; - tempo->instruction_entry_cnt=0; - tempo->str=cc->cur_str; + case REGT_R8...REGT_XMM: + tempr=CAlloc(sizeof(CHashReg)); + tempr->str=cc->cur_str; + cc->cur_str=NULL; + Lex(cc); //skip keyword name + if (cc->token!=TK_INT) + LexExcept(cc,"Expecting int at "); + tempr->type=HTT_REG; + tempr->reg_type=i; + tempr->reg_num=cc->cur_i64; + HashAdd(tempr,cmp.asm_hash); + Lex(cc); //Skip INT + break; + case: //OPCODE + if (cc->token!=TK_IDENT) + LexExcept(cc,"Expecting opcode at "); + MemSet(tempo_max,0,size_max); + tempo_max->type=HTT_OPCODE; + tempo_max->inst_entry_cnt=0; + tempo_max->str=cc->cur_str; cc->cur_str=0; Lex(cc); //Skip OPCODE - while (cc->token && cc->token!=';') { - tempi=&tempo->ins[tempo->instruction_entry_cnt]; - tempi->ins_entry_num=tempo->instruction_entry_cnt++; + while (cc->token && cc->token!=';' && cc->token!=':') { + tempi=&tempo_max->ins[tempo_max->inst_entry_cnt]; + tempi->ins_entry_num=tempo_max->inst_entry_cnt++; tempi->slash_val=SV_NONE; //Not zero!! - while (cc->token==TK_INTEGER) { + while (cc->token==TK_INT) { tempi->opcode[tempi->opcode_cnt++]=cc->cur_i64; Lex(cc); } if (cc->token==',') Lex(cc); else if (cc->token!=';') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); AsmPrsInsFlags(cc,tempi); @@ -136,24 +151,34 @@ U0 AsmHashLoad() } } } - size=offset(CHashOpcode.ins)+ - sizeof(CInstruction)*tempo->instruction_entry_cnt; - - tempo1=MAlloc(size); - MemCpy(tempo1,tempo,size); - tempo1->use_cnt=0; - if (HashFind(tempo1->str,cmp.asm_hash,HTT_OPCODE)) + size=offset(CHashOpcode.ins)+sizeof(CInst)*tempo_max->inst_entry_cnt; + tempo=MAlloc(size); + MemCpy(tempo,tempo_max,size); + tempo->use_cnt=0; + if (HashFind(tempo->str,cmp.asm_hash,HTT_OPCODE)) LexExcept(cc,"Duplicate OPCODE entry "); - HashAdd(tempo1,cmp.asm_hash); + HashAdd(tempo,cmp.asm_hash); + //Parse aliases. + if (cc->token==':') { + while (Lex(cc)==TK_IDENT) { + tempo2=MAllocIdentical(tempo); + tempo2->str=cc->cur_str; + cc->cur_str=0; + tempo2->oc_flags|=OCF_ALIAS; + if (HashFind(tempo2->str,cmp.asm_hash,HTT_OPCODE)) + LexExcept(cc,"Duplicate OPCODE ALIAS entry "); + HashAdd(tempo2,cmp.asm_hash); + } + } break; - case 9: //KEYWORD - case 10: //ASM_KEYWORD + case: //KEYWORD + case: //ASM_KEYWORD temph=CAlloc(sizeof(CHashGeneric)); temph->str=cc->cur_str; cc->cur_str=NULL; Lex(cc); //skip keyword name - if (cc->token!=TK_INTEGER) - LexExcept(cc,"expecting integer at "); + if (cc->token!=TK_INT) + LexExcept(cc,"Expecting int at "); temph->user_data0=cc->cur_i64; if (i==9) temph->type=HTT_KEYWORD; @@ -162,32 +187,12 @@ U0 AsmHashLoad() HashAdd(temph,cmp.asm_hash); Lex(cc); //Skip INT break; - case REGT_R8: - case REGT_R16: - case REGT_R32: - case REGT_R64: - case REGT_SEG: - case REGT_FSTK: - case REGT_MM: - case REGT_XMM: - tempr=CAlloc(sizeof(CHashReg)); - tempr->str=cc->cur_str; - cc->cur_str=NULL; - Lex(cc); //skip keyword name - if (cc->token!=TK_INTEGER) - LexExcept(cc,"expecting integer at "); - tempr->type=HTT_REG; - tempr->reg_type=i; - tempr->reg_num=cc->cur_i64; - HashAdd(tempr,cmp.asm_hash); - Lex(cc); //Skip INT - break; } if (cc->token!=';') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); Lex(cc); //Skip ';' } - Free(tempo); + Free(tempo_max); CmpCtrlDel(cc); for (i=0;iaotc; - I64 i=aotc->ip>>AOT_BIN_BLK_BITS, - j=(aotc->ip+sizeof(U32))>>AOT_BIN_BLK_BITS; + I64 i=aotc->ip>>AOT_BIN_BLK_BITS,j=(aotc->ip+sizeof(U32))>>AOT_BIN_BLK_BITS; U32 *_d; CAOTBinBlk *tempbin; if (i!=j) @@ -69,8 +68,7 @@ U0 AOTStoreCodeU32(CCmpCtrl *cc,U32 d) U0 AOTStoreCodeU64(CCmpCtrl *cc,U64 q) { CAOTCtrl *aotc=cc->aotc; - I64 i=aotc->ip>>AOT_BIN_BLK_BITS, - j=(aotc->ip+sizeof(I64))>>AOT_BIN_BLK_BITS, + I64 i=aotc->ip>>AOT_BIN_BLK_BITS,j=(aotc->ip+sizeof(I64))>>AOT_BIN_BLK_BITS, *_q; CAOTBinBlk *tempbin; if (i!=j) @@ -139,7 +137,7 @@ I64 AsmLexExpression(CCmpCtrl *cc) if (cc->abs_cnts.externs) LexExcept(cc,"Extern Not Allowed at "); if (cc->flags & CCF_UNRESOLVED) - LexExcept(cc,"undefined sym at "); + LexExcept(cc,"Undefined sym at "); result=Call(machine_code); Free(machine_code); } diff --git a/Compiler/AsmResolve.CPP b/Compiler/AsmResolve.CPP index 3cb2e95..019360f 100644 --- a/Compiler/AsmResolve.CPP +++ b/Compiler/AsmResolve.CPP @@ -16,11 +16,11 @@ U0 AsmResolve(CCmpCtrl *cc,CAsmUnresolvedRef *tempu,U8 *label,Bool undefined) } tempauh=tempauh->next; //Technically, more than one won't work. } - } else if (!(tempu->type&1)) {//Rel? + } else if (!(tempu->type&IEF_IMM_NOT_REL)) { r-=tempu->rel_ip; if (tempu->type==IET_REL_I8 && !(MIN_I8<=r<=MAX_I8) || tempu->type==IET_REL_I16 && !(MIN_I16<=r<=MAX_I16)) { - PrintErr("branch out of range at line:%04d %s\n", + PrintErr("Branch out of range at line:%04d %s\n", tempu->line_num,label); LexExcept(cc); } @@ -53,7 +53,7 @@ U0 AOTLocalsResolve(CCmpCtrl *cc) tempauh=tempu->asm_undef_hash; while (tempauh) { if (tempauh->hash->type & HTF_UNRESOLVED) { - PrintErr("undefined sym at line:%04d %s %s\n", + PrintErr("Undefined sym at line:%04d %s %s\n", tempu->line_num,aotc->last_label,tempauh->hash->str); LexExcept(cc); } @@ -94,8 +94,7 @@ U0 AOTGlblsResolve(CCmpCtrl *cc,CAOT *tempaot) while (tempauh) { if (tempauh->hash->type & HTF_UNRESOLVED) { tempex=tempauh->hash; - if (tempex->type & HTT_EXPORT_SYS_SYM && - tempex->type & HTF_UNRESOLVED && + if (tempex->type & HTT_EXPORT_SYS_SYM&& tempex->type & HTF_UNRESOLVED && !(tempex->type & HTF_IMPORT) && (tempf=HashFind(tempex->str,cc->htc.hash_table_lst,HTT_FUN)) && !Bt(&tempf->flags,Cf_EXTERN)) { @@ -108,7 +107,7 @@ U0 AOTGlblsResolve(CCmpCtrl *cc,CAOT *tempaot) tempex->type|=HTF_GOTO_LABEL; tempex->use_cnt++; } else { - PrintErr("undefined sym at line:%04d %s\n", + PrintErr("Undefined sym at line:%04d %s\n", tempu->line_num,tempex->str); LexExcept(cc); } @@ -150,7 +149,7 @@ U0 AOTGlblsResolve(CCmpCtrl *cc,CAOT *tempaot) } } else if (tempex->type & (HTF_EXPORT|HTF_RESOLVE)) { if (tempex->type & HTF_UNRESOLVED) { - PrintErr("undefined sym at %s\n",tempex->str); + PrintErr("Undefined sym at %s\n",tempex->str); LexExcept(cc); } if (tempex->type & HTF_RESOLVE) { diff --git a/Compiler/BackA.CPP b/Compiler/BackA.CPP index 877f0fc..63a391c 100644 --- a/Compiler/BackA.CPP +++ b/Compiler/BackA.CPP @@ -1,5 +1,5 @@ -U0 ICAddEct(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, - I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,I64 op,I64 ip) +U0 ICAddEct(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, + CICType t2,I64 r2,I64 d2,CICType t3,I64 r3,I64 d3,I64 op,I64 ip) { I64 i,temp,result_reg=REG_RAX; Bool swap=FALSE; @@ -9,11 +9,10 @@ U0 ICAddEct(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, SwapI64(&r2,&r3); SwapI64(&d2,&d3); } - if (t2&RT_MASK>=RT_I64 && r2!=result_reg && - TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) { - if (t1&TY_MASK==TY_REG && !(r2==r1 && TY_REG<=t2&TY_MASK<=TY_SIB)) + if (t2.raw_type>=RT_I64 && r2!=result_reg && t2&MDG_REG_DISP_SIB_RIP) { + if (t1&MDF_REG && !(r2==r1 && t2&MDG_REG_DISP_SIB)) result_reg=r1; - ICMov(tempi,TY_REG+RT_I64,result_reg,0,t3,r3,d3,ip); + ICMov(tempi,MDF_REG+RT_I64,result_reg,0,t3,r3,d3,ip); i=ICModr1(result_reg,t2,r2,d2); if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); @@ -21,26 +20,26 @@ U0 ICAddEct(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, ICU16(tempi,i.u8[2]<<8+op); ICModr2(tempi,i,d2,ip+4); } else { - if (t2&TY_MASK==TY_REG) + if (t2&MDF_REG) temp=r2; else temp=REG_RCX; - if (t1&TY_MASK==TY_REG) + if (t1&MDF_REG) result_reg=r1; if (temp==result_reg) result_reg=REG_RDX; - if (swap ^^ tempi->ic_flags & ICF_A1_FIRST) { - if (r3==temp && TY_REG<=t3&TY_MASK<=TY_SIB) + if (swap) { + if (r3==temp && t3&MDG_REG_DISP_SIB) temp=REG_RCX; - ICMov(tempi,TY_REG+RT_I64,temp,0,t2,r2,d2,ip); - ICMov(tempi,TY_REG+RT_I64,result_reg,0,t3,r3,d3,ip); + ICMov(tempi,MDF_REG+RT_I64,temp,0,t2,r2,d2,ip); + ICMov(tempi,MDF_REG+RT_I64,result_reg,0,t3,r3,d3,ip); } else { - if (r2==result_reg && TY_REG<=t2&TY_MASK<=TY_SIB) + if (r2==result_reg && t2&MDG_REG_DISP_SIB) result_reg=REG_RDX; - ICMov(tempi,TY_REG+RT_I64,result_reg,0,t3,r3,d3,ip); - ICMov(tempi,TY_REG+RT_I64,temp,0,t2,r2,d2,ip); + ICMov(tempi,MDF_REG+RT_I64,result_reg,0,t3,r3,d3,ip); + ICMov(tempi,MDF_REG+RT_I64,temp,0,t2,r2,d2,ip); } i=0x48; if (result_reg>7) @@ -51,19 +50,19 @@ U0 ICAddEct(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, ICU8(tempi,OC_LOCK_PREFIX); ICU24(tempi,0xC00000+i+(temp&7)<<16+(result_reg&7)<<19+op<<8); } - ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,result_reg,0,ip); } -U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, - I64 t2,I64 r2,I64 d2,I64 d,I64 op,I64 ip) +U0 ICAddSubEctImm(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, + CICType t2,I64 r2,I64 d2,I64 d,I64 op,I64 ip) { I64 i,r; if (op.u8[0]==0x2B) { op=0x0003; d=-d; } - if (t1&TY_MASK==TY_REG) { - if (t2&TY_MASK!=TY_REG) { + if (t1&MDF_REG) { + if (!(t2&MDF_REG)) { ICMov(tempi,t1,r1,d1,t2,r2,d2,ip); t2=t1; r2=r1; @@ -95,18 +94,18 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, } if (op.u8[0]==0x03 && MIN_I32<=d<=MAX_I32 && !Bt(&cmp.non_ptr_vars_mask,r2)) { - i=ICModr1(r1,TY_DISP+RT_I64,r2,d); + i=ICModr1(r1,MDF_DISP+RT_I64,r2,d); i.u8[1]|=0x48; ICU24(tempi,i.u8[2]<<16+0x8D00+i.u8[1]); ICModr2(tempi,i,d,ip+4); return; } } - switch (t1>>4) { - case TY_REG>>4: - case TY_DISP>>4: - case TY_SIB>>4: - case TY_RIP_DISP32>>4: + switch (Bsr(t1)) { + case MDf_REG: + case MDf_DISP: + case MDf_SIB: + case MDf_RIP_DISP32: if (t1!=t2 || r1!=r2 || d1!=d2) { ICMov(tempi,t1,r1,d1,t2,r2,d2,ip); t2=t1; @@ -114,8 +113,7 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, d2=d1; } - if (!d && - (op.u8[0]==0x03||op.u8[0]==0x2B||op.u8[0]==0x33||op.u8[0]==0x0B)) + if (!d &&(op.u8[0]==0x03||op.u8[0]==0x2B||op.u8[0]==0x33||op.u8[0]==0x0B)) return; r=op.u8[1]; //not a reg but a slash val if (op.u8[0]==0x03 && d==-1) //add -1 @@ -123,9 +121,9 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, if (op.u8[0]==0x03 && (d==1 || d==-1)) { //Add i=ICModr1(r,t1,r1,d1); - if (t1!=TY_REG && tempi->ic_flags&ICF_LOCK) + if (!(t1&MDF_REG) && tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); - switch (t1&RT_MASK) { + switch (t1.raw_type) { case RT_I8: case RT_U8: ICRex(tempi,i.u8[1]); @@ -143,11 +141,11 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, ICModr2(tempi,i,d1,ip+4); return; } - if (MIN_I8<=d<=MAX_I8 || t1&(RT_MASK-1)==RT_I8) { + if (MIN_I8<=d<=MAX_I8 || t1&(RTG_MASK-RTF_UNSIGNED)==RT_I8) { i=ICModr1(r,t1,r1,d1); if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); - switch (t1&RT_MASK) { + switch (t1.raw_type) { case RT_I8: case RT_U8: ICRex(tempi,i.u8[1]); @@ -166,11 +164,11 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, ICU8(tempi,d); return; } - if (MIN_I32<=d<=MAX_I32 || t1&RT_MASKic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); - switch (t1&RT_MASK) { + switch (t1.raw_type) { case RT_I16: case RT_U16: ICOpSizeRex(tempi,i.u8[1]); @@ -180,32 +178,32 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, ICRex(tempi,i.u8[1]); ICU16(tempi,i.u8[2]<<8+0x81); } - if (i.u8[0]!=MDR_RIP_REL) + if (i.u8[0]!=MODR_RIP_REL) ICModr2(tempi,i,d1,); else { - if (t1&(RT_MASK-1)==RT_I16) + if (t1&(RTG_MASK-RTF_UNSIGNED)==RT_I16) ICU32(tempi,d1-(ip+tempi->ic_cnt+6)); else ICU32(tempi,d1-(ip+tempi->ic_cnt+8)); tempi->ic_flags&=~ICF_CODE_FINAL; } - if (t1&(RT_MASK-1)==RT_I16) + if (t1&(RTG_MASK-RTF_UNSIGNED)==RT_I16) ICU16(tempi,d); else ICU32(tempi,d); return; } break; - case TY_STK>>4: - ICAddSubEctImm(tempi,TY_REG+RT_I64,REG_RAX,0,t2,r2,d2,d,op,ip); + case MDf_STK: + ICAddSubEctImm(tempi,MDF_REG+RT_I64,REG_RAX,0,t2,r2,d2,d,op,ip); ICPushRegs(tempi,1<=RT_I64 && r2.u8[0]!=REG_RAX && - (t2&TY_MASK!=TY_SIB || r2.u8[1]&15!=REG_RAX) && - TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); + if (t2.raw_type>=RT_I64 && r2.u8[0]!=REG_RAX && + (!(t2&MDF_SIB) || r2.u8[1]&15!=REG_RAX) && t2&MDG_REG_DISP_SIB_RIP) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); if (!swap) { op=0x03; ICU24(tempi,0xD8F748); @@ -229,44 +226,24 @@ U0 ICSub(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, ICRex(tempi,i.u8[1]); ICU16(tempi,i.u8[2]<<8+op); ICModr2(tempi,i,d2,ip+4); - ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,REG_RAX,0,ip); } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - if (t3&TY_MASK!=TY_REG || t3&RT_MASKic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICU24(tempi,0xC00000+i+(r3&7)<<16+(r2&7)<<19+op<<8); - ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,r2,0,ip); + ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,r2,0,ip); } } @@ -287,23 +264,25 @@ U0 ICMul(CIntermediateCode *tempi,I64 ip) { I64 i,r2,r=REG_RAX,j; CICArg *a1,*a2; - if (tempi->a1.type&TY_MASK==TY_IMM) { + Bool alt; + if (tempi->a1.type&MDF_IMM) { a1=&tempi->a2; a2=&tempi->a1; - tempi->ic_flags|=ICF_A1_FIRST; + alt=TRUE; } else { a1=&tempi->a1; a2=&tempi->a2; + alt=FALSE; } i=a2->disp; - if (!(tempi->ic_class->raw_type&1) && - a2->type&TY_MASK==TY_IMM && MIN_I32<=i<=MAX_I32) { - if (tempi->r.type==TY_REG+RT_I64) { + if (!(tempi->ic_class->raw_type&RTF_UNSIGNED) && + a2->type&MDF_IMM && MIN_I32<=i<=MAX_I32) { + if (tempi->r.type==MDF_REG+RT_I64) { ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, a1->type,a1->reg,a1->disp,ip); r=tempi->r.reg; } else - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip); if (r>7) j=0xC0004D; else @@ -315,19 +294,18 @@ U0 ICMul(CIntermediateCode *tempi,I64 ip) ICU32(tempi,i); } } else { - if (tempi->ic_class->raw_type&1) + if (tempi->ic_class->raw_type&RTF_UNSIGNED) i=0xE0F748; else i=0xE8F748; - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); + if (alt) { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); r2=REG_RCX; - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - if (a1->type&TY_MASK!=TY_REG || - a1->type&RT_MASKtype,a1->reg,a1->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + if (!(a1->type&MDF_REG) || a1->type.raw_typetype,a1->reg,a1->disp,ip); r2=REG_RCX; } else r2=a1->reg; @@ -338,20 +316,20 @@ U0 ICMul(CIntermediateCode *tempi,I64 ip) } ICU24(tempi,i+r2<<16); } - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+RT_I64,r,0,ip); + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,MDF_REG+RT_I64,r,0,ip); } U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) { I64 i=tempi->a2.disp,r=REG_RAX,j; - if (!(tempi->ic_class->raw_type&1) && - tempi->a2.type&TY_MASK==TY_IMM && MIN_I32<=i<=MAX_I32) { - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (tempi->a1.type==TY_REG+RT_I64) + if (!(tempi->ic_class->raw_type&RTF_UNSIGNED) && + tempi->a2.type&MDF_IMM && MIN_I32<=i<=MAX_I32) { + if (tempi->ic_flags & ICF_BY_VAL) { + if (tempi->a1.type==MDF_REG+RT_I64) r=tempi->a1.reg; else - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); if (r>7) j=0xC0004D; @@ -363,13 +341,13 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) ICU24(tempi,0x6900+j+(r&7)<<16+(r&7)<<19); ICU32(tempi,i); } - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,r,0,ip); + ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,r,0,ip); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, + MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); r=REG_RBX; if (MIN_I8<=i<=MAX_I8) ICU32(tempi,i<<24+0xDB6B48); @@ -377,68 +355,46 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) ICU24(tempi,0xDB6948); ICU32(tempi,i); } - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, - TY_REG+RT_I64,REG_RBX,0,ip); + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0, + MDF_REG+RT_I64,REG_RBX,0,ip); } } else { - if (tempi->ic_class->raw_type&1) + if (tempi->ic_class->raw_type&RTF_UNSIGNED) i=0xE3F748; else i=0xEBF748; - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - } + if (tempi->ic_flags & ICF_BY_VAL) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + tempi->a1.reg,tempi->a1.disp,ip); ICU24(tempi,i); - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - } - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, + MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); ICU24(tempi,i); - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, - TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0, + MDF_REG+RT_I64,REG_RAX,0,ip); } } - if (tempi->r.type&TY_MASK) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+RT_I64,r,0,ip); + if (tempi->r.type.mode) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,MDF_REG+RT_I64,r,0,ip); } U0 ICDiv(CIntermediateCode *tempi,I64 ip) { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - } - if (tempi->ic_class->raw_type&1) { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + if (tempi->ic_class->raw_type&RTF_UNSIGNED) { ICZero(tempi,REG_RDX); ICU24(tempi,0xF1F748); } else { @@ -446,26 +402,18 @@ U0 ICDiv(CIntermediateCode *tempi,I64 ip) ICU24(tempi,0xF9F748); } ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) { - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - } - if (tempi->ic_class->raw_type&1) { + if (tempi->ic_flags & ICF_BY_VAL) { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + tempi->a1.reg,tempi->a1.disp,ip); + if (tempi->ic_class->raw_type&RTF_UNSIGNED) { ICZero(tempi,REG_RDX); ICU24(tempi,0xF1F748); } else { @@ -473,28 +421,20 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) ICU24(tempi,0xF9F748); } if (is_mod) - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RDX,0,ip); + ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,REG_RDX,0,ip); else - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICU24(tempi,0xD98748); //xchg bx,cx - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); //dangerous might clobber RBX in Mov, but it doesn't - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+tempi->a1.type_pointed_to, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+tempi->a1.type_pointed_to, REG_RBX,0,ip); - if (tempi->ic_class->raw_type&1) { + if (tempi->ic_class->raw_type&RTF_UNSIGNED) { ICZero(tempi,REG_RDX); ICU24(tempi,0xF1F748); } else { @@ -502,36 +442,29 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) ICU24(tempi,0xF9F748); } if (is_mod) - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RBX,0, - TY_REG+RT_I64,REG_RDX,0,ip); + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RBX,0, + MDF_REG+RT_I64,REG_RDX,0,ip); else - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RBX,0, - TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RBX,0, + MDF_REG+RT_I64,REG_RAX,0,ip); } - if (tempi->r.type&TY_MASK) { + if (tempi->r.type.mode) { if (is_mod) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RDX,0,ip); + MDF_REG+RT_I64,REG_RDX,0,ip); else ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } } U0 ICMod(CIntermediateCode *tempi,I64 ip) { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - } - if (tempi->ic_class->raw_type&1) { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + if (tempi->ic_class->raw_type&RTF_UNSIGNED) { ICZero(tempi,REG_RDX); ICU24(tempi,0xF1F748); } else { @@ -539,35 +472,33 @@ U0 ICMod(CIntermediateCode *tempi,I64 ip) ICU24(tempi,0xF9F748); } ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RDX,0,ip); + MDF_REG+RT_I64,REG_RDX,0,ip); } -U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed_to, - I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2, - I64 t3,I64 r3,I64 d3,I64 op,I64 ip) +U0 ICAddSubEctEqu(CIntermediateCode *tempi,U8 type_pointed_to, + CICType t1,I64 r1,I64 d1,CICType t2,I64 r2,I64 d2, + CICType t3,I64 r3,I64 d3,I64 op,I64 ip) { Bool done; I64 result_reg,temp,i; - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (t3&TY_MASK==TY_IMM) { - ICAddSubEctImm(tempi, - t2&TY_MASK+type_pointed_to,r2,d2,t2&TY_MASK+ + if (tempi->ic_flags & ICF_BY_VAL) { + if (t3&MDF_IMM) { + ICAddSubEctImm(tempi,t2&MDG_MASK+type_pointed_to,r2,d2,t2&MDG_MASK+ type_pointed_to,r2,d2,d3,op,ip); - if (t1&TY_MASK) - ICMov(tempi,t1,r1,d1,t2&TY_MASK+type_pointed_to,r2,d2,ip); + if (t1.mode) + ICMov(tempi,t1,r1,d1,t2&MDG_MASK+type_pointed_to,r2,d2,ip); return; } else { done=FALSE; if (type_pointed_to>=RT_I64) { - if (!(t1&TY_MASK) && - TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) { - if (t3&TY_MASK==TY_REG) + if (!t1.mode && t2&MDG_REG_DISP_SIB_RIP) { + if (t3&MDF_REG) temp=r3; else { temp=REG_RCX; - ICMov(tempi,TY_REG+RT_I64,temp,0,t3,r3,d3,ip); + ICMov(tempi,MDF_REG+RT_I64,temp,0,t3,r3,d3,ip); } - i=ICModr1(temp,t2&TY_MASK+type_pointed_to,r2,d2); + i=ICModr1(temp,t2&MDG_MASK+type_pointed_to,r2,d2); if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICRex(tempi,i.u8[1]); @@ -575,44 +506,32 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed_to, ICModr2(tempi,i,d2,ip+4); return; } - if (t3&RT_MASK>=RT_I64 && - TY_REG<=t3&TY_MASK<=TY_RIP_DISP32) { - if (t2&TY_MASK==TY_REG) + if (t3.raw_type>=RT_I64 && t3&MDG_REG_DISP_SIB_RIP) { + if (t2&MDF_REG) result_reg=r2; else { result_reg=REG_RCX; - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); } - i=ICModr1(result_reg,t3&TY_MASK+type_pointed_to,r3,d3); + i=ICModr1(result_reg,t3&MDG_MASK+type_pointed_to,r3,d3); if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICRex(tempi,i.u8[1]); ICU16(tempi,i.u8[2]<<8+op.u8[0]); ICModr2(tempi,i,d3,ip+4); - ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2, - TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,t2&MDG_MASK+type_pointed_to,r2,d2, + MDF_REG+RT_I64,result_reg,0,ip); done=TRUE; } } if (!done) { - if (tempi->ic_flags & ICF_A1_FIRST) { - if (t2&TY_MASK==TY_REG && r2!=REG_RAX) - result_reg=r2; - else { - result_reg=REG_RCX; - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - t2&TY_MASK+type_pointed_to,r2,d2,ip); - } - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); - if (t2&TY_MASK==TY_REG && r2!=REG_RAX) - result_reg=r2; - else { - result_reg=REG_RCX; - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - t2&TY_MASK+type_pointed_to,r2,d2,ip); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); + if (t2&MDF_REG && r2!=REG_RAX) + result_reg=r2; + else { + result_reg=REG_RCX; + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + t2&MDG_MASK+type_pointed_to,r2,d2,ip); } if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); @@ -621,35 +540,35 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed_to, else ICU8(tempi,0x48); ICU16(tempi,0xC000+op.u8[0]+(result_reg&7)<<11); - ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2, - TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,t2&MDG_MASK+type_pointed_to,r2,d2, + MDF_REG+RT_I64,result_reg,0,ip); } } } else { done=FALSE; - if (t3&TY_MASK==TY_IMM && op.u8[2]) { + if (t3&MDF_IMM && op.u8[2]) { if (!d3.u32[1]) { if (tempi->ic_flags&ICF_NO_DEPEND_RESULT && - t2&TY_MASK==TY_REG && d3(U64)<=MAX_I8) { - ICSlashOp(tempi,TY_DISP+type_pointed_to,r2,0,0x838000+op.u8[4],ip); + t2&MDF_REG && d3(U64)<=MAX_I8) { + ICSlashOp(tempi,MDF_DISP+type_pointed_to,r2,0,0x838000+op.u8[4],ip); ICU8(tempi,d3); done=TRUE; } else if (op.u8[2]==0x24) {//AND - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_DISP+type_pointed_to,REG_RCX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + MDF_DISP+type_pointed_to,REG_RCX,0,ip); result_reg=REG_RAX; if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICU16(tempi,op.u8[3]<<8+0x40); ICU32(tempi,d3); - ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0, - TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,MDF_DISP+type_pointed_to,REG_RCX,0, + MDF_REG+RT_I64,result_reg,0,ip); done=TRUE; - } else if (type_pointed_to&RT_MASKic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); @@ -663,48 +582,46 @@ U0 ICAddSubEctEqu(CIntermediateCode *tempi,I64 type_pointed_to, ICU16(tempi,op.u8[2]<<8+0x40); ICU8(tempi,d3); } - ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0, - TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,MDF_DISP+type_pointed_to,REG_RCX,0, + MDF_REG+RT_I64,result_reg,0,ip); done=TRUE; } } } if (!done) { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); - } - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,TY_DISP+type_pointed_to,REG_RCX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,t3,r3,d3,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, + MDF_DISP+type_pointed_to,REG_RCX,0,ip); result_reg=REG_RBX; if (tempi->ic_flags&ICF_LOCK) ICU8(tempi,OC_LOCK_PREFIX); ICU8(tempi,0x48); ICU16(tempi,0xC000+op.u8[0]+(result_reg&7)<<11); - ICMov(tempi,TY_DISP+type_pointed_to,REG_RCX,0, - TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,MDF_DISP+type_pointed_to,REG_RCX,0, + MDF_REG+RT_I64,result_reg,0,ip); } } - if (t1&TY_MASK) - ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,result_reg,0,ip); + if (t1.mode) + ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,result_reg,0,ip); } -U0 ICShift(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, - I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3,I64 us,I64 is,I64 ip) +U0 ICShift(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, + CICType t2,I64 r2,I64 d2,CICType t3,I64 r3,I64 d3, + I64 us,I64 is,I64 ip) { I64 i=0x48,result_reg; - if (tempi->ic_class->raw_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + if (tempi->ic_class->raw_type&RTF_UNSIGNED || + tempi->ic_flags & ICF_USE_UNSIGNED) is=us; - if (t1&TY_MASK==TY_REG) { + if (t1&MDF_REG) { result_reg=r1; if (result_reg>7) i++; } else result_reg=REG_RAX; - if (t3&TY_MASK==TY_IMM) { - ICMov(tempi,TY_REG+RT_I64,result_reg,0,t2,r2,d2,ip); + if (t3&MDF_IMM) { + ICMov(tempi,MDF_REG+RT_I64,result_reg,0,t2,r2,d2,ip); if (d3==1) ICU24(tempi,i+is.u16[2]<<8+(result_reg&7)<<16); else { @@ -712,52 +629,37 @@ U0 ICShift(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1, ICU8(tempi,d3); } } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,result_reg,0,t2,r2,d2,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); - ICMov(tempi,TY_REG+RT_I64,result_reg,0,t2,r2,d2,ip); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); + ICMov(tempi,MDF_REG+RT_I64,result_reg,0,t2,r2,d2,ip); ICU24(tempi,i+is.u16[1]<<8+(result_reg&7)<<16); } - ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,result_reg,0,ip); } -U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed_to, - I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,I64 t3,I64 r3,I64 d3, - I64 us,I64 is,I64 ip) +U0 ICShiftEqu(CIntermediateCode *tempi,U8 type_pointed_to, + CICType t1,I64 r1,I64 d1, + CICType t2,I64 r2,I64 d2, + CICType t3,I64 r3,I64 d3,I64 us,I64 is,I64 ip) { I64 result_reg; - if (tempi->ic_class->raw_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + if (tempi->ic_class->raw_type&RTF_UNSIGNED || + tempi->ic_flags & ICF_USE_UNSIGNED) is=us; - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (tempi->ic_flags & ICF_A1_FIRST) { - if (t2&TY_MASK==TY_REG) - result_reg=r2; - else { - result_reg=REG_RAX; - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - t2&TY_MASK+type_pointed_to,r2,d2,ip); - } - if (t3&TY_MASK!=TY_IMM) - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); - } else { - if (t3&TY_MASK!=TY_IMM) - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); - if (t2&TY_MASK==TY_REG) - result_reg=r2; - else { - result_reg=REG_RAX; - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - t2&TY_MASK+type_pointed_to,r2,d2,ip); - } + if (tempi->ic_flags & ICF_BY_VAL) { + if (!(t3&MDF_IMM)) + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); + if (t2&MDF_REG) + result_reg=r2; + else { + result_reg=REG_RAX; + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + t2&MDG_MASK+type_pointed_to,r2,d2,ip); } if (result_reg>7) ICU8(tempi,0x49); else ICU8(tempi,0x48); - if (t3&TY_MASK==TY_IMM) { + if (t3&MDF_IMM) { if (d3==1) ICU16(tempi,is.u16[2]+(result_reg&7)<<8); else { @@ -766,21 +668,16 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed_to, } } else ICU16(tempi,is.u16[1]+(result_reg&7)<<8); - ICMov(tempi,t2&TY_MASK+type_pointed_to,r2,d2,TY_REG+RT_I64,result_reg,0,ip); + ICMov(tempi,t2&MDG_MASK+type_pointed_to,r2,d2, + MDF_REG+RT_I64,result_reg,0,ip); } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip); - if (t3&TY_MASK!=TY_IMM) - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); - } else { - if (t3&TY_MASK!=TY_IMM) - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip); - } - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed_to,REG_RDX,0,ip); + if (!(t3&MDF_IMM)) + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t3,r3,d3,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+type_pointed_to,REG_RDX,0,ip); result_reg=REG_RAX; ICU8(tempi,0x48); - if (t3&TY_MASK==TY_IMM) { + if (t3&MDF_IMM) { if (d3==1) ICU16(tempi,is.u16[2]+(result_reg&7)<<8); else { @@ -790,8 +687,8 @@ U0 ICShiftEqu(CIntermediateCode *tempi,I64 type_pointed_to, } else ICU16(tempi,is.u16[1]+(result_reg&7)<<8); ICMov(tempi, - TY_DISP+type_pointed_to,REG_RDX,0,TY_REG+RT_I64,result_reg,0,ip); + MDF_DISP+type_pointed_to,REG_RDX,0,MDF_REG+RT_I64,result_reg,0,ip); } - if (t1&TY_MASK) - ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,result_reg,0,ip); + if (t1.mode) + ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,result_reg,0,ip); } diff --git a/Compiler/BackB.CPP b/Compiler/BackB.CPP index 37f30df..3ae071b 100644 --- a/Compiler/BackB.CPP +++ b/Compiler/BackB.CPP @@ -1,55 +1,43 @@ U0 ICUnaries(CIntermediateCode *tempi,I64 op,I64 ip) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICSlashOp(tempi,TY_REG+RT_I64,REG_RAX,0,op,ip); + ICSlashOp(tempi,MDF_REG+RT_I64,REG_RAX,0,op,ip); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICNot(CIntermediateCode *tempi,I64 ip) { I64 i; - if (tempi->a1.type&RT_MASK<=RT_U8 && - TY_DISP<=tempi->a1.type&TY_MASK<=TY_RIP_DISP32) { + if (tempi->a1.type.raw_type<=RT_U8 && tempi->a1.type&MDG_DISP_SIB_RIP) { i=ICModr1(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp); ICRex(tempi,i.u8[1]); ICU16(tempi,i.u8[2]<<8+0xF6); //TEST ?,0xFF ICModr2(tempi,i,tempi->a1.disp,ip+5); ICU8(tempi,0xFF); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); ICTest(tempi,REG_RAX); } ICU24(tempi,0xC0940F); //SETZ AL ICU32(tempi,0xC0B60F48); //MOVZX RAX,AL ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_U64,REG_RAX,0,ip); + MDF_REG+RT_U64,REG_RAX,0,ip); } U0 ICAndAnd(CIntermediateCode *tempi,I64 ip) { I64 r2; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->a1.type&TY_MASK!=TY_REG || tempi->a1.reg==REG_RAX) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - r2=REG_RDX; - } else - r2=tempi->a1.reg; - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->a1.type&TY_MASK!=TY_REG || tempi->a1.reg==REG_RAX) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - r2=REG_RDX; - } else - r2=tempi->a1.reg; - } + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + if (!(tempi->a1.type&MDF_REG) || tempi->a1.reg==REG_RAX) { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + r2=REG_RDX; + } else + r2=tempi->a1.reg; ICZero(tempi,REG_RAX); ICTest(tempi,r2); ICU16(tempi,0x0874); @@ -57,31 +45,20 @@ U0 ICAndAnd(CIntermediateCode *tempi,I64 ip) ICU16(tempi,0x0374); ICU24(tempi,0xC0FF48); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICOrOr(CIntermediateCode *tempi,I64 ip) { I64 i=0x48,r2; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->a1.type&TY_MASK!=TY_REG || tempi->a1.reg==REG_RAX) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - r2=REG_RDX; - } else - r2=tempi->a1.reg; - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->a1.type&TY_MASK!=TY_REG || tempi->a1.reg==REG_RAX) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - r2=REG_RDX; - } else - r2=tempi->a1.reg; - } + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + if (!(tempi->a1.type&MDF_REG) || tempi->a1.reg==REG_RAX) { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + r2=REG_RDX; + } else + r2=tempi->a1.reg; if (r2>7) { i++; @@ -92,31 +69,20 @@ U0 ICOrOr(CIntermediateCode *tempi,I64 ip) ICU16(tempi,0x0374); ICU24(tempi,0xC0FF48); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICXorXor(CIntermediateCode *tempi,I64 ip) { I64 r2; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->a1.type&TY_MASK!=TY_REG) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - r2=REG_RDX; - } else - r2=tempi->a1.reg; - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->a1.type&TY_MASK!=TY_REG) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - r2=REG_RDX; - } else - r2=tempi->a1.reg; - } + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + if (!(tempi->a1.type&MDF_REG)) { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); + r2=REG_RDX; + } else + r2=tempi->a1.reg; ICZero(tempi,REG_RBX); ICTest(tempi,r2); ICU16(tempi,0x0374); @@ -130,16 +96,16 @@ U0 ICXorXor(CIntermediateCode *tempi,I64 ip) ICU24(tempi,0xC33348); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICCmp(CIntermediateCode *tempi,I64 us,I64 is,I64 ip) { I64 r1,d1,r2,i=0x48,j=tempi->a2.disp; - if (tempi->a2.type&TY_MASK==TY_IMM && MIN_I32<=j<=MAX_I32) { + if (tempi->a2.type&MDF_IMM && MIN_I32<=j<=MAX_I32) { if (!(tempi->ic_flags&(ICF_POP_CMP|ICF_PUSH_CMP)) && - tempi->a1.type&TY_MASK==TY_DISP && //TODO - tempi->a1.type&RT_MASK>=RT_I64 && tempi->a1.reg!=REG_RAX) { + tempi->a1.type&MDF_DISP && //TODO + tempi->a1.type.raw_type>=RT_I64 && tempi->a1.reg!=REG_RAX) { r1=tempi->a1.reg; d1=tempi->a1.disp; ICZero(tempi,REG_RAX); @@ -167,10 +133,10 @@ U0 ICCmp(CIntermediateCode *tempi,I64 us,I64 is,I64 ip) ICPopRegs(tempi,1<a1.type&TY_MASK==TY_REG && tempi->a1.reg!=REG_RAX) + if (tempi->a1.type&MDF_REG && tempi->a1.reg!=REG_RAX) r1=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); r1=REG_RCX; } @@ -187,53 +153,32 @@ U0 ICCmp(CIntermediateCode *tempi,I64 us,I64 is,I64 ip) } } if (tempi->ic_flags & ICF_PUSH_CMP) - ICPush(tempi,TY_IMM+RT_I64,0,j,ip); - if (tempi->ic_class->raw_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + ICPush(tempi,MDF_IMM+RT_I64,0,j,ip); + if (tempi->ic_class->raw_type&RTF_UNSIGNED || + tempi->ic_flags & ICF_USE_UNSIGNED) is=us; ICU16(tempi,0x300+is); ICU24(tempi,0xC0FF48); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->ic_flags & ICF_POP_CMP) { - ICPopRegs(tempi,1<a1.type&TY_MASK==TY_REG && tempi->a1.reg!=REG_RAX) - r1=tempi->a1.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - r1=REG_RCX; - } - } - if (tempi->a2.type&TY_MASK==TY_REG && tempi->a2.reg!=REG_RAX) - r2=tempi->a2.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - r2=REG_RDX; - } + if (tempi->a2.type&MDF_REG && tempi->a2.reg!=REG_RAX) + r2=tempi->a2.reg; + else { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + r2=REG_RCX; + } + if (tempi->ic_flags & ICF_POP_CMP) { + ICPopRegs(tempi,1<a2.type&TY_MASK==TY_REG && tempi->a2.reg!=REG_RAX) - r2=tempi->a2.reg; + if (tempi->a1.type&MDF_REG && tempi->a1.reg!=REG_RAX) + r1=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - r2=REG_RCX; - } - if (tempi->ic_flags & ICF_POP_CMP) { - ICPopRegs(tempi,1<a1.type,tempi->a1.reg,tempi->a1.disp,ip); r1=REG_RDX; - } else { - if (tempi->a1.type&TY_MASK==TY_REG && tempi->a1.reg!=REG_RAX) - r1=tempi->a1.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - r1=REG_RDX; - } } } ICZero(tempi,REG_RAX); @@ -244,12 +189,13 @@ U0 ICCmp(CIntermediateCode *tempi,I64 us,I64 is,I64 ip) if (tempi->ic_flags & ICF_PUSH_CMP) ICPushRegs(tempi,1<ic_class->raw_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + if (tempi->ic_class->raw_type&RTF_UNSIGNED || + tempi->ic_flags & ICF_USE_UNSIGNED) is=us; ICU16(tempi,0x300+is); ICU24(tempi,0xC0FF48); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } } @@ -258,85 +204,50 @@ U0 ICBitOps(CIntermediateCode *tempi,CICArg *a1,CICArg *a2, {//TODO:not fully utilizing Modr Bool no_depend=ToBool(tempi2->ic_flags&ICF_NO_DEPEND_RESULT); I64 r1,t2,r2,d2,i=0x48; - if (tempi->ic_flags & ICF_NOT_ADDR) { - t2=a2->type&TY_MASK+RT_I64; //TODO: check overflow + if (tempi->ic_flags & ICF_BY_VAL) { + t2=a2->type&MDG_MASK+RT_I64; //TODO: check overflow r2=a2->reg; d2=a2->disp; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (a1->type&TY_MASK==TY_REG && (a1->reg!=REG_RAX||no_depend)) - r1=a1->reg; - else if (a1->type&TY_MASK!=TY_IMM || a1->disp>63) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - r1=REG_RCX; - } else - r1=0; - if (!(TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) || - !(r2.u8[0]!=REG_RAX&&(t2&TY_MASK!=TY_SIB||r2.u8[1]&15!=REG_RAX)|| - no_depend)) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,t2,r2,d2,ip); - t2=TY_REG+RT_I64; - r2=REG_RDX; - d2=0; - } - } else { - if (!(TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) || - !(r2.u8[0]!=REG_RAX&&(t2&TY_MASK!=TY_SIB||r2.u8[1]&15!=REG_RAX)|| - no_depend)) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); - t2=TY_REG+RT_I64; - r2=REG_RCX; - d2=0; - } - if (a1->type&TY_MASK==TY_REG && (a1->reg!=REG_RAX||no_depend)) - r1=a1->reg; - else if (a1->type&TY_MASK!=TY_IMM || a1->disp>63) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); - r1=REG_RDX; - } else - r1=0; + if (!(t2&MDG_REG_DISP_SIB_RIP) || !(r2.u8[0]!=REG_RAX&&(!(t2&MDF_SIB) || + r2.u8[1]&15!=REG_RAX) || no_depend)) { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip); + t2=MDF_REG+RT_I64; + r2=REG_RCX; + d2=0; } + if (a1->type&MDF_REG && (a1->reg!=REG_RAX||no_depend)) + r1=a1->reg; + else if (!(a1->type&MDF_IMM) || a1->disp>63) { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); + r1=REG_RDX; + } else + r1=0; } else { - t2=TY_DISP+RT_I64; + t2=MDF_DISP+RT_I64; d2=0; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (a1->type&TY_MASK==TY_REG && (a1->reg!=REG_RAX||no_depend)) - r1=a1->reg; - else if (a1->type&TY_MASK!=TY_IMM || a1->disp>63) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - r1=REG_RCX; - } else - r1=0; - if (a2->type&TY_MASK==TY_REG && (a2->reg!=REG_RAX||no_depend)) - r2=a2->reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a2->type,a2->reg,a2->disp,ip); - r2=REG_RDX; - } - } else { - if (a2->type&TY_MASK==TY_REG && (a2->reg!=REG_RAX||no_depend)) - r2=a2->reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip); - r2=REG_RCX; - } - if (a1->type&TY_MASK==TY_REG && (a1->reg!=REG_RAX||no_depend)) - r1=a1->reg; - else if (a1->type&TY_MASK!=TY_IMM || a1->disp>63) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); - r1=REG_RDX; - } else - r1=0; + if (a2->type&MDF_REG && (a2->reg!=REG_RAX||no_depend)) + r2=a2->reg; + else { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip); + r2=REG_RCX; } + if (a1->type&MDF_REG && (a1->reg!=REG_RAX||no_depend)) + r1=a1->reg; + else if (!(a1->type&MDF_IMM) || a1->disp>63) { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); + r1=REG_RDX; + } else + r1=0; } if (!no_depend) ICZero(tempi,REG_RAX); if (tempi->ic_flags&ICF_LOCK && op!=0xA30F) ICU8(tempi,OC_LOCK_PREFIX); - if (a1->type&TY_MASK==TY_IMM && a1->disp<32) - t2=t2&TY_MASK+RT_U32; + if (a1->type&MDF_IMM && a1->disp<32) + t2=t2&MDG_MASK+RT_U32; i=ICModr1(r1,t2,r2,d2); ICRex(tempi,i.u8[1]); - if (a1->type&TY_MASK==TY_IMM && a1->disp<64) { + if (a1->type&MDF_IMM && a1->disp<64) { ICU24(tempi,i.u8[2]<<16+op_imm); ICModr2(tempi,i,d2,ip+5); ICU8(tempi,a1->disp); @@ -346,15 +257,15 @@ U0 ICBitOps(CIntermediateCode *tempi,CICArg *a1,CICArg *a2, } if (!no_depend) { ICU32(tempi,0xD08348); - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } } U0 ICToUpper(CIntermediateCode *tempi,I64 ip) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); ICU32(tempi,0x61F88348); ICU16(tempi,0x0A7C); @@ -378,10 +289,10 @@ U0 ICToF64(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) U0 ICToBool(CCmpCtrl *,CIntermediateCode *tempi,I64 ip) { I64 r; - if (tempi->a1.type&TY_MASK==TY_REG) + if (tempi->a1.type&MDF_REG) r=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); r=REG_RAX; } @@ -394,40 +305,40 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip) { I64 r; CHashClass *tempc=tempi->ic_class,*tempc1=tempc-1; - if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->ic_flags & ICF_BY_VAL) { if (tempc->ptr_stars_cnt && tempc1->size!=1) { ICAddSubEctImm(tempi, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,tempc1->size,op.u16[3],ip); } else ICSlashOp(tempi, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,op,ip); - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); } else { - if (tempi->a1.type&TY_MASK==TY_REG) + if (tempi->a1.type&MDF_REG) r=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); r=REG_RCX; } if (tempc->ptr_stars_cnt && tempc1->size!=1) { - ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0, - TY_DISP+tempi->a1.type_pointed_to,r,0, + ICAddSubEctImm(tempi,MDF_DISP+tempi->a1.type_pointed_to,r,0, + MDF_DISP+tempi->a1.type_pointed_to,r,0, tempc1->size,op.u16[3],ip); } else ICSlashOp(tempi, - TY_DISP+tempi->a1.type_pointed_to,r,0,op,ip); - if (tempi->r.type&TY_MASK) + MDF_DISP+tempi->a1.type_pointed_to,r,0,op,ip); + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+tempi->a1.type_pointed_to,r,0,ip); + MDF_DISP+tempi->a1.type_pointed_to,r,0,ip); } } @@ -435,82 +346,83 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) { I64 r; CHashClass *tempc=tempi->ic_class,*tempc1=tempc-1; - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (tempi->r.type&TY_MASK) + if (tempi->ic_flags & ICF_BY_VAL) { + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); if (tempc->ptr_stars_cnt && tempc1->size!=1) ICAddSubEctImm(tempi, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,tempc1->size,op.u16[3],ip); else ICSlashOp(tempi, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,op,ip); } else { - if (tempi->a1.type&TY_MASK==TY_REG && - !(tempi->r.type&TY_MASK==TY_REG && tempi->r.reg==tempi->a1.reg)) + if (tempi->a1.type&MDF_REG && + !(tempi->r.type&MDF_REG && tempi->r.reg==tempi->a1.reg)) r=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); r=REG_RCX; } - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+tempi->a1.type_pointed_to,r,0,ip); + MDF_DISP+tempi->a1.type_pointed_to,r,0,ip); if (tempc->ptr_stars_cnt && tempc1->size!=1) - ICAddSubEctImm(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0, - TY_DISP+tempi->a1.type_pointed_to,r,0,tempc1->size,op.u16[3],ip); + ICAddSubEctImm(tempi,MDF_DISP+tempi->a1.type_pointed_to,r,0, + MDF_DISP+tempi->a1.type_pointed_to,r,0,tempc1->size,op.u16[3],ip); else - ICSlashOp(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0,op,ip); + ICSlashOp(tempi,MDF_DISP+tempi->a1.type_pointed_to,r,0,op,ip); } } U0 ICDerefPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) { - I64 t,r; + CICType t; + I64 r; CHashClass *tempc1=tempi->ic_class; - t=tempi->r.type&RT_MASK; + t=tempi->r.type.raw_type; if (t>tempi->a1.type_pointed_to) t=tempi->a1.type_pointed_to; - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (tempi->a1.type&TY_MASK==TY_REG) + if (tempi->ic_flags & ICF_BY_VAL) { + if (tempi->a1.type&MDF_REG) r=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); r=REG_RDX; } ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+t,r,0,ip); + MDF_DISP+t,r,0,ip); if (tempc1->size!=1) ICAddSubEctImm(tempi, - tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp, - tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp, + tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp, + tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp, tempc1->size,op.u16[3],ip); else ICSlashOp(tempi, - tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,op,ip); + tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,op,ip); } else { - if (tempi->a1.type&TY_MASK==TY_REG) + if (tempi->a1.type&MDF_REG) r=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); r=REG_RCX; } - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_DISP+RT_I64,r,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_I64,r,0,ip); if (tempc1->size!=1) - ICAddSubEctImm(tempi,TY_DISP+RT_I64,r,0,TY_DISP+RT_I64,r,0, + ICAddSubEctImm(tempi,MDF_DISP+RT_I64,r,0,MDF_DISP+RT_I64,r,0, tempc1->size,op.u16[3],ip); else - ICSlashOp(tempi,TY_DISP+RT_I64,r,0,op,ip); + ICSlashOp(tempi,MDF_DISP+RT_I64,r,0,op,ip); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+t,REG_RDX,0,ip); + MDF_DISP+t,REG_RDX,0,ip); } } @@ -518,70 +430,72 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) { CHashClass *tempc1=tempi->ic_class2-1; I64 r; - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (tempi->a1.type&TY_MASK==TY_REG) + if (tempi->ic_flags & ICF_BY_VAL) { + if (tempi->a1.type&MDF_REG) r=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); r=REG_RDX; } - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,r,0, + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,r,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempc1->size!=1 || tempi->a1.type&TY_MASK==TY_STK) + if (tempc1->size!=1 || tempi->a1.type&MDF_STK) ICAddSubEctImm(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - TY_REG+RT_I64,r,0,tempc1->size,op.u16[3],ip); + MDF_REG+RT_I64,r,0,tempc1->size,op.u16[3],ip); else ICSlashOp(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp,op,ip); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_DISP+RT_I64,REG_RDX,0,ip); - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_I64,REG_RDX,0,ip); + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); if (tempc1->size!=1) - ICAddSubEctImm(tempi,TY_DISP+RT_I64,REG_RDX,0, - TY_REG+RT_I64,REG_RCX,0,tempc1->size,op.u16[3],ip); + ICAddSubEctImm(tempi,MDF_DISP+RT_I64,REG_RDX,0, + MDF_REG+RT_I64,REG_RCX,0,tempc1->size,op.u16[3],ip); else - ICSlashOp(tempi,TY_DISP+RT_I64,REG_RDX,0,op,ip); + ICSlashOp(tempi,MDF_DISP+RT_I64,REG_RDX,0,op,ip); } } U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip, I64 us,I64 is,I64 not_us,I64 not_is,U8 *buf,I64 ip2) { - I64 r1,r2,i=0x48,j,t1,t2,result_reg; + I64 r1,r2,i=0x48,j,result_reg; + CICType t1,t2; Bool short_jmp,swap,done; CCodeMisc *lb; CICArg *a1=&tempi->a1,*a2=&tempi->a2; j=a1->disp; - if (a1->type&TY_MASK==TY_IMM && MIN_I32<=j<=MAX_I32) { + if (a1->type&MDF_IMM && MIN_I32<=j<=MAX_I32) { SwapI64(&a1,&a2); swap=TRUE; us=not_us; is=not_is; } else swap=FALSE; - if (tempi->ic_class->raw_type&1 || tempi->ic_flags & ICF_USE_UNSIGNED) + if (tempi->ic_class->raw_type&RTF_UNSIGNED || + tempi->ic_flags & ICF_USE_UNSIGNED) is=us; j=a2->disp; - if (a2->type&TY_MASK==TY_IMM && MIN_I32<=j<=MAX_I32) { - if (!has_result && TY_REG<=a1->type&TY_MASK<=TY_RIP_DISP32) + if (a2->type&MDF_IMM && MIN_I32<=j<=MAX_I32) { + if (!has_result && a1->type&MDG_REG_DISP_SIB_RIP) ICAddSubEctImm(tempi,a1->type,a1->reg,a1->disp, a1->type,a1->reg,a1->disp,j,0x073B,ip2); else { - if (a1->type&TY_MASK==TY_REG) + if (a1->type&MDF_REG) r1=a1->reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); r1=REG_RDX; } if (!j) { @@ -613,7 +527,7 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip, } if (has_result) { if (!swap) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_IMM+RT_I64,0,j,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_IMM+RT_I64,0,j,ip2); result_reg=REG_RCX; } else result_reg=r1; @@ -624,10 +538,9 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip, r1=a1->reg; r2=a2->reg; t2=a2->type; - if (t2&RT_MASK>=RT_I64 && !has_result && - TY_DISP<=t2&TY_MASK<=TY_RIP_DISP32) { - if (t1&TY_MASK!=TY_REG || t1&RT_MASKtype,a1->reg,a1->disp,ip2); + if (t2.raw_type>=RT_I64 && !has_result && t2&MDG_DISP_SIB_RIP) { + if (!(t1&MDF_REG) || t1.raw_typetype,a1->reg,a1->disp,ip2); r1=REG_RAX; } i=ICModr1(r1,t2,r2,a2->disp); @@ -635,13 +548,13 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip, ICU16(tempi,i.u8[2]<<8+0x3B); ICModr2(tempi,i,a2->disp,ip2+4); done=TRUE; - } else if (t1&RT_MASK>=RT_I64 && TY_REG<=t1&TY_MASK<=TY_RIP_DISP32) { - if (t2&TY_MASK!=TY_REG || t2&RT_MASKtype,a2->reg,a2->disp,ip2); + } else if (t1.raw_type>=RT_I64 && t1&MDG_REG_DISP_SIB_RIP) { + if (!(t2&MDF_REG) || t2.raw_typetype,a2->reg,a2->disp,ip2); r2=REG_RCX; } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); r2=REG_RAX; } } @@ -654,32 +567,17 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip, done=TRUE; } if (!done) { - if (tempi->ic_flags & ICF_A1_FIRST) { - if (a1->type&TY_MASK==TY_REG) - r1=a1->reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip2); - r1=REG_RAX; - } - if (a2->type&TY_MASK==TY_REG) - r2=a2->reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); - r2=REG_RCX; - } - } else { - if (a2->type&TY_MASK==TY_REG) - r2=a2->reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); - r2=REG_RAX; - } - if (a1->type&TY_MASK==TY_REG) - r1=a1->reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip2); - r1=REG_RCX; - } + if (a2->type&MDF_REG) + r2=a2->reg; + else { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); + r2=REG_RAX; + } + if (a1->type&MDF_REG) + r1=a1->reg; + else { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip2); + r1=REG_RCX; } if (r2>7) i++; @@ -730,7 +628,7 @@ U0 ICCmpAndBranch(CIntermediateCode *tempi,Bool has_result,I64 ip, } if (has_result) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,result_reg,0,ip2); + MDF_REG+RT_I64,result_reg,0,ip2); } U0 ICTestAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) @@ -739,16 +637,15 @@ U0 ICTestAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) Bool short_jmp; CCodeMisc *lb; - if (tempi->a1.type&TY_MASK!=TY_REG) { - if (tempi->a1.type&RT_MASK<=RT_U8 && - TY_DISP<=tempi->a1.type&TY_MASK<=TY_RIP_DISP32) { + if (!(tempi->a1.type&MDF_REG)) { + if (tempi->a1.type.raw_type<=RT_U8 && tempi->a1.type&MDG_DISP_SIB_RIP) { i=ICModr1(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp); ICRex(tempi,i.u8[1]); ICU16(tempi,i.u8[2]<<8+0xF6); ICModr2(tempi,i,tempi->a1.disp,ip2+5); ICU8(tempi,0xFF); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICTest(tempi,REG_RAX); } diff --git a/Compiler/BackC.CPP b/Compiler/BackC.CPP index 355d5bc..4a76af7 100644 --- a/Compiler/BackC.CPP +++ b/Compiler/BackC.CPP @@ -6,7 +6,7 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) CCodeMisc *lb; CICArg *a1,*a2; - if (tempi->a1.type&TY_MASK==TY_IMM) { + if (tempi->a1.type&MDF_IMM) { swap=TRUE; a1=&tempi->a2; a2=&tempi->a1; @@ -16,19 +16,19 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) a2=&tempi->a2; } - if (a2->type&TY_MASK==TY_IMM && a2->disp>MAX_U32) + if (a2->type&MDF_IMM && a2->disp>MAX_U32) override=TRUE; else override=FALSE; - if (a1->type&RT_MASKtype&RT_MASK) - it=a1->type&RT_MASK; + if (a1->type.raw_typetype.raw_type) + it=a1->type.raw_type; else - it=a2->type&RT_MASK; + it=a2->type.raw_type; i=a2->disp; - if (a2->type&TY_MASK==TY_IMM && i<=MAX_U32) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip2); + if (a2->type&MDF_IMM && i<=MAX_U32) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a1->type,a1->reg,a1->disp,ip2); if (i<=MAX_U8) ICU16(tempi,i<<8+0xA8); else if (i<=MAX_U16) @@ -38,51 +38,51 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) ICU32(tempi,i); } } else { - t1=TY_REG+it; + t1=MDF_REG+it; d1=0; - if ((tempi->ic_flags&ICF_A1_FIRST ^^swap)&&!override) { - if (a1->type&TY_MASK==TY_REG) { + if (swap && !override) { + if (a1->type&MDF_REG) { r1=a1->reg; swap=TRUE; } else { r1=REG_RCX; swap=FALSE; } - if (a2->type&TY_MASK==TY_REG) { + if (a2->type&MDF_REG) { r2=a2->reg; swap=FALSE; } else r2=REG_RDX; if (swap) { - if (a1->type&TY_MASK!=TY_REG || r1!=a1->reg) - ICMov(tempi,TY_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); - if (TY_REG<=a2->type&TY_MASK<=TY_RIP_DISP32) { - t1=a2->type&TY_MASK+it; + if (!(a1->type&MDF_REG) || r1!=a1->reg) + ICMov(tempi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); + if (a2->type&MDG_REG_DISP_SIB_RIP) { + t1=a2->type&MDG_MASK+it; r2=a2->reg; d1=a2->disp; } else - ICMov(tempi,TY_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); i=ICModr1(r1,t1,r2,d1); } else { - if (TY_REG<=a1->type&TY_MASK<=TY_RIP_DISP32) { - t1=a1->type&TY_MASK+it; + if (a1->type&MDG_REG_DISP_SIB_RIP) { + t1=a1->type&MDG_MASK+it; r1=a1->reg; d1=a1->disp; } else - ICMov(tempi,TY_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); - if (a2->type&TY_MASK!=TY_REG || r2!=a2->reg) - ICMov(tempi,TY_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); + if (!(a2->type&MDF_REG) || r2!=a2->reg) + ICMov(tempi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); i=ICModr1(r2,t1,r1,d1); } } else { - if (a2->type&TY_MASK==TY_REG) { + if (a2->type&MDF_REG) { r2=a2->reg; swap=FALSE; } else { r2=REG_RDX; swap=TRUE; } - if (a1->type&TY_MASK==TY_REG) { + if (a1->type&MDF_REG) { r1=a1->reg; swap=TRUE; } else @@ -90,24 +90,24 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) if (override) swap=FALSE; if (swap) { - if (TY_REG<=a2->type&TY_MASK<=TY_RIP_DISP32) { - t1=a2->type&TY_MASK+it; + if (a2->type&MDG_REG_DISP_SIB_RIP) { + t1=a2->type&MDG_MASK+it; r2=a2->reg; d1=a2->disp; } else - ICMov(tempi,TY_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); - if (a1->type&TY_MASK!=TY_REG || r1!=a1->reg) - ICMov(tempi,TY_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); + if (!(a1->type&MDF_REG) || r1!=a1->reg) + ICMov(tempi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); i=ICModr1(r1,t1,r2,d1); } else { - if (a2->type&TY_MASK!=TY_REG || r2!=a2->reg) - ICMov(tempi,TY_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); - if (TY_REG<=a1->type&TY_MASK<=TY_RIP_DISP32) { - t1=a1->type&TY_MASK+it; + if (!(a2->type&MDF_REG) || r2!=a2->reg) + ICMov(tempi,MDF_REG+RT_I64,r2,0,a2->type,a2->reg,a2->disp,ip2); + if (a1->type&MDG_REG_DISP_SIB_RIP) { + t1=a1->type&MDG_MASK+it; r1=a1->reg; d1=a1->disp; } else - ICMov(tempi,TY_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,r1,0,a1->type,a1->reg,a1->disp,ip2); i=ICModr1(r2,t1,r1,d1); } } @@ -159,33 +159,31 @@ U0 ICAndBranch(CIntermediateCode *tempi,I64 ip,I64 is,U8 *buf,I64 ip2) U0 ICAssign(CIntermediateCode *tempi,I64 ip) { CIntermediateCode *tempi1; - if (tempi->ic_flags & ICF_NOT_ADDR) { - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + if (tempi->ic_flags & ICF_BY_VAL) { + ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type&TY_MASK) { - if (tempi->a1.type&TY_MASK==TY_REG) + if (tempi->r.type.mode) { + if (tempi->a1.type&MDF_REG) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); else ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } } else { - if (tempi->a1.type&TY_MASK==TY_REG) { - if (!(tempi1=OptLag1(tempi)) || - tempi1->ic_code!=IC_ADD_CONST || - tempi1->r.type!=TY_REG+RT_I64 || tempi1->r.reg!=tempi->a1.reg || - tempi1->a1.type!=TY_REG+RT_I64 || tempi1->a1.reg!=tempi->a1.reg || - (tempi->a2.type&TY_MASK==TY_REG||tempi->a2.type&TY_MASK==TY_DISP) && + if (tempi->a1.type&MDF_REG) { + if (!(tempi1=OptLag1(tempi)) || tempi1->ic_code!=IC_ADD_CONST || + tempi1->r.type!=MDF_REG+RT_I64 || tempi1->r.reg!=tempi->a1.reg || + tempi1->a1.type!=MDF_REG+RT_I64 || tempi1->a1.reg!=tempi->a1.reg || + (tempi->a2.type&MDF_REG || tempi->a2.type&MDF_DISP) && tempi->a2.reg==tempi->a1.reg || - tempi->r.type&TY_MASK || - tempi1->ic_flags&~ICG_NO_CVT_MASK) { + tempi->r.type.mode || tempi1->ic_flags&~ICG_NO_CVT_MASK) { ICMov(tempi, - TY_DISP+tempi->a1.type_pointed_to,tempi->a1.reg,tempi->a1.disp, + MDF_DISP+tempi->a1.type_pointed_to,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } else { @@ -193,16 +191,16 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip) ~ICF_CODE_FINAL|ICF_DONT_RESTORE; tempi->a1.disp=tempi1->ic_data; OptSetNOP1(tempi1); //This better not be last pass! - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to, + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } @@ -217,135 +215,80 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip, Bool short_jmp; CCodeMisc *lb; - if (tempi->ic_flags & ICF_NOT_ADDR) { - if (tempi->ic_flags & ICF_A1_FIRST) { - if (!(tempi->ic_flags&ICF_SWAP) && a1->type&TY_MASK!=TY_REG && - (a1->type&TY_MASK!=TY_IMM || a1->disp>63) || - tempi->ic_flags&ICF_SWAP && a1->type&TY_MASK==TY_IMM && - a1->disp<64 || a1->type&TY_MASK==TY_STK) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip2); - t1=TY_REG+RT_I64; - r1=REG_RCX; - d1=0; - } else { - t1=a1->type; - if (t1&TY_MASK==TY_IMM && a1->disp<64) - r1=0; - else - r1=a1->reg; - d1=a1->disp; - } - if (tempi->ic_flags&ICF_SWAP && a2->type&TY_MASK!=TY_REG && - (a2->type&TY_MASK!=TY_IMM || a2->disp>63) || - !(tempi->ic_flags&ICF_SWAP) && a2->type&TY_MASK==TY_IMM && - a2->disp<64 || a2->type&TY_MASK==TY_STK) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a2->type,a2->reg,a2->disp,ip2); - t2=TY_REG+RT_I64; - r2=REG_RDX; - d2=0; - } else { - t2=a2->type; - if (t2&TY_MASK==TY_IMM && a2->disp<64) - r2=0; - else - r2=a2->reg; - d2=a2->disp; - } + if (tempi->ic_flags & ICF_BY_VAL) { + if (tempi->ic_flags&ICF_SWAP && !(a2->type&MDF_REG) && + (!(a2->type&MDF_IMM) ||a2->disp>63)|| + !(tempi->ic_flags&ICF_SWAP) && a2->type&MDF_IMM && + a2->disp<64 || a2->type&MDF_STK) { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); + t2=MDF_REG+RT_I64; + r2=REG_RCX; + d2=0; } else { - if (tempi->ic_flags&ICF_SWAP && a2->type&TY_MASK!=TY_REG && - (a2->type&TY_MASK!=TY_IMM ||a2->disp>63)|| - !(tempi->ic_flags&ICF_SWAP) && a2->type&TY_MASK==TY_IMM && - a2->disp<64 || a2->type&TY_MASK==TY_STK) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); - t2=TY_REG+RT_I64; - r2=REG_RCX; - d2=0; - } else { - t2=a2->type; - if (t2&TY_MASK==TY_IMM && a2->disp<64) - r2=0; - else - r2=a2->reg; - d2=a2->disp; - } - if (!(tempi->ic_flags&ICF_SWAP) && a1->type&TY_MASK!=TY_REG && - (a1->type&TY_MASK!=TY_IMM || a1->disp>63) || - tempi->ic_flags&ICF_SWAP && a1->type&TY_MASK==TY_IMM && - a1->disp<64 || a1->type&TY_MASK==TY_STK) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); - t1=TY_REG+RT_I64; - r1=REG_RDX; - d1=0; - } else { - t1=a1->type; - if (t1&TY_MASK==TY_IMM && a1->disp<64) - r1=0; - else - r1=a1->reg; - d1=a1->disp; - } + t2=a2->type; + if (t2&MDF_IMM && a2->disp<64) + r2=0; + else + r2=a2->reg; + d2=a2->disp; + } + if (!(tempi->ic_flags&ICF_SWAP) && !(a1->type&MDF_REG) && + (!(a1->type&MDF_IMM) || a1->disp>63) || + tempi->ic_flags&ICF_SWAP && a1->type&MDF_IMM && + a1->disp<64 || a1->type&MDF_STK) { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + t1=MDF_REG+RT_I64; + r1=REG_RDX; + d1=0; + } else { + t1=a1->type; + if (t1&MDF_IMM && a1->disp<64) + r1=0; + else + r1=a1->reg; + d1=a1->disp; } } else { - t1=TY_DISP+RT_I64; - t2=TY_DISP+RT_I64; + t1=MDF_DISP+RT_I64; + t2=MDF_DISP+RT_I64; d1=0; d2=0; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (a1->type&TY_MASK==TY_REG) - r1=a1->reg; - else if (tempi->ic_flags&ICF_SWAP || a1->type&TY_MASK!=TY_IMM || - a1->disp>63) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip2); - r1=REG_RCX; - } else - r1=0; - if (a2->type&TY_MASK==TY_REG) - r2=a2->reg; - else if (!(tempi->ic_flags&ICF_SWAP) || a2->type&TY_MASK!=TY_IMM || - a2->disp>63) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a2->type,a2->reg,a2->disp,ip2); - r2=REG_RDX; - } else - r2=0; - } else { - if (a2->type&TY_MASK==TY_REG) - r2=a2->reg; - else if (!(tempi->ic_flags&ICF_SWAP) || a2->type&TY_MASK!=TY_IMM || - a2->disp>63) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); - r2=REG_RCX; - } else - r2=0; - if (a1->type&TY_MASK==TY_REG) - r1=a1->reg; - else if (tempi->ic_flags&ICF_SWAP || a1->type&TY_MASK!=TY_IMM || - a1->disp>63) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); - r1=REG_RDX; - } else - r1=0; - } + if (a2->type&MDF_REG) + r2=a2->reg; + else if (!(tempi->ic_flags&ICF_SWAP) || !(a2->type&MDF_IMM) || + a2->disp>63) { + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a2->type,a2->reg,a2->disp,ip2); + r2=REG_RCX; + } else + r2=0; + if (a1->type&MDF_REG) + r1=a1->reg; + else if (tempi->ic_flags&ICF_SWAP || !(a1->type&MDF_IMM) || a1->disp>63) { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + r1=REG_RDX; + } else + r1=0; } if (tempi->ic_flags&ICF_LOCK && op!=0xA30F) ICU8(tempi,OC_LOCK_PREFIX); if (tempi->ic_flags&ICF_SWAP) { - if (a2->type&TY_MASK==TY_IMM && a2->disp<32) { + if (a2->type&MDF_IMM && a2->disp<32) { if (op==0xA30F && a2->disp<8) { - t=t1&TY_MASK+RT_U8; + t=t1&MDG_MASK+RT_U8; op_imm=0xF6; //TEST } else - t=t1&TY_MASK+RT_U32; + t=t1&MDG_MASK+RT_U32; } else t=t1; i=ICModr1(r2,t,r1,d1); SwapI64(&a1,&a2); } else { - if (a1->type&TY_MASK==TY_IMM && a1->disp<32) { + if (a1->type&MDF_IMM && a1->disp<32) { if (op==0xA30F && a1->disp<8) { - t=t2&TY_MASK+RT_U8; + t=t2&MDG_MASK+RT_U8; op_imm=0xF6; //TEST } else - t=t2&TY_MASK+RT_U32; + t=t2&MDG_MASK+RT_U32; } else t=t2; i=ICModr1(r1,t,r2,d2); @@ -359,7 +302,7 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip, is=0x75850F; else is=0x74840F; - } else if (a1->type&TY_MASK==TY_IMM && a1->disp<64) { + } else if (a1->type&MDF_IMM && a1->disp<64) { ICU24(tempi,i.u8[2]<<16+op_imm); ICModr2(tempi,i,a2->disp,ip2+5); ICU8(tempi,a1->disp); @@ -398,111 +341,77 @@ U0 ICBrBitOps(CIntermediateCode *tempi,I64 ip, U0 ICQueInit(CIntermediateCode *tempi,I64 ip2) { I64 r1; - if (tempi->a1.type==TY_REG+RT_I64) + if (tempi->a1.type==MDF_REG+RT_I64) r1=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); r1=REG_RAX; } - ICMov(tempi,TY_DISP+RT_I64,r1,0,TY_REG+RT_I64,r1,0,ip2); - ICMov(tempi,TY_DISP+RT_I64,r1,sizeof(U8 *),TY_REG+RT_I64,r1,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,r1,0,MDF_REG+RT_I64,r1,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,r1,sizeof(U8 *),MDF_REG+RT_I64,r1,0,ip2); } U0 ICQueIns(CIntermediateCode *tempi,I64 ip2) { I64 r1,r2; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->a1.type==TY_REG+RT_I64 && tempi->a1.reg!=REG_RAX) - r1=tempi->a1.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - r1=REG_RDX; - } - if (tempi->a2.type==TY_REG+RT_I64) - r2=tempi->a2.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - r2=REG_RAX; - } - } else { - if (tempi->a2.type==TY_REG+RT_I64 && tempi->a2.reg!=REG_RDX) - r2=tempi->a2.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - r2=REG_RAX; - } - if (tempi->a1.type==TY_REG+RT_I64) - r1=tempi->a1.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - r1=REG_RDX; - } + if (tempi->a2.type==MDF_REG+RT_I64 && tempi->a2.reg!=REG_RDX) + r2=tempi->a2.reg; + else { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + r2=REG_RAX; } - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,TY_DISP+RT_I64,r1,0,ip2); - ICMov(tempi,TY_DISP+RT_I64,r1,0,TY_REG+RT_I64,r2,0,ip2); - ICMov(tempi,TY_DISP+RT_I64,r2,0,TY_REG+RT_I64,REG_RBX,0,ip2); - ICMov(tempi,TY_DISP+RT_I64,r2,sizeof(U8 *),TY_REG+RT_I64,r1,0,ip2); - ICMov(tempi,TY_DISP+RT_I64,REG_RBX,sizeof(U8 *),TY_REG+RT_I64,r2,0,ip2); + if (tempi->a1.type==MDF_REG+RT_I64) + r1=tempi->a1.reg; + else { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + r1=REG_RDX; + } + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,r1,0,MDF_REG+RT_I64,r2,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,r2,0,MDF_REG+RT_I64,REG_RBX,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,r2,sizeof(U8 *),MDF_REG+RT_I64,r1,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,REG_RBX,sizeof(U8 *),MDF_REG+RT_I64,r2,0,ip2); } U0 ICQueInsRev(CIntermediateCode *tempi,I64 ip2) { I64 r1,r2; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->a1.type==TY_REG+RT_I64 && tempi->a1.reg!=REG_RAX) - r1=tempi->a1.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - r1=REG_RDX; - } - if (tempi->a2.type==TY_REG+RT_I64) - r2=tempi->a2.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - r2=REG_RAX; - } - } else { - if (tempi->a2.type==TY_REG+RT_I64 && tempi->a2.reg!=REG_RDX) - r2=tempi->a2.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - r2=REG_RAX; - } - if (tempi->a1.type==TY_REG+RT_I64) - r1=tempi->a1.reg; - else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - r1=REG_RDX; - } + if (tempi->a2.type==MDF_REG+RT_I64 && tempi->a2.reg!=REG_RDX) + r2=tempi->a2.reg; + else { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + r2=REG_RAX; } - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,TY_DISP+RT_I64,r1,sizeof(U8 *),ip2); - ICMov(tempi,TY_DISP+RT_I64,REG_RBX,0,TY_REG+RT_I64,r2,0,ip2); - ICMov(tempi,TY_DISP+RT_I64,r2,0,TY_REG+RT_I64,r1,0,ip2); - ICMov(tempi,TY_DISP+RT_I64,r2,sizeof(U8 *),TY_REG+RT_I64,REG_RBX,0,ip2); - ICMov(tempi,TY_DISP+RT_I64,r1,sizeof(U8 *),TY_REG+RT_I64,r2,0,ip2); + if (tempi->a1.type==MDF_REG+RT_I64) + r1=tempi->a1.reg; + else { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + r1=REG_RDX; + } + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,sizeof(U8 *),ip2); + ICMov(tempi,MDF_DISP+RT_I64,REG_RBX,0,MDF_REG+RT_I64,r2,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,r2,0,MDF_REG+RT_I64,r1,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,r2,sizeof(U8 *),MDF_REG+RT_I64,REG_RBX,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,r1,sizeof(U8 *),MDF_REG+RT_I64,r2,0,ip2); } U0 ICQueRem(CIntermediateCode *tempi,I64 ip2) { I64 r1; - if (tempi->a1.type==TY_REG+RT_I64) + if (tempi->a1.type==MDF_REG+RT_I64) r1=tempi->a1.reg; else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); r1=REG_RAX; } - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,TY_DISP+RT_I64,r1,0,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_DISP+RT_I64,r1,sizeof(U8 *),ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,MDF_DISP+RT_I64,r1,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_I64,r1,sizeof(U8 *),ip2); ICU24(tempi,0x1A8948); ICU32(tempi,sizeof(U8 *)<<24+0x538948); } @@ -510,68 +419,34 @@ U0 ICQueRem(CIntermediateCode *tempi,I64 ip2) U0 ICMinMax(CIntermediateCode *tempi,I64 op,I64 ip2) { I64 r1,i1=0x48; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->a1.type==TY_REG+RT_I64 && tempi->a1.reg!=REG_RAX) { - r1=tempi->a1.reg; - if (r1>7) { - i1++; - r1&=7; - } - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - } else { - if (tempi->a2.reg==REG_RAX && TY_REG<=tempi->a2.type&TY_MASK<=TY_SIB) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - r1=REG_RDX; - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - if (tempi->a2.type==TY_REG+RT_I64) { - r1=tempi->a2.reg; - if (r1>7) { - i1++; - r1&=7; - } - } else { - r1=REG_RDX; - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - } - } + if (tempi->a2.type==MDF_REG+RT_I64 && tempi->a2.reg!=REG_RAX) { + r1=tempi->a2.reg; + if (r1>7) { + i1++; + r1&=7; } + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); } else { - if (tempi->a2.type==TY_REG+RT_I64 && tempi->a2.reg!=REG_RAX) { - r1=tempi->a2.reg; - if (r1>7) { - i1++; - r1&=7; - } - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + if (tempi->a1.reg==REG_RAX && tempi->a1.type&MDG_REG_DISP_SIB) { + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + r1=REG_RDX; + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); } else { - if (tempi->a1.reg==REG_RAX && TY_REG<=tempi->a1.type&TY_MASK<=TY_SIB) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - r1=REG_RDX; - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - if (tempi->a1.type==TY_REG+RT_I64) { - r1=tempi->a1.reg; - if (r1>7) { - i1++; - r1&=7; - } - } else { - r1=REG_RDX; - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + if (tempi->a1.type==MDF_REG+RT_I64) { + r1=tempi->a1.reg; + if (r1>7) { + i1++; + r1&=7; } + } else { + r1=REG_RDX; + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); } } } @@ -581,113 +456,83 @@ U0 ICMinMax(CIntermediateCode *tempi,I64 op,I64 ip2) U0 ICSqr(CIntermediateCode *tempi,I64 op,I64 ip2) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICSlashOp(tempi,TY_REG+RT_I64,REG_RAX,0,op,ip2); + ICSlashOp(tempi,MDF_REG+RT_I64,REG_RAX,0,op,ip2); } U0 ICModU64(CIntermediateCode *tempi,I64 ip2) { - I64 t1,r1,d1; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->a1.reg!=REG_RAX && tempi->a1.reg!=REG_RDX && - TY_REG<=tempi->a1.type&TY_MASK<=TY_SIB && - tempi->a1.type&RT_MASK>=RT_I64) { - t1=tempi->a1.type; - r1=tempi->a1.reg; - d1=tempi->a1.disp; - } else { - t1=TY_REG+RT_I64; - r1=REG_RBX; - d1=0; - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - } - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + CICType t1; + I64 r1,d1; + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + if (tempi->a1.reg!=REG_RAX && tempi->a1.reg!=REG_RDX && + tempi->a1.type&MDG_REG_DISP_SIB && + tempi->a1.type.raw_type>=RT_I64) { + t1=tempi->a1.type; + r1=tempi->a1.reg; + d1=tempi->a1.disp; } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - if (tempi->a1.reg!=REG_RAX && tempi->a1.reg!=REG_RDX && - TY_REG<=tempi->a1.type&TY_MASK<=TY_SIB && - tempi->a1.type&RT_MASK>=RT_I64) { - t1=tempi->a1.type; - r1=tempi->a1.reg; - d1=tempi->a1.disp; - } else { - t1=TY_REG+RT_I64; - r1=REG_RBX; - d1=0; - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - } + t1=MDF_REG+RT_I64; + r1=REG_RBX; + d1=0; + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); } - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+RT_I64,REG_RCX,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip2); ICZero(tempi,REG_RDX); ICSlashOp(tempi,t1,r1,d1,SLASH_OP_DIV,ip2); - ICMov(tempi,TY_DISP+RT_I64,REG_RCX,0,TY_REG+RT_I64,REG_RAX,0,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tempi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + MDF_REG+RT_I64,REG_RDX,0,ip2); } U0 ICSwap(CIntermediateCode *tempi,I64 ip2) { I64 r1,r2; - if (tempi->a1.type&TY_MASK==TY_REG) + if (tempi->a1.type&MDF_REG) r1=tempi->a1.reg; else r1=REG_RAX; - if (tempi->a2.type&TY_MASK==TY_REG) + if (tempi->a2.type&MDF_REG) r2=tempi->a2.reg; else r2=REG_RAX; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (r1==r2) { - if (r2==REG_RAX) - r2=REG_RBX; - else - r1=REG_RAX; - } - ICMov(tempi,TY_REG+RT_I64,r1,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,r2,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - } else { - if (r1==r2) { - if (r1==REG_RAX) - r1=REG_RBX; - else - r2=REG_RAX; - } - ICMov(tempi,TY_REG+RT_I64,r2,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,r1,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); + if (r1==r2) { + if (r1==REG_RAX) + r1=REG_RBX; + else + r2=REG_RAX; } + ICMov(tempi,MDF_REG+RT_I64,r2,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,r1,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); switch (tempi->ic_code) { case IC_SWAP_U8: - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_DISP+RT_U8,r1,0,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_DISP+RT_U8,r2,0,ip2); - ICMov(tempi,TY_DISP+RT_U8,r2,0,TY_REG+RT_I64,REG_RCX,0,ip2); - ICMov(tempi,TY_DISP+RT_U8,r1,0,TY_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U8,r1,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U8,r2,0,ip2); + ICMov(tempi,MDF_DISP+RT_U8,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); + ICMov(tempi,MDF_DISP+RT_U8,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); break; case IC_SWAP_U16: - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_DISP+RT_U16,r1,0,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_DISP+RT_U16,r2,0,ip2); - ICMov(tempi,TY_DISP+RT_U16,r2,0,TY_REG+RT_I64,REG_RCX,0,ip2); - ICMov(tempi,TY_DISP+RT_U16,r1,0,TY_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U16,r1,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U16,r2,0,ip2); + ICMov(tempi,MDF_DISP+RT_U16,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); + ICMov(tempi,MDF_DISP+RT_U16,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); break; case IC_SWAP_U32: - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_DISP+RT_U32,r1,0,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_DISP+RT_U32,r2,0,ip2); - ICMov(tempi,TY_DISP+RT_U32,r2,0,TY_REG+RT_I64,REG_RCX,0,ip2); - ICMov(tempi,TY_DISP+RT_U32,r1,0,TY_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U32,r1,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U32,r2,0,ip2); + ICMov(tempi,MDF_DISP+RT_U32,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); + ICMov(tempi,MDF_DISP+RT_U32,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); break; case IC_SWAP_I64: - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,TY_DISP+RT_U64,r1,0,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_DISP+RT_U64,r2,0,ip2); - ICMov(tempi,TY_DISP+RT_U64,r2,0,TY_REG+RT_I64,REG_RCX,0,ip2); - ICMov(tempi,TY_DISP+RT_U64,r1,0,TY_REG+RT_I64,REG_RDX,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,MDF_DISP+RT_U64,r1,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_DISP+RT_U64,r2,0,ip2); + ICMov(tempi,MDF_DISP+RT_U64,r2,0,MDF_REG+RT_I64,REG_RCX,0,ip2); + ICMov(tempi,MDF_DISP+RT_U64,r1,0,MDF_REG+RT_I64,REG_RDX,0,ip2); break; } } @@ -695,14 +540,14 @@ U0 ICSwap(CIntermediateCode *tempi,I64 ip2) U0 ICAndEqu(CIntermediateCode *tempi,I64 ip2) { I64 i,bit; - if (tempi->a2.type&TY_MASK==TY_IMM && tempi->a1.type&TY_MASK!=TY_STK && + if (tempi->a2.type&MDF_IMM && !(tempi->a1.type&MDF_STK) && tempi->ic_flags&ICF_NO_DEPEND_RESULT) { i=~tempi->a2.disp; bit=Bsf(i); if (0<=bit==Bsr(i)) { tempi->a2.disp=bit; tempi->a2.reg=0; - tempi->a1.type=tempi->a1.type&TY_MASK+RT_I64; + tempi->a1.type=tempi->a1.type&MDG_MASK+RT_I64; ICBitOps(tempi,&tempi->a2,&tempi->a1,tempi,0xB30F,0x30BA0F,ip2); return; } @@ -716,14 +561,14 @@ U0 ICAndEqu(CIntermediateCode *tempi,I64 ip2) U0 ICOrEqu(CIntermediateCode *tempi,I64 ip2) { I64 i,bit; - if (tempi->a2.type&TY_MASK==TY_IMM && tempi->a1.type&TY_MASK!=TY_STK && + if (tempi->a2.type&MDF_IMM && !(tempi->a1.type&MDF_STK) && tempi->ic_flags&ICF_NO_DEPEND_RESULT) { i=tempi->a2.disp; bit=Bsf(i); if (0<=bit==Bsr(i) && i>MAX_I8) { tempi->a2.disp=bit; tempi->a2.reg=0; - tempi->a1.type=tempi->a1.type&TY_MASK+RT_I64; + tempi->a1.type=tempi->a1.type&MDG_MASK+RT_I64; ICBitOps(tempi,&tempi->a2,&tempi->a1,tempi,0xAB0F,0x28BA0F,ip2); return; } @@ -737,14 +582,14 @@ U0 ICOrEqu(CIntermediateCode *tempi,I64 ip2) U0 ICXorEqu(CIntermediateCode *tempi,I64 ip2) { I64 i,bit; - if (tempi->a2.type&TY_MASK==TY_IMM && tempi->a1.type&TY_MASK!=TY_STK && + if (tempi->a2.type&MDF_IMM && !(tempi->a1.type&MDF_STK) && tempi->ic_flags&ICF_NO_DEPEND_RESULT) { i=tempi->a2.disp; bit=Bsf(i); if (0<=bit==Bsr(i)) { tempi->a2.disp=bit; tempi->a2.reg=0; - tempi->a1.type=tempi->a1.type&TY_MASK+RT_I64; + tempi->a1.type=tempi->a1.type&MDG_MASK+RT_I64; ICBitOps(tempi,&tempi->a2,&tempi->a1,tempi,0xBB0F,0x38BA0F,ip2); return; } @@ -762,17 +607,17 @@ U0 ICSwitch(CIntermediateCode *tempi,I64 ip, CCodeMisc *lb; Bool short_jmp; CAOTAbsAddr *tempa; - if (tempi->a1.type&TY_MASK!=TY_REG || tempi->a1.reg&7==REG_RSP) + if (!(tempi->a1.type&MDF_REG) || tempi->a1.reg&7==REG_RSP) r=REG_RDX; else r=tempi->a1.reg; if (nobound) - ICMov(tempi,TY_REG+RT_I64,r,0, + ICMov(tempi,MDF_REG+RT_I64,r,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); else { - if (tempi->a2.type&TY_MASK==TY_IMM) { + if (tempi->a2.type&MDF_IMM) { j=tempi->a2.disp; - ICMov(tempi,TY_REG+RT_I64,r,0, + ICMov(tempi,MDF_REG+RT_I64,r,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); if (MIN_I8<=j<=MAX_I8) { i=0xF88348+(r&7)<<16; @@ -785,24 +630,17 @@ U0 ICSwitch(CIntermediateCode *tempi,I64 ip, ICU24(tempi,i); ICU32(tempi,j); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); i=0xC13B48+(r&7)<<19; if (r>7) i+=4; ICU24(tempi,i); } } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,r,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,r,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,r,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); i=0xC13B48+(r&7)<<19; if (r>7) i+=4; ICU24(tempi,i); diff --git a/Compiler/BackFA.CPP b/Compiler/BackFA.CPP index c2db8ef..dca4b92 100644 --- a/Compiler/BackFA.CPP +++ b/Compiler/BackFA.CPP @@ -21,17 +21,19 @@ U0 CmpNoteFloatOp(CCmpCtrl *cc,CIntermediateCode *tempi, case CN_MAIN: if (cc->last_float_op_ic!=tempi) { if (cc->dont_push_float) { - if (!(tempi->ic_flags & ICF_A1_FIRST)) - tempi->ic_flags|=ICF_ALTERNATE_TEMPLATE; + if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG && + cc->last_float_op_ic->r.reg!=REG_R8) + tempi->ic_flags|=ICF_ALT_TEMPLATE; else - tempi->ic_flags&=~ICF_ALTERNATE_TEMPLATE; + tempi->ic_flags&=~ICF_ALT_TEMPLATE; link=TRUE; } } else { - if (cc->last_float_op_pos==CN_A1 ^^ !(tempi->ic_flags & ICF_A1_FIRST)) - tempi->ic_flags|=ICF_ALTERNATE_TEMPLATE; + if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG && + cc->last_float_op_pos!=CN_A1) + tempi->ic_flags|=ICF_ALT_TEMPLATE; else - tempi->ic_flags&=~ICF_ALTERNATE_TEMPLATE; + tempi->ic_flags&=~ICF_ALT_TEMPLATE; link=TRUE; } break; @@ -79,7 +81,7 @@ U0 ICCopyTemplate(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op, U8 *ptr; I64 i=0; if (!off_the_record) { - if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) + if (tempi->ic_flags&ICF_ALT_TEMPLATE) alt=TRUE; else alt=FALSE; @@ -118,8 +120,8 @@ U0 ICCopyTemplate(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op, tempi->ic_cnt+=i; } -U0 ICFCvt(CCmpCtrl *cc,CIntermediateCode *tempi, - I64 r1,I64 t2,I64 r2,I64 d2,Bool to_int,I64 pos,I64 ip) +U0 ICFCvt(CCmpCtrl *cc,CIntermediateCode *tempi,I64 r1, + CICType t2,I64 r2,I64 d2,Bool to_int,I64 pos,I64 ip) { I64 rsp_size=0,op1,op2; Bool dont_push_float,dont_pop_float; @@ -134,12 +136,9 @@ U0 ICFCvt(CCmpCtrl *cc,CIntermediateCode *tempi, CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); if (!dont_push_float) { - if (!(t2&RT_MASK>=RT_I64 && - (t2&TY_MASK==TY_DISP || - t2&TY_MASK==TY_RIP_DISP32 || - t2&TY_MASK==TY_SIB))) { + if (!(t2.raw_type>=RT_I64 && t2&MDG_DISP_SIB_RIP)) { ICPush(tempi,t2,r2,d2,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size=8; } else { if (!dont_pop_float) { @@ -162,13 +161,13 @@ U0 ICFCvt(CCmpCtrl *cc,CIntermediateCode *tempi, if (rsp_size) ICAddRSP(tempi,rsp_size); } else { - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,op2,ip); - ICPop(tempi,TY_REG+RT_I64,r1,0,ip); + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,op2,ip); + ICPop(tempi,MDF_REG+RT_I64,r1,0,ip); } } -U0 ICFCvt2(CCmpCtrl *cc,CIntermediateCode *tempi, - I64 r1,I64 t2,I64 r2,I64 d2,Bool to_int,I64 ip) +U0 ICFCvt2(CCmpCtrl *cc,CIntermediateCode *tempi,I64 r1, + CICType t2,I64 r2,I64 d2,Bool to_int,I64 ip) { I64 rsp_size=0,op1,op2; if (to_int) { @@ -178,20 +177,17 @@ U0 ICFCvt2(CCmpCtrl *cc,CIntermediateCode *tempi, op1=SLASH_OP_FILD; op2=SLASH_OP_FSTP; } - if (!(t2&RT_MASK>=RT_I64 && - (t2&TY_MASK==TY_DISP || - t2&TY_MASK==TY_RIP_DISP32 || - t2&TY_MASK==TY_SIB))) { + if (!(t2.raw_type>=RT_I64 && t2&MDG_DISP_SIB_RIP)) { ICPush(tempi,t2,r2,d2,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size=8; } else { rsp_size=8; ICAddRSP(tempi,-8); } ICSlashOp(tempi,t2,r2,d2,op1,ip); - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,op2,ip); - ICPop(tempi,TY_REG+RT_I64,r1,0,ip); + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,op2,ip); + ICPop(tempi,MDF_REG+RT_I64,r1,0,ip); cc->last_dont_pushable=cc->last_dont_popable=FALSE; //TODO: improve this } @@ -206,23 +202,20 @@ U0 ICFUnaryMinus(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf2,I64 ip) CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); if (!dont_push_float) { - if (a1->type&RT_MASK>=RT_I64 && - (a1->type&TY_MASK==TY_DISP || - a1->type&TY_MASK==TY_RIP_DISP32 || - a1->type&TY_MASK==TY_SIB)) { + if (a1->type.raw_type>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { t1=a1->type; r1=a1->reg; d1=a1->disp; } else { - if (a1->type&TY_MASK==TY_IMM) { + if (a1->type&MDF_IMM) { if (!(builtin1=ICBuiltInFloatConst(a1->disp(F64)))) { - t1=TY_RIP_DISP32+RT_I64; + t1=MDF_RIP_DISP32+RT_I64; r1=REG_RIP; d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { ICPush(tempi,a1->type,a1->reg,a1->disp,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } } @@ -241,7 +234,7 @@ U0 ICFUnaryMinus(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf2,I64 ip) if (rsp_size) ICAddRSP(tempi,rsp_size); } else { - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); ICPop(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,ip); } } @@ -251,30 +244,23 @@ U0 ICFMod(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) Bool dont_push_float,dont_pop_float; CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); if (dont_push_float) { - if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + if (tempi->ic_flags&ICF_ALT_TEMPLATE) + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); else - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); } //TODO: unpushable,unpop? Not sure ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); if (!dont_pop_float) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICFPow(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) @@ -284,17 +270,10 @@ U0 ICFPow(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) CHashExport *tempex=HashFind("SYS_POW", cc->htc.hash_table_lst,HTT_EXPORT_SYS_SYM); - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); if (cc->flags&CCF_AOT_COMPILE) { if (!tempex) { tempex=CAlloc(sizeof(CHashExport)); @@ -354,17 +333,16 @@ U0 ICFPow(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) } tempi->ic_flags&=~ICF_CODE_FINAL; ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) {//for ADD,SUB,DIV,MUL CICArg *a1,*a2; Bool dont_push_float,dont_pop_float,alt; - I64 rsp_size=0,builtin1=0,builtin2=0, - t1,r1,d1,t2,r2,d2; + I64 rsp_size=0,builtin1=0,builtin2=0,t1,r1,d1,t2,r2,d2; - if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) { + if (tempi->ic_flags&ICF_ALT_TEMPLATE) { a1=&tempi->a2; a2=&tempi->a1; alt=TRUE; @@ -379,122 +357,115 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); if (dont_push_float) { - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { + if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; r2=a2->reg; d2=a2->disp; } else { - if (a2->type&TY_MASK==TY_IMM) { + if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64)))) { - t2=TY_RIP_DISP32+RT_I64; + t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { ICPush(tempi,a2->type,a2->reg,a2->disp,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } } else { - if (tempi->ic_flags & ICF_A1_FIRST^^alt) { - if (a2->type&TY_MASK!=TY_STK) { - if (a1->type&RT_MASK>=RT_I64 && (a1->type&TY_MASK==TY_DISP || - a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { + if (alt) { + if (!(a2->type&MDF_STK)) { + if (a1->type.raw_type>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { t1=a1->type; r1=a1->reg; d1=a1->disp; } else { - if (a1->type&TY_MASK==TY_IMM) { + if (a1->type&MDF_IMM) { if (!(builtin1=ICBuiltInFloatConst(a1->disp(F64)))) { - t1=TY_RIP_DISP32+RT_I64; + t1=MDF_RIP_DISP32+RT_I64; r1=REG_RIP; d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { ICPush(tempi,a1->type,a1->reg,a1->disp,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } } - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { + if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; r2=a2->reg; d2=a2->disp; } else { - if (a2->type&TY_MASK==TY_IMM) { + if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64)))) { - t2=TY_RIP_DISP32+RT_I64; + t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { ICPush(tempi,a2->type,a2->reg,a2->disp,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; if (r1==REG_RSP+REG_RSP<<8) d1+=8; } } } else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - a1->type,a1->reg,a1->disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - a2->type,a2->reg,a2->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; } } else { - if (a1->type&TY_MASK!=TY_STK) { - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { + if (!(a1->type&MDF_STK)) { + if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; r2=a2->reg; d2=a2->disp; } else { - if (a2->type&TY_MASK==TY_IMM) { + if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64)))) { - t2=TY_RIP_DISP32+RT_I64; + t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { ICPush(tempi,a2->type,a2->reg,a2->disp,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } - if (a1->type&RT_MASK>=RT_I64 && (a1->type&TY_MASK==TY_DISP || - a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { + if (a1->type.raw_type>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { t1=a1->type; r1=a1->reg; d1=a1->disp; } else { - if (a1->type&TY_MASK==TY_IMM) { + if (a1->type&MDF_IMM) { if (!(builtin1=ICBuiltInFloatConst(a1->disp(F64)))) { - t1=TY_RIP_DISP32+RT_I64; + t1=MDF_RIP_DISP32+RT_I64; r1=REG_RIP; d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { ICPush(tempi,a1->type,a1->reg,a1->disp,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) d2+=8; } } } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; } } } @@ -531,10 +502,9 @@ U0 ICFOp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) ICAddRSP(tempi,rsp_size); } else { if (rsp_size==8) - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,0, - SLASH_OP_FSTP,ip); + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); else if (rsp_size>8) { - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, SLASH_OP_FSTP,ip); ICAddRSP(tempi,rsp_size-8); } @@ -547,114 +517,87 @@ U0 ICFCmp(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) Bool dont_push_float,dont_pop_float; CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); if (dont_push_float) { - if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) { + if (tempi->ic_flags&ICF_ALT_TEMPLATE) { if (tempi->ic_flags&ICF_POP_CMP) ICPopRegs(tempi,1<a1.type,tempi->a1.reg,tempi->a1.disp,ip); } else - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->ic_flags&ICF_POP_CMP) - ICPopRegs(tempi,1<a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - if (tempi->ic_flags&ICF_POP_CMP) - ICPopRegs(tempi,1<a1.type,tempi->a1.reg,tempi->a1.disp,ip); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + if (tempi->ic_flags&ICF_POP_CMP) + ICPopRegs(tempi,1<a1.type,tempi->a1.reg,tempi->a1.disp,ip); } if (tempi->ic_flags&ICF_PUSH_CMP) ICPushRegs(tempi,1<r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) { Bool dont_push_float,dont_pop_float; CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); - if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->ic_flags & ICF_BY_VAL) { if (dont_push_float) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); if (tempi->a1.type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip); - } else if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->a1.type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); + ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); if (tempi->a1.type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); } //TODO: unpushable,unpop? Not sure ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); if (tempi->a1.type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, - tempi->a1.reg,tempi->a1.disp,TY_REG+RT_I64,REG_RAX,0,ip); - if (tempi->r.type&TY_MASK) + ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); + ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + tempi->a1.reg,tempi->a1.disp,MDF_REG+RT_I64,REG_RAX,0,ip); + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); } else { if (dont_push_float) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,tempi->a1.type, tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); if (tempi->a1.type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip); - } else if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type, - tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); - if (tempi->a1.type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,tempi->a1.type, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,tempi->a1.type, tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); if (tempi->a1.type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); } //TODO: unpushable,unpop? Not sure ICCopyTemplate(cc,tempi,CMP_TEMPLATE_MOD,FALSE,FALSE,FALSE,CN_MAIN); if (tempi->a1.type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,TY_DISP+tempi->a1.type_pointed_to,REG_RCX,0, - TY_REG+RT_I64,REG_RAX,0,ip); - if (tempi->r.type&TY_MASK) + ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); + ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0, + MDF_REG+RT_I64,REG_RAX,0,ip); + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } } diff --git a/Compiler/BackFB.CPP b/Compiler/BackFB.CPP index 5cd07fb..016218a 100644 --- a/Compiler/BackFB.CPP +++ b/Compiler/BackFB.CPP @@ -13,117 +13,67 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) if (dont_pop_float) throw('Compiler'); - if (tempi->ic_flags & ICF_NOT_ADDR) { + if (tempi->ic_flags & ICF_BY_VAL) { p1_mem=FALSE; if (dont_push_float) { if (a1->type_pointed_to!=RT_F64) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); - ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip); - ICPush(tempi,TY_REG+RT_I64,REG_RAX,0,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); + ICPush(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } else { - if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP || - a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { - t1=a1->type_pointed_to+a1->type&TY_MASK; + if (a1->type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { + t1=a1->type&MDG_MASK+a1->type_pointed_to; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { ICPush(tempi, - a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } } - } else if (tempi->ic_flags & ICF_A1_FIRST) { - if (a1->type_pointed_to!=RT_F64 || a2->type&TY_MASK==TY_STK) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); - if (a1->type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - a2->type,a2->reg,a2->disp,ip); - - ICU16(tempi,0x5052); //PUSH EDX PUSH EAX - rsp_size=16; - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; - } else { - if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP || - a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { - t1=a1->type_pointed_to+a1->type&TY_MASK; - r1=a1->reg; - d1=a1->disp; - p1_mem=TRUE; - } else { - ICPush(tempi, - a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; - rsp_size+=8; - } - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { - t2=a2->type; - r2=a2->reg; - d2=a2->disp; - } else { - if (a2->type&TY_MASK==TY_IMM) { - if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64)))) { - t2=TY_RIP_DISP32+RT_I64; - r2=REG_RIP; - d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; - } - } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; - rsp_size+=8; - if (r1==REG_RSP+REG_RSP<<8) - d1+=8; - } - } - } } else { - if (a1->type_pointed_to!=RT_F64 || a1->type&TY_MASK==TY_STK) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + if (a1->type_pointed_to!=RT_F64 || a1->type&MDF_STK) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); if (a1->type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; } else { - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { + if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; r2=a2->reg; d2=a2->disp; } else { - if (a2->type&TY_MASK==TY_IMM) { + if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64)))) { - t2=TY_RIP_DISP32+RT_I64; + t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { ICPush(tempi,a2->type,a2->reg,a2->disp,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } - if (a1->type_pointed_to>=RT_I64 && (a1->type&TY_MASK==TY_DISP || - a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { - t1=a1->type_pointed_to+a1->type&TY_MASK; + if (a1->type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { + t1=a1->type&MDG_MASK+a1->type_pointed_to; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { ICPush(tempi, - a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) d2+=8; @@ -152,112 +102,72 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) ICAddRSP(tempi,rsp_size); } else { if (rsp_size==8) - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,0, - SLASH_OP_FSTP,ip); + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); else if (rsp_size>8) { - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, SLASH_OP_FSTP,ip); ICAddRSP(tempi,rsp_size-8); } if (a1->type_pointed_to!=RT_F64) { - ICPop(tempi,TY_REG+RT_I64,REG_RAX,0,ip); - ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp, - TY_REG+RT_I64,REG_RAX,0,ip); + ICPop(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); + ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); + ICMov(tempi,a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp, + MDF_REG+RT_I64,REG_RAX,0,ip); } else - ICPop(tempi,a1->type_pointed_to+a1->type&TY_MASK,a1->reg,a1->disp,ip); + ICPop(tempi,a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); } - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - a1->type&TY_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); } else { if (a1->type_pointed_to>=RT_I64) p1_mem=TRUE; else p1_mem=FALSE; if (dont_push_float) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); if (a1->type_pointed_to!=RT_F64) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); - ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,FALSE,ip); - ICPush(tempi,TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + MDF_DISP+a1->type_pointed_to,REG_RCX,0,ip); + ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); + ICPush(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); } else - ICPush(tempi,a1->type_pointed_to+TY_DISP,REG_RCX,0,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + ICPush(tempi,MDF_DISP+a1->type_pointed_to,REG_RCX,0,ip); + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; - } else if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - if (a1->type_pointed_to!=RT_F64 || a2->type&TY_MASK==TY_STK) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); - if (a1->type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - - ICU16(tempi,0x5052); //PUSH EDX PUSH EAX - rsp_size=16; - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; - } else { - ICPush(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; - rsp_size+=8; - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { - t2=a2->type; - r2=a2->reg; - d2=a2->disp; - } else { - if (a2->type&TY_MASK==TY_IMM) { - if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64)))) { - t2=TY_RIP_DISP32+RT_I64; - r2=REG_RIP; - d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; - } - } else { - ICPush(tempi,a2->type,a2->reg,a2->disp,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; - rsp_size+=8; - if (r1==REG_RSP+REG_RSP<<8) - d1+=8; - } - } - } } else { - if (a1->type_pointed_to!=RT_F64 || a1->type&TY_MASK==TY_STK) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); + if (a1->type_pointed_to!=RT_F64 || a1->type&MDF_STK) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + MDF_DISP+a1->type_pointed_to,REG_RCX,0,ip); if (a1->type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RDX,TY_REG+RT_I64,REG_RDX,0,FALSE,ip); + ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; } else { - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { + if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; r2=a2->reg; d2=a2->disp; } else { - if (a2->type&TY_MASK==TY_IMM) { + if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64)))) { - t2=TY_RIP_DISP32+RT_I64; + t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { ICPush(tempi,a2->type,a2->reg,a2->disp,ip); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - ICPush(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0,ip); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); + ICPush(tempi,MDF_DISP+a1->type_pointed_to,REG_RCX,0,ip); + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) d2+=8; @@ -281,28 +191,26 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) ICSlashOp(tempi,t1,r1,d1,op,ip); CmpNoteFloatOp(cc,tempi,TRUE,FALSE,CN_MAIN); if (p1_mem && a1->type_pointed_to==RT_F64) { - ICSlashOp(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0, - SLASH_OP_FSTP,ip); + ICSlashOp(tempi,MDF_DISP+a1->type_pointed_to,REG_RCX,0,SLASH_OP_FSTP,ip); if (rsp_size) ICAddRSP(tempi,rsp_size); } else { if (rsp_size==8) - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,0, - SLASH_OP_FSTP,ip); + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,0,SLASH_OP_FSTP,ip); else if (rsp_size>8) { - ICSlashOp(tempi,TY_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, + ICSlashOp(tempi,MDF_SIB+RT_I64,REG_RSP+REG_RSP<<8,rsp_size-8, SLASH_OP_FSTP,ip); ICAddRSP(tempi,rsp_size-8); } - ICPop(tempi,TY_REG+RT_I64,REG_RAX,0,ip); + ICPop(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); if (a1->type_pointed_to!=RT_F64) - ICFCvt2(cc,tempi,REG_RAX,TY_REG+RT_I64,REG_RAX,0,TRUE,ip); - ICMov(tempi,TY_DISP+a1->type_pointed_to,REG_RCX,0, - TY_REG+RT_I64,REG_RAX,0,ip); + ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,TRUE,ip); + ICMov(tempi,MDF_DISP+a1->type_pointed_to,REG_RCX,0, + MDF_REG+RT_I64,REG_RAX,0,ip); } - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } } @@ -315,7 +223,7 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, CCodeMisc *lb; U8 *buf2; - if (tempi->ic_flags&ICF_ALTERNATE_TEMPLATE) { + if (tempi->ic_flags&ICF_ALT_TEMPLATE) { a1=&tempi->a2; a2=&tempi->a1; alt=TRUE; @@ -333,71 +241,68 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); if (dont_push_float) { if (tempi->ic_flags&ICF_POP_CMP && alt) { - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } else { - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { + if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; r2=a2->reg; d2=a2->disp; } else { - if (a2->type&TY_MASK==TY_IMM) { + if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64))) || tempi->ic_flags&ICF_PUSH_CMP) { - t2=TY_RIP_DISP32+RT_I64; + t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { ICPush(tempi,a2->type,a2->reg,a2->disp,ip2); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } } } else { - if (tempi->ic_flags & ICF_A1_FIRST^^alt) { - if (a2->type&TY_MASK!=TY_STK) { + if (alt) { + if (!(a2->type&MDF_STK)) { if (tempi->ic_flags&ICF_POP_CMP) { - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } else { - if (a1->type&RT_MASK>=RT_I64 && (a1->type&TY_MASK==TY_DISP || - a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { + if (a1->type.raw_type>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { t1=a1->type; r1=a1->reg; d1=a1->disp; } else { - if (a1->type&TY_MASK==TY_IMM) { + if (a1->type&MDF_IMM) { if (!(builtin1=ICBuiltInFloatConst(a1->disp(F64)))) { - t1=TY_RIP_DISP32+RT_I64; + t1=MDF_RIP_DISP32+RT_I64; r1=REG_RIP; d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { ICPush(tempi,a1->type,a1->reg,a1->disp,ip2); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; } } } - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { + if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; r2=a2->reg; d2=a2->disp; } else { - if (a2->type&TY_MASK==TY_IMM) { + if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64))) || tempi->ic_flags&ICF_PUSH_CMP) { - t2=TY_RIP_DISP32+RT_I64; + t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { ICPush(tempi,a2->type,a2->reg,a2->disp,ip2); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; if (r1==REG_RSP+REG_RSP<<8) d1+=8; @@ -407,55 +312,53 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, if (tempi->ic_flags&ICF_POP_CMP) ICPopRegs(tempi,1<type,a1->reg,a1->disp,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; } } else { - if (a1->type&TY_MASK!=TY_STK) { - if (a2->type&RT_MASK>=RT_I64 && (a2->type&TY_MASK==TY_DISP || - a2->type&TY_MASK==TY_RIP_DISP32 || a2->type&TY_MASK==TY_SIB)) { + if (!(a1->type&MDF_STK)) { + if (a2->type.raw_type>=RT_I64 && a2->type&MDG_DISP_SIB_RIP) { t2=a2->type; r2=a2->reg; d2=a2->disp; } else { - if (a2->type&TY_MASK==TY_IMM) { + if (a2->type&MDF_IMM) { if (!(builtin2=ICBuiltInFloatConst(a2->disp(F64))) || tempi->ic_flags&ICF_PUSH_CMP) { - t2=TY_RIP_DISP32+RT_I64; + t2=MDF_RIP_DISP32+RT_I64; r2=REG_RIP; d2=COCFloatConstFind(cc,a2->disp(F64))+buf2; } } else { ICPush(tempi,a2->type,a2->reg,a2->disp,ip2); - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; rsp_size+=8; } } if (tempi->ic_flags&ICF_POP_CMP) { - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) d1+=8; } else { - if (a1->type&RT_MASK>=RT_I64 && (a1->type&TY_MASK==TY_DISP || - a1->type&TY_MASK==TY_RIP_DISP32 || a1->type&TY_MASK==TY_SIB)) { + if (a1->type.raw_type>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { t1=a1->type; r1=a1->reg; d1=a1->disp; } else { - if (a1->type&TY_MASK==TY_IMM) { + if (a1->type&MDF_IMM) { if (!(builtin1=ICBuiltInFloatConst(a1->disp(F64)))) { - t1=TY_RIP_DISP32+RT_I64; + t1=MDF_RIP_DISP32+RT_I64; r1=REG_RIP; d1=COCFloatConstFind(cc,a1->disp(F64))+buf2; } } else { ICPush(tempi,a1->type,a1->reg,a1->disp,ip2); - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=0; rsp_size+=8; if (r2==REG_RSP+REG_RSP<<8) d2+=8; @@ -463,15 +366,15 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, } } } else { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,a2->type,a2->reg,a2->disp,ip2); if (tempi->ic_flags&ICF_POP_CMP) ICPopRegs(tempi,1<type,a1->reg,a1->disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,a1->type,a1->reg,a1->disp,ip2); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; - t1=TY_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t1=MDF_SIB+RT_I64; r1=REG_RSP+REG_RSP<<8; d1=8; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; } } } @@ -488,7 +391,7 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, else ICSlashOp(tempi,t2,r2,d2,SLASH_OP_FLD,ip2); if (tempi->ic_flags&ICF_PUSH_CMP) { - t2=TY_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; + t2=MDF_SIB+RT_I64; r2=REG_RSP+REG_RSP<<8; d2=0; if (!rsp_size) { rsp_size=8; ICAddRSP(tempi,-8); @@ -571,15 +474,13 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) { - if (tempi->a1.type&TY_MASK==TY_IMM && - tempi->a1.type_pointed_to&RT_MASK==RT_F64 && + if (tempi->a1.type&MDF_IMM && tempi->a1.type_pointed_to==RT_F64 && tempi->a1.disp(F64)==1.0) { CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); - } else if (tempi->a2.type&TY_MASK==TY_IMM && - tempi->a2.type_pointed_to&RT_MASK==RT_F64 && - tempi->a2.disp(F64)==1.0) { + } else if (tempi->a2.type&MDF_IMM && + tempi->a2.type_pointed_to==RT_F64&& tempi->a2.disp(F64)==1.0) { CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); @@ -589,8 +490,7 @@ U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) U0 ICFDiv(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) { - if (tempi->a2.type&TY_MASK==TY_IMM && - tempi->a2.type_pointed_to&RT_MASK==RT_F64 && + if (tempi->a2.type&MDF_IMM && tempi->a2.type_pointed_to==RT_F64 && tempi->a2.disp(F64)==1.0) { CmpNoteFloatOp(cc,tempi,FALSE,FALSE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -603,13 +503,13 @@ U0 ICFAdd(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) { Bool dont_push_float,dont_pop_float; CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); - if (tempi->a1.type&TY_MASK==TY_IMM && !tempi->a1.disp) { + if (tempi->a1.type&MDF_IMM && !tempi->a1.disp) { if (dont_push_float) { ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } else if (dont_pop_float) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); } else { @@ -617,13 +517,13 @@ U0 ICFAdd(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip); } - } else if (tempi->a2.type&TY_MASK==TY_IMM && !tempi->a2.disp) { + } else if (tempi->a2.type&MDF_IMM && !tempi->a2.disp) { if (dont_push_float) { ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } else if (dont_pop_float) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); } else { @@ -638,14 +538,14 @@ U0 ICFAdd(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) U0 ICFSub(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) { Bool dont_push_float,dont_pop_float; - if (tempi->a2.type&TY_MASK==TY_IMM && !tempi->a2.disp) { + if (tempi->a2.type&MDF_IMM && !tempi->a2.disp) { CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); if (dont_push_float) { ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FSTP,FALSE,TRUE,TRUE,CN_MAIN); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } else if (dont_pop_float) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); ICCopyTemplate(cc,tempi,CMP_TEMPLATE_FLD,FALSE,TRUE,TRUE,CN_MAIN); } else { @@ -659,46 +559,46 @@ U0 ICFSub(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) U0 ICFPreIncDec(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) { - if (tempi->ic_flags & ICF_NOT_ADDR) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); + if (tempi->ic_flags & ICF_BY_VAL) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); ICMov(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+RT_I64,REG_RCX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip); ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,TY_DISP+RT_I64,REG_RCX,0,TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip); } - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } U0 ICFPostIncDec(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) { - if (tempi->ic_flags & ICF_NOT_ADDR) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type&TY_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); - if (tempi->r.type&TY_MASK) - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_REG+RT_I64,REG_RAX,0,ip); + if (tempi->ic_flags & ICF_BY_VAL) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); + if (tempi->r.type.mode) + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_REG+RT_I64,REG_RAX,0,ip); ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); ICMov(tempi,tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+RT_I64,REG_RCX,0,ip); - if (tempi->r.type&TY_MASK) - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0,TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0,MDF_DISP+RT_I64,REG_RCX,0,ip); + if (tempi->r.type.mode) + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0,MDF_REG+RT_I64,REG_RAX,0,ip); ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); - ICMov(tempi,TY_DISP+RT_I64,REG_RCX,0,TY_REG+RT_I64,REG_RAX,0,ip); + ICMov(tempi,MDF_DISP+RT_I64,REG_RCX,0,MDF_REG+RT_I64,REG_RAX,0,ip); } - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RDX,0,ip); + MDF_REG+RT_I64,REG_RDX,0,ip); } U0 ICFTemplateFun(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) @@ -707,12 +607,12 @@ U0 ICFTemplateFun(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,I64 ip) CmpSetFloatOpPushPop(cc,tempi,&dont_push_float,&dont_pop_float); if (!dont_push_float) - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); ICCopyTemplate(cc,tempi,op,FALSE,TRUE,TRUE,CN_MAIN); - if (tempi->r.type&TY_MASK && !(tempi->ic_flags & ICF_R_TO_F64) && + if (tempi->r.type.mode && !(tempi->ic_flags & ICF_R_TO_F64) && !(tempi->ic_flags & ICF_R_TO_INT)) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip); + MDF_REG+RT_I64,REG_RAX,0,ip); } diff --git a/Compiler/BackLib.CPP b/Compiler/BackLib.CPP index 79fbd4a..64e613b 100644 --- a/Compiler/BackLib.CPP +++ b/Compiler/BackLib.CPP @@ -72,8 +72,7 @@ U0 ICAddRSP(CIntermediateCode *tempi,I64 i,Bool optimize=TRUE) CIntermediateCode *tempil1; if (optimize && (tempil1=ICLastIns(tempi))) { j=tempil1->ic_cnt; - if (tempil1->ic_last_cnt==j-4 && - tempil1->ic_body[j-3]==0x83 && + if (tempil1->ic_last_cnt==j-4 && tempil1->ic_body[j-3]==0x83 && tempil1->ic_body[j-4]==0x48) { if (tempil1->ic_body[j-2]==0xEC) j=-tempil1->ic_body[j-1](I8); @@ -81,8 +80,7 @@ U0 ICAddRSP(CIntermediateCode *tempi,I64 i,Bool optimize=TRUE) j=tempil1->ic_body[j-1](I8); else j=0; - } else if (tempil1->ic_last_cnt==j-7 && - tempil1->ic_body[j-6]==0x81 && + } else if (tempil1->ic_last_cnt==j-7 && tempil1->ic_body[j-6]==0x81 && tempil1->ic_body[j-7]==0x48) { if (tempil1->ic_body[j-5]==0xEC) j=-tempil1->ic_body[j-4](I32); @@ -127,28 +125,24 @@ U0 ICAddRSP(CIntermediateCode *tempi,I64 i,Bool optimize=TRUE) } extern U0 ICMov(CIntermediateCode *tempi, - I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,I64 ip); + CICType t1,I64 r1,I64 d1,CICType t2,I64 r2,I64 d2,I64 ip); -#define MDR_REG 0 -#define MDR_INDIRECT_REG 1 -#define MDR_D8_INDIRECT_REG 2 -#define MDR_D32_INDIRECT_REG 3 -#define MDR_SIB_INDIRECT_REG 4 -#define MDR_SIB_D8_INDIRECT_REG 5 -#define MDR_SIB_D32_INDIRECT_REG 6 -#define MDR_RIP_REL 7 +#define MODR_REG 0 +#define MODR_INDIRECT_REG 1 +#define MODR_D8_INDIRECT_REG 2 +#define MODR_D32_INDIRECT_REG 3 +#define MODR_SIB_INDIRECT_REG 4 +#define MODR_SIB_D8_INDIRECT_REG 5 +#define MODR_SIB_D32_INDIRECT_REG 6 +#define MODR_RIP_REL 7 -I64 ICModr1(I64 r,I64 t2,I64 r2,I64 d2) +I64 ICModr1(I64 r,CICType t2,I64 r2,I64 d2) {//result.u8[0] is type //result.u8[1] is REX //result.u8[2] is ModR //result.u8[3] is SIB I64 result=0; - if (t2&TY_MASK>TY_RIP_DISP32) { - "Callers:%P;%P\n",Caller,Caller(2); - throw('Compiler'); - } - if (t2&RT_MASK>4) { - case TY_REG>>4: + switch (Bsr(t2)) { + case MDf_REG: if (r2>7) { result.u8[1]++; r2&=7; } result.u8[2]=0xC0+r<<3+r2; - result.u8[0]=MDR_REG; - if (result.u8[1]==0x40 && (t2&RT_MASK>=RT_I16 || r<4 && r2<4)) + result.u8[0]=MODR_REG; + if (result.u8[1]==0x40 && (t2.raw_type>=RT_I16 || r<4 && r2<4)) result.u8[1]=0; break; - case TY_DISP>>4: + case MDf_DISP: if (r2>7) { result.u8[1]++; r2&=7; } if (!d2 && r2!=REG_RBP) { result.u8[2]=r<<3+r2; - result.u8[0]=MDR_INDIRECT_REG; + result.u8[0]=MODR_INDIRECT_REG; } else if (MIN_I8<=d2<=MAX_I8) { result.u8[2]=0x40+r<<3+r2; - result.u8[0]=MDR_D8_INDIRECT_REG; + result.u8[0]=MODR_D8_INDIRECT_REG; } else { result.u8[2]=0x80+r<<3+r2; - result.u8[0]=MDR_D32_INDIRECT_REG; + result.u8[0]=MODR_D32_INDIRECT_REG; } - if (result.u8[1]==0x40 && (t2&RT_MASK>=RT_I16 || r<4)) + if (result.u8[1]==0x40 && (t2.raw_type>=RT_I16 || r<4)) result.u8[1]=0; break; - case TY_SIB>>4: + case MDf_SIB: if (77) @@ -193,27 +187,27 @@ I64 ICModr1(I64 r,I64 t2,I64 r2,I64 d2) if (r2.u8[0]==REG_NONE) { result.u8[3]=5+(r2.u8[1]&7)<<3+r2.u8[1]&0xC0; result.u8[2]=4+r<<3; - result.u8[0]=MDR_SIB_D32_INDIRECT_REG; + result.u8[0]=MODR_SIB_D32_INDIRECT_REG; } else { result.u8[3]=r2.u8[0]&7+(r2.u8[1]&7)<<3+r2.u8[1]&0xC0; if (!d2 && r2.u8[0]&7!=REG_RBP) { result.u8[2]=4+r<<3; - result.u8[0]=MDR_SIB_INDIRECT_REG; + result.u8[0]=MODR_SIB_INDIRECT_REG; } else if (MIN_I8<=d2<=MAX_I8) { result.u8[2]=0x44+r<<3; - result.u8[0]=MDR_SIB_D8_INDIRECT_REG; + result.u8[0]=MODR_SIB_D8_INDIRECT_REG; } else { result.u8[2]=0x84+r<<3; - result.u8[0]=MDR_SIB_D32_INDIRECT_REG; + result.u8[0]=MODR_SIB_D32_INDIRECT_REG; } } - if (result.u8[1]==0x40 && (t2&RT_MASK>=RT_I16 || r<4)) + if (result.u8[1]==0x40 && (t2.raw_type>=RT_I16 || r<4)) result.u8[1]=0; break; - case TY_RIP_DISP32>>4: + case MDf_RIP_DISP32: result.u8[2]=0x05+r<<3; - result.u8[0]=MDR_RIP_REL; - if (result.u8[1]==0x40 && (t2&RT_MASK>=RT_I16 || r<4)) + result.u8[0]=MODR_RIP_REL; + if (result.u8[1]==0x40 && (t2.raw_type>=RT_I16 || r<4)) result.u8[1]=0; break; } @@ -223,28 +217,28 @@ I64 ICModr1(I64 r,I64 t2,I64 r2,I64 d2) U0 ICModr2(CIntermediateCode *tempi,I64 i,I64 d,I64 ip=0) {//t=0 means no SIB switch [i.u8[0]] { - case MDR_REG: + case MODR_REG: break; - case MDR_INDIRECT_REG: + case MODR_INDIRECT_REG: break; - case MDR_D8_INDIRECT_REG: + case MODR_D8_INDIRECT_REG: ICU8(tempi,d); break; - case MDR_D32_INDIRECT_REG: + case MODR_D32_INDIRECT_REG: ICU32(tempi,d); break; - case MDR_SIB_INDIRECT_REG: + case MODR_SIB_INDIRECT_REG: ICU8(tempi,i.u8[3]); break; - case MDR_SIB_D8_INDIRECT_REG: + case MODR_SIB_D8_INDIRECT_REG: ICU8(tempi,i.u8[3]); ICU8(tempi,d); break; - case MDR_SIB_D32_INDIRECT_REG: + case MODR_SIB_D32_INDIRECT_REG: ICU8(tempi,i.u8[3]); ICU32(tempi,d); break; - case MDR_RIP_REL: + case MODR_RIP_REL: ICU32(tempi,d-(ip+tempi->ic_cnt)); tempi->ic_flags&=~ICF_CODE_FINAL; break; @@ -272,16 +266,16 @@ U0 ICModr2(CIntermediateCode *tempi,I64 i,I64 d,I64 ip=0) #define SLASH_OP_FISTTP 0x0000000001DDDD01 #define SLASH_OP_FILD 0x0000000001DFDF05 -U0 ICSlashOp(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 op,I64 ip) +U0 ICSlashOp(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1,I64 op,I64 ip) { I64 i; - if (t1&TY_MASK==TY_REG && !op.u8[3]) - t1=t1&(TY_MASK|1)+RT_I64; //Set to 64 bit, preserving signed/unsigned + if (t1&MDF_REG && !op.u8[3]) + t1=t1&(MDG_MASK|RTF_UNSIGNED)+RT_I64; //Set to 64 bit,preserving unsigned i=ICModr1(op.u8[0],t1,r1,d1); - if (tempi->ic_flags&ICF_LOCK && op!=SLASH_OP_MOV && t1&TY_MASK!=TY_REG) + if (tempi->ic_flags&ICF_LOCK && op!=SLASH_OP_MOV && !(t1&MDF_REG)) ICU8(tempi,OC_LOCK_PREFIX); - switch (t1&RT_MASK) { + switch (t1.raw_type) { case RT_I8: case RT_U8: ICRex(tempi,i.u8[1]); @@ -300,32 +294,32 @@ U0 ICSlashOp(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 op,I64 ip) ICModr2(tempi,i,d1,ip+4); } -U0 ICPush(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 ip) +U0 ICPush(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1,I64 ip) { - switch (t1>>4) { - case TY_REG>>4: + switch (Bsr(t1)) { + case MDf_REG: if (r1>7) ICU16(tempi,0x5049+(r1&7)<<8); else ICU8(tempi,0x50+r1); return; - case TY_IMM>>4: + case MDf_IMM: if (MIN_I8<=d1<=MAX_I8) ICU16(tempi,0x6A+d1<<8); else if (MIN_I32<=d1<=MAX_I32) { ICU8(tempi,0x68); ICU32(tempi,d1); } else { - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,t1,r1,d1,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,t1,r1,d1,ip); ICU8(tempi,0x50+REG_RBX); } return; - case TY_STK>>4: + case MDf_STK: return; - case TY_DISP>>4: - case TY_SIB>>4: - case TY_RIP_DISP32>>4: - switch (t1&RT_MASK) { + case MDf_DISP: + case MDf_SIB: + case MDf_RIP_DISP32: + switch (t1.raw_type) { case RT_I64: case RT_U64: case RT_F64: @@ -334,7 +328,7 @@ U0 ICPush(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 ip) } break; } - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,t1,r1,d1,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,t1,r1,d1,ip); ICU16(tempi,0x5048+REG_RBX<<8); } @@ -351,30 +345,31 @@ U0 ICPushRegs(CIntermediateCode *tempi,I64 mask) } } -U0 ICPop(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,I64 ip) +U0 ICPop(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1,I64 ip) { - switch (t1>>4) { - case TY_NULL>>4: - ICAddRSP(tempi,8); - break; - case TY_REG>>4: + switch (Bsr(t1)) { + case MDf_REG: if (r1>7) ICU16(tempi,0x5849+(r1&7)<<8); else ICU8(tempi,0x58+r1); break; - case TY_DISP>>4: - case TY_RIP_DISP32>>4: - case TY_SIB>>4: - if (t1&RT_MASKic_cnt; CIntermediateCode *tempil1; Bool old_lock=Btr(&tempi->ic_flags,ICf_LOCK); - switch (t1>>4) { - case TY_REG>>4: - if (t2&TY_MASK==TY_IMM) { + switch (Bsr(t1)) { + case MDf_REG: + if (t2&MDF_IMM) { if (!d2) ICZero(tempi,r1); else if (0<=d2<=MAX_U8) { @@ -492,13 +487,13 @@ U0 ICMov(CIntermediateCode *tempi, ICU16(tempi,i+r1<<8); ICU64(tempi,d2); } - } else if (t2&TY_MASK==TY_STK) + } else if (t2&MDF_STK) ICPop(tempi,t1,r1,d1,ip); else { - if (r1==r2 && t2&TY_MASK==TY_REG) + if (r1==r2 && t2&MDF_REG) goto move_done; - if (t2&TY_MASK==TY_REG) { - t2=TY_REG+RT_I64; + if (t2&MDF_REG) { + t2=MDF_REG+RT_I64; if (tempil1=ICLastIns(tempi)) { i=tempil1->ic_cnt; j=0x48+(r1>7); @@ -511,10 +506,10 @@ U0 ICMov(CIntermediateCode *tempi, } } i=ICModr1(r1,t2,r2,d2); - if (t2&RT_MASK!=RT_U32) + if (t2.raw_type!=RT_U32) i|=0x4800; ICRex(tempi,i.u8[1]); - switch (t2&RT_MASK) { + switch (t2.raw_type) { case RT_I8: ICU24(tempi,i.u8[2]<<16+0xBE0F); break; @@ -537,19 +532,22 @@ U0 ICMov(CIntermediateCode *tempi, ICModr2(tempi,i,d2,ip+4); } break; - case TY_STK>>4: - if (t1&RT_MASKic_flags&ICF_PUSH_CMP) + ICPopRegs(tempi,1<ic_flags&ICF_PUSH_CMP) + ICPushRegs(tempi,1<>4: - case TY_RIP_DISP32>>4: - case TY_SIB>>4: - if (t2&TY_MASK==TY_IMM && (t1&RT_MASKic_cnt+4); - switch (t1&RT_MASK) { + switch (t1.raw_type) { case RT_I8: case RT_U8: i--; @@ -584,7 +582,7 @@ U0 ICMov(CIntermediateCode *tempi, tempi->ic_flags&=~ICF_CODE_FINAL; } - switch (t1&RT_MASK) { + switch (t1.raw_type) { case RT_I8: case RT_U8: ICU8(tempi,d2); @@ -597,11 +595,11 @@ U0 ICMov(CIntermediateCode *tempi, ICU32(tempi,d2); } } else { - if (t2&TY_MASK==TY_REG) + if (t2&MDF_REG) ICSlashOp(tempi,t1,r1,d1,r2+SLASH_OP_MOV,ip); else { - ICMov(tempi,TY_REG+RT_I64,REG_RBX,0,t2,r2,d2,ip); - ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,REG_RBX,0,ip); + ICMov(tempi,MDF_REG+RT_I64,REG_RBX,0,t2,r2,d2,ip); + ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,REG_RBX,0,ip); } } break; @@ -612,20 +610,20 @@ move_done: tempi->ic_last_cnt=last_cnt; } -U0 ICLea(CIntermediateCode *tempi, - I64 t1,I64 r1,I64 d1,I64 t2,I64 r2,I64 d2,CCmpCtrl *cc,U8 *buf,I64 ip) +U0 ICLea(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, + CICType t2,I64 r2,I64 d2,CCmpCtrl *cc,U8 *buf,I64 ip) { I64 i; CAOTAbsAddr *tempa; - switch (t1>>4) { - case TY_REG>>4: + switch (Bsr(t1)) { + case MDf_REG: i=ICModr1(r1,t2,r2,d2); i.u8[1]|=0x48; ICU24(tempi,i.u8[2]<<16+0x8D00+i.u8[1]); ICModr2(tempi,i,d2,ip+4); break; - case TY_STK>>4: - if (t2&TY_MASK==TY_RIP_DISP32) { + case MDf_STK: + if (t2&MDF_RIP_DISP32) { ICU8(tempi,0x68); ICU32(tempi,d2); if (cc->flags&CCF_AOT_COMPILE && buf && !(cc->flags&CCF_NO_ABSS)) { @@ -639,24 +637,24 @@ U0 ICLea(CIntermediateCode *tempi, break; } // Fall thru default: - ICLea(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,cc,buf,ip); - ICMov(tempi,t1,r1,d1,TY_REG+RT_I64,REG_RCX,0,ip); + ICLea(tempi,MDF_REG+RT_I64,REG_RCX,0,t2,r2,d2,cc,buf,ip); + ICMov(tempi,t1,r1,d1,MDF_REG+RT_I64,REG_RCX,0,ip); } } U0 ICDeref(CIntermediateCode *tempi,I64 ip) { - I64 t; - t=tempi->r.type&RT_MASK; + CICType t; + t=tempi->r.type.raw_type; if (t>tempi->a1.type_pointed_to) t=tempi->a1.type_pointed_to; - if (tempi->a1.type&TY_MASK==TY_REG) + if (tempi->a1.type&MDF_REG) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+t,tempi->a1.reg,tempi->a1.disp,ip); + MDF_DISP+t,tempi->a1.reg,tempi->a1.disp,ip); else { - ICMov(tempi,TY_REG+RT_I64,REG_RCX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+t,REG_RCX,0,ip); + MDF_DISP+t,REG_RCX,0,ip); } } diff --git a/Compiler/CExcept.CPP b/Compiler/CExcept.CPP index 038e38a..580d519 100644 --- a/Compiler/CExcept.CPP +++ b/Compiler/CExcept.CPP @@ -3,7 +3,7 @@ U0 LexPutToken(CCmpCtrl *cc) '"'; if (cc->token==TK_IDENT || cc->token==TK_STR) "%s",cc->cur_str; - else if (cc->token==TK_INTEGER) + else if (cc->token==TK_INT) "INT:%X",cc->cur_i64; else if (cc->token==TK_CHAR_CONST) "U8:%X",cc->cur_i64; @@ -141,31 +141,29 @@ U0 ICClassPut(CHashClass *c) U0 ICArgPut(CICArg *a) { if (a->type_pointed_to) - "%Z %Z %Z ", - a->type&RT_MASK,"ST_RAW_TYPES", - a->type_pointed_to&RT_MASK,"ST_RAW_TYPES", - a->type>>4,"ST_TY_TYPES"; + "%Z %Z %Z ",a->type.raw_type,"ST_RAW_TYPES", + a->type_pointed_to,"ST_RAW_TYPES", + Bsr(a->type>>8)+1,"ST_TY_TYPES"; else - "%Z %Z ", - a->type&RT_MASK,"ST_RAW_TYPES", - a->type>>4,"ST_TY_TYPES"; - switch (a->type>>4) { - case TY_STK>>4: + "%Z %Z ",a->type.raw_type,"ST_RAW_TYPES", + Bsr(a->type>>8)+1,"ST_TY_TYPES"; + switch (Bsr(a->type)) { + case MDf_STK: "STK"; break; - case TY_IMM>>4: + case MDf_IMM: "#%X",a->disp; break; - case TY_REG>>4: + case MDf_REG: "%Z",a->reg,"ST_U64_REGS"; break; - case TY_DISP>>4: + case MDf_DISP: "%X[%Z]",a->disp,a->reg,"ST_U64_REGS"; break; - case TY_RIP_DISP32>>4: + case MDf_RIP_DISP32: "[%X]",a->disp; break; - case TY_SIB>>4: + case MDf_SIB: if (a->disp) "%X",a->disp; if (a->reg==REG_RIP) @@ -189,14 +187,14 @@ U0 ICPut(CCmpCtrl *cc,CIntermediateCode *tempi) if (opcode>=IC_END_EXP && opcode!=IC_NOP2) { "%15ts %016X ",intermediate_code_table[opcode].name,tempi->ic_data; if (cc->pass) { - if (tempi->r.type&TY_MASK) { + if (tempi->r.type.mode) { ICArgPut(&tempi->r); "<-"; } - if (tempi->a1.type&TY_MASK) + if (tempi->a1.type.mode) ICArgPut(&tempi->a1); ','; - if (tempi->a2.type&TY_MASK) + if (tempi->a2.type.mode) ICArgPut(&tempi->a2); '' CH_SPACE; } @@ -225,8 +223,8 @@ U0 ICPut(CCmpCtrl *cc,CIntermediateCode *tempi) "-DEP "; if (tempi->ic_flags & ICF_DEPEND_RESULT) "+DEP "; - if (tempi->ic_flags & ICF_NOT_ADDR) - "NOT_ADDR "; + if (tempi->ic_flags & ICF_BY_VAL) + "BY_VAL "; if (tempi->ic_flags & ICF_PUSH_RESULT) "PUSH "; if (tempi->ic_flags & ICF_PUSH_CMP) @@ -234,16 +232,16 @@ U0 ICPut(CCmpCtrl *cc,CIntermediateCode *tempi) if (tempi->ic_flags & ICF_POP_CMP) "POP_CMP "; if (tempi->ic_flags & ICF_DEL_PREVIOUS_INS) - "DELPREV "; + "DEL_PREV "; if (tempi->ic_flags & ICF_PREVIOUS_DELETED) - "PREVDEL "; + "PREV_DEL "; for (i=0;i<3;i++) { if (Bt(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0+i)) "DONT_PUSH#%d ",i; if (Bt(&tempi->ic_flags,ICf_DONT_POP_FLOAT0+i)) "DONT_POP#%d ",i; } - if (tempi->ic_flags & ICF_ALTERNATE_TEMPLATE) + if (tempi->ic_flags & ICF_ALT_TEMPLATE) "ALT_TEMP "; '\n'; } diff --git a/Compiler/CInit.CPP b/Compiler/CInit.CPP index 2eb5b30..2dd83d7 100644 --- a/Compiler/CInit.CPP +++ b/Compiler/CInit.CPP @@ -211,7 +211,7 @@ U0 CmpLoadDefines() "I8\0U8\0I16\0U16\0I32\0U32\0I64\0U64\0F64\0String\0"); DefineLstLoad("ST_INT_SIZE_TYPES", "I8\0U8\0I16\0U16\0I32\0U32\0I64\0U64\0"); - DefineLstLoad("ST_TY_TYPES","NULL\0IMM\0REG\0DISP\0SIB\0RIP\0STK\0"); + DefineLstLoad("ST_TY_TYPES","NULL\0STK\0IMM\0REG\0DISP\0SIB\0RIP\0"); DefineLstLoad("ST_U8_REGS","AL\0CL\0DL\0BL\0AH\0CH\0DH\0BH\0" "R8u8\0R9u8\0R10u8\0R11u8\0R12u8\0R13u8\0R14u8\0R15u8\0"); DefineLstLoad("ST_U8_REX_REGS","AL\0CL\0DL\0BL\0RSPu8\0RBPu8\0RSIu8\0RDIu8\0" @@ -239,68 +239,23 @@ U0 CmpLoadDefines() U0 CmpFillTables() { - I64 i,k; + I64 i; U32 *d; cmp.to_reg_vars_map=CAlloc(NUM_REGS*sizeof(U8)); cmp.num_reg_vars=0; - cmp.reg_vars_mask=REGG_C_LOCAL_VARS; + cmp.reg_vars_mask=REGG_LOCAL_VARS; for (i=0;iabss; while (tempa) { - if (!(tempa->type&1)) + if (!(tempa->type&IEF_IMM_NOT_REL)) cnt++; tempa=tempa->next; } @@ -451,7 +451,7 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0) tempa=tempaot->abss; while (tempa) { tempa1=tempa->next; - if (!(tempa->type&1)) + if (!(tempa->type&IEF_IMM_NOT_REL)) *ptr(U32 *)++ =tempa->ip; Free(tempa); tempa=tempa1; @@ -655,8 +655,7 @@ I64 ExePrint2(U8 *fmt,...) I64 ExeFile2(U8 *name,Bool just_load=FALSE) {//throws exceptions I64 result; - U8 *name2=DftExt(name,"CPP.Z"), - *st=MStrPrint("#include \"%s\";",name2); + U8 *name2=DftExt(name,"CPP.Z"),*st=MStrPrint("#include \"%s\";",name2); result=ExePutS2(st,name,just_load); Free(st); Free(name2); diff --git a/Compiler/CMisc.CPP b/Compiler/CMisc.CPP index baa4d6d..76ba54e 100644 --- a/Compiler/CMisc.CPP +++ b/Compiler/CMisc.CPP @@ -16,7 +16,7 @@ I64 PassTrace(I64 i=0b10001111101) return old; } -Bool Trace(Bool val) +Bool Trace(Bool val=ON) {//Displays assembly code output from compiler. return Option(OPTf_TRACE,val); } @@ -52,15 +52,15 @@ U0 StreamDir() CD2I32 *LexD2I32(CCmpCtrl *cc,CD2I32 *p) {//Not HolyC. Sprite-like lex 2D point. if (cc->token!='(') - LexExcept(cc,"expecting '(' at "); + LexExcept(cc,"Expecting '(' at "); Lex(cc); //Skip ( p->x=LexExpressionI64(cc); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , p->y=LexExpressionI64(cc); if (cc->token!=')') - LexExcept(cc,"expecting ')' at "); + LexExcept(cc,"Expecting ')' at "); Lex(cc); //Skip ) return p; } @@ -68,19 +68,19 @@ CD2I32 *LexD2I32(CCmpCtrl *cc,CD2I32 *p) CD3I32 *LexD3I32(CCmpCtrl *cc,CD3I32 *p) {//Not HolyC. Sprite-like lex 3D point. if (cc->token!='(') - LexExcept(cc,"expecting '(' at "); + LexExcept(cc,"Expecting '(' at "); Lex(cc); //Skip ( p->x=LexExpressionI64(cc); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , p->y=LexExpressionI64(cc); if (cc->token!=',') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); Lex(cc); //Skip , p->z=LexExpressionI64(cc); if (cc->token!=')') - LexExcept(cc,"expecting ')' at "); + LexExcept(cc,"Expecting ')' at "); Lex(cc); //Skip ) return p; } diff --git a/Compiler/Compiler.BIN b/Compiler/Compiler.BIN index a088363..7fe215a 100644 Binary files a/Compiler/Compiler.BIN and b/Compiler/Compiler.BIN differ diff --git a/Compiler/Compiler.MAP b/Compiler/Compiler.MAP index 131e991..cab1e22 100644 --- a/Compiler/Compiler.MAP +++ b/Compiler/Compiler.MAP @@ -1,31 +1,29 @@ $LK,"LexPutPos",A="FL:::/Compiler/CExcept.CPP.Z,50",BI=1$ -$LK,"ICAssignPostIncDec",A="FL:::/Compiler/BackB.CPP.Z,517",BI=2$ -$LK,"CmpSetFloatOpPushPop",A="FL:::/Compiler/BackFA.CPP.Z,60",BI=3$ -$LK,"ICFCvt2",A="FL:::/Compiler/BackFA.CPP.Z,170",BI=4$ -$LK,"CmpRawTypePointed",A="FL:::/Compiler/OptLib.CPP.Z,518",BI=5$ +$LK,"ICAssignPostIncDec",A="FL:::/Compiler/BackB.CPP.Z,429",BI=2$ +$LK,"CmpSetFloatOpPushPop",A="FL:::/Compiler/BackFA.CPP.Z,62",BI=3$ +$LK,"ICFCvt2",A="FL:::/Compiler/BackFA.CPP.Z,169",BI=4$ +$LK,"CmpRawTypePointed",A="FL:::/Compiler/OptLib.CPP.Z,517",BI=5$ $LK,"OptFixupBinaryOp1",A="FL:::/Compiler/OptLib.CPP.Z,96",BI=6$ $LK,"OptFixupBinaryOp2",A="FL:::/Compiler/OptLib.CPP.Z,182",BI=7$ $LK,"COCInit",A="FL:::/Compiler/PrsLib.CPP.Z,99",BI=8$ -$LK,"IsLexExpression2Bin",A="FL:::/Compiler/PrsExp.CPP.Z,1130",BI=9$ -$LK,"CSubSwitch",A="FL:::/Compiler/PrsStmt.CPP.Z,563"$ +$LK,"IsLexExpression2Bin",A="FL:::/Compiler/PrsExp.CPP.Z,1128",BI=9$ +$LK,"CSubSwitch",A="FL:::/Compiler/PrsStmt.CPP.Z,562"$ $LK,"LexFilePop",A="FL:::/Compiler/Lex.CPP.Z,11",BI=10$ $LK,"ExePutS",A="FL:::/Compiler/CMain.CPP.Z,571",BI=11$ $LK,"PrsStaticInit",A="FL:::/Compiler/PrsVar.CPP.Z,215",BI=12$ $LK,"LexPutLine",A="FL:::/Compiler/CExcept.CPP.Z,22",BI=13$ $LK,"PrsKeyWord",A="FL:::/Compiler/PrsLib.CPP.Z,31",BI=14$ -$LK,"AsmLineLst",A="FL:::/Compiler/AsmLib.CPP.Z,149",BI=15$ +$LK,"AsmLineLst",A="FL:::/Compiler/AsmLib.CPP.Z,147",BI=15$ $LK,"ICOpSizeRex",A="FL:::/Compiler/BackLib.CPP.Z,28",BI=16$ $LK,"CVI2",A="FL:::/Compiler/PrsVar.CPP.Z,117"$ $LK,"ICU8",A="FL:::/Compiler/BackLib.CPP.Z,17",BI=17$ $LK,"AsmStoreNum",A="FL:::/Compiler/Asm.CPP.Z,263",BI=18$ -$LK,"MDR_SIB_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,137"$ $LK,"OptPass012",A="FL:::/Compiler/OptPass012.CPP.Z,23",BI=19$ $LK,"MemberLstSize",A="FL:::/Compiler/LexLib.CPP.Z,191",BI=20$ -$LK,"ICQueIns",A="FL:::/Compiler/BackC.CPP.Z,412",BI=21$ +$LK,"ICQueIns",A="FL:::/Compiler/BackC.CPP.Z,355",BI=21$ $LK,"ICAndBranch",A="FL:::/Compiler/BackC.CPP.Z,1",BI=22$ -$LK,"MDR_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,134"$ -$LK,"U",A="FL:::/Compiler/UAsm.CPP.Z,649",BI=23$ -$LK,"ICQueRem",A="FL:::/Compiler/BackC.CPP.Z,494",BI=24$ +$LK,"U",A="FL:::/Compiler/UAsm.CPP.Z,645",BI=23$ +$LK,"ICQueRem",A="FL:::/Compiler/BackC.CPP.Z,403",BI=24$ $LK,"CN_R",A="FL:::/Compiler/BackFA.CPP.Z,4"$ $LK,"OptLead1",A="FL:::/Compiler/OptLib.CPP.Z,73",BI=25$ $LK,"CmpNoteFloatOp",A="FL:::/Compiler/BackFA.CPP.Z,6",BI=26$ @@ -33,24 +31,25 @@ $LK,"AOTGlblsResolve",A="FL:::/Compiler/AsmResolve.CPP.Z,76",BI=27$ $LK,"ExePutS2",A="FL:::/Compiler/CMain.CPP.Z,627",BI=28$ $LK,"HashEntrySize",A="FL:::/Compiler/CHash.CPP.Z,1",BI=29$ $LK,"COCPush",A="FL:::/Compiler/PrsLib.CPP.Z,107",BI=30$ -$LK,"SLASH_OP_DEC",A="FL:::/Compiler/BackLib.CPP.Z,255"$ -$LK,"ICPushRegs",A="FL:::/Compiler/BackLib.CPP.Z,341",BI=31$ +$LK,"SLASH_OP_DEC",A="FL:::/Compiler/BackLib.CPP.Z,249"$ +$LK,"MODR_SIB_D32_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,136"$ +$LK,"ICPushRegs",A="FL:::/Compiler/BackLib.CPP.Z,335",BI=31$ $LK,"PE_POP_HIGHER",A="FL:::/Compiler/PrsExp.CPP.Z,10"$ -$LK,"SLASH_OP_FLD",A="FL:::/Compiler/BackLib.CPP.Z,270"$ +$LK,"SLASH_OP_FLD",A="FL:::/Compiler/BackLib.CPP.Z,264"$ $LK,"ICU32",A="FL:::/Compiler/BackLib.CPP.Z,47",BI=32$ $LK,"ICU24",A="FL:::/Compiler/BackLib.CPP.Z,41",BI=33$ $LK,"ICU16",A="FL:::/Compiler/BackLib.CPP.Z,35",BI=34$ -$LK,"SLASH_OP_DIV",A="FL:::/Compiler/BackLib.CPP.Z,260"$ +$LK,"SLASH_OP_DIV",A="FL:::/Compiler/BackLib.CPP.Z,254"$ $LK,"CmpFillTables",A="FL:::/Compiler/CInit.CPP.Z,240",BI=35$ $LK,"AOTStoreCodeU32",A="FL:::/Compiler/AsmLib.CPP.Z,30",BI=36$ $LK,"ICU64",A="FL:::/Compiler/BackLib.CPP.Z,53",BI=37$ -$LK,"SLASH_OP_INC",A="FL:::/Compiler/BackLib.CPP.Z,254"$ -$LK,"AOTStoreCodeU64",A="FL:::/Compiler/AsmLib.CPP.Z,69",BI=38$ +$LK,"SLASH_OP_INC",A="FL:::/Compiler/BackLib.CPP.Z,248"$ +$LK,"AOTStoreCodeU64",A="FL:::/Compiler/AsmLib.CPP.Z,68",BI=38$ $LK,"LexPopNoRestore",A="FL:::/Compiler/LexLib.CPP.Z,38",BI=39$ $LK,"ExePrint",A="FL:::/Compiler/CMain.CPP.Z,607",BI=40$ -$LK,"SLASH_OP_NEG",A="FL:::/Compiler/BackLib.CPP.Z,257"$ +$LK,"SLASH_OP_NEG",A="FL:::/Compiler/BackLib.CPP.Z,251"$ $LK,"PrsVarLst",A="FL:::/Compiler/PrsVar.CPP.Z,416",BI=41$ -$LK,"PrsAsmDefine",A="FL:::/Compiler/Asm.CPP.Z,811",BI=42$ +$LK,"PrsAsmDefine",A="FL:::/Compiler/Asm.CPP.Z,809",BI=42$ $LK,"PrsAddOp",A="FL:::/Compiler/PrsExp.CPP.Z,15",BI=43$ $LK,"LexWarn",A="FL:::/Compiler/CExcept.CPP.Z,65",BI=44$ $LK,"PE_POP_ALL1",A="FL:::/Compiler/PrsExp.CPP.Z,12"$ @@ -58,163 +57,162 @@ $LK,"PE_POP_ALL2",A="FL:::/Compiler/PrsExp.CPP.Z,13"$ $LK,"COCAppend",A="FL:::/Compiler/PrsLib.CPP.Z,126",BI=45$ $LK,"LexFilePush",A="FL:::/Compiler/Lex.CPP.Z,1",BI=46$ $LK,"CN_MAIN",A="FL:::/Compiler/BackFA.CPP.Z,3"$ -$LK,"PrsUnaryModifier",A="FL:::/Compiler/PrsExp.CPP.Z,956",BI=47$ +$LK,"PrsUnaryModifier",A="FL:::/Compiler/PrsExp.CPP.Z,954",BI=47$ $LK,"OptFixupUnaryOp",A="FL:::/Compiler/OptLib.CPP.Z,196",BI=48$ $LK,"LexPush",A="FL:::/Compiler/LexLib.CPP.Z,12",BI=49$ -$LK,"SLASH_OP_MOV",A="FL:::/Compiler/BackLib.CPP.Z,261"$ -$LK,"ICPopRegs",A="FL:::/Compiler/BackLib.CPP.Z,381",BI=50$ -$LK,"SLASH_OP_MUL",A="FL:::/Compiler/BackLib.CPP.Z,258"$ -$LK,"SLASH_OP_NOT",A="FL:::/Compiler/BackLib.CPP.Z,256"$ +$LK,"SLASH_OP_MOV",A="FL:::/Compiler/BackLib.CPP.Z,255"$ +$LK,"ICPopRegs",A="FL:::/Compiler/BackLib.CPP.Z,376",BI=50$ +$LK,"SLASH_OP_MUL",A="FL:::/Compiler/BackLib.CPP.Z,252"$ +$LK,"SLASH_OP_NOT",A="FL:::/Compiler/BackLib.CPP.Z,250"$ $LK,"NUM_INTERNAL_TYPES",A="FL:::/Compiler/CInit.CPP.Z,1"$ -$LK,"SLASH_OP_POP",A="FL:::/Compiler/BackLib.CPP.Z,263"$ -$LK,"ICFOp",A="FL:::/Compiler/BackFA.CPP.Z,360",BI=51$ +$LK,"SLASH_OP_POP",A="FL:::/Compiler/BackLib.CPP.Z,257"$ +$LK,"ICFOp",A="FL:::/Compiler/BackFA.CPP.Z,339",BI=51$ $LK,"CN_A1",A="FL:::/Compiler/BackFA.CPP.Z,2"$ $LK,"CN_A2",A="FL:::/Compiler/BackFA.CPP.Z,1"$ -$LK,"LexExpressionF64",A="FL:::/Compiler/PrsExp.CPP.Z,1149",BI=52$ +$LK,"LexExpressionF64",A="FL:::/Compiler/PrsExp.CPP.Z,1147",BI=52$ $LK,"ICAdd",A="FL:::/Compiler/PrsLib.CPP.Z,79",BI=53$ -$LK,"CmpRawType",A="FL:::/Compiler/OptLib.CPP.Z,509",BI=54$ +$LK,"CmpRawType",A="FL:::/Compiler/OptLib.CPP.Z,508",BI=54$ $LK,"ICFOpEqu",A="FL:::/Compiler/BackFB.CPP.Z,1",BI=55$ -$LK,"LexExpressionI64",A="FL:::/Compiler/PrsExp.CPP.Z,1135",BI=56$ -$LK,"ICQueInsRev",A="FL:::/Compiler/BackC.CPP.Z,453",BI=57$ -$LK,"LexExpression",A="FL:::/Compiler/PrsExp.CPP.Z,1163",BI=58$ +$LK,"LexExpressionI64",A="FL:::/Compiler/PrsExp.CPP.Z,1133",BI=56$ +$LK,"ICQueInsRev",A="FL:::/Compiler/BackC.CPP.Z,379",BI=57$ +$LK,"LexExpression",A="FL:::/Compiler/PrsExp.CPP.Z,1161",BI=58$ $LK,"PrsExpression",A="FL:::/Compiler/PrsExp.CPP.Z,264",BI=59$ $LK,"PrsClassNew",A="FL:::/Compiler/PrsLib.CPP.Z,40",BI=60$ -$LK,"LexInStr",A="FL:::/Compiler/Lex.CPP.Z,372",BI=61$ +$LK,"LexInStr",A="FL:::/Compiler/Lex.CPP.Z,373",BI=61$ $LK,"internal_types_table",A="FL:::/Compiler/CInit.CPP.Z,6"$ $LK,"OptPass3",A="FL:::/Compiler/OptPass3.CPP.Z,1",BI=62$ -$LK,"OptPass4",A="FL:::/Compiler/OptPass4.CPP.Z,171",BI=63$ +$LK,"OptPass4",A="FL:::/Compiler/OptPass4.CPP.Z,163",BI=63$ $LK,"OptPass5",A="FL:::/Compiler/OptPass5.CPP.Z,1",BI=64$ -$LK,"OptPass6",A="FL:::/Compiler/OptPass6.CPP.Z,111",BI=65$ +$LK,"OptPass6",A="FL:::/Compiler/OptPass6.CPP.Z,96",BI=65$ +$LK,"MODR_REG",A="FL:::/Compiler/BackLib.CPP.Z,130"$ $LK,"Echo",A="FL:::/Compiler/CMisc.CPP.Z,24",BI=66$ $LK,"PrsGlblVarLst",A="FL:::/Compiler/PrsStmt.CPP.Z,201",BI=67$ -$LK,"ICQueInit",A="FL:::/Compiler/BackC.CPP.Z,398",BI=68$ -$LK,"ICCmp",A="FL:::/Compiler/BackB.CPP.Z,136",BI=69$ +$LK,"ICQueInit",A="FL:::/Compiler/BackC.CPP.Z,341",BI=68$ +$LK,"ICCmp",A="FL:::/Compiler/BackB.CPP.Z,102",BI=69$ $LK,"ICAddRSP",A="FL:::/Compiler/BackLib.CPP.Z,69",BI=70$ -$LK,"ICDiv",A="FL:::/Compiler/BackA.CPP.Z,428",BI=71$ -$LK,"ICDeref",A="FL:::/Compiler/BackLib.CPP.Z,647",BI=72$ -$LK,"ICLea",A="FL:::/Compiler/BackLib.CPP.Z,615",BI=73$ +$LK,"ICDiv",A="FL:::/Compiler/BackA.CPP.Z,391",BI=71$ +$LK,"ICDeref",A="FL:::/Compiler/BackLib.CPP.Z,645",BI=72$ +$LK,"ICLea",A="FL:::/Compiler/BackLib.CPP.Z,613",BI=73$ $LK,"CmpBuf",A="FL:::/Compiler/CMain.CPP.Z,157",BI=74$ $LK,"CMP_TEMPLATES_DONT_PUSH_POP",A="FL:::/Compiler/Templates.CPP.Z,394"$ $LK,"ICAddEct",A="FL:::/Compiler/BackA.CPP.Z,1",BI=75$ -$LK,"ICToF64",A="FL:::/Compiler/BackB.CPP.Z,372",BI=76$ -$LK,"PrsBinFile",A="FL:::/Compiler/Asm.CPP.Z,885",BI=77$ +$LK,"ICToF64",A="FL:::/Compiler/BackB.CPP.Z,283",BI=76$ +$LK,"PrsBinFile",A="FL:::/Compiler/Asm.CPP.Z,883",BI=77$ $LK,"HashTableSize2",A="FL:::/Compiler/CHash.CPP.Z,72",BI=78$ $LK,"HashEntrySize2",A="FL:::/Compiler/CHash.CPP.Z,33",BI=79$ $LK,"Ui",A="FL:::/Compiler/UAsm.CPP.Z,238",BI=80$ -$LK,"ICSlashOp",A="FL:::/Compiler/BackLib.CPP.Z,275",BI=81$ -$LK,"OptBrZero",A="FL:::/Compiler/OptLib.CPP.Z,231",BI=82$ -$LK,"Un",A="FL:::/Compiler/UAsm.CPP.Z,664",BI=83$ +$LK,"ICSlashOp",A="FL:::/Compiler/BackLib.CPP.Z,269",BI=81$ +$LK,"OptBrZero",A="FL:::/Compiler/OptLib.CPP.Z,230",BI=82$ +$LK,"Un",A="FL:::/Compiler/UAsm.CPP.Z,660",BI=83$ $LK,"PrsSizeOf",A="FL:::/Compiler/PrsExp.CPP.Z,298",BI=84$ -$LK,"ICToI64",A="FL:::/Compiler/BackB.CPP.Z,366",BI=85$ -$LK,"ICMod",A="FL:::/Compiler/BackA.CPP.Z,521",BI=86$ +$LK,"ICToI64",A="FL:::/Compiler/BackB.CPP.Z,277",BI=85$ +$LK,"ICMod",A="FL:::/Compiler/BackA.CPP.Z,461",BI=86$ $LK,"OptSetNOP1",A="FL:::/Compiler/OptLib.CPP.Z,17",BI=87$ $LK,"OptPass789A",A="FL:::/Compiler/OptPass789A.CPP.Z,1",BI=88$ $LK,"OptSetNOP2",A="FL:::/Compiler/OptLib.CPP.Z,25",BI=89$ $LK,"FBO1_F64",A="FL:::/Compiler/OptLib.CPP.Z,94"$ -$LK,"ICXorEqu",A="FL:::/Compiler/BackC.CPP.Z,737",BI=90$ -$LK,"ICToUpper",A="FL:::/Compiler/BackB.CPP.Z,355",BI=91$ -$LK,"AsmLexExpression",A="FL:::/Compiler/AsmLib.CPP.Z,129",BI=92$ -$LK,"ICMov",A="FL:::/Compiler/BackLib.CPP.Z,435",BI=93$ +$LK,"ICXorEqu",A="FL:::/Compiler/BackC.CPP.Z,582",BI=90$ +$LK,"ICToUpper",A="FL:::/Compiler/BackB.CPP.Z,266",BI=91$ +$LK,"AsmLexExpression",A="FL:::/Compiler/AsmLib.CPP.Z,127",BI=92$ +$LK,"ICMov",A="FL:::/Compiler/BackLib.CPP.Z,430",BI=93$ $LK,"ICNot",A="FL:::/Compiler/BackB.CPP.Z,10",BI=94$ -$LK,"ICMul",A="FL:::/Compiler/BackA.CPP.Z,286",BI=95$ +$LK,"ICMul",A="FL:::/Compiler/BackA.CPP.Z,263",BI=95$ $LK,"ICRex",A="FL:::/Compiler/BackLib.CPP.Z,22",BI=96$ -$LK,"ICPop",A="FL:::/Compiler/BackLib.CPP.Z,354",BI=97$ -$LK,"MDR_RIP_REL",A="FL:::/Compiler/BackLib.CPP.Z,139"$ -$LK,"SLASH_OP_FADD",A="FL:::/Compiler/BackLib.CPP.Z,264"$ +$LK,"ICPop",A="FL:::/Compiler/BackLib.CPP.Z,348",BI=97$ +$LK,"SLASH_OP_FADD",A="FL:::/Compiler/BackLib.CPP.Z,258"$ +$LK,"MODR_RIP_REL",A="FL:::/Compiler/BackLib.CPP.Z,137"$ $LK,"LexStmt2Bin",A="FL:::/Compiler/CMain.CPP.Z,1",BI=98$ -$LK,"ICSub",A="FL:::/Compiler/BackA.CPP.Z,207",BI=99$ +$LK,"ICSub",A="FL:::/Compiler/BackA.CPP.Z,205",BI=99$ $LK,"COCFloatConstFind",A="FL:::/Compiler/PrsLib.CPP.Z,164",BI=100$ -$LK,"ICPut",A="FL:::/Compiler/CExcept.CPP.Z,186",BI=101$ +$LK,"ICPut",A="FL:::/Compiler/CExcept.CPP.Z,184",BI=101$ $LK,"PrsArrayDims",A="FL:::/Compiler/PrsVar.CPP.Z,247",BI=102$ -$LK,"ICSqr",A="FL:::/Compiler/BackC.CPP.Z,582",BI=103$ +$LK,"ICSqr",A="FL:::/Compiler/BackC.CPP.Z,457",BI=103$ $LK,"FBO1_NOT_CONST",A="FL:::/Compiler/OptLib.CPP.Z,92"$ $LK,"CMP_TEMPLATES_DONT_POP",A="FL:::/Compiler/Templates.CPP.Z,178"$ $LK,"PrsClass",A="FL:::/Compiler/PrsStmt.CPP.Z,1",BI=104$ $LK,"MemberMetaData",A="FL:::/Compiler/LexLib.CPP.Z,45",BI=105$ -$LK,"ICSwitch",A="FL:::/Compiler/BackC.CPP.Z,758",BI=106$ -$LK,"OptBrNotZero",A="FL:::/Compiler/OptLib.CPP.Z,358",BI=107$ +$LK,"ICSwitch",A="FL:::/Compiler/BackC.CPP.Z,603",BI=106$ +$LK,"OptBrNotZero",A="FL:::/Compiler/OptLib.CPP.Z,357",BI=107$ $LK,"LexPutToken",A="FL:::/Compiler/CExcept.CPP.Z,1",BI=108$ -$LK,"SLASH_OP_FDIV",A="FL:::/Compiler/BackLib.CPP.Z,268"$ +$LK,"SLASH_OP_FDIV",A="FL:::/Compiler/BackLib.CPP.Z,262"$ $LK,"AsmHashLoad",A="FL:::/Compiler/AsmInit.CPP.Z,50",BI=109$ $LK,"UAsmHashLoad",A="FL:::/Compiler/UAsm.CPP.Z,188",BI=110$ $LK,"UnusedExternWarning",A="FL:::/Compiler/CExcept.CPP.Z,104",BI=111$ -$LK,"SLASH_OP_FILD",A="FL:::/Compiler/BackLib.CPP.Z,273"$ -$LK,"ICXorXor",A="FL:::/Compiler/BackB.CPP.Z,98",BI=112$ +$LK,"SLASH_OP_FILD",A="FL:::/Compiler/BackLib.CPP.Z,267"$ +$LK,"ICXorXor",A="FL:::/Compiler/BackB.CPP.Z,75",BI=112$ $LK,"PrsTryBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,838",BI=113$ -$LK,"CInit",A="FL:::/Compiler/CMain.CPP.Z,684",BI=114$ +$LK,"CInit",A="FL:::/Compiler/CMain.CPP.Z,683",BI=114$ $LK,"MemberMetaFind",A="FL:::/Compiler/LexLib.CPP.Z,56",BI=115$ $LK,"ExePrint2",A="FL:::/Compiler/CMain.CPP.Z,646",BI=116$ $LK,"FBO1_INT",A="FL:::/Compiler/OptLib.CPP.Z,93"$ $LK,"PE_DO_UNARY_OP",A="FL:::/Compiler/PrsExp.CPP.Z,8"$ $LK,"PrsVarInit",A="FL:::/Compiler/PrsVar.CPP.Z,1",BI=117$ -$LK,"ICOrEqu",A="FL:::/Compiler/BackC.CPP.Z,716",BI=118$ -$LK,"ICModr1",A="FL:::/Compiler/BackLib.CPP.Z,141",BI=119$ -$LK,"ICModr2",A="FL:::/Compiler/BackLib.CPP.Z,223",BI=120$ -$LK,"SLASH_OP_FMUL",A="FL:::/Compiler/BackLib.CPP.Z,267"$ -$LK,"ICPreIncDec",A="FL:::/Compiler/BackB.CPP.Z,393",BI=121$ -$LK,"PrsAsmInstruction",A="FL:::/Compiler/Asm.CPP.Z,390",BI=122$ -$LK,"PrsUnaryTerm",A="FL:::/Compiler/PrsExp.CPP.Z,588",BI=123$ -$LK,"MemberLstDel",A="FL:::/Compiler/LexLib.CPP.Z,157",BI=124$ -$LK,"SLASH_OP_FSUB",A="FL:::/Compiler/BackLib.CPP.Z,265"$ -$LK,"ICAndAnd",A="FL:::/Compiler/BackB.CPP.Z,31",BI=125$ -$LK,"InstEntriesCompare",A="FL:::/Compiler/UAsm.CPP.Z,1",BI=126$ -$LK,"SLASH_OP_IMUL",A="FL:::/Compiler/BackLib.CPP.Z,259"$ -$LK,"SLASH_OP_FSTP",A="FL:::/Compiler/BackLib.CPP.Z,271"$ -$LK,"COCDel",A="FL:::/Compiler/PrsLib.CPP.Z,186",BI=127$ +$LK,"ICOrEqu",A="FL:::/Compiler/BackC.CPP.Z,561",BI=118$ +$LK,"ICModr1",A="FL:::/Compiler/BackLib.CPP.Z,139",BI=119$ +$LK,"ICModr2",A="FL:::/Compiler/BackLib.CPP.Z,217",BI=120$ +$LK,"SLASH_OP_FMUL",A="FL:::/Compiler/BackLib.CPP.Z,261"$ +$LK,"ICPreIncDec",A="FL:::/Compiler/BackB.CPP.Z,304",BI=121$ +$LK,"PrsUnaryTerm",A="FL:::/Compiler/PrsExp.CPP.Z,588",BI=122$ +$LK,"MemberLstDel",A="FL:::/Compiler/LexLib.CPP.Z,157",BI=123$ +$LK,"SLASH_OP_FSUB",A="FL:::/Compiler/BackLib.CPP.Z,259"$ +$LK,"ICAndAnd",A="FL:::/Compiler/BackB.CPP.Z,30",BI=124$ +$LK,"InstEntriesCompare",A="FL:::/Compiler/UAsm.CPP.Z,1",BI=125$ +$LK,"SLASH_OP_IMUL",A="FL:::/Compiler/BackLib.CPP.Z,253"$ +$LK,"SLASH_OP_FSTP",A="FL:::/Compiler/BackLib.CPP.Z,265"$ +$LK,"COCDel",A="FL:::/Compiler/PrsLib.CPP.Z,186",BI=126$ $LK,"PE_UNARY_TERM1",A="FL:::/Compiler/PrsExp.CPP.Z,1"$ -$LK,"ICFAdd",A="FL:::/Compiler/BackFB.CPP.Z,602",BI=128$ +$LK,"ICFAdd",A="FL:::/Compiler/BackFB.CPP.Z,502",BI=127$ $LK,"PE_UNARY_TERM2",A="FL:::/Compiler/PrsExp.CPP.Z,2"$ -$LK,"CmdLinePmt",A="FL:::/Compiler/CMisc.CPP.Z,88",BI=129$ -$LK,"AsmMakeArgMask",A="FL:::/Compiler/Asm.CPP.Z,172",BI=130$ -$LK,"COCHeaderPut",A="FL:::/Compiler/PrsLib.CPP.Z,229",BI=131$ -$LK,"PrsGlblInit",A="FL:::/Compiler/PrsVar.CPP.Z,206",BI=132$ -$LK,"ICAndEqu",A="FL:::/Compiler/BackC.CPP.Z,695",BI=133$ -$LK,"LexD2I32",A="FL:::/Compiler/CMisc.CPP.Z,52",BI=134$ -$LK,"MemberLstNew",A="FL:::/Compiler/LexLib.CPP.Z,150",BI=135$ -$LK,"LexD3I32",A="FL:::/Compiler/CMisc.CPP.Z,68",BI=136$ -$LK,"OptClassFwd",A="FL:::/Compiler/OptLib.CPP.Z,9",BI=137$ -$LK,"ICFCmp",A="FL:::/Compiler/BackFA.CPP.Z,545",BI=138$ -$LK,"PrsSwitch",A="FL:::/Compiler/PrsStmt.CPP.Z,575",BI=139$ -$LK,"ICFDiv",A="FL:::/Compiler/BackFB.CPP.Z,590",BI=140$ -$LK,"AOTStoreCodeU8At",A="FL:::/Compiler/AsmLib.CPP.Z,108",BI=141$ +$LK,"CmdLinePmt",A="FL:::/Compiler/CMisc.CPP.Z,88",BI=128$ +$LK,"AsmMakeArgMask",A="FL:::/Compiler/Asm.CPP.Z,172",BI=129$ +$LK,"COCHeaderPut",A="FL:::/Compiler/PrsLib.CPP.Z,229",BI=130$ +$LK,"PrsGlblInit",A="FL:::/Compiler/PrsVar.CPP.Z,206",BI=131$ +$LK,"ICAndEqu",A="FL:::/Compiler/BackC.CPP.Z,540",BI=132$ +$LK,"LexD2I32",A="FL:::/Compiler/CMisc.CPP.Z,52",BI=133$ +$LK,"MemberLstNew",A="FL:::/Compiler/LexLib.CPP.Z,150",BI=134$ +$LK,"LexD3I32",A="FL:::/Compiler/CMisc.CPP.Z,68",BI=135$ +$LK,"OptClassFwd",A="FL:::/Compiler/OptLib.CPP.Z,9",BI=136$ +$LK,"ICFCmp",A="FL:::/Compiler/BackFA.CPP.Z,515",BI=137$ +$LK,"PrsSwitch",A="FL:::/Compiler/PrsStmt.CPP.Z,574",BI=138$ +$LK,"ICFDiv",A="FL:::/Compiler/BackFB.CPP.Z,491",BI=139$ +$LK,"AOTStoreCodeU8At",A="FL:::/Compiler/AsmLib.CPP.Z,106",BI=140$ $LK,"PE_PUSH_LOWER",A="FL:::/Compiler/PrsExp.CPP.Z,11"$ -$LK,"OptPass6Lag",A="FL:::/Compiler/OptPass6.CPP.Z,28",BI=142$ -$LK,"OptLag1",A="FL:::/Compiler/OptLib.CPP.Z,51",BI=143$ -$LK,"OptLag2",A="FL:::/Compiler/OptLib.CPP.Z,62",BI=144$ -$LK,"StreamPrint",A="FL:::/Compiler/CMisc.CPP.Z,29",BI=145$ -$LK,"ICFCvt",A="FL:::/Compiler/BackFA.CPP.Z,121",BI=146$ -$LK,"StreamDir",A="FL:::/Compiler/CMisc.CPP.Z,43",BI=147$ -$LK,"PrsOffsetOf",A="FL:::/Compiler/PrsExp.CPP.Z,348",BI=148$ -$LK,"MDR_REG",A="FL:::/Compiler/BackLib.CPP.Z,132"$ -$LK,"GetOption",A="FL:::/Compiler/CMisc.CPP.Z,6",BI=149$ -$LK,"PrsDoWhile",A="FL:::/Compiler/PrsStmt.CPP.Z,503",BI=150$ -$LK,"ICShift",A="FL:::/Compiler/BackA.CPP.Z,694",BI=151$ -$LK,"ICFMod",A="FL:::/Compiler/BackFA.CPP.Z,249",BI=152$ -$LK,"COCPop",A="FL:::/Compiler/PrsLib.CPP.Z,121",BI=153$ -$LK,"PrsExpression2",A="FL:::/Compiler/PrsExp.CPP.Z,65",BI=154$ -$LK,"SLASH_OP_PUSH",A="FL:::/Compiler/BackLib.CPP.Z,262"$ +$LK,"OptPass6Lag",A="FL:::/Compiler/OptPass6.CPP.Z,28",BI=141$ +$LK,"OptLag1",A="FL:::/Compiler/OptLib.CPP.Z,51",BI=142$ +$LK,"OptLag2",A="FL:::/Compiler/OptLib.CPP.Z,62",BI=143$ +$LK,"StreamPrint",A="FL:::/Compiler/CMisc.CPP.Z,29",BI=144$ +$LK,"ICFCvt",A="FL:::/Compiler/BackFA.CPP.Z,123",BI=145$ +$LK,"StreamDir",A="FL:::/Compiler/CMisc.CPP.Z,43",BI=146$ +$LK,"PrsOffsetOf",A="FL:::/Compiler/PrsExp.CPP.Z,348",BI=147$ +$LK,"GetOption",A="FL:::/Compiler/CMisc.CPP.Z,6",BI=148$ +$LK,"PrsDoWhile",A="FL:::/Compiler/PrsStmt.CPP.Z,502",BI=149$ +$LK,"ICShift",A="FL:::/Compiler/BackA.CPP.Z,609",BI=150$ +$LK,"ICFMod",A="FL:::/Compiler/BackFA.CPP.Z,242",BI=151$ +$LK,"COCPop",A="FL:::/Compiler/PrsLib.CPP.Z,121",BI=152$ +$LK,"PrsExpression2",A="FL:::/Compiler/PrsExp.CPP.Z,65",BI=153$ +$LK,"SLASH_OP_PUSH",A="FL:::/Compiler/BackLib.CPP.Z,256"$ $LK,"PE_DEREFERENCE",A="FL:::/Compiler/PrsExp.CPP.Z,5"$ -$LK,"LexPopRestore",A="FL:::/Compiler/LexLib.CPP.Z,23",BI=155$ -$LK,"ICUnaries",A="FL:::/Compiler/BackB.CPP.Z,1",BI=156$ -$LK,"ICFMul",A="FL:::/Compiler/BackFB.CPP.Z,572",BI=157$ -$LK,"ICShiftEqu",A="FL:::/Compiler/BackA.CPP.Z,727",BI=158$ -$LK,"LexExpression2Bin",A="FL:::/Compiler/PrsExp.CPP.Z,1112",BI=159$ -$LK,"ICFPow",A="FL:::/Compiler/BackFA.CPP.Z,280",BI=160$ -$LK,"MapFileWrite",A="FL:::/Compiler/CHash.CPP.Z,90",BI=161$ -$LK,"ICFSub",A="FL:::/Compiler/BackFB.CPP.Z,638",BI=162$ -$LK,"ICFModEqu",A="FL:::/Compiler/BackFA.CPP.Z,585",BI=163$ -$LK,"CmpF1PushPop",A="FL:::/Compiler/OptLib.CPP.Z,529",BI=164$ -$LK,"OptFree",A="FL:::/Compiler/OptLib.CPP.Z,33",BI=165$ +$LK,"LexPopRestore",A="FL:::/Compiler/LexLib.CPP.Z,23",BI=154$ +$LK,"ICUnaries",A="FL:::/Compiler/BackB.CPP.Z,1",BI=155$ +$LK,"ICFMul",A="FL:::/Compiler/BackFB.CPP.Z,475",BI=156$ +$LK,"ICShiftEqu",A="FL:::/Compiler/BackA.CPP.Z,639",BI=157$ +$LK,"LexExpression2Bin",A="FL:::/Compiler/PrsExp.CPP.Z,1110",BI=158$ +$LK,"ICFPow",A="FL:::/Compiler/BackFA.CPP.Z,266",BI=159$ +$LK,"MapFileWrite",A="FL:::/Compiler/CHash.CPP.Z,90",BI=160$ +$LK,"ICFSub",A="FL:::/Compiler/BackFB.CPP.Z,538",BI=161$ +$LK,"ICFModEqu",A="FL:::/Compiler/BackFA.CPP.Z,545",BI=162$ +$LK,"CmpF1PushPop",A="FL:::/Compiler/OptLib.CPP.Z,528",BI=163$ +$LK,"OptFree",A="FL:::/Compiler/OptLib.CPP.Z,33",BI=164$ $LK,"CMP_TEMPLATES_DONT_PUSH2",A="FL:::/Compiler/Templates.CPP.Z,458"$ $LK,"CInternalType",A="FL:::/Compiler/CInit.CPP.Z,3"$ -$LK,"LexDollar",A="FL:::/Compiler/Lex.CPP.Z,93",BI=166$ -$LK,"AsmUnresolvedAdd",A="FL:::/Compiler/AsmResolve.CPP.Z,189",BI=167$ -$LK,"AOTStoreCodeU8",A="FL:::/Compiler/AsmLib.CPP.Z,1",BI=168$ -$LK,"MDR_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,133"$ -$LK,"ICBitOps",A="FL:::/Compiler/BackB.CPP.Z,256",BI=169$ +$LK,"LexDollar",A="FL:::/Compiler/Lex.CPP.Z,93",BI=165$ +$LK,"AsmUnresolvedAdd",A="FL:::/Compiler/AsmResolve.CPP.Z,188",BI=166$ +$LK,"AOTStoreCodeU8",A="FL:::/Compiler/AsmLib.CPP.Z,1",BI=167$ +$LK,"ICBitOps",A="FL:::/Compiler/BackB.CPP.Z,202",BI=168$ $LK,"lex_zeros",A="FL:::/Compiler/Lex.CPP.Z,91"$ -$LK,"CSwitchCase",A="FL:::/Compiler/PrsStmt.CPP.Z,568"$ -$LK,"AsmResolve",A="FL:::/Compiler/AsmResolve.CPP.Z,1",BI=170$ +$LK,"CSwitchCase",A="FL:::/Compiler/PrsStmt.CPP.Z,567"$ +$LK,"AsmResolve",A="FL:::/Compiler/AsmResolve.CPP.Z,1",BI=169$ +$LK,"PrsAsmInst",A="FL:::/Compiler/Asm.CPP.Z,390",BI=170$ $LK,"COCCompile",A="FL:::/Compiler/PrsLib.CPP.Z,249",BI=171$ $LK,"Cmp",A="FL:::/Compiler/CMain.CPP.Z,419",BI=172$ $LK,"PrsPush2",A="FL:::/Compiler/PrsLib.CPP.Z,11",BI=173$ @@ -222,164 +220,188 @@ $LK,"ICArgPut",A="FL:::/Compiler/CExcept.CPP.Z,141",BI=174$ $LK,"UndefinedExtern",A="FL:::/Compiler/CExcept.CPP.Z,98",BI=175$ $LK,"OptIC4",A="FL:::/Compiler/OptPass4.CPP.Z,1",BI=176$ $LK,"OptIC6",A="FL:::/Compiler/OptPass6.CPP.Z,1",BI=177$ -$LK,"ICCmpAndBranch",A="FL:::/Compiler/BackB.CPP.Z,556",BI=178$ -$LK,"ICDivEqu",A="FL:::/Compiler/BackA.CPP.Z,452",BI=179$ -$LK,"PrsWhile",A="FL:::/Compiler/PrsStmt.CPP.Z,483",BI=180$ -$LK,"ICFCmpAndBranch",A="FL:::/Compiler/BackFB.CPP.Z,309",BI=181$ -$LK,"Lex",A="FL:::/Compiler/Lex.CPP.Z,442",BI=182$ -$LK,"ICTestAndBranch",A="FL:::/Compiler/BackB.CPP.Z,736",BI=183$ +$LK,"ICCmpAndBranch",A="FL:::/Compiler/BackB.CPP.Z,468",BI=178$ +$LK,"ICDivEqu",A="FL:::/Compiler/BackA.CPP.Z,408",BI=179$ +$LK,"PrsWhile",A="FL:::/Compiler/PrsStmt.CPP.Z,482",BI=180$ +$LK,"ICFCmpAndBranch",A="FL:::/Compiler/BackFB.CPP.Z,217",BI=181$ +$LK,"Lex",A="FL:::/Compiler/Lex.CPP.Z,443",BI=182$ +$LK,"ICTestAndBranch",A="FL:::/Compiler/BackB.CPP.Z,634",BI=183$ $LK,"uasm",A="FL:::/Compiler/Compiler.PRJ.Z,21"$ -$LK,"MDR_SIB_D32_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,138"$ +$LK,"MODR_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,131"$ $LK,"PE_MAYBE_MODIFIERS",A="FL:::/Compiler/PrsExp.CPP.Z,3"$ $LK,"PE_UNARY_MODIFIERS",A="FL:::/Compiler/PrsExp.CPP.Z,4"$ $LK,"AOTLocalsResolve",A="FL:::/Compiler/AsmResolve.CPP.Z,42",BI=184$ $LK,"PE_DO_BINARY_OP",A="FL:::/Compiler/PrsExp.CPP.Z,9"$ $LK,"CmpFixUpAOTAsm",A="FL:::/Compiler/CMain.CPP.Z,302",BI=185$ $LK,"OptLabelFwd",A="FL:::/Compiler/OptLib.CPP.Z,1",BI=186$ -$LK,"ICOrOr",A="FL:::/Compiler/BackB.CPP.Z,63",BI=187$ +$LK,"ICOrOr",A="FL:::/Compiler/BackB.CPP.Z,51",BI=187$ $LK,"LexExcept",A="FL:::/Compiler/CExcept.CPP.Z,81",BI=188$ $LK,"cmp_templates",A="FL:::/Compiler/CExts.CPP.Z,42"$ -$LK,"CmpF2PushPop",A="FL:::/Compiler/OptLib.CPP.Z,536",BI=189$ -$LK,"MDR_D32_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,135"$ +$LK,"CmpF2PushPop",A="FL:::/Compiler/OptLib.CPP.Z,535",BI=189$ $LK,"CmpJoin",A="FL:::/Compiler/CMain.CPP.Z,35",BI=190$ -$LK,"MDR_SIB_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,136"$ $LK,"PrsPop2",A="FL:::/Compiler/PrsLib.CPP.Z,16",BI=191$ $LK,"CMP_TEMPLATES",A="FL:::/Compiler/Templates.CPP.Z,4"$ -$LK,"PrsAsmBlk",A="FL:::/Compiler/Asm.CPP.Z,901",BI=192$ +$LK,"MODR_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,132"$ +$LK,"PrsAsmBlk",A="FL:::/Compiler/Asm.CPP.Z,899",BI=192$ $LK,"PrsAsmArg",A="FL:::/Compiler/Asm.CPP.Z,35",BI=193$ -$LK,"LexFirstRem",A="FL:::/Compiler/Lex.CPP.Z,276",BI=194$ +$LK,"LexFirstRem",A="FL:::/Compiler/Lex.CPP.Z,277",BI=194$ $LK,"MemberClassBaseFind",A="FL:::/Compiler/LexLib.CPP.Z,87",BI=195$ $LK,"MemberFind",A="FL:::/Compiler/LexLib.CPP.Z,67",BI=196$ $LK,"cmp",A="FL:::/Compiler/Compiler.PRJ.Z,16"$ $LK,"OptLag",A="FL:::/Compiler/OptLib.CPP.Z,40",BI=197$ -$LK,"ICPostIncDec",A="FL:::/Compiler/BackB.CPP.Z,434",BI=198$ -$LK,"ICFPostIncDec",A="FL:::/Compiler/BackFB.CPP.Z,680",BI=199$ -$LK,"ICTest",A="FL:::/Compiler/BackLib.CPP.Z,403",BI=200$ -$LK,"ICModU64",A="FL:::/Compiler/BackC.CPP.Z,589",BI=201$ +$LK,"ICPostIncDec",A="FL:::/Compiler/BackB.CPP.Z,345",BI=198$ +$LK,"ICFPostIncDec",A="FL:::/Compiler/BackFB.CPP.Z,580",BI=199$ +$LK,"ICTest",A="FL:::/Compiler/BackLib.CPP.Z,398",BI=200$ +$LK,"ICModU64",A="FL:::/Compiler/BackC.CPP.Z,464",BI=201$ $LK,"ICLastIns",A="FL:::/Compiler/BackLib.CPP.Z,59",BI=202$ $LK,"PrsAsmImm",A="FL:::/Compiler/Asm.CPP.Z,1",BI=203$ $LK,"LexExtStr",A="FL:::/Compiler/LexLib.CPP.Z,218",BI=204$ -$LK,"ICAddSubEctEqu",A="FL:::/Compiler/BackA.CPP.Z,545",BI=205$ -$LK,"ICAddSubEctImm",A="FL:::/Compiler/BackA.CPP.Z,57",BI=206$ -$LK,"ICPush",A="FL:::/Compiler/BackLib.CPP.Z,303",BI=207$ -$LK,"ICSwap",A="FL:::/Compiler/BackC.CPP.Z,633",BI=208$ +$LK,"ICAddSubEctEqu",A="FL:::/Compiler/BackA.CPP.Z,478",BI=205$ +$LK,"ICAddSubEctImm",A="FL:::/Compiler/BackA.CPP.Z,56",BI=206$ +$LK,"ICPush",A="FL:::/Compiler/BackLib.CPP.Z,297",BI=207$ +$LK,"ICSwap",A="FL:::/Compiler/BackC.CPP.Z,491",BI=208$ $LK,"CMP_TEMPLATES_DONT_PUSH",A="FL:::/Compiler/Templates.CPP.Z,267"$ $LK,"intermediate_code_table",A="FL:::/Compiler/CInit.CPP.Z,16"$ -$LK,"ICZero",A="FL:::/Compiler/BackLib.CPP.Z,394",BI=209$ +$LK,"ICZero",A="FL:::/Compiler/BackLib.CPP.Z,389",BI=209$ $LK,"CmpCtrlDel",A="FL:::/Compiler/Lex.CPP.Z,58",BI=210$ $LK,"ICClassPut",A="FL:::/Compiler/CExcept.CPP.Z,117",BI=211$ $LK,"ICAssign",A="FL:::/Compiler/BackC.CPP.Z,159",BI=212$ -$LK,"ICFTemplateFun",A="FL:::/Compiler/BackFB.CPP.Z,704",BI=213$ +$LK,"ICFTemplateFun",A="FL:::/Compiler/BackFB.CPP.Z,604",BI=213$ $LK,"MemberAdd",A="FL:::/Compiler/LexLib.CPP.Z,103",BI=214$ $LK,"PrsPush",A="FL:::/Compiler/PrsLib.CPP.Z,1",BI=215$ -$LK,"SLASH_OP_FDIVR",A="FL:::/Compiler/BackLib.CPP.Z,269"$ -$LK,"SLASH_OP_FISTTP",A="FL:::/Compiler/BackLib.CPP.Z,272"$ +$LK,"SLASH_OP_FDIVR",A="FL:::/Compiler/BackLib.CPP.Z,263"$ +$LK,"SLASH_OP_FISTTP",A="FL:::/Compiler/BackLib.CPP.Z,266"$ $LK,"CmpCtrlSize",A="FL:::/Compiler/Lex.CPP.Z,70",BI=216$ -$LK,"ICLocalVarInit",A="FL:::/Compiler/BackC.CPP.Z,924",BI=217$ -$LK,"PrsFor",A="FL:::/Compiler/PrsStmt.CPP.Z,526",BI=218$ +$LK,"ICLocalVarInit",A="FL:::/Compiler/BackC.CPP.Z,762",BI=217$ +$LK,"PrsFor",A="FL:::/Compiler/PrsStmt.CPP.Z,525",BI=218$ $LK,"PassTrace",A="FL:::/Compiler/CMisc.CPP.Z,11",BI=219$ $LK,"PrsPopDeref",A="FL:::/Compiler/PrsLib.CPP.Z,21",BI=220$ -$LK,"ICCopyTemplate",A="FL:::/Compiler/BackFA.CPP.Z,75",BI=221$ +$LK,"ICCopyTemplate",A="FL:::/Compiler/BackFA.CPP.Z,77",BI=221$ $LK,"PrsStmt",A="FL:::/Compiler/PrsStmt.CPP.Z,900",BI=222$ $LK,"PrsFun",A="FL:::/Compiler/PrsStmt.CPP.Z,132",BI=223$ -$LK,"LexIncludeStr",A="FL:::/Compiler/Lex.CPP.Z,298",BI=224$ +$LK,"LexIncludeStr",A="FL:::/Compiler/Lex.CPP.Z,299",BI=224$ $LK,"PrsType",A="FL:::/Compiler/PrsVar.CPP.Z,287",BI=225$ $LK,"CmpCtrlNew",A="FL:::/Compiler/Lex.CPP.Z,28",BI=226$ -$LK,"cmp_type_flags_src_code",A="FL:::/Compiler/Lex.CPP.Z,327"$ +$LK,"MODR_SIB_D8_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,135"$ +$LK,"cmp_type_flags_src_code",A="FL:::/Compiler/Lex.CPP.Z,328"$ $LK,"PrsVarInit2",A="FL:::/Compiler/PrsVar.CPP.Z,123",BI=227$ $LK,"PrsPop",A="FL:::/Compiler/PrsLib.CPP.Z,6",BI=228$ $LK,"asm_seg_prefixes",A="FL:::/Compiler/Asm.CPP.Z,388"$ -$LK,"ICMinMax",A="FL:::/Compiler/BackC.CPP.Z,510",BI=229$ +$LK,"ICMinMax",A="FL:::/Compiler/BackC.CPP.Z,419",BI=229$ $LK,"CmpLoadDefines",A="FL:::/Compiler/CInit.CPP.Z,205",BI=230$ -$LK,"PrsIf",A="FL:::/Compiler/PrsStmt.CPP.Z,456",BI=231$ -$LK,"ICBuiltInFloatConst",A="FL:::/Compiler/BackLib.CPP.Z,413",BI=232$ -$LK,"ICFUnaryMinus",A="FL:::/Compiler/BackFA.CPP.Z,198",BI=233$ -$LK,"LexDocRead",A="FL:::/Compiler/Lex.CPP.Z,310",BI=234$ +$LK,"PrsIf",A="FL:::/Compiler/PrsStmt.CPP.Z,455",BI=231$ +$LK,"ICBuiltInFloatConst",A="FL:::/Compiler/BackLib.CPP.Z,408",BI=232$ +$LK,"ICFUnaryMinus",A="FL:::/Compiler/BackFA.CPP.Z,194",BI=233$ +$LK,"LexDocRead",A="FL:::/Compiler/Lex.CPP.Z,311",BI=234$ $LK,"CmpFixUpJITAsm",A="FL:::/Compiler/CMain.CPP.Z,174",BI=235$ $LK,"COCPopNoFree",A="FL:::/Compiler/PrsLib.CPP.Z,114",BI=236$ $LK,"ParenWarning",A="FL:::/Compiler/CExcept.CPP.Z,110",BI=237$ $LK,"PrsFunCall",A="FL:::/Compiler/PrsExp.CPP.Z,378",BI=238$ -$LK,"ICDerefPostIncDec",A="FL:::/Compiler/BackB.CPP.Z,473",BI=239$ +$LK,"ICDerefPostIncDec",A="FL:::/Compiler/BackB.CPP.Z,384",BI=239$ $LK,"Option",A="FL:::/Compiler/CMisc.CPP.Z,1",BI=240$ $LK,"ExeFile2",A="FL:::/Compiler/CMain.CPP.Z,655",BI=241$ -$LK,"COptMemberVar",A="FL:::/Compiler/OptLib.CPP.Z,550"$ +$LK,"COptMemberVar",A="FL:::/Compiler/OptLib.CPP.Z,549"$ $LK,"PE_CHECK_BINARY_OPS1",A="FL:::/Compiler/PrsExp.CPP.Z,6"$ $LK,"PE_CHECK_BINARY_OPS2",A="FL:::/Compiler/PrsExp.CPP.Z,7"$ $LK,"LexBackupLastChar",A="FL:::/Compiler/LexLib.CPP.Z,1",BI=242$ $LK,"Trace",A="FL:::/Compiler/CMisc.CPP.Z,19",BI=243$ -$LK,"ICBrBitOps",A="FL:::/Compiler/BackC.CPP.Z,212",BI=244$ +$LK,"ICBrBitOps",A="FL:::/Compiler/BackC.CPP.Z,210",BI=244$ +$LK,"MODR_D32_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,133"$ $LK,"LexGetChar",A="FL:::/Compiler/Lex.CPP.Z,107",BI=245$ -$LK,"LexSkipEol",A="FL:::/Compiler/Lex.CPP.Z,269",BI=246$ -$LK,"ICFlagBranch",A="FL:::/Compiler/BackB.CPP.Z,785",BI=247$ -$LK,"SLASH_OP_FSUBR",A="FL:::/Compiler/BackLib.CPP.Z,266"$ -$LK,"ICFPreIncDec",A="FL:::/Compiler/BackFB.CPP.Z,660",BI=248$ +$LK,"LexSkipEol",A="FL:::/Compiler/Lex.CPP.Z,270",BI=246$ +$LK,"ICFlagBranch",A="FL:::/Compiler/BackB.CPP.Z,682",BI=247$ +$LK,"SLASH_OP_FSUBR",A="FL:::/Compiler/BackLib.CPP.Z,260"$ +$LK,"ICFPreIncDec",A="FL:::/Compiler/BackFB.CPP.Z,560",BI=248$ +$LK,"MODR_SIB_INDIRECT_REG",A="FL:::/Compiler/BackLib.CPP.Z,134"$ $LK,"ExeFile",A="FL:::/Compiler/CMain.CPP.Z,616",BI=249$ $LK,"COCMiscNew",A="FL:::/Compiler/PrsLib.CPP.Z,143",BI=250$ $LK,"cmp_templates_dont_pop",A="FL:::/Compiler/CExts.CPP.Z,43"$ $LK,"CmpOffset2Reg",A="FL:::/Compiler/OptLib.CPP.Z,83",BI=251$ $LK,"PrsFunNew",A="FL:::/Compiler/PrsLib.CPP.Z,62",BI=252$ -$LK,"StreamExePrint",A="FL:::/Compiler/CMain.CPP.Z,666",BI=253$ +$LK,"StreamExePrint",A="FL:::/Compiler/CMain.CPP.Z,665",BI=253$ $LK,"COCGoToLabelFind",A="FL:::/Compiler/PrsLib.CPP.Z,152",BI=254$ -$LK,"OptMVCompare",A="FL:::/Compiler/OptLib.CPP.Z,556",BI=255$ -$LK,"ICToBool",A="FL:::/Compiler/BackB.CPP.Z,378",BI=256$ +$LK,"OptMVCompare",A="FL:::/Compiler/OptLib.CPP.Z,555",BI=255$ +$LK,"ICToBool",A="FL:::/Compiler/BackB.CPP.Z,289",BI=256$ $LK,"PrsFunJoin",A="FL:::/Compiler/PrsStmt.CPP.Z,68",BI=257$ $LK,"PrsNoUnusedWarn",A="FL:::/Compiler/PrsStmt.CPP.Z,787",BI=258$ -$LK,"OptFixSizeOf",A="FL:::/Compiler/OptLib.CPP.Z,485",BI=259$ +$LK,"OptFixSizeOf",A="FL:::/Compiler/OptLib.CPP.Z,484",BI=259$ $LK,"cmp_templates_dont_push",A="FL:::/Compiler/CExts.CPP.Z,45"$ $LK,"cmp_templates_dont_push_pop",A="FL:::/Compiler/CExts.CPP.Z,46"$ -$LK,"LexAttachDoc",A="FL:::/Compiler/Lex.CPP.Z,330",BI=260$ +$LK,"LexAttachDoc",A="FL:::/Compiler/Lex.CPP.Z,331",BI=260$ $LK,"PrsStreamBlk",A="FL:::/Compiler/PrsStmt.CPP.Z,801",BI=261$ $LK,"cmp_templates_dont_push2",A="FL:::/Compiler/CExts.CPP.Z,44"$ $LK,"InstEntryFind",A="FL:::/Compiler/UAsm.CPP.Z,66",BI=262$ $LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.CPP.Z,381",BI=263$ -$LK,"ICMulEqu",A="FL:::/Compiler/BackA.CPP.Z,344",BI=264$ +$LK,"ICMulEqu",A="FL:::/Compiler/BackA.CPP.Z,322",BI=264$ $LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.CPP.Z,1",BI=265$ -H2@÷#÷#$$!$&$Q$S$†$p$–$�$®$Á$¨+>k>kTk\kgksk~k�k€k©k¯k¯kÖkãkl'l'lQlsl‹lxl—l½lªlÑlÞl m mm.mAmAmAmKmH<Jöö0ö:ö>öBöGöIöeö�ö�ö‹ö|ªÅ.ú.úXúZúaúgúmúoúuú{ú‚ú�úœú¯ú½úÌúÑúÓúØúâúòúûû3ûEû8þßþßà àà à'à)à.àd`µîÓîÓ ÔÔÔ Ô,Ô.Ô:Ô:ÔGÔIÔVÔXÔdÔdÔzÔƒÔƒÔŽÔ•Ô¤Ô¯ÔµÔºÔ¼ÔÈÔÏÔÞÔéÔïÔôÔöÔÕ2ÕXÕhÕxÕˆÕŠÕšÕªÕºÕºÕ¿ÕÙÕàÕçÕçÕçÕçÕîÕÖÖÖÖ"Ö&Ö&Ö&ÖSÖZÖpÖ|Ö‚ÖˆÖŽÖ�Ö�ÖžÖD¶ÃžÖžÖ´Ö·ÖºÖÇÖÍÖÚÖÝÖàÖæÖèÖòÖ,cj¨‡¨‡¶‡À‡Ë‡Ö‡Ü‡â‡ jnÖÖäùÿ -P o6o6}6Œ6¤6ª6¼6¼6Ç6Ð6Ö6Ý6ã6 œ;^öEöEþEFF.FAF^FFˆF™FÀF×F×FùFGGG%GWGdGhGpGpGƒG“G—G›G Œ×öFFfnr€†ŒŒ¹Ïãñ -LUegnntt„ |1W#W#m#v#�#š#š#�#¬#²#»#½#Ã#Ì#Î#Ô#Þ#å#è#è#ò#0 'ð…ð…þ…†$†*†*†0†„•²@�@�T�[�b�f�Š���¤�µ�Ú�å�ð�ò�ý�"ž-ž8ž:žAžJžLžWž^žˆž("ÆÜÆÜÕÜèÜÝÝÝ nÜnÜ}Ü�ܖ܃�¯�¯µ¯¼¯Ó¯ß¯ê¯ü¯ °þ¯ü¯-°H°T°[°a°m°w°~°…°‰°‹°‘°�°§°®°µ°¹°¹°Ã°È°Ó°å°ö°ç°å°±7±C±J±P±\±f±m±t±x±z±€±Œ±–±�±¤±¨±¨±µ±Ã±Ó±å±ö±ç±å±²7²C²J²P²\²f²m²t²x²z²€²Œ²–²�²¤²¨²¨²²²Â²Ô²å²Ö²Ô²³ ³³³(³/³6³:³<³B³N³X³_³f³j³j³t³‚³‹³¤³°³´³´³·³À³6´ìÆ{Æ{ã{�¡ë{ý{|$|6|=|N|V|^|a|o|›|›|°|²|²|¾|Æ|Ê|×|×|ã|ë|ï|ü|ü|ü|}#}4}4}9}Q}`}e}k}v}{}{}€}˜}§}¬}²}½}Â}Â}Ð}Ù}å}í}õ}ý}~~ ~~&~/~@~P~P~U~]~e~h~n~n~s~s~s~y~|~ƒ~Ž~£~È~ß~ì~ô~ü~!*.1=CJOO]mmzz‚Š“¢§§®¹¿ÇÍØÝÝì÷ €€€€"€-€?€E€M€S€X€X€l€r€}€ƒ€…€•€›€›€½€ä€é€é€ý€��*�0�5�N�T�d�l�t�z���“�™�¯�À�Æ�Ë�ä�ê�ú�‚ -‚‚‚‚+‚1‚G‚X‚^‚c‚r‚x‚‰‚‘‚™‚Ÿ‚¦‚«‚«‚Á‚ǂ݂î‚ô‚ö‚ƒ ƒƒƒ%ƒ+ƒ2ƒ2ƒ2ƒDƒMƒ^ƒnƒnƒsƒsƒ�ƒ‰ƒšƒ­ƒ´ƒºƒƒȃ؃Þƒæƒìƒìƒìƒñƒñƒñƒñƒñƒ„„!„!„7„@„K„T„_„j„o„o„…„‹„¡„²„¸„½„τՄڄ󄅅……"…*…-…3…9…>…>…b…j…r…‚…ˆ…Ž…Ž…Ÿ…½…½…Â…Â…Î…Ö…Ù…à…æ…ë…ë… ††#†)†0†N†]†e†}†…†ˆ†�†•†­†µ†͆Õ†؆߆å†å†å†‡‡ ‡(‡+‡2‡8‡H‡W‡c‡~‡†‡‰‡�‡–‡®‡º‡Õ‡݇à‡ç‡í‡í‡í‡í‡ò‡ò‡û‡ ˆ!ˆ'ˆ?ˆRˆXˆ]ˆoˆuˆzˆ–ˆœˆ¨ˆ°ˆ³ˆºˆÀˆéˆñˆ‰‰‰‰‰‰‰‰4‰J‰P‰h‰{‰�‰†‰±‰·‰ʉŠŠ/Š7Š=ŠBŠBŠ\ŠhŠtŠŠŠ„Š„ŠžŠªŠ¶ŠÁŠÁŠÆŠÆŠàŠìŠøŠ‹‹‹‹‹$‹0‹6‹;‹M‹S‹X‹g‹s‹‹…‹‹‹’‹¥‹°‹¹‹Å‹Í‹ЋÖ‹Ü‹á‹õ‹Œ Œ$Œ,Œ/Œ5Œ;ŒSŒ[Œ{Œ•Œ�Œ Œ¦Œ¬Œ¬Œ½ŒÆŒÒŒÚŒÝŒäŒêŒïŒ���0�8�;�B�H�`�h�‡�¡�©�¬�³�¹�¹�É�Ò�Þ�æ�é�ï�õ�ú�ŽŽ%Ž?ŽGŽJŽPŽVŽnŽvŽ˜Ž´Ž¼Ž¿ŽÅŽËŽËŽÜŽåŽñŽùŽüŽ� �� �/�7�R�Z�]�d�j�‚�Š�¬�É�Ñ�Ô�Û�á�á�á�á�á�æ�æ�ü�����+�1�6�D�P�Y�e�m�p�w�}�‚�”�£�«�Ã�Ë�Î�Õ�Û�ó�û�‘4‘<‘?‘F‘L‘L‘L‘]‘f‘r‘z‘}‘„‘Š‘�‘¡‘°‘¼‘בß‘â‘é‘ï‘’’5’R’Z’]’d’j’j’j’j’j’o’o’‚’�’£’®’³’³’Æ’Ü’â’í’ï’ï’“%“+“6“6“H“Q“b“g“y“‰“‰“ޓޓ¡“·“½“˓ړߓߓò“”””+”0”0”F”L”i”�”�”«”±”¶””˔ڔڔߔߔõ”û”•0•0•Z•`•e•q•z•‰•‰•ޕޕ¤•ª•Ǖߕߕ ––– –)–8–8–=–=–S–Y–v–Ž–Ž–¸–¾–À–Ì–Õ–à–à–à–à–å–ó–ü– ——!—.—.—.—>—N—S—w—ƒ—„—‰—ž—»—Ë—ï—ÿ—˜˜˜ -˜˜$˜7˜u˜…˜‹˜�˜’˜£˜²˜ä˜ì˜ò˜ô˜ù˜™™ ™™.™7™F™F™K™P™_™h™s™u™~™‰™‰™ª™±™·™¿™Ê™Йà™æ™î™ù™ÿ™ÿ™š šššš%š.š=š=š=šBšBšBšTšYšYškšvš~š†šŒšŒšŒš‘š‘šœš­š°š¼šÅšÑšØšÞšãšãšîšÿš›››#›*›0›5›5›5›5›:›?›?›F›J›J›V›_›b›b›m›o›�›ˆ›Ž›�›¨›³›¹››Æ›Æ›Ò›Û›Þ›Þ›é›ë›ý›œ -œœœ(œ.œ8œ;œ?œ?œGœNœQœSœ^œbœkœnœnœyœ{œ“œšœ¥œ°œ³œ¹œ¾œ¾œÅœÉœÉœÕœÞœáœáœìœîœ�� ��'�2�8�A�E�E�Q�Z�]�]�h�j�|�ƒ�‰�‘�œ�§�­�·�º�¾�¾�Æ�Í�Ð�Ò�Ý�á�ê�í�í�ø�ú�žž$ž/ž2ž8ž=ž=žOžSžSž_žhžkžkžvžxžŠž‘ž—ž©ž´ž¿žÅžÊžÊžÕžÚžÚžåžêžêžõžøžüžŸŸ ŸŸŸ&Ÿ+Ÿ+Ÿ8Ÿ<ŸMŸUŸYŸmŸtŸxŸxŸ…Ÿ‘Ÿ™ŸŸŸ¯Ÿ³ŸÄŸÖŸáŸåŸåŸòŸúŸ       +H2@_#_#h#n#‰#Ž#¹#»#î#Ø#þ#$$)$¨­Ó¾\¾\Ô\Ü\ç\ó\]õ\"](](]R]Y]„]’]’]¿]á]ù]æ]^4^!^K^R^}^}^„^¨^¾^¾^¾^È^H>L6ø6øPøZø^øbøgøiø‚ø›ø›ø¥øp©ÁFüFüpürüyüü…ü‡ü�ü“ü©ü¼üËüÐüÒü×üáüöü ý ý/ýAý8ãããã'ã0ã7ã9ã>ãd`µVÖVÖtÖxÖ…Ö‡Ö”Ö–Ö¢Ö¢Ö¯Ö±Ö¾ÖÀÖÌÖÌÖâÖëÖëÖöÖýÖ ×××"×$×0×7×F×Q×W×\×^×jך×À×Ð×à×ð×òרØ"Ø"Ø'ØAØHØOØOØOØOØVØlØxØ~؄؊؎؎؎ػØÂØØØäØêØðØöØøØøØÙD¶ÃÙÙÙ Ù"Ù/Ù5ÙBÙEÙHÙNÙPÙZÙ,cjЈЈވèˆóˆþˆ‰ +‰ hl&&4IO +P ï5ï5ý5 6$6*6<6<6G6P6V6]6c6 œ;^®I®I¶IºIÓIæIùIJ7J@JQJuJŒJŒJ«JºJÃJÐJ×J KKK&K&K9KIKMKQK Œ×ö––¶¾ÂÐÖÜÜ  3AX^jo}™¢²´»»ÁÁÑ |1¿"¿"Õ"Þ"é"#####$#&#,#5#7#=#G#N#Q#Q#[#0 '‡‡&‡F‡L‡R‡R‡X‡„“°pŸpŸ„Ÿ‹Ÿ’Ÿ–ŸºŸÍŸÔŸåŸ +    " - R ] h j q z | ‡ Ž ¸ ("žÞžÞ­ÞÄÞßÞßÞåÞ >Þ>ÞMÞcÞiÞƒббõ±ü±² ²*²<²M²>²<²m²ˆ²”²›²¡²­²·²¾²Å²É²Ë²Ñ²Ý²ç²î²õ²ù²ù²³³³%³6³'³%³V³w³ƒ³Š³�³œ³¦³­³´³¸³º³À³Ì³Ö³Ý³ä³è³è³õ³´´%´6´'´%´V´w´ƒ´Š´�´œ´¦´­´´´¸´º´À´Ì´Ö´Ý´ä´è´è´ò´µµ%µµµEµLµRµ^µhµoµvµzµ|µ‚µŽµ˜µŸµ¦µªµªµ´µÂµËµäµðµôµôµ÷µ¶v¶Ôîî €T¦€%€A€L€^€e€v€~€†€‰€—€ÀÀØ€Ú€Ú€æ€î€õ€�����*�*�*�F�Q�b�b�g��Ž�“�™�¤�©�©�®�Æ�Õ�Ú�à�ë�ð�ð�þ�‚‚‚#‚+‚.‚4‚9‚B‚T‚]‚n‚~‚~‚ƒ‚‹‚“‚–‚œ‚œ‚¡‚¡‚¡‚§‚ª‚±‚¼‚Ñ‚ö‚ ƒƒ"ƒ*ƒ6ƒBƒHƒOƒXƒ\ƒ_ƒkƒqƒxƒ}ƒ}ƒ‹ƒ›ƒ›ƒ¨ƒ¨ƒ°ƒ¸ƒÁƒЃÕƒÕƒ܃çƒíƒõƒûƒ„ „ „„%„7„=„E„K„P„[„m„s„{„�„†„†„š„ „«„±„³„ÄɄɄ…….…4…J…[…a…f…………•…�…¥…«…°…°…Ä…Ê…à…ñ…÷…ü…††+†3†;†A†F†F†\†b†x†‰†�†”†£†©†º††ʆІ׆܆܆ò†ø†‡ ‡%‡'‡6‡<‡F‡N‡V‡\‡c‡c‡c‡u‡~‡�‡Ÿ‡Ÿ‡¤‡¤‡²‡º‡ˇÞ‡å‡ë‡ó‡ù‡ ˆˆˆˆˆˆ"ˆ"ˆ"ˆ"ˆ"ˆAˆMˆRˆRˆhˆqˆ|ˆ…ˆ�ˆ›ˆ ˆ ˆ¶ˆ¼ˆÒˆãˆéˆîˆ‰‰ ‰$‰B‰B‰G‰G‰S‰[‰^‰d‰j‰o‰o‰“‰›‰£‰³‰¹‰¿‰¿‰Љî‰î‰ó‰ó‰ÿ‰Š +ŠŠŠŠŠ<ŠDŠTŠZŠaŠŠ‘Š™Š´Š¼Š¿ŠÆŠÌŠçŠïŠ +‹‹‹‹"‹"‹"‹A‹Q‹]‹e‹h‹o‹u‹…‹—‹£‹Á‹É‹Ì‹Ó‹Ù‹ô‹ŒŒ&Œ)Œ0Œ6Œ6Œ6Œ6Œ;Œ;ŒDŒTŒjŒpŒˆŒ›Œ¡Œ¦Œ¸Œ¾ŒÃŒߌåŒñŒùŒüŒ� �2�:�J�P�W�W�W�\�\�e�}�“�™�±�Ä�Ê�Ï�ú�ŽŽJŽ\ŽyŽ�Ž‡ŽŒŽŒŽ¦Ž²Ž¾ŽÉŽÉŽÎŽÎŽèŽôŽ� � ���*�6�B�M�M�R�R�h�n�z�€�…�—���¢�±�½�É�Ï�Õ�Ü�ï�ú����� �&�+�?�Q�Y�t�|��…�‹�¦�®�Ñ�î�ö�ù�ÿ�‘‘‘ ‘+‘3‘6‘=‘C‘H‘Z‘l‘t‘�‘—‘š‘¡‘§‘‘Ê‘ì‘ ’’’’!’!’1’:’F’N’Q’W’]’b’v’ˆ’�’­’µ’¸’¾’Ä’ß’ç’ “+“3“6“<“B“B“S“\“h“p“s“z“€“…“—“©“±“Ï“דÚ“á“ç“” +”/”O”W”Z”a”g”g”g”g”g”l”l”‚”ˆ”””š”Ÿ”±”·”¼”ʔ֔ߔë”ó”ö”ý”•••,•4•O•W•Z•a•g•‚•Š•¬•ɕѕԕەá•á•á•ò•û•–––– –6–H–T–r–z–}–„–Š–¥–±–Ö–ö–þ–—————————&—A—G—R—W—W—j—€—†—‘—“—“—¦—É—Ï—Ú—Ú—ì—õ—˜ ˜˜-˜-˜2˜2˜E˜[˜a˜o˜~˜ƒ˜ƒ˜–˜¬˜²˜À˜ϘÔ˜Ô˜ê˜ð˜ ™%™%™O™U™Z™f™o™~™~™ƒ™ƒ™™™Ÿ™¼™Ô™Ô™þ™š ššš-š-š2š2šHšNškšƒšƒš­š³š¸šÄšÍšÜšÜšášáš÷šýš›2›2›\›b›d›p›y›„›„›„›„›‰›—› ›±›³›Å›Ò›Ò›Ò›â›ò›÷›œ'œ(œ-œBœ_œoœ“œ£œ©œ©œ©œ®œ³œÈœÛœ�)�/�1�6�G�V�ˆ���–�˜���¤�¤�­�¿�Ò�Û�ê�ê�ï�ô�ž žžž"ž-ž-žNžUž[žcžnžtž„žŠž’ž�ž£ž£ž¨ž­ž´ž»žžÉžÒžážážážæžæžæžøžýžýžŸŸ"Ÿ*Ÿ0Ÿ0Ÿ0Ÿ5Ÿ5Ÿ@ŸQŸTŸ`ŸiŸuŸ|Ÿ‚Ÿ‡Ÿ‡Ÿ’Ÿ£Ÿ¦Ÿ²Ÿ»ŸÇŸΟԟٟٟٟٟޟãŸãŸîŸòŸòŸþŸ    -    , 8 F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F H H _ g s s ” ¢ º ¼ È Õ Õ ø ¡¡¡"¡-¡4¡4¡>¡>¡A¡S¡q¡}¡}¡¬£x¿Ù_4_4q4s4w4€4Œ4˜4­4­4Ù4Ý4â4î45 5555$5.5°œÄ¾Œ¾ŒÔŒÛŒìŒñŒ�óŒ���$�<�)�H�K�M�[�`�u�b���„�„���¥�’�±�·�·�Ê�Ý�ð�ŽŽ Ž„ž^x^x|xŽx”x›x¢x¤x§x®xµxµxÑxÕxÛxÛxóxyyy yDydy…yŠy«y°y¼yÇyÌyÙyÜyz$z)z/z1z7z:zKzPzSz[zdzzŸz¶zÉzÎzÒzôz{ {#{6{;{?{a{|{œ{¯{´{Å{Ê{Í{Ï{Õ{Û{ì{ñ{÷{ÿ{ÿ{ ||)|<|A|E|g|‚|¢|µ|º|Õ|õ| } }$}(}J}]}]}x}x}x}†}ž} } } }®}Æ}È}È}Ö}î}î}~~ ~~,~L~f~m~w~Š~Ž~Ž~Ž~•~›~µ~¼~Æ~Þ~à~æ~ **DH‰—HƒHƒ_ƒuƒ…ƒŒƒ£ƒ¾ƒÐƒÔƒ„LîýŽ�Ž�¢�®�Ä�°�Ð�Ò�å�ø����4IRvÓvÓÓÓ‚Ó�ÓžÓ¡Ó¦Óä;ôô.ô1ôOôfôwôwô’ô˜ô�ô�ô¸ô¾ôÃôÃôÌôÚôæôíôóôøô;õEõLõRõTõTõgõmõmõmõ}õrõŽõ�õ¯õ´õ´õ´õ»õÂõÉõÞõåõöööÐL¼ø¡ø¡¢¢(¢1¢9¢<¢C¢G¢P¢a¢e¢k¢y¢–¢£¢²¢·¢Ã¢È¢Ï¢Û¢à¢ã¢í¢å¢ý¢£££ £%£.£4£4£B£E£Y£b£k£r£v£{£’£ª£³£Á£Ý£é£é£¤¤¤¤5¤A¤I¤\¤c¤w¤€¤‡¤‹¤–¤›¤¢¤¿¤ì¤ó¤÷¤ù¤¥¥¥)¥+¥<¥F¥Q¥[¥j¥y¥•¥•¥˜¥ ¥¥¥'¦Xs…nHnH‹HœH©H³HÊHçHI II"I(I+I7IŒ Ø_Ø_è_ ` ````` ` `'`A`R`Z`Z`e`e`s`ƒ`ƒ`‘`—`—`¯`¯`µ`Û`(kqè‡è‡ö‡ˆˆˆ ˆ @UaÞæÞæìæôæûæç'ç'ç*ç,ç2ç $/4^Ý^ÝkÝyÝ~Ý„Ý!$).6Ý6ÝCÝQÝVÝ\Ý"$#(ÝÝÝ$Ý)Ý/Ý#4ðy__k{‘™£»ÀÐæîø  % 5 K S ] u � ‰ “ £ ¨ ¾ È Ò Ü æ ð ú    " , 6 @ V ` j t ~ ˆ ’ œ ¦ ¼ Æ Ð æ ð ú !!!"!,!6!@!J!T!^!h!r!|!†!�!š!¤!®!¸!Â!Ì!Ö!à!ê!ô!þ!""""$¨D@™@™V™]™d™r™ƒ™•™—™ž™¤™´™¿™É™Ô™ë™î™ð™ššš"š,š3š>šSš[š[šqšqšqš…š%$5:†Ý†Ý”ݣݨݮÝ&¨Ekˆšˆšžš¥š¬šºšËšÝšßšæšìšüš›››3›6›8›J›Q›a›k›u›|›‡›››£›£›¹›¹›¹›Î›'(&,0000&0,020(0_gžGžG´GÇGÖGÜGßGçG)  ß– – ¸ À Æ Ó Ú ö ü ü ü     ' 3 > D N U f f q { { � “ £ © ® µ µ Ö Ü ë þ !! ! !!!!!!!.!8!=!=!R!\!\!p!y!!…!›! !§!º!¾!¾!Æ!Ì!Ò!Ü!ã!ê!ó!""*"."4":"I"\"b"f"l"r"x"x"z"~"„"Š"�"•"•"•"•"À"Ñ"Ñ"è"õ"ù"##6#6#<#?#C#I#I#[#l#�#•#�#®#²#Ã#Ç#Í#æ#è#î#û#ý# $'$-$8$[$f$l$r$x$�$‡$œ$ª$²$¶$Ç$Ë$Ñ$ê$ì$ò$ÿ$% %+%1%7%=%F%L%i%\%ƒ%Œ%’%’%§%¬%¬%³%º%Ì%Ñ%Ñ%Ñ%ë%í%& &#&)&1&5&<&_&e&k&w&Ž&•&›&¦&«&«&²&¶&½&Ë&Í&Õ&Ú&â&í&ó&ÿ&' -''''+'F'V'c'r'Ž'�'¬'¬'³'È'Í'Ö'ã'è'î'ó'ó'ú'þ'((((!(%(/(;(B(F(N(V(^(m({(€(Œ(Œ(”(”(·(·(Å(Ë(Ð(Ô(Ù(Ù(Ù(Ù(ß(á(á() -)))-)/)/)/):):):)?)h**4+t>Å>ÅXÅ\ÅtÅ|ńŎŒřşųŻÅÀÅÃÅÎÅÙÅáÅìÅ÷ÅùÅÆÆÆ(Æ3Æ5Æ@ÆKÆMÆYÆbÆbÆxƂƙƟƥƶƼÆÅÆ×ÆÝÆÝÆåÆéÆôÆùÆ ÇÇÇ(Ç*Ç.Ç=Ç=Ç=ÇNÇNÇSÇeÇkÇÙÇ+Ô@.á.áDáKáNárárá�á¢áµáÈáÍáÍáëáùá â â'â'â)â)â)â<â>â>â>âEâXâkâkâkâ~â‰âœâ²â·â»âÂâ×âêâñâñâôâã,LAPÇ$Ç$Õ$æ$ò$ %%2%4%O%j%j%r%y% %-P~Žpˆpˆ~ˆ‹ˆ™ˆ«ˆ¶ˆÄˆÑˆßˆñˆüˆ -‰‰‰.4 -66%616B6T6]6g6m6/|¼Wææ)OOXZZaˆ��ž­ÉÔÔàç÷ý&(AGRbt}ˆ�“š¿ÄÒÛÛâñ18?DOU]ƒŒ“˜£¯¾Ò×ßëýý  # 3 E K T T c i } † – ¥ · À Ð ã ë ÿ  -7 -; -G -^ -z -Œ -’ -� -© -¹ -É -Î -× -× -é -í -ù - , > D O [ k { � “ “ ˜ š š Ÿ Ÿ ® ´ º º ¾ 70�ÄäöÖöÖ××"×&×-×4×C×N×T×Y×[×g×n×v×|ׂ׆׆ולפתװײײ׾×18 ?/?/M/S/_/j/{/…/Œ/’/2@}‰&è&è4è?èFèeèrèrèuèwè}è3ðh ffŒŸ§®µ»½ÄËÎÎààóþBJS[`q‡—©®Èàääé*Fnv‡Œ�¯¿ÑÓí  %MU^fk|’¢´¹Óëï:'GSYq‰Ž£¿çïø(8JLf~‚‚žÆÎ×ßäõ -2Ldh{{{€ ÀÌÒê *<Lcz‘¨¨¼ØØØù    + 9 T c j z | ‚ ™ ¨ ¡ ¾ Ï ê ê  -4D}Š^^n‚‹‘££§ª²5\Ob‡‡ ‡/‡8‡A‡E‡I‡U‡Z‡_‡_‡p‡t‡{‡“‡–‡¢‡60ýÖßÖßßßäßíßôßößûß7Ü4nnŒ“𥭯ÆÚóóþ 5AWe{„–¾ÕÚâæ ë(,,<yX…¢¢ÁÌÒèùþ8OT\`ƒb‰Ÿ£¿çïôøý$2FKduy‹‹‹‹�¬ìËø &<MRn–ž£§¬½ÏÝñó !!3[rwƒ¦…¬ÂÆÓÓÓÓæìöý''CSaaw‡•¬¿ÄÊàïè)G?l•••¢Ûàëñü2">Tbz�”¤Ãïßû7BH^otŠ ¤Àèðõùþ%3GLevzŒŒŒŒ‘­Ìûë$/5K\a}¥­²¶»ÌÞì,00Oe{ŒŒŒŸ¥¯¶Éàààü 0@UNi|�‡�¬¥ÁÑßüü%EEEe8Do|*39KKORZ9°Åí&Ž&Ž<ŽCŽTŽYŽnŽ[ŽzŽ€Ž€ŽŒŽ¤Ž‘Ž°Ž³ŽµŽÃŽÈŽÝŽÊŽéŽìŽìŽøŽ �úŽ� � �2�E�X�k�~�ˆ�:<‹–¶¶Æ×àæêõ;”)ÞéÞéæéêéöéê êê$ê6êAêLê[êlêsêŒê�ê�ê�ê§ê®êÁêÊêØêìêë ë*ë<d(=0†0†<†P†S†g†o†s†}†‡†�†’†˜†=$t¹ÀEÀEäEçEëEøEF FF F*FRFRF^F`F`FlFqFqF}F‚F‚FŽF“F“FŸF¤F¤F°FµFµFÁFÆFÆFÒF×F×F×FÚFÚFóFGG%G%G'G'G3G9G>G>GDGPGPG[GgGtG‰G‘G—G—G¨G¨G±G´GH>è w®£®£Ë£Ó£Ö£ä£ò£¤¤(¤>¤P¤[¤l¤p¤‚¤…¤�¤™¤¥¤¸¤é¤Þ¤Ĥù¤ ¥¥*¥8¥V¥h¥Œ¥�¥Ÿ¥À¥¦¥Û¥Û¥Þ¥ã¥æ¥æ¥í¥¦ ¦¦¦,¦9¦L¦L¦`¦d¦‘¦‘¦©¦®¦®¦¾¦ƦÖ¦à¦ð¦ú¦ -§§§§+§3§C§M§]§g§w§ƒ§ˆ§ˆ§ˆ§ª§¸§§ǧÔ§é§é§î§ø§¨ ¨¨¨¨¨&¨5¨:¨@¨E¨E¨K¨Q¨V¨V¨e¨x¨„¨‘¨�¨°¨¸¨¾¨ǨÞ¨ò¨©©©-©@©W©d©l©©‡©�©–©Ÿ©Ÿ©¤©¤©¤©¤©¤©°©°©°©¹©Ò©ç©ï© -ªª(ª*ª>ªCªCªCªNª\ªaªaªhªvª{ª“ªŸª±ª½ªêÒªÖªߪ誫«««0«8«@«m«~«‹«�«›«›« « «§«µ«º«Í«Ù«å«ë«ï«ø«ý«ý«ý«ý«ý«¬¬¬¬¬¬+¬+¬+¬+¬+¬+¬+¬+¬+¬+¬4¬M¬b¬j¬…¬–¬£¬¥¬¹¬ŬʬʬʬÓ¬í¬ù¬þ¬ ­,­,­1­1­1­1­1­1­1­1­F­K­K­K­\­g­l­l­w­‰­¡­³­Ô­ô­ÿ­®®®®®@®I®Z®^®v®†®Ž®–®¡®Ë®Ô®Ø®ð®¯¯¯¯¯"¯[¯d¯h¯n¯s¯|¯…¯НННН™¯­¯˯Ö¯Û¯á¯æ¯æ¯ù¯ °3°>°F°L°L°Q°Q°`°t°’°�°¢°¨°­°­°À°Ô°ú°± ±±±±±±!±:±O±W±r±ƒ±�±’±¡±£±£±£±£±£±·±·±·±·±·±·±·±·±·±·±·±·±·±·±·±·±ƱÕ±à±â±â±ë±í±í±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²"².².²2²7²G²b²w²†²’²¨²²ŲϲÛ²³!³A³e³g³z³¨³€³óóƳÖ³Þ³ù³ -´ ´'´5´A´Y´Y´„´‡´–´ª´Ë´Ü´ø´ä´µ&µDµwµuµjµ_µPµ…µ…µ…µˆµ�µ�µªµ¸µæµ¶¶3¶6¶E¶Y¶z¶‹¶§¶“¶ööá¶···ü¶í¶"·"·"·%·*·*·1·A·b·n·ú?°«Ó–À–À¬À°À»ÀÂÀÍÀáÀáÀìÀýÀÁÁÁ*Á2ÁCÁCÁLÁQÁYÁiÁwÁ†Á‘Á¤Á¤Á·Á·ÁÍÁùÁùÁ ÂÂÂÂ!Â!Â+Â3Â3Â3ÂDÂDÂDÂHÂPÂVÂ[Â[Â_ÂgÂkÂqÂvÂv‚—§±ÂÄÂÉÂÑÂÑÂÖÂÖÂÝÂéÂþÂÃà Ã&Ã9Ã>ÃFÃLÃLÃQÃXÃcËÖåï÷ýÃÏÃÕÃÚÃÚÃÚÃÚÃÚÃÚÃÚÃÚÃÚÃåÃñÃþÃÄÄÄ/Ä4Ä<ÄAÄIÄNÄNÄNÄVÄ^ÄgÄoÄtÄ|Ä�ÄˆÄ“Ä»ÄÆÄÎÄÝÄçÄùÄþÄÅ Å ÅÅ"Å*Å=ÅEÅMÅbÅdÅoÅwŌŌŔŨŰŷŽÅÁÅÅÅÔÅÙÅåÅûÅÆÆ$Æ0Æ5ÆAÆLÆQÆQÆQÆrƌƑƙƨưƸÆÍÆÒÆÝÆåÆúÆÿÆÿÆ Ç!Ç-Ç5ÇJÇVÇ[ÇgÇrÇwÇwÇwÇwÇwÇwǂǂǂǂǂǂǂǂǂǂǂǂÇ�Ç­ÇÊÇÚÇàÇèÇûÇÈÈÈÈÈ-È3È;ÈCÈEÈeÈmÈvÈ~ȆȋÈ�È—È¢ÈÊÈÕÈÝÈìÈöÈÉÉÉ!É!É!É*É3É6É@ÉNÉ`ÉbÉtɆɆɆɑɖɳɸɸÉÁÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÆÉÑÉÝÉéÉ ÊÊ$ÊDÊIÊQÊXÊeÊmÊvÊ~ʅʊʊʒʚʶʾÊÁÊÃÊÓÊÝÊÝÊÝÊßÊòÊËË ËËËË Ë$Ë,Ë3Ë@ËYË`ËeË}ˇˢ˻ËÃËÐËéËðËðËõËõËõËõËõËõËõËýËÌÌ"Ì'Ì'Ì/Ì7ÌDÌIÌIÌIÌMÌRÌRÌbÌgÌgÌgÌsÌzÌ€Ì�̡̽ÌÐÌÖÌÞÌóÌúÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Í)Í7Í7Í<ÍGÍNÍjÍwÍwÍwÍ{͆ͤͲͪÏ@ü|®Ï®ÏÄÏÏÏÖÏáÏìÏÐÐÐ%Ð8ÐBÐBÐ^ÐxÐЈÐ�ВОЧЮбжÐÌÐÖÐèÐîÐúÐÑÑÑ*Ñ?ÑFÑFÑFÑTÑbÑlÑoÑ}чъќѡѦѶѹѾÑÎÑÑÑÕÑÞÑæÑøÑÒÒÒÒ Ò2Ò8ÒDÒYÒ`ÒhÒzÒ€Ò�Ò Ò Ò§Ò§Ò§ÒµÒÃÒÍÒÐÒÞÒèÒëÒýÒÓÓÓÓ Ó/Ó2Ó6Ó?ÓGÓYÓaÓaÓmÓzÓ‚Ó‚Ó…Ó�Ó®Ó¼ÓÔAhoÅfØf؀ؚؓءجؿØÂØËØÒØÕØåØóØþØ Ù Ù"Ù.ÙCÙNÙYÙdÙoÙzÙ‘Ù�ٴټÙÅÙÍÙÚÙõÙøÙþÙÚÚÚ$Ú7Ú=ÚEÚEÚSÚeÚrÚ…Ú‹Ú“Ú¦Ú¬Ú´Ú´ÚÝÚâÚÛÛÛ ÛÛÛ'ÛAÛMÛ]Û}Û™Û­ÛµÛ¿ÛÞÛòÛòÛhÜB 6+6+@+H+M+CÉÇfSfSƒSŽS¡SŽS»SÉSÉSÙSâSéSíSöSöSþST T,T8T>TITkTkT~T‰T�T–T›T›T®T¹TÄTËTÓTàTàTòT÷T÷TU U U U U$U7U=UDUYUmUmUrUrU‚U‡U‡UŒU“U›U¢U¤U¬U³U³UÂUÈUÕUÜUßUVV VV#V*V,V@VOVTVYVYVYVlVqV€V‡VŽV£V·V·V¼V¼VÄVÚVßVóVúVÿVÿV WW,W;WNWRWaWoW}WŒW©W´W¹WÈWÜWãWêWúWüW -XXX*X7XGXNXcXjXvX‡XžX X¬X·X¹X¹XÄXØXåXíXïXYYY,Y8YYY`YlYŠYŠYŠY’Y�Y¡Y©Y­YµY¼YÌY×YñYöYýYZZZZZ-Z:ZHZSZ^ZlZrZxZ~Z‡Z�ZœZ©Z±Z½ZËZâZäZíZøZúZ[$[*[0[6[?[P[w[[‰[–[®[µ[Á[Ð[å[å[ò[÷[ \\\\\Ë\DDŽ›NŒNŒbŒnŒ„ŒpŒ�Œ’Œ¤Œ¶Œ¾ŒEìˆÿ&Z&ZHZRZ…Z”ZªZÎZÓZ×ZßZèZ÷ZþZ[ [![2[Q[Y[[[z[‚[‘[˜[¤[©[°[¸[¾[À[Ü[á[÷[ã[\ \ \\\)\H\O\Q\p\w\w\w\‹\Ÿ\£\±\Ä\¼\Ü\á\ì\ó\û\]] ]$]:]&]F]L]L]h]m]†]r]’]˜]�]¹]¾]Ô]À]à]æ]í]õ]û]ý]^^4^ ^@^F^F^F^N^W^W^a^a^y^©^½^Á^Ï^â^Ú^ú^ú^ _FüE€îÝîÝ Þ)Þ.ÞOÞmÞ|ÞšÞ®ÞÆÞÍÞÒÞóÞß ß=ßNßeßißißmßrßwß�߄ߎߔ߱ߴߴߴ߹߿ßÛßéßõßþßàà#à?àJàVà_àsàsà‚à‡à‡à•àGl¬Ã¦D¦D´DÎD»DíDÚDùDEûD-EE9EGEOEZE\EgErErE‘E—EHP‡—FóFóZógóvó‚óˆó²óÈó´óßóÔó÷óÿóIŒg†ÖñÖñò+ò+ò>òBòaòuòzòzò‡ò�ò—ò¬ò¸òÉòÎòßòóòøòúòúòúòó+ó+óEóJP�­.7.7W7Y7g7m7‹7š7©7¸7Æ7Ñ7Ô7ä7Kì8n0n0˜0›0ž0¤0©0À0×0î01&1M1P1i1€1’1Ÿ1²1Å1Ê1Ò1Ü1ä1ä1ë1ô1ô1ÿ1'2A2G2`2y2{2•2›2´2Í2Õ2à2à2ê2ê2ü2:3O3a3L$ty¶d¶dádÊdëdódMLu„ÞÇÞÇðÇÈÈ'È.È6ÈFÈNÈ_ÈeÈ—ÈNTHYˆbˆbšbœb¥b®b¼bÁbÊbÍbÒbàbêbíb÷bO¨!Gà`à`ð`ù` aa%a1a=aIa`a`aoazaƒaŠa“aªa½aÂaÔaãaïabb -b*b*b,b?bAb[bgbjb�bPxîˆ(m(mAmLm\m¥m¬mÀmÇmÏm×màmèmðmòmúmn nn/nGnPnPn…n¯n¸nÚnôno;oGoiokoroyoyoœoµoÜoõop5p\pupœpµpÜpõpqq+q8q=q=qLqYq^q^qeqpq‚q›q´qÍqÏqÏqÏqÖqÖqãqèqèqèqùqrr/rirprprprxr•r£rÁrÊrÓràrîrs$s$s$s7sEsassssŠs�sºs¼sÓsÙsêsósõstttt t tDtFtMt^tgtitwtyt‡t‰t—t—t·t·t·t·tÄt×têt uu1u9u=uEuIuWueuguousuwuu�u›u›uµuÀuÖuèuv v*v4v;vTv`vgv€v€v’v—v™vŸv°vÁvÐv×vèvñvóvwwww!w!w!wEwEwbwiwpwsww‚w�w”w¢w¦w´w¸w¸wÑwØwÝwëwüwxx9xLx[x]xlxnx}x‡x‡x•xžx´x»xàxåxy>yCyQySyayjy„y†yˆy�y y©y«y¹y»yÉyËyÙyÙyùyùyùyùyùyzzz#z?zdz}z‚z‚z‚z¤z©z©z©zÉzÎzÎzÎzízòzòzùzûzûz{{{ { {{{3{I{n{Š{ž{£{£{¾{Ë{Í{Ü{å{ÿ{||||'|)|)|1|,|j|j|j|‰|‰|‰|ª|¯|¯|¯|Ñ|Ö|Ö|Ö|ö|û|û|û|} } }:}H}J}Y}b}|}~}~}ƒ}~}¤}¦}¦}®}©}ç}ç}ç}ò}ò}~~F~^~v~�~—~§~¼~Ô~è~/FMEƒQ|.>ä>äbävä�ä–ä´ä¿äÝäÝäÝäêäååååå)å+å+å9åFå^å^åoåƒåRçe¾×¾×Ø×á×ØØØØØ Ø'Ø-Ø:Ø:ØWØ\Ø\ØbØgØgØmØrØrØxØ}Ø}ؕبخسسؼØÜØÜØÜØãØåØåØìØîØîØôØôØûØýØýØÙÙ -Ù Ù ÙÙÙÙÙ!Ù'Ù-Ù5Ù5Ù5Ù5ÙAÙIÙQÙYÙaÙiÙqÙwÙ�ٞ٨٫٫ٵٻÙÁÙÁÙÅÙÍÙÔÙØÙàÙèÙîÙöÙýÙÚ ÚÚÚ"Ú(Ú5ÚAÚGÚOÚSÚZÚbÚjÚnÚtÚ|ÚƒÚ‹Ú“Ú—Ú�Ú¨Ú­ÚÃÚÔÚÙÚÜÚ‚ÛSL˜§„„1„3„:„P„`„f„~„–„™„«„ó„TÔ*[.ë.ëBëWëfëjëxë~ë�ë�ëœë§ë²ë½ëÄëÔëëëþëì ì ììì3ì5ì?ì`ìkìmì†ìŠì˜ì�ì�ì¤ì°ì¸ìËì5íU$nsvdvd¡dŠd«d³dVl  ~H~HŒH¦H“HÅH²HÑHæHÓHIòHI I'I2I4I?IJIJIiIoIW,6Ò6Ò?ÒEÒMÒ\ÒkÒpÒXTÒΡΡï¡¢ ¢¢7¢A¢O¢i¢v¢v¢€¢€¢‡¢š¢˜¢¨¢¨¢³¢½¢âɢ̢ڢá¢ù¢££££%£0£J£e£y£–£¸£½£ãÉ£Ô£á£ÿ£ç£¤ ¤¤¤ ¤?¤'¤H¤L¤R¤Z¤_¤_¤l¤r¤�¤y¤™¤�¤£¤«¤°¤°¤ѤÕ¤Û¤ã¤ò¤ ¥ù¤¥¥#¥+¥0¥0¥Q¥U¥[¥c¥c¥h¥u¥“¥{¥œ¥ ¥¦¥®¥Î¥¶¥×¥Û¥á¥é¥é¥ö¥¦ü¥¦!¦'¦/¦O¦7¦X¦\¦b¦j¦j¦j¦€¦€¦€¦€¦‹¦•¦ž¦¾¦ʦئݦë¦ÿ¦§§§§ §(§4§H§U§d§s§�§’§’§�§¥§²§½§ʧէ裡¨¨#¨#¨.¨D¨Q¨Y¨e¨s¨x¨†¨š¨š¨¢¨š¨º¨¿¨¿¨ΨÓ¨Ó¨â¨ç¨ç¨ø¨ý¨ý¨©©©&©5©:©:©M©\©a©o©a©ƒ©ˆ©–©ˆ©ª©¯©½©¯©Ñ©Ö©ä©Ö©ø©ý©ý©ª ªAªFªTªFªhªmªmªŠª�ª±ª¶ªĪ¶ªتݪݪúªÿª!«&«4«&«H«M«M«j«o«‘«–«¤«–«¸«½«½«Ø«Ý«Ý«ø«ý«ý«¬¬¬8¬=¬=¬X¬]¬]¬x¬}¬}¬˜¬�¬�¬¸¬½¬½¬άÓ¬Ó¬ä¬é¬é¬õ¬­­­­&­?­D­g­n­x­}­Ž­˜­­­¸­½­έÙ­á­æ­æ­ê­î­õ­ÿ­ ® ®®!®!®!®%®;®D®D®g®l®l®t®ˆ®‘®«®¸®îήÙ®ë®÷®¯¯¯¯¯3¯>¯H¯S¯X¯c¯k¯p¯p¯{¯ƒ¯Œ¯—¯§¯¿¯ׯë¯ð¯ð¯û¯°°#°D°P°^°c°q°u°z°z°а•°�°¢°­°º°Űß°ñ°±±±±&±+±6±C±N±h±z±Œ±Œ±Œ±Œ±‘±–±–±¢±³±³±Ù±Û±÷±÷±²² ²!²-²5²R²c²m²x²›²¬²½²βÙ²ñ²³³³³³³³)³.³.³6³A³F³F³N³l³V³„³‰³‰³‘³¯³™³dz̳à³̳ø³ý³ý³ -´´´´´´(´9´K´P´P´d´P´|´�´�´‰´Ž´Ž´¡´¦´¦´¹´¾´¾´Ø´è´í´í´µµµµ6µFµKµKµeµuµzµ‘µzµ©µ®µ®µ¹µ¾µúµèµÖµ¾µ¶¶S¶A¶/¶¶k¶p¶p¶¶�¶”¶”¶£¶³¶¸¶¸¶ǶÕ¶Ú¶·ð¶Ú¶· ·G·5· ·_·d·Œ·z·d·¤·©·©·Æ·°·ð·¸¸¸ ¸ ¸J¸Z¸_¸_¸k¸p¸p¸|¸�¸�¸”¸¤¸©¸©¸¼¸̸ѸѸä¸ô¸ù¸ù¸ ¹¹!¹!¹)¹.¹.¹6¹;¹;¹C¹H¹H¹P¹U¹U¹h¹m¹m¹€¹…¹Ó¹Á¹¯¹�¹…¹à¹å¹3º!ººý¹å¹@ºEºEºTºoºtºtº…º º¥º¥º¶ºĺɺɺѺÖºÖºÞºãºãºëºðºðº(»»»÷ºG»b»g»g»Ÿ»�»{»n»¾»Ù»Þ»¼þ»ö»Þ»(¼-¼_¼M¼E¼-¼w¼|¼–¼€¼|¼®¼³¼мº¼³¼è¼í¼í¼ù¼½"½3½3½Y½[½q½w½w½“½ ½ѽ¾¾ð½ ¾'¾'¾'¾3¾8¾8¾K¾V¾`¾e¾p¾z¾¾¾™¾ž¾ž¾¦¾«¾¿¾«¾˾Ö¾Û¾ï¾Û¾û¾¿ ¿ ¿¿$¿)¿)¿4¿?¿D¿D¿U¿Z¿Z¿k¿p¿p¿Š¿•¿š¿¢¿š¿®¿³¿Ç¿³¿Ó¿Ø¿à¿Ø¿ì¿ñ¿Àñ¿ÀÀÀ*ÀÀ6À6À6À;ÀGÀ;ÀZÀ_À_ÀkÀ_À~ÀƒÀƒÀ�ÀƒÀ¢À§À§À³À§ÀÆÀËÀßÀËÀëÀ÷ÀÁ ÁÁ&ÁÁ2Á>ÁIÁTÁYÁmÁYÁ�ÁyÁŠÁ�Á�Á—ÁœÁœÁ¥ÁªÁªÁ³Á¸Á¸ÁÁÁÆÁÆÁÑÁÖÁÖÁáÁæÁæÁñÁöÁöÁÂÂÂÂÂÂ!Â&Â&Â1Â6ÂJÂ6ÂVÂaÂlÂwÂ|Â|†‹‹•šš¤©©³¸¸ÂÀÂÅÂÅÂÒÂ×Â×ÂäÂéÂéÂéÂéÂéÂñÂöÂöÂþÂÃà ÃÃÃÃÃÃ%Ã*Ã>Ã*ÃJÃ[Ã`Ã`ÃrÃ}Ã�âøÃÃÃÜÃÈÃèÃóÃþÃÄÄÄ Ä@ÄEÄ[ÄfÄÄkċĖġĦĦĸÄÃÄãÄèÄþÄ Å"ÅÅ.Å9ÅDÅIÅIÅoÅ[Å{śŠŶÅÁÅÆÅáÅÍÅÆíÅ Æ#ÆÆCÆ/ÆOÆZÆ_Æ_Æ…ÆqƑƱƶÆÌÆׯÜÆ÷ÆãÆÇÇ#Ç9Ç%ÇYÇEÇeÇpÇuÇuǛLJǧÇÇÇÌÇâÇíÇòÇ ÈùÇ-ÈÈ9ÈOÈ;ÈoÈ[È{ȆȋȋȚȟȟȮȳȳȳȹȾȾȾÈÈÈÊÈÊÈÔÈáÈÉÉÉ É É É É ÉÉÉ&É-É8É8ÉEÉKÉRÉ]ÉhÉsÉ~ɉɃɬɤÉÄÉÒÉÌÉõÉíÉ Ê Ê ÊÊÊ1Ê7ÊEÊXÊXÊpÊzʎʨʨʨÊÉÊÙÊîÊËËË8Ë?ËNË`Ë`ËdËiËpˀ˟˟ˣ˺ËÁËÆËÆËÊËÕËáËïËÌ%Ì6ÌDÌw̞̲̃̈̾ÌÌÌÑÌßÌûÌ&ÍLÍOÍ_ÍaÍaÍeÍ„Í�Í�Í’Í ÍËÍëÍëÍëÍîÍÐY, vÒvÒ„ÒŠÒŽÒ�Ò¬Ò²ÒZ`áõ^™^™t™–™£™§™¶™Ï™Ó™Ù™ì™ š š š<š*š š[šeš[8cmdd'dd3d>dIdTd_dkdqd\\�”ˆœˆœ–œ˜œ£œ«œ¶œÁœÌœÎœäœäœöœ� ��=�]ܳfîéîé ê)ê7êYêYêjêwê•ê�êÊêÏêøêë1ë7ë;ë^ë„ë‰ë²ëÌëòë ììì,ì4ì9ìJìRìqìwì{ì”ìœì»ìÀìÑìÙìøìýìí ííí%í-í9íOíTífíkí|í�í“íœí°í»íàíî5î:î:î:îJîQî_îlîŽîŽî¥îªîªîÁîÃîÃî×îÙîÙîðîòîòî ï ï ï"ï"ï3ï8ï8ïHïmïï„ï„ï„ï„ïœï¿ïÒïðïðïðïýïðððð#ð:ð<ð<ðIð`ð`ðwðyð“ð±ð±ð±ðµð·ð·ð·ð¼ð¾ð¾ðÃðÃðÍðÒðÒðððððððøðúðúðúðñññ ñ ñññ3ñ5ñHñ^ñ^ñ^ñ^ñ^ñqñ‰ñ‘ñ‘ñÔñ^` -UU(U4URUnU{U’U¥U°UÅU²UÑUÙUäU÷UðUVV_ôWæ=æ=>>> >'>,>.>5><>@>R>„>ž>‹>¶>»>Ü>Ü>è>ð>ÿ>9?>?k?s?x?�?Œ?”?›?º?À?ß?á?@ @"@A@G@N@N@T@W@[@l@Œ@ž@`$–ܖܥܽܽÜÃÜaxb|6ç6çVçxçxç‚ç‡ç‡ç¦ç³çµçµçµçµçÂçÊçÝçñçóçóçûçèè èb”"~/~/ /ª/¶/»/Ë/Ñ/æ/ú/ 00%0<0D0N0]0e0r0z0}0}0}00Ž0˜0¡0©0¬0¾0cHÏî9î9:#:&:/:5:L:c:z:Œ:º:Ö:ð:õ:ú:;;.;;;N;d;x;};ˆ;¨;­;°;Ê;ä;ì;ô;ù;<-<5<=<B<\<d<i<‰<Ž<‘<«<Å<Í<Õ<×<ñ< ====7=?=?=D=I=T=T=_=_=k=k=}=½=Ó=Ó=ã=dd¤¹È‰È‰Ø‰ß‰ë‰ñ‰ù‰ŠŠ&Š=ŠJŠJŠMŠ[ŠkŠ‚Š†ŠŽŠeºû++-+2+F+u+�+Ž+˜+¨+¨+¿+Æ+Ý+ä+í+,,,,0,0,F,F,\,\,r,r,ˆ,ˆ,ž,ž,´,´,Ë,Ë,â,â,ù,ù,--'-'->->-U-U-m-m-…-�-˜-©-´-Å-È-Ê-á-è-ô.f¬÷†† ¦­µ½ÀËÝÝñøûý"8;ILOVZbp‚’•äg(FLÆ’Æ’í’Ú’ù’““hCFKFKiK~KƒK‹K“K›K¨K®K·K½KÂKÊKæKìKîKðKýKýK -LÿKL!L#L%L2L2L2L7L@LHLQLYL[LcLkLsL€L†L‘L˜L¨L³L¿LÝLäLïLõLM -MMM&M6M>MAM§Mi8-77070K0O0T0_0j0m0q0y0j¤ö›fšfš„š¨š®šµšµš¼šÜšáš÷š›ÿš ›2›D›M›U›_›}›�›˜› ›ª›Û¯›Ï›á›ë›ó›ø›œÿ›3œ œ?œUœAœuœaœ�œ“œ�œ¥œ¥œ®œ¶œÌœåœ÷œ� -� -���4�6�;�F�\�\�\�`�l���›�¥�²�Ó�á�ë�í�í�žž(ž+žKžOžnžrž•ž™ž¸ž¼ž¼ž¼žžОÚžóžùžŸŸŸŸ Ÿ9ŸDŸRŸ\ŸuŸxŸ€ŸŒŸŽŸ–Ÿ™Ÿ²Ÿ´ŸÀŸŸÊŸП韠  " ' 9 H a r r } ˆ   ¬ Á Æ Ø ç ¡¡¡¡"¡*¡8¡?¡Q¡kfä†Û†Û Û©ÛÉÛÉÛÏÛ×ÛßÛçÛïÛõÛÜÜÜÜÜÜ Ü Ü&Ü+Ü+Ü1Ü6Ü6ÜNÜaÜgÜlÜlÜuܕܕܕܜܞܞܥܧܧܭܭܴܼܼܶܶÜÃÜÅÜÅÜËÜËÜÒÜÒÜÚÜàÜæÜîÜîÜîÜîÜúÜÝ -ÝÝÝ"Ý*Ý0ÝHÝWÝaÝdÝdÝnÝtÝzÝzÝ~݆Ý�Ý•Ý�Ý¡Ý§Ý¯Ý¶Ý¾ÝÆÝÊÝÐÝÛÝáÝîÝúÝÞÞ ÞÞÞ#Þ'Þ-Þ5Þ<ÞDÞLÞPÞVÞaÞfÞ|Þ�Þ’Þ•Þ;ßl`'"'"0"7"K"_"d"‚"‡"¥"§"Å"Ç"Þ"ò"û"ý"#!#R#m|2ÍББæ‘÷‘’’*’;’N’V’d’‚’�’“’ ’µ’µ’È’Ù’ß’ô’““$“)“1“9“?“W“j“u“y“ƒ“˜“ž“ “­“¯“Á“Á“ȓГâ“â“ñ“ÿ“”” ”$”0”4”@”D”P”T”T”g”z”€”„”Ž”’”¡”¥”´”¸”˔ϔϔϔϔԔæ”õ”••-•=•M•R•R•R•^•f•n•t•‰•‘•Ÿ•©•·•½•¿•¿•¿•¿•¿•¿•¿•¿•¿•˕ӕەá•ö•þ•– -–––––0–6–B–H–U–p–€–Œ–’–Ÿ–±–¿–Þ–8˜nÔ¼íHkHkZkkkvk�k—k©kÁkÆkÏkÖkãkêkøkÿkll l ll+lEl[lslxl�lˆl•l©lÄlËlÍlÐlÕlølm"mo$hm×&×&å&ù&''p¤b‡ÎXÎXâXéXYûXY Y'Y'YGY]YIYiY�Y{Y›Y Y§Y§Y¯Y¶YÁYÌYÔYÜYçYòYZýYZ%ZqFƒælælm m!m9mCmNmNmSm^mjmumƒm“m£mªm°mÅmÚmÚmîmömnn"n/n@nQn_nmntnzn�n¤n¤n¸nÅnÖnænìnýnýnoo"o/o?o¡or8¬¶öJöJúJÿJKK#K,K1K6K8Ks88B00“0—0œ0§0±0´0¸0À0t0†Ž>I>ITIgItIzI}I…IuÜtöö#.7GY_ek�p•¢¥­¿ÅÊí -!'7=IW\jƒ‘šª¬³¸Àßíù29CRX^dj€¡µÁØãòÿ+9P\aoŽ ·ÀÆÑÖÜóþ  /1?N``h‹–Êv`ÌàN˜N˜d˜†˜“˜—˜¦˜ŘɘϘâ˜ÿ˜™™2™ ™™Q™[™wT�Þ–à–à®à¶àÃàãàõàüàá áááá<á<áCáFáKáZá^á‹á�á”á”á›ážá£á¯á½áÁáÒáááåáçáöáúáâ â%â%â9â<âHâRâYââŠâŽâ“âÉâàâëâïâã ãããã ã ã:ã>ã@ã@ãKãOãiãmãmãmãqã”ãxˆßý–ã–ãªãÀãÀãÀãÂãÂãÉãËãËãÒãÔãÔãáãããããðã÷ãùãùãä äää'ä,ä,ä<äy°‰±nene†eŽe™eóeÞeÓe¾e§eùe fûe&f&f?f3flfqf}fˆf�fŠf©f¯f¶f×fÉf½fëfífggg:g:g:gFgz †*>´>´[´b´j´u´Œ´–´–´­´·´Ò´è´ö´ú´µ.µBµIµMµfµpµ�µŽµŽµ•µœµ¡µ¦µ«µ²µ¹µÓµÚµêµîµîµøµ¶¶¶#¶6¶I¶I¶O¶Z¶a¶i¶t¶{¶ƒ¶Ž¶•¶•¶ ¶¾¶Â¶Ú¶Ë¶õ¶õ¶û¶···'·.·2·4·F·F·F·X·`·†·”·”·˜·­·µ·Å·Ð·å·ê·ø·¸¸¸(¸,¸1¸9¸=¸L¸N¸]¸_¸n¸p¸¸†¸Š¸ž¸¦¸´¸»¸¿¸Ï¸Ú¸ß¸ý¸¹¹¹¹&¹4¹;¹?¹G¹[¹c¹n¹r¹r¹r¹}¹ˆ¹˜¹¤¹º¹Â¹Í¹Ü¹ä¹ï¹ô¹ü¹ººº"º'º9ºAºLºLºLºLºZºiº†º’ºšºªºººØºÜº »»ñº»»%»,»;»J»R»`»g»k»m»|»„»’»™»�»�»Ÿ»±»±»Ã»Ã»Ã»É»Õ»ç»ï»¼3¼A¼E¼c¼j¼q¼|¼’¼”¼›¼®¼¶¼Ä¼Ë¼Ï¼Ñ¼ä¼ì¼ú¼½½½½½½½-½5½C½N½R½R½W½_½c½r½t½ƒ½…½”½–½¥½¬½°½Ä½Ì½Ú½á½å½õ½¾¾#¾+¾9¾@¾D¾L¾Z¾a¾e¾m¾�¾‰¾”¾˜¾˜¾˜¾£¾ª¾¸¾Ò¾â¾í¾¿¿¿"¿.¿D¿L¿W¿f¿n¿y¿~¿†¿‘¿�¿¡¿¬¿±¿Ã¿Ë¿Ö¿Ö¿Ö¿Ö¿ê¿ú¿ÀÀ À4ÀEÀZÀgÀkÀyÀŽÀžÀµÀÎÀçÀéÀôÀüÀüÀÁ"Á3ÁJÁcÁqÁ|ÁˆÁ�Á’Á�Á¥Á¥Á¥Á¿ÁÍÁÛÁðÁÂÂ#ÂAÂHÂHÂXÂl††Š ¯ÂÊÂÕÂìÂôÂôÂÃÃ)ÃDÃMÃbÃ|ËØöÃÄÃÚÃóÃÄÄÄ3Ä3Ä?ÄWÄoÄxÄxÄxĄĕĭĶĶĽįÄÌÄØÄ>Å{ÌL»®ö®öÌö×öâö÷÷ -÷÷"÷(÷9÷H÷W÷d÷d÷j÷o÷t÷‡÷š÷¥÷©÷»÷È÷Ð÷Û÷×÷ò÷øøø ø&øø7ø.øAøCø_øKøgøuøuøwø“ø“øšø ø©ø°ø³øÕøéøÜøñø÷øùùùùùù ù ù+ù@ùIùIùIùIùeù|ù‚ù‡ù‡ùœù¢ù§ù§ù³ùÐùðùõùúùúùú#ú2úAúIúNúTúYúYú`úgúŠú§ú©úÆúÛúÛúáúáúîú÷ú÷úû$û/û4ûAûLûTû\ûlûƒûƒû“û“û¥û«ûÓûÜûÜûÞûåûêûêû÷ûüüüü$ü1üCüNü\üeüjü‘üšü¥üªü±ü¹üÌüáüæüíüúüýý(ý/ý5ý>ý>ýGýaýhýmý{ý‹ý™ý™ýŸý¦ý¯ý¯ýÂýÔý×ý×ýèýðýøýþ!þ(þ5þ7þ>þRþaþaþaþˆþˆþˆþ•þ•þªþµþÇþÔþßþíþøþÿÿÿ(ÿ;ÿ=ÿLÿaÿcÿqÿ†ÿ†ÿŒÿ•ÿ•ÿ¢ÿ¨ÿºÿºÿÇÿÊÿÕÿçÿîÿùÿþÿ 24Ncccelrƒ‘££©°¹¾ßèèî÷÷#&,5=HZ`kkx{�Š’�¯µÀÀÍÐÖßá+1<NT\\\\gà|”�¾g3g3{33ˆ3‹3”3�3¯3¯3Ø3Ü3á3ä3í3ý34444 4'4/474>4N4N4Z4}Œ >VV*V1VaVMVmVrVyVyV™V¯V›V»VëV×V÷VüVWW WWW%W0WCW;W[WcW~À-ee.e>eHeHeReRe\ene{e~e€e‰e–e–e¤e¸e¸eÜeéeéeùeff)f6f6fLfof…f¨f±f¾f¾fáfëfëfgQgWgWgWgig¸ºä�Š�Š¨ŠªŠ¶ŠºŠÇŠÊŠäŠäŠäŠêŠîŠöŠ‹‹!‹#‹#‹,‹.‹.‹7‹9‹9‹B‹D‹D‹M‹M‹V‹\‹_‹i‹z‹€‹Œ‹Œ‹ô‹€œZ}.*.*L*]*€*‡* *˜*¸*Ø*Ä*ä*õ*ú*++3+[+b+{+s+“+³+Ÿ+¿+Ð+æ+Ò+þ+ , ,#,#,-,�œX{Î-Î-Ú-ê-õ- .O.\.m..†.�.¡.¨.¶.Î.Ý.ê.í./ //%/1/=/A/H/~/‚x¬h¬h¬~¬…¬Œ¬«¬º¬É¬Ø¬ç¬ö¬­­­ ­ ­.­3­N­h­h­~­�­”­¢­©­®­®­µ­Ç­Ð­Ò­à­ò­ò­ò­®®!®,®9®>®N®S®c®o®t®�®†®–®›®«®­®½®¿®Ï®Ñ®â®ë®ë®í®ý®¯¯¯/¯A¯S¯e¯u¯u¯u¯x¯‹¯ƒ\åøø‹ø‹ŒŒ Œ-ŒBŒIŒSŒaŒdŒfŒpŒ‚Œ‚Œ‰Œ¿Œ„0ÎÖÎÎæ(ðî<D…`·Ë>—>—T—v—ƒ—�—œ—µ—¹—¿—Ò—ï—ñ—ñ—"˜˜ñ—A˜K˜†L4CF,F,T,f,l,t,†,Œ,•,§,­,°,ì,‡(–œ7373E3T3X3[3a3ˆ\DWî,î,ü,---.-4-=-O-U-^-p-v-y-Ç-‰, ÒÒÒ#Ò+Ò0Ò6ÒŠ¬!H +   - 4 : I T _ e q u u � Š � � ˜ š ° · ½ Å РÛ á ë î ò ò ú ¡¡¡¡¡¡!¡!¡,¡.¡L¡S¡^¡i¡l¡r¡w¡w¡‚¡†¡†¡’¡›¡ž¡ž¡©¡«¡Á¡È¡ΡÝ¡è¡ó¡ù¡¢ ¢ ¢¢¢!¢!¢,¢.¢D¢K¢Q¢Y¢d¢o¢u¢¢‚¢†¢†¢Ž¢•¢˜¢š¢¥¢©¢²¢µ¢µ¢À¢¢à¢ç¢ò¢ý¢££ £ ££!£!£-£6£9£9£D£F£\£c£i£{£†£‘£—£œ£œ£§£¬£¬£·£¼£¼£Ç£Ê£ΣÕ£Ú£ߣä£ä£ø£ý£ý£ +¤¤ ¤'¤+¤?¤F¤J¤J¤W¤c¤k¤q¤�¤…¤–¤¨¤³¤·¤·¤Ĥ̤Ô¤Ú¤Ú¤Ú¤Ú¤Ú¤ܤܤê¤ñ¤þ¤ +¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥1¥9¥E¥E¥f¥u¥�¥�¥›¥¨¥¨¥Ë¥Ø¥ã¥ì¥õ¥¦¦¦¦¦¦&¦D¦P¦P¦¨x¿ÙÏ3Ï3á3ã3ç3ð3ü3444L4P4U4a4t4~4�4Œ4�4—4¡4lcz¶x¶xÌxÛxàxõxâxyyyy)yy8y>yWypy‰y¢y»yÅy„žÎhÎhìhôhúhii +i iiii,i0i6i6iKiUiUi]ivi™iºi¿iàiåiñiüijjj(j.j3j9j;jAjDjJjOjRjZjcjsj–j¤j¼jÁjÅjêjýjkk(k-k1kVkfk‰kœk¡k§k¬k¯k±k·k½kÃkÈkÎkÖkÖkàkék÷klll=lMlplƒlˆl˜l»lÉlálælêlm"m"m=m=m=mKmcmemememsm‹m�m�m›m³m³mÅmÅmÎmÛmñmn+n3n>nQnUnUnUn\nbn|n„n�nªn¬n²nÌnÔnßnínønønoH…“h„h„„•„¥„¬„Äބð„ô„7…L“¢ÖzÖzêz÷z {ùz{{7{P{[{f{n{4IRÞÕÞÕçÕçÕêÕøÕÖ ÖÖì=öö>öAö_övö‡ö‡ö¢ö¨ö­ö­öÈöÎöÓöÓöÜöêö÷ ÷$÷+÷1÷3÷P÷`÷e÷l÷r÷t÷t÷‡÷�÷�÷�÷�÷’÷®÷¾÷Ð÷Õ÷Õ÷Õ÷Ü÷ã÷ê÷ÿ÷ø"ø"ø4øÌL»0¤0¤J¤U¤`¤i¤q¤t¤{¤¤ˆ¤›¤Ÿ¤¥¤³¤Ð¤Ý¤ì¤ñ¤ý¤¥ ¥¥¥¥'¥ ¥7¥@¥Q¥O¥G¥_¥h¥n¥n¥|¥¥“¥œ¥¥¥¬¥°¥µ¥Ì¥ä¥í¥û¥¦#¦#¦;¦L¦L¦S¦l¦x¦€¦“¦š¦®¦·¦¾¦Â¦Í¦Ò¦Ù¦ö¦#§*§.§0§;§G§K§`§b§s§}§ˆ§’§¡§°§É§É§Ì§Ô§Ù§[¨Xs…&L&LCLTLaLkL‚LŸLºLÀLÉL×LÝLàLìLŒ ````p`”`”`¢`¢`¢`¢`«`«`²`Í`â`ê`ê`õ`õ`aaa!a'a'a?a?aEaka(kq‰‰‰*‰:‰A‰G‰ @O[¶è¶èÄèÌèÓèòèÿèÿèéé +é $/4FßFßSßhßmßsß!$).ßß#ß8ß=ßCß"$#(æÞæÞõÞ ßßß#€ðLWWaq‡�™´¹Éßçñ  ' 1 ; E O Y c m w � ‹ • Ÿ © ¿ É Ó Ý ç ñ û  % / 9 O Y c m w � ‹ • Ÿ © ³ ½ Ç Ñ Û å ï ù ! !!!!+!5!?!I!S!]!g!q!{!‰!$¤Cp›p›†›�›¢›³›Å›Ç›Î›Ô›ä›ï›ù›œœœ œ2œ8œHœRœ\œcœnœƒœ‹œ‹œ¡œ¡œ¡œµœ%$5:vßv߄ߙߞߤß&¤Di¸œ¸œÎœÕœêœûœ ����,�7�A�L�c�f�h�z���‘�›�¥�¬�·�Ë�Ó�Ó�é�é�é�þ�'(&,w/w/…/Œ/–/œ/¢/(0_gVKVKlKKŽK”K—KŸK)  ßö"ö"# #&#3#:#V#\#\#\#i#k#v#€#‡#–#¡#§#±#»#Ì#Ì#×#á#á#ó#ù# $$$$$<$B$T$g$m$p$v$v$x$~$„$†$†$†$—$¡$¦$¦$»$Å$Å$Ù$â$è$î$% %%'%+%+%3%9%?%I%P%W%`%r%r%—%›%¡%§%¹%Ì%Ò%Ö%Ü%â%è%è%ê%î%ô%ú%&&&&&0&A&A&X&e&i&q&ƒ&£&£&©&¬&°&¶&¶&È&Ù&î&' +'' '0'4':'S'U'['h'j'v'”'š'¥'È'Ó'Ù'ß'å'î'ô'(( (#(4(8(>(W(Y(_(l(n(z(˜(ž(¤(ª(³(¹(Ö(É(ð(ù(ÿ(ÿ())) )*)?)D)D)D)a)c)€)‚)Ÿ)¥)­)±)¸)Û)á)ç)ó) +***"*'*'*.*2*<*J*L*T*Y*a*l*r*�*†*Œ*‘*™*ž*­*È*Ø*å*ô*++.+.+5+J+O+X+e+j+p+u+u+|+€+Š+˜+š+¢+¦+ª+´+À+Ç+Ë+Ó+Û+ã+õ+,,,,,,?,?,M,S,X,\,a,a,a,a,g,i,i,Œ,’,˜,Ÿ,µ,·,·,·,Â,Â,Â,Ç,ð-*4)r¶Ç¶ÇÐÇÔÇìÇôÇüÇÈ +ÈÈÈ+È3È8È;ÈFÈQÈYÈdÈoÈqȇȎȕȠȫȭȸÈÃÈÅÈÑÈÚÈÚÈðÈûÈÉÉ"É3É9ÉBÉTÉZÉZÉbÉfÉqÉvɈɓɗɥɧɫɺɺɺÉËÉËÉÐÉâÉèÉVÊ+Ô@>ä>äTä[ä^ä‚ä‚äŸä²äÅäØäÝäÝäûä åå/å7å7å9å9å9åLåNåNåNåUåhå{å{å{åŽå™å¬åÂåÇåËåÒåçåúåæææ)æ,LAP/$/$=$N$Z$u$z$š$œ$·$Ò$Ò$Ú$á$%-P~Ž˜‰˜‰¦‰³‰Á‰Ó‰Þ‰ì‰ù‰ŠŠ$Š2Š8Š>Š.4 +—5—5¥5±5Â5Ô5Ý5ç5í5/|ºU. . P W f q — —   ¢ ¢ © Ð × × æ õ  + + +( +0 +A +J +h +s +u +Ž +” +Ÿ +¯ +Á +Ê +Õ +Ú +à +ç +  " + + 2 A X X g p „ ‹ ’ — ¢ ¨ ° Ö ß æ ë ö   % * 2 > P P g n v † ˜ ž § § ¶ ¼ Ð Ù é ø  +  # 6 > R p ‡ ‹ — ® Ê Ü â í ù  ''9=I`|Ž”Ÿ«»ËÝããèêêïïþ + +‡0ŒÄã^Ù^Ùzنيَٕٜ٫ٶټÙÁÙÃÙÏÙÖÙÞÙäÙêÙîÙîÙýÙÚ ÚÚÚÚÚ&Ú18 ¯.¯.½.Ã.Ï.Ú.ë.õ.ü./2@x„êê$ê/ê6êUêbêbêeêgêmê3ÌS¶¶Üïöý + //AL`hqy~„šª¿ÄÝõùùþ%-6>CJ\l�ƒœ´¸¸ÌÔÝåêð+0Iaexxx}ŸÁÌÒê&.7?AGYi~€™±µµÉÑÚâçî).G_cvvv{�¿ÊÐè '9I`wŽ¥¥¸ÓÓÓô    % 2 L Z a t v • ¤ � ¼ Ì æ æ ÿ 4D{ˆ®®¾ÒÛáóó÷ú5\Ob(ˆ(ˆHˆWˆ`ˆiˆmˆqˆ}ˆ‚ˆ‡ˆ‡ˆ˜ˆœˆ¤ˆ¼ˆ¿ˆËˆ60üæâæâïâôâýâãã ã7lØvv˜Ÿ¦±ÇÇÙòòý 9H_p„ˆ�¢º¿ÇËöÐü*rL�Ÿª°ÄÜáõý,<RTm…‰‰ž¶»ÃÇïÉõ  /5?FYtt� ®®ÂÐÞó *92Qahy›�Åóóóþ<ALR]™†¨¿Ðëÿ;p]�¨®ÂÚßóû *:PRkƒ‡‡©ÂÖÚéééü &AAA]m{{��«ÉÜá'7Hffˆˆ�²²²Ò8DmzVVfzƒ‰››Ÿ¢ª9l{’ÆyÆyÜyëyðyzòyzzz$z9z&zHzNzgz€z™z²zËzÕz:<‰”'06:E;”)îìîìöìúìííí)í4íFíQí\íkí|íƒíœí í±í±í»íÂíÕíÞíìíîî!î>î<d(=X‡X‡d‡x‡{‡�‡—‡›‡¥‡¯‡·‡º‡À‡=$uºHEHElEoEsE€E‰E”E¤E¬E¶EÞEÞEîEóEóEFFFFFF-F2F2FBFGFGFWF\F\FlFqFqF�F†F†F†F‰F‰F¢F°FÇFÚFÚFÜFÜFëFñFöFöFüF G GG'G4GLGTGZGZGnGnGwGzG8H>Ð q†¨†¨£¨«¨®¨¼¨ʨߨ訩©.©9©J©N©`©c©n©w©ƒ©–©Ç©¼©¢©שªª=ªRªvªŠªŒª­ª“ªȪ˪ЪÓªÓªÚªñªøª« +««&«9«9«M«Q«~«~«–«›«›«««³«Ä«Ϋß«é«ü«¬ ¬ ¬¬%¬6¬@¬Q¬[¬n¬z¬¬¬¬¡¬²¬¼¬Á¬άã¬ã¬è¬ò¬­­ ­­­­ ­/­4­:­?­?­E­K­P­P­X­k­w­„­�­Ÿ­§­­­¶­Í­á­ò­ÿ­®®/®F®S®[®j®r®x®�®Š®Š®�®�®�®�®�®›®›®›®³®É®Ñ®ì®ý® +¯ ¯¯¯¯¯)¯7¯<¯<¯C¯Q¯V¯n¯z¯�¯›¯¡¯©¯¯¯¸¯Þ¯ê¯ð¯ö¯° °°B°S°`°b°p°p°u°u°|°а�°¢°®°º°À°ưϰÔ°Ô°Ô°Ô°Ô°ì°ñ°ñ°ñ°ñ°ñ°±±±±±±±±±±±0±8±S±d±q±s±€±Œ±‘±‘±‘±š±´±À±űç±ó±ó±ø±ø±ø±ø±ø±ø±ø±ø± ²²²²#².²3²3²>²P²h²}²ž²¿²ʲÛ²à²à²à²é² ³³%³+³C³S³[³c³n³˜³¡³§³¿³ϳϳϳϳϳñ³*´3´9´?´D´M´V´[´[´[´[´j´~´œ´¬´²´·´·´Ê´Þ´µµµµ"µ"µ1µEµcµsµyµ~µ~µ‘µ¥µ˵Þµäµäµéµéµéµ¶¶ ¶:¶K¶X¶Z¶i¶k¶k¶k¶k¶k¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶޶�¶¨¶ª¶ª¶³¶µ¶µ¶ɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶɶ˶˶â¶ê¶ö¶ö¶ú¶ÿ¶·+·C·R·^·t·Ž·‘·›·§·Í·í· ¸1¸3¸F¸t¸L¸�¸�¸’¸¢¸ª¸ŸÖ¸Ù¸ó¸¹ ¹%¹%¹P¹S¹b¹v¹—¹«¹ǹ³¹ã¹ø¹ºKºIº>º3º$ºYºYºYº\ºaºdº~ºŒºººܺܺ» +»»-»N»b»~»j»š»š»¸»í»ë»à»Õ»Æ»û»û»û»þ»¼¼ +¼¼;¼G¼ ¿?”£Ä¶Ä¶ÄÌÄÐÄÛÄâÄíÄÅÅ ÅÅ$Å1Å=ÅJÅRÅcÅcÅlÅqÅyʼnŗŦűÅÄÅÄÅ×Å×ÅíÅÆÆ-Æ/Æ/Æ9ÆAÆAÆKÆSÆSÆSÆdÆdÆdÆjÆrÆxÆ}Æ}ƃƋÆ�ƕƚƚưÆÀÆÊÆÙÆÞÆæÆæÆëÆëÆòÆÇÇ"Ç*Ç0Ç?ÇDÇLÇRÇRÇ^ÇiÇ�ǬǶǾÇÄÇÙÇßÇäÇäÇäÇäÇäÇäÇäÇäÇäÇïÇýÇ ÈÈÈ*È/È<ÈDÈIÈIÈIÈQÈZÈcÈpÈxÈ„È�ÈÃÈËÈÚÈäÈþÈÉ É ÉÉ#É+É@ÉHÉPÉeÉgÉrÉzÉ�É�ɗɨɰɷɽÉÃÉÇÉÐÉÕÉùÉÊ Ê"Ê.Ê3Ê?ÊJÊOÊOÊOÊeʂʇÊ�ʠʨʰÊÅÊÊÊÕÊÝÊòÊ÷Ê÷ÊË'Ë/ËDËPËUËaËlËqËqËqËqËqËqË|Ë|Ë|Ë|Ë|Ë|Ë|Ë|Ë|Ë|Ë|Ë|ˇ˖ˤ˴˺ËÂËÑËÖËÞËæËèËðËÿËÌ ÌÌÌ4Ì<ÌEÌMÌUÌZÌ_ÌqÌ¥Ì­Ì¼ÌÆÌàÌèÌíÌíÌíÌöÌÿÌÍ ÍÍ,Í.Í@ÍRÍRÍRÍ]ÍbÍ̈́̈́Í�Í’Í’Í’Í’Í’Í’Í’Í’Í’Í’Í’Í’Í’Í’Í’Í’Í�Í©ÍÁÍÔÍÜÍëÍðÍøÍÿÍ ÎÎÎ&Î-Î2Î2Î:ÎBÎ`ÎhÎkÎmÎ}···ΉΞίβενÎÂÎÂÎËÎÐÎØÎßÎìÎÏÏÏ%ÏBÏ[ÏpυόόϑϑϑϑϑϑϑϙϤϰϿÏÄÏÄÏÌÏÔÏáÏæÏæÏæÏêÏïÏïÏÿÏÐÐÐÐÐÐ'Ð,ÐCÐRÐZÐkÐsЖМУХЫвввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввддÐÏÐÙÐçÐçÐìÐ÷ÐþÐÑ'Ñ'Ñ'Ñ+Ñ6ÑTÑbÑZÓ@ôz^Ó^ÓtÓӆӑӜӳӾÓÅÓÕÓèÓòÓòÓÔ(Ô/Ô8Ô?ÔBÔNÔWÔ^ÔaÔfÔqÔ{Ô�Ô“Ô©Ô°Ô¸ÔÎÔÕÔÕÔÕÔÚÔßÔéÔìÔñÔûÔþÔÕÕ Õ0Õ3Õ8ÕHÕKÕOÕXÕ`ÕrÕzÕzÕzÕ…Õ�Õ¡Õ§Õ½ÕÄÕÌÕÓÕèÕùÕùÕÖÖÖÖ +ÖÖÖÖ&Ö)ÖAÖFÖKÖ[Ö^ÖcÖsÖvÖzÖƒÖ‹Ö�Ö¥Ö¥Ö¥Ö³Ö»Ö»Ö¾ÖÉÖçÖõÖ>×A|`»NÚNÚfÚvÚ}Ú„Ú�Ú¢Ú¥Ú­Ú´Ú·ÚÇÚÕÚàÚëÚîÚùÚÛÛ%Û0Û;ÛFÛ]ÛiÛ†ÛŽÛ—ÛŸÛ¬ÛÊÛÍÛÓÛØÛçÛíÛõÛÜ +ÜÜÜÜ,Ü;ÜCÜRÜZÜ}܃܉܋ܑܗܗܗܼÜÁÜÞÜáÜáÜèÜõÜùÜÝÝ*Ý:ÝMÝiÝ~݆Ý�ݯÝÃÝÃÝ7ÞB Æ.Æ.Ð.Ø.Ý.CÉÆ&W&WCWNWaWNW{W‰W‰W™W¢W©W­W¶W¶W¾WÂWâWðWüWX X1X1XDXOXUX\XaXaXtXXŠX‘X›X¨X¨XºX¿X¿XÏXÔXÔXÔXçXìXÿXYY#Y7Y7YcLcQcZc]cbcpczc}c‡cO¨!Gpapa€a‰aœa©aµaÁaÍaÙaðaðaÿa +bbb#b:bQbVbhbwbƒb•b•bžbÁbÁbÃbÖbØbòbþbccPhî„nn)n4nDn�n”n¨n¯n·n¿nÈnÐnØnÚnânênñnøno/o8o8omo—o oÂoÜoùo#p/pQpSpZpapap„p pÇpãp +q&qMqiq�q¬qÓqïqrr%r2r7r7rFrSrXrXr_rjr|r•r®rÇrÉrÉrÉrÐrÐrÝrârârârórss)seslslslsts‘sŸs½sÆsÏsÜsêst t t t3tAt]t{t{t{t†t‰t¸tºtÑt×tètñtótuuuuuuBuDuKu\ueuguuuwu…u‡u•u•uµuµuµuµuÕu v/v7v;vCvGvUvcvevmvqvuv}v‹v™v™v³v¾vÔvèvw!w,w6w=wVwbwiw‚w‚w”w™w›w¡w²wÃwÒwÙwêwówõwxxxx#x#x#xGxGxfxmxtxwxƒx†x”x˜x¦xªx¸x¼x¼xÕxÜxáxïxy y$yDyWyfyhywyyyˆy’y’y y©y¿yÆyëyðyzIzNz\z^zlzuz�z‘z“zšz«z´z¶zÄzÆzÔzÖzäzäz{{{{{#{#{#{.{J{o{ˆ{�{�{�{¯{´{´{´{Ô{Ù{Ù{Ù{ø{ý{ý{||||||||| |>|T|y|•|©|®|®|É|Ö|Ø|ç|ð| +} } }} }2}4}4}<}7}w}w}w}–}–}–}·}¼}¼}¼}Þ}ã}ã}ã}~~~~'~,~,~G~U~W~f~o~‰~‹~‹~�~‹~±~³~³~»~¶~ö~ö~ö~++Um…�¦ºÓë€!€#€4€Q€h€o€g„Q| (îåîå ææ0æJæbæmæ‰æ‰æ‰æ–æ±æ³æ³æ³æÀæÛæÝæÝæëæøæçç#ç5çRæd&Ú&Ú@ÚIÚiÚiÚoÚwÚÚ‡Ú•Ú›Ú¨Ú¨ÚÂÚÇÚÇÚÍÚÒÚÒÚØÚÝÚÝÚãÚèÚèÚÛÛÛÛÛ'ÛGÛGÛGÛNÛPÛPÛWÛYÛYÛ_Û_ÛfÛhÛhÛnÛnÛuÛwÛwÛ}Û}ۄۄیےۘ۠۠۠۠۬۴ۼÛÄÛÌÛÚÛèÛîÛÜÜ Ü"Ü"Ü,Ü5Ü;Ü;Ü?ÜGÜQÜUÜcÜkÜqÜy܃ܑܙÜ�ܣܮܴÜÅÜÑÜ×ÜßÜãÜíÜûÜÝÝ ÝÝ Ý-Ý5Ý9Ý?ÝJÝOÝh݂݇݊Ý0ÞSL”£8…8…Q…S…Z…p…€…†…ž…¶…¹…Ë…†TÔ*[>î>îRîgîvîzîˆî‘î î î¯îºîÅîÐî×îçîþîïï ï$ï7ï7ïMïOïYï}ïˆïŠï£ï§ïµïºïºïÁïÐïØïëïUðU$îUîUVV#V+VVPÍÝ~?~?Ÿ?Œ?Á?®?Ð?ß?ç?ò?ô?ÿ? +@ +@,@2@W,¾Ô¾ÔÇÔÍÔÕÔÞÔçÔìÔX …ÆŠÆŠçŠüŠ‹‹2‹<‹K‹e‹r‹r‹|‹|‹ƒ‹–‹”‹¤‹¤‹¯‹¹‹¿‹Å‹È‹Ö‹Ý‹õ‹ü‹ÿ‹ŒŒ!Œ,ŒFŒaŒuŒ{Œ�ŒˆŒ¦ŒŽŒ¯ŒµŒ»ŒÃŒãŒËŒìŒòŒøŒ���%� �.�4�:�B�b�J�k�q�w���•�•�•�•� �ª�³�Ó�ß�í�ò�ŽŽŽŽ$Ž,Ž4Ž=ŽIŽ]ŽjŽyŽˆŽ¢Ž§Ž§Ž²ŽºŽÇŽÒŽߎëŽ��)�4�9�9�D�Z�o�{�‰�Ž�œ�°�°�»�°�Ó�Ø�Ø�ç�ì�ì�û������'�,�,�?�N�S�S�f�u�z�ˆ�z�œ�¡�¯�¡�Ã�È�Ö�È�ê�ï�ý�ï�‘‘‘3‘8‘Z‘_‘m‘_‘�‘†‘†‘£‘¨‘ʑϑݑϑñ‘ö‘ö‘’’:’?’M’?’a’f’f’ƒ’ˆ’ª’¯’½’¯’Ñ’Ö’Ö’ñ’ö’ö’“““1“6“6“Q“V“V“q“v“v“‘“–“–“±“¶“¶“ѓ֓֓ç“ì“ì“ý“””””.”3”3”?”X”]”ƒ”Š”””™”ª”´”ɔԔٔê”õ”ý”••• +•••%•%•8•=•=•=•A•W•`•`•†•‹•‹•“•§•°•Ê•וâ•í•ø• +–– –$–$–$–5–R–]–g–r–w–‚–Š–�–�–š–¢–«–¶–Æ–Þ–ö– +————-—7—B—c—o—}—‚—�—”—™—™—©—´—¼—Á—Ì—Ù—å—ÿ—˜#˜.˜3˜>˜F˜K˜V˜c˜o˜‰˜›˜­˜­˜­˜­˜²˜·˜·˜ØÔ˜Ô˜ù˜û˜™™"™6™@™B™N™V™s™„™Ž™™™¼™Í™Þ™ï™ú™š"š'š'š2š7š7š?šJšOšOšWšbšgšgšoš�šyšwš¨š­š­šµšÖš¿š½šîšóš›óš ›$›$›1›6›6›>›C›C›U›g›l›l›€›l›˜›�›�›¥›ª›ª›½›››Õ›Ú›Ú›ô›œ œ œ#œ3œ8œ8œRœbœgœgœ�œ‘œ–œ­œ–œÅœÊœÊœÕœÚœ��òœÚœ.�3�o�]�K�3�‡�Œ�Œ�›�«�°�°�¿�Ï�Ô�Ô�ã�ñ�ö�ž žö�6ž;žcžQž;ž{ž€ž¨ž–ž€žÀžÅžÅžâžÌž ŸŸ!Ÿ!Ÿ<Ÿ(ŸfŸvŸ{Ÿ{Ÿ‡ŸŒŸŒŸ˜Ÿ�Ÿ�Ÿ°ŸÀŸÅŸÅŸØŸèŸíŸíŸ    ( 8 = = E J J R W W _ d d l q q „ ‰ ‰ œ ¡ ï Ý Ë ¹ ¡ ü ¡O¡=¡+¡¡¡\¡a¡a¡p¡‹¡�¡�¡¡¡¼¡Á¡Á¡Ò¡à¡å¡å¡í¡ò¡ò¡ú¡ÿ¡ÿ¡¢ ¢ ¢D¢2¢ ¢¢c¢~¢ƒ¢ƒ¢»¢©¢—¢Š¢Ú¢õ¢ú¢/£££ú¢G£L£�£o£d£L£™£ž£¸£¢£ž£УÕ£ò£Ü£Õ£ +¤¤¤¤4¤D¤U¤U¤z¤|¤’¤˜¤˜¤µ¤¤ó¤$¥¥G¥O¥O¥O¥[¥`¥`¥s¥~¥ˆ¥�¥˜¥¢¥§¥§¥Á¥Æ¥Æ¥Î¥Ó¥ç¥Ó¥ö¥¦¦¦¦)¦4¦9¦9¦D¦U¦Z¦Z¦e¦p¦u¦u¦†¦‹¦‹¦œ¦¡¦¡¦»¦Ʀ˦Ö¦˦å¦ê¦þ¦ê¦ §§§§,§1§E§1§T§Y§Y§m§Y§|§|§|§�§�§�§ §¥§¥§±§¥§ħɧɧÕ§ɧè§í§í§ù§í§ ¨¨%¨¨4¨@¨K¨V¨[¨o¨[¨~¨Ѝ•¨ ¨¥¨¹¨¥¨ШȨÙ¨Þ¨Þ¨æ¨ë¨ë¨ô¨ù¨ù¨©©©©©© ©%©%©0©5©5©@©E©E©P©U©U©`©e©e©p©u©u©€©…©™©…©¨©³©¾©É©ΩΩØ©Ý©Ý©ç©ì©ì©ö©û©û©ª +ª +ªªªª$ª)ª)ª6ª;ª;ª;ª;ª;ªCªHªHªPªUªUª]ªbªbªjªoªoªwª|ª�ª|ªŸª°ªµªµª¼ªǪçªìª« «&««5«@«K«P«P«W«b«‚«‡«�«¨«Á«­«ЫÛ«æ«ë«ë«ò«ý«¬"¬8¬C¬\¬H¬k¬v¬�¬†¬†¬¡¬�¬°¬ЬÕ¬ë¬ö¬­û¬2­­A­L­Q­Q­l­X­{­›­ ­¶­Á­Ú­Æ­ý­é­ ®®®®7®#®F®f®k®�®Œ®¥®‘®È®´®×®â®ç®ç®ö®û®û® +¯¯¯¯¯¯¯¯$¯&¯&¯0¯7¯Z¯\¯\¯f¯f¯f¯f¯f¯h¯h¯¯†¯‘¯‘¯œ¯¢¯©¯´¯¿¯ʯį寰÷¯°°(°"°N°C°f°f°f°o°v°‰°ްœ°¯°¯°˰Ö°ê°±±±(±8±M±_±o±o±—±ž±­±¿±¿±ñȱϱß±þ±þ±²² ²%²%²)²4²@²N²{²„²•²£²Ö²â²ç²ý²³³+³0³>³Z³…³®³±³Á³óódzæ³ñ³ñ³ô³´-´M´M´M´P´y¶Y, îÔîÔüÔÕÕÕÕÕZ`FZÖ‚Ö‚ì‚ú‚ƒƒƒ-ƒ1ƒ7ƒMƒjƒlƒlƒ�ƒ‹ƒlƒ¼ƒƃ[8 +~U~UŸUŒU®U¹UÄUÏUÚUæUìU\\’¸ž¸žÆžÈžÓžÛžæžñžüžþžŸŸ&Ÿ2Ÿ;Ÿ>ŸmŸ]è®dÞëÞë ìì ìKìKìVìcì�ì‰ì¶ì»ìäìí í&í*íMísíxí¡í¾íäíûíîîî&î+î<îDîcîiîmî†îŽî­î²îÃîËîêîïî÷îýîïïï ï$ï=ïBïNïSï^ïdïvïï“ïžïÃïôïð"ð"ð"ð8ðGðTðtðtð‹ð�ð�ð§ð©ð©ð½ð¿ð¿ðÖðØðØðïðñðñðñññññ-ñ-ñañuñuñˆñ�ñ�ñ�ñ�ñ¼ñÒñîñîñîñûñòòòò!ò8ò:ò:òGò^ò^òsòuòŽòªòªòªò®ò°ò°ò°òµò·ò·ò¼ò¼òÆòËòËòçòçòçòïòñòñòñòùòûòûòóóó&ó(óCó^ó^ó^ó^ó^óqóˆó�ó�óÜó^\ +ÎJÎJàJöJK K6KIKTKiKVKxK€K‹K¡K—K¹K¿K_øA66$6'6.656<6@6B6I6P6T6X6k6“6®6›6Æ6Ë6ï6ï6û677L7Q7~7†7‹7”7 7¨7¯7Ñ7×7ù7û78)8K8Q8X8X8^8a8e8v8™8«8`$nÞnÞ}Þ˜Þ˜ÞžÞa|\wéé(éTéTéséƒé…é…é…é…éŒé”é¯éÈéÊéÊéÊéÒéíéïéïéùéùéêb”"33@3J3V3[3k3q3†3š3ª3¸3Æ3Ý3å3ï3þ3444444 4/494B4J4M4_4côÍî2î23$3'30363M3d3{3†3¼3Ü3á3æ3ñ3 44*4@4V4m4r4„4‰4Œ4¬4Ì4Ô4Ü4á45!5)51535S5[5`5e5p5p5{5{5‡5‡5™5Ù5ò5ò56dd¤¹ðŠðŠ‹‹‹‹!‹/‹B‹N‹h‹u‹u‹x‹†‹–‹°‹´‹¼‹e¸ù—*—*­*²*Æ*õ*+++"+"+3+:+K+R+[+r+r+ˆ+ˆ+ž+ž+´+´+Ê+Ê+à+à+ö+ö+ , ,",",9,9,P,P,g,g,~,~,•,•,¬,¬,Ã,Ã,Ú,Ú,ò,ú,--!-2-5-7-N-U-a.f¬÷ÖÖðöý --DKNP\mmpxŽ‘Ÿ¢¥¬°¸ÆØëî=g(ÉÏ}}-}}<}N}V}hCöNöNO.O3O;OCOKOXO^OgOmOrOzO–OœOžO O­O­OºO¯OËOÑOÓOÕOâOâOâOçOðOøOP P PPP#P0P6PAPHPXPcPrP“PšP¥P®P¿PÃPËPËPßPïP÷PúP`Qi8-7§/§/»/¿/Ä/Ï/Ú/Ý/á/é/jˆ[ùƃƃàƒûƒ„„„„4„9„D„b„L„q„„„–„Ÿ„§„±„Ï„á„ê„ò„ü„……&…8…B…J…b…L…‡…q…–…¨…²…º…º…Ã…Ë…á…ú… †† † †&†+†I†K†P†[†q†q†q†u†�†¢†¬†¶†¿†à†ê†ô†ö†ö†‡!‡/‡2‡K‡O‡j‡n‡�‡‘‡¬‡°‡°‡°‡¶‡ć·ç‡í‡ø‡ˆˆˆˆ-ˆ8ˆFˆPˆiˆlˆtˆ€ˆ‚ˆŠˆ�ˆ¦ˆ¨ˆ´ˆ¶ˆ¾ˆĈ݈õˆ‰‰‰0‰@‰Y‰j‰j‰u‰€‰˜‰¤‰¹‰¾‰Ó‰ã‰ü‰ Š ŠŠŠ&Š4Š;ŠMŠkeã6Þ6ÞPÞYÞyÞyÞÞ‡Þ�Þ—Þ¥Þ«Þ¸Þ¸ÞÆÞËÞËÞÑÞÖÞÖÞÜÞáÞáÞçÞìÞìÞßßß"ß"ß+ßKßKßKßRßTßTß[ß]ß]ßcßcßjßlßlßrßrßyß{ß{ß�ß�߈߈ß�ߖߜߤߤߤߤ߰߸ßÀßÈßÐßÞßìßòß +àà#à&à&à0à9à?à?àCàKàUàcàkàoàuà}à‡à•à�à¡à§à²à¸àÉàÕàÛàãàçàñàÿàá ááá#á1á9á=áCáNáSálá†á‹áŽá4âl`�!�!˜!Ÿ!³!Ç!Ì!ê!ï! ""-"/"F"Z"c"e"y"‰"º"m�2Ò“““/“@“Q“b“s“†“Ž“œ“º“œ˓ؓí“í“”””,”G”G”S”[”c”i”~”†”Š”’” ”¦”«”«”À”Քܔä”ì”ò”•(•4•8•B•[•a•c•p•r•„•„•‹•“•¥•¥•´••Օٕã•ç•ó•÷•–––––-–@–F–J–T–X–g–k–z–~–‘–•–•–•–•–¬–º–Ç–Ï–æ–ö–——%—2—A—I—V—q—�—‘—–—–—–—–—£—²—º—À—Õ—ä—ù— +˜˜ ˜ ˜ ˜2˜8˜D˜J˜W˜r˜‚˜Ž˜”˜¡˜³˜Á˜ã˜hšnÔ¼í l l2lClNlYlol�l™lžl­l´lÁlÈlÖlÝlßlâlçlélïl m#m9mQmVmemlmym�m®mµm·mºm¿mâmn no$hm?&?&M&a&h&‚&pxKe–M–M¾MªMÍMèMÔM÷MüMN NNN(N0N8NCNNNdNYN|N„NqFƒþpþpq!q9qQq[qfqfqkqvq‚q�q›q«q»qÂqÈqÝqòqòqrrr+r:rGrXrirwr…rŒr’r§r¼r¼rÐrÝrîrþrssss,s=sJsZs¼sr8«µ¦N¦NªN¯N´NÅNÓNÜNáNæNèNs88Bï/ï/00 00!0$0(000t0†ŽîLîLMM$M*M-M5MuÜtFFhs~‡—©¯µ»ÑÀåòõý=PTZqw‡�™§¬ºÓáêúü/=Ic‚‰“¢¨®´ºÐñ(3BP_l|Š¡­²ÀÜî $*ALY``n}�œ®®¶Ùäv`1EÖ�Ö�ì�þ�‚ ‚‚7‚;‚A‚W‚t‚v‚v‚§‚•‚v‚Æ‚ЂwD‹ØŽâŽâ â¨â³â¹â¿âÃâÇâóâóâúâýâããã?ãCãHãHãOãRãWãcãtãxã‰ã›ãŸã¡ã³ã·ãÓã×ãÜãÜãðãóãä ää8äCäGäLä‚ä›ä¦äªä»äÆäÊäÌä×äÛäÛäïäóäõäõäåååååå åBåxˆÙ÷FåFåZåpåpåpåråråyå{å{å‚å„å„å‘å“å“å å§å©å©å¶å½å¿å¿å×åÜåÜåìåy°0XÞVÞVöVþV WmWSWHW.WWsW…WuW¥W¥W¼W°WîWóWÿWXX#X)X0XTXCX7XkXmX‰X‰X�XºXºXºXÆXzÄL¹ÞùÞùüùúú8ú8ú:úGúRúXúiúxú‡ú”ú”úšúŸú¤úºúÍúØúÜúîúûúûû +û%û3û3û3û>ûYûDûaûtûvû’û~ûšû¨û¨ûªûÆûÆûÍûÓûÜûãûæûüüü$ü*ü3ü3ü3üFüKüKüSüSü^üsü|ü|ü|ü|ü˜ü¯üµüºüºüÏüÕüÚüÚüæüý#ý(ý-ý-ý9ýVýeýtý|ý�ý‡ýŒýŒý“ýšý½ýÚýÜýùýþþþþ!þ*þ*þHþ^þiþnþ{þ†þ�þ—þ§þ¾þ¾þÎþÎþàþæþÿÿÿÿ!ÿ&ÿ&ÿ3ÿ>ÿDÿMÿMÿ`ÿmÿÿŠÿ˜ÿ¡ÿ¦ÿÐÿÙÿäÿéÿðÿøÿ  %,9@Rgnt}}† §¬ºÊØØÞåîî'/7C`gtv}‘   ÊÊÊ××ì÷ !/:IPPi|~�¢¤²ÇÇÍÖÖãéûû (/:?GNY^su�¤¤¤¦­³ÄÒääêñúÿ#,,2;;ZZgjs|„�¡§²²¿ÂËÔÜçùÿ + +#,.Pcx~‰›¡©©©©´- {”�¾×2×2ë2ï2ø2û23 3 3 3K3O3T3W3`3p3w3z3‚3…3’3š3¢3ª3±3Á3Á3Í3|`2ÆKÆKîKÚKýK"LL1L6L=LELLLWL_LjL€LuL˜L L}À- e e¾eÎeØeØeâeâeìeþe ffff&f&f4fHfHflfyfyf‰f–f–f¹fÆfÆfÜfÿfg8gAgNgNgqg{g{g®gágçgçgçgùg~¸ºäÀ‹À‹Ø‹Ú‹æ‹ê‹÷‹ú‹ŒŒŒŒŒ&Œ1ŒEŒQŒSŒSŒ\Œ^Œ^ŒgŒiŒiŒrŒtŒtŒ}Œ}Œ†ŒŒŒ�Œ™ŒªŒ°Œ¼Œ¼Œ$�œö##4#E#]#d#€#u#˜#¸#¤#Ç#Ø#Ý#þ#ê#$3$:$V$K$n$Ž$z$�$®$Ä$°$Ü$é$é$%% %€œX{^1^1j1z1…1¯1ß1ð1222!252<2J2b2q2~2�2š2�2¢2¹2É2Ù2Ý2ä23�x¬¨®¨®¾®Å®Ì®ë®ú® ¯¯'¯6¯@¯@¯E¯L¯_¯n¯s¯Ž¯¨¯¨¯¾¯Ð¯Ô¯â¯é¯î¯î¯õ¯°°° °2°2°2°D°O°a°l°y°~°Ž°“°£°¯°´°Á°Æ°Ö°Û°ë°í°ý°ÿ°±±"±+±+±-±=±D±T±T±o±�±“±¥±µ±µ±µ±¸±Ë±‚\åø(�(�C�J�O�]�r�y�ƒ�‘�”�–� �²�²�¹�ï�ƒ0ÎÖ6xl@>Œ”„`0Ö€Ö€ì€þ€���7�;�A�W�t�v�v�§�•�v�Æ�Ð�…L4CÖ/Ö/ä/ö/ü/000%070=0@0|0†(–œ§2§2µ2Ä2È2Ë2Ñ2‡\DW~0~0Œ0ž0¤0¬0¾0Ä0Í0ß0å0î011 1W1ˆ, –Ô–Ô¤Ô«Ô³Ô¸Ô¾Ô‰„   $ 6 @@ -387,42 +409,52 @@ MMM&M6M>MAM D S X -w -w -| -› -  -§ -¶ -¸ -× -× -ö - ø - & ( G G G G V o h ‡ ‘ ‹\?ŽaŽa«a³aºaßaíaïaýa -bbb2bAbLbPb[bgbrb~b•b¬b¿bÖbàbîbccc"c"c(c9c?cOcOcgcgcŒcŒc‘c‘c—c£c°c¼cÑcèc÷cdd d7dOdpdpdyd~d~d~d~dŽd—dŸd¤d²dÀdÐdÕdÕdãdãdèdèdòdýdee!e1eHFÓFÓOÓOÓ]ÓaÓhÓkÓpÓ‘D*N+N+h+{+…+Œ+˜+°+¹+½+Ï+Õ+ô+’Ðy©®ø®øØøÛøâøèøîøðøöøüøüøùù ù-ù:ùMù\ùpùvùxùù…ù�ù�ù ù¢ù©ù¯ù¹ù¹ù¹ùÐùâùéùøùúù úúú-ú“0+3ö+ö+ÿ+%,6,<,<,D,”„\y6í6íHí]ígípíríyí‰í”í–í í í¦í·íºíºíÛíæíèíîî îî+î~î•  -ž*ž*§*Å*Ê*–h÷ î^î^___(_3_9_J_P_a_g_s_Š_Š_œ_­_º_À_Ñ_×_%`—�¶ÖîOîOP!P5P=PKPOPXPXP]PjP€PªP¯PÓPÛPàPçPýPQQ+QAQeQQ‘Q˜ˆù&ý&ý>ýPýWý^ý}ý‚ý¡ý¦ýÀý­ýßýÌýëýþíý þ þ+þ+þ+þ=þDþcþcþkþ™ y}PˆPˆYˆeˆjˆš(Aãã@ãHãNãVãXãXãiãiãiãqãyã‹ãšã‹ã¯ã±ã±ãËãÍãÍãØãÝã÷ãüãüãüãää ä"ä/ä1ä>äFäNäUädäqäsä„ä‘ä‘ä‘äšä¬ä¿äÅäÍäÏäÜäÜäñäñäñäüäåå#å#å#å1å7å<åDåOåaålåqåqåxå|åŠåŽå—åžå¼åÉåÐåÙåõåúåúåúåúåæ æææ;æ;æ;æBæPæ_æræ…æ‡æ‡æ‡æšæšæ¡æ¨æ­æ³æÅæÏæêæççç-ç2çVç]çiç‡çšç¥ç¬ç°ç°ç°ç°ç»çÅçÓçõçèè'è'è5èSèƒè–è§è¾èÑèÖèÖèÖèÞèéèûèé é é ééJéPéPéPé[éeéqé|é~é~é~éƒé�é�éÙé›H%—/—/¥/¬/·/Å/Ð/Ø/Ø/ð/ú/00œ0 ¦T¦TÍTºTÙTïTèTUU�T<M^(^(x(„(–(¬(Í(º(å(ö())?),)W)o)o)y)ž,×–Q–QÈQÜQäQïQöQýQRRR R)R0RKRMRTRoRvRR�R–R„R¢R¢R¢R°RºRÇRçRéRS S S'SESJSQSeSlS‡S‰S�S«S¿SÚSÝSåSòSTT.T6T6TRTRTmTmT“T¥TŸTXi>>Tbhn�›­±·ÅÈÒ Lgnþnþ�þ’þªþÅþ±þåþÑþñþÿóþ'ÿÿ3ÿ?ÿDÿPÿ`ÿgÿtÿÿ‹ÿ–ÿžÿ£ÿ¯ÿ´ÿÈÿÏÿÓÿÞÿãÿîÿ!5<@@E^c|‘£¨³»»»½Öëö    -%Ee¡àZŽøbøbc c%c2c@cIcdcrc”c�c­cÇcÒcâcäcæcðcücd dd+d3dKdOdOdOdOdTdrdŒdŒd“d–dždªd³d e¢d~“.,.,L,o,€,‡, ,˜,¸,Ø,Ä,ä,õ, -÷,#-0-0-H-H-R-£@I•– – ® À Ë ó Þ Ò ÿ  J 5 ) V p p � ¤ ‘ Ñ ¼ ° Ý ÷ ÷ ÷  # # P i ] – › ® ¢ Ð Á Ü ú 8%SD_}’ªžÌ½Øòòò9Feem¤(.à.à<à_àeàjàjàpà¥(!'¶Ò¶Ò¿ÒÍÒÓÒÕÒÚÒ¦D]j999%9.9:9O9W9]9c9e9e9t9§„½Ú(¦(¦[¦g¦k¦s¦{¦¦Š¦Ž¦’¦–¦ž¦£¦§¦¸¦É¦Ë¦Ï¦à¦ñ¦þ¦§§"§"§"§4§¨€8˜8˜Q˜X˜_˜f˜l˜|˜‡˜‘˜œ˜³˜¶˜¸˜Ó˜Ý˜ç˜î˜ù˜ ™™™)™)™;™©˜b__4_T_\_g_v__ƒ_Ž_®_³_Í_ì_ò_÷_ -`7`@`V`\`d`g`l``¤`©`¿`Å`Í`Ð`ð`õ`a1a7a?a?aDaJaMaXaxa}a—a¶a¼aÁaáaêaïabbb;bDbFbebmb�b’b¬bËbÑbÖbÖbÖbÖbãbôbÿbc"c5cBcZcncc‰c‹cŸc°cµcÀcÍcícícícÿcª°)ˆžˆž«ž¸ž½žÁžÊž×žãžîžùžŸ ŸŸŸ#Ÿ+ŸEŸkŸeŸ{Ÿ„Ÿ¹Ÿ¥ŸÉŸÉŸáŸìŸ  3 l l l l Í «0ùAÀŒÀŒåŒñŒüŒ� ���&�4�>�P�Z�`�j�p�z�����“�œ�Ç�Ö�Ù�Û�å�÷�ŽŽŽ2Ž2Ž5Ž?ŽTŽYŽiŽtŽyŽ�Ž ŽªŽ¿ŽÍŽÖŽÞŽìŽýŽ ��+�+�8�8�@�N�•�¬l£:f@f@@—@§@Ç@Ù@ñ@ A A6A>ABAEAIANAXA[AbAhAoAuAyA~AˆA™A A§A©A­A¶AÀAÃAÎAÚAÝAîAùAÿABB(B9BBBKBSB^BiBuB†B—B£B±B³BºBÁBÆBÊB×BÞBCCC#C,CECVC_ChCpCyCCƒCˆCŒC™C C®C¸CÍC×CàCùC -DDD$D-D3D7DF2F_FmFuF€F‚F�F˜F˜F�FÊFÏFüFGGG:G'GFGQGfGSG…GrG‘G–G‘G¬GºGÂGÍGÏGÚGåGåGêGHH"H"H/H4HSHUHtHtHtH|H´\ãöþ]þ]^&^,^7^E^Q^h^h^z^€^‹^›^¦^´^Á^í^µ(5;ff„—ž¥¬°²¹ÀÄÄÌåïï   - 1 6 R z ~ ‡ ‹ � ¡ ¾ ¾ Ì à å þ      F [ b u y ~ š  Ê Ó × Ü í ÿ !#!%!>!Q!U!U!U!q!™!�!¦!ª!¯!À!Ý!Ý!ë!ÿ!""."2"D"D"D"I"X"y"˜"£"©"¿"Ð"Õ"ê"#.#2#;#?#D#U#n#n#|#�#’#«#¼#À#À#Ç#Ú#Þ#ð#õ#$9$A$J$N$S$d$z$Š$ž$£$¼$Ï$Ó$å$å$å$å$ê$ %%9%D%J%`%q%q%q%x%‹%¤%¤%¤%³%³%Æ%Ý%è%ù%þ%&&&&&#&.&C&E&P&e&q&s&~&Š&š&¡&¨&²&º&¾&Â&Ä&É&Ñ&Õ&ç&é&î&ö&ú&ü&ü&''('H'b'n'z'�'�'”'˜'˜'˜'Ÿ'¤'¾'Ê'Ö'Ý'Ý'ô'ö'û'(!(-(4(4(A(K(K(](¶˜ ºœ H H=HLHLHLHfHfHuHuH{H}H}HƒH…H…H‹H�H�H”H˜H�H�H�H�H�H�H¥HºHºHÏHÚHäHñHII#I%I@IEI`IeIkIkI€IƒIªI·IÏIïIïIøIýIJ J!J0J5JSHSVSkSnSpSzSzS|S„S‰SŽS“S“S™S¡S¦S¦S«S¶S»SÀSËSÐSöSøSýSTT TTTTT T%TATKT_TsTyT�T�T�T•T›T¥T¯T½TÒTÕT×TáTðTõTõTõTýTU U UUUUU#U#U(U3U8U=UBUQUQUbUhUhUvU|U‚UŒU–U¤U¹U¼U¾UÈU×UÜUÜUÜUäUéUòU÷U÷UýUV -V -VVV V$V)V8V8VIVOVOV]VcViVsV}V‹V V£V¥V¯V¾VÃVÃVÃVËVÐVÙVÞVÞVäVìVñVñVþVWWWWW(W2W@WUWXWZWdWsWxWxWxW€W…WŽW“W“W™W¡W¦W¦W³W¹W¹WÇWÍWÓWÝWçWõW -X XXX(X-X-X-X5X:XCXHXHXRXZX_X_X_XeXoXuX‰XŽXŽX”XžX¤X©X©X¯X½XÆXÔXÙXÙXßXíXùX -YYY&Y0Y>Y>YCYCYNYNYNYRYWYWY]YaYfYnYtYvYYŽY–Y›Y¡Y¡Y©Y¯Y½YÈYÍYÓYÛYàYàYàYàYàYàYàYàYàYàYùYÿYZZZZ Z)Z4Z=ZEZJZJZJZPZXZ]Z]ZaZfZfZoZ}Z‰Z–ZœZœZ¥Z¹Z¹Z¿ZÈZÜZÜZåZçZíZöZ -[ -[[[[[[[%[*[*[G[U[a[j[p[z[‚[‡[‡[‡[›[¤[ª[¼[Æ[Æ[Î[Î[Ö[Ø[Ø[ñ[û[\\\\ \\\\\\\\#\'\ _·ÐàfufuˆužuªuÈuäuñuvv&v >>>>>>>#>#>2>;>C>Y>Y>Y>^>^>s>>Š>�>�>’>—>—>³>¿>Ì>Î>Î>Ò>Ô>Ô>ð>ü>? -? -? ??????!?!?*?0?5?Q?Q?Q?Q?Q?Q?Q?Q?Q?Q?Q?Q?S?d?v?…?”?”?˜?˜? ?¼?À?Å?`@º,æÑæÑôÑûÑÒÒÒ»˜?afWfW|W‚W‰W¹W¥WÅWÊWÑWÑWñWXóWXCX/XOXTX[X[X[XaXdXhXpXˆX“X¦XžX¾XÈX¼PQa§%§%µ%Ã%Ê%Ú%ë%ð% &&&!&/&;&M&‰&½D%vàvàŠà˜àžàÁàÇàÍàòàøàþàáá á¾ô#œ¾0¾0Æ0Õ0Ù0æ0ó01161C1U1w1—1¥1Á1Ó1ë12 2.2L2[2v2�2œ2µ2µ2Ð2ù23.3@3O3^3^3i3|3�3 3°3½3È3×3÷3÷34444!4(4G4P4]4a4i4t4Œ4¤4­4½4Å4Ê4î4þ455-525:5`5b5m5 5º5º5Ò5á5é5ø56 66:6B6J6U6W6g66—6¯6Ç6Ù6ð6ù677"7&7*7¿ €…€…‰…¨…­…À\…XžÈžÈ¸È¿ÈÌÈ×ÈÜÈâÈôÈúÈÉÉ6ÉJÉUÉ[É}É}É�ɢɤɧɳɻÉÃÉËÉÙÉßÉåÉñÉñÉóÉÊ ÊÊÊ'Ê'ÊEÊEÊXÊeÊjÊjÊ�ʊʙʯʺÊÈÊÓÊãÊðÊËËËË+Ë-Ë-Ë5Ë:Ë:ËBËGËGËOËTËTË\ËaËaËgËlËlËsËxËxË˄˄Ë�Ë”Ë”ËŸË¤Ë¤Ë¯Ë´Ë´Ë¿Ë¿ËØËßËåËèËóËöË -ÌÌ&Ì-Ì0ÌBÌDÌJÌ^ÌkÌzÌzÌzÌz̜̱̄ÌÁÌÒÌØÌéÌïÌôÌþÌÍ Í/Í5ÍFÍQÍ[ÍjÍyÍÍŠÍ�ͥͫͼÍÇÍÍÍÝÍÝÍíÍÎ ÎÎ$Î+Î1ÎBÎMÎRÎo΄Β΢ήÎÀÎËÎÚÎÜÎîÎöÎûÎÏÏÏÏ$Ï.Ï4Ï?ÏEÏGÏTÏaÏkτϒϒϘϟÏßÑÁ0#«h¨h¨‡¨±¨¹¨¹¨Ç¨Ú¨ó¨ö¨©©©©©©$©&©&©.©0©0©8©8©A©G©L©L©U©a©e©j©p©u©u©}©†©Œ©‘©‘©–©¢©º©Ù©Ü©ñ©ªªªªªªª"ª$ª$ª$ª,ª.ª.ª.ª6ª8ª8ªCªCªIªNªNªNªNªUª`ªrª€ªŽª˜ª˜ª˜ª¨ª¨ª¯ª³ª¹ªÑªßªòªþª'«*«1«C«K«T«_«_«j«p«u«u«u«|«‚«—«Ÿ«¥«Ç«Ó«Ù«Þ«Þ«å«ð«ð«õ«¬ ¬ ¬ ¬ ¬f¬Âd)¤B¤BÆBÐBÓBÓBÝBðBòBÿBC C C(C8C=CCCKCNC`CÃLWf/1/1C1G1L1W1W1a1g1g1k1s1Ä\CVÇ0Ç0Ý0Ý0á0æ0ù0ü011 111 1!1+1Å8(2ÞÒÞÒçÒçÒõÒùÒÓÓÓÆ¨²ØFgFg^gfgqgŠg~g·ghügñgÜgÅgh,hhGhLhXhh„h™h†h¥h«h«h¸hßhiíhi6i6i6iBiÇl¨¿f.f.€.¨.‹.´.Ô.í.æ.// -/)/”@”F”L”b”O”n”n”�”‰”›”µ”®”Á”Í”Ê4;D®Ý®Ý·ÝÃÝâÝçÝéÝéÝîÝË”"8§8§F§X§\§d§l§w§‚§Š§•§ §¥§»§Â§É§Ô§ß§á§ì§÷§ù§¨¨¨$¨,¨,¨0¨g¨Ì€Úö/5/5M5Q5U5]5k5n5q5„5Š5Œ5›5Ÿ5£5«5³5¿5Ô5å5ì5ó5ó566Í`!µvIvI¨I³IèIÙIÀIîIJ"J"J&J0J7C7c7u7‡7¥7¥7¥7²7É7Ë7Ë7Ë7Ø7ï7ñ7ñ7þ788&8.838Y8k8}8›8›8›8¨8¿8Á8Á8Î8å8å8ú8ü89%9C9H9O9]9g9i9i9i9…9�9�9�9±9ë9Ϥ/T†å†å¦åÈåÈåçå÷åüåüå ææ7æ?æFæHæ[æcæcæcæeæeæeæeæƒæƒæƒæƒæ•æ—æ—æ—æ—æªæµæØæÐy¶ΔΔä”ð”û”• •••#•(•3•8•8•8•j•W•v•x•}•ˆ•�•�•�•¿•¬•Ë•ò•ò•––+–>–C–C–V–i–|–�–”–”–§–º–Í–à–â–â–õ–——.—.—.—<—Ñ0Š’~è~èŒè’è–èµèÖèÖèÜèÒ<:E8888)858A8J8S8\8b8g8ÓluŒo'o'}'‡'Ž'¥'¥'ª'¬'¸'Â'Ð'í'ï'ÿ'ÿ'(( (?(ÔàŸÓFFZ„yeŸ¬¸Ë¾øý)€)€.€D€V€l€‚€µ€Ä€�ü€è€�$�P�U�]�|�„�©�ž�Š�¹�Ò�¾�ò�Þ�‚‚?‚?‚?‚?‚G‚ÕLÀϾ/¾/Ü/î/õ/00&090F0?0^0h0ÖÈg•w1w1›1Ÿ1¾1à1ì1ó1þ1 22 2 2$2.2F2Q2a2m2t22�2’2£2¥2§2§2§2¯2¯2¹2¹2Á2É2Ñ2Ù2Ý2ç233× ø„ø„…… …Ø`FZg8g8w8~8€8…8”8š8¯8¯8½8½8É8Ò8Õ8ã8í8ð8ø8Ù<œ§V¡V¡_¡j¡u¡€¡‹¡•¡³¡¾¡ΡÚ 2&`&`>`P`V`b`m`{`‡`ž`©`¹`Ë`Ñ`×`Ý`ð`ö`ÿ`aaa(a0a>aKaˆaÛ, Î*Î*Ü*í*++++Ü4°…°…¾…È…Ñ…Ø…ß…é…é…ï…ÝÄKxŽöŽöºö½öÂöÏöÔöæöèöìöðöóö÷ ÷A÷J÷U÷\÷u÷—÷œ÷µ÷×÷Ü÷ã÷ü÷ø ø9ø[ø[ø[øpøŠø™ø«øÞ„¦o¦oÄoÇoÍoáoéoúop ppp p(p.p>pLpNpmp~p…p‘p¡p¡p¯pÂpÍpÑpâpâpâpçpçpópqqq q4q:qBqTqZq\qkqxq~q„q‰q�q•qœq¨q¯q±q¶q¾qÀqÅqÑqÓqØqàqâqçqïqñqöqþqrr r r rrrr4r:r@rKrPrXrqrwr‚r†rŒr—r°r»rÆrÌrÙrÞrãrãrørss&s1stGt`tktvt|t‰t‰t�t’t’t£t¥t¥t¸tºtºtÍtÏtÏtâtätät÷tùtùt u uuuu-uAu6uNuVu]ucuku~u‰u€u™u™u›u³u¶u¸uÄuÖuæuòu v#v(vPPPPPnPyPŒP“P­PÊPÖPñP Q%Q.Q=QEQRQ[Q`QqQQŸQ¤Q¬QÅQ×QçQíQøQRRMR7R(R]R˜R‚RsR¨R«RËR_Sà<*5dCdC…C‹C”C¦C¿CÇCÝCéCá„ |ææ"%%5@@CJQW]cjp��ƒŒ˜žÄÈËÛãèèïõ ..7<FMT\bdr‰Œ›§´´´´ºÌÒã-4>FMMV]iy„„„˜¬¼¿zâ„9ç6ç677737Y7o7€7‰7—7©7Â7Â7Ô7ê7ò7õ78ãX{ÍÎÎù!3AGX_g}…˜­½ÇÉÙéòøý -!,/6PXr‡”—Ÿ£µÄÏ×î -5<@IK]t‚ˆŒŽ›››�´ººÌä  - … …)…=…B…å,þE��2�8�C�T�Y�_�b�f�f�†�‹�Á�­�Í�æ�Ò�ò� ‘÷�‘‘#‘-‘0‘4‘9‘R‘>‘^‘^‘^‘c‘t‘y‘‘‚‘†‘†‘¦‘«‘á‘͑푒ò‘’(’’4’;’@’F’I’M’O’h’T’t’t’t’t’Œ’µ’Á’æ˜Íï  (##72FAP__nn}}ŒŒ››ª¾¹ÈÈ׿õ^çxÈâÎ\Î\ì\þ\]]']']9]?]J]Z]f]o]u]{]†]”]¡]­]»]Ê]Ê]ú]èd�².é.é2éEéEé_éféréré‰é‰é é é·é·éÎéÎéåéçéçéëé騯øFûFûhûoûzû�û�û¢û­û¸ûÉûÚûñûõûúûþûüü#ü/üAüCü\üküoüoüoü‚ü—ü—ü£ü©ü³ü¾üÌüÓüâüäüúüýý&ýêP6FìCìCDDDD+D9D?DKDSD^DdDgDqDë ®-æ7æ78 888 8&8<8M8^8p8‚8‘8 8±8À8À8Ç8Ë8Ô8á8è8ñ8ø8ü899999(9,9/979E9M9Z9b9j9{9†9‹9‹9˜9ž9­9Ä9Æ9Ñ9Þ9í9ð9ö9ò9 -:!:#:1:3:>:D:D:L:L:^:e:{:{:{:€:€:•:£:®:³:³:¶:»:»:×:å:ò:ô:ô:ø:ú:ú:;$;0;2;2;5;7;7;D;F;F;I;I;I;I;I;R;X;\;h;ˆ;•;£;ª;r<ì(rx ˆ ˆ.ˆ5ˆEˆHˆNˆí(nt ' '('2'B'M'M'k'îTzK~î~îœî¢î¥î®î¸îÐîàîéîïîòîöîøîï ï-ï3ï7ï=ï?ïBïFïFïiïmïsïsïzïœï±ïÄï×ïÝïäïïïùïýïðð ððð(ð.ð3ð8ðEðGðYð[ðbðoðqðƒðƒðƒðƒðƒð§ð²ð¾ðÕðÕðêðöðñ7ñQñVñmñrñ€ñ—ñœñ¢ñ³ñÈñÎñÞñëñò -òò.ò:ò:ò:ò@òCòFò_òeòyòò„ò�ò�ò”ò¡ò®ò®ò´òÂòÙòßòâòåòìòõòüòüòóóóó!ó/óFóLóOóRóYóYójóqó~ó‹ó‹ó’óœó£ó©ó°ó»óÏóÏóéóîóõóýóôôô ô8ô=ôDôfôqôwôô˜ô¬ô¬ôÇôÇôáôïôöôýô õ2õVõXõbõ„õ„õ„õ�õ©õºõÒõÖõ«öï¼ÙFiFi^ibipiiŠi–i¡iÁi£iÍiÒiÒiôi$jjûiFjKjsjxj„j�j¯j‘j»jÀjÓjÚj÷j -k -k-k-k9kð n*n*}*–*œ*ñ8�™†I†IŸI®IÂIÏIÕIÛIÞIÿIò8 ÷.÷./ // /&/,/2/2/8/ó ++(+0+5+ôôÔ�N‚N‚l‚|‚‡‚’‚«‚ׂð‚ƒFƒLƒRƒZƒ\ƒdƒƒ‚ƒ�ƒ™ƒ²ƒÞƒ÷ƒ#„M„S„Y„a„f„n„‰„Œ„—„£„¨„Á„í„…2…\…b…h…p…r…z…•…˜…£…¯…È…ô… †9†c†i†o†w†|†„†Ÿ†¢†­†¹†¹†¾†ĆʆÒ†Ú†å†÷†‡!‡5‡_‡e‡j‡|‡‹‡©‡½‡ç‡í‡õ‡ú‡ ˆˆ6ˆJˆtˆzˆˆ‘ˆ ˆ»ˆψùˆÿˆ‰‰‰‰ ‰+‰Q‰i‰t‰|‰‰‰‰‰މ¡‰¸‰½‰ã‰û‰ŠŠŠŠ Š3Š@ŠJŠ^ŠuŠŽŠ Š­ŠØŠìŠ‹‹‹'‹>‹>‹G‹S‹i‹‚‹•‹¡‹´‹¸‹¸‹¸‹¿‹Ä‹׋ã‹ú‹ü‹ŒŒ Œ-Œ7Œ7ŒIŒõ”k t9t9Š9–9–9¬9·9¹9Õ9Õ9Õ9Ü9æ9ê9î9ñ9ñ9ú9þ9::J:V:a:q:�:†:‰:Ž:Ž:Ž:£:ª:·:¾:Æ:Ë:Ë:à:ì:ô:ù:ù:;;#;(;(;=;I;R;Z;b;n;„;�;²;¶;Ä;Ì;Ñ;Ñ;æ;< -<<<#<#<B<N<Y<^<s<<Ž<“<¢<¯<´<´<´<·<¼<¼<¼<Û<ç<ò<ô<÷<ü<ü<ü<====&=1=7=E=S=S=]=f=n=£=©=°=¿=Õ=Ú=Ú=í=õ=õ=÷=÷=÷=ü=ü=> > >>>>>>'>'>L>U>U>Y>tBö( tBtB‚B‹B™BŸB÷�1VwVwtw|wˆwžw³wÁwÌwÛwáwáwáwæwëwùwxxx!x/x:xGxNx\xø\”§V-V-p-”-w- -¹-²-Ñ-æ-Ó-ò-..*.*.7.V.V.`.ù8hrîGîGHH*H9H?HEHHHiHú0�—‰‰,‰8‰F‰I‰a‰d‰l‰û0S[¦Ó¦ÓºÓÂÓÏÓÙÓìÓüP>N˜†˜†¤†¸†»†Ï†×†Û†å†ï†÷†ú†‡ýTš«JJ J3J6J@JMJbJdJvJ€J”J”JšJ�JñJþ<˜£p‰p‰„‰‹‰—‰£‰³‰¸‰»‰¿‰Ç‰ÿ ,0ááá(áHzˆödöd -ee!e7e#eCeEeLeWeceke Dƒ®M®MÒMÙMÞMæMN N NNNN4N:NNKNKNKNKNON^NgNoNxN€N‡N�N�N«N¯NÁNÔNÚNîNóNOOOO"O+O9OBObOhOlOqOvOyOƒO†O–OD žjžj¬j¶jÀjÐjÕjÛjçjéjûjûjýj-klåü>ß>ßRßhßu߀߄ߋß�ߘߧߩߩ߽߿ßÈßÎßÎßÎßÎßÖß´Js€D€D¦D·D¼DÃDÍDÍDÕDèDìDñDEE EEE*E.E6EBEIEMEUEWE_EmEuEwEzE�E—EŸE­E±E¿E !E.k.k>kJkVkfk~k„k’k£k«k²kÈkîkll"l2l8l:lKlmltlzlˆl�l¦l±l·l½làlôB»pgpgŠg�g”gŸg®g°g»gÊgÊg×gågègêgêgïgôgýghhh*h/hDhOhYhYhohohœh°hÅhËhÐh×hÝhähéhéhïhõhúhúh ii3i9i>iRi\icicicihihi‘i–i–i¿iæiëiëiëiîiõiûijjj jjjj/j9jCjIjljrj‚jŽj”j¢j©j«j¿jÅjÌjÌjÎjÎjÎjÓjÙjÞjâjäjçjòjþjkkkk k kkDk˜}Ÿ~~šŸ¦°¶ÁÑÙáæñû   $ 4 ; C K S [ ` k y y � \X«ž@ž@¶@½@Ï@A AA'AAHAHATA\AkA¥A§AÔAÜAÜA B!BB~e~e›e£eªeÏeÝeßeíeúef f"f1fkLkYkfkpktk}k–k™k©k°kµkµkÉkÉkÎkÒkâkëkýklllll"l3lmNmimpmtmzm‚m�m§n‹8ëõ~"~"˜"Ÿ"¶"×"Ä"ï"###Œ`j~žž ž'ž/ž:žDžOžWžfžpžsž˜žšžªžªž¸ž�_VØVØxØØ†Ø‹Ø¢Ø´Ø¾ØÄØÖØÛØçØïØòØôØþØÙÙ ÙÙÙ$Ù.Ù7Ù?ÙBÙKÙfÙwÙ~Ù�نٕٛ٣٣٪٭ٲÙÁÙÇÙÏÙÏÙÝÙàÙåÙôÙÿÙÚÚÚ&Ú-Ú4ÚKÚŽ83=vÕvÕÕÕ�Õ‘ÕŸÕ¢Õ§Õ�8>H®Õ®Õ·Õ·ÕÅÕÉÕÐÕÓÕØÕ�D*Þ.Þ.ø. ///(/@/I/M/_/e/„/‘Ä{¨ÞúÞúû ûûûû û$û*û*û<ûCûYûlû{û�ûƒûŠû�ûšûšû®û°û·û½ûÇûÇûÇûÞûðû÷ûüüü1ü1üCü’0+3†/†/�/µ/Æ/Ì/Ì/Ô/“„\yVðVðhð}ð‡ð�ð’ð™ð©ð´ð¶ðÀðÀðÉðÚðÝðÝðñ ññ'ñ.ñ2ñAñTñ§ñ”  +&.&./.M.R.•hö ÖbÖbìb÷bccc$c5c>cOcUcacxcxcŠc›c¨c±cÂcÈcd–„a~nFnFžF¤F­F¹FÁFÈFÌFÕFÕFÚFáFùF#G(GLGTGVGnG†GªGÉGÛG—lò öþöþÿ ÿ'ÿ.ÿPÿRÿtÿ‰ÿvÿ«ÿ˜ÿºÿºÿÌÿÓÿõÿõÿýÿ˜ y}x‰x‰�‰�‰’‰™(A.æ.æPæXæ^æfæhæhæyæyæyæ�æ‰æ›æªæ›æ¿æÁæÁæÛæÝæÝæèæíæç ç ç ç!ç#ç0ç2ç?çAçNçVç^çeçtç�çƒç”ç¡ç¡ç¡çªç¼çÏçÕçÝçßçìçìçèèè èè.è3è3è3èAèGèLèTè_èqè|è�è�èˆèŒèšèžè§è®èÌèÙèàèéèé +é +é +é +ééé+é+éKéKéKéRé`éoé‚é•é—é—é—éªéªé±é¸é½éÃéÕéßéûé%ê+ê+ê?êDêhêoê{ê™ê¬ê·ê¾êÂêÂêÂêÂêÍê×êåêëë/ë9ë9ëGëeë•ë¨ë¹ëÐëãëèëèëèëðëûë ììììì/ìYì_ì_ì_ìjìtì€ì‹ì�ì�ì�ì’ìžìžìèìšH%////'/5/@/H/H/`/j/p/v/›0 VJVJ}JjJŒJ¨JžJÀJÈJœLÛêŽ!Ž!¨!¯!Æ!ç!Ô!ÿ!" "@"-"X"p"p"z"�ð·ÞGÞGHH(H0H;HZHZHdHfH�HiH�H�HžH¨H¯HÏHÑHëHòHòHII5I:IYIrI�I’IšI¡IÁIÃIÝIäIäIJJJJDJVJžTVgŽŽ¤²¸¾ÏÝëý"Ÿ0 +Rþÿþÿ-"N:q]€Œ‘�­´ÁÌØãëðü +0;T]in‚‰��’«°ÉÞðõ +#8CMXZemm}r•µ àZŽˆcˆc¢c°cµcÂcÐcÙcôcd'd0d@d[dfdvdxdzd„d�d”d¡d­d¿dÇdßdãdãdãdãdède e e'e*e2e>eGe�e¡d/%%,%D%U%\%x%m%�%°%œ%¿%Ð%æ%Ò%þ% & &#&#&-&¢ü!\F F ^ p { ¨ Ž ‚ · Ø í Ú "  ü 1 N N N ` } } ² É ½ û    ; ) J k ƒ p ž ’ Æ ´ Õ ò ò ò !!BIkks£(>ã>ãLãoãuãzãzã€ã¤(!'ÕÕ'Õ5Õ;Õ=ÕBÕ¥D]j„8„8ž8¥8®8º8Ï8×8Ý8ã8å8å8ô8¦„¼Ù`¨`¨“¨Ÿ¨£¨«¨³¨·¨Â¨Æ¨Ê¨Î¨Ö¨Û¨ß¨ð¨©©©©)©8©K©S©^©^©^©p©§€hšhš�šˆš�š–šœš¬š·šÁšÌšãšæšèš› ›››)›;›C›C›Y›Y›k›¨ Ê †R†R¬RÉRÑRÜRìRõRùRS*SCSISQSTSiSnS€S¢S¨S°SµS»S¾SÔSÝSßST TT#T2TTTZT_T_T_TlT}TˆT•T¡T´TÁTÎTåTùTUUU0U5U@UGUjUjUjU|U©°)¸ ¸ Û è í ñ ú  ¡¡ ¡+¡3¡>¡F¡I¡U¡]¡w¡�¡—¡­¡¶¡ë¡×¡û¡û¡¢¢:¢A¢e¢ž¢ž¢ž¢ž¢ÿ¢ª˜†(~¶~¶›¶¢¶ª¶µ¶Ì¶Ö¶Ö¶í¶÷¶·(·6·:·Z·n·‚·‰·�·¦·°·Á·Î·Î·Õ·Ü·á·æ·ë·ò·ù·¸¸*¸.¸.¸8¸N¸R¸R¸c¸v¸‰¸‰¸�¸š¸¡¸©¸´¸»¸Ã¸Î¸Õ¸Õ¸à¸þ¸¹¹ ¹5¹5¹;¹B¹Q¹[¹i¹p¹t¹v¹ˆ¹ˆ¹ˆ¹š¹¢¹È¹Ö¹Ö¹Ú¹ï¹÷¹ºº'º,º:ºIºSºaºlºpºuº}º�º�º’º¡º£º²º´ºÃºÊºÎºâºìºúº»»» »%»C»M»[»b»f»p»~»…»‰»“»§»¯»º»¾»¾»¾»É»Ô»ä»ð»¼¼¼(¼0¼;¼@¼H¼S¼_¼c¼n¼s¼‡¼�¼š¼š¼š¼š¼·¼Ô¼à¼è¼ø¼½&½*½Y½N½?½i½i½s½z½‰½˜½¢½°½·½»½½½Ì½Ö½ä½ë½ï½ï½ñ½¾¾¾¾¾'¾9¾A¾Y¾…¾“¾—¾µ¾¼¾Ã¾Î¾ä¾é¾ð¾¿ ¿¿"¿&¿(¿;¿E¿S¿Z¿^¿^¿^¿^¿l¿w¿†¿�¿ž¿©¿­¿­¿²¿º¿¾¿Í¿Ï¿Þ¿à¿ï¿ñ¿ÀÀ À À)À7À>ÀBÀRÀ]ÀbÀ€ÀŠÀ˜ÀŸÀ£À­À»ÀÂÀÆÀÐÀäÀìÀ÷ÀûÀûÀûÀÁ ÁÁ5ÁEÁPÁeÁjÁuÁ…Á‘Á§Á¯ÁºÁÉÁÑÁÜÁáÁéÁôÁÂÂÂÂ(Â0Â;Â;Â;Â;ÂOÂ_ÂtÂ�…™ª¿ÂÌÂÐÂÞÂóÂÃÃ3ÃLÃNÃYÃaÃaÃjÇØïÃÈÃÖÃáÃíÃõÃ÷ÃÄ +Ä +Ä +Ä'Ä5ÄCÄZÄqÄ€Ä�Ä­Ä´Ä´ÄÄÄØÄòÄòÄöÄ ÅÅ6ÅAÅXÅ`Å`ŅŅŘųżÅÓÅíÅüÅ Æ)Æ7ÆMÆiÆyƑƑƩƩƵÆÐÆèÆñÆñÆñÆýÆÇ&Ç/Ç/Ç6Ç?ÇEÇQǰǫ0ùAð�ð�Ž!Ž,Ž6Ž<ŽFŽLŽVŽdŽnŽ€ŽŠŽ�ŽšŽ ŽªŽ±Ž½ŽÃŽÌŽ÷Ž� � ��'�1�C�M�b�b�e�o�„�‰�™�¤�©�½�Ð�Ú�ï�ý����-�=�N�[�[�h�h�p�~�Å�¬l£:DD/DGDWDwD‰D¡D¼D¼DæDîDòDõDùDþDE EEE E%E)E.E8EIEPEWEYE]EfEpEsE~EŠE�EžE©E¯E¶E¿EØEéEòEûEFFF%F6FGFSFaFcFjFqFvFzF‡FŽF±F¿FÉFÓFÜFõFGGG G)G/G3G8GHFHNHVHcHkHŠH}HŸH¨HÃH×HêHñHúHI +III%I>I.INIRI¬I­  p†p†~† †¦†®¸�·§'§'°'Ñ'·'ø'ú'/(Z(Z(j(o(o(ƒ(ˆ(ˆ(¤(©(©(É(Î(Î(â(ç(ç()))6)\)|)Ž) )²)Â)Â)Â)Â)Â)—*¯$bg÷%÷%û%&%&?&°”¢¦¿¦¿À¿Ï¿Ï¿Ò¿Û¿ç¿ç¿ý¿À%À,À0À@À`ÀrÀxÀ‡À�À”ÀšÀ£À¹À½ÀÚÀøÀ +ÁÁ Á1Á=Á?ÁKÁSÁWÁ]ÁfÁfÁfÁxÁƒÁ‰ÁŸÁ¦Á®ÁÄÁËÁËÁËÁÐÁÕÁßÁâÁçÁñÁôÁ ÂÂÂ&Â)Â.Â>ÂAÂEÂNÂVÂhÂpÂy„Š §¯¶ÂËÂÜÂÜÂãÂãÂãÂèÂíÂ÷ÂúÂÿ à Ã$Ã)Ã.Ã>ÃAÃFÃVÃYÃ]ÃfÃnÀÈÑÑÜãñõÃÁÃÙÃáÃçÃöÃÿÃÄ ÄÄÄ"Ä*Ä0ÄMÄVÄ^ÄdÄjÄjÄjÄqÄxćÄ�ĕěěÄ�įıx>×>×L×a×h×s׉׳×Ï×Ö×î×ôר ØØØØ$Ø*Ø9ØAØGØIØOز¤ÔyÎ^Î^ñ^ù^ __5_L_P_X_`_f_o_{_ƒ_ƒ_‹_»_ú_Õ_`"`*`:`<`j`p`y`€`ˆ`�`œ`¤`¬`¿`Ç`Ì`Ö`ö`ý`ÿ` aa8a?aAaaahahahaqaxa‘a—aŸaŸa¤a¨a´a½aÆaÒaõab1b4bPb]bqb‹b�b®b¼bÈböbübþb,c/c/cKcXclc†cŽc’c�c¥cµc·cåcècðcdd0d6d6d@d@dKd|d„d„d„d„d�d™d¯dÈdÛdâdîdõdõde e e eee+e2e>eEeEe_eaefeye€eŒe“e“e eªeªe¯eÒeÒeäe³à˜Ì==#=A=.=v=\=P=…=”=œ=§=©=´=¿=¿=Ä=ù=þ=3>K>8>m>Z>�>|>�>¬>´>¿>Á>Ì>×>×>Ü>ý>ÿ> ? ?'?,?N?P?r?r?r?z?´\âõæaæaüabb b-b9bPbPbbbhbsbƒbŽbœb©bÕbµÙÚÖÖô ")044<U__s~Œ�¡¦º¾ÇËÐÖóó6GKKKP[elƒˆœ¤­±³ºÌÜóõ!%%%9=FJOUrr€—œµÆÊÜÜÜáð6AG]ns~’–Ÿ£¥«ÄÄÒéë 37INbjsw|ƒ™©ÀÅÞñõ .=alrˆ™™™ ³ÌÌÌÛÛî  ! & , 6 8 D D K V k m x � ™ › ¦ ²  É Ð Ú â æ ê ì ñ ù ý     " $ $ - : P p Š ˜ ¤ « « ¾    É Î è ö ! ! !#!%!*!D!R!^!e!e!r!|!|!Ž!¶˜ »�8H8HUHdHdHdH�H�H�H�H–H˜H˜HžH H H¦H¨H¨H¯H³H¸H¸H¸H¸H¸H¸HÀHØHØHíHøHII'I)IHIJIiInI�I’I˜I˜I±I´IÛIèIJ J J)J.JLJ:JRJaJfJmJvJ‰J‘J™JžJžJžJ§JÀJÆJÆJßJíJ +K#K%K-K3K;K@K@KFKFKOK`KbKwKyK�K‡K�K”K”K”K”K¢K¹K»KÏKÏK×KÝKåKêKóKûKL +LLLLLLL(L?LCLELQLSLnLtL|L�LŠL•L˜LžL¤L­L°L°L¾LÏLÑL÷LMM"M'M0M5M5M:M\H\H\P\P\X\Z\Z\s\}\†\ˆ\ˆ\ˆ\Ž\’\”\”\”\”\™\Ÿ\¥\©\"`·Ìz©æeæeff)fEfRfif|f‡f�f‰f¬f´f´fÃfÃfËf×fífggg/g5g5g5g:g?gNgYgsgugzg‰g”g¡g«g«g¹g¸”*K£££ £&£)£2£5£8£<£A£c£P£s£{£ƒ£†£ˆ£˜£¡£ª£°£³£Ä£Û£ì£÷£)¤¹à.¢&@&@D@O@`@c@g@p@w@…@”@ª@»@Ì@Þ@ð@ÿ@A A.A.ACMCMCQCQCYCrCvC{CDº,nÔnÔ|ÔƒÔ‹Ô�Ô–Ô»l3J¦L¦L¼LÖLÂLåL +MöLMM%M%M+M.M2M:MRM]MsMhM‹M•M¼PQa%%%+%2%B%S%X%u%{%‚%‰%—%£%µ%ñ%½D$†ã†ãšã¨ã®ãÑã×ãÝãääääää¾ô#œf4f4n4}4�4Ž4›4¯4¾4Û4è4ú45<5J5f5x5�5§5²5Ó5ñ566&6A6Z6Z6u6ž6¸6Ó6å6ô6777!727E7U7b7n7}7š7š7¢7¢7¢7³7À7Ç7æ7ï788 88/8G8P8`8h8m8‘8¡8±8¼8Ð8Õ8Ý8999C9]9]9u9„9Œ9›9¤9¬9¾9à9è9ð9û9ý9 :%:=:U:m::–:Ÿ:¨:º:È:Ì:Ð:¿ ¨†¨†±†Ð†Õ†À\ƒVËË0Ë7ËDËOËTËZËlËrËŠË�Ë®ËÄËÏËÕË÷Ë÷ËÌÌÌ!Ì-Ì5Ì=ÌEÌSÌYÌbÌnÌnÌp̂̈Ì�Ì�̤̤ÌÂÌÂÌÕÌâÌçÌçÌþÌÍÍ,Í7ÍEÍPÍ`ÍmÍÍ…Í�͛ͨͪͪͲͷͷͿÍÄÍÄÍÌÍÑÍÑÍÙÍÞÍÞÍäÍéÍéÍðÍõÍõÍüÍÎÎ ÎÎÎÎ!Î!Î,Î1Î1Î<Î<ÎWÎ^ÎdÎgÎrÎuΉΖΥάίÎÁÎÃÎÉÎÝÎêÎùÎùÎùÎùÎÏÏ2ÏDÏUÏ^ÏoÏuÏzυϗϨϷϽÏÎÏÙÏãÏóÏÐÐÐÐ.Ð4ÐEÐPÐVÐfÐfÐvЉЕÐ�ЭдкÐËÐÖÐÛÐøÐ ÑÑ+Ñ7ÑIÑTÑcÑeÑwÑфыÑ�Ñ�ѧѭѷѽÑÈÑÎÑÐÑÝÑêÑôÑ ÒÒÒ!Ò(ÒlÔÁ0#« ª ª¿ªéªñªñªÿª«,«/«K«K«K«S«U«U«]«_«_«g«i«i«q«q«z«€«…«…«Ž«�«¡«¦«¬«±«±«¹«Â«È«Í«Í«Ò«ß«ø«¬¬0¬O¬O¬O¬W¬Y¬Y¬Y¬a¬c¬c¬c¬k¬m¬m¬m¬u¬w¬w¬‚¬‚¬ˆ¬�¬�¬�¬�¬”¬Ÿ¬±¬¿¬Í¬×¬×¬×¬ç¬ç¬î¬ò¬ø¬­­1­>­g­j­q­…­�­–­¡­¡­¬­²­·­·­·­¾­Ä­Ù­á­ç­ ®®® ® ®'®2®2®7®I®O®O®O®O®¨®Âd*,B,BNBXB[B[BeBxBzB‡B‰B”B¨B°BÀBÅBËBÓBÖBèBÃLWfŸ0Ÿ0³0·0¼0Ç0Ç0Ñ0×0×0Û0ã0Ä\CV7070M0M0Q0V0i0l0q0q0{0�0�0�0‘0›0Å8(2FÕFÕOÕOÕ]ÕaÕhÕkÕpÕÆ¨YÆXÆXÞXæXñXYøX6YšY€YuY[YDY YµY¥YÕYÚY÷YüYZþY Z&Z&Z-ZWZ‚ZeZ™Z·Z·Z·ZÃZÇlD[N'N'h'‘'s' 'À'Ü'Ò'ô' (ù'(4(T(f(((†(¨(¨(²(È4Ž—ÎêÎêâêçêíêñêõêëëÉxÐêV}V}�}n}�}š}¡}·}¼}Á}Å}Ç}Í}Ó}é}Ö}ø}~~+~N~D~]~i~Ê4;D¦ß¦ß¯ß»ßÚßßßáßáßæßË”"p©p©~©�©”©œ©¤©¯©º©Â©Í©Ø©Ý©ó©ú©ª ªªª$ª/ª1ª=ªHªSª\ªdªdªhªŸªÌ€Úö§4§4Å4É4Í4Õ4ã4æ4é4ÿ45555!5)515=5R5c5j5q5q5~5“5ÍÞ`6@6@f@q@–@x@°@æ@ë@ë@î@ø@A A!A)AKAlA~A‹A¦AºA¿AÙAãAåAêAB(B:BGBbB‚BxBœB¢B¢B«BËB×BÚBÜB÷BáBCCCC&C0C[CQCuCuCzC}C“CŸC´CØCâCèCøC DD/D1DCDWDkDaD€D†D•D½D¬DÌDÎDàDêDþDEE(E2E4EHEREREqEwEwEwE€E EÈE·E×EÜEîEöE!FF6F6F6F\F\FnFÎ`8Ì.,.,e,l,t,},ˆ,�,§,¬,¯,²,»,É,Ó,Ø,--->-C-P-p-u-„-°-¸-½-Ò-þ-. . ..1.E.I.k.|.�.�.­.­.­.­.­.Á.Ù.Þ.á.ä.ä.// /,/4/O/f/t//›/›/›/¨/¿/Á/Á/Á/Î/å/ç/ç/ô/ 0 00 0G0^0p0Œ0Œ0Œ0™0°0²0²0²0¿0Ö0Ø0Ø0å0ü0ü0 11191P1b1~1~1~1‹1¢1¤1¤1±1È1È1Ü1Þ1ì12,212?2M2W2Y2Y2Y2v2~2€2€2¨2î2Ϥ)N6ç6çPç|ç|ç›ç«ç°ç°ç¿çÑçëçóçúçÿçè"è"è"è$è$è$è$è@è@è@è@èWèYèYèYèYètèè´èÐÐën~n~„~�~•~•~¡~¦~«~¶~»~»~»~ð~Ý~ÿ~&&?XqŠ��¨ÁÚóøø€*€C€\€^€^€w€�€©€€€€Ô€Ñ0…�nênê|ê‚ê†ê¥êÆêÆêÌêÒ<:E‡7‡7�7›7©7µ7Á7Ê7Ó7Ü7â7ç7ÓluŒ×&×&å&ï&ö& ' ''' '*'8'U'W'g'g'l'n'u'§'ÔØŸÑoo*oToIo5otoo“o†oÅoÊoöoöoûopp#p:pWp°p˜p„p¶pÁpípòpúpq!qFq;q'qYqrq^q•q�q¬q³qßqßqßqßqçqÕL\k¶(¶(Ô(æ(í())!).)>)4)V)`)ÖÈg•ç0ç0 11.1P1\1c1n1|1‰1’1’1—1¡1¹1Ä1Ô1à1ç1ò12222222"2"2,2,242<2D2L2P2Z2¦2× ††&†=†C†Ø`FZç7ç7÷7þ78888/8/8=8=8I8R8U8c8m8p8x8Ù<úNŠNŠWŠbŠmŠxŠƒŠ�ЫжЯŠÚ  1dd.d@dFdRd]dkdwdŽd™d©d»dÁdÇdÍdàdædïdõde ee e.e;exeÛ, V.V.d.u.Ž.¢.¥.«.Ü4؆؆æ†ð†ù†‡‡‡‡‡ÝÄMz¦ø¦øÒøÕøÚøçøìøþøùùù ùù7ù]ùfùqùxù‘ù·ù¼ùÕùûùúú úFúHúaú‡ú‡ú‡úŸú¹úÈúÚúބ¾s¾sÜsßsåsùstt t%t*t*t7t@tFtVtdtft…t™t t¬t¼t¼tÊtÝtètìtýtýtýtuuuu0u6u;uOuUu]uouuuwu†u“u™uŸu¤uªu°u·uÃuÊuÌuÑuÙuÛuàuìuîuóuûuýuv +v vvvv v(v(v(v8v8v8vOvUv[vfvkvsvŒv’v�v¡v§v²vËvÖvávçvôvùvþvþvww#wDwOwZwfw`wowxw}w‚w—wžw§w³w¹wÅwÉwÎwÓwÞwéwôwöwüw xxx,x7xBxBxHxUxWx\xex~x‰x”xšx§x§x«x°x°xÁxÃxÃxÖxØxØxëxíxíxyyyyyy)y)y/y4y4yKy_yTylyty{y�y‰yœy§yžy·y·y¹yÑyÔyÖyåy÷yzz*zDzIz]zmz€z…z…zŽz¢z´z¿zÇzÏzÓzázçzìzìzòz{{{{!{'{,{,{,{2{A{T{a{e{j{j{n{s{s{x{ƒ{�{©{¿{Ë{Ë{Ñ{Þ{à{í{ù{|||(|4|4|4|4|8|=|N|`|k|s|{|}|�|”|¢|±|·|Ä|Ä|Û|ë|ë|ÿ| } }}"}9}9}?}L}N}`}`}k}k}k}k}k}çß „ÈVSVStS‚S•SšS¸S¾SÃSÉS×SÞSíSòSþSTT.T9TLTSTmTŠT–T±TÉTåTîTýTUUU U1U?U_UdUlU…U—U§U­U¸UÁUÇU V÷UèUVXVBV3VhVkV‹V Wà<+6ìBìB CCC.CGCOCeCqCá„ |>>`krz}}�˜˜›¢©¯µ»ÂÈÙÙÛäðö  " 2 : ? ? F O ` f o z ‹ ‹ ” ™ £ ª ± ¹ ¿ Á Ï æ é ø       * 3 D e v Ž • Ÿ § ® ® · ¾ Ê Ú å å å ù  !! !Û!â„9g6g6ƒ6’6™6³6Ù6ï67 77)7B7B7T7j7r7u7�7ãX{ÍISfqƒ‘—¨¯·ÍÕèý )9BHMTZ`fq|† ¨Â×äçïó '>W[dk}…Œ�™›­ÄÒØÜÞëëëí + +ä  +H†H†Q†e†j†å¤£Èn{n{Š{�{¢{§{­{°{´{´{×{Ü{ |õ{|1||@|V|B|e|m|r|x|{||�|š|†|©|©|©|Ä|ó|ÿ|æ˜Íï /*>9HWWffuu„„““¢¶±ÀÀÏÞíVçxÇá¶`¶`Ô`æ`ì`ø`aa!a'a2aBaNaWa]acana|a‰a•a£a²a²aâaèd˜­ëë"ë5ë5ëOëVëbëbëyëyë�ë�ë§ë§ë¾ë¾ëÕë×ë×ëÛëéÌÂñFýFýhýoýzý�ý�ý¢ý­ýÁýÅýÊýÎýÐýÖýèýôý þ þ$þ3þ7þ7þ7þJþ_þ_þkþqþ{þ†þ”þ›þªþ¬þÅþßþßþñþêP7GtCtCŠC–CžC¢C³CÁCÇCÓCÛCæCìCïCùCë ®-Ž;Ž;¨;³;·;À;Ç;Î;ä;õ;<<*<9<H<Y<h<h<o<s<|<‰<�<™< <¤<Ä<Ä<Ä<Ä<Ä<Ð<Ô<×<ß<í<õ<= +==#=.=3=3=@=F=U=l=n=y=†=•=˜=ž=š=²=É=Ë=Ù=Û=æ=ì=ì=ô=ô=> >#>#>#>(>(>@>N>Y>^>^>a>f>f>…>“> >¢>¢>¦>¨>¨>Ç>Õ>á>ã>ã>æ>è>è>õ>÷>÷>ú>ú>ú>ú>ú>? ? ??9?F?T?[?#@ì(rxH‰H‰V‰]‰m‰p‰v‰í(nt‡&‡&�&š&«&¶&¶&Ô&îTzK®ñ®ñÌñÒñÕñÞñèñòòò ò"ò&ò(ò@òPò]òcògòmòoòròvòvò™ò�ò£ò£òªòÌòáòôòó óó ó)ó-ó0ó7ó=óAóGóXó^ócóhóuówó‰ó‹ó’óŸó¡ó³ó³ó³ó³ó³ó×óâóîóôôô&ôCôgô�ô†ô�ô¢ô°ôÇôÌôÒôãôøôþôõõ3õ:õFõ^õjõjõjõpõsõvõ�õ•õ©õ¯õ´õ¿õ¿õÄõÑõÞõÞõäõòõ ööööö%ö,ö,ö1ö>öKöKöQö_övö|öö‚ö‰ö‰öšö¡ö®ö»ö»öÂöÌöÓöÙöàöëöÿöÿö÷÷%÷-÷4÷D÷H÷Q÷i÷n÷u÷—÷¢÷¨÷°÷É÷Ý÷Ý÷ø÷ø÷ø ø'ø.øPøcø‡ø‰ø“øµøµøµøÎøÚøëøùùÝùïÀ€¬ÆZÆZÞZâZçZöZ[ [.[[=[B[B[g[˜[{[n[»[À[é[î[ú[\ü[*\/\H\O\r\ˆ\ˆ\®\®\º\ð ö-ö-..$.ñ4�˜6M6MOMrMM…M‹MŽM¯Mò8 g.g.u.|.‡.�.–.œ.¢.¢.¨.ó ®.®.¸.À.Å.ôÒTîqîq rr'r=rZrir�r»rÁrÇrÏrÑrÙrîrñrürss;sJsnsœs¢s¨s°sµs½sÒsÕsàsìsñs÷sýst tt%t=tKtytt„tŒtœtÂtðtötûtût uu"u?uWucukuyuyu~u‘u¨uªuÇußuëuóuvvvv&v0vGv^vwv‰v–v¸vÏvævôvöv w$w$w-w9wOwhw{w†w™w�w�w�w¤w©w¼wÇwáwãwèwûwxxxx/xõ˜k ô8ô8 +999,97999X9X9X9_9i9m9q9t9t9}9�9—9—9Í9Ù9ä9ô9: : ::::&:-:::A:I:N:N:c:o:w:|:|:‘:ž:¦:«:«:À:Ì:Õ:Ý:å:ñ:;;5;9;G;O;T;T;i;ƒ;�;™;¡;¦;¦;Å;Ñ;Ü;á;ö;<<<%<2<7<7<7<7<:<?<?<?<^<j<u<w<z<<<<‰<‘<˜< <©<´<º<È<Ö<Ö<à<é<ñ<&=,=3=B=X=]=]=p=x=x=z=z=z===†=Œ=�=—=›=›=›=›=ª=ª=Ï=Ø=Ø=Ü=÷Aö(üAüA +BB!B'B÷�ªÊ¾g¾gÜgägðghh)h4hChIhIhIhNhShahlh…h‡hŒhšh¥h²h¹hÇhø\0C.&.&H&m&O&|&˜&Ž&°&Å&²&Ô&í&ÿ&'' 'A'A'K'ù8hr¦K¦K¿KÎKâKñK÷KýKL!Lú0�—@Š@ŠTŠ`ŠnŠqŠ‰ŠŒŠ”Šû0S[ÖÖ"Ö*Ö7ÖAÖTÖüP>NÀ‡À‡Ì‡à‡ã‡÷‡ÿ‡ˆ ˆˆ ˆ"ˆ(ˆýT™ª¶M¶MÐMãMæMðMýMNN&N0NDNDNJNMN¡Nþ<˜£˜Š˜Š¬Š³Š¿ŠËŠÛŠàŠãŠçŠïŠÿ +/ää,ä8äH!/nVnV‚VŽV¤V�V³VµV¼VÇVÓVÛV DƒfQfQŠQ‘Q–QžQ¸QÁQÃQÐQÐQÒQìQòQôQöQRRRRRR R'R0R8R?RERGRcRgRyRŒR’R¦R«R¸R¸RÌRÓRÚRãRñRúRS#S'S,S1S4S>SASQSD ®n®n¼nÆnÐnànånînúnünooo@oläû6â6âJâgâxâ†âŠâ‘â•âžâ°â²â²âÉâËâ×âÝâÝâÝâÝâåâ´KtDD.D?DDDKDUDUD]DpDtDyDŽD�D“D—DžD²D¶D¾DÊDÑDÕDÝDßDçDõDýDÿDEE E'E5E9EGE !EFoFoVobono~o–oœoªo»oÃoÊoàop p-p:pJpPpRpcp…pŒp’p p¨p¾pÉpÏpÕpøpôB»hhhh$h/h>h@hKhZhZhghuhxhzhzhh„h�h˜hžh§hºh¿hÔhßhéhéhÿhÿh,i@iWi]ibiiioivi{i{i�i‡iŒiŒiŸi­iÅiËiÐiäiîiõiõij-j3j8j8jcjhjhj“jºj¿j¿j¿jÂjÉjÏjÖjÛjÛjájçjìjìjkkk@kFkVkbkhkvk}kk“k™k k k¢k¢k¢k§k­k²k¶k¸k»kÆkÕkØkÚkÞkÞkãkãkñkl˜}ŸÞ!Þ!ú!ÿ!"""!"1"9"A"F"Q"["a"l"|"„"”"›"£"«"³"»"À"Ë"Ù"Ù"ï" B†®8®8Æ8Í8à899 9.9"9W9W9c9k9z9´9¶9ã9ë9ë9 :8:%:Y:G:h:n:}:’:”:Ÿ:§:§:È:Í:Ö:â:ê:;õ:=;#;;L;i;T;‰;¡;Ž;Ã;°;ä;Ò;ó;<û;<<<E<E<Q< Ð1È�È�Ü�Ü�‘‘"‘&‘+‘+‘+‘7‘<‘L‘Q‘Q‘Q‘V‘V‘o‘v‘…‘“‘œ‘¬‘µ‘·‘·‘·‘·‘¾‘ő̑ӑڑá‘è‘ï‘ï‘ñ‘ñ‘÷‘ü‘“ \ No newline at end of file diff --git a/Compiler/CompilerB.HPP b/Compiler/CompilerB.HPP index 1738a9e..6644d0c 100644 --- a/Compiler/CompilerB.HPP +++ b/Compiler/CompilerB.HPP @@ -17,7 +17,7 @@ public extern I64 PassTrace(I64 i=0b1001111101); extern U0 StreamDir(); public extern I64 StreamExePrint(U8 *fmt,...); public extern U0 StreamPrint(U8 *fmt,...); -public extern Bool Trace(Bool val); +public extern Bool Trace(Bool val=ON); #help_index "Compiler/Lex" #help_file "::/Doc/Lex" diff --git a/Compiler/Lex.CPP b/Compiler/Lex.CPP index 03bd799..fcec39d 100644 --- a/Compiler/Lex.CPP +++ b/Compiler/Lex.CPP @@ -200,6 +200,7 @@ lgc_start2: goto lgc_done; } break; + case DOCT_MARKER: case DOCT_CURSOR: doc_e=doc_e->next; goto lgc_start2; @@ -529,7 +530,7 @@ lex_ident: } else { cc->cur_i64=i; cc->flags|=CCF_USE_LAST_U16; - cc->token=TK_INTEGER; + cc->token=TK_INT; goto lex_end; } } @@ -543,7 +544,7 @@ lex_ident: else { cc->cur_i64=i; cc->flags|=CCF_USE_LAST_U16; - cc->token=TK_INTEGER; + cc->token=TK_INT; goto lex_end; } } @@ -556,7 +557,7 @@ lex_ident: lex_is_int: cc->cur_i64=i; cc->flags|=CCF_USE_LAST_U16; - cc->token=TK_INTEGER; + cc->token=TK_INT; goto lex_end; } ch=LexGetChar(cc); diff --git a/Compiler/OpCodes.TXT b/Compiler/OpCodes.TXT index c07e62f..55476a0 100644 --- a/Compiler/OpCodes.TXT +++ b/Compiler/OpCodes.TXT @@ -19,6 +19,8 @@ forms. Get an Intel datasheet and learn which forms are valid. {Lock|Rep}{Seg|2E=NotBr|3E=Br}{OP}{ADD}{REX} + +':' is start of alias list. Marked with OCF_ALIAS. */ R8 AL 0; @@ -222,7 +224,7 @@ OPCODE PUSH 0x68, 32 !ID IMM32 0x50,+R 16 % R16 0x50,+R 32 R32 - 0x50,+R 32 ` R64 + 0x50,+R 32 `R64 0xFF,/6 16 % RM16 0xFF,/6 32 RM32 0xFF,/6 32 RM64; @@ -238,7 +240,7 @@ OPCODE POP 0x0F 0xA9, GS 0x58,+R 16 R16 0x58,+R 32 R32 - 0x58,+R 32 ` R64 + 0x58,+R 32 `R64 0x8F,/0 16 RM16 0x8F,/0 32 RM32 0x8F,/0 32 RM64; @@ -269,7 +271,7 @@ OPCODE MOV 0xB8,+R 16 R16 IMM16 0xB8,+R 32 &R32 UIMM32 0xB8,+R 32 R32 IMM32 - 0xB8,+R 32 ` R64 UIMM32 + 0xB8,+R 32 `R64 UIMM32 0xB8,+R 32 &R64 UIMM64 0xB8,+R 32 R64 IMM64 0xC6, &RM8 UIMM8 @@ -278,7 +280,7 @@ OPCODE MOV 0xC7, 16 RM16 IMM16 0xC7, 32 &RM32 UIMM32 0xC7, 32 RM32 IMM32 - 0xC7, 32 ` RM64 UIMM32 + 0xC7, 32 `RM64 UIMM32 0xC7, 32 RM64 IMM32; OPCODE ADC @@ -498,133 +500,77 @@ OPCODE XOR 0x31,/R 32 RM32 R32 0x31,/R 32 ^ RM64 R64; -OPCODE CMOVA - 0x0F 0x47,/R 16 R16 RM16 - 0x0F 0x47,/R 32 R32 RM32 - 0x0F 0x47,/R 32 R64 RM64; -OPCODE CMOVAE - 0x0F 0x43,/R 16 R16 RM16 - 0x0F 0x43,/R 32 R32 RM32 - 0x0F 0x43,/R 32 R64 RM64; -OPCODE CMOVB - 0x0F 0x42,/R 16 R16 RM16 - 0x0F 0x42,/R 32 R32 RM32 - 0x0F 0x42,/R 32 R64 RM64; -OPCODE CMOVBE - 0x0F 0x46,/R 16 R16 RM16 - 0x0F 0x46,/R 32 R32 RM32 - 0x0F 0x46,/R 32 R64 RM64; -OPCODE CMOVC - 0x0F 0x42,/R 16 R16 RM16 - 0x0F 0x42,/R 32 R32 RM32 - 0x0F 0x42,/R 32 R64 RM64; -OPCODE CMOVE - 0x0F 0x44,/R 16 R16 RM16 - 0x0F 0x44,/R 32 R32 RM32 - 0x0F 0x44,/R 32 R64 RM64; -OPCODE CMOVG - 0x0F 0x4F,/R 16 R16 RM16 - 0x0F 0x4F,/R 32 R32 RM32 - 0x0F 0x4F,/R 32 R64 RM64; -OPCODE CMOVGE - 0x0F 0x4D,/R 16 R16 RM16 - 0x0F 0x4D,/R 32 R32 RM32 - 0x0F 0x4D,/R 32 R64 RM64; -OPCODE CMOVL - 0x0F 0x4C,/R 16 R16 RM16 - 0x0F 0x4C,/R 32 R32 RM32 - 0x0F 0x4C,/R 32 R64 RM64; -OPCODE CMOVLE - 0x0F 0x4E,/R 16 R16 RM16 - 0x0F 0x4E,/R 32 R32 RM32 - 0x0F 0x4E,/R 32 R64 RM64; -OPCODE CMOVNA - 0x0F 0x46,/R 16 R16 RM16 - 0x0F 0x46,/R 32 R32 RM32 - 0x0F 0x46,/R 32 R64 RM64; -OPCODE CMOVNAE - 0x0F 0x42,/R 16 R16 RM16 - 0x0F 0x42,/R 32 R32 RM32 - 0x0F 0x42,/R 32 R64 RM64; -OPCODE CMOVNB - 0x0F 0x43,/R 16 R16 RM16 - 0x0F 0x43,/R 32 R32 RM32 - 0x0F 0x43,/R 32 R64 RM64; -OPCODE CMOVNBE - 0x0F 0x47,/R 16 R16 RM16 - 0x0F 0x47,/R 32 R32 RM32 - 0x0F 0x47,/R 32 R64 RM64; -OPCODE CMOVNC - 0x0F 0x43,/R 16 R16 RM16 - 0x0F 0x43,/R 32 R32 RM32 - 0x0F 0x43,/R 32 R64 RM64; -OPCODE CMOVNE - 0x0F 0x45,/R 16 R16 RM16 - 0x0F 0x45,/R 32 R32 RM32 - 0x0F 0x45,/R 32 R64 RM64; -OPCODE CMOVNG - 0x0F 0x4E,/R 16 R16 RM16 - 0x0F 0x4E,/R 32 R32 RM32 - 0x0F 0x4E,/R 32 R64 RM64; -OPCODE CMOVNGE - 0x0F 0x4C,/R 16 R16 RM16 - 0x0F 0x4C,/R 32 R32 RM32 - 0x0F 0x4C,/R 32 R64 RM64; -OPCODE CMOVNL - 0x0F 0x4D,/R 16 R16 RM16 - 0x0F 0x4D,/R 32 R32 RM32 - 0x0F 0x4D,/R 32 R64 RM64; -OPCODE CMOVNLE - 0x0F 0x4F,/R 16 R16 RM16 - 0x0F 0x4F,/R 32 R32 RM32 - 0x0F 0x4F,/R 32 R64 RM64; -OPCODE CMOVNO - 0x0F 0x41,/R 16 R16 RM16 - 0x0F 0x41,/R 32 R32 RM32 - 0x0F 0x41,/R 32 R64 RM64; -OPCODE CMOVNP - 0x0F 0x4B,/R 16 R16 RM16 - 0x0F 0x4B,/R 32 R32 RM32 - 0x0F 0x4B,/R 32 R64 RM64; -OPCODE CMOVNS - 0x0F 0x49,/R 16 R16 RM16 - 0x0F 0x49,/R 32 R32 RM32 - 0x0F 0x49,/R 32 R64 RM64; -OPCODE CMOVNZ - 0x0F 0x45,/R 16 R16 RM16 - 0x0F 0x45,/R 32 R32 RM32 - 0x0F 0x45,/R 32 R64 RM64; OPCODE CMOVO 0x0F 0x40,/R 16 R16 RM16 0x0F 0x40,/R 32 R32 RM32 0x0F 0x40,/R 32 R64 RM64; -OPCODE CMOVP - 0x0F 0x4A,/R 16 R16 RM16 - 0x0F 0x4A,/R 32 R32 RM32 - 0x0F 0x4A,/R 32 R64 RM64; -OPCODE CMOVPE - 0x0F 0x4A,/R 16 R16 RM16 - 0x0F 0x4A,/R 32 R32 RM32 - 0x0F 0x4A,/R 32 R64 RM64; -OPCODE CMOVPO - 0x0F 0x4B,/R 16 R16 RM16 - 0x0F 0x4B,/R 32 R32 RM32 - 0x0F 0x4B,/R 32 R64 RM64; +OPCODE CMOVNO + 0x0F 0x41,/R 16 R16 RM16 + 0x0F 0x41,/R 32 R32 RM32 + 0x0F 0x41,/R 32 R64 RM64; +OPCODE CMOVB + 0x0F 0x42,/R 16 R16 RM16 + 0x0F 0x42,/R 32 R32 RM32 + 0x0F 0x42,/R 32 R64 RM64 :CMOVC CMOVNAE; +OPCODE CMOVAE + 0x0F 0x43,/R 16 R16 RM16 + 0x0F 0x43,/R 32 R32 RM32 + 0x0F 0x43,/R 32 R64 RM64 :CMOVNB CMOVNC; +OPCODE CMOVE + 0x0F 0x44,/R 16 R16 RM16 + 0x0F 0x44,/R 32 R32 RM32 + 0x0F 0x44,/R 32 R64 RM64 :CMOVZ; +OPCODE CMOVNE + 0x0F 0x45,/R 16 R16 RM16 + 0x0F 0x45,/R 32 R32 RM32 + 0x0F 0x45,/R 32 R64 RM64 :CMOVNZ; +OPCODE CMOVBE + 0x0F 0x46,/R 16 R16 RM16 + 0x0F 0x46,/R 32 R32 RM32 + 0x0F 0x46,/R 32 R64 RM64 :CMOVNA; +OPCODE CMOVA + 0x0F 0x47,/R 16 R16 RM16 + 0x0F 0x47,/R 32 R32 RM32 + 0x0F 0x47,/R 32 R64 RM64 :CMOVNBE; OPCODE CMOVS 0x0F 0x48,/R 16 R16 RM16 0x0F 0x48,/R 32 R32 RM32 0x0F 0x48,/R 32 R64 RM64; -OPCODE CMOVZ - 0x0F 0x44,/R 16 R16 RM16 - 0x0F 0x44,/R 32 R32 RM32 - 0x0F 0x44,/R 32 R64 RM64; +OPCODE CMOVNS + 0x0F 0x49,/R 16 R16 RM16 + 0x0F 0x49,/R 32 R32 RM32 + 0x0F 0x49,/R 32 R64 RM64; +OPCODE CMOVP + 0x0F 0x4A,/R 16 R16 RM16 + 0x0F 0x4A,/R 32 R32 RM32 + 0x0F 0x4A,/R 32 R64 RM64 :CMOVPE; +OPCODE CMOVNP + 0x0F 0x4B,/R 16 R16 RM16 + 0x0F 0x4B,/R 32 R32 RM32 + 0x0F 0x4B,/R 32 R64 RM64 :CMOVPO; +OPCODE CMOVL + 0x0F 0x4C,/R 16 R16 RM16 + 0x0F 0x4C,/R 32 R32 RM32 + 0x0F 0x4C,/R 32 R64 RM64 :CMOVNGE; +OPCODE CMOVGE + 0x0F 0x4D,/R 16 R16 RM16 + 0x0F 0x4D,/R 32 R32 RM32 + 0x0F 0x4D,/R 32 R64 RM64 :CMOVNL; +OPCODE CMOVLE + 0x0F 0x4E,/R 16 R16 RM16 + 0x0F 0x4E,/R 32 R32 RM32 + 0x0F 0x4E,/R 32 R64 RM64 :CMOVNG; +OPCODE CMOVG + 0x0F 0x4F,/R 16 R16 RM16 + 0x0F 0x4F,/R 32 R32 RM32 + 0x0F 0x4F,/R 32 R64 RM64 :CMOVNLE; OPCODE CALL 0xE8, 16 !&CW REL16 0xFF,/2 16 ! RM16 0xE8, 32 !&CD REL32 0xFF,/2 32 ! RM32 - 0xFF,/2 32 !` RM64 + 0xFF,/2 32 !`RM64 // 0x9A, CD PTR1616 // 0xFF,/3 16 M1616 // 0x9A, 16 CP PTR1632 @@ -639,132 +585,74 @@ OPCODE JMP 0xFF,/4 16 ! RM16 0xFF,/4 32 ! RM32 0xFF,/4 32 ! RM64; -OPCODE JA - 0x77, &CB REL8 - 0x0F 0x87, 16 !CW REL16 - 0x0F 0x87, 32 !CD REL32; -OPCODE JAE - 0x73, &CB REL8 - 0x0F 0x83, 16 !CW REL16 - 0x0F 0x83, 32 !CD REL32; -OPCODE JB - 0x72, &CB REL8 - 0x0F 0x82, 16 !CW REL16 - 0x0F 0x82, 32 !CD REL32; -OPCODE JBE - 0x76, &CB REL8 - 0x0F 0x86, 16 !CW REL16 - 0x0F 0x86, 32 !CD REL32; -OPCODE JC - 0x72, &CB REL8 - 0x0F 0x82, 16 !CW REL16 - 0x0F 0x82, 32 !CD REL32; -OPCODE JCXZ - 0xE3, CB REL8; -OPCODE JECXZ - 0xE3, CB REL8; -OPCODE JRCXZ - 0xE3, CB REL8; -OPCODE JE - 0x74, &CB REL8 - 0x0F 0x84, 16 !CW REL16 - 0x0F 0x84, 32 !CD REL32; -OPCODE JG - 0x7F, &CB REL8 - 0x0F 0x8F, 16 !CW REL16 - 0x0F 0x8F, 32 !CD REL32; -OPCODE JGE - 0x7D, &CB REL8 - 0x0F 0x8D, 16 !CW REL16 - 0x0F 0x8D, 32 !CD REL32; -OPCODE JL - 0x7C, &CB REL8 - 0x0F 0x8C, 16 !CW REL16 - 0x0F 0x8C, 32 !CD REL32; -OPCODE JLE - 0x7E, &CB REL8 - 0x0F 0x8E, 16 !CW REL16 - 0x0F 0x8E, 32 !CD REL32; -OPCODE JNA - 0x76, &CB REL8 - 0x0F 0x86, 16 !CW REL16 - 0x0F 0x86, 32 !CD REL32; -OPCODE JNAE - 0x72, &CB REL8 - 0x0F 0x82, 16 !CW REL16 - 0x0F 0x82, 32 !CD REL32; -OPCODE JNB - 0x73, &CB REL8 - 0x0F 0x83, 16 !CW REL16 - 0x0F 0x83, 32 !CD REL32; -OPCODE JNBE - 0x77, &CB REL8 - 0x0F 0x87, 16 !CW REL16 - 0x0F 0x87, 32 !CD REL32; -OPCODE JNC - 0x73, &CB REL8 - 0x0F 0x83, 16 !CW REL16 - 0x0F 0x83, 32 !CD REL32; -OPCODE JNE - 0x75, &CB REL8 - 0x0F 0x85, 16 !CW REL16 - 0x0F 0x85, 32 !CD REL32; -OPCODE JNG - 0x7E, &CB REL8 - 0x0F 0x8E, 16 !CW REL16 - 0x0F 0x8E, 32 !CD REL32; -OPCODE JNGE - 0x7C, &CB REL8 - 0x0F 0x8C, 16 !CW REL16 - 0x0F 0x8C, 32 !CD REL32; -OPCODE JNL - 0x7D, &CB REL8 - 0x0F 0x8D, 16 !CW REL16 - 0x0F 0x8D, 32 !CD REL32; -OPCODE JNLE - 0x7F, &CB REL8 - 0x0F 0x8F, 16 !CW REL16 - 0x0F 0x8F, 32 !CD REL32; -OPCODE JNO - 0x71, &CB REL8 - 0x0F 0x81, 16 !CW REL16 - 0x0F 0x81, 32 !CD REL32; -OPCODE JNP - 0x7B, &CB REL8 - 0x0F 0x8B, 16 !CW REL16 - 0x0F 0x8B, 32 !CD REL32; -OPCODE JNS - 0x79, &CB REL8 - 0x0F 0x89, 16 !CW REL16 - 0x0F 0x89, 32 !CD REL32; -OPCODE JNZ - 0x75, &CB REL8 - 0x0F 0x85, 16 !CW REL16 - 0x0F 0x85, 32 !CD REL32; + OPCODE JO 0x70, &CB REL8 0x0F 0x80, 16 !CW REL16 0x0F 0x80, 32 !CD REL32; -OPCODE JP - 0x7A, &CB REL8 - 0x0F 0x8A, 16 !CW REL16 - 0x0F 0x8A, 32 !CD REL32; -OPCODE JPE - 0x7A, &CB REL8 - 0x0F 0x8A, 16 !CW REL16 - 0x0F 0x8A, 32 !CD REL32; -OPCODE JPO - 0x7B, &CB REL8 - 0x0F 0x8B, 16 !CW REL16 - 0x0F 0x8B, 32 !CD REL32; +OPCODE JNO + 0x71, &CB REL8 + 0x0F 0x81, 16 !CW REL16 + 0x0F 0x81, 32 !CD REL32; +OPCODE JB + 0x72, &CB REL8 + 0x0F 0x82, 16 !CW REL16 + 0x0F 0x82, 32 !CD REL32 :JC JNAE; +OPCODE JAE + 0x73, &CB REL8 + 0x0F 0x83, 16 !CW REL16 + 0x0F 0x83, 32 !CD REL32 :JNB JNC; +OPCODE JE + 0x74, &CB REL8 + 0x0F 0x84, 16 !CW REL16 + 0x0F 0x84, 32 !CD REL32 :JZ; +OPCODE JNE + 0x75, &CB REL8 + 0x0F 0x85, 16 !CW REL16 + 0x0F 0x85, 32 !CD REL32 :JNZ; +OPCODE JBE + 0x76, &CB REL8 + 0x0F 0x86, 16 !CW REL16 + 0x0F 0x86, 32 !CD REL32 :JNA; +OPCODE JA + 0x77, &CB REL8 + 0x0F 0x87, 16 !CW REL16 + 0x0F 0x87, 32 !CD REL32 :JNBE; OPCODE JS 0x78, &CB REL8 0x0F 0x88, 16 !CW REL16 0x0F 0x88, 32 !CD REL32; -OPCODE JZ - 0x74, &CB REL8 - 0x0F 0x84, 16 !CW REL16 - 0x0F 0x84, 32 !CD REL32; +OPCODE JNS + 0x79, &CB REL8 + 0x0F 0x89, 16 !CW REL16 + 0x0F 0x89, 32 !CD REL32; +OPCODE JP + 0x7A, &CB REL8 + 0x0F 0x8A, 16 !CW REL16 + 0x0F 0x8A, 32 !CD REL32 :JPE; +OPCODE JNP + 0x7B, &CB REL8 + 0x0F 0x8B, 16 !CW REL16 + 0x0F 0x8B, 32 !CD REL32 :JPO; +OPCODE JL + 0x7C, &CB REL8 + 0x0F 0x8C, 16 !CW REL16 + 0x0F 0x8C, 32 !CD REL32 :JNGE; +OPCODE JGE + 0x7D, &CB REL8 + 0x0F 0x8D, 16 !CW REL16 + 0x0F 0x8D, 32 !CD REL32 :JNL; +OPCODE JLE + 0x7E, &CB REL8 + 0x0F 0x8E, 16 !CW REL16 + 0x0F 0x8E, 32 !CD REL32 :JNG; +OPCODE JG + 0x7F, &CB REL8 + 0x0F 0x8F, 16 !CW REL16 + 0x0F 0x8F, 32 !CD REL32 :JNLE; + +OPCODE JCXZ + 0xE3, CB REL8 :JECXZ JRCXZ; OPCODE INC 0x40,+R 16 % R16 @@ -979,10 +867,8 @@ OPCODE LODSW 0xAD, 16; OPCODE LODSD 0xAD, 32; OPCODE LODSQ 0xAD, 32=; OPCODE LOOP 0xE2, CB REL8; -OPCODE LOOPE 0xE1, CB REL8; -OPCODE LOOPZ 0xE1, CB REL8; -OPCODE LOOPNE 0xE0, CB REL8; -OPCODE LOOPNZ 0xE0, CB REL8; +OPCODE LOOPE 0xE1, CB REL8 :LOOPZ; +OPCODE LOOPNE 0xE0, CB REL8 :LOOPNZ; OPCODE LSL 0x0F 0x03,/R 16 R16 RM16 0x0F 0x03,/R 32 R32 RM32 @@ -1072,36 +958,22 @@ OPCODE SEGDS 0x3E; OPCODE SEGES 0x26; OPCODE SEGFS 0x64; OPCODE SEGGS 0x65; -OPCODE SETA 0x0F 0x97, RM8; -OPCODE SETAE 0x0F 0x93, RM8; -OPCODE SETB 0x0F 0x92, RM8; -OPCODE SETBE 0x0F 0x96, RM8; -OPCODE SETC 0x0F 0x92, RM8; -OPCODE SETE 0x0F 0x94, RM8; -OPCODE SETG 0x0F 0x9F, RM8; -OPCODE SETGE 0x0F 0x9D, RM8; -OPCODE SETL 0x0F 0x9C, RM8; -OPCODE SETLE 0x0F 0x9E, RM8; -OPCODE SETNA 0x0F 0x96, RM8; -OPCODE SETNAE 0x0F 0x92, RM8; -OPCODE SETNB 0x0F 0x93, RM8; -OPCODE SETNBE 0x0F 0x97, RM8; -OPCODE SETNC 0x0F 0x93, RM8; -OPCODE SETNE 0x0F 0x95, RM8; -OPCODE SETNG 0x0F 0x9E, RM8; -OPCODE SETNGE 0x0F 0x9C, RM8; -OPCODE SETNL 0x0F 0x9D, RM8; -OPCODE SETNLE 0x0F 0x9F, RM8; +OPCODE SETO 0x0F 0x90, RM8; OPCODE SETNO 0x0F 0x91, RM8; -OPCODE SETNP 0x0F 0x9B, RM8; +OPCODE SETB 0x0F 0x92, RM8 :SETC SETNAE; +OPCODE SETAE 0x0F 0x93, RM8 :SETNC SETNB; +OPCODE SETE 0x0F 0x94, RM8 :SETZ; +OPCODE SETNE 0x0F 0x95, RM8 :SETNZ; +OPCODE SETBE 0x0F 0x96, RM8 :SETNA; +OPCODE SETA 0x0F 0x97, RM8 :SETNBE; +OPCODE SETS 0x0F 0x98, RM8; OPCODE SETNS 0x0F 0x99, RM8; -OPCODE SETNZ 0x0F 0x95, RM8; -OPCODE SETO 0x0F 0x90, RM8; -OPCODE SETP 0x0F 0x9A, RM8; -OPCODE SETPE 0x0F 0x9A, RM8; -OPCODE SETPO 0x0F 0x9B, RM8; -OPCODE SETS 0x0F 0x98, RM8; -OPCODE SETZ 0x0F 0x94, RM8; +OPCODE SETP 0x0F 0x9A, RM8 :SETPE; +OPCODE SETNP 0x0F 0x9B, RM8 :SETPO; +OPCODE SETL 0x0F 0x9C, RM8 :SETNGE; +OPCODE SETGE 0x0F 0x9D, RM8 :SETNL; +OPCODE SETLE 0x0F 0x9E, RM8 :SETNG; +OPCODE SETG 0x0F 0x9F, RM8 :SETNLE; OPCODE SHLD 0x0F 0xA5,/R 16 RM16 R16 0x0F 0xA5,/R 32 RM32 R32 @@ -1138,42 +1010,6 @@ OPCODE XADD 0x0F 0xC1,/R 32 RM64 R64; OPCODE XLATB 0xD7; -OPCODE RCL - 0xD2,/2 RM8 CL - 0xD3,/2 16 RM16 CL - 0xD3,/2 32 RM32 CL - 0xD3,/2 32 RM64 CL - 0xC0,/2 IB &RM8 UIMM8 - 0xC0,/2 IB RM8 IMM8 - 0xC1,/2 16 IB &RM16 UIMM8 - 0xC1,/2 16 IB RM16 IMM8 - 0xC1,/2 32 IB &RM32 UIMM8 - 0xC1,/2 32 IB RM32 IMM8 - 0xC1,/2 32 IB &RM64 UIMM8 - 0xC1,/2 32 IB RM64 IMM8; -OPCODE RCL1 - 0xD0,/2 RM8 - 0xD1,/2 16 RM16 - 0xD1,/2 32 RM32 - 0xD1,/2 32 RM64; -OPCODE RCR - 0xD2,/3 RM8 CL - 0xD3,/3 16 RM16 CL - 0xD3,/3 32 RM32 CL - 0xD3,/3 32 RM64 CL - 0xC0,/3 IB &RM8 UIMM8 - 0xC0,/3 IB RM8 IMM8 - 0xC1,/3 16 IB &RM16 UIMM8 - 0xC1,/3 16 IB RM16 IMM8 - 0xC1,/3 32 IB &RM32 UIMM8 - 0xC1,/3 32 IB RM32 IMM8 - 0xC1,/3 32 IB &RM64 UIMM8 - 0xC1,/3 32 IB RM64 IMM8; -OPCODE RCR1 - 0xD0,/3 RM8 - 0xD1,/3 16 RM16 - 0xD1,/3 32 RM32 - 0xD1,/3 32 RM64; OPCODE ROL 0xD2,/0 RM8 CL 0xD3,/0 16 RM16 CL @@ -1210,8 +1046,43 @@ OPCODE ROR1 0xD1,/1 16 RM16 0xD1,/1 32 RM32 0xD1,/1 32 RM64; - -OPCODE SAL +OPCODE RCL + 0xD2,/2 RM8 CL + 0xD3,/2 16 RM16 CL + 0xD3,/2 32 RM32 CL + 0xD3,/2 32 RM64 CL + 0xC0,/2 IB &RM8 UIMM8 + 0xC0,/2 IB RM8 IMM8 + 0xC1,/2 16 IB &RM16 UIMM8 + 0xC1,/2 16 IB RM16 IMM8 + 0xC1,/2 32 IB &RM32 UIMM8 + 0xC1,/2 32 IB RM32 IMM8 + 0xC1,/2 32 IB &RM64 UIMM8 + 0xC1,/2 32 IB RM64 IMM8; +OPCODE RCL1 + 0xD0,/2 RM8 + 0xD1,/2 16 RM16 + 0xD1,/2 32 RM32 + 0xD1,/2 32 RM64; +OPCODE RCR + 0xD2,/3 RM8 CL + 0xD3,/3 16 RM16 CL + 0xD3,/3 32 RM32 CL + 0xD3,/3 32 RM64 CL + 0xC0,/3 IB &RM8 UIMM8 + 0xC0,/3 IB RM8 IMM8 + 0xC1,/3 16 IB &RM16 UIMM8 + 0xC1,/3 16 IB RM16 IMM8 + 0xC1,/3 32 IB &RM32 UIMM8 + 0xC1,/3 32 IB RM32 IMM8 + 0xC1,/3 32 IB &RM64 UIMM8 + 0xC1,/3 32 IB RM64 IMM8; +OPCODE RCR1 + 0xD0,/3 RM8 + 0xD1,/3 16 RM16 + 0xD1,/3 32 RM32 + 0xD1,/3 32 RM64; +OPCODE SHL 0xD2,/4 RM8 CL 0xD3,/4 16 RM16 CL 0xD3,/4 32 RM32 CL @@ -1223,13 +1094,30 @@ OPCODE SAL 0xC1,/4 32 IB &RM32 UIMM8 0xC1,/4 32 IB RM32 IMM8 0xC1,/4 32 IB &RM64 UIMM8 - 0xC1,/4 32 IB RM64 IMM8; -OPCODE SAL1 + 0xC1,/4 32 IB RM64 IMM8 :SAL; +OPCODE SHL1 0xD0,/4 RM8 0xD1,/4 16 RM16 0xD1,/4 32 RM32 - 0xD1,/4 32 RM64; - + 0xD1,/4 32 RM64 :SAL1; +OPCODE SHR + 0xD2,/5 RM8 CL + 0xD3,/5 16 RM16 CL + 0xD3,/5 32 RM32 CL + 0xD3,/5 32 RM64 CL + 0xC0,/5 IB &RM8 UIMM8 + 0xC0,/5 IB RM8 IMM8 + 0xC1,/5 16 IB &RM16 UIMM8 + 0xC1,/5 16 IB RM16 IMM8 + 0xC1,/5 32 IB &RM32 UIMM8 + 0xC1,/5 32 IB RM32 IMM8 + 0xC1,/5 32 IB &RM64 UIMM8 + 0xC1,/5 32 IB RM64 IMM8; +OPCODE SHR1 + 0xD0,/5 RM8 + 0xD1,/5 16 RM16 + 0xD1,/5 32 RM32 + 0xD1,/5 32 RM64; OPCODE SAR 0xD2,/7 RM8 CL 0xD3,/7 16 RM16 CL @@ -1249,63 +1137,25 @@ OPCODE SAR1 0xD1,/7 32 RM32 0xD1,/7 32 RM64; -OPCODE SHL - 0xD2,/4 RM8 CL - 0xD3,/4 16 RM16 CL - 0xD3,/4 32 RM32 CL - 0xD3,/4 32 RM64 CL - 0xC0,/4 IB &RM8 UIMM8 - 0xC0,/4 IB RM8 IMM8 - 0xC1,/4 16 IB &RM16 UIMM8 - 0xC1,/4 16 IB RM16 IMM8 - 0xC1,/4 32 IB &RM32 UIMM8 - 0xC1,/4 32 IB RM32 IMM8 - 0xC1,/4 32 IB &RM64 UIMM8 - 0xC1,/4 32 IB RM64 IMM8; -OPCODE SHL1 - 0xD0,/4 RM8 - 0xD1,/4 16 RM16 - 0xD1,/4 32 RM32 - 0xD1,/4 32 RM64; - -OPCODE SHR - 0xD2,/5 RM8 CL - 0xD3,/5 16 RM16 CL - 0xD3,/5 32 RM32 CL - 0xD3,/5 32 RM64 CL - 0xC0,/5 IB &RM8 UIMM8 - 0xC0,/5 IB RM8 IMM8 - 0xC1,/5 16 IB &RM16 UIMM8 - 0xC1,/5 16 IB RM16 IMM8 - 0xC1,/5 32 IB &RM32 UIMM8 - 0xC1,/5 32 IB RM32 IMM8 - 0xC1,/5 32 IB &RM64 UIMM8 - 0xC1,/5 32 IB RM64 IMM8; -OPCODE SHR1 - 0xD0,/5 RM8 - 0xD1,/5 16 RM16 - 0xD1,/5 32 RM32 - 0xD1,/5 32 RM64; - OPCODE FILD 0xDF,/0 M16 //Load I16 0xDB,/0 M32 //Load I32 - 0xDF,/5 ` M64; //Load I64 + 0xDF,/5 `M64; //Load I64 OPCODE FISTP - 0xDF,/7 ` M64; //Store I64 + 0xDF,/7 `M64; //Store I64 OPCODE FISTTP - 0xDD,/1 ` M64; //Store I64 + 0xDD,/1 `M64; //Store I64 OPCODE FLD 0xD9,/0 M32 //Load F32 - 0xDD,/0 ` M64 //Load F64 + 0xDD,/0 `M64 //Load F64 0xD9 0xC0,+I* STI; OPCODE FSTP 0xD9,/3 M32 //Store F32 - 0xDD,/3 ` M64 //Store F64 + 0xDD,/3 `M64 //Store F64 0xDD 0xD8,+I* STI; OPCODE FST 0xD9,/2 M32 //Store F32 - 0xDD,/2 ` M64 //Store F64 + 0xDD,/2 `M64 //Store F64 0xDD 0xD0,+I* STI; OPCODE FRSTOR 0xDD,/4 M32 @@ -1327,7 +1177,7 @@ OPCODE FSQRT 0xD9 0xFA,*; OPCODE FMULP 0xDE 0xC8,+I* STI ST0; OPCODE FMUL 0xD8,/1 ST0 M32 - 0xDC,/1 ` ST0 M64 + 0xDC,/1 `ST0 M64 0xD8 0xC8,+I* ST0 STI 0xDC 0xC8,+I* STI ST0; OPCODE FIMUL @@ -1336,32 +1186,32 @@ OPCODE FIMUL OPCODE FDIVP 0xDE 0xF8,+I* STI ST0; OPCODE FDIV 0xD8,/6 ST0 M32 - 0xDC,/6 ` ST0 M64 + 0xDC,/6 `ST0 M64 0xD8 0xF0,+I* ST0 STI 0xDC 0xF8,+I* STI ST0; OPCODE FDIVRP 0xDE 0xF0,+I* STI ST0; OPCODE FDIVR 0xD8,/7 ST0 M32 - 0xDC,/7 ` ST0 M64 + 0xDC,/7 `ST0 M64 0xD8 0xF8,+I* ST0 STI 0xDC 0xF0,+I* STI ST0; OPCODE FPREM 0xD9 0xF8,*; OPCODE FADDP 0xDE 0xC0,+I* STI ST0; OPCODE FADD 0xD8,/0 ST0 M32 - 0xDC,/0 ` ST0 M64 + 0xDC,/0 `ST0 M64 0xD8 0xC0,+I* ST0 STI 0xDC 0xC0,+I* STI ST0; OPCODE FSUBP 0xDE 0xE8,+I* STI ST0; OPCODE FSUB 0xD8,/4 ST0 M32 - 0xDC,/4 ` ST0 M64 + 0xDC,/4 `ST0 M64 0xD8 0xE0,+I* ST0 STI 0xDC 0xE8,+I* STI ST0; OPCODE FSUBRP 0xDE 0xE0,+I* STI ST0; OPCODE FSUBR 0xD8,/5 ST0 M32 - 0xDC,/5 ` ST0 M64 + 0xDC,/5 `ST0 M64 0xD8 0xE8,+I* ST0 STI 0xDC 0xE0,+I* STI ST0; OPCODE FCOMIP 0xDF 0xF0,+I* ST0 STI; diff --git a/Compiler/OptLib.CPP b/Compiler/OptLib.CPP index 4b841e6..e1cb928 100644 --- a/Compiler/OptLib.CPP +++ b/Compiler/OptLib.CPP @@ -18,16 +18,16 @@ U0 OptSetNOP1(CIntermediateCode *tempi) { tempi->ic_code=IC_NOP1; tempi->ic_flags=0; - tempi->a1.type=TY_NULL+tempi->a1.type&RT_MASK; - tempi->r.type =TY_NULL+tempi->r.type &RT_MASK; + tempi->a1.type=MDF_NULL+tempi->a1.type.raw_type; + tempi->r.type =MDF_NULL+tempi->r.type.raw_type; } U0 OptSetNOP2(CIntermediateCode *tempi,I64 stk_delta=1) { tempi->ic_code=IC_NOP2; tempi->ic_data=stk_delta; - tempi->a1.type=TY_NULL+tempi->a1.type&RT_MASK; - tempi->r.type =TY_NULL+tempi->r.type &RT_MASK; + tempi->a1.type=MDF_NULL+tempi->a1.type.raw_type; + tempi->r.type =MDF_NULL+tempi->r.type.raw_type; } CIntermediateCode *OptFree(CIntermediateCode *tempi) @@ -168,7 +168,7 @@ fb_here2: return FBO1_NOT_CONST; } } - *is_unsigned=tempc1->raw_type&1 || tempc2->raw_type&1; + *is_unsigned=tempc1->raw_type&RTF_UNSIGNED || tempc2->raw_type&RTF_UNSIGNED; if (tempi1->ic_code==IC_IMM_I64 && tempi2->ic_code==IC_IMM_I64 && !(tempi->ic_flags&(ICF_PUSH_CMP|ICF_POP_CMP))) { tempi->ic_flags|=tempi1->ic_flags|tempi2->ic_flags; @@ -193,8 +193,7 @@ Bool OptFixupBinaryOp2(CIntermediateCode **tempi1,CIntermediateCode **tempi2) return FALSE; } -Bool OptFixupUnaryOp(CIntermediateCode *tempi, - CIntermediateCode *tempi1, +Bool OptFixupUnaryOp(CIntermediateCode *tempi, CIntermediateCode *tempi1, Bool *is_unsigned) { CHashClass *tempc,*tempc1; @@ -217,7 +216,7 @@ Bool OptFixupUnaryOp(CIntermediateCode *tempi, } else return FBO1_NOT_CONST; } - *is_unsigned=tempc1->raw_type&1; + *is_unsigned=tempc1->raw_type&RTF_UNSIGNED; if (tempi1->ic_code==IC_IMM_I64) { tempi->ic_flags|=tempi1->ic_flags; OptSetNOP1(tempi1); @@ -305,7 +304,7 @@ CIntermediateCode *OptBrZero(CCmpCtrl *cc,CIntermediateCode *tempi) !(tempi->ic_flags&ICF_USE_F64)) { tempi->ic_code+=IC_BR_EQU_EQU2-IC_BR_EQU_EQU; tempi->ic_flags&=~ICF_PUSH_CMP; - tempii=tempi->next; //IC_PUSH_CMP instruction + tempii=tempi->next; //IC_PUSH_CMP inst while (tempii->ic_code!=IC_PUSH_CMP) tempii=tempii->next; tempii->t.a1t=tempi; @@ -432,7 +431,7 @@ CIntermediateCode *OptBrNotZero(CCmpCtrl *cc,CIntermediateCode *tempi) !(tempi->ic_flags&ICF_USE_F64)) { tempi->ic_code+=IC_BR_EQU_EQU2-IC_BR_EQU_EQU; tempi->ic_flags&=~ICF_PUSH_CMP; - tempii=tempi->next; //IC_PUSH_CMP instruction + tempii=tempi->next; //IC_PUSH_CMP inst while (tempii->ic_code!=IC_PUSH_CMP) tempii=tempii->next; tempii->t.a1t=tempi; diff --git a/Compiler/OptPass012.CPP b/Compiler/OptPass012.CPP index 2fc495f..c0328db 100644 --- a/Compiler/OptPass012.CPP +++ b/Compiler/OptPass012.CPP @@ -186,7 +186,7 @@ args. tempi->ic_code=IC_IMM_F64; } } - if (tempc1->type&HTT_INTERNAL_TYPE && tempc1->raw_type& 1) + if (tempc1->type&HTT_INTERNAL_TYPE && tempc1->raw_type&RTF_UNSIGNED) tempi->ic_class=cmp.internal_types[tempc1->raw_type-1]; break; case IC_SHL_CONST: @@ -449,7 +449,7 @@ args. } else if (cc->pass==2 && tempi2->ic_code==IC_IMM_I64 && (i=tempi2->ic_data) && Bsf(i)==Bsr(i) && tempi_push->ic_class->raw_type!=RT_F64 && - tempi_push->ic_class->raw_type&1) {//do only unsigned + tempi_push->ic_class->raw_type&RTF_UNSIGNED) {//do only unsigned tempi2->ic_data=i-1; tempi->ic_code=IC_AND; } @@ -665,8 +665,7 @@ args. OptSetNOP1(tempi2); OptSetNOP1(tempi); } else - if (tempi1->ic_code==IC_ADD || - tempi1->ic_code==IC_SUB) { + if (tempi1->ic_code==IC_ADD || tempi1->ic_code==IC_SUB) { if (tempi1->t.a1t->ic_code==IC_IMM_F64) { tempi1->ic_flags|=tempi->ic_flags|tempi2->ic_flags; tempi1->t.a1t->ic_data(F64)-=tempi2->ic_data(F64); @@ -826,8 +825,7 @@ args. LexWarn(cc,"Assign U0 "); sub_switch_start: case IC_MUL_EQU: - if (tempi2->ic_code==IC_IMM_I64 && - tempc->raw_type!=RT_F64 && + if (tempi2->ic_code==IC_IMM_I64 && tempc->raw_type!=RT_F64 && tempc2->raw_type!=RT_F64) { if (i=tempi2->ic_data) { if (Bsf(i)==Bsr(i)) { @@ -838,8 +836,7 @@ args. } break; case IC_DIV_EQU: - if (tempi2->ic_code==IC_IMM_I64 && - tempc->raw_type!=RT_F64 && + if (tempi2->ic_code==IC_IMM_I64 && tempc->raw_type!=RT_F64 && tempc2->raw_type!=RT_F64 && (i=tempi2->ic_data) && Bsf(i)==Bsr(i)) { tempi2->ic_data=Bsf(i); @@ -847,8 +844,7 @@ args. } break; case IC_MOD_EQU: - if (tempi2->ic_code==IC_IMM_I64 && - tempc->raw_type!=RT_F64 && + if (tempi2->ic_code==IC_IMM_I64 && tempc->raw_type!=RT_F64 && tempc2->raw_type!=RT_F64 && (i=tempi2->ic_data) && Bsf(i)==Bsr(i)) { tempi2->ic_data=i-1; @@ -1286,9 +1282,7 @@ args. "Pass:%d Stk:%08X\n",cc->pass,ps->ptr; LexExcept(cc,"Compiler Optimization Error at "); } -/*This is for determining type conversions -for passing args to funs. -*/ +//This is for determining type conversions for passing args to funs. return last_with_class; } diff --git a/Compiler/OptPass3.CPP b/Compiler/OptPass3.CPP index 762f359..ab45efe 100644 --- a/Compiler/OptPass3.CPP +++ b/Compiler/OptPass3.CPP @@ -40,12 +40,10 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[member_cnt].offset_start=tempm->offset; mv[member_cnt].offset_end=tempm->offset+MaxI64(1,tempm->size); mv[member_cnt++].m=tempm; - } else { - if (tempm->reg==REG_ALLOC) - PrintWarn("Can't reg var\n $$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", - cc->lex_include_stk->full_name, - cc->lex_include_stk->line_num,tempm->str,cc->htc.fun->str); - } + } else if (tempm->reg==REG_ALLOC) + PrintWarn("Can't reg var\n $$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", + cc->lex_include_stk->full_name, + cc->lex_include_stk->line_num,tempm->str,cc->htc.fun->str); tempm=tempm->next; } } else @@ -75,7 +73,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempc2=cmp.internal_types[RT_I64]; else tempc2=tempi->t.a2c; - tempi->a2.type=TY_STK+CmpRawType(tempc2); + tempi->a2.type=MDF_STK+CmpRawType(tempc2); tempi->a2.type_pointed_to=CmpRawTypePointed(tempc2); tempi->ic_flags|=ICF_A2_WAS_STK; case IS_1_ARG: @@ -86,7 +84,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempc1=cmp.internal_types[RT_I64]; else tempc1=tempi->t.a1c; - tempi->a1.type=TY_STK+CmpRawType(tempc1); + tempi->a1.type=MDF_STK+CmpRawType(tempc1); tempi->a1.type_pointed_to=CmpRawTypePointed(tempc1); tempi->ic_flags|=ICF_A1_WAS_STK; break; @@ -94,7 +92,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) break; } if (intermediate_code_table[code].result_cnt) { - tempi->r.type=TY_STK+CmpRawType(tempc); + tempi->r.type=MDF_STK+CmpRawType(tempc); tempi->r.type_pointed_to=CmpRawTypePointed(tempc); tempi->ic_flags|=ICF_R_WAS_STK; PrsPush(ps,tempi); @@ -121,12 +119,12 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->a1.reg=REG_RBP; break; case IC_DEREF: - tempi->a1.type_pointed_to=tempi->r.type&RT_MASK; + tempi->a1.type_pointed_to=tempi->r.type.raw_type; if (tempi1->ic_code==IC_LEA) { tempi->ic_flags|=tempi1->ic_flags; tempi->a1.reg=tempi1->a1.reg; tempi->a1.disp=tempi1->a1.disp; - tempi->a1.type=TY_DISP+tempi->r.type&RT_MASK; + tempi->a1.type=MDF_DISP+tempi->r.type.raw_type; tempi->a1.type_pointed_to=tempi->r.type_pointed_to; tempi->ic_code=IC_MOV; OptFree(tempi1); @@ -142,7 +140,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->ic_flags|=tempil2->ic_flags|tempil1->ic_flags; tempi->a1.reg=tempil2->a1.reg; tempi->a1.disp=tempi->ic_data; - tempi->a1.type=TY_DISP+tempi->r.type&RT_MASK; + tempi->a1.type=MDF_DISP+tempi->r.type.raw_type; tempi->a1.type_pointed_to=tempi->r.type_pointed_to; tempi->ic_code=IC_MOV; OptFree(tempil2); @@ -157,8 +155,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->r.type_pointed_to=CmpRawTypePointed(tempi->t.a1c); case IC_DEREF_PP: case IC_DEREF_MM: - if (tempi1->ic_code==IC_LEA && - tempi1->a1.type&TY_MASK==TY_DISP && + if (tempi1->ic_code==IC_LEA && tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) for (i=0;ia1.disp) { @@ -166,7 +163,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[i].score++; break; } - tempi->a1.type_pointed_to=tempi->r.type&RT_MASK; + tempi->a1.type_pointed_to=tempi->r.type.raw_type; break; case IC_MUL: case IC_DIV: @@ -186,15 +183,14 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->t.a1c=tempi->t.a2c; tempi->ic_data=tempi1->ic_data; tempi->ic_code=IC_ADD_CONST; - tempi->a1.type_pointed_to=tempi->r.type&RT_MASK; - tempi->a2.type=TY_NULL; + tempi->a1.type_pointed_to=tempi->r.type.raw_type; + tempi->a2.type=MDF_NULL; OptFree(tempi1); - if (tempil2->ic_code==IC_REG && - tempil2->a1.reg==REG_RBP) { + if (tempil2->ic_code==IC_REG && tempil2->a1.reg==REG_RBP) { tempi->ic_flags|=tempil2->ic_flags; tempi->ic_code=IC_LEA; tempi->a1.reg=REG_RBP; - tempi->a1.type=TY_DISP+tempi->a1.type&RT_MASK; + tempi->a1.type=MDF_DISP+tempi->a1.type.raw_type; tempi->a1.disp=tempi->ic_data; for (i=0;iic_dataic_flags|=tempi2->ic_flags; tempi->ic_data=tempi2->ic_data; tempi->ic_code=IC_SUB_CONST; - tempi->a2.type=TY_NULL; + tempi->a2.type=MDF_NULL; OptFree(tempi2); } break; @@ -241,8 +237,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) case IC_AND_EQU: case IC_OR_EQU: case IC_XOR_EQU: - if (tempi1->ic_code==IC_LEA && - tempi1->a1.type&TY_MASK==TY_DISP && + if (tempi1->ic_code==IC_LEA && tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) for (i=0;ia1.disp) { @@ -250,7 +245,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[i].score++; break; } - tempi->a1.type_pointed_to=tempi->r.type&RT_MASK; + tempi->a1.type_pointed_to=tempi->r.type.raw_type; tempi->r.type_pointed_to=CmpRawTypePointed(tempi->t.a1c); break; case IC_RETURN_VAL: @@ -295,7 +290,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi1->ic_code==IC_IMM_F64) && !tempi1->ic_data) { OptFree(tempi1); MemCpy(&tempi->a1,&tempi->a2,sizeof(CICArg)); - tempi->a2.type=TY_NULL; + tempi->a2.type=MDF_NULL; if (code==IC_BR_EQU_EQU) code=tempi->ic_code=IC_BR_ZERO; else @@ -305,7 +300,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) } else if ((tempi2->ic_code==IC_IMM_I64 || tempi2->ic_code==IC_IMM_F64) && !tempi2->ic_data) { OptFree(tempi2); - tempi->a2.type=TY_NULL; + tempi->a2.type=MDF_NULL; if (code==IC_BR_EQU_EQU) code=tempi->ic_code=IC_BR_ZERO; else @@ -317,7 +312,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) if (tempi1->ic_code==IC_IMM_I64 || tempi1->ic_code==IC_IMM_F64) { if (code==IC_BR_ZERO ^^ tempi1->ic_data) { OptFree(tempi1); - tempi->a1.type=TY_NULL; + tempi->a1.type=MDF_NULL; tempi->ic_code=IC_JMP; } else { OptFree(tempi1); @@ -331,7 +326,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) i=Bsr(tempi1->ic_data); if (0<=i==Bsf(tempi1->ic_data)) { tempi1->ic_data=i; - tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_flags|=ICF_BY_VAL; tempi->ic_code=IC_BR_NOT_BT; goto here1; } @@ -340,7 +335,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) i=Bsr(tempi2->ic_data); if (0<=i==Bsf(tempi2->ic_data)) { tempi2->ic_data=i; - tempi->ic_flags|=ICF_SWAP|ICF_NOT_ADDR; + tempi->ic_flags|=ICF_SWAP|ICF_BY_VAL; tempi->ic_code=IC_BR_NOT_BT; } } @@ -350,7 +345,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) i=Bsr(tempi1->ic_data); if (0<=i==Bsf(tempi1->ic_data)) { tempi1->ic_data=i; - tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_flags|=ICF_BY_VAL; tempi->ic_code=IC_BR_BT; goto here1; } @@ -359,15 +354,14 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) i=Bsr(tempi2->ic_data); if (0<=i==Bsf(tempi2->ic_data)) { tempi2->ic_data=i; - tempi->ic_flags|=ICF_SWAP|ICF_NOT_ADDR; + tempi->ic_flags|=ICF_SWAP|ICF_BY_VAL; tempi->ic_code=IC_BR_BT; } } goto here1; case IC_BR_MM_ZERO: case IC_BR_MM_NOT_ZERO: - if (tempi1->ic_code==IC_LEA && - tempi1->a1.type&TY_MASK==TY_DISP && + if (tempi1->ic_code==IC_LEA && tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) for (i=0;ia1.disp) { @@ -541,7 +535,7 @@ R12 and R13 as non-pointer register variables, such as index variables i,j,k. */ if (cc->htc.fun) { cc->htc.fun->used_reg_mask=cc->htc.fun->used_reg_mask& - ~(REGG_C_LOCAL_VARS|REGG_C_LOCAL_NON_PTR_VARS)|used_reg_mask; + ~(REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS)|used_reg_mask; if (!Bt(&cc->opts,OPTf_NO_REG_VAR) && !(cc->flags & CCF_NO_REG_OPT)) { QSort(mv,member_cnt,sizeof(COptMemberVar),&OptMVCompare); diff --git a/Compiler/OptPass4.CPP b/Compiler/OptPass4.CPP index fca852f..eecdc2d 100644 --- a/Compiler/OptPass4.CPP +++ b/Compiler/OptPass4.CPP @@ -9,33 +9,28 @@ Bool OptIC4(CIntermediateCode *tempi) if (!(tempil2=OptLag1(tempil1))) return FALSE; - if (tempil2->r.type&TY_MASK==TY_STK && - !(tempil2->ic_flags&ICF_PUSH_RESULT)) { - if (tempil1->ic_code==IC_ADD_CONST && - tempil1->a1.type&TY_MASK==TY_STK) { - if ((tempil2->ic_code==IC_REG || - tempil2->ic_code==IC_MOV) && - tempil2->a1.type&TY_MASK==TY_REG) { + if (tempil2->r.type&MDF_STK && !(tempil2->ic_flags&ICF_PUSH_RESULT)) { + if (tempil1->ic_code==IC_ADD_CONST && tempil1->a1.type&MDF_STK) { + if ((tempil2->ic_code==IC_REG || tempil2->ic_code==IC_MOV) && + tempil2->a1.type&MDF_REG) { i=tempil1->ic_data; if (MIN_I32<=i<=MAX_I32 && !Bt(&cmp.non_ptr_vars_mask,tempil2->a1.reg)) { tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK; tempil1->ic_code=IC_LEA; - tempil1->a1.type=TY_DISP+tempil1->a1.type&RT_MASK; + tempil1->a1.type=MDF_DISP+tempil1->a1.type.raw_type; tempil1->a1.reg=tempil2->a1.reg; tempil1->a1.disp=i; OptFree(tempil2); return TRUE; } - } else if (tempil2->ic_code==IC_SHL_CONST && - tempil2->a1.type&TY_MASK==TY_REG) { + } else if (tempil2->ic_code==IC_SHL_CONST && tempil2->a1.type&MDF_REG) { i=tempil1->ic_data; - if (MIN_I32<=i<=MAX_I32 && - tempil2->a1.reg!=REG_RSP && + if (MIN_I32<=i<=MAX_I32 && tempil2->a1.reg!=REG_RSP && 1<=tempil2->ic_data<=3) { tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK; tempil1->ic_code=IC_LEA; - tempil1->a1.type=TY_SIB+tempil1->a1.type&RT_MASK; + tempil1->a1.type=MDF_SIB+tempil1->a1.type.raw_type; tempil1->a1.reg=tempil2->a1.reg<<8+REG_NONE; if (tempil2->ic_data==1) tempil1->a1.reg|=0x4000; @@ -49,29 +44,28 @@ Bool OptIC4(CIntermediateCode *tempi) } } } - if (tempil2->ic_code==IC_MOV || - tempil2->ic_code==IC_REG) { - if (tempil1->a2.type&TY_MASK==TY_STK) { + if (tempil2->ic_code==IC_MOV || tempil2->ic_code==IC_REG) { + if (tempil1->a2.type&MDF_STK) { if (tempil2->ic_flags & ICF_R_TO_INT) { - if (tempil2->a1.type&TY_MASK==TY_IMM) + if (tempil2->a1.type&MDF_IMM) tempil2->a1.disp=tempil2->a1.disp(F64); else tempil1->ic_flags|=ICF_A2_TO_INT; } else if (tempil2->ic_flags&ICF_R_TO_F64) { - if (tempil2->a1.type&TY_MASK==TY_IMM) + if (tempil2->a1.type&MDF_IMM) tempil2->a1.disp(F64)=tempil2->a1.disp; else tempil1->ic_flags|=ICF_A2_TO_F64; } - ty=tempil1->a2.type&RT_MASK; - ty1=tempil2->a1.type&RT_MASK; + ty=tempil1->a2.type.raw_type; + ty1=tempil2->a1.type.raw_type; if (ty1 && ty1r.type&RT_MASK; + ty1=tempil2->r.type.raw_type; if (ty1 && ty1a2.type=tempil2->a1.type&TY_MASK+ty; + tempil1->a2.type=tempil2->a1.type&MDG_MASK+ty; pt=tempil1->a2.type_pointed_to; pt1=tempil2->a1.type_pointed_to; @@ -88,15 +82,15 @@ Bool OptIC4(CIntermediateCode *tempi) OptSetNOP2(tempil2); return TRUE; } - if (tempil1->a1.type&TY_MASK==TY_STK) { + if (tempil1->a1.type&MDF_STK) { if (tempil2->ic_flags & ICF_R_TO_INT) { - if (tempil2->a1.type&TY_MASK==TY_IMM) + if (tempil2->a1.type&MDF_IMM) tempil2->a1.disp=tempil2->a1.disp(F64); else tempil1->ic_flags|=ICF_A1_TO_INT; } else if (tempil2->ic_flags&ICF_R_TO_F64) { - if (tempil2->a1.type&TY_MASK==TY_IMM) { - if (tempil2->a1.type&1) //signed/unsigned + if (tempil2->a1.type&MDF_IMM) { + if (tempil2->a1.type&RTF_UNSIGNED) tempil2->a1.disp(F64)=tempil2->a1.disp(U64); else tempil2->a1.disp(F64)=tempil2->a1.disp(I64); @@ -104,14 +98,14 @@ Bool OptIC4(CIntermediateCode *tempi) tempil1->ic_flags|=ICF_A1_TO_F64; } - ty=tempil1->a1.type&RT_MASK; - ty1=tempil2->a1.type&RT_MASK; + ty=tempil1->a1.type.raw_type; + ty1=tempil2->a1.type.raw_type; if (ty1 && ty1r.type&RT_MASK; + ty1=tempil2->r.type.raw_type; if (ty1 && ty1a1.type=tempil2->a1.type&TY_MASK+ty; + tempil1->a1.type=tempil2->a1.type&MDG_MASK+ty; pt=tempil1->a1.type_pointed_to; pt1=tempil2->a1.type_pointed_to; @@ -130,26 +124,24 @@ Bool OptIC4(CIntermediateCode *tempi) } } if (tempil1->ic_code==IC_DEREF) { - if (tempil2->ic_code==IC_ADD_CONST && - tempil2->a1.type&TY_MASK==TY_REG && - tempil1->a1.type&TY_MASK==TY_STK) { + if (tempil2->ic_code==IC_ADD_CONST && tempil2->a1.type&MDF_REG && + tempil1->a1.type&MDF_STK) { i=tempil2->ic_data; if (MIN_I32<=i<=MAX_I32 && !Bt(&cmp.non_ptr_vars_mask,tempil2->a1.reg)) { tempil1->ic_flags|=tempil2->ic_flags; tempil1->ic_code=IC_MOV; - tempil1->a1.type=TY_DISP+tempil1->a1.type_pointed_to; + tempil1->a1.type=MDF_DISP+tempil1->a1.type_pointed_to; tempil1->a1.reg=tempil2->a1.reg; tempil1->a1.disp=i; OptSetNOP2(tempil2,-1); return TRUE; } } - if (tempil2->ic_code==IC_LEA && - tempil1->a1.type&TY_MASK==TY_STK) { + if (tempil2->ic_code==IC_LEA && tempil1->a1.type&MDF_STK) { tempil1->ic_flags|=tempil2->ic_flags; tempil1->ic_code=IC_MOV; - tempil1->a1.type=tempil2->a1.type&TY_MASK+tempil1->a1.type_pointed_to; + tempil1->a1.type=tempil2->a1.type&MDG_MASK+tempil1->a1.type_pointed_to; tempil1->a1.reg=tempil2->a1.reg; tempil1->a1.disp=tempil2->a1.disp; OptFree(tempil2); @@ -158,8 +150,8 @@ Bool OptIC4(CIntermediateCode *tempi) } } if (tempil1->ic_code==IC_DEREF) { - if (tempil1->a1.type&TY_MASK==TY_REG) { - tempil1->a1.type=TY_DISP+tempil1->a1.type_pointed_to; + if (tempil1->a1.type&MDF_REG) { + tempil1->a1.type=MDF_DISP+tempil1->a1.type_pointed_to; tempil1->a1.disp=0; tempil1->ic_code=IC_MOV; return TRUE; @@ -221,22 +213,21 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) switch [code] { case IC_IMM_I64: case IC_TYPE: - tempi->a1.type=TY_IMM+RT_I64; + tempi->a1.type=MDF_IMM+RT_I64; tempi->a1.disp=tempi->ic_data; tempi->ic_code=IC_MOV; break; case IC_IMM_F64: - tempi->a1.type=TY_IMM+RT_I64; + tempi->a1.type=MDF_IMM+RT_I64; tempi->a1.disp=tempi->ic_data; tempi->a1.type_pointed_to=RT_F64; tempi->ic_code=IC_MOV; break; case IC_MOV: - if (tempi->a1.type&TY_MASK==TY_DISP && - tempi->a1.reg==REG_RBP) { + if (tempi->a1.type&MDF_DISP && tempi->a1.reg==REG_RBP) { i=CmpOffset2Reg(tempi->a1.disp,reg_offsets); if (i>=0) { - tempi->a1.type=TY_REG+tempi->a1.type&RT_MASK; + tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; tempi->a1.reg=i; tempi->a1.disp=0; } @@ -244,30 +235,27 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) break; case IC_DEREF: if (tempi1->ic_code==IC_LEA) { - if (tempi1->a1.type&TY_MASK==TY_DISP && - tempi1->a1.reg==REG_RBP) { + if (tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) { i=CmpOffset2Reg(tempi1->a1.disp,reg_offsets); if (i>=0) { tempi->ic_flags|=tempi1->ic_flags; tempi->ic_code=IC_REG; - tempi->a1.type=TY_REG+tempi->a1.type&RT_MASK; + tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; tempi->a1.reg=i; tempi->a1.disp=0; OptFree(tempi1); } } - } else if ((tempi1->ic_code==IC_ABS_ADDR || - tempi1->ic_code==IC_MOV && - tempi1->a1.type==TY_IMM+RT_I64 && - 0<=tempi1->a1.disp<=MAX_I32) && - !(tempi1->ic_flags&ICF_NO_RIP)) { + } else if ((tempi1->ic_code==IC_ABS_ADDR || tempi1->ic_code==IC_MOV && + tempi1->a1.type==MDF_IMM+RT_I64 && + 0<=tempi1->a1.disp<=MAX_I32)&& !(tempi1->ic_flags&ICF_NO_RIP)) { if (tempi1->ic_code==IC_ABS_ADDR) tempi->a1.disp=tempi1->ic_data; else tempi->a1.disp=tempi1->a1.disp; tempi->ic_flags|=tempi1->ic_flags; tempi->ic_code=IC_MOV; - tempi->a1.type=TY_RIP_DISP32+tempi->a1.type_pointed_to; + tempi->a1.type=MDF_RIP_DISP32+tempi->a1.type_pointed_to; tempi->a1.reg=REG_RIP; OptFree(tempi1); } @@ -282,15 +270,14 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) case IC_PP_: case IC_MM_: if (tempi1->ic_code==IC_LEA) { - if (tempi1->a1.type&TY_MASK==TY_DISP && - tempi1->a1.reg==REG_RBP) { + if (tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) { i=CmpOffset2Reg(tempi1->a1.disp,reg_offsets); if (i>=0) { tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.type=TY_REG+tempi->a1.type&RT_MASK; + tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; tempi->a1.reg=i; tempi->a1.disp=0; - tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_flags|=ICF_BY_VAL; OptSetNOP2(tempi1); } else goto p4_lea_gone; @@ -300,29 +287,27 @@ p4_lea_gone: tempi->a1.type=tempi1->a1.type; tempi->a1.reg=tempi1->a1.reg; tempi->a1.disp=tempi1->a1.disp; - tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_flags|=ICF_BY_VAL; OptSetNOP2(tempi1); } - } else if ((tempi1->ic_code==IC_ABS_ADDR || - tempi1->ic_code==IC_MOV && - tempi1->a1.type==TY_IMM+RT_I64 && - 0<=tempi1->a1.disp<=MAX_I32) && - !(tempi1->ic_flags&ICF_NO_RIP)) { + } else if ((tempi1->ic_code==IC_ABS_ADDR || tempi1->ic_code==IC_MOV && + tempi1->a1.type==MDF_IMM+RT_I64 && + 0<=tempi1->a1.disp<=MAX_I32)&& !(tempi1->ic_flags&ICF_NO_RIP)) { tempi->ic_flags|=tempi1->ic_flags; if (tempi1->ic_code==IC_ABS_ADDR) tempi->a1.disp=tempi1->ic_data; else tempi->a1.disp=tempi1->a1.disp; - tempi->a1.type=TY_RIP_DISP32+tempi->a1.type_pointed_to; + tempi->a1.type=MDF_RIP_DISP32+tempi->a1.type_pointed_to; tempi->a1.reg=REG_RIP; - tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_flags|=ICF_BY_VAL; OptFree(tempi1); } break; case IC_ADD: - if (tempi1->ic_code==IC_MOV && tempi1->a1.type==TY_REG+RT_I64 || + if (tempi1->ic_code==IC_MOV && tempi1->a1.type==MDF_REG+RT_I64 || tempi1->ic_code==IC_REG) { - if (tempi2->ic_code==IC_MOV && tempi2->a1.type==TY_REG+RT_I64 || + if (tempi2->ic_code==IC_MOV && tempi2->a1.type==MDF_REG+RT_I64 || tempi2->ic_code==IC_REG) { if (tempi2->a1.reg!=REG_RSP) { tempi->a1.disp=0; @@ -338,14 +323,13 @@ p4_sib: OptFree(tempi2); tempi->ic_code=IC_LEA; - tempi->a1.type=TY_SIB+RT_I64; + tempi->a1.type=MDF_SIB+RT_I64; tempi->a1.type_pointed_to=RT_I64; - tempi->a2.type=TY_NULL+tempi->a2.type&RT_MASK; + tempi->a2.type=MDF_NULL+tempi->a2.type.raw_type; } } else if (tempi2->ic_code==IC_SHL_CONST && - tempi2->a1.type==TY_REG+RT_I64 && - tempi2->ic_data<=3) { + tempi2->a1.type==MDF_REG+RT_I64 && tempi2->ic_data<=3) { if (tempi2->a1.reg!=REG_RSP) { tempi->a1.disp=0; tempi->a1.reg=tempi1->a1.reg+tempi2->a1.reg<<8; @@ -359,11 +343,11 @@ p4_sib: } } } else if (tempi1->ic_code==IC_LEA && - tempi1->a1.type&TY_MASK==TY_DISP) { + tempi1->a1.type&MDF_DISP) { if (tempi1->a1.reg==REG_RBP && CmpOffset2Reg(tempi1->a1.disp,reg_offsets)>=0) break; - if (tempi2->ic_code==IC_MOV && tempi2->a1.type==TY_REG+RT_I64 || + if (tempi2->ic_code==IC_MOV && tempi2->a1.type==MDF_REG+RT_I64 || tempi2->ic_code==IC_REG) { if (tempi2->a1.reg!=REG_RSP) { tempi->a1.disp=tempi1->a1.disp; @@ -375,8 +359,7 @@ p4_sib: goto p4_sib; } } else if (tempi2->ic_code==IC_SHL_CONST && - tempi2->a1.type==TY_REG+RT_I64 && - tempi2->ic_data<=3) { + tempi2->a1.type==MDF_REG+RT_I64 && tempi2->ic_data<=3) { if (tempi2->a1.reg!=REG_RSP) { tempi->a1.disp=tempi1->a1.disp; tempi->a1.reg=tempi1->a1.reg+tempi2->a1.reg<<8; @@ -407,44 +390,42 @@ p4_sib: case IC_ADD_EQU: case IC_SUB_EQU: if (tempi1->ic_code==IC_LEA) { - if (TY_DISP<=tempi1->a1.type&TY_MASK<=TY_SIB) { - if (tempi1->a1.type&TY_MASK==TY_DISP && tempi1->a1.reg==REG_RBP) { + if (tempi1->a1.type&(MDF_DISP|MDF_SIB)) { + if (tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) { i=CmpOffset2Reg(tempi1->a1.disp,reg_offsets); if (i>=0) { tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.type=TY_REG+tempi->a1.type&RT_MASK; + tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; tempi->a1.reg=i; tempi->a1.disp=0; OptSetNOP2(tempi1); } else { tempi->ic_flags|=tempi1->ic_flags; - tempi->a1.type=TY_DISP+tempi->a1.type&RT_MASK; + tempi->a1.type=MDF_DISP+tempi->a1.type.raw_type; tempi->a1.reg=REG_RBP; tempi->a1.disp=tempi1->a1.disp; OptSetNOP2(tempi1); } } else { - tempi->a1.type=tempi1->a1.type&TY_MASK+tempi->a1.type&RT_MASK; + tempi->a1.type=tempi1->a1.type&MDG_MASK+tempi->a1.type.raw_type; tempi->ic_flags|=tempi1->ic_flags; tempi->a1.reg=tempi1->a1.reg; tempi->a1.disp=tempi1->a1.disp; OptSetNOP2(tempi1); } - tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_flags|=ICF_BY_VAL; } } else if ((tempi1->ic_code==IC_ABS_ADDR || - tempi1->ic_code==IC_MOV && - tempi1->a1.type==TY_IMM+RT_I64 && - 0<=tempi1->a1.disp<=MAX_I32) && - !(tempi1->ic_flags&ICF_NO_RIP)) { + tempi1->ic_code==IC_MOV && tempi1->a1.type==MDF_IMM+RT_I64 && + 0<=tempi1->a1.disp<=MAX_I32)&& !(tempi1->ic_flags&ICF_NO_RIP)) { tempi->ic_flags|=tempi1->ic_flags; if (tempi1->ic_code==IC_ABS_ADDR) tempi->a1.disp=tempi1->ic_data; else tempi->a1.disp=tempi1->a1.disp; - tempi->a1.type=TY_RIP_DISP32+tempi->a1.type&RT_MASK; + tempi->a1.type=MDF_RIP_DISP32+tempi->a1.type.raw_type; tempi->a1.reg=REG_RIP; - tempi->ic_flags|=ICF_NOT_ADDR; + tempi->ic_flags|=ICF_BY_VAL; OptSetNOP2(tempi1); } break; @@ -486,18 +467,18 @@ p4_sib: case IC_LBTS: case IC_LBTR: case IC_LBTC: - if (!(tempi->ic_flags&ICF_NOT_ADDR)) { + if (!(tempi->ic_flags&ICF_BY_VAL)) { if (tempi2->ic_code==IC_ADDR) { - if (tempi2->a1.type&TY_MASK==TY_STK && - tempi2->r.type&TY_MASK==TY_STK) { + if (tempi2->a1.type&MDF_STK && + tempi2->r.type&MDF_STK) { if (tempil2=OptLag1(tempi2)) { if (tempil2->ic_code==IC_LEA) { - if (TY_IMM<=tempil2->a1.type&TY_MASKa1.type&(MDF_IMM|MDG_REG_DISP_SIB_RIP)) { if (tempi2) { tempi->ic_flags|=tempi2->ic_flags; OptFree(tempi2); } - tempi->ic_flags|=tempil2->ic_flags|ICF_NOT_ADDR; + tempi->ic_flags|=tempil2->ic_flags|ICF_BY_VAL; tempi->a2.type=tempil2->a1.type; tempi->a2.reg =tempil2->a1.reg; tempi->a2.disp=tempil2->a1.disp; @@ -506,7 +487,7 @@ p4_sib: break; } else if (tempil2->ic_code!=IC_ABS_ADDR && !(tempil2->ic_code==IC_MOV && - tempil2->a1.type==TY_IMM+RT_I64 && + tempil2->a1.type==MDF_IMM+RT_I64 && 0<=tempil2->a1.disp<=MAX_I32) || tempil2->ic_flags&ICF_NO_RIP) tempil2=NULL; @@ -518,7 +499,7 @@ p4_sib: } } } else { - if (tempi2->a1.type==TY_IMM+RT_I64 && + if (tempi2->a1.type==MDF_IMM+RT_I64 && 0<=tempi2->a1.disp<=MAX_I32 && !(tempi2->ic_flags&ICF_NO_RIP)) { tempil2=tempi2; @@ -532,19 +513,18 @@ p4_sib: tempi->ic_flags|=tempi2->ic_flags; OptFree(tempi2); } - tempi->ic_flags|=tempil2->ic_flags|ICF_NOT_ADDR; - tempi->a2.type=TY_RIP_DISP32+tempi->a2.type&RT_MASK; + tempi->ic_flags|=tempil2->ic_flags|ICF_BY_VAL; + tempi->a2.type=MDF_RIP_DISP32+tempi->a2.type.raw_type; tempi->a2.reg=REG_RIP; OptFree(tempil2); } - } else if (tempi2->ic_code==IC_MOV && - tempi2->r.type&TY_MASK==TY_STK && - tempi2->a1.type==TY_IMM+RT_I64 && + } else if (tempi2->ic_code==IC_MOV && tempi2->r.type&MDF_STK && + tempi2->a1.type==MDF_IMM+RT_I64 && 0<=tempi2->a1.disp<=MAX_I32 && !(tempi2->ic_flags&ICF_NO_RIP)) { tempi->a2.disp=tempi2->a1.disp; - tempi->ic_flags|=tempi2->ic_flags|ICF_NOT_ADDR; - tempi->a2.type=TY_RIP_DISP32+tempi->a2.type&RT_MASK; + tempi->ic_flags|=tempi2->ic_flags|ICF_BY_VAL; + tempi->a2.type=MDF_RIP_DISP32+tempi->a2.type.raw_type; tempi->a2.reg=REG_RIP; OptFree(tempi2); } @@ -579,15 +559,20 @@ p4_sib: if (!(tempil1->ic_flags&ICF_PUSH_RESULT)) { if (tempi->ic_flags&ICF_NO_DEPEND_RESULT) { tempil1->ic_flags|=ICF_NO_DEPEND_RESULT; - tempil1->r.type=TY_NULL+tempil1->r.type&RT_MASK; - } else if (tempi->a1.type&TY_MASK==TY_STK && - tempil1->r.type&TY_MASK==TY_STK) { - tempi->a1.type=TY_REG+tempi->a1.type&RT_MASK; - tempi->a1.reg=REG_RAX; + tempil1->r.type=MDF_NULL+tempil1->r.type.raw_type; + } else if (tempi->a1.type&MDF_STK && + tempil1->r.type&MDF_STK) { + tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; tempi->a1.disp=0; - tempil1->r.type=TY_REG+tempil1->r.type&RT_MASK; - tempil1->r.reg=REG_RAX; + tempil1->r.type=MDF_REG+tempil1->r.type.raw_type; tempil1->r.disp=0; + if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG) { + tempi->a1.reg=REG_R8; + tempil1->r.reg=REG_R8; + } else { + tempi->a1.reg=REG_RAX; + tempil1->r.reg=REG_RAX; + } } } break; diff --git a/Compiler/OptPass5.CPP b/Compiler/OptPass5.CPP index 5b99bc8..2ca3e81 100644 --- a/Compiler/OptPass5.CPP +++ b/Compiler/OptPass5.CPP @@ -26,30 +26,29 @@ U0 OptPass5(CCmpCtrl *cc) if (Bt(&tempi->ic_data,i)) ps->ptr--; } - if (tempi->a2.type&TY_MASK==TY_STK) { + if (tempi->a2.type&MDF_STK) { tempi1=PrsPop(ps); - if (tempi1->ic_code==IC_MOV || - tempi1->ic_code==IC_REG) { + if (tempi1->ic_code==IC_MOV || tempi1->ic_code==IC_REG) { if (tempi1->ic_flags & ICF_R_TO_INT) { - if (tempi1->a1.type&TY_MASK==TY_IMM) + if (tempi1->a1.type&MDF_IMM) tempi1->a1.disp=tempi1->a1.disp(F64); else tempi->ic_flags|=ICF_A2_TO_INT; } else if (tempi1->ic_flags&ICF_R_TO_F64) { - if (tempi1->a1.type&TY_MASK==TY_IMM) + if (tempi1->a1.type&MDF_IMM) tempi1->a1.disp(F64)=tempi1->a1.disp; else tempi->ic_flags|=ICF_A2_TO_F64; } - ty=tempi->a2.type&RT_MASK; - ty1=tempi1->a1.type&RT_MASK; + ty=tempi->a2.type.raw_type; + ty1=tempi1->a1.type.raw_type; if (ty1 && ty1r.type&RT_MASK; + ty1=tempi1->r.type.raw_type; if (ty1 && ty1a2.type=tempi1->a1.type&TY_MASK+ty; + tempi->a2.type=tempi1->a1.type&MDG_MASK+ty; pt=tempi->a2.type_pointed_to; pt1=tempi1->a1.type_pointed_to; @@ -67,18 +66,17 @@ U0 OptPass5(CCmpCtrl *cc) } } - if (tempi->a1.type&TY_MASK==TY_STK) { + if (tempi->a1.type&MDF_STK) { tempi1=PrsPop(ps); - if (tempi1->ic_code==IC_MOV || - tempi1->ic_code==IC_REG) { + if (tempi1->ic_code==IC_MOV || tempi1->ic_code==IC_REG) { if (tempi1->ic_flags & ICF_R_TO_INT) { - if (tempi1->a1.type&TY_MASK==TY_IMM) + if (tempi1->a1.type&MDF_IMM) tempi1->a1.disp=tempi1->a1.disp(F64); else tempi->ic_flags|=ICF_A1_TO_INT; } else if (tempi1->ic_flags&ICF_R_TO_F64) { - if (tempi1->a1.type&TY_MASK==TY_IMM) { - if (tempi1->a1.type & 1) //signed/unsigned + if (tempi1->a1.type&MDF_IMM) { + if (tempi1->a1.type&RTF_UNSIGNED) tempi1->a1.disp(F64)=tempi1->a1.disp(U64); else tempi1->a1.disp(F64)=tempi1->a1.disp(I64); @@ -86,14 +84,14 @@ U0 OptPass5(CCmpCtrl *cc) tempi->ic_flags|=ICF_A1_TO_F64; } - ty=tempi->a1.type&RT_MASK; - ty1=tempi1->a1.type&RT_MASK; + ty=tempi->a1.type.raw_type; + ty1=tempi1->a1.type.raw_type; if (ty1 && ty1r.type&RT_MASK; + ty1=tempi1->r.type.raw_type; if (ty1 && ty1a1.type=tempi1->a1.type&TY_MASK+ty; + tempi->a1.type=tempi1->a1.type&MDG_MASK+ty; pt=tempi->a1.type_pointed_to; pt1=tempi1->a1.type_pointed_to; @@ -110,7 +108,7 @@ U0 OptPass5(CCmpCtrl *cc) OptSetNOP2(tempi1); } } - if (tempi->r.type&TY_MASK==TY_STK && + if (tempi->r.type&MDF_STK && !(tempi->ic_flags&ICF_NO_DEPEND_RESULT)) PrsPush(ps,tempi); } diff --git a/Compiler/OptPass6.CPP b/Compiler/OptPass6.CPP index 0329e2d..f28b1f5 100644 --- a/Compiler/OptPass6.CPP +++ b/Compiler/OptPass6.CPP @@ -4,20 +4,20 @@ Bool OptIC6(CIntermediateCode *tempi) if (tempi->ic_codeic_code==IC_ADD_CONST && tempi->ic_code==IC_DEREF && - tempi->ic_flags&ICF_A1_WAS_STK && tempi->a1.type&TY_MASK==TY_REG && - tempil1->r.type&TY_MASK==TY_REG && MIN_I32<=tempil1->ic_data<=MAX_I32 && + tempi->ic_flags&ICF_A1_WAS_STK && tempi->a1.type&MDF_REG && + tempil1->r.type&MDF_REG && MIN_I32<=tempil1->ic_data<=MAX_I32 && !Bt(&cmp.non_ptr_vars_mask,tempil1->a1.reg)) { - if (tempil1->a1.type&TY_MASK==TY_REG) { + if (tempil1->a1.type&MDF_REG) { tempi->ic_flags=tempi->ic_flags&~ICF_A1_WAS_STK | tempil1->ic_flags; tempi->ic_code=IC_MOV; - tempi->a1.type=TY_DISP+tempi->a1.type_pointed_to; + tempi->a1.type=MDF_DISP+tempi->a1.type_pointed_to; tempi->a1.reg=tempil1->a1.reg; tempi->a1.disp=tempil1->ic_data; OptSetNOP2(tempil1,-1); } else { tempil1->ic_code=IC_MOV; tempi->ic_code=IC_MOV; - tempi->a1.type=TY_DISP+tempi->a1.type_pointed_to; + tempi->a1.type=MDF_DISP+tempi->a1.type_pointed_to; tempi->a1.disp=tempil1->ic_data; } return TRUE; @@ -26,99 +26,85 @@ Bool OptIC6(CIntermediateCode *tempi) } U0 OptPass6Lag(CCmpCtrl *cc,CPrsStk *ps,CIntermediateCode *tempi, - I64 *i_,I64 num_stk,I64 *_clobbered_reg_mask,I64 fun_num) + I64 *_stk_ptr,I64 reg_stk_size,I64 *_clobbered_reg_mask) { - I64 i=*i_,j,k,l,code,clobbered_reg_mask=*_clobbered_reg_mask; + I64 stk_ptr=*_stk_ptr,code, + clobbered_stk_temp_mask,clobbered_reg_mask=*_clobbered_reg_mask; CHashFun *tempf; code=tempi->ic_code; if (tempi->ic_flags&ICF_PASS_TRACE && Bt(&cc->saved_pass_trace,6)) { - "%2d:",i; + "%2d:",stk_ptr; ICPut(cc,tempi); } if (code==IC_CALL_START) { - k=MinI64(i,num_stk); - j=0; -//See $LK,"STK TEMP ALLOCATION",A="FF:::/Compiler/CInit.CPP,STK TEMP ALLOCATION"$ - if (fun_num&1) - for (l=0;l0) + clobbered_stk_temp_mask=REGG_STK_TEMP; else - for (l=0;lic_data) { if (Bt(&tempf->flags,Ff_INTERNAL)) - j=0; + clobbered_stk_temp_mask=0; else { - j&=tempf->clobbered_reg_mask; + clobbered_stk_temp_mask&=tempf->clobbered_reg_mask; clobbered_reg_mask|=tempf->clobbered_reg_mask; } } - tempi->ic_data=j; - PrsPush(ps,i); - PrsPush(ps,j); + tempi->ic_data=clobbered_stk_temp_mask; + PrsPush(ps,stk_ptr); + PrsPush(ps,clobbered_stk_temp_mask); } else if (code==IC_CALL_END) { tempi->ic_data=PrsPop(ps); - i=PrsPop(ps); + stk_ptr=PrsPop(ps); } else if (code==IC_CALL_END2) { ps->ptr--; - i=PrsPop(ps); + stk_ptr=PrsPop(ps); } if (intermediate_code_table[code].arg_cnt==IS_V_ARG) - i-=tempi->ic_data>>3; - if (tempi->a2.type&TY_MASK==TY_STK) { - i--; - if (ia2.type=TY_REG+tempi->a2.type&RT_MASK; - if (fun_num&1) - tempi->a2.reg=cmp.to_stk_temps_map_odd[i]; - else - tempi->a2.reg=cmp.to_stk_temps_map_even[i]; + stk_ptr-=tempi->ic_data>>3; + if (tempi->a2.type&MDF_STK) { + stk_ptr--; + if (stk_ptra2.type=MDF_REG+tempi->a2.type.raw_type; + tempi->a2.reg=Bsf(REGG_STK_TEMP); tempi->a2.disp=0; } } - if (tempi->a1.type&TY_MASK==TY_STK) { - i--; - if (ia1.type=TY_REG+tempi->a1.type&RT_MASK; - if (fun_num&1) - tempi->a1.reg=cmp.to_stk_temps_map_odd[i]; - else - tempi->a1.reg=cmp.to_stk_temps_map_even[i]; + if (tempi->a1.type&MDF_STK) { + stk_ptr--; + if (stk_ptra1.type=MDF_REG+tempi->a1.type.raw_type; + tempi->a1.reg=Bsf(REGG_STK_TEMP); tempi->a1.disp=0; } } - if (tempi->r.type&TY_MASK==TY_STK && !(tempi->ic_flags & ICF_PUSH_RESULT)) { - i++; - if (i<=num_stk) { - tempi->r.type=TY_REG+tempi->r.type&RT_MASK; - if (fun_num&1) { - tempi->r.reg=cmp.to_stk_temps_map_odd[i-1]; - Bts(&clobbered_reg_mask,cmp.to_stk_temps_map_odd[i-1]); - } else { - tempi->r.reg=cmp.to_stk_temps_map_even[i-1]; - Bts(&clobbered_reg_mask,cmp.to_stk_temps_map_even[i-1]); - } + if (tempi->r.type&MDF_STK && !(tempi->ic_flags & ICF_PUSH_RESULT)) { + stk_ptr++; + if (stk_ptr<=reg_stk_size) { + tempi->r.type=MDF_REG+tempi->r.type.raw_type; + tempi->r.reg=Bsf(REGG_STK_TEMP); + clobbered_reg_mask|=REGG_STK_TEMP; tempi->r.disp=0; } } while (OptIC6(tempi)); - if (tempi->r.type&RT_MASK!=RT_F64 && !(tempi->ic_flags&ICF_USE_F64)) + if (tempi->r.type.raw_type!=RT_F64 && !(tempi->ic_flags&ICF_USE_F64)) tempi->ic_flags|=ICF_USE_INT; - *i_=i; + *_stk_ptr=stk_ptr; *_clobbered_reg_mask=clobbered_reg_mask; } U0 OptPass6(CCmpCtrl *cc) { CIntermediateCode *tempi,*tempi_next,*tempil1,*tempil2,*old_tempil2; - I64 i=0,num_stk,clobbered_reg_mask=REGG_C_CLOBBERED,fun_num=0; + I64 stk_ptr=0,reg_stk_size,clobbered_reg_mask=REGG_CLOBBERED; CPrsStk *ps=cc->ps; ps->ptr=0; ps->ptr2=0; if (Bt(&cc->opts,OPTf_NO_REG_VAR) || cc->flags&CCF_NO_REG_OPT) - num_stk=0; + reg_stk_size=0; else - num_stk=cmp.num_stk_temps; + reg_stk_size=1; +#assert REGG_STK_TEMP==1<<9 tempi=cc->coc.coc_root.next; old_tempil2=NULL; tempil1=tempil2=&cmp.ic_nop; @@ -127,50 +113,54 @@ U0 OptPass6(CCmpCtrl *cc) if (tempil1->ic_code>IC_NOP2) tempil2=tempil1; tempil1=tempi; - if (tempi->a2.type&TY_MASK==TY_STK) { - if (tempil2->r.type&TY_MASK==TY_STK && + if (tempi->a2.type&MDF_STK) { + if (tempil2->r.type&MDF_STK && !(tempil2->ic_flags&ICF_PUSH_RESULT)) { - if (tempi->ic_code==IC_ASSIGN && tempi->ic_flags&ICF_NOT_ADDR && + if (tempi->ic_code==IC_ASSIGN && tempi->ic_flags&ICF_BY_VAL && tempi->ic_flags&ICF_NO_DEPEND_RESULT && tempil2->ic_code!=IC_CALL_END && tempil2->ic_code!=IC_CALL_END2 && - tempil2->ic_code!=IC_SET_RAX && + tempil2->ic_code!=IC_SET_RAX && !(tempi->ic_flags&(ICF_A2_TO_F64|ICF_A2_TO_INT)) && !(tempil2->ic_flags&(ICF_R_TO_F64|ICF_R_TO_INT))) { - tempil2->r.type =tempi->a1.type&TY_MASK+tempi->a1.type_pointed_to; + tempil2->r.type =tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to; tempil2->r.type_pointed_to=tempi->a1.type_pointed_to; tempil2->r.reg =tempi->a1.reg; tempil2->r.disp =tempi->a1.disp; tempil2->ic_flags=tempil2->ic_flags &~(ICF_NO_DEPEND_RESULT|ICF_R_WAS_STK) - |tempi->ic_flags&~(ICF_NOT_ADDR|ICF_A1_WAS_STK|ICF_A2_WAS_STK) + |tempi->ic_flags&~(ICF_BY_VAL|ICF_A1_WAS_STK|ICF_A2_WAS_STK) |ICF_DEPEND_RESULT; old_tempil2=NULL; OptSetNOP1(tempi); } else { - tempi->a2.type=TY_REG+tempi->a2.type&RT_MASK; + tempi->a2.type=MDF_REG+tempi->a2.type.raw_type; tempi->a2.reg=REG_RAX; tempi->a2.disp=0; - tempil2->r.type=TY_REG+tempil2->r.type&RT_MASK; + tempil2->r.type=MDF_REG+tempil2->r.type.raw_type; tempil2->r.reg=REG_RAX; tempil2->r.disp=0; } } - } else if (tempi->a1.type&TY_MASK==TY_STK && - tempil2->r.type&TY_MASK==TY_STK && + } else if (tempi->a1.type&MDF_STK && tempil2->r.type&MDF_STK && !(tempil2->ic_flags&ICF_PUSH_RESULT)) { - tempi->a1.type=TY_REG+tempi->a1.type&RT_MASK; - tempi->a1.reg=REG_RAX; + tempi->a1.type=MDF_REG+tempi->a1.type.raw_type; tempi->a1.disp=0; - tempil2->r.type=TY_REG+tempil2->r.type&RT_MASK; - tempil2->r.reg=REG_RAX; + tempil2->r.type=MDF_REG+tempil2->r.type.raw_type; tempil2->r.disp=0; + if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG) { + tempi->a1.reg=REG_R8; + tempil2->r.reg=REG_R8; + } else { + tempi->a1.reg=REG_RAX; + tempil2->r.reg=REG_RAX; + } } if (tempi->ic_flags & ICF_PUSH_RESULT) - tempi->r.type==TY_STK+tempi->r.type&RT_MASK; + tempi->r.type==MDF_STK+tempi->r.type.raw_type; if (old_tempil2!=tempil2) { if (tempil2->ic_code>IC_NOP2) - OptPass6Lag(cc,ps,tempil2,&i,num_stk,&clobbered_reg_mask,fun_num); + OptPass6Lag(cc,ps,tempil2,&stk_ptr,reg_stk_size,&clobbered_reg_mask); old_tempil2=tempil2; } } @@ -184,7 +174,7 @@ U0 OptPass6(CCmpCtrl *cc) LexExcept(cc,"Compiler Optimization Error at "); } if (cc->htc.fun) { - cc->htc.fun->used_reg_mask&=~REGG_C_TEMP_CLOBBERED; + cc->htc.fun->used_reg_mask&=~REGG_STK_TEMP; cc->htc.fun->used_reg_mask|=clobbered_reg_mask; cc->htc.fun->clobbered_reg_mask=clobbered_reg_mask; if (Bt(&cc->flags,CCf_PASS_TRACE_PRESENT) && diff --git a/Compiler/OptPass789A.CPP b/Compiler/OptPass789A.CPP index 3f0039c..6502834 100644 --- a/Compiler/OptPass789A.CPP +++ b/Compiler/OptPass789A.CPP @@ -61,90 +61,36 @@ cc->pass==10 is final pass, code is placed into buf. if (cc->pass==7) cc->dont_push_float=Btr(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); MemCpy(saved_p123,&tempi->a1,3*sizeof(CICArg)); - if (intermediate_code_table[tempi->ic_code].arg_cnt==IS_2_ARG && - tempi->a1.type&TY_MASK==TY_REG && tempi->a1.reg==REG_RAX) - tempi->ic_flags|=ICF_A1_FIRST; tempi->ic_cnt=0; tempi->ic_last_cnt=-1; - if (tempi->ic_flags & ICF_A1_FIRST) { - if (tempi->a1.type&TY_MASK) { - if (tempi->ic_flags & ICF_A1_TO_F64) { - ICFCvt(cc,tempi,REG_RDX, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,FALSE,CN_A1,ip2); - tempi->a1.type=TY_REG+RT_I64; - tempi->a1.reg=REG_RDX; - tempi->a1.disp=0; - tempi->ic_flags&=~ICF_A1_FIRST; - } else if (tempi->ic_flags & ICF_A1_TO_INT) { - ICFCvt(cc,tempi,REG_RDX, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,TRUE,CN_A1,ip2); - tempi->a1.type=TY_REG+RT_I64; - tempi->a1.reg=REG_RDX; - tempi->a1.disp=0; - tempi->ic_flags&=~ICF_A1_FIRST; - } + if (tempi->a2.type.mode) { + if (tempi->ic_flags & ICF_A2_TO_F64) { + ICFCvt(cc,tempi,REG_RAX, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,FALSE,CN_A2,ip2); + tempi->a2.type=MDF_REG+RT_I64; + tempi->a2.reg=REG_RAX; + tempi->a2.disp=0; + } else if (tempi->ic_flags & ICF_A2_TO_INT) { + ICFCvt(cc,tempi,REG_RAX, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,TRUE,CN_A2,ip2); + tempi->a2.type=MDF_REG+RT_I64; + tempi->a2.reg=REG_RAX; + tempi->a2.disp=0; } - if (tempi->a2.type&TY_MASK) { - if (tempi->ic_flags & ICF_A2_TO_F64) { - if (tempi->ic_flags&ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - tempi->a1.type=TY_REG+RT_I64; - tempi->a1.reg=REG_RDX; - tempi->a1.disp=0; - tempi->ic_flags&=~ICF_A1_FIRST; - } - ICFCvt(cc,tempi,REG_RAX, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,FALSE,CN_A2,ip2); - tempi->a2.type=TY_REG+RT_I64; - tempi->a2.reg=REG_RAX; - tempi->a2.disp=0; - } else if (tempi->ic_flags & ICF_A2_TO_INT) { - if (tempi->ic_flags&ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - tempi->a1.type=TY_REG+RT_I64; - tempi->a1.reg=REG_RDX; - tempi->a1.disp=0; - tempi->ic_flags&=~ICF_A1_FIRST; - } - ICFCvt(cc,tempi,REG_RAX, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,TRUE,CN_A2,ip2); - tempi->a2.type=TY_REG+RT_I64; - tempi->a2.reg=REG_RAX; - tempi->a2.disp=0; - } - } - } else { - if (tempi->a2.type&TY_MASK) { - if (tempi->ic_flags & ICF_A2_TO_F64) { - ICFCvt(cc,tempi,REG_RAX, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,FALSE,CN_A2,ip2); - tempi->a2.type=TY_REG+RT_I64; - tempi->a2.reg=REG_RAX; - tempi->a2.disp=0; - } else if (tempi->ic_flags & ICF_A2_TO_INT) { - ICFCvt(cc,tempi,REG_RAX, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,TRUE,CN_A2,ip2); - tempi->a2.type=TY_REG+RT_I64; - tempi->a2.reg=REG_RAX; - tempi->a2.disp=0; - } - } - if (tempi->a1.type&TY_MASK) { - if (tempi->ic_flags & ICF_A1_TO_F64) { - ICFCvt(cc,tempi,REG_RDX, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,FALSE,CN_A1,ip2); - tempi->a1.type=TY_REG+RT_I64; - tempi->a1.reg=REG_RDX; - tempi->a1.disp=0; - } else if (tempi->ic_flags & ICF_A1_TO_INT) { - ICFCvt(cc,tempi,REG_RDX, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,TRUE,CN_A1,ip2); - tempi->a1.type=TY_REG+RT_I64; - tempi->a1.reg=REG_RDX; - tempi->a1.disp=0; - } + } + if (tempi->a1.type.mode) { + if (tempi->ic_flags & ICF_A1_TO_F64) { + ICFCvt(cc,tempi,REG_RDX, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,FALSE,CN_A1,ip2); + tempi->a1.type=MDF_REG+RT_I64; + tempi->a1.reg=REG_RDX; + tempi->a1.disp=0; + } else if (tempi->ic_flags & ICF_A1_TO_INT) { + ICFCvt(cc,tempi,REG_RDX, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,TRUE,CN_A1,ip2); + tempi->a1.type=MDF_REG+RT_I64; + tempi->a1.reg=REG_RDX; + tempi->a1.disp=0; } } switch [tempi->ic_code] { @@ -191,8 +137,7 @@ cc->pass==10 is final pass, code is placed into buf. case IC_RIP: ICU16(tempi,0xB848); ICU64(tempi,ip2+tempi->ic_cnt-2); - if (cc->flags&CCF_AOT_COMPILE && buf && - !(cc->flags&CCF_NO_ABSS)) { + if (cc->flags&CCF_AOT_COMPILE && buf &&!(cc->flags&CCF_NO_ABSS)) { tempa=CAlloc(sizeof(CAOTAbsAddr)); tempa->next=aotc->abss; tempa->type=AAT_ADD_U64; @@ -202,7 +147,7 @@ cc->pass==10 is final pass, code is placed into buf. break; sub_switch_end: ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip2); + MDF_REG+RT_I64,REG_RAX,0,ip2); break; case IC_BR_CARRY: ICFlagBranch(tempi,ip,0x72820F,buf); @@ -356,7 +301,7 @@ cc->pass==10 is final pass, code is placed into buf. else i=lb->addr+buf; ICLea(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_RIP_DISP32+RT_PTR,0,i,cc,buf,ip2); + MDF_RIP_DISP32+RT_PTR,0,i,cc,buf,ip2); break; case IC_ASM: tempaot=tempi->ic_data; @@ -442,12 +387,11 @@ cc->pass==10 is final pass, code is placed into buf. case IC_LEAVE: if (cc->htc.fun) { if (Bt(&cc->htc.fun->flags,Ff_INTERRUPT)) - ICPopRegs(tempi,REGG_C_CLOBBERED|cc->htc.fun->used_reg_mask& - (REGG_C_LOCAL_VARS|REGG_C_LOCAL_NON_PTR_VARS| - REGG_C_TEMP_CLOBBERED)); + ICPopRegs(tempi,REGG_CLOBBERED|cc->htc.fun->used_reg_mask& + (REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS|REGG_STK_TEMP)); else ICPopRegs(tempi,cc->htc.fun->used_reg_mask& - (REGG_C_LOCAL_VARS|REGG_C_LOCAL_NON_PTR_VARS)); + (REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS)); } if (tempi->ic_data<=MAX_I16) { if (tempi->ic_data) @@ -487,14 +431,16 @@ cc->pass==10 is final pass, code is placed into buf. ICU8(tempi,0x64); //It's ugly to use ic_class here ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+CmpRawType(tempi->ic_class),REG_RAX,tempi->ic_data,ip2); + MDF_DISP+CmpRawType(tempi->ic_class),REG_RAX,tempi->ic_data, + ip2); break; case IC_MOV_GS: ICZero(tempi,REG_RAX); ICU8(tempi,0x65); //It's ugly to use ic_class here ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_DISP+CmpRawType(tempi->ic_class),REG_RAX,tempi->ic_data,ip2); + MDF_DISP+CmpRawType(tempi->ic_class),REG_RAX,tempi->ic_data, + ip2); break; case IC_HOLYC_TYPECAST: ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -507,7 +453,7 @@ cc->pass==10 is final pass, code is placed into buf. ICNot(tempi,ip2); break; case IC_UNARY_MINUS: - if (tempi->r.type&RT_MASK==RT_F64) + if (tempi->r.type.raw_type==RT_F64) ICFUnaryMinus(cc,tempi,buf,ip2); else ICUnaries(tempi,SLASH_OP_NEG,ip2); @@ -730,13 +676,13 @@ cc->pass==10 is final pass, code is placed into buf. case IC_SHL_CONST: ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - TY_IMM+RT_I64,0,tempi->ic_data, + MDF_IMM+RT_I64,0,tempi->ic_data, 0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); break; case IC_SHR_CONST: ICShift(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, - TY_IMM+RT_I64,0,tempi->ic_data, + MDF_IMM+RT_I64,0,tempi->ic_data, 0xE8D1E8D3E8C1,0xF8D1F8D3F8C1,ip2); break; case IC_ADD_CONST: @@ -755,20 +701,18 @@ cc->pass==10 is final pass, code is placed into buf. ICAddRSP(tempi,-tempi->ic_data,FALSE); if (cc->htc.fun) { if (Bt(&cc->htc.fun->flags,Ff_INTERRUPT)) - ICPushRegs(tempi,REGG_C_CLOBBERED|cc->htc.fun->used_reg_mask& - (REGG_C_LOCAL_VARS|REGG_C_LOCAL_NON_PTR_VARS| - REGG_C_TEMP_CLOBBERED)); + ICPushRegs(tempi,REGG_CLOBBERED|cc->htc.fun->used_reg_mask& + (REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS|REGG_STK_TEMP)); else { - if (sys_var_init_flag&1 && i) + if (sys_var_init_flag && i) ICLocalVarInit(tempi); ICPushRegs(tempi,cc->htc.fun->used_reg_mask - &(REGG_C_LOCAL_VARS|REGG_C_LOCAL_NON_PTR_VARS)); + &(REGG_LOCAL_VARS|REGG_LOCAL_NON_PTR_VARS)); } for (i=0;i0 && reg_offsets[i].offset!=MAX_I64) { tempc=OptClassFwd(reg_offsets[i].m->member_class); - ICMov(tempi,TY_REG+RT_I64,i,0, - TY_DISP+tempc->raw_type, + ICMov(tempi,MDF_REG+RT_I64,i,0,MDF_DISP+tempc->raw_type, REG_RBP,reg_offsets[i].offset,ip2); } } @@ -792,18 +736,18 @@ cc->pass==10 is final pass, code is placed into buf. ICU8(tempi,0x58); break; case IC_INVLPG: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU24(tempi,0x38010F); break; case IC_CLFLUSH: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU24(tempi,0x38AE0F); break; case IC_GET_RFLAGS: ICU8(tempi,0x9C); - ICPop(tempi,TY_REG+RT_I64,REG_RAX,0,ip2); + ICPop(tempi,MDF_REG+RT_I64,REG_RAX,0,ip2); break; case IC_CARRY: ICU24(tempi,0xC0920F); //SETC AL @@ -820,24 +764,24 @@ cc->pass==10 is final pass, code is placed into buf. ICU8(tempi,0x9D); break; case IC_GET_RBP: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_REG+RT_I64,REG_RBP,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + MDF_REG+RT_I64,REG_RBP,0,ip2); break; case IC_SET_RBP: - ICMov(tempi,TY_REG+RT_I64,REG_RBP,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RBP,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); break; case IC_GET_RSP: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - TY_REG+RT_I64,REG_RSP,0,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + MDF_REG+RT_I64,REG_RSP,0,ip2); break; case IC_SET_RSP: - ICMov(tempi,TY_REG+RT_I64,REG_RSP,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RSP,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); break; case IC_RETURN_VAL: case IC_SET_RAX: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); break; case IC_RETURN_VAL2: @@ -863,21 +807,21 @@ cc->pass==10 is final pass, code is placed into buf. 0xBB0F,0x38BA0F,ip2); break; case IC_BSF: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU32(tempi,0xC0BC0F48); ICU16(tempi,0x0375); ICU24(tempi,0xD0F748); break; case IC_BSR: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU32(tempi,0xC0BD0F48); ICU16(tempi,0x0375); ICU24(tempi,0xD0F748); break; case IC_SIGN_I64: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICCopyTemplate(cc,tempi,CMP_TEMPLATE_SIGN_I64, TRUE,FALSE,FALSE,CN_MAIN); @@ -916,7 +860,7 @@ cc->pass==10 is final pass, code is placed into buf. ICFTemplateFun(cc,tempi,CMP_TEMPLATE_ATAN,ip2); break; case IC_ABS_I64: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU24(tempi,0xC08548); ICU16(tempi,0x0379); @@ -962,12 +906,12 @@ cc->pass==10 is final pass, code is placed into buf. ICQueRem(tempi,ip2); break; case IC_STRLEN: - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICCopyTemplate(cc,tempi,CMP_TEMPLATE_STRLEN,TRUE,FALSE,FALSE,CN_MAIN); break; case IC_IN_U32: - if (tempi->a1.type&TY_MASK==TY_IMM) { + if (tempi->a1.type&MDF_IMM) { ICU16(tempi,0xC033); if (tempi->a1.disp<=MAX_U8) ICU16(tempi,0xE5+tempi->a1.disp<<8); @@ -976,14 +920,14 @@ cc->pass==10 is final pass, code is placed into buf. ICU8(tempi,0xED); } } else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU16(tempi,0xC033); ICU8(tempi,0xED); } break; case IC_IN_U16: - if (tempi->a1.type&TY_MASK==TY_IMM) { + if (tempi->a1.type&MDF_IMM) { ICU16(tempi,0xC033); if (tempi->a1.disp<=MAX_U8) ICU24(tempi,0xE500+OC_OP_SIZE_PREFIX+tempi->a1.disp<<16); @@ -992,14 +936,14 @@ cc->pass==10 is final pass, code is placed into buf. ICU16(tempi,0xED00+OC_OP_SIZE_PREFIX); } } else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU16(tempi,0xC033); ICU16(tempi,0xED00+OC_OP_SIZE_PREFIX); } break; case IC_IN_U8: - if (tempi->a1.type&TY_MASK==TY_IMM) { + if (tempi->a1.type&MDF_IMM) { ICU16(tempi,0xC033); if (tempi->a1.disp<=MAX_U8) ICU16(tempi,0xE4+tempi->a1.disp<<8); @@ -1008,15 +952,15 @@ cc->pass==10 is final pass, code is placed into buf. ICU8(tempi,0xEC); } } else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU16(tempi,0xC033); ICU8(tempi,0xEC); } break; case IC_OUT_U32: - if (tempi->a2.type&TY_MASK==TY_IMM) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + if (tempi->a2.type&MDF_IMM) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); if (tempi->a2.disp<=MAX_U8) ICU16(tempi,0xE7+tempi->a2.disp<<8); @@ -1025,23 +969,16 @@ cc->pass==10 is final pass, code is placed into buf. ICU8(tempi,0xEF); } } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU8(tempi,0xEF); } break; case IC_OUT_U16: - if (tempi->a2.type&TY_MASK==TY_IMM) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + if (tempi->a2.type&MDF_IMM) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); if (tempi->a2.disp<=MAX_U8) ICU24(tempi,0xE700+OC_OP_SIZE_PREFIX+tempi->a2.disp<<16); @@ -1050,23 +987,16 @@ cc->pass==10 is final pass, code is placed into buf. ICU16(tempi,0xEF00+OC_OP_SIZE_PREFIX); } } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU16(tempi,0xEF00+OC_OP_SIZE_PREFIX); } break; case IC_OUT_U8: - if (tempi->a2.type&TY_MASK==TY_IMM) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, + if (tempi->a2.type&MDF_IMM) { + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); if (tempi->a2.disp<=MAX_U8) ICU16(tempi,0xE6+tempi->a2.disp<<8); @@ -1075,17 +1005,10 @@ cc->pass==10 is final pass, code is placed into buf. ICU8(tempi,0xEE); } } else { - if (tempi->ic_flags & ICF_A1_FIRST) { - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - } else { - ICMov(tempi,TY_REG+RT_I64,REG_RDX,0, - tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); - ICMov(tempi,TY_REG+RT_I64,REG_RAX,0, - tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); - } + ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, + tempi->a2.type,tempi->a2.reg,tempi->a2.disp,ip2); + ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, + tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip2); ICU8(tempi,0xEE); } break; @@ -1105,9 +1028,9 @@ cc->pass==10 is final pass, code is placed into buf. break; case IC_CALL_END: ICPopRegs(tempi,tempi->ic_data); - if (tempi->r.type&TY_MASK) + if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip2); + MDF_REG+RT_I64,REG_RAX,0,ip2); break; case IC_POP_REGS: ICPopRegs(tempi,tempi->ic_data); @@ -1122,24 +1045,24 @@ cc->pass==10 is final pass, code is placed into buf. ICPut(cc,tempi); LexExcept(cc,"Compiler Optimization Error at "); } - if (tempi->r.type&TY_MASK) { + if (tempi->r.type.mode) { if (tempi->ic_flags & ICF_R_TO_F64) { if (tempi->ic_code==IC_PUSH_CMP) { - ICU24(tempi,0xDC8B48); - ICU24(tempi,0x2BDF48); - ICU24(tempi,0x1BDD48); - ICU8(tempi,0x9B); + ICU24(tempi,0x242CDF); //FILD U64 [RSP] + ICU24(tempi,0x241CDD); //FSTP U64 [RSP] } else { ICFCvt(cc,tempi,REG_RAX,tempi->r.type,tempi->r.reg,tempi->r.disp, FALSE,CN_R,ip2); - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip2); + if (!Bt(&tempi->ic_flags,ICf_DONT_POP_FLOAT0+ + cc->cur_ic_float_op_num-1)) + ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, + MDF_REG+RT_I64,REG_RAX,0,ip2); } } else if (tempi->ic_flags & ICF_R_TO_INT) { ICFCvt(cc,tempi,REG_RAX,tempi->r.type,tempi->r.reg,tempi->r.disp, TRUE,CN_R,ip2); ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - TY_REG+RT_I64,REG_RAX,0,ip2); + MDF_REG+RT_I64,REG_RAX,0,ip2); } } } diff --git a/Compiler/PrsExp.CPP b/Compiler/PrsExp.CPP index f619360..188c05f 100644 --- a/Compiler/PrsExp.CPP +++ b/Compiler/PrsExp.CPP @@ -203,7 +203,7 @@ pe_do_binary_op: tempc=OptClassFwd(tempi->ic_class); if (intermediate_code_table[tempi->ic_code].type!=IST_DEREF || !tempc->ptr_stars_cnt && !Bt(&tempc->flags,Cf_INTERNAL_TYPE)) - LexExcept(cc,"invalid lval at "); + LexExcept(cc,"Invalid lval at "); tempi->ic_code=IC_NOP1; //Important for setting class (pretty sure) cur_op.u8[2]=PREC_ASSIGN|ASSOCF_RIGHT; } @@ -302,7 +302,7 @@ U0 PrsSizeOf(CCmpCtrl *cc) CDbgInfo *dbg_info; I64 i; if (cc->token!=TK_IDENT) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); if (tempm=cc->local_var_entry) { tempc=tempm->member_class; i=tempc->size*tempm->dim.total_cnt; @@ -312,7 +312,7 @@ U0 PrsSizeOf(CCmpCtrl *cc) if (!(tempc=cc->hash_entry) || !(tempc->type & (HTT_CLASS|HTT_INTERNAL_TYPE|HTT_GLBL_VAR| HTT_FUN|HTT_EXPORT_SYS_SYM))) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); if (tempc->type&(HTT_FUN|HTT_EXPORT_SYS_SYM)) { if (!(dbg_info=tempc(CHashFun *)->dbg_info)) LexExcept(cc,"Size not defined at "); @@ -324,11 +324,11 @@ U0 PrsSizeOf(CCmpCtrl *cc) while (Lex(cc)=='.') { pu_sizeof_member: if (!(tempc->type & (HTT_CLASS|HTT_GLBL_VAR))) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); else if (tempc->type & HTT_GLBL_VAR) tempc=tempc(CHashGlblVar *)->var_class; if (Lex(cc)!=TK_IDENT || !(tempm=MemberFind(cc->cur_str,tempc))) - LexExcept(cc,"invalid member at "); + LexExcept(cc,"Invalid member at "); else if (cc->local_var_entry) cc->local_var_entry->use_cnt--; tempc=tempm->member_class; @@ -351,22 +351,22 @@ U0 PrsOffsetOf(CCmpCtrl *cc) CMemberLst *tempm; I64 i; if (cc->token!=TK_IDENT) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); if (tempm=cc->local_var_entry) tempc=tempm->member_class; else { tempc=cc->hash_entry; if (!tempc || !(tempc->type & (HTT_CLASS|HTT_GLBL_VAR))) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); else if (tempc->type & HTT_GLBL_VAR) tempc=tempc(CHashGlblVar *)->var_class; } if (Lex(cc)!='.') - LexExcept(cc,"expecting '.' at "); + LexExcept(cc,"Expecting '.' at "); i=0; do { if (Lex(cc)!=TK_IDENT || !(tempm=MemberFind(cc->cur_str,tempc))) - LexExcept(cc,"invalid member at "); + LexExcept(cc,"Invalid member at "); else if (cc->local_var_entry) cc->local_var_entry->use_cnt--; i+=tempm->offset; @@ -437,13 +437,13 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) if (cc->token==',') Lex(cc); else if (cc->token!=';') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); } else { if (needs_right_paren) { if (cc->token==',') Lex(cc); else if (cc->token!=')') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); } } } @@ -494,7 +494,7 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) if (cc->token==',') Lex(cc); else - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); } COCInit(cc); if (!PrsExpression(cc,NULL,FALSE,ps)) @@ -511,7 +511,7 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) if (cc->token==',') Lex(cc); else - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); } COCInit(cc); if (!PrsExpression(cc,NULL,FALSE,ps)) @@ -528,7 +528,7 @@ I64 PrsFunCall(CCmpCtrl *cc,CPrsStk *ps,Bool indirect,CHashFun *tempf) if (cc->token==')') Lex(cc); else - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); } tempcbh1=tempcbh->coc_next; tempcbh->coc_next=cc->coc.coc_next; @@ -622,8 +622,7 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, if (Bt(&tempf->flags,Cf_EXTERN)) { if (cc->flags&CCF_AOT_COMPILE) { if (cc->flags&CCF_ASM_EXPRESSIONS) { - if (tempex=HashFind( - tempf->str,cc->htc.hash_table_lst, + if (tempex=HashFind(tempf->str,cc->htc.hash_table_lst, HTT_EXPORT_SYS_SYM)) goto pu_export_sys_sym; else @@ -634,8 +633,7 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, cc->abs_cnts.externs++; ICAdd(cc,IC_IMM_I64, &tempf->executable_addr,cmp.internal_types[RT_PTR]); - ICAdd(cc,IC_DEREF,0, - cmp.internal_types[RT_PTR]); + ICAdd(cc,IC_DEREF,0,cmp.internal_types[RT_PTR]); } else { if (cc->flags&CCF_AOT_COMPILE) { ICAdd(cc,IC_ABS_ADDR, @@ -673,7 +671,7 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, return PE_UNARY_TERM2; sub_switch_start: - case TK_INTEGER: + case TK_INT: case TK_CHAR_CONST: case TK_INS_BIN_SIZE: if (cc->cur_i64<0) @@ -737,7 +735,7 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, if (!paren_warn) *paren_prec=PREC_NULL; if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); Lex(cc); //skip ) cc->flags= cc->flags & ~CCF_ARRAY | CCF_RAX | CCF_PAREN; return PE_UNARY_MODIFIERS; @@ -782,7 +780,7 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, i=PrsPop(ps); ps->ptr--; if (i.u16[0]!=IC_ADDR) - LexExcept(cc,"expecting '&' at "); + LexExcept(cc,"Expecting '&' at "); ICAdd(cc,IC_IMM_I64,tempm->offset,cmp.internal_types[RT_PTR]); *_local_var=tempm; Lex(cc); @@ -805,7 +803,7 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, pu_ident_but_not_local_var: if (!(tempex=cc->hash_entry)) { if (!(cc->flags & CCF_ASM_EXPRESSIONS)) - LexExcept(cc,"invalid lval at "); + LexExcept(cc,"Invalid lval at "); tempc=NULL; pu_new_sys_sym: tempex=CAlloc(sizeof(CHashExport),Fs->code_heap); @@ -912,7 +910,7 @@ pu_export_sys_sym: PrsSizeOf(cc); while (j--) { if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); Lex(cc); } return PE_MAYBE_MODIFIERS; @@ -925,7 +923,7 @@ pu_export_sys_sym: PrsOffsetOf(cc); while (j--) { if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); Lex(cc); } return PE_MAYBE_MODIFIERS; @@ -943,14 +941,14 @@ pu_export_sys_sym: Lex(cc); while (j--) { if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); Lex(cc); } return PE_MAYBE_MODIFIERS; } } } - LexExcept(cc,"missing expression at "); + LexExcept(cc,"Missing expression at "); } I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, @@ -987,10 +985,10 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, if (!(cc->flags & CCF_RAX)) tempc--; if (!(tempc->type & HTT_CLASS)) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); if (Lex(cc)!=TK_IDENT || !(tempm=MemberFind(cc->cur_str,tempc))) - LexExcept(cc,"invalid member at "); + LexExcept(cc,"Invalid member at "); else if (cc->local_var_entry) cc->local_var_entry->use_cnt--; Lex(cc); //skip member name @@ -1017,7 +1015,7 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, if (!*unary_post_prec) *unary_post_prec=PREC_TERM; if (Lex(cc)!=TK_IDENT) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); if (Btr(&cc->flags,CCf_FUN_EXP)) ps->ptr2--; cc->flags&=~CCF_ARRAY; @@ -1044,7 +1042,7 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, tempi->ic_class=tempc; ICAdd(cc,IC_HOLYC_TYPECAST,was_paren,tempc); if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); Lex(cc); return PE_UNARY_MODIFIERS; case '[': @@ -1053,11 +1051,11 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, Lex(cc); tempc=OptClassFwd(cc->coc.coc_root.last->ic_class); if (!tempc->ptr_stars_cnt) - LexExcept(cc,"not array or ptr "); + LexExcept(cc,"Not array or ptr "); if (!(cc->flags & (CCF_ARRAY | CCF_RAX))) { tempc=OptClassFwd(tempc-1); if (!tempc->ptr_stars_cnt) - LexExcept(cc,"not array or ptr "); + LexExcept(cc,"Not array or ptr "); ICAdd(cc,IC_DEREF+PREC_UNARY_PRE<<16,0,tempc); } tempc1=tempc-1; @@ -1069,7 +1067,7 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, throw('Compiler'); cc->flags=cc->flags&~CCF_FUN_EXP|old_flags&CCF_FUN_EXP; if (cc->token!=']') - LexExcept(cc,"missing ']' at "); + LexExcept(cc,"Missing ']' at "); Lex(cc); //skip ] tempi1=cc->coc.coc_root.last; tempi1->ic_flags|=ICF_R_TO_INT; @@ -1085,7 +1083,7 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, throw('Compiler'); cc->flags=cc->flags&~CCF_FUN_EXP|old_flags&CCF_FUN_EXP; if (cc->token!=']') - LexExcept(cc,"missing ']' at "); + LexExcept(cc,"Missing ']' at "); Lex(cc); //skip ] tempi1=cc->coc.coc_root.last; tempi1->ic_flags|=ICF_R_TO_INT; diff --git a/Compiler/PrsStmt.CPP b/Compiler/PrsStmt.CPP index 6031db5..9074101 100644 --- a/Compiler/PrsStmt.CPP +++ b/Compiler/PrsStmt.CPP @@ -2,7 +2,7 @@ CHashClass *PrsClass(CCmpCtrl *cc,I64 keyword,I64 fsp_flags,Bool is_extern) { CHashClass *tempc,*base_class; if (cc->token!=TK_IDENT) - LexExcept(cc,"expecting identifier at "); + LexExcept(cc,"Expecting identifier at "); if (is_extern) { tempc=PrsClassNew; tempc->str=cc->cur_str; @@ -50,7 +50,7 @@ CHashClass *PrsClass(CCmpCtrl *cc,I64 keyword,I64 fsp_flags,Bool is_extern) if (Lex(cc)==':') { if (Lex(cc)!=TK_IDENT || !(base_class=cc->hash_entry) || !(base_class->type&HTT_CLASS)) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); if (Lex(cc)==',') LexExcept(cc,"Only one base class allowed at this time at "); tempc->base_class=base_class; @@ -91,7 +91,7 @@ CHashFun *PrsFunJoin(CCmpCtrl *cc, } else tempf=NULL; if (tempf) { - tempf->used_reg_mask=REGG_C_CLOBBERED+REGG_SAVED+REGG_C_TEMP_CLOBBERED; + tempf->used_reg_mask=REGG_CLOBBERED+REGG_SAVED+REGG_STK_TEMP; Free(tempf->src_link); tempf->src_link=NULL; Free(tempf->index); @@ -100,8 +100,8 @@ CHashFun *PrsFunJoin(CCmpCtrl *cc, MemberLstDel(tempf); } else { tempf=PrsFunNew; - tempf->used_reg_mask=REGG_C_CLOBBERED+REGG_SAVED+REGG_C_TEMP_CLOBBERED; - tempf->clobbered_reg_mask=REGG_C_CLOBBERED+REGG_C_TEMP_CLOBBERED; + tempf->used_reg_mask=REGG_CLOBBERED+REGG_SAVED+REGG_STK_TEMP; + tempf->clobbered_reg_mask=REGG_CLOBBERED+REGG_STK_TEMP; tempf->str=name; if (cc->flags&CCF_AOT_COMPILE) tempf->executable_addr=aotc->ip; @@ -214,9 +214,8 @@ U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tempc, while (TRUE) { tempc=PrsType(cc,&saved_tempc,&saved_mode,NULL,&st, &tempf_fun_ptr,&tempex,&tempad,fsp_flags); - if (!st) - return; + if (!st) return; if (tempad.next) is_array=TRUE; else if (tempad.total_cnt<0) { @@ -228,7 +227,7 @@ U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tempc, val=saved_val; mode=saved_mode; if (tempex && mode&255==PRS0_EXTERN && !(cc->flags&CCF_AOT_COMPILE) && - tempex->type & HTT_EXPORT_SYS_SYM) { + tempex->type&HTT_EXPORT_SYS_SYM) { val=tempex->val; mode=PRS0__EXTERN|PRS1_NULL; } @@ -352,7 +351,7 @@ U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tempc, tempg->type=HTT_GLBL_VAR | HTF_EXPORT; if (tempex && tempex->type & HTT_GLBL_VAR) has_alias=TRUE; - if (sys_var_init_flag&1) + if (sys_var_init_flag) for (k=0;ktype&HTF_UNRESOLVED && MHeapCtrl(tempex)==MHeapCtrl(tempg)) has_alias=TRUE; - if (sys_var_init_flag&1) + if (sys_var_init_flag) MemSet(tempg->data_addr,sys_var_init_val,j); } } @@ -413,14 +412,14 @@ U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tempc, if (temphg) temphg->size=tempg->size; if (cc->flags&CCF_AOT_COMPILE) { - if (sys_var_init_flag&1) + if (sys_var_init_flag) for (k=0;ksize;k++) AOTStoreCodeU8(cc,sys_var_init_val); else for (k=0;ksize;k++) AOTStoreCodeU8(cc,0); } else - if (sys_var_init_flag&1) + if (sys_var_init_flag) MemSet(tempg->data_addr,sys_var_init_val,k); LexPopRestore(cc); } @@ -445,7 +444,7 @@ U0 PrsGlblVarLst(CCmpCtrl *cc,I64 saved_mode,CHashClass *saved_tempc, Lex(cc); else { if (cc->token!=';') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); Lex(cc); return; } @@ -458,12 +457,12 @@ U0 PrsIf(CCmpCtrl *cc,I64 try_cnt,CCodeMisc *lb_break) CCodeMisc *lb,*lb1; I64 k; if (cc->token!='(') - LexExcept(cc,"expecting '(' at "); + LexExcept(cc,"Expecting '(' at "); Lex(cc); if (!PrsExpression(cc,NULL,FALSE)) throw('Compiler'); if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); Lex(cc); lb=COCMiscNew(cc,CMT_LABEL); ICAdd(cc,IC_BR_ZERO,lb,0); @@ -484,14 +483,14 @@ U0 PrsWhile(CCmpCtrl *cc,I64 try_cnt) { CCodeMisc *lb,*lb_done; if (cc->token!='(') - LexExcept(cc,"expecting '(' at "); + LexExcept(cc,"Expecting '(' at "); Lex(cc); lb=COCMiscNew(cc,CMT_LABEL); ICAdd(cc,IC_LABEL,lb,0); if (!PrsExpression(cc,NULL,FALSE)) throw('Compiler'); if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); Lex(cc); lb_done=COCMiscNew(cc,CMT_LABEL); ICAdd(cc,IC_BR_ZERO,lb_done,0); @@ -508,18 +507,18 @@ U0 PrsDoWhile(CCmpCtrl *cc,I64 try_cnt) ICAdd(cc,IC_LABEL,lb,0); PrsStmt(cc,try_cnt,lb_done); if (PrsKeyWord(cc)!=KW_WHILE) - LexExcept(cc,"missing 'while' at"); + LexExcept(cc,"Missing 'while' at"); if (Lex(cc)!='(') - LexExcept(cc,"expecting '(' at "); + LexExcept(cc,"Expecting '(' at "); Lex(cc); if (!PrsExpression(cc,NULL,FALSE)) throw('Compiler'); if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); ICAdd(cc,IC_BR_NOT_ZERO,lb,0); ICAdd(cc,IC_LABEL,lb_done,0); if (Lex(cc)!=';') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); Lex(cc); } @@ -529,7 +528,7 @@ U0 PrsFor(CCmpCtrl *cc,I64 try_cnt) CCodeMisc *lb,*lb_done; if (cc->token!='(') - LexExcept(cc,"expecting '(' at "); + LexExcept(cc,"Expecting '(' at "); Lex(cc); PrsStmt(cc,try_cnt); @@ -540,7 +539,7 @@ U0 PrsFor(CCmpCtrl *cc,I64 try_cnt) lb_done=COCMiscNew(cc,CMT_LABEL); ICAdd(cc,IC_BR_ZERO,lb_done,0); if (cc->token!=';') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); Lex(cc); COCPush(cc); @@ -551,7 +550,7 @@ U0 PrsFor(CCmpCtrl *cc,I64 try_cnt) tempcbh=COCPopNoFree(cc); COCPop(cc); if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); Lex(cc); PrsStmt(cc,try_cnt,lb_done); @@ -586,7 +585,7 @@ U0 PrsSwitch(CCmpCtrl *cc,I64 try_cnt) else if (cc->token=='[') nobound=TRUE; else - LexExcept(cc,"expecting '(' or '[' at "); + LexExcept(cc,"Expecting '(' or '[' at "); Lex(cc); QueInit(&root); @@ -605,14 +604,14 @@ U0 PrsSwitch(CCmpCtrl *cc,I64 try_cnt) if (nobound) { ICAdd(cc,IC_NOBOUND_SWITCH,mc_jt,0); if (cc->token!=']') - LexExcept(cc,"missing ']' at "); + LexExcept(cc,"Missing ']' at "); } else { ICAdd(cc,IC_SWITCH,mc_jt,0); if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); } if (Lex(cc)!='{') - LexExcept(cc,"expecting '{' at "); + LexExcept(cc,"Expecting '{' at "); Lex(cc); ICAdd(cc,IC_LABEL,mc_jt->begin,0); while (TRUE) { @@ -625,7 +624,7 @@ sw_cont: if (Lex(cc)==':') Lex(cc); else - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); tempss=MAlloc(sizeof(CSubSwitch)); QueIns(tempss,root.last); root.last->lb_break=COCMiscNew(cc,CMT_LABEL); @@ -707,10 +706,11 @@ sw_cont: temps->next=header; header=temps; } + k_start=k_end; } else - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); } else - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); break; case KW_DFT: if (root.next!=&root) { @@ -722,7 +722,7 @@ sw_cont: if (cc->token==':') Lex(cc); else - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); if (root.next!=&root) { tempss=root.next; while (tempss!=&root) { @@ -743,18 +743,18 @@ sw_sub_end: ICAdd(cc,IC_LABEL,tempss->lb_break,0); if (tempss==&root) { if (cc->token!='}') - LexExcept(cc,"missing '}' at "); + LexExcept(cc,"Missing '}' at "); Lex(cc); break; } else { QueRem(tempss); Free(tempss); if (PrsKeyWord(cc)!=KW_SUB_SWITCH_END) - LexExcept(cc,"missing 'sub_switch_end' at "); + LexExcept(cc,"Missing 'sub_switch_end' at "); if (Lex(cc)==':') Lex(cc); else - LexExcept(cc,"expecting ':' at "); + LexExcept(cc,"Expecting ':' at "); } } if (!dft_found) @@ -789,12 +789,12 @@ U0 PrsNoUnusedWarn(CCmpCtrl *cc) CMemberLst *tempm; while (cc->token==TK_IDENT) { if (!(tempm=cc->local_var_entry)) - LexExcept(cc,"expecting local var at "); + LexExcept(cc,"Expecting local var at "); tempm->flags|=MLF_NO_UNUSED_WARN; if (Lex(cc)==',') Lex(cc); else if (cc->token!=';') - LexExcept(cc,"expecting ',' at "); + LexExcept(cc,"Expecting ',' at "); } } @@ -817,7 +817,7 @@ U0 PrsStreamBlk(CCmpCtrl *cc) if (cc->token=='{') Lex(cc); else - LexExcept(cc,"missing '}' at "); + LexExcept(cc,"Missing '}' at "); while (cc->token && cc->token!='}') ExeCmdLine(cc); @@ -888,7 +888,7 @@ U0 PrsTryBlk(CCmpCtrl *cc,I64 try_cnt) ICAdd(cc,IC_JMP,lb_done,0); if (PrsKeyWord(cc)!=KW_CATCH) - LexExcept(cc,"missing 'catch' at"); + LexExcept(cc,"Missing 'catch' at"); Lex(cc); ICAdd(cc,IC_LABEL,lb_catch,0); @@ -995,26 +995,26 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, if (cc->flags&CCF_AOT_COMPILE) { if (cc->token!=TK_IDENT || !(tempex=cc->hash_entry) || !(tempex->type & HTT_EXPORT_SYS_SYM)) - LexExcept(cc,"expecting System sym at "); + LexExcept(cc,"Expecting System sym at "); i=tempex->val; Lex(cc); } else i=LexExpressionI64(cc); if (cc->token!=TK_IDENT || !(tempex=cc->hash_entry) || !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - LexExcept(cc,"expecting type at "); + LexExcept(cc,"Expecting type at "); Lex(cc); PrsGlblVarLst(cc,PRS0__EXTERN|PRS1_NULL,tempex,i,fsp_flags); break; case KW__IMPORT: sm_underscore_import: if (cc->token!=TK_IDENT) - LexExcept(cc,"expecting System sym at "); + LexExcept(cc,"Expecting System sym at "); import_name=cc->cur_str; cc->cur_str=0; if (Lex(cc)!=TK_IDENT || !(tempex=cc->hash_entry) || !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - LexExcept(cc,"expecting type at "); + LexExcept(cc,"Expecting type at "); Lex(cc); PrsGlblVarLst(cc,PRS0__IMPORT|PRS1_NULL,tempex, import_name,FALSE); @@ -1022,7 +1022,7 @@ sm_underscore_import: break; case KW_EXTERN: if (cc->token!=TK_IDENT) - LexExcept(cc,"expecting type at "); + LexExcept(cc,"Expecting type at "); tempex=cc->hash_entry; i=PrsKeyWord(cc); if (i==KW_CLASS||i==KW_UNION) { @@ -1033,7 +1033,7 @@ sm_underscore_import: } if (!tempex || !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - LexExcept(cc,"expecting type at "); + LexExcept(cc,"Expecting type at "); if (Bt(&cc->opts,OPTf_EXTERNS_TO_IMPORTS)) goto sm_import; Lex(cc); @@ -1042,7 +1042,7 @@ sm_underscore_import: case KW_IMPORT: if (cc->token!=TK_IDENT || !(tempex=cc->hash_entry) || !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - LexExcept(cc,"expecting type at "); + LexExcept(cc,"Expecting type at "); sm_import: Lex(cc); PrsGlblVarLst(cc,PRS0_IMPORT|PRS1_NULL,tempex,0,FALSE); @@ -1051,7 +1051,7 @@ sm_import: i=LexExpressionI64(cc); if (cc->token!=TK_IDENT || !(tempex=cc->hash_entry) || !(tempex->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - LexExcept(cc,"expecting type at "); + LexExcept(cc,"Expecting type at "); Lex(cc); PrsGlblVarLst(cc,PRS0__INTERN|PRS1_NULL,tempex,i,fsp_flags); break; @@ -1115,7 +1115,7 @@ sm_import: goto sm_semicolon; case KW_GOTO: if (Lex(cc)!=TK_IDENT) - LexExcept(cc,"expecting identifier at "); + LexExcept(cc,"Expecting identifier at "); if (!(g_lb=COCGoToLabelFind(cc,cc->cur_str))) { g_lb=COCMiscNew(cc,CMT_GOTO_LABEL); g_lb->str=cc->cur_str; @@ -1188,7 +1188,7 @@ sm_not_keyword_afterall: if (Lex(cc)==':') //skip cur_str Lex(cc); //skip colon else - LexExcept(cc,"undefined identifier at "); + LexExcept(cc,"Undefined identifier at "); if (!cc->htc.fun) LexExcept(cc,"No global labels at "); if (cc->token!=',') goto sm_done; @@ -1205,7 +1205,7 @@ sm_semicolon: if (cc->token==';') Lex(cc); else if (cc->token!=',') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); } if (cc->token!=',') goto sm_done; } else diff --git a/Compiler/PrsVar.CPP b/Compiler/PrsVar.CPP index 46f156f..86febdd 100644 --- a/Compiler/PrsVar.CPP +++ b/Compiler/PrsVar.CPP @@ -13,7 +13,7 @@ U0 PrsVarInit(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc,CArrayDim *tempad, tempc=OptClassFwd(tempc); if (tempm=tempc->member_lst_and_root) { if (cc->token!='{') - LexExcept(cc,"expecting '{' at "); + LexExcept(cc,"Expecting '{' at "); LexPopNoRestore(cc); LexPush(cc); Lex(cc); @@ -26,7 +26,7 @@ U0 PrsVarInit(CCmpCtrl *cc,U8 **_dst,CHashClass *tempc,CArrayDim *tempad, } LexPopNoRestore(cc); if (cc->token!='}') - LexExcept(cc,"missing '}' at "); + LexExcept(cc,"Missing '}' at "); Lex(cc); } else { if (tempc->ptr_stars_cnt==1 && @@ -278,7 +278,7 @@ Bool PrsArrayDims(CCmpCtrl *cc,I64 mode,CArrayDim *dim) tempad->total_cnt=1; dim->total_cnt*=j; if (cc->token!=']') - LexExcept(cc,"missing ']' at "); + LexExcept(cc,"Missing ']' at "); } while (Lex(cc)=='['); } return result; @@ -296,7 +296,7 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, pt_start: if (!tempc1 || !(tempc1->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - LexExcept(cc,"invalid class at "); + LexExcept(cc,"Invalid class at "); ptr_stars_cnt=0; while (cc->token=='*') { @@ -323,7 +323,7 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, if (cc->token=='(') { if (Lex(cc)!='*') - LexExcept(cc,"expecting '*' at "); + LexExcept(cc,"Expecting '*' at "); ptr_stars_cnt=1; //fun_ptr while (Lex(cc)=='*') ptr_stars_cnt++; //fun_ptr @@ -346,15 +346,15 @@ CHashClass *PrsType(CCmpCtrl *cc,CHashClass **_tempc1, *_ident=StrNew("_anon_"); tempm->flags|=MLF_NO_UNUSED_WARN; } else - LexExcept(cc,"expecting identifier at "); + LexExcept(cc,"Expecting identifier at "); } } if (ptr_stars_cnt>=0) { //fun_ptr if (cc->token!=')') - LexExcept(cc,"missing ')' at "); + LexExcept(cc,"Missing ')' at "); if (Lex(cc)!='(') - LexExcept(cc,"expecting '(' at "); + LexExcept(cc,"Expecting '(' at "); fun_ptr=PrsFunJoin(cc,tempc1,NULL,fsp_flags)+ptr_stars_cnt; tempc1=cmp.internal_types[RT_PTR]+ptr_stars_cnt; } @@ -437,7 +437,7 @@ U0 PrsVarLst(CCmpCtrl *cc,CHashClass *tempc,I64 mode,I64 union_base=0) cc->class_ip=tempc->size; while (cc->token=='$$') { if (Lex(cc)!='=') //skip $$ - LexExcept(cc,"expecting '=' at "); + LexExcept(cc,"Expecting '=' at "); Lex(cc); //skip = cc->class_ip=LexExpression(cc); if (-cc->class_ip>tempc->neg_offset) @@ -447,7 +447,7 @@ U0 PrsVarLst(CCmpCtrl *cc,CHashClass *tempc,I64 mode,I64 union_base=0) else tempc->size=cc->class_ip; if (cc->token!=';') - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); Lex(cc); //skip ; } if (cc->token==')' || cc->token=='}') { @@ -482,14 +482,14 @@ pvl_restart1: else temph=NULL; if (!temph) - LexExcept(cc,"expecting type at "); + LexExcept(cc,"Expecting type at "); k=PrsKeyWord(cc); if (k==KW_UNION) { Lex(cc); PrsVarLst(cc,tempc,mode|PRSF_UNION,tempc->size); } else { if (!(temph->type & (HTT_CLASS|HTT_INTERNAL_TYPE))) - LexExcept(cc,"expecting type at "); + LexExcept(cc,"Expecting type at "); first=TRUE; pvl_restart2: tempc1=temph; @@ -555,7 +555,7 @@ pvl_restart3: if (cc->flags&CCF_AOT_COMPILE) { tempm->static_data_ip=cc->aotc->ip; k>>=3; - if (sys_var_init_flag&1) { + if (sys_var_init_flag) { k<<=3; while (k--) AOTStoreCodeU8(cc,sys_var_init_val); @@ -563,7 +563,7 @@ pvl_restart3: while (k--) AOTStoreCodeU64(cc,0); } else - if (sys_var_init_flag&1) + if (sys_var_init_flag) MemSet(tempm->static_data,sys_var_init_val,k); LexPopNoRestore(cc); if (cc->token=='=') { @@ -579,7 +579,7 @@ pvl_restart3: k=(i+7)&~7; if (cc->flags&CCF_AOT_COMPILE) { k>>=3; - if (sys_var_init_flag&1) { + if (sys_var_init_flag) { k<<=3; while (k--) AOTStoreCodeU8(cc,sys_var_init_val); @@ -587,7 +587,7 @@ pvl_restart3: while (k--) AOTStoreCodeU64(cc,0); } else - if (sys_var_init_flag&1) + if (sys_var_init_flag) MemSet(tempm->static_data,sys_var_init_val,k); LexPopRestore(cc); } @@ -724,7 +724,7 @@ pvl_restart3: goto pvl_done; break; default: - LexExcept(cc,"missing ';' at"); + LexExcept(cc,"Missing ';' at"); } } } diff --git a/Compiler/UAsm.CPP b/Compiler/UAsm.CPP index 5a51b6f..ab27b7a 100644 --- a/Compiler/UAsm.CPP +++ b/Compiler/UAsm.CPP @@ -1,4 +1,4 @@ -I64 InstEntriesCompare(CInstruction *tempi1,CInstruction *tempi2) +I64 InstEntriesCompare(CInst *tempi1,CInst *tempi2) { I64 i1,i2,j=0,result=0,oc_cnt1=tempi1->opcode_cnt,oc_cnt2=tempi2->opcode_cnt; if (tempi1->flags&IEF_STI_LIKE) @@ -44,9 +44,9 @@ I64 InstEntriesCompare(CInstruction *tempi1,CInstruction *tempi2) } /* -U0 DumpUAsmIns(CInstruction *tempi) +U0 DumpUAsmIns(CInst *tempi) { - CHashOpcode *tempo=tempi(U8 *)-tempi->ins_entry_num*sizeof(CInstruction) + CHashOpcode *tempo=tempi(U8 *)-tempi->ins_entry_num*sizeof(CInst) -offset(CHashOpcode.ins); "%10s:%02d,%02d SV:%02d\n",tempo->str, tempi->arg1,tempi->arg2,tempi->slash_val; @@ -63,10 +63,10 @@ U0 DumpUAsmTables() } */ -CInstruction *InstEntryFind(U8 *ip,I64 opsize,I64 seg_size) +CInst *InstEntryFind(U8 *ip,I64 opsize,I64 seg_size) {//Binary Search I64 i,j,n,m,k,a1,a2,o1,o2,oc_cnt; - CInstruction *tempi,**table; + CInst *tempi,**table; i=0; if (seg_size==64) { table=uasm.table_64; @@ -123,7 +123,9 @@ CInstruction *InstEntryFind(U8 *ip,I64 opsize,I64 seg_size) tempi->flags&IEF_48_REX) m=-1; } - } + } else if ((Bt(&uasm.mem_arg_mask,a1)||Bt(&uasm.mem_arg_mask,a2)) && + ip[n]&0xC0==0xC0) + m=1; goto ief_compare_done; case SV_I_REG: m=ip[n]>>3-tempi->opcode[tempi->opcode_cnt-1]>>3; @@ -147,10 +149,8 @@ CInstruction *InstEntryFind(U8 *ip,I64 opsize,I64 seg_size) } } if (opsize==64 || a1==ARGT_M64 || a2==ARGT_M64) { - if (!Bt(&uasm.ins64_arg_mask,a1) && - !Bt(&uasm.ins64_arg_mask,a2) && - !(tempi->flags&IEF_48_REX)&& - !(a2==ARGT_NO && + if (!Bt(&uasm.ins64_arg_mask,a1) &&!Bt(&uasm.ins64_arg_mask,a2) && + !(tempi->flags&IEF_48_REX)&& !(a2==ARGT_NO && (ARGT_UIMM8<=a1<=ARGT_UIMM64 || ARGT_IMM8<=a1<=ARGT_IMM64))) m=1; else if (tempi->arg2==ARGT_IMM64 || tempi->arg2==ARGT_UIMM64) { @@ -188,7 +188,7 @@ ief_compare_done: U0 UAsmHashLoad() { CHashOpcode *temph; - CInstruction *tempi; + CInst *tempi; I64 i,j1,j2,k; uasm.ins64_arg_mask=0x0880888880+1<mask;i++) { temph=cmp.asm_hash->body[i]; while (temph) { - if (temph->type==HTT_OPCODE) { + if (temph->type==HTT_OPCODE && !(temph->oc_flags&OCF_ALIAS)) { tempi=&temph->ins; - for (k=0;kinstruction_entry_cnt;k++) { + for (k=0;kinst_entry_cnt;k++) { uasm.table_16_32_entries++; if (!(tempi->flags&IEF_NOT_IN_64_BIT)) uasm.table_64_entries++; @@ -219,9 +219,9 @@ U0 UAsmHashLoad() for (i=0;i<=cmp.asm_hash->mask;i++) { temph=cmp.asm_hash->body[i]; while (temph) { - if (temph->type==HTT_OPCODE) { + if (temph->type==HTT_OPCODE && !(temph->oc_flags&OCF_ALIAS)) { tempi=&temph->ins; - for (k=0;kinstruction_entry_cnt;k++) { + for (k=0;kinst_entry_cnt;k++) { uasm.table_16_32[j1++]=tempi; if (!(tempi->flags&IEF_NOT_IN_64_BIT)) uasm.table_64[j2++]=tempi; @@ -236,14 +236,14 @@ U0 UAsmHashLoad() } U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) -{//Unassembles one instruction +{//Unassembles one inst I64 i,disp,imm,opsize,opadd, a1,a2,reloced_a1,reloced_a2, a1_size=0,a2_size=0,reloced_a1_size,reloced_a2_size, ModrM=-1,SIB=-1,scale,r1,r2, Mod=-1,RM1=-1,RM2=-1,REX=-1,REX_r=0,REX_x=0,REX_b=0; Bool cont; - CInstruction *tempi,*tempi2; + CInst *tempi,*tempi2; CHashOpcode *tempo; U8 *ip=*_ip,*ptr,*reloced_a1_st,*reloced_a2_st, *bin_data_area1,*bin_data_area2, @@ -328,14 +328,13 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) tempi=InstEntryFind(ip,opsize,seg_size); if (opsize==32 && seg_size==64) { tempi2=InstEntryFind(ip,64,seg_size); - if (tempi2!=tempi && - tempi2->flags&IEF_REX_ONLY_R8_R15 || + if (tempi2!=tempi && tempi2->flags&IEF_REX_ONLY_R8_R15 || tempi2->flags&IEF_REX_XOR_LIKE&& ip[1]>>3&7==ip[1]&7) tempi=tempi2; } ip+=tempi->opcode_cnt; - tempo=tempi(U8 *)-tempi->ins_entry_num*sizeof(CInstruction) + tempo=tempi(U8 *)-tempi->ins_entry_num*sizeof(CInst) -offset(CHashOpcode.ins); if (just_ins) *line1=0; @@ -393,12 +392,9 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) } } - if (ARGT_RM8<=a1<=ARGT_RM64 || - ARGT_M8<=a1<=ARGT_M64 || - ARGT_RM8<=a2<=ARGT_RM64 || - ARGT_M8<=a2<=ARGT_M64) { - if (ARGT_RM8<=a2<=ARGT_RM64 || - ARGT_M8<=a2<=ARGT_M64) { + if (ARGT_RM8<=a1<=ARGT_RM64 || ARGT_M8<=a1<=ARGT_M64 || + ARGT_RM8<=a2<=ARGT_RM64 || ARGT_M8<=a2<=ARGT_M64) { + if (ARGT_RM8<=a2<=ARGT_RM64 || ARGT_M8<=a2<=ARGT_M64) { reloced_a1=a2; reloced_a2=a1; reloced_a1_size=a2_size; @@ -647,7 +643,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) } U8 *U(U8 *ip,I64 cnt=20,I64 seg_size=64) -{//Unassembles a num of instructions. +{//Unassembles a num of insts. I64 i; U8 buf[1024]; if (seg_size==16) diff --git a/Demo/AcctExample/HomeLocalize.CPP b/Demo/AcctExample/HomeLocalize.CPP index 9c5839b..3b63013 100644 --- a/Demo/AcctExample/HomeLocalize.CPP +++ b/Demo/AcctExample/HomeLocalize.CPP @@ -7,7 +7,7 @@ Option(OPTf_WARN_DUP_TYPES,ON); KbdTypeMatic(0); // Las Vegas is -7 during summer, -8 during winter -local_time_offset=-8*60*60*CDATE_FREQ; //Pacific +local_time_offset=-7*60*60*CDATE_FREQ; //Pacific // Remember you can set the time in the BIOS. //$AN,"",A="mouse_move_scale"$adjust these to set mouse move scale diff --git a/Demo/AcctExample/PersonalNotes.TXT b/Demo/AcctExample/PersonalNotes.TXT index e6e601b..de23450 100644 --- a/Demo/AcctExample/PersonalNotes.TXT +++ b/Demo/AcctExample/PersonalNotes.TXT @@ -1,5 +1,5 @@ - $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ + * Investigate why packet loss $LK,"Training Sleep(1)",A="FF:::/Adam/Training.CPP,Sleep(1)"$. * Add AVL or red/black binary tree library support. We have fixed-size stack. Auto-balancing binary tree is very needed. I've done everything myself. I don't want to ruin a perfect record. I'm in no hurry. @@ -37,7 +37,6 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ * Bug: Find-and-replace text on $$PT$$ line before it. * 12/25/2015 Copy-Paste index.html glitch if source window 40 columns. -* 01/10/2016 find-replace editor hung on $LK,"CounterRenaissance",A="FI:::/Home/Web/TAD/CounterRenaissance.TXT"$ "Rennaisance" * 01/06/2016 Editor filter "str" applied to output from LineRep looks broken. * Document, perhaps with video, $LK,"GetStr",A="MN:GetStr"$() all the way down into $LK,"PutKey",A="MN:PutKey"$() code. @@ -104,6 +103,8 @@ $FG,5$$TX+CX,"TODO: Too Hard, or Not Worth Doing."$$FG$ * Log-to-file is inefficient because we load and save whole file. +* $LK,"ICMov",A="MN:ICMov"$() $LK,"PUSH_CMP",A="FF:::/Compiler/BackLib.CPP,PUSH_CMP"$ and $LK,"MDf_STK",A="MN:MDf_STK"$? Perhaps, it's okay. + * Short FAT32 ~ names. * Compiler: Inline functions? @@ -368,7 +369,7 @@ and blotted at the end. * static var off of data heap. * could add "const" to not set CCF_NOT_CONST flag for trig, etc. -* could make glblvar imports use TY_RIP_DISP32. +* could make glblvar imports use MDF_RIP_DISP32. * PUSH_CMP allocs reg R9 or whatever * Might be problem with NOP in OPT pass1 for NO_PUSH in expressions besides assignments. Is ShiftNoPush fully implemented? @@ -387,14 +388,16 @@ Lord does not repeat $TX,"Job 33:14",HTML="http://www.biblegateway.com/verse/e Offer only in approved place $TX,"Deuteronomy 12:13-18",HTML="http://www.biblegateway.com/passage/?search=Deuteronomy%2012:13-18&version=NIV"$ Jesus' zeal for the Temple $TX,"John 2:14-19",HTML="http://www.biblegateway.com/passage/?search=John%202:14-19&version=NIV"$ Famine not for bread $TX,"Amos 8:11-12",HTML="http://www.biblegateway.com/passage/?search=Amos%208:11-12&version=NIV"$ +To the honest, you are honest $TX,"Psalm 18:26",HTML="http://www.biblegateway.com/verse/en/Psalm%2018:26"$ Meek and humble of heart $TX,"Matthew 11:29",HTML="http://www.biblegateway.com/verse/en/Matthew%2011:29"$ +MOses hgets Aaron $TX,"Exodus 4:10-16",HTML="http://www.biblegateway.com/passage/?search=Exodus%204:10-16&version=NIV"$ There is no council against the Lord $TX,"Proverbs 21:30",HTML="http://www.biblegateway.com/verse/en/Proverbs%2021:30"$ - +Human help is worthless $TX,"Psalm 108:12",HTML="http://www.biblegateway.com/verse/en/Psalm%20108:12"$ $FG,5$$TX+CX,"Misc Notes"$$FG$ Intel CEO's name: Brian Krzanich >$FG,2$lspci -v$FG$ -Size:$TX,"17364 KB",D="DD_TEMPLEOSCD_K_SIZE"$ +Size:$TX,"17362 KB",D="DD_TEMPLEOSCD_K_SIZE"$ $FG,5$$TX+CX,"My Web Bookmarks"$$FG$$WW,0$ $TX,"My FireFox Bookmarks",HTML="http://www.templeos.org/Wb/Home/Downloads/Blog/Bookmarks"$ @@ -407,6 +410,7 @@ Pew Pew Pew $HC,"
\"\"
"$ I made dis $HC,"
\"\"
"$ NIST Beacon $HC,"
\"\"
"$ +Purple Frog $HC,"
\"\"
"$ $TX,"SimStructure",HTML="http://www.templeos.org/files/SimStrSetUp.zip"$ $TX,"ASU_Transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$ $TX,"ASU Course Catalog (See page 261)",HTML="https://catalog.asu.edu/files/shared/archives/1994-1996/general/UG1994-1996.pdf/1994-1996-UG-241-267.pdf"$ $TX,"Dr. David Pheanis",HTML="https://webapp4.asu.edu/directory/person/77201"$ $TX,"Dr. Konstantinos S. Tsakalis",HTML="http://ecee.engineering.asu.edu/directory/tenured-and-tenure-track-faculty/kostantinos-s-tsakalis"$ $TX,"Dr. Walter Higgins",HTML="https://webapp4.asu.edu/directory/directorysearch?cn=Walter+Higgins"$ @@ -430,6 +434,7 @@ $TX,"Higgs 5-Sigma Proof",HTML="http://understandinguncertainty.org/explaining-5 $TX,"Dwight: Nerd torture",HTML="http://www.noob.us/humor/the-office-dwight-faces-nerd-torture-of-the-highest-form"$ $TX,"TOSZ Compression",HTML="http://www.templeos.org/Wb/Linux/TOSZ.CPP"$ $TX,"ATA/ATAPI spec",HTML="http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v1r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_1.pdf"$ +$TX,"Streaming Terry A. Davis",HTML="https://www.youtube.com/channel/UCdX4uJUwSFwiY3XBvu-F_-Q/live"$ $TX,"WWW.OSDEV.ORG",HTML="http://www.osdev.org"$ $TX,"NIST Beacon",HTML="http://www.nist.gov/itl/csd/ct/nist_beacon.cfm"$ diff --git a/Demo/AcctExample/Registry.CPP b/Demo/AcctExample/Registry.CPP index 1b49aa5..6872f27 100644 --- a/Demo/AcctExample/Registry.CPP +++ b/Demo/AcctExample/Registry.CPP @@ -2,7 +2,7 @@ $TR-UL,"Adam"$ $ID,2$$TR,"SysMsgFlags"$ $ID,2$sys_msg_flags[0]=0xFF; $ID,-2$$TR,"SysRegVer"$ -$ID,2$registry_version=4.040; +$ID,2$registry_version=4.050; $ID,-2$$ID,-2$$TR-UL,"TempleOS"$ $ID,2$$TR,"TOS"$ $ID,2$I64 tos_code_walk_thru=105,tos_after_egypt_in_action=46; @@ -26,8 +26,6 @@ $ID,-2$$TR,"FlapBat"$ $ID,2$F64 best_score=16.4090; $ID,-2$$TR,"TimeOut"$ $ID,2$I64 best_score=22202; -$ID,-2$$TR,"RawHide"$ -$ID,2$F64 best_score=96.1279; $ID,-2$$TR,"KeepAway"$ $ID,2$I64 best_score0=0,best_score1=9999; $ID,-2$$TR,"XCaliber"$ @@ -37,9 +35,11 @@ $ID,-2$$TR,"Wenceslas"$ $ID,2$F64 best_score=49.8074; $ID,-2$$TR,"BomberGolf"$ $ID,2$I64 best_score=175; +$ID,-2$$TR,"RawHide"$ +$ID,2$F64 best_score=96.1279; $ID,-2$$ID,-2$$TR,"DemoCompany"$ $ID,2$$TR,"Game1"$ -$ID,2$F64 best_score=1344.86889; +$ID,2$F64 best_score=481.84264; $TR,"SimpleVal"$ -$ID,2$1300; +$ID,2$1309; $ID,-2$$ID,-2$$ID,-2$ \ No newline at end of file diff --git a/Demo/AcctExample/TOSDistro.CPP b/Demo/AcctExample/TOSDistro.CPP index 6614e13..6265508 100644 --- a/Demo/AcctExample/TOSDistro.CPP +++ b/Demo/AcctExample/TOSDistro.CPP @@ -245,7 +245,7 @@ U0 MakeTOSDistro() ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSTS_SIZE", - "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.05",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -280,7 +280,7 @@ U0 MakeDbgDistro() ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSDBG_SIZE", - "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.05",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -328,7 +328,7 @@ U0 MakeLiteDistro() ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSLITE_SIZE", - "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - Lite Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.05",D="DD_OS_NAME_VERSION"$ - Lite Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -361,7 +361,7 @@ U0 MakeUltraDistro() ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSULTRA_SIZE", - "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - UltraLite Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.05",D="DD_OS_NAME_VERSION"$ - UltraLite Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -370,12 +370,12 @@ U0 UpdateISODocDefines() { try { DefinePrint("DD_TEMPLEOSCD_SIZE", - "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.05",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)", 0.1*(10*Size("D:/Wb/TempleOSCD.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOSCD_K_SIZE", "%d KB",Size("D:/Wb/TempleOSCD.ISO","+s")/1024); DefinePrint("DD_TEMPLEOSULTRA_SIZE", - "Download $TX,"TempleOS V4.04",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.05",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.1f MB)", 0.1*(10*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOSULTRA_K_SIZE", "%d KB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024); diff --git a/Demo/AcctExample/TOSHolySpirit.CPP b/Demo/AcctExample/TOSHolySpirit.CPP index 5a74a69..8dd3fbc 100644 --- a/Demo/AcctExample/TOSHolySpirit.CPP +++ b/Demo/AcctExample/TOSHolySpirit.CPP @@ -132,7 +132,7 @@ class CMetallicaForm class CWebBookMarkForm { - U8 tag[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Tag Text:%s\"$$\n"; + U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; U8 special[STR_LEN]; I64 timestamp; I64 cert; @@ -142,8 +142,8 @@ class CWebBookMarkForm class CWebBibleForm { - U8 tag[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Tag Text:%s\"$$\n"; - U8 special[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Bible Passage:%s\"$$\n"; + U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; + U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Bible Passage:%s\"$$\n"; I64 timestamp; I64 cert; I64 min; @@ -152,7 +152,7 @@ class CWebBibleForm class CYouTubeForm { - U8 tag[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Title:%s\"$$\n"; + U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Title:%s\"$$\n"; U8 special[STR_LEN] fmtstr "$$DA-P-TRM,LEN=11,A=\"SerialNum:%11s\"$$\n"; I64 timestamp; I64 cert; @@ -163,7 +163,7 @@ class CYouTubeForm class CImgurForm { U8 tag[STR_LEN]; - U8 special[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"SerialNum:%s\"$$\n"; + U8 special[STR_LEN] fmtstr "$$DA-P,A=\"SerialNum:%s\"$$\n"; I64 timestamp; I64 cert; I64 min fmtstr "$$DA,A=\"Width :%d\"$$\n"; @@ -172,8 +172,8 @@ class CImgurForm class CWikipediaForm { - U8 tag[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Tag Text:%s\"$$\n"; - U8 special[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Index :%s\"$$\n"; + U8 tag[STR_LEN] fmtstr "$$DA-P,A=\"Tag Text:%s\"$$\n"; + U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Index :%s\"$$\n"; I64 timestamp; I64 cert; I64 min; @@ -183,7 +183,7 @@ class CWikipediaForm class CRandDecForm { U8 tag[STR_LEN]; - U8 special[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Line (Dec):%s\"$$\n"; + U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Line (Dec):%s\"$$\n"; I64 timestamp; I64 cert; I64 min; @@ -193,7 +193,7 @@ class CRandDecForm class CRandHexForm { U8 tag[STR_LEN]; - U8 special[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Line (Hex):%s\"$$\n"; + U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Line (Hex):%s\"$$\n"; I64 timestamp; I64 cert; I64 min; @@ -203,7 +203,7 @@ class CRandHexForm class CRandCertForm { U8 tag[STR_LEN]; - U8 special[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"Line (Dec) :%s\"$$\n"; + U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Line (Dec) :%s\"$$\n"; I64 timestamp; I64 cert fmtstr "$$DA,A=\"Certificate:%d\"$$\n"; I64 min; @@ -213,8 +213,7 @@ class CRandCertForm class CRandHexBeacon5Form { U8 tag[STR_LEN]; - U8 special[STR_LEN] - fmtstr "$$DA-P-TRM,LEN=5," + U8 special[STR_LEN] fmtstr "$$DA-P-TRM,LEN=5," "A=\"Line (5-Digit Hex):%5s\"$$\n"; I64 timestamp fmtstr "$$DA,A=\"TimeStamp :%d\"$$\n"; I64 cert; @@ -225,8 +224,7 @@ class CRandHexBeacon5Form class CRandHexBeacon8Form { U8 tag[STR_LEN]; - U8 special[STR_LEN] - fmtstr "$$DA-P-TRM,LEN=8," + U8 special[STR_LEN] fmtstr "$$DA-P-TRM,LEN=8," "A=\"Line (8-Digit Hex):%8s\"$$\n"; I64 timestamp fmtstr "$$DA,A=\"TimeStamp :%d\"$$\n"; I64 cert; @@ -427,7 +425,7 @@ public U0 GodBooksPassage(U8 *files_find_mask,I64 len=512, DirTreeDel(tempde1); } -#define NIST_TIME_OFFSET (-7900-local_time_offset/CDATE_FREQ) +#define NIST_TIME_OFFSET (-7916-local_time_offset/CDATE_FREQ) #define NIST_TIME_TO_SWITCH 3 public U0 NISTSync() diff --git a/Demo/AcctExample/TOSMisc.CPP b/Demo/AcctExample/TOSMisc.CPP index 143467b..b169227 100644 --- a/Demo/AcctExample/TOSMisc.CPP +++ b/Demo/AcctExample/TOSMisc.CPP @@ -241,7 +241,7 @@ U0 TOSRegWrite() class CYouTubeForm2 { - U8 special[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,A=\"SerialNum:%s\"$$\n"; + U8 special[STR_LEN] fmtstr "$$DA-P,A=\"SerialNum:%s\"$$\n"; }; U8 *TOSYouTube() diff --git a/Demo/AcctExample/TOSToHtml.CPP b/Demo/AcctExample/TOSToHtml.CPP index e1be5ae..d292973 100644 --- a/Demo/AcctExample/TOSToHtml.CPP +++ b/Demo/AcctExample/TOSToHtml.CPP @@ -150,7 +150,7 @@ public CDoc *Doc2Html(CDoc *doc_in,U8 *html_header=NULL,U8 *body_header=NULL, "\n" "\n" - "\n"; + "\n"; if (!body_header) body_header= "\n" "
\n";
@@ -372,7 +372,7 @@ U0 TOSWebFile(U8 *name)
 	  "\n"
-	  "\n",
+	  "\n",
 
 	  " and back.)\n\n";
+  "(Not preserved if you press .)\n\n";
   doc_e->left_cb=&MyLeftCB1;
   DocUnlock(DocPut);
 }
@@ -32,15 +32,16 @@ I64 MyLeftCB2(CDoc *,CDocEntry *)
   return cnts.jiffies;
 }
 
-U0 PopUpJiffiesCallBack()
+U0 PopUpJiffiesCallBack(I64 i)
 {
   CDoc *doc=DocNew;
-  CDocEntry *doc_e=DocPrint(doc,"\n\n\n$$BT+LC,\"Jiffies\"$$\n\n\n");
+  CDocEntry *doc_e=DocPrint(doc,
+	"Click %d more times\n\n\n$$BT+LC,\"Jiffies\"$$\n\n\n",i);
   doc_e->left_cb=&MyLeftCB2;
   "Current Jiffies:%d\n",PopUpMenu(doc);
   DocDel(doc);
 }
 
-PopUpJiffiesCallBack;
-PopUpJiffiesCallBack;
-PopUpJiffiesCallBack;
+PopUpJiffiesCallBack(3);
+PopUpJiffiesCallBack(2);
+PopUpJiffiesCallBack(1);
diff --git a/Demo/DolDoc/Form.CPP b/Demo/DolDoc/Form.CPP
index 0698295..96c0510 100644
--- a/Demo/DolDoc/Form.CPP
+++ b/Demo/DolDoc/Form.CPP
@@ -1,15 +1,12 @@
 class FDStruct
-{//Use  and select "Data" to generate the fmtstrs
-
-  //The number is the field from after the ':' to the end.
-  //See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.CPP,DataTagWidth"$.
-
-  F64 num1	fmtstr "$$DA-TRM,RT=F64,A=\"F64   1:%12.8f\"$$\n";
-  F64 num2	fmtstr "$$DA-TRM,RT=F64,A=\"F64   2:%12e\"$$\n";
-  I64 num3	fmtstr "$$DA-TRM,A=\"I64   1:0x%016X\"$$\n";
-  I64 num4	fmtstr "$$DA-TRM,A=\"I64   2:%12d\"$$\n";
+{//Use  and select "Data", "List" or "Check Box"
+//to generate the fmtstrs.
+  F64 num1	fmtstr "$$DA-TRM,A=\"Float 1:%12.8f\"$$\n";
+  F64 num2	fmtstr "$$DA-TRM,A=\"Float 2:%12e\"$$\n";
+  I64 num3	fmtstr "$$DA-TRM,A=\"Int   1:0x%016X\"$$\n";
+  I64 num4	fmtstr "$$DA-TRM,A=\"Int   2:%12d\"$$\n";
   I64 type	fmtstr "$$LS,D=\"ST_PERSON_TYPE\"$$\n";
-  U8  name[32]	fmtstr "$$DA-P,LEN=31,A=\"Name   :%s\"$$\n";
+  U8  name[32]	fmtstr "$$DA-P,A=\"Name   :%s\"$$\n";
   U8  *address1	fmtstr "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *.
   U8  *address2	fmtstr "$$DA+M,A=\"Address:%s\"$$\n"; //+M is unlimited len U8 *.
   CDate datetime fmtstr "$$DA-TRM,A=\"Date   :%8D\"$$\n";
diff --git a/Demo/ExtendedChars.CPP b/Demo/ExtendedChars.CPP
index bb4021c..3e1df6f 100644
--- a/Demo/ExtendedChars.CPP
+++ b/Demo/ExtendedChars.CPP
@@ -30,7 +30,7 @@ U0 SrcExample()
 }
 
 SrcExample;
-//See $LK,"::/Demo/ScreenCodes.CPP"$, $LK,"::/Demo/Graphics/CharGraphics.CPP"$,
-//and $LK,"::/Demo/Graphics/FontEd.CPP"$.
+//See $LK,"::/Demo/ScreenCodes.CPP"$, $LK,"::/Demo/Graphics/CharAnimation.CPP"$,
+//$LK,"::/Demo/Games/CharDemo.CPP"$ and $LK,"::/Demo/Graphics/FontEd.CPP"$.
 
 //See $LK,"chars_bmp_alpha",A="MN:chars_bmp_alpha"$ and $LK,"chars_bmp_alpha_numeric",A="MN:chars_bmp_alpha_numeric"$.
diff --git a/Demo/Games/BomberGolf.CPP b/Demo/Games/BomberGolf.CPP
index 19e3ca5..3cd7dd1 100644
Binary files a/Demo/Games/BomberGolf.CPP and b/Demo/Games/BomberGolf.CPP differ
diff --git a/Demo/Games/CharDemo.CPP b/Demo/Games/CharDemo.CPP
new file mode 100644
index 0000000..978438f
--- /dev/null
+++ b/Demo/Games/CharDemo.CPP
@@ -0,0 +1,191 @@
+/*
+Char graphics are how games on the C64 were made.  You don't need to do it
+this way, unless for fun.  You can just make device context bigger than
+the screen and scroll around.
+
+See  $LK,"::/Demo/Games/RawHide.CPP"$ or $LK,"::/Demo/Games/BigGuns.CPP"$.
+
+The nice thing about character graphics are the animations.
+*/
+
+#define MAP_WIDTH	(TEXT_COLS*2)
+#define MAP_HEIGHT	(TEXT_ROWS*2)
+
+#define CH_WATER	'^'
+#define CH_LAND		CH_SPACE
+#define CH_TREE		'*'
+
+U16 map[MAP_HEIGHT][MAP_WIDTH];
+
+I64 screen_pix_x,screen_pix_y;
+
+U0 DrawIt(CTask *task,CDC *)
+{
+  U16 *ptr;
+  I64 i,j,y=screen_pix_y>>3;
+  gr.hide_col=gr.hide_row=TRUE;
+  gr.pan_text_x=7-screen_pix_x&7;
+  gr.pan_text_y=7-screen_pix_y&7;
+  for (i=0;iwin_height;i++) {
+    ptr=&map[y++][screen_pix_x>>3];
+    for (j=0;jwin_width;j++)
+	//By the time you clip to window and handle Fs->scroll_x,Fs->scroll_y,
+	//it is too much trouble to do raw access to gr.text_base like we do
+	//in $LK,"::/Demo/Games/Maze.CPP"$.
+      TextChar(task,FALSE,j,i,*ptr++);
+  }
+}
+
+U8 *old_font=text.font;
+U64 waves[4]={
+0x0011AA440011AA44,0x0022558800225588,
+0x0044AA110044AA11,0x0088552200885522};
+
+U0 AnimateEndCB()
+{
+  text.font=old_font;
+  Exit;
+}
+
+U0 AnimateTask(I64)
+{
+  I64 i;
+  U64 *font=MAlloc(256*8);
+  Fs->task_end_cb=&AnimateEndCB;
+  MemCpy(font,text.font,256*8);
+  text.font=font;
+  font[CH_TREE]=0x18187E7E3C3C18;
+  while (TRUE) {
+    font[CH_WATER]=waves[i++&0x3];
+    Sleep(200);
+    WinMgrSync;
+  }
+}
+
+U0 ScrollTaskX(I64 sign)
+{
+  I64 i;
+  for (i=0;i<32;i++) {
+    screen_pix_x=ClampI64(screen_pix_x+sign,0,
+	  (MAP_WIDTH-TEXT_COLS+1)*FONT_WIDTH);
+    WinMgrSync;
+  }
+}
+
+U0 ScrollTaskY(I64 sign)
+{
+  I64 i;
+  for (i=0;i<32;i++) {
+    screen_pix_y=ClampI64(screen_pix_y+sign,0,
+	  (MAP_HEIGHT-TEXT_ROWS+2)*FONT_HEIGHT);
+    WinMgrSync;
+  }
+}
+
+U0 Init()
+{
+  I64 i,j,x,y;
+  screen_pix_x=(MAP_WIDTH-TEXT_COLS)>>1*FONT_WIDTH;
+  screen_pix_y=(MAP_HEIGHT-TEXT_ROWS)>>1*FONT_HEIGHT;
+
+  MemSetU16(map,CH_WATER+(BLUE<<4+LTBLUE)<<8,MAP_WIDTH*MAP_HEIGHT);
+  for (i=1;itext_attr=YELLOW<<4+BLUE;
+  AutoComplete;
+  WinBorder;
+  WinMax;
+  DocCursor;
+
+  MenuPush(
+	"File {"
+	"  Abort(,CH_SHIFT_ESC);"
+	"  Exit(,CH_ESC);"
+	"}"
+	"Play {"
+	"  Restart(,'\n');"
+	"  Left(,,SC_CURSOR_LEFT);"
+	"  Right(,,SC_CURSOR_RIGHT);"
+	"  Up(,,SC_CURSOR_UP);"
+	"  Down(,,SC_CURSOR_DOWN);"
+	"}"
+	);
+  Init;
+  Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",,Fs);
+  Fs->draw_it=&DrawIt;
+  try {
+    while (TRUE) {
+      switch (GetKey(&sc)) {
+	case 0:
+	  switch (sc.u8[0]) {
+	    case SC_CURSOR_LEFT:
+	      Spawn(&ScrollTaskX,-1,"Scroll",,Fs);
+	      break;
+	    case SC_CURSOR_RIGHT:
+	      Spawn(&ScrollTaskX,1,"Scroll",,Fs);
+	      break;
+	    case SC_CURSOR_UP:
+	      Spawn(&ScrollTaskY,-1,"Scroll",,Fs);
+	      break;
+	    case SC_CURSOR_DOWN:
+	      Spawn(&ScrollTaskY,1,"Scroll",,Fs);
+	      break;
+	  }
+	  break;
+	case '\n':
+	  CleanUp;
+	  Init;
+	  break;
+	case CH_SHIFT_ESC:
+	case CH_ESC:
+	  goto sq_done;
+      }
+    }
+sq_done: //Don't goto out of try
+  } catch
+    PutExcept;
+  SettingsPop;
+  CleanUp;
+  MenuPop;
+}
+
+CharDemo;
diff --git a/Demo/Games/EagleDive.CPP b/Demo/Games/EagleDive.CPP
index b8da257..8d37366 100644
--- a/Demo/Games/EagleDive.CPP
+++ b/Demo/Games/EagleDive.CPP
@@ -27,7 +27,7 @@ RegExeBranch("TempleOS/EagleDive");
 class Panel
 {
   Panel *next;
-  I32 n,   //num polygon sides
+  I32	n,   //num polygon sides
 	num; //panel number
   CD3I32 *pts;
   I64 color,cnt;
@@ -49,15 +49,6 @@ $SP,"<1>",BI=1$
 
 
 I64 critical_section_flag;
-U0 CriticalSectionStart()
-{
-  while (LBts(&critical_section_flag,0))
-    Yield;
-}
-U0 CriticalSectionEnd()
-{
-  LBtr(&critical_section_flag,0);
-}
 
 /*These are $BK,1$NOT$BK,0$ dealloced after the program ends,
 but I did them this way for your benefit
@@ -181,9 +172,10 @@ U0 MPDoPanels(CTask *task)
 		tempf->p.x=(i+w/2)*MAP_SCALE;
 		tempf->p.y=(j+h/2)*MAP_SCALE;
 		tempf->p.z=l;
-		CriticalSectionStart;
+		while (LBts(&critical_section_flag,0))
+		  Yield;
 		QueIns(tempf,fish_root.last);
-		CriticalSectionEnd;
+		LBtr(&critical_section_flag,0);
 	      }
 	    } else {
 	      if (RandI16&1) {
@@ -242,11 +234,12 @@ U0 MPDoPanels(CTask *task)
       }
     }
   if (end_ptr) {
-    CriticalSectionStart;
+    while (LBts(&critical_section_flag,0))
+      Yield;
     if (end_ptr)
       end_ptr->next=panel_root;
     panel_root=start_ptr;
-    CriticalSectionEnd;
+    LBtr(&critical_section_flag,0);
   }
   LBtr(&mp.init_not_done_flags,Gs->num);
 }
@@ -443,7 +436,7 @@ U0 MPDrawIt(CTask *task,CDC *dc)
     yy+=y3;
   }
 
-  if (Gs->num&1) {//alternate left-right,right-left
+  if (Gs->num&1) {//alt left-right,right-left
     yh2=-yh;
     xh2=-xh;
   } else {
diff --git a/Demo/Graphics/CharGraphics.CPP b/Demo/Graphics/CharAnimation.CPP
similarity index 61%
rename from Demo/Graphics/CharGraphics.CPP
rename to Demo/Graphics/CharAnimation.CPP
index 2060497..02357b6 100644
--- a/Demo/Graphics/CharGraphics.CPP
+++ b/Demo/Graphics/CharAnimation.CPP
@@ -3,11 +3,9 @@ U8 *old_font=text.font;
 // See $LK,"::/Kernel/Font8x8.CPP"$, $LK,"::/Demo/ScreenCodes.CPP"$,
 //$LK,"::/Demo/ExtendedChars.CPP"$, and $LK,"::/Demo/Graphics/FontEd.CPP"$.
 
-U8 waves[8*4]={
-0x00,0x11,0xAA,0x44,0x00,0x11,0xAA,0x44,
-0x00,0x22,0x55,0x88,0x00,0x22,0x55,0x88,
-0x00,0x44,0xAA,0x11,0x00,0x44,0xAA,0x11,
-0x00,0x88,0x55,0x22,0x00,0x88,0x55,0x22};
+U64 waves[4]={
+0x0011AA440011AA44,0x0022558800225588,
+0x0044AA110044AA11,0x0088552200885522};
 
 U0 AnimateEndCB()
 {
@@ -18,12 +16,12 @@ U0 AnimateEndCB()
 U0 AnimateTask(I64)
 {
   I64 i;
-  U8 *font=MAlloc(256*8);
+  U64 *font=MAlloc(256*8);
   Fs->task_end_cb=&AnimateEndCB;
   MemCpy(font,text.font,256*8);
   text.font=font;
   while (TRUE) {
-    MemCpy(font+CH_SPACE*FONT_HEIGHT,waves+8*(i++&0x3),8);
+    font[CH_SPACE]=waves[i++&0x3];
     Sleep(100);
   }
 }
diff --git a/Demo/Graphics/FontEd.CPP b/Demo/Graphics/FontEd.CPP
index 5ef9bb2..70cd947 100644
--- a/Demo/Graphics/FontEd.CPP
+++ b/Demo/Graphics/FontEd.CPP
@@ -14,7 +14,8 @@ save to a file with this font editor program
 and cut and paste the code into $LK,"::/Kernel/Font8x8.CPP"$.
 You will need to recompile Kernel by calling $LK,"MakeOSDrvBootInstall",A="MN:MakeOSDrvBootInstall"$().
 
-See $LK,"::/Demo/ExtendedChars.CPP"$ and $LK,"::/Demo/ScreenCodes.CPP"$.
+See $LK,"::/Demo/ExtendedChars.CPP"$, $LK,"::/Demo/Games/CharDemo.CPP"$,
+$LK,"::/Demo/Graphics/CharAnimation.CPP"$ and $LK,"::/Demo/ScreenCodes.CPP"$.
 */
 
 #define BLOW_UP_CHAR_X	(18*FONT_WIDTH)
diff --git a/Demo/Graphics/SunMoon.CPP b/Demo/Graphics/SunMoon.CPP
index dd57712..ac5fb9c 100644
--- a/Demo/Graphics/SunMoon.CPP
+++ b/Demo/Graphics/SunMoon.CPP
@@ -33,7 +33,7 @@ U0 SunMoon()
     gr.dc->dither_probability_u16=2*i;	//U16 can be [0,65535]
     GrFloodFill(gr.dc,x-0.75*radius,y);
 
-    WinMgrSync; //Typically 30 fps or 33S
+    WinMgrSync; //Typically 30 fps
     DCFill;
   }
 
diff --git a/Demo/Lectures/FixedPoint.CPP b/Demo/Lectures/FixedPoint.CPP
index 7e64087..cd6d6e7 100644
--- a/Demo/Lectures/FixedPoint.CPP
+++ b/Demo/Lectures/FixedPoint.CPP
@@ -1,4 +1,4 @@
-/*"Fixed point" means you use integers
+/*"Fixed point" means you use ints
 that are scaled by a value.  A common
 example would be using number of pennies
 instead of dollars with a float.
@@ -10,7 +10,7 @@ and my compiler used to do floats poorly.
 It's a little better.
 
 I often use 64-bit ints with upper 32-bits
-as integer and lower 32-bits as fraction.
+as int and lower 32-bits as fraction.
 
 See $LK,"::/Demo/SubIntAccess.CPP"$ for how
 to access upper or lower 32-bits.
@@ -29,7 +29,7 @@ U0 Main()
   t0=tS;
   for (i=1000000000;i;i--)
     i_sum+=i_val;
-  "Integer Sum:%.9f Time:%7.3fs\n",i_sum/ToF64(0x100000000),tS-t0;
+  "Int Sum:%.9f Time:%7.3fs\n",i_sum/ToF64(0x100000000),tS-t0;
 
   f_val= 2.0000002;
   t0=tS;
@@ -47,7 +47,7 @@ U0 DoIt2()
   "i&0xFFFFFFFF=%X\n",i&0xFFFFFFFF;
   "i>>32       =%X\n",i>>32;
 
-  /*  Standard integer types are declared
+  /*  Standard int types are declared
 with a special compiler feature which
 allows a structure to be accessed as a
 whole.  That's why the i variable can
@@ -87,7 +87,7 @@ DoIt2;
 /*Program Output$HL,0$$WW+H,1$$FD,1$
 
 8 Cores 2.660GHz
-Integer Sum:2000000199.768689408 Time:	0.787s
+Int Sum:2000000199.768689408 Time:	0.787s
 Float	Sum:2000000225.656126208 Time:	3.918s
 
 i	    =123456789ABCDEF0
diff --git a/Demo/Lectures/FixedPointAdvanced.CPP b/Demo/Lectures/FixedPointAdvanced.CPP
index 5299a9a..96ce13d 100644
--- a/Demo/Lectures/FixedPointAdvanced.CPP
+++ b/Demo/Lectures/FixedPointAdvanced.CPP
@@ -1,4 +1,4 @@
-/*"Fixed point" means you use integers
+/*"Fixed point" means you use ints
 that are scaled by a value.  A common
 example would be using number of pennies
 instead of dollars with a float.
@@ -9,7 +9,7 @@ floats.  It also depends on the compiler
 and my compiler used to do floats poorly.
 
 I often use 64-bit ints with upper 32-bits
-as integer and lower 32-bits as fraction.
+as int and lower 32-bits as fraction.
 
 See $LK,"::/Demo/SubIntAccess.CPP"$ for how
 to access upper or lower 32-bits.
diff --git a/Demo/Lectures/MiniCompiler.CPP b/Demo/Lectures/MiniCompiler.CPP
index 902759a..f048ea7 100644
--- a/Demo/Lectures/MiniCompiler.CPP
+++ b/Demo/Lectures/MiniCompiler.CPP
@@ -11,7 +11,7 @@ $ID,-2$
 $TR,"Mini Compiler"$
 $ID,2$For this mini compiler, some things you should know about 64-bit asm:
 
-* Putting a 0x48, known as the REX byte, in front of an instruction makes it 64-bit size.
+* Putting a 0x48, known as the REX byte, in front of an inst makes it 64-bit size.
 
 * "PUSH EAX", "POP EAX" and "XOR EAX,EAX" will behave as 64-bit even without REX because the stk is always 64 bit and because the XOR clears the upper 32-bits.
 
@@ -112,7 +112,7 @@ U0 PrsTerm(U8 **_src,U8 **_dst,I64 prec)
 
 I64 Parse(U8 **_src,U8 **_dst)
 {//See $LK,"PrsExpression",A="MN:PrsExpression"$().
-//See $LK,"Opcode Fmts",A="FF:::/Compiler/OpCodes.TXT,IDIV"$ for details on asm instructions.
+//See $LK,"Opcode Fmts",A="FF:::/Compiler/OpCodes.TXT,IDIV"$ for details on asm insts.
   I64 i;
   U8 *dst=*_dst;
   switch (Lex(_src,&i)) {
@@ -204,7 +204,7 @@ U0 Main()
 
   while (TRUE) {
     "This will compile an expression\n"
-	  "consisting of integers, parentheses\n"
+	  "consisting of ints, parentheses\n"
 	  "and the operators +,-,* and /.\n";
     src=GetStr;
     if (*src) {
diff --git a/Demo/Lectures/Optimization.CPP b/Demo/Lectures/Optimization.CPP
index d49ae03..44b8944 100644
--- a/Demo/Lectures/Optimization.CPP
+++ b/Demo/Lectures/Optimization.CPP
@@ -1,8 +1,8 @@
 /*The moral of this story is simple
-instruction level optimizations
+inst level optimizations
 don't matter much on a modern Intel CPU
-because they convert complex instructions
-to a stream of RISC instructions.
+because they convert complex insts
+to a stream of RISC insts.
 
 I learned this the hard way when I thought
 I was greatly improving my compiler by
@@ -61,7 +61,7 @@ _WELL_OPTIMIZED3::
 	XOR	RAX,RAX
 	MOV	RCX,SAMPLES-1
 @@05:	ADD	RAX,RCX
-	LOOP	@@05	//Instruction sucks in speed, but saves code size.
+	LOOP	@@05	//Inst sucks in speed, but saves code size.
 	RET
 }
 
diff --git a/Demo/MultiCore/Lock.CPP b/Demo/MultiCore/Lock.CPP
index 4b10937..2ccfa5c 100644
--- a/Demo/MultiCore/Lock.CPP
+++ b/Demo/MultiCore/Lock.CPP
@@ -1,8 +1,8 @@
 /*lock{} is a compiler stmt
-which places asm LOCK instruction
+which places asm LOCK inst
 prefixes on code.  Only use it on
 read-modify-write stmts.
-It will generate invalid instructions
+It will generate invalid insts
 if you misuse it and it will crash.
 $LK,"U",A="MN:U"$() to see what code was generated.
 */
diff --git a/Demo/SortFileExample/SortedF64.DAT b/Demo/SortFileExample/SortedF64.DAT
index 3900869..36d72bc 100644
--- a/Demo/SortFileExample/SortedF64.DAT
+++ b/Demo/SortFileExample/SortedF64.DAT
@@ -1 +1 @@
-8ý!/Û
˜?"v¬ùâ°»?äÌq¡À?jAÊ?õŸƒ¶3Í?¬ax“Ø?]¦"Þ?L–o`öÞ?ŠìÁxÅß? Ñ”ìžë?
\ No newline at end of file
+ëØ'^»™?ÿS”aÔÄ?‡u•Ëj^Ï?*ð¨¥y§Ò?ðe¢ý£‰Ú?ÁhY÷×ß?mëc|˜ä?‰-ÅiU°å?×�vŸWÂè?Þ/PÄAë?
\ No newline at end of file
diff --git a/Demo/SortFileExample/SortedF64.TXT b/Demo/SortFileExample/SortedF64.TXT
index 4a70acc..233bbb9 100644
--- a/Demo/SortFileExample/SortedF64.TXT
+++ b/Demo/SortFileExample/SortedF64.TXT
@@ -1,11 +1,11 @@
 //This is sorted.
-    0.256505
-    0.347373
-    0.349509
-    0.367545
-    0.563530
-    0.626343
-    0.703852
-    0.753115
-    0.897487
-    0.941150
+    0.014631
+    0.073055
+    0.074138
+    0.078977
+    0.245686
+    0.393559
+    0.554134
+    0.570852
+    0.856893
+    0.981828
diff --git a/Demo/SortFileExample/UnsortedF64.DAT b/Demo/SortFileExample/UnsortedF64.DAT
index dcae6de..79bf2ca 100644
--- a/Demo/SortFileExample/UnsortedF64.DAT
+++ b/Demo/SortFileExample/UnsortedF64.DAT
@@ -1 +1 @@
-jAÊ?¬ax“Ø?]¦"Þ?"v¬ùâ°»?äÌq¡À?ŠìÁxÅß?õŸƒ¶3Í?8ý!/Û
˜?L–o`öÞ? Ñ”ìžë?
\ No newline at end of file
+Þ/PÄAë?‰-ÅiU°å?ðe¢ý£‰Ú?ÁhY÷×ß?×�vŸWÂè?mëc|˜ä?‡u•Ëj^Ï?ëØ'^»™?ÿS”aÔÄ?*ð¨¥y§Ò?
\ No newline at end of file
diff --git a/Demo/SortFileExample/UnsortedF64.TXT b/Demo/SortFileExample/UnsortedF64.TXT
index 5ead3f9..cbefcc4 100644
--- a/Demo/SortFileExample/UnsortedF64.TXT
+++ b/Demo/SortFileExample/UnsortedF64.TXT
@@ -1,11 +1,11 @@
 //This is unsorted.
-    0.941150
-    0.347373
-    0.626343
-    0.256505
-    0.753115
-    0.367545
-    0.897487
-    0.563530
-    0.703852
-    0.349509
+    0.981828
+    0.554134
+    0.570852
+    0.393559
+    0.014631
+    0.856893
+    0.245686
+    0.074138
+    0.073055
+    0.078977
diff --git a/Demo/SubIntAccess.CPP b/Demo/SubIntAccess.CPP
index 66aaa59..2a655f4 100644
--- a/Demo/SubIntAccess.CPP
+++ b/Demo/SubIntAccess.CPP
@@ -1,6 +1,6 @@
 /*TempleOS has a feature that allows
 access to bytes and words of larger
-integers.
+ints.
 
 See $LK,"U64i union",A="FF:::/Kernel/KernelA.HPP,U64i union"$.
  
diff --git a/Demo/TimeIns.CPP b/Demo/TimeIns.CPP
index 2afe87b..9c04826 100644
--- a/Demo/TimeIns.CPP
+++ b/Demo/TimeIns.CPP
@@ -1,4 +1,4 @@
-/*Allows you to time instructions.
+/*Allows you to time insts.
 Results vary because the CPU does
 parallel and out-of-order execution.
 */
@@ -20,7 +20,7 @@ U0 TimeIns()
   start=GetTSC;
   for (i=0;i\n"
 	  "\n"
-	  "\n";
+	  "\n";
   if (!body_header) body_header=
 	  "\n"
 	  "
\n";
diff --git a/Demo/WebLogExample/WebLogRep.CPP b/Demo/WebLogExample/WebLogRep.CPP
index 9a91653..dc4edff 100644
--- a/Demo/WebLogExample/WebLogRep.CPP
+++ b/Demo/WebLogExample/WebLogRep.CPP
@@ -182,6 +182,7 @@ U0 BlockIPNums(LogStruct *root)
   BlockedStructAdd(&blocked_root,68<<24+96<<16+100<<8+126);
   BlockedStructAdd(&blocked_root,68<<24+96<<16+110<<8+213);
   BlockedStructAdd(&blocked_root,68<<24+96<<16+242<<8+108);
+  BlockedStructAdd(&blocked_root,68<<24+227<<16+61<<8+11);
 
   //pass 1: collect robot lst
   while (templg!=root) {
diff --git a/Demo/WebLogExample/access_150211.LOG b/Demo/WebLogExample/access_150211.LOG
index 16be578..d001e9b 100644
--- a/Demo/WebLogExample/access_150211.LOG
+++ b/Demo/WebLogExample/access_150211.LOG
@@ -584,7 +584,7 @@
 52.53.176.137 - - [10/Feb/2015:13:44:27 -0800] "GET /files/?D=A HTTP/1.1" 200 1522 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
 52.81.208.207 - - [10/Feb/2015:13:45:31 -0800] "GET /Wb/Adam/Gr/GrPrimatives.html HTTP/1.1" 200 743387 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0" "www.templeos.org"
 130.158.66.124 - - [10/Feb/2015:13:47:09 -0800] "GET /files/BIBLE.TXT HTTP/1.1" 200 4345143 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36" "www.templeos.org"
-150.176.164.55 - - [10/Feb/2015:13:47:55 -0800] "GET /Wb/Demo/Graphics/CharGraphics.html HTTP/1.1" 200 15754 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
+150.176.164.55 - - [10/Feb/2015:13:47:55 -0800] "GET /Wb/Demo/Graphics/CharAnimation.html HTTP/1.1" 200 15754 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
 150.176.164.55 - - [10/Feb/2015:13:51:30 -0800] "GET / HTTP/1.1" 200 6329 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
 150.176.164.55 - - [10/Feb/2015:13:51:58 -0800] "GET /Wb/Home/Web/History.html HTTP/1.1" 200 7745 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
 210.63.49.147 - - [10/Feb/2015:13:53:23 -0800] "GET /test/wp-admin/ HTTP/1.1" 404 89 "-" "-" "templeos.org"
diff --git a/Doc/Asm.TXT b/Doc/Asm.TXT
index 807567d..e480f5c 100644
--- a/Doc/Asm.TXT
+++ b/Doc/Asm.TXT
@@ -1,12 +1,12 @@
 $WW,1$$FG,5$$TX+CX,"Assembler"$$FG$
 
-See $LK,"::/Compiler/OpCodes.TXT"$ for opcodes.  They're not standard.  Some invalid instructions are not flagged and some valid instructions are not implemented. 16-bit asm support is limited.
+See $LK,"::/Compiler/OpCodes.TXT"$ for opcodes.  They're not standard.  Some invalid insts are not flagged and some valid insts are not implemented. 16-bit asm support is limited.
 
-Here are example instruction formats:
+Here are example inst formats:
 $HL,1$	ADD	RAX,I64 FS:DISP[RSI+RDI*8]
 $HL,0$$HL,1$	ADD	RAX,I64 [DISP]
 $HL,0$
-$FG,2$$$$FG$ Current compiler output pos (instruction ptr).  Even works in HolyC expressions.
+$FG,2$$$$FG$ Current compiler output pos (inst ptr).  Even works in HolyC expressions.
 
 $FG,2$$$$FG$ works in $FG,2$class$FG$es.
   $FG,2$class MyFun
diff --git a/Doc/ChangeLog.TXT b/Doc/ChangeLog.TXT
index 5f7d8af..9062022 100644
--- a/Doc/ChangeLog.TXT
+++ b/Doc/ChangeLog.TXT
@@ -2,6 +2,39 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
 
 Use $LK,"R",A="MN:R"$() to rename if I change a label.
 
+$IV,1$----03/29/16 17:59:14----$IV,0$
+
+$IV,1$----03/29/16 05:53:45----$IV,0$
+* $BK,1$TempleOS version 4.05 Released$BK,0$
+
+$IV,1$----03/24/16 16:26:50----$IV,0$
+* Added $LK,"::/Demo/Games/CharDemo.CPP"$.
+
+$IV,1$----03/22/16 16:58:25----$IV,0$
+* Added $LK,"DOCEF_DFT_RAW_TYPE",A="MN:DOCEF_DFT_RAW_TYPE"$.  Modified $LK,"DocForm",A="MN:DocForm"$() to look-up raw type automatically from the compiler's class information.
+* Added $LK,"DOCEF_DFT_LEN",A="MN:DOCEF_DFT_LEN"$.  Modified $LK,"DocForm",A="MN:DocForm"$() to look-up string length automatically from the compiler's class information.
+
+$IV,1$----03/21/16 07:28:35----$IV,0$
+* Added $LK,"OCF_ALIAS",A="MN:OCF_ALIAS"$.
+* $LK,"R",A="MN:R"$("Integer","Int");
+* Added aliases to $LK,"::/Compiler/OpCodes.TXT"$.
+
+$IV,1$----03/21/16 02:12:08----$IV,0$
+* Added $LK,"DOCT_MARKER",A="MN:DOCT_MARKER"$.
+* Added $LK,"CICType",A="MN:CICType"$.
+* Optimized $LK,"MDG_MASK",A="MN:MDG_MASK"$ and $LK,"RTG_MASK",A="MN:RTG_MASK"$ values.
+
+$IV,1$----03/19/16 09:15:11----$IV,0$
+* Fixed bug in $LK,"EdFindReplace",A="MN:EdFindReplace"$().
+
+$IV,1$----03/19/16 06:22:36----$IV,0$
+* Fixed $LK,"UAsm",A="MN:Ui"$() bug.
+* Got rids of $FG,4$ICF_A1_FIRST$FG$.
+* Cleaned-up compiler $LK,"REGG_CLOBBERED",A="MN:REGG_CLOBBERED"$ and $LK,"REGG_STK_TEMP",A="MN:REGG_STK_TEMP"$.
+
+$IV,1$----03/18/16 09:53:33----$IV,0$
+* Made $LK,"SpriteEd",A="MN:SpriteEd"$() select foreground elem.
+
 $IV,1$----03/14/16 05:57:27----$IV,0$
 * $BK,1$TempleOS version 4.04 Released$BK,0$
 * Changed $FG,2$nobound_switch$FG$ so it uses [].
@@ -123,7 +156,7 @@ $IV,1$----01/06/16 11:01:57----$IV,0$
 
 $IV,1$----01/03/16 17:15:41----$IV,0$
 * Updated $LK,"::/Misc/PCIDevices.TXT"$.
-* Added null case option.  Next higher integer with "$FG,2$case:$FG$" in $FG,2$switch$FG$ stmts.  See  $LK,"::/Demo/NullCase.CPP"$.
+* Added null case option.  Next higher int with "$FG,2$case:$FG$" in $FG,2$switch$FG$ stmts.  See  $LK,"::/Demo/NullCase.CPP"$.
 
 $IV,1$----12/31/15 00:44:44----$IV,0$
 * Made $LK,"ASM_KEYWORD",A="FF:::/Compiler/OpCodes.TXT,ASM_KEYWORD"$s usable in HolyC outside asm{} blocks.
diff --git a/Doc/CutCorners.TXT b/Doc/CutCorners.TXT
index 23eba99..82a3a2f 100644
--- a/Doc/CutCorners.TXT
+++ b/Doc/CutCorners.TXT
@@ -6,7 +6,7 @@ There are a few places where I cut corners in the interest of not junking-up cod
 
 * TempleOS does not figure-out $FG,2$FAT32$FG$ short name alias numbers.  $LK,"FAT32DirNew",A="MN:FAT32DirNew"$().  It can cause hard drive corruption, so I might have to do it.  It would really take a lot of junky code for this hatefully, detestable, legacy issue.  "Please don't make me ruin my beautiful shiny-new TempleOS with that!"  I am also not enthused about $FG,2$FAT32$FG$ because it is in patent limbo.  $FG,2$FAT32$FG$ might get removed from TempleOS.  There is the $LK,"RedSea",A="FI:::/Doc/RedSea.TXT"$  64-bit file system that works perfectly well.  $FG,2$FAT32$FG$ is useful, however, because it assists in transferring between dual booted operating systems.
 
-* I changed the $LK,"asm opcodes",A="FI:::/Compiler/OpCodes.TXT"$ names to remove the ambiguity between instructions with different numbers of arguments, making my $LK,"assembler",A="FI:::/Compiler/Asm.CPP"$ simpler and I did minimal 16-bit asm support, since 64-bit is what you should be using, unless you're doing a $LK,"boot loader",A="FI:::/Adam/Opt/Boot/BootDVD.CPP"$.
+* I changed the $LK,"asm opcodes",A="FI:::/Compiler/OpCodes.TXT"$ names to remove the ambiguity between insts with different numbers of arguments, making my $LK,"assembler",A="FI:::/Compiler/Asm.CPP"$ simpler and I did minimal 16-bit asm support, since 64-bit is what you should be using, unless you're doing a $LK,"boot loader",A="FI:::/Adam/Opt/Boot/BootDVD.CPP"$.
 
 * There are no user-controlled file-sharing locks.  However, the drive and file system have locks and concurrent operations should be fine. 
 
diff --git a/Doc/Date.TXT b/Doc/Date.TXT
index 6350715..c8bd58a 100644
--- a/Doc/Date.TXT
+++ b/Doc/Date.TXT
@@ -1 +1 @@
-$WW,1$Dates are 32-bit signed integers representing the number of days since the birth of Christ.  Negative values represent B.C.E. dates.
+$WW,1$Dates are 32-bit signed ints representing the number of days since the birth of Christ.  Negative values represent B.C.E. dates.
diff --git a/Doc/DbgOverview.TXT b/Doc/DbgOverview.TXT
index 945e51c..be53a32 100644
--- a/Doc/DbgOverview.TXT
+++ b/Doc/DbgOverview.TXT
@@ -6,7 +6,7 @@ $WW,1$$FG,5$$TX+CX,"Debugging Overview"$$FG$
 
 * While debugging, you specify addresses of assembly routines with just the label, as in $FG,2$_MALLOC+0x20$FG$.  You specify $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ function names with $FG,2$&$FG$ before functions as in $FG,2$&Print+0x10$FG$.
 
-* I use $LK,"progress1",A="MN:progress1"$-$LK,"progress4",A="MN:progress4"$ for debugging because they show on the wallpaper.  They're just global integer vars.
+* I use $LK,"progress1",A="MN:progress1"$-$LK,"progress4",A="MN:progress4"$ for debugging because they show on the wallpaper.  They're just global int vars.
 
 * You can use $LK,"AdamLog",A="MN:AdamLog"$() to send text to the Adam task window.  It works like $LK,"Print",A="MN:Print"$().  I never use that.  Instead, I use $LK,"RawPrint",A="MN:RawPrint"$().
 
diff --git a/Doc/Demands.TXT b/Doc/Demands.TXT
index 9679859..16b8351 100644
--- a/Doc/Demands.TXT
+++ b/Doc/Demands.TXT
@@ -6,9 +6,9 @@ $HC," to see
 $ID,-2$$TR,"BT Button"$
 $ID,2$See $LK,"::/Demo/DolDoc/MenuButton.CPP"$.
 $ID,-2$$TR,"DA Data"$
-$ID,2$Used for forms that prompt for data.  Use $FG,2$$FG$ as a text widgets editor to help you generate the text you need in your "$FG,2$fmtstr$FG$" cmd in a $FG,2$class$FG$.  If you add it directly with $LK,"DocPrint",A="MN:DocPrint"$(), you'll need to fill-in the data addr.  See $LK,"DocForm",A="MN:DocForm"$() and $LK,"::/Demo/DolDoc/Form.CPP"$.
+$ID,2$Used for forms that prompt for data or just displaying a value.  Use $FG,2$$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ $FG,2$class$FG$ member's $FG,2$fmtstr$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$().  See $LK,"::/Demo/DolDoc/Form.CPP"$, $LK,"::/Demo/Dsk/DataBase.CPP"$, and $LK,"::/Adam/DolDoc/DocWidgetWiz.CPP"$.
 
-The default data-type for the $FG,2$$$DA...$$$FG$ command is $FG,2$I64$FG$.  You can change it to $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$.  See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
+If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$DA...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr.  See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.CPP,&Fs->task_title"$.   
 
-The $LK,"CDocEntry",A="MN:CDocEntry"$.aux_str arg $FG,2$A=""$FG$ is used for the format string.
+The default raw data type for the $FG,2$$$DA...$$$FG$ command is $FG,2$RT=I64$FG$.  $LK,"DocForm",A="MN:DocForm"$() will automatically reset the raw type to the value from the $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ $FG,2$class$FG$ member's definition if you leave it set to the default.  Or, if not using $LK,"DocForm",A="MN:DocForm"$(), specify a raw data type of $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$.  See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
 
-If there is a ':', the space after the first ':' in the format string marks the first valid cursor pos.  See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.CPP,DataTagWidth"$.
+The $LK,"CDocEntry",A="MN:CDocEntry"$.aux_str arg $FG,2$A=""$FG$ is used for the print/scan format string.
+
+The default field length is $FG,2$LEN=64$FG$ characters.  For U8 arrays[], $LK,"DocForm",A="MN:DocForm"$() will automatically reset the field length to the string length from the $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ $FG,2$class$FG$ member's definition.  The length measures starting after the ':' in the $FG,2$A=""$FG$ format string.
+
+The space after the first ':' in the format string marks the first valid cursor pos.  See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.CPP,DataTagWidth"$.
 $ID,-2$$TR,"CB Check Box"$
-$ID,2$Used for forms.  Use $FG,2$$FG$ as a text widgets editor to help you generate the text you need in your "$FG,2$fmtstr$FG$" cmd in a $FG,2$class$FG$.  If you add it directly with $LK,"DocPrint",A="MN:DocPrint"$(), you'll need to fill-in the data addr.  See $LK,"DocForm",A="MN:DocForm"$(), $LK,"CEdFindText",A="MN:CEdFindText"$ and $LK,"::/Demo/DolDoc/Form.CPP"$.
+$ID,2$Used for forms.  Use $FG,2$$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ $FG,2$class$FG$ member's $FG,2$fmtstr$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$().  See $LK,"::/Demo/DolDoc/Form.CPP"$$FG$ and $LK,"CEdFindText",A="MN:CEdFindText"$.
 
-The default data-type for the $FG,2$$$CB...$$$FG$ command is $FG,2$I8$FG$ which is $FG,2$Bool$FG$.  You can change it to $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, or $FG,2$U64$FG$.  See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
+If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$CB...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the $FG,2$->data$FG$ addr.  See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.CPP,&Fs->task_title"$.   
+
+The default raw data type for the $FG,2$$$CB...$$$FG$ command is $FG,2$RT=I8$FG$ which is $FG,2$Bool$FG$$FG$.  $LK,"DocForm",A="MN:DocForm"$() will automatically reset the raw type to the value from the $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ $FG,2$class$FG$ member's definition if you leave it set to the default.  Or, if not using $LK,"DocForm",A="MN:DocForm"$(), specify a raw data type of $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$.  See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
 $ID,-2$$TR,"LS List Widget"$
-$ID,2$Used for forms that prompt for data.  You must specify a define list, $FG,2$D=""$FG$.  Use $FG,2$$FG$ as a text widgets editor to help you generate the text you need in your "$FG,2$fmtstr$FG$" cmd in a $FG,2$class$FG$.  If you add it directly with $LK,"DocPrint",A="MN:DocPrint"$(), you'll need to fill-in the data addr.  See $LK,"DocForm",A="MN:DocForm"$() and $LK,"::/Demo/DolDoc/Form.CPP"$.
+$ID,2$Used for forms that prompt for data.  You must specify a define list, $FG,2$D=""$FG$.  Use $FG,2$$FG$ to help you generate the DolDoc command text you need in your $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ $FG,2$class$FG$ member's $FG,2$fmtstr$FG$ meta-data for $LK,"DocForm",A="MN:DocForm"$().  See $LK,"::/Demo/DolDoc/Form.CPP"$.
 
-The default data-type for the $FG,2$$$LS...$$$FG$ command is $FG,2$I64$FG$.  You can change it to $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, or $FG,2$U64$FG$.  See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
+If you are not using $LK,"DocForm",A="MN:DocForm"$(), make a $FG,2$$$LS...$$$FG$ statement with $LK,"DocPrint",A="MN:DocPrint"$() and fill-in the data addr.  See $LK,"task_title",A="FF:::/Adam/DolDoc/DocEd.CPP,&Fs->task_title"$.   
+
+The default raw data type for the $FG,2$$$LS...$$$FG$ command is $FG,2$RT=I64$FG$.  $LK,"DocForm",A="MN:DocForm"$() will automatically reset the raw type to the value from the $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ $FG,2$class$FG$ member's definition if you leave it set to the default.  Or, if not using $LK,"DocForm",A="MN:DocForm"$(), specify a raw data type of $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$.  See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
 $ID,-2$$TR,"MA Macro"$
 $ID,2$A left macro arg, $FG,2$LM=""$FG$, will send text when the left mouse is clicked.
 
@@ -215,6 +223,10 @@ $ID,-2$
 <$LK,"ArgCode",A="FF:::/Adam/DolDoc/DocInit.CPP,ST_DOC_FLAGS"$>  See $LK,"Arg Defines",A="MN:DOCEf_TAG"$.
 $TR,"T=\"\" Tag Str"$
 $ID,2$Some cmds have a tag by default.  See $LK,"TX+T",A="FF:::/Adam/DolDoc/DocInit.CPP,TX+T"$.  You can code $FG,2$T="tag_text"$FG$ as just $FG,2$"tag_text"$FG$ with no $FG,2$T=$FG$. 
+$ID,-2$$TR,"LEN=\"\" Field Length"$
+$ID,2$The default field length for $FG,2$$$DA...$$$FG$ commands is $FG,2$LEN=64$FG$ characters.  For U8 arrays[], $LK,"DocForm",A="MN:DocForm"$() will automatically reset the field length to the string length from the $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ $FG,2$class$FG$ member's definition.  The length measures starting after the ':' in the $FG,2$A=""$FG$ format string.
+
+The space after the first ':' in the format string marks the first valid cursor pos.  See $LK,"Data Tag Width",A="FA:::/Adam/DolDoc/DocPlain.CPP,DataTagWidth"$.
 $ID,-2$$TR,"A=\"\" Auxilliary Str"$
 $ID,2$Some cmds need auxilliary strings.  $FG,2$A="str"$FG$ means an $LK,"CDocEntry",A="MN:CDocEntry"$.aux_str is present.  aux_str is used for song note text, link text, anchor text, and $FG,2$$$DA...$$$FG$ format string text.
 $ID,-2$$TR,"D=\"\" Define Str"$
@@ -245,9 +257,9 @@ $ID,2$The BinPtrLink flags lets you specify a filename and bin num to import a b
 $FG,2$$$SP,"",BI=1,BP="filename,1"$$$FG$ will import bin num "1" from filename.
 $FG,2$$$SP,"<1>",BI=1,BP="::/Demo/Graphics/Mountain.CPP.Z,Mountain"$$$FG$ will import bin with tag name "Mountain" from "::/Demo/Graphics/Mountain.CPP.Z".
 $ID,-2$$TR,"RT="$
-$ID,2$The default data-type for the $FG,2$$$DA...$$$FG$ command is $FG,2$I64$FG$.  The default for the $FG,2$$$CB...$$$FG$ command is $FG,2$I8$FG$ which is $FG,2$Bool$FG$.
+$ID,2$The default data-type for the $FG,2$$$DA...$$$FG$ and $FG,2$$$LS...$$$FG$ commands is $FG,2$RT=I64$FG$.  If you do not specify a raw type and are using $LK,"DocForm",A="MN:DocForm"$(), it will use the $FG,2$class$FG$ member's raw type, automatically.  The default for the $FG,2$$$CB...$$$FG$ command is $FG,2$RT=I8$FG$ which is $FG,2$Bool$FG$.
 
-You can change it to $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$.  See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
+If not using $LK,"DocForm",A="MN:DocForm"$(), change it to $FG,2$I8$FG$, $FG,2$U8$FG$, $FG,2$I16$FG$, $FG,2$U16$FG$, $FG,2$I32$FG$, $FG,2$U32$FG$, $FG,2$I64$FG$, $FG,2$U64$FG$, or $FG,2$F64$FG$.  See $LK,"DocDataFmt",A="MN:DocDataFmt"$() and $LK,"DocDataScan",A="MN:DocDataScan"$().
 $ID,-2$$TR,"SX= Shift X"$
 $ID,2$Shift tag text $FG,2$+$FG$/$FG,2$- 7$FG$ X pixels off the grid.
 $ID,-2$$TR,"SY= Shift Y"$
diff --git a/Doc/FAQ.TXT b/Doc/FAQ.TXT
index c86dc6c..fb86a3d 100644
--- a/Doc/FAQ.TXT
+++ b/Doc/FAQ.TXT
@@ -17,7 +17,7 @@ $ID,2$TempleOS compiles, doesn't $FG,2$interpret$FG$, and uses no $FG,2$byte cod
 $ID,-2$$TR,"Are you a Creationist?"$
 $ID,2$I am an evolutionist.  $FG,2$Adam$FG$ is a better term for the first father of all tasks than $FG,2$root$FG$ was!
 $ID,-2$$TR,"Is 'Bt()' in the code Bit Torrent?"$
-$ID,2$$LK,"Bt",A="MN:Bt"$() is $FG,2$bit test$FG$, like the $FG,2$x86$FG$ instruction, not $FG,2$bit torrent$FG$.
+$ID,2$$LK,"Bt",A="MN:Bt"$() is $FG,2$bit test$FG$, like the $FG,2$x86$FG$ inst, not $FG,2$bit torrent$FG$.
 $ID,-2$$TR,"Is 'Fs->' in the code file system?"$
 $ID,2$$LK,"Fs",A="MN:Fs"$ is a segment reg, not $FG,2$file system$FG$.  ($LK,"Fs",A="MN:Fs"$ is kept pointing to the current task's record.)  There is no memory segmentation.  It is 64-bit and flat. FS and GS are used as general purpose regs, more or less.
 $ID,-2$$TR,"Is it Pascal?"$
@@ -49,7 +49,7 @@ $ID,2$TempleOS identity-maps all memory, all the time.  It is like paging is not
 $ID,-2$$TR,"Why does it run code from stack addresses?"$
 $ID,2$TempleOS puts all code in the lowest 2 Gig, known as the $LK,"Code Heap",A="FF:::/Doc/Glossary.TXT,Code and Data Heaps"$, so that the $FG,2$REL32$FG$ addressing mode can be used.  TempleOS is 64-bit, but $FG,2$2 Gig$FG$ is enough for code.  It actually puts global variables there, too, but you can turn that off with $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$.  $LK,"MAlloc",A="MN:MAlloc"$() allocs higher memory.
 $ID,-2$$TR,"How does it SYSCALL?"$
-$ID,2$TempleOS doesn't use software interrupts or $FG,2$SYSCALL$FG$ instructions because it never needs to change out of ring-0, even running user programs.  Calls are always $FG,2$CALL REL32$FG$ instructions.
+$ID,2$TempleOS doesn't use software interrupts or $FG,2$SYSCALL$FG$ insts because it never needs to change out of ring-0, even running user programs.  Calls are always $FG,2$CALL REL32$FG$ insts.
 $ID,-2$$TR,"How do you fault-in stack?"$
 $ID,2$The stack does not grow, so do not do deep recursion.  In theory, memory gets fragmented, too.
 $ID,-2$$TR,"How do I set the PATH?"$
@@ -62,7 +62,7 @@ $ID,-2$$TR,"Why is there some 16-Bit code?"$
 $ID,2$TempleOS is 64-bit.  Like all PC operating systems, the boot-loader starts in 16-bit real-mode.  TempleOS calls a few $FG,2$BIOS$FG$ info routines, switches to VGA-640x480x4bit, switches to 32-bit, then, 64-bit mode.  There is an odd thing called a $FG,2$$TX,"PCI BIOS",HTML="http://www.o3one.org/hwdocs/bios_doc/pci_bios_21.pdf"$$FG$ which is 32-bit used for $FG,2$PCI$FG$ config space access.  TempleOS calls $LK,"that",A="FI:::/Kernel/PCIBIOS.CPP"$ a couple times.  It must temporarily drop-out-of 64-bit mode for that and stop multi-tasking.
 $ID,-2$$TR,"Why are you pushing 32-bit values on the stack?"$
 $ID,2$$FG,2$PUSH EAX$FG$ : All stack operations in 64-bit mode are 64-bits.
-$ID,-2$$TR,"Why are you using 32-bit instructions and not setting high 32-bits?"$
+$ID,-2$$TR,"Why are you using 32-bit insts and not setting high 32-bits?"$
 $ID,2$$FG,2$XOR EAX,EAX$FG$ : Operations on 32-bit regs clear the high 32-bits.
 $ID,-2$$TR,"How do you use the FS and GS segment registers."$
 $ID,2$$FG,2$MOV RAX,FS:[RAX]$FG$ : FS can be set with a $FG,2$WRMSR$FG$, but displacement is RIP relative, so it's tricky to use.  FS is used for the current $LK,"CTask",A="MN:CTask"$, GS for $LK,"CCPU",A="MN:CCPU"$.
diff --git a/Doc/Features.TXT b/Doc/Features.TXT
index ab9ba43..226e080 100644
--- a/Doc/Features.TXT
+++ b/Doc/Features.TXT
@@ -30,7 +30,7 @@
 
 * $FG,2$64-bit pointers$FG$.  All memory, even more than 4 Gig, can be directly accessed by all tasks on all cores at all times.
 
-* $FG,2$Ring-0-only$FG$.  Highest CPU privileged mode at all times.  No off-limits instructions.  No time lost changing modes or address maps.  Switches tasks in half a microsecond.
+* $FG,2$Ring-0-only$FG$.  Highest CPU privileged mode at all times.  No off-limits insts.  No time lost changing modes or address maps.  Switches tasks in half a microsecond.
 
 * $FG,2$2D/3D$FG$ graphics library
 
diff --git a/Doc/FileUtils.TXT b/Doc/FileUtils.TXT
index 9938388..b9c0d32 100644
--- a/Doc/FileUtils.TXT
+++ b/Doc/FileUtils.TXT
@@ -9,7 +9,7 @@ $FG,2$"/*.TXT*;~*/Bible*"$FG$	BaseDir: $FG,2$Root$FG$		Mask: $FG,2$*.TXT*$FG$ bu
 
 See $LK,"FilesFindMatch",A="MN:FilesFindMatch"$().
 
-Flags are either text or integer values.
+Flags are either text or int values.
 
   $LK,"FUF_RECURSE",A="MN:FUF_RECURSE"$		$FG,2$+r$FG$ Recurse
   $LK,"FUF_SINGLE",A="MN:FUF_SINGLE"$		$FG,2$+s$FG$ Single File (Optimization for one file in mask.)
diff --git a/Doc/Glossary.TXT b/Doc/Glossary.TXT
index 9dfbe15..0ff05e2 100644
--- a/Doc/Glossary.TXT
+++ b/Doc/Glossary.TXT
@@ -7,6 +7,7 @@ $FG,2$Acct$FG$	Account
 $FG,2$ACD$FG$	AutoComplete Dictionary
 $FG,2$Addr$FG$	Address
 $FG,2$Alloc$FG$	Allocate
+$FG,2$Alt$FG$	Alternate
 $FG,2$AOT$FG$	Ahead-of-Time
 $FG,2$AP$FG$	ApplicationProcessor (Core1 - Core7)
 $FG,2$Arg$FG$	Argument
@@ -65,7 +66,8 @@ $FG,2$Ident$FG$	Identifier, Identity
 $FG,2$IDT$FG$	Interrupt Descriptor Table
 $FG,2$Init$FG$	Initialize
 $FG,2$Ins$FG$	Insert
-$FG,2$Int$FG$	Interrupt
+$FG,2$Inst$FG$	Instruction
+$FG,2$Int$FG$	Interrupt, Integer
 $FG,2$ip_$FG$	Input Pointer.  See $LK,"InputPointer.CPP",A="FI:::/Kernel/SerialDev/InputPointer.CPP"$.
 $FG,2$Irq$FG$	Interrupt (Request)
 $FG,2$JIT$FG$	Just-in-Time
@@ -148,11 +150,11 @@ $ID,2$This is Adam, as in Adam and Eve, the parent of all tasks and immortal.  T
 $ID,-2$$TR,"Seth Task"$
 $ID,2$$FG,2$Seth$FG$ is Adam and Eve's child.  Each CPU core has an executive task called $FG,2$Seth$FG$ that is immortal.  The Adam task on $FG,2$CPU#0$FG$ is also it's $FG,2$Seth$FG$ task.
 $ID,-2$$TR,"Code and Data Heaps"$
-$ID,2$TempleOS uses the asm $FG,2$CALL$FG$ instruction, exclusively, and that instruction is limited to calling routines $FG,2$+/-2 Gig$FG$ from the current code location.  To prevent out-of-range issues, I decided to separate code and data, placing all code within the lowest $FG,2$2 Gig$FG$ of memory, addresses $FG,2$00000000$FG$-$FG,2$7FFFFFFF$FG$.  The compiler and $LK,"Load",A="MN:Load"$()er alloc memory from the code heap to store code and glbl vars, unless the compiler option $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$ is used.  When programs call $LK,"MAlloc",A="MN:MAlloc"$() is from the data heap, which in not limited in size, except by physical RAM memory.  You can alloc from any heap in any task at any time on any core, even making $LK,"independent",A="MN:Mem512Alloc"$ heaps.
+$ID,2$TempleOS uses the asm $FG,2$CALL$FG$ inst, exclusively, and that inst is limited to calling routines $FG,2$+/-2 Gig$FG$ from the current code location.  To prevent out-of-range issues, I decided to separate code and data, placing all code within the lowest $FG,2$2 Gig$FG$ of memory, addresses $FG,2$00000000$FG$-$FG,2$7FFFFFFF$FG$.  The compiler and $LK,"Load",A="MN:Load"$()er alloc memory from the code heap to store code and glbl vars, unless the compiler option $LK,"OPTf_GLBLS_ON_DATA_HEAP",A="MN:OPTf_GLBLS_ON_DATA_HEAP"$ is used.  When programs call $LK,"MAlloc",A="MN:MAlloc"$() is from the data heap, which in not limited in size, except by physical RAM memory.  You can alloc from any heap in any task at any time on any core, even making $LK,"independent",A="MN:Mem512Alloc"$ heaps.
 $ID,-2$$TR,"Parent, Child and PopUp Tasks"$
 $ID,2$Often a task will $LK,"Spawn",A="MN:Spawn"$() or $LK,"PopUp",A="MN:PopUp"$() a task as a helper.  The helper is known as a child Task, though you can $LK,"Spawn",A="MN:Spawn"$ a task and assign it a different parent... like $FG,2$Adam$FG$.  Links are kept as to who's whose child, so when one task is $LK,"Kill",A="MN:Kill"$()ed the child helper tasks die, too.  You can get a report of current system tasks with $LK,"TaskRep",A="MN:TaskRep"$().  There is just one window per task, so child tasks are needed for pop-ups.
 $ID,-2$$TR,"HolyC"$
-$ID,2$$LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ is more than $FG,2$C$FG$ and less than $FG,2$C++$FG$.  It has the default args of $FG,2$C++$FG$ and uses $FG,2$class$FG$ in place of $FG,2$struct$FG$.  It uses $FG,2$U0,U8,U16,U32,I64$FG$ and $FG,2$I0,I8,I16,I32,I64$FG$ for signed and unsigned integers.  It has different $LK,"operator precedence",A="FF:::/Doc/HolyC.TXT,operator precedence"$.  It has $FG,2$PASCAL$FG$-like function calls with no parens, but requires an $FG,2$&$FG,2$$FG$ when referring to function addresses.
+$ID,2$$LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ is more than $FG,2$C$FG$ and less than $FG,2$C++$FG$.  It has the default args of $FG,2$C++$FG$ and uses $FG,2$class$FG$ in place of $FG,2$struct$FG$.  It uses $FG,2$U0,U8,U16,U32,I64$FG$ and $FG,2$I0,I8,I16,I32,I64$FG$ for signed and unsigned ints.  It has different $LK,"operator precedence",A="FF:::/Doc/HolyC.TXT,operator precedence"$.  It has $FG,2$PASCAL$FG$-like function calls with no parens, but requires an $FG,2$&$FG,2$$FG$ when referring to function addresses.
 $ID,-2$$TR,"AOT Compile Mode"$
 $ID,2$$FG,2$Ahead-of-Time$FG$ compiling is conventional compilation mode.  Do not use $FG,2$AOT$FG$, use $FG,2$JIT$FG$ compiling.
 
@@ -162,7 +164,7 @@ There is no $FG,2$main()$FG$ routine.  Instead, stmts outside functions are auto
 $ID,-2$$TR,"JIT Compile Mode"$
 $ID,2$In $FG,2$just-in-time$FG$ mode, the compiler places code and data in memory alloced from the heap, incrementally, making them immediately ready for in-place execution.  This mode is used during cmd line operations.  When you $FG,2$#include$FG$ a file, it is compiled function by function and code ends-up all over in the memory, at least in the first 2Gig of memory.  The $LK,"ExeFile",A="MN:ExeFile"$() routine is the same as $FG,2$#include$FG$ but can be used in programs.  $LK,"ExePrint",A="MN:ExePrint"$() routine will compile and run a string.
 $ID,-2$$TR,"Compiler Intermediate Code"$
-$ID,2$The compiler generates instructions one step before making actual assembly (machine) language instructions.  This code is reverse polish stack machine in nature and can be viewed with $LK,"PassTrace",A="MN:PassTrace"$().  The compiler does not $FG,2$interpret$FG$ code, except in the process of optimization to make the final machine code.  Assembly language output can be viewed when code is compiled with the $LK,"Trace",A="MN:Trace"$(), or, afterward, with $LK,"U",A="MN:U"$() or $LK,"Uf",A="MN:Uf"$("").
+$ID,2$The compiler generates insts one step before making actual assembly (machine) language insts.  This code is reverse polish stack machine in nature and can be viewed with $LK,"PassTrace",A="MN:PassTrace"$().  The compiler does not $FG,2$interpret$FG$ code, except in the process of optimization to make the final machine code.  Assembly language output can be viewed when code is compiled with the $LK,"Trace",A="MN:Trace"$(), or, afterward, with $LK,"U",A="MN:U"$() or $LK,"Uf",A="MN:Uf"$("").
 $ID,-2$$TR,"Drive/Partition"$
 $ID,2$There is no distinction between $FG,2$drive$FG$ or $FG,2$partition$FG$.  They are specified with a single letter from $FG,2$A$FG$-$FG,2$Z$FG$.
 
@@ -179,7 +181,7 @@ $LK,"Hash Table",A="HI:Hash"$
 $LK,"RedSea File System",A="FI:::/Doc/RedSea.TXT"$
 $LK,"Sprite",A="HI:Graphics/Sprite"$
 $TR,"CLI, STI, PUSHFD, POPFD"$
-$ID,2$These are x86 assembly instructions.
+$ID,2$These are x86 assembly insts.
 $FG,2$CLI$FG$ disable interrupts.
 $FG,2$STI$FG$ enable interrupts.
 $FG,2$PUSHFD$FG$ pushes the CPU flags.
diff --git a/Doc/GuideLines.TXT b/Doc/GuideLines.TXT
index 30dc3d4..9ee3e23 100644
--- a/Doc/GuideLines.TXT
+++ b/Doc/GuideLines.TXT
@@ -114,7 +114,7 @@ See $LK,"::/Doc/Asm.TXT"$.
 
 * Don't change the segment regs unless interrupts are off.  It's hard to do, anyway.  $LK,"SET_FS_BASE",A="MN:SET_FS_BASE"$ and $LK,"SET_GS_BASE",A="MN:SET_GS_BASE"$.
 
-* When interacting with $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ compiled code, preserve $FG,2$RBP, RSI, RDI, R10-R15$FG$ because the compiler uses these for reg vars.  You are free to clobber $FG,2$RAX, RBX, RCX, RDX$FG$, $FG,2$R8$FG$ and $FG,2$R9$FG$.  See $LK,"Compiler Reg Masks",A="MN:REGG_C_LOCAL_VARS"$, $LK,"PUSH_C_REGS",A="MN:PUSH_C_REGS"$ and $LK,"POP_C_REGS",A="MN:POP_C_REGS"$
+* When interacting with $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ compiled code, preserve $FG,2$RBP, RSI, RDI, R10-R15$FG$ because the compiler uses these for reg vars.  You are free to clobber $FG,2$RAX, RBX, RCX, RDX$FG$, $FG,2$R8$FG$ and $FG,2$R9$FG$.  See $LK,"Compiler Reg Masks",A="MN:REGG_LOCAL_VARS"$, $LK,"PUSH_C_REGS",A="MN:PUSH_C_REGS"$ and $LK,"POP_C_REGS",A="MN:POP_C_REGS"$
 
 * I recommend using the standard stk frame for functions because $LK,"Caller",A="MN:Caller"$() is used to display the call stk, such as for the wallpaper.
 $FG,2$	PUSH	RBP
diff --git a/Doc/HelloWorld.TXT b/Doc/HelloWorld.TXT
index c311ccd..7fa6e65 100644
--- a/Doc/HelloWorld.TXT
+++ b/Doc/HelloWorld.TXT
@@ -58,7 +58,7 @@ asm {
 _HELLO_WORLD::
 //You can only clobber RAX,RBX,RCX,RDX
 	MOV	RAX,'Hello '
-	CALL	PUT_CHARS //Up to 8 chars packed into one 64-bit integer.
+	CALL	PUT_CHARS //Up to 8 chars packed into one 64-bit int.
 	MOV	RAX,'World\n'
 	CALL	PUT_CHARS
 	RET
diff --git a/Doc/HolyC.TXT b/Doc/HolyC.TXT
index b02bebc..7996120 100644
--- a/Doc/HolyC.TXT
+++ b/Doc/HolyC.TXT
@@ -112,7 +112,7 @@ $FG$$ID,-2$
 
 * Allows ranges like "$FG,2$case 4...7:$FG$" in $FG,2$switch$FG$ stmts.
 
-* A no case number causes next higher integer case in $FG,2$switch$FG$ stmts.  See $LK,"::/Demo/NullCase.CPP"$.
+* A no case number causes next higher int case in $FG,2$switch$FG$ stmts.  See $LK,"::/Demo/NullCase.CPP"$.
 
 $ID,2$$FG,2$I64 i;
 for (i=0;i<20;i++) 
@@ -153,7 +153,7 @@ $ID,-2$
 
 $ID,2$$FG,2$U0 Main()
 {
-  //Only use $LK,"REGG_C_LOCAL_VARS",A="MN:REGG_C_LOCAL_VARS"$ or $LK,"REGG_C_LOCAL_NON_PTR_VARS",A="MN:REGG_C_LOCAL_NON_PTR_VARS"$ for reg vars or else clobbered.
+  //Only use $LK,"REGG_LOCAL_VARS",A="MN:REGG_LOCAL_VARS"$ or $LK,"REGG_LOCAL_NON_PTR_VARS",A="MN:REGG_LOCAL_NON_PTR_VARS"$ for reg vars or else clobbered.
   I64 reg R15 i=5, noreg j=4;
   nounusedwarn i;
   asm {
@@ -219,7 +219,7 @@ $FG$$ID,-2$
 
 * Can't use $FG,2$<>$FG$ with $FG,2$#include$FG$, use $FG,2$""$FG$.
 
-* "$FG,2$$$$FG$" is an escape character.  Two dollar signs signify an ordinary $$.  See $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.TXT"$.  In $FG,2$asm$FG$ or $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ code, it also refers to the instruction's address or the offset in a $FG,2$class$FG$ definition. 
+* "$FG,2$$$$FG$" is an escape character.  Two dollar signs signify an ordinary $$.  See $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.TXT"$.  In $FG,2$asm$FG$ or $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ code, it also refers to the inst's address or the offset in a $FG,2$class$FG$ definition. 
 
 * $FG,2$union$FG$ is more like a class, so you don't reference it with a $FG,2$union$FG$ label after you define it.  Some common unions are declared in $LK,"KernelA.HPP",A="MN:U16"$ for 1,2,4 and 8 byte objects.  If you place a type in front of a union declaration, that is the type when used by itself.  See $LK,"::/Demo/SubIntAccess.CPP"$. 
 
@@ -233,7 +233,7 @@ $FG$$ID,-2$
 
 * There is no $FG,2$continue$FG$ stmt.  Use $FG,2$goto$FG$.
 
-* $FG,2$lock{}$FG$ can be used to apply asm $FG,2$LOCK$FG$ prefixes to code for safe multicore read-modify-write accesses.  The code bracked with have $FG,2$LOCK$FG$ asm prefix's applied to relevant instructions within.  It's a little shoddy.  See $LK,"::/Demo/MultiCore/Lock.CPP"$.
+* $FG,2$lock{}$FG$ can be used to apply asm $FG,2$LOCK$FG$ prefixes to code for safe multicore read-modify-write accesses.  The code bracked with have $FG,2$LOCK$FG$ asm prefix's applied to relevant insts within.  It's a little shoddy.  See $LK,"::/Demo/MultiCore/Lock.CPP"$.
 
 * There is a function called $LK,"MSize",A="MN:MSize"$() which gives the size of an object alloced off the heap.  For larger size allocations, the system rounds-up to a power of two, so $FG,2$MSize()$FG$ lets you know the real size and you can take full advantage of it.
 
diff --git a/Doc/MemOverview.TXT b/Doc/MemOverview.TXT
index 9efbb91..df7ad02 100644
--- a/Doc/MemOverview.TXT
+++ b/Doc/MemOverview.TXT
@@ -2,7 +2,7 @@ $WW,1$$FG,5$$TX+CX,"Memory Overview"$$FG$
 
 Paging is practically not used.  64-bit mode requires paging, however, so it is identity-mapped, virtual identical to physical.  All tasks on all cores use the same page table map, just as though all addresses are physical addresses.  2 Meg page table entries are used, except the first 2 Meg, which uses 4K page tables entries.  Nothing swaps to disk, either.
 
-In TempleOS, the lowest 2 Gig of memory is called the $FG,2$code heap$FG$.  TempleOS's compiler always uses 32-bit signed relative JMP & CALL instructions because 64-bit CALLs take two instructions.  With signed +/- 32-bit values, code can only call a function within 2 Gig distance.  Therefore, TempleOS keeps all code in the lowest 2 Gig memory addresses including what would normally be called "the kernel".  Two Gig is plenty for code, don't worry.
+In TempleOS, the lowest 2 Gig of memory is called the $FG,2$code heap$FG$.  TempleOS's compiler always uses 32-bit signed relative JMP & CALL insts because 64-bit CALLs take two insts.  With signed +/- 32-bit values, code can only call a function within 2 Gig distance.  Therefore, TempleOS keeps all code in the lowest 2 Gig memory addresses including what would normally be called "the kernel".  Two Gig is plenty for code, don't worry.
 
 You can create new, independent heaps using $LK,"HeapCtrlInit",A="MN:HeapCtrlInit"$().  Then, use the $LK,"CHeapCtrl",A="MN:CHeapCtrl"$ as the 2nd arg to $LK,"MAlloc",A="MN:MAlloc"$().  See $LK,"HeapLog",A="MN:HeapLog"$() for an example.
 
diff --git a/Doc/MultiCore.TXT b/Doc/MultiCore.TXT
index dc9bada..185eafe 100644
--- a/Doc/MultiCore.TXT
+++ b/Doc/MultiCore.TXT
@@ -8,7 +8,7 @@ Each core has an executive $FG,2$seth task$FG$ which is the father of all tasks
 
 You give a job to a seth task with $LK,"JobQue",A="MN:JobQue"$() and get the result with $LK,"JobResultGet",A="MN:JobResultGet"$().  You spawn a task on another core with $LK,"Spawn",A="MN:Spawn"$().
 
-Note: You must use the $FG,2$LOCK$FG$ asm prefix when changing shared structures in a multicore environment.  The $LK,"LBts",A="MN:LBts"$(), $LK,"LBtr",A="MN:LBtr"$() and $LK,"LBtc",A="MN:LBtc"$() instructions have $FG,2$LOCK$FG$ prefixes.  The compiler has a $FG,2$lock{}$FG$ feature but it doesn't work well.  See $LK,"::/Demo/MultiCore/Lock.CPP"$.
+Note: You must use the $FG,2$LOCK$FG$ asm prefix when changing shared structures in a multicore environment.  The $LK,"LBts",A="MN:LBts"$(), $LK,"LBtr",A="MN:LBtr"$() and $LK,"LBtc",A="MN:LBtc"$() insts have $FG,2$LOCK$FG$ prefixes.  The compiler has a $FG,2$lock{}$FG$ feature but it doesn't work well.  See $LK,"::/Demo/MultiCore/Lock.CPP"$.
 
 See $LK,"::/Demo/Graphics/Transform.CPP"$.
 See $LK,"::/Kernel/MultiProc.CPP"$.
diff --git a/Doc/Quirks.TXT b/Doc/Quirks.TXT
index 8684e4c..4f65ce4 100644
--- a/Doc/Quirks.TXT
+++ b/Doc/Quirks.TXT
@@ -42,6 +42,6 @@ $FG,2$$ID,2$$ID,2$U0 Main()
   U16 *_w=0xA0000;
   *_w|=0x8000;
 }
-$ID,-2$$FG$The $FG,2$|=$FG$ will be coded as a $FG,2$U32 Bts$FG$ instruction resulting in a $FG,2$U32$FG$ access instead of a $FG,2$U16$FG$ access.  This affects some hardware operations.
+$ID,-2$$FG$The $FG,2$|=$FG$ will be coded as a $FG,2$U32 Bts$FG$ inst resulting in a $FG,2$U32$FG$ access instead of a $FG,2$U16$FG$ access.  This affects some hardware operations.
 $ID,-2$
 * Compiler warning or error message line numbers will be off if you have a block of word-wrapped comments.  You might press $FG,2$$FG$ before doing an editor goto-line-number command.
diff --git a/Doc/TimeCycles.TXT b/Doc/TimeCycles.TXT
index fb6bfa2..378d16c 100644
--- a/Doc/TimeCycles.TXT
+++ b/Doc/TimeCycles.TXT
@@ -1 +1 @@
-$WW,1$Intel/AMD have an instruction that returns the num of CPU cycles since boot.  This is not a steady, calibrated real time value.  TempleOS measures it and you can convert with $LK,"cnts.time_stamp_freq",A="MN:CCntsGlbls"$, a value continuously calibrated from other cnts.
\ No newline at end of file
+$WW,1$Intel/AMD have an inst that returns the num of CPU cycles since boot.  This is not a steady, calibrated real time value.  TempleOS measures it and you can convert with $LK,"cnts.time_stamp_freq",A="MN:CCntsGlbls"$, a value continuously calibrated from other cnts.
\ No newline at end of file
diff --git a/Doc/Transform.TXT b/Doc/Transform.TXT
index 09e986e..1c06a1f 100644
--- a/Doc/Transform.TXT
+++ b/Doc/Transform.TXT
@@ -1,6 +1,6 @@
 $WW,1$$LK,"CDC",A="MN:CDC"$'s have a 4x4 matrix for rotating, scaling, skewing and shifting in 3 dimensions.  To make the graphics routines use the transform, you must set the $LK,"DCF_TRANSFORMATION",A="MN:DCF_TRANSFORMATION"$ flag.
 
-The matrix consists of integers that have been scaled 32 bits ($LK,"GR_SCALE",A="MN:GR_SCALE"$).  See $LK,"::/Demo/Lectures/FixedPoint.CPP"$ to learn why.
+The matrix consists of ints that have been scaled 32 bits ($LK,"GR_SCALE",A="MN:GR_SCALE"$).  See $LK,"::/Demo/Lectures/FixedPoint.CPP"$ to learn why.
 
 See $LK,"Mat4x4IdentEqu",A="MN:Mat4x4IdentEqu"$(), $LK,"Mat4x4IdentNew",A="MN:Mat4x4IdentNew"$(), $LK,"Mat4x4Equ",A="MN:Mat4x4Equ"$() and $LK,"Mat4x4New",A="MN:Mat4x4New"$().  See $LK,"Mat4x4RotX",A="MN:Mat4x4RotX"$(), $LK,"Mat4x4RotY",A="MN:Mat4x4RotY"$(), $LK,"Mat4x4RotZ",A="MN:Mat4x4RotZ"$() and $LK,"Mat4x4Scale",A="MN:Mat4x4Scale"$() to rotate about axes and scale.  Combine them with $LK,"Mat4x4MulMat4x4Equ",A="MN:Mat4x4MulMat4x4Equ"$()/$LK,"Mat4x4MulMat4x4New",A="MN:Mat4x4MulMat4x4New"$() and assign them to the $LK,"CDC",A="MN:CDC"$.$FG,2$dc$FG$ with $LK,"DCMat4x4Set",A="MN:DCMat4x4Set"$().  See $LK,"::/Demo/Graphics/Box.CPP"$.
 
diff --git a/Kernel/KExcept.CPP b/Kernel/KExcept.CPP
index bc8bf61..4da2434 100644
--- a/Kernel/KExcept.CPP
+++ b/Kernel/KExcept.CPP
@@ -1,5 +1,5 @@
 asm {
-#assert !((REGG_C_LOCAL_NON_PTR_VARS|REGG_C_LOCAL_VARS)&~0xFCC0)
+#assert !((REGG_LOCAL_NON_PTR_VARS|REGG_LOCAL_VARS)&~0xFCC0)
 _TEST_EXCEPT::
 	XOR	RAX,RAX
 	MOV	RAX,FS:U64 CTask.last_except[RAX]
diff --git a/Kernel/KMathB.CPP b/Kernel/KMathB.CPP
index 2ed7f23..714b203 100644
--- a/Kernel/KMathB.CPP
+++ b/Kernel/KMathB.CPP
@@ -24,7 +24,7 @@ F64 Max(F64 n1,F64 n2)
 }
 
 F64 Pow10I64(I64 i)
-{//F64 integer powers of ten.
+{//F64 int powers of ten.
   if (i>308)
     return ì;
   else if (i<-308)
@@ -34,23 +34,23 @@ F64 Pow10I64(I64 i)
 }
 
 U64 FloorU64(U64 num,U64 to)
-{//Integer multiples of num.
+{//Int multiples of num.
   return num-num%to;
 }
 
 U64 CeilU64(U64 num,U64 to)
-{//Integer multiples of num.
+{//Int multiples of num.
   num+=to-1;
   return num-num%to;
 }
 
 I64 RoundI64(I64 num,I64 to)
-{//Integer multiples of num.
+{//Int multiples of num.
   return num-num%to;
 }
 
 I64 FloorI64(I64 num,I64 to)
-{//Integer multiples of num.
+{//Int multiples of num.
   if (num>=0)
     return num-num%to;
   else {
@@ -60,7 +60,7 @@ I64 FloorI64(I64 num,I64 to)
 }
 
 I64 CeilI64(I64 num,I64 to)
-{//Integer multiples of num.
+{//Int multiples of num.
   if (num>=0) {
     num+=to-1;
     return num-num%to;
diff --git a/Kernel/Kernel.MAP b/Kernel/Kernel.MAP
index 7276961..bd9cfa8 100644
--- a/Kernel/Kernel.MAP
+++ b/Kernel/Kernel.MAP
@@ -1,547 +1,548 @@
 $LK,"DrvTextAttrGet",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,281",BI=1$
-$LK,"ARGT_R64",A="FL:::/Kernel/KernelA.HPP,1874"$
+$LK,"ARGT_R64",A="FL:::/Kernel/KernelA.HPP,1893"$
 $LK,"MAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,387"$
-$LK,"BOOT_SRC_NULL",A="FL:::/Kernel/KernelA.HPP,3862"$
+$LK,"BOOT_SRC_NULL",A="FL:::/Kernel/KernelA.HPP,3881"$
 $LK,"KbdTypeMatic",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,86",BI=2$
 $LK,"KbdLEDsSet",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,52",BI=3$
 $LK,"LXchgU32",A="FL:::/Kernel/KernelB.HPP,261"$
 $LK,"LXchgU16",A="FL:::/Kernel/KernelB.HPP,260"$
-$LK,"BDS_CUR_DRV",A="FL:::/Kernel/KernelA.HPP,3242"$
-$LK,"DOCM_CANCEL",A="FL:::/Kernel/KernelA.HPP,1331"$
+$LK,"BDS_CUR_DRV",A="FL:::/Kernel/KernelA.HPP,3261"$
+$LK,"DOCM_CANCEL",A="FL:::/Kernel/KernelA.HPP,1337"$
 $LK,"chars_bmp_word",A="FL:::/Kernel/StrA.CPP.Z,340"$
-$LK,"BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,2273"$
-$LK,"ARGT_SS",A="FL:::/Kernel/KernelA.HPP,1905"$
+$LK,"BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,2292"$
+$LK,"ARGT_SS",A="FL:::/Kernel/KernelA.HPP,1924"$
 $LK,"c32_eax",A="FL:::/Kernel/PCIBIOS.CPP.Z,152"$
-$LK,"ARGT_EAX",A="FL:::/Kernel/KernelA.HPP,1898"$
-$LK,"DOCT_HEADER",A="FL:::/Kernel/KernelA.HPP,905"$
-$LK,"Ff__EXTERN",A="FL:::/Kernel/KernelA.HPP,847"$
+$LK,"ARGT_EAX",A="FL:::/Kernel/KernelA.HPP,1917"$
+$LK,"DOCT_HEADER",A="FL:::/Kernel/KernelA.HPP,907"$
+$LK,"Ff__EXTERN",A="FL:::/Kernel/KernelA.HPP,848"$
 $LK,"c32_ebx",A="FL:::/Kernel/PCIBIOS.CPP.Z,153"$
 $LK,"MemPageSize",A="FL:::/Kernel/Mem/PageTables.CPP.Z,154",BI=4$
 $LK,"D3Add",A="FL:::/Kernel/KernelB.HPP,147"$
 $LK,"D3NormSqr",A="FL:::/Kernel/KernelB.HPP,165"$
-$LK,"ARf_PLANAR_SYMMETRY",A="FL:::/Kernel/KernelA.HPP,3874"$
-$LK,"DOCf_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1285"$
-$LK,"RLF_BLKDEV",A="FL:::/Kernel/KernelA.HPP,462"$
-$LK,"RLf_BLKDEV",A="FL:::/Kernel/KernelA.HPP,443"$
+$LK,"ARf_PLANAR_SYMMETRY",A="FL:::/Kernel/KernelA.HPP,3893"$
+$LK,"DOCf_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1291"$
+$LK,"RLF_BLKDEV",A="FL:::/Kernel/KernelA.HPP,463"$
+$LK,"RLf_BLKDEV",A="FL:::/Kernel/KernelA.HPP,444"$
 $LK,"c32_ecx",A="FL:::/Kernel/PCIBIOS.CPP.Z,154"$
-$LK,"CCF_USE_LAST_U16",A="FL:::/Kernel/KernelA.HPP,2132"$
-$LK,"SYSf_CTRL_ALT_DEL",A="FL:::/Kernel/KernelA.HPP,613"$
+$LK,"CCF_USE_LAST_U16",A="FL:::/Kernel/KernelA.HPP,2152"$
+$LK,"SYSf_CTRL_ALT_DEL",A="FL:::/Kernel/KernelA.HPP,614"$
 $LK,"SSF_INACTIVE",A="FL:::/Kernel/KernelA.HPP,221"$
 $LK,"MSF_INACTIVE",A="FL:::/Kernel/KernelA.HPP,205"$
-$LK,"ATA_READ_MULTI",A="FL:::/Kernel/KernelA.HPP,2241"$
+$LK,"ATA_READ_MULTI",A="FL:::/Kernel/KernelA.HPP,2260"$
 $LK,"c32_edx",A="FL:::/Kernel/PCIBIOS.CPP.Z,155"$
-$LK,"FUf_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,2570"$
-$LK,"CAOTBinBlk",A="FL:::/Kernel/KernelA.HPP,1778"$
-$LK,"DOCEf_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,1091"$
+$LK,"FUf_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,2589"$
+$LK,"CAOTBinBlk",A="FL:::/Kernel/KernelA.HPP,1797"$
+$LK,"DOCEf_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,1095"$
 $LK,"KernelMain",A="FL:::/Kernel/KEnd.CPP.Z,131",BI=5$
 $LK,"KbdCmdSend",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,24",BI=6$
 $LK,"_D3_NORM_SQR",A="FL:::/Kernel/KMathA.CPP.Z,22"$
-$LK,"TTS_CUR_LEX",A="FL:::/Kernel/KernelA.HPP,3250"$
-$LK,"RS_ATTR_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,2513"$
-$LK,"CCf_USE_LAST_U16",A="FL:::/Kernel/KernelA.HPP,2133"$
-$LK,"CDocEntry",A="FL:::/Kernel/KernelA.HPP,1171"$
-$LK,"CAOT",A="FL:::/Kernel/KernelA.HPP,1974"$
-$LK,"SVCf_DISPATCHED",A="FL:::/Kernel/KernelA.HPP,3156"$
-$LK,"RLF_32BIT",A="FL:::/Kernel/KernelA.HPP,455"$
-$LK,"RLF_16BIT",A="FL:::/Kernel/KernelA.HPP,453"$
-$LK,"RLf_32BIT",A="FL:::/Kernel/KernelA.HPP,436"$
-$LK,"RLf_16BIT",A="FL:::/Kernel/KernelA.HPP,434"$
+$LK,"TTS_CUR_LEX",A="FL:::/Kernel/KernelA.HPP,3269"$
+$LK,"RS_ATTR_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,2532"$
+$LK,"CCf_USE_LAST_U16",A="FL:::/Kernel/KernelA.HPP,2153"$
+$LK,"CDocEntry",A="FL:::/Kernel/KernelA.HPP,1177"$
+$LK,"CAOT",A="FL:::/Kernel/KernelA.HPP,1994"$
+$LK,"SVCf_DISPATCHED",A="FL:::/Kernel/KernelA.HPP,3175"$
+$LK,"RLF_32BIT",A="FL:::/Kernel/KernelA.HPP,456"$
+$LK,"RLF_16BIT",A="FL:::/Kernel/KernelA.HPP,454"$
+$LK,"RLf_32BIT",A="FL:::/Kernel/KernelA.HPP,437"$
+$LK,"RLf_16BIT",A="FL:::/Kernel/KernelA.HPP,435"$
 $LK,"BreakUnlock",A="FL:::/Kernel/KExcept.CPP.Z,142",BI=7$
-$LK,"DOCT_BACKGROUND",A="FL:::/Kernel/KernelA.HPP,909"$
-$LK,"DOCT_FOREGROUND",A="FL:::/Kernel/KernelA.HPP,908"$
+$LK,"DOCT_BACKGROUND",A="FL:::/Kernel/KernelA.HPP,911"$
+$LK,"DOCT_FOREGROUND",A="FL:::/Kernel/KernelA.HPP,910"$
 $LK,"CGDT",A="FL:::/Kernel/KernelA.HPP,333"$
-$LK,"TSF_SAME_SONG",A="FL:::/Kernel/KernelA.HPP,3220"$
-$LK,"ICF_PUSH_CMP",A="FL:::/Kernel/KernelA.HPP,1591"$
-$LK,"MLF_NO_UNUSED_WARN",A="FL:::/Kernel/KernelA.HPP,774"$
+$LK,"TSF_SAME_SONG",A="FL:::/Kernel/KernelA.HPP,3239"$
+$LK,"ICF_PUSH_CMP",A="FL:::/Kernel/KernelA.HPP,1605"$
+$LK,"MLF_NO_UNUSED_WARN",A="FL:::/Kernel/KernelA.HPP,775"$
 $LK,"I_MP_CRASH",A="FL:::/Kernel/KernelA.HPP,292"$
-$LK,"MEM_HEAP_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2850"$
+$LK,"MEM_HEAP_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2869"$
 $LK,"INVALID_PTR",A="FL:::/Kernel/KernelA.HPP,38"$
-$LK,"RECALCt_NORMAL",A="FL:::/Kernel/KernelA.HPP,1335"$
+$LK,"RECALCt_NORMAL",A="FL:::/Kernel/KernelA.HPP,1341"$
 $LK,"ATAInit",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,303",BI=8$
 $LK,"HashDefineLstAdd",A="FL:::/Kernel/KHashB.CPP.Z,206",BI=9$
 $LK,"StrUtil",A="FL:::/Kernel/StrA.CPP.Z,524",BI=10$
 $LK,"LstMatch",A="FL:::/Kernel/StrA.CPP.Z,421",BI=11$
 $LK,"IET_REL_I32",A="FL:::/Kernel/KernelA.HPP,398"$
 $LK,"IET_REL_I16",A="FL:::/Kernel/KernelA.HPP,396"$
-$LK,"CPrsStk",A="FL:::/Kernel/KernelA.HPP,1658"$
-$LK,"CCmpCtrl",A="FL:::/Kernel/KernelA.HPP,2143"$
+$LK,"CPrsStk",A="FL:::/Kernel/KernelA.HPP,1676"$
+$LK,"CCmpCtrl",A="FL:::/Kernel/KernelA.HPP,2163"$
 $LK,"ATAWBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,579",BI=12$
-$LK,"CCPU",A="FL:::/Kernel/KernelA.HPP,3418"$
+$LK,"CCPU",A="FL:::/Kernel/KernelA.HPP,3437"$
 $LK,"c32_esi",A="FL:::/Kernel/PCIBIOS.CPP.Z,156"$
-$LK,"CCF_JUST_LOAD",A="FL:::/Kernel/KernelA.HPP,2109"$
+$LK,"CCF_JUST_LOAD",A="FL:::/Kernel/KernelA.HPP,2129"$
 $LK,"LDF_JUST_LOAD",A="FL:::/Kernel/KernelA.HPP,366"$
 $LK,"SYS_CACHE_LINE_WIDTH",A="FL:::/Kernel/KStart.CPP.Z,229"$
-$LK,"CMF_I16_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1679"$
+$LK,"CMF_I16_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1697"$
 $LK,"FramePtrSet",A="FL:::/Kernel/KHashB.CPP.Z,230",BI=13$
-$LK,"CCf_PASS_TRACE_PRESENT",A="FL:::/Kernel/KernelA.HPP,2114"$
-$LK,"CMF_U16_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1680"$
+$LK,"CCf_PASS_TRACE_PRESENT",A="FL:::/Kernel/KernelA.HPP,2134"$
+$LK,"CMF_U16_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1698"$
 $LK,"_STRICMP",A="FL:::/Kernel/StrA.CPP.Z,117"$
 $LK,"IET_REL_I64",A="FL:::/Kernel/KernelA.HPP,400"$
-$LK,"CFAT32Boot",A="FL:::/Kernel/KernelA.HPP,2312"$
-$LK,"DOCEF_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HPP,1016"$
-$LK,"FILEMASK_TXT",A="FL:::/Kernel/KernelA.HPP,2268"$
-$LK,"TK_EOF",A="FL:::/Kernel/KernelA.HPP,2045"$
+$LK,"CFAT32Boot",A="FL:::/Kernel/KernelA.HPP,2331"$
+$LK,"DOCEF_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HPP,1018"$
+$LK,"FILEMASK_TXT",A="FL:::/Kernel/KernelA.HPP,2287"$
+$LK,"TK_EOF",A="FL:::/Kernel/KernelA.HPP,2065"$
 $LK,"SPF_NEG",A="FL:::/Kernel/StrPrint.CPP.Z,10"$
-$LK,"CWinScroll",A="FL:::/Kernel/KernelA.HPP,3071"$
-$LK,"DOCEf_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HPP,1100"$
-$LK,"ARf_FLOODFILL",A="FL:::/Kernel/KernelA.HPP,3872"$
-$LK,"ICF_USE_F64",A="FL:::/Kernel/KernelA.HPP,1578"$
+$LK,"CWinScroll",A="FL:::/Kernel/KernelA.HPP,3090"$
+$LK,"DOCEf_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HPP,1104"$
+$LK,"ARf_FLOODFILL",A="FL:::/Kernel/KernelA.HPP,3891"$
+$LK,"ICF_USE_F64",A="FL:::/Kernel/KernelA.HPP,1593"$
 $LK,"MemPagesNotPresentMark",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,70",BI=14$
-$LK,"CH_BACKSPACE",A="FL:::/Kernel/KernelA.HPP,3488"$
+$LK,"CH_BACKSPACE",A="FL:::/Kernel/KernelA.HPP,3507"$
 $LK,"FloorI64",A="FL:::/Kernel/KMathB.CPP.Z,52",BI=15$
-$LK,"SC_BACKSPACE",A="FL:::/Kernel/KernelA.HPP,3534"$
-$LK,"FUf_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,2569"$
-$LK,"GVF_ARRAY",A="FL:::/Kernel/KernelA.HPP,866"$
+$LK,"SC_BACKSPACE",A="FL:::/Kernel/KernelA.HPP,3553"$
+$LK,"FUf_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,2588"$
+$LK,"GVF_ARRAY",A="FL:::/Kernel/KernelA.HPP,867"$
 $LK,"DirEntryCompareCluster",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,84",BI=16$
 $LK,"KbdCmdFlush",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,45",BI=17$
-$LK,"CFPU",A="FL:::/Kernel/KernelA.HPP,3143"$
-$LK,"TASKf_IDLE",A="FL:::/Kernel/KernelA.HPP,3256"$
-$LK,"CDIR_SIZE",A="FL:::/Kernel/KernelA.HPP,2541"$
-$LK,"ARGT_UIMM32",A="FL:::/Kernel/KernelA.HPP,1868"$
-$LK,"ARGT_UIMM16",A="FL:::/Kernel/KernelA.HPP,1867"$
+$LK,"CFPU",A="FL:::/Kernel/KernelA.HPP,3162"$
+$LK,"TASKf_IDLE",A="FL:::/Kernel/KernelA.HPP,3275"$
+$LK,"CDIR_SIZE",A="FL:::/Kernel/KernelA.HPP,2560"$
+$LK,"ARGT_UIMM32",A="FL:::/Kernel/KernelA.HPP,1887"$
+$LK,"ARGT_UIMM16",A="FL:::/Kernel/KernelA.HPP,1886"$
 $LK,"PCIWriteU8",A="FL:::/Kernel/PCIBIOS.CPP.Z,220",BI=18$
 $LK,"DefinePrint",A="FL:::/Kernel/KDefine.CPP.Z,90",BI=19$
 $LK,"FifoI64Del",A="FL:::/Kernel/KDataTypes.CPP.Z,252",BI=20$
-$LK,"CDocUndo",A="FL:::/Kernel/KernelA.HPP,1323"$
-$LK,"ROPB_XOR",A="FL:::/Kernel/KernelA.HPP,2905"$
-$LK,"FUF_JUST_FILES",A="FL:::/Kernel/KernelA.HPP,2584"$
-$LK,"ATA_SET_MAX",A="FL:::/Kernel/KernelA.HPP,2239"$
-$LK,"IEF_DFT",A="FL:::/Kernel/KernelA.HPP,1710"$
-$LK,"RT_F32",A="FL:::/Kernel/KernelA.HPP,1554"$
+$LK,"CDocUndo",A="FL:::/Kernel/KernelA.HPP,1329"$
+$LK,"ROPB_XOR",A="FL:::/Kernel/KernelA.HPP,2924"$
+$LK,"FUF_JUST_FILES",A="FL:::/Kernel/KernelA.HPP,2603"$
+$LK,"ATA_SET_MAX",A="FL:::/Kernel/KernelA.HPP,2258"$
+$LK,"IEF_DFT",A="FL:::/Kernel/KernelA.HPP,1728"$
+$LK,"RT_F32",A="FL:::/Kernel/KernelA.HPP,1560"$
 $LK,"Let2BlkDev",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,131",BI=21$
-$LK,"FUf_JUST_FILES",A="FL:::/Kernel/KernelA.HPP,2558"$
-$LK,"ARGT_M1632",A="FL:::/Kernel/KernelA.HPP,1886"$
-$LK,"DOF_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1205"$
-$LK,"DOCEF_LEFT_X",A="FL:::/Kernel/KernelA.HPP,981"$
+$LK,"FUf_JUST_FILES",A="FL:::/Kernel/KernelA.HPP,2577"$
+$LK,"ARGT_M1632",A="FL:::/Kernel/KernelA.HPP,1905"$
+$LK,"DOF_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1211"$
+$LK,"DOCEF_LEFT_X",A="FL:::/Kernel/KernelA.HPP,983"$
 $LK,"RFLAGf_AUX_CARRY",A="FL:::/Kernel/KernelA.HPP,307"$
-$LK,"DEF_PROCESSED",A="FL:::/Kernel/KernelA.HPP,2524"$
-$LK,"WIf_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HPP,1441"$
-$LK,"DOCEf_LEFT_X",A="FL:::/Kernel/KernelA.HPP,1067"$
+$LK,"DEF_PROCESSED",A="FL:::/Kernel/KernelA.HPP,2543"$
+$LK,"WIf_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HPP,1447"$
+$LK,"DOCEf_LEFT_X",A="FL:::/Kernel/KernelA.HPP,1071"$
 $LK,"Mem64DevFree",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,158",BI=22$
 $LK,"Mem32DevFree",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,124",BI=23$
-$LK,"ARGT_UIMM64",A="FL:::/Kernel/KernelA.HPP,1869"$
-$LK,"DOCf_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1293"$
-$LK,"DOCF_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1257"$
+$LK,"ARGT_UIMM64",A="FL:::/Kernel/KernelA.HPP,1888"$
+$LK,"DOCf_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1299"$
+$LK,"DOCF_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1263"$
 $LK,"ATARepEntry",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,90",BI=24$
-$LK,"BLUE",A="FL:::/Kernel/KernelA.HPP,2930"$
+$LK,"BLUE",A="FL:::/Kernel/KernelA.HPP,2949"$
 $LK,"sys_ctrl_alt_flags",A="FL:::/Kernel/KernelB.HPP,209"$
 $LK,"D3Div",A="FL:::/Kernel/KernelB.HPP,158"$
-$LK,"RT_F64",A="FL:::/Kernel/KernelA.HPP,1556"$
+$LK,"RT_F64",A="FL:::/Kernel/KernelA.HPP,1562"$
 $LK,"EdLite",A="FL:::/Kernel/EdLite.CPP.Z,58",BI=25$
-$LK,"MBR_PT_FAT12",A="FL:::/Kernel/KernelA.HPP,2671"$
+$LK,"MBR_PT_FAT12",A="FL:::/Kernel/KernelA.HPP,2690"$
 $LK,"FramePtr",A="FL:::/Kernel/KHashB.CPP.Z,215",BI=26$
-$LK,"ARGT_RM8",A="FL:::/Kernel/KernelA.HPP,1876"$
-$LK,"ROPF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HPP,2925"$
-$LK,"DOCEF_HAS_BORDER",A="FL:::/Kernel/KernelA.HPP,996"$
-$LK,"TK_EQU_EQU",A="FL:::/Kernel/KernelA.HPP,2060"$
-$LK,"RT_I32",A="FL:::/Kernel/KernelA.HPP,1549"$
-$LK,"RT_I16",A="FL:::/Kernel/KernelA.HPP,1547"$
-$LK,"DOCEf_HAS_BORDER",A="FL:::/Kernel/KernelA.HPP,1082"$
+$LK,"ARGT_RM8",A="FL:::/Kernel/KernelA.HPP,1895"$
+$LK,"ROPF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HPP,2944"$
+$LK,"RTF_UNSIGNED",A="FL:::/Kernel/KernelA.HPP,1565"$
+$LK,"DOCEF_HAS_BORDER",A="FL:::/Kernel/KernelA.HPP,998"$
+$LK,"TK_EQU_EQU",A="FL:::/Kernel/KernelA.HPP,2080"$
+$LK,"RT_I32",A="FL:::/Kernel/KernelA.HPP,1555"$
+$LK,"RT_I16",A="FL:::/Kernel/KernelA.HPP,1553"$
+$LK,"DOCEf_HAS_BORDER",A="FL:::/Kernel/KernelA.HPP,1086"$
 $LK,"SysTry",A="FL:::/Kernel/KExcept.CPP.Z,62",BI=27$
-$LK,"POP_REGS",A="FL:::/Kernel/KernelA.HPP,1750"$
-$LK,"IEF_OP_SIZE32",A="FL:::/Kernel/KernelA.HPP,1707"$
-$LK,"IEF_OP_SIZE16",A="FL:::/Kernel/KernelA.HPP,1706"$
-$LK,"HTT_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,683"$
-$LK,"BD_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2636"$
-$LK,"DOCEf_ESC",A="FL:::/Kernel/KernelA.HPP,1079"$
+$LK,"POP_REGS",A="FL:::/Kernel/KernelA.HPP,1768"$
+$LK,"IEF_OP_SIZE32",A="FL:::/Kernel/KernelA.HPP,1725"$
+$LK,"IEF_OP_SIZE16",A="FL:::/Kernel/KernelA.HPP,1724"$
+$LK,"HTT_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,684"$
+$LK,"BD_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2655"$
+$LK,"DOCEf_ESC",A="FL:::/Kernel/KernelA.HPP,1083"$
 $LK,"ScanCode2Char",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,136",BI=28$
-$LK,"NUM_DRVS",A="FL:::/Kernel/KernelA.HPP,2687"$
-$LK,"FSt_ISO13346",A="FL:::/Kernel/KernelA.HPP,2663"$
+$LK,"NUM_DRVS",A="FL:::/Kernel/KernelA.HPP,2706"$
+$LK,"FSt_ISO13346",A="FL:::/Kernel/KernelA.HPP,2682"$
 $LK,"_D3_ADD",A="FL:::/Kernel/KMathA.CPP.Z,131"$
-$LK,"SYSf_CTRL_ALT_TAB",A="FL:::/Kernel/KernelA.HPP,616"$
+$LK,"SYSf_CTRL_ALT_TAB",A="FL:::/Kernel/KernelA.HPP,617"$
 $LK,"RCache",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,119",BI=29$
-$LK,"DOC_ATTR_DFT_TEXT",A="FL:::/Kernel/KernelA.HPP,1124"$
+$LK,"DOC_ATTR_DFT_TEXT",A="FL:::/Kernel/KernelA.HPP,1130"$
 $LK,"D3Dot",A="FL:::/Kernel/KernelB.HPP,160"$
-$LK,"CSrvCmd",A="FL:::/Kernel/KernelA.HPP,3167"$
-$LK,"ARGT_RAX",A="FL:::/Kernel/KernelA.HPP,1899"$
-$LK,"EDf_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1245"$
-$LK,"EDF_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1239"$
-$LK,"DOCF_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1260"$
+$LK,"CSrvCmd",A="FL:::/Kernel/KernelA.HPP,3186"$
+$LK,"ARGT_RAX",A="FL:::/Kernel/KernelA.HPP,1918"$
+$LK,"EDf_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1251"$
+$LK,"EDF_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1245"$
+$LK,"DOCF_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1266"$
 $LK,"KbdMsgsQue",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,467",BI=30$
-$LK,"ARGT_ST0",A="FL:::/Kernel/KernelA.HPP,1912"$
-$LK,"RT_I64",A="FL:::/Kernel/KernelA.HPP,1551"$
+$LK,"TK_INT",A="FL:::/Kernel/KernelA.HPP,2071"$
+$LK,"ARGT_ST0",A="FL:::/Kernel/KernelA.HPP,1931"$
+$LK,"RT_I64",A="FL:::/Kernel/KernelA.HPP,1557"$
 $LK,"FifoI64Cnt",A="FL:::/Kernel/KDataTypes.CPP.Z,312",BI=31$
-$LK,"NUM_PROGRESS_BARS",A="FL:::/Kernel/KernelA.HPP,3881"$
-$LK,"SUF_SAFE_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3775"$
-$LK,"RWF_SHOW_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3574"$
-$LK,"_CFG_HEAP_DBG",A="FL:::/Kernel/KernelA.HPP,2768"$
-$LK,"HTt_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,653"$
+$LK,"NUM_PROGRESS_BARS",A="FL:::/Kernel/KernelA.HPP,3900"$
+$LK,"SUF_SAFE_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3794"$
+$LK,"RWF_SHOW_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3593"$
+$LK,"_CFG_HEAP_DBG",A="FL:::/Kernel/KernelA.HPP,2787"$
+$LK,"HTt_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,654"$
 $LK,"RedSeaFileWrite",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,509",BI=32$
 $LK,"AutoStr",A="FL:::/Kernel/SrvCmd.CPP.Z,465",BI=33$
 $LK,"CPatchTableAbsAddr",A="FL:::/Kernel/KernelA.HPP,381"$
 $LK,"DVDImageRead",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,1",BI=34$
-$LK,"FSt_ISO13490",A="FL:::/Kernel/KernelA.HPP,2662"$
-$LK,"IET_CODE_HEAP",A="FL:::/Kernel/KernelA.HPP,408"$
-$LK,"ROPB_MONO",A="FL:::/Kernel/KernelA.HPP,2907"$
-$LK,"CAsmNum2",A="FL:::/Kernel/KernelA.HPP,1805"$
+$LK,"FSt_ISO13490",A="FL:::/Kernel/KernelA.HPP,2681"$
+$LK,"IET_CODE_HEAP",A="FL:::/Kernel/KernelA.HPP,409"$
+$LK,"ROPB_MONO",A="FL:::/Kernel/KernelA.HPP,2926"$
+$LK,"CAsmNum2",A="FL:::/Kernel/KernelA.HPP,1824"$
 $LK,"AutoFile",A="FL:::/Kernel/SrvCmd.CPP.Z,475",BI=35$
 $LK,"AMAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,390",BI=36$
-$LK,"ICF_R_TO_INT",A="FL:::/Kernel/KernelA.HPP,1573"$
-$LK,"DOCEf_LEN",A="FL:::/Kernel/KernelA.HPP,1046"$
+$LK,"ICF_R_TO_INT",A="FL:::/Kernel/KernelA.HPP,1588"$
+$LK,"DOCEf_LEN",A="FL:::/Kernel/KernelA.HPP,1050"$
 $LK,"B",A="FL:::/Kernel/KDbg.CPP.Z,407",BI=37$
 $LK,"chars_bmp_dec_numeric",A="FL:::/Kernel/StrA.CPP.Z,350"$
 $LK,"D3Equ",A="FL:::/Kernel/KernelB.HPP,161"$
-$LK,"FF_NEW_FILE",A="FL:::/Kernel/KernelA.HPP,2752"$
-$LK,"CMT_STR_CONST",A="FL:::/Kernel/KernelA.HPP,1669"$
-$LK,"WIf_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HPP,1443"$
+$LK,"FF_NEW_FILE",A="FL:::/Kernel/KernelA.HPP,2771"$
+$LK,"CMT_STR_CONST",A="FL:::/Kernel/KernelA.HPP,1687"$
+$LK,"WIf_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HPP,1449"$
 $LK,"D",A="FL:::/Kernel/KDbg.CPP.Z,172",BI=38$
 $LK,"StrPrint",A="FL:::/Kernel/StrPrint.CPP.Z,893",BI=39$
 $LK,"E",A="FL:::/Kernel/FunSeg.CPP.Z,270",BI=40$
-$LK,"ICF_A2_TO_INT",A="FL:::/Kernel/KernelA.HPP,1577"$
-$LK,"CEdFileName",A="FL:::/Kernel/KernelA.HPP,1230"$
-$LK,"DOCT_LEFT_MARGIN",A="FL:::/Kernel/KernelA.HPP,903"$
+$LK,"ICF_A2_TO_INT",A="FL:::/Kernel/KernelA.HPP,1592"$
+$LK,"CEdFileName",A="FL:::/Kernel/KernelA.HPP,1236"$
+$LK,"DOCT_LEFT_MARGIN",A="FL:::/Kernel/KernelA.HPP,905"$
 $LK,"_STRNCMP",A="FL:::/Kernel/StrA.CPP.Z,154"$
 $LK,"G",A="FL:::/Kernel/KDbg.CPP.Z,444",BI=41$
 $LK,"ScaleIndent",A="FL:::/Kernel/StrB.CPP.Z,35",BI=42$
-$LK,"IET_ABS_ADDR",A="FL:::/Kernel/KernelA.HPP,407"$
+$LK,"IET_ABS_ADDR",A="FL:::/Kernel/KernelA.HPP,408"$
 $LK,"PressAKey",A="FL:::/Kernel/StrB.CPP.Z,103",BI=43$
-$LK,"DOF_WIN_MAX",A="FL:::/Kernel/KernelA.HPP,1208"$
-$LK,"CCodeCtrl",A="FL:::/Kernel/KernelA.HPP,1993"$
+$LK,"DOF_WIN_MAX",A="FL:::/Kernel/KernelA.HPP,1214"$
+$LK,"CCodeCtrl",A="FL:::/Kernel/KernelA.HPP,2013"$
 $LK,"Char2ScanCode",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,100",BI=44$
 $LK,"Mem32DevInit",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,30",BI=45$
 $LK,"_BIT_FIELD_OR_U32",A="FL:::/Kernel/KUtils.CPP.Z,154"$
-$LK,"DOCf_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1296"$
+$LK,"DOCf_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1302"$
 $LK,"SPutChar",A="FL:::/Kernel/StrPrint.CPP.Z,14",BI=46$
 $LK,"TaskQueIns",A="FL:::/Kernel/Sched.CPP.Z,298",BI=47$
-$LK,"CYAN",A="FL:::/Kernel/KernelA.HPP,2932"$
-$LK,"TK_SUPERSCRIPT",A="FL:::/Kernel/KernelA.HPP,2046"$
-$LK,"ICF_PUSH_RESULT",A="FL:::/Kernel/KernelA.HPP,1586"$
+$LK,"CYAN",A="FL:::/Kernel/KernelA.HPP,2951"$
+$LK,"TK_SUPERSCRIPT",A="FL:::/Kernel/KernelA.HPP,2066"$
+$LK,"ICF_PUSH_RESULT",A="FL:::/Kernel/KernelA.HPP,1600"$
 $LK,"FileNameTempTxt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,266",BI=48$
-$LK,"RS_ATTR_DELETED",A="FL:::/Kernel/KernelA.HPP,2511"$
-$LK,"CMT_ASM_LABEL",A="FL:::/Kernel/KernelA.HPP,1667"$
-$LK,"RLF_64BIT",A="FL:::/Kernel/KernelA.HPP,457"$
-$LK,"RLf_64BIT",A="FL:::/Kernel/KernelA.HPP,438"$
+$LK,"RS_ATTR_DELETED",A="FL:::/Kernel/KernelA.HPP,2530"$
+$LK,"CMT_ASM_LABEL",A="FL:::/Kernel/KernelA.HPP,1685"$
+$LK,"RLF_64BIT",A="FL:::/Kernel/KernelA.HPP,458"$
+$LK,"RLf_64BIT",A="FL:::/Kernel/KernelA.HPP,439"$
 $LK,"RedSeaFreeLstBuild",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,24",BI=49$
-$LK,"TK_SHL",A="FL:::/Kernel/KernelA.HPP,2058"$
-$LK,"DOCf_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,1299"$
-$LK,"DOCF_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,1263"$
-$LK,"CH_CTRLA",A="FL:::/Kernel/KernelA.HPP,3461"$
-$LK,"CHashGlblVar",A="FL:::/Kernel/KernelA.HPP,868"$
-$LK,"CH_CTRLB",A="FL:::/Kernel/KernelA.HPP,3462"$
-$LK,"DOCEf_TAG",A="FL:::/Kernel/KernelA.HPP,1045"$
+$LK,"TK_SHL",A="FL:::/Kernel/KernelA.HPP,2078"$
+$LK,"DOCf_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,1305"$
+$LK,"DOCF_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,1269"$
+$LK,"CH_CTRLA",A="FL:::/Kernel/KernelA.HPP,3480"$
+$LK,"CHashGlblVar",A="FL:::/Kernel/KernelA.HPP,869"$
+$LK,"CH_CTRLB",A="FL:::/Kernel/KernelA.HPP,3481"$
+$LK,"DOCEf_TAG",A="FL:::/Kernel/KernelA.HPP,1049"$
 $LK,"S",A="FL:::/Kernel/KDbg.CPP.Z,479",BI=50$
-$LK,"VGAP_INDEX",A="FL:::/Kernel/KernelA.HPP,3706"$
-$LK,"CH_CTRLC",A="FL:::/Kernel/KernelA.HPP,3463"$
+$LK,"VGAP_INDEX",A="FL:::/Kernel/KernelA.HPP,3725"$
+$LK,"CH_CTRLC",A="FL:::/Kernel/KernelA.HPP,3482"$
 $LK,"FifoI64Ins",A="FL:::/Kernel/KDataTypes.CPP.Z,258",BI=51$
 $LK,"FloorU64",A="FL:::/Kernel/KMathB.CPP.Z,36",BI=52$
-$LK,"CH_CTRLD",A="FL:::/Kernel/KernelA.HPP,3464"$
-$LK,"DOCF_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1272"$
-$LK,"DOCT_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,913"$
-$LK,"CH_CTRLE",A="FL:::/Kernel/KernelA.HPP,3465"$
-$LK,"BLACK",A="FL:::/Kernel/KernelA.HPP,2929"$
-$LK,"ARGT_STI",A="FL:::/Kernel/KernelA.HPP,1913"$
-$LK,"NUM_REGS",A="FL:::/Kernel/KernelA.HPP,1753"$
-$LK,"DOCf_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1309"$
-$LK,"DOCEf_BOTTOM_Y",A="FL:::/Kernel/KernelA.HPP,1072"$
-$LK,"DOCEF_BOTTOM_Y",A="FL:::/Kernel/KernelA.HPP,986"$
+$LK,"CH_CTRLD",A="FL:::/Kernel/KernelA.HPP,3483"$
+$LK,"DOCF_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1278"$
+$LK,"DOCT_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,915"$
+$LK,"CH_CTRLE",A="FL:::/Kernel/KernelA.HPP,3484"$
+$LK,"BLACK",A="FL:::/Kernel/KernelA.HPP,2948"$
+$LK,"ARGT_STI",A="FL:::/Kernel/KernelA.HPP,1932"$
+$LK,"NUM_REGS",A="FL:::/Kernel/KernelA.HPP,1771"$
+$LK,"DOCf_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1315"$
+$LK,"DOCEf_BOTTOM_Y",A="FL:::/Kernel/KernelA.HPP,1076"$
+$LK,"DOCEF_BOTTOM_Y",A="FL:::/Kernel/KernelA.HPP,988"$
 $LK,"FileNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,161",BI=53$
-$LK,"CH_CTRLF",A="FL:::/Kernel/KernelA.HPP,3466"$
-$LK,"TK_SHR",A="FL:::/Kernel/KernelA.HPP,2059"$
+$LK,"CH_CTRLF",A="FL:::/Kernel/KernelA.HPP,3485"$
+$LK,"TK_SHR",A="FL:::/Kernel/KernelA.HPP,2079"$
 $LK,"AutoMountIDE",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,254",BI=54$
-$LK,"CH_CTRLG",A="FL:::/Kernel/KernelA.HPP,3467"$
-$LK,"DOCEF_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HPP,1006"$
+$LK,"CH_CTRLG",A="FL:::/Kernel/KernelA.HPP,3486"$
+$LK,"DOCEF_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HPP,1008"$
 $LK,"_HASH_REM_DEL",A="FL:::/Kernel/KHashA.CPP.Z,208"$
 $LK,"TaskQueRem",A="FL:::/Kernel/Sched.CPP.Z,312",BI=55$
-$LK,"CH_CTRLH",A="FL:::/Kernel/KernelA.HPP,3468"$
-$LK,"CPalindromeU32",A="FL:::/Kernel/KernelA.HPP,2392"$
-$LK,"CPalindromeU16",A="FL:::/Kernel/KernelA.HPP,2387"$
-$LK,"DOCT_CHECK_BOX",A="FL:::/Kernel/KernelA.HPP,924"$
-$LK,"CH_CTRLI",A="FL:::/Kernel/KernelA.HPP,3469"$
+$LK,"CH_CTRLH",A="FL:::/Kernel/KernelA.HPP,3487"$
+$LK,"CPalindromeU32",A="FL:::/Kernel/KernelA.HPP,2411"$
+$LK,"CPalindromeU16",A="FL:::/Kernel/KernelA.HPP,2406"$
+$LK,"DOCT_CHECK_BOX",A="FL:::/Kernel/KernelA.HPP,926"$
+$LK,"CH_CTRLI",A="FL:::/Kernel/KernelA.HPP,3488"$
 $LK,"FifoI64New",A="FL:::/Kernel/KDataTypes.CPP.Z,240",BI=56$
-$LK,"CH_CTRLJ",A="FL:::/Kernel/KernelA.HPP,3470"$
-$LK,"ARGT_XMM128",A="FL:::/Kernel/KernelA.HPP,1922"$
-$LK,"SC_CURSOR_UP",A="FL:::/Kernel/KernelA.HPP,3543"$
-$LK,"CH_CTRLK",A="FL:::/Kernel/KernelA.HPP,3471"$
-$LK,"TASKf_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,3259"$
+$LK,"CH_CTRLJ",A="FL:::/Kernel/KernelA.HPP,3489"$
+$LK,"ARGT_XMM128",A="FL:::/Kernel/KernelA.HPP,1941"$
+$LK,"SC_CURSOR_UP",A="FL:::/Kernel/KernelA.HPP,3562"$
+$LK,"CH_CTRLK",A="FL:::/Kernel/KernelA.HPP,3490"$
+$LK,"TASKf_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,3278"$
 $LK,"RandI32",A="FL:::/Kernel/KMathB.CPP.Z,90",BI=57$
 $LK,"RandI16",A="FL:::/Kernel/KMathB.CPP.Z,74",BI=58$
-$LK,"CH_CTRLL",A="FL:::/Kernel/KernelA.HPP,3472"$
-$LK,"CH_CTRLM",A="FL:::/Kernel/KernelA.HPP,3473"$
-$LK,"ICf_LOCK",A="FL:::/Kernel/KernelA.HPP,1599"$
-$LK,"ICF_LOCK",A="FL:::/Kernel/KernelA.HPP,1598"$
+$LK,"CH_CTRLL",A="FL:::/Kernel/KernelA.HPP,3491"$
+$LK,"CH_CTRLM",A="FL:::/Kernel/KernelA.HPP,3492"$
+$LK,"ICf_LOCK",A="FL:::/Kernel/KernelA.HPP,1613"$
+$LK,"ICF_LOCK",A="FL:::/Kernel/KernelA.HPP,1612"$
 $LK,"PutFileLink",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,163",BI=59$
 $LK,"BreakLock",A="FL:::/Kernel/KExcept.CPP.Z,136",BI=60$
 $LK,"HPET",A="FL:::/Kernel/KernelB.HPP,289"$
 $LK,"CORE0_32BIT_INIT",A="FL:::/Kernel/KStart.CPP.Z,234"$
 $LK,"CORE0_16BIT_INIT",A="FL:::/Kernel/KStart.CPP.Z,56"$
-$LK,"CH_CTRLN",A="FL:::/Kernel/KernelA.HPP,3474"$
-$LK,"BDf_FMT",A="FL:::/Kernel/KernelA.HPP,2628"$
-$LK,"CCF_KEEP_DOT",A="FL:::/Kernel/KernelA.HPP,2111"$
+$LK,"CH_CTRLN",A="FL:::/Kernel/KernelA.HPP,3493"$
+$LK,"BDf_FMT",A="FL:::/Kernel/KernelA.HPP,2647"$
+$LK,"CCF_KEEP_DOT",A="FL:::/Kernel/KernelA.HPP,2131"$
 $LK,"Let2BlkDevType",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,137",BI=61$
-$LK,"CH_CTRLO",A="FL:::/Kernel/KernelA.HPP,3475"$
-$LK,"ARGT_XMM",A="FL:::/Kernel/KernelA.HPP,1918"$
-$LK,"DOCEf_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HPP,1090"$
-$LK,"DOCEf_WIN_REL",A="FL:::/Kernel/KernelA.HPP,1077"$
-$LK,"DOCEF_WIN_REL",A="FL:::/Kernel/KernelA.HPP,991"$
+$LK,"CH_CTRLO",A="FL:::/Kernel/KernelA.HPP,3494"$
+$LK,"ARGT_XMM",A="FL:::/Kernel/KernelA.HPP,1937"$
+$LK,"DOCEf_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HPP,1094"$
+$LK,"DOCEf_WIN_REL",A="FL:::/Kernel/KernelA.HPP,1081"$
+$LK,"DOCEF_WIN_REL",A="FL:::/Kernel/KernelA.HPP,993"$
 $LK,"FifoI64Rem",A="FL:::/Kernel/KDataTypes.CPP.Z,275",BI=62$
 $LK,"_D3_DIV",A="FL:::/Kernel/KMathA.CPP.Z,184"$
-$LK,"CH_CTRLP",A="FL:::/Kernel/KernelA.HPP,3476"$
+$LK,"CH_CTRLP",A="FL:::/Kernel/KernelA.HPP,3495"$
 $LK,"chars_bmp_non_eol",A="FL:::/Kernel/StrA.CPP.Z,396"$
-$LK,"CH_CTRLQ",A="FL:::/Kernel/KernelA.HPP,3477"$
-$LK,"CTSS",A="FL:::/Kernel/KernelA.HPP,3382"$
+$LK,"CH_CTRLQ",A="FL:::/Kernel/KernelA.HPP,3496"$
+$LK,"CTSS",A="FL:::/Kernel/KernelA.HPP,3401"$
 $LK,"FileNameChk",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,239",BI=63$
 $LK,"D3Mul",A="FL:::/Kernel/KernelB.HPP,162"$
-$LK,"CH_CTRLR",A="FL:::/Kernel/KernelA.HPP,3478"$
+$LK,"CH_CTRLR",A="FL:::/Kernel/KernelA.HPP,3497"$
 $LK,"SK_NAME",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,89"$
 $LK,"CtrlAltC",A="FL:::/Kernel/KeyDev.CPP.Z,131",BI=64$
 $LK,"CallerRep",A="FL:::/Kernel/KDbg.CPP.Z,152",BI=65$
-$LK,"CH_CTRLS",A="FL:::/Kernel/KernelA.HPP,3479"$
-$LK,"ROP_EQU",A="FL:::/Kernel/KernelA.HPP,2913"$
-$LK,"DOCEf_LST",A="FL:::/Kernel/KernelA.HPP,1095"$
+$LK,"CH_CTRLS",A="FL:::/Kernel/KernelA.HPP,3498"$
+$LK,"ROP_EQU",A="FL:::/Kernel/KernelA.HPP,2932"$
+$LK,"DOCEf_LST",A="FL:::/Kernel/KernelA.HPP,1099"$
 $LK,"CtrlAltD",A="FL:::/Kernel/KeyDev.CPP.Z,136",BI=66$
 $LK,"RandI64",A="FL:::/Kernel/KMathB.CPP.Z,106",BI=67$
-$LK,"CH_CTRLT",A="FL:::/Kernel/KernelA.HPP,3480"$
-$LK,"MBS_UNUSED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2829"$
-$LK,"CCmpGlbls",A="FL:::/Kernel/KernelA.HPP,2190"$
-$LK,"RT_U32",A="FL:::/Kernel/KernelA.HPP,1550"$
-$LK,"RT_U16",A="FL:::/Kernel/KernelA.HPP,1548"$
-$LK,"CExternUsage",A="FL:::/Kernel/KernelA.HPP,812"$
+$LK,"CH_CTRLT",A="FL:::/Kernel/KernelA.HPP,3499"$
+$LK,"MBS_UNUSED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2848"$
+$LK,"CCmpGlbls",A="FL:::/Kernel/KernelA.HPP,2210"$
+$LK,"RT_U32",A="FL:::/Kernel/KernelA.HPP,1556"$
+$LK,"RT_U16",A="FL:::/Kernel/KernelA.HPP,1554"$
+$LK,"CExternUsage",A="FL:::/Kernel/KernelA.HPP,813"$
 $LK,"FAT32FreeClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,413",BI=68$
 $LK,"CtrlAltE",A="FL:::/Kernel/KeyDev.CPP.Z,146",BI=69$
-$LK,"CH_CTRLU",A="FL:::/Kernel/KernelA.HPP,3481"$
-$LK,"ARGT_MM32",A="FL:::/Kernel/KernelA.HPP,1916"$
-$LK,"DOCSS_COMMENT",A="FL:::/Kernel/KernelA.HPP,1121"$
+$LK,"CH_CTRLU",A="FL:::/Kernel/KernelA.HPP,3500"$
+$LK,"ARGT_MM32",A="FL:::/Kernel/KernelA.HPP,1935"$
+$LK,"DOCSS_COMMENT",A="FL:::/Kernel/KernelA.HPP,1127"$
 $LK,"CtrlAltF",A="FL:::/Kernel/KeyDev.CPP.Z,151",BI=70$
 $LK,"ip_grid",A="FL:::/Kernel/KGlbls.CPP.Z,23"$
-$LK,"CH_CTRLV",A="FL:::/Kernel/KernelA.HPP,3482"$
-$LK,"CCodeMisc",A="FL:::/Kernel/KernelA.HPP,1684"$
-$LK,"DOF_DONT_TEXT_ATTR",A="FL:::/Kernel/KernelA.HPP,1209"$
-$LK,"DOCEf_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1038"$
-$LK,"DOCEF_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1032"$
+$LK,"CH_CTRLV",A="FL:::/Kernel/KernelA.HPP,3501"$
+$LK,"CCodeMisc",A="FL:::/Kernel/KernelA.HPP,1702"$
+$LK,"DOF_DONT_TEXT_ATTR",A="FL:::/Kernel/KernelA.HPP,1215"$
+$LK,"DOCEf_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1042"$
+$LK,"DOCEF_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1036"$
 $LK,"DrvFATBlkSet",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,93",BI=71$
 $LK,"ISODrvInit",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,5",BI=72$
-$LK,"CH_CTRLW",A="FL:::/Kernel/KernelA.HPP,3483"$
-$LK,"FFB_NEXT_BLK",A="FL:::/Kernel/KernelA.HPP,2749"$
+$LK,"CH_CTRLW",A="FL:::/Kernel/KernelA.HPP,3502"$
+$LK,"FFB_NEXT_BLK",A="FL:::/Kernel/KernelA.HPP,2768"$
 $LK,"ISO1FromName",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,88",BI=73$
 $LK,"MPIntAll",A="FL:::/Kernel/MultiProc.CPP.Z,149",BI=74$
 $LK,"TaskContextRestore",A="FL:::/Kernel/Sched.CPP.Z,294"$
 $LK,"SYS_INIT_MEM",A="FL:::/Kernel/Mem/PageTables.CPP.Z,6"$
-$LK,"SCf_ALT",A="FL:::/Kernel/KernelA.HPP,3503"$
-$LK,"CH_CTRLX",A="FL:::/Kernel/KernelA.HPP,3484"$
-$LK,"CH_CTRLY",A="FL:::/Kernel/KernelA.HPP,3485"$
-$LK,"CDoc",A="FL:::/Kernel/KernelA.HPP,1344"$
+$LK,"SCf_ALT",A="FL:::/Kernel/KernelA.HPP,3522"$
+$LK,"CH_CTRLX",A="FL:::/Kernel/KernelA.HPP,3503"$
+$LK,"CH_CTRLY",A="FL:::/Kernel/KernelA.HPP,3504"$
+$LK,"CDoc",A="FL:::/Kernel/KernelA.HPP,1350"$
 $LK,"MemSetU8",A="FL:::/Kernel/KernelB.HPP,185"$
 $LK,"_FCLEX",A="FL:::/Kernel/KMathA.CPP.Z,646"$
 $LK,"_D3_DOT",A="FL:::/Kernel/KMathA.CPP.Z,113"$
-$LK,"ARf_CSPRITE_INS_CLIPBOARD",A="FL:::/Kernel/KernelA.HPP,3873"$
-$LK,"CH_CTRLZ",A="FL:::/Kernel/KernelA.HPP,3486"$
-$LK,"CHashGeneric",A="FL:::/Kernel/KernelA.HPP,729"$
+$LK,"ARf_CSPRITE_INS_CLIPBOARD",A="FL:::/Kernel/KernelA.HPP,3892"$
+$LK,"CH_CTRLZ",A="FL:::/Kernel/KernelA.HPP,3505"$
+$LK,"CHashGeneric",A="FL:::/Kernel/KernelA.HPP,730"$
 $LK,"SYS_FIND_PCIBIOS_SERVICE_DIR",A="FL:::/Kernel/PCIBIOS.CPP.Z,8"$
-$LK,"CTRLF_CLICKED",A="FL:::/Kernel/KernelA.HPP,3067"$
-$LK,"HTF_RESOLVE",A="FL:::/Kernel/KernelA.HPP,703"$
+$LK,"CTRLF_CLICKED",A="FL:::/Kernel/KernelA.HPP,3086"$
+$LK,"HTF_RESOLVE",A="FL:::/Kernel/KernelA.HPP,704"$
 $LK,"BCnt",A="FL:::/Kernel/KMisc.CPP.Z,39",BI=75$
 $LK,"Mem64DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,141",BI=76$
 $LK,"Mem32DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,91",BI=77$
-$LK,"RT_U64",A="FL:::/Kernel/KernelA.HPP,1553"$
-$LK,"DOCT_TAB",A="FL:::/Kernel/KernelA.HPP,899"$
-$LK,"HTT_FRAME_PTR",A="FL:::/Kernel/KernelA.HPP,694"$
-$LK,"HTt_FRAME_PTR",A="FL:::/Kernel/KernelA.HPP,664"$
+$LK,"RT_U64",A="FL:::/Kernel/KernelA.HPP,1559"$
+$LK,"DOCT_TAB",A="FL:::/Kernel/KernelA.HPP,901"$
+$LK,"HTT_FRAME_PTR",A="FL:::/Kernel/KernelA.HPP,695"$
+$LK,"HTt_FRAME_PTR",A="FL:::/Kernel/KernelA.HPP,665"$
 $LK,"ISO1FilesFind",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,233",BI=78$
 $LK,"CtrlAltM",A="FL:::/Kernel/KeyDev.CPP.Z,156",BI=79$
 $LK,"DefineLstLoad",A="FL:::/Kernel/KDefine.CPP.Z,13",BI=80$
 $LK,"SYS_EM64T",A="FL:::/Kernel/KStart.CPP.Z,318"$
-$LK,"ARGT_MM64",A="FL:::/Kernel/KernelA.HPP,1917"$
-$LK,"DOCEf_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,1063"$
-$LK,"DOCEF_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,977"$
+$LK,"ARGT_MM64",A="FL:::/Kernel/KernelA.HPP,1936"$
+$LK,"DOCEf_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,1067"$
+$LK,"DOCEF_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,979"$
 $LK,"RFLAGf_DIR",A="FL:::/Kernel/KernelA.HPP,312"$
 $LK,"ClusterNumNext",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,1",BI=81$
 $LK,"KbdMouseEvtTime",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,486",BI=82$
 $LK,"ip_last",A="FL:::/Kernel/KGlbls.CPP.Z,24"$
-$LK,"CDirEntry",A="FL:::/Kernel/KernelA.HPP,2529"$
-$LK,"TK_STR",A="FL:::/Kernel/KernelA.HPP,2050"$
-$LK,"ACD_DEF_END",A="FL:::/Kernel/KernelA.HPP,1496"$
-$LK,"PROGRESS_DESC_LEN",A="FL:::/Kernel/KernelA.HPP,3882"$
-$LK,"CCF_ASM_EXPRESSIONS",A="FL:::/Kernel/KernelA.HPP,2121"$
+$LK,"CDirEntry",A="FL:::/Kernel/KernelA.HPP,2548"$
+$LK,"TK_STR",A="FL:::/Kernel/KernelA.HPP,2070"$
+$LK,"ACD_DEF_END",A="FL:::/Kernel/KernelA.HPP,1502"$
+$LK,"PROGRESS_DESC_LEN",A="FL:::/Kernel/KernelA.HPP,3901"$
+$LK,"CCF_ASM_EXPRESSIONS",A="FL:::/Kernel/KernelA.HPP,2141"$
 $LK,"D3Sub",A="FL:::/Kernel/KernelB.HPP,166"$
-$LK,"SC_CURSOR_RIGHT",A="FL:::/Kernel/KernelA.HPP,3546"$
+$LK,"SC_CURSOR_RIGHT",A="FL:::/Kernel/KernelA.HPP,3565"$
 $LK,"KeyDevAdd",A="FL:::/Kernel/KeyDev.CPP.Z,64",BI=83$
-$LK,"CTRLF_BORDER",A="FL:::/Kernel/KernelA.HPP,3064"$
+$LK,"CTRLF_BORDER",A="FL:::/Kernel/KernelA.HPP,3083"$
 $LK,"_D3_EQU",A="FL:::/Kernel/KMathA.CPP.Z,226"$
-$LK,"VGAP_ATTR_DATA_READ",A="FL:::/Kernel/KernelA.HPP,3704"$
-$LK,"ATA_PACKET",A="FL:::/Kernel/KernelA.HPP,2236"$
-$LK,"HTF_LOCAL",A="FL:::/Kernel/KernelA.HPP,705"$
-$LK,"HTT_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HPP,688"$
-$LK,"HTf_LOCAL",A="FL:::/Kernel/KernelA.HPP,675"$
+$LK,"VGAP_ATTR_DATA_READ",A="FL:::/Kernel/KernelA.HPP,3723"$
+$LK,"ATA_PACKET",A="FL:::/Kernel/KernelA.HPP,2255"$
+$LK,"HTF_LOCAL",A="FL:::/Kernel/KernelA.HPP,706"$
+$LK,"HTT_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HPP,689"$
+$LK,"HTf_LOCAL",A="FL:::/Kernel/KernelA.HPP,676"$
 $LK,"CtrlAltT",A="FL:::/Kernel/KeyDev.CPP.Z,161",BI=84$
 $LK,"IsSilent",A="FL:::/Kernel/KMisc.CPP.Z,228",BI=85$
-$LK,"CBpt",A="FL:::/Kernel/KernelA.HPP,3129"$
-$LK,"HTt_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HPP,658"$
+$LK,"CBpt",A="FL:::/Kernel/KernelA.HPP,3148"$
+$LK,"HTt_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HPP,659"$
 $LK,"PCIWriteU32",A="FL:::/Kernel/PCIBIOS.CPP.Z,250",BI=86$
 $LK,"PCIWriteU16",A="FL:::/Kernel/PCIBIOS.CPP.Z,235",BI=87$
 $LK,"CtrlAltV",A="FL:::/Kernel/KeyDev.CPP.Z,166",BI=88$
-$LK,"CISO1DirEntry",A="FL:::/Kernel/KernelA.HPP,2434"$
+$LK,"CISO1DirEntry",A="FL:::/Kernel/KernelA.HPP,2453"$
 $LK,"_LXCHG_U8",A="FL:::/Kernel/KUtils.CPP.Z,244"$
 $LK,"CtrlAltX",A="FL:::/Kernel/KeyDev.CPP.Z,171",BI=89$
 $LK,"ChgDsk",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,200",BI=90$
 $LK,"UserTaskCont",A="FL:::/Kernel/KTask.CPP.Z,350",BI=91$
 $LK,"RFLAGf_NESTED_TASK",A="FL:::/Kernel/KernelA.HPP,316"$
 $LK,"BEqu",A="FL:::/Kernel/KernelB.HPP,28"$
-$LK,"ISO1T_PRI_VOL_DESC",A="FL:::/Kernel/KernelA.HPP,2455"$
+$LK,"ISO1T_PRI_VOL_DESC",A="FL:::/Kernel/KernelA.HPP,2474"$
 $LK,"FAT32MkDir",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,933",BI=92$
-$LK,"DCS_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3624"$
-$LK,"ICF_USE_INT",A="FL:::/Kernel/KernelA.HPP,1580"$
-$LK,"DOCT_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,896"$
+$LK,"DCS_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3643"$
+$LK,"ICF_USE_INT",A="FL:::/Kernel/KernelA.HPP,1595"$
+$LK,"DOCT_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,897"$
 $LK,"BIN_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,369"$
-$LK,"ARGT_IMM8",A="FL:::/Kernel/KernelA.HPP,1861"$
+$LK,"ARGT_IMM8",A="FL:::/Kernel/KernelA.HPP,1880"$
 $LK,"SYS_HASH_SINGLE_TABLE_FIND1",A="FL:::/Kernel/KHashA.CPP.Z,30"$
-$LK,"DOC_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,1333"$
-$LK,"DOCEF_INVERT",A="FL:::/Kernel/KernelA.HPP,1034"$
+$LK,"DOC_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,1339"$
+$LK,"DOCEF_INVERT",A="FL:::/Kernel/KernelA.HPP,1038"$
 $LK,"CDateStruct",A="FL:::/Kernel/KernelA.HPP,191"$
-$LK,"CHashFun",A="FL:::/Kernel/KernelA.HPP,851"$
-$LK,"SV_I_REG",A="FL:::/Kernel/KernelA.HPP,1720"$
-$LK,"DOCEf_INVERT",A="FL:::/Kernel/KernelA.HPP,1040"$
+$LK,"CHashFun",A="FL:::/Kernel/KernelA.HPP,852"$
+$LK,"SV_I_REG",A="FL:::/Kernel/KernelA.HPP,1738"$
+$LK,"DOCEf_INVERT",A="FL:::/Kernel/KernelA.HPP,1044"$
 $LK,"DayOfWeek",A="FL:::/Kernel/KDate.CPP.Z,30",BI=93$
-$LK,"CDrv",A="FL:::/Kernel/KernelA.HPP,2690"$
-$LK,"TK_MINUS_MINUS",A="FL:::/Kernel/KernelA.HPP,2055"$
-$LK,"DOCT_LST",A="FL:::/Kernel/KernelA.HPP,925"$
+$LK,"CDrv",A="FL:::/Kernel/KernelA.HPP,2709"$
+$LK,"TK_MINUS_MINUS",A="FL:::/Kernel/KernelA.HPP,2075"$
+$LK,"DOCT_LST",A="FL:::/Kernel/KernelA.HPP,927"$
 $LK,"sys_heap_init_flag",A="FL:::/Kernel/KernelB.HPP,187"$
-$LK,"FUF_CANCEL",A="FL:::/Kernel/KernelA.HPP,2576"$
-$LK,"FUf_CANCEL",A="FL:::/Kernel/KernelA.HPP,2550"$
+$LK,"FUF_CANCEL",A="FL:::/Kernel/KernelA.HPP,2595"$
+$LK,"FUf_CANCEL",A="FL:::/Kernel/KernelA.HPP,2569"$
 $LK,"FALSE",A="FL:::/Kernel/KernelA.HPP,19"$
-$LK,"VGAP_REG_READ",A="FL:::/Kernel/KernelA.HPP,3709"$
-$LK,"SVCf_ADD_TO_QUE",A="FL:::/Kernel/KernelA.HPP,3158"$
-$LK,"CUAsmGlbls",A="FL:::/Kernel/KernelA.HPP,2206"$
-$LK,"TK_ADD_EQU",A="FL:::/Kernel/KernelA.HPP,2074"$
-$LK,"TK_XOR_EQU",A="FL:::/Kernel/KernelA.HPP,2073"$
+$LK,"VGAP_REG_READ",A="FL:::/Kernel/KernelA.HPP,3728"$
+$LK,"SVCf_ADD_TO_QUE",A="FL:::/Kernel/KernelA.HPP,3177"$
+$LK,"CUAsmGlbls",A="FL:::/Kernel/KernelA.HPP,2225"$
+$LK,"TK_ADD_EQU",A="FL:::/Kernel/KernelA.HPP,2094"$
+$LK,"TK_XOR_EQU",A="FL:::/Kernel/KernelA.HPP,2093"$
 $LK,"StrPrintHex",A="FL:::/Kernel/StrA.CPP.Z,1",BI=94$
 $LK,"_D3_ADD_EQU",A="FL:::/Kernel/KMathA.CPP.Z,239"$
-$LK,"DRV_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2689"$
-$LK,"DOCT_PMT",A="FL:::/Kernel/KernelA.HPP,912"$
-$LK,"Cf_EXTERN",A="FL:::/Kernel/KernelA.HPP,825"$
-$LK,"HPET_GCAP_ID",A="FL:::/Kernel/KernelA.HPP,529"$
+$LK,"DRV_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2708"$
+$LK,"DOCT_PMT",A="FL:::/Kernel/KernelA.HPP,914"$
+$LK,"Cf_EXTERN",A="FL:::/Kernel/KernelA.HPP,826"$
+$LK,"HPET_GCAP_ID",A="FL:::/Kernel/KernelA.HPP,530"$
 $LK,"ATan",A="FL:::/Kernel/KernelB.HPP,94"$
 $LK,"SysBadFree",A="FL:::/Kernel/Mem/Mem512.CPP.Z,1",BI=95$
-$LK,"ATA_ID_DEV",A="FL:::/Kernel/KernelA.HPP,2245"$
-$LK,"CHashReg",A="FL:::/Kernel/KernelA.HPP,743"$
-$LK,"SCf_INS",A="FL:::/Kernel/KernelA.HPP,3511"$
-$LK,"LAPIC_LVT_ERR",A="FL:::/Kernel/KernelA.HPP,499"$
+$LK,"ATA_ID_DEV",A="FL:::/Kernel/KernelA.HPP,2264"$
+$LK,"CHashReg",A="FL:::/Kernel/KernelA.HPP,744"$
+$LK,"SCf_INS",A="FL:::/Kernel/KernelA.HPP,3530"$
+$LK,"LAPIC_LVT_ERR",A="FL:::/Kernel/KernelA.HPP,500"$
 $LK,"Scale2Mem",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,187",BI=96$
 $LK,"Mem512TaskFree",A="FL:::/Kernel/Mem/Mem512.CPP.Z,153",BI=97$
 $LK,"RandU32",A="FL:::/Kernel/KMathB.CPP.Z,98",BI=98$
 $LK,"RandU16",A="FL:::/Kernel/KMathB.CPP.Z,82",BI=99$
 $LK,"_FLDCW",A="FL:::/Kernel/KMathA.CPP.Z,625"$
-$LK,"__DIR__",A="FL:::/Kernel/KernelA.HPP,2009"$
-$LK,"ARGT_RM32",A="FL:::/Kernel/KernelA.HPP,1878"$
-$LK,"ARGT_RM16",A="FL:::/Kernel/KernelA.HPP,1877"$
+$LK,"__DIR__",A="FL:::/Kernel/KernelA.HPP,2029"$
+$LK,"ARGT_RM32",A="FL:::/Kernel/KernelA.HPP,1897"$
+$LK,"ARGT_RM16",A="FL:::/Kernel/KernelA.HPP,1896"$
 $LK,"RFLAGf_INT",A="FL:::/Kernel/KernelA.HPP,311"$
-$LK,"WIf_SELF_DOC",A="FL:::/Kernel/KernelA.HPP,1435"$
-$LK,"WIF_SELF_DOC",A="FL:::/Kernel/KernelA.HPP,1409"$
-$LK,"MLF_STATIC",A="FL:::/Kernel/KernelA.HPP,775"$
-$LK,"ICF_A1_FIRST",A="FL:::/Kernel/KernelA.HPP,1585"$
+$LK,"WIf_SELF_DOC",A="FL:::/Kernel/KernelA.HPP,1441"$
+$LK,"WIF_SELF_DOC",A="FL:::/Kernel/KernelA.HPP,1415"$
+$LK,"MLF_STATIC",A="FL:::/Kernel/KernelA.HPP,776"$
 $LK,"ChgExt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,193",BI=100$
 $LK,"str2color_lst",A="FL:::/Kernel/KDefine.CPP.Z,155"$
 $LK,"local_time_offset",A="FL:::/Kernel/KGlbls.CPP.Z,14"$
 $LK,"RedSeaFilesFind",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,537",BI=101$
-$LK,"TK_INS_BIN",A="FL:::/Kernel/KernelA.HPP,2086"$
+$LK,"TK_INS_BIN",A="FL:::/Kernel/KernelA.HPP,2106"$
 $LK,"_D3_MUL",A="FL:::/Kernel/KMathA.CPP.Z,167"$
-$LK,"ISO1_BASE_YEAR",A="FL:::/Kernel/KernelA.HPP,2497"$
-$LK,"TK_ELSE",A="FL:::/Kernel/KernelA.HPP,2082"$
+$LK,"ISO1_BASE_YEAR",A="FL:::/Kernel/KernelA.HPP,2516"$
+$LK,"TK_ELSE",A="FL:::/Kernel/KernelA.HPP,2102"$
 $LK,"RandU64",A="FL:::/Kernel/KMathB.CPP.Z,114",BI=102$
 $LK,"PostMsgWait",A="FL:::/Kernel/SrvCmd.CPP.Z,251",BI=103$
 $LK,"UndefinedDefine",A="FL:::/Kernel/KDefine.CPP.Z,43",BI=104$
-$LK,"ARGT_RM64",A="FL:::/Kernel/KernelA.HPP,1879"$
+$LK,"ARGT_RM64",A="FL:::/Kernel/KernelA.HPP,1898"$
 $LK,"ATAWaitDRQ",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,36",BI=105$
 $LK,"TaskInit",A="FL:::/Kernel/KTask.CPP.Z,150",BI=106$
-$LK,"DOCEf_RIGHT_CB",A="FL:::/Kernel/KernelA.HPP,1065"$
-$LK,"DOCEF_RIGHT_CB",A="FL:::/Kernel/KernelA.HPP,979"$
-$LK,"HTT_DICT_WORD",A="FL:::/Kernel/KernelA.HPP,686"$
-$LK,"HTt_DICT_WORD",A="FL:::/Kernel/KernelA.HPP,656"$
-$LK,"RLf_MP",A="FL:::/Kernel/KernelA.HPP,444"$
+$LK,"DOCEf_RIGHT_CB",A="FL:::/Kernel/KernelA.HPP,1069"$
+$LK,"DOCEF_RIGHT_CB",A="FL:::/Kernel/KernelA.HPP,981"$
+$LK,"HTT_DICT_WORD",A="FL:::/Kernel/KernelA.HPP,687"$
+$LK,"HTt_DICT_WORD",A="FL:::/Kernel/KernelA.HPP,657"$
+$LK,"RLf_MP",A="FL:::/Kernel/KernelA.HPP,445"$
 $LK,"CSpring",A="FL:::/Kernel/KernelA.HPP,224"$
-$LK,"CBGR24",A="FL:::/Kernel/KernelA.HPP,2961"$
-$LK,"FONT_WIDTH",A="FL:::/Kernel/KernelA.HPP,3585"$
-$LK,"CHeapCtrl",A="FL:::/Kernel/KernelA.HPP,2879"$
+$LK,"CBGR24",A="FL:::/Kernel/KernelA.HPP,2980"$
+$LK,"FONT_WIDTH",A="FL:::/Kernel/KernelA.HPP,3604"$
+$LK,"CHeapCtrl",A="FL:::/Kernel/KernelA.HPP,2898"$
 $LK,"LastDayOfYear",A="FL:::/Kernel/KDate.CPP.Z,110",BI=107$
 $LK,"SYS_IDLE_PT",A="FL:::/Kernel/Sched.CPP.Z,215"$
 $LK,"mp_cnt_initial",A="FL:::/Kernel/KernelB.HPP,235"$
-$LK,"STD_DISTRO_DVD_CFG",A="FL:::/Kernel/KernelA.HPP,3868"$
-$LK,"CAbsCntsI64",A="FL:::/Kernel/KernelA.HPP,1784"$
+$LK,"STD_DISTRO_DVD_CFG",A="FL:::/Kernel/KernelA.HPP,3887"$
+$LK,"CAbsCntsI64",A="FL:::/Kernel/KernelA.HPP,1803"$
 $LK,"Core0StartMP",A="FL:::/Kernel/MultiProc.CPP.Z,285",BI=108$
 $LK,"JobResultGet",A="FL:::/Kernel/SrvCmd.CPP.Z,198",BI=109$
 $LK,"_D3_SUB",A="FL:::/Kernel/KMathA.CPP.Z,149"$
-$LK,"CBGR48",A="FL:::/Kernel/KernelA.HPP,2965"$
-$LK,"DOCEF_BORDER_PLOT",A="FL:::/Kernel/KernelA.HPP,998"$
+$LK,"CBGR48",A="FL:::/Kernel/KernelA.HPP,2984"$
+$LK,"DOCEF_BORDER_PLOT",A="FL:::/Kernel/KernelA.HPP,1000"$
 $LK,"IntCore0TimerHandler",A="FL:::/Kernel/KMisc.CPP.Z,47",BI=110$
-$LK,"__DATE__",A="FL:::/Kernel/KernelA.HPP,2001"$
+$LK,"__DATE__",A="FL:::/Kernel/KernelA.HPP,2021"$
 $LK,"chars_bmp_safe_dollar",A="FL:::/Kernel/StrA.CPP.Z,391"$
 $LK,"AdamErr",A="FL:::/Kernel/SrvCmd.CPP.Z,434",BI=111$
 $LK,"sys_focus_task",A="FL:::/Kernel/KernelB.HPP,203"$
-$LK,"DOCEf_BORDER_PLOT",A="FL:::/Kernel/KernelA.HPP,1084"$
-$LK,"HTT_MODULE",A="FL:::/Kernel/KernelA.HPP,692"$
-$LK,"HTt_MODULE",A="FL:::/Kernel/KernelA.HPP,662"$
-$LK,"SVCf_HIGHEST_PRIORITY",A="FL:::/Kernel/KernelA.HPP,3153"$
-$LK,"ARGT_REL8",A="FL:::/Kernel/KernelA.HPP,1857"$
+$LK,"DOCEf_BORDER_PLOT",A="FL:::/Kernel/KernelA.HPP,1088"$
+$LK,"HTT_MODULE",A="FL:::/Kernel/KernelA.HPP,693"$
+$LK,"HTt_MODULE",A="FL:::/Kernel/KernelA.HPP,663"$
+$LK,"SVCf_HIGHEST_PRIORITY",A="FL:::/Kernel/KernelA.HPP,3172"$
+$LK,"ARGT_REL8",A="FL:::/Kernel/KernelA.HPP,1876"$
 $LK,"GridInit",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,1",BI=112$
 $LK,"FirstDayOfYear",A="FL:::/Kernel/KDate.CPP.Z,98",BI=113$
-$LK,"CCf_PMT",A="FL:::/Kernel/KernelA.HPP,2104"$
-$LK,"ACD_EXTRA",A="FL:::/Kernel/KernelA.HPP,1501"$
-$LK,"WIf_SELF_ODE",A="FL:::/Kernel/KernelA.HPP,1436"$
-$LK,"WIF_SELF_ODE",A="FL:::/Kernel/KernelA.HPP,1410"$
-$LK,"MLF_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HPP,769"$
+$LK,"CCf_PMT",A="FL:::/Kernel/KernelA.HPP,2124"$
+$LK,"ACD_EXTRA",A="FL:::/Kernel/KernelA.HPP,1507"$
+$LK,"WIf_SELF_ODE",A="FL:::/Kernel/KernelA.HPP,1442"$
+$LK,"WIF_SELF_ODE",A="FL:::/Kernel/KernelA.HPP,1416"$
+$LK,"MLF_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HPP,770"$
 $LK,"COREAP_16BIT_INIT",A="FL:::/Kernel/MultiProc.CPP.Z,9"$
-$LK,"SCf_NUM",A="FL:::/Kernel/KernelA.HPP,3505"$
-$LK,"RS_ATTR_RESIDENT",A="FL:::/Kernel/KernelA.HPP,2512"$
+$LK,"SCf_NUM",A="FL:::/Kernel/KernelA.HPP,3524"$
+$LK,"RS_ATTR_RESIDENT",A="FL:::/Kernel/KernelA.HPP,2531"$
 $LK,"Dbg2",A="FL:::/Kernel/KDbg.CPP.Z,533",BI=114$
 $LK,"HashSrcFileSet",A="FL:::/Kernel/KHashB.CPP.Z,154",BI=115$
-$LK,"ROP_XOR",A="FL:::/Kernel/KernelA.HPP,2914"$
+$LK,"ROP_XOR",A="FL:::/Kernel/KernelA.HPP,2933"$
 $LK,"NULL",A="FL:::/Kernel/KernelA.HPP,17"$
 $LK,"BlkPoolInit",A="FL:::/Kernel/Mem/BlkPool.CPP.Z,18",BI=116$
 $LK,"_BIT_FIELD_EXTRACT_U32",A="FL:::/Kernel/KUtils.CPP.Z,167"$
-$LK,"BDF_EXT_SIZE",A="FL:::/Kernel/KernelA.HPP,2620"$
+$LK,"BDF_EXT_SIZE",A="FL:::/Kernel/KernelA.HPP,2639"$
 $LK,"ProgressBarsRst",A="FL:::/Kernel/KMisc.CPP.Z,275",BI=117$
-$LK,"TASKf_PENDING_BREAK",A="FL:::/Kernel/KernelA.HPP,3263"$
-$LK,"BDf_EXT_SIZE",A="FL:::/Kernel/KernelA.HPP,2630"$
+$LK,"TASKf_PENDING_BREAK",A="FL:::/Kernel/KernelA.HPP,3282"$
+$LK,"BDf_EXT_SIZE",A="FL:::/Kernel/KernelA.HPP,2649"$
 $LK,"RedSeaAllocClusters",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,300",BI=118$
 $LK,"CQue",A="FL:::/Kernel/KernelA.HPP,120"$
-$LK,"MEM_ADAM_STK",A="FL:::/Kernel/KernelA.HPP,2856"$
-$LK,"DOCEF_UPDATE_DATA",A="FL:::/Kernel/KernelA.HPP,1002"$
+$LK,"MEM_ADAM_STK",A="FL:::/Kernel/KernelA.HPP,2875"$
+$LK,"DOCEF_UPDATE_DATA",A="FL:::/Kernel/KernelA.HPP,1004"$
 $LK,"AdamLog",A="FL:::/Kernel/SrvCmd.CPP.Z,424",BI=119$
-$LK,"TASKf_KILL_TASK",A="FL:::/Kernel/KernelA.HPP,3254"$
-$LK,"ACD_H1",A="FL:::/Kernel/KernelA.HPP,1493"$
-$LK,"Ff_RET1",A="FL:::/Kernel/KernelA.HPP,849"$
-$LK,"SVCT_SPAWN_TASK",A="FL:::/Kernel/KernelA.HPP,3165"$
-$LK,"RS_ATTR_ARCHIVE",A="FL:::/Kernel/KernelA.HPP,2507"$
-$LK,"DOCEf_UPDATE_DATA",A="FL:::/Kernel/KernelA.HPP,1088"$
-$LK,"EXT_DBG_RESUME",A="FL:::/Kernel/KernelA.HPP,575"$
-$LK,"FSt_FAT32",A="FL:::/Kernel/KernelA.HPP,2660"$
-$LK,"OPTf_WARN_PAREN",A="FL:::/Kernel/KernelA.HPP,1529"$
+$LK,"TASKf_KILL_TASK",A="FL:::/Kernel/KernelA.HPP,3273"$
+$LK,"ACD_H1",A="FL:::/Kernel/KernelA.HPP,1499"$
+$LK,"Ff_RET1",A="FL:::/Kernel/KernelA.HPP,850"$
+$LK,"SVCT_SPAWN_TASK",A="FL:::/Kernel/KernelA.HPP,3184"$
+$LK,"RS_ATTR_ARCHIVE",A="FL:::/Kernel/KernelA.HPP,2526"$
+$LK,"DOCEf_UPDATE_DATA",A="FL:::/Kernel/KernelA.HPP,1092"$
+$LK,"EXT_DBG_RESUME",A="FL:::/Kernel/KernelA.HPP,576"$
+$LK,"FSt_FAT32",A="FL:::/Kernel/KernelA.HPP,2679"$
+$LK,"OPTf_WARN_PAREN",A="FL:::/Kernel/KernelA.HPP,1535"$
 $LK,"TaskStkNew",A="FL:::/Kernel/KTask.CPP.Z,68",BI=120$
-$LK,"RT_PTR",A="FL:::/Kernel/KernelA.HPP,1552"$
+$LK,"RT_PTR",A="FL:::/Kernel/KernelA.HPP,1558"$
 $LK,"HashTableDel",A="FL:::/Kernel/KHashB.CPP.Z,90",BI=121$
 $LK,"LBtc",A="FL:::/Kernel/KernelB.HPP,22"$
-$LK,"FUF_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HPP,2590"$
+$LK,"FUF_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HPP,2609"$
 $LK,"ClampI64",A="FL:::/Kernel/KernelB.HPP,124"$
-$LK,"FUf_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HPP,2564"$
+$LK,"FUf_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HPP,2583"$
 $LK,"B2",A="FL:::/Kernel/KDbg.CPP.Z,422",BI=122$
 $LK,"SLOP",A="FL:::/Kernel/StrPrint.CPP.Z,217"$
-$LK,"FF_BUF_DIRTY",A="FL:::/Kernel/KernelA.HPP,2753"$
-$LK,"ICF_SWAP",A="FL:::/Kernel/KernelA.HPP,1594"$
+$LK,"FF_BUF_DIRTY",A="FL:::/Kernel/KernelA.HPP,2772"$
+$LK,"ICF_SWAP",A="FL:::/Kernel/KernelA.HPP,1608"$
 $LK,"_STRMATCH",A="FL:::/Kernel/StrA.CPP.Z,223"$
 $LK,"MSF_FIXED",A="FL:::/Kernel/KernelA.HPP,206"$
 $LK,"_CPUID",A="FL:::/Kernel/KUtils.CPP.Z,319"$
 $LK,"SYS_HEAP_BASE",A="FL:::/Kernel/KStart.CPP.Z,184"$
 $LK,"_LBEQU",A="FL:::/Kernel/KUtils.CPP.Z,104"$
 $LK,"Caller",A="FL:::/Kernel/KDbg.CPP.Z,60",BI=123$
-$LK,"SUF_S2T",A="FL:::/Kernel/KernelA.HPP,3772"$
-$LK,"ATA_DEV_RST",A="FL:::/Kernel/KernelA.HPP,2235"$
+$LK,"SUF_S2T",A="FL:::/Kernel/KernelA.HPP,3791"$
+$LK,"ATA_DEV_RST",A="FL:::/Kernel/KernelA.HPP,2254"$
 $LK,"INT_MP_CRASH_ADDR",A="FL:::/Kernel/KInts.CPP.Z,2"$
-$LK,"RWF_LAST_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3573"$
-$LK,"RS_ATTR_CONTIGUOUS",A="FL:::/Kernel/KernelA.HPP,2514"$
-$LK,"HPET_MAIN_CNT",A="FL:::/Kernel/KernelA.HPP,531"$
-$LK,"DOCT_DATA",A="FL:::/Kernel/KernelA.HPP,923"$
-$LK,"SUF_T2S",A="FL:::/Kernel/KernelA.HPP,3773"$
-$LK,"MEM_MIN_MEG",A="FL:::/Kernel/KernelA.HPP,3438"$
+$LK,"RWF_LAST_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3592"$
+$LK,"RS_ATTR_CONTIGUOUS",A="FL:::/Kernel/KernelA.HPP,2533"$
+$LK,"HPET_MAIN_CNT",A="FL:::/Kernel/KernelA.HPP,532"$
+$LK,"DOCT_DATA",A="FL:::/Kernel/KernelA.HPP,925"$
+$LK,"SUF_T2S",A="FL:::/Kernel/KernelA.HPP,3792"$
+$LK,"MEM_MIN_MEG",A="FL:::/Kernel/KernelA.HPP,3457"$
 $LK,"exp_1",A="FL:::/Kernel/KernelA.HPP,50"$
 $LK,"CTRL_KEY_SCAN_DECODE_TABLE",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,15"$
 $LK,"KeyDevRem",A="FL:::/Kernel/KeyDev.CPP.Z,80",BI=124$
 $LK,"G2",A="FL:::/Kernel/KDbg.CPP.Z,469",BI=125$
-$LK,"DOCEG_HAS_ARG",A="FL:::/Kernel/KernelA.HPP,1023"$
+$LK,"DOCEG_HAS_ARG",A="FL:::/Kernel/KernelA.HPP,1027"$
 $LK,"TSSNew",A="FL:::/Kernel/MultiProc.CPP.Z,76",BI=126$
 $LK,"SYS_PROGRESS1_DESC",A="FL:::/Kernel/KStart.CPP.Z,210"$
 $LK,"LBtr",A="FL:::/Kernel/KernelB.HPP,24"$
-$LK,"FStf_DISABLE",A="FL:::/Kernel/KernelA.HPP,2669"$
-$LK,"HTT_OPCODE",A="FL:::/Kernel/KernelA.HPP,689"$
-$LK,"HTt_OPCODE",A="FL:::/Kernel/KernelA.HPP,659"$
+$LK,"FStf_DISABLE",A="FL:::/Kernel/KernelA.HPP,2688"$
+$LK,"HTT_OPCODE",A="FL:::/Kernel/KernelA.HPP,690"$
+$LK,"HTt_OPCODE",A="FL:::/Kernel/KernelA.HPP,660"$
 $LK,"CDATE_YEAR_DAYS_INT",A="FL:::/Kernel/KernelA.HPP,182"$
 $LK,"FAT32AllocContiguousClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,514",BI=127$
 $LK,"LBts",A="FL:::/Kernel/KernelB.HPP,26"$
@@ -549,175 +550,175 @@ $LK,"ArcEntryGet",A="FL:::/Kernel/Compress.CPP.Z,100"$
 $LK,"_LOG10",A="FL:::/Kernel/KMathA.CPP.Z,592"$
 $LK,"Adam",A="FL:::/Kernel/SrvCmd.CPP.Z,407",BI=128$
 $LK,"CTryStk",A="FL:::/Kernel/KExcept.CPP.Z,54"$
-$LK,"DCF_PALETTE",A="FL:::/Kernel/KernelA.HPP,3600"$
+$LK,"DCF_PALETTE",A="FL:::/Kernel/KernelA.HPP,3619"$
 $LK,"set_bits_table",A="FL:::/Kernel/KGlbls.CPP.Z,13"$
-$LK,"KBD_CTRL",A="FL:::/Kernel/KernelA.HPP,2972"$
-$LK,"HTt_FUN",A="FL:::/Kernel/KernelA.HPP,654"$
-$LK,"RS_ATTR_LONG_NAME",A="FL:::/Kernel/KernelA.HPP,2508"$
-$LK,"TK_XOR_XOR",A="FL:::/Kernel/KernelA.HPP,2066"$
-$LK,"DOCEf_HOLD",A="FL:::/Kernel/KernelA.HPP,1093"$
-$LK,"DOCEF_HOLD",A="FL:::/Kernel/KernelA.HPP,1009"$
+$LK,"KBD_CTRL",A="FL:::/Kernel/KernelA.HPP,2991"$
+$LK,"HTt_FUN",A="FL:::/Kernel/KernelA.HPP,655"$
+$LK,"RS_ATTR_LONG_NAME",A="FL:::/Kernel/KernelA.HPP,2527"$
+$LK,"TK_XOR_XOR",A="FL:::/Kernel/KernelA.HPP,2086"$
+$LK,"DOCEf_HOLD",A="FL:::/Kernel/KernelA.HPP,1097"$
+$LK,"DOCEF_HOLD",A="FL:::/Kernel/KernelA.HPP,1011"$
 $LK,"KDInputFilterPutKey",A="FL:::/Kernel/KeyDev.CPP.Z,106",BI=129$
 $LK,"GetOutOfDollar",A="FL:::/Kernel/StrB.CPP.Z,75",BI=130$
-$LK,"DOC_COLOR_ALT_TEXT",A="FL:::/Kernel/KernelA.HPP,1125"$
-$LK,"MBR_PT_FAT32a",A="FL:::/Kernel/KernelA.HPP,2672"$
+$LK,"DOC_COLOR_ALT_TEXT",A="FL:::/Kernel/KernelA.HPP,1131"$
+$LK,"MBR_PT_FAT32a",A="FL:::/Kernel/KernelA.HPP,2691"$
 $LK,"DbgHelp",A="FL:::/Kernel/KDbg.CPP.Z,498",BI=131$
 $LK,"_FLOOR",A="FL:::/Kernel/KMathA.CPP.Z,420"$
-$LK,"MBR_PT_FAT32b",A="FL:::/Kernel/KernelA.HPP,2673"$
-$LK,"MBR_PT_FAT32c",A="FL:::/Kernel/KernelA.HPP,2674"$
+$LK,"MBR_PT_FAT32b",A="FL:::/Kernel/KernelA.HPP,2692"$
+$LK,"MBR_PT_FAT32c",A="FL:::/Kernel/KernelA.HPP,2693"$
 $LK,"D3Dist",A="FL:::/Kernel/KernelB.HPP,155"$
-$LK,"MBR_PT_FAT32d",A="FL:::/Kernel/KernelA.HPP,2675"$
-$LK,"TK_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HPP,2087"$
-$LK,"LMF_EXACT",A="FL:::/Kernel/KernelA.HPP,3785"$
-$LK,"MBR_PT_FAT32e",A="FL:::/Kernel/KernelA.HPP,2676"$
-$LK,"FSt_NTFS",A="FL:::/Kernel/KernelA.HPP,2664"$
-$LK,"MBR_PT_FAT32f",A="FL:::/Kernel/KernelA.HPP,2677"$
-$LK,"CM_MAX_CONSTS",A="FL:::/Kernel/KernelA.HPP,1682"$
-$LK,"DOCEF_TAG_CB",A="FL:::/Kernel/KernelA.HPP,988"$
+$LK,"MBR_PT_FAT32d",A="FL:::/Kernel/KernelA.HPP,2694"$
+$LK,"TK_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HPP,2107"$
+$LK,"LMF_EXACT",A="FL:::/Kernel/KernelA.HPP,3804"$
+$LK,"MBR_PT_FAT32e",A="FL:::/Kernel/KernelA.HPP,2695"$
+$LK,"FSt_NTFS",A="FL:::/Kernel/KernelA.HPP,2683"$
+$LK,"MBR_PT_FAT32f",A="FL:::/Kernel/KernelA.HPP,2696"$
+$LK,"CM_MAX_CONSTS",A="FL:::/Kernel/KernelA.HPP,1700"$
+$LK,"DOCEF_TAG_CB",A="FL:::/Kernel/KernelA.HPP,990"$
 $LK,"Str2Date",A="FL:::/Kernel/StrScan.CPP.Z,138",BI=132$
-$LK,"ICF_PASS_TRACE",A="FL:::/Kernel/KernelA.HPP,1587"$
-$LK,"DOCEf_TAG_CB",A="FL:::/Kernel/KernelA.HPP,1074"$
-$LK,"HTt_REG",A="FL:::/Kernel/KernelA.HPP,660"$
+$LK,"ICF_PASS_TRACE",A="FL:::/Kernel/KernelA.HPP,1601"$
+$LK,"DOCEf_TAG_CB",A="FL:::/Kernel/KernelA.HPP,1078"$
+$LK,"HTt_REG",A="FL:::/Kernel/KernelA.HPP,661"$
 $LK,"ChkPtr",A="FL:::/Kernel/KDbg.CPP.Z,1",BI=133$
 $LK,"TaskWait",A="FL:::/Kernel/SrvCmd.CPP.Z,220",BI=134$
-$LK,"_R10",A="FL:::/Kernel/KernelA.HPP,3407"$
+$LK,"_R10",A="FL:::/Kernel/KernelA.HPP,3426"$
 $LK,"SYS_MEM_INIT_VAL",A="FL:::/Home/Temp.TXT.Z,1"$
-$LK,"_R11",A="FL:::/Kernel/KernelA.HPP,3408"$
-$LK,"WMG_FPS",A="FL:::/Kernel/KernelA.HPP,1457"$
-$LK,"BOOT_RAM_LIMIT",A="FL:::/Kernel/KernelA.HPP,3859"$
-$LK,"_R12",A="FL:::/Kernel/KernelA.HPP,3409"$
+$LK,"_R11",A="FL:::/Kernel/KernelA.HPP,3427"$
+$LK,"WMG_FPS",A="FL:::/Kernel/KernelA.HPP,1463"$
+$LK,"BOOT_RAM_LIMIT",A="FL:::/Kernel/KernelA.HPP,3878"$
+$LK,"_R12",A="FL:::/Kernel/KernelA.HPP,3428"$
 $LK,"SK_CLUSTER",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,90"$
 $LK,"SysGetI64",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,160",BI=135$
 $LK,"MemSetI64",A="FL:::/Kernel/KernelB.HPP,179"$
-$LK,"_R13",A="FL:::/Kernel/KernelA.HPP,3410"$
-$LK,"DEF_NOT_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2526"$
+$LK,"_R13",A="FL:::/Kernel/KernelA.HPP,3429"$
+$LK,"DEF_NOT_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2545"$
 $LK,"SYS_BOOT_PATCH_TABLE_BASE",A="FL:::/Kernel/KStart.CPP.Z,25"$
-$LK,"_R14",A="FL:::/Kernel/KernelA.HPP,3411"$
-$LK,"CTRLT_WIN_VSCROLL",A="FL:::/Kernel/KernelA.HPP,3060"$
-$LK,"TK_LESS_EQU",A="FL:::/Kernel/KernelA.HPP,2062"$
+$LK,"_R14",A="FL:::/Kernel/KernelA.HPP,3430"$
+$LK,"CTRLT_WIN_VSCROLL",A="FL:::/Kernel/KernelA.HPP,3079"$
+$LK,"TK_LESS_EQU",A="FL:::/Kernel/KernelA.HPP,2082"$
 $LK,"ODEF_HAS_MASSES",A="FL:::/Kernel/KernelA.HPP,238"$
-$LK,"_R15",A="FL:::/Kernel/KernelA.HPP,3412"$
-$LK,"FUG_FILES_FIND",A="FL:::/Kernel/KernelA.HPP,2598"$
+$LK,"_R15",A="FL:::/Kernel/KernelA.HPP,3431"$
+$LK,"FUG_FILES_FIND",A="FL:::/Kernel/KernelA.HPP,2617"$
 $LK,"TRUE",A="FL:::/Kernel/KernelA.HPP,18"$
-$LK,"FSt_NULL",A="FL:::/Kernel/KernelA.HPP,2658"$
+$LK,"FSt_NULL",A="FL:::/Kernel/KernelA.HPP,2677"$
 $LK,"chars_bmp_zero_tab_ff_cr_nl_cursor",A="FL:::/Kernel/StrA.CPP.Z,365"$
-$LK,"CEdFindText",A="FL:::/Kernel/KernelA.HPP,1214"$
-$LK,"MEM_FREE_PAGE_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2851"$
+$LK,"CEdFindText",A="FL:::/Kernel/KernelA.HPP,1220"$
+$LK,"MEM_FREE_PAGE_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2870"$
 $LK,"LDF_NO_ABSS",A="FL:::/Kernel/KernelA.HPP,365"$
-$LK,"DOCEf_LINK",A="FL:::/Kernel/KernelA.HPP,1078"$
-$LK,"DOCEF_LINK",A="FL:::/Kernel/KernelA.HPP,992"$
+$LK,"DOCEf_LINK",A="FL:::/Kernel/KernelA.HPP,1082"$
+$LK,"DOCEF_LINK",A="FL:::/Kernel/KernelA.HPP,994"$
 $LK,"D3Copy",A="FL:::/Kernel/KernelB.HPP,151"$
 $LK,"Beep",A="FL:::/Kernel/KMisc.CPP.Z,190",BI=136$
 $LK,"_STRNICMP",A="FL:::/Kernel/StrA.CPP.Z,183"$
 $LK,"_MEMSET_I64",A="FL:::/Kernel/KUtils.CPP.Z,42"$
-$LK,"CH_SPACE",A="FL:::/Kernel/KernelA.HPP,3493"$
-$LK,"AAT_SUB_U8",A="FL:::/Kernel/KernelA.HPP,1946"$
-$LK,"IET_IMM64_EXPORT",A="FL:::/Kernel/KernelA.HPP,406"$
-$LK,"IET_IMM32_EXPORT",A="FL:::/Kernel/KernelA.HPP,404"$
+$LK,"CH_SPACE",A="FL:::/Kernel/KernelA.HPP,3512"$
+$LK,"AAT_SUB_U8",A="FL:::/Kernel/KernelA.HPP,1966"$
+$LK,"IET_IMM64_EXPORT",A="FL:::/Kernel/KernelA.HPP,407"$
+$LK,"IET_IMM32_EXPORT",A="FL:::/Kernel/KernelA.HPP,405"$
 $LK,"sys_gdt",A="FL:::/Kernel/KernelB.HPP,272"$
 $LK,"Call",A="FL:::/Kernel/KernelB.HPP,43"$
-$LK,"SYS_FIXED_AREA",A="FL:::/Kernel/KernelA.HPP,3446"$
-$LK,"ICF_CODE_FINAL",A="FL:::/Kernel/KernelA.HPP,1582"$
+$LK,"SYS_FIXED_AREA",A="FL:::/Kernel/KernelA.HPP,3465"$
+$LK,"ICF_CODE_FINAL",A="FL:::/Kernel/KernelA.HPP,1597"$
 $LK,"SYS_PROGRESS2_DESC",A="FL:::/Kernel/KStart.CPP.Z,213"$
 $LK,"BlkDevLockFwdingSet",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,1",BI=137$
 $LK,"InU8",A="FL:::/Kernel/KernelB.HPP,76"$
-$LK,"ARGT_SREG",A="FL:::/Kernel/KernelA.HPP,1903"$
-$LK,"CMemUnused",A="FL:::/Kernel/KernelA.HPP,2787"$
-$LK,"IEF_48_REX",A="FL:::/Kernel/KernelA.HPP,1712"$
-$LK,"RECALCt_TO_SCREEN",A="FL:::/Kernel/KernelA.HPP,1337"$
+$LK,"ARGT_SREG",A="FL:::/Kernel/KernelA.HPP,1922"$
+$LK,"CMemUnused",A="FL:::/Kernel/KernelA.HPP,2806"$
+$LK,"IEF_48_REX",A="FL:::/Kernel/KernelA.HPP,1730"$
+$LK,"RECALCt_TO_SCREEN",A="FL:::/Kernel/KernelA.HPP,1343"$
 $LK,"ã",A="FL:::/Kernel/KernelA.HPP,49"$
 $LK,"Suspend",A="FL:::/Kernel/KTask.CPP.Z,45",BI=138$
 $LK,"ClampU64",A="FL:::/Kernel/KernelB.HPP,126"$
-$LK,"ARC_MAX_BITS",A="FL:::/Kernel/KernelA.HPP,3720"$
-$LK,"TK_MOD_EQU",A="FL:::/Kernel/KernelA.HPP,2083"$
+$LK,"ARC_MAX_BITS",A="FL:::/Kernel/KernelA.HPP,3739"$
+$LK,"TK_MOD_EQU",A="FL:::/Kernel/KernelA.HPP,2103"$
 $LK,"FunSegFind",A="FL:::/Kernel/FunSeg.CPP.Z,10",BI=139$
 $LK,"Define",A="FL:::/Kernel/KDefine.CPP.Z,49",BI=140$
-$LK,"CInstruction",A="FL:::/Kernel/KernelA.HPP,1723"$
 $LK,"FAT32Fmt",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,60",BI=141$
 $LK,"SrvCmdLine",A="FL:::/Kernel/KTask.CPP.Z,372",BI=142$
 $LK,"HashTableNew",A="FL:::/Kernel/KHashB.CPP.Z,50",BI=143$
-$LK,"DOCT_INDENT",A="FL:::/Kernel/KernelA.HPP,907"$
+$LK,"DOCT_INDENT",A="FL:::/Kernel/KernelA.HPP,909"$
 $LK,"_ARG",A="FL:::/Kernel/KMathA.CPP.Z,366"$
-$LK,"COLORROP_NO_ROP0_MASK",A="FL:::/Kernel/KernelA.HPP,2959"$
+$LK,"COLORROP_NO_ROP0_MASK",A="FL:::/Kernel/KernelA.HPP,2978"$
 $LK,"CDualBuf",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,41"$
 $LK,"TaskText",A="FL:::/Kernel/SrvCmd.CPP.Z,75",BI=144$
-$LK,"COLORROP_BITS",A="FL:::/Kernel/KernelA.HPP,2960"$
-$LK,"BROWN",A="FL:::/Kernel/KernelA.HPP,2935"$
+$LK,"COLORROP_BITS",A="FL:::/Kernel/KernelA.HPP,2979"$
+$LK,"BROWN",A="FL:::/Kernel/KernelA.HPP,2954"$
 $LK,"Da",A="FL:::/Kernel/KDbg.CPP.Z,209",BI=145$
-$LK,"SUF_REM_TRAILING",A="FL:::/Kernel/KernelA.HPP,3767"$
+$LK,"SUF_REM_TRAILING",A="FL:::/Kernel/KernelA.HPP,3786"$
 $LK,"Cd",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,1",BI=146$
 $LK,"Ceil",A="FL:::/Kernel/KernelB.HPP,122"$
-$LK,"DOCEF_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HPP,1014"$
-$LK,"CCF_DONT_FREE_BUF",A="FL:::/Kernel/KernelA.HPP,2106"$
-$LK,"IET_ZEROED_CODE_HEAP",A="FL:::/Kernel/KernelA.HPP,409"$
+$LK,"DOCEF_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HPP,1016"$
+$LK,"CCF_DONT_FREE_BUF",A="FL:::/Kernel/KernelA.HPP,2126"$
+$LK,"IET_ZEROED_CODE_HEAP",A="FL:::/Kernel/KernelA.HPP,410"$
 $LK,"SrcEdLink",A="FL:::/Kernel/FunSeg.CPP.Z,238",BI=147$
 $LK,"GetRBP",A="FL:::/Kernel/KernelB.HPP,248"$
-$LK,"GREEN",A="FL:::/Kernel/KernelA.HPP,2931"$
-$LK,"RECALCF_TO_HTML",A="FL:::/Kernel/KernelA.HPP,1342"$
+$LK,"GREEN",A="FL:::/Kernel/KernelA.HPP,2950"$
+$LK,"RECALCF_TO_HTML",A="FL:::/Kernel/KernelA.HPP,1348"$
 $LK,"ì",A="FL:::/Kernel/KernelA.HPP,47"$
 $LK,"ON",A="FL:::/Kernel/KernelA.HPP,20"$
 $LK,"_LXCHG_I64",A="FL:::/Kernel/KUtils.CPP.Z,217"$
-$LK,"DOCEt_BLINK",A="FL:::/Kernel/KernelA.HPP,947"$
-$LK,"DOCET_BLINK",A="FL:::/Kernel/KernelA.HPP,941"$
+$LK,"MDG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HPP,1584"$
+$LK,"DOCEt_BLINK",A="FL:::/Kernel/KernelA.HPP,949"$
+$LK,"DOCET_BLINK",A="FL:::/Kernel/KernelA.HPP,943"$
 $LK,"sys_clipboard_doc",A="FL:::/Kernel/KGlbls.CPP.Z,6"$
-$LK,"CCF_NO_DEFINES",A="FL:::/Kernel/KernelA.HPP,2107"$
-$LK,"DOCEf_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HPP,1098"$
+$LK,"CCF_NO_DEFINES",A="FL:::/Kernel/KernelA.HPP,2127"$
+$LK,"DOCEf_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HPP,1102"$
 $LK,"CGDTEntry",A="FL:::/Kernel/KernelA.HPP,328"$
-$LK,"ARGT_XMM0",A="FL:::/Kernel/KernelA.HPP,1923"$
+$LK,"ARGT_XMM0",A="FL:::/Kernel/KernelA.HPP,1942"$
 $LK,"_TASK_END_NOW",A="FL:::/Kernel/Sched.CPP.Z,162"$
-$LK,"HTT_INVALID",A="FL:::/Kernel/KernelA.HPP,677"$
+$LK,"HTT_INVALID",A="FL:::/Kernel/KernelA.HPP,678"$
 $LK,"_REP_OUT_U8",A="FL:::/Kernel/KUtils.CPP.Z,308"$
 $LK,"GetRAX",A="FL:::/Kernel/KernelB.HPP,247"$
 $LK,"sys_boot_src",A="FL:::/Kernel/KernelB.HPP,39"$
-$LK,"SCF_DELETE",A="FL:::/Kernel/KernelA.HPP,3525"$
-$LK,"SCf_DELETE",A="FL:::/Kernel/KernelA.HPP,3510"$
-$LK,"ARGT_M32N32",A="FL:::/Kernel/KernelA.HPP,1889"$
-$LK,"ARGT_M16N16",A="FL:::/Kernel/KernelA.HPP,1888"$
-$LK,"ARGT_M16N32",A="FL:::/Kernel/KernelA.HPP,1887"$
-$LK,"SV_STI_LIKE",A="FL:::/Kernel/KernelA.HPP,1721"$
-$LK,"ICG_NO_CVT_MASK",A="FL:::/Kernel/KernelA.HPP,1604"$
-$LK,"RECALCG_MASK",A="FL:::/Kernel/KernelA.HPP,1338"$
-$LK,"HTF_PRIVATE",A="FL:::/Kernel/KernelA.HPP,697"$
+$LK,"SCF_DELETE",A="FL:::/Kernel/KernelA.HPP,3544"$
+$LK,"SCf_DELETE",A="FL:::/Kernel/KernelA.HPP,3529"$
+$LK,"ARGT_M32N32",A="FL:::/Kernel/KernelA.HPP,1908"$
+$LK,"ARGT_M16N16",A="FL:::/Kernel/KernelA.HPP,1907"$
+$LK,"ARGT_M16N32",A="FL:::/Kernel/KernelA.HPP,1906"$
+$LK,"SV_STI_LIKE",A="FL:::/Kernel/KernelA.HPP,1739"$
+$LK,"ICG_NO_CVT_MASK",A="FL:::/Kernel/KernelA.HPP,1618"$
+$LK,"RECALCG_MASK",A="FL:::/Kernel/KernelA.HPP,1344"$
+$LK,"HTF_PRIVATE",A="FL:::/Kernel/KernelA.HPP,698"$
 $LK,"ESTIMATED_MISC_ALLOCS",A="FL:::/Kernel/Mem/PageTables.CPP.Z,124"$
 $LK,"Pow10I64",A="FL:::/Kernel/KMathB.CPP.Z,26",BI=148$
-$LK,"IEF_STI_LIKE",A="FL:::/Kernel/KernelA.HPP,1715"$
-$LK,"HTf_PRIVATE",A="FL:::/Kernel/KernelA.HPP,667"$
+$LK,"IEF_STI_LIKE",A="FL:::/Kernel/KernelA.HPP,1733"$
+$LK,"HTf_PRIVATE",A="FL:::/Kernel/KernelA.HPP,668"$
 $LK,"Dm",A="FL:::/Kernel/KDbg.CPP.Z,204",BI=149$
-$LK,"CCF_EXE_BLK",A="FL:::/Kernel/KernelA.HPP,2118"$
+$LK,"CCF_EXE_BLK",A="FL:::/Kernel/KernelA.HPP,2138"$
 $LK,"CQueD3I32",A="FL:::/Kernel/KernelA.HPP,130"$
-$LK,"BDf_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2622"$
-$LK,"BDF_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2612"$
-$LK,"DEF_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2525"$
-$LK,"COLOR_INVALID",A="FL:::/Kernel/KernelA.HPP,2947"$
+$LK,"BDf_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2641"$
+$LK,"BDF_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2631"$
+$LK,"DEF_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2544"$
+$LK,"COLOR_INVALID",A="FL:::/Kernel/KernelA.HPP,2966"$
 $LK,"DftExt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,202",BI=150$
 $LK,"Bt",A="FL:::/Kernel/KernelB.HPP,14"$
-$LK,"OPTf_EXTERNS_TO_IMPORTS",A="FL:::/Kernel/KernelA.HPP,1531"$
+$LK,"OPTf_EXTERNS_TO_IMPORTS",A="FL:::/Kernel/KernelA.HPP,1537"$
 $LK,"Dr",A="FL:::/Kernel/KDbg.CPP.Z,328",BI=151$
 $LK,"CPUId",A="FL:::/Kernel/KernelB.HPP,258"$
 $LK,"FilesFind2",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,1",BI=152$
 $LK,"TaskKillDying",A="FL:::/Kernel/KTask.CPP.Z,496",BI=153$
 $LK,"scan_code_map",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,157"$
 $LK,"MSize2",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,385"$
-$LK,"REGG_C_TEMP_CLOBBERED",A="FL:::/Kernel/KernelA.HPP,1771"$
 $LK,"MemSetU32",A="FL:::/Kernel/KernelB.HPP,183"$
 $LK,"MemSetU16",A="FL:::/Kernel/KernelB.HPP,181"$
 $LK,"DirTreeDel",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,36",BI=154$
 $LK,"Fs",A="FL:::/Kernel/KernelB.HPP,282"$
-$LK,"SCF_CAPS",A="FL:::/Kernel/KernelA.HPP,3519"$
-$LK,"SCf_CAPS",A="FL:::/Kernel/KernelA.HPP,3504"$
-$LK,"SYS_SEMA_FAR_CALL32",A="FL:::/Kernel/KernelA.HPP,601"$
-$LK,"ACD_DEF_CHAR",A="FL:::/Kernel/KernelA.HPP,1507"$
+$LK,"SCF_CAPS",A="FL:::/Kernel/KernelA.HPP,3538"$
+$LK,"SCf_CAPS",A="FL:::/Kernel/KernelA.HPP,3523"$
+$LK,"SYS_SEMA_FAR_CALL32",A="FL:::/Kernel/KernelA.HPP,602"$
+$LK,"ACD_DEF_CHAR",A="FL:::/Kernel/KernelA.HPP,1513"$
 $LK,"Gs",A="FL:::/Kernel/KernelB.HPP,240"$
 $LK,"SYS_PROGRESS3_DESC",A="FL:::/Kernel/KStart.CPP.Z,216"$
-$LK,"RWF_SCROLL",A="FL:::/Kernel/KernelA.HPP,3575"$
+$LK,"RWF_SCROLL",A="FL:::/Kernel/KernelA.HPP,3594"$
+$LK,"REGG_LOCAL_VARS",A="FL:::/Kernel/KernelA.HPP,1791"$
 $LK,"DrvModelNum",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,263",BI=155$
 $LK,"RepInU8",A="FL:::/Kernel/KernelB.HPP,85"$
-$LK,"MSG_FOCUS",A="FL:::/Kernel/KernelA.HPP,3209"$
+$LK,"MSG_FOCUS",A="FL:::/Kernel/KernelA.HPP,3228"$
 $LK,"IsSysDbg",A="FL:::/Kernel/KMisc.CPP.Z,238",BI=156$
-$LK,"CDbgGlbls",A="FL:::/Kernel/KernelA.HPP,3844"$
+$LK,"CDbgGlbls",A="FL:::/Kernel/KernelA.HPP,3863"$
 $LK,"_TEST_EXCEPT",A="FL:::/Kernel/KExcept.CPP.Z,4"$
 $LK,"_FSTCW",A="FL:::/Kernel/KMathA.CPP.Z,632"$
-$LK,"MSG_IP_R_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3216"$
+$LK,"MSG_IP_R_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3235"$
 $LK,"ScanFlags",A="FL:::/Kernel/StrB.CPP.Z,123",BI=157$
 $LK,"Ln",A="FL:::/Kernel/KernelB.HPP,135"$
 $LK,"INT_WAKE",A="FL:::/Kernel/KInts.CPP.Z,6"$
@@ -728,16 +729,17 @@ $LK,"SYS_MP_CNT_LOCK",A="FL:::/Kernel/KStart.CPP.Z,226"$
 $LK,"SYS_COMPILE_TIME",A="FL:::/Home/Temp.TXT.Z,1"$
 $LK,"GetTSC",A="FL:::/Kernel/KernelB.HPP,285"$
 $LK,"BptR",A="FL:::/Kernel/KDbg.CPP.Z,389",BI=159$
+$LK,"DOCT_MARKER",A="FL:::/Kernel/KernelA.HPP,900"$
 $LK,"BptS",A="FL:::/Kernel/KDbg.CPP.Z,368",BI=160$
 $LK,"_HASH_BUCKET_FIND",A="FL:::/Kernel/KHashA.CPP.Z,158"$
 $LK,"_MHEAP_CTRL",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,368"$
 $LK,"ATAMount",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,239",BI=161$
 $LK,"FifoI64Peek",A="FL:::/Kernel/KDataTypes.CPP.Z,290",BI=162$
 $LK,"_EXP",A="FL:::/Kernel/KMathA.CPP.Z,558"$
-$LK,"SYS_SEMA_SYS_TIMER",A="FL:::/Kernel/KernelA.HPP,591"$
+$LK,"SYS_SEMA_SYS_TIMER",A="FL:::/Kernel/KernelA.HPP,592"$
 $LK,"IET_END",A="FL:::/Kernel/KernelA.HPP,390"$
 $LK,"KbdHandler",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,441",BI=163$
-$LK,"GSF_WITH_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,3761"$
+$LK,"GSF_WITH_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,3780"$
 $LK,"SPF_TRUNCATE",A="FL:::/Kernel/StrPrint.CPP.Z,3"$
 $LK,"SYS_HASH_FIND1",A="FL:::/Kernel/KHashA.CPP.Z,81"$
 $LK,"GetRSP",A="FL:::/Kernel/KernelB.HPP,250"$
@@ -746,248 +748,248 @@ $LK,"ScanKey",A="FL:::/Kernel/SerialDev/Message.CPP.Z,123",BI=164$
 $LK,"MouseDriverInstall",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,222",BI=165$
 $LK,"mouse_last",A="FL:::/Kernel/KGlbls.CPP.Z,27"$
 $LK,"D3DistSqr",A="FL:::/Kernel/KernelB.HPP,157"$
-$LK,"_RDI",A="FL:::/Kernel/KernelA.HPP,3401"$
-$LK,"SV_R_REG",A="FL:::/Kernel/KernelA.HPP,1719"$
-$LK,"TY_IMM",A="FL:::/Kernel/KernelA.HPP,1562"$
+$LK,"_RDI",A="FL:::/Kernel/KernelA.HPP,3420"$
+$LK,"SV_R_REG",A="FL:::/Kernel/KernelA.HPP,1737"$
 $LK,"ATARepExitAllApplications",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,119",BI=166$
 $LK,"CeilI64",A="FL:::/Kernel/KMathB.CPP.Z,62",BI=167$
-$LK,"_RBP",A="FL:::/Kernel/KernelA.HPP,3402"$
-$LK,"CCacheBlk",A="FL:::/Kernel/KernelA.HPP,2718"$
-$LK,"OPTf_WARN_DUP_TYPES",A="FL:::/Kernel/KernelA.HPP,1530"$
+$LK,"_RBP",A="FL:::/Kernel/KernelA.HPP,3421"$
+$LK,"CCacheBlk",A="FL:::/Kernel/KernelA.HPP,2737"$
+$LK,"OPTf_WARN_DUP_TYPES",A="FL:::/Kernel/KernelA.HPP,1536"$
 $LK,"ATAProbe",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,373",BI=168$
 $LK,"_LXCHG_U16",A="FL:::/Kernel/KUtils.CPP.Z,235"$
 $LK,"_LXCHG_U32",A="FL:::/Kernel/KUtils.CPP.Z,226"$
 $LK,"SYS_PROGRESS1",A="FL:::/Kernel/KStart.CPP.Z,208"$
-$LK,"DOCT_FOOTER",A="FL:::/Kernel/KernelA.HPP,906"$
+$LK,"DOCT_FOOTER",A="FL:::/Kernel/KernelA.HPP,908"$
 $LK,"MEM_NUM_E820_ENTRIES",A="FL:::/Kernel/KernelA.HPP,354"$
 $LK,"MPAPICInit",A="FL:::/Kernel/MultiProc.CPP.Z,171",BI=169$
 $LK,"SYS_PROGRESS2",A="FL:::/Kernel/KStart.CPP.Z,211"$
-$LK,"DOCEf_SKIP",A="FL:::/Kernel/KernelA.HPP,1096"$
-$LK,"DOCEF_SKIP",A="FL:::/Kernel/KernelA.HPP,1012"$
+$LK,"DOCEf_SKIP",A="FL:::/Kernel/KernelA.HPP,1100"$
+$LK,"DOCEF_SKIP",A="FL:::/Kernel/KernelA.HPP,1014"$
 $LK,"SPF_COMMA",A="FL:::/Kernel/StrPrint.CPP.Z,4"$
 $LK,"SYS_PROGRESS3",A="FL:::/Kernel/KStart.CPP.Z,214"$
-$LK,"CSrvCtrl",A="FL:::/Kernel/KernelA.HPP,3187"$
+$LK,"CSrvCtrl",A="FL:::/Kernel/KernelA.HPP,3206"$
 $LK,"DirNew",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,1",BI=170$
 $LK,"SYS_PROGRESS4",A="FL:::/Kernel/KStart.CPP.Z,217"$
-$LK,"_RAX",A="FL:::/Kernel/KernelA.HPP,3396"$
+$LK,"_RAX",A="FL:::/Kernel/KernelA.HPP,3415"$
 $LK,"FAT32DirNew",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,576",BI=171$
-$LK,"HTf_RESOLVED",A="FL:::/Kernel/KernelA.HPP,673"$
+$LK,"HTf_RESOLVED",A="FL:::/Kernel/KernelA.HPP,674"$
 $LK,"LinkedLstDel",A="FL:::/Kernel/KDataTypes.CPP.Z,1",BI=172$
 $LK,"Help",A="FL:::/Kernel/StrB.CPP.Z,115",BI=173$
 $LK,"Log2",A="FL:::/Kernel/KernelB.HPP,137"$
-$LK,"_RBX",A="FL:::/Kernel/KernelA.HPP,3397"$
-$LK,"DOCT_HEX_ED",A="FL:::/Kernel/KernelA.HPP,928"$
-$LK,"DOCT_LINK",A="FL:::/Kernel/KernelA.HPP,921"$
+$LK,"_RBX",A="FL:::/Kernel/KernelA.HPP,3416"$
+$LK,"DOCT_HEX_ED",A="FL:::/Kernel/KernelA.HPP,930"$
+$LK,"DOCT_LINK",A="FL:::/Kernel/KernelA.HPP,923"$
 $LK,"_D3_COPY",A="FL:::/Kernel/KMathA.CPP.Z,212"$
 $LK,"PUT_STR",A="FL:::/Kernel/StrA.CPP.Z,58"$
 $LK,"_RET",A="FL:::/Kernel/KUtils.CPP.Z,457"$
-$LK,"_RCX",A="FL:::/Kernel/KernelA.HPP,3398"$
+$LK,"_RCX",A="FL:::/Kernel/KernelA.HPP,3417"$
 $LK,"BIOSTotalMem",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,169",BI=174$
-$LK,"_RDX",A="FL:::/Kernel/KernelA.HPP,3399"$
-$LK,"RLF_FULL_HEAP",A="FL:::/Kernel/KernelA.HPP,459"$
-$LK,"RLf_FULL_HEAP",A="FL:::/Kernel/KernelA.HPP,440"$
+$LK,"_RDX",A="FL:::/Kernel/KernelA.HPP,3418"$
+$LK,"RLF_FULL_HEAP",A="FL:::/Kernel/KernelA.HPP,460"$
+$LK,"RLf_FULL_HEAP",A="FL:::/Kernel/KernelA.HPP,441"$
 $LK,"ScanMsg",A="FL:::/Kernel/SerialDev/Message.CPP.Z,37",BI=175$
 $LK,"SYS_PROGRESS4_DESC",A="FL:::/Kernel/KStart.CPP.Z,219"$
-$LK,"__FILE__",A="FL:::/Kernel/KernelA.HPP,2007"$
-$LK,"TY_REG",A="FL:::/Kernel/KernelA.HPP,1563"$
+$LK,"__FILE__",A="FL:::/Kernel/KernelA.HPP,2027"$
 $LK,"CDate",A="FL:::/Kernel/KernelA.HPP,184"$
 $LK,"CLFlush",A="FL:::/Kernel/KernelB.HPP,275"$
 $LK,"SYS_HEAP_DBG_FLAG",A="FL:::/Kernel/KStart.CPP.Z,199"$
-$LK,"_RIP",A="FL:::/Kernel/KernelA.HPP,3404"$
-$LK,"IEF_REX_ONLY_R8_R15",A="FL:::/Kernel/KernelA.HPP,1713"$
-$LK,"DOCSS_SINGLE_QUOTE",A="FL:::/Kernel/KernelA.HPP,1119"$
-$LK,"KBD_PORT",A="FL:::/Kernel/KernelA.HPP,2971"$
-$LK,"NUM_COLORS",A="FL:::/Kernel/KernelA.HPP,2946"$
+$LK,"_RIP",A="FL:::/Kernel/KernelA.HPP,3423"$
+$LK,"IEF_REX_ONLY_R8_R15",A="FL:::/Kernel/KernelA.HPP,1731"$
+$LK,"MDF_IMM",A="FL:::/Kernel/KernelA.HPP,1577"$
+$LK,"DOCSS_SINGLE_QUOTE",A="FL:::/Kernel/KernelA.HPP,1125"$
+$LK,"KBD_PORT",A="FL:::/Kernel/KernelA.HPP,2990"$
+$LK,"NUM_COLORS",A="FL:::/Kernel/KernelA.HPP,2965"$
 $LK,"ac",A="FL:::/Kernel/KGlbls.CPP.Z,18"$
 $LK,"_FSTSW",A="FL:::/Kernel/KMathA.CPP.Z,641"$
-$LK,"ARGT_IMM32",A="FL:::/Kernel/KernelA.HPP,1863"$
-$LK,"ARGT_IMM16",A="FL:::/Kernel/KernelA.HPP,1862"$
+$LK,"ARGT_IMM32",A="FL:::/Kernel/KernelA.HPP,1882"$
+$LK,"ARGT_IMM16",A="FL:::/Kernel/KernelA.HPP,1881"$
 $LK,"MouseSpeedSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,114",BI=176$
 $LK,"Name2ParentDirCluster",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,54",BI=177$
 $LK,"Free",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,383"$
-$LK,"DOCEf_AUX_STR",A="FL:::/Kernel/KernelA.HPP,1047"$
-$LK,"DOCEF_AUX_STR",A="FL:::/Kernel/KernelA.HPP,961"$
+$LK,"DOCEf_AUX_STR",A="FL:::/Kernel/KernelA.HPP,1051"$
+$LK,"DOCEF_AUX_STR",A="FL:::/Kernel/KernelA.HPP,963"$
 $LK,"Char2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,201",BI=178$
 $LK,"Mem512Free",A="FL:::/Kernel/Mem/Mem512.CPP.Z,83",BI=179$
 $LK,"blkdev",A="FL:::/Kernel/KGlbls.CPP.Z,19"$
-$LK,"TK_NUM_TK",A="FL:::/Kernel/KernelA.HPP,2088"$
-$LK,"TY_SIB",A="FL:::/Kernel/KernelA.HPP,1565"$
-$LK,"CWinMgrGlbls",A="FL:::/Kernel/KernelA.HPP,1459"$
-$LK,"DOCEf_TREE",A="FL:::/Kernel/KernelA.HPP,1094"$
-$LK,"DOCEF_TREE",A="FL:::/Kernel/KernelA.HPP,1010"$
+$LK,"TK_NUM_TK",A="FL:::/Kernel/KernelA.HPP,2108"$
+$LK,"CWinMgrGlbls",A="FL:::/Kernel/KernelA.HPP,1465"$
+$LK,"DOCEf_TREE",A="FL:::/Kernel/KernelA.HPP,1098"$
+$LK,"DOCEF_TREE",A="FL:::/Kernel/KernelA.HPP,1012"$
 $LK,"MouseUpdatePre",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,124",BI=180$
 $LK,"ISO1FileFind",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,130",BI=181$
-$LK,"TASK_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3276"$
+$LK,"TASK_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3295"$
 $LK,"SysDefinesLoad",A="FL:::/Kernel/KDefine.CPP.Z,97",BI=182$
 $LK,"Mem512TaskAlloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,114",BI=183$
-$LK,"MEM_MAPPED_SPACE",A="FL:::/Kernel/KernelA.HPP,3439"$
+$LK,"MEM_MAPPED_SPACE",A="FL:::/Kernel/KernelA.HPP,3458"$
 $LK,"D3Norm",A="FL:::/Kernel/KernelB.HPP,164"$
 $LK,"_POW",A="FL:::/Kernel/KMathA.CPP.Z,515"$
-$LK,"MSG_KEY_DOWN",A="FL:::/Kernel/KernelA.HPP,3198"$
-$LK,"ARGT_IMM64",A="FL:::/Kernel/KernelA.HPP,1864"$
-$LK,"TASK_HASH_TABLE_SIZE",A="FL:::/Kernel/KernelA.HPP,2861"$
-$LK,"DOCT_BUTTON",A="FL:::/Kernel/KernelA.HPP,922"$
+$LK,"MSG_KEY_DOWN",A="FL:::/Kernel/KernelA.HPP,3217"$
+$LK,"ARGT_IMM64",A="FL:::/Kernel/KernelA.HPP,1883"$
+$LK,"RTG_MASK",A="FL:::/Kernel/KernelA.HPP,1566"$
+$LK,"TASK_HASH_TABLE_SIZE",A="FL:::/Kernel/KernelA.HPP,2880"$
+$LK,"DOCT_BUTTON",A="FL:::/Kernel/KernelA.HPP,924"$
 $LK,"drv_text_attr",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,279"$
 $LK,"PUT_HEX_U8",A="FL:::/Kernel/StrA.CPP.Z,44"$
-$LK,"_RSI",A="FL:::/Kernel/KernelA.HPP,3400"$
-$LK,"CTRLF_CAPTURE_RIGHT_IP",A="FL:::/Kernel/KernelA.HPP,3066"$
+$LK,"_RSI",A="FL:::/Kernel/KernelA.HPP,3419"$
+$LK,"CTRLF_CAPTURE_RIGHT_IP",A="FL:::/Kernel/KernelA.HPP,3085"$
 $LK,"CPUStructInit",A="FL:::/Kernel/MultiProc.CPP.Z,116",BI=184$
-$LK,"WIf_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1446"$
-$LK,"WIF_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1421"$
-$LK,"CIntermediateCode",A="FL:::/Kernel/KernelA.HPP,1633"$
-$LK,"DOC_COLOR_ANCHOR",A="FL:::/Kernel/KernelA.HPP,1128"$
+$LK,"WIf_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1452"$
+$LK,"WIF_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1427"$
+$LK,"CIntermediateCode",A="FL:::/Kernel/KernelA.HPP,1653"$
+$LK,"MDF_REG",A="FL:::/Kernel/KernelA.HPP,1578"$
+$LK,"DOC_COLOR_ANCHOR",A="FL:::/Kernel/KernelA.HPP,1134"$
 $LK,"Str2ColorU32",A="FL:::/Kernel/KDefine.CPP.Z,201",BI=185$
 $LK,"Str2ColorU16",A="FL:::/Kernel/KDefine.CPP.Z,157",BI=186$
 $LK,"LinkedLstCnt",A="FL:::/Kernel/KDataTypes.CPP.Z,21",BI=187$
 $LK,"Auto",A="FL:::/Kernel/SrvCmd.CPP.Z,483",BI=188$
-$LK,"CTRLT_VIEWING_ANGLES",A="FL:::/Kernel/KernelA.HPP,3061"$
-$LK,"DOCEf_QUIT",A="FL:::/Kernel/KernelA.HPP,1080"$
-$LK,"DOCEF_QUIT",A="FL:::/Kernel/KernelA.HPP,994"$
+$LK,"CTRLT_VIEWING_ANGLES",A="FL:::/Kernel/KernelA.HPP,3080"$
+$LK,"DOCEf_QUIT",A="FL:::/Kernel/KernelA.HPP,1084"$
+$LK,"DOCEF_QUIT",A="FL:::/Kernel/KernelA.HPP,996"$
 $LK,"Tabs2Spaces",A="FL:::/Kernel/StrB.CPP.Z,1",BI=189$
 $LK,"MaxI64",A="FL:::/Kernel/KernelB.HPP,98"$
 $LK,"SYS_GDT_PTR",A="FL:::/Kernel/KStart.CPP.Z,49"$
-$LK,"_RSP",A="FL:::/Kernel/KernelA.HPP,3403"$
-$LK,"DOCT_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HPP,932"$
+$LK,"_RSP",A="FL:::/Kernel/KernelA.HPP,3422"$
+$LK,"DOCT_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HPP,934"$
 $LK,"FSetCluster",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,100",BI=190$
 $LK,"WinDerivedValsUpdate",A="FL:::/Kernel/Display.CPP.Z,93",BI=191$
 $LK,"fp_update_ctrls",A="FL:::/Kernel/KGlbls.CPP.Z,32"$
-$LK,"DSK_CACHE_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2716"$
-$LK,"RS_ATTR_VOL_ID",A="FL:::/Kernel/KernelA.HPP,2505"$
-$LK,"DOCf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1313"$
-$LK,"DOCF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1276"$
-$LK,"DOCT_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,914"$
+$LK,"DSK_CACHE_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2735"$
+$LK,"RS_ATTR_VOL_ID",A="FL:::/Kernel/KernelA.HPP,2524"$
+$LK,"DOCf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1319"$
+$LK,"DOCF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1282"$
+$LK,"DOCT_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,916"$
 $LK,"IntDivZero",A="FL:::/Kernel/KInts.CPP.Z,143",BI=192$
 $LK,"_SQR",A="FL:::/Kernel/KMathA.CPP.Z,337"$
-$LK,"DISPLAYf_SILENT",A="FL:::/Kernel/KernelA.HPP,3271"$
-$LK,"REGT_R32",A="FL:::/Kernel/KernelA.HPP,736"$
-$LK,"REGT_R16",A="FL:::/Kernel/KernelA.HPP,735"$
-$LK,"IEF_NOT_IN_64_BIT",A="FL:::/Kernel/KernelA.HPP,1711"$
+$LK,"DISPLAYf_SILENT",A="FL:::/Kernel/KernelA.HPP,3290"$
+$LK,"MDF_SIB",A="FL:::/Kernel/KernelA.HPP,1580"$
+$LK,"REGT_R32",A="FL:::/Kernel/KernelA.HPP,737"$
+$LK,"REGT_R16",A="FL:::/Kernel/KernelA.HPP,736"$
+$LK,"IEF_NOT_IN_64_BIT",A="FL:::/Kernel/KernelA.HPP,1729"$
 $LK,"RedSeaFileFind",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,153",BI=193$
 $LK,"SYS_PCIBIOS_SERVICE_DIR",A="FL:::/Kernel/PCIBIOS.CPP.Z,4"$
 $LK,"tS",A="FL:::/Kernel/KMisc.CPP.Z,122",BI=194$
 $LK,"LBEqu",A="FL:::/Kernel/KernelB.HPP,34"$
 $LK,"ArcDetermineCompressionType",A="FL:::/Kernel/Compress.CPP.Z,102",BI=195$
-$LK,"SYS_SEMA_REFRESH_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,597"$
+$LK,"SYS_SEMA_REFRESH_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,598"$
 $LK,"IntInit1",A="FL:::/Kernel/KInts.CPP.Z,173",BI=196$
-$LK,"CH_CURSOR",A="FL:::/Kernel/KernelA.HPP,3487"$
+$LK,"CH_CURSOR",A="FL:::/Kernel/KernelA.HPP,3506"$
 $LK,"IntInit2",A="FL:::/Kernel/KInts.CPP.Z,188",BI=197$
-$LK,"DOCT_CURSOR",A="FL:::/Kernel/KernelA.HPP,898"$
+$LK,"DOCT_CURSOR",A="FL:::/Kernel/KernelA.HPP,899"$
 $LK,"GetKey",A="FL:::/Kernel/SerialDev/Message.CPP.Z,142",BI=198$
-$LK,"ROP_MONO",A="FL:::/Kernel/KernelA.HPP,2916"$
-$LK,"CFAT32DirEntryLong",A="FL:::/Kernel/KernelA.HPP,2372"$
+$LK,"ROP_MONO",A="FL:::/Kernel/KernelA.HPP,2935"$
+$LK,"CFAT32DirEntryLong",A="FL:::/Kernel/KernelA.HPP,2391"$
 $LK,"Kill",A="FL:::/Kernel/KTask.CPP.Z,28",BI=199$
-$LK,"RS_ATTR_FIXED",A="FL:::/Kernel/KernelA.HPP,2515"$
-$LK,"TK_IFDEF",A="FL:::/Kernel/KernelA.HPP,2077"$
-$LK,"REGT_R64",A="FL:::/Kernel/KernelA.HPP,737"$
+$LK,"RS_ATTR_FIXED",A="FL:::/Kernel/KernelA.HPP,2534"$
+$LK,"TK_IFDEF",A="FL:::/Kernel/KernelA.HPP,2097"$
+$LK,"REGT_R64",A="FL:::/Kernel/KernelA.HPP,738"$
 $LK,"SingleUser",A="FL:::/Kernel/KMisc.CPP.Z,255",BI=200$
 $LK,"Date2Struct",A="FL:::/Kernel/KDate.CPP.Z,39",BI=201$
-$LK,"CFile",A="FL:::/Kernel/KernelA.HPP,2758"$
+$LK,"CFile",A="FL:::/Kernel/KernelA.HPP,2777"$
 $LK,"Fault2",A="FL:::/Kernel/KDbg.CPP.Z,595",BI=202$
 $LK,"Load",A="FL:::/Kernel/KLoad.CPP.Z,181",BI=203$
 $LK,"ip",A="FL:::/Kernel/KGlbls.CPP.Z,24"$
-$LK,"CFreeLst",A="FL:::/Kernel/KernelA.HPP,2681"$
-$LK,"DOCEF_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HPP,999"$
-$LK,"CHash",A="FL:::/Kernel/KernelA.HPP,619"$
+$LK,"CFreeLst",A="FL:::/Kernel/KernelA.HPP,2700"$
+$LK,"DOCEF_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HPP,1001"$
+$LK,"CHash",A="FL:::/Kernel/KernelA.HPP,620"$
 $LK,"RedSeaFreeClusters",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,248",BI=204$
 $LK,"Fault3",A="FL:::/Kernel/KDbg.CPP.Z,561",BI=205$
 $LK,"CompressBuf",A="FL:::/Kernel/Compress.CPP.Z,281",BI=206$
 $LK,"chars_bmp_hex_numeric",A="FL:::/Kernel/StrA.CPP.Z,353"$
-$LK,"CCF_NOT_CONST",A="FL:::/Kernel/KernelA.HPP,2115"$
+$LK,"CCF_NOT_CONST",A="FL:::/Kernel/KernelA.HPP,2135"$
 $LK,"CeilU64",A="FL:::/Kernel/KMathB.CPP.Z,41",BI=207$
-$LK,"BPlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2864"$
-$LK,"BDlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2633"$
-$LK,"TK_OR_EQU",A="FL:::/Kernel/KernelA.HPP,2072"$
+$LK,"BPlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2883"$
+$LK,"BDlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2652"$
+$LK,"TK_OR_EQU",A="FL:::/Kernel/KernelA.HPP,2092"$
 $LK,"sys_neg_pows_lst",A="FL:::/Kernel/StrPrint.CPP.Z,214"$
 $LK,"sys_pos_pows_lst",A="FL:::/Kernel/StrPrint.CPP.Z,213"$
 $LK,"MStrPrint",A="FL:::/Kernel/StrPrint.CPP.Z,915",BI=208$
-$LK,"DVlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2655"$
+$LK,"DVlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2674"$
 $LK,"SrcFileName",A="FL:::/Kernel/FunSeg.CPP.Z,199",BI=209$
 $LK,"RawD",A="FL:::/Kernel/KDbg.CPP.Z,234",BI=210$
 $LK,"IsSingleUser",A="FL:::/Kernel/KMisc.CPP.Z,260",BI=211$
 $LK,"adam_task",A="FL:::/Kernel/KGlbls.CPP.Z,8"$
 $LK,"_POW10",A="FL:::/Kernel/KMathA.CPP.Z,524"$
-$LK,"SVCRf_LOCKED",A="FL:::/Kernel/KernelA.HPP,3186"$
-$LK,"BDF_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,2616"$
-$LK,"TY_STK",A="FL:::/Kernel/KernelA.HPP,1569"$
-$LK,"DOCT_CURSOR_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,919"$
-$LK,"SCF_CTRL",A="FL:::/Kernel/KernelA.HPP,3517"$
-$LK,"SCf_CTRL",A="FL:::/Kernel/KernelA.HPP,3502"$
-$LK,"TK_ENDIF",A="FL:::/Kernel/KernelA.HPP,2081"$
-$LK,"RT_UF32",A="FL:::/Kernel/KernelA.HPP,1555"$
-$LK,"CCF_NO_REG_OPT",A="FL:::/Kernel/KernelA.HPP,2116"$
-$LK,"DOCEf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1042"$
-$LK,"DOCEF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1036"$
-$LK,"DOCEt_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,950"$
-$LK,"DOCET_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,944"$
-$LK,"RLf_DOC",A="FL:::/Kernel/KernelA.HPP,446"$
+$LK,"SVCRf_LOCKED",A="FL:::/Kernel/KernelA.HPP,3205"$
+$LK,"BDF_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,2635"$
+$LK,"DOCT_CURSOR_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,921"$
+$LK,"SCF_CTRL",A="FL:::/Kernel/KernelA.HPP,3536"$
+$LK,"SCf_CTRL",A="FL:::/Kernel/KernelA.HPP,3521"$
+$LK,"TK_ENDIF",A="FL:::/Kernel/KernelA.HPP,2101"$
+$LK,"RT_UF32",A="FL:::/Kernel/KernelA.HPP,1561"$
+$LK,"CCF_NO_REG_OPT",A="FL:::/Kernel/KernelA.HPP,2136"$
+$LK,"DOCEf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1046"$
+$LK,"DOCEF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1040"$
+$LK,"DOCEt_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,952"$
+$LK,"DOCET_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,946"$
+$LK,"RLf_DOC",A="FL:::/Kernel/KernelA.HPP,447"$
 $LK,"pi",A="FL:::/Kernel/KernelA.HPP,48"$
-$LK,"ICF_ALTERNATE_TEMPLATE",A="FL:::/Kernel/KernelA.HPP,1597"$
-$LK,"ATTRF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,887"$
-$LK,"ATTRf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,892"$
+$LK,"ATTRF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,888"$
+$LK,"ATTRf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,893"$
 $LK,"KbdMouseVarsInit",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,276",BI=212$
-$LK,"DOCF_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1265"$
-$LK,"RT_MASK",A="FL:::/Kernel/KernelA.HPP,1559"$
-$LK,"SYS_SEMA_UPDATE_WIN_Z_BUF",A="FL:::/Kernel/KernelA.HPP,604"$
+$LK,"DOCF_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1271"$
+$LK,"SYS_SEMA_UPDATE_WIN_Z_BUF",A="FL:::/Kernel/KernelA.HPP,605"$
 $LK,"Exit",A="FL:::/Kernel/KTask.CPP.Z,1",BI=213$
-$LK,"TASKf_BREAK_TO_SHIFT_ESC",A="FL:::/Kernel/KernelA.HPP,3264"$
-$LK,"HTT_KEYWORD",A="FL:::/Kernel/KernelA.HPP,687"$
+$LK,"TASKf_BREAK_TO_SHIFT_ESC",A="FL:::/Kernel/KernelA.HPP,3283"$
+$LK,"HTT_KEYWORD",A="FL:::/Kernel/KernelA.HPP,688"$
 $LK,"CopySingleZ",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,1",BI=214$
-$LK,"DCF_NO_TRANSPARENTS",A="FL:::/Kernel/KernelA.HPP,3601"$
-$LK,"HTt_KEYWORD",A="FL:::/Kernel/KernelA.HPP,657"$
-$LK,"SYS_SEMA_IN_DEBUGGER",A="FL:::/Kernel/KernelA.HPP,593"$
-$LK,"RT_UF64",A="FL:::/Kernel/KernelA.HPP,1557"$
-$LK,"DOCf_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1301"$
+$LK,"DCF_NO_TRANSPARENTS",A="FL:::/Kernel/KernelA.HPP,3620"$
+$LK,"HTt_KEYWORD",A="FL:::/Kernel/KernelA.HPP,658"$
+$LK,"SYS_SEMA_IN_DEBUGGER",A="FL:::/Kernel/KernelA.HPP,594"$
+$LK,"RT_UF64",A="FL:::/Kernel/KernelA.HPP,1563"$
+$LK,"DOCf_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1307"$
 $LK,"GetMsg",A="FL:::/Kernel/SerialDev/Message.CPP.Z,95",BI=215$
-$LK,"CMPCrash",A="FL:::/Kernel/KernelA.HPP,3835"$
-$LK,"MEM_NUM_PML1",A="FL:::/Kernel/KernelA.HPP,3440"$
-$LK,"ROPBF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HPP,2908"$
-$LK,"MEM_NUM_PML2",A="FL:::/Kernel/KernelA.HPP,3441"$
-$LK,"ICF_SHORT_JMP",A="FL:::/Kernel/KernelA.HPP,1584"$
-$LK,"IA32_FS_BASE",A="FL:::/Kernel/KernelA.HPP,518"$
+$LK,"CMPCrash",A="FL:::/Kernel/KernelA.HPP,3854"$
+$LK,"MEM_NUM_PML1",A="FL:::/Kernel/KernelA.HPP,3459"$
+$LK,"ROPBF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HPP,2927"$
+$LK,"MEM_NUM_PML2",A="FL:::/Kernel/KernelA.HPP,3460"$
+$LK,"ICF_SHORT_JMP",A="FL:::/Kernel/KernelA.HPP,1599"$
+$LK,"IA32_FS_BASE",A="FL:::/Kernel/KernelA.HPP,519"$
 $LK,"Rand",A="FL:::/Kernel/KMathB.CPP.Z,122",BI=216$
-$LK,"MEM_NUM_PML3",A="FL:::/Kernel/KernelA.HPP,3442"$
-$LK,"FAT32_ENTRIES_BITS",A="FL:::/Kernel/KernelA.HPP,2385"$
-$LK,"TK_IDENT",A="FL:::/Kernel/KernelA.HPP,2049"$
+$LK,"MEM_NUM_PML3",A="FL:::/Kernel/KernelA.HPP,3461"$
+$LK,"FAT32_ENTRIES_BITS",A="FL:::/Kernel/KernelA.HPP,2404"$
+$LK,"TK_IDENT",A="FL:::/Kernel/KernelA.HPP,2069"$
 $LK,"ArcCompressBuf",A="FL:::/Kernel/Compress.CPP.Z,110",BI=217$
-$LK,"MEM_NUM_PML4",A="FL:::/Kernel/KernelA.HPP,3443"$
+$LK,"MEM_NUM_PML4",A="FL:::/Kernel/KernelA.HPP,3462"$
+$LK,"MDG_REG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HPP,1585"$
 $LK,"ToFileLine",A="FL:::/Kernel/EdLite.CPP.Z,303",BI=218$
 $LK,"D3Unit",A="FL:::/Kernel/KernelB.HPP,168"$
-$LK,"CTRLT_WIN_HSCROLL",A="FL:::/Kernel/KernelA.HPP,3059"$
-$LK,"TK_IFAOT",A="FL:::/Kernel/KernelA.HPP,2079"$
+$LK,"CTRLT_WIN_HSCROLL",A="FL:::/Kernel/KernelA.HPP,3078"$
+$LK,"TK_IFAOT",A="FL:::/Kernel/KernelA.HPP,2099"$
 $LK,"IsDotC",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,31",BI=219$
-$LK,"BDf_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,2626"$
-$LK,"TK_GREATER_EQU",A="FL:::/Kernel/KernelA.HPP,2063"$
-$LK,"CICArg",A="FL:::/Kernel/KernelA.HPP,1610"$
-$LK,"DOCEf_CENTER_X",A="FL:::/Kernel/KernelA.HPP,1068"$
-$LK,"DOCEF_CENTER_X",A="FL:::/Kernel/KernelA.HPP,982"$
-$LK,"SYS_TIMER_FREQ",A="FL:::/Kernel/KernelA.HPP,548"$
+$LK,"BDf_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,2645"$
+$LK,"TK_GREATER_EQU",A="FL:::/Kernel/KernelA.HPP,2083"$
+$LK,"CICArg",A="FL:::/Kernel/KernelA.HPP,1629"$
+$LK,"MDF_STK",A="FL:::/Kernel/KernelA.HPP,1576"$
+$LK,"DOCEf_CENTER_X",A="FL:::/Kernel/KernelA.HPP,1072"$
+$LK,"DOCEF_CENTER_X",A="FL:::/Kernel/KernelA.HPP,984"$
+$LK,"SYS_TIMER_FREQ",A="FL:::/Kernel/KernelA.HPP,549"$
 $LK,"HashTablePurge",A="FL:::/Kernel/KHashB.CPP.Z,107",BI=220$
-$LK,"GR_HEIGHT",A="FL:::/Kernel/KernelA.HPP,3590"$
-$LK,"DOCEf_CENTER_Y",A="FL:::/Kernel/KernelA.HPP,1071"$
-$LK,"DOCEF_CENTER_Y",A="FL:::/Kernel/KernelA.HPP,985"$
+$LK,"GR_HEIGHT",A="FL:::/Kernel/KernelA.HPP,3609"$
+$LK,"DOCEf_CENTER_Y",A="FL:::/Kernel/KernelA.HPP,1075"$
+$LK,"DOCEF_CENTER_Y",A="FL:::/Kernel/KernelA.HPP,987"$
 $LK,"Seed",A="FL:::/Kernel/KMathB.CPP.Z,128",BI=221$
 $LK,"DrvsRelease",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,27",BI=222$
-$LK,"TASKf_FILTER_INPUT",A="FL:::/Kernel/KernelA.HPP,3258"$
-$LK,"DOCEF_REFRESH_DATA",A="FL:::/Kernel/KernelA.HPP,1001"$
-$LK,"DOCf_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HPP,1295"$
-$LK,"DOCF_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HPP,1259"$
-$LK,"SYS_SEMA_FLUSH_VGA_IMAGE",A="FL:::/Kernel/KernelA.HPP,598"$
-$LK,"OPTf_NO_REG_VAR",A="FL:::/Kernel/KernelA.HPP,1533"$
-$LK,"CTRLF_SHOW",A="FL:::/Kernel/KernelA.HPP,3063"$
-$LK,"DOCEf_REFRESH_DATA",A="FL:::/Kernel/KernelA.HPP,1087"$
-$LK,"DOCEf_LEFT_EXP",A="FL:::/Kernel/KernelA.HPP,1050"$
-$LK,"DOCEF_LEFT_EXP",A="FL:::/Kernel/KernelA.HPP,964"$
+$LK,"TASKf_FILTER_INPUT",A="FL:::/Kernel/KernelA.HPP,3277"$
+$LK,"DOCEF_REFRESH_DATA",A="FL:::/Kernel/KernelA.HPP,1003"$
+$LK,"DOCf_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HPP,1301"$
+$LK,"DOCF_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HPP,1265"$
+$LK,"SYS_SEMA_FLUSH_VGA_IMAGE",A="FL:::/Kernel/KernelA.HPP,599"$
+$LK,"OPTf_NO_REG_VAR",A="FL:::/Kernel/KernelA.HPP,1539"$
+$LK,"CTRLF_SHOW",A="FL:::/Kernel/KernelA.HPP,3082"$
+$LK,"DOCEf_REFRESH_DATA",A="FL:::/Kernel/KernelA.HPP,1091"$
+$LK,"DOCEf_LEFT_EXP",A="FL:::/Kernel/KernelA.HPP,1054"$
+$LK,"DOCEF_LEFT_EXP",A="FL:::/Kernel/KernelA.HPP,966"$
 $LK,"ISO1FileRead",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,190",BI=223$
 $LK,"ATAPIWaitReady",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,334",BI=224$
-$LK,"SC_PRTSCRN1",A="FL:::/Kernel/KernelA.HPP,3567"$
-$LK,"FUF_ALL",A="FL:::/Kernel/KernelA.HPP,2575"$
+$LK,"SC_PRTSCRN1",A="FL:::/Kernel/KernelA.HPP,3586"$
+$LK,"FUF_ALL",A="FL:::/Kernel/KernelA.HPP,2594"$
 $LK,"STR_LEN",A="FL:::/Kernel/KernelA.HPP,39"$
 $LK,"DskCacheQueIns",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,53",BI=225$
-$LK,"SC_PRTSCRN2",A="FL:::/Kernel/KernelA.HPP,3568"$
+$LK,"SC_PRTSCRN2",A="FL:::/Kernel/KernelA.HPP,3587"$
 $LK,"sys_semas",A="FL:::/Kernel/KernelB.HPP,237"$
 $LK,"InputFilterTask",A="FL:::/Kernel/SerialDev/Message.CPP.Z,1",BI=226$
 $LK,"SYS_HASH_STR",A="FL:::/Kernel/KHashA.CPP.Z,4"$
-$LK,"ATAR0_CMD",A="FL:::/Kernel/KernelA.HPP,2261"$
+$LK,"ATAR0_CMD",A="FL:::/Kernel/KernelA.HPP,2280"$
 $LK,"I_DBG",A="FL:::/Kernel/KernelA.HPP,294"$
 $LK,"FATNameTo",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,130",BI=227$
 $LK,"SrvCmdQueDel",A="FL:::/Kernel/SrvCmd.CPP.Z,7",BI=228$
@@ -996,287 +998,288 @@ $LK,"MaxU64",A="FL:::/Kernel/KernelB.HPP,99"$
 $LK,"CallInd",A="FL:::/Kernel/KernelB.HPP,48"$
 $LK,"EndianI64",A="FL:::/Kernel/KMisc.CPP.Z,25",BI=229$
 $LK,"_MSIZE",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,337"$
-$LK,"AC_MAX_FILLINS",A="FL:::/Kernel/KernelA.HPP,1475"$
-$LK,"GVF_IMPORT",A="FL:::/Kernel/KernelA.HPP,862"$
-$LK,"HTF_IMPORT",A="FL:::/Kernel/KernelA.HPP,700"$
-$LK,"HTf_IMPORT",A="FL:::/Kernel/KernelA.HPP,670"$
-$LK,"NUM_BLKDEVS",A="FL:::/Kernel/KernelA.HPP,2635"$
-$LK,"IEF_PLUS_OPCODE",A="FL:::/Kernel/KernelA.HPP,1708"$
-$LK,"LAPIC_ICR_LOW",A="FL:::/Kernel/KernelA.HPP,491"$
+$LK,"AC_MAX_FILLINS",A="FL:::/Kernel/KernelA.HPP,1481"$
+$LK,"GVF_IMPORT",A="FL:::/Kernel/KernelA.HPP,863"$
+$LK,"HTF_IMPORT",A="FL:::/Kernel/KernelA.HPP,701"$
+$LK,"HTf_IMPORT",A="FL:::/Kernel/KernelA.HPP,671"$
+$LK,"NUM_BLKDEVS",A="FL:::/Kernel/KernelA.HPP,2654"$
+$LK,"IEF_PLUS_OPCODE",A="FL:::/Kernel/KernelA.HPP,1726"$
+$LK,"LAPIC_ICR_LOW",A="FL:::/Kernel/KernelA.HPP,492"$
 $LK,"mouse",A="FL:::/Kernel/KGlbls.CPP.Z,27"$
 $LK,"D3Zero",A="FL:::/Kernel/KernelB.HPP,169"$
-$LK,"ST_WARN_ST",A="FL:::/Kernel/KernelA.HPP,3496"$
-$LK,"FUF_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HPP,2592"$
+$LK,"ST_WARN_ST",A="FL:::/Kernel/KernelA.HPP,3515"$
+$LK,"FUF_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HPP,2611"$
 $LK,"DskCacheInvalidate2",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,97",BI=230$
-$LK,"CCtrl",A="FL:::/Kernel/KernelA.HPP,3085"$
-$LK,"CBlkDev",A="FL:::/Kernel/KernelA.HPP,2637"$
-$LK,"DOCT_SONG",A="FL:::/Kernel/KernelA.HPP,933"$
-$LK,"DOCT_TREE",A="FL:::/Kernel/KernelA.HPP,929"$
+$LK,"CCtrl",A="FL:::/Kernel/KernelA.HPP,3104"$
+$LK,"CBlkDev",A="FL:::/Kernel/KernelA.HPP,2656"$
+$LK,"DOCT_SONG",A="FL:::/Kernel/KernelA.HPP,935"$
+$LK,"DOCT_TREE",A="FL:::/Kernel/KernelA.HPP,931"$
 $LK,"progress1_desc",A="FL:::/Kernel/KernelB.HPP,214"$
-$LK,"BDS_ED_FILENAME_DRV",A="FL:::/Kernel/KernelA.HPP,3243"$
-$LK,"DOCT_TEXT",A="FL:::/Kernel/KernelA.HPP,895"$
+$LK,"BDS_ED_FILENAME_DRV",A="FL:::/Kernel/KernelA.HPP,3262"$
+$LK,"DOCT_TEXT",A="FL:::/Kernel/KernelA.HPP,896"$
 $LK,"CMathODE",A="FL:::/Kernel/KernelA.HPP,242"$
 $LK,"WinInside",A="FL:::/Kernel/Display.CPP.Z,126",BI=231$
 $LK,"RFLAGf_ALIGN_CHECK",A="FL:::/Kernel/KernelA.HPP,319"$
 $LK,"MAllocIdentical",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,407",BI=232$
-$LK,"FUf_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HPP,2566"$
-$LK,"DOCF_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HPP,1261"$
-$LK,"CMemberLst",A="FL:::/Kernel/KernelA.HPP,792"$
-$LK,"DOCf_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HPP,1297"$
+$LK,"FUf_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HPP,2585"$
+$LK,"DOCF_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HPP,1267"$
+$LK,"CMemberLst",A="FL:::/Kernel/KernelA.HPP,793"$
+$LK,"DOCf_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HPP,1303"$
 $LK,"DskCacheQueRem",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,46",BI=233$
 $LK,"_D3_NORM",A="FL:::/Kernel/KMathA.CPP.Z,4"$
-$LK,"DOCEf_BLINK",A="FL:::/Kernel/KernelA.HPP,1039"$
-$LK,"DOCEF_BLINK",A="FL:::/Kernel/KernelA.HPP,1033"$
+$LK,"DOCEf_BLINK",A="FL:::/Kernel/KernelA.HPP,1043"$
+$LK,"DOCEF_BLINK",A="FL:::/Kernel/KernelA.HPP,1037"$
 $LK,"IsDotZ",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,22",BI=234$
 $LK,"HashGenericAdd",A="FL:::/Kernel/KHashB.CPP.Z,140",BI=235$
 $LK,"_TASK_CONTEXT_RESTORE",A="FL:::/Kernel/Sched.CPP.Z,106"$
 $LK,"BFieldOrU32",A="FL:::/Kernel/KernelB.HPP,32"$
-$LK,"TK_IFJIT",A="FL:::/Kernel/KernelA.HPP,2080"$
+$LK,"TK_IFJIT",A="FL:::/Kernel/KernelA.HPP,2100"$
 $LK,"RedSeaFileRead",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,205",BI=236$
 $LK,"MousePktRead",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,1",BI=237$
-$LK,"VGAP_CRTC_DATA",A="FL:::/Kernel/KernelA.HPP,3713"$
-$LK,"ARGT_REL32",A="FL:::/Kernel/KernelA.HPP,1859"$
-$LK,"ARGT_REL16",A="FL:::/Kernel/KernelA.HPP,1858"$
+$LK,"VGAP_CRTC_DATA",A="FL:::/Kernel/KernelA.HPP,3732"$
+$LK,"ARGT_REL32",A="FL:::/Kernel/KernelA.HPP,1878"$
+$LK,"ARGT_REL16",A="FL:::/Kernel/KernelA.HPP,1877"$
 $LK,"cpu_structs",A="FL:::/Kernel/KernelB.HPP,233"$
-$LK,"SC_DELETE",A="FL:::/Kernel/KernelA.HPP,3552"$
+$LK,"SC_DELETE",A="FL:::/Kernel/KernelA.HPP,3571"$
 $LK,"MAX_U64_F64",A="FL:::/Kernel/KernelA.HPP,43"$
 $LK,"CLine",A="FL:::/Kernel/EdLite.CPP.Z,1"$
-$LK,"REGG_C_LOCAL_VARS",A="FL:::/Kernel/KernelA.HPP,1772"$
-$LK,"ACD_MAX_FILLINS",A="FL:::/Kernel/KernelA.HPP,1512"$
-$LK,"REGT_SEG",A="FL:::/Kernel/KernelA.HPP,738"$
+$LK,"ACD_MAX_FILLINS",A="FL:::/Kernel/KernelA.HPP,1518"$
+$LK,"REGT_SEG",A="FL:::/Kernel/KernelA.HPP,739"$
 $LK,"CMass",A="FL:::/Kernel/KernelA.HPP,207"$
 $LK,"GetStr",A="FL:::/Kernel/SerialDev/Message.CPP.Z,193",BI=238$
-$LK,"LTRED",A="FL:::/Kernel/KernelA.HPP,2941"$
-$LK,"FSG_TYPE_MASK",A="FL:::/Kernel/KernelA.HPP,2667"$
+$LK,"LTRED",A="FL:::/Kernel/KernelA.HPP,2960"$
+$LK,"FSG_TYPE_MASK",A="FL:::/Kernel/KernelA.HPP,2686"$
 $LK,"StrIMatch",A="FL:::/Kernel/StrA.CPP.Z,319"$
-$LK,"HTG_TYPE_MASK",A="FL:::/Kernel/KernelA.HPP,695"$
+$LK,"HTG_TYPE_MASK",A="FL:::/Kernel/KernelA.HPP,696"$
 $LK,"Sign",A="FL:::/Kernel/KernelB.HPP,141"$
 $LK,"ExpandBuf",A="FL:::/Kernel/Compress.CPP.Z,250",BI=239$
-$LK,"DOCT_PAGE_LEN",A="FL:::/Kernel/KernelA.HPP,902"$
-$LK,"RLf_RAW",A="FL:::/Kernel/KernelA.HPP,441"$
+$LK,"ICF_ALT_TEMPLATE",A="FL:::/Kernel/KernelA.HPP,1611"$
+$LK,"DOCT_PAGE_LEN",A="FL:::/Kernel/KernelA.HPP,904"$
+$LK,"RLf_RAW",A="FL:::/Kernel/KernelA.HPP,442"$
 $LK,"ToggleZorNotZ",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,255",BI=240$
-$LK,"VGAP_ATTR_INDEX",A="FL:::/Kernel/KernelA.HPP,3702"$
+$LK,"VGAP_ATTR_INDEX",A="FL:::/Kernel/KernelA.HPP,3721"$
 $LK,"D3MulEqu",A="FL:::/Kernel/KernelB.HPP,163"$
-$LK,"BDS_CONST",A="FL:::/Kernel/KernelA.HPP,3241"$
+$LK,"BDS_CONST",A="FL:::/Kernel/KernelA.HPP,3260"$
 $LK,"MP_MAX_PROCESSORS",A="FL:::/Kernel/KernelA.HPP,301"$
 $LK,"SysGlblsInit",A="FL:::/Kernel/KEnd.CPP.Z,1",BI=241$
 $LK,"PutSrcLink",A="FL:::/Kernel/FunSeg.CPP.Z,255",BI=242$
-$LK,"CMenu",A="FL:::/Kernel/KernelA.HPP,3119"$
-$LK,"BDT_ATAPI",A="FL:::/Kernel/KernelA.HPP,2609"$
-$LK,"FUF_MAP",A="FL:::/Kernel/KernelA.HPP,2580"$
-$LK,"CFAT32DirEntry",A="FL:::/Kernel/KernelA.HPP,2356"$
-$LK,"ACD_POS_END",A="FL:::/Kernel/KernelA.HPP,1500"$
-$LK,"DOCT_INVERT",A="FL:::/Kernel/KernelA.HPP,915"$
-$LK,"CMT_HASH_ENTRY",A="FL:::/Kernel/KernelA.HPP,1673"$
-$LK,"RLf_VGA",A="FL:::/Kernel/KernelA.HPP,435"$
-$LK,"WIf_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1444"$
-$LK,"LAPIC_LVT_PERF",A="FL:::/Kernel/KernelA.HPP,496"$
+$LK,"CMenu",A="FL:::/Kernel/KernelA.HPP,3138"$
+$LK,"BDT_ATAPI",A="FL:::/Kernel/KernelA.HPP,2628"$
+$LK,"FUF_MAP",A="FL:::/Kernel/KernelA.HPP,2599"$
+$LK,"CFAT32DirEntry",A="FL:::/Kernel/KernelA.HPP,2375"$
+$LK,"ACD_POS_END",A="FL:::/Kernel/KernelA.HPP,1506"$
+$LK,"DOCT_INVERT",A="FL:::/Kernel/KernelA.HPP,917"$
+$LK,"CMT_HASH_ENTRY",A="FL:::/Kernel/KernelA.HPP,1691"$
+$LK,"RLf_VGA",A="FL:::/Kernel/KernelA.HPP,436"$
+$LK,"WIf_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1450"$
+$LK,"LAPIC_LVT_PERF",A="FL:::/Kernel/KernelA.HPP,497"$
 $LK,"MemLowPagesProtect",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,58",BI=243$
-$LK,"SC_F1",A="FL:::/Kernel/KernelA.HPP,3553"$
+$LK,"SC_F1",A="FL:::/Kernel/KernelA.HPP,3572"$
 $LK,"SYS_SEMAS",A="FL:::/Kernel/KStart.CPP.Z,231"$
-$LK,"SC_F2",A="FL:::/Kernel/KernelA.HPP,3554"$
+$LK,"SC_F2",A="FL:::/Kernel/KernelA.HPP,3573"$
 $LK,"SYS_VAR_INIT_FLAG",A="FL:::/Home/Temp.TXT.Z,1"$
 $LK,"SYS_MEM_INIT_FLAG",A="FL:::/Home/Temp.TXT.Z,1"$
-$LK,"SC_F3",A="FL:::/Kernel/KernelA.HPP,3555"$
+$LK,"SC_F3",A="FL:::/Kernel/KernelA.HPP,3574"$
 $LK,"SignI64",A="FL:::/Kernel/KernelB.HPP,103"$
 $LK,"_CALLIND",A="FL:::/Kernel/KUtils.CPP.Z,333"$
-$LK,"SC_F4",A="FL:::/Kernel/KernelA.HPP,3556"$
-$LK,"WSSf_SET_TO_POS",A="FL:::/Kernel/KernelA.HPP,3069"$
-$LK,"RS_ATTR_SYSTEM",A="FL:::/Kernel/KernelA.HPP,2504"$
-$LK,"SYS_SEMA_MUTE",A="FL:::/Kernel/KernelA.HPP,606"$
+$LK,"SC_F4",A="FL:::/Kernel/KernelA.HPP,3575"$
+$LK,"WSSf_SET_TO_POS",A="FL:::/Kernel/KernelA.HPP,3088"$
+$LK,"RS_ATTR_SYSTEM",A="FL:::/Kernel/KernelA.HPP,2523"$
+$LK,"SYS_SEMA_MUTE",A="FL:::/Kernel/KernelA.HPP,607"$
 $LK,"I_BPT",A="FL:::/Kernel/KernelA.HPP,287"$
 $LK,"_TAKE_EXCEPT",A="FL:::/Kernel/KExcept.CPP.Z,20"$
 $LK,"DefineCnt",A="FL:::/Kernel/KDefine.CPP.Z,74",BI=244$
-$LK,"SC_F5",A="FL:::/Kernel/KernelA.HPP,3557"$
-$LK,"WIF_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HPP,1413"$
+$LK,"SC_F5",A="FL:::/Kernel/KernelA.HPP,3576"$
+$LK,"WIF_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HPP,1419"$
 $LK,"RedSeaCd",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,234",BI=245$
 $LK,"C:/Doc/Bit.TXT.Z",A="FL:::/Kernel/KernelB.HPP,9"$
-$LK,"SC_F6",A="FL:::/Kernel/KernelA.HPP,3558"$
+$LK,"SC_F6",A="FL:::/Kernel/KernelA.HPP,3577"$
 $LK,"SysGrInit",A="FL:::/Kernel/KEnd.CPP.Z,64",BI=246$
 $LK,"ArcCtrlDel",A="FL:::/Kernel/Compress.CPP.Z,244",BI=247$
 $LK,"SysBadMAlloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,6",BI=248$
-$LK,"SC_F7",A="FL:::/Kernel/KernelA.HPP,3559"$
-$LK,"DOCSS_NORMAL",A="FL:::/Kernel/KernelA.HPP,1118"$
-$LK,"GVF_EXTERN",A="FL:::/Kernel/KernelA.HPP,863"$
+$LK,"SC_F7",A="FL:::/Kernel/KernelA.HPP,3578"$
+$LK,"DOCSS_NORMAL",A="FL:::/Kernel/KernelA.HPP,1124"$
+$LK,"GVF_EXTERN",A="FL:::/Kernel/KernelA.HPP,864"$
 $LK,"blkdev_text_attr",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,278"$
 $LK,"SPF_NEG_E",A="FL:::/Kernel/StrPrint.CPP.Z,11"$
-$LK,"SC_F8",A="FL:::/Kernel/KernelA.HPP,3560"$
+$LK,"SC_F8",A="FL:::/Kernel/KernelA.HPP,3579"$
 $LK,"Mute",A="FL:::/Kernel/KMisc.CPP.Z,204",BI=249$
 $LK,"INT_FAULT",A="FL:::/Kernel/KInts.CPP.Z,55"$
 $LK,"progress2_desc",A="FL:::/Kernel/KernelB.HPP,218"$
-$LK,"DCSF_PALETTE_GET",A="FL:::/Kernel/KernelA.HPP,3622"$
-$LK,"SC_F9",A="FL:::/Kernel/KernelA.HPP,3561"$
-$LK,"DOCEF_SOLID_BORDER",A="FL:::/Kernel/KernelA.HPP,997"$
+$LK,"DCSF_PALETTE_GET",A="FL:::/Kernel/KernelA.HPP,3641"$
+$LK,"SC_F9",A="FL:::/Kernel/KernelA.HPP,3580"$
+$LK,"DOCEF_SOLID_BORDER",A="FL:::/Kernel/KernelA.HPP,999"$
 $LK,"KbdBuildSC",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,301",BI=250$
-$LK,"IOAPICID",A="FL:::/Kernel/KernelA.HPP,508"$
+$LK,"CInst",A="FL:::/Kernel/KernelA.HPP,1741"$
+$LK,"IOAPICID",A="FL:::/Kernel/KernelA.HPP,509"$
 $LK,"RFLAGf_SIGN",A="FL:::/Kernel/KernelA.HPP,309"$
 $LK,"AMAllocIdentical",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,418",BI=251$
-$LK,"DKGRAY",A="FL:::/Kernel/KernelA.HPP,2937"$
-$LK,"DOCEF_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HPP,990"$
+$LK,"DKGRAY",A="FL:::/Kernel/KernelA.HPP,2956"$
+$LK,"DOCEF_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HPP,992"$
 $LK,"PutDirLink",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,197",BI=252$
 $LK,"EndianU32",A="FL:::/Kernel/KMisc.CPP.Z,15",BI=253$
 $LK,"EndianU16",A="FL:::/Kernel/KMisc.CPP.Z,7",BI=254$
-$LK,"DOCEf_SOLID_BORDER",A="FL:::/Kernel/KernelA.HPP,1083"$
+$LK,"DOCEf_SOLID_BORDER",A="FL:::/Kernel/KernelA.HPP,1087"$
 $LK,"SPF_NEG_AUX_FMT_NUM",A="FL:::/Kernel/StrPrint.CPP.Z,12"$
 $LK,"sys_pci_busses",A="FL:::/Kernel/KernelB.HPP,243"$
-$LK,"BOOT_STK_SIZE",A="FL:::/Kernel/KernelA.HPP,3860"$
-$LK,"TTS_LOCKED_CONST",A="FL:::/Kernel/KernelA.HPP,3247"$
-$LK,"CCf_FUN_EXP",A="FL:::/Kernel/KernelA.HPP,2125"$
-$LK,"CCF_FUN_EXP",A="FL:::/Kernel/KernelA.HPP,2124"$
-$LK,"LAPIC_APIC_VERSION",A="FL:::/Kernel/KernelA.HPP,476"$
+$LK,"BOOT_STK_SIZE",A="FL:::/Kernel/KernelA.HPP,3879"$
+$LK,"TTS_LOCKED_CONST",A="FL:::/Kernel/KernelA.HPP,3266"$
+$LK,"CCf_FUN_EXP",A="FL:::/Kernel/KernelA.HPP,2145"$
+$LK,"CCF_FUN_EXP",A="FL:::/Kernel/KernelA.HPP,2144"$
+$LK,"LAPIC_APIC_VERSION",A="FL:::/Kernel/KernelA.HPP,477"$
 $LK,"PutS",A="FL:::/Kernel/KeyDev.CPP.Z,29",BI=255$
-$LK,"DOCEf_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HPP,1076"$
-$LK,"CDocBin",A="FL:::/Kernel/KernelA.HPP,1104"$
-$LK,"LAPIC_BASE",A="FL:::/Kernel/KernelA.HPP,473"$
+$LK,"DOCEf_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HPP,1080"$
+$LK,"CDocBin",A="FL:::/Kernel/KernelA.HPP,1110"$
+$LK,"LAPIC_BASE",A="FL:::/Kernel/KernelA.HPP,474"$
 $LK,"MAX_F64",A="FL:::/Kernel/KernelA.HPP,44"$
 $LK,"StrPrintJoin",A="FL:::/Kernel/StrPrint.CPP.Z,219",BI=256$
-$LK,"IA32_GS_BASE",A="FL:::/Kernel/KernelA.HPP,519"$
+$LK,"IA32_GS_BASE",A="FL:::/Kernel/KernelA.HPP,520"$
 $LK,"log2_e",A="FL:::/Kernel/KernelA.HPP,52"$
 $LK,"CurDir",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,271",BI=257$
 $LK,"MinU64",A="FL:::/Kernel/KernelB.HPP,101"$
 $LK,"_SYS_HLT",A="FL:::/Kernel/KUtils.CPP.Z,469"$
-$LK,"CCF_AOT_COMPILE",A="FL:::/Kernel/KernelA.HPP,2135"$
-$LK,"OPTf_KEEP_PRIVATE",A="FL:::/Kernel/KernelA.HPP,1532"$
+$LK,"CCF_AOT_COMPILE",A="FL:::/Kernel/KernelA.HPP,2155"$
+$LK,"OPTf_KEEP_PRIVATE",A="FL:::/Kernel/KernelA.HPP,1538"$
 $LK,"MAX_I32",A="FL:::/Kernel/KernelA.HPP,31"$
 $LK,"MAX_I16",A="FL:::/Kernel/KernelA.HPP,27"$
-$LK,"HTF_EXPORT",A="FL:::/Kernel/KernelA.HPP,699"$
-$LK,"HTf_EXPORT",A="FL:::/Kernel/KernelA.HPP,669"$
+$LK,"HTF_EXPORT",A="FL:::/Kernel/KernelA.HPP,700"$
+$LK,"HTf_EXPORT",A="FL:::/Kernel/KernelA.HPP,670"$
 $LK,"ATAPIReadBlks2",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,385",BI=258$
 $LK,"_D3_UNIT",A="FL:::/Kernel/KMathA.CPP.Z,305"$
-$LK,"CCf_AOT_COMPILE",A="FL:::/Kernel/KernelA.HPP,2136"$
-$LK,"POP_C_REGS",A="FL:::/Kernel/KernelA.HPP,1746"$
+$LK,"CCf_AOT_COMPILE",A="FL:::/Kernel/KernelA.HPP,2156"$
+$LK,"POP_C_REGS",A="FL:::/Kernel/KernelA.HPP,1764"$
 $LK,"_STRIMATCH",A="FL:::/Kernel/StrA.CPP.Z,262"$
 $LK,"DrvChk",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,118",BI=259$
-$LK,"CSema",A="FL:::/Kernel/KernelA.HPP,583"$
-$LK,"EXT_HEAPLOG_MALLOC",A="FL:::/Kernel/KernelA.HPP,573"$
-$LK,"GR_WIDTH",A="FL:::/Kernel/KernelA.HPP,3589"$
-$LK,"DOCT_SOFT_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,897"$
+$LK,"CSema",A="FL:::/Kernel/KernelA.HPP,584"$
+$LK,"EXT_HEAPLOG_MALLOC",A="FL:::/Kernel/KernelA.HPP,574"$
+$LK,"GR_WIDTH",A="FL:::/Kernel/KernelA.HPP,3608"$
+$LK,"DOCT_SOFT_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,898"$
 $LK,"GetBaseUnit",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,167",BI=260$
 $LK,"MapDrv",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,212",BI=261$
 $LK,"DrvMakeFree",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,38",BI=262$
 $LK,"FixSet",A="FL:::/Kernel/EdLite.CPP.Z,327",BI=263$
 $LK,"IPSet",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,43",BI=264$
-$LK,"SYS_SEMA_HEAPLOG_LOCK",A="FL:::/Kernel/KernelA.HPP,596"$
+$LK,"SYS_SEMA_HEAPLOG_LOCK",A="FL:::/Kernel/KernelA.HPP,597"$
 $LK,"sqrt2",A="FL:::/Kernel/KernelA.HPP,55"$
 $LK,"CQueVectU8",A="FL:::/Kernel/KernelA.HPP,161"$
 $LK,"IntFaultHandlersNew",A="FL:::/Kernel/KInts.CPP.Z,159",BI=265$
-$LK,"TASKf_INPUT_FILTER_TASK",A="FL:::/Kernel/KernelA.HPP,3257"$
-$LK,"OM_CB",A="FL:::/Kernel/KernelA.HPP,1848"$
+$LK,"TASKf_INPUT_FILTER_TASK",A="FL:::/Kernel/KernelA.HPP,3276"$
+$LK,"OM_CB",A="FL:::/Kernel/KernelA.HPP,1867"$
 $LK,"MAX_I64",A="FL:::/Kernel/KernelA.HPP,35"$
 $LK,"throw",A="FL:::/Kernel/KExcept.CPP.Z,82",BI=266$
 $LK,"sys_boot_base",A="FL:::/Kernel/KernelB.HPP,37"$
-$LK,"BDF_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HPP,2615"$
-$LK,"TK_AND_AND",A="FL:::/Kernel/KernelA.HPP,2064"$
-$LK,"REG_NONE",A="FL:::/Kernel/KernelA.HPP,1765"$
-$LK,"OC_LOCK_PREFIX",A="FL:::/Kernel/KernelA.HPP,1738"$
-$LK,"WIF_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1406"$
-$LK,"Ff_INTERRUPT",A="FL:::/Kernel/KernelA.HPP,842"$
-$LK,"CFunSegCache",A="FL:::/Kernel/KernelA.HPP,3825"$
-$LK,"OM_CD",A="FL:::/Kernel/KernelA.HPP,1850"$
-$LK,"AAT_ADD_U8",A="FL:::/Kernel/KernelA.HPP,1945"$
-$LK,"REGT_XMM",A="FL:::/Kernel/KernelA.HPP,741"$
-$LK,"DOCSS_CPP_Z_COMMENT",A="FL:::/Kernel/KernelA.HPP,1122"$
-$LK,"DOCT_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,917"$
+$LK,"BDF_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HPP,2634"$
+$LK,"TK_AND_AND",A="FL:::/Kernel/KernelA.HPP,2084"$
+$LK,"REG_NONE",A="FL:::/Kernel/KernelA.HPP,1784"$
+$LK,"OC_LOCK_PREFIX",A="FL:::/Kernel/KernelA.HPP,1756"$
+$LK,"WIF_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1412"$
+$LK,"Ff_INTERRUPT",A="FL:::/Kernel/KernelA.HPP,843"$
+$LK,"CFunSegCache",A="FL:::/Kernel/KernelA.HPP,3844"$
+$LK,"OM_CD",A="FL:::/Kernel/KernelA.HPP,1869"$
+$LK,"AAT_ADD_U8",A="FL:::/Kernel/KernelA.HPP,1965"$
+$LK,"REGT_XMM",A="FL:::/Kernel/KernelA.HPP,742"$
+$LK,"DOCSS_CPP_Z_COMMENT",A="FL:::/Kernel/KernelA.HPP,1128"$
+$LK,"DOCT_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,919"$
 $LK,"PutExcept",A="FL:::/Kernel/KExcept.CPP.Z,45",BI=267$
 $LK,"TestExcept",A="FL:::/Kernel/KExcept.CPP.Z,41"$
-$LK,"CColorROPU32",A="FL:::/Kernel/KernelA.HPP,2954"$
-$LK,"CColorROPU16",A="FL:::/Kernel/KernelA.HPP,2950"$
-$LK,"DOCT_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,918"$
-$LK,"HTT_FILE",A="FL:::/Kernel/KernelA.HPP,691"$
-$LK,"HTT_DEFINE_STR",A="FL:::/Kernel/KernelA.HPP,680"$
-$LK,"HTt_FILE",A="FL:::/Kernel/KernelA.HPP,661"$
+$LK,"CColorROPU32",A="FL:::/Kernel/KernelA.HPP,2973"$
+$LK,"CColorROPU16",A="FL:::/Kernel/KernelA.HPP,2969"$
+$LK,"DOCT_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,920"$
+$LK,"HTT_FILE",A="FL:::/Kernel/KernelA.HPP,692"$
+$LK,"HTT_DEFINE_STR",A="FL:::/Kernel/KernelA.HPP,681"$
+$LK,"HTt_FILE",A="FL:::/Kernel/KernelA.HPP,662"$
 $LK,"BootDVDProve",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,1",BI=268$
 $LK,"Push",A="FL:::/Kernel/KernelB.HPP,252"$
-$LK,"SVCf_FREE_ON_COMPLETE",A="FL:::/Kernel/KernelA.HPP,3157"$
-$LK,"ICF_DEL_PREVIOUS_INS",A="FL:::/Kernel/KernelA.HPP,1601"$
-$LK,"HTt_DEFINE_STR",A="FL:::/Kernel/KernelA.HPP,650"$
+$LK,"SVCf_FREE_ON_COMPLETE",A="FL:::/Kernel/KernelA.HPP,3176"$
+$LK,"ICF_DEL_PREVIOUS_INS",A="FL:::/Kernel/KernelA.HPP,1615"$
+$LK,"HTt_DEFINE_STR",A="FL:::/Kernel/KernelA.HPP,651"$
 $LK,"STK_REP_LEN",A="FL:::/Kernel/KDbg.CPP.Z,102"$
 $LK,"I_NMI",A="FL:::/Kernel/KernelA.HPP,286"$
 $LK,"Date2ISO1",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,61",BI=269$
 $LK,"ModU64",A="FL:::/Kernel/KernelB.HPP,102"$
-$LK,"SVCf_EXIT_ON_COMPLETE",A="FL:::/Kernel/KernelA.HPP,3151"$
-$LK,"DOCG_DBL_BUF_FLAGS",A="FL:::/Kernel/KernelA.HPP,952"$
-$LK,"WIf_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HPP,1438"$
-$LK,"WIf_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1432"$
-$LK,"CTask",A="FL:::/Kernel/KernelA.HPP,3292"$
-$LK,"OC_JMP_REL8",A="FL:::/Kernel/KernelA.HPP,1742"$
+$LK,"SVCf_EXIT_ON_COMPLETE",A="FL:::/Kernel/KernelA.HPP,3170"$
+$LK,"DOCG_DBL_BUF_FLAGS",A="FL:::/Kernel/KernelA.HPP,954"$
+$LK,"WIf_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HPP,1444"$
+$LK,"WIf_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1438"$
+$LK,"CTask",A="FL:::/Kernel/KernelA.HPP,3311"$
+$LK,"OC_JMP_REL8",A="FL:::/Kernel/KernelA.HPP,1760"$
 $LK,"_HASH_SINGLE_TABLE_FIND",A="FL:::/Kernel/KHashA.CPP.Z,143"$
 $LK,"_D3_ZERO",A="FL:::/Kernel/KMathA.CPP.Z,201"$
 $LK,"Str2F64",A="FL:::/Kernel/StrScan.CPP.Z,55",BI=270$
 $LK,"_YIELD",A="FL:::/Kernel/Sched.CPP.Z,168"$
-$LK,"OM_IB",A="FL:::/Kernel/KernelA.HPP,1852"$
+$LK,"OM_IB",A="FL:::/Kernel/KernelA.HPP,1871"$
 $LK,"progress3_desc",A="FL:::/Kernel/KernelB.HPP,222"$
-$LK,"DCF_SYMMETRY",A="FL:::/Kernel/KernelA.HPP,3606"$
+$LK,"DCF_SYMMETRY",A="FL:::/Kernel/KernelA.HPP,3625"$
 $LK,"DrvNextFree",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,51",BI=271$
-$LK,"OM_ID",A="FL:::/Kernel/KernelA.HPP,1854"$
-$LK,"OM_CP",A="FL:::/Kernel/KernelA.HPP,1851"$
-$LK,"WIF_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HPP,1415"$
+$LK,"OM_ID",A="FL:::/Kernel/KernelA.HPP,1873"$
+$LK,"OM_CP",A="FL:::/Kernel/KernelA.HPP,1870"$
+$LK,"WIF_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HPP,1421"$
 $LK,"_ROUND",A="FL:::/Kernel/KMathA.CPP.Z,380"$
 $LK,"RFLAGf_TRAP",A="FL:::/Kernel/KernelA.HPP,310"$
 $LK,"SYS_HASH_BUCKET_FIND",A="FL:::/Kernel/KHashA.CPP.Z,109"$
-$LK,"BOOT_SRC_DVD",A="FL:::/Kernel/KernelA.HPP,3865"$
-$LK,"FUF_RECURSE",A="FL:::/Kernel/KernelA.HPP,2572"$
-$LK,"FUf_RECURSE",A="FL:::/Kernel/KernelA.HPP,2546"$
+$LK,"BOOT_SRC_DVD",A="FL:::/Kernel/KernelA.HPP,3884"$
+$LK,"FUF_RECURSE",A="FL:::/Kernel/KernelA.HPP,2591"$
+$LK,"FUf_RECURSE",A="FL:::/Kernel/KernelA.HPP,2565"$
 $LK,"MemCmp",A="FL:::/Kernel/KernelB.HPP,173"$
-$LK,"SVCf_DONE",A="FL:::/Kernel/KernelA.HPP,3155"$
-$LK,"SC_PAGE_UP",A="FL:::/Kernel/KernelA.HPP,3547"$
+$LK,"SVCf_DONE",A="FL:::/Kernel/KernelA.HPP,3174"$
+$LK,"SC_PAGE_UP",A="FL:::/Kernel/KernelA.HPP,3566"$
 $LK,"User",A="FL:::/Kernel/KTask.CPP.Z,392",BI=272$
-$LK,"WIF_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HPP,1417"$
-$LK,"DOCEf_RIGHT_EXP",A="FL:::/Kernel/KernelA.HPP,1052"$
-$LK,"DOCEF_RIGHT_EXP",A="FL:::/Kernel/KernelA.HPP,966"$
+$LK,"WIF_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HPP,1423"$
+$LK,"DOCEf_RIGHT_EXP",A="FL:::/Kernel/KernelA.HPP,1056"$
+$LK,"DOCEF_RIGHT_EXP",A="FL:::/Kernel/KernelA.HPP,968"$
 $LK,"DirEntryDel",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,17",BI=273$
-$LK,"CLexFile",A="FL:::/Kernel/KernelA.HPP,2013"$
-$LK,"OM_CW",A="FL:::/Kernel/KernelA.HPP,1849"$
-$LK,"DOCF_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HPP,1267"$
-$LK,"IA32_LAPIC_BASE",A="FL:::/Kernel/KernelA.HPP,516"$
+$LK,"CLexFile",A="FL:::/Kernel/KernelA.HPP,2033"$
+$LK,"OM_CW",A="FL:::/Kernel/KernelA.HPP,1868"$
+$LK,"DOCF_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HPP,1273"$
+$LK,"IA32_LAPIC_BASE",A="FL:::/Kernel/KernelA.HPP,517"$
 $LK,"ATACmd",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,59",BI=274$
 $LK,"BusyWait",A="FL:::/Kernel/KMisc.CPP.Z,136",BI=275$
-$LK,"DOCEf_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,1057"$
-$LK,"DOCEG_DONT_EDIT",A="FL:::/Kernel/KernelA.HPP,1027"$
-$LK,"DOCEF_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,971"$
-$LK,"DOCEf_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,1058"$
-$LK,"DOCEF_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,972"$
+$LK,"DOCEf_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,1061"$
+$LK,"DOCEG_DONT_EDIT",A="FL:::/Kernel/KernelA.HPP,1031"$
+$LK,"DOCEF_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,973"$
+$LK,"DOCEf_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,1062"$
+$LK,"DOCEF_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,974"$
 $LK,"Str2I64",A="FL:::/Kernel/StrScan.CPP.Z,1",BI=276$
 $LK,"Sqrt",A="FL:::/Kernel/KernelB.HPP,108"$
 $LK,"NowDateTimeStruct",A="FL:::/Kernel/KDate.CPP.Z,133",BI=277$
 $LK,"YorN",A="FL:::/Kernel/StrB.CPP.Z,87",BI=278$
-$LK,"MT_CD",A="FL:::/Kernel/KernelA.HPP,2519"$
-$LK,"ICF_NO_DEPEND_RESULT",A="FL:::/Kernel/KernelA.HPP,1581"$
+$LK,"MT_CD",A="FL:::/Kernel/KernelA.HPP,2538"$
+$LK,"ICF_NO_DEPEND_RESULT",A="FL:::/Kernel/KernelA.HPP,1596"$
 $LK,"RFLAGf_VINT",A="FL:::/Kernel/KernelA.HPP,320"$
-$LK,"DCF_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3618"$
-$LK,"ACD_DEF",A="FL:::/Kernel/KernelA.HPP,1495"$
-$LK,"DOCEF_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HPP,969"$
+$LK,"DCF_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3637"$
+$LK,"ACD_DEF",A="FL:::/Kernel/KernelA.HPP,1501"$
+$LK,"DOCEF_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HPP,971"$
 $LK,"SYS_CPU_STRUCTS",A="FL:::/Kernel/KStart.CPP.Z,223"$
-$LK,"SVCT_MSG",A="FL:::/Kernel/KernelA.HPP,3161"$
-$LK,"ICF_DEPEND_RESULT",A="FL:::/Kernel/KernelA.HPP,1593"$
-$LK,"DOCf_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HPP,1303"$
-$LK,"CDocEntryBase",A="FL:::/Kernel/KernelA.HPP,1149"$
-$LK,"MLF_STR_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HPP,771"$
+$LK,"SVCT_MSG",A="FL:::/Kernel/KernelA.HPP,3180"$
+$LK,"ICF_DEPEND_RESULT",A="FL:::/Kernel/KernelA.HPP,1607"$
+$LK,"DOCf_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HPP,1309"$
+$LK,"CDocEntryBase",A="FL:::/Kernel/KernelA.HPP,1155"$
+$LK,"MLF_STR_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HPP,772"$
 $LK,"ArcCtrlNew",A="FL:::/Kernel/Compress.CPP.Z,221",BI=279$
-$LK,"DCF_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,3613"$
-$LK,"SYS_SEMA_HEAPLOG_ACTIVE",A="FL:::/Kernel/KernelA.HPP,595"$
-$LK,"DOC_SCROLL_SPEED",A="FL:::/Kernel/KernelA.HPP,1116"$
-$LK,"DOCEf_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HPP,1055"$
+$LK,"DCF_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,3632"$
+$LK,"SYS_SEMA_HEAPLOG_ACTIVE",A="FL:::/Kernel/KernelA.HPP,596"$
+$LK,"DOC_SCROLL_SPEED",A="FL:::/Kernel/KernelA.HPP,1122"$
+$LK,"DOCEf_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HPP,1059"$
 $LK,"SSF_NO_TENSION",A="FL:::/Kernel/KernelA.HPP,223"$
 $LK,"I32",A="FL:::/Kernel/KernelA.HPP,85"$
 $LK,"I16",A="FL:::/Kernel/KernelA.HPP,71"$
 $LK,"MemCpy",A="FL:::/Kernel/KernelB.HPP,175"$
-$LK,"CT_NONE",A="FL:::/Kernel/KernelA.HPP,3722"$
-$LK,"OM_IW",A="FL:::/Kernel/KernelA.HPP,1853"$
-$LK,"VGAP_DATA",A="FL:::/Kernel/KernelA.HPP,3707"$
-$LK,"OM_NO",A="FL:::/Kernel/KernelA.HPP,1847"$
-$LK,"IET_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,410"$
-$LK,"GVF_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,864"$
+$LK,"CT_NONE",A="FL:::/Kernel/KernelA.HPP,3741"$
+$LK,"OM_IW",A="FL:::/Kernel/KernelA.HPP,1872"$
+$LK,"VGAP_DATA",A="FL:::/Kernel/KernelA.HPP,3726"$
+$LK,"OM_NO",A="FL:::/Kernel/KernelA.HPP,1866"$
+$LK,"IET_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,411"$
+$LK,"GVF_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,865"$
 $LK,"DefineSub",A="FL:::/Kernel/KDefine.CPP.Z,60",BI=280$
-$LK,"WHITE",A="FL:::/Kernel/KernelA.HPP,2944"$
-$LK,"ATA_READ_MULTI_EXT",A="FL:::/Kernel/KernelA.HPP,2242"$
-$LK,"DOCEF_SCROLLING_X",A="FL:::/Kernel/KernelA.HPP,973"$
-$LK,"DOCEf_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HPP,1085"$
-$LK,"ISO1T_SUPPLEMENTARY_DESC",A="FL:::/Kernel/KernelA.HPP,2456"$
-$LK,"DOCEf_SCROLLING_X",A="FL:::/Kernel/KernelA.HPP,1059"$
+$LK,"WHITE",A="FL:::/Kernel/KernelA.HPP,2963"$
+$LK,"ATA_READ_MULTI_EXT",A="FL:::/Kernel/KernelA.HPP,2261"$
+$LK,"DOCEF_SCROLLING_X",A="FL:::/Kernel/KernelA.HPP,975"$
+$LK,"DOCEf_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HPP,1089"$
+$LK,"ISO1T_SUPPLEMENTARY_DESC",A="FL:::/Kernel/KernelA.HPP,2475"$
+$LK,"DOCEf_SCROLLING_X",A="FL:::/Kernel/KernelA.HPP,1063"$
 $LK,"MPInt",A="FL:::/Kernel/MultiProc.CPP.Z,132",BI=281$
-$LK,"BOOT_SRC_RAM",A="FL:::/Kernel/KernelA.HPP,3863"$
-$LK,"TK_AND_EQU",A="FL:::/Kernel/KernelA.HPP,2071"$
+$LK,"BOOT_SRC_RAM",A="FL:::/Kernel/KernelA.HPP,3882"$
+$LK,"TK_AND_EQU",A="FL:::/Kernel/KernelA.HPP,2091"$
 $LK,"I64",A="FL:::/Kernel/KernelA.HPP,103"$
 $LK,"MAX_U32",A="FL:::/Kernel/KernelA.HPP,33"$
 $LK,"MAX_U16",A="FL:::/Kernel/KernelA.HPP,29"$
@@ -1285,125 +1288,125 @@ $LK,"IntEntryGet",A="FL:::/Kernel/KInts.CPP.Z,90",BI=283$
 $LK,"CD2",A="FL:::/Kernel/KernelA.HPP,148"$
 $LK,"KeyDevInit",A="FL:::/Kernel/KeyDev.CPP.Z,199",BI=284$
 $LK,"sys_font_8x8",A="FL:::/Kernel/Font8x8.CPP.Z,3"$
-$LK,"CCF_HAS_RETURN",A="FL:::/Kernel/KernelA.HPP,2120"$
-$LK,"CAsmArg",A="FL:::/Kernel/KernelA.HPP,1824"$
+$LK,"CCF_HAS_RETURN",A="FL:::/Kernel/KernelA.HPP,2140"$
+$LK,"CAsmArg",A="FL:::/Kernel/KernelA.HPP,1843"$
 $LK,"CD3",A="FL:::/Kernel/KernelA.HPP,154"$
 $LK,"progress4_desc",A="FL:::/Kernel/KernelB.HPP,226"$
 $LK,"RFLAGf_ZERO",A="FL:::/Kernel/KernelA.HPP,308"$
 $LK,"DrvFATBlkClean",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,75",BI=285$
-$LK,"CCF_CLASS_IP",A="FL:::/Kernel/KernelA.HPP,2140"$
-$LK,"WIf_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HPP,1440"$
+$LK,"CCF_CLASS_IP",A="FL:::/Kernel/KernelA.HPP,2160"$
+$LK,"WIf_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HPP,1446"$
 $LK,"PCIReadU8",A="FL:::/Kernel/PCIBIOS.CPP.Z,163",BI=286$
-$LK,"SYS_SEMA_SYS_DATE",A="FL:::/Kernel/KernelA.HPP,592"$
-$LK,"EXT_WIN_FOCUS",A="FL:::/Kernel/KernelA.HPP,572"$
+$LK,"SYS_SEMA_SYS_DATE",A="FL:::/Kernel/KernelA.HPP,593"$
+$LK,"EXT_WIN_FOCUS",A="FL:::/Kernel/KernelA.HPP,573"$
 $LK,"ClustersAlloc",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,134",BI=287$
-$LK,"WIF_SELF_IP_L",A="FL:::/Kernel/KernelA.HPP,1402"$
+$LK,"WIF_SELF_IP_L",A="FL:::/Kernel/KernelA.HPP,1408"$
 $LK,"MAX_U64",A="FL:::/Kernel/KernelA.HPP,37"$
-$LK,"WIf_SELF_IP_L",A="FL:::/Kernel/KernelA.HPP,1430"$
-$LK,"CHashAC",A="FL:::/Kernel/KernelA.HPP,748"$
-$LK,"DOCf_NO_CURSOR",A="FL:::/Kernel/KernelA.HPP,1286"$
-$LK,"DOCF_NO_CURSOR",A="FL:::/Kernel/KernelA.HPP,1250"$
+$LK,"WIf_SELF_IP_L",A="FL:::/Kernel/KernelA.HPP,1436"$
+$LK,"CHashAC",A="FL:::/Kernel/KernelA.HPP,749"$
+$LK,"DOCf_NO_CURSOR",A="FL:::/Kernel/KernelA.HPP,1292"$
+$LK,"DOCF_NO_CURSOR",A="FL:::/Kernel/KernelA.HPP,1256"$
 $LK,"PrintWarn",A="FL:::/Kernel/StrPrint.CPP.Z,931",BI=288$
 $LK,"LoadOneImport",A="FL:::/Kernel/KLoad.CPP.Z,1",BI=289$
 $LK,"FOpen",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,9",BI=290$
-$LK,"CCF_LAST_WAS_DOT",A="FL:::/Kernel/KernelA.HPP,2134"$
-$LK,"CMF_DEFINED",A="FL:::/Kernel/KernelA.HPP,1676"$
-$LK,"WIf_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HPP,1442"$
-$LK,"HTG_ALL",A="FL:::/Kernel/KernelA.HPP,710"$
+$LK,"CCF_LAST_WAS_DOT",A="FL:::/Kernel/KernelA.HPP,2154"$
+$LK,"CMF_DEFINED",A="FL:::/Kernel/KernelA.HPP,1694"$
+$LK,"WIf_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HPP,1448"$
+$LK,"HTG_ALL",A="FL:::/Kernel/KernelA.HPP,711"$
 $LK,"sys_var_init_val",A="FL:::/Kernel/KernelB.HPP,192"$
-$LK,"FUF_REPLACE",A="FL:::/Kernel/KernelA.HPP,2577"$
-$LK,"FUf_REPLACE",A="FL:::/Kernel/KernelA.HPP,2551"$
+$LK,"FUF_REPLACE",A="FL:::/Kernel/KernelA.HPP,2596"$
+$LK,"FUf_REPLACE",A="FL:::/Kernel/KernelA.HPP,2570"$
 $LK,"DrvRep",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,295",BI=291$
 $LK,"BlkDevUnlock",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,15",BI=292$
-$LK,"CMemUsed",A="FL:::/Kernel/KernelA.HPP,2794"$
-$LK,"WIF_SELF_IP_R",A="FL:::/Kernel/KernelA.HPP,1404"$
+$LK,"CMemUsed",A="FL:::/Kernel/KernelA.HPP,2813"$
+$LK,"WIF_SELF_IP_R",A="FL:::/Kernel/KernelA.HPP,1410"$
 $LK,"IntMPCrash",A="FL:::/Kernel/MultiProc.CPP.Z,381",BI=293$
 $LK,"JobQue",A="FL:::/Kernel/MultiProc.CPP.Z,213",BI=294$
 $LK,"TSSBusy",A="FL:::/Kernel/MultiProc.CPP.Z,71",BI=295$
 $LK,"DrvTypeSet",A="FL:::/Kernel/BlkDev/DskFmt.CPP.Z,1",BI=296$
-$LK,"FUF_JUST_AOT",A="FL:::/Kernel/KernelA.HPP,2587"$
-$LK,"FUf_JUST_AOT",A="FL:::/Kernel/KernelA.HPP,2561"$
-$LK,"WIf_SELF_IP_R",A="FL:::/Kernel/KernelA.HPP,1431"$
+$LK,"FUF_JUST_AOT",A="FL:::/Kernel/KernelA.HPP,2606"$
+$LK,"FUf_JUST_AOT",A="FL:::/Kernel/KernelA.HPP,2580"$
+$LK,"WIf_SELF_IP_R",A="FL:::/Kernel/KernelA.HPP,1437"$
 $LK,"DirNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,104",BI=297$
-$LK,"DOF_DONT_HOME",A="FL:::/Kernel/KernelA.HPP,1207"$
-$LK,"CH_ESC",A="FL:::/Kernel/KernelA.HPP,3490"$
-$LK,"DOCEf_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,1101"$
-$LK,"DOCEF_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,1017"$
+$LK,"DOF_DONT_HOME",A="FL:::/Kernel/KernelA.HPP,1213"$
+$LK,"CH_ESC",A="FL:::/Kernel/KernelA.HPP,3509"$
+$LK,"DOCEf_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,1105"$
+$LK,"DOCEF_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,1019"$
 $LK,"DrvFATBlkAlloc",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,65",BI=298$
 $LK,"WildMatch",A="FL:::/Kernel/StrA.CPP.Z,656",BI=299$
-$LK,"CDC",A="FL:::/Kernel/KernelA.HPP,3633"$
-$LK,"SC_CURSOR_LEFT",A="FL:::/Kernel/KernelA.HPP,3545"$
+$LK,"CDC",A="FL:::/Kernel/KernelA.HPP,3652"$
+$LK,"SC_CURSOR_LEFT",A="FL:::/Kernel/KernelA.HPP,3564"$
 $LK,"IsMute",A="FL:::/Kernel/KMisc.CPP.Z,218",BI=300$
-$LK,"DOCT_CLEAR",A="FL:::/Kernel/KernelA.HPP,900"$
+$LK,"DOCT_CLEAR",A="FL:::/Kernel/KernelA.HPP,902"$
 $LK,"DVDImageWrite",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,79",BI=301$
 $LK,"MouseRst",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,37",BI=302$
 $LK,"HashTypeNum",A="FL:::/Kernel/KHashB.CPP.Z,1",BI=303$
-$LK,"CPUf_DYING_TASK_QUE",A="FL:::/Kernel/KernelA.HPP,3416"$
-$LK,"BDf_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2624"$
-$LK,"BDF_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2614"$
-$LK,"DCF_JUST_MIRROR",A="FL:::/Kernel/KernelA.HPP,3610"$
-$LK,"FSt_UNKNOWN",A="FL:::/Kernel/KernelA.HPP,2665"$
-$LK,"WIG_USER_TASK_DFT",A="FL:::/Kernel/KernelA.HPP,1426"$
+$LK,"CPUf_DYING_TASK_QUE",A="FL:::/Kernel/KernelA.HPP,3435"$
+$LK,"BDf_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2643"$
+$LK,"BDF_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2633"$
+$LK,"DCF_JUST_MIRROR",A="FL:::/Kernel/KernelA.HPP,3629"$
+$LK,"FSt_UNKNOWN",A="FL:::/Kernel/KernelA.HPP,2684"$
+$LK,"WIG_USER_TASK_DFT",A="FL:::/Kernel/KernelA.HPP,1432"$
 $LK,"sys_cache_line_width",A="FL:::/Kernel/KernelB.HPP,271"$
 $LK,"XchgI64",A="FL:::/Kernel/KernelB.HPP,266"$
-$LK,"SC_CURSOR_DOWN",A="FL:::/Kernel/KernelA.HPP,3544"$
-$LK,"DOF_DONT_WINMGR_SYNC",A="FL:::/Kernel/KernelA.HPP,1210"$
+$LK,"SC_CURSOR_DOWN",A="FL:::/Kernel/KernelA.HPP,3563"$
+$LK,"DOF_DONT_WINMGR_SYNC",A="FL:::/Kernel/KernelA.HPP,1216"$
 $LK,"I_SINGLE_STEP",A="FL:::/Kernel/KernelA.HPP,285"$
 $LK,"KbdMouseRst",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,212",BI=304$
-$LK,"ATA_WRITE_MULTI",A="FL:::/Kernel/KernelA.HPP,2243"$
-$LK,"DOC_COLOR_KEYWORD",A="FL:::/Kernel/KernelA.HPP,1132"$
+$LK,"ATA_WRITE_MULTI",A="FL:::/Kernel/KernelA.HPP,2262"$
+$LK,"DOC_COLOR_KEYWORD",A="FL:::/Kernel/KernelA.HPP,1138"$
 $LK,"XTalkStr",A="FL:::/Kernel/SrvCmd.CPP.Z,490",BI=305$
-$LK,"FUF_JUST_GRA",A="FL:::/Kernel/KernelA.HPP,2589"$
-$LK,"FUf_JUST_GRA",A="FL:::/Kernel/KernelA.HPP,2563"$
-$LK,"CCF_IN_QUOTES",A="FL:::/Kernel/KernelA.HPP,2117"$
+$LK,"FUF_JUST_GRA",A="FL:::/Kernel/KernelA.HPP,2608"$
+$LK,"FUf_JUST_GRA",A="FL:::/Kernel/KernelA.HPP,2582"$
+$LK,"CCF_IN_QUOTES",A="FL:::/Kernel/KernelA.HPP,2137"$
 $LK,"CFifoU8",A="FL:::/Kernel/KernelA.HPP,169"$
 $LK,"ATAReadNativeMax",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,187",BI=306$
 $LK,"JobResultScan",A="FL:::/Kernel/SrvCmd.CPP.Z,163",BI=307$
-$LK,"RLF_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HPP,469"$
+$LK,"RLF_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HPP,470"$
 $LK,"SYS_KERNEL_END",A="FL:::/Kernel/KEnd.CPP.Z,212"$
 $LK,"TakeExcept",A="FL:::/Kernel/KExcept.CPP.Z,42"$
 $LK,"_MALLOC",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,5"$
-$LK,"CHashDefineStr",A="FL:::/Kernel/KernelA.HPP,819"$
+$LK,"CHashDefineStr",A="FL:::/Kernel/KernelA.HPP,820"$
 $LK,"MemSet",A="FL:::/Kernel/KernelB.HPP,177"$
 $LK,"SPF_SLASH",A="FL:::/Kernel/StrPrint.CPP.Z,6"$
 $LK,"_TRUNC",A="FL:::/Kernel/KMathA.CPP.Z,400"$
-$LK,"HTF_IMM",A="FL:::/Kernel/KernelA.HPP,701"$
-$LK,"FUF_IGNORE",A="FL:::/Kernel/KernelA.HPP,2574"$
-$LK,"FUf_IGNORE",A="FL:::/Kernel/KernelA.HPP,2548"$
-$LK,"AAT_SUB_U32",A="FL:::/Kernel/KernelA.HPP,1950"$
-$LK,"AAT_SUB_U16",A="FL:::/Kernel/KernelA.HPP,1948"$
-$LK,"IP_MOUSE",A="FL:::/Kernel/KernelA.HPP,3015"$
+$LK,"HTF_IMM",A="FL:::/Kernel/KernelA.HPP,702"$
+$LK,"FUF_IGNORE",A="FL:::/Kernel/KernelA.HPP,2593"$
+$LK,"FUf_IGNORE",A="FL:::/Kernel/KernelA.HPP,2567"$
+$LK,"AAT_SUB_U32",A="FL:::/Kernel/KernelA.HPP,1970"$
+$LK,"AAT_SUB_U16",A="FL:::/Kernel/KernelA.HPP,1968"$
+$LK,"IP_MOUSE",A="FL:::/Kernel/KernelA.HPP,3034"$
 $LK,"ATAIDDrvs",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,204",BI=308$
 $LK,"UserCmdLine",A="FL:::/Kernel/KTask.CPP.Z,381",BI=309$
-$LK,"GVF_FUN",A="FL:::/Kernel/KernelA.HPP,861"$
-$LK,"IA32F_LME",A="FL:::/Kernel/KernelA.HPP,515"$
-$LK,"LAPICF_APIC_ENABLED",A="FL:::/Kernel/KernelA.HPP,485"$
-$LK,"RLf_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HPP,450"$
+$LK,"GVF_FUN",A="FL:::/Kernel/KernelA.HPP,862"$
+$LK,"IA32F_LME",A="FL:::/Kernel/KernelA.HPP,516"$
+$LK,"LAPICF_APIC_ENABLED",A="FL:::/Kernel/KernelA.HPP,486"$
+$LK,"RLf_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HPP,451"$
 $LK,"PCIClassFind",A="FL:::/Kernel/PCIBIOS.CPP.Z,265",BI=310$
-$LK,"RECALCF_HAS_CURSOR",A="FL:::/Kernel/KernelA.HPP,1340"$
+$LK,"RECALCF_HAS_CURSOR",A="FL:::/Kernel/KernelA.HPP,1346"$
 $LK,"ATARep",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,130",BI=311$
 $LK,"KDInputFilterPutS",A="FL:::/Kernel/KeyDev.CPP.Z,115",BI=312$
 $LK,"D3SubEqu",A="FL:::/Kernel/KernelB.HPP,167"$
-$LK,"FUF_JUST_JIT",A="FL:::/Kernel/KernelA.HPP,2588"$
-$LK,"FUf_JUST_JIT",A="FL:::/Kernel/KernelA.HPP,2562"$
-$LK,"CAsmIns",A="FL:::/Kernel/KernelA.HPP,1812"$
+$LK,"FUF_JUST_JIT",A="FL:::/Kernel/KernelA.HPP,2607"$
+$LK,"FUf_JUST_JIT",A="FL:::/Kernel/KernelA.HPP,2581"$
+$LK,"CAsmIns",A="FL:::/Kernel/KernelA.HPP,1831"$
 $LK,"InU32",A="FL:::/Kernel/KernelB.HPP,75"$
 $LK,"InU16",A="FL:::/Kernel/KernelB.HPP,74"$
-$LK,"TK_IF",A="FL:::/Kernel/KernelA.HPP,2076"$
-$LK,"DOCT_BLINK",A="FL:::/Kernel/KernelA.HPP,916"$
+$LK,"TK_IF",A="FL:::/Kernel/KernelA.HPP,2096"$
+$LK,"DOCT_BLINK",A="FL:::/Kernel/KernelA.HPP,918"$
 $LK,"U32",A="FL:::/Kernel/KernelA.HPP,77"$
 $LK,"U16",A="FL:::/Kernel/KernelA.HPP,65"$
 $LK,"_XCHG_I64",A="FL:::/Kernel/KUtils.CPP.Z,184"$
 $LK,"ATANop",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,48",BI=313$
 $LK,"TaskDel",A="FL:::/Kernel/KTask.CPP.Z,405",BI=314$
 $LK,"LXchgU8",A="FL:::/Kernel/KernelB.HPP,262"$
-$LK,"AAT_SUB_U64",A="FL:::/Kernel/KernelA.HPP,1952"$
+$LK,"AAT_SUB_U64",A="FL:::/Kernel/KernelA.HPP,1972"$
 $LK,"HasLower",A="FL:::/Kernel/FunSeg.CPP.Z,1",BI=315$
 $LK,"_CALL",A="FL:::/Kernel/KUtils.CPP.Z,145"$
-$LK,"IA32F_SCE",A="FL:::/Kernel/KernelA.HPP,514"$
+$LK,"IA32F_SCE",A="FL:::/Kernel/KernelA.HPP,515"$
 $LK,"MIN_F64",A="FL:::/Kernel/KernelA.HPP,45"$
-$LK,"__LINE__",A="FL:::/Kernel/KernelA.HPP,2003"$
-$LK,"FUF_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HPP,2593"$
+$LK,"__LINE__",A="FL:::/Kernel/KernelA.HPP,2023"$
+$LK,"FUF_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HPP,2612"$
 $LK,"KeyDescSet",A="FL:::/Kernel/KeyDev.CPP.Z,56",BI=316$
 $LK,"U64",A="FL:::/Kernel/KernelA.HPP,93"$
 $LK,"MIN_I32",A="FL:::/Kernel/KernelA.HPP,30"$
@@ -1412,131 +1415,131 @@ $LK,"FSize",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,1",BI=317$
 $LK,"IntEntrySet",A="FL:::/Kernel/KInts.CPP.Z,102",BI=318$
 $LK,"Mem32DevIns",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,1",BI=319$
 $LK,"SYS_MP_CNT_INITIAL",A="FL:::/Kernel/KStart.CPP.Z,225"$
-$LK,"FUf_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HPP,2567"$
+$LK,"FUf_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HPP,2586"$
 $LK,"_FXRSTOR",A="FL:::/Kernel/KMathA.CPP.Z,658"$
 $LK,"_CEIL",A="FL:::/Kernel/KMathA.CPP.Z,441"$
-$LK,"INVALID_CLUSTER",A="FL:::/Kernel/KernelA.HPP,2276"$
+$LK,"INVALID_CLUSTER",A="FL:::/Kernel/KernelA.HPP,2295"$
 $LK,"TaskEnd",A="FL:::/Kernel/KTask.CPP.Z,413",BI=320$
 $LK,"MIN_I64",A="FL:::/Kernel/KernelA.HPP,34"$
 $LK,"TaskCaller",A="FL:::/Kernel/KDbg.CPP.Z,75",BI=321$
-$LK,"SV_NONE",A="FL:::/Kernel/KernelA.HPP,1722"$
+$LK,"SV_NONE",A="FL:::/Kernel/KernelA.HPP,1740"$
 $LK,"QUE_VECT_U8_CNT",A="FL:::/Kernel/KernelA.HPP,160"$
-$LK,"__DEPTH__",A="FL:::/Kernel/KernelA.HPP,2005"$
-$LK,"RT_I0",A="FL:::/Kernel/KernelA.HPP,1543"$
-$LK,"DOCEF_LEFT_MACRO",A="FL:::/Kernel/KernelA.HPP,965"$
-$LK,"TK_DEREFERENCE",A="FL:::/Kernel/KernelA.HPP,2056"$
-$LK,"ARGT_UIMM8",A="FL:::/Kernel/KernelA.HPP,1866"$
-$LK,"DOCF_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1266"$
-$LK,"DOCEf_LEFT_MACRO",A="FL:::/Kernel/KernelA.HPP,1051"$
+$LK,"__DEPTH__",A="FL:::/Kernel/KernelA.HPP,2025"$
+$LK,"RT_I0",A="FL:::/Kernel/KernelA.HPP,1549"$
+$LK,"DOCEF_LEFT_MACRO",A="FL:::/Kernel/KernelA.HPP,967"$
+$LK,"TK_DEREFERENCE",A="FL:::/Kernel/KernelA.HPP,2076"$
+$LK,"ARGT_UIMM8",A="FL:::/Kernel/KernelA.HPP,1885"$
+$LK,"DOCF_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1272"$
+$LK,"DOCEf_LEFT_MACRO",A="FL:::/Kernel/KernelA.HPP,1055"$
 $LK,"SYS_GDT",A="FL:::/Kernel/KStart.CPP.Z,36"$
 $LK,"CDate2Dos",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,1",BI=322$
 $LK,"SrvCmdRunOne",A="FL:::/Kernel/SrvCmd.CPP.Z,267",BI=323$
-$LK,"MRT_UNUSED",A="FL:::/Kernel/KernelA.HPP,2836"$
+$LK,"MRT_UNUSED",A="FL:::/Kernel/KernelA.HPP,2855"$
+$LK,"MDG_REG_DISP_SIB",A="FL:::/Kernel/KernelA.HPP,1583"$
 $LK,"RedSeaFilesDel",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,456",BI=324$
 $LK,"XchgU32",A="FL:::/Kernel/KernelB.HPP,268"$
 $LK,"XchgU16",A="FL:::/Kernel/KernelB.HPP,267"$
-$LK,"TK_SHL_EQU",A="FL:::/Kernel/KernelA.HPP,2067"$
-$LK,"CCntsGlbls",A="FL:::/Kernel/KernelA.HPP,533"$
+$LK,"TK_SHL_EQU",A="FL:::/Kernel/KernelA.HPP,2087"$
+$LK,"CCntsGlbls",A="FL:::/Kernel/KernelA.HPP,534"$
 $LK,"TEMP_BUF_LEN",A="FL:::/Kernel/StrPrint.CPP.Z,216"$
 $LK,"LastDayOfMon",A="FL:::/Kernel/KDate.CPP.Z,82",BI=325$
-$LK,"RT_I8",A="FL:::/Kernel/KernelA.HPP,1545"$
-$LK,"SVCf_WAKE_MASTER",A="FL:::/Kernel/KernelA.HPP,3149"$
-$LK,"CAsmNum",A="FL:::/Kernel/KernelA.HPP,1797"$
+$LK,"RT_I8",A="FL:::/Kernel/KernelA.HPP,1551"$
+$LK,"SVCf_WAKE_MASTER",A="FL:::/Kernel/KernelA.HPP,3168"$
+$LK,"CAsmNum",A="FL:::/Kernel/KernelA.HPP,1816"$
 $LK,"_REP_OUT_U16",A="FL:::/Kernel/KUtils.CPP.Z,297"$
 $LK,"_REP_OUT_U32",A="FL:::/Kernel/KUtils.CPP.Z,286"$
-$LK,"VGAM_TEXT",A="FL:::/Kernel/KernelA.HPP,3699"$
-$LK,"ACD_POS",A="FL:::/Kernel/KernelA.HPP,1499"$
+$LK,"VGAM_TEXT",A="FL:::/Kernel/KernelA.HPP,3718"$
+$LK,"ACD_POS",A="FL:::/Kernel/KernelA.HPP,1505"$
 $LK,"FirstDayOfMon",A="FL:::/Kernel/KDate.CPP.Z,71",BI=326$
 $LK,"PutChars",A="FL:::/Kernel/KeyDev.CPP.Z,20",BI=327$
 $LK,"_BEQU",A="FL:::/Kernel/KUtils.CPP.Z,89"$
-$LK,"DOCEf_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1056"$
-$LK,"DOCEF_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,970"$
-$LK,"ansf",A="FL:::/Kernel/KernelA.HPP,3394"$
+$LK,"DOCEf_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1060"$
+$LK,"DOCEF_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,972"$
+$LK,"ansf",A="FL:::/Kernel/KernelA.HPP,3413"$
 $LK,"BlkDevsInitAll",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,207",BI=328$
 $LK,"SysUntry",A="FL:::/Kernel/KExcept.CPP.Z,75",BI=329$
-$LK,"WIF_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HPP,1420"$
+$LK,"WIF_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HPP,1426"$
 $LK,"_MEMCMP",A="FL:::/Kernel/KUtils.CPP.Z,70"$
-$LK,"DISPLAYf_NO_BORDER",A="FL:::/Kernel/KernelA.HPP,3272"$
+$LK,"DISPLAYf_NO_BORDER",A="FL:::/Kernel/KernelA.HPP,3291"$
 $LK,"OFF",A="FL:::/Kernel/KernelA.HPP,21"$
-$LK,"DOCF_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HPP,1268"$
+$LK,"DOCF_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HPP,1274"$
 $LK,"SYS_BOOT_SRC",A="FL:::/Kernel/KStart.CPP.Z,24"$
-$LK,"FUF_JUST_SRC",A="FL:::/Kernel/KernelA.HPP,2586"$
-$LK,"FUf_JUST_SRC",A="FL:::/Kernel/KernelA.HPP,2560"$
-$LK,"OC_CALL",A="FL:::/Kernel/KernelA.HPP,1741"$
+$LK,"FUF_JUST_SRC",A="FL:::/Kernel/KernelA.HPP,2605"$
+$LK,"FUf_JUST_SRC",A="FL:::/Kernel/KernelA.HPP,2579"$
+$LK,"OC_CALL",A="FL:::/Kernel/KernelA.HPP,1759"$
 $LK,"TaskExe",A="FL:::/Kernel/SrvCmd.CPP.Z,39",BI=330$
 $LK,"ThrowBreak",A="FL:::/Kernel/KExcept.CPP.Z,125",BI=331$
 $LK,"FileWrite",A="FL:::/Kernel/BlkDev/DskFile.CPP.Z,94",BI=332$
-$LK,"ARf_CSPRITE_PTS_RECTANGLES",A="FL:::/Kernel/KernelA.HPP,3877"$
+$LK,"ARf_CSPRITE_PTS_RECTANGLES",A="FL:::/Kernel/KernelA.HPP,3896"$
 $LK,"RFLAGf_ID",A="FL:::/Kernel/KernelA.HPP,322"$
-$LK,"SCF_E0_PREFIX",A="FL:::/Kernel/KernelA.HPP,3514"$
-$LK,"SCf_E0_PREFIX",A="FL:::/Kernel/KernelA.HPP,3499"$
+$LK,"SCF_E0_PREFIX",A="FL:::/Kernel/KernelA.HPP,3533"$
+$LK,"SCf_E0_PREFIX",A="FL:::/Kernel/KernelA.HPP,3518"$
 $LK,"ATAWaitNotBUSY",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,24",BI=333$
 $LK,"_XCHG_U16",A="FL:::/Kernel/KUtils.CPP.Z,200"$
 $LK,"_XCHG_U32",A="FL:::/Kernel/KUtils.CPP.Z,192"$
-$LK,"SUF_TO_LOWER",A="FL:::/Kernel/KernelA.HPP,3771"$
-$LK,"ARGT_XMM32",A="FL:::/Kernel/KernelA.HPP,1920"$
-$LK,"WIF_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1408"$
+$LK,"SUF_TO_LOWER",A="FL:::/Kernel/KernelA.HPP,3790"$
+$LK,"ARGT_XMM32",A="FL:::/Kernel/KernelA.HPP,1939"$
+$LK,"WIF_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1414"$
 $LK,"LDF_SILENT",A="FL:::/Kernel/KernelA.HPP,367"$
-$LK,"RED",A="FL:::/Kernel/KernelA.HPP,2933"$
-$LK,"RT_U0",A="FL:::/Kernel/KernelA.HPP,1544"$
-$LK,"SYS_SEMA_DEBUG",A="FL:::/Kernel/KernelA.HPP,589"$
+$LK,"RED",A="FL:::/Kernel/KernelA.HPP,2952"$
+$LK,"RT_U0",A="FL:::/Kernel/KernelA.HPP,1550"$
+$LK,"SYS_SEMA_DEBUG",A="FL:::/Kernel/KernelA.HPP,590"$
 $LK,"SrvCmdDel",A="FL:::/Kernel/SrvCmd.CPP.Z,1",BI=334$
-$LK,"VGAR_MAP_MASK",A="FL:::/Kernel/KernelA.HPP,3717"$
-$LK,"CAOTCtrl",A="FL:::/Kernel/KernelA.HPP,2027"$
-$LK,"SCF_NEW_KEY",A="FL:::/Kernel/KernelA.HPP,3522"$
+$LK,"VGAR_MAP_MASK",A="FL:::/Kernel/KernelA.HPP,3736"$
+$LK,"CAOTCtrl",A="FL:::/Kernel/KernelA.HPP,2047"$
+$LK,"SCF_NEW_KEY",A="FL:::/Kernel/KernelA.HPP,3541"$
 $LK,"TASK_CONTEXT_SAVE",A="FL:::/Kernel/Sched.CPP.Z,56"$
-$LK,"SCf_NEW_KEY",A="FL:::/Kernel/KernelA.HPP,3507"$
-$LK,"CDirContext",A="FL:::/Kernel/KernelA.HPP,2742"$
+$LK,"SCf_NEW_KEY",A="FL:::/Kernel/KernelA.HPP,3526"$
+$LK,"CDirContext",A="FL:::/Kernel/KernelA.HPP,2761"$
 $LK,"BootDVDProbeAll",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,28",BI=335$
 $LK,"SysThrowBreak",A="FL:::/Kernel/KExcept.CPP.Z,111",BI=336$
 $LK,"_MEMCPY",A="FL:::/Kernel/KUtils.CPP.Z,55"$
 $LK,"_D3_DIST_SQR",A="FL:::/Kernel/KMathA.CPP.Z,61"$
-$LK,"ARGT_XMM64",A="FL:::/Kernel/KernelA.HPP,1921"$
+$LK,"ARGT_XMM64",A="FL:::/Kernel/KernelA.HPP,1940"$
 $LK,"ATAWriteBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,461",BI=337$
-$LK,"RT_U8",A="FL:::/Kernel/KernelA.HPP,1546"$
-$LK,"DOCEf_USER_DATA",A="FL:::/Kernel/KernelA.HPP,1060"$
-$LK,"DOCEF_USER_DATA",A="FL:::/Kernel/KernelA.HPP,974"$
+$LK,"RT_U8",A="FL:::/Kernel/KernelA.HPP,1552"$
+$LK,"DOCEf_USER_DATA",A="FL:::/Kernel/KernelA.HPP,1064"$
+$LK,"DOCEF_USER_DATA",A="FL:::/Kernel/KernelA.HPP,976"$
 $LK,"COPY_BUF_BLKS",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,22"$
 $LK,"FAT32FileWrite",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,813",BI=338$
-$LK,"CISO1Date",A="FL:::/Kernel/KernelA.HPP,2429"$
-$LK,"EDf_BAIL",A="FL:::/Kernel/KernelA.HPP,1242"$
-$LK,"EDF_BAIL",A="FL:::/Kernel/KernelA.HPP,1236"$
+$LK,"CISO1Date",A="FL:::/Kernel/KernelA.HPP,2448"$
+$LK,"EDf_BAIL",A="FL:::/Kernel/KernelA.HPP,1248"$
+$LK,"EDF_BAIL",A="FL:::/Kernel/KernelA.HPP,1242"$
 $LK,"ChkCodePtr",A="FL:::/Kernel/KDbg.CPP.Z,16",BI=339$
 $LK,"SYS_RAM_REBOOT",A="FL:::/Kernel/KStart.CPP.Z,348"$
-$LK,"ISO1T_BOOT_RECORD",A="FL:::/Kernel/KernelA.HPP,2454"$
+$LK,"ISO1T_BOOT_RECORD",A="FL:::/Kernel/KernelA.HPP,2473"$
 $LK,"FileFind",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,57",BI=340$
 $LK,"SYS_FIND_PCI_SERVICES",A="FL:::/Kernel/PCIBIOS.CPP.Z,38"$
-$LK,"VGAP_ATTR_DATA_WRITE",A="FL:::/Kernel/KernelA.HPP,3703"$
-$LK,"FUF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,2595"$
-$LK,"TK_MUL_EQU",A="FL:::/Kernel/KernelA.HPP,2069"$
-$LK,"TK_NOT_EQU",A="FL:::/Kernel/KernelA.HPP,2061"$
+$LK,"VGAP_ATTR_DATA_WRITE",A="FL:::/Kernel/KernelA.HPP,3722"$
+$LK,"FUF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,2614"$
+$LK,"TK_MUL_EQU",A="FL:::/Kernel/KernelA.HPP,2089"$
+$LK,"TK_NOT_EQU",A="FL:::/Kernel/KernelA.HPP,2081"$
 $LK,"MIN_U32",A="FL:::/Kernel/KernelA.HPP,32"$
 $LK,"MIN_U16",A="FL:::/Kernel/KernelA.HPP,28"$
 $LK,"CFileNameTo",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,1",BI=341$
 $LK,"IntNop",A="FL:::/Kernel/KInts.CPP.Z,136",BI=342$
 $LK,"_D3_MUL_EQU",A="FL:::/Kernel/KMathA.CPP.Z,273"$
-$LK,"DISPLAYf_SHOW",A="FL:::/Kernel/KernelA.HPP,3269"$
-$LK,"DOF_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1211"$
-$LK,"HTF_PUBLIC",A="FL:::/Kernel/KernelA.HPP,698"$
-$LK,"HTf_PUBLIC",A="FL:::/Kernel/KernelA.HPP,668"$
+$LK,"DISPLAYf_SHOW",A="FL:::/Kernel/KernelA.HPP,3288"$
+$LK,"DOF_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1217"$
+$LK,"HTF_PUBLIC",A="FL:::/Kernel/KernelA.HPP,699"$
+$LK,"HTf_PUBLIC",A="FL:::/Kernel/KernelA.HPP,669"$
 $LK,"SYS_HASH_SINGLE_TABLE_FIND",A="FL:::/Kernel/KHashA.CPP.Z,41"$
-$LK,"OC_OP_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HPP,1736"$
-$LK,"ICF_NOT_ADDR",A="FL:::/Kernel/KernelA.HPP,1583"$
-$LK,"CCF_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,2122"$
-$LK,"MLF_FUN",A="FL:::/Kernel/KernelA.HPP,772"$
+$LK,"OC_OP_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HPP,1754"$
+$LK,"CCF_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,2142"$
+$LK,"MLF_FUN",A="FL:::/Kernel/KernelA.HPP,773"$
 $LK,"TaskMsg",A="FL:::/Kernel/SrvCmd.CPP.Z,119",BI=343$
 $LK,"RBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,31",BI=344$
-$LK,"DOCEF_ZERO_BASED",A="FL:::/Kernel/KernelA.HPP,1008"$
-$LK,"HTF_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,704"$
+$LK,"DOCEF_ZERO_BASED",A="FL:::/Kernel/KernelA.HPP,1010"$
+$LK,"HTF_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,705"$
 $LK,"FAT32Cd",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,399",BI=345$
-$LK,"DOCEf_ZERO_BASED",A="FL:::/Kernel/KernelA.HPP,1092"$
-$LK,"HTf_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,674"$
-$LK,"CAP16BitInit",A="FL:::/Kernel/KernelA.HPP,521"$
+$LK,"DOCEf_ZERO_BASED",A="FL:::/Kernel/KernelA.HPP,1096"$
+$LK,"HTf_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,675"$
+$LK,"CAP16BitInit",A="FL:::/Kernel/KernelA.HPP,522"$
 $LK,"ATAPIWriteBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,535",BI=346$
 $LK,"cnts",A="FL:::/Kernel/KGlbls.CPP.Z,20"$
 $LK,"chars_bmp_displayable",A="FL:::/Kernel/StrA.CPP.Z,386"$
 $LK,"SYS_HEAP_INIT_FLAG",A="FL:::/Home/Temp.TXT.Z,1"$
-$LK,"FUF_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,2594"$
+$LK,"FUF_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,2613"$
 $LK,"ScanChar",A="FL:::/Kernel/SerialDev/Message.CPP.Z,110",BI=347$
 $LK,"RepInU32",A="FL:::/Kernel/KernelB.HPP,83"$
 $LK,"RepInU16",A="FL:::/Kernel/KernelB.HPP,81"$
@@ -1544,27 +1547,27 @@ $LK,"loge_2",A="FL:::/Kernel/KernelA.HPP,54"$
 $LK,"MIN_U64",A="FL:::/Kernel/KernelA.HPP,36"$
 $LK,"chars_bmp_white_space",A="FL:::/Kernel/StrA.CPP.Z,356"$
 $LK,"FAT32FileFind",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,298",BI=348$
-$LK,"GSF_SHIFT_ESC_EXIT",A="FL:::/Kernel/KernelA.HPP,3760"$
-$LK,"SFG_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,3781"$
-$LK,"FUf_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,2568"$
-$LK,"DOCf_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HPP,1304"$
-$LK,"DOCf_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1298"$
-$LK,"DOCF_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1262"$
+$LK,"GSF_SHIFT_ESC_EXIT",A="FL:::/Kernel/KernelA.HPP,3779"$
+$LK,"SFG_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,3800"$
+$LK,"FUf_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,2587"$
+$LK,"DOCf_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HPP,1310"$
+$LK,"DOCf_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1304"$
+$LK,"DOCF_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1268"$
 $LK,"DirTreeDel2",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,49",BI=349$
-$LK,"FUF_JUST_TXT",A="FL:::/Kernel/KernelA.HPP,2585"$
-$LK,"FUf_JUST_TXT",A="FL:::/Kernel/KernelA.HPP,2559"$
-$LK,"DOCT_DFT_BACKGROUND",A="FL:::/Kernel/KernelA.HPP,911"$
-$LK,"DOCT_DFT_FOREGROUND",A="FL:::/Kernel/KernelA.HPP,910"$
-$LK,"BOOT_SRC_HARDDRV",A="FL:::/Kernel/KernelA.HPP,3864"$
+$LK,"FUF_JUST_TXT",A="FL:::/Kernel/KernelA.HPP,2604"$
+$LK,"FUf_JUST_TXT",A="FL:::/Kernel/KernelA.HPP,2578"$
+$LK,"DOCT_DFT_BACKGROUND",A="FL:::/Kernel/KernelA.HPP,913"$
+$LK,"DOCT_DFT_FOREGROUND",A="FL:::/Kernel/KernelA.HPP,912"$
+$LK,"BOOT_SRC_HARDDRV",A="FL:::/Kernel/KernelA.HPP,3883"$
 $LK,"HashFind",A="FL:::/Kernel/KHashA.CPP.Z,255"$
 $LK,"D3Cross",A="FL:::/Kernel/KernelB.HPP,153"$
-$LK,"MAX_PTR_STARS",A="FL:::/Kernel/KernelA.HPP,766"$
-$LK,"DOCEF_ESC",A="FL:::/Kernel/KernelA.HPP,993"$
+$LK,"MAX_PTR_STARS",A="FL:::/Kernel/KernelA.HPP,767"$
+$LK,"DOCEF_ESC",A="FL:::/Kernel/KernelA.HPP,995"$
 $LK,"_FREE",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,224"$
 $LK,"SrcLineNum",A="FL:::/Kernel/FunSeg.CPP.Z,144",BI=350$
 $LK,"ATAPIClose",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,521",BI=351$
-$LK,"DOCT_MACRO",A="FL:::/Kernel/KernelA.HPP,926"$
-$LK,"CH_SHIFT_ESC",A="FL:::/Kernel/KernelA.HPP,3491"$
+$LK,"DOCT_MACRO",A="FL:::/Kernel/KernelA.HPP,928"$
+$LK,"CH_SHIFT_ESC",A="FL:::/Kernel/KernelA.HPP,3510"$
 $LK,"InDbg",A="FL:::/Kernel/KMisc.CPP.Z,265",BI=352$
 $LK,"Dbg",A="FL:::/Kernel/KDbg.CPP.Z,636",BI=353$
 $LK,"Abs",A="FL:::/Kernel/KernelB.HPP,95"$
@@ -1572,97 +1575,99 @@ $LK,"CDATE_YEAR_DAYS",A="FL:::/Kernel/KernelA.HPP,181"$
 $LK,"RFLAGf_OVERFLOW",A="FL:::/Kernel/KernelA.HPP,313"$
 $LK,"SYS_POW",A="FL:::/Kernel/KMathA.CPP.Z,462"$
 $LK,"StrNICmp",A="FL:::/Kernel/StrA.CPP.Z,315"$
-$LK,"DOCf_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1302"$
-$LK,"DOCEf_RIGHT_X",A="FL:::/Kernel/KernelA.HPP,1069"$
-$LK,"DOCEF_RIGHT_X",A="FL:::/Kernel/KernelA.HPP,983"$
-$LK,"DCF_FILL_NOT_COLOR",A="FL:::/Kernel/KernelA.HPP,3616"$
-$LK,"DOCEF_LEN",A="FL:::/Kernel/KernelA.HPP,960"$
+$LK,"DOCf_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1308"$
+$LK,"DOCEf_RIGHT_X",A="FL:::/Kernel/KernelA.HPP,1073"$
+$LK,"DOCEF_RIGHT_X",A="FL:::/Kernel/KernelA.HPP,985"$
+$LK,"DCF_FILL_NOT_COLOR",A="FL:::/Kernel/KernelA.HPP,3635"$
+$LK,"DOCEF_LEN",A="FL:::/Kernel/KernelA.HPP,962"$
 $LK,"FileAttr",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,228",BI=354$
 $LK,"_MEMSET",A="FL:::/Kernel/KUtils.CPP.Z,3"$
-$LK,"ROP_COLLISION",A="FL:::/Kernel/KernelA.HPP,2915"$
-$LK,"TK_PLUS_PLUS",A="FL:::/Kernel/KernelA.HPP,2054"$
+$LK,"ROP_COLLISION",A="FL:::/Kernel/KernelA.HPP,2934"$
+$LK,"TK_PLUS_PLUS",A="FL:::/Kernel/KernelA.HPP,2074"$
 $LK,"sys_heap_init_val",A="FL:::/Kernel/KernelB.HPP,188"$
-$LK,"DOCEF_DEREF_DATA",A="FL:::/Kernel/KernelA.HPP,1005"$
-$LK,"VGAP_REG_WRITE",A="FL:::/Kernel/KernelA.HPP,3710"$
-$LK,"FUF_EXPAND",A="FL:::/Kernel/KernelA.HPP,2581"$
-$LK,"FUf_EXPAND",A="FL:::/Kernel/KernelA.HPP,2555"$
-$LK,"DOCEf_DEREF_DATA",A="FL:::/Kernel/KernelA.HPP,1089"$
+$LK,"DOCEF_DEREF_DATA",A="FL:::/Kernel/KernelA.HPP,1007"$
+$LK,"VGAP_REG_WRITE",A="FL:::/Kernel/KernelA.HPP,3729"$
+$LK,"FUF_EXPAND",A="FL:::/Kernel/KernelA.HPP,2600"$
+$LK,"FUf_EXPAND",A="FL:::/Kernel/KernelA.HPP,2574"$
+$LK,"DOCEf_DEREF_DATA",A="FL:::/Kernel/KernelA.HPP,1093"$
 $LK,"Del",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,82",BI=355$
 $LK,"IDTET_TASK",A="FL:::/Kernel/KernelA.HPP,278"$
 $LK,"TaskValidate",A="FL:::/Kernel/KTask.CPP.Z,19",BI=356$
-$LK,"LAPIC_ARIBITRATION_PRIORITY",A="FL:::/Kernel/KernelA.HPP,478"$
+$LK,"LAPIC_ARIBITRATION_PRIORITY",A="FL:::/Kernel/KernelA.HPP,479"$
 $LK,"fp_set_std_palette",A="FL:::/Kernel/KGlbls.CPP.Z,34"$
 $LK,"keydev",A="FL:::/Kernel/KGlbls.CPP.Z,26"$
 $LK,"HashBucketFind",A="FL:::/Kernel/KHashA.CPP.Z,260"$
-$LK,"IC_BODY_SIZE",A="FL:::/Kernel/KernelA.HPP,1606"$
-$LK,"TY_DISP",A="FL:::/Kernel/KernelA.HPP,1564"$
-$LK,"TY_RIP_DISP32",A="FL:::/Kernel/KernelA.HPP,1566"$
+$LK,"OCF_ALIAS",A="FL:::/Kernel/KernelA.HPP,1945"$
+$LK,"IC_BODY_SIZE",A="FL:::/Kernel/KernelA.HPP,1620"$
 $LK,"chars_bmp_alpha_numeric",A="FL:::/Kernel/StrA.CPP.Z,330"$
 $LK,"_LOG2",A="FL:::/Kernel/KMathA.CPP.Z,603"$
-$LK,"ROPB_COLLISION",A="FL:::/Kernel/KernelA.HPP,2906"$
-$LK,"HTT_WORD",A="FL:::/Kernel/KernelA.HPP,685"$
-$LK,"HTt_WORD",A="FL:::/Kernel/KernelA.HPP,655"$
-$LK,"FUG_FILE_FIND",A="FL:::/Kernel/KernelA.HPP,2601"$
+$LK,"ROPB_COLLISION",A="FL:::/Kernel/KernelA.HPP,2925"$
+$LK,"HTT_WORD",A="FL:::/Kernel/KernelA.HPP,686"$
+$LK,"HTt_WORD",A="FL:::/Kernel/KernelA.HPP,656"$
+$LK,"FUG_FILE_FIND",A="FL:::/Kernel/KernelA.HPP,2620"$
 $LK,"I_PAGE_FAULT",A="FL:::/Kernel/KernelA.HPP,288"$
 $LK,"DrvUnlock",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,14",BI=357$
-$LK,"CProgress",A="FL:::/Kernel/KernelA.HPP,3883"$
+$LK,"CProgress",A="FL:::/Kernel/KernelA.HPP,3902"$
 $LK,"Arg",A="FL:::/Kernel/KernelB.HPP,121"$
-$LK,"FSt_ISO9660",A="FL:::/Kernel/KernelA.HPP,2661"$
+$LK,"FSt_ISO9660",A="FL:::/Kernel/KernelA.HPP,2680"$
 $LK,"CallExtNum",A="FL:::/Kernel/KernelB.HPP,54"$
 $LK,"DirFile",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,284",BI=358$
-$LK,"DOCEF_TAG",A="FL:::/Kernel/KernelA.HPP,959"$
+$LK,"DOCEF_TAG",A="FL:::/Kernel/KernelA.HPP,961"$
 $LK,"Btc",A="FL:::/Kernel/KernelB.HPP,16"$
-$LK,"CCF_KEEP_NEW_LINES",A="FL:::/Kernel/KernelA.HPP,2110"$
+$LK,"CCF_KEEP_NEW_LINES",A="FL:::/Kernel/KernelA.HPP,2130"$
+$LK,"MDF_RIP_DISP32",A="FL:::/Kernel/KernelA.HPP,1581"$
 $LK,"Dir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,91",BI=359$
 $LK,"Bsf",A="FL:::/Kernel/KernelB.HPP,10"$
-$LK,"ECF_HAS_PUSH_CMP",A="FL:::/Kernel/KernelA.HPP,1608"$
-$LK,"WIf_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1434"$
-$LK,"DOCT_PAGE_BREAK",A="FL:::/Kernel/KernelA.HPP,901"$
-$LK,"SYS_SEMA_RECORD_MACRO",A="FL:::/Kernel/KernelA.HPP,590"$
+$LK,"MDf_RIP_DISP32",A="FL:::/Kernel/KernelA.HPP,1573"$
+$LK,"ECF_HAS_PUSH_CMP",A="FL:::/Kernel/KernelA.HPP,1622"$
+$LK,"WIf_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1440"$
+$LK,"DOCT_PAGE_BREAK",A="FL:::/Kernel/KernelA.HPP,903"$
+$LK,"SYS_SEMA_RECORD_MACRO",A="FL:::/Kernel/KernelA.HPP,591"$
 $LK,"IPVarsUpdate",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,9",BI=360$
-$LK,"MLF_LASTCLASS",A="FL:::/Kernel/KernelA.HPP,770"$
+$LK,"MLF_LASTCLASS",A="FL:::/Kernel/KernelA.HPP,771"$
 $LK,"Fxrstor",A="FL:::/Kernel/KernelB.HPP,133"$
-$LK,"_R8",A="FL:::/Kernel/KernelA.HPP,3405"$
-$LK,"_R9",A="FL:::/Kernel/KernelA.HPP,3406"$
+$LK,"_R8",A="FL:::/Kernel/KernelA.HPP,3424"$
+$LK,"_R9",A="FL:::/Kernel/KernelA.HPP,3425"$
 $LK,"FileRead",A="FL:::/Kernel/BlkDev/DskFile.CPP.Z,1",BI=361$
-$LK,"DOCf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1308"$
-$LK,"DOCF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1271"$
-$LK,"DOCT_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,934"$
+$LK,"DOCf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1314"$
+$LK,"DOCF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1277"$
+$LK,"DOCT_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,936"$
 $LK,"_FAR_CALL32",A="FL:::/Kernel/PCIBIOS.CPP.Z,69"$
 $LK,"KbdMouseCmdAck",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,65",BI=362$
-$LK,"CAOTHeapGlblRef",A="FL:::/Kernel/KernelA.HPP,1960"$
+$LK,"CAOTHeapGlblRef",A="FL:::/Kernel/KernelA.HPP,1980"$
+$LK,"IEF_IMM_NOT_REL",A="FL:::/Kernel/KernelA.HPP,402"$
 $LK,"FAT32DirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,241",BI=363$
 $LK,"QueCopy",A="FL:::/Kernel/KDataTypes.CPP.Z,53",BI=364$
 $LK,"Carry",A="FL:::/Kernel/KernelB.HPP,246"$
 $LK,"Cos",A="FL:::/Kernel/KernelB.HPP,97"$
 $LK,"Clamp",A="FL:::/Kernel/KMathB.CPP.Z,1",BI=365$
-$LK,"BDF_FMT",A="FL:::/Kernel/KernelA.HPP,2618"$
+$LK,"BDF_FMT",A="FL:::/Kernel/KernelA.HPP,2637"$
 $LK,"Name2DirCluster",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,10",BI=366$
 $LK,"Bsr",A="FL:::/Kernel/KernelB.HPP,12"$
 $LK,"SYS_PROGRESS1_MAX",A="FL:::/Kernel/KStart.CPP.Z,209"$
-$LK,"GR_Z_ALL",A="FL:::/Kernel/KernelA.HPP,3595"$
-$LK,"CMasterBoot",A="FL:::/Kernel/KernelA.HPP,2290"$
+$LK,"GR_Z_ALL",A="FL:::/Kernel/KernelA.HPP,3614"$
+$LK,"CMasterBoot",A="FL:::/Kernel/KernelA.HPP,2309"$
 $LK,"Fix",A="FL:::/Kernel/EdLite.CPP.Z,337",BI=367$
 $LK,"Btr",A="FL:::/Kernel/KernelB.HPP,18"$
 $LK,"_LN",A="FL:::/Kernel/KMathA.CPP.Z,614"$
-$LK,"OPTf_WARN_UNUSED_VAR",A="FL:::/Kernel/KernelA.HPP,1528"$
-$LK,"DOCF_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1280"$
+$LK,"OPTf_WARN_UNUSED_VAR",A="FL:::/Kernel/KernelA.HPP,1534"$
+$LK,"DOCF_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1286"$
 $LK,"RFLAGf_CARRY",A="FL:::/Kernel/KernelA.HPP,305"$
 $LK,"FAT32FileRead",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,367",BI=368$
 $LK,"DirFilesFlatten",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,136",BI=369$
 $LK,"FileExtDot",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,1",BI=370$
 $LK,"IsDbg",A="FL:::/Kernel/KMisc.CPP.Z,270",BI=371$
 $LK,"Bts",A="FL:::/Kernel/KernelB.HPP,20"$
-$LK,"CMemBlk",A="FL:::/Kernel/KernelA.HPP,2830"$
-$LK,"DOCEF_LST",A="FL:::/Kernel/KernelA.HPP,1011"$
+$LK,"CMemBlk",A="FL:::/Kernel/KernelA.HPP,2849"$
+$LK,"DOCEF_LST",A="FL:::/Kernel/KernelA.HPP,1013"$
 $LK,"Man",A="FL:::/Kernel/FunSeg.CPP.Z,284",BI=372$
 $LK,"Mem512Alloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,11",BI=373$
-$LK,"TK_SHR_EQU",A="FL:::/Kernel/KernelA.HPP,2068"$
-$LK,"CDATE_FREQ",A="FL:::/Kernel/KernelA.HPP,547"$
+$LK,"TK_SHR_EQU",A="FL:::/Kernel/KernelA.HPP,2088"$
+$LK,"CDATE_FREQ",A="FL:::/Kernel/KernelA.HPP,548"$
 $LK,"FilesFind",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,30",BI=374$
 $LK,"_HASH_FIND",A="FL:::/Kernel/KHashA.CPP.Z,129"$
 $LK,"MSize",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,384"$
-$LK,"CSysFixedArea",A="FL:::/Kernel/KernelA.HPP,3447"$
+$LK,"CSysFixedArea",A="FL:::/Kernel/KernelA.HPP,3466"$
 $LK,"Fmt",A="FL:::/Kernel/BlkDev/DskFmt.CPP.Z,53",BI=375$
 $LK,"ExeCmdLine",A="FL:::/Kernel/KTask.CPP.Z,268",BI=376$
 $LK,"reverse_bits_table",A="FL:::/Kernel/KGlbls.CPP.Z,12"$
@@ -1670,1193 +1675,1203 @@ $LK,"Log10",A="FL:::/Kernel/KernelB.HPP,136"$
 $LK,"FifoI64Flush",A="FL:::/Kernel/KDataTypes.CPP.Z,304",BI=377$
 $LK,"InvlPg",A="FL:::/Kernel/KernelB.HPP,279"$
 $LK,"CallExtStr",A="FL:::/Kernel/KernelB.HPP,45"$
-$LK,"VGAM_GRAPHICS",A="FL:::/Kernel/KernelA.HPP,3698"$
-$LK,"DCF_LOCATE_NEAREST",A="FL:::/Kernel/KernelA.HPP,3612"$
-$LK,"Ff_ARGPOP",A="FL:::/Kernel/KernelA.HPP,844"$
-$LK,"SCF_ALT",A="FL:::/Kernel/KernelA.HPP,3518"$
-$LK,"CViewAngles",A="FL:::/Kernel/KernelA.HPP,3078"$
-$LK,"CArrayDim",A="FL:::/Kernel/KernelA.HPP,777"$
-$LK,"DOCEf_NUM_FLAGS",A="FL:::/Kernel/KernelA.HPP,1102"$
-$LK,"Ff_INTERNAL",A="FL:::/Kernel/KernelA.HPP,846"$
+$LK,"VGAM_GRAPHICS",A="FL:::/Kernel/KernelA.HPP,3717"$
+$LK,"DCF_LOCATE_NEAREST",A="FL:::/Kernel/KernelA.HPP,3631"$
+$LK,"Ff_ARGPOP",A="FL:::/Kernel/KernelA.HPP,845"$
+$LK,"SCF_ALT",A="FL:::/Kernel/KernelA.HPP,3537"$
+$LK,"CViewAngles",A="FL:::/Kernel/KernelA.HPP,3097"$
+$LK,"CArrayDim",A="FL:::/Kernel/KernelA.HPP,778"$
+$LK,"DOCEf_NUM_FLAGS",A="FL:::/Kernel/KernelA.HPP,1108"$
+$LK,"Ff_INTERNAL",A="FL:::/Kernel/KernelA.HPP,847"$
 $LK,"Drv",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,223",BI=378$
 $LK,"Fclex",A="FL:::/Kernel/KernelB.HPP,128"$
-$LK,"MEM_PROTECTED_LOW_LIMIT",A="FL:::/Kernel/KernelA.HPP,3444"$
+$LK,"MEM_PROTECTED_LOW_LIMIT",A="FL:::/Kernel/KernelA.HPP,3463"$
+$LK,"MDF_DISP",A="FL:::/Kernel/KernelA.HPP,1579"$
+$LK,"MDf_DISP",A="FL:::/Kernel/KernelA.HPP,1571"$
 $LK,"Blink",A="FL:::/Kernel/KMisc.CPP.Z,130",BI=379$
-$LK,"CDbgInfo",A="FL:::/Kernel/KernelA.HPP,714"$
-$LK,"IET_ZEROED_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,411"$
+$LK,"CDbgInfo",A="FL:::/Kernel/KernelA.HPP,715"$
+$LK,"IET_ZEROED_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,412"$
 $LK,"RFLAGf_V8086",A="FL:::/Kernel/KernelA.HPP,318"$
 $LK,"IDTET_TRAP",A="FL:::/Kernel/KernelA.HPP,280"$
 $LK,"SetRBP",A="FL:::/Kernel/KernelB.HPP,254"$
-$LK,"LTGREEN",A="FL:::/Kernel/KernelA.HPP,2939"$
-$LK,"DOCf_BLINK",A="FL:::/Kernel/KernelA.HPP,1310"$
-$LK,"DOCF_BLINK",A="FL:::/Kernel/KernelA.HPP,1273"$
-$LK,"DOCEf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1037"$
-$LK,"DOCEF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1031"$
+$LK,"LTGREEN",A="FL:::/Kernel/KernelA.HPP,2958"$
+$LK,"DOCf_BLINK",A="FL:::/Kernel/KernelA.HPP,1316"$
+$LK,"DOCF_BLINK",A="FL:::/Kernel/KernelA.HPP,1279"$
+$LK,"DOCEf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1041"$
+$LK,"DOCEF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1035"$
 $LK,"SysSymImportsResolve",A="FL:::/Kernel/KLoad.CPP.Z,55",BI=380$
-$LK,"RS_ATTR_HIDDEN",A="FL:::/Kernel/KernelA.HPP,2503"$
-$LK,"TY_MASK",A="FL:::/Kernel/KernelA.HPP,1570"$
+$LK,"RS_ATTR_HIDDEN",A="FL:::/Kernel/KernelA.HPP,2522"$
 $LK,"TaskEndNow",A="FL:::/Kernel/Sched.CPP.Z,296"$
 $LK,"Max",A="FL:::/Kernel/KMathB.CPP.Z,18",BI=381$
 $LK,"SYS_HASH_FIND",A="FL:::/Kernel/KHashA.CPP.Z,89"$
-$LK,"ROPF_DITHER",A="FL:::/Kernel/KernelA.HPP,2924"$
-$LK,"WIG_DBL_CLICK",A="FL:::/Kernel/KernelA.HPP,1423"$
-$LK,"SYS_SEMA_FIX",A="FL:::/Kernel/KernelA.HPP,610"$
+$LK,"ROPF_DITHER",A="FL:::/Kernel/KernelA.HPP,2943"$
+$LK,"WIG_DBL_CLICK",A="FL:::/Kernel/KernelA.HPP,1429"$
+$LK,"SYS_SEMA_FIX",A="FL:::/Kernel/KernelA.HPP,611"$
 $LK,"ToF64",A="FL:::/Kernel/KernelB.HPP,119"$
 $LK,"SYS_PROGRESS2_MAX",A="FL:::/Kernel/KStart.CPP.Z,212"$
-$LK,"CH_SHIFT_SPACE",A="FL:::/Kernel/KernelA.HPP,3492"$
-$LK,"ROPBF_DITHER",A="FL:::/Kernel/KernelA.HPP,2910"$
-$LK,"FF_WRITE",A="FL:::/Kernel/KernelA.HPP,2751"$
+$LK,"CH_SHIFT_SPACE",A="FL:::/Kernel/KernelA.HPP,3511"$
+$LK,"ROPBF_DITHER",A="FL:::/Kernel/KernelA.HPP,2929"$
+$LK,"FF_WRITE",A="FL:::/Kernel/KernelA.HPP,2770"$
 $LK,"SetRAX",A="FL:::/Kernel/KernelB.HPP,253"$
 $LK,"Min",A="FL:::/Kernel/KMathB.CPP.Z,10",BI=382$
 $LK,"mp_cnt",A="FL:::/Kernel/KernelB.HPP,234"$
 $LK,"Exp",A="FL:::/Kernel/KernelB.HPP,127"$
-$LK,"DCF_RECORD_EXTENTS",A="FL:::/Kernel/KernelA.HPP,3617"$
+$LK,"DCF_RECORD_EXTENTS",A="FL:::/Kernel/KernelA.HPP,3636"$
 $LK,"FAT32FilesFind",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,846",BI=383$
 $LK,"ISO1Cd",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,219",BI=384$
 $LK,"_HASH_ADD_AFTER",A="FL:::/Kernel/KHashA.CPP.Z,191"$
 $LK,"QueInit",A="FL:::/Kernel/KernelB.HPP,65"$
 $LK,"SrvTaskCont",A="FL:::/Kernel/KTask.CPP.Z,334",BI=385$
-$LK,"RS_ATTR_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2502"$
-$LK,"ICF_USE_UNSIGNED",A="FL:::/Kernel/KernelA.HPP,1579"$
+$LK,"RS_ATTR_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2521"$
+$LK,"ICF_USE_UNSIGNED",A="FL:::/Kernel/KernelA.HPP,1594"$
 $LK,"ATAGetDevId",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,163",BI=386$
 $LK,"WBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,68",BI=387$
-$LK,"DOCT_ERROR",A="FL:::/Kernel/KernelA.HPP,936"$
+$LK,"DOCT_ERROR",A="FL:::/Kernel/KernelA.HPP,938"$
 $LK,"CopySingle",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,23",BI=388$
-$LK,"EXT_WIN_TO_TOP",A="FL:::/Kernel/KernelA.HPP,571"$
+$LK,"EXT_WIN_TO_TOP",A="FL:::/Kernel/KernelA.HPP,572"$
 $LK,"MouseIPSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,200",BI=389$
 $LK,"ATAPIReadCapacity",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,253",BI=390$
 $LK,"MkDir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,146",BI=391$
 $LK,"IsDir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,76",BI=392$
 $LK,"SetMSR",A="FL:::/Kernel/KernelB.HPP,264"$
 $LK,"ToI64",A="FL:::/Kernel/KernelB.HPP,120"$
-$LK,"IET_MAIN",A="FL:::/Kernel/KernelA.HPP,412"$
+$LK,"IET_MAIN",A="FL:::/Kernel/KernelA.HPP,413"$
 $LK,"ScanCode2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,248",BI=393$
-$LK,"DOCf_INVERT",A="FL:::/Kernel/KernelA.HPP,1311"$
-$LK,"DOCF_INVERT",A="FL:::/Kernel/KernelA.HPP,1274"$
+$LK,"DOCf_INVERT",A="FL:::/Kernel/KernelA.HPP,1317"$
+$LK,"DOCF_INVERT",A="FL:::/Kernel/KernelA.HPP,1280"$
 $LK,"sys_heap_limit",A="FL:::/Kernel/KernelB.HPP,200"$
 $LK,"FileExtRem",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,10",BI=394$
 $LK,"Tan",A="FL:::/Kernel/KernelB.HPP,117"$
 $LK,"SYS_PROGRESS3_MAX",A="FL:::/Kernel/KStart.CPP.Z,215"$
-$LK,"SUF_REM_LEADING",A="FL:::/Kernel/KernelA.HPP,3766"$
-$LK,"OPTf_USE_IMM64",A="FL:::/Kernel/KernelA.HPP,1537"$
+$LK,"SUF_REM_LEADING",A="FL:::/Kernel/KernelA.HPP,3785"$
+$LK,"OPTf_USE_IMM64",A="FL:::/Kernel/KernelA.HPP,1543"$
 $LK,"Raw",A="FL:::/Kernel/KMisc.CPP.Z,243",BI=395$
 $LK,"Msg",A="FL:::/Kernel/SrvCmd.CPP.Z,257",BI=396$
-$LK,"OPTf_GLBLS_ON_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,1534"$
+$LK,"OPTf_GLBLS_ON_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,1540"$
 $LK,"KbdInit",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,424",BI=397$
 $LK,"chars_bmp_zero_tab_ff_cr_nl_cursor_dollar",A="FL:::/Kernel/StrA.CPP.Z,368"$
 $LK,"ToBool",A="FL:::/Kernel/KernelB.HPP,118"$
-$LK,"TASKf_KILL_AFTER_DBG",A="FL:::/Kernel/KernelA.HPP,3265"$
+$LK,"TASKf_KILL_AFTER_DBG",A="FL:::/Kernel/KernelA.HPP,3284"$
 $LK,"IRQMouse",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,13",BI=398$
 $LK,"PUT_HEX_U16",A="FL:::/Kernel/StrA.CPP.Z,37"$
 $LK,"PUT_HEX_U32",A="FL:::/Kernel/StrA.CPP.Z,30"$
 $LK,"ATAPIStartStop",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,144",BI=399$
 $LK,"_SIGN",A="FL:::/Kernel/KMathA.CPP.Z,347"$
-$LK,"REGT_R8",A="FL:::/Kernel/KernelA.HPP,734"$
+$LK,"REGT_R8",A="FL:::/Kernel/KernelA.HPP,735"$
 $LK,"log10_2",A="FL:::/Kernel/KernelA.HPP,53"$
 $LK,"PrintErr",A="FL:::/Kernel/StrPrint.CPP.Z,923",BI=400$
-$LK,"ROPF_TWO_SIDED",A="FL:::/Kernel/KernelA.HPP,2921"$
-$LK,"BDF_READ_CACHE",A="FL:::/Kernel/KernelA.HPP,2617"$
-$LK,"SCF_INS",A="FL:::/Kernel/KernelA.HPP,3526"$
-$LK,"CPUf_RAN_A_TASK",A="FL:::/Kernel/KernelA.HPP,3415"$
-$LK,"BDf_READ_CACHE",A="FL:::/Kernel/KernelA.HPP,2627"$
+$LK,"ROPF_TWO_SIDED",A="FL:::/Kernel/KernelA.HPP,2940"$
+$LK,"BDF_READ_CACHE",A="FL:::/Kernel/KernelA.HPP,2636"$
+$LK,"SCF_INS",A="FL:::/Kernel/KernelA.HPP,3545"$
+$LK,"CPUf_RAN_A_TASK",A="FL:::/Kernel/KernelA.HPP,3434"$
+$LK,"BDf_READ_CACHE",A="FL:::/Kernel/KernelA.HPP,2646"$
 $LK,"Snd",A="FL:::/Kernel/KMisc.CPP.Z,163",BI=401$
 $LK,"SPF_PAD_ZERO",A="FL:::/Kernel/StrPrint.CPP.Z,1"$
 $LK,"GetChar",A="FL:::/Kernel/SerialDev/Message.CPP.Z,182",BI=402$
 $LK,"Sin",A="FL:::/Kernel/KernelB.HPP,104"$
-$LK,"TK_OR_OR",A="FL:::/Kernel/KernelA.HPP,2065"$
+$LK,"TK_OR_OR",A="FL:::/Kernel/KernelA.HPP,2085"$
 $LK,"SYS_PCIBIOS_SERVICE_CALL",A="FL:::/Kernel/PCIBIOS.CPP.Z,46"$
 $LK,"Now",A="FL:::/Kernel/KDate.CPP.Z,191",BI=403$
 $LK,"Fldcw",A="FL:::/Kernel/KernelB.HPP,129"$
 $LK,"_FXSAVE",A="FL:::/Kernel/KMathA.CPP.Z,650"$
-$LK,"TTS_ED_FILENAME",A="FL:::/Kernel/KernelA.HPP,3249"$
-$LK,"WIf_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HPP,1445"$
-$LK,"IA32_EFER",A="FL:::/Kernel/KernelA.HPP,517"$
+$LK,"TTS_ED_FILENAME",A="FL:::/Kernel/KernelA.HPP,3268"$
+$LK,"WIf_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HPP,1451"$
+$LK,"IA32_EFER",A="FL:::/Kernel/KernelA.HPP,518"$
 $LK,"SetRSP",A="FL:::/Kernel/KernelB.HPP,256"$
 $LK,"Pop",A="FL:::/Kernel/KernelB.HPP,251"$
 $LK,"sys_progresses",A="FL:::/Kernel/KernelB.HPP,229"$
-$LK,"CMenuEntry",A="FL:::/Kernel/KernelA.HPP,3110"$
-$LK,"OC_NOP2",A="FL:::/Kernel/KernelA.HPP,1743"$
-$LK,"DOCT_RIGHT_MARGIN",A="FL:::/Kernel/KernelA.HPP,904"$
+$LK,"CMenuEntry",A="FL:::/Kernel/KernelA.HPP,3129"$
+$LK,"OC_NOP2",A="FL:::/Kernel/KernelA.HPP,1761"$
+$LK,"DOCT_RIGHT_MARGIN",A="FL:::/Kernel/KernelA.HPP,906"$
 $LK,"PUT_HEX_U64",A="FL:::/Kernel/StrA.CPP.Z,23"$
 $LK,"SYS_KERNEL",A="FL:::/Kernel/KStart.CPP.Z,18"$
 $LK,"RFLAGf_PARITY",A="FL:::/Kernel/KernelA.HPP,306"$
 $LK,"SYS_PROGRESS4_MAX",A="FL:::/Kernel/KStart.CPP.Z,218"$
-$LK,"SUF_TO_UPPER",A="FL:::/Kernel/KernelA.HPP,3770"$
-$LK,"MBR_PT_REDSEA",A="FL:::/Kernel/KernelA.HPP,2679"$
-$LK,"MBR_PT_NTFS",A="FL:::/Kernel/KernelA.HPP,2678"$
+$LK,"SUF_TO_UPPER",A="FL:::/Kernel/KernelA.HPP,3789"$
+$LK,"MBR_PT_REDSEA",A="FL:::/Kernel/KernelA.HPP,2698"$
+$LK,"MBR_PT_NTFS",A="FL:::/Kernel/KernelA.HPP,2697"$
 $LK,"MouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,163",BI=404$
-$LK,"SCF_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3523"$
-$LK,"SCf_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3508"$
-$LK,"MSG_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3201"$
-$LK,"LAPIC_TASK_PRIORITY",A="FL:::/Kernel/KernelA.HPP,477"$
-$LK,"REGT_MM",A="FL:::/Kernel/KernelA.HPP,740"$
-$LK,"DOCEf_POPUP",A="FL:::/Kernel/KernelA.HPP,1097"$
-$LK,"DOCEF_POPUP",A="FL:::/Kernel/KernelA.HPP,1013"$
-$LK,"SYS_SEMA_VGA",A="FL:::/Kernel/KernelA.HPP,603"$
+$LK,"SCF_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3542"$
+$LK,"SCf_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3527"$
+$LK,"MSG_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3220"$
+$LK,"LAPIC_TASK_PRIORITY",A="FL:::/Kernel/KernelA.HPP,478"$
+$LK,"REGT_MM",A="FL:::/Kernel/KernelA.HPP,741"$
+$LK,"DOCEf_POPUP",A="FL:::/Kernel/KernelA.HPP,1101"$
+$LK,"DOCEF_POPUP",A="FL:::/Kernel/KernelA.HPP,1015"$
+$LK,"SYS_SEMA_VGA",A="FL:::/Kernel/KernelA.HPP,604"$
 $LK,"ODEF_PAUSED",A="FL:::/Kernel/KernelA.HPP,239"$
 $LK,"FATNameXSum",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,157",BI=405$
 $LK,"SPF_DOLLAR",A="FL:::/Kernel/StrPrint.CPP.Z,5"$
 $LK,"Pow",A="FL:::/Kernel/KernelB.HPP,138"$
 $LK,"sys_boot_patch_table_base",A="FL:::/Kernel/KernelB.HPP,38"$
-$LK,"WIF_SELF_BORDER",A="FL:::/Kernel/KernelA.HPP,1407"$
-$LK,"DOCF_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HPP,1282"$
+$LK,"WIF_SELF_BORDER",A="FL:::/Kernel/KernelA.HPP,1413"$
+$LK,"DOCF_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HPP,1288"$
 $LK,"MStrUtil",A="FL:::/Kernel/StrB.CPP.Z,58",BI=406$
 $LK,"_D3_CROSS",A="FL:::/Kernel/KMathA.CPP.Z,82"$
-$LK,"VGAP_INPUT_STAT",A="FL:::/Kernel/KernelA.HPP,3714"$
-$LK,"DOCf_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HPP,1319"$
+$LK,"VGAP_INPUT_STAT",A="FL:::/Kernel/KernelA.HPP,3733"$
+$LK,"DOCf_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HPP,1325"$
 $LK,"SYS_HEAP_LIMIT",A="FL:::/Kernel/KStart.CPP.Z,185"$
-$LK,"WIf_SELF_BORDER",A="FL:::/Kernel/KernelA.HPP,1433"$
+$LK,"WIf_SELF_BORDER",A="FL:::/Kernel/KernelA.HPP,1439"$
 $LK,"text",A="FL:::/Kernel/KGlbls.CPP.Z,29"$
-$LK,"ATA_READ_NATIVE_MAX_EXT",A="FL:::/Kernel/KernelA.HPP,2238"$
+$LK,"ATA_READ_NATIVE_MAX_EXT",A="FL:::/Kernel/KernelA.HPP,2257"$
 $LK,"MPrintQ",A="FL:::/Kernel/StrPrint.CPP.Z,69",BI=407$
 $LK,"MHeapCtrl",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,386"$
-$LK,"RECALCt_FIND_CURSOR",A="FL:::/Kernel/KernelA.HPP,1336"$
-$LK,"SYS_SEMA_SND",A="FL:::/Kernel/KernelA.HPP,594"$
-$LK,"CCF_RAX",A="FL:::/Kernel/KernelA.HPP,2131"$
+$LK,"RECALCt_FIND_CURSOR",A="FL:::/Kernel/KernelA.HPP,1342"$
+$LK,"SYS_SEMA_SND",A="FL:::/Kernel/KernelA.HPP,595"$
+$LK,"CCF_RAX",A="FL:::/Kernel/KernelA.HPP,2151"$
 $LK,"DskCacheInvalidate",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,181",BI=408$
-$LK,"DOCG_BL_IV_UL",A="FL:::/Kernel/KernelA.HPP,945"$
+$LK,"DOCG_BL_IV_UL",A="FL:::/Kernel/KernelA.HPP,947"$
 $LK,"HashSingleTableFind",A="FL:::/Kernel/KHashA.CPP.Z,257"$
 $LK,"sys_data_bp",A="FL:::/Kernel/KernelB.HPP,196"$
 $LK,"SYS_PCI_BUSES",A="FL:::/Kernel/KStart.CPP.Z,51"$
 $LK,"sys_heap_base",A="FL:::/Kernel/KernelB.HPP,199"$
 $LK,"_CLAMP_I64",A="FL:::/Kernel/KUtils.CPP.Z,121"$
-$LK,"VGAP_MISC_OUTPUT",A="FL:::/Kernel/KernelA.HPP,3705"$
-$LK,"BDf_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HPP,2625"$
+$LK,"VGAP_MISC_OUTPUT",A="FL:::/Kernel/KernelA.HPP,3724"$
+$LK,"BDf_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HPP,2644"$
 $LK,"Spaces2Tabs",A="FL:::/Kernel/StrA.CPP.Z,477",BI=409$
 $LK,"Drv2Let",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,129",BI=410$
-$LK,"ROPBF_TWO_SIDED",A="FL:::/Kernel/KernelA.HPP,2909"$
+$LK,"ROPBF_TWO_SIDED",A="FL:::/Kernel/KernelA.HPP,2928"$
 $LK,"MEM_E820_ENTRY_SIZE",A="FL:::/Kernel/KernelA.HPP,355"$
 $LK,"KDRawPutS",A="FL:::/Kernel/KeyDev.CPP.Z,95",BI=411$
 $LK,"Sqr",A="FL:::/Kernel/KernelB.HPP,105"$
-$LK,"REG_RDI",A="FL:::/Kernel/KernelA.HPP,1762"$
-$LK,"REG_ALLOC",A="FL:::/Kernel/KernelA.HPP,1766"$
-$LK,"DOCf_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1317"$
+$LK,"REG_RDI",A="FL:::/Kernel/KernelA.HPP,1780"$
+$LK,"REG_ALLOC",A="FL:::/Kernel/KernelA.HPP,1785"$
+$LK,"DOCf_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1323"$
 $LK,"SrvCmdsHandler",A="FL:::/Kernel/SrvCmd.CPP.Z,350",BI=412$
 $LK,"progress1_max",A="FL:::/Kernel/KernelB.HPP,215"$
-$LK,"CCF_ARRAY",A="FL:::/Kernel/KernelA.HPP,2130"$
-$LK,"REG_RBP",A="FL:::/Kernel/KernelA.HPP,1760"$
-$LK,"DOCEF_FILTER_SKIP",A="FL:::/Kernel/KernelA.HPP,1015"$
+$LK,"CCF_ARRAY",A="FL:::/Kernel/KernelA.HPP,2150"$
+$LK,"REG_RBP",A="FL:::/Kernel/KernelA.HPP,1778"$
+$LK,"DOCEF_FILTER_SKIP",A="FL:::/Kernel/KernelA.HPP,1017"$
 $LK,"FifoU8Flush",A="FL:::/Kernel/KDataTypes.CPP.Z,219",BI=413$
-$LK,"MSG_MOVE",A="FL:::/Kernel/KernelA.HPP,3211"$
+$LK,"MSG_MOVE",A="FL:::/Kernel/KernelA.HPP,3230"$
 $LK,"SYS_PROGRESSES",A="FL:::/Kernel/KStart.CPP.Z,208"$
-$LK,"SUF_REM_SPACES",A="FL:::/Kernel/KernelA.HPP,3768"$
-$LK,"CCF_PMT",A="FL:::/Kernel/KernelA.HPP,2103"$
-$LK,"DOCEf_FILTER_SKIP",A="FL:::/Kernel/KernelA.HPP,1099"$
+$LK,"SUF_REM_SPACES",A="FL:::/Kernel/KernelA.HPP,3787"$
+$LK,"CCF_PMT",A="FL:::/Kernel/KernelA.HPP,2123"$
+$LK,"DOCEf_FILTER_SKIP",A="FL:::/Kernel/KernelA.HPP,1103"$
 $LK,"DskCacheHash",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,40",BI=414$
-$LK,"SCF_NUM",A="FL:::/Kernel/KernelA.HPP,3520"$
-$LK,"ACD_DEF_FILENAME",A="FL:::/Kernel/KernelA.HPP,1490"$
+$LK,"SCF_NUM",A="FL:::/Kernel/KernelA.HPP,3539"$
+$LK,"ACD_DEF_FILENAME",A="FL:::/Kernel/KernelA.HPP,1496"$
 $LK,"fp_doc_put",A="FL:::/Kernel/KGlbls.CPP.Z,33"$
 $LK,"DskCacheFind",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,64",BI=415$
 $LK,"IsRaw",A="FL:::/Kernel/KMisc.CPP.Z,250",BI=416$
-$LK,"TK_DBL_COLON",A="FL:::/Kernel/KernelA.HPP,2057"$
+$LK,"TK_DBL_COLON",A="FL:::/Kernel/KernelA.HPP,2077"$
 $LK,"ATAPIReadTrackInfo",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,277",BI=417$
-$LK,"CATARep",A="FL:::/Kernel/KernelA.HPP,2227"$
-$LK,"REG_RAX",A="FL:::/Kernel/KernelA.HPP,1755"$
+$LK,"CATARep",A="FL:::/Kernel/KernelA.HPP,2246"$
+$LK,"REG_RAX",A="FL:::/Kernel/KernelA.HPP,1773"$
 $LK,"ATAReadBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,350",BI=418$
 $LK,"D3AddEqu",A="FL:::/Kernel/KernelB.HPP,149"$
 $LK,"ToUpper",A="FL:::/Kernel/KernelB.HPP,57"$
-$LK,"REGG_C_LOCAL_NON_PTR_VARS",A="FL:::/Kernel/KernelA.HPP,1773"$
-$LK,"REG_RBX",A="FL:::/Kernel/KernelA.HPP,1758"$
+$LK,"REG_RBX",A="FL:::/Kernel/KernelA.HPP,1776"$
 $LK,"SCR_DONE",A="FL:::/Kernel/SrvCmd.CPP.Z,263"$
 $LK,"Fxsave",A="FL:::/Kernel/KernelB.HPP,134"$
-$LK,"ACD_EXTRA_CHAR",A="FL:::/Kernel/KernelA.HPP,1510"$
+$LK,"MDG_MASK",A="FL:::/Kernel/KernelA.HPP,1582"$
+$LK,"ACD_EXTRA_CHAR",A="FL:::/Kernel/KernelA.HPP,1516"$
 $LK,"Reboot",A="FL:::/Kernel/KEnd.CPP.Z,116",BI=419$
 $LK,"acd",A="FL:::/Kernel/KGlbls.CPP.Z,17"$
-$LK,"TK_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,2085"$
-$LK,"REG_RCX",A="FL:::/Kernel/KernelA.HPP,1756"$
-$LK,"Ff_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,848"$
-$LK,"CHashClass",A="FL:::/Kernel/KernelA.HPP,828"$
+$LK,"TK_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,2105"$
+$LK,"REG_RCX",A="FL:::/Kernel/KernelA.HPP,1774"$
+$LK,"Ff_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,849"$
+$LK,"CHashClass",A="FL:::/Kernel/KernelA.HPP,829"$
 $LK,"ZERO_BUF_SIZE",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,1"$
 $LK,"LoadKernel",A="FL:::/Kernel/KLoad.CPP.Z,240",BI=420$
-$LK,"SCF_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3515"$
-$LK,"SCf_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3500"$
-$LK,"MSG_IP_R_D_DOWN",A="FL:::/Kernel/KernelA.HPP,3207"$
-$LK,"REG_RDX",A="FL:::/Kernel/KernelA.HPP,1757"$
+$LK,"SCF_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3534"$
+$LK,"SCf_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3519"$
+$LK,"MSG_IP_R_D_DOWN",A="FL:::/Kernel/KernelA.HPP,3226"$
+$LK,"ICF_BY_VAL",A="FL:::/Kernel/KernelA.HPP,1598"$
+$LK,"REG_RDX",A="FL:::/Kernel/KernelA.HPP,1775"$
 $LK,"ATAPIReadBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,413",BI=421$
-$LK,"REG_RIP",A="FL:::/Kernel/KernelA.HPP,1763"$
-$LK,"DOCEF_FROM_START",A="FL:::/Kernel/KernelA.HPP,995"$
-$LK,"SEMA_STRUCT_SIZE",A="FL:::/Kernel/KernelA.HPP,580"$
+$LK,"REG_RIP",A="FL:::/Kernel/KernelA.HPP,1782"$
+$LK,"DOCEF_FROM_START",A="FL:::/Kernel/KernelA.HPP,997"$
+$LK,"SEMA_STRUCT_SIZE",A="FL:::/Kernel/KernelA.HPP,581"$
 $LK,"SCR_CONT",A="FL:::/Kernel/SrvCmd.CPP.Z,264"$
 $LK,"progress2_max",A="FL:::/Kernel/KernelB.HPP,219"$
-$LK,"DOCEf_FROM_START",A="FL:::/Kernel/KernelA.HPP,1081"$
-$LK,"SYS_SEMA_TMBEAT",A="FL:::/Kernel/KernelA.HPP,609"$
-$LK,"RLF_WINMGR",A="FL:::/Kernel/KernelA.HPP,466"$
-$LK,"RLf_WINMGR",A="FL:::/Kernel/KernelA.HPP,447"$
-$LK,"SUF_SCALE_INDENT",A="FL:::/Kernel/KernelA.HPP,3774"$
-$LK,"CT_7_BIT",A="FL:::/Kernel/KernelA.HPP,3723"$
-$LK,"PUSH_REGS",A="FL:::/Kernel/KernelA.HPP,1748"$
+$LK,"DOCEf_FROM_START",A="FL:::/Kernel/KernelA.HPP,1085"$
+$LK,"SYS_SEMA_TMBEAT",A="FL:::/Kernel/KernelA.HPP,610"$
+$LK,"RLF_WINMGR",A="FL:::/Kernel/KernelA.HPP,467"$
+$LK,"RLf_WINMGR",A="FL:::/Kernel/KernelA.HPP,448"$
+$LK,"SUF_SCALE_INDENT",A="FL:::/Kernel/KernelA.HPP,3793"$
+$LK,"CT_7_BIT",A="FL:::/Kernel/KernelA.HPP,3742"$
+$LK,"PUSH_REGS",A="FL:::/Kernel/KernelA.HPP,1766"$
 $LK,"MAX_I8",A="FL:::/Kernel/KernelA.HPP,23"$
 $LK,"KbdMouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,241",BI=422$
 $LK,"Color2Str",A="FL:::/Kernel/KDefine.CPP.Z,126",BI=423$
-$LK,"EDF_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1237"$
-$LK,"LAPIC_DFR",A="FL:::/Kernel/KernelA.HPP,482"$
+$LK,"EDF_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1243"$
+$LK,"LAPIC_DFR",A="FL:::/Kernel/KernelA.HPP,483"$
 $LK,"CDATE_BASE_DAY_OF_WEEK",A="FL:::/Kernel/KernelA.HPP,183"$
 $LK,"StrFirstOcc",A="FL:::/Kernel/StrA.CPP.Z,572",BI=424$
-$LK,"MSG_NULL",A="FL:::/Kernel/KernelA.HPP,3196"$
-$LK,"CCF_QUESTION_HELP",A="FL:::/Kernel/KernelA.HPP,2105"$
-$LK,"TY_NULL",A="FL:::/Kernel/KernelA.HPP,1561"$
-$LK,"EDf_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1243"$
+$LK,"MSG_NULL",A="FL:::/Kernel/KernelA.HPP,3215"$
+$LK,"CCF_QUESTION_HELP",A="FL:::/Kernel/KernelA.HPP,2125"$
+$LK,"EDf_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1249"$
 $LK,"MPrintq",A="FL:::/Kernel/StrPrint.CPP.Z,128",BI=425$
-$LK,"MEM_DFT_STK",A="FL:::/Kernel/KernelA.HPP,2859"$
+$LK,"MEM_DFT_STK",A="FL:::/Kernel/KernelA.HPP,2878"$
 $LK,"SYS_FOCUS_TASK",A="FL:::/Kernel/KStart.CPP.Z,222"$
-$LK,"DYING_JIFFIES",A="FL:::/Kernel/KernelA.HPP,3285"$
+$LK,"DYING_JIFFIES",A="FL:::/Kernel/KernelA.HPP,3304"$
 $LK,"dbg",A="FL:::/Kernel/KGlbls.CPP.Z,21"$
 $LK,"QSort",A="FL:::/Kernel/QSort.CPP.Z,85",BI=426$
 $LK,"OutU32",A="FL:::/Kernel/KernelB.HPP,78"$
 $LK,"OutU16",A="FL:::/Kernel/KernelB.HPP,77"$
-$LK,"SYS_SEMA_JUST_PUMP_MSGS",A="FL:::/Kernel/KernelA.HPP,608"$
-$LK,"LAPIC_ICR_HIGH",A="FL:::/Kernel/KernelA.HPP,492"$
-$LK,"LMF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HPP,3784"$
-$LK,"SFF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HPP,3778"$
+$LK,"SYS_SEMA_JUST_PUMP_MSGS",A="FL:::/Kernel/KernelA.HPP,609"$
+$LK,"LAPIC_ICR_HIGH",A="FL:::/Kernel/KernelA.HPP,493"$
+$LK,"LMF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HPP,3803"$
+$LK,"SFF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HPP,3797"$
 $LK,"HashRemDel",A="FL:::/Kernel/KHashA.CPP.Z,264"$
-$LK,"REG_RSI",A="FL:::/Kernel/KernelA.HPP,1761"$
+$LK,"REG_RSI",A="FL:::/Kernel/KernelA.HPP,1779"$
 $LK,"HashAdd",A="FL:::/Kernel/KHashA.CPP.Z,262"$
 $LK,"mp_cnt_lock",A="FL:::/Kernel/KernelB.HPP,236"$
-$LK,"MLF_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,773"$
+$LK,"MLF_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,774"$
 $LK,"IsSuspended",A="FL:::/Kernel/KTask.CPP.Z,59",BI=427$
 $LK,"CAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,395",BI=428$
-$LK,"BDF_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2613"$
-$LK,"ATAR0_SELECT",A="FL:::/Kernel/KernelA.HPP,2259"$
-$LK,"CAsmUnresolvedRef",A="FL:::/Kernel/KernelA.HPP,1833"$
-$LK,"BDf_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2623"$
-$LK,"DOCT_SPRITE",A="FL:::/Kernel/KernelA.HPP,930"$
+$LK,"BDF_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2632"$
+$LK,"ATAR0_SELECT",A="FL:::/Kernel/KernelA.HPP,2278"$
+$LK,"CAsmUnresolvedRef",A="FL:::/Kernel/KernelA.HPP,1852"$
+$LK,"BDf_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2642"$
+$LK,"DOCT_SPRITE",A="FL:::/Kernel/KernelA.HPP,932"$
 $LK,"WClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,92",BI=429$
 $LK,"RClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,46",BI=430$
 $LK,"sys_neg_pows_lets",A="FL:::/Kernel/StrPrint.CPP.Z,212"$
 $LK,"progress3_max",A="FL:::/Kernel/KernelB.HPP,223"$
 $LK,"SqrI64",A="FL:::/Kernel/KernelB.HPP,106"$
-$LK,"BDF_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,2619"$
-$LK,"OPTF_ECHO",A="FL:::/Kernel/KernelA.HPP,1539"$
-$LK,"OPTf_ECHO",A="FL:::/Kernel/KernelA.HPP,1526"$
-$LK,"LAPIC_EOI",A="FL:::/Kernel/KernelA.HPP,480"$
+$LK,"BDF_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,2638"$
+$LK,"OPTF_ECHO",A="FL:::/Kernel/KernelA.HPP,1545"$
+$LK,"OPTf_ECHO",A="FL:::/Kernel/KernelA.HPP,1532"$
+$LK,"LAPIC_EOI",A="FL:::/Kernel/KernelA.HPP,481"$
 $LK,"sys_pos_pows_lets",A="FL:::/Kernel/StrPrint.CPP.Z,211"$
 $LK,"QueSize",A="FL:::/Kernel/KDataTypes.CPP.Z,76",BI=431$
 $LK,"C:/Doc/Que.TXT.Z",A="FL:::/Kernel/KernelB.HPP,64"$
-$LK,"CT_8_BIT",A="FL:::/Kernel/KernelA.HPP,3724"$
-$LK,"REG_RSP",A="FL:::/Kernel/KernelA.HPP,1759"$
+$LK,"CT_8_BIT",A="FL:::/Kernel/KernelA.HPP,3743"$
+$LK,"REG_RSP",A="FL:::/Kernel/KernelA.HPP,1777"$
 $LK,"CtrlAltDel",A="FL:::/Kernel/KeyDev.CPP.Z,126",BI=432$
-$LK,"CTRLF_CAPTURE_LEFT_IP",A="FL:::/Kernel/KernelA.HPP,3065"$
-$LK,"LFSF_DEFINE",A="FL:::/Kernel/KernelA.HPP,2012"$
-$LK,"BLK_SIZE_BITS",A="FL:::/Kernel/KernelA.HPP,2272"$
-$LK,"AOT_BIN_BLK_BITS",A="FL:::/Kernel/KernelA.HPP,1775"$
-$LK,"HTT_FUN",A="FL:::/Kernel/KernelA.HPP,684"$
+$LK,"CTRLF_CAPTURE_LEFT_IP",A="FL:::/Kernel/KernelA.HPP,3084"$
+$LK,"LFSF_DEFINE",A="FL:::/Kernel/KernelA.HPP,2032"$
+$LK,"BLK_SIZE_BITS",A="FL:::/Kernel/KernelA.HPP,2291"$
+$LK,"AOT_BIN_BLK_BITS",A="FL:::/Kernel/KernelA.HPP,1794"$
+$LK,"HTT_FUN",A="FL:::/Kernel/KernelA.HPP,685"$
 $LK,"I_DIV_ZERO",A="FL:::/Kernel/KernelA.HPP,284"$
 $LK,"SrvCtrlInit",A="FL:::/Kernel/SrvCmd.CPP.Z,18",BI=433$
-$LK,"DOCEF_DEFINE",A="FL:::/Kernel/KernelA.HPP,962"$
+$LK,"DOCEF_DEFINE",A="FL:::/Kernel/KernelA.HPP,964"$
 $LK,"SPF_LEFT_JUSTIFY",A="FL:::/Kernel/StrPrint.CPP.Z,2"$
-$LK,"DOCEf_DEFINE",A="FL:::/Kernel/KernelA.HPP,1048"$
+$LK,"DOCEf_DEFINE",A="FL:::/Kernel/KernelA.HPP,1052"$
 $LK,"HeapCtrlInit",A="FL:::/Kernel/Mem/HeapCtrl.CPP.Z,1",BI=434$
 $LK,"progress1",A="FL:::/Kernel/KernelB.HPP,212"$
 $LK,"Floor",A="FL:::/Kernel/KernelB.HPP,130"$
-$LK,"CIPStateGlbls",A="FL:::/Kernel/KernelA.HPP,3016"$
-$LK,"SYSf_CTRL_ALT_C",A="FL:::/Kernel/KernelA.HPP,614"$
+$LK,"CIPStateGlbls",A="FL:::/Kernel/KernelA.HPP,3035"$
+$LK,"SYSf_CTRL_ALT_C",A="FL:::/Kernel/KernelA.HPP,615"$
 $LK,"progress2",A="FL:::/Kernel/KernelB.HPP,216"$
 $LK,"_CLAMP_U64",A="FL:::/Kernel/KUtils.CPP.Z,133"$
 $LK,"progress3",A="FL:::/Kernel/KernelB.HPP,220"$
-$LK,"MPN_VECT",A="FL:::/Kernel/KernelA.HPP,501"$
+$LK,"MPN_VECT",A="FL:::/Kernel/KernelA.HPP,502"$
 $LK,"MAX_U8",A="FL:::/Kernel/KernelA.HPP,25"$
 $LK,"RAWDR_COL",A="FL:::/Kernel/KDbg.CPP.Z,289"$
 $LK,"progress4",A="FL:::/Kernel/KernelB.HPP,224"$
 $LK,"CtrlAltCBSet",A="FL:::/Kernel/KeyDev.CPP.Z,176",BI=435$
 $LK,"SysTimerRead",A="FL:::/Kernel/KMisc.CPP.Z,61",BI=436$
 $LK,"dev",A="FL:::/Kernel/KGlbls.CPP.Z,22"$
-$LK,"MSG_IP_L_D_UP",A="FL:::/Kernel/KernelA.HPP,3204"$
+$LK,"MSG_IP_L_D_UP",A="FL:::/Kernel/KernelA.HPP,3223"$
 $LK,"FunSegCacheFind",A="FL:::/Kernel/FunSeg.CPP.Z,82",BI=437$
-$LK,"HTT_REG",A="FL:::/Kernel/KernelA.HPP,690"$
+$LK,"HTT_REG",A="FL:::/Kernel/KernelA.HPP,691"$
 $LK,"StrFirstRem",A="FL:::/Kernel/StrA.CPP.Z,582",BI=438$
 $LK,"SYS_VAR_INIT_VAL",A="FL:::/Home/Temp.TXT.Z,1"$
-$LK,"DCF_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,3599"$
-$LK,"ans",A="FL:::/Kernel/KernelA.HPP,3393"$
-$LK,"LAPIC_LDR",A="FL:::/Kernel/KernelA.HPP,483"$
+$LK,"DCF_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,3618"$
+$LK,"ans",A="FL:::/Kernel/KernelA.HPP,3412"$
+$LK,"LAPIC_LDR",A="FL:::/Kernel/KernelA.HPP,484"$
 $LK,"BptFind",A="FL:::/Kernel/KDbg.CPP.Z,344",BI=439$
 $LK,"kbd",A="FL:::/Kernel/KGlbls.CPP.Z,25"$
 $LK,"progress4_max",A="FL:::/Kernel/KernelB.HPP,227"$
 $LK,"MouseUpdatePost",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,131",BI=440$
 $LK,"HashDel",A="FL:::/Kernel/KHashB.CPP.Z,59",BI=441$
-$LK,"CKbdStateGlbls",A="FL:::/Kernel/KernelA.HPP,2973"$
+$LK,"CKbdStateGlbls",A="FL:::/Kernel/KernelA.HPP,2992"$
 $LK,"LinkedLstCopy",A="FL:::/Kernel/KDataTypes.CPP.Z,11",BI=442$
-$LK,"IP_NULL",A="FL:::/Kernel/KernelA.HPP,3014"$
-$LK,"SYS_SEMA_DEV_MEM",A="FL:::/Kernel/KernelA.HPP,602"$
-$LK,"ICF_A1_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1589"$
+$LK,"IP_NULL",A="FL:::/Kernel/KernelA.HPP,3033"$
+$LK,"MDF_NULL",A="FL:::/Kernel/KernelA.HPP,1575"$
+$LK,"SYS_SEMA_DEV_MEM",A="FL:::/Kernel/KernelA.HPP,603"$
+$LK,"ICF_A1_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1603"$
 $LK,"Let2Drv",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,149",BI=443$
 $LK,"fat_long_name_map",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,183"$
 $LK,"DskCacheInit",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,1",BI=444$
-$LK,"CCF_NO_ABSS",A="FL:::/Kernel/KernelA.HPP,2137"$
-$LK,"DOC_COLOR_MACRO",A="FL:::/Kernel/KernelA.HPP,1127"$
-$LK,"LAPIC_LOG_DST",A="FL:::/Kernel/KernelA.HPP,481"$
-$LK,"RLF_ADAM_SERVER",A="FL:::/Kernel/KernelA.HPP,470"$
+$LK,"CCF_NO_ABSS",A="FL:::/Kernel/KernelA.HPP,2157"$
+$LK,"DOC_COLOR_MACRO",A="FL:::/Kernel/KernelA.HPP,1133"$
+$LK,"LAPIC_LOG_DST",A="FL:::/Kernel/KernelA.HPP,482"$
+$LK,"RLF_ADAM_SERVER",A="FL:::/Kernel/KernelA.HPP,471"$
 $LK,"RClusters",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,87",BI=445$
 $LK,"ISO1CDirFill",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,116",BI=446$
-$LK,"RLf_ADAM_SERVER",A="FL:::/Kernel/KernelA.HPP,451"$
+$LK,"RLf_ADAM_SERVER",A="FL:::/Kernel/KernelA.HPP,452"$
 $LK,"SCR_EXIT",A="FL:::/Kernel/SrvCmd.CPP.Z,265"$
 $LK,"QueDel",A="FL:::/Kernel/KDataTypes.CPP.Z,41",BI=447$
-$LK,"ICF_DONT_RESTORE",A="FL:::/Kernel/KernelA.HPP,1603"$
+$LK,"ICF_DONT_RESTORE",A="FL:::/Kernel/KernelA.HPP,1617"$
 $LK,"RedSeaDirNew",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,350",BI=448$
-$LK,"IET_REL64_EXPORT",A="FL:::/Kernel/KernelA.HPP,405"$
-$LK,"IET_REL32_EXPORT",A="FL:::/Kernel/KernelA.HPP,403"$
-$LK,"CExcept",A="FL:::/Kernel/KernelA.HPP,3136"$
+$LK,"IET_REL64_EXPORT",A="FL:::/Kernel/KernelA.HPP,406"$
+$LK,"IET_REL32_EXPORT",A="FL:::/Kernel/KernelA.HPP,404"$
+$LK,"CExcept",A="FL:::/Kernel/KernelA.HPP,3155"$
 $LK,"QueInsRev",A="FL:::/Kernel/KernelB.HPP,69"$
-$LK,"SYSf_CTRL_ALT_X",A="FL:::/Kernel/KernelA.HPP,615"$
+$LK,"SYSf_CTRL_ALT_X",A="FL:::/Kernel/KernelA.HPP,616"$
 $LK,"SYS_EXTERN_TABLE",A="FL:::/Kernel/KStart.CPP.Z,202"$
-$LK,"FUF_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HPP,2591"$
-$LK,"DOCT_HTML_CODE",A="FL:::/Kernel/KernelA.HPP,935"$
-$LK,"LAPIC_IRR",A="FL:::/Kernel/KernelA.HPP,490"$
+$LK,"FUF_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HPP,2610"$
+$LK,"DOCT_HTML_CODE",A="FL:::/Kernel/KernelA.HPP,937"$
+$LK,"LAPIC_IRR",A="FL:::/Kernel/KernelA.HPP,491"$
 $LK,"chars_bmp_getkey",A="FL:::/Kernel/StrA.CPP.Z,371"$
 $LK,"sys_run_level",A="FL:::/Kernel/KernelB.HPP,40"$
-$LK,"JIFFY_FREQ",A="FL:::/Kernel/KernelA.HPP,546"$
+$LK,"JIFFY_FREQ",A="FL:::/Kernel/KernelA.HPP,547"$
 $LK,"COrder2D3",A="FL:::/Kernel/KernelA.HPP,199"$
 $LK,"TaskRegAddr",A="FL:::/Kernel/KDbg.CPP.Z,266",BI=449$
-$LK,"DCSF_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,3621"$
-$LK,"LAPIC_ISR",A="FL:::/Kernel/KernelA.HPP,488"$
+$LK,"DCSF_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,3640"$
+$LK,"LAPIC_ISR",A="FL:::/Kernel/KernelA.HPP,489"$
 $LK,"c32_eflags",A="FL:::/Kernel/PCIBIOS.CPP.Z,158"$
 $LK,"Pow10",A="FL:::/Kernel/KernelB.HPP,139"$
-$LK,"ATA_WRITE_MULTI_EXT",A="FL:::/Kernel/KernelA.HPP,2244"$
-$LK,"CCF_PREDEC",A="FL:::/Kernel/KernelA.HPP,2129"$
+$LK,"ATA_WRITE_MULTI_EXT",A="FL:::/Kernel/KernelA.HPP,2263"$
+$LK,"CCF_PREDEC",A="FL:::/Kernel/KernelA.HPP,2149"$
 $LK,"inf",A="FL:::/Kernel/KernelA.HPP,46"$
 $LK,"MIN_I8",A="FL:::/Kernel/KernelA.HPP,22"$
 $LK,"XTalk",A="FL:::/Kernel/SrvCmd.CPP.Z,446",BI=450$
-$LK,"DOCEf_LEFT_AUTO",A="FL:::/Kernel/KernelA.HPP,1064"$
-$LK,"DOCEF_LEFT_AUTO",A="FL:::/Kernel/KernelA.HPP,978"$
+$LK,"DOCEf_LEFT_AUTO",A="FL:::/Kernel/KernelA.HPP,1068"$
+$LK,"DOCEF_LEFT_AUTO",A="FL:::/Kernel/KernelA.HPP,980"$
 $LK,"eps",A="FL:::/Kernel/KernelA.HPP,56"$
 $LK,"LstSub",A="FL:::/Kernel/StrA.CPP.Z,402",BI=451$
-$LK,"RLF_PATCHED",A="FL:::/Kernel/KernelA.HPP,456"$
+$LK,"RLF_PATCHED",A="FL:::/Kernel/KernelA.HPP,457"$
 $LK,"FRBlks",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,130",BI=452$
 $LK,"TaskDerivedValsUpdate",A="FL:::/Kernel/KTask.CPP.Z,252",BI=453$
 $LK,"_HASH_ADD",A="FL:::/Kernel/KHashA.CPP.Z,170"$
-$LK,"__TIME__",A="FL:::/Kernel/KernelA.HPP,2002"$
-$LK,"RLf_PATCHED",A="FL:::/Kernel/KernelA.HPP,437"$
-$LK,"FUf_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HPP,2565"$
-$LK,"ACD_WORD_FILENAME",A="FL:::/Kernel/KernelA.HPP,1489"$
-$LK,"ATTRf_BLINK",A="FL:::/Kernel/KernelA.HPP,889"$
-$LK,"ATTRF_BLINK",A="FL:::/Kernel/KernelA.HPP,884"$
+$LK,"__TIME__",A="FL:::/Kernel/KernelA.HPP,2022"$
+$LK,"RLf_PATCHED",A="FL:::/Kernel/KernelA.HPP,438"$
+$LK,"FUf_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HPP,2584"$
+$LK,"ACD_WORD_FILENAME",A="FL:::/Kernel/KernelA.HPP,1495"$
+$LK,"ATTRf_BLINK",A="FL:::/Kernel/KernelA.HPP,890"$
+$LK,"ATTRF_BLINK",A="FL:::/Kernel/KernelA.HPP,885"$
 $LK,"XchgU8",A="FL:::/Kernel/KernelB.HPP,269"$
-$LK,"TTS_TASK_NAME",A="FL:::/Kernel/KernelA.HPP,3248"$
-$LK,"CKernel",A="FL:::/Kernel/KernelA.HPP,415"$
+$LK,"TTS_TASK_NAME",A="FL:::/Kernel/KernelA.HPP,3267"$
+$LK,"CKernel",A="FL:::/Kernel/KernelA.HPP,416"$
 $LK,"IET_IMM_I64",A="FL:::/Kernel/KernelA.HPP,401"$
 $LK,"log2_10",A="FL:::/Kernel/KernelA.HPP,51"$
 $LK,"TaskTotalTime",A="FL:::/Kernel/KMisc.CPP.Z,80",BI=454$
-$LK,"LTBLUE",A="FL:::/Kernel/KernelA.HPP,2938"$
+$LK,"LTBLUE",A="FL:::/Kernel/KernelA.HPP,2957"$
 $LK,"FAT32AllocClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,456",BI=455$
-$LK,"DOCEf_TOP_Y",A="FL:::/Kernel/KernelA.HPP,1070"$
-$LK,"DOCEF_TOP_Y",A="FL:::/Kernel/KernelA.HPP,984"$
+$LK,"DOCEf_TOP_Y",A="FL:::/Kernel/KernelA.HPP,1074"$
+$LK,"DOCEF_TOP_Y",A="FL:::/Kernel/KernelA.HPP,986"$
 $LK,"_CALLEXTNUM",A="FL:::/Kernel/KUtils.CPP.Z,362"$
-$LK,"SCF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,3528"$
-$LK,"SCf_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,3513"$
-$LK,"MSG_CMD",A="FL:::/Kernel/KernelA.HPP,3197"$
+$LK,"SCF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,3547"$
+$LK,"SCf_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,3532"$
+$LK,"MSG_CMD",A="FL:::/Kernel/KernelA.HPP,3216"$
 $LK,"IDTET_IRQ",A="FL:::/Kernel/KernelA.HPP,279"$
-$LK,"CCF_LOCAL",A="FL:::/Kernel/KernelA.HPP,2123"$
+$LK,"CCF_LOCAL",A="FL:::/Kernel/KernelA.HPP,2143"$
 $LK,"QueCnt",A="FL:::/Kernel/KDataTypes.CPP.Z,65",BI=456$
 $LK,"chars_bmp_alpha",A="FL:::/Kernel/StrA.CPP.Z,325"$
 $LK,"SwapI64",A="FL:::/Kernel/KernelB.HPP,110"$
 $LK,"SqrU64",A="FL:::/Kernel/KernelB.HPP,107"$
-$LK,"OPTf_NO_BUILTIN_CONST",A="FL:::/Kernel/KernelA.HPP,1536"$
-$LK,"HTG_SRC_SYM",A="FL:::/Kernel/KernelA.HPP,708"$
-$LK,"LAPIC_LVT_THERMAL",A="FL:::/Kernel/KernelA.HPP,495"$
+$LK,"OPTf_NO_BUILTIN_CONST",A="FL:::/Kernel/KernelA.HPP,1542"$
+$LK,"HTG_SRC_SYM",A="FL:::/Kernel/KernelA.HPP,709"$
+$LK,"LAPIC_LVT_THERMAL",A="FL:::/Kernel/KernelA.HPP,496"$
 $LK,"RFLAGf_IOPL0",A="FL:::/Kernel/KernelA.HPP,314"$
 $LK,"IntsInit",A="FL:::/Kernel/KInts.CPP.Z,122",BI=457$
 $LK,"_XCHG_U8",A="FL:::/Kernel/KUtils.CPP.Z,208"$
-$LK,"DOCEF_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HPP,1000"$
+$LK,"DOCEF_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HPP,1002"$
 $LK,"RFLAGf_IOPL1",A="FL:::/Kernel/KernelA.HPP,315"$
 $LK,"FAT32FilesDel",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,726",BI=458$
-$LK,"DOCT_MENU_VAL",A="FL:::/Kernel/KernelA.HPP,927"$
+$LK,"DOCT_MENU_VAL",A="FL:::/Kernel/KernelA.HPP,929"$
 $LK,"Bcd2Bin",A="FL:::/Kernel/KDate.CPP.Z,123",BI=459$
 $LK,"CAllocAligned",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,434",BI=460$
 $LK,"MAllocAligned",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,423",BI=461$
 $LK,"ext",A="FL:::/Kernel/KernelB.HPP,52"$
-$LK,"FUN_SEG_CACHE_SIZE",A="FL:::/Kernel/KernelA.HPP,3824"$
-$LK,"ACf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,1474"$
+$LK,"FUN_SEG_CACHE_SIZE",A="FL:::/Kernel/KernelA.HPP,3843"$
+$LK,"ACf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,1480"$
 $LK,"RawDm",A="FL:::/Kernel/KDbg.CPP.Z,250",BI=462$
-$LK,"ICf_DONT_POP_FLOAT0",A="FL:::/Kernel/KernelA.HPP,1596"$
+$LK,"ICf_DONT_POP_FLOAT0",A="FL:::/Kernel/KernelA.HPP,1610"$
 $LK,"DskCacheAdd",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,76",BI=463$
 $LK,"MPNMInt",A="FL:::/Kernel/MultiProc.CPP.Z,159",BI=464$
 $LK,"_MSIZE2",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,353"$
-$LK,"LTPURPLE",A="FL:::/Kernel/KernelA.HPP,2942"$
+$LK,"LTPURPLE",A="FL:::/Kernel/KernelA.HPP,2961"$
 $LK,"RawDr",A="FL:::/Kernel/KDbg.CPP.Z,291",BI=465$
 $LK,"StrICmp",A="FL:::/Kernel/StrA.CPP.Z,311"$
-$LK,"ATAR0_DATA",A="FL:::/Kernel/KernelA.HPP,2253"$
+$LK,"ATAR0_DATA",A="FL:::/Kernel/KernelA.HPP,2272"$
 $LK,"MIN_U8",A="FL:::/Kernel/KernelA.HPP,24"$
-$LK,"DVD_FILE_OFFSET",A="FL:::/Kernel/KernelA.HPP,2275"$
-$LK,"OPTf_TRACE",A="FL:::/Kernel/KernelA.HPP,1527"$
-$LK,"HTG_FLAGS_MASK",A="FL:::/Kernel/KernelA.HPP,706"$
+$LK,"DVD_FILE_OFFSET",A="FL:::/Kernel/KernelA.HPP,2294"$
+$LK,"OPTf_TRACE",A="FL:::/Kernel/KernelA.HPP,1533"$
+$LK,"HTG_FLAGS_MASK",A="FL:::/Kernel/KernelA.HPP,707"$
 $LK,"DirFilesSort",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,92",BI=466$
 $LK,"HashLstAdd",A="FL:::/Kernel/KHashB.CPP.Z,185",BI=467$
 $LK,"ACAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,402",BI=468$
 $LK,"SYS_RUN_LEVEL",A="FL:::/Kernel/KStart.CPP.Z,26"$
-$LK,"SCF_SCROLL",A="FL:::/Kernel/KernelA.HPP,3521"$
-$LK,"SCf_SCROLL",A="FL:::/Kernel/KernelA.HPP,3506"$
-$LK,"CCF_DONT_MAKE_RESULT",A="FL:::/Kernel/KernelA.HPP,2141"$
-$LK,"BDf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,2629"$
-$LK,"TK_SUB_EQU",A="FL:::/Kernel/KernelA.HPP,2075"$
-$LK,"TK_DIV_EQU",A="FL:::/Kernel/KernelA.HPP,2070"$
-$LK,"OC_BPT",A="FL:::/Kernel/KernelA.HPP,1740"$
-$LK,"DOCF_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HPP,1258"$
-$LK,"IOREDTAB",A="FL:::/Kernel/KernelA.HPP,511"$
+$LK,"SCF_SCROLL",A="FL:::/Kernel/KernelA.HPP,3540"$
+$LK,"SCf_SCROLL",A="FL:::/Kernel/KernelA.HPP,3525"$
+$LK,"CCF_DONT_MAKE_RESULT",A="FL:::/Kernel/KernelA.HPP,2161"$
+$LK,"BDf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,2648"$
+$LK,"TK_SUB_EQU",A="FL:::/Kernel/KernelA.HPP,2095"$
+$LK,"TK_DIV_EQU",A="FL:::/Kernel/KernelA.HPP,2090"$
+$LK,"OC_BPT",A="FL:::/Kernel/KernelA.HPP,1758"$
+$LK,"DOCF_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HPP,1264"$
+$LK,"IOREDTAB",A="FL:::/Kernel/KernelA.HPP,512"$
 $LK,"Fstcw",A="FL:::/Kernel/KernelB.HPP,131"$
-$LK,"MSG_IP_L_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3214"$
-$LK,"LAPIC_TMR",A="FL:::/Kernel/KernelA.HPP,489"$
+$LK,"MSG_IP_L_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3233"$
+$LK,"LAPIC_TMR",A="FL:::/Kernel/KernelA.HPP,490"$
 $LK,"C32_EFLAGS",A="FL:::/Kernel/PCIBIOS.CPP.Z,64"$
 $LK,"sys_compile_time",A="FL:::/Kernel/KernelB.HPP,207"$
 $LK,"_D3_DIV_EQU",A="FL:::/Kernel/KMathA.CPP.Z,289"$
 $LK,"_D3_SUB_EQU",A="FL:::/Kernel/KMathA.CPP.Z,256"$
-$LK,"TASKf_SUSPENDED",A="FL:::/Kernel/KernelA.HPP,3255"$
-$LK,"FUF_DIFF",A="FL:::/Kernel/KernelA.HPP,2573"$
-$LK,"FUf_DIFF",A="FL:::/Kernel/KernelA.HPP,2547"$
-$LK,"DOCf_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HPP,1294"$
-$LK,"CHashImport",A="FL:::/Kernel/KernelA.HPP,759"$
-$LK,"CMT_LABEL",A="FL:::/Kernel/KernelA.HPP,1666"$
+$LK,"TASKf_SUSPENDED",A="FL:::/Kernel/KernelA.HPP,3274"$
+$LK,"FUF_DIFF",A="FL:::/Kernel/KernelA.HPP,2592"$
+$LK,"FUf_DIFF",A="FL:::/Kernel/KernelA.HPP,2566"$
+$LK,"DOCf_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HPP,1300"$
+$LK,"CHashImport",A="FL:::/Kernel/KernelA.HPP,760"$
+$LK,"CMT_LABEL",A="FL:::/Kernel/KernelA.HPP,1684"$
 $LK,"C32_ADD",A="FL:::/Kernel/PCIBIOS.CPP.Z,122"$
-$LK,"MEM_PAGE_BITS",A="FL:::/Kernel/KernelA.HPP,2848"$
-$LK,"MBS_USED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2828"$
+$LK,"MEM_PAGE_BITS",A="FL:::/Kernel/KernelA.HPP,2867"$
+$LK,"MBS_USED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2847"$
 $LK,"HeapCtrlDel",A="FL:::/Kernel/Mem/HeapCtrl.CPP.Z,15",BI=469$
 $LK,"_CALLEXTSTR",A="FL:::/Kernel/KUtils.CPP.Z,393"$
-$LK,"FF_USE_OLD_DATETIME",A="FL:::/Kernel/KernelA.HPP,2756"$
-$LK,"CCf_PAREN",A="FL:::/Kernel/KernelA.HPP,2139"$
-$LK,"CCF_PAREN",A="FL:::/Kernel/KernelA.HPP,2138"$
-$LK,"ACD_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,1503"$
+$LK,"FF_USE_OLD_DATETIME",A="FL:::/Kernel/KernelA.HPP,2775"$
+$LK,"CCf_PAREN",A="FL:::/Kernel/KernelA.HPP,2159"$
+$LK,"CCF_PAREN",A="FL:::/Kernel/KernelA.HPP,2158"$
+$LK,"ACD_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,1509"$
 $LK,"CSysLimitBase",A="FL:::/Kernel/KernelA.HPP,347"$
-$LK,"DVD_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,2274"$
+$LK,"DVD_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,2293"$
 $LK,"QueIns",A="FL:::/Kernel/KernelB.HPP,67"$
-$LK,"CGrSym",A="FL:::/Kernel/KernelA.HPP,3626"$
-$LK,"ATAR0_FEAT",A="FL:::/Kernel/KernelA.HPP,2254"$
-$LK,"RLF_HOME",A="FL:::/Kernel/KernelA.HPP,468"$
-$LK,"RLf_HOME",A="FL:::/Kernel/KernelA.HPP,449"$
+$LK,"CGrSym",A="FL:::/Kernel/KernelA.HPP,3645"$
+$LK,"ATAR0_FEAT",A="FL:::/Kernel/KernelA.HPP,2273"$
+$LK,"RLF_HOME",A="FL:::/Kernel/KernelA.HPP,469"$
+$LK,"RLf_HOME",A="FL:::/Kernel/KernelA.HPP,450"$
 $LK,"snd",A="FL:::/Kernel/KGlbls.CPP.Z,28"$
-$LK,"SC_ENTER",A="FL:::/Kernel/KernelA.HPP,3536"$
-$LK,"LTCYAN",A="FL:::/Kernel/KernelA.HPP,2940"$
-$LK,"FUF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,2596"$
-$LK,"CCF_PREINC",A="FL:::/Kernel/KernelA.HPP,2128"$
-$LK,"HTT_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,679"$
-$LK,"HTT_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,678"$
+$LK,"SC_ENTER",A="FL:::/Kernel/KernelA.HPP,3555"$
+$LK,"LTCYAN",A="FL:::/Kernel/KernelA.HPP,2959"$
+$LK,"FUF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,2615"$
+$LK,"CCF_PREINC",A="FL:::/Kernel/KernelA.HPP,2148"$
+$LK,"HTT_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,680"$
+$LK,"HTT_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,679"$
 $LK,"FunSegCacheAdd",A="FL:::/Kernel/FunSeg.CPP.Z,60",BI=470$
-$LK,"CTRLT_GENERIC",A="FL:::/Kernel/KernelA.HPP,3058"$
-$LK,"CCF_KEEP_AT_SIGN",A="FL:::/Kernel/KernelA.HPP,2113"$
-$LK,"RS_ATTR_DIR",A="FL:::/Kernel/KernelA.HPP,2506"$
-$LK,"CCF_POSTDEC",A="FL:::/Kernel/KernelA.HPP,2127"$
+$LK,"CTRLT_GENERIC",A="FL:::/Kernel/KernelA.HPP,3077"$
+$LK,"CCF_KEEP_AT_SIGN",A="FL:::/Kernel/KernelA.HPP,2133"$
+$LK,"RS_ATTR_DIR",A="FL:::/Kernel/KernelA.HPP,2525"$
+$LK,"CCF_POSTDEC",A="FL:::/Kernel/KernelA.HPP,2147"$
 $LK,"DirContextDel",A="FL:::/Kernel/BlkDev/DskDirContext.CPP.Z,1",BI=471$
 $LK,"StrPrintFlags",A="FL:::/Kernel/StrB.CPP.Z,177",BI=472$
-$LK,"TK_IFNDEF",A="FL:::/Kernel/KernelA.HPP,2078"$
-$LK,"CMT_FLOAT_CONSTS",A="FL:::/Kernel/KernelA.HPP,1671"$
+$LK,"TK_IFNDEF",A="FL:::/Kernel/KernelA.HPP,2098"$
+$LK,"CMT_FLOAT_CONSTS",A="FL:::/Kernel/KernelA.HPP,1689"$
 $LK,"CBinFile",A="FL:::/Kernel/KernelA.HPP,370"$
 $LK,"SpawnQue",A="FL:::/Kernel/MultiProc.CPP.Z,248",BI=473$
-$LK,"LAPIC_SVR",A="FL:::/Kernel/KernelA.HPP,486"$
-$LK,"CMouseStateGlbls",A="FL:::/Kernel/KernelA.HPP,2994"$
+$LK,"LAPIC_SVR",A="FL:::/Kernel/KernelA.HPP,487"$
+$LK,"CMouseStateGlbls",A="FL:::/Kernel/KernelA.HPP,3013"$
 $LK,"StrPrintFunSeg",A="FL:::/Kernel/FunSeg.CPP.Z,102",BI=474$
-$LK,"ISO1_ATTR_DIR",A="FL:::/Kernel/KernelA.HPP,2498"$
+$LK,"ISO1_ATTR_DIR",A="FL:::/Kernel/KernelA.HPP,2517"$
 $LK,"HashVal",A="FL:::/Kernel/KHashB.CPP.Z,9",BI=475$
 $LK,"C:/Doc/MultiCore.TXT.Z",A="FL:::/Kernel/KernelB.HPP,233"$
+$LK,"DOCEF_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1021"$
 $LK,"IET_IMM_U32",A="FL:::/Kernel/KernelA.HPP,399"$
 $LK,"IET_IMM_U16",A="FL:::/Kernel/KernelA.HPP,397"$
 $LK,"QueRem",A="FL:::/Kernel/KernelB.HPP,71"$
-$LK,"TASKf_DISABLE_BPTS",A="FL:::/Kernel/KernelA.HPP,3260"$
-$LK,"BDT_NULL",A="FL:::/Kernel/KernelA.HPP,2606"$
+$LK,"TASKf_DISABLE_BPTS",A="FL:::/Kernel/KernelA.HPP,3279"$
+$LK,"BDT_NULL",A="FL:::/Kernel/KernelA.HPP,2625"$
 $LK,"FarCall32",A="FL:::/Kernel/PCIBIOS.CPP.Z,161"$
-$LK,"SCF_NO_SHIFT",A="FL:::/Kernel/KernelA.HPP,3527"$
-$LK,"SCf_NO_SHIFT",A="FL:::/Kernel/KernelA.HPP,3512"$
-$LK,"ARGT_MOFFS32",A="FL:::/Kernel/KernelA.HPP,1893"$
-$LK,"ARGT_MOFFS16",A="FL:::/Kernel/KernelA.HPP,1892"$
+$LK,"SCF_NO_SHIFT",A="FL:::/Kernel/KernelA.HPP,3546"$
+$LK,"SCf_NO_SHIFT",A="FL:::/Kernel/KernelA.HPP,3531"$
+$LK,"ARGT_MOFFS32",A="FL:::/Kernel/KernelA.HPP,1912"$
+$LK,"ARGT_MOFFS16",A="FL:::/Kernel/KernelA.HPP,1911"$
 $LK,"sys_heap_dbg",A="FL:::/Kernel/KernelB.HPP,186"$
-$LK,"FUF_SINGLE",A="FL:::/Kernel/KernelA.HPP,2582"$
-$LK,"FUf_SINGLE",A="FL:::/Kernel/KernelA.HPP,2556"$
+$LK,"FUF_SINGLE",A="FL:::/Kernel/KernelA.HPP,2601"$
+$LK,"FUf_SINGLE",A="FL:::/Kernel/KernelA.HPP,2575"$
+$LK,"DOCEf_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1107"$
 $LK,"DVDImageWriteTask",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,49",BI=476$
-$LK,"LTGRAY",A="FL:::/Kernel/KernelA.HPP,2936"$
+$LK,"LTGRAY",A="FL:::/Kernel/KernelA.HPP,2955"$
 $LK,"CoreAPSethInit",A="FL:::/Kernel/MultiProc.CPP.Z,276",BI=477$
 $LK,"IRQKbd",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,411",BI=478$
 $LK,"QueVectU8Del",A="FL:::/Kernel/KDataTypes.CPP.Z,132",BI=479$
 $LK,"SwapU32",A="FL:::/Kernel/KernelB.HPP,114"$
 $LK,"SwapU16",A="FL:::/Kernel/KernelB.HPP,112"$
-$LK,"ARf_MESH_ED",A="FL:::/Kernel/KernelA.HPP,3876"$
-$LK,"CAsmUndefHash",A="FL:::/Kernel/KernelA.HPP,1791"$
-$LK,"HTt_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,649"$
-$LK,"HTt_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,648"$
+$LK,"ARf_MESH_ED",A="FL:::/Kernel/KernelA.HPP,3895"$
+$LK,"CAsmUndefHash",A="FL:::/Kernel/KernelA.HPP,1810"$
+$LK,"HTt_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,650"$
+$LK,"HTt_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,649"$
 $LK,"C32_EDI",A="FL:::/Kernel/PCIBIOS.CPP.Z,63"$
 $LK,"pow10_I64",A="FL:::/Kernel/KGlbls.CPP.Z,15"$
 $LK,"sys_num_spawned_tasks",A="FL:::/Kernel/KGlbls.CPP.Z,9"$
-$LK,"LAPIC_LVT_LINT0",A="FL:::/Kernel/KernelA.HPP,497"$
+$LK,"LAPIC_LVT_LINT0",A="FL:::/Kernel/KernelA.HPP,498"$
 $LK,"Cluster2Blk",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,32",BI=480$
 $LK,"ArcFinishCompression",A="FL:::/Kernel/Compress.CPP.Z,155",BI=481$
-$LK,"LAPIC_LVT_LINT1",A="FL:::/Kernel/KernelA.HPP,498"$
+$LK,"LAPIC_LVT_LINT1",A="FL:::/Kernel/KernelA.HPP,499"$
 $LK,"sys_winmgr_task",A="FL:::/Kernel/KGlbls.CPP.Z,11"$
-$LK,"SC_CAPS",A="FL:::/Kernel/KernelA.HPP,3540"$
+$LK,"SC_CAPS",A="FL:::/Kernel/KernelA.HPP,3559"$
 $LK,"SYS_RAM_REBOOT_END",A="FL:::/Kernel/KStart.CPP.Z,373"$
-$LK,"CMT_ARRAY_DIM",A="FL:::/Kernel/KernelA.HPP,1672"$
-$LK,"ACD_POS_CHAR",A="FL:::/Kernel/KernelA.HPP,1509"$
-$LK,"REGT_FSTK",A="FL:::/Kernel/KernelA.HPP,739"$
-$LK,"ARGT_MOFFS64",A="FL:::/Kernel/KernelA.HPP,1894"$
-$LK,"DOCF_COLOR_NAMES",A="FL:::/Kernel/KernelA.HPP,1253"$
-$LK,"CRAXRBCRCXRDX",A="FL:::/Kernel/KernelA.HPP,564"$
+$LK,"REG_R8",A="FL:::/Kernel/KernelA.HPP,1781"$
+$LK,"CMT_ARRAY_DIM",A="FL:::/Kernel/KernelA.HPP,1690"$
+$LK,"ACD_POS_CHAR",A="FL:::/Kernel/KernelA.HPP,1515"$
+$LK,"REGT_FSTK",A="FL:::/Kernel/KernelA.HPP,740"$
+$LK,"ARGT_MOFFS64",A="FL:::/Kernel/KernelA.HPP,1913"$
+$LK,"DOCF_COLOR_NAMES",A="FL:::/Kernel/KernelA.HPP,1259"$
+$LK,"CRAXRBCRCXRDX",A="FL:::/Kernel/KernelA.HPP,565"$
 $LK,"_SAVE_EXCEPT_REGS",A="FL:::/Kernel/KExcept.CPP.Z,26"$
-$LK,"DOCf_COLOR_NAMES",A="FL:::/Kernel/KernelA.HPP,1289"$
+$LK,"MDf_IMM",A="FL:::/Kernel/KernelA.HPP,1569"$
+$LK,"DOCf_COLOR_NAMES",A="FL:::/Kernel/KernelA.HPP,1295"$
 $LK,"RoundI64",A="FL:::/Kernel/KMathB.CPP.Z,47",BI=482$
-$LK,"CSndGlbls",A="FL:::/Kernel/KernelA.HPP,3816"$
-$LK,"EXT_HEAPLOG_FREE",A="FL:::/Kernel/KernelA.HPP,574"$
+$LK,"CSndGlbls",A="FL:::/Kernel/KernelA.HPP,3835"$
+$LK,"EXT_HEAPLOG_FREE",A="FL:::/Kernel/KernelA.HPP,575"$
 $LK,"DrvSerialNum",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,248",BI=483$
 $LK,"Fstsw",A="FL:::/Kernel/KernelB.HPP,132"$
-$LK,"TASKf_TASK_LOCK",A="FL:::/Kernel/KernelA.HPP,3253"$
-$LK,"BDT_ATA",A="FL:::/Kernel/KernelA.HPP,2608"$
+$LK,"TASKf_TASK_LOCK",A="FL:::/Kernel/KernelA.HPP,3272"$
+$LK,"BDT_ATA",A="FL:::/Kernel/KernelA.HPP,2627"$
 $LK,"RFLAGf_RESUME",A="FL:::/Kernel/KernelA.HPP,317"$
 $LK,"C32_EAX",A="FL:::/Kernel/PCIBIOS.CPP.Z,58"$
 $LK,"PortNop",A="FL:::/Kernel/KMisc.CPP.Z,1",BI=484$
 $LK,"StrNCmp",A="FL:::/Kernel/StrA.CPP.Z,313"$
-$LK,"FUF_PUBLIC",A="FL:::/Kernel/KernelA.HPP,2579"$
-$LK,"FUf_PUBLIC",A="FL:::/Kernel/KernelA.HPP,2553"$
-$LK,"CFAT32FileInfoSect",A="FL:::/Kernel/KernelA.HPP,2345"$
+$LK,"FUF_PUBLIC",A="FL:::/Kernel/KernelA.HPP,2598"$
+$LK,"FUf_PUBLIC",A="FL:::/Kernel/KernelA.HPP,2572"$
+$LK,"CFAT32FileInfoSect",A="FL:::/Kernel/KernelA.HPP,2364"$
 $LK,"SYS_HEAP_INIT_VAL",A="FL:::/Home/Temp.TXT.Z,1"$
-$LK,"CATAPITrack",A="FL:::/Kernel/KernelA.HPP,2397"$
+$LK,"CATAPITrack",A="FL:::/Kernel/KernelA.HPP,2416"$
 $LK,"C32_EBX",A="FL:::/Kernel/PCIBIOS.CPP.Z,59"$
-$LK,"CCF_HAS_MISC_DATA",A="FL:::/Kernel/KernelA.HPP,2119"$
-$LK,"LFSF_DOC",A="FL:::/Kernel/KernelA.HPP,2011"$
-$LK,"ACD_PRONUNCIATION_CHAR",A="FL:::/Kernel/KernelA.HPP,1508"$
-$LK,"ACD_PRONUNCIATION",A="FL:::/Kernel/KernelA.HPP,1497"$
+$LK,"CCF_HAS_MISC_DATA",A="FL:::/Kernel/KernelA.HPP,2139"$
+$LK,"LFSF_DOC",A="FL:::/Kernel/KernelA.HPP,2031"$
+$LK,"ACD_PRONUNCIATION_CHAR",A="FL:::/Kernel/KernelA.HPP,1514"$
+$LK,"ACD_PRONUNCIATION",A="FL:::/Kernel/KernelA.HPP,1503"$
 $LK,"C32_ECX",A="FL:::/Kernel/PCIBIOS.CPP.Z,60"$
 $LK,"FifoU8Peek",A="FL:::/Kernel/KDataTypes.CPP.Z,205",BI=485$
 $LK,"C32_EDX",A="FL:::/Kernel/PCIBIOS.CPP.Z,61"$
 $LK,"LoadPass1",A="FL:::/Kernel/KLoad.CPP.Z,67",BI=486$
 $LK,"LoadPass2",A="FL:::/Kernel/KLoad.CPP.Z,154",BI=487$
-$LK,"ARf_MANAGE_SLIDER",A="FL:::/Kernel/KernelA.HPP,3878"$
-$LK,"CSndData",A="FL:::/Kernel/KernelA.HPP,3809"$
-$LK,"SC_PAGE_DOWN",A="FL:::/Kernel/KernelA.HPP,3548"$
-$LK,"OC_NOP",A="FL:::/Kernel/KernelA.HPP,1739"$
+$LK,"ARf_MANAGE_SLIDER",A="FL:::/Kernel/KernelA.HPP,3897"$
+$LK,"CSndData",A="FL:::/Kernel/KernelA.HPP,3828"$
+$LK,"SC_PAGE_DOWN",A="FL:::/Kernel/KernelA.HPP,3567"$
+$LK,"OC_NOP",A="FL:::/Kernel/KernelA.HPP,1757"$
 $LK,"SPF_AUX_FMT_NUM",A="FL:::/Kernel/StrPrint.CPP.Z,8"$
-$LK,"MSG_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3199"$
-$LK,"SYS_SEMA_SINGLE_USER",A="FL:::/Kernel/KernelA.HPP,599"$
+$LK,"MSG_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3218"$
+$LK,"SYS_SEMA_SINGLE_USER",A="FL:::/Kernel/KernelA.HPP,600"$
 $LK,"TimeStampFreqCal",A="FL:::/Kernel/KMisc.CPP.Z,85",BI=488$
 $LK,"QueVectU8Get",A="FL:::/Kernel/KDataTypes.CPP.Z,140",BI=489$
-$LK,"DOCF_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HPP,1251"$
+$LK,"DOCF_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HPP,1257"$
 $LK,"PostMsg",A="FL:::/Kernel/SrvCmd.CPP.Z,240",BI=490$
-$LK,"SVCT_CALL",A="FL:::/Kernel/KernelA.HPP,3164"$
+$LK,"SVCT_CALL",A="FL:::/Kernel/KernelA.HPP,3183"$
+$LK,"MDf_REG",A="FL:::/Kernel/KernelA.HPP,1570"$
 $LK,"ATAPISeek",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,131",BI=491$
 $LK,"MPrintDate",A="FL:::/Kernel/StrPrint.CPP.Z,62",BI=492$
-$LK,"SC_F10",A="FL:::/Kernel/KernelA.HPP,3562"$
-$LK,"SC_F11",A="FL:::/Kernel/KernelA.HPP,3563"$
-$LK,"SYS_SEMA_TT",A="FL:::/Kernel/KernelA.HPP,605"$
+$LK,"SC_F10",A="FL:::/Kernel/KernelA.HPP,3581"$
+$LK,"SC_F11",A="FL:::/Kernel/KernelA.HPP,3582"$
+$LK,"SYS_SEMA_TT",A="FL:::/Kernel/KernelA.HPP,606"$
 $LK,"Silent",A="FL:::/Kernel/KMisc.CPP.Z,223",BI=493$
-$LK,"SC_F12",A="FL:::/Kernel/KernelA.HPP,3564"$
-$LK,"WIF_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HPP,1414"$
-$LK,"CCF_POSTINC",A="FL:::/Kernel/KernelA.HPP,2126"$
-$LK,"CCF_IN_IF",A="FL:::/Kernel/KernelA.HPP,2108"$
+$LK,"SC_F12",A="FL:::/Kernel/KernelA.HPP,3583"$
+$LK,"WIF_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HPP,1420"$
+$LK,"CCF_POSTINC",A="FL:::/Kernel/KernelA.HPP,2146"$
+$LK,"CCF_IN_IF",A="FL:::/Kernel/KernelA.HPP,2128"$
 $LK,"HashStr",A="FL:::/Kernel/KHashA.CPP.Z,254"$
-$LK,"CHashExport",A="FL:::/Kernel/KernelA.HPP,754"$
+$LK,"CHashExport",A="FL:::/Kernel/KernelA.HPP,755"$
 $LK,"FifoU8Del",A="FL:::/Kernel/KDataTypes.CPP.Z,167",BI=494$
 $LK,"DrvIsWritable",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,169",BI=495$
+$LK,"MDf_SIB",A="FL:::/Kernel/KernelA.HPP,1572"$
 $LK,"FWBlks",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,182",BI=496$
 $LK,"chars_bmp_printable",A="FL:::/Kernel/StrA.CPP.Z,381"$
-$LK,"RLF_COMPILER",A="FL:::/Kernel/KernelA.HPP,464"$
-$LK,"RLf_COMPILER",A="FL:::/Kernel/KernelA.HPP,445"$
-$LK,"TASK_NAME_LEN",A="FL:::/Kernel/KernelA.HPP,3277"$
-$LK,"COLORROP_COLORS_MASK",A="FL:::/Kernel/KernelA.HPP,2958"$
+$LK,"RLF_COMPILER",A="FL:::/Kernel/KernelA.HPP,465"$
+$LK,"RLf_COMPILER",A="FL:::/Kernel/KernelA.HPP,446"$
+$LK,"TASK_NAME_LEN",A="FL:::/Kernel/KernelA.HPP,3296"$
+$LK,"COLORROP_COLORS_MASK",A="FL:::/Kernel/KernelA.HPP,2977"$
 $LK,"C32_ESI",A="FL:::/Kernel/PCIBIOS.CPP.Z,62"$
 $LK,"BlkPoolsInit",A="FL:::/Kernel/Mem/BlkPool.CPP.Z,29",BI=497$
 $LK,"SYS_DATA_BP",A="FL:::/Kernel/KStart.CPP.Z,205"$
-$LK,"VGAP_PALETTE_DATA",A="FL:::/Kernel/KernelA.HPP,3711"$
-$LK,"ATAR0_HCYL",A="FL:::/Kernel/KernelA.HPP,2258"$
+$LK,"VGAP_PALETTE_DATA",A="FL:::/Kernel/KernelA.HPP,3730"$
+$LK,"ATAR0_HCYL",A="FL:::/Kernel/KernelA.HPP,2277"$
 $LK,"sys_code_bp",A="FL:::/Kernel/KernelB.HPP,195"$
 $LK,"RepOutU32",A="FL:::/Kernel/KernelB.HPP,89"$
 $LK,"RepOutU16",A="FL:::/Kernel/KernelB.HPP,87"$
-$LK,"TK_SUBSCRIPT",A="FL:::/Kernel/KernelA.HPP,2047"$
-$LK,"WIG_TASK_DFT",A="FL:::/Kernel/KernelA.HPP,1424"$
-$LK,"ARf_PSALMODY_JUKEBOX",A="FL:::/Kernel/KernelA.HPP,3875"$
-$LK,"DOCEf_HTML_LINK",A="FL:::/Kernel/KernelA.HPP,1049"$
-$LK,"DOCEF_HTML_LINK",A="FL:::/Kernel/KernelA.HPP,963"$
+$LK,"TK_SUBSCRIPT",A="FL:::/Kernel/KernelA.HPP,2067"$
+$LK,"WIG_TASK_DFT",A="FL:::/Kernel/KernelA.HPP,1430"$
+$LK,"ARf_PSALMODY_JUKEBOX",A="FL:::/Kernel/KernelA.HPP,3894"$
+$LK,"DOCEf_HTML_LINK",A="FL:::/Kernel/KernelA.HPP,1053"$
+$LK,"DOCEF_HTML_LINK",A="FL:::/Kernel/KernelA.HPP,965"$
 $LK,"NORMAL_KEY_SCAN_DECODE_TABLE",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,3"$
 $LK,"LinkedLstSize",A="FL:::/Kernel/KDataTypes.CPP.Z,31",BI=498$
 $LK,"SSF_NO_COMPRESSION",A="FL:::/Kernel/KernelA.HPP,222"$
 $LK,"DirContextNew",A="FL:::/Kernel/BlkDev/DskDirContext.CPP.Z,21",BI=499$
 $LK,"_SET_MSR",A="FL:::/Kernel/KUtils.CPP.Z,459"$
-$LK,"HClf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2876"$
+$LK,"HClf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2895"$
 $LK,"SPF_QUESTION",A="FL:::/Kernel/StrPrint.CPP.Z,7"$
-$LK,"ACD_EXTRA_END",A="FL:::/Kernel/KernelA.HPP,1502"$
+$LK,"ACD_EXTRA_END",A="FL:::/Kernel/KernelA.HPP,1508"$
 $LK,"SetRFlags",A="FL:::/Kernel/KernelB.HPP,255"$
 $LK,"GetRFlags",A="FL:::/Kernel/KernelB.HPP,249"$
-$LK,"DOCEF_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HPP,967"$
-$LK,"MSG_IP_MOVE",A="FL:::/Kernel/KernelA.HPP,3200"$
-$LK,"SVCT_TEXT_INPUT",A="FL:::/Kernel/KernelA.HPP,3160"$
-$LK,"DOClf_LOCKED",A="FL:::/Kernel/KernelA.HPP,1322"$
+$LK,"DOCEF_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HPP,969"$
+$LK,"MSG_IP_MOVE",A="FL:::/Kernel/KernelA.HPP,3219"$
+$LK,"SVCT_TEXT_INPUT",A="FL:::/Kernel/KernelA.HPP,3179"$
+$LK,"DOClf_LOCKED",A="FL:::/Kernel/KernelA.HPP,1328"$
 $LK,"CallStkGrow",A="FL:::/Kernel/KTask.CPP.Z,78",BI=500$
-$LK,"ATAR0_NSECT",A="FL:::/Kernel/KernelA.HPP,2255"$
-$LK,"DOCEf_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HPP,1053"$
-$LK,"RLF_DOC",A="FL:::/Kernel/KernelA.HPP,465"$
+$LK,"ATAR0_NSECT",A="FL:::/Kernel/KernelA.HPP,2274"$
+$LK,"DOCEf_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HPP,1057"$
+$LK,"RLF_DOC",A="FL:::/Kernel/KernelA.HPP,466"$
 $LK,"chars_bmp_macro",A="FL:::/Kernel/StrA.CPP.Z,376"$
 $LK,"OutU8",A="FL:::/Kernel/KernelB.HPP,79"$
-$LK,"DCF_ALIAS",A="FL:::/Kernel/KernelA.HPP,3614"$
+$LK,"DCF_ALIAS",A="FL:::/Kernel/KernelA.HPP,3633"$
 $LK,"CoreAPSethTask",A="FL:::/Kernel/MultiProc.CPP.Z,194",BI=501$
-$LK,"Ff_HASERRCODE",A="FL:::/Kernel/KernelA.HPP,843"$
-$LK,"DOCF_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HPP,1248"$
+$LK,"Ff_HASERRCODE",A="FL:::/Kernel/KernelA.HPP,844"$
+$LK,"REGG_LOCAL_NON_PTR_VARS",A="FL:::/Kernel/KernelA.HPP,1792"$
+$LK,"DOCF_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HPP,1254"$
 $LK,"RawPutChar",A="FL:::/Kernel/Display.CPP.Z,1",BI=502$
 $LK,"FifoU8Cnt",A="FL:::/Kernel/KDataTypes.CPP.Z,227",BI=503$
 $LK,"C:/Doc/TimeHPET.TXT.Z",A="FL:::/Kernel/KernelB.HPP,289"$
-$LK,"DOCf_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HPP,1284"$
-$LK,"CArcEntry",A="FL:::/Kernel/KernelA.HPP,3725"$
-$LK,"AOT_BIN_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,1776"$
-$LK,"DOCf_FORM",A="FL:::/Kernel/KernelA.HPP,1292"$
-$LK,"DOCF_FORM",A="FL:::/Kernel/KernelA.HPP,1256"$
-$LK,"CHashTable",A="FL:::/Kernel/KernelA.HPP,638"$
+$LK,"DOCf_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HPP,1290"$
+$LK,"CArcEntry",A="FL:::/Kernel/KernelA.HPP,3744"$
+$LK,"AOT_BIN_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,1795"$
+$LK,"DOCf_FORM",A="FL:::/Kernel/KernelA.HPP,1298"$
+$LK,"DOCF_FORM",A="FL:::/Kernel/KernelA.HPP,1262"$
+$LK,"CHashTable",A="FL:::/Kernel/KernelA.HPP,639"$
 $LK,"QueVectU8New",A="FL:::/Kernel/KDataTypes.CPP.Z,87",BI=504$
-$LK,"MEM_INTERRUPT_STK",A="FL:::/Kernel/KernelA.HPP,2858"$
-$LK,"BDT_RAM",A="FL:::/Kernel/KernelA.HPP,2607"$
-$LK,"CMF_POP_CMP",A="FL:::/Kernel/KernelA.HPP,1675"$
-$LK,"ICF_POP_CMP",A="FL:::/Kernel/KernelA.HPP,1592"$
-$LK,"DOCf_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HPP,1287"$
-$LK,"MLMF_IS_STR",A="FL:::/Kernel/KernelA.HPP,783"$
-$LK,"SYS_TIMER0_PERIOD",A="FL:::/Kernel/KernelA.HPP,549"$
+$LK,"MEM_INTERRUPT_STK",A="FL:::/Kernel/KernelA.HPP,2877"$
+$LK,"BDT_RAM",A="FL:::/Kernel/KernelA.HPP,2626"$
+$LK,"CMF_POP_CMP",A="FL:::/Kernel/KernelA.HPP,1693"$
+$LK,"ICF_POP_CMP",A="FL:::/Kernel/KernelA.HPP,1606"$
+$LK,"DOCf_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HPP,1293"$
+$LK,"MLMF_IS_STR",A="FL:::/Kernel/KernelA.HPP,784"$
+$LK,"SYS_TIMER0_PERIOD",A="FL:::/Kernel/KernelA.HPP,550"$
 $LK,"SET_FS_BASE",A="FL:::/Kernel/KUtils.CPP.Z,446"$
-$LK,"CISO1PriDesc",A="FL:::/Kernel/KernelA.HPP,2460"$
+$LK,"CISO1PriDesc",A="FL:::/Kernel/KernelA.HPP,2479"$
 $LK,"PutHex",A="FL:::/Kernel/StrA.CPP.Z,12",BI=505$
 $LK,"PopUp",A="FL:::/Kernel/SrvCmd.CPP.Z,377",BI=506$
-$LK,"SCF_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3524"$
-$LK,"SCf_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3509"$
-$LK,"MSG_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3205"$
-$LK,"SVCT_EXE_STR",A="FL:::/Kernel/KernelA.HPP,3162"$
-$LK,"DOCF_OVERSTRIKE",A="FL:::/Kernel/KernelA.HPP,1278"$
-$LK,"IOAPICARB",A="FL:::/Kernel/KernelA.HPP,510"$
-$LK,"DOCf_OVERSTRIKE",A="FL:::/Kernel/KernelA.HPP,1315"$
+$LK,"SCF_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3543"$
+$LK,"SCf_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3528"$
+$LK,"MSG_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3224"$
+$LK,"SVCT_EXE_STR",A="FL:::/Kernel/KernelA.HPP,3181"$
+$LK,"DOCF_OVERSTRIKE",A="FL:::/Kernel/KernelA.HPP,1284"$
+$LK,"IOAPICARB",A="FL:::/Kernel/KernelA.HPP,511"$
+$LK,"DOCf_OVERSTRIKE",A="FL:::/Kernel/KernelA.HPP,1321"$
 $LK,"COREAP_16BIT_INIT_END",A="FL:::/Kernel/MultiProc.CPP.Z,27"$
-$LK,"SCF_SHIFT",A="FL:::/Kernel/KernelA.HPP,3516"$
-$LK,"SCf_SHIFT",A="FL:::/Kernel/KernelA.HPP,3501"$
-$LK,"WIF_SELF_FOCUS",A="FL:::/Kernel/KernelA.HPP,1399"$
+$LK,"SCF_SHIFT",A="FL:::/Kernel/KernelA.HPP,3535"$
+$LK,"SCf_SHIFT",A="FL:::/Kernel/KernelA.HPP,3520"$
+$LK,"WIF_SELF_FOCUS",A="FL:::/Kernel/KernelA.HPP,1405"$
 $LK,"StrLastOcc",A="FL:::/Kernel/StrA.CPP.Z,599",BI=507$
-$LK,"WIf_SELF_FOCUS",A="FL:::/Kernel/KernelA.HPP,1428"$
+$LK,"WIf_SELF_FOCUS",A="FL:::/Kernel/KernelA.HPP,1434"$
 $LK,"FClose",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,74",BI=508$
-$LK,"IEF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,1934"$
-$LK,"CMT_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,1668"$
+$LK,"MDf_STK",A="FL:::/Kernel/KernelA.HPP,1568"$
+$LK,"IEF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,1954"$
+$LK,"CMT_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,1686"$
 $LK,"mon_start_days1",A="FL:::/Kernel/KDate.CPP.Z,3"$
-$LK,"HTF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,702"$
+$LK,"HTF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,703"$
 $LK,"mon_start_days2",A="FL:::/Kernel/KDate.CPP.Z,5"$
-$LK,"FONT_HEIGHT",A="FL:::/Kernel/KernelA.HPP,3586"$
-$LK,"SVCf_FOCUS_MASTER",A="FL:::/Kernel/KernelA.HPP,3150"$
-$LK,"HTf_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,672"$
-$LK,"DFT_CACHE_LINE_WIDTH",A="FL:::/Kernel/KernelA.HPP,579"$
-$LK,"ATAR0_LCYL",A="FL:::/Kernel/KernelA.HPP,2257"$
+$LK,"FONT_HEIGHT",A="FL:::/Kernel/KernelA.HPP,3605"$
+$LK,"SVCf_FOCUS_MASTER",A="FL:::/Kernel/KernelA.HPP,3169"$
+$LK,"HTf_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,673"$
+$LK,"DFT_CACHE_LINE_WIDTH",A="FL:::/Kernel/KernelA.HPP,580"$
+$LK,"ATAR0_LCYL",A="FL:::/Kernel/KernelA.HPP,2276"$
 $LK,"MemPagePresentMark",A="FL:::/Kernel/Mem/PageTables.CPP.Z,170",BI=509$
-$LK,"ICf_DONT_PUSH_FLOAT0",A="FL:::/Kernel/KernelA.HPP,1595"$
+$LK,"ICf_DONT_PUSH_FLOAT0",A="FL:::/Kernel/KernelA.HPP,1609"$
 $LK,"Sleep",A="FL:::/Kernel/KMisc.CPP.Z,155",BI=510$
 $LK,"RedSeaMkDir",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,602",BI=511$
 $LK,"PutKey",A="FL:::/Kernel/KeyDev.CPP.Z,1",BI=512$
 $LK,"_HASH_STR",A="FL:::/Kernel/KHashA.CPP.Z,120"$
-$LK,"FUf_ALL",A="FL:::/Kernel/KernelA.HPP,2549"$
+$LK,"FUf_ALL",A="FL:::/Kernel/KernelA.HPP,2568"$
 $LK,"sys_macro_task",A="FL:::/Kernel/KGlbls.CPP.Z,5"$
-$LK,"CArcCompress",A="FL:::/Kernel/KernelA.HPP,3751"$
-$LK,"CHashOpcode",A="FL:::/Kernel/KernelA.HPP,1926"$
+$LK,"CArcCompress",A="FL:::/Kernel/KernelA.HPP,3770"$
+$LK,"CHashOpcode",A="FL:::/Kernel/KernelA.HPP,1946"$
 $LK,"FifoU8Ins",A="FL:::/Kernel/KDataTypes.CPP.Z,173",BI=513$
-$LK,"CGridGlbls",A="FL:::/Kernel/KernelA.HPP,3041"$
+$LK,"CGridGlbls",A="FL:::/Kernel/KernelA.HPP,3060"$
 $LK,"FATFromName",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,168",BI=514$
-$LK,"AAT_ADD_U32",A="FL:::/Kernel/KernelA.HPP,1949"$
-$LK,"AAT_ADD_U16",A="FL:::/Kernel/KernelA.HPP,1947"$
-$LK,"SC_PAUSE",A="FL:::/Kernel/KernelA.HPP,3565"$
-$LK,"TRANSPARENT",A="FL:::/Kernel/KernelA.HPP,2928"$
+$LK,"AAT_ADD_U32",A="FL:::/Kernel/KernelA.HPP,1969"$
+$LK,"AAT_ADD_U16",A="FL:::/Kernel/KernelA.HPP,1967"$
+$LK,"SC_PAUSE",A="FL:::/Kernel/KernelA.HPP,3584"$
+$LK,"TRANSPARENT",A="FL:::/Kernel/KernelA.HPP,2947"$
 $LK,"XTalkStrWait",A="FL:::/Kernel/SrvCmd.CPP.Z,497",BI=515$
-$LK,"CArcCtrl",A="FL:::/Kernel/KernelA.HPP,3733"$
-$LK,"SC_CTRL",A="FL:::/Kernel/KernelA.HPP,3538"$
-$LK,"RS_ATTR_LONG_NAME_MASK",A="FL:::/Kernel/KernelA.HPP,2510"$
-$LK,"ATAR1_CTRL",A="FL:::/Kernel/KernelA.HPP,2262"$
-$LK,"ICF_A1_TO_F64",A="FL:::/Kernel/KernelA.HPP,1574"$
-$LK,"RECALCF_ADD_CURSOR",A="FL:::/Kernel/KernelA.HPP,1341"$
-$LK,"DOC_COLOR_BIN",A="FL:::/Kernel/KernelA.HPP,1131"$
-$LK,"Ff_NOARGPOP",A="FL:::/Kernel/KernelA.HPP,845"$
+$LK,"CArcCtrl",A="FL:::/Kernel/KernelA.HPP,3752"$
+$LK,"SC_CTRL",A="FL:::/Kernel/KernelA.HPP,3557"$
+$LK,"RS_ATTR_LONG_NAME_MASK",A="FL:::/Kernel/KernelA.HPP,2529"$
+$LK,"ATAR1_CTRL",A="FL:::/Kernel/KernelA.HPP,2281"$
+$LK,"ICF_A1_TO_F64",A="FL:::/Kernel/KernelA.HPP,1589"$
+$LK,"RECALCF_ADD_CURSOR",A="FL:::/Kernel/KernelA.HPP,1347"$
+$LK,"DOC_COLOR_BIN",A="FL:::/Kernel/KernelA.HPP,1137"$
+$LK,"Ff_NOARGPOP",A="FL:::/Kernel/KernelA.HPP,846"$
 $LK,"EdLiteFileLine",A="FL:::/Kernel/EdLite.CPP.Z,316",BI=516$
 $LK,"FifoU8New",A="FL:::/Kernel/KDataTypes.CPP.Z,155",BI=517$
-$LK,"SC_HOME",A="FL:::/Kernel/KernelA.HPP,3549"$
+$LK,"SC_HOME",A="FL:::/Kernel/KernelA.HPP,3568"$
 $LK,"ATAPIWritePktWord",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,106",BI=518$
 $LK,"FilesFindMatch",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,40",BI=519$
 $LK,"BlkDevsRelease",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,77",BI=520$
-$LK,"DOC_COLOR_LINK",A="FL:::/Kernel/KernelA.HPP,1126"$
-$LK,"AAT_ADD_U64",A="FL:::/Kernel/KernelA.HPP,1951"$
-$LK,"HTT_CLASS",A="FL:::/Kernel/KernelA.HPP,682"$
-$LK,"HTt_CLASS",A="FL:::/Kernel/KernelA.HPP,652"$
+$LK,"DOC_COLOR_LINK",A="FL:::/Kernel/KernelA.HPP,1132"$
+$LK,"AAT_ADD_U64",A="FL:::/Kernel/KernelA.HPP,1971"$
+$LK,"HTT_CLASS",A="FL:::/Kernel/KernelA.HPP,683"$
+$LK,"HTt_CLASS",A="FL:::/Kernel/KernelA.HPP,653"$
 $LK,"Cd2DirEntry",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,211",BI=521$
 $LK,"IET_IMM_U0",A="FL:::/Kernel/KernelA.HPP,393"$
 $LK,"FifoU8Rem",A="FL:::/Kernel/KDataTypes.CPP.Z,190",BI=522$
 $LK,"StrLastRem",A="FL:::/Kernel/StrA.CPP.Z,609",BI=523$
 $LK,"RedSeaDrvInit",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,58",BI=524$
 $LK,"BlkDevAdd",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,23",BI=525$
-$LK,"ROPF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HPP,2920"$
+$LK,"REGG_CLOBBERED",A="FL:::/Kernel/KernelA.HPP,1788"$
+$LK,"ROPF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HPP,2939"$
 $LK,"DirLongNameFill",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,199",BI=526$
 $LK,"QueVectU8Put",A="FL:::/Kernel/KDataTypes.CPP.Z,96",BI=527$
 $LK,"StrFind",A="FL:::/Kernel/StrA.CPP.Z,624",BI=528$
-$LK,"CMemRange",A="FL:::/Kernel/KernelA.HPP,2840"$
-$LK,"WIf_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HPP,1439"$
+$LK,"CMemRange",A="FL:::/Kernel/KernelA.HPP,2859"$
+$LK,"WIf_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HPP,1445"$
 $LK,"C32_RSP",A="FL:::/Kernel/PCIBIOS.CPP.Z,66"$
 $LK,"OutStr",A="FL:::/Kernel/StrPrint.CPP.Z,33",BI=529$
-$LK,"DOCEf_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HPP,1086"$
-$LK,"DOCEF_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HPP,989"$
+$LK,"DOCEf_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HPP,1090"$
+$LK,"DOCEF_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HPP,991"$
 $LK,"TimersInit",A="FL:::/Kernel/KEnd.CPP.Z,83",BI=530$
-$LK,"ATAR0_SECT",A="FL:::/Kernel/KernelA.HPP,2256"$
-$LK,"WIF_SELF_CTRLS",A="FL:::/Kernel/KernelA.HPP,1401"$
-$LK,"DOCEf_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HPP,1075"$
+$LK,"ATAR0_SECT",A="FL:::/Kernel/KernelA.HPP,2275"$
+$LK,"WIF_SELF_CTRLS",A="FL:::/Kernel/KernelA.HPP,1407"$
+$LK,"DOCEf_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HPP,1079"$
 $LK,"IET_IMM_U8",A="FL:::/Kernel/KernelA.HPP,395"$
-$LK,"SC_ALT",A="FL:::/Kernel/KernelA.HPP,3539"$
-$LK,"ARGT_MOFFS8",A="FL:::/Kernel/KernelA.HPP,1891"$
-$LK,"WIf_SELF_CTRLS",A="FL:::/Kernel/KernelA.HPP,1429"$
-$LK,"EXT_NUM_ENTRIES",A="FL:::/Kernel/KernelA.HPP,576"$
+$LK,"SC_ALT",A="FL:::/Kernel/KernelA.HPP,3558"$
+$LK,"ARGT_MOFFS8",A="FL:::/Kernel/KernelA.HPP,1910"$
+$LK,"REGG_STK_TEMP",A="FL:::/Kernel/KernelA.HPP,1790"$
+$LK,"WIf_SELF_CTRLS",A="FL:::/Kernel/KernelA.HPP,1435"$
+$LK,"EXT_NUM_ENTRIES",A="FL:::/Kernel/KernelA.HPP,577"$
 $LK,"DefineMatch",A="FL:::/Kernel/KDefine.CPP.Z,85",BI=531$
-$LK,"CLexHashTableContext",A="FL:::/Kernel/KernelA.HPP,2090"$
-$LK,"RLF_RAW",A="FL:::/Kernel/KernelA.HPP,460"$
+$LK,"CLexHashTableContext",A="FL:::/Kernel/KernelA.HPP,2110"$
+$LK,"RLF_RAW",A="FL:::/Kernel/KernelA.HPP,461"$
 $LK,"WZeroBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,2",BI=532$
 $LK,"ATAPISetMaxSpeed",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,118",BI=533$
 $LK,"StkRep",A="FL:::/Kernel/KDbg.CPP.Z,104",BI=534$
 $LK,"SwapU8",A="FL:::/Kernel/KernelB.HPP,116"$
-$LK,"FUN_SEG_CACHE_STR_LEN",A="FL:::/Kernel/KernelA.HPP,3832"$
-$LK,"DCF_TRANSFORMATION",A="FL:::/Kernel/KernelA.HPP,3603"$
-$LK,"FF_CONTIGUOUS",A="FL:::/Kernel/KernelA.HPP,2755"$
-$LK,"TTS_CONST",A="FL:::/Kernel/KernelA.HPP,3246"$
-$LK,"ISO1T_VOL_DRV_DESC",A="FL:::/Kernel/KernelA.HPP,2457"$
+$LK,"FUN_SEG_CACHE_STR_LEN",A="FL:::/Kernel/KernelA.HPP,3851"$
+$LK,"DCF_TRANSFORMATION",A="FL:::/Kernel/KernelA.HPP,3622"$
+$LK,"FF_CONTIGUOUS",A="FL:::/Kernel/KernelA.HPP,2774"$
+$LK,"TTS_CONST",A="FL:::/Kernel/KernelA.HPP,3265"$
+$LK,"ISO1T_VOL_DRV_DESC",A="FL:::/Kernel/KernelA.HPP,2476"$
 $LK,"SaveExceptRegs",A="FL:::/Kernel/KExcept.CPP.Z,43"$
-$LK,"SC_END",A="FL:::/Kernel/KernelA.HPP,3550"$
-$LK,"CAOTHeapGlbl",A="FL:::/Kernel/KernelA.HPP,1966"$
+$LK,"SC_END",A="FL:::/Kernel/KernelA.HPP,3569"$
+$LK,"CAOTHeapGlbl",A="FL:::/Kernel/KernelA.HPP,1986"$
 $LK,"ArcExpandBuf",A="FL:::/Kernel/Compress.CPP.Z,165",BI=535$
-$LK,"FUf_MAP",A="FL:::/Kernel/KernelA.HPP,2554"$
-$LK,"DOCf_MORE",A="FL:::/Kernel/KernelA.HPP,1300"$
-$LK,"DOCF_MORE",A="FL:::/Kernel/KernelA.HPP,1264"$
+$LK,"FUf_MAP",A="FL:::/Kernel/KernelA.HPP,2573"$
+$LK,"DOCf_MORE",A="FL:::/Kernel/KernelA.HPP,1306"$
+$LK,"DOCF_MORE",A="FL:::/Kernel/KernelA.HPP,1270"$
 $LK,"chars_bmp_non_eol_white_space",A="FL:::/Kernel/StrA.CPP.Z,359"$
-$LK,"CISO1PathEntry",A="FL:::/Kernel/KernelA.HPP,2445"$
-$LK,"REGG_SAVED",A="FL:::/Kernel/KernelA.HPP,1770"$
-$LK,"SF_ARG1",A="FL:::/Kernel/KernelA.HPP,555"$
-$LK,"RLF_VGA",A="FL:::/Kernel/KernelA.HPP,454"$
-$LK,"COLOR_MONO",A="FL:::/Kernel/KernelA.HPP,2948"$
-$LK,"ACD_END_CHAR",A="FL:::/Kernel/KernelA.HPP,1505"$
-$LK,"WIF_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1419"$
-$LK,"DOCET_INVERT",A="FL:::/Kernel/KernelA.HPP,942"$
-$LK,"SF_ARG2",A="FL:::/Kernel/KernelA.HPP,556"$
-$LK,"SC_SCROLL",A="FL:::/Kernel/KernelA.HPP,3542"$
-$LK,"DISPLAYf_NOT_RAW",A="FL:::/Kernel/KernelA.HPP,3270"$
-$LK,"DOCEt_INVERT",A="FL:::/Kernel/KernelA.HPP,948"$
-$LK,"ATTRf_INVERT",A="FL:::/Kernel/KernelA.HPP,890"$
-$LK,"ATTRF_INVERT",A="FL:::/Kernel/KernelA.HPP,885"$
-$LK,"SF_ARG3",A="FL:::/Kernel/KernelA.HPP,557"$
-$LK,"ACD_PRONUNCIATION_END",A="FL:::/Kernel/KernelA.HPP,1498"$
-$LK,"SF_ARG4",A="FL:::/Kernel/KernelA.HPP,558"$
-$LK,"SF_ARG5",A="FL:::/Kernel/KernelA.HPP,559"$
+$LK,"CISO1PathEntry",A="FL:::/Kernel/KernelA.HPP,2464"$
+$LK,"REGG_SAVED",A="FL:::/Kernel/KernelA.HPP,1789"$
+$LK,"SF_ARG1",A="FL:::/Kernel/KernelA.HPP,556"$
+$LK,"RLF_VGA",A="FL:::/Kernel/KernelA.HPP,455"$
+$LK,"COLOR_MONO",A="FL:::/Kernel/KernelA.HPP,2967"$
+$LK,"ACD_END_CHAR",A="FL:::/Kernel/KernelA.HPP,1511"$
+$LK,"WIF_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1425"$
+$LK,"DOCET_INVERT",A="FL:::/Kernel/KernelA.HPP,944"$
+$LK,"SF_ARG2",A="FL:::/Kernel/KernelA.HPP,557"$
+$LK,"SC_SCROLL",A="FL:::/Kernel/KernelA.HPP,3561"$
+$LK,"DISPLAYf_NOT_RAW",A="FL:::/Kernel/KernelA.HPP,3289"$
+$LK,"DOCEt_INVERT",A="FL:::/Kernel/KernelA.HPP,950"$
+$LK,"ATTRf_INVERT",A="FL:::/Kernel/KernelA.HPP,891"$
+$LK,"ATTRF_INVERT",A="FL:::/Kernel/KernelA.HPP,886"$
+$LK,"SF_ARG3",A="FL:::/Kernel/KernelA.HPP,558"$
+$LK,"ACD_PRONUNCIATION_END",A="FL:::/Kernel/KernelA.HPP,1504"$
+$LK,"SF_ARG4",A="FL:::/Kernel/KernelA.HPP,559"$
+$LK,"SF_ARG5",A="FL:::/Kernel/KernelA.HPP,560"$
 $LK,"ODEF_STARTED",A="FL:::/Kernel/KernelA.HPP,240"$
 $LK,"TaskFocusNext",A="FL:::/Kernel/Sched.CPP.Z,38",BI=536$
 $LK,"Print",A="FL:::/Kernel/StrPrint.CPP.Z,907",BI=537$
-$LK,"SFF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,3779"$
-$LK,"FUF_RISKY",A="FL:::/Kernel/KernelA.HPP,2578"$
-$LK,"FUf_RISKY",A="FL:::/Kernel/KernelA.HPP,2552"$
-$LK,"CAOTAbsAddr",A="FL:::/Kernel/KernelA.HPP,1953"$
-$LK,"SF_ARG6",A="FL:::/Kernel/KernelA.HPP,560"$
-$LK,"SC_ESC",A="FL:::/Kernel/KernelA.HPP,3533"$
-$LK,"ACD_WORD_CHAR",A="FL:::/Kernel/KernelA.HPP,1506"$
-$LK,"SF_ARG7",A="FL:::/Kernel/KernelA.HPP,561"$
+$LK,"SFF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,3798"$
+$LK,"FUF_RISKY",A="FL:::/Kernel/KernelA.HPP,2597"$
+$LK,"FUf_RISKY",A="FL:::/Kernel/KernelA.HPP,2571"$
+$LK,"CAOTAbsAddr",A="FL:::/Kernel/KernelA.HPP,1973"$
+$LK,"SF_ARG6",A="FL:::/Kernel/KernelA.HPP,561"$
+$LK,"SC_ESC",A="FL:::/Kernel/KernelA.HPP,3552"$
+$LK,"ACD_WORD_CHAR",A="FL:::/Kernel/KernelA.HPP,1512"$
+$LK,"SF_ARG7",A="FL:::/Kernel/KernelA.HPP,562"$
 $LK,"FAT32DrvValidate",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,48",BI=538$
 $LK,"StrCmp",A="FL:::/Kernel/StrA.CPP.Z,309"$
-$LK,"MSG_RESIZE",A="FL:::/Kernel/KernelA.HPP,3210"$
-$LK,"DOF_INTERCEPT_TASK_END",A="FL:::/Kernel/KernelA.HPP,1206"$
-$LK,"SF_ARG8",A="FL:::/Kernel/KernelA.HPP,562"$
-$LK,"ST_ERR_ST",A="FL:::/Kernel/KernelA.HPP,3495"$
+$LK,"MSG_RESIZE",A="FL:::/Kernel/KernelA.HPP,3229"$
+$LK,"DOF_INTERCEPT_TASK_END",A="FL:::/Kernel/KernelA.HPP,1212"$
+$LK,"SF_ARG8",A="FL:::/Kernel/KernelA.HPP,563"$
+$LK,"ST_ERR_ST",A="FL:::/Kernel/KernelA.HPP,3514"$
 $LK,"BlkDevChk",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,119",BI=539$
-$LK,"MSG_IP_L_UP",A="FL:::/Kernel/KernelA.HPP,3202"$
-$LK,"FSt_REDSEA",A="FL:::/Kernel/KernelA.HPP,2659"$
-$LK,"CPCIDev",A="FL:::/Kernel/KernelA.HPP,2217"$
+$LK,"MSG_IP_L_UP",A="FL:::/Kernel/KernelA.HPP,3221"$
+$LK,"FSt_REDSEA",A="FL:::/Kernel/KernelA.HPP,2678"$
+$LK,"CPCIDev",A="FL:::/Kernel/KernelA.HPP,2236"$
+$LK,"DOCEf_DFT_LEN",A="FL:::/Kernel/KernelA.HPP,1106"$
+$LK,"DOCEF_DFT_LEN",A="FL:::/Kernel/KernelA.HPP,1020"$
 $LK,"RepOutU8",A="FL:::/Kernel/KernelB.HPP,91"$
-$LK,"DOCEF_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HPP,980"$
+$LK,"DOCEF_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HPP,982"$
 $LK,"sys_macro_root",A="FL:::/Kernel/KGlbls.CPP.Z,4"$
-$LK,"VGAP_PALETTE_MASK",A="FL:::/Kernel/KernelA.HPP,3708"$
-$LK,"DOCEf_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HPP,1066"$
-$LK,"NUM_SYS_SEMAS",A="FL:::/Kernel/KernelA.HPP,611"$
+$LK,"VGAP_PALETTE_MASK",A="FL:::/Kernel/KernelA.HPP,3727"$
+$LK,"DOCEf_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HPP,1070"$
+$LK,"NUM_SYS_SEMAS",A="FL:::/Kernel/KernelA.HPP,612"$
 $LK,"ATAPISync",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,501",BI=540$
 $LK,"TO_UPPER",A="FL:::/Kernel/StrA.CPP.Z,110"$
 $LK,"RFLAGG_NORMAL",A="FL:::/Kernel/KernelA.HPP,325"$
-$LK,"KERNEL_MODULE_NAME",A="FL:::/Kernel/KernelA.HPP,712"$
-$LK,"SYS_SEMA_DSK_CACHE",A="FL:::/Kernel/KernelA.HPP,600"$
-$LK,"MEM_PAGE_SIZE",A="FL:::/Kernel/KernelA.HPP,2849"$
+$LK,"KERNEL_MODULE_NAME",A="FL:::/Kernel/KernelA.HPP,713"$
+$LK,"SYS_SEMA_DSK_CACHE",A="FL:::/Kernel/KernelA.HPP,601"$
+$LK,"MEM_PAGE_SIZE",A="FL:::/Kernel/KernelA.HPP,2868"$
 $LK,"SleepUntil",A="FL:::/Kernel/KMisc.CPP.Z,147",BI=541$
 $LK,"Spawn",A="FL:::/Kernel/KTask.CPP.Z,208",BI=542$
-$LK,"CTaskDying",A="FL:::/Kernel/KernelA.HPP,3286"$
-$LK,"MSG_IP_R_D_UP",A="FL:::/Kernel/KernelA.HPP,3208"$
-$LK,"CRedSeaBoot",A="FL:::/Kernel/KernelA.HPP,2299"$
-$LK,"WIF_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,1411"$
+$LK,"CTaskDying",A="FL:::/Kernel/KernelA.HPP,3305"$
+$LK,"MSG_IP_R_D_UP",A="FL:::/Kernel/KernelA.HPP,3227"$
+$LK,"CRedSeaBoot",A="FL:::/Kernel/KernelA.HPP,2318"$
+$LK,"WIF_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,1417"$
 $LK,"SET_GS_BASE",A="FL:::/Kernel/KUtils.CPP.Z,434"$
 $LK,"RFLAGf_VINT_PENDING",A="FL:::/Kernel/KernelA.HPP,321"$
 $LK,"DirEntryDel2",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,26",BI=543$
 $LK,"DefineLoad",A="FL:::/Kernel/KDefine.CPP.Z,1",BI=544$
 $LK,"INT_FAULT_ERR_CODE_BITMAP",A="FL:::/Kernel/KInts.CPP.Z,87"$
-$LK,"ICF_NO_RIP",A="FL:::/Kernel/KernelA.HPP,1600"$
-$LK,"SUF_REM_CTRL_CHARS",A="FL:::/Kernel/KernelA.HPP,3765"$
-$LK,"SC_SHIFT",A="FL:::/Kernel/KernelA.HPP,3537"$
-$LK,"ATA_SET_MAX_EXT",A="FL:::/Kernel/KernelA.HPP,2240"$
+$LK,"ICF_NO_RIP",A="FL:::/Kernel/KernelA.HPP,1614"$
+$LK,"SUF_REM_CTRL_CHARS",A="FL:::/Kernel/KernelA.HPP,3784"$
+$LK,"SC_SHIFT",A="FL:::/Kernel/KernelA.HPP,3556"$
+$LK,"ATA_SET_MAX_EXT",A="FL:::/Kernel/KernelA.HPP,2259"$
 $LK,"StrOcc",A="FL:::/Kernel/StrA.CPP.Z,467",BI=545$
 $LK,"StrCpy",A="FL:::/Kernel/StrA.CPP.Z,321"$
-$LK,"DOCT_INS_BIN",A="FL:::/Kernel/KernelA.HPP,931"$
+$LK,"DOCT_INS_BIN",A="FL:::/Kernel/KernelA.HPP,933"$
 $LK,"StrMatch",A="FL:::/Kernel/StrA.CPP.Z,317"$
 $LK,"FlushMsgs",A="FL:::/Kernel/SerialDev/Message.CPP.Z,87",BI=546$
-$LK,"CMT_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1670"$
-$LK,"RLF_MP",A="FL:::/Kernel/KernelA.HPP,463"$
-$LK,"SC_GUI",A="FL:::/Kernel/KernelA.HPP,3566"$
-$LK,"RLF_INTERRUPTS",A="FL:::/Kernel/KernelA.HPP,461"$
+$LK,"CMT_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1688"$
+$LK,"RLF_MP",A="FL:::/Kernel/KernelA.HPP,464"$
+$LK,"SC_GUI",A="FL:::/Kernel/KernelA.HPP,3585"$
+$LK,"RLF_INTERRUPTS",A="FL:::/Kernel/KernelA.HPP,462"$
 $LK,"StrLen",A="FL:::/Kernel/KernelB.HPP,60"$
-$LK,"ATA_READ_NATIVE_MAX",A="FL:::/Kernel/KernelA.HPP,2237"$
-$LK,"PUSH_C_REGS",A="FL:::/Kernel/KernelA.HPP,1745"$
-$LK,"IEF_REX_XOR_LIKE",A="FL:::/Kernel/KernelA.HPP,1714"$
-$LK,"WIf_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,1437"$
-$LK,"RLf_INTERRUPTS",A="FL:::/Kernel/KernelA.HPP,442"$
+$LK,"ATA_READ_NATIVE_MAX",A="FL:::/Kernel/KernelA.HPP,2256"$
+$LK,"PUSH_C_REGS",A="FL:::/Kernel/KernelA.HPP,1763"$
+$LK,"IEF_REX_XOR_LIKE",A="FL:::/Kernel/KernelA.HPP,1732"$
+$LK,"WIf_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,1443"$
+$LK,"RLf_INTERRUPTS",A="FL:::/Kernel/KernelA.HPP,443"$
 $LK,"ISO1DateStruct2CDate",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,74",BI=547$
-$LK,"RLF_REGISTRY",A="FL:::/Kernel/KernelA.HPP,467"$
-$LK,"RLf_REGISTRY",A="FL:::/Kernel/KernelA.HPP,448"$
-$LK,"SC_INS",A="FL:::/Kernel/KernelA.HPP,3551"$
-$LK,"TK_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,2084"$
-$LK,"RT_NUM_IT",A="FL:::/Kernel/KernelA.HPP,1558"$
+$LK,"RLF_REGISTRY",A="FL:::/Kernel/KernelA.HPP,468"$
+$LK,"RLf_REGISTRY",A="FL:::/Kernel/KernelA.HPP,449"$
+$LK,"SC_INS",A="FL:::/Kernel/KernelA.HPP,3570"$
+$LK,"TK_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,2104"$
+$LK,"RT_NUM_IT",A="FL:::/Kernel/KernelA.HPP,1564"$
 $LK,"AbsI64",A="FL:::/Kernel/KernelB.HPP,96"$
-$LK,"SC_TAB",A="FL:::/Kernel/KernelA.HPP,3535"$
+$LK,"SC_TAB",A="FL:::/Kernel/KernelA.HPP,3554"$
 $LK,"SPF_DECIMAL",A="FL:::/Kernel/StrPrint.CPP.Z,9"$
-$LK,"IOAPICVER",A="FL:::/Kernel/KernelA.HPP,509"$
-$LK,"LAPIC_LVT_TIMER",A="FL:::/Kernel/KernelA.HPP,494"$
+$LK,"IOAPICVER",A="FL:::/Kernel/KernelA.HPP,510"$
+$LK,"LAPIC_LVT_TIMER",A="FL:::/Kernel/KernelA.HPP,495"$
 $LK,"sys_mem_init_flag",A="FL:::/Kernel/KernelB.HPP,189"$
-$LK,"RWF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3572"$
-$LK,"DISPLAYf_CHILDREN_NOT_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3274"$
+$LK,"RWF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3591"$
+$LK,"DISPLAYf_CHILDREN_NOT_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3293"$
 $LK,"RedSeaFmt",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,94",BI=548$
 $LK,"sys_var_init_flag",A="FL:::/Kernel/KernelB.HPP,191"$
-$LK,"IOAPIC_DATA",A="FL:::/Kernel/KernelA.HPP,506"$
+$LK,"IOAPIC_DATA",A="FL:::/Kernel/KernelA.HPP,507"$
 $LK,"SysGetStr2",A="FL:::/Kernel/KDbg.CPP.Z,337",BI=549$
 $LK,"fp_getstr2",A="FL:::/Kernel/KGlbls.CPP.Z,31"$
 $LK,"KDRawPutKey",A="FL:::/Kernel/KeyDev.CPP.Z,86",BI=550$
-$LK,"DOCF_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1281"$
+$LK,"DOCF_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1287"$
 $LK,"Dos2CDate",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,9",BI=551$
 $LK,"ATABlkSelect",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,1",BI=552$
 $LK,"SYS_START_CR0",A="FL:::/Kernel/KernelA.HPP,303"$
 $LK,"QSortI64",A="FL:::/Kernel/QSort.CPP.Z,1",BI=553$
 $LK,"RawPrint",A="FL:::/Kernel/KDbg.CPP.Z,217",BI=554$
-$LK,"CTextGlbls",A="FL:::/Kernel/KernelA.HPP,3577"$
-$LK,"CDevGlbls",A="FL:::/Kernel/KernelA.HPP,2893"$
+$LK,"CTextGlbls",A="FL:::/Kernel/KernelA.HPP,3596"$
+$LK,"CDevGlbls",A="FL:::/Kernel/KernelA.HPP,2912"$
 $LK,"chars_bmp_zero_cr_nl_cursor",A="FL:::/Kernel/StrA.CPP.Z,362"$
 $LK,"AreYouSure",A="FL:::/Kernel/StrB.CPP.Z,109",BI=555$
 $LK,"C:/Doc/D3.TXT.Z",A="FL:::/Kernel/KernelB.HPP,146"$
-$LK,"DOCf_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,1316"$
-$LK,"DOCF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,1279"$
+$LK,"DOCf_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,1322"$
+$LK,"DOCF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,1285"$
 $LK,"_REP_IN_U16",A="FL:::/Kernel/KUtils.CPP.Z,264"$
 $LK,"_REP_IN_U32",A="FL:::/Kernel/KUtils.CPP.Z,253"$
-$LK,"CH_FORM_FEED",A="FL:::/Kernel/KernelA.HPP,3489"$
-$LK,"MP_VECT_ADDR",A="FL:::/Kernel/KernelA.HPP,502"$
+$LK,"CH_FORM_FEED",A="FL:::/Kernel/KernelA.HPP,3508"$
+$LK,"MP_VECT_ADDR",A="FL:::/Kernel/KernelA.HPP,503"$
 $LK,"I_WAKE",A="FL:::/Kernel/KernelA.HPP,293"$
 $LK,"Yield",A="FL:::/Kernel/Sched.CPP.Z,295"$
-$LK,"CKeyDevGlbls",A="FL:::/Kernel/KernelA.HPP,3797"$
-$LK,"MRT_DEV",A="FL:::/Kernel/KernelA.HPP,2838"$
-$LK,"CBlkDevGlbls",A="FL:::/Kernel/KernelA.HPP,2728"$
-$LK,"CMBRPrt",A="FL:::/Kernel/KernelA.HPP,2278"$
+$LK,"CKeyDevGlbls",A="FL:::/Kernel/KernelA.HPP,3816"$
+$LK,"MRT_DEV",A="FL:::/Kernel/KernelA.HPP,2857"$
+$LK,"CBlkDevGlbls",A="FL:::/Kernel/KernelA.HPP,2747"$
+$LK,"CMBRPrt",A="FL:::/Kernel/KernelA.HPP,2297"$
 $LK,"StrNew",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,446",BI=556$
-$LK,"HTT_GLBL_VAR",A="FL:::/Kernel/KernelA.HPP,681"$
-$LK,"HTt_GLBL_VAR",A="FL:::/Kernel/KernelA.HPP,651"$
-$LK,"REGG_C_CLOBBERED",A="FL:::/Kernel/KernelA.HPP,1769"$
-$LK,"WIF_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HPP,1416"$
-$LK,"HTT_HELP_FILE",A="FL:::/Kernel/KernelA.HPP,693"$
-$LK,"HTt_HELP_FILE",A="FL:::/Kernel/KernelA.HPP,663"$
+$LK,"HTT_GLBL_VAR",A="FL:::/Kernel/KernelA.HPP,682"$
+$LK,"HTt_GLBL_VAR",A="FL:::/Kernel/KernelA.HPP,652"$
+$LK,"WIF_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HPP,1422"$
+$LK,"HTT_HELP_FILE",A="FL:::/Kernel/KernelA.HPP,694"$
+$LK,"HTt_HELP_FILE",A="FL:::/Kernel/KernelA.HPP,664"$
 $LK,"Round",A="FL:::/Kernel/KernelB.HPP,140"$
 $LK,"TaskRstAwaitingMsg",A="FL:::/Kernel/SrvCmd.CPP.Z,25",BI=557$
-$LK,"MSG_IP_L_D_DOWN",A="FL:::/Kernel/KernelA.HPP,3203"$
-$LK,"ATAR0_STAT",A="FL:::/Kernel/KernelA.HPP,2260"$
-$LK,"DOC_COLOR_PMT",A="FL:::/Kernel/KernelA.HPP,1130"$
-$LK,"HPET_GEN_CONF",A="FL:::/Kernel/KernelA.HPP,530"$
+$LK,"MSG_IP_L_D_DOWN",A="FL:::/Kernel/KernelA.HPP,3222"$
+$LK,"ATAR0_STAT",A="FL:::/Kernel/KernelA.HPP,2279"$
+$LK,"DOC_COLOR_PMT",A="FL:::/Kernel/KernelA.HPP,1136"$
+$LK,"HPET_GEN_CONF",A="FL:::/Kernel/KernelA.HPP,531"$
 $LK,"MPHalt",A="FL:::/Kernel/MultiProc.CPP.Z,164",BI=558$
 $LK,"UnusedStk",A="FL:::/Kernel/KDbg.CPP.Z,46",BI=559$
 $LK,"DirEntryCompareName",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,62",BI=560$
 $LK,"BFieldExtU32",A="FL:::/Kernel/KernelB.HPP,30"$
-$LK,"DOCf_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1318"$
-$LK,"ATAS_DF",A="FL:::/Kernel/KernelA.HPP,2249"$
-$LK,"ROPBF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HPP,2911"$
+$LK,"DOCf_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1324"$
+$LK,"ATAS_DF",A="FL:::/Kernel/KernelA.HPP,2268"$
+$LK,"ROPBF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HPP,2930"$
 $LK,"StrScan",A="FL:::/Kernel/StrScan.CPP.Z,212",BI=561$
 $LK,"CONSERVATIVE_16MEG_SIZE",A="FL:::/Kernel/Mem/PageTables.CPP.Z,123"$
-$LK,"ICF_PREVIOUS_DELETED",A="FL:::/Kernel/KernelA.HPP,1602"$
-$LK,"ACD_DEF_FILENAME_Z",A="FL:::/Kernel/KernelA.HPP,1491"$
+$LK,"ICF_PREVIOUS_DELETED",A="FL:::/Kernel/KernelA.HPP,1616"$
+$LK,"ACD_DEF_FILENAME_Z",A="FL:::/Kernel/KernelA.HPP,1497"$
 $LK,"ATARepFind",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,194",BI=562$
 $LK,"QSort2a",A="FL:::/Kernel/QSort.CPP.Z,32",BI=563$
 $LK,"num_lock_map",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,179"$
 $LK,"QSort2b",A="FL:::/Kernel/QSort.CPP.Z,55",BI=564$
-$LK,"KDF_HAS_DESCS",A="FL:::/Kernel/KernelA.HPP,3788"$
-$LK,"CBlkPool",A="FL:::/Kernel/KernelA.HPP,2865"$
-$LK,"SC_NUM",A="FL:::/Kernel/KernelA.HPP,3541"$
-$LK,"MSG_IP_R_UP",A="FL:::/Kernel/KernelA.HPP,3206"$
-$LK,"IEF_DONT_SWITCH_MODES",A="FL:::/Kernel/KernelA.HPP,1709"$
+$LK,"KDF_HAS_DESCS",A="FL:::/Kernel/KernelA.HPP,3807"$
+$LK,"CBlkPool",A="FL:::/Kernel/KernelA.HPP,2884"$
+$LK,"SC_NUM",A="FL:::/Kernel/KernelA.HPP,3560"$
+$LK,"MSG_IP_R_UP",A="FL:::/Kernel/KernelA.HPP,3225"$
+$LK,"IEF_DONT_SWITCH_MODES",A="FL:::/Kernel/KernelA.HPP,1727"$
 $LK,"I_TIMER",A="FL:::/Kernel/KernelA.HPP,290"$
 $LK,"IRQ_TIMER",A="FL:::/Kernel/KInts.CPP.Z,12"$
-$LK,"DOC_COLOR_TREE",A="FL:::/Kernel/KernelA.HPP,1129"$
-$LK,"DOCEf_HAS_BIN",A="FL:::/Kernel/KernelA.HPP,1054"$
-$LK,"DOCEF_HAS_BIN",A="FL:::/Kernel/KernelA.HPP,968"$
+$LK,"DOC_COLOR_TREE",A="FL:::/Kernel/KernelA.HPP,1135"$
+$LK,"DOCEf_HAS_BIN",A="FL:::/Kernel/KernelA.HPP,1058"$
+$LK,"DOCEF_HAS_BIN",A="FL:::/Kernel/KernelA.HPP,970"$
 $LK,"SYS_BOOT_BASE",A="FL:::/Kernel/KStart.CPP.Z,31"$
-$LK,"VGAP_CRTC_INDEX",A="FL:::/Kernel/KernelA.HPP,3712"$
+$LK,"VGAP_CRTC_INDEX",A="FL:::/Kernel/KernelA.HPP,3731"$
 $LK,"BlkDevNextFree",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,88",BI=565$
-$LK,"SFF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,3780"$
-$LK,"CDIR_FILENAME_LEN",A="FL:::/Kernel/KernelA.HPP,2528"$
+$LK,"SFF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,3799"$
+$LK,"CDIR_FILENAME_LEN",A="FL:::/Kernel/KernelA.HPP,2547"$
 $LK,"CFifoI64",A="FL:::/Kernel/KernelA.HPP,174"$
 $LK,"PCIReadU32",A="FL:::/Kernel/PCIBIOS.CPP.Z,201",BI=566$
 $LK,"PCIReadU16",A="FL:::/Kernel/PCIBIOS.CPP.Z,182",BI=567$
 $LK,"YearStartDate",A="FL:::/Kernel/KDate.CPP.Z,8",BI=568$
-$LK,"ACD_H1_END",A="FL:::/Kernel/KernelA.HPP,1494"$
+$LK,"ACD_H1_END",A="FL:::/Kernel/KernelA.HPP,1500"$
 $LK,"_REP_IN_U8",A="FL:::/Kernel/KUtils.CPP.Z,275"$
 $LK,"SHIFT_KEY_SCAN_DECODE_TABLE",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,9"$
-$LK,"DOCF_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HPP,1269"$
-$LK,"REG_UNDEF",A="FL:::/Kernel/KernelA.HPP,1767"$
+$LK,"DOCF_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HPP,1275"$
+$LK,"REG_UNDEF",A="FL:::/Kernel/KernelA.HPP,1786"$
 $LK,"VGAFlush",A="FL:::/Kernel/Display.CPP.Z,88",BI=569$
-$LK,"FILEMASK_AOT",A="FL:::/Kernel/KernelA.HPP,2266"$
+$LK,"FILEMASK_AOT",A="FL:::/Kernel/KernelA.HPP,2285"$
 $LK,"SysDbg",A="FL:::/Kernel/KMisc.CPP.Z,233",BI=570$
 $LK,"FramePtrAdd",A="FL:::/Kernel/KHashB.CPP.Z,225",BI=571$
-$LK,"DCF_SCREEN_BITMAP",A="FL:::/Kernel/KernelA.HPP,3615"$
-$LK,"FF_NEEDS_WRITE",A="FL:::/Kernel/KernelA.HPP,2754"$
-$LK,"WIF_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HPP,1418"$
-$LK,"DOCF_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HPP,1252"$
-$LK,"LAPIC_APIC_ID",A="FL:::/Kernel/KernelA.HPP,475"$
+$LK,"DCF_SCREEN_BITMAP",A="FL:::/Kernel/KernelA.HPP,3634"$
+$LK,"FF_NEEDS_WRITE",A="FL:::/Kernel/KernelA.HPP,2773"$
+$LK,"WIF_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HPP,1424"$
+$LK,"DOCF_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HPP,1258"$
+$LK,"LAPIC_APIC_ID",A="FL:::/Kernel/KernelA.HPP,476"$
 $LK,"MPrintTime",A="FL:::/Kernel/StrPrint.CPP.Z,55",BI=572$
 $LK,"CatPrint",A="FL:::/Kernel/StrPrint.CPP.Z,898",BI=573$
-$LK,"TK_CHAR_CONST",A="FL:::/Kernel/KernelA.HPP,2052"$
-$LK,"TASKf_AWAITING_MSG",A="FL:::/Kernel/KernelA.HPP,3261"$
-$LK,"ICF_A1_TO_INT",A="FL:::/Kernel/KernelA.HPP,1575"$
-$LK,"TY_RIP_DISP32_IMPORT",A="FL:::/Kernel/KernelA.HPP,1568"$
-$LK,"DOCf_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HPP,1288"$
-$LK,"EDF_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HPP,1238"$
-$LK,"DOCEG_HAS_ALLOC",A="FL:::/Kernel/KernelA.HPP,1019"$
-$LK,"CHashSrcSym",A="FL:::/Kernel/KernelA.HPP,720"$
+$LK,"TK_CHAR_CONST",A="FL:::/Kernel/KernelA.HPP,2072"$
+$LK,"TASKf_AWAITING_MSG",A="FL:::/Kernel/KernelA.HPP,3280"$
+$LK,"ICF_A1_TO_INT",A="FL:::/Kernel/KernelA.HPP,1590"$
+$LK,"DOCf_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HPP,1294"$
+$LK,"EDF_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HPP,1244"$
+$LK,"DOCEG_HAS_ALLOC",A="FL:::/Kernel/KernelA.HPP,1023"$
+$LK,"CHashSrcSym",A="FL:::/Kernel/KernelA.HPP,721"$
 $LK,"HashPublic",A="FL:::/Kernel/KHashB.CPP.Z,170",BI=574$
-$LK,"HEAP_CTRL_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2878"$
-$LK,"EDf_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HPP,1244"$
-$LK,"CDocSettings",A="FL:::/Kernel/KernelA.HPP,1137"$
+$LK,"HEAP_CTRL_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2897"$
+$LK,"EDf_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HPP,1250"$
+$LK,"CDocSettings",A="FL:::/Kernel/KernelA.HPP,1143"$
 $LK,"BlkDevInit",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,31",BI=575$
-$LK,"CTaskStk",A="FL:::/Kernel/KernelA.HPP,3278"$
-$LK,"CWinMgrTimingGlbls",A="FL:::/Kernel/KernelA.HPP,1448"$
-$LK,"FAT32_ENTRIES_PER_BLK",A="FL:::/Kernel/KernelA.HPP,2384"$
+$LK,"CTaskStk",A="FL:::/Kernel/KernelA.HPP,3297"$
+$LK,"CWinMgrTimingGlbls",A="FL:::/Kernel/KernelA.HPP,1454"$
+$LK,"FAT32_ENTRIES_PER_BLK",A="FL:::/Kernel/KernelA.HPP,2403"$
 $LK,"ATARBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,442",BI=576$
-$LK,"GVF_ALIAS",A="FL:::/Kernel/KernelA.HPP,865"$
-$LK,"CTaskSettings",A="FL:::/Kernel/KernelA.HPP,3221"$
-$LK,"IEF_ENDING_ZERO",A="FL:::/Kernel/KernelA.HPP,1716"$
+$LK,"GVF_ALIAS",A="FL:::/Kernel/KernelA.HPP,866"$
+$LK,"CTaskSettings",A="FL:::/Kernel/KernelA.HPP,3240"$
+$LK,"IEF_ENDING_ZERO",A="FL:::/Kernel/KernelA.HPP,1734"$
 $LK,"PUT_CHARS",A="FL:::/Kernel/StrA.CPP.Z,51"$
 $LK,"CMemE820",A="FL:::/Kernel/KernelA.HPP,356"$
 $LK,"ATAGetResult",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,67",BI=577$
-$LK,"FILEMASK_GRA",A="FL:::/Kernel/KernelA.HPP,2269"$
-$LK,"ATAS_DRQ",A="FL:::/Kernel/KernelA.HPP,2248"$
-$LK,"DOCF_BORDER_DOC",A="FL:::/Kernel/KernelA.HPP,1255"$
+$LK,"FILEMASK_GRA",A="FL:::/Kernel/KernelA.HPP,2288"$
+$LK,"ATAS_DRQ",A="FL:::/Kernel/KernelA.HPP,2267"$
+$LK,"DOCF_BORDER_DOC",A="FL:::/Kernel/KernelA.HPP,1261"$
 $LK,"DrvEnable",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,151",BI=578$
 $LK,"BlkDevLock",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,1",BI=579$
-$LK,"BDT_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,2610"$
-$LK,"DOCf_BORDER_DOC",A="FL:::/Kernel/KernelA.HPP,1291"$
-$LK,"MRT_RAM",A="FL:::/Kernel/KernelA.HPP,2837"$
-$LK,"FSt_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,2666"$
-$LK,"ATAS_BSY",A="FL:::/Kernel/KernelA.HPP,2251"$
-$LK,"DOCf_SELECTED",A="FL:::/Kernel/KernelA.HPP,1312"$
-$LK,"DOCF_SELECTED",A="FL:::/Kernel/KernelA.HPP,1275"$
-$LK,"HTt_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,665"$
-$LK,"ICF_R_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1588"$
-$LK,"DOCf_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HPP,1305"$
+$LK,"BDT_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,2629"$
+$LK,"DOCf_BORDER_DOC",A="FL:::/Kernel/KernelA.HPP,1297"$
+$LK,"MRT_RAM",A="FL:::/Kernel/KernelA.HPP,2856"$
+$LK,"FSt_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,2685"$
+$LK,"ATAS_BSY",A="FL:::/Kernel/KernelA.HPP,2270"$
+$LK,"DOCf_SELECTED",A="FL:::/Kernel/KernelA.HPP,1318"$
+$LK,"DOCF_SELECTED",A="FL:::/Kernel/KernelA.HPP,1281"$
+$LK,"HTt_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,666"$
+$LK,"ICF_R_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1602"$
+$LK,"DOCf_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HPP,1311"$
 $LK,"sys_mem_init_val",A="FL:::/Kernel/KernelB.HPP,190"$
-$LK,"SYS_SEMA_FORCE_WINMGR",A="FL:::/Kernel/KernelA.HPP,607"$
-$LK,"ATAS_ERR",A="FL:::/Kernel/KernelA.HPP,2247"$
+$LK,"SYS_SEMA_FORCE_WINMGR",A="FL:::/Kernel/KernelA.HPP,608"$
+$LK,"ATAS_ERR",A="FL:::/Kernel/KernelA.HPP,2266"$
 $LK,"Struct2Date",A="FL:::/Kernel/KDate.CPP.Z,14",BI=580$
-$LK,"ISO1T_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,2458"$
-$LK,"SF_RBP",A="FL:::/Kernel/KernelA.HPP,553"$
+$LK,"ISO1T_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,2477"$
+$LK,"SF_RBP",A="FL:::/Kernel/KernelA.HPP,554"$
 $LK,"SYS_MP_CNT",A="FL:::/Kernel/KStart.CPP.Z,224"$
-$LK,"CMF_U8_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1678"$
-$LK,"CMF_I8_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1677"$
+$LK,"CMF_U8_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1696"$
+$LK,"CMF_I8_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1695"$
 $LK,"EdLiteUpdate",A="FL:::/Kernel/EdLite.CPP.Z,7",BI=581$
 $LK,"_ARC_ENTRY_GET",A="FL:::/Kernel/Compress.CPP.Z,43"$
-$LK,"DOCT_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,938"$
+$LK,"DOCT_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,940"$
 $LK,"SYS_CTRL_ALT_FLAGS",A="FL:::/Kernel/KStart.CPP.Z,201"$
-$LK,"BOOT_RAM_BASE",A="FL:::/Kernel/KernelA.HPP,3858"$
-$LK,"MT_DVD",A="FL:::/Kernel/KernelA.HPP,2520"$
-$LK,"DOCEf_SELECTED",A="FL:::/Kernel/KernelA.HPP,1041"$
-$LK,"DOCEF_SELECTED",A="FL:::/Kernel/KernelA.HPP,1035"$
-$LK,"DOCEt_SELECTED",A="FL:::/Kernel/KernelA.HPP,949"$
-$LK,"DOCET_SELECTED",A="FL:::/Kernel/KernelA.HPP,943"$
-$LK,"ATTRF_SELECTED",A="FL:::/Kernel/KernelA.HPP,886"$
+$LK,"BOOT_RAM_BASE",A="FL:::/Kernel/KernelA.HPP,3877"$
+$LK,"MT_DVD",A="FL:::/Kernel/KernelA.HPP,2539"$
+$LK,"DOCEf_SELECTED",A="FL:::/Kernel/KernelA.HPP,1045"$
+$LK,"DOCEF_SELECTED",A="FL:::/Kernel/KernelA.HPP,1039"$
+$LK,"DOCEt_SELECTED",A="FL:::/Kernel/KernelA.HPP,951"$
+$LK,"DOCET_SELECTED",A="FL:::/Kernel/KernelA.HPP,945"$
+$LK,"ATTRF_SELECTED",A="FL:::/Kernel/KernelA.HPP,887"$
 $LK,"FramePtrDel",A="FL:::/Kernel/KHashB.CPP.Z,240",BI=582$
 $LK,"chars_bmp_filename",A="FL:::/Kernel/StrA.CPP.Z,345"$
-$LK,"ICF_A2_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1590"$
-$LK,"ATTRf_SELECTED",A="FL:::/Kernel/KernelA.HPP,891"$
-$LK,"FILEMASK_JIT",A="FL:::/Kernel/KernelA.HPP,2265"$
-$LK,"ATAS_DRDY",A="FL:::/Kernel/KernelA.HPP,2250"$
-$LK,"ARGT_AL",A="FL:::/Kernel/KernelA.HPP,1896"$
-$LK,"CIntermediateCodeBase",A="FL:::/Kernel/KernelA.HPP,1624"$
-$LK,"CAutoCompleteDictGlbls",A="FL:::/Kernel/KernelA.HPP,1513"$
+$LK,"CICType",A="FL:::/Kernel/KernelA.HPP,1624"$
+$LK,"ICF_A2_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1604"$
+$LK,"ATTRf_SELECTED",A="FL:::/Kernel/KernelA.HPP,892"$
+$LK,"FILEMASK_JIT",A="FL:::/Kernel/KernelA.HPP,2284"$
+$LK,"ATAS_DRDY",A="FL:::/Kernel/KernelA.HPP,2269"$
+$LK,"ARGT_AL",A="FL:::/Kernel/KernelA.HPP,1915"$
+$LK,"CIntermediateCodeBase",A="FL:::/Kernel/KernelA.HPP,1644"$
+$LK,"CAutoCompleteDictGlbls",A="FL:::/Kernel/KernelA.HPP,1519"$
 $LK,"SYS_CODE_BP",A="FL:::/Kernel/KStart.CPP.Z,204"$
 $LK,"WClusters",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,129",BI=583$
 $LK,"LXchgI64",A="FL:::/Kernel/KernelB.HPP,259"$
-$LK,"MSG_KEY_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3213"$
-$LK,"TASKf_NONTIMER_RAND",A="FL:::/Kernel/KernelA.HPP,3266"$
-$LK,"ARGT_CL",A="FL:::/Kernel/KernelA.HPP,1901"$
-$LK,"ARGT_M8",A="FL:::/Kernel/KernelA.HPP,1881"$
+$LK,"MSG_KEY_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3232"$
+$LK,"TASKf_NONTIMER_RAND",A="FL:::/Kernel/KernelA.HPP,3285"$
+$LK,"ARGT_CL",A="FL:::/Kernel/KernelA.HPP,1920"$
+$LK,"ARGT_M8",A="FL:::/Kernel/KernelA.HPP,1900"$
 $LK,"ChkOnStk",A="FL:::/Kernel/KDbg.CPP.Z,31",BI=584$
 $LK,"TaskQueInsChild",A="FL:::/Kernel/Sched.CPP.Z,325",BI=585$
-$LK,"TK_F64",A="FL:::/Kernel/KernelA.HPP,2053"$
-$LK,"RLF_BOOT_HEAP",A="FL:::/Kernel/KernelA.HPP,458"$
-$LK,"RLf_BOOT_HEAP",A="FL:::/Kernel/KernelA.HPP,439"$
+$LK,"TK_F64",A="FL:::/Kernel/KernelA.HPP,2073"$
+$LK,"RLF_BOOT_HEAP",A="FL:::/Kernel/KernelA.HPP,459"$
+$LK,"RLf_BOOT_HEAP",A="FL:::/Kernel/KernelA.HPP,440"$
 $LK,"I_USER",A="FL:::/Kernel/KernelA.HPP,299"$
 $LK,"FAT32CDirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,226",BI=586$
 $LK,"BlkPoolAdd",A="FL:::/Kernel/Mem/BlkPool.CPP.Z,1",BI=587$
 $LK,"sys_task_being_screen_updated",A="FL:::/Kernel/KGlbls.CPP.Z,11"$
-$LK,"TK_INTEGER",A="FL:::/Kernel/KernelA.HPP,2051"$
-$LK,"TK_NORMALSCRIPT",A="FL:::/Kernel/KernelA.HPP,2048"$
-$LK,"SF_RIP",A="FL:::/Kernel/KernelA.HPP,554"$
-$LK,"IOAPIC_REG",A="FL:::/Kernel/KernelA.HPP,505"$
+$LK,"TK_NORMALSCRIPT",A="FL:::/Kernel/KernelA.HPP,2068"$
+$LK,"SF_RIP",A="FL:::/Kernel/KernelA.HPP,555"$
+$LK,"IOAPIC_REG",A="FL:::/Kernel/KernelA.HPP,506"$
 $LK,"Complex",A="FL:::/Kernel/KernelA.HPP,114"$
 $LK,"Trunc",A="FL:::/Kernel/KernelB.HPP,142"$
-$LK,"ROPB_EQU",A="FL:::/Kernel/KernelA.HPP,2904"$
-$LK,"HTf_IMM",A="FL:::/Kernel/KernelA.HPP,671"$
+$LK,"ROPB_EQU",A="FL:::/Kernel/KernelA.HPP,2923"$
+$LK,"HTf_IMM",A="FL:::/Kernel/KernelA.HPP,672"$
 $LK,"sys_pci_services",A="FL:::/Kernel/PCIBIOS.CPP.Z,159"$
-$LK,"CStreamBlk",A="FL:::/Kernel/KernelA.HPP,1987"$
-$LK,"ARGT_M32",A="FL:::/Kernel/KernelA.HPP,1883"$
-$LK,"ARGT_M16",A="FL:::/Kernel/KernelA.HPP,1882"$
-$LK,"MEM_EXTRA_HASH2_PAGES",A="FL:::/Kernel/KernelA.HPP,2854"$
-$LK,"ARGT_CS",A="FL:::/Kernel/KernelA.HPP,1911"$
-$LK,"ICF_R_TO_F64",A="FL:::/Kernel/KernelA.HPP,1572"$
-$LK,"DOC_COLOR_QUOTE",A="FL:::/Kernel/KernelA.HPP,1135"$
-$LK,"DOCSS_DBL_QUOTE",A="FL:::/Kernel/KernelA.HPP,1120"$
+$LK,"CStreamBlk",A="FL:::/Kernel/KernelA.HPP,2007"$
+$LK,"ARGT_M32",A="FL:::/Kernel/KernelA.HPP,1902"$
+$LK,"ARGT_M16",A="FL:::/Kernel/KernelA.HPP,1901"$
+$LK,"MEM_EXTRA_HASH2_PAGES",A="FL:::/Kernel/KernelA.HPP,2873"$
+$LK,"ARGT_CS",A="FL:::/Kernel/KernelA.HPP,1930"$
+$LK,"ICF_R_TO_F64",A="FL:::/Kernel/KernelA.HPP,1587"$
+$LK,"DOC_COLOR_QUOTE",A="FL:::/Kernel/KernelA.HPP,1141"$
+$LK,"DOCSS_DBL_QUOTE",A="FL:::/Kernel/KernelA.HPP,1126"$
 $LK,"SYS_PCI_SERVICES",A="FL:::/Kernel/PCIBIOS.CPP.Z,5"$
 $LK,"_STRCMP",A="FL:::/Kernel/StrA.CPP.Z,86"$
-$LK,"ARGT_AX",A="FL:::/Kernel/KernelA.HPP,1897"$
-$LK,"LAPIC_PROCESSOR_PRIORITY",A="FL:::/Kernel/KernelA.HPP,479"$
+$LK,"ARGT_AX",A="FL:::/Kernel/KernelA.HPP,1916"$
+$LK,"LAPIC_PROCESSOR_PRIORITY",A="FL:::/Kernel/KernelA.HPP,480"$
 $LK,"Core0Init",A="FL:::/Kernel/MultiProc.CPP.Z,355",BI=588$
-$LK,"ARGT_DS",A="FL:::/Kernel/KernelA.HPP,1906"$
-$LK,"ARGT_R8",A="FL:::/Kernel/KernelA.HPP,1871"$
+$LK,"ARGT_DS",A="FL:::/Kernel/KernelA.HPP,1925"$
+$LK,"ARGT_R8",A="FL:::/Kernel/KernelA.HPP,1890"$
 $LK,"AStrNew",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,461",BI=589$
-$LK,"ARGT_ES",A="FL:::/Kernel/KernelA.HPP,1907"$
-$LK,"ICF_A2_TO_F64",A="FL:::/Kernel/KernelA.HPP,1576"$
-$LK,"DOCF_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1249"$
-$LK,"Cf_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,826"$
+$LK,"ARGT_ES",A="FL:::/Kernel/KernelA.HPP,1926"$
+$LK,"ICF_A2_TO_F64",A="FL:::/Kernel/KernelA.HPP,1591"$
+$LK,"DOCF_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1255"$
+$LK,"Cf_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,827"$
 $LK,"FAT32DrvInit",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,22",BI=590$
-$LK,"DOCT_ANCHOR",A="FL:::/Kernel/KernelA.HPP,920"$
+$LK,"DOCT_ANCHOR",A="FL:::/Kernel/KernelA.HPP,922"$
 $LK,"KbdPktRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,388",BI=591$
 $LK,"KbdCmdRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,36",BI=592$
 $LK,"D3DivEqu",A="FL:::/Kernel/KernelB.HPP,159"$
-$LK,"ARGT_FS",A="FL:::/Kernel/KernelA.HPP,1908"$
-$LK,"ARGT_DX",A="FL:::/Kernel/KernelA.HPP,1902"$
-$LK,"ARGT_M64",A="FL:::/Kernel/KernelA.HPP,1884"$
-$LK,"DOCE_LEN_DFT",A="FL:::/Kernel/KernelA.HPP,1169"$
-$LK,"DOC_COLOR_KEYWORD2",A="FL:::/Kernel/KernelA.HPP,1133"$
+$LK,"ARGT_FS",A="FL:::/Kernel/KernelA.HPP,1927"$
+$LK,"ARGT_DX",A="FL:::/Kernel/KernelA.HPP,1921"$
+$LK,"ARGT_M64",A="FL:::/Kernel/KernelA.HPP,1903"$
+$LK,"DOCE_LEN_DFT",A="FL:::/Kernel/KernelA.HPP,1175"$
+$LK,"DOC_COLOR_KEYWORD2",A="FL:::/Kernel/KernelA.HPP,1139"$
 $LK,"CD2I32",A="FL:::/Kernel/KernelA.HPP,136"$
 $LK,"DrvLock",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,1",BI=593$
-$LK,"ARGT_GS",A="FL:::/Kernel/KernelA.HPP,1910"$
-$LK,"CICTreeLinks",A="FL:::/Kernel/KernelA.HPP,1617"$
-$LK,"DOC_COLOR_COMMENT",A="FL:::/Kernel/KernelA.HPP,1134"$
+$LK,"ARGT_GS",A="FL:::/Kernel/KernelA.HPP,1929"$
+$LK,"CICTreeLinks",A="FL:::/Kernel/KernelA.HPP,1637"$
+$LK,"DOC_COLOR_COMMENT",A="FL:::/Kernel/KernelA.HPP,1140"$
 $LK,"SYS_MEM_E801",A="FL:::/Kernel/KStart.CPP.Z,32"$
-$LK,"ATA_NOP",A="FL:::/Kernel/KernelA.HPP,2234"$
-$LK,"SVCf_DONT_FILTER",A="FL:::/Kernel/KernelA.HPP,3152"$
+$LK,"ATA_NOP",A="FL:::/Kernel/KernelA.HPP,2253"$
+$LK,"SVCf_DONT_FILTER",A="FL:::/Kernel/KernelA.HPP,3171"$
 $LK,"IET_REL_I0",A="FL:::/Kernel/KernelA.HPP,392"$
-$LK,"OC_ADDR_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HPP,1737"$
+$LK,"OC_ADDR_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HPP,1755"$
 $LK,"SYS_MEM_E820",A="FL:::/Kernel/KStart.CPP.Z,33"$
-$LK,"SUF_SINGLE_SPACE",A="FL:::/Kernel/KernelA.HPP,3769"$
+$LK,"SUF_SINGLE_SPACE",A="FL:::/Kernel/KernelA.HPP,3788"$
 $LK,"RFLAGG_START",A="FL:::/Kernel/KernelA.HPP,324"$
-$LK,"CKeyDevEntry",A="FL:::/Kernel/KernelA.HPP,3789"$
-$LK,"MSG_IP_R_D_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3217"$
-$LK,"MSG_IP_L_D_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3215"$
+$LK,"CKeyDevEntry",A="FL:::/Kernel/KernelA.HPP,3808"$
+$LK,"MSG_IP_R_D_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3236"$
+$LK,"MSG_IP_L_D_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3234"$
 $LK,"XTalkWait",A="FL:::/Kernel/SrvCmd.CPP.Z,455",BI=594$
 $LK,"MemPageTable",A="FL:::/Kernel/Mem/PageTables.CPP.Z,162",BI=595$
-$LK,"CCF_KEEP_NUM_SIGN",A="FL:::/Kernel/KernelA.HPP,2112"$
-$LK,"ARGT_MM",A="FL:::/Kernel/KernelA.HPP,1915"$
+$LK,"CCF_KEEP_NUM_SIGN",A="FL:::/Kernel/KernelA.HPP,2132"$
+$LK,"ARGT_MM",A="FL:::/Kernel/KernelA.HPP,1934"$
 $LK,"chars_bmp_alpha_numeric_no_at",A="FL:::/Kernel/StrA.CPP.Z,335"$
 $LK,"SysHlt",A="FL:::/Kernel/KernelB.HPP,265"$
-$LK,"FUF_JUST_DIRS",A="FL:::/Kernel/KernelA.HPP,2583"$
+$LK,"FUF_JUST_DIRS",A="FL:::/Kernel/KernelA.HPP,2602"$
 $LK,"CD2I64",A="FL:::/Kernel/KernelA.HPP,140"$
 $LK,"CD3I32",A="FL:::/Kernel/KernelA.HPP,126"$
 $LK,"_STRCPY",A="FL:::/Kernel/StrA.CPP.Z,65"$
 $LK,"RedSeaDrvValidate",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,82",BI=596$
-$LK,"YELLOW",A="FL:::/Kernel/KernelA.HPP,2943"$
-$LK,"FUf_JUST_DIRS",A="FL:::/Kernel/KernelA.HPP,2557"$
+$LK,"YELLOW",A="FL:::/Kernel/KernelA.HPP,2962"$
+$LK,"FUf_JUST_DIRS",A="FL:::/Kernel/KernelA.HPP,2576"$
 $LK,"RedSeaFreeFreeLst",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,3",BI=597$
 $LK,"IPVarsInit",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,68",BI=598$
-$LK,"ARGT_NO",A="FL:::/Kernel/KernelA.HPP,1856"$
+$LK,"ARGT_NO",A="FL:::/Kernel/KernelA.HPP,1875"$
 $LK,"IET_REL_I8",A="FL:::/Kernel/KernelA.HPP,394"$
 $LK,"MouseGetDevType",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,26",BI=599$
-$LK,"ARGT_R32",A="FL:::/Kernel/KernelA.HPP,1873"$
-$LK,"ARGT_R16",A="FL:::/Kernel/KernelA.HPP,1872"$
-$LK,"DOC_DFT",A="FL:::/Kernel/KernelA.HPP,1147"$
-$LK,"CMemberLstMeta",A="FL:::/Kernel/KernelA.HPP,784"$
-$LK,"DISPLAYf_WIN_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3273"$
-$LK,"CAutoCompleteGlbls",A="FL:::/Kernel/KernelA.HPP,1476"$
-$LK,"CAOTImportExport",A="FL:::/Kernel/KernelA.HPP,1935"$
-$LK,"MEM_SETH_STK",A="FL:::/Kernel/KernelA.HPP,2857"$
-$LK,"DOCEF_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,1007"$
+$LK,"ARGT_R32",A="FL:::/Kernel/KernelA.HPP,1892"$
+$LK,"ARGT_R16",A="FL:::/Kernel/KernelA.HPP,1891"$
+$LK,"DOC_DFT",A="FL:::/Kernel/KernelA.HPP,1153"$
+$LK,"CMemberLstMeta",A="FL:::/Kernel/KernelA.HPP,785"$
+$LK,"DISPLAYf_WIN_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3292"$
+$LK,"CAutoCompleteGlbls",A="FL:::/Kernel/KernelA.HPP,1482"$
+$LK,"CAOTImportExport",A="FL:::/Kernel/KernelA.HPP,1955"$
+$LK,"MEM_SETH_STK",A="FL:::/Kernel/KernelA.HPP,2876"$
+$LK,"DOCEF_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,1009"$
 $LK,"CD3I64",A="FL:::/Kernel/KernelA.HPP,144"$
 $LK,"c32_edi",A="FL:::/Kernel/PCIBIOS.CPP.Z,157"$
-$LK,"PURPLE",A="FL:::/Kernel/KernelA.HPP,2934"$
-$LK,"TASKf_BREAK_LOCKED",A="FL:::/Kernel/KernelA.HPP,3262"$
-$LK,"FILEMASK_SRC",A="FL:::/Kernel/KernelA.HPP,2267"$
-D&9Æ9ÆCÆWÆYÆgÆ}ƌƦÆÕÆÙÆÙÆÞÆDVc»»¿ÎÚæò%&*@4@kksw�§¿ÎÚèïüý,š¡#M#M,MEGGP^DŽ›ÓÓáïþ


+
+
4
ˆ/M²¢²¢¢Í¢Ø¢ߢߢ£££*£7£<£B£Q£W£^£^£b£b£b£b£o£r£‚£	0ÎÖµˆµˆÏˆçˆúˆüˆüˆ‰
 Ì;x3x3�3–3°3³3¿3Ô3Ú3à3æ34
-444 4&4+4P4V4X4g4k4z4€4ƒ4…4”4˜4§4­4°4²4Â4Æ4Ú4Ý4à4â4ñ4ô45Ä¥Ò11"1,1/1?1W1a1g1j1m1p1¬1¯1²1´1Ç1Ê1Í1Õ1Û1à1à1æ1ò1ô1ý1ý1ý1ý122222(2ˆCa"ª"ªHªLªTªZªcªkªqªtª€ª€ªªª·ªÁªĪǪΪÖªܪéªéªÿª
4æïM‰M‰g‰u‰�‰ ‰¢‰¢‰¬‰`FZÀ[À[Î[Ñ[Þ[ë[ò[ù[\\\#\5\D\L\U\W\W\_\44=PCPC^CzCzC}C”C”CšC TXqáqáá�á(-3##+AFZ\fHÜê‘e‘e±e¾eÃeÏeéeïeõeffff(Z`öÌöÌÍ"Í*Í0Í8Í$üdzdzmzuz{z€z0ƒ‹Ê¼ʼà¼ë¼ü¼þ¼½8ž¨@^@^N^U^`^e^g^~^~^‡^�^P|ŒP]P]^]e]p]u]~]�]“]š]œ]Ÿ]ª]°]€Zv¯¯H¯L¯P¯g¯w¯�¯£¯µ¯µ¯ѯÖ¯â¯è¯ë¯ò¯ö¯ú¯þ¯°°°¿°à:.ÂtÂtÛtãtþt	uuu*u7uKu^u{u†u”u¤u­u°uºu¾uÙuÞuåuíuÿuvv v0v6vJKKSZgv…𮽯èì`ˆœss�Ž˜˜«³ÆÈÛÛßéîîô|w’j‘j‘Б𑥑ª‘¬‘²‘đ֑æ‘÷‘’	’	’	’’(’E’U’W’W’`’l’XÓå“(“(Ÿ(¡(°(Æ(Ò(Ù(ð(ò(	)	)))) @8D„{„{’{”{¶{Ã{Ã{Í{ |ýY	Y	Š	�	›	¤	¤	»	Ì	á	æ	ù	ý	
-!
-*
-:
-B
-R
-a
-d
-™
-!4ÑÚ#`#`7`I`X`i`|`‚`‹`"¬(FdFd`dqdƒd’d¢d¶dÁdÇdßdßdëdýdeeee'e'e-e-e”e™e™eÁeÁeÏeÒeÕeãeéeòef#,Ûâ‹`‹`™`¼`§`Ì`Ò`ù`$ †ŠpVpVyV†V‹V%H—¥NòNòiòkò|òˆò�ò™ò™ò�ò§ò&Œ¬Ë¶é¶é×éÚéãéÿéêêê"ê*êDêLê_êiênêzê€ê‡ê”ê—ê ê£ê¦ê«êÒê' }�^¼^¼r¼€¼†¼(Dævævwwww,w9w?wBwNw)p¼Ô.ó.ó<óJó`óoótó„ó†óŒó•ó�ó¨óÂóÒóáóáóèóèóèóÜô*h#9 h h¶h¸hÇhÛhÝhæhèhèhëhiGiTi^inixiƒi†i”i+$glkkk,k7kRk,œd‡++AJWdq‰�Ÿ³³»ÐÝÝêò/AI]ddn-|9¨Z¨Z²Z¿ZÐZÚZáZèZñZùZ[[ [)[1[8[?[G[M[X[\[^[^[b[.X ΘΘí˜ð˜õ˜ø˜™™ ™)™1™5™8™8™>™A™O™/D*7ÄJÄJØJèJïJýJKKKK0 
-‹‹‹,‹F‹1”9ÙòÙòáòóó ó+ó9óKóYóaóoóƒó¶ó¸ó¼ó¼óÇóÒóáóðóôô#ô5ô<ô<ôNôOôSô2Xßñ>õLõZõZõrõxõ�õ‰õ”õžõ¥õ½õ½õ½õÄõÄõÅõËõ3P„z„z˜z¨z®z³z³zÁzÅzÊzÊzÒz4 $(ÐBÐBÞBòBøB5Œ¡Àj†j†‰†…†˜†¨†µ†¹†½†à†í†ù†‡‡‡X‡`‡‡–‡¤‡«‡²‡¹‡Ú‡à‡ç‡ê‡ˆ6Œþâ·â·ì·î·¸¸1¸:¸h¸k¸t¸¢¸¥¸©¸®¸º¸Á¸ã¸æ¸è¸ï¸¹¹¹¹"¹)¹0¹7@8DKK$K-K4K;KBKCKKK8<ðûüyüyzz)z:zBzJzRzUz]z9,ZaEEECESEyE†EˆE:,JQøCøCüC3DCDiDwDyD;”£ÄYãYãtã~ãˆãŸãµãºãÇãÌãèãääää6äKäMägä|ä|äƒäƒäƒä(å<$ˆ�CCLZpu=<‰”JÁJÁTÁjÁyÁÁŽÁ”Á£Á©Á«Á°Á>H!ÔzÔzâzîzózóz{{{{{?LïþŠŠŠŠ Š)Š/Š<ŠPŠPŠoŠoŠŒŠ�Š”ŠšŠ@ ƒ‡þþA\˜«éé"é0é5é;éFéOéOé_ékéoé‡éŽé‘é“é¶éB4ˆ‘$4UjjjnC,jqFFFCFSFyFƒF…FD¸�Ƕ!¶!¾!Æ!Ñ!ð!ù!"#"-"9"D"D"S"t"•"¢"ª"À"Ë"Ó"Ó"â"#$#1#9#O#Z#l#l#z#�#“#“#¡#¡#¢#µ#E ’–nnrƒF —›††Š­±Gp]uÀÀ,À>ÀZÀZÀaÀcÀcÀqÀsÀsÀÀÀ…À�À‘ÀœÀ´ÀÎÀÎÀÎÀÛÀHì<©å©å±å½åÝåñåõåæææ,ædædæ“æ°æºæÉæÇæóæóæç&ç&ç5çDçXç}ç�çƒçƒç�ç�ç‘ç‘ç¡ç­ç­ç±ç¶ç¿çÑçØçåçôç è(è:è:è@è‹éI|XsYêYêqê{ê‚êŽê‘êŸê¢ê¦ê¨ê«ê®ê¶ê¹êÁêÕêßêõêûêþêëëëJ4•ž²k²k¼k¾kÅkËkÝkÞkãkK,'.fÜfÜpÜrÜzܔܙܟÜLP��°]°]Â]Å]Ð]Õ]â]í]ü]^^%^.^1^;^M�[{`\`\z\…\Š\“\¦\¾\Æ\Î\Û\å\ì\ó\÷\û\]]]]"](]+]9];]I]Né%ðð+ð2ðCðFðgðzð‡ð•ð¾ðÚðæðíðïðòðøðüð
ñññ ñ#ñ%ñ1ñAñIñOñ\ñ_ñbñpñ�ñ‘ñ�ñŸñ¯ñ¼ñÂñÏñãñæñéñññññññùñòòòò-òO œ ¶¶ºÏÓP„
*NÊNÊhÊkÊ~ʋʧʪʰʹÊÅÊÇÊÚÊíÊñÊË
-ËËË)Ë+Ë+Ë;Ë>ËTËQˆ !Í!Í)Í4ÍDÍSÍ_̓̓̓͋Í�Í�Í´ÍÃÍäÍüÍÎÎÎÎÎ$Î+Î+Î=ÎBÎJÎR,æí)) )8)?)A)SL@O^^�ˆ’–šž¨¨²ÅÈÖT ¡¥ÖÖÚéíU äèæâæâêâããVHú¡f¡fÁfÎfÓfßfùfÿfgggg(gWHëùff9fFfKfWfqfwf}fŠf“f”f fX ¦ªîîò÷ûY «¯þþZ<ÈÓzÃzË×ÛçéõüÃÂÃÊÃ[d^sÃJÃJËJÏJÏJÞJKKK!K9KKKTK[K~K‡KŽKšKœK\°¥Í>=>=I=Y=j=y=„=“= =¹=Ð=Ô=Ø=à=è=ñ=>>.>2>6>:>B>J>S>q>„>�>ž>¥>¥>¶>¿>]0&¶“¶“¿“¿“Ö“ó“ó“ø“^8°(°(Ê(Î(Ñ(Ü(ú(þ())_ ëMëMôMÿMN`D»È__*_A_N_N_X_r_|_aL™¨ûPûP	QQQ Q!Q/Q:QCQCQDQJQb,biˆEˆEŒEÃEÓEùEFFc,RY€D€D„D»DËDñDÿDEd0ÁɈˆˆUˆ\ˆbˆoˆ‚ˆŽˆeY™
-™
-¡
-¬
-´
-Õ
-ä
-í
-$1DbkxƒŽ“°µµÂÌßì'CNVq|‘¯»ÄÉæïû
-

8
C
K
V
V
V
[
i
t
{
†
‹
’
f,ryˆFˆFŒFÃFÓFùFGGg$û#W#WCWPWVWbWh$+0VËVË_Ëp˂˾Ëi<$/*”*”8”@”H”U”`”j”™”›”¡”jô–Ï“C“C§C¶CÅCÏCÞCíCíCD$D/D6DRD_DmD{D‰D—D·D­DÃDÕDàDòDEEEE#E+E;ECESE]E”E£E«E®E¼Ek@nz¶–¶–Ö˖Ζܖà–ä–ç–õ–ü–—l$bJoJo]ocoro|o�o�o�o”o™o£o´oÅoÙoÛoöo&p=pSp^p~p€p‹p•p pªpµp¿pÊpØpßpípíp÷pq8qCqZq_qaqkq‡q�q˜q³qmdÆÛÃUÃUÑUÖUæUëUúUÿUVVVVV,V7V;VAVnD/<¦Ü¦Ü¯ÜÄÜÐÜÛÜäÜòÜýÜÝ
-Ýo<²½K^K^a^t^ˆ^Ž^¨^¯^Å^Ë^Ñ^_p,ããç+Tbdq<bmn–n–{–ƒ–†–”–˜–œ–ª–®–³–r|0vúvú‡ú‘úŸú·úÏúäúÿúûû û+û2ûCûMûMû^ûfûkûrû|û�û›ûsL𩵆µ†Ñ†Ø†ß†ë†ô†‡‡‡'‡=‡L‡V‡V‡k‡t8ÃQÃQÙQæQøQRR#R-Ru 6ä6ä:äSävÔ,]1ÿ1ÿ9ÿAÿOÿbÿqÿ{ÿ‡ÿ’ÿ ÿ¯ÿÀÿÜÿäÿðÿøÿ
".@T†—¤¿ÜÞðùù 22@@EIw4¨±Ë]Ë]ß]ñ]÷]^^.^4^G^x0DLBBB)B4BCB]BeByPZjõ„õ„………%…*…-…3…6…;…F…L…V…zd¦»®ò®òÇòÊòØòØòáòìòñòôòóóóóóó!ó-ó{H<Jææææ'æ0æ3æ@æIæIæMæPæXæ|$PUÖÖßíóø}4ÕÞÞôÞôìôúôõ
õ&õ+õ2õ8õ~¬LsÂhÂhÔhãhéhýhi'i:iQidi{i’i©iÁiÅiÌiÒiÖièijjj,j0j7j=jAjSjljyjj‚jŒj?6&6&>&F&W&f&p&|&|&€&ˆ&Œ&¥&ß&ñ&','5'>'>'C'V'['f'|'�'—'È'þ'( (5(I(P(�(·(È(Ø(Ø(ß(ñ(ñ(ÿ(ÿ())) )$)()€P—§+]+]A]T]c]|]†]ˆ]”]­]¸]¾]Â]Ê]�0jrfftƒŽ”––œ‚<KVjj!j+j;j=jpjwjwjwjzjƒ˜òÎõÎõÔõÒõâõoú„4ŠÓ>Â>ÂVÂ^ÂlÂwÂ{Â�‡•ª¯µÂÌÂÑÂ×ÂîÂóÂùÂÃÃÃ)Ã-ÃIÃ\ÃlÃqÀÃ�Ã�ìùÃÌÃÒÃÙÃÛÃîÃÄÄÄ,Ä,Ä?ÄAÄTÄVÄiÄkÄ~Ä~ĚıķĽÄÈÄìÄ…HVäVä_äzäƒäŽä�ä’ä¡ä¡ä°ä²ä²ä·ä†\ÜïCVCVSVaVlVnVuVV•V V¢V§V©VªVªV²V‡( ¦éÛéÛôÛÜÜ܈D¾Ëöáöáââ"â.â5âDâPâPâVâ‰d9×9×I×d×d×f×f×f×n×׈יץרת׭ׯׯׯ׻׊D-:{A{A�AžAžA¦A¼AÀAÀAÄAÌA‹Ô
-;nn n#n&n0n6nBnInPnYnfntn}n€n†nŒn“nšnœn¦n«n´nÂnÈn×nãnænénñnönooooooo!o)o1o=o@oRoŒ81;¾Ë¾ËÌËãËîËîËùËýËýËÌ�$<�ññù	+:CQ^eoz�œ¤¸ÅÙæú"6@Taany„˜¿ÍÛèóþ$9ISdu†—ÊØí)2A\s|‡Ž™£¬¼Ž0t|£K£K§K´KÐKåKêKL�02:½ƒ½ƒÑƒÜƒîƒöƒùƒ„�¼KvRR R@RRRYRfRrRzR…R�R˜R£RÇRÖRÝRäRõR÷RÿR
-SS$S+S.S0S6SH>HXH[HaHmHoH~H…H‹H´H»HèHïHóHII4I=I=I=IJIƒI�I›I¨I»IÉIÚIíIúIJ$J+J6JRJRJ^J`J`JlJnJnJzJ|J|JŒJ�J�J›J§JÀJÊJÓJÞJôJKKKK,K3K:K@KCK�K“Pîþ®u®uÎuáuíuùuvv v&v+v-vFv”4#ˆBˆB‘B¦B¦B³BÈBÈBÍB• ÌÐÖêÖêäêíêóê–0ÊÒ’ˆ’ˆ¦ˆåˆìˆòˆ
-‰
‰‰—0HPæïæïôïð
-ð-ðFðnð˜€ÞAÞAòAùAB	B%B%B3B5B5BEBGBGBUBWBWBgBoBoBxB„B¡B¡B³B³B·BÞB™XðƒOƒO�O¡O²O½OÙOÜOêOðOóOP P#Pš@$01à1à?àDàGàYà_àbàdàjà›HªÅªÅ¿ÅËÅÎÅ×ÅãÅëÅÆÆÆ Æ,Æœ îò.ã.ã2ã@ãBã�ä{°ØkØkökÿk"l,l>lAlIlLlRlUlalsl€l†l“lžl£l©l»l»lÊlÍl×lÚlælølmmm#m(m.m@m@m@m@mKmKmYmž Ñõ+;+;J;L;];b;p;‘;Ÿ;©;´;Ì;Ó;Õ;Õ;ç;í;ó;õ;û;<<
-<<<!<'<'<'<.<?<ŸT…–ÆñÆñêñíñûñûñò ò*ò0ò;ò;ò;ò?òMò `p„.ñ.ñKñQñ_ñ_ñsñ~ñ‚ñ‰ñŒñ–ñ�ñ­ñ±ñ±ñ±ñµñÁñ¡HïýR·R·y·”·¢·­·±·µ·¹·÷Í·Í·Ï·Ý·¢D"/${${2{>{C{C{T{Y{Y{_{£t¹Òc'c'k'|' '§'¸'Ü'ê'ø'(((%(3(I(_(a(w(�(�(�(�(¤X{�k8k8„8”8¬8¸8Ä8Ä8Ö8Ü8Ü8è8ô8ö8ö8þ8¥XÞð222#212G2O2b2l2ƒ2ˆ2�2�2¤2¬2±2¦8w�°°ȰưÖ°ñ°ý°ÿ°ÿ°ƒ±§8>H C C®C´C»CÑCÑCØCïCïCõC¨<u€r¡r¡Š¡˜¡Ÿ¡£¡¦¡ª¡±¡Ñ¡á¡©`«¿"l"l&l/lWl}lˆl—l¦l«l±l³lªL)ß)ßDß`ß`ßmßmßzßzߊߎߎߞߠߠß×ß«d@Õ.).)9)O)V)t)…)”)¡)°)Ä)Ü)ô)**(*J*e*€*¥*ª*Ã*Ø*ø*+ +!+W+®++}+Í+Þ+å+,,4,4,[,[,z,�,½,Ë,+-ü,ú,J-Q-V-h-p-p-•-¥-Â-.Õ-Ý-È-1.c.k.k.‹. .½.Ç.Þ.æ.Ñ.:/:/:/?/?/P/k/y/‘/ª/Ã/Þ/ö/0$020=0=0P0i0}0’0¬0°0®0þ011*1B1]1h1€1–1–1í1¾1¼122*2E2]2s2u2¿2�2Ž2Þ2Þ2ç2ð233332323C3C3F3J3¬4
-”t”t¢t§tªt°t³tµt»t­,szˆkˆkŒk‘k›k«k«k×k®T©º�^�^ž^«^¸^Ö^Ù^à^ç^õ^ù^û^_
_¯Ô%V[6[6{6‰6Ž6˜6˜6Ÿ6­6°6·6·6¾6Ì6Ï6Ó6ß6ß6ë6ñ6þ6777777"7"7.7G7J7]7]7`7c7s7°4r{ó,ó,ý,ý,--C--�-‘-±À6b1Õ1Õ<Õ@ÕdÕoÕ~ÕŠÕšÕ¹ÕÁÕÙÕéÕ
Ö
Ö1Ö3Ö3ÖWÖYÖYÖ}ÖÖÖ‹Ö‹Ö“Ö“ÖŸÖ³ÖÃÖËÖËÖÝÖäÖäÖöÖ××2ײÈÉ÷ûû..@EEW\\nss…ŠŠœ¡¡¡¡¨­­¿ÄÄÖÛÛò"33ELS\kγˆSq“O“O©O®OºOºOÆOÎOÖOáOêOòO÷OùOýOPP P'P(P(P2P´(|‚“-“-œ-£-Ã-Ê-Í-µü‚½‘ë‘ë™ë�ë¾ëÉëÒëèëüëì ì3ìTìŠì¬ìÁìÊìÌìÔìÜìóìûìííííí0í7íJíZíaíví‹í�í‘í‘í‘í�í©í©í®í·íÉíÐíÐíâíèíýí¶€a}>Í>ÍBÍQÍQÍ`Í`ÍoÍoÍ~Í�Í�͜ͰͫͺͺÍÉÍÉÍØÍ/Ò·¨r˜3P3PMPePzP�PŒP’P’P•PœP§P«P°P¶PÀPÆPÉPËPÎPÑPÑPÖPåPèPúP¸Ltƒ’j’j¦j³j¶jºjÈjÓjÜjûjkkkk+k¹TÉÚ¶Õ¶ÕÄÕËÕÖÕùÕÖÖÖ!Ö&Ö4Ö:Ö=ÖCÖº¼�ÈæÓæÓøÓþÓÔÔ)Ô3ÔKÔOÔgÔkÔ…Ô…Ô˜Ô¡Ô¬ÔµÔÂÔËÔÝÔçÔôÔýÔÿÔÕÕÕ9Õ<ÕTÕdÕuÕyÕ}ՈՈՌՌՌյջ4uuuuuu u$u*u¼(ãéû`û`a-a?aEa`a½”"€g€gšg¹gÅgØgÞgïg÷gûghh%h+h.h1h4h9h;h?hKh\hkhqhthwhzhzh„h‡h™h¾„d�®Y®YÑYÕYâYçYëYþY Z)Z)Z?ZKZRZeZjZnZ�Z¢Z¬Z¬ZÀZÀZÃZÑZ¿�]}†Ù†Ù�Ù�Ù�ÙµÙËÙÚÙóÙÚÚ7ÚSÚYÚgÚuÚƒÚ‘Ú“Ú©Ú¿ÚÕÚëÚëÚìÚñÚÀL�ž�>�L�[�b�h�z�z�����¤�³�Æ�Ò�é�ë�‘‘‘
-‘
-‘‘‘‘!‘!‘%‘0‘6‘B‘J‘l‘‚‘“‘ª‘±‘·‘º‘Ò‘ÌÜø+ÙüÙüáüåüðüþüýý1ý;ýGýRý`ýoý�ý©ýÁýÅýÞýöýþ	þþ þ+þ:þIþlþzþ‰þ²þ¿þÃþÐþâþâþðþ÷þ	ÿ	ÿÿÿÿ,ÿÍ”1Ržûžû¬û¸ûØûãûôûü ü5üJüSüXüXühütüzü†ü�üÀüÐüÐüÙüÞüäüåü*ý΀5í�í�
‚‚%‚)‚-‚<‚P‚X‚^‚r‚�‚�‚™‚�‚ ‚¢‚´‚‚ƂЂԂ݂ã‚ö‚Ï$).øBøBC
C!C'CÐ,“š½½½/½:½@½C½K½Ñ¨Çívtvt�t“t«t¶tÆtØtÜtêtótuuu'u2u@uJuRuVuVuVuYu[u_u_uduru€uŽu“u•u•u«uÒLêùîëîë
-ìì1ì<ìIì]ìcìoìÓ ÞãÞãâãðãòãÔ`(‹3‹3�3¦3¶3Æ3Ù3à3÷344(494J4k4Œ4£4®4¹4ó4ÕTë?ë?ï?@@)@.@D@K@]@p@ƒ@�@­@²@²@´@Ö`¶_Ï_Ñ_Ù_õ_þ_` `%`8`O`U`a`q`q`ƒ`Ã`×H_m«7«7Ë7Ù7ß7ó7ù7þ78	88Ø$zGGG#G1GîTîhîqî…î¬îÂîÜîäîïïï.ï9ï@ïKïPïeïàLN]2 2 ; ; J Y j n { ‘ • • š á85?r�r�‚�¡�­�±�µ�¹�Á�É�âœ$ó4ó4û4555<5U5U5a5r5}5‰5‰5–5¨5­5Ô5Û5è5ò5÷5÷5÷5676Q6V6[6ãx‚œÁÁÕßåñ!$-0Bhpyy«°¶Ãä8CPCPSPVP[P^PlPrPuPwPPåD&ÜÜÜ&Ü.Ü6Ü>ÜFÜNÜVÜ^ÜbÜfÜædavÊ�Ê�Ú�æ�ñ�ö�‘‘‘‘‘$‘,‘4‘S‘V‘a‘a‘i‘çH~ŒöÚöÚÛ Û0Û5ÛAÛ_ÛeÛqÛ�Û•Û•Û¡Ûè8—¡èVèVþVWWW%W(W2Wé(.42�2�;�I�X�g�l�ê0ª€ª€¸€Ѐ	�����ëDŒ™-†-†Y†g†r†v†z†~†‚†Ž†›†ž†®†ì€ÍéÉúÉúÔúÜúçúòúýúûû0û9ûMûtûŠû¤û¬ûÈûÓûÞûöûüüüü,üí<C)C)K)i)z)Š)›)§)Á)Ù)Û)Ý)îLÁЫ:«:Å:Ø:í:ó:ù:;;;;$;ïˆú���?�Q�Q�c�j�€�€���’�’�’�£�®�µ�¹�Á�Å�Í�Ó�Ù�Ù�Ü�ê�ð8ÿ	šŠšŠ¨Š³Š¾ŠÝŠóŠöŠ‹ñ?æwæwïwûwxx)x7xExZxaxtx‡x™x¡x¿xÓxÖxÞxîxÿx&y9yKy€y‚y“yŸy¤y¬yÎyáyíyzòHÿ
FvFv`vsvŒv¡v§v­v­vµv·vãvó<:Eh[h[y[{[€[‰[ª[³[¸[À[ô8JTvÌv̛̦̦̱̹̹̄̿ÌõDê÷1ü1üCüOüeüüŠüŠü›ü«ü­üØüöX@Rzzz+z>zVz_zjzuz–z˜z£z®z·zÀzÑzäzäzæz÷$ôùå€å€î€÷€ý€�ø 
-NNN'N8NùDÌÙVâVâeâjâsâ…â†âšâ�â£âúh-ƒ“!“!»!½!Æ!Ú!Ý!â!æ!"""."6"="V"_"a"z"ƒ"ƒ"ƒ"ˆ"¾"È"Ò"Ü"æ"í"ù"####0#0#9#;#;#D#F#F#O#Q#Q#V#X#X#]#]#]#a#|#’#�#²#»#À#È#Ô#Þ#ê#ý#$&$*$5$K$Y${$˜$¶$¶$¶$¶$¶$À$É$Ð$P%û ¢¦8W8WAWNWSWü@ÅÑ)å)å7å>åCåYå[ådåvå|å§åý4ÞÛÞÛæÛîÛöÛþÛÜÜÜÜþ,¶Û¶Û¾ÛÆÛÎÛÖÛÚÛÞÛÿx7..BGQXk„„“©²ÁÈÈËÕëòô÷ùù”
-Û|f f ‡ ‰   © ´ ¿ Á Ô â í ø ¡¡¡ ¡$¡'¡-¡1¡4¡7¡J¡_¡g¡j¡‚¡’¡•¡›¡ž¡±¡Æ¡Î¡Ñ¡é¡ù¡þ¡þ¡¢¢)¢)¢)¢-¢/¢/¢3¢5¢5¢9¢;¢;¢?¢?¢?¢B¢D¢D¢G¢L¢R¢U¢Y¢[¢a¢d¢|¢�¢•¢›¢ž¢£¢¶¢Ñ¢Ó¢é¢é¢é¢î¢î¢ð¢ð¢õ¢ø¢£££6£<£S£b£q£†£˜£½£Â£Â£Ú£ø£ý£ý£¤3¤5¤5¤M¤i¤k¤k¤ƒ¤Ÿ¤Ÿ¤½¤É¤Î¤Î¤æ¤ý¤¥¥¥6¥;¥;¥?¥W¥u¥y¥{¥{¥¥—¥µ¥¹¥¹¥×¥Ü¥Ü¥ô¥¦¦¦¦/¦F¦M¦[¦k¦�¦–¦˜¦˜¦¦¦®¦×¦Ù¦Ù¦ñ¦ñ¦§7§V§[§[§s§s§Œ§¡§Ã§·§Û§ú§¨¨#¨#¨;¨R¨\¨a¨r¨r¨x¨ƒ¨˜¨�¨§¨·¨·¨í¨û¨©©©%©%©1©5©5©>©M©V©V©_©i©…©š©·©Æ©Ì©á©é©õ©ÿ©ÿ©ªª$ª<ª>ª^ª^ªcªcª™ª§ª°ª°ª¼ªÀªÀªÉªØªáªáªêªðª««/«1«<«T«V«r«r«r«‚«£«¥«¥«½«Ô«Ù«Ù«ñ«¬¬¬-¬-¬D¬D¬P¬T¬Z¬c¬r¬{¬{¬„¬�¬§¬©¬Å¬Ð¬ë¬í¬í¬ö¬­­/­<­D­e­g­o­‰­Œ­•­š­»­Å­Å­à­ê­õ­®$®7®?®I®I®R®V®i®¡®¬®¬®¬®À®É®Í®à®¯¯¯¯2¯<¯D¯D¯M¯Q¯d¯œ¯­¯³¯Æ¯Î¯Û¯à¯à¯é¯í¯°8°I°R°W°W°b°f°~°•°Ÿ°¤°º°Ò°Ò°ü°±±#±'±:±B±I±T±Y±`±`±e±˜±¬±Æ±Ù±ã±í±í±ý±#²3²E²Q²U²o²�²�²‘²‘²‘²‘²•²š²š²¥²©²Á²Ø²â²ç²ý²³³?³I³k³p³p³p³{³³—³®³¸³½³Ó³Ó³ë³ë³´'´D´K´V´[´€´†´ ´²´º´¼´Ò´à´ý´
µ
µ:µ<µfµhµ€µ‹µ•µŸµ¦µÀµÉµÉµòµ
-¶
¶(¶(¶(¶-¶2¶e¶y¶“¶¦¶«¶µ¶¿¶è¶ü¶ÿ¶···· ·6·I·S·X·X·p·‡·‘·¡·¡·½·Ñ·Ô·æ·÷·ý·¸¸!¸&¸&¸&¸B¸V¸Y¸k¸„¸‰¸‰¸¡¸¸¸Â¸Ò¸Ò¸î¸¹¹¹(¹.¹A¹I¹R¹W¹W¹W¹s¹‡¹Š¹œ¹µ¹º¹º¹º¹Ò¹é¹ó¹ºº(º9ºJºPºcºkºtºyºyºyºžº¯ºÈºÍºÍºâºâºâºþºþº» »\¼@J‹J‹^‹l‹l‹y‹ž‹©‹­‹»‹¾‹Æ‹|�œâ¡â¡ÿ¡¢¢¢¢0¢X¢{¢‰¢™¢¼¢¤¢Ö¢ö¢££££"£%£1£8v€âÀâÀñÀÿÀÁÁÁÁÁ Á¬§Î!Ü!Ü1ÜGÜ]Ü[ÜkÜsÜzÜ~܆ܖܤܹܳÜÁÜÍÜÓÜÓÜÚÜÞÜÞÜàÜGÞ8ÔÞÊÃÊÃÙÃïÃþÃÄÄ#Ä%Ä%Ä+Ä@&2
-¾
-¾¾2¾@¾L¾`¾m¾t¾w¾¾4GP22F\glz‡�¡p+C33Sdk|ƒƒ™™§¯½ÅÅè.;YYffft	DŸ¬ürürs s*s0s6sÁ@Á`ÁeÁlÁuÁ{Á�ÁˆÁ‹Á‹Á›Á©Á«ÁÓÁõÁ÷ÁþÁÂÂ Â$Â$Â:ÂD3@‚¾‚¾‘¾¨¾¶¾¾¾Ö¾ë¾÷¾¿¿¿@ˆ”‹L‹L¡LÃLÉLÎLáLîLôL÷LÿL0ÙßÙßâßçßðßößößûß,;B"•"•1•=•K•T•Y•_•8ˆ’ÖßÖßäßðßà%à'à.à6à8à>àä6.¾.¾L¾O¾R¾f¾n¾u¾‰¾Œ¾Ž¾±¾±¾´¾Ä¾Æ¾Æ¾É¾Ë¾Ë¾Î¾å¾ú¾¿ ¿)¿1¿1¿1¿3¿3¿8¿W¿]¿l¿y¿�¿š¿œ¿®¿»¿À¿À¿Ì¿Ì¿Ù¿Ü¿Ü¿Àô…¾N—N—`—c—m—z—~—„—„—ˆ—�—‘—•—œ—¢—©—¯—¶—¼—×ɗЗ֗ݗã—ê—ð—ù—ÿ—˜˜˜˜˜˜.˜A˜C˜S˜Z˜e˜p˜{˜†˜‘˜œ˜œ˜¦˜LWf€j€j‰j™j™j·j½jÍjÓjÙjéjëjëjëjkhÝó%€%€:€I€N€^€f€f€t€~€�€•€¡€°€¼€Ç€Í€Ø€Û€ã€D<IÌÌÌ6ÌDÌTÌVÌXÌcÌgÌgÌoÌP„”2k2kAkJkTkVkhkhkhkjkqkwk—k¥k¦k¬k0Ž–Û\Û\ñ\]]] ]']<ZeÔpÔpâpópûpÿpqqqq\ÇÚ..2EXkvŠ›½ßú0Kf�œfTK\j¿j¿x¿Š¿�¿š¿²¿¸¿º¿Å¿Ý¿é¿ÀÀÀÀÀ
ÀX£µÉcÉcécöcûcd!d'd4dAdHdQdUdad X†˜yÒyҔҜҧÒÃÒÃÒÌÒÌÒÑÒâÒëÒöÒöÒÓÓ ,£ª¾½¾½Ò½ä½é½ú½'¾!ä6ŠŠ/Š2Š5Š;ŠOŠVŠYŠtŠ~ŠƒŠŠŠ�Š�Š Š’Š®ŠÅŠÑŠåŠîŠöŠ‹‹‹‹‹%‹'‹2‹8‹W‹g‹o‹�‹Š‹›‹£‹µ‹¸‹¸‹¸‹¸‹Ä‹Œ"	IFVFVfVuV�VŒV—V«V¾VÉVÕVæVïVûVWW
W"W.W.WIW[WoW}W’W˜W¼WÄWÄWÐWÔWØWðWþW)XX8XCXZX^XeXpXuXuXuXŠX�X¯X´X´XÀXÆXÌXÎXÞX#œ'JáÆáÆõÆÇÇ&Ç*Ç3Ç:Ç@ÇBÇUÇ]ǪDžÇgǺÇÉÇÚÇàÇïÇÈÈÈ&È7ÈAÈåÈ$Lйй™¹¡¹¡¹®¹À¹̹Թڹ߹å¹ç¹ç¹í¹%<}ˆrrrr€r‹r–r�rÇr¥rÕr!s&˜Õ÷2m2m\mmmmŒmœm¤m¨m¬m°m´m¼mÄmÖmämîmómnn!n'n+n=n' GK’h’h¡h»hÁh(Ü4®j®jÌjØjájÿjÿjkkkk k-k@kIkUkXk]kyk”k”k¦k¨k¨kºk¼k¼kÈkÈkÙkêkðkókókökûklll!l2l5lQlQlVlVlVlql)ðh „„„2„B„B„V„`„d„h„u„†„�„“„¢„µ„»„„фԄ߄… …,…4…>…L…]…p…}…Ž…¡…©…´…ʅ؅؅䅆† †&†,†3†<†?†d†*4AJ¿¿¿#¿/¿@¿H¿P¿c¿h¿+ �´h7h7‚7ˆ7ˆ7—7£7ª7°7°7º7Ã7Ã7É7Í7Ð7Ú7å7å7ô7ý7ý78
88888 8 8 8 8 8.8, ÚÞ¦â¦âªâ¸âºâ-¤O´öföfgg g1g5gIg[gig{g„gŠg�g¦g¯gÇg×g×gägògþgh h h$h*h2h\fyqq>qBqNq_qkqtq“qŸq¨q®q²qÀq?€�Y�Y Y§YºYÆYíY÷YZ	ZZZ%Z7ZIZcZoZxZ†ZŒZ’Z•ZœZ¤Z@X�ï3M3M?MHMQMWMcMoMwM}MƒM‹M™M¤M¬MÅM×MâMëMëMðMõMN
-NNNNN!N-N5N>N>NFNUNYNfNsNxN‚N‚N‹N’NžN©NÅNÅNÅNÍNÔNÛNâNéNðN÷NþNOOOO!O4OEOdOsOvO|OA|Kf^æ^æ}æ‹æ›æ§æ­æ¶æ½æÄæÉæÕæÙæãæãæêæíæóæóæýæçççç çB,		!,Rv~CX]›W›W£W®WÀWÆWÎWØWûWûW
XX.X;XCXQXŒXšXÒX×X×XéXöX
-YYY+Y`YgYtYzYYY‘YžY²Y¿YÄYÓYZZZ!Z#Z#Z+Z+Z8ZMZSZfZ�ZšZªZ¯ZµZÂZÍZÓZÞZÞZäZíZøZ[
[/[<[I[N[N[R[k[DàÈü	)8BK\lŒŸ½ÆÓÞééö%7Vhhˆ”ɵÚßñõýý		$	+	6	D	D	I	U	ELRa––#–+–.–<–?–F–J–M–Q–_–f–k–F8GQÎ•Î•Û•ã•æ•ô•ø•–
-––G0#').HXÏáIÞIÞSÞfÞyÞ�Þ²Þß'ßI(KQóóû			$	&	Jœ'JóPóP
Q.Q@QGQTQ`QhQsQ~Q‹QšQ£QªQ®Q®Q´QºQÒQÛQáQêQïQïQïQóQýQK8}‡û
-û
-!!(7>>CLÄ^‹6T6T\T_TmTˆT–T�TªT­T±T»TÈTèTîTèTUUUU&U(U(U8U:U:UJUJUnUuU~UˆUŒU¥U§UÌUÕUÛUâU$VM<#²“²“À“È“ГÝ“è“ò“!”#”)”N$#P#P,P5P;P@POY²¬²¬Ƭͬݬä¬ä¬ú¬­-­L­k­w­ˆ­Œ­’­ ­¤­ª­¸­¸­¸­×­ö­
-® ®#®)®7®;®A®S®S®S®S®V®[®`®f®w®{®�®Œ®�®–®¡®¡®¡®¦®¬®½®Á®Ç®Ò®Ö®Ü®å®å®å®¯PDo|“
-“
-—
-§
-½
+444 4&4+4P4V4X4g4k4z4€4ƒ4…4”4˜4§4­4°4²4Â4Æ4Ú4Ý4à4â4ñ4ô45Ä¥Ò11"1,1/1?1W1a1g1j1m1p1¬1¯1²1´1Ç1Ê1Í1Õ1Û1à1à1æ1ò1ô1ý1ý1ý1ý122222(2ˆCa’­’­¸­¼­Ä­Ê­Ó­Û­á­ä­ð­ð­®+®5®8®;®B®J®P®]®]®s®
4æï�‰�‰§‰µ‰Í‰à‰â‰â‰ì‰`FZÐ[Ð[Þ[á[î[û[\	\\\\3\E\T\\\e\g\g\o\44=PCPC^CzCzC}C—C—C�C TX	å	åå%å(-3ËËÓíõ
+HÜêahah�hŽh“hŸh¿hÅhËhØháhâhîh(Z`îÍîÍÎÎ"Î(Î0Î$ü”z”z�z¥z«z°z0ƒ‹RÀRÀhÀsÀ„À†ÀŽÀ8ž¨P^P^^^e^p^u^w^Ž^Ž^—^�^P|Œ`]`]n]u]€]…]Ž]�]£]ª]¬]¯]º]À]€Zv¢²¢²вÔ²زï²ÿ²³+³=³=³Y³^³j³p³s³z³~³‚³†³гггG´à:.ºwºwÓwÛwöwxxx"x/xCxVxtxx�x�x¦x©x³x·xÒx×xÞxæxøxûx	yy)y/y5yAyPyhylyqy„y¡y°y·y¾y¾yÅyÍyÚyÜyîyöyøyz	z	z	zzz"z-z9zGz]zŒzŒz°z°z·zÁz×zùzþzþz{
{#{E{J{J{M{l{o{{{~{�{Ÿ{Ÿ{¤{¤{¬{±{µ{Å{È{á{á{æ{æ{ù{|
+| |>|A|C|C|V|]|e|{|™|œ|ž|ž|¹|¼|Ü|÷|}	}
}}!}!}>}>}>}C}C}C}O}b}m}~}�}„}‰}‰}Ž}¦}©}Ï}Ó}î}~~~~+~1~4~9~9~I~L~O~]~f~l~o~t~t~ˆ~”~ ~°~È~í~ú~þ~.@IMPP`fx}…Œ˜µ¸ºËÒÞ÷€€€€€+€>€E€S€S€S€Z€f€p€~€‡€�€”€Ÿ€¨€·€Æ€Õ€õ€þ€h�4×à
‰
‰!‰/‰G‰R‰T‰T‰\‰@>J›	›	£	ª	·	Æ	Õ	ê	þ	
+
+5
+9
+`ˆœ33ANXXks†ˆ››Ÿ©®®´|w’ДДª”º”Ŕʔ̔Ҕä”ö”••'•)•)•)•/•H•e•u•w•w•€•Œ•XÓås*s**�*�*¦*²*¹*Ð*Ò*é*é*ë*î*ô* @8D¼{¼{Ê{Ì{î{û{û{| |ý

2
5
C
L
L
c
t
‰
Ž
¡
¥
¶
É
Ò
â
ê
ú
	A!4ÑÚÛbÛbïbcc!c4c:cCc"¬(¶h¶hÐháhóhii&i1i7iOiOi[imiwi†i‹i‹i—i—i�i�ijjj4j4jBjEjHjVj\jej�j#,ÛâCcCcQctc_c„cŠc±c$ †ŠxVxV�VŽV“V%H—¥ŽóŽó©ó«ó¼óÈóÍóÙóÙóÝóçó&Œ¬Ëþêþê ë"ë+ëGëZëZëeëjërëŒë”ë§ë±ë¶ëÂëÈëÏëÜëßëèëëëîëóëì' }�6½6½J½X½^½(Dv{v{’{”{§{¬{¼{É{Ï{Ò{Þ{)p¼Ônônô|ôŠô ô¯ô´ôÄôÆôÌôÕôÝôèôõõ!õ!õ(õ(õ(õö*h#9¸h¸hÎhÐhßhóhõhþhiii i_ilivi†i�i›iži¬i+$gl0k0k4kDkOkjk,œd‡ëë
+$1I]_ss{���ª²ÁÓÛï	$$.-|9¸Z¸ZÂZÏZàZêZñZøZ[	[![([/[9[A[H[O[W[][h[l[n[n[r[.X 6™6™U™X™]™`™i™t™‡™‘™™™�™ ™ ™¦™©™·™/D*7ÄJÄJØJèJïJýJKKKK0 
+"Ž"Ž&ŽOŽiŽ1”9qöqöyö�ö¬ö¸öÃöÑöãöñöùö÷÷N÷P÷T÷T÷_÷j÷y÷ˆ÷¨÷³÷¸÷Ê÷Ñ÷Ñ÷ã÷ä÷è÷2Xßñ~öŒöšöšö²ö¸öÁöÉöÔöÞöåöýöýöýö÷÷÷÷3P´z´zÈzØzÞzãzãzôzøzýzýz{4 $(ÐBÐBÞBòBøB5Œ¡Àr‰r‰‘‰�‰ ‰°‰½‰Á‰ʼnè‰õ‰ŠŠŠ!Š`ŠhŠ‡ŠžŠ¬Š³ŠºŠÁŠâŠèŠïŠòŠ‹6Œþj»j»t»v»Ž»œ»¹»»ð»ó»ü»*¼-¼1¼6¼B¼I¼k¼n¼p¼w¼™¼œ¼œ¼Ÿ¼ª¼±¼¸¼7@8DKK$K-K4K;KBKCKKK8<ðû,z,z@zNzYzjzrzzz‚z…z�z9,ZaEEECESEyE†EˆE:,JQøCøCüC3DCDiDwDyD;”£Äñæñæçç ç7çMçRç_çdç€çŸç¤ç¯ç´çÎçãçåçÿçèèèèèÀè<$ˆ�››¤²ÈÍ=<‰”ÒÄÒÄÜÄòÄÅÅÅÅ+Å1Å3Å8Å>H!{{{&{+{+{<{N{S{S{Y{?Lïþ�� �#�/�9�?�L�`�`�‚�‚�Ÿ�£�§�­�@ ƒ‡FFJY]A\˜«VêVêjêxê}êƒêŽê—ê—ê§ê³ê·êÏêÖêÙêÛêþêB4ˆ‘^^bl|�²²²¶C,jqFFFCFSFyFƒF…FD¸�ÇÖ%Ö%Þ%æ%ñ%&&/&C&M&Y&d&d&s&”&¹&Æ&Î&ä&ï&÷&÷&'''L'Y'a'w'‚'”'”'¢'©'»'»'É'É'Ê'Ý'E ’–¶¶ºÇËF —›ÎÎÒõùGp]ušÃšÃ´ÃÆÃâÃâÃéÃëÃëÃùÃûÃûÃÄÄ
ÄÄÄ$Ä<ÄVÄVÄVÄcÄHì<AéAéIéUéué‰é�éœé¨é¶éÅéýéýé)êFêPê_ê]êŒêŒêšêÀêÀêÏêÞêòêëëëë)ë)ë+ë+ë;ëGëGëKëPëYëkërë€ë�ëºëÃëÕëÕëÛë&íI|Xsñíñí	îîî&î)î7î:î>î@îCîFîNîQîYîmîwî�î“î–î˜îžîªîJ4•žªnªn´n¶n¾nÅn×nØnÝnK,'.nÝnÝxÝz݂ݜݡݧÝLP��À]À]Ò]Õ]à]å]ò]ý]^ ^*^3^<^?^I^M�[{p\p\Š\•\š\£\¶\Î\Ö\Þ\ë\õ\ü\]]]]]%])]2]8];]I]K]Y]Né%©ó©óÃóÊóÛóÞóÿóô ô-ôVôoô{ô‚ô„ô‡ô�ô‘ô¢ô¬ô²ôµô¸ôºôÆôÖôÞôäôñôôô÷ôõõ&õ2õ4õDõQõWõdõxõ{õ~õ†õ†õ†õŽõ•õœõœõªõÂõO œ þþP„
*>Ë>ËXË[ËnË{˗˚ˠ˩˵˷ËÍËãËçËýËÌÌÌ Ì!Ì!Ì1Ì4ÌJÌQˆ ±Ð±Ð¹ÐÄÐÔÐãÐïÐÑÑÑÑ Ñ ÑDÑSÑtьєііѢѢѴѻѻÑÍÑÒÑÚÑR,æíû*û*ÿ*+ +!+SL@O¦¦ÉÐÚÞâæððú
T ¡¥"15U äè&ä&ä*äAäCäVHú�i�i¡i®i³i¿ißiåiëiøijjjWHëùñhñhii#i/iOiUi[ihiqiri~iX ¦ª66:?CY «¯FFJY]Z<ÈÓÇÇÇ Ç#Ç/Ç1Ç=ÇDÇJÇRÇ[d^skMkMsMwMwM†M¥M´M½MÆMÞMðMùMN$N-N4N@NBN\°¥ÍŽAŽA™A©AºAÉAÔAãAðA	B B$B(B0B8BAB_BgB~B‚B†BŠB’BšB£BÁBÔBÝBîBõBõBCC]0&””””&”I”I”N”^8°(°(Ê(Î(Ñ(Ü(ù(ý())_ ëMëMôMÿMN`D»È _ _:_Q_^_^_h_ˆ_’_aL™¨QQQQQ'Q)Q7QBQKQKQLQRQb,biˆEˆEŒEÃEÓEùEFFc,RY€D€D„D»DËDñDÿDEd0ÁÉ
+‹
+‹‹]‹d‹j‹w‹Š‹–‹eYAAIT\}Œ•©¹ÌÙì
+ ,8=Z__lvŠ—°¿Òïú(=[gpu’›¨·Ìæñù	")49@f,ryˆFˆFŒFÃFÓFùFGGg$ûÃYÃYãYðYöYZh$+0NÌNÌWÌhÌz̶Ìi<$/Z—Z—h—p—x—ˆ—”—ž—Í—Ï—Õ—jô–Ï#F#F7FFFUF_FnF}F}FŸF´F¿FÆFâFïFýFGG'GGG=GSGeGpG‚G”G›G¢G¯G¶G¾GÎGÖGæGðG'H6H>HAHOHk@nz———#—&—4—8—<—?—M—T—Y—l$bBrBrUr[rjrtryryr…rŒr‘r›r¬r½rÑrÓrîrs5sKsVstsvs�s‹s–s s«sµsÀsÎsÕsãsãsíst.t9tPtUtWtat}t†tŽt©tmdÆÛcXcXqXvX†X‹XšXŸX¡X§X¶X»X½XÌX×XÛXáXnD/<®Ý®Ý·ÝÌÝØÝãÝìÝúÝÞ
ÞÞo<²½aaa,a@aIacaja€a†aŒaÂap,;
;
?
h
ƒ
¬
º
¼
q<bmÆ–Æ–Ó–Û–Þ–ì–ð–ô–———r|0¶û¶ûÇûÑûßû÷ûü$ü?üFüWüdüoüvü‡ü‘ü‘ü¢üªü¯ü¶üÃü×üâüsLš©õ†õ†‡‡ ‡+‡4‡N‡Y‡^‡g‡}‡Œ‡–‡–‡«‡t8ËQËQáQîQRR(R1R;Ru våvåzå“åvÔ,]ÉÉÑÙçú	 *8GXt|ˆ�˜˜£¥ºÆØì/<Wtvˆ‘‘££±¸ÊÊØØÝáw4¨±ƒ`ƒ`—`©`²`Ì`Ó`é`ï`ax0DL“D“D›D±D¼DËDåDíDyPZj5…5…G…N…W…e…j…m…s…v…{…†…Œ…–…zd¦»îóîóô
+ôôô!ô,ô1ô4ôDôOôUôXô[ô]ôaômô{H<JFçFçVç\çgçpçsç€ç‰ç‰ç�ç�ç˜ç|$PU'5;@}4ÕÞöö,ö:öBöMöfököröxö~¬LsºkºkÌkÛkákõkl l2lIl\lslŠl¡l¼lÀlÇlÍlÑlãlül	mm*m.m5m;m?mQmjmwm}m€mŠm?n*n*v*~*�*ž*¨*´*´*¸*À*Ä*Ý*+)+=+a+j+s+s+x+‹+�+›+±+Å+Ì+þ+1,B,R,h,|,ƒ,µ,è,ù,	-	--"-"-0-0-1-C-C-Q-U-Y-€P—§Û_Û_ñ_``/`9`;`G```k`q`u`}`�0jr®®¼ËÖÜÞÞä‚<KV0j0j9jCjSjUjˆj�j�j�j’jƒ˜ò÷÷÷÷"÷¯û„4ŠÓ&Ã&Ã>ÃFÃTÃ_ÃcÃiÃoÃ}Ò×Ã�ôùÿÃÖÃÛÃáÃøÃýÃÄÄÄ1ÄDÄWÄ\ÄkÄxĈėĤķĽÄÄÄÆÄÙÄóÄúÄÅÅÅ-Å/ÅBÅDÅWÅYÅlÅlňşťūŶÅÚÅ…H–å–åŸåºåÃåÏåÑåÓåâåâåñåóåóåøå†\ÜïãXãXóXYYYY Y5Y@YBYGYIYJYJYRY‡( ¦�ß�ߌߠ߱߳߈D¾Ë6ã6ãEãSãbãnãuã„ã�ã�ã–ã‰dÉÚÉÚÙÚôÚôÚöÚöÚöÚþÚÛÛ)Û5Û8Û:Û=Û?Û?Û?ÛKÛŠD-:DDD&D&D.DDDHDHDLDTD‹Ô
+;–r–r°r³r¶rÀrÆrÒrÙràrérörs
ssss#s*s,s6s;sDsRsXsgsssvsys�s†sœs¨s«s®s®s®s®s±s¹sÁsÍsÐsâsŒ81;¶Ì¶ÌÄÌÛÌæÌæÌñÌõÌõÌûÌ�$<�¡¡©¹ÉÛêó!-BPXmz�œ±»ÐÚïù*6BV}Œ›©µÁÒçü
);M_’ µÚñú	$;DOVakt„Ž0t|CNCNGNXNtN‰NŽN¨N�02:ýƒýƒ„„.„6„9„A„�¼Kv£T£T¿TàTòTùTUUU%U-U8UCUgUvU}U„U•U—UŸUªUµUÄUËUÎUÐUÖUÜUôUýUýUVV‘,ÑØ>ì>ìLìXìoìsìuì‰ì’8K–L–L°L³L¹LÅLÇLÖLÝLãLMM@MGMKMcMoMŒM•M•M•M¢MÛMçMóMNN!N2NENRNcN|NƒNŽNªNªN¶N¸N¸NÄNÆNÆNÒNÔNÔNäNçNçNóNÿNO"O+O6OLOZOZOZOkO„O‹O’O˜O›OçO“Pîþ>z>z^zqz}z‰zŸz¥z°z¶z»z½zÖz”4#ˆBˆB‘B¦B¦B³BÈBÈBÍB• ÌÐìì,ì5ì;ì–0ÊÒš‹š‹®‹í‹ô‹ú‹ŒŒ!Œ—0HP&ñ&ñ4ñBñJñmñ†ñ®ñ˜€6F6FJFQFYFaF}F}F‹F�F�F�FŸFŸF­F¯F¯F¿FÇFÇFÐFÜFùFùFGGG6G™Xð#R#R-RARRR]RyR|RŠR�R“R¤R¿RÃRš@$0ÉãÉã×ãÜãßãñã÷ãúãüãä›H2É2ÉGÉSÉVÉ_ÉkÉsÉ�ɟɥɨɴɜ îònänärä€ä‚ä�ä{°ðkðkll:lDlVlYlaldljlmlyl‹l˜lžl«l¶l»lÁlÓlÓlâlålïlòlþlmm#m0m;m@mFmXmXmXmXmcmcmqmž Ñõƒ=ƒ=¢=¤=µ=º=È=é=÷=>>(>/>1>1>C>I>O>Q>W>]>`>f>h>q>€>†>†>†>�>ž>ŸT…–óó*ó-ó;ó;óOó_ójópó{ó{ó{óó�ó `p„nònò‹ò‘òŸòŸò³ò¾òÂòÉòÌòÖòÝòíòñòñòñòõòó¡HïýÚºÚº» »-»8»<»@»D»N»X»X»Z»h»¢D"/\{\{j{v{{{{{Œ{‘{‘{—{£t¹ÒC)C)K)\)€)‡)˜)¼)Ê)Ø)á)ô)û)**)*?*A*W*m*m*m*o*¤X{�³:³:Ì:Ü:ô:;;;;$;$;0;<;>;>;F;¥XÞð+444;4Q4_4u4}4”4ž4»4À4Ç4Õ4Ü4ä4é4¦8w�J´J´P´N´^´|´ˆ´Š´Š´µ§8>H C C®C´C»CÑCÑCØCòCòCøC¨<u€ʤʤâ¤ð¤÷¤û¤þ¤¥	¥-¥=¥©`«¿ooo'oOouo€o�ožo£o©o«oªLÁâÁâÜâøâøâãããã"ã&ã&ã6ã8ã8ãoã«d@Õ^-^-i--†-¤-µ-Ä-Ñ-à-ô-.$.7.M.X.z.•.².×.Ü.õ.
+/*/A/Q/S/‰/à/±/¯/ÿ/0070L0f0f0�0�0¬0³0ï0ý0]1.1,1|1ƒ1ˆ1ž1¦1¦1Ë1Û1ü1B2222k2�2¥2¥2Å2Ú2û233$33x3x3x3}3}3Ž3©3·3Ï3è34444J4b4p4{4{4Ž4§4»4Ð4î4ò4ð4@5N5^5l5„5Ÿ5ª5Â5Ø5Ø5/66þ5N6\6l6‡6Ÿ6µ6·67Ò6Ð6 7 7)727G7G7X7_7t7t7…7…7ˆ7Œ7¬4
+¬t¬tºt¿tÂtÈtËtÍtÓt­,sz k k¤k©k³kÃkÃkïk®T©º ^ ^®^»^È^æ^é^ð^÷^_	____¯Ô%V£8£8Ã8Ñ8Ö8à8à8ç8õ8ø8ÿ8ÿ89999'9'93999F9T9V9V9V9Y9^9j9j9v9�9’9¥9¥9¨9«9»9°4r{û.û.//5/K/‡/•/™/±À6bÁØÁØÌØÐØôØÿØÙÙ*ÙIÙQÙiÙyÙ�Ù�ÙÁÙÃÙÃÙçÙéÙéÙ
ÚÚÚÚÚ#Ú#Ú/ÚCÚSÚ[Ú[ÚmÚtÚtÚ†Ú“ÚŸÚÂÚ²ÈÉ÷»»ÓÝîî.33EJJ\aaaahmm„„–››²â÷÷	 /’³ˆSq“O“O©O®OºOºOÆOÎOÖOáOêOòO÷OùOýOPP P'P(P(P2P´(|‚›/›/¤/«/Ë/Ò/Õ/µü‚½)ï)ï1ï5ïVïaïjï€ï”ï ï¸ïËïìï"ðDðYðbðdðlðtð‹ð“ðžð«ð¯ð³ðµðÈðÏðâðòðùðñ%ñ'ñ+ñ+ñ+ñ7ñCñCñHñQñcñjñjñ|ñ‚ñ—ñ¶€a}6Î6Î:ÎIÎIÎXÎXÎgÎgÎv΅΅ΔΨΣββÎÁÎÁÎÐÎ'Ó·¨r˜3P3PMPePzP�PŒP’P’P•PœP§P«P°P¶PÃPÉPÌPÎPÑPÔPÔPÙPèPëPýP¸LtƒŠmŠmžm«m®m²mÀmËmÔmómn
+nnn#n¹TÉÚ¶Ö¶ÖÄÖËÖÖÖùÖ×××!×&×4×:×=×C׺¼�ÈÞÔÞÔðÔöÔÕÕ!Õ+ÕCÕGÕ_ÕcÕ}Õ}Õ�Õ™Õ¤Õ­ÕºÕÃÕØÕâÕïÕøÕúÕÖ	ÖÖ4Ö7ÖOÖ_ÖpÖtÖxÖƒÖƒÖ‡Ö‡Ö‡Ö°Ö»4uu*u,u1u4u7uýGýTý`ýlýlýyýƒý“ý©ý¿ý×ýðýôýöýûýþ	þþ"þ"þ4þ:þaþÂ,z�>à>àBà|à“à“à�àÃ,fmÍ|Í|Û|á|í|ù|ý|}ÄH­»|s|s…s‘s¤s¯sÇsÉsÏsÚsÞsâsåsÅd¼Ñìsìsõs
tt4t6tLtbtut‹t¥t©tƬ޵K;K;g;i;ƒ;’;¿;É;Î;ý;<<<< <*</<2<A<F<U<n<u<u<‡<“<—<¡<ÇP,{C{C�C¤C¯CÁCÊCÕCÚCßCðCöCøCDÈ ÿöäöäåååÉŒ'FN”N”^”b”k”†”””™”œ”ª”¯”Δ֔••$•&•.•X•\•|•†•�•£•¾•Ú•ö•––!–ʰS{vþvþ’þ™þ£þ¨þ»þÆþÜþæþûþÿ
+ÿÿÿÿ,ÿJÿdÿZÿtÿŽÿ²ÿ¸ÿ¿ÿÓÿÛÿâÿéÿðÿ÷ÿ

ƒËøµï-�-�K�\�q�w�~�~�Œ�›�¢�¨�º�º�Í�Ý�ä�ó�‘‘)‘+‘C‘E‘H‘J‘J‘N‘N‘Z‘a‘a‘e‘p‘v‘‚‘Š‘¯‘ő֑í‘ô‘ú‘ý‘’ÌÜø+qqy}ˆ–ŸµÉÓßêø'D\`y‘ ¤¯»ÆÕä!MZ^k}}‹’¤¤²²³ÇÍ”1Ræüæüôüý ý+ý<ýPýhý}ý’ý›ý ý ý°ý¼ýÂýÎýåýþþþ!þ&þ,þ-þrþ΀5-‚-‚M‚Y‚e‚i‚m‚|‚�‚˜‚ž‚²‚Á‚͂ق݂à‚â‚ô‚ƒƒƒƒƒ#ƒ6ƒÏ$).øBøBC
C!C'CÐ,“šÞ½Þ½ô½¾¾¾¾#¾Ñ¨Çíyy y#y;yFyVyhylyzyƒy¥y«y«y·yÂyÐyÚyâyæyæyæyéyëyïyïyôyzzz#z%z%z;zÒLêù6í6íRí^íyí„í‘í¥í«í·íÓ åå"å0å2åÔ`(Ë5Ë5Ï5æ5ö566 676G6W6h6y6Š6«6Ì6ã6î6ù637ÕTsBsBwB“B¢B´B¹BÏBÖBèBûBC(C8C=C=C?CÖ`&d?dAdIdednd�d�d•d¨d¿dÅdÑdádádód3e×H_mó9ó9:!:':;:A:F:N:Q:]:Ø$zGGG&G4G?GÙÀnš}}}$},}A}J}J}e}k}k}u}|}‡}Œ}–}ª}¬}·}·}Æ}Î}Ù}Ý}â}æ}ñ}÷}ú}ý}~	~~#~Ú@/;j�j�ˆ�”�¡�¬�¸�Å�Ë�Î�Ñ�ã�Û0 '"„"„0„H„�„‡„‰„‰„�„Ü�k‹�…�…³…¶…Â…Â…Ä…Ñ…ß…ä…ç…ò…õ…ú…†"†-†9†C†F†H†K†M†P†U†Z†^†l†Ý<€‹@G@GNG\GaGgGsGsGyG�G“GÞ8%BÁBÁLÁTÁhÁ}Á…ÁˆÁŠÁŽÁ߀¾Ú™ñ™ñ¤ñ¬ñ·ñÂñÍñÖñìñò	òòDòZòtò|ò˜ò¤ò¯òÇòÒòÙòäòéòþòàLN]‚£‚£‹£‹£š£©£º£¾£Σå£é£é£î£á85?’’’’¢’¾’Ê’Î’Ò’Ö’Þ’æ’âœ$3737;7A7R7a7€7™7™7¥7¶7Á7Í7Í7Ú7ì7ñ78 808:8?8?8?8_88™8ž8£8ãx‚œ‰‰�§­¹ÉÌÐÙéìõø
+08AAGsx~‹ä8ãRãRóRöRûRþRSSSS SåD&ÝÝ&Ý.Ý6Ý>ÝFÝNÝVÝ^ÝfÝjÝnÝædavê“ê“ú“”””#”,”0”6”<”D”L”T”p”s”~”~”†”çH~ŒþÛþÛÜ'Ü8Ü=ÜIÜgÜmÜyÜ—Ü�Ü�Ü©Üè8—¡ðVðVWWW$W-W0W:Wé(.4R’R’[’i’x’‡’Œ’ê0²ƒ²ƒÀƒ؃„„„„ „ëDŒ™m†m†™†§†²†¶†º†¾†Â†Î†Û†Þ†î†ì€ÍéaþaþlþtþþŠþ•þžþ´þÈþÑþåþÿ"ÿ<ÿDÿ`ÿlÿwÿ�ÿšÿ¡ÿ¬ÿ±ÿÅÿí<#+#+++I+Z+j+{+Š+¤+¼+¾+À+îLÁÐ===0=E=K=Q=`=n=n=q=|=ïˆú=�=�S�w�‰�‰�›�¦�¼�¼�Ì�Î�Î�Î�ß�ê�ñ�õ�ý�‚	‚‚‚‚‚&‚ð8ÿ	²�²�À�Ë�Ö�ù�ŽŽŽñ?v|v||‹|›|¨|¹|Ç|Õ|ê|ñ|}})}1}R}f}i}q}�}’}¹}Ì}Þ}~~&~2~7~?~a~t~€~¨~òHÿ
ÖzÖzðz{{1{7{={={E{G{s{ó<:Ex[x[‰[‹[�[™[º[Ã[È[Ð[ô8JTnÍnÍ|͓ͩ͞͞ͱͱͷÍõDê÷ÉÿÉÿÛÿçÿýÿ""3CEpöX@R®~®~²~Ã~Ö~î~÷~
.0;FOXi||~÷$ôù��&�/�5�:�ø 
+NNN'N8NùDÌÙ–ã–ã¥ãªã³ãÅãÆãÚãÝãããúh-ƒS#S#{#}#†#š#�#¢#¦#Å#Ù#Ü#î#ö#ý#$%$'$F$O$O$O$T$Š$”$ž$¨$²$¹$Å$Ñ$Û$Û$Û$ü$ü$%%%%%%%%%"%$%$%)%)%)%-%H%^%i%€%‰%Ž%˜%¤%°%¼%Ï%æ%ø%ü%&&.&P&m&‹&‹&‹&‹&‹&•&ž&¥&%'û ¢¦@W@WIWVW[Wü@ÅÑÁèÁèÏèÖèÛèñèóèüèéé?éý4æÜæÜîÜöÜþÜÝÝÝÝÝþ,¾Ü¾ÜÆÜÎÜÖÜÞÜâÜæÜÿx7vvŠ�™ ³ÌÌÛñú	3:<?AAM”
+Û|ΠΠï ñ ¡¡¡'¡)¡<¡J¡U¡`¡t¡¡‚¡ˆ¡Œ¡�¡•¡™¡œ¡Ÿ¡²¡Ç¡Ï¡Ò¡ê¡ú¡ý¡¢¢¢.¢6¢9¢Q¢a¢f¢f¢n¢n¢‘¢‘¢‘¢•¢—¢—¢›¢�¢�¢¡¢£¢£¢§¢§¢§¢ª¢¬¢¬¢¯¢´¢º¢½¢Á¢Ã¢É¢Ì¢ä¢ø¢ý¢££££9£;£Q£Q£Q£V£V£X£X£]£`£†£†£†£ž£¤£»£Ê£Ù£î£¤%¤*¤*¤B¤`¤e¤e¤}¤›¤�¤�¤µ¤Ñ¤Ó¤Ó¤ë¤¥¥%¥1¥6¥6¥N¥e¥j¥j¥‚¥ž¥£¥£¥§¥¿¥Ý¥á¥ã¥ã¥ç¥ÿ¥¦!¦!¦?¦D¦D¦\¦s¦z¦¦¦—¦®¦µ¦Ã¦Ó¦÷¦þ¦§§§§?§A§A§Y§Y§~§Ÿ§¾§Ã§Ã§Û§Û§ô§	¨+¨ ¨C¨b¨ƒ¨†¨‹¨‹¨£¨º¨Ä¨É¨Ú¨Ú¨à¨ë¨©©© © ©U©c©i©€©ˆ©‘©‘©�©¡©¡©ª©¹©Â©Â©Ë©Õ©ñ©ª,ª;ªAªVª^ªjªtªtªŒªŽª™ª±ª³ªÓªÓªØªØª««%«%«1«5«5«>«M«V«V«_«e«�«Œ«¤«¦«±«É«Ë«ç«ç«ç«÷«¬¬¬2¬I¬N¬N¬f¬}¬‡¬Œ¬¢¬¢¬¹¬¹¬Å¬É¬Ï¬Ø¬ç¬ð¬ð¬ù¬­­­:­E­`­b­b­k­ƒ­Ž­¤­±­¹­Ú­Ü­ä­þ­®
+®®0®:®:®U®_®j®†®™®°®¸®Â®Â®Ë®Ï®æ®¯)¯)¯)¯=¯F¯J¯a¯™¯™¯›¯›¯·¯Á¯É¯É¯Ò¯Ö¯í¯%°6°<°S°[°h°m°m°v°z°‘°É°Ú°ã°è°è°ó°÷°±&±0±5±K±c±c±�±—±—±´±¸±Ë±Ó±Ú±å±ê±ñ±ñ±ö±)²=²[²r²|²†²†²–²À²Ð²â²î²ò²³³*³.³.³.³.³2³7³7³B³F³^³u³³„³š³²³²³Ü³æ³´´´´´ ´7´N´X´]´s´s´‹´‹´½´Ç´ä´ë´ö´û´ µ&µFµXµ`µbµ{µ‰µ¦µ¶µ¶µãµåµ¶¶-¶8¶B¶L¶S¶p¶y¶y¶¦¶¾¶Á¶Ü¶Ü¶Ü¶á¶æ¶·-·K·b·g·q·{·¨·¼·¿·Ö·Ö·Ö·Ö·à·ö·
¸¸¸¸4¸K¸U¸e¸e¸�¸•¸˜¸ª¸»¸Á¸Ø¸à¸í¸ò¸ò¸ò¸¹"¹%¹7¹P¹U¹U¹m¹„¹Ž¹ž¹ž¹º¹Î¹Ñ¹ã¹ô¹ú¹ºº&º+º+º+ºGº[º^ºpº‰ºŽºŽºŽº¦º½ºÇº×º×ºüº
»»$»;»C»L»Q»Q»Q»v»‡» »¥»¥»º»º»º»Ö»Ö»ð»÷»4½@jŽjŽ~ŽŒŽŒŽ™Ž¾ŽÉŽÍŽÛŽÞŽæŽ|�œB¥B¥_¥a¥o¥o¥}¥�¥¸¥Û¥é¥ù¥¦¦6¦V¦k¦p¦p¦p¦‚¦…¦‘¦8v€jÄjÄyćĘĜĜġġħĬ§Î¹ß¹ßÉßßßõßóßààààà.à<àKàQàYàeàkàkàràvàvàxàßá8ÔÞRÇRÇaÇwdžǤǨǮǰǰǶÇ@&2’Á’Á£ÁºÁÈÁÔÁèÁõÁüÁÿÁÂ4GP:‚:‚N‚d‚o‚t‚‚‚�‚˜‚©‚p+C££ÃÔÛìóó		 -55`‹¶Ãááîîîü	DŸ¬ss s7sBsHsNsTsjsqsvs|s
+xRls
+s
+Š
+”
+¤
 ¿
-Í
-Ô
-Ù
-Þ
-å
-÷
-÷
-ù
-Q¬Íô:¥:¥\¥a¥j¥j¥v¥…¥’¥–¥ ¥²¥²¥Â¥Î¥Ó¥Ó¥è¥ó¥û¥¦¦¦¦¦(¦6¦@¦C¦H¦U¦b¦b¦t¦R�-Mö7ö7#8&848=8=8T8e8z88’8Ÿ8¤8¨8¹8ß8ç8ë8ð8ø8
-999P9SH¾ä¾äÇäÜäåäðäòäôäååååååT¸9£~C~CŸC¢C¥CÂCæCíCøCDD&D.D4DADQDeDjDyDŒD¬DµD¬DÇDÉDÒDÉDäDæDïDæDEEEEE!E2E7EcEŠEŠE�E“E¸EÀEÆEÓEãE÷EüEFFAFMF`F€F�F€F›F F­F F»FÀFÍFÀFÛFàFàFðFðFGGGEGGGlGlGrGuGƒGˆG›G¦GµGµG¾G:HU0	ÓÓ Ó)Ó/Ó8Ó?ÓCÓIÓV(ˆŽrrrr"r-r6rW¼w¢{S{S¥S¨SÄSÖSÝSêSöST	T
TT T.T7TPTPTWT]TdTqT|T‹T‘T“T•T›T¡T¹TÂTÂTÉTäTçTùTX  CÙÉÙÉáÉåÉñÉÊÊÊ'Ê0ÊEÊnÊzÊzÊ�ʞʩÊÇÊÇÊîÊðÊðÊðÊËËË!Ë;Ë;Ë;ËMËTËTËfËlËtËYD�œ!! !,!B!\!g!g!x!ˆ!Š!´!Z¼Bú§ú§¨¨"¨.¨<¨L¨t¨—¨¦¨ѨÕ¨ݨ稩2©@©P©[©†©–©›©£©ΩÒ©ä©é©ö©ªªªª"ª[@nz88#8D8H8[8d8h8j8\ *nvv�…�®»Ì×àö	2>Vfy��²½Åêïù$3@UMpˆŒ‘‘¢¢µÇÚðòò 
 
 
     ( : A A S Y  ]@1=qàqàà„à‡à™àŸà¢à¤àªà^è�ƶr¶rÐrèrôrssss&s)s:s:s:sAsNsQsVsSs°sÇsÊsÌsãsæsèsðstt	tt&t6tDtMtTtYtYtYt_tst_D	J§J§^§†§©§¶§çΧê§ò§ú§` 	
öãöãäääa4|…>ÿ>ÿLÿUÿ\ÿeÿb8äЉÖ‰߉å‰ë‰ô‰÷‰ý‰ctRk>c>cccec~cžc¤cžc»c½cÃc½cÚcÜcÜcìcîcîcþcþcdBdd0»@»@Ä@Ö@ä@è@ì@ì@ñ@e@b½b½q½y½�½—½Ÿ½§½¬½²½´½´½º½fØNʋʋà‹ï‹ú‹Œ#Œ#Œ4ŒLŒYŒlŒxŒƒŒ“ŒµŒ·ŒÔŒáŒáŒáŒòŒ�%�.�4�;�A�F�L�P�W�b�h�’�gè[‘LL-L/L>LJLVLkLpLyL|L�L‹L‹L•L˜L®LÆLÂLÔLÙL÷LMMM M$MHMJMfM`M’M’M¢M²M¹M¿MÂMÇM×MÞMáM³Nh”	*kk�²×ü
-
G
„
Á
Ã
Ñ
ß
í
í
!>P`uŽ °ÅÞåì$0i€]6P6PJPLP\PjPtP˜P¼PÄPÖPäPîPÿPQQ"Q'Q@Q`QjQ`Q�QƒQ�QƒQ¤Q¦Q°Q¦QÇQÉQÉQÙQÙQßQâQçQýQR
-R#RFRRRyRƒRyRšRœR¦RœR½RÂRÌRÂRãRèRèRøRøRSSS$S4STS@S`S`SlSpS|SŠS“S§S»SÂSÉSÌS4Tj`AU!))1@Lgpw|‰š¬°µ·kðñ)¦¦ÄÇÊÔâí
:GR`q~‰²·½ãíóö-=Edio‹�¤¼ÏâùI_btl<5@¬u¬uÄuÓuÚußuêuÿuvvvm0	BBB(B(Bã@ã@ãGãJãVãr0	€€(€2€I€O€Q€W€s ää"ä0ä2ätL+NwNwfwhwrw›w©w«wÀwËwÑwæwu,R;N;NSNUNaNaNmNzN‡N�N”NšNœN N°N¾NÎNÙNÞNÞNåNåNðNðNOO(O*O0O2O4O6O6OAOCOKOQOSOSO_OiOlOlOlOlOwOOƒO�Ovx8ÞBÞBôBCC$C3C9C=CRC`CfClCoCyCw¨5[vlvlšl¥l­l¼lÁlÆlÖlÛlölölýlm	mm m%m'm'm.m4m:mBmPmVmXmXmhmjmjmzmÄmxMÃGÃGÝGëGHH"H/HAHVHfHmH}HˆH—H¢H¾H¾HÂHÍHÙHÛHÛHÛHáHáHäHîHîH	IIII+I>IDIMIWIdItI˜I¥I°I°IÂIÂIÂIØIåIüIJJJ J J$J$J;Jy,07d{d{m{w{x{}{zpß÷2Ä2ÄCÄOÄ]ÄiÄuÄ�Ä�Ä�Ä�Ä—Ä£ÄÀÄÜÄÜÄÜÄÜÄâÄâÄòÄôÄôÄÅ{$‚‡~ß~ß‚ß�ßÄßÐß|<7B
Œ
Œ!Œ!Œ=ŒEŒUŒ\Œ^ŒfŒ},hBhBlB€B„B„BˆB~,
-HBHBLB`BdBdBhBhN¤V9V9a9l9|9„9¥9´9Å9Î9â9ú9
-::-:5:Q:f:q:y:ž:£:­:º:Ì:å:ô:ô:;*;4;Q;\;d;;Š;Ÿ;¨;Â;Ñ;Ý;æ;ë;<<<4<0<J<U<]<h<h<h<s<s<„<„<—<©<¼<Å<Å<Ø<è<ð<ð<ð<þ<	====0=4=;=€DÛèiïiï{ï‡ï�ï·ïÂïÂïÓïãïåïð�LN];J;JDJIJPJPJoJ’J™J¨J·J¼J¾JÀJÀJ‚l£º*™*™>™J™X™g™g™�™²™½™Ç™ЙÝ™è™õ™ššš#š'š/šƒœDgyËyË�˅ˑˡˬ˻ËÇËÐËèËúËÌ8ÌDÌOÌmÌm̖̖̖̮̮̔ÌÀÌÇÌáÌáÌáÌóÌúÌúÌÍÍ„øQÆ`ä`þ`aa.a7a@aGaPaYaqa€a˜a«a´a½aËaãaöaÿabbb&b,b7b9b�G�X�€�£�²�¿�Ê�ç�ú�
ž
žžž*ž<žFžNž‡œ’µ¶N¶NÈNÊNØNäNýNOO,O1OGOCOSOsOsOˆOŠOŠOŸO¡O¡O±O³O³OÃOÃOÊOÊOÐO0PˆHLZ–K–KªK¿KÉKÝKäKéKíKóKúKýKL‰àø,ÓÓæí))GGez†°¶»àý7TqŽ«Èå <Yv“°Íê$A^{˜²Ìæ    ' �!Š<
-Z€Z€n€}€�€�€’€š€�€¥€‹(óùFãFãPãZã„ã‰ãŒ$cWcW}W™W�P¨¸Ã&Ã&Ç&Ö&Û&ç&ó&ÿ&''' '-'D'V'X'Ž@
ã)ã)ï)ö)ü)*** *%*0*�X�¢r˜r˜‡˜‘˜•˜•˜½˜à˜ë˜	™™™™$™�,›¢N½N½b½t½y½Š½�½·½‘x£½ÖàÖàßàìàûàáá=áRáXá^áeáráŽáŽá¢á¬á´á½áÕáÞáÞáóá’8¶ÀK:K:g:t:y:�:’:§:“(¿Å¦˜¦˜®˜¸˜Ë˜” £Ç»/»/É/Î/Ö/Þ/ë/ý/00030I0_0u0‡0Ž0Ž0¤0±0±0Ç0Ö0Ö0Ý0ä0ë0ð0ø0•8�§ÉÉ×ßç'-–P:J˜i˜i°i¼iÄiËiÔiÚiÝiÝiñiþijjj—øE››(›8›?›G›N›j›…›…›‹›”›�›¦›¯›±›º›Ã›Å›Å›Î›Ý›â›â›ë›ô›ù›ù›œœœœœ"œ'œ'œ'œ0œ9œ>œ>œJœSœXœoœsœsœ�œ�œ�œ�œ¡œ�˜XµÇ¢Â¢ÂªÂ¶ÂÁÂÐÂÜÂåÂìÂúÂÃFÃFÃXÃ_Ã_ÃqÃrÃvÙÈÝp2p2Œ2’2œ2Ÿ2Ÿ2¨2³2½2Ç2Ó2Õ2Û2â2å2è2ð2ü233
3333#3)32323:3C3I3R3R3R3R3X3`3c3s3š,�ˆ"Á"Á+Á7Á?ÁDÁIÁ›8_i&&4>HS[]]cœx^xk[k[�[ˆ[–[–[¢[­[Ü[Ü[ß[á[á[æ[æ[è[è[è[ê[ê[ê[ó[ö[ù[\�,ÛâŒyŒy•yŸy y¥yž$(-����*�0�Ÿ<@KÊ�Ê�à�ê�î�ó�ÿ�����  úþŽãŽã’ã³ãµã¡t.RžRžbžnžwžˆž°žÓžâžïžŸúž$Ÿ8Ÿ>Ÿ@ŸBŸHŸJŸWŸZŸbŸ¢h^tš š ¼  Ë Ë Ô ã ð ¡&¡.¡0¡B¡B¡B¡S¡`¡`¡n¡£Ht‚î{î{÷{ü{ý{||| |#|'|7|<|?|¤<ðûÕ‘Õ‘ê‘Ù‘ù‘!’¥€�¹2£2£P£a£i£|£Ž£™£¤£º£¾£Σà£è£è£2¤7¤7¤Y¤Y¤p¤�¤–¤¸¤¦˜ñ³2³2Ã2Í2Ò2×2×2æ2ë23
-33333 3*3,3;3=3I3S3a3f3u3|3~3~3~3„3§€~š6Ò6Ò?ÒBÒYÒYÒpÒ„Ò¢Ò¤Ò¼ÒÏÒÚÒëÒÓÓÓ-ÓKÓMÓeÓxÓxÓ{ÓÔÓ¨4<E5550525=5?5?5G5©X€Ò��2�B�I�Q�X�t�x�—�—�¹�¹�¹�Â�Ä�Ä�Í�Ï�Ï�Ø�Ú�Ú�ã�å�å�î�ð�ð�ù�û�û�žžžžžžžžžžžž7žGž[žkžkžmžmžvžyž~ž~ž‡ž‡žŒžŒž•ž¢ž§ž§ž°žÄžÇžÌžÌžÕžÕžãžçžÀŸª`Ui{?{?›?¦?¬?·?¹?Ê?×?Ý?Ý?é?«0;CÓAÓAÜAêAðABBB	B¬(‹‘�V�V¤V¯V¸V»VÃV­ \€ÉÐÉÐÑÐÜÐìÐûÐÑ+Ñ+Ñ@ÑHÑMÑMÑZÑpÑ|фьўÑËÑ×ÑêÑòÑ÷Ñ÷ÑÒÒÒÒÒ.Ò3Ò:Ò®°.V±Î±Î¹ÎÄÎÔÎãÎïÎÏÏ@ÏeÏjÏjÏχόόϳϻÏÃÏÕÏÐÐ!Ð)Ð.ÐCÐEÐEÐQÐQÐcÐjÐjÐ|Ð�Ð�Я8LVDvDvTvWvYv^vgvjvovwv° ~‚ææêùý±(ƒPƒPŒP–P¡P©P®P²DÐXÐXäXöXýXYYYY'Y*Y2Y³h°Æ8OYj€¤»»Ñô*´X=OÝÝÝÝ/Ý7ÝUÝYÝeÝeÝy݂݆݊ݵ\ReFpFp\pcprpyp‚p‚p˜p£p«p¿pÈpÎpÙpÙp÷p¶PFVH5H5f5l5q5�5“5˜5¶5¸5Æ5Ì5Ï5Ý5·lXo¦ð¦ðÇðÊðØðØðäðëðððóðùðüðñ	ñ	ñññññ'ñ¸Œƒ¢Ó-Ó-Ü-...W.¡.®.°.È.È./ /!/9/9/I/i/p/u//¦/­/¯/´/·/¹ˆ;Y„„„„„(„5„>„G„P„Y„m„m„x„~„€„�„—„¦„¯„¸„ՄՄׄç„í„ò„º4¼t¼tÐtßtätòtõtûtu»\•¨²Á²ÁÈÁÔÁÖÁäÁúÁ	  Â;ÂCÂK¼¨'’�’�¤�¯�´�Â�Î�Ú�ã�î�ù�Ž	ŽŽ%Ž3ŽLŽWŽ^ŽrŽ‘Ž™Ž¡Ž¬Ž®Ž¿ŽÊŽÑŽߎêŽìŽõŽÿ޽ W[‘БЫнÐÇоDt�ëë-ë7ëIëPëWëgërë€ëƒë‹ë¿<)4\u\usuvu{u~u‘u—ušuœu¦uÀ´^ÇIITu|‹˜¤³Ç×íú
.=JSSl�­àåÿ/:ZckxŠœ¼Ñäþ-9KPbtŒœ¨»»îù,8DDIXf©°µÕÜ$2\^^c~…��ž³³ÄËààññôüÁh
- öìöìí í+í7íCíLíUí^ígípíyí‚í‹í”í�í¦í¯í¸í¸íÐíÂ0¾Æ__)_E_\_h_n_t_“_ÃX’¤ 0 0®0·0Ã0É0Ì0Ñ0×0Ú0ß0ß0ì0ð0ó0ó0ù0ÄÜ‚µÖZÖZüZ[[%[%[;[B[R[a[a[f[�[„[‰[—[«[²[¼[¼[Ñ[Ñ[ç[õ[û[\\,\6\9\<\A\O\e\o\r\u\}\‹\¡\«\®\®\µ\¹\Ë\ÅLüSGSGbGpGpGzG„G¡G¬GµG»G¼GÂGÆ PTŽÝŽÝ’ݾÝÀÝÇôȶ#¶#¾#Â#Ê#Û#ê#ô#$;$M$_$_$c$r$|$�$—$›$ª$Ç$Ì$Ì$â$ê$ý$%-%:%B%G%Z%i%Š%—%¢%´%Æ%á%è%ú%ú%&&	&&&)&-&1&È8AKvv$v'v)v.v1v4v9vAvÉDz‡ÄqÄqÈqÎqÔqÚqàqæqìqòqøqþqrrÊhÖ,N3N3Y3q3‚3‘3›3¤3µ3Í3å3õ344,4A4W4_4„4‰4“4¤4¶4Í4Í4ñ455585G5O5O5n5~5˜5Ø5«5³5ž5þ56 6 696N6h6r6…6�6x6Ø6Ø6Ø677 7 727D7L7_7w7Š7’7’7 7©7´7Â7É7Ô7â7â7ç7ó7Ë4{„———— —4—;—@—H—Ì<²½ÈWÈWìWðWXX$X.X1XAXÍ8§±XWXW|W€W–WªW´W·WÇWÎLú	vìvì’ìžì¹ìÂìÏìãìéìõìÏ`L`��:�F�Q�V�d�o�~�„�•�™���£�¦�­�¸�¸�Ä�Ð Ÿ£êkêkîkùkûkÑ #GÖíÖíëíòíüí
-î
-îî+îNîPîrî‰î«îÑîóîýîïï-ïEïNïNïgïqïŠï˜ïšï¡ï¨ïáïÒ¼\‡‘á‘á­á°á¹áÂáÌáÞáááäáéáùáüáââ#â%â%â9â9â<â?âMâQâgâmâtâ{â~âƒâ˜â›â�â�â²â²â²âÄâÓ`¹Íí‡í‡	ˆˆˆˆ ˆ%ˆ1ˆ9ˆEˆIˆQˆ]ˆ_ˆ_ˆbˆnˆÔ ’–ÈVÈVÑVÞVãVÕ\"8Y8YHYMYWY_YhYkYrYuY}Y„YŒYÖd<QVoVonowo’o¡o¶o¼oÄoæoôop(p.p7p7pCp×\Æ>Æ>Ô>Þ>å>ë>ô>?
???(?E?N?W?]?e?Ø<±¼`m`mtmwm€m�m•m©mºmÙ|øBnBnxnlnˆnŽn�n¢n³n·n»nÅnÊnÚnànçnênünÚ´f�þpþpq!q*q>qHqSqUqiqvqqƒqƒqŒqžq£q·qÜqõqüqþq"r:r:roCoEoÞ@›§k&k&y&€&‡&‘&˜&š&¬&±&¾&ß,„‹¬w¬wµwºwÂwÈwÈwÍwàD -QÎQÎ_Îg΃΃ΈΈΈΕΕΡΡΫÎá4›¤í}í}ö}~~ ~&~(~(~-~â /3(C(C6CJCPCãHø"Å"Å7ÅCÅFÅOÅ[ÅcÅ€Å�ŕŘŤÅä$¦Û¦ÛªÛ®Û°ÛåDÍÚTyTybynysysy€y…y…y‹yæhC™mŒmŒ‡Œ‰Œ¢Œ®Œ²ŒÎŒéŒéŒéŒéŒéŒõŒ����%�5�?�D�D�M�]�b�b�s�x�{�‡�˜�¨�ª�ª�ª�Ç�É�É�æ�æ�ì�ø�ŽŽŽ Ž"Ž.Ž?ŽPŽRŽRŽhŽjŽjŽ€Ž€Ž†Ž’ŽžŽ¥Ž©Ž¹Ž¼ŽÈŽÙŽëŽíŽíŽíŽòŽ6�çxš´=�=�U�d�j�m�ˆ�£�£�­�¯�¯�¹�»�»�»�Æ�È�È�È�Ó�Ó�Ó�Ø�ê�è UyÞÝÞÝçÝ÷ÝÞ&Þ8Þ:ÞXÞgÞgÞ|Þ~Þ”Þ¬Þ³Þ³Þ´Þ´ÞÂÞÍÞÜÞÞÞêÞõÞß
ß ßéHŒšÔwÔwèwïwxxxx%x(x-x/x7xê8ðú³V³VÓVÞVìVäVÿVWWWWë@ƒ�——Зø—˜(˜5˜@˜b˜j˜p˜ì(>D¦š¦š³šÈšôš›í ßã¾â¾âÈâÛâàâî$§¬œxœx¥x­x³x¸xï<©´RÂRÂhÂ~Â�““˜˜ Âðd¶Î\Î\ð\ô\ü\
]
]#]+];];]G]V][]t]w]|]�]‘]œ]£]§]«]¹]Í]Ô]Þ]ä]ç]õ]û]^"^$^'^'^)^C^O^U^^^j^‹^�^›^¢^©^¯^²^À^Ö^Ö^Ö^Û^ç^ÿ^______+_A_A_A_I_U_m_q_|__†_—_—_ž_´_ñÀI3R3RGRTRZRbRoRqR‡R�R�R™R²RÀRÉRÔRßRâRéRîRöRûRS
S S&SLSOSjSjSjSnSsS�Sò4 (,u,u:u7I7M7M7V7Y7g7d!6V™V™~™†™ ™«™®™´™¼™Ð™à™í™ï™ý™
-šš.š0š0š@š�Ssæzæzðzözýz{{>{S{S{X{_{w{�{©{®{²{Á{Ã{Î{Ù{ä{ä{è{ UYÆÌÆÌÚÌéÌñÌ€éÈéÈÉÉ,É>ÉSÉYÉ^ÉdÉgÉuÉ�ɄɇɓɘɡɦɭÉÃÉÃÉÙÉ@v‚———C—f—s—€—‹—®—¶—»—Ìh—&ç&çAçKçYç_çiçiçvç|ç€çƒç…çŒç“ç�ç©ç²çÆçÛçøçèç
è
èèAèCèPèWènèzè‚è„èžè¹èÅèÒèéì¥Ü-~-~G~O~W~f~w~y~�~¢~ž~±~Á~Ç~Í~Ô~Ý~û~÷~
-1BEJPp†“𥩮¹ÄÊÍÓâóø€€!€L&5˜G˜G¢G©G´GÀGÇGÇGÍGÔGäGæGíGòGöG,‹’μμâ¼ô¼ú¼½½<0;‰‰›«Ëßåççí<w‚r¼r¼�¼†¼¡¼¸¼¼¼¼¼Á¼Á¼Ǽ\õz¦z¦ˆ¦�¦•¦œ¦¡¦ɦì¦ù¦§§.§6§=§=§@§F§,“š>à>àLàgàqàvà‰à�à¼ÐûÃEÃEïEõEF&F-F9FEFIFWFvFvF•FŸF§F®F¶FÀFÈFÜFíFþFGG#G)G1G1G5GRG 4#àà
-ààà!à'à'à,à <ÆÉÆÉÚÉíÉúÉÊÊ*Ê:Ê=ÊMÊ!4ÓÜ(2(2<2>2G2G2T2\2a2i2",W^s7s7�7ƒ7•7�7¢7¨7#DJWñéñéþéêêê*ê2ê:êBêJêTêYê$ø^˜ùõùõöö#ö2ö;öIöVöaöqö†ö›ö²öÁöáöðö÷÷&÷=÷F÷U÷q÷ˆ÷˜÷¥÷²÷½÷Ò÷á÷ó÷ø÷øøø0øBøYøbømøtøø‰ø’ø–ø%(QWnðnðyð�ðœð ð&0V^þþ  $'@	��•£±»ÌÝçñû(hr’r’{’‰’˜’£’³’Ã’Ó’ã’ò’““!“B“D“S“b“r“‚“«“«“°“)ˆ C<C<c<m<p<x<ˆ<ˆ<™<£<¶<À<Â<á<æ<ô<=
==)=3=3=3=C=*PÙéFëFëdëwëƒëžë¯ë¼ëÐë×ëÝëìë+$mrXkXk\klkqk�k,H¾ÌHXHX^XcX|X‡X�X’XžX¡X¤X®X-D&³P³P¼PÊPÊPÌPÒPÝPÝPìPíPòP.(¤ªlllll l"l/D.;žåžå¬åºåºåÂåáåûåûåÿåæ0d>S±à±àÊàÎàÚàÚàæàæàóàóàáá á2áGáQá`á`ájá1ÔTîÄîÄÅÅÅ$Å7ÅAÅGÅKÅNÅPÅVÅZÅ]ÅcÅfÅyőřŜŭÅÁÅÈÅÒÅÖÅéÅìÅøÅýÅÆÆÆ8Æ@ÆCÆTÆlÆsÆsÆ‚Æ�ƪƶÆÕÆÕÆæÆþÆÇÇÇ!Ç5Ç<ÇAÇAÇRÇfÇ}ǂǂLjǙǭÇÌÇÑÇÑÇ×ÇèÇüÇÈ È È1ÈEÈRÈWÈWÈhÈ|ȉȎȎȟȳÈÀÈÂÈÂÈÂÈÂÈÂÈÓÈëÈúÈüÈüÈ
É!É*É*É0É0É9É9ÉÂÉ24ÂËÒµÒµàµåµðµóµ÷µýµ3l 7C=C=a=d=l=€=€=’=œ=°=º=¼=Û=à=î=ü=>>#>->->;>4ˆ7U;>;>a>e>h>{>—>—>§>°>Â>Ë>Ò>×>á>ê>ô>÷>ú>ÿ>? ?0?D?R?b?b?t?5ˆXvº»º»Ñ»Ô»Ô»å»î»ø»ü»ÿ»¼¼¼ ¼ ¼%¼,¼0¼9¼9¼B¼G¼S¼e¼g¼q¼6XÉÛùdùde&e+e7eQeWedeoeveeƒe�e7X¶Èadad�dŽd“dŸd¹d¿dÌdÙdàdédídùd8$
V’V’l’¦’¼’Ê’9 X\vÙvÙzكمÙ: éíããã#ã(ã; á剉1‰C‰K‰<(7=FšFšSšhš�š¡š=0‚І¼†¼ ¼£¼£¼¬¼½¼À¼È¼>Hª¸m‡m‡ˆ‡¥‡¯‡¶‡¶‡Õ‡Ú‡Ü‡Ü‡æ‡?Ä Lò¹ò¹ººº!º&ºDºDºMºbºwº~ºŠº–º¢º²º·º¼º¼ºúʺÓºÕºÕºܺ纻»»»&»7»7»7»B»I»N»U»X»d»@XºÌº¤º¤ܤà¤æ¤é¤ô¤ô¤¥¥¥ ¥"¥(¥6¥A¨Cib•b•‹•�•𕤕®•º•º••ë•ô•ù•––
-–
-–"–7–:–=–C–J–N–}–�–‰–‹–––––›–›–ª–º–B0—Ÿ‘Û‘Û§Û³ÛÞÛàÛàÛèÛCD2¹2¹;¹C¹C¹P¹b¹j¹o¹{¹�¹ƒ¹ƒ¹ˆ¹DLÎ’Î’Þ’ì’ü’ÿ’*“N“_“¤“¨“°“EØ9"s"s&O&g&i&i&k&P0$,ËËÓéî
 Q@

-½
-½½½$½8½B½G½S½Y½[½[½`½R4ÇГ_“_±_Í_ä_ð_ö_ü_`"`S,¢©KMKMTMqMƒMƒMˆMT<R]‰õ‰õ›õ«õËõêõðõòõòõøõU`1ò1ò9òHòTòhòyò„ò�ò•ò—ò©ò»òÂòÂòÔòÕòÙòVTDU{{–­¸ÃÞ-4;FVgnW8$3*3*<*L*T*a*c*p*p*s*
\ No newline at end of file
+Ú
+í
+þ
+)EJU_lv„Š–�©Þ(-3+	+	/	I	m	˜	xz®z®Œ®›®ž®¿®â®ò®¯+¯8¯j¯w¯‡¯�¯�¯�¯¯¯²¯·¯·¯ǯͯЯ3°
@=I)í)í;íFíSí[ícíkísí{íƒí‰íX7‰îÀîÀÁÁÁ)Á0Á8Á>ÁEÁ[ÁiÁmÁrÁxÁ†Á‰ÁŽÁ‘Á‘Á¡Á²Á´ÁÆÁÈÁÕÁÚÁáÁãÁðÁòÁòÁÂÂÂÂ$Â&ÂFÂKÂRÂ[ÂaÂgÂnÂqÂqÂ�’”¿ÂáÂãÂêÂìÂøÂøÂÃÃÃ&ÃD3@
+Â
+ÂÂ0Â>ÂJÂJÂ_Ât€ŒŽ”Â@ˆ”3O3OIOkOqOvO‰O–OœOŸO§O0qãqãzããˆãŽãŽã“ã,;BZ˜Z˜i˜u˜ƒ˜Œ˜‘˜—˜8ˆ’öàöàáá>áNáPáWá_áaágáä6¿¿$¿'¿*¿>¿F¿M¿a¿d¿f¿‰¿‰¿Œ¿œ¿ž¿ž¿¡¿£¿£¿¦¿½¿Ò¿í¿÷¿À	À	À	ÀÀÀÀ/À5ÀDÀTÀhÀxÀzÀŒÀœÀ¡À¡À­À­ÀºÀ½À½ÀèÀô…¾¦—¦—¸—»—Å—Ò—Ö—Ü—Ü—ã—é—í—ñ—ø—þ—˜˜˜˜ ˜%˜,˜2˜9˜?˜F˜L˜Y˜_˜f˜o˜w˜w˜€˜�˜’˜¥˜§˜·˜¾˜É˜Ô˜ß˜ê˜õ˜™™
+™LWf˜j˜j¡j±j±jÏjÕjåjëjñjkkkk*khÝó]€]€r€�€†€–€ž€ž€¬€¶€Å€Í€Ù€è€ô€ÿ€����D<IþÌþÌÍ.Í<ÍLÍNÍPÍ[Í_Í_ÍgÍP„”*n*n9nBnLnNn`n`n`nbnjnqn”n¢n£n©n0Ž–‹_‹_¡_´_Æ_Ì_Ï_×_<Zeìpìpúpqqq#q(q,q2q\ÇÚ~~‚•¨»ÆÚë
/Je€›¶Ñì¶TK\òÂòÂÃÃÃ"Ã:Ã@ÃBÃMÃeÃqÉÃ�Ã�Ã�Ã�ÕÃX£µ�f�f¡f®f³f¿fßfåfòfÿfggg g X†˜	Ö	Ö$Ö,Ö7ÖSÖSÖ\Ö\ÖaÖrÖ{Ö†Ö†Ö’ÖŸÖ ,£ª–¾–¾ª¾¼¾Á¾Ò¾ÿ¾!ä6UŠUŠoŠrŠuŠ{Š�ЖЙдоŠÃŠÊŠÏŠÏŠàŠÒŠîŠ‹‹%‹.‹6‹G‹G‹G‹P‹W‹e‹g‹r‹x‹—‹§‹¯‹Á‹Ê‹Û‹ã‹õ‹ø‹ø‹ø‹ø‹ŒGŒ"	IžZžZ¾ZÍZÙZäZïZ[[![-[>[G[S[X[\[e[~[Š[Š[¥[·[Ê[Ø[í[ó[\ \ \+\/\3\K\Y\„\_\“\ž\µ\¹\À\Ë\Ð\Ð\Ð\å\ë\
+]]]]!]'])]9]#œ'JiÊiÊ}Ê�ʡʮʲʻÊÂÊÈÊÊÊÝÊåÊ2Ë
ËïÊBËQËbËhËwˈˎˎˮ˿ËÉËmÌ$L½½!½)½)½6½H½T½\½b½g½m½o½o½u½%<}ˆbubupu{u†u�u·u•uÅuv&˜Õ÷*p*pTpepwp„p”pœp p¤p¨p¬p´p¼pÎpÜpæpëpûpqq q#q5q' GK‚k‚k‘k®k´k(Ü4.o.oLoXoaooo�oˆoˆo™o o­oÀoÉoÕoØoÝoýopp.p0p0pFpHpHpTpTpipzp€pƒpƒp†p‹p“p¤p«p±pÂpÅpâpâpçpçpçpq)ðh 
+‡
+‡‡:‡J‡J‡^‡h‡l‡p‡}‡އ—‡›‡ª‡½‡ÇʇÙ‡܇燈(ˆ4ˆ<ˆFˆTˆeˆxˆ…ˆ–ˆ©ˆ±ˆ¼ˆÒˆàˆàˆìˆ‰‰'‰.‰4‰;‰D‰G‰l‰*4AJšÂšÂ£Â«Â·ÂÈÂÐÂØÂëÂðÂ+ �´h7h7‚7ˆ7ˆ7—7£7ª7°7°7º7Ã7Ã7É7Í7Ð7Ú7å7å7ô7ý7ý78
88888 8 8 8 8 8.8, ÚÞæãæãêãøãúã-¤O´nknk„k�k˜k©k­kÁkÓkákóküklll'l?lOlOl\ljlvl†l˜l˜lœl¢lªl´l´l¸l¼lËlÛlßlmmmmm#m5mJmTmcmhmhmtmtm‚m‹m‹mšmÈmÌmÏmÓmÚmåmûmn n.n9n;nAnNnTn[nhnnnnnun‹n�n˜n n©n°n¹n(o.@%q[,[,c,g,n,u,},‹,œ,¤,«,«,½,½,Ì,Ñ,Ý,é,ù,-"-'-/-6-G-a-u-|-�-Ž-±-¶-È-Í-ð-ô-ý-..-.4.E.F.J.l.}.’.�.ª.ª.±.Ó.ä.ê.ô./,=ƒ=ƒFƒaƒgƒgƒlƒ04ÔÝã3ã3ç3ì3ø3444"4$41(êðdd5dGdSdYdad2»üz�z�ˆ���•�›�Ã�æ�î�ö�žžž)ž2ž7žfžmžužwž€ž�ž–ž½ž½žÆžÝžìž
ŸŸ(Ÿ8ŸHŸXŸgŸwŸ‡Ÿ—Ÿ±Ÿ¶Ÿ¾Ÿ¾ŸßÑŸàŸ   + ; K e e e q w 3˜£Å›W›W³WÂWÐWàWæWæWñWüWÿWXXX#X$X0X6X\fy4q4qVqZqfqwqƒqŒq«q·qÀqÆqÊqØq?€ Y Y°Y·YÊYÖYýYZZZ!Z)Z5ZGZYZsZZˆZ–ZœZ¢Z¥Z¬Z´Z@X�ïÛOÛOçOðOùOÿOPP P%P+P3PAPLPTPmPPŠP“P“P˜P�P«P²P·P·P½PÄPÉPÕPÝPæPæPîPýPQQQ Q*Q*Q3Q:QFQQQmQmQmQuQ|QƒQŠQ‘Q˜QŸQ¦Q­Q´QºQÃQÉQÜQíQ	RRR!RA|Kfžçžç½çËçÛçççíçöçýçè	èèè#è#è*è-è3è3è=èKèRèRèRè`èB,±±ÉÔú&CX];Z;ZCZNZ`ZfZnZxZ›Z›Z­ZºZÎZÛZãZñZ,[:[r[w[w[‰[–[ª[·[¼[Ë[\\\\#\#\5\B\V\c\h\w\«\²\Ã\É\Ë\Ë\Ó\Ó\à\õ\û\]2]?]O]T]Z]g]r]x]ƒ]ƒ]‰]’]�]­]²]Ñ]Þ]ë]ð]ð]ô]
^DàÈü¡
+¡
+©
+É
+Ø
+â
+ë
+ü
+ ,?]fs‹‹˜¢ÈÛú

-:o[€…—›££±¼ÊÑÜêêïûELRan–n–{–ƒ–†–”–—–ž–¢–¥–©–·–¾–ÖF8GQ&–&–3–;–>–L–P–^–b–g–G0NNW\koqvHXÏáááááëáþáââJâ¶â¿âI(KQ;
+;
+C
+Q
+c
+l
+n
+Jœ'J“S“S­SÎSàSçSôSTTTT+T:TCTJTNTNTTTZTrT{T�TŠT�T�T�T“T�TK8}‡SS\lyy€�––›LÄ^‹ŽXŽX´X·XÅXàXîXõXYY	YY Y@YFY@Y^Y`YfY`Y~Y€Y€Y�Y’Y’Y¢Y¢YÆYÍYÖYàYäYýYÿY$Z-Z3Z:Z|ZM<#Ú–Ú–è–ð–ø–———M—O—U—N$ÃRÃRÌRÕRÛRàROY:°:°N°U°e°l°l°‚°ްµ°Ô°ó°ÿ°±±±(±,±2±@±@±@±_±~±’±§±«±±±¿±ñɱÛ±Û±Û±Û±Þ±ã±è±î±ÿ±²	²²²²)²)²)².²4²E²I²O²Z²^²d²m²m²m²¢²PDo|ããç÷
 ',18JJLQ¬Íô¢¨¢¨ĨɨÒ¨Ò¨Þ¨í¨ú¨þ¨©©©.©:©?©?©X©c©k©p©‚©‚©‚©Š©˜©¦©°©³©¸©Å©Ò©Ò©ä©R�-MF<F<s<v<„<�<�<¤<µ<Ê<Ï<â<ï<ô<ø<	=3=;=?=D=L=^=m=p=¤=SHþåþåææ%æ1æ3æ5æDæDæSæUæUæZæT¸9£ÖGÖG÷GúGýGH>HEHPH^HhH~H†HŒH™H©H½HÂHÑHäHI
II I!I*I!IIGI>IYI[I[IkIkIyIŠI�I»IâIâIèIëIJJJ+J;JOJTJcJvJ™J¥J¸JØJåJØJóJøJKøJKK%KK3K8K8KHKHK[KlKqK�KŸKÄKÄKÊKÍKÛKàKóKþK
L
LL’LU0	¡Ö¡Ö¯Ö¹Ö¿ÖÈÖÏÖÓÖÙÖV(ˆŽ$r$r0r6r­B­T­Y­f­p­~­~­ˆ­’­[@nzc:c:k:Œ:�:£:¬:°:²:\ *n– – ¡ ¥ ­ Î Û ì ÷ !!)!>!R!^!v!†!™!¡!½!Ò!Ý!ç!"""-"F"U"b"w"o"’"ª"®"³"³"Ä"Ä"×"é"ü"###'#/#/#/#A#A#J#\#c#c#u#{#¡#]@1=	ä	äää ä1ä7ä:ä<äBä^è�ÆFwFw`wxw„w”w¦wªw­w¶w¹wÊwÊwÊwÑwÞwáwæwãw@xWxZx\xsxvxxx€x�x�x™x¨x¶xÆxÔxÝxäxéxéxéxïxy_D	ºªºªΪöª«&«3«>«Z«b«j«` 	
6å6å@åSåXåa4|…††”�¤­b8äîÒŒÒŒàŒæŒïŒõŒûŒ��
�ctRk®g®gÓgÕgîghhh+h-h3h-hJhLhLh\h^h^hnhnhth²hd0CCCCLC^ClCpCtCtCyCe@êÀêÀùÀÁÁ Á'Á/Á4Á:Á<Á<ÁBÁfØNêŽêŽ���,�C�C�T�l�y�Œ�˜�£�³�Õ�×�ô�����>�E�N�T�[�a�f�l�p�w�‚�ˆ�²�gè[‘fPfP…P‡P–P¢P®PÃPÈPÑPÔPÙPãPãPíPðPQQQ,Q1QOQhQqQtQwQ|Q Q¢Q¾Q¸QêQêQúQ
+RRRR R/R6R9RSh”	*Ã
Ã
å

5]k®ñ46DR``z”±ÃÓè#8QX_{—£i€]ŽTŽT¢T¤T´TÂTÌTðTUU.U > j € ƒ • l<5@ÄuÄuÜuëuòu÷uvvv v+vm0	BBB(B(B×]×uׅץץׯ×È×È×é×ë×ë×ØØØØØ"Ø"Ø.ØBØRØZØZØlØsØs؅ؒ؞آØÁØo\Qdª‚ª‚º‚¼‚ǂ̂߂è‚í‚ò‚ƒƒƒƒ ƒpŒoަ#¦#±#¹#Ä#Ï#Ú#ã#ù#
$$*$Q$g$�$‰$Ÿ$§$Å$Ñ$Ü$ô$ÿ$%%%)%qxˆ¢aæaæ}æ‚æ…æ’æ˜æ›æ£æ¬æ»æÃæÃæÎæÎæÖæØæØæßæâæîær0	"ƒ"ƒ0ƒ:ƒQƒWƒYƒ_ƒs ^å^åbåpåråtL+Þ{Þ{ö{ø{|+|9|;|P|[|a|v|u,R;N;NSNUNaNaNmNzN‡N�N”NšNœN N°N¾NÎNÙNÞNÞNåNåNðNðNOO(O*O0O2O4O6O6OAOCOKOQOSOSO_OiOlOlOlOlOwOOƒO�Ovx86G6GLGiGpG|G‹G‘G•GªG¸G¾GÄGÇGÑGw¨5[qq*q5q=qLqQqVqfqkq†q†q�q“q™q¡q¯qµq·q·q¾qÄqÊqÒqàqæqèqèqøqúqúq
+rTrxMSJSJmJ{J”JŸJ¶JÃJÕJêJúJKKK,K7KSKSKWKbKnKpKpKpKvKvKyKƒKƒKžK«K«K°KÀKÓKÙKâKìKüKL8LILTLTLfLfLfL|LŒL£L¬L²LÂLÆLÆLËLËLãLy,07œ{œ{¥{¯{°{µ{zpß÷ºÇºÇËÇ×ÇåÇñÇýÇ	È	ÈÈÈ"È.ÈKÈgÈgÈgÈgÈmÈmÈ}ÈÈȨÈ{$‚‡žàžà¢à¯àåàñà|<7BMŒMŒaŒaŒ}Œ…Œ•ŒœŒžŒ¦Œ},hBhBlB€B„B„BˆB~,
+HBHBLB`BdBdBhBhN¤¦=¦=±=¼=Ì=Ô=õ=>>>2>J>Z>m>}>…>¡>¶>Á>Ë>ð>õ>ÿ>??7?F?F?m?|?†?£?®?¶?Ñ?Ü?ñ?ú?@#@/@8@=@Z@g@m@†@‚@œ@§@¯@º@º@º@Å@Å@Ö@Ö@é@û@AAA*A:ABABABAPA[AbAmAnA‚A†A�A€DÛèóóó ó5óOóZóZókó{ó}ó©ó�LN]ãLãLìLñLøLøLM:MAMPM_MdMfMhMhM‚l£ºjœjœ~œŠœ˜œ§œ§œÏœòœýœ�� �,�9�U�[�_�g�k�s�ƒœDg	Ï	ÏÏÏ!Ï1Ï<ÏKÏWÏ`Ï|ÏŽÏ£ÏÌÏØÏãÏÐÐ)Ð+Ð+Ð+ÐCÐCÐUÐ]ÐxÐxÐxЊББУбЄøQ6eTeneˆeŒeže§e°e·eÀeÉeáeðeff$f-f;fSfffofƒf‡f�f–fœf§f©f¬f´fÉfÞfáfìfòfúfþfggg#g)g9g?gQgXgZgªg…<ÈÓ33;3K3P3v3œ3Â3É3Ð3Õ3á3†lýz z Ž — ¨ Рó ¡¡¡7¡J¡]¡]¡m¡m¡z¡Œ¡–¡ž¡‡œ’µSS S"S0S2S2i22•2§2®2®2Ä2Ñ2Ñ2ç2ö2ö2ý23333•8�§‘‘Ÿ§¯Ðæïõ–P:J°i°iÈiÔiÜiãiìiòiõiõi	jjj j+j—øEv›v›�› ›§›¯›¶›Ò›í›í›ó›ü›œœœœ"œ+œ-œ-œ6œEœJœJœSœ\œaœaœjœsœxœxœ�œŠœ�œ�œ�œ˜œ¡œ¦œ¦œ²œ»œÀœ×œÛœÛœõœ÷œ÷œ�	�{�˜XµÇ*Æ*Æ2Æ>ÆIÆXÆdÆmÆuƄơÆÒÆÒÆäÆëÆëÆýÆþÆÇ™ÈÝp2p2Œ2’2œ2Ÿ2Ÿ2¨2³2½2Ç2Ó2Õ2Û2â2å2è2ð2ü233
3333#3)32323:3C3I3R3R3R3R3X3`3c3s3š,�ˆªÄªÄ³Ä¿ÄÇÄÌÄÑÄ›8_inn|†�›£¥¥«œx^x^^)^0^>^>^J^U^‡^‡^Š^Œ^Œ^‘^‘^“^“^“^•^•^•^ž^¡^¤^±^�,Ûâ¼y¼yÅyÏyÐyÕyž$(-"’"’0’8’J’P’Ÿ<@Kê’ê’“
+“““ “$“(“,“6“  úþÎäÎäÒäóäõä¡t.¢¡¢¡²¡¾¡Ç¡Ø¡¢#¢2¢?¢S¢J¢t¢ˆ¢Ž¢�¢’¢˜¢š¢§¢ª¢²¢¢h^tò£ò£¤¤#¤#¤,¤;¤H¤w¤‚¤ФŒ¤ž¤ž¤ž¤¯¤¼¤¼¤ʤ£Ht‚†€†€�€”€•€¤€¬€±€·€»€¿€Õ€Ú€Ý€¤<ðû’’*’’9’a’¥€�¹’¦’¦°¦Á¦ɦܦî¦ù¦§§§.§D§L§L§š§Ÿ§Ÿ§Á§Á§اø§þ§ ¨¦˜ñë4ë4û45
+5555#5<5E5P5R5S5S5_5j5l5{5}5‰5“5¡5¦5µ5¼5¾5¾5¾5Ä5§€~š.Ó.Ó7Ó:ÓQÓQÓhÓ|ӚӜӴÓÇÓÒÓãÓúÓúÓÔ%ÔCÔEÔ]ÔpÔpÔsÔÌÔ¨4<E5550525=5?5?5G5©X€Ò~�~�š�ª�±�¹�À�Ü�à�ÿ�ÿ�!ž!ž!ž*ž,ž,ž5ž7ž7ž@žBžBžKžMžMžVžXžXžažcžcžlžnžnžwžwžzžžžž‚ž…ž…žŸž¯žÆžÙžÙžÛžÛžäžçžìžìžõžõžúžúžŸŸŸŸŸ2Ÿ5Ÿ:Ÿ:ŸCŸCŸQŸUŸ. ª`UiBB#B.B4B?BABRB_BeBeBqB«0;C[D[DdDrDxDŠDŒDŒD‘D¬(‹‘˜V˜V¬V·VÀVÃVËV­ \€YÔYÔaÔlÔ|Ô‹Ô—Ô»Ô»ÔÐÔØÔÝÔÝÔêÔÕÕÕÕ.Õ[ÕgÕzÕ‚Õ‡Õ‡Õ“Õ“Õ¥Õ¬Õ¬Õ¾ÕÃÕÊÕ®°.VAÒAÒIÒTÒdÒsÒÒ£Ò£ÒÐÒõÒúÒúÒÓÓÓÓCÓKÓSÓeÓ’ÓžÓ±Ó¹Ó¾ÓÓÓÕÓÕÓáÓáÓóÓúÓúÓÔÔÔ¯8LV\v\vlvovqvvvv‚v‡v�v° ~‚..2AE±(#S#S,S6SASISNS²DàXàXôXY
YYY Y'Y7Y:YBY³h°Æ^^€—¡µËï		 B\\oo{´X=OÞÞ Þ"Þ7Þ?Þ`ÞgÞtÞtދޔޘޜ޵\ReÖtÖtìtótu	uuu,u7u?uSu\ubumumu‹u¶PFVH5H5f5l5q5�5“5˜5¶5¸5Æ5Ì5Ï5Ý5·lXoæñæñò
+òòò$ò+ò0ò3ò9ò<òDòIòIòNòQòSòWògò¸Œƒ¢Û/Û/ä/0:0e0´0Á0Ã0Û0Û0*17191Q1Q1a1�1ˆ1�1—1Ä1Ë1Í1Ò1Õ1¹ˆ;YE„E„N„X„X„h„u„~„‡„�„™„­„­„¸„¾„À„τׄæ„ï„ø„………*…0…5…º4ÔtÔtèt÷tüt
+u
uuu»\•¨:Å:ÅPÅ\Å^ÅlłőŢŨŨÅÃÅËÅÓż¨'²�²�Ä�Ï�Ô�â�î�ú�‘‘‘$‘)‘7‘E‘S‘r‘}‘„‘˜‘´‘¼‘đϑёâ‘í‘ô‘’
’’’"’½ W[!Ô!Ô;ÔMÔWÔ¾Dt�±î±îÅîÏîáîèîïîÿî
+ïïï#ï¿<)4tutu‹uŽu“u–u©u¯u²u´u¾uÀ´^Çááì
#0=L`p†“¦ÇÖãìì(I|�›¯ËÖöÿ&8Xm€š¯ÉÕçìþ(8DWWŠ• ºÈÔààåõ		F	M	R	r	y	ž	ž	Á	Ð	ú	ü	ü	
+
+#
+.
+.
+<
+Q
+Q
+b
+i
+~
+~
+�
+�
+’
+š
+Áh
+ >î>îLîgîsîî‹î”î�î¦î¯î¸îÁîÊîÓîÜîåîîî÷îïïïÂ0¾ÆÃaÃaáaýab b&b,bKbÃX’¤ 0 0®0·0Ã0É0Ì0Ñ0×0Ú0ß0ß0ì0ð0ó0ó0ù0ÄÜ‚µ6_6_\_d_p_…_…_›_£_³_Â_Â_Ç_å_è_í_û_`` ` `5`5`K`Y`_`g`r`�`š`�` `¥`³`É`Ó`Ö`Ù`á`ï`aaaaaa/aÅLüãIãIòIJJ
+JJ1JD›››0›\›p›í ßãþãþãää äî$§¬ÄxÄxÍxÕxÛxàxï<©´ÚÅÚÅðÅÆÆÆÆ Æ Æ(Æðd¶6a6aXa\adauaua‹a”a¤a¤a°a¿aÄaàaãaèaíaýabbbb%b9b@bJbPbSbabgbwbŽb�b“b“b•b¯b»bÁbÊbÖb÷bûbccccc,cBcBcBcGcSckcoczc}c€c†c‰c—c­c­c­cµcÁcÙcÝcècëcòcdd
+d dñÀI;R;ROR\RbRjRwRyR�R—R—R¡RºRÈRÑRÜRçRêRñRöRþRSSS'S.STSWSrSrSrSvS{S‰Sò4 (DuDuRuTuYubueujupuóT¾C¾CÙCßCøCDD D0D3D@DmDpDtDDŠDœD¤D·DÅDÔDæDïDüDE!E(E9E9EEEPEPEcEfEvEƒEŒEœEžE±E»EËEÔEäEðEðEðEöEýEFF
+F/Fô$N“óDóDûDEE E3EHEaEzE‚E¡E´EÈEFFFõXÂÔ²o²o»oËoËoÌoÑoÑoÛoîoþoppp'p)p)pöhWF×F×^×g×m×v×~ׇ×�ההלססש׷׷׽×Ä×Ä×Ú×â×é×ð×÷ר	Ø Ø/Ø1ØEØm؃Ø�ØÓØ»ØìØÙ+Ù5ÙOÙRÙVÙ[ÙdÙm٤ٕÙ�ٵٰÙËÙáÙïÙùÙùÙÚÚ Ú4Ú=ÚTÚXÚ_ÚaÚbÚiÚiÚyÚ÷@ãïÜyÜyêyìyzzz z%zø0W_”v”v¢v±v¸vÈvÌvÏvÕvù, ) )2)=)P)e)n)ú`y�³^³^Ï^ô^ù^____$_3_;_G_[_c_o_s_s_‡_û4W`à5à5ö5ø56666'6ütJc>]>]L]U]Z]s]w]|]“]¡]¡]½]Ö]Ü]ê]ê]ö]ÿ]^^^ý<ªµ‹M‹M¢M¬M´MÃMÑM×MäMþ,›¢ÆáÆáÏáÙáÿáÿáâÿ”Z{AAIbq~�—°¾Ðßî +7FUgzƒ‘˜˜¦¯X®®ÂÌÓâûû'<>ACCCKP­½äxäxùx	yyyyy"y'y'y/yH¨¶ùù)2I`n~ˆŸ±¸Ä,ñøcdcd}d�d›d¡d¯d8<Fê�ê�þ�‚ ‚)‚,‚4‚<›¦dxdxxx†x‘xœx¤x¬x´x·x¿x<juò™ò™š
šš š5šAšGšMš(g’„’„¬„Þ„………….…?…G…U…W…Z…]…]…j…|……„…Ž…”…¥…¨…­…­…º…Á…Ó…Ö…Û…â…ô…÷…ù…†††††0†3†5†<†N†Q†S†Y†Y†Y†Y†^†^†e†l†s†y†|†	‡8MWò¾ò¾ü¾¿¿*¿2¿5¿7¿;¿	PÓã"Œ"Œ6Œ?ŒXŒiŒŽŒ‘Œ«ŒµŒÂŒÂŒÄŒÌŒ
+H¾Ì4y4yByNySySy`yrywywy}yHao(6(6B6S6c6f6h6u6y6|6†6l:Qé÷é÷ô÷øø-ø?øKøYøbøqøƒø¢ø´øÙøâø÷øþøþøùùù
–QÛQÛsÛvÛ}Û“Û¦ÛªÛ¶ÛÔÛÔÛáÛçÛïÛûÛÜÜÜ
ÜÜÜ%Ü,Ü3Ü<ÜHÜZÜ_ÜbÜiÜiÜ{܋ܒܟܾÜÔÜçÜëÜ
+Ý"ÝVÝVÝ]ÝfÝlÝnÝnÝnÝnÝnÝnÝn݂݉݌ݜݢݪݰݲݲݹÝÂÝÄÝÄÝÄÝÇÝÉÝÉÝÐÝÓÝÙÝÙÝÜÝáÝìÝÞÞ
Þ"Þ%ÞEÞEÞJÞJÞJÞQÞZÞbÞbÞbÞmÞyÞ|Þ#ßxÇáÖÖòõú
*5<Ckks“ž££«×âççëúœ`ƒÜvÜv÷vþv	wwwww w3w8w;w@wIwIwIwMwWwfwnwƒwŽw¤w¨wªw¿wÃwÃwÃwÍwŒp�ˆ6ˆ6¦6©6Á6Á6Ã6Ô6á6æ6ì6	77777 7;7>7I7M7M7V7Y7g7d!6¾™¾™æ™î™šššš$š8šHšUšWšešrš‚š–š˜š˜š¨š�Ss~~ˆŽ•›´Ùííòù€*€C€H€L€[€]€h€s€~€~€‚€ UY¾Í¾ÍÒÍáÍéÍ€qÌqÌ�̵̞ÌÇÌÜÌâÌçÌíÌðÌþÌ
+Í
ÍÍÍ!Í*Í/Í6ÍLÍLÍbÍ@v‚RšRš[šƒš¦š³šÀšËšîšöšûšÌh—fèfè�è‹è™èŸè©è©è¶è¼èÀèÃèÅèÌèÓèÝèéèòèéé;é+éPéPé^é†éˆé•éœé³é¿éÇéÉéãéþé
+êêPêì¥Üe~e~~‡~�~ž~¯~±~È~Ú~Ö~é~ù~ÿ~3/BRiz}‚ˆ¨¾ËÒÝáæñü€€€€+€0€<€G€Y€L&5˜G˜G¢G©G´GÀGÇGÇGÍGÔGäGæGíGòGöG,‹’¦½¦½º½Ì½Ò½Ø½Þ½<0;99K[{�•——�<w‚ú¿ú¿	ÀÀ)À@ÀDÀDÀIÀIÀOÀ\õê©ê©ø©ý©ªªª9ª\ªiªvª�ªžª¦ª­ª­ª°ª¶ª,“šnáná|á—á¤á©á¼áÂá¼ÐûSHSHH…HžH¶H½HÉHÕHÙHçHII%I/I7I>IFIPIXIlI}IŽI£IªI³I¹IÁIÁIÅIâI 4#™ã™ã¢ã§ã°ã¹ã¿ã¿ãÄã <¶Ê¶ÊÊÊÝÊêÊöÊþÊË*Ë-Ë=Ë!4ÓÜ(2(2<2>2G2G2T2\2a2i2",W^»9»9É9Ë9Ý9å9ê9ð9#DJW‰í‰í–í¤í¬í´íÂíÊíÒíÚíâíìíñí$ø^˜‰ù‰ù‘ù¡ù³ùÂùËùÙùçùóùúú.úEúTútúƒú–ú¤ú¹úÐúÙúèúûû+û8ûFûRûgûvûˆû�û™û¥û³ûÈûÚûñûúûüüü!ü*ü.ü%(QW®ñ®ñ¹ñÍñÜñàñ&0V^FFOY_eggl'@	))=KYct…�™£©(h’•’•›•©•¸•ÕÓ•ã•ó•––!–1–A–b–d–s–‚–’–¢–ΖΖÓ–)ˆ £>£>Ã>Í>Ð>Ø>è>è>ü>??&?(?G?L?]?k?v?‡?•?Ÿ?Ÿ?Ÿ?¯?*PÙéŽìŽì¬ì¿ìËìæì÷ìíí í%í4í+$mrpkpktk„k‰k™k,H¾ÌXXXXnXsXŒX—X X¢X®X±X´X¾X-D&SSSS\SjSjSlSrS}S}SŒS�S’S.(¤ªúnúnþn	oooo/D.;ÞæÞæìæúæúæç!ç;ç;ç?çEç0d>SIäIäbäfärärä~ä~ä‹ä‹äšä©ä¸äÊäßäéäøäøäå1ÔTÞÅÞÅüÅÆÆÆ'Æ1Æ7Æ;Æ>Æ@ÆFÆJÆMÆSÆVÆiÆ�ƉƌÆ�ƱƸÆÂÆÆÆÙÆÜÆèÆíÆóÆûÆÇ(Ç0Ç3ÇDÇ\ÇcÇcÇrÇ€ÇšÇ§ÇÆÇÆÇ×ÇïÇüÇÈÈÈ&È-È2È2ÈCÈWÈnÈsÈsÈyȊȞȽÈÂÈÂÈÈÈÙÈíÈÉÉÉ"É6ÉCÉHÉHÉYÉmÉzÉÉÉ�ɤɱɳɳɳɳɳÉÄÉÜÉëÉíÉíÉþÉÊÊÊ!Ê!Ê*Ê*ʳÊ24ÂËZ¹Z¹h¹m¹x¹{¹¹…¹3l 7³?³?Ñ?Ô?Ü?ð?ð?@@&@0@2@Q@V@g@u@€@‘@Ÿ@©@©@·@4ˆ7U»@»@á@å@è@ø@AA$A-ABAKARAWAaAjAtAwAzAA—A¥A¶AÐAÞAîAîAB5ˆXvB¿B¿Y¿\¿\¿m¿v¿€¿„¿‡¿”¿�¿�¿§¿§¿­¿´¿¸¿Á¿Á¿Ê¿Ï¿Û¿í¿ï¿ù¿6XÉÛÁgÁgágîgógÿg h%h2h=hDhMhQh]h7X¶È!g!gAgNgSg_gg…g’gŸg¦g¯g³g¿g8$
–’–’¬’æ’““9 X\~Ú~Ú‚Ú‹Ú�Ú: éíFäFäPäcähä; áå]‰]‰q‰ƒ‰‹‰<(7=®š®š»šÐšõš	›=0‚Š^½^½x½{½{½„½•½˜½ ½>Hª¸­‡­‡È‡å‡ï‡ö‡ö‡ˆˆˆˆ&ˆ?Ä Lz½z½н›½�½©½®½̽̽Õ½ê½ÿ½¾¾¾*¾:¾?¾D¾D¾K¾R¾[¾]¾]¾d¾o¾޾޾ž¾¥¾®¾¿¾¿¾¿¾ʾѾÖ¾ݾà¾ì¾@XºÌ"¨"¨D¨H¨N¨Q¨\¨\¨m¨z¨„¨‡¨Ѝ�¨ž¨A¨Ciš˜š˜ØȘÒ˜ܘæ˜ò˜ò˜ú˜#™,™1™:™=™B™B™Z™o™r™u™{™‚™†™µ™¹™Á™ÙΙΙÓ™Ó™â™ò™B0—Ÿ)ß)ß?ßKßvßxßx߀ßCDº¼º¼ü˼˼ؼê¼ò¼÷¼½	½½½½DL““&“4“D“J“u“™“ª“õ“ù“”EØ9vv,v3v7v;vFvWvevyv…vˆv‘vœv³v¸vÁvÄvÎvÖvÙvÜvðvww&w-w6w9w;wKwNwPwWwgwkwrwuw›w¢w´wF<ðûí‰í‰ŠŠŠ0Š4ŠDŠQŠG �…ÑÕÑÕëÕýÕÖHH -^æ^ærætæ{æ‰æ±æ¶æÍæÒæÒæÖæÞæI@EQLKLK\KiKpK~K…KŒK•KJHâðþþ%5JQZwz„KPSQSQgQ‰Q‰Q•Q Q¤Q«Q¶QºQÂQÃQËQLtc|ªtªt²t¾tÔtßtítûtu4uIuNuUuZuZu\uM ÍÑÀXÀXÉXÛXNt/©©´ÃÒàûAbs–©ºÃÐç348Oh„š;';'C'a'r'‚'‰'­'¾'Ñ'Ø'é'(((('(?(A(A(C(P0$,cck…�¥±ºÄQ@
’À’À›À£À¬ÀÀÀÊÀÏÀÛÀáÀãÀãÀèÀR4ÇÐKbKbib…bœb¨b®b´b»bÚbS,¢©KMKMTMqMƒMƒMˆMT<R]ùù+ù;ù[ùzù€ù‚ù‚ùˆùU`ÉõÉõÑõàõìõööö%ö-ö/öAöSöZöZölömöqöVTDU5@Kf�šµ¼ÃÎÞïöW8$,,$,4,<,I,K,X,X,[,
\ No newline at end of file
diff --git a/Kernel/KernelA.HPP b/Kernel/KernelA.HPP
index 8c84531..9990246 100644
--- a/Kernel/KernelA.HPP
+++ b/Kernel/KernelA.HPP
@@ -399,6 +399,7 @@ class CPatchTableAbsAddr
 #define IET_IMM_U32		9
 #define IET_REL_I64		10
 #define IET_IMM_I64		11
+#define IEF_IMM_NOT_REL			1
 //reserved
 #define IET_REL32_EXPORT	16
 #define IET_IMM32_EXPORT	17
@@ -896,46 +897,47 @@ public class CHashGlblVar:CHashSrcSym
 #define DOCT_NEW_LINE		1
 #define DOCT_SOFT_NEW_LINE	2
 #define DOCT_CURSOR		3
-#define DOCT_TAB		4
-#define DOCT_CLEAR		5
-#define DOCT_PAGE_BREAK		6
-#define DOCT_PAGE_LEN		7
-#define DOCT_LEFT_MARGIN	8
-#define DOCT_RIGHT_MARGIN	9
-#define DOCT_HEADER		10
-#define DOCT_FOOTER		11
-#define DOCT_INDENT		12
-#define DOCT_FOREGROUND		13
-#define DOCT_BACKGROUND		14
-#define DOCT_DFT_FOREGROUND	15
-#define DOCT_DFT_BACKGROUND	16
-#define DOCT_PMT		17
-#define DOCT_WORD_WRAP		18
-#define DOCT_UNDERLINE		19
-#define DOCT_INVERT		20
-#define DOCT_BLINK		21
-#define DOCT_SHIFTED_X		22
-#define DOCT_SHIFTED_Y		23
-#define DOCT_CURSOR_MOVEMENT	24
-#define DOCT_ANCHOR		25
-#define DOCT_LINK		26
-#define DOCT_BUTTON		27
-#define DOCT_DATA		28
-#define DOCT_CHECK_BOX		29
-#define DOCT_LST		30
-#define DOCT_MACRO		31
-#define DOCT_MENU_VAL		32
-#define DOCT_HEX_ED		33
-#define DOCT_TREE		34
-#define DOCT_SPRITE		35
-#define DOCT_INS_BIN		36
-#define DOCT_INS_BIN_SIZE	37
-#define DOCT_SONG		38
-#define DOCT_HIGHLIGHT		39
-#define DOCT_HTML_CODE		40
-#define DOCT_ERROR		41
+#define DOCT_MARKER		4
+#define DOCT_TAB		5
+#define DOCT_CLEAR		6
+#define DOCT_PAGE_BREAK		7
+#define DOCT_PAGE_LEN		8
+#define DOCT_LEFT_MARGIN	9
+#define DOCT_RIGHT_MARGIN	10
+#define DOCT_HEADER		11
+#define DOCT_FOOTER		12
+#define DOCT_INDENT		13
+#define DOCT_FOREGROUND		14
+#define DOCT_BACKGROUND		15
+#define DOCT_DFT_FOREGROUND	16
+#define DOCT_DFT_BACKGROUND	17
+#define DOCT_PMT		18
+#define DOCT_WORD_WRAP		19
+#define DOCT_UNDERLINE		20
+#define DOCT_INVERT		21
+#define DOCT_BLINK		22
+#define DOCT_SHIFTED_X		23
+#define DOCT_SHIFTED_Y		24
+#define DOCT_CURSOR_MOVEMENT	25
+#define DOCT_ANCHOR		26
+#define DOCT_LINK		27
+#define DOCT_BUTTON		28
+#define DOCT_DATA		29
+#define DOCT_CHECK_BOX		30
+#define DOCT_LST		31
+#define DOCT_MACRO		32
+#define DOCT_MENU_VAL		33
+#define DOCT_HEX_ED		34
+#define DOCT_TREE		35
+#define DOCT_SPRITE		36
+#define DOCT_INS_BIN		37
+#define DOCT_INS_BIN_SIZE	38
+#define DOCT_SONG		39
+#define DOCT_HIGHLIGHT		40
+#define DOCT_HTML_CODE		41
+#define DOCT_ERROR		42
 
-#define DOCT_NUM_TYPES		42
+#define DOCT_NUM_TYPES		43
 
 //CDocEntry.type flags upper bits
 #define DOCET_BLINK		ATTRF_BLINK
@@ -1015,6 +1017,8 @@ public class CHashGlblVar:CHashSrcSym
 #define DOCEF_FILTER_SKIP	0x200000000000000
 #define DOCEF_NO_CLICK_ON	0x400000000000000
 #define DOCEF_DONT_DRAW		0x800000000000000 //only works on sprites
+#define DOCEF_DFT_LEN		0x1000000000000000
+#define DOCEF_DFT_RAW_TYPE	0x2000000000000000
 
 #define DOCEG_HAS_ALLOC		(DOCEF_TAG|DOCEF_AUX_STR|DOCEF_DEFINE|\
   DOCEF_HTML_LINK|DOCEF_LEFT_MACRO|DOCEF_RIGHT_MACRO|DOCEF_BIN_PTR_LINK|\
@@ -1099,7 +1103,9 @@ public class CHashGlblVar:CHashSrcSym
 #define DOCEf_FILTER_SKIP	57
 #define DOCEf_NO_CLICK_ON	58
 #define DOCEf_DONT_DRAW		59 //only works on sprites
-#define DOCEf_NUM_FLAGS		60
+#define DOCEf_DFT_LEN		60
+#define DOCEf_DFT_RAW_TYPE	61
+#define DOCEf_NUM_FLAGS		62
 
 public class CDocBin
 {
@@ -1213,9 +1219,9 @@ public class CDocEntry:CDocEntryBase
 
 class CEdFindText
 {
-  U8	find_text[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,"
+  U8	find_text[STR_LEN] fmtstr "$$DA-P,"
 	"A=\"Find        :%s\"$$\n",
-	replace_text[STR_LEN] fmtstr "$$DA-P,LEN=STR_LEN-1,"
+	replace_text[STR_LEN] fmtstr "$$DA-P,"
 	"A=\"Replace     :%s\"$$\n";
   Bool	replace			fmtstr "$$CB,\"Replace\"$$\n",
 	scan_fwd		fmtstr "$$CB,\"Fwd\"$$\n",
@@ -1556,18 +1562,27 @@ public class CAutoCompleteDictGlbls
 #define RT_F64		14
 #define RT_UF64		15 //Fictitious
 #define RT_NUM_IT	16
-#define RT_MASK		0x0F
+#define RTF_UNSIGNED	1
+#define RTG_MASK	0xFF
 
-#define TY_NULL			0x00
-#define TY_IMM			0x10
-#define TY_REG			0x20
-#define TY_DISP			0x30
-#define TY_SIB			0x40
-#define TY_RIP_DISP32		0x50
-//Not implemented.  Requires storage for glblvar struct in intermediate code.
-#define TY_RIP_DISP32_IMPORT	0x60
-#define TY_STK			0x70
-#define TY_MASK			0xF0
+#define MDf_STK		8
+#define MDf_IMM		9
+#define MDf_REG		10
+#define MDf_DISP	11
+#define MDf_SIB		12
+#define MDf_RIP_DISP32	13
+
+#define MDF_NULL	0x0000
+#define MDF_STK		0x0100
+#define MDF_IMM		0x0200
+#define MDF_REG		0x0400
+#define MDF_DISP	0x0800
+#define MDF_SIB		0x1000
+#define MDF_RIP_DISP32	0x2000
+#define MDG_MASK	0xFF00
+#define MDG_REG_DISP_SIB	(MDF_REG|MDF_DISP|MDF_SIB)
+#define MDG_DISP_SIB_RIP	(MDF_DISP|MDF_SIB|MDF_RIP_DISP32)
+#define MDG_REG_DISP_SIB_RIP	(MDF_REG|MDG_DISP_SIB_RIP)
 
 #define ICF_R_TO_F64			0x000000001
 #define ICF_R_TO_INT			0x000000002
@@ -1580,37 +1595,42 @@ public class CAutoCompleteDictGlbls
 #define ICF_USE_INT			0x000000100 //highest priority
 #define ICF_NO_DEPEND_RESULT		0x000000200
 #define ICF_CODE_FINAL			0x000000400
-#define ICF_NOT_ADDR			0x000000800
+#define ICF_BY_VAL			0x000000800 //By value, not ref.
 #define ICF_SHORT_JMP			0x000001000
-#define ICF_A1_FIRST			0x000002000
-#define ICF_PUSH_RESULT			0x000004000
-#define ICF_PASS_TRACE			0x000008000
-#define ICF_R_WAS_STK			0x000010000
-#define ICF_A1_WAS_STK			0x000020000
-#define ICF_A2_WAS_STK			0x000040000
-#define ICF_PUSH_CMP			0x000080000 //for 50hash_table);
 
 #help_index "Misc"
 //Use Dbg("Type 'G;'"); to debug before window mgr is running.
-public F64 os_version=4.040;//Operating system version.
+public F64 os_version=4.050;//Operating system version.
 
 #include "/Adam/MakeAdam"