From 2d56cda5f3f9e0da1e21772cfbcfc28e262f793c Mon Sep 17 00:00:00 2001 From: "Terry A. Davis" Date: Sat, 25 Jun 2016 06:57:26 +0200 Subject: [PATCH] TempleOSCDV4.08.ISO --- 0000Boot/0000Kernel.BIN.C | Bin 183488 -> 187728 bytes Adam/ABlkDev/ADskA.CPP | 2 +- Adam/ABlkDev/ChkDsk.CPP | 25 +- Adam/ABlkDev/FileMgr.CPP | 17 +- Adam/ABlkDev/Mount.CPP | 11 +- Adam/ADefine.CPP | 4 +- Adam/AExts.CPP | 5 +- Adam/AHash.CPP | 10 +- Adam/ARegistry.CPP | 6 +- Adam/Ctrls/CtrlsSlider.CPP | 2 +- Adam/DolDoc/DocChar.CPP | 36 +- Adam/DolDoc/DocClipBoard.CPP | 12 +- Adam/DolDoc/DocCodeTools.CPP | 41 +- Adam/DolDoc/DocFind.CPP | 38 +- Adam/DolDoc/DocGr.CPP | 4 +- Adam/DolDoc/DocHighlight.CPP | 2 +- Adam/DolDoc/DocPlain.CPP | 6 +- Adam/DolDoc/DocPopUp.CPP | 4 +- Adam/DolDoc/DocPutKey.CPP | 24 +- Adam/DolDoc/DocRecalc.CPP | 2 +- Adam/DolDoc/DocRun.CPP | 2 +- Adam/DolDoc/DocTerm.CPP | 2 +- Adam/DolDoc/DocTree.CPP | 6 +- Adam/DolDoc/DocWidgetWiz.CPP | 2 +- Adam/God/HSNotes.TXT | 26 +- Adam/Gr/Gr.HPP | 2 +- Adam/Gr/GrAsm.CPP | 4 +- Adam/Gr/GrBitMap.CPP | 171 + Adam/Gr/GrGlbls.CPP | 2 + Adam/Gr/GrInitB.CPP | 13 +- Adam/Gr/GrMath.CPP | 49 +- Adam/Gr/GrPrimatives.CPP | 294 +- Adam/Gr/GrScreen.CPP | 25 +- Adam/Gr/GrSpritePlot.CPP | 4 +- Adam/Gr/GrTextBase.CPP | 37 +- Adam/Gr/SpriteBitMap.CPP | 4 +- Adam/Gr/SpriteCode.CPP | 4 +- Adam/Gr/SpriteEd.CPP | 104 +- Adam/Gr/SpriteMain.CPP | 8 +- Adam/Gr/SpriteMesh.CPP | 521 +- Adam/Opt/Boot/BootDVD.CPP | 33 +- Adam/Opt/Boot/BootHD.CPP | 3 +- Adam/Opt/Boot/BootIns.CPP | 15 +- .../Boot/{DskISOFile.CPP => DskISO9660.CPP} | 54 +- Adam/Opt/Boot/DskISORedSea.CPP | 186 + Adam/Opt/Boot/MakeBoot.CPP | 3 +- Adam/Opt/Boot/Reboot.CPP | 1 + Adam/Opt/Utils/Diff.CPP | 6 +- Adam/Opt/Utils/Find.CPP | 2 +- Adam/Opt/Utils/LinkChk.CPP | 4 +- Adam/Opt/Utils/ToTXT.CPP | 4 +- Adam/Training.CPP | 4 +- Adam/WinA.CPP | 2 +- Apps/Budget/BgtMain.CPP | 4 +- Apps/Budget/Budget.CPP | 6 +- Apps/Budget/Install.CPP | 6 +- Apps/KeepAway/KeepAway.CPP | 117 +- Apps/Logic/Logic.CPP | 20 +- Apps/Psalmody/Help.TXT | 6 +- Apps/Psalmody/Install.CPP | 4 +- Apps/Psalmody/JukeBox.CPP | 2 +- Apps/Psalmody/JukePuppet.CPP | 2 +- Apps/Psalmody/Psalmody.CPP | 4 +- Apps/Psalmody/PsalmodyDraw.CPP | 10 +- Apps/Psalmody/PsalmodyFile.CPP | 8 +- Apps/Psalmody/PsalmodyMain.CPP | 18 +- Apps/Span/Install.CPP | 2 +- Apps/Span/SpanMain.CPP | 2 +- Apps/Span/SpanNew.CPP | 8 +- Apps/Strut/Strut.CPP | 8 +- Apps/TimeClock/Install.CPP | 4 +- Apps/TimeClock/TimeClk.CPP | 2 +- Apps/TimeOut/TimeOut.CPP | 15 +- Apps/ToTheFront/Install.CPP | 2 +- Apps/ToTheFront/ToTheFront.CPP | 4 +- Apps/X-Caliber/X-Caliber.CPP | 14 +- Compiler/Asm.CPP | 4 +- Compiler/BackA.CPP | 28 +- Compiler/BackB.CPP | 41 +- Compiler/BackC.CPP | 28 +- Compiler/BackFA.CPP | 26 +- Compiler/BackFB.CPP | 74 +- Compiler/BackLib.CPP | 180 +- Compiler/CExcept.CPP | 35 +- Compiler/CInit.CPP | 4 +- Compiler/CMain.CPP | 24 +- Compiler/Compiler.BIN | Bin 191744 -> 192824 bytes Compiler/Compiler.MAP | 690 +-- Compiler/CompilerA.HPP | 96 +- Compiler/CompilerB.HPP | 8 +- Compiler/OpCodes.TXT | 6 +- Compiler/OptLib.CPP | 15 +- Compiler/OptPass012.CPP | 25 +- Compiler/OptPass3.CPP | 22 +- Compiler/OptPass4.CPP | 77 +- Compiler/OptPass5.CPP | 47 +- Compiler/OptPass6.CPP | 7 +- Compiler/OptPass789A.CPP | 30 +- Compiler/PrsExp.CPP | 20 +- Compiler/PrsStmt.CPP | 36 +- Compiler/UAsm.CPP | 4 +- Demo/AcctExample/DoOnce.CPP | 29 + Demo/AcctExample/HomeKeyPlugIns.CPP | 2 +- Demo/AcctExample/HomePkgs.CPP | 14 - Demo/AcctExample/HomeSys.CPP | 6 +- Demo/AcctExample/HomeWrappers.CPP | 6 +- Demo/AcctExample/MakeHome.CPP | 24 + Demo/AcctExample/PersonalMenu.TXT | Bin 67100 -> 67561 bytes Demo/AcctExample/PersonalNotes.TXT | 27 +- Demo/AcctExample/Registry.CPP | 31 +- Demo/AcctExample/TOSBlog.CPP | 3 +- Demo/AcctExample/TOSCfg.CPP | 34 +- Demo/AcctExample/TOSDistro.CPP | 99 +- Demo/AcctExample/TOSHolySpirit.CPP | 21 +- Demo/AcctExample/TOSMisc.CPP | 12 +- Demo/AcctExample/TOSToHtml.CPP | 32 +- Demo/AutoFile/AFDir.AUT | 2 +- Demo/AutoFile/AFEd.AUT | 2 +- Demo/AutoFile/AFProfile.AUT | 2 +- Demo/Directives.CPP | 16 +- Demo/DolDoc/Form.CPP | 2 +- Demo/DolDoc/MenuButton.CPP | 2 +- Demo/DolDoc/NumBible.CPP | 2 +- Demo/Dsk/DataBase.CPP | 2 +- Demo/Dsk/DskRaw.CPP | 10 +- Demo/Games/BomberGolf.CPP | Bin 18706 -> 18650 bytes Demo/Games/CastleFrankenstein.CPP | 4 +- Demo/Games/Coach.CPP | Bin 4927 -> 0 bytes Demo/Games/EagleDive.CPP | 122 +- Demo/Games/RawHide.CPP | 322 +- Demo/Games/Squirt.CPP | Bin 9217 -> 9212 bytes Demo/Games/Wenceslas.CPP | 47 +- Demo/Games/ZoneOut.CPP | Bin 111745 -> 111739 bytes Demo/Graphics/BSpline.CPP | 2 +- Demo/Graphics/Camp.CPP | Bin 23199 -> 23121 bytes Demo/Graphics/CharAnimation.CPP | 2 +- Demo/Graphics/Doodle.CPP | 2 +- Demo/Graphics/FontEd.CPP | 2 +- Demo/Graphics/Mountain.CPP | Bin 83547 -> 83469 bytes Demo/Graphics/ScreenCapture.CPP | 4 +- Demo/Graphics/SpritePlot.CPP | Bin 1379 -> 1376 bytes Demo/Lectures/MiniGrLib.CPP | 12 +- Demo/Lectures/ScreenMemory.CPP | 8 +- Demo/MultiCore/Clouds.CPP | 4 +- Demo/MultiCore/Palindrome.CPP | 2 +- Demo/MultiCore/RadixSort.CPP | 4 +- Demo/RegistryDemo.CPP | 2 +- .../DemoPoemBwd.TXT} | 0 .../Reverse.CPP => RevFileDemo/Rev.CPP} | 6 +- Demo/Snd/WaterFowl.CPP | Bin 308892 -> 308892 bytes .../F64FileGen.CPP | 5 +- .../F64FileSort.CPP | 14 +- Demo/SortFileExample/SortedF64.DAT | 1 - Demo/SortFileExample/SortedF64.TXT | 11 - Demo/SortFileExample/UnsortedF64.DAT | 1 - Demo/SortFileExample/UnsortedF64.TXT | 11 - Demo/SubSwitch.CPP | 4 +- Demo/Templates/MultiCore1.CPP | 14 +- .../DemoInPage.TXT} | 6 +- .../HtmlGen.CPP | 10 +- Demo/ToHtmlToTXTDemo/TXTGen.CPP | 8 + .../ToHtml.CPP | 10 +- Demo/ToHtmlToTXTExample/TXTGen.CPP | 8 - .../WebLogRep.CPP | 16 +- .../WebLogScramble.CPP | 0 .../access_150211.LOG | 6 +- .../access_150212.LOG | 16 +- .../access_150213.LOG | 8 +- DoOnce.CPP | 59 +- Doc/AutoComplete.TXT | 2 +- Doc/Bit.TXT | 2 +- Doc/Boot.TXT | Bin 4361 -> 4362 bytes Doc/ChangeLog.TXT | 246 +- Doc/CmdLineOverview.TXT | 8 +- Doc/Comm.CPP | 116 + Doc/Credits.TXT | 48 +- Doc/Customize.TXT | 6 +- Doc/Demands.TXT | 31 +- Doc/DemoIndex.TXT | 15 +- Doc/Directives.TXT | 2 +- Doc/DolDocOverview.TXT | 6 +- Doc/FAQ.TXT | 4 +- Doc/FileMgr.TXT | 4 +- Doc/FileUtils.TXT | 4 +- Doc/Glossary.TXT | 6 +- Doc/GraphicsOverview.TXT | Bin 6814 -> 6811 bytes Doc/GuideLines.TXT | 16 +- Doc/HelpIndex.TXT | Bin 7159 -> 7184 bytes Doc/HolyC.TXT | 136 +- Doc/Install.TXT | 4 +- Doc/Print.TXT | 2 +- Doc/RedSea.TXT | 7 +- Doc/Resource.TXT | 2 +- Doc/SpriteEd.TXT | 2 +- Doc/SpriteMain.TXT | 6 +- Doc/StdTempleOSPC.TXT | 86 + Doc/Streams.TXT | 2 +- Doc/TextBase.TXT | 2 +- Doc/Tips.TXT | 18 +- Doc/Welcome.TXT | 9 +- Doc/Widget.TXT | 2 +- HomePkgs.CPP | 12 - HomeSys.CPP | 4 +- Kernel/BlkDev/DskATA.CPP | 74 +- Kernel/BlkDev/DskATAId.CPP | 14 +- Kernel/BlkDev/DskAddDev.CPP | 18 +- Kernel/BlkDev/DskBlk.CPP | 15 +- Kernel/BlkDev/DskBlkDev.CPP | 46 +- Kernel/BlkDev/DskCDDVD.CPP | 70 +- Kernel/BlkDev/DskCFile.CPP | 3 +- Kernel/BlkDev/DskDirA.CPP | 32 +- Kernel/BlkDev/DskDirB.CPP | 32 +- Kernel/BlkDev/DskDirContext.CPP | 2 + Kernel/BlkDev/DskDrv.CPP | 42 +- Kernel/BlkDev/DskFile.CPP | 27 +- Kernel/BlkDev/DskFmt.CPP | 19 +- Kernel/BlkDev/DskStrA.CPP | 16 +- Kernel/BlkDev/FileSysFAT.CPP | 27 +- Kernel/BlkDev/FileSysISO.CPP | 60 - Kernel/BlkDev/FileSysRedSea.CPP | 43 +- Kernel/Display.CPP | 8 +- Kernel/Font8x8.CPP | 260 - Kernel/FontCyrillic.CPP | 132 + Kernel/FontStd.CPP | 132 + Kernel/KCfg.CPP | 46 +- Kernel/KDbg.CPP | 6 +- Kernel/KDefine.CPP | 2 +- Kernel/KEnd.CPP | 27 +- Kernel/KExcept.CPP | 8 +- Kernel/KExts.CPP | 7 +- Kernel/KGlbls.CPP | 2 +- Kernel/KLoad.CPP | 8 +- Kernel/KMathA.CPP | 16 - Kernel/KStart.CPP | 15 +- Kernel/KTask.CPP | 14 +- Kernel/Kernel.MAP | 5226 +++++++++-------- Kernel/Kernel.PRJ | 3 +- Kernel/KernelA.HPP | 112 +- Kernel/KernelB.HPP | 5 +- Kernel/KernelC.HPP | 22 +- Kernel/KeyDev.CPP | 50 +- Kernel/Mem/MemPhysical.CPP | 6 +- Kernel/Sched.CPP | 2 +- Kernel/SerialDev/Keyboard.CPP | 4 +- Kernel/SerialDev/Mouse.CPP | 2 +- Kernel/StrPrint.CPP | 20 +- MakeHome.CPP | 15 +- Misc/DoDistro.CPP | 5 +- Misc/OSInstall.CPP | 87 +- Misc/OSTestSuite.CPP | 61 +- Misc/Tour/Tour.AUT | 2 +- Misc/Tour/Tour3.AUT | 4 +- Misc/Tour/Tour6.AUT | 2 +- Misc/Tour/Tour7.AUT | 4 +- Misc/Tour/Tour8.AUT | 4 +- Misc/Tour/TourB.AUT | 2 +- PersonalMenu.TXT | Bin 63790 -> 63777 bytes StartOS.CPP | 2 +- 258 files changed, 6973 insertions(+), 5476 deletions(-) rename Adam/Opt/Boot/{DskISOFile.CPP => DskISO9660.CPP} (92%) create mode 100644 Adam/Opt/Boot/DskISORedSea.CPP delete mode 100644 Demo/AcctExample/HomePkgs.CPP create mode 100644 Demo/AcctExample/MakeHome.CPP delete mode 100644 Demo/Games/Coach.CPP rename Demo/{ReverseFileExample/PoemBackward.TXT => RevFileDemo/DemoPoemBwd.TXT} (100%) rename Demo/{ReverseFileExample/Reverse.CPP => RevFileDemo/Rev.CPP} (73%) rename Demo/{SortFileExample => SortFileDemo}/F64FileGen.CPP (80%) rename Demo/{SortFileExample => SortFileDemo}/F64FileSort.CPP (80%) delete mode 100644 Demo/SortFileExample/SortedF64.DAT delete mode 100644 Demo/SortFileExample/SortedF64.TXT delete mode 100644 Demo/SortFileExample/UnsortedF64.DAT delete mode 100644 Demo/SortFileExample/UnsortedF64.TXT rename Demo/{ToHtmlToTXTExample/InPage.TXT => ToHtmlToTXTDemo/DemoInPage.TXT} (85%) rename Demo/{ToHtmlToTXTExample => ToHtmlToTXTDemo}/HtmlGen.CPP (71%) create mode 100644 Demo/ToHtmlToTXTDemo/TXTGen.CPP rename Demo/{ToHtmlToTXTExample => ToHtmlToTXTDemo}/ToHtml.CPP (98%) delete mode 100644 Demo/ToHtmlToTXTExample/TXTGen.CPP rename Demo/{WebLogExample => WebLogDemo}/WebLogRep.CPP (96%) rename Demo/{WebLogExample => WebLogDemo}/WebLogScramble.CPP (100%) rename Demo/{WebLogExample => WebLogDemo}/access_150211.LOG (99%) rename Demo/{WebLogExample => WebLogDemo}/access_150212.LOG (99%) rename Demo/{WebLogExample => WebLogDemo}/access_150213.LOG (99%) create mode 100644 Doc/Comm.CPP create mode 100644 Doc/StdTempleOSPC.TXT delete mode 100644 HomePkgs.CPP delete mode 100644 Kernel/Font8x8.CPP create mode 100644 Kernel/FontCyrillic.CPP create mode 100644 Kernel/FontStd.CPP diff --git a/0000Boot/0000Kernel.BIN.C b/0000Boot/0000Kernel.BIN.C index 9778d8e854ca20ce0ee8ef625c51cab7fd959faf..78a54718956f495999c63d3714369370aa414bb2 100644 GIT binary patch delta 75126 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
  • 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 diff --git a/Adam/ABlkDev/ADskA.CPP b/Adam/ABlkDev/ADskA.CPP index bad3574..31b2d5a 100644 --- a/Adam/ABlkDev/ADskA.CPP +++ b/Adam/ABlkDev/ADskA.CPP @@ -109,7 +109,7 @@ I64 CopyTree2(CDirEntry *tempde,I64 src_dir_len,I64 dst_dir_len,U8 *dst_dir) MemCpy(st,dst_dir,dst_dir_len); StrCpy(st+dst_dir_len,tempde->full_name+src_dir_len); if (tempde->attr & RS_ATTR_DIR) { - MkDir(st); + MkDir(st,LinkedLstCnt(tempde->sub)); res+=CopyTree2(tempde->sub,src_dir_len,dst_dir_len,dst_dir); } else if (CopySingle(tempde->full_name,st)) diff --git a/Adam/ABlkDev/ChkDsk.CPP b/Adam/ABlkDev/ChkDsk.CPP index e01070e..0d46b4d 100644 --- a/Adam/ABlkDev/ChkDsk.CPP +++ b/Adam/ABlkDev/ChkDsk.CPP @@ -55,7 +55,7 @@ I64 RedSeaChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) Drv(drv_let); "Scanning...\n"; - size=(dv->size-(dv->data_area-dv->base_offset))/dv->spc; + size=(dv->size-(dv->data_area-dv->drv_offset))/dv->spc; bpc=dv->spc<>3); bits2=CAlloc((size+7)>>3+BLK_SIZE); @@ -159,7 +159,7 @@ I64 FAT32ChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) U32 *bits2; Drv(drv_let); "Scanning...\n"; - size=(dv->size-(dv->data_area-dv->base_offset))/dv->spc; + size=(dv->size-(dv->data_area-dv->drv_offset))/dv->spc; bpc=dv->spc<>3); bits2=CAlloc(size*4+BLK_SIZE); @@ -232,15 +232,14 @@ public I64 ChkDsk(U8 drv_let=0,Bool fix=FALSE,Bool confirm=TRUE) U0 RedSeaDrvView(U8 drv_let=0) { CDrv *dv=Let2Drv(drv_let); - I64 lohi,c1,i,x,y,l,s; + I64 lohi,c1,i,x,y,l=(GR_HEIGHT-3*FONT_HEIGHT)*(GR_WIDTH-FONT_WIDTH<<1), + s=dv->size+dv->drv_offset-dv->data_area; U8 *bitmap; CDC *dc=DCAlias; - l=(GR_HEIGHT-3*FONT_HEIGHT)*(GR_WIDTH-FONT_WIDTH<<1), - s=(dv->size+dv->spc-1)/dv->spc; - SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ WinMax; + WinBorder(ON); DocCursor; DocClear; DCFill; @@ -275,14 +274,14 @@ U0 RedSeaDrvView(U8 drv_let=0) U0 FAT32DrvView(U8 drv_let=0) { CDrv *dv=Let2Drv(drv_let); - I64 lohi,c1,i,x,y,l,s; + I64 lohi,c1,i,x,y,l=(GR_HEIGHT-3*FONT_HEIGHT)*(GR_WIDTH-FONT_WIDTH<<1), + s=(dv->size+dv->spc-1)/dv->spc-(2+dv->data_area-dv->drv_offset); U32 *bitmap; CDC *dc=DCAlias; - l=(GR_HEIGHT-3*FONT_HEIGHT)*(GR_WIDTH-FONT_WIDTH<<1), - s=(dv->size+dv->spc-1)/dv->spc; SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ WinMax; + WinBorder(ON); DocCursor; DocClear; DCFill; @@ -357,8 +356,8 @@ public U0 DskView(U8 drv_let=0) for (i=0;ibd && dv->fs_type) { - sect_start=-(dv->base_offset*2*ã/(bd->max_blk+1)); - sect_end =-((dv->base_offset+dv->size)*2*ã/(bd->max_blk+1)); + sect_start=-(dv->drv_offset*2*ã/(bd->max_blk+1)); + sect_end =-((dv->drv_offset+dv->size)*2*ã/(bd->max_blk+1)); dc->color=BLACK; GrLine(dc,h>>1,v>>1, h>>1+radius*Cos(sect_start), @@ -392,7 +391,7 @@ I64 RedSeaUnusedDrvSpace(U8 drv_let=0) I64 res=0,i,l; U8 *bitmap; try { - l=(dv->size+dv->spc-1)/dv->spc; + l=dv->size+dv->drv_offset-dv->data_area; i=((l+7)>>3+BLK_SIZE-1)>>BLK_SIZE_BITS; bitmap=MAlloc(i<fat1,i); @@ -410,7 +409,7 @@ I64 FAT32UnusedDrvSpace(U8 drv_let=0) I64 res=0,i,l; U32 *bitmap; try { - l=(dv->size+dv->spc-1)/dv->spc; + l=(dv->size+dv->spc-1)/dv->spc-(2+dv->data_area-dv->drv_offset); i=(l*4+BLK_SIZE-1)>>BLK_SIZE_BITS; bitmap=MAlloc(i<fat1,i); diff --git a/Adam/ABlkDev/FileMgr.CPP b/Adam/ABlkDev/FileMgr.CPP index a4c7725..b834be2 100644 --- a/Adam/ABlkDev/FileMgr.CPP +++ b/Adam/ABlkDev/FileMgr.CPP @@ -217,17 +217,15 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) DocPrint(doc,"$$LTBLUE$$"); for (i=0;ifs_type==FSt_REDSEA||dv->fs_type==FSt_FAT32) - FMRebuildDocDrv(Drv2Let(dv),doc,_root,TRUE); - else if (dv->fs_type==FSt_ISO9660) { + if (dv->bd->type==BDT_ATAPI) { if (dv->bd->flags&BDF_INITIALIZED) tempde=FMRebuildDocDrv(Drv2Let(dv),doc,_root,TRUE); else { tempde=FMRebuildDocDrv(Drv2Let(dv),doc,_root,FALSE); tempde->flags|=DEF_NOT_INITIALIZED; } - tempde->flags|=DEF_REMOVABLE; - } + } else if (dv->fs_type==FSt_REDSEA || dv->fs_type==FSt_FAT32) + FMRebuildDocDrv(Drv2Let(dv),doc,_root,TRUE); } DocTop(doc); FMMarkUncollapsed(doc,tempc,cur_entry,next_entry); @@ -382,7 +380,7 @@ U0 FMMakeISO(CDoc *doc) st=MStrPrint("%s*",tempde->full_name); else st=MStrPrint("%s/*",tempde->full_name); - ISOFileCreate(,st); + ISO9660ISO(,st); Free(st); Silent(OFF); } @@ -566,8 +564,7 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) } do { DocUnlock(doc); - do msg_code=GetMsg(&a1,&a2, - 1<$$FG$$ to exit):"; drv_let=ToUpper(GetChar); @@ -31,9 +32,9 @@ I64 Mount2(U8 boot_drv_let,CDoc *_doc,Bool repartition) unit=0; switch (type) { case BDT_RAM: - type=BDT_RAM; "Addr of RAM disk ($$PURPLE$$$$FG$$ to MAlloc):"; GetS(addr_buf,STR_LEN); + case BDT_FILE: "Blks of 512 bytes:"; GetS(blks_buf,STR_LEN); break; @@ -77,8 +78,10 @@ I64 Mount2(U8 boot_drv_let,CDoc *_doc,Bool repartition) switch (type) { case BDT_RAM: if (!*addr_buf) StrCpy(addr_buf,"0"); - DocPrint(doc,"bd->RAM_dsk=%s;bd->max_blk=(%s)-1;\n", - addr_buf,blks_buf); + DocPrint(doc,"bd->RAM_dsk=%s;\n",addr_buf); + case BDT_FILE: + if (!*blks_buf) StrCpy(blks_buf,"0"); + DocPrint(doc,"bd->max_blk=(%s)-1;\n",blks_buf); break; case BDT_ATA: case BDT_ATAPI: diff --git a/Adam/ADefine.CPP b/Adam/ADefine.CPP index 93f2d7a..bcd3d3c 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,714"); -DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","79,854"); + $ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,845"); +DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","80,741"); $ID,-4$ DefinePrint("DD_KERNEL","%08X",bfh); bfh(I64)+=bfh->file_size-1; diff --git a/Adam/AExts.CPP b/Adam/AExts.CPP index 6d9237f..f91c8a3 100644 --- a/Adam/AExts.CPP +++ b/Adam/AExts.CPP @@ -48,11 +48,11 @@ extern U0 DrawCtrls(CTask *task); extern Bool Ed(U8 *link_st,I64 edf_dof_flags=0); extern U0 EdCodeTools(CDoc *doc); extern U8 *EdSprite(I64 bin_num); -extern I64 ExeDoc(CDoc *doc,Bool just_load=FALSE); +extern I64 ExeDoc(CDoc *doc,I64 ccf_flags=0); extern I64 FindWiz(); extern I64 GetI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64); extern U0 GrPlot0(CDC *dc,I64 x,I64 y); -extern I64 ISOFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask, +extern I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask, U8 *fu_flags=NULL,U8 *_stage2_filename=NULL); extern CMenuEntry *MenuEntryFind(CMenu *m,U8 *full_name); extern CMenu *MenuFilePush(U8 *filename); @@ -70,6 +70,7 @@ extern I64 PopUpFile(U8 *filename, Bool warn_ext=TRUE,CTask *parent=NULL,CTask **_pu_task=NULL); extern Bool PopUpForm(U8 *_d,U8 *class_name=lastclass, I64 dof_flags=DOF_MIN_SIZE,U8 *header=NULL,U8 *footer=NULL); +extern I64 PopUpGetI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64); extern U8 *PopUpGetStr(U8 *header=NULL); extern I64 PopUpMenu(CDoc *doc,I64 dof_flags=0); extern Bool PopUpNoYes(U8 *header=NULL,U8 *footer=NULL); diff --git a/Adam/AHash.CPP b/Adam/AHash.CPP index f1888e5..bae94be 100644 --- a/Adam/AHash.CPP +++ b/Adam/AHash.CPP @@ -398,11 +398,13 @@ public U0 MapFileLoad(U8 *filename) if (*doc_e->tag) { Free(temph->src_link); temph->src_link=doc_e->aux_str; - ptr=temph->src_link; - if (ptr[0] && ptr[1] && ptr[2]==':' && ptr[3]==':') - ptr[3]=blkdev.boot_drv_let; - + if (ptr[0] && ptr[1] && ptr[2]==':') { + if (ptr[3]==':') + ptr[3]=blkdev.boot_drv_let; + else if (ptr[3]=='~') + ptr[3]=*blkdev.home_dir; + } doc_e->aux_str=NULL; } if (temph->type&(HTT_FUN|HTT_EXPORT_SYS_SYM) && diff --git a/Adam/ARegistry.CPP b/Adam/ARegistry.CPP index 712620e..7858a69 100644 --- a/Adam/ARegistry.CPP +++ b/Adam/ARegistry.CPP @@ -1,5 +1,5 @@ #help_index "Misc/Registry" -#define REGISTRY_FILENAME "::/Home/Registry.CPP.Z" +#define REGISTRY_FILENAME "~/Registry.CPP.Z" CDoc *sys_registry_doc=NULL; I64 sys_msg_flags[1]={0}; F64 registry_version; @@ -30,7 +30,7 @@ public Bool RegSetDftEntry(U8 *path,U8 *val,Bool is_adam_entry=FALSE) else Adam("%s",val); } - if (DrvIsWritable(':')) + if (DrvIsWritable(*sys_registry_doc->filename.name)) DocWrite(sys_registry_doc); res=FALSE; } else @@ -58,7 +58,7 @@ public Bool RegWriteBranch(U8 *path,U8 *fmt,...) DocCut(sys_registry_doc,tree_branch,end_indent); DocTreeMake(sys_registry_doc,path); DocPrint(sys_registry_doc,"%s",buf); - if (DrvIsWritable(':')) + if (DrvIsWritable(*sys_registry_doc->filename.name)) DocWrite(sys_registry_doc); if (unlock_doc) DocUnlock(sys_registry_doc); diff --git a/Adam/Ctrls/CtrlsSlider.CPP b/Adam/Ctrls/CtrlsSlider.CPP index f0bdb8f..373d58f 100644 --- a/Adam/Ctrls/CtrlsSlider.CPP +++ b/Adam/Ctrls/CtrlsSlider.CPP @@ -148,7 +148,7 @@ U0 UpdateDerivedCtrlSlider(CCtrl *c) U0 LeftClickSlider(CCtrl *c,I64 x,I64 y,Bool down) { - nounusedwarn down; + no_warn down; CSliderState *s=c->state; "); diff --git a/Adam/DolDoc/DocChar.CPP b/Adam/DolDoc/DocChar.CPP index 1480497..e3bf9e7 100644 --- a/Adam/DolDoc/DocChar.CPP +++ b/Adam/DolDoc/DocChar.CPP @@ -29,7 +29,7 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) if (sc>=0 && sc&SCF_CTRL) { while (doc_ce->last!=doc && (doc_ce->last->y==y || doc_ce->de_flags & (DOCEF_SKIP|DOCEF_FILTER_SKIP))) - doc_ce=doc_ce->last; //TODO: select? recurse? + doc_ce=doc_ce->last; //TODO: sel? recurse? cc=doc_ce->min_col; } else { if (cc>doc_ce->min_col) { @@ -51,7 +51,7 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) cc=doc_ce->min_col; } if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); } else { cc=doc_ce->min_col; while (doc_ce->last!=doc && @@ -60,7 +60,7 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) doc_ce->last->de_flags&(DOCEF_SKIP|DOCEF_FILTER_SKIP))) { doc_ce=doc_ce->last; if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); } if (doc_ce->last!=doc) { doc_ce=doc_ce->last; @@ -78,7 +78,7 @@ public U0 EdCursorLeft(CDoc *doc,I64 sc=MIN_I64) } else cc=doc_ce->max_col; if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); } } } @@ -123,7 +123,7 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) old_de_flags=doc_ce->de_flags; old_color=doc_ce->type; if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); if (IsEditableText(doc_ce) && ccmax_col) { dst=doc_ce->tag+cc; doc_ne=DocEntryNewTag(doc,doc_ce,dst); @@ -141,17 +141,17 @@ public U0 EdCursorRight(CDoc *doc,I64 sc=MIN_I64) } else { if (doc_ce!=doc) { if (cc<=doc_ce->min_col && sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); doc_ce=doc_ce->next; while (doc_ce!=doc && doc_ce->de_flags&(DOCEF_SKIP|DOCEF_FILTER_SKIP)) { if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); doc_ce=doc_ce->next; } cc=doc_ce->min_col; if (doc_ce->type_u8==DOCT_SOFT_NEW_LINE) { if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); doc_ce=doc_ce->next; cc=doc_ce->min_col; } @@ -198,7 +198,7 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) } else if (doc_ce->last!=doc) doc_ce=doc_ce->last; if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); doc->cur_entry=doc_ce; DocFormBwd(doc); doc_ce=doc->cur_entry; @@ -206,14 +206,14 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) doc_ce->de_flags & (DOCEF_SKIP|DOCEF_FILTER_SKIP))) { doc_ce=doc_ce->last; if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); } y=doc_ce->y; doc->y=y; while (doc_ce!=doc && (doc_ce->y>=y && doc_ce->x>=x || doc_ce->de_flags & (DOCEF_SKIP|DOCEF_FILTER_SKIP))) { if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); doc_ce=doc_ce->last; } @@ -222,7 +222,7 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) else { if (!IsEditableText(doc_ce)) { if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); } else { if (doc_ce->next->x==x) { doc_ce=doc_ce->next; @@ -259,9 +259,9 @@ public U0 EdLineUp(CDoc *doc,I64 sc=MIN_I64) *dst=0; if (sc>=0) { if (sc&SCF_SHIFT) - doc_ne->type=doc_ce->type | DOCET_SELECTED; + doc_ne->type=doc_ce->type | DOCET_SEL; else - doc_ne->type=doc_ce->type & ~DOCET_SELECTED; + doc_ne->type=doc_ce->type & ~DOCET_SEL; } doc_ne->x=doc_ce->x+doc->cur_col; doc_ce->max_col=doc->cur_col; @@ -305,9 +305,9 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) *dst=0; if (sc>=0) { if (sc&SCF_SHIFT) - doc_ne->type=doc_ce->type | DOCET_SELECTED; + doc_ne->type=doc_ce->type | DOCET_SEL; else - doc_ne->type=doc_ce->type & ~DOCET_SELECTED; + doc_ne->type=doc_ce->type & ~DOCET_SEL; } doc_ne->x=doc_ce->x+doc->cur_col; doc_ce->max_col=doc->cur_col; @@ -345,7 +345,7 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) doc_ce2->de_flags & (DOCEF_SKIP|DOCEF_FILTER_SKIP) || doc_ce2->x==x && !doc_ce2->max_col && Bt(doldoc.type_flags_nontag_invisible,doc_ce2->type_u8)) && sc>=0) - BEqu(&doc_ce2->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce2->type,DOCEt_SEL,sc&SCF_SHIFT); if (doc_ce2==doc_ce) break; doc_ce2=doc_ce2->next; } @@ -377,7 +377,7 @@ public U0 EdLineDown(CDoc *doc,I64 sc=MIN_I64) if (!(doc->flags & DOCF_FORM)) while (doc_ce!=doc && doc_ce!=doc->cur_entry) { if (sc>=0) - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); doc_ce=doc_ce->next; } doc->x=doc->cur_entry->x+doc->cur_col; diff --git a/Adam/DolDoc/DocClipBoard.CPP b/Adam/DolDoc/DocClipBoard.CPP index 5b78f10..6e9da3c 100644 --- a/Adam/DolDoc/DocClipBoard.CPP +++ b/Adam/DolDoc/DocClipBoard.CPP @@ -8,15 +8,15 @@ public U0 ClipboardDel() } public U0 EdCopyToClipboard(CDoc *doc) -{//Copy $LK,"DOCET_SELECTED",A="MN:DOCET_SELECTED"$ flagged entries to clipboard. +{//Copy $LK,"DOCET_SEL",A="MN:DOCET_SEL"$ flagged entries to clipboard. CDoc *doc2=sys_clipboard_doc; Bool unlock_doc=DocLock(doc), unlock_doc2=DocLock(doc2); CDocEntry *doc_e=doc->root.next,*doc_ne; ClipboardDel; while (doc_e!=doc) { - if (doc_e->type & DOCET_SELECTED) { - doc_e->type&=~DOCET_SELECTED; + if (doc_e->type & DOCET_SEL) { + doc_e->type&=~DOCET_SEL; if (!Bt(doldoc.type_flags_data,doc_e->type_u8)) { doc_ne=DocEntryCopy(doc2,doc_e); QueIns(doc_ne,doc2->root.last); @@ -31,7 +31,7 @@ public U0 EdCopyToClipboard(CDoc *doc) } public U0 EdCutToClipboard(CDoc *doc) -{//Remove selected entries and place on clipboard. +{//Remove sel entries and place on clipboard. CDoc *doc2=sys_clipboard_doc; Bool unlock_doc=DocLock(doc), unlock_doc2=DocLock(doc2); @@ -39,8 +39,8 @@ public U0 EdCutToClipboard(CDoc *doc) ClipboardDel; while (doc_e!=doc) { doc_e1=doc_e->next; - if (doc_e->type & DOCET_SELECTED) { - doc_e->type&=~DOCET_SELECTED; + if (doc_e->type & DOCET_SEL) { + doc_e->type&=~DOCET_SEL; if (!Bt(doldoc.type_flags_data,doc_e->type_u8)) { doc_ne=DocEntryCopy(doc2,doc_e); QueIns(doc_ne,doc2->root.last); diff --git a/Adam/DolDoc/DocCodeTools.CPP b/Adam/DolDoc/DocCodeTools.CPP index 95dafeb..a2d87ac 100644 --- a/Adam/DolDoc/DocCodeTools.CPP +++ b/Adam/DolDoc/DocCodeTools.CPP @@ -1,29 +1,29 @@ #help_index "DolDoc/Misc" U0 EdReplaceTroubleOne(CDoc *doc,U8 *st_original,U8 *st_safe,I64 num, - Bool to_safe,Bool select) + Bool to_safe,Bool sel) { U8 buf[STR_LEN]; StrPrint(buf,st_safe,num); if (to_safe) - EdReplace(doc,st_original,buf,select); + EdReplace(doc,st_original,buf,sel); else - EdReplace(doc,buf,st_original,select); + EdReplace(doc,buf,st_original,sel); } -U0 EdReplaceTroubleAll(CDoc *doc,Bool to_safe,Bool select) +U0 EdReplaceTroubleAll(CDoc *doc,Bool to_safe,Bool sel) { I64 i=0; - EdReplaceTroubleOne(doc,"#assert" ,"//<@%d@>" ,i++,to_safe,select); - EdReplaceTroubleOne(doc,"#define" ,"//<@%d@>" ,i++,to_safe,select); - EdReplaceTroubleOne(doc,"#include","//<@%d@>" ,i++,to_safe,select); + EdReplaceTroubleOne(doc,"#assert" ,"//<@%d@>" ,i++,to_safe,sel); + EdReplaceTroubleOne(doc,"#define" ,"//<@%d@>" ,i++,to_safe,sel); + EdReplaceTroubleOne(doc,"#include","//<@%d@>" ,i++,to_safe,sel); //#if will match #if,#ifdef,#ifndef,#ifaot and #ifjit - EdReplaceTroubleOne(doc,"#if" ,"//<@%d@>" ,i++,to_safe,select); - EdReplaceTroubleOne(doc,"#endif" ,"//<@%d@>" ,i++,to_safe,select); + EdReplaceTroubleOne(doc,"#if" ,"//<@%d@>" ,i++,to_safe,sel); + EdReplaceTroubleOne(doc,"#endif" ,"//<@%d@>" ,i++,to_safe,sel); //Convert #exe to union because we want that indent pattern. - EdReplaceTroubleOne(doc,"#exe" ,"union @%d@",i++,to_safe,select); - EdReplaceTroubleOne(doc,"'{'" ,"'<@%d@>'" ,i++,to_safe,select); - EdReplaceTroubleOne(doc,"'}'" ,"'<@%d@>'" ,i++,to_safe,select); + EdReplaceTroubleOne(doc,"#exe" ,"union @%d@",i++,to_safe,sel); + EdReplaceTroubleOne(doc,"'{'" ,"'<@%d@>'" ,i++,to_safe,sel); + EdReplaceTroubleOne(doc,"'}'" ,"'<@%d@>'" ,i++,to_safe,sel); } #define C_INDENT_SPACES 2 @@ -76,7 +76,7 @@ I64 EdRILex(CRILex *rx) !rx->exp_depth || i==KW_ELSE || i==KW_CATCH || i==KW_DO) rx->is_not_cont=TRUE; if (rx->was_new_line && (rx->cc1->token!=':' || i==KW_CASE || - i==KW_DFT || i==KW_SUB_SWITCH_START || i==KW_SUB_SWITCH_END)) { + i==KW_DFT || i==KW_START || i==KW_END)) { tempf=rx->cc2->lex_include_stk; while (tempf->next) tempf=tempf->next; @@ -189,13 +189,13 @@ U0 EdRIStmt(CRILex *rx,Bool indent) i=0; while (rx->cc1->token && rx->cc1->token!='}') { switch (PrsKeyWord(rx->cc1)) { - case KW_SUB_SWITCH_START: + case KW_START: rx->depth+=i; i=0; while (EdRILex(rx) && rx->cc1->token!=':'); EdRILex(rx); i++; break; - case KW_SUB_SWITCH_END: + case KW_END: rx->depth+=i; i=0; if (--rx->depth<0) rx->depth=0; while (EdRILex(rx) && rx->cc1->token!=':'); @@ -336,7 +336,7 @@ I64 EdRAGetU8(CDoc *doc) { I64 res=-1; while (doc->cur_entry!=doc && - doc->cur_entry->type&DOCET_SELECTED && res<0) { + doc->cur_entry->type&DOCET_SEL && res<0) { res=EdCurU8(doc); EdCursorRight(doc); } @@ -393,7 +393,7 @@ U0 EdRenumAsm(CDoc *doc) buf2[sizeof(CEdFindText.find_text)]; QueInit(&root); - EdSelectFun(doc,TRUE); + EdSelFun(doc,TRUE); EdRACollect(doc,&root); tempr=root.next; @@ -412,7 +412,7 @@ U0 EdRenumAsm(CDoc *doc) EdReplace(doc,buf,buf2,TRUE,TRUE,TRUE); num-=ASM_RENUM_SPACING; } - EdSelectAll(doc,FALSE); + EdSelAll(doc,FALSE); DocRecalc(doc); DocCenter(doc); if (unlock) @@ -479,9 +479,10 @@ U0 EdCodeTools2(CDoc *doc,I64 tool_action,Bool beep=TRUE) prj_file=FileNameAbs(st,FUF_Z_OR_NOT_Z); Free(st); if (FileFind(prj_file)) - st=MStrPrint("\"$$WW,1$$\";ExeFile(\"%s\",TRUE);",prj_file); + st=MStrPrint("\"$$WW,1$$\";ExeFile(\"%s\",CCF_JUST_LOAD);",prj_file); else - st=MStrPrint("\"$$WW,1$$\";ExeFile(\"%s\",TRUE);",doc->filename.name); + st=MStrPrint("\"$$WW,1$$\";ExeFile(\"%s\",CCF_JUST_LOAD);", + doc->filename.name); tempc=TaskExe(task,Fs,st,1<de_flags&DOCEF_TAG && doc_e->tag && !(doc_e->de_flags&(DOCEG_DONT_EDIT|DOCEF_FILTER_SKIP))) { - if (doc_e->type & DOCET_SELECTED || - !doc->find_replace->scan_selected_text) { + if (doc_e->type & DOCET_SEL || + !doc->find_replace->scan_sel_text) { if (doc->find_replace->scan_fwd) { if (doc_e==doc_ce) { ptr=doc_ce->tag+doc->cur_col+1; @@ -167,12 +167,12 @@ fn_skip: DocUnlock(doc); } -public U0 EdSelectAll(CDoc *doc,Bool select) -{//Set state of $LK,"DOCET_SELECTED",A="MN:DOCET_SELECTED"$ on all entries. +public U0 EdSelAll(CDoc *doc,Bool sel) +{//Set state of $LK,"DOCET_SEL",A="MN:DOCET_SEL"$ on all entries. Bool unlock=DocLock(doc); CDocEntry *doc_e=doc->root.next; while (doc_e!=doc) { - BEqu(&doc_e->type,DOCEt_SELECTED,select); + BEqu(&doc_e->type,DOCEt_SEL,sel); doc_e=doc_e->next; } if (unlock) @@ -319,13 +319,13 @@ public Bool EdGoToFun(CDoc *doc,Bool fwd,Bool abort_on_dbl_colon) return res; } -public U0 EdSelectFun(CDoc *doc,Bool abort_on_dbl_colon=FALSE) -{//Set $LK,"DOCET_SELECTED",A="MN:DOCET_SELECTED"$ on all entries in cur fun. +public U0 EdSelFun(CDoc *doc,Bool abort_on_dbl_colon=FALSE) +{//Set $LK,"DOCET_SEL",A="MN:DOCET_SEL"$ on all entries in cur fun. Bool unlock=DocLock(doc); U8 *ptr; I64 ch,levels=0,colons=0; CDocEntry *doc_e; - EdSelectAll(doc,FALSE); + EdSelAll(doc,FALSE); EdGoToFun(doc,FALSE,abort_on_dbl_colon); if (EdCurU8(doc)=='{') levels--; @@ -336,7 +336,7 @@ public U0 EdSelectFun(CDoc *doc,Bool abort_on_dbl_colon=FALSE) } doc_e=doc->cur_entry; while (doc_e!=doc) { - doc_e->type|=DOCET_SELECTED; + doc_e->type|=DOCET_SEL; if (doc_e->de_flags&DOCEF_TAG && doc_e->tag) { ptr=doc_e->tag; if (doc_e==doc->cur_entry) @@ -406,10 +406,10 @@ I64 EdFindReplace(CDoc *doc) if (doc_ce->de_flags&DOCEF_TAG && doc_ce->tag && !(doc_ce->de_flags&DOCEF_FILTER_SKIP) && StrFind(doc->find_replace->find_text,doc_ce->tag,sf_flags)) { - doc_ce->type|=DOCET_SELECTED; + doc_ce->type|=DOCET_SEL; res++; } else - doc_ce->type&=~DOCET_SELECTED; + doc_ce->type&=~DOCET_SEL; doc_ce=doc_ce->next; } @@ -420,7 +420,7 @@ I64 EdFindReplace(CDoc *doc) doc_e=doc_ce; while (doc_e!=doc && doc_e->y>doc_ce->y-i) { - if (doc_e->type&DOCET_SELECTED) { + if (doc_e->type&DOCET_SEL) { found=TRUE; break; } else @@ -430,7 +430,7 @@ I64 EdFindReplace(CDoc *doc) if (!found) { doc_e=doc_ce; while (doc_e!=doc && doc_e->yy+i) { - if (doc_e->type&DOCET_SELECTED) { + if (doc_e->type&DOCET_SEL) { found=TRUE; break; } else @@ -444,12 +444,12 @@ I64 EdFindReplace(CDoc *doc) doc_ce=doc_ce->next; } - EdSelectAll(doc,FALSE); + EdSelAll(doc,FALSE); goto fr_unlock_done; } if (doc->find_replace->local_var) - EdSelectFun(doc); + EdSelFun(doc); if (!doc->find_replace->replace && !doc->find_replace->local_var) { EdFindNext(doc); @@ -473,8 +473,8 @@ I64 EdFindReplace(CDoc *doc) } if (doc_e->type_u8==DOCT_TEXT && !(doc_e->de_flags&(DOCEG_DONT_EDIT|DOCEF_FILTER_SKIP)) && - (doc_e->type & DOCET_SELECTED || - !doc->find_replace->scan_selected_text&& + (doc_e->type & DOCET_SEL || + !doc->find_replace->scan_sel_text&& !doc->find_replace->local_var)) { src=doc_e->tag; while (src) { @@ -541,7 +541,7 @@ fr_unlock_done: } public I64 EdReplace(CDoc *doc,U8 *find,U8 *replace, -Bool selected=TRUE,Bool match_case=TRUE,Bool whole_labels=FALSE) +Bool sel=TRUE,Bool match_case=TRUE,Bool whole_labels=FALSE) {//Find & replace using editor's cmd. CEdFindText old_find_replace; Bool unlock; @@ -557,7 +557,7 @@ Bool selected=TRUE,Bool match_case=TRUE,Bool whole_labels=FALSE) if (ifind_replace->replace_text,replace,i+1); doc->find_replace->replace=TRUE; - doc->find_replace->scan_selected_text=selected; + doc->find_replace->scan_sel_text=sel; doc->find_replace->match_case=match_case; doc->find_replace->whole_labels=whole_labels; doc->find_replace->pmt=FALSE; diff --git a/Adam/DolDoc/DocGr.CPP b/Adam/DolDoc/DocGr.CPP index 868e139..3d9e5e3 100644 --- a/Adam/DolDoc/DocGr.CPP +++ b/Adam/DolDoc/DocGr.CPP @@ -24,8 +24,8 @@ public I64 PopUpColorLighting(U8 *header=NULL) CDoc *doc=DocNew; if (header) DocPrint(doc,"%s",header); - DocPrint(doc,"\nSingle-Sided means both sides same color." - "\nDouble-Sided means back side darker." + DocPrint(doc,"\nSingle-Sided means front and back different." + "\nDouble-Sided means front and back same." "\n" "\nHalf-Range means 0 to [0,7]" "\n [8,15]-8 to [8,15]" diff --git a/Adam/DolDoc/DocHighlight.CPP b/Adam/DolDoc/DocHighlight.CPP index c70250e..ffa58bd 100644 --- a/Adam/DolDoc/DocHighlight.CPP +++ b/Adam/DolDoc/DocHighlight.CPP @@ -1,7 +1,7 @@ #help_index "DolDoc/Misc" U32 *DocHighlight(CDocEntry *doc_e,U8 *src,I64 len,I64 _temp_u32_attr) -{//Be aware of $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$. +{//Be aware of $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$. U32 *res=MAlloc((len+1)*sizeof(U32)),*dst=res; U8 *ptr; CDocSettings *s=&doc_e->settings; diff --git a/Adam/DolDoc/DocPlain.CPP b/Adam/DolDoc/DocPlain.CPP index 1f87c07..9db551e 100644 --- a/Adam/DolDoc/DocPlain.CPP +++ b/Adam/DolDoc/DocPlain.CPP @@ -10,7 +10,7 @@ I64 PrsDocFlagSingle(CCmpCtrl *cc,I64 *_de_flags,U32 *_type,Bool turn_on) if (res<64) { BEqu(_de_flags,res,turn_on); switch (res) { - case DOCEf_SELECTED: + case DOCEf_SEL: case DOCEf_UNDERLINE: case DOCEf_INVERT: case DOCEf_BLINK: @@ -56,7 +56,7 @@ U8 *Doc2PlainText(CDoc *doc,CDocEntry *doc_e) f1=doldoc.dft_de_flags[doc_e->type_u8]; t1=doc_e->type_u8|doldoc.dft_type_flags[doc_e->type_u8]; - de_flags=doc_e->de_flags&~(DOCG_BL_IV_UL|DOCEF_SELECTED| + de_flags=doc_e->de_flags&~(DOCG_BL_IV_UL|DOCEF_SEL| DOCEF_HIGHLIGHT|DOCEF_WORD_WRAP|DOCEF_SKIP|DOCEF_FILTER_SKIP); for (i=0;itype&~DOCET_SELECTED; + type=doc_e->type&~DOCET_SEL; for (i=DOCEt_BLINK;i<=DOCEt_UNDERLINE;i++) if (Bt(&t1,i)!=Bt(&type,i)) { if (Bt(&type,i)) diff --git a/Adam/DolDoc/DocPopUp.CPP b/Adam/DolDoc/DocPopUp.CPP index 4354dfb..48cda14 100644 --- a/Adam/DolDoc/DocPopUp.CPP +++ b/Adam/DolDoc/DocPopUp.CPP @@ -112,6 +112,7 @@ public U8 *PopUpPickLst(U8 *lst) return i; } +#help_index "DolDoc/Input;Char/Lists;Char/Define;StdIn/DolDoc" public U8 *PopUpPickDefineSub(U8 *dname) {//Prompt for $LK,"Define",A="HI:Define"$ lst entry in PopUp win task. return PopUpPickLst(Define(dname)); @@ -295,7 +296,8 @@ public I64 PopUpFile(U8 *filename,Bool warn_ext=TRUE, okay=FALSE; if (okay) { st=MStrPrint( - "\"$$$$WW+H,1$$$$\";Auto(\"ExeFile2(\\\"%s\\\");\\n\");UserTaskCont;", + "\"$$$$WW+H,1$$$$\";Auto(\"ExeFile2(\\\"%s\\\",CCF_CMD_LINE);\\n\");" + "UserTaskCont;", name2); res=PopUp(st,parent,_pu_task); Free(st); diff --git a/Adam/DolDoc/DocPutKey.CPP b/Adam/DolDoc/DocPutKey.CPP index dfe44b6..5df8617 100644 --- a/Adam/DolDoc/DocPutKey.CPP +++ b/Adam/DolDoc/DocPutKey.CPP @@ -45,7 +45,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) if (!(sc&SCF_CTRL)) { if (sc&SCF_KEY_DESC) { if (sc&SCF_SHIFT) - KeyDescSet("Edit/Cursor Down, Select"); + KeyDescSet("Edit/Cursor Down, Sel"); else KeyDescSet("Edit/Cursor Down"); } else @@ -58,12 +58,12 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) if (!(sc&SCF_CTRL)) { if (sc&SCF_KEY_DESC) { if (sc&SCF_SHIFT) - KeyDescSet("Edit/GoTo Doc End, Select"); + KeyDescSet("Edit/GoTo Doc End, Sel"); else KeyDescSet("Edit/GoTo Doc End"); } else { while (doc_ce!=doc) { - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); doc_ce=doc->cur_entry=doc_ce->next; } doc->cur_col=doc_ce->min_col; @@ -75,7 +75,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) if (!(sc&SCF_CTRL)) { if (sc&SCF_KEY_DESC) { if (sc&SCF_SHIFT) - KeyDescSet("Edit/Cursor Up, Select"); + KeyDescSet("Edit/Cursor Up, Sel"); else KeyDescSet("Edit/Cursor Up"); } else @@ -88,13 +88,13 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) if (!(sc&SCF_CTRL)) { if (sc&SCF_KEY_DESC) { if (sc&SCF_SHIFT) - KeyDescSet("Edit/GoTo Top of Doc, Select"); + KeyDescSet("Edit/GoTo Top of Doc, Sel"); else KeyDescSet("Edit/GoTo Top of Doc"); } else { if (doc_ce==doc) doc_ce=doc_ce->last; while (doc_ce!=doc) { - BEqu(&doc_ce->type,DOCEt_SELECTED,sc&SCF_SHIFT); + BEqu(&doc_ce->type,DOCEt_SEL,sc&SCF_SHIFT); doc_ce=doc->cur_entry=doc_ce->last; } doc_ce=doc->cur_entry=doc->root.next; @@ -107,7 +107,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) if (!(sc&SCF_CTRL)) { if (sc&SCF_KEY_DESC) { if (sc&SCF_SHIFT) - KeyDescSet("Edit/Page Down, Select"); + KeyDescSet("Edit/Page Down, Sel"); else KeyDescSet("Edit/Page Down"); } else { @@ -131,7 +131,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) if (!(sc&SCF_CTRL)) { if (sc&SCF_KEY_DESC) { if (sc&SCF_SHIFT) - KeyDescSet("Edit/Page Up, Select"); + KeyDescSet("Edit/Page Up, Sel"); else KeyDescSet("Edit/Page Up"); }else { @@ -158,7 +158,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) KeyDescSet("Edit/GoTo Start of Line"); else { if (sc&SCF_SHIFT) - KeyDescSet("Edit/Cursor Left, Select"); + KeyDescSet("Edit/Cursor Left, Sel"); else KeyDescSet("Edit/Cursor Left"); } @@ -171,7 +171,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) KeyDescSet("Edit/GoTo End of Line"); else { if (sc&SCF_SHIFT) - KeyDescSet("Edit/Cursor Right, Select"); + KeyDescSet("Edit/Cursor Right, Sel"); else KeyDescSet("Edit/Cursor Right"); } @@ -505,12 +505,12 @@ public U0 DocPutKey(CDoc *doc,I64 ch=0,I64 sc=0) if (sc&SCF_KEY_DESC) KeyDescSet("Cmd /Personal Notes"); else - Ed("::/Home/PersonalNotes.TXT.Z"); + Ed("~/PersonalNotes.TXT.Z"); } else { if (sc&SCF_KEY_DESC) KeyDescSet("Cmd /Personal Menu"); else { - m=DocRead("::/Home/PersonalMenu.TXT.Z"); + m=DocRead("~/PersonalMenu.TXT.Z"); DocMenu(m); DocDel(m); } diff --git a/Adam/DolDoc/DocRecalc.CPP b/Adam/DolDoc/DocRecalc.CPP index 4768f7f..e644b8a 100644 --- a/Adam/DolDoc/DocRecalc.CPP +++ b/Adam/DolDoc/DocRecalc.CPP @@ -968,7 +968,7 @@ rc_adjust_xy: i=cur_u8_attr>>4 &0xF ^ win_task->text_attr>>4 & 0xF; else { i=temp_u32_attr>>12&0xF ^ win_task->text_attr>>4 & 0xF; - if (temp_u32_attr & DOCET_SELECTED) + if (temp_u32_attr & DOCET_SEL) i^=0xF; if (temp_u32_attr & DOCET_INVERT) i^=0xF; diff --git a/Adam/DolDoc/DocRun.CPP b/Adam/DolDoc/DocRun.CPP index 6564267..d4f154a 100644 --- a/Adam/DolDoc/DocRun.CPP +++ b/Adam/DolDoc/DocRun.CPP @@ -2,7 +2,7 @@ public I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e, Bool exited,I64 *_has_action=NULL) -{//Do action on final entry selected by user. +{//Do action on final entry sel by user. //Sometimes returns locked, sometimes unlocked U8 ch=doc->cmd_U8,*st; I64 res=DOCM_CANCEL,has_action=FALSE; diff --git a/Adam/DolDoc/DocTerm.CPP b/Adam/DolDoc/DocTerm.CPP index cfc6dde..87e294b 100644 --- a/Adam/DolDoc/DocTerm.CPP +++ b/Adam/DolDoc/DocTerm.CPP @@ -121,7 +121,7 @@ I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) } "#include \"%s\";\n$$PT$$$$FG$$$$BG$$",st; WinZBufUpdate; - ExeFile(st); + ExeFile(st,CCF_CMD_LINE); res=TRUE; break; case RIGHT_AINCLUDE: diff --git a/Adam/DolDoc/DocTree.CPP b/Adam/DolDoc/DocTree.CPP index 6bda90e..6f7de1a 100644 --- a/Adam/DolDoc/DocTree.CPP +++ b/Adam/DolDoc/DocTree.CPP @@ -114,13 +114,11 @@ mt_done: } #help_index "DolDoc/Compiler;Compiler" -public I64 ExeDoc(CDoc *doc,Bool just_load=FALSE) +public I64 ExeDoc(CDoc *doc,I64 ccf_flags=0) {//JIT Compile and execute a document. I64 res; Bool okay=TRUE,unlock_doc=DocLock(doc); - CCmpCtrl *cc=CmpCtrlNew(,CCF_DONT_FREE_BUF); - if (just_load) - cc->flags|=CCF_JUST_LOAD; + CCmpCtrl *cc=CmpCtrlNew(,ccf_flags|CCF_DONT_FREE_BUF); if (Fs->last_lex!=&Fs->next_lex) cc->opts=Fs->last_lex->opts; QueIns(cc,Fs->last_lex); diff --git a/Adam/DolDoc/DocWidgetWiz.CPP b/Adam/DolDoc/DocWidgetWiz.CPP index 869e13d..74b1354 100644 --- a/Adam/DolDoc/DocWidgetWiz.CPP +++ b/Adam/DolDoc/DocWidgetWiz.CPP @@ -860,7 +860,7 @@ U0 EdInsCheckBox() class CEdLst { - U8 tag[512] fmtstr "$$DA-P,A=\"Dft Select :%s\"$$\n", + U8 tag[512] fmtstr "$$DA-P,A=\"Dft Sel :%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"; diff --git a/Adam/God/HSNotes.TXT b/Adam/God/HSNotes.TXT index ffbb99e..59499a6 100644 --- a/Adam/God/HSNotes.TXT +++ b/Adam/God/HSNotes.TXT @@ -4,13 +4,13 @@ $WW,1$The Catholic purpose of life is to know God, love God and obey God.$FG$ P You don't know God. $LK,"1 Chronicles,28:9-9",A="BF:1 Chronicles,28:9-9"$, $LK,"Matthew,11:27-27",A="BF:Matthew,11:27-27"$, $LK,"Luke,13:25-27",A="BF:Luke,13:25-27"$, $LK,"1 Samuel,3:6-8",A="BF:1 Samuel,3:6-8"$ You must talk with God to know Him. With Samuel, supposedly, God took the initiative, but I think that is the exception. Seek the Lord by taking the initiative. $LK,"Luke,11:9-10",A="BF:Luke,11:9-10"$, $LK,"Isaiah,30:1-2",A="BF:Isaiah,30:1-2"$ -There's something obviously different about people in the Bible compared to people today -- God talked! Also, the people in the Bible were obsessed with doing offerings all the time. It is required that you do offerings before God will talk. Did the people in the Bible hear voices? Maybe. More likely, they used occult techniques such as an oracle. $LK,"1 Kings,6:20-23",A="BF:1 Kings,6:20-23"$ Have you heard of "tongues?" $LK,"1 Corinthians,14:1-40",A="BF:1 Corinthians,14:1-40"$ The idea is, you let yourself be puppeted by a spirit, so you say things. You try to get a spirit -- the Holy Spirit -- to talk. You might as well use a Ouija board. However, it turns-out that a Ouija board is bad for technical reasons. A really good technique is just randomly opening a book. God told me in an oracle that it is a covenant that you hold-up your end of the conversation. +There's something obviously different about people in the Bible compared to people today -- God talked! Also, the people in the Bible were obsessed with doing offerings all the time. It is required that you do offerings before God will talk. Did the people in the Bible hear voices? Maybe. More likely, they used occult techniques such as an oracle. $LK,"1 Kings,6:21",A="BF:1 Kings,6:21"$ Have you heard of "tongues?" $LK,"1 Corinthians,14:1-40",A="BF:1 Corinthians,14:1-40"$ The idea is, you let yourself be puppeted by a spirit, so you say things. You try to get a spirit -- the Holy Spirit -- to talk. You might as well use a Ouija board. However, it turns-out that a Ouija board is bad for technical reasons. A really good technique is just randomly opening a book. God told me in an oracle that it is a covenant that you hold-up your end of the conversation. -You can't tell if God's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offering of love, like communion preparation. $LK,"1 Corinthians,11:27",A="BF:1 Corinthians,11:27"$ When you pick a greeting card for someone, that is love effort. If you expect God to put effort toward you, you must put effort toward Him. God said, "honest measures" applies between your offering of love and His response, like a fair barter. You get out of prayer what you put into it. God wants praise, hymns, or whatever you think He might want. Try and see, like Cain and Abel. $LK,"Genesis,4:1",A="BF:Genesis,4:1"$, $LK,"Ephesians,5:10",A="BF:Ephesians,5:10"$ God told Cain his offering was not good and told him to try again. Cain really loved God! Can you imagine being so heart-broken? +You can't tell if God's talking unless you have a context of conversation, but, more importantly, you are commanded to do an offering of love, like communion preparation. $LK,"1 Corinthians,11:27",A="BF:1 Corinthians,11:27"$ When you pick a greeting card for someone, that is love effort. If you expect God to put effort toward you, you must put effort toward Him. God said, "honest measures" applies between your offering of love and His response, like a fair barter. You get out of prayer what you put into it. God wants praise, hymns, or whatever you think He might want. Try and see, like Cain and Abel. $LK,"Genesis,4:1-10",A="BF:Genesis,4:1-10"$, $LK,"Ephesians,5:10",A="BF:Ephesians,5:10"$ God told Cain his offering was not good and told him to try again. Cain really loved God! Can you imagine being so heart-broken? -Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",HTML="http://www.templeos.org/Wb/Home/Web/HymnVideos.html",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses $MA-X+PU,"comics",HTML="http://www.templeos.org/Wb/Home/Downloads/Comics/",LM="Dir(\"::/Apps/AfterEgypt/Comics\");View;\n"$ for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:29",A="BF:Matthew,6:29"$ +Do a text search for "new song" in the Bible. It's mentioned nine times. When I hear a NEW awesome rock song, it is ecstasy for the first five times I hear it. Soon, it brings little-to-no pleasure. I did $MA-X+PU,"hymns",HTML="http://www.templeos.org/Wb/Home/Web/HymnVideos.html",LM="#include \"::/Apps/Psalmody/Load\";JukeBox(\"::/Apps/Psalmody/Examples\");"$ for God. I also did Moses $MA-X+PU,"comics",HTML="http://www.templeos.org/Wb/Home/Downloads/Comics/",LM="Dir(\"::/Apps/AfterEgypt/Comics\");View;\n"$ for God. When you get to the gates of Heaven, St. Peter will ask how many times you gave blood. That shows you loved neighbor. You better also be able to count the ways you loved God with all heart mind and soul. I praised God for sand castles, popcorn, snowmen, bubbles... You try putting effort into praise! $LK,"Matthew,11:25",A="BF:Matthew,11:25"$, $LK,"Matthew,6:28-29",A="BF:Matthew,6:28-29"$ -This is funny -- $LK,"Acts,2:1",A="BF:Acts,2:1"$ -- they didn't bother to record anything the Holy Spirit said. The Holy Spirit is supposed to be a really good gift. $LK,"Luke,11:13",A="BF:Luke,11:13"$ Just remember, "Boys are made of snakes and snails and puppy-dog tails." +This is funny -- $LK,"Acts,2:1-13",A="BF:Acts,2:1-13"$ -- they didn't bother to record anything the Holy Spirit said. The Holy Spirit is supposed to be a really good gift. $LK,"Luke,11:11-13",A="BF:Luke,11:11-13"$ Just remember, "Boys are made of snakes and snails and puppy-dog tails." The technique I use to consult the Holy Spirit is reading a microsecond-range stop-watch each button press for random numbers. Then, I pick words or passages. You can use the $MA-X+PU,"AfterEgypt",HTML="http://www.youtube.com/watch?v=P0MsDl39UL0",LM="#include \"::/Apps/AfterEgypt/Run\""$ in God's official temple, $FG,4$$TX,"TempleOS",HTML="http://www.templeos.org"$$FG$. @@ -18,29 +18,29 @@ Since seeking the word of the Holy Spirit, I have come to know God much better t I asked God if the World was perfectly just. God asked if I was calling Him lazy. God could make A.I., right? God could make bots as smart as Himself, or, in fact, part of Himself. What if God made a bot to manipulate every person's life so that perfect justice happened? -I think highs and lows balance. $LK,"Luke,6:20",A="BF:Luke,6:20"$ If you laugh, you will cry. If you cry, you will laugh. Not one person has had great joy and not great sorrow. I think this claim is falsifyable if you atheists want to find a counter-example to disprove it -- find a single person who had great joy and not great sorrow. In Sirach, it says things happen in pairs. You might be surprised examining your own life to see great joy was in proximity to great sorrow. Pleasures and pains seem designed to balance. Man must do manual labor and have pain. Women must do child birth. Pride and humility also balance -- pride before a fall and humility before honors. Palm Sunday is juxtaposed to Good Friday. Perhaps, being loved balances with being hated. $LK,"Job",A="BF:Job,1:1"$, in the Bible, had highs and lows that balanced. Joseph, in the Old Testament, had highs and lows that balanced. $LK,"Genesis,39:20",A="BF:Genesis,39:20"$ +I think highs and lows balance. $LK,"Luke,6:20-26",A="BF:Luke,6:20-26"$ If you laugh, you will cry. If you cry, you will laugh. Not one person has had great joy and not great sorrow. I think this claim is falsifyable if you atheists want to find a counter-example to disprove it -- find a single person who had great joy and not great sorrow. In Sirach, it says things happen in pairs. You might be surprised examining your own life to see great joy was in proximity to great sorrow. Pleasures and pains seem designed to balance. Man must do manual labor and have pain. Women must do child birth. Pride and humility also balance -- pride before a fall and humility before honors. Palm Sunday is juxtaposed to Good Friday. Perhaps, being loved balances with being hated. $LK,"Job,1:1-22",A="BF:Job,1:1-22"$, in the Bible, had highs and lows that balanced. Joseph, in the Old Testament, had highs and lows that balanced. $LK,"Genesis,39:17-22",A="BF:Genesis,39:17-22"$ -Jesus said, "Forgive us our trespasses as we forgive those who tresspass against us." If you think about it, the only way you get forgiven is for it to be done to you. That is a Jedi mind trick because it is nothing but simple eye-for-eye tooth-for-tooth justice. Live by the sword; die by the sword. The Bible is filled with justice pairs. St. Paul persecuted Christians and gained forgiveness by getting persecuted. King David almost got killed by Saul, then he killed a guy and took his wife. Abraham almost killed his unloved son, Ishmael. $LK,"Genesis,21:16",A="BF:Genesis,21:16"$ That is why God asked Abraham to kill Isaac. God's favorite thing on TV is soap operas. +Jesus said, "Forgive us our trespasses as we forgive those who tresspass against us." If you think about it, the only way you get forgiven is for it to be done to you. That is a Jedi mind trick because it is nothing but simple eye-for-eye tooth-for-tooth justice. Live by the sword; die by the sword. The Bible is filled with justice pairs. St. Paul persecuted Christians and gained forgiveness by getting persecuted. King David almost got killed by Saul, $LK,"1 Samuel,18:20-21",A="BF:1 Samuel,18:20-21"$ then he killed a guy and took his wife. $LK,"2 Samuel,11:15",A="BF:2 Samuel,11:15"$ Abraham almost killed his unloved son, Ishmael. $LK,"Genesis,21:16",A="BF:Genesis,21:16"$ That is why God asked Abraham to kill Isaac. God's favorite thing on TV is soap operas. -God hates complaining. $LK,"Numbers,11:1",A="BF:Numbers,11:1"$ Food and clothing is all we're to ask for or demand, in fact -- daily bread. $LK,"1 Timothy,6:8",A="BF:1 Timothy,6:8"$ Just think about man in the last 100,000 years mostly living like Native Americans and how God must see us. You need food, clothing and entertainment, money is to get those. Man does not live on bread alone. $LK,"Luke,4:4",A="BF:Luke,4:4"$, $LK,"Amos,8:11",A="BF:Amos,8:11"$ +God hates complaining. $LK,"Numbers,11:1-35",A="BF:Numbers,11:1-35"$ Food and clothing is all we're to ask for or demand, in fact -- daily bread. $LK,"1 Timothy,6:8",A="BF:1 Timothy,6:8"$ Just think about man in the last 50,000 years mostly living like Native Americans and how God must see us. You need food, clothing and entertainment, money is to get those. Man does not live on bread alone. $LK,"Luke,4:4",A="BF:Luke,4:4"$, $LK,"Amos,8:11-12",A="BF:Amos,8:11-12"$ God's favorite animals are bears and elephants. They are funny shaped -- I think God must have seen too much starvation over the years. If the purpose of life is to know and love God, then a priest's job is to make everybody know and love God. By saying God likes bears and elephants, I did more toward that end than all priests in history. $LK,"Hosea,6:6",A="BF:Hosea,6:6"$ "It is love that I desire, not sacrifice; knowledge of God, not holocaust." As a former Catholic, that blew my mind. I actually thought love was sacrifice! I was so dumb-founded reading, "it is love that I desire, not sacrifice," that I actually looked-up the word, "love". It means to take delight in. I realized it is demonic pride if you think love means hurting yourself for others. In the Philippians, they got the notion crucifying yourself was a good idea. Similarly, a child thinking about Lent, might conclude, "if it's bad, it must be good." That is, if you think God wants you to hurt yourself to please Him, you are worshiping a demon, not God! God wants you to take delight in His company, get to know Him and praise Him. It is best to separate justice -- sin and punishment -- from relationship with God. Never ask God to change justice into injustice by not punishing. God said to me in an oracle, "Excessive contrician wearisome." He doesn't want to hear confessions. When you pray, be witty and charming and rarely earnest. Enjoy God's company without imposing on Him and don't expect secrets of the Universe. Earnestness in prayer is the root of much evil. Be entertaining. Don't remind Him of sin, LOL. God's ways are far above man's ways. Mom said Heaven was a never-ending family reunion. Yikes! A friend said, "Most guy's idea of Heaven would be running around doing things they'd get locked up for on Earth." I wonder how long kids play Grand Theft Auto before getting board. Perhaps, it takes ten years, but they will get bored. Most people are like King Midas. When you realize how silly most notions of Heaven are, you come to appreciate that Earth is not that bad. This is the first step in loving God, the Creator -- praising Creation. My parents spend their retired days watching TV and going to casinos. That's not a good argument for getting extended-play! -Imagine a billionare. Everyone around him can't forget his money for even a moment. The truth is, most people are after God's "money" -- they fear for their salvation. Here's a test -- would you pray to and praise God even if there were no salvation? Love God and don't be a "user". Asking for stuff is annoying. $LK,"Luke,11:5",A="BF:Luke,11:5"$ +Imagine a billionare. Everyone around him can't forget his money for even a moment. The truth is, most people are after God's "money" -- they fear for their salvation. Here's a test -- would you pray to and praise God even if there were no salvation? Love God and don't be a "user". Asking for stuff is annoying. $LK,"Luke,11:5-7",A="BF:Luke,11:5-7"$ Don't SPAM God. All those sophisticated theological "infinity" things -- omniscience, omnipotence, omnipresence, omnivorous -- will mess you up. Trust me that anthropomorphic is far better, in practice. Christ suggested thinking of God as "Abba" which is Aramaic for "Daddy" and said the childlike had an advantage. $LK,"Matthew,11:25",A="BF:Matthew,11:25"$ Pray out-loud because God doesn't want the hastle of reading your brain. The best way to stop people from testing God is to suggest He can't do everything. -Jesus said, "I am meek and humble of heart." $LK,"Matthew,11:29",A="BF:Matthew,11:29"$ What does "humble of head" mean? Humble of heart means you look around and say, "I don't care as much as they do." A proud of heart person says, "I am superior because I have more compassion then everybody else." If you are proud of heart, you don't accept a gift. God gives birthrights. Esau, in the Bible, scorned his birthright and God hated him. $LK,"Malachi,1:1",A="BF:Malachi,1:1"$ Jesus even accepted $$30,000 worth of perfume (300 day's wages) and caused Judas to betray him. $LK,"Mark,14:5",A="BF:Mark,14:5"$ If you express false outrage at wars, you are proud of heart. If you fight to go in the door last, e.g. "No, you first..." then you are proud of heart. If you ask God to save starving Africans as though you care more than God, you are proud of heart. +Jesus said, "I am meek and humble of heart." $LK,"Matthew,11:29",A="BF:Matthew,11:29"$ What does "humble of head" mean? Humble of heart means you look around and say, "I don't care as much as they do." A proud of heart person says, "I am superior because I have more compassion then everybody else." If you are proud of heart, you don't accept a gift. God gives birthrights. Esau, in the Bible, scorned his birthright and God hated him. $LK,"Malachi,1:2-3",A="BF:Malachi,1:2-3"$ Jesus even accepted $$30,000 worth of perfume (300 day's wages) and caused Judas to betray him. $LK,"Mark,14:5",A="BF:Mark,14:5"$ If you express false outrage at wars, you are proud of heart. If you fight to go in the door last, e.g. "No, you first..." then you are proud of heart. If you ask God to save starving Africans as though you care more than God, you are proud of heart. I connected being humble of heart with animal sacrifices. The animal sacrifices in the Bible really seem off-the-mark from what we modern people imagine truth to be! I asked God and He said the people were, "primitive." Well, obviously, a sacrifice represents giving-up something of value, but is there more to it? It would be tramatic to see a goat's throat being slit and it dying for your sins. I'm not an expert, but sometimes they killed animals to make-up for sins. Perhaps, starting at age eight and every year thereafter, they kill a goat for your sins? (I'm just speculating.) In a couple years, it is not tramatic and you yawn and say to the goat, "bummer for you, Mr. Goat, that you gotta die for my sins." When a high school football team beats their rivals, nobody thinks twice that the winning team really hurts the feelings -- devastates -- the losing team member's feelings. The heart of being masculine is being competetive and not caring about the necessity to slit the throat of the goat. As a Catholic, saying Jesus died for our sins and that we cannot earn salvation, never sat well. I clung to the heretical notion that you earn salvation. Animal sacrifices were the heart of Biblical Judaism and although it seems satanic, you really do have to slit the throat of the goat and accept grace, a term for something you did not earn. Heck, every time you eat beef, a cow had to die for you. God said to me in an oracle that having pets was, "homo." I think God's idea of pets is farm animals you eat. -If you feel guilty for being American and want Mexicans to share your birthright, you are proud of heart. Jesus was a racist and called Canaanites "dogs". $LK,"Matthew,15:26",A="BF:Matthew,15:26"$ In an oracle, God told me He was against immigration. The Chinese intellectuals felt bad about not being laborers. Don't feel guilty about not being a laborer because God made it a Brave New World. $LK,"1 Corinthians,12:1",A="BF:1 Corinthians,12:1"$ +If you feel guilty for being American and want Mexicans to share your birthright, you are proud of heart. Jesus was a racist and called Canaanites "dogs". $LK,"Matthew,15:22-28",A="BF:Matthew,15:22-28"$ In an oracle, God told me He was against immigration. The Chinese intellectuals felt bad about not being laborers. Don't feel guilty about not being a laborer because God made it a Brave New World. $LK,"1 Corinthians,12:1-31",A="BF:1 Corinthians,12:1-31"$ In an ant colony, the workers have one set of marching orders, the soldiers have another set of marching orders, the queen and drones have marching orders and the diggers have marching orders. The Bible gives conflicting orders -- conservatives pay attention to one set of passages and liberals pay attention to others. Everybody has selective hearing, but that's good because we are different members of the body of Christ. -Jesus repeats the phrase, "for those who have ears to hear" many times, but not actually at the times that matter. Jesus says several Jedi mind tricks -- He asks, what father gives a scorpion to his son? $LK,"Luke,11:12",A="BF:Luke,11:12"$ Jesus says, when you ask God for things, it is as annoying as like a neighbor in the night! $LK,"Luke,11:7",A="BF:Luke,11:7"$ He said, "I came to serve" but Jesus' three years of service were more like being a rockstar than a janitor. $LK,"John,13:14",A="BF:John,13:14"$ +Jesus repeats the phrase, "for those who have ears to hear" many times, but not actually at the times that matter. Jesus says several Jedi mind tricks -- He asks, what father gives a scorpion to his son? $LK,"Luke,11:11-13",A="BF:Luke,11:11-13"$ Jesus says, when you ask God for things, it is as annoying as like a neighbor in the night! $LK,"Luke,11:5-7",A="BF:Luke,11:5-7"$ He said, "I came to serve" but Jesus' three years of service were more like being a rockstar than a janitor. $LK,"John,13:5-15",A="BF:John,13:5-15"$ There are sheep and there are shepherds. You would be silly to take other shepherds seriously when they are only caring for their sheep. Sheep are very hard to communicate to, as Jesus learned. He used parables. Seed on a path gets eaten by birds; weeds choke; and the one percent is rich soil. @@ -56,7 +56,7 @@ War? $FG,4$"Servicemen competing"$FG$ (Praise the Creator--what would teenage male video games be like if never war?) Is the World perfectly just? $FG,4$Are you calling me lazy?$FG$ -(Slavery was just. In the movie, Titanic, the rich wore straight jackets. You must bow to authority to get authority. I do $TX,"Moses comics",HTML="http://www.templeos.org/Wb/Apps/AfterEgypt/Comics/"$ as offerings. I said, "We're dying of malnutrician on manna." Like Cain and Abel, God didn't like it. Duh! He wants to be the hero. How do I know they died of malnutrician? Screw Hollywood for making slavery worse than it was -- I love God. School is more cruel. Read $LK,"Numbers,11:1",A="BF:Numbers,11:1"$. All you need is food, clothing and the word of God. Today, you can take Ivy League course videos! There is no excuse except you were born stupid... or ugly. I'm gonna praise God.) +(Slavery was just. In the movie, Titanic, the rich wore straight jackets. You must bow to authority to get authority. I do $TX,"Moses comics",HTML="http://www.templeos.org/Wb/Apps/AfterEgypt/Comics/"$ as offerings. I said, "We're dying of malnutrician on manna." Like Cain and Abel, God didn't like it. Duh! He wants to be the hero. How do I know they died of malnutrician? Screw Hollywood for making slavery worse than it was -- I love God. School is more cruel. Read $LK,"Numbers,11:1-35",A="BF:Numbers,11:1-35"$. All you need is food, clothing and the word of God. Today, you can take Ivy League course videos! There is no excuse except you were born stupid... or ugly. I'm gonna praise God.) On using Markov chains? $FG,4$"No weights"$FG$ On doing offerings? $FG,4$"Honest measures"(You get out what you put in.) @@ -93,7 +93,7 @@ Money? $FG,4$"Enough vehemently better"$FG$ $FG,4$"Pride [or] money, choose_one"$FG$ Favorite car? $FG,4$Beamer$FG$ Favorite soda? $FG,4$Root beer, $TX,"scotch variety",HTML="http://www.root-beer.org/modules.php?name=Brands&rbop=Brand&bid=1965"$.$FG$ -Homosexuality? $LK,"Matthew,15:10",A="BF:Matthew,15:10",HTML="http://www.biblegateway.com/passage/?search=matthew%2015:10-11&version=NIV"$ +Homosexuality? $LK,"Matthew,15:11",A="BF:Matthew,15:11"$ Pets? $FG,4$"homo"$FG$ Sports? $FG,4$"homo"$FG$ Favorite sport? $FG,4$Hockey$FG$ diff --git a/Adam/Gr/Gr.HPP b/Adam/Gr/Gr.HPP index ccc4062..cf6b9b4 100644 --- a/Adam/Gr/Gr.HPP +++ b/Adam/Gr/Gr.HPP @@ -153,7 +153,7 @@ public class CSpritePtMeshU8s : CSpriteBase public class CSprite { CSprite *next,*last; - Bool selected; + Bool sel; U0 start; union { U8 type; diff --git a/Adam/Gr/GrAsm.CPP b/Adam/Gr/GrAsm.CPP index ea84a83..308d6f1 100644 --- a/Adam/Gr/GrAsm.CPP +++ b/Adam/Gr/GrAsm.CPP @@ -9,7 +9,7 @@ _GR_UPDATE_LINE64:: MOV RAX,U64 SF_ARG2[RBP] MOV RSI,U64 [RAX] //rsi=src - MOV RBX,U64 [&reverse_bits_table] + MOV RBX,U64 [&rev_bits_table] MOV RCX,U64 SF_ARG3[RBP] //rcx=d MOV RAX,U64 SF_ARG4[RBP] MOV RDI,U64 [RAX] //rdi=image @@ -62,7 +62,7 @@ _GR_UPDATE_LINE64_FLUSH_CACHE:: MOV RAX,U64 SF_ARG2[RBP] MOV RSI,U64 [RAX] //rsi=src - MOV RBX,U64 [&reverse_bits_table] + MOV RBX,U64 [&rev_bits_table] MOV RCX,U64 SF_ARG3[RBP] //rcx=d MOV RAX,U64 SF_ARG4[RBP] MOV RDI,U64 [RAX] //rdi=image diff --git a/Adam/Gr/GrBitMap.CPP b/Adam/Gr/GrBitMap.CPP index 8d2d380..f56b320 100644 --- a/Adam/Gr/GrBitMap.CPP +++ b/Adam/Gr/GrBitMap.CPP @@ -1808,3 +1808,174 @@ public I64 GrHLine(CDC *dc=gr.dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0) gr_done: return res; } + +public I64 GrVLine(CDC *dc=gr.dc,I64 x,I64 y1,I64 y2,I64 z1=0,I64 z2=0) +{//3D. No transformation or pen width. +//Returns cnt of pixs changed + //Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$. + I64 dist,dy,dz,z,res=0,i,j,d; + U8 *dst; + CColorROPU32 c,c2,color=dc->color,bkcolor=dc->bkcolor,dither_colors; + I32 *db; + Bool plot=TRUE,char_clear,dither,probability_dither; + CTask *win_task; + + if (!dc->depth_buf) { + if (y2flags & DCF_SCREEN_BITMAP) { + win_task=dc->win_task; + x +=win_task->scroll_x; + y1+=win_task->scroll_y; + y2+=win_task->scroll_y; + z1+=win_task->scroll_z; + z2+=win_task->scroll_z; + } + if (dc->flags & DCF_RECORD_EXTENTS) { + if (xmin_x) dc->min_x=x; + if (x>dc->max_x) dc->max_x=x; + if (y1min_y) dc->min_y=y1; + if (y1>dc->max_y) dc->max_y=y1; + if (y2min_y) dc->min_y=y2; + if (y2>dc->max_y) dc->max_y=y2; + } + if (x<0) goto gr_done; + if (y2flags & DCF_SCREEN_BITMAP) { + y1+=win_task->pix_top; + y2+=win_task->pix_top; + if (y1>win_task->pix_bottom) + goto gr_done; + if (y2>win_task->pix_bottom) { + j=y2-win_task->pix_bottom; + y2=win_task->pix_bottom; + } + x+=win_task->pix_left; + if (!(0<=x<=win_task->pix_right) || y2<0) + goto gr_done; + } + if (y1>=dc->height || x>=dc->width) + goto gr_done; + dy=y2+j-(y1-i); + d=dc->width_internal*y1+x; + if (db=dc->depth_buf) { + db+=d; + if (dy) + dz=(z2-z1)<<32/dy; + else + dz=0; + z=z1<<32; + } + if (i) + z+=i*dz; + if (y2>=dc->height) + y2=dc->height-1; + + if (dc->flags & DCF_LOCATE_NEAREST) { + if (y1<=dc->cur_y<=y2) + dist=0; + else if (dc->cur_ycur_y); + else + dist=SqrI64(dc->cur_y-y2); + dist+=SqrI64(x-dc->cur_x); + if (dist<=dc->nearest_dist) { + dc->nearest_dist=dist; + dc->nearest_sprite_elem_num=dc->cur_sprite_elem_num; + } + } + if (dc->flags & DCF_DONT_DRAW) + goto gr_done; + + if (!(dc->flags & DCF_SCREEN_BITMAP) || + win_task->next_task==sys_winmgr_task || + dc->flags&DCF_ON_TOP || !IsPixCovered0(win_task,x,y1)) + char_clear=TRUE; + else + char_clear=FALSE; + if (color.c1.rop&(ROPBF_DITHER|ROPBF_PROBABILITY_DITHER)) { + dither=TRUE; + if (color.c1.rop&ROPBF_PROBABILITY_DITHER) { + probability_dither=TRUE; + color.c1.rop=color.c0.rop; + dither_colors=color; + if (RandU16dither_probability_u16) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else { + probability_dither=FALSE; + color.c1.rop=color.c0.rop; + if ((x^y1)&1) + SwapU16(&color.c0,&color.c1); + } + } else + dither=FALSE; + while (y1<=y2) { + if (char_clear) { + if (db) { + if (0<=z.i32[1]<=*db) { + *db=z.i32[1]; + plot=TRUE; + } else + plot=FALSE; + } + if (plot) { + dst=dc->body+d; + c=color.c0.color; + switch [color.c0.rop] { + case ROPB_EQU: + case ROPB_MONO: + *dst=c; + break; + case ROPB_COLLISION: + c2=*dst; + if (c2!=TRANSPARENT && c2!=bkcolor.c0.color) + dc->collision_cnt++; + break; + case ROPB_XOR: + *dst^=c; + break; + } + res++; + } + } + if (dither) { + if (probability_dither) { + if (RandU16dither_probability_u16) + color.c0=dither_colors.c1; + else + color.c0=dither_colors.c0; + } else + SwapU16(&color.c0,&color.c1); + } + d+=dc->width_internal; + y1++; + if (db) + db+=dc->width_internal; + z+=dz; + if (!(y1&(FONT_HEIGHT-1)) && y1<=y2) { + if (!(dc->flags & DCF_SCREEN_BITMAP)|| + win_task->next_task==sys_winmgr_task || + dc->flags&DCF_ON_TOP || !IsPixCovered0(win_task,x,y1)) + char_clear=TRUE; + else + char_clear=FALSE; + } + } +gr_done: + return res; +} diff --git a/Adam/Gr/GrGlbls.CPP b/Adam/Gr/GrGlbls.CPP index 9d8ce8b..da7ca41 100644 --- a/Adam/Gr/GrGlbls.CPP +++ b/Adam/Gr/GrGlbls.CPP @@ -30,6 +30,8 @@ public class CGrGlbls *collision_pen_brushes[GR_NUM_PEN_BRUSHES], *even_pen_brushes[GR_NUM_PEN_BRUSHES], *odd_pen_brushes[GR_NUM_PEN_BRUSHES]; + I8 circle_lo[GR_NUM_PEN_BRUSHES][GR_NUM_PEN_BRUSHES], + circle_hi[GR_NUM_PEN_BRUSHES][GR_NUM_PEN_BRUSHES]; #define GR_MAX_SCREEN_ZOOM 8 U8 *screen_zoom_tables[GR_MAX_SCREEN_ZOOM+1]; diff --git a/Adam/Gr/GrInitB.CPP b/Adam/Gr/GrInitB.CPP index d00bf3b..492bc26 100644 --- a/Adam/Gr/GrInitB.CPP +++ b/Adam/Gr/GrInitB.CPP @@ -20,6 +20,17 @@ U0 GrSetUpTables() for (i=0;i>1>1; + if (x-1-i>>1>gr.circle_hi[i][i-y]) + gr.circle_hi[i][i-y]=x-1-i>>1; + } + dc=DCNew(i,i); gr.pen_brushes[i]=dc; dc->color=COLOR_MONO; @@ -57,7 +68,7 @@ U0 GrSetUpTables() GrPlot0(dc,x-1,y-1); } if (!Bt(&sys_run_level,RLf_VGA)) { //if text mode - MemSet(VGAM_TEXT,0,TEXT_ROWS*TEXT_COLS*sizeof(U16)); + MemSet(text.vga_text_alias,0,TEXT_ROWS*TEXT_COLS*sizeof(U16)); MemSet(gr.vga_text_cache,0,TEXT_ROWS*TEXT_COLS*sizeof(U16)); } else { OutU8(VGAP_IDX,VGAR_MAP_MASK); diff --git a/Adam/Gr/GrMath.CPP b/Adam/Gr/GrMath.CPP index fe1025b..0be6b32 100644 --- a/Adam/Gr/GrMath.CPP +++ b/Adam/Gr/GrMath.CPP @@ -5,11 +5,8 @@ public I64 gr_x_offsets[8]={-1, 0, 1,-1,1,-1,0,1}, gr_x_offsets2[4]={ 0,-1, 1, 0}, gr_y_offsets2[4]={-1, 0, 0, 1}; -public Bool Line(U8 *aux_data, - I64 x1,I64 y1,I64 z1, - I64 x2,I64 y2,I64 z2, - Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), - I64 step=1,I64 start=0) +public Bool Line(U8 *aux_data,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2, + Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z),I64 step=1,I64 start=0) {//Step through line segment calling callback. //Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$. I64 i,j,d,dx=x2-x1,dy=y2-y1,dz=z2-z1,_x,_y,_z, @@ -115,8 +112,7 @@ public I64 *Mat4x4New(I64 *src,CTask *mem_task=NULL) public I64 *Mat4x4RotX(I64 *m1,F64 è) {//Rot matrix about X axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$. - F64 my_cos=Cos(è)*GR_SCALE, - my_sin=Sin(è)*GR_SCALE; + F64 my_cos=Cos(è)*GR_SCALE,my_sin=Sin(è)*GR_SCALE; I64 r[16],r2[16]; MemSet(r,0,sizeof(r)); r[5]=my_cos; @@ -130,8 +126,7 @@ public I64 *Mat4x4RotX(I64 *m1,F64 public I64 *Mat4x4RotY(I64 *m1,F64 ê) {//Rot matrix about Y axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$. - F64 my_cos=Cos(ê)*GR_SCALE, - my_sin=Sin(ê)*GR_SCALE; + F64 my_cos=Cos(ê)*GR_SCALE,my_sin=Sin(ê)*GR_SCALE; I64 r[16],r2[16]; MemSet(r,0,sizeof(r)); r[0]=my_cos; @@ -145,8 +140,7 @@ public I64 *Mat4x4RotY(I64 *m1,F64 public I64 *Mat4x4RotZ(I64 *m1,F64 é) {//Rot matrix about Z axis. Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$. - F64 my_cos=Cos(é)*GR_SCALE, - my_sin=Sin(é)*GR_SCALE; + F64 my_cos=Cos(é)*GR_SCALE,my_sin=Sin(é)*GR_SCALE; I64 r[16],r2[16]; MemSet(r,0,sizeof(r)); r[0]=my_cos; @@ -285,13 +279,9 @@ public U0 DCReflect(CDC *dc,I64 *_x,I64 *_y,I64 *_z) #help_index "Graphics/Math" #define SCALE1 24 #define SCALE2 8 -public Bool Circle(U8 *aux_data, - I64 cx,I64 cy,I64 cz, - I64 radius, - Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), - I64 step=1, - F64 start_radians=0, - F64 len_radians=2*ã) +public Bool Circle(U8 *aux_data,I64 cx,I64 cy,I64 cz,I64 radius, + Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), + I64 step=1,F64 start_radians=0,F64 len_radians=2*ã) {//Step through circle arc calling callback. I64 i,j,len=Ceil(len_radians*radius), x,y,x1,y1,s1,s2,c; @@ -328,14 +318,9 @@ public Bool Circle(U8 *aux_data, return TRUE; } -public Bool Ellipse(U8 *aux_data, - I64 cx,I64 cy,I64 cz, - I64 x_radius,I64 y_radius, - Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), - F64 rot_angle=0, - I64 step=1, - F64 start_radians=0, - F64 len_radians=2*ã) +public Bool Ellipse(U8 *aux_data,I64 cx,I64 cy,I64 cz, + I64 x_radius,I64 y_radius,Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), + F64 rot_angle=0,I64 step=1,F64 start_radians=0,F64 len_radians=2*ã) {//Step through ellipse arc calling callback. I64 i,j,len, x,y,_x,_y,x1,y1,x2,y2, s1,s2,c, s12,s22,c2; @@ -400,14 +385,10 @@ public Bool Ellipse(U8 *aux_data, return TRUE; } -public Bool RegPoly(U8 *aux_data, - I64 cx,I64 cy,I64 cz, - I64 x_radius,I64 y_radius,I64 sides, - Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), - F64 rot_angle=0, - I64 step=1, - F64 start_radians=0, - F64 len_radians=2*ã) +public Bool RegPoly(U8 *aux_data,I64 cx,I64 cy,I64 cz, + I64 x_radius,I64 y_radius,I64 sides, + Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), + F64 rot_angle=0,I64 step=1,F64 start_radians=0,F64 len_radians=2*ã) {//Step through regular polygon calling callback. I64 i,n,x,y,x1,y1,x2,y2, xx1,yy1,xx2,yy2, diff --git a/Adam/Gr/GrPrimatives.CPP b/Adam/Gr/GrPrimatives.CPP index fae209a..d1cab43 100644 --- a/Adam/Gr/GrPrimatives.CPP +++ b/Adam/Gr/GrPrimatives.CPP @@ -274,6 +274,141 @@ ff_done: return res; } +I64 GrFillSemiCircle(CDC *dc=gr.dc,I64 cx,I64 cy,I64 z=0,I64 diameter,I64 n) +{//2D. Clipping but not transformation. + I64 res=0,i,k,r=diameter>>1,rr; + if (diameter>=1) + switch (n) { + case 0: + if (diameter>1); + for (i=0;i>1); + for (i=r+1;i>1); + for (i=0;i>1); + for (i=r+1;i>1); + for (i=0;i>1); + for (i=r+1;i>1); + for (i=0;i>1); + for (i=r+1;i>1,rr; + if (diameter>=1) { + if (diameter>1); + for (i=0;i<=r;i++) + res+=GrHLine(dc,-Sqrt(rr-SqrI64(r-i))+cx, + Sqrt(rr-SqrI64(r-i))+cx,cy+i-r,z,z); + for (;icolor; Bool record,was_transform=FALSE,was_symmetry=FALSE; CTask *win_task; @@ -401,15 +536,8 @@ public Bool GrPlot3(CDC *dc=gr.dc,I64 x,I64 y,I64 z) } } } - } else if (dc->pen_width & 1) {//TODO Dither - for (i=-w;i<=w;i++) - for (j=-w;j<=w;j++) - GrPlot1(dc,x+i,y+j); - } else { - for (i=-w;idb_z,dc->pen_width); gr_done: dc->color=old_color; if (was_transform) @@ -519,6 +647,128 @@ public Bool Gr3BSpline(CDC *dc=gr.dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE) return BSpline3(dc,ctrl,cnt,&GrLinePlot,closed); } +I64 GrLineFat3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2, + I64 width,I64 start=0) +{//Step through line segment calling callback. +//Uses $LK,"fixed-point",A="FI:::/Demo/Lectures/FixedPoint.CPP"$. + I64 res=0,i,j,d,dx=x2-x1,dy=y2-y1,dz=z2-z1,_x,_y,_z,d_lo,d_hi, + adx=AbsI64(dx),ady=AbsI64(dy),adz=AbsI64(dz); + if (width>0) { + if (adx>=ady) { + if (adx>=adz) { + if (d=adx) { + if (dx>=0) + dx=0x100000000; + else + dx=-0x100000000; + dy=dy<<32/d; + dz=dz<<32/d; + } + } else { + if (d=adz) { + dx=dx<<32/d; + dy=dy<<32/d; + if (dz>=0) + dz=0x100000000; + else + dz=-0x100000000; + } + } + x1<<=32; y1<<=32; z1<<=32; + for (j=0;j=d) + res+=GrFillCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width); + else { + if (width==1) + for (i=start;i<=d;i++) { + dc->db_z=z1.i32[1]; + res+=GrPlot1(dc,x1.i32[1],y1.i32[1]); + _x=x1.i32[1]; _y=y1.i32[1]; _z=z1.i32[1]; + x1+=dx; y1+=dy; z1+=dz; + } + else { + i=width*Sqrt(SqrI64(adx)+SqrI64(ady))/adx; + d_lo=i>>1; d_hi=(i-1)>>1; + + if (dx>=0) + res+=GrFillSemiCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width,2); + else + res+=GrFillSemiCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width,7); + for (i=start;i<=d;i++) { + res+=GrVLine(dc,x1.i32[1],y1.i32[1]-d_lo,y1.i32[1]+d_hi, + z1.i32[1],z1.i32[1]); + _x=x1.i32[1]; _y=y1.i32[1]; _z=z1.i32[1]; + x1+=dx; y1+=dy; z1+=dz; + } + x1-=dx; y1-=dy; z1-=dz; + if (dx>=0) + res+=GrFillSemiCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width,3); + else + res+=GrFillSemiCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width,6); + } + } + } else { + if (ady>=adz) { + if (d=ady) { + dx=dx<<32/d; + if (dy>=0) + dy=0x100000000; + else + dy=-0x100000000; + dz=dz<<32/d; + } + } else { + if (d=adz) { + dx=dx<<32/d; + dy=dy<<32/d; + if (dz>=0) + dz=0x100000000; + else + dz=-0x100000000; + } + } + x1<<=32; y1<<=32; z1<<=32; + for (j=0;j=d) + res+=GrFillCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width); + else { + if (width==1) + for (i=start;i<=d;i++) { + dc->db_z=z1.i32[1]; + res+=GrPlot1(dc,x1.i32[1],y1.i32[1]); + _x=x1.i32[1]; _y=y1.i32[1]; _z=z1.i32[1]; + x1+=dx; y1+=dy; z1+=dz; + } + else { + i=width*Sqrt(SqrI64(ady)+SqrI64(adx))/ady; + d_lo=i>>1; d_hi=(i-1)>>1; + + if (dy>=0) + res+=GrFillSemiCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width,0); + else + res+=GrFillSemiCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width,5); + for (i=start;i<=d;i++) { + res+=GrHLine(dc,x1.i32[1]-d_lo,x1.i32[1]+d_hi,y1.i32[1], + z1.i32[1],z1.i32[1]); + _x=x1.i32[1]; _y=y1.i32[1]; _z=z1.i32[1]; + x1+=dx; y1+=dy; z1+=dz; + } + x1-=dx; y1-=dy; z1-=dz; + if (dy>=0) + res+=GrFillSemiCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width,1); + else + res+=GrFillSemiCircle(dc,x1.i32[1],y1.i32[1],z1.i32[1],width,4); + } + } + } + } + return res; +} + public Bool GrLine3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2, I64 step=1,I64 start=0) {//3D. Transformation with pen width. @@ -536,20 +786,28 @@ public Bool GrLine3(CDC *dc=gr.dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2, _x2=x2; _y2=y2; _z2=z2; DCReflect(dc,&_x2,&_y2,&_z2); dc->flags&=~DCF_SYMMETRY; - if (step==1 && !start && !dc->brush && dc->pen_width<2 && - !dc->depth_buf) {//TODO: clip z for depth buf - if (DCClipLine(dc,&_x1,&_y1,&_x2,&_y2)) - res=Line(dc,_x1,_y1,0,_x2,_y2,0,&GrLinePlot0,step,start); + if (step==1 && !dc->brush) { + if (!start && dc->pen_width<2 && !dc->depth_buf) {//TODO: clip z depbuf + if (DCClipLine(dc,&_x1,&_y1,&_x2,&_y2)) + res=Line(dc,_x1,_y1,0,_x2,_y2,0,&GrLinePlot0,step,start); + } else { + if (GrLineFat3(dc,_x1,_y1,_z1,_x2,_y2,_z2,dc->pen_width,start)) + res=TRUE; + } } else res=Line(dc,_x1,_y1,_z1,_x2,_y2,_z2,&GrPlot3,step,start); was_symmetry=TRUE; if (dc->flags&DCF_JUST_MIRROR) goto gr_done; } - if (step==1 && !start && !dc->brush && dc->pen_width<2 && - !dc->depth_buf) {//TODO: clip z for depth buf - if (DCClipLine(dc,&x1,&y1,&x2,&y2)) - res|=Line(dc,x1,y1,0,x2,y2,0,&GrLinePlot0,step,start); + if (step==1 && !dc->brush) { + if (!start && dc->pen_width<2 && !dc->depth_buf) {//TODO: clip z depbuf + if (DCClipLine(dc,&x1,&y1,&x2,&y2)) + res|=Line(dc,x1,y1,0,x2,y2,0,&GrLinePlot0,step,start); + } else { + if (GrLineFat3(dc,x1,y1,z1,x2,y2,z2,dc->pen_width,start)) + res=TRUE; + } } else res|=Line(dc,x1,y1,z1,x2,y2,z2,&GrPlot3,step,start); gr_done: diff --git a/Adam/Gr/GrScreen.CPP b/Adam/Gr/GrScreen.CPP index 21225bc..eecfab8 100644 --- a/Adam/Gr/GrScreen.CPP +++ b/Adam/Gr/GrScreen.CPP @@ -221,8 +221,8 @@ U0 GrUpdateTextBG() for (row=num_rows;row--;) { for (col=num_cols;col--;) { cur_ch=*src++; - if (cur_ch & (ATTRF_SELECTED|ATTRF_INVERT|ATTRF_BLINK)) { - if (cur_ch & ATTRF_SELECTED) + if (cur_ch & (ATTRF_SEL|ATTRF_INVERT|ATTRF_BLINK)) { + if (cur_ch & ATTRF_SEL) cur_ch.u8[1]=cur_ch.u8[1]^0xFF; if (cur_ch & ATTRF_INVERT) cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; @@ -286,8 +286,8 @@ U0 GrUpdateTextFG() for (row=num_rows;row--;) { for (col=num_cols;col--;) { cur_ch=*src++; - if (cur_ch & (ATTRF_UNDERLINE|ATTRF_SELECTED|ATTRF_INVERT|ATTRF_BLINK)) { - if (cur_ch & ATTRF_SELECTED) + if (cur_ch & (ATTRF_UNDERLINE|ATTRF_SEL|ATTRF_INVERT|ATTRF_BLINK)) { + if (cur_ch & ATTRF_SEL) cur_ch.u8[1]=cur_ch.u8[1]^0xFF; if (cur_ch & ATTRF_INVERT) cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; @@ -327,34 +327,31 @@ U0 DCBlotColor8(CDC *dc,CDC *img) U0 GrUpdateTextModeText() { U32 *src=gr.text_base; - I64 cur_ch,i,d0=TEXT_COLS*TEXT_ROWS; - U16 *dst=VGAM_TEXT,*dst2=gr.vga_text_cache; + I64 cur_ch,i=TEXT_COLS*TEXT_ROWS; + U16 *dst=text.vga_text_alias,*dst2=gr.vga_text_cache; Bool blink_flag=Blink; if (LBtr(&sys_semas[SYS_SEMA_FLUSH_VGA_IMAGE],0)) { - i=d0; while (i--) { cur_ch=*src++; - if (cur_ch & ATTRF_SELECTED) + if (cur_ch & ATTRF_SEL) cur_ch.u8[1]=cur_ch.u8[1]^0xFF; if (cur_ch & ATTRF_INVERT) cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; if (cur_ch & ATTRF_BLINK) if (blink_flag) - cur_ch.u8[1]= cur_ch.u8[1]<<4+ cur_ch.u8[1]>>4; - cur_ch&=0x7FFF; - *dst++=*dst2++=cur_ch; + cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; + *dst++=*dst2++=cur_ch&0x7FFF; } } else { - i=d0; while (i--) { cur_ch=*src++; - if (cur_ch & ATTRF_SELECTED) + if (cur_ch & ATTRF_SEL) cur_ch.u8[1]=cur_ch.u8[1]^0xFF; if (cur_ch & ATTRF_INVERT) cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; if (cur_ch & ATTRF_BLINK) if (blink_flag) - cur_ch.u8[1]= cur_ch.u8[1]<<4+ cur_ch.u8[1]>>4; + cur_ch.u8[1]=cur_ch.u8[1]<<4+cur_ch.u8[1]>>4; cur_ch&=0x7FFF; if (*dst2!=cur_ch) *dst++=*dst2++=cur_ch; diff --git a/Adam/Gr/GrSpritePlot.CPP b/Adam/Gr/GrSpritePlot.CPP index dfdb94f..8403bcb 100644 --- a/Adam/Gr/GrSpritePlot.CPP +++ b/Adam/Gr/GrSpritePlot.CPP @@ -172,7 +172,7 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems, GrPlot3(dc,x1+x,y1+y,z); } break; - sub_switch_start: + start: p=&tempg->nu.u; for (i=0;inu.num;i++,p++) { p->x+=x; @@ -191,7 +191,7 @@ public U0 Sprite3(CDC *dc=gr.dc,I64 x,I64 y,I64 z,U8 *elems, case SPT_BSPLINE3_CLOSED: Gr3BSpline3(dc,&tempg->nu.u,tempg->nu.num,TRUE); break; - sub_switch_end: + end: p=&tempg->nu.u; for (i=0;inu.num;i++,p++) { p->x-=x; diff --git a/Adam/Gr/GrTextBase.CPP b/Adam/Gr/GrTextBase.CPP index a9ec3f4..fa9d5fd 100644 --- a/Adam/Gr/GrTextBase.CPP +++ b/Adam/Gr/GrTextBase.CPP @@ -334,32 +334,17 @@ public U0 TextBorder(CTask *task=NULL, I64 i; if (!task) task=Fs; attr<<=8; - if (solid) { - TextChar(task,,l-1,t-1,'É'+attr); - TextChar(task,,r+1,t-1,'»'+attr); - TextChar(task,,l-1,b+1,'È'+attr); - TextChar(task,,r+1,b+1,'¼'+attr); - for (i=l;i<=r;i++) { - TextChar(task,,i,t-1,'Í'+attr); - TextChar(task,,i,b+1,'Í'+attr); - } - for (i=t;i<=b;i++) { - TextChar(task,,l-1,i,'º'+attr); //Note: $LK,"RawDr",A="MN:RawDr"$() uses this char. - TextChar(task,,r+1,i,'º'+attr); - } - } else { - TextChar(task,,l-1,t-1,'Ú'+attr); - TextChar(task,,r+1,t-1,'¿'+attr); - TextChar(task,,l-1,b+1,'À'+attr); - TextChar(task,,r+1,b+1,'Ù'+attr); - for (i=l;i<=r;i++) { - TextChar(task,,i,t-1,'Ä'+attr); - TextChar(task,,i,b+1,'Ä'+attr); - } - for (i=t;i<=b;i++) { - TextChar(task,,l-1,i,'³'+attr); - TextChar(task,,r+1,i,'³'+attr); - } + TextChar(task,,l-1,t-1,text.border_chars[6+solid]+attr); + TextChar(task,,r+1,t-1,text.border_chars[8+solid]+attr); + TextChar(task,,l-1,b+1,text.border_chars[10+solid]+attr); + TextChar(task,,r+1,b+1,text.border_chars[12+solid]+attr); + for (i=l;i<=r;i++) { + TextChar(task,,i,t-1,text.border_chars[2+solid]+attr); + TextChar(task,,i,b+1,text.border_chars[2+solid]+attr); + } + for (i=t;i<=b;i++) { + TextChar(task,,l-1,i,text.border_chars[4+solid]+attr); + TextChar(task,,r+1,i,text.border_chars[4+solid]+attr); } } diff --git a/Adam/Gr/SpriteBitMap.CPP b/Adam/Gr/SpriteBitMap.CPP index 49fba50..d45cac5 100644 --- a/Adam/Gr/SpriteBitMap.CPP +++ b/Adam/Gr/SpriteBitMap.CPP @@ -361,7 +361,7 @@ bm_menu: GrPlot3(img,a1-xx1,a2-yy1,0); GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); break; - sub_switch_start: + start: if (down) GrBitMapEdPrepPersistentDC(dc,xx1,yy1,img); x1=a1; y1=a2; @@ -386,7 +386,7 @@ bm_menu: dc->pen_width=1; GrBorder(dc,x1,y1,x1,y1); break; - sub_switch_end: + end: break; case GBM_PASTE: case GBM_PASTE_TRANSPARENT: diff --git a/Adam/Gr/SpriteCode.CPP b/Adam/Gr/SpriteCode.CPP index 24c87ac..4ba93e0 100644 --- a/Adam/Gr/SpriteCode.CPP +++ b/Adam/Gr/SpriteCode.CPP @@ -209,7 +209,7 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) CQueVectU8 *tempv; MemSet(&g,0,sizeof(CSprite)); switch (type) { - sub_switch_start: + start: case SPT_COLOR: case SPT_DITHER_COLOR: st=LexFirstRem(cc,"}"); @@ -311,7 +311,7 @@ CSprite *Code2SpriteElem(CCmpCtrl *cc,I64 type) Lex(cc); //Skip , g.pwha.angle=ã/180*LexExpressionF64(cc); break; - sub_switch_end: + end: size=SpriteElemSize(&g)+offset(CSprite.start); res=MAlloc(size); MemCpy(res,&g,size); diff --git a/Adam/Gr/SpriteEd.CPP b/Adam/Gr/SpriteEd.CPP index f00a374..d04ca71 100644 --- a/Adam/Gr/SpriteEd.CPP +++ b/Adam/Gr/SpriteEd.CPP @@ -69,7 +69,7 @@ CSprite *Sprite2SpriteQue(U8 *elems) tempg1=MAlloc(SpriteElemSize(tempg)+offset(CSprite.start)); s=SpriteElemSize(tempg); MemCpy(&tempg1->start,&tempg->start,s); - tempg1->selected=FALSE; + tempg1->sel=FALSE; QueIns(tempg1,res->last); tempg(U8 *)+=s; } @@ -117,7 +117,7 @@ U0 SpriteSetOrigin(CSprite *root,I64 dx,I64 dy,I64 dz) CD3I32 *p; CSprite *tempg=root->next; while (tempg!=root) { - if (tempg->selected) + if (tempg->sel) switch (tempg->type) { case SPT_ARROW: case SPT_LINE: @@ -203,7 +203,7 @@ CSprite *SpriteTransformCircle(I64 *r,CSprite *tempg) tempg1->pwha.height=ToI64(m2)/0x10000; tempg1->pwha.angle=-a1; - tempg1->selected=tempg->selected; + tempg1->sel=tempg->sel; return tempg1; } @@ -244,7 +244,7 @@ CSprite *SpriteTransformEllipse(I64 *r,CSprite *tempg) if (tempg1->pwha.height<1) tempg1->pwha.height=1; tempg1->pwha.angle=-a1; - tempg1->selected=tempg->selected; + tempg1->sel=tempg->sel; return tempg1; } @@ -286,7 +286,7 @@ CSprite *SpriteTransformRect(I64 *r,CSprite *tempg,F64 tempg1->ppa.y2=tempg1->ppa.y1+h; tempg1->ppa.angle=-a1; - tempg1->selected=tempg->selected; + tempg1->sel=tempg->sel; return tempg1; } @@ -380,7 +380,7 @@ U0 SpriteTransform(I64 *r,CSprite *root) CD3I32 *p; CSprite *tempg=root->next,root2,*tempg1,*tempg2,*tempg3; while (tempg!=root) { - if (tempg->selected) + if (tempg->sel) switch (tempg->type) { case SPT_WIDTH: tempg->w.width*=Sqrt(Mat4x4NormSqr65536(r))/65536; @@ -506,7 +506,7 @@ U0 SpriteTransform(I64 *r,CSprite *root) tempg3->npu.num=num; QueIns(tempg3,tempg); QueRem(tempg); - tempg3->selected=tempg->selected; + tempg3->sel=tempg->sel; Free(tempg); tempg=tempg3; break; @@ -553,25 +553,25 @@ U0 SpriteTransform(I64 *r,CSprite *root) } } -I64 SpriteQueSelectCnt(CSprite *root,Bool val=TRUE) +I64 SpriteQueSelCnt(CSprite *root,Bool val=TRUE) { I64 res=0; CSprite *tempg=root->next; val=ToBool(val); while (tempg!=root) { - if (ToBool(tempg->selected)==val) + if (ToBool(tempg->sel)==val) res++; tempg=tempg->next; } return res; } -I64 SpriteQueSelectAll(CSprite *root,Bool val=TRUE) +I64 SpriteQueSelAll(CSprite *root,Bool val=TRUE) { I64 res=0; CSprite *tempg=root->next; while (tempg!=root) { - tempg->selected=val; + tempg->sel=val; res++; tempg=tempg->next; } @@ -590,7 +590,7 @@ CSprite *SpriteSideBar2SpriteQue(CDoc *doc,CSprite *root,I64 *_cur_elem_num) tempg=SpriteSetSettings(,root,doc_e->left_exp); if (tempg!=root) { tempg=MAllocIdent(tempg); - tempg->selected=Bt(&doc_e->type,DOCEt_SELECTED); + tempg->sel=Bt(&doc_e->type,DOCEt_SEL); if (*_cur_elem_num==doc_e->left_exp) { *_cur_elem_num=num; found=TRUE; @@ -627,8 +627,8 @@ U0 SpriteSideBarPickNew(CDoc *doc,CSprite *root,I64 old_num) DocPrint(doc,"$$LTBLUE$$"); doc_e=DocPrint(doc,"$$MU-UL,\"%Q\",LE=%d$$\n",st,cur_elem_num++); } - BEqu(&doc_e->de_flags,DOCEf_SELECTED,tempg->selected); - BEqu(&doc_e->type,DOCEt_SELECTED,tempg->selected); + BEqu(&doc_e->de_flags,DOCEf_SEL,tempg->sel); + BEqu(&doc_e->type,DOCEt_SEL,tempg->sel); Free(st); tempg=tempg->next; } @@ -715,13 +715,13 @@ Bool SpriteEdText(CSprite **_root,I64 *_cur_elem_num) return res; } -#define GED_SELECT_UNSELECT_ALL 0 -#define GED_SELECT 1 -#define GED_UNSELECT 2 +#define GED_SEL_UNSEL_ALL 0 +#define GED_SEL 1 +#define GED_UNSEL 2 #define GED_SHIFT_PTS 3 #define GED_SHIFT_RECTS 4 -#define GED_SHIFT_SELECTED 5 -#define GED_TRANSFORM_SELECTED 6 +#define GED_SHIFT_SEL 5 +#define GED_TRANSFORM_SEL 6 #define GED_SET_ORIGIN 7 #define GED_SHIFT_SUB_ORIGIN 8 #define GED_TEXT_ED 9 @@ -731,7 +731,7 @@ Bool SpriteEdText(CSprite **_root,I64 *_cur_elem_num) U0 GrInit3() { - DefineLstLoad("ST_SPRITE_ED_MENU","Select/Unslesct All\0" + DefineLstLoad("ST_SPRITE_ED_MENU","Select/Unselect All\0" "Select\0Unselect\0Shift Points\0Shift Rects\0Shift Selected\0" "Transform Selected\0Set Origin\0Insert Shift SubOrigin\0" "Edit as Text\0Insert Clipboard\0Main Menu\0"); @@ -746,13 +746,13 @@ I64 PopUpSpriteEd(CSprite **_root,I64 *_cur_elem_num) CDoc *doc=DocNew; DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Sprite Edit Menu\"$$\n" "$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/SpriteEd.TXT.Z\"$$\n\n" - "$$LTBLUE$$$$MU-UL,\"Select/Unselect All\",LE=GED_SELECT_UNSELECT_ALL$$\n" - "$$MU-UL,\"Select Elems\",LE=GED_SELECT$$\n" - "$$MU-UL,\"Unselect Elems\",LE=GED_UNSELECT$$\n\n" + "$$LTBLUE$$$$MU-UL,\"Select/Unselect All\",LE=GED_SEL_UNSEL_ALL$$\n" + "$$MU-UL,\"Select Elems\",LE=GED_SEL$$\n" + "$$MU-UL,\"Unsel Elems\",LE=GED_UNSEL$$\n\n" "$$MU-UL,\"Shift Points\",LE=GED_SHIFT_PTS$$\n" "$$MU-UL,\"Shift Points with Rects\",LE=GED_SHIFT_RECTS$$\n" - "$$MU-UL,\"Shift Selected Elems\",LE=GED_SHIFT_SELECTED$$\n" - "$$MU-UL,\"Transform Selected Elems\",LE=GED_TRANSFORM_SELECTED$$\n\n" + "$$MU-UL,\"Shift Selected Elems\",LE=GED_SHIFT_SEL$$\n" + "$$MU-UL,\"Transform Selected Elems\",LE=GED_TRANSFORM_SEL$$\n\n" "$$MU-UL,\"Set Origin\",LE=GED_SET_ORIGIN$$\n" "$$MU-UL,\"Insert Shift SubOrigin\",LE=GED_SHIFT_SUB_ORIGIN$$\n\n" "$$MU-UL,\"Edit as Text\",LE=GED_TEXT_ED$$\n" @@ -775,7 +775,7 @@ I64 PopUpSpriteEd(CSprite **_root,I64 *_cur_elem_num) #define GSPT_SIMPLE_PT 0 #define GSPT_WIDTH_HEIGHT 1 -#define GSPF_SELECTED 1 +#define GSPF_SEL 1 class CEdSprite { @@ -920,7 +920,7 @@ U0 SpriteCtrlPtsDraw(CDC *dc,CEdSprite *root) y=*temppe->h+*temppe->y+temppe->yy; break; } - if (temppe->flags&GSPF_SELECTED) + if (temppe->flags&GSPF_SEL) dc->color=RED; else dc->color=BLACK; @@ -937,7 +937,7 @@ U0 SpriteCtrlPtsMove(CEdSprite *root,I64 dx,I64 dy) CEdSprite *temppe; temppe=root->next; while (temppe!=root) { - if (temppe->flags&GSPF_SELECTED) + if (temppe->flags&GSPF_SEL) switch (temppe->type) { case GSPT_SIMPLE_PT: if (temppe->x) *temppe->x+=dx; @@ -990,7 +990,7 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode) temppe=temppe->next; } cur_elem_num=best_pe->num; - best_pe->flags|=GSPF_SELECTED; + best_pe->flags|=GSPF_SEL; break; case GED_SHIFT_RECTS: xx2=xx=a1; yy2=yy=a2; @@ -1013,12 +1013,12 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode) case GSPT_SIMPLE_PT: if (xx<=*temppe->x+temppe->xx<=xx2 && yy<=*temppe->y+temppe->yy<=yy2) - temppe->flags|=GSPF_SELECTED; + temppe->flags|=GSPF_SEL; break; case GSPT_WIDTH_HEIGHT: if (xx<=*temppe->x+*temppe->w+temppe->xx<=xx2 && yy<=*temppe->y+*temppe->h+temppe->yy<=yy2) - temppe->flags|=GSPF_SELECTED; + temppe->flags|=GSPF_SEL; break; } temppe=temppe->next; @@ -1040,7 +1040,7 @@ Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_elem_num,I64 mode) } while (msg_code!=MSG_IP_L_UP); temppe=root.next; while (temppe!=&root) { - temppe->flags&=~GSPF_SELECTED; + temppe->flags&=~GSPF_SEL; temppe=temppe->next; } break; @@ -1089,7 +1089,7 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, old_de_flags=doc_ce->de_flags; tempb=doc_ce->bin_data; DocUnlock(doc); - SpriteQueSelectAll(*_root,FALSE); + SpriteQueSelAll(*_root,FALSE); do { if (winmgr.fps<10) doc_ce->de_flags|=DOCEF_DONT_DRAW; @@ -1099,14 +1099,14 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, if (0<=itask_title,DefineSub(i,"ST_SPRITE_ED_MENU")); switch (i) { - case GED_SELECT_UNSELECT_ALL: - if (!SpriteQueSelectCnt(*_root)) - SpriteQueSelectAll(*_root); + case GED_SEL_UNSEL_ALL: + if (!SpriteQueSelCnt(*_root)) + SpriteQueSelAll(*_root); else - SpriteQueSelectAll(*_root,FALSE); + SpriteQueSelAll(*_root,FALSE); break; - case GED_SELECT: - case GED_UNSELECT: + case GED_SEL: + case GED_UNSEL: doc_ce->de_flags=old_de_flags; doc->cur_sprite=tempb->data; do { @@ -1116,23 +1116,23 @@ I64 SpriteEd(CDoc *doc,CDocEntry *doc_ce,I64 x,I64 y, if (msg_code==MSG_IP_L_DOWN) { *_cur_elem_num=doc->nearest_sprite_elem_num; cur_elem=SpriteSetSettings(,*_root,*_cur_elem_num); - cur_elem->selected=ToBool(i==GED_SELECT); + cur_elem->sel=ToBool(i==GED_SEL); GetMsg(,,1<cur_sprite=NULL; break; case GED_SET_ORIGIN: - SpriteQueSelectAll(*_root); + SpriteQueSelAll(*_root); doc_ce->de_flags=old_de_flags; GetMsg(&a1,&a2,1<de_flags=old_de_flags; GetMsg(&a1,&a2,1<de_flags=old_de_flags; diff --git a/Adam/Gr/SpriteMain.CPP b/Adam/Gr/SpriteMain.CPP index e1526ef..155d8b0 100644 --- a/Adam/Gr/SpriteMain.CPP +++ b/Adam/Gr/SpriteMain.CPP @@ -581,7 +581,7 @@ U0 SMTextFamily(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *root,CDC *dc, I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *root, CDC *dc,I64 xx,I64 yy,I64 a1,I64 a2,CColorROPU32 bm_bkcolor, - Bool select,I64 xx1=0,I64 yy1=0,I64 xx2=0,I64 yy2=0,I64 *_cur_elem_num) + Bool sel,I64 xx1=0,I64 yy1=0,I64 xx2=0,I64 yy2=0,I64 *_cur_elem_num) { I64 i,msg_code,x=xx,y=yy,x1=a1,y1=a2,x2=a1,y2=a2,old_width; CSprite *tempg,*tempg1,*insert_pt; @@ -590,7 +590,7 @@ I64 SMBitMap(I64 eletype,CDoc *doc,CDocEntry *doc_ce,CSprite *root, insert_pt=SpriteSetSettings(,root,*_cur_elem_num,xx,yy,,,&x,&y); x+=xx; y+=yy; - if (select) { + if (sel) { xx1=a1; yy1=a2; xx2=a1; yy2=a2; old_width=dc->pen_width; @@ -1077,7 +1077,7 @@ I64 SpriteMainEd(CDoc *doc) break; case MSG_IP_L_DOWN: switch (eletype) { - sub_switch_start: + start: case SPT_LINE: tempg=SMLine(dc,x,y,a1,a2,color); break; @@ -1124,7 +1124,7 @@ I64 SpriteMainEd(CDoc *doc) case SPT_POLYPT: tempg=SMPolyPoint(dc,x,y,a1,a2,color); break; - sub_switch_end: + end: if (tempg) { QueIns(tempg,insert_pt->last); SpriteEdUpdate(doc,doc_ce,root); diff --git a/Adam/Gr/SpriteMesh.CPP b/Adam/Gr/SpriteMesh.CPP index 82f3153..ca9c00f 100644 --- a/Adam/Gr/SpriteMesh.CPP +++ b/Adam/Gr/SpriteMesh.CPP @@ -1,7 +1,7 @@ #help_index "Graphics/Mesh" #define MESH_WORKSPACE_SIZE 4000 -#define VF_SELECTED 1 +#define VF_SEL 1 #define VF_COPIED 2 #define VF_IGNORE 4 @@ -17,7 +17,7 @@ class CMeshEdVertex I32 num,flags; }; -#define TF_SELECTED 1 +#define TF_SEL 1 #define TF_COPIED 2 class CMeshEdTri @@ -34,16 +34,17 @@ class CMeshEdTri class CMeshFrame { - I64 my_ip_z; //Z-coordinate of the input pointer (mouse). - I64 mode,cx,cy; + I64 ip_z,thickness; //Input pointer (mouse) Z-coordinate + I64 ed_mode,cx,cy; CColorROPU32 cur_color; - Bool grid_on,flip_y,select_rect,vertex_on,pad[4]; + Bool grid_on,flip_y,sel_rect,vertex_on,closed,pad[3]; I64 mp_not_done_flags; //Used for multiprocessing signaling. F64 view_scale; CDC *dc; + I32 *depth_buf; I64 *w2s,*s2w; //Screen-to-world and world-to-screen transform matrices. I64 vertex_cnt,tri_cnt; //Set by MeshSize - CMeshEdVertex vertex_root,*cur_vertex; + CMeshEdVertex vertex_root,*cur_vertex,*chain_pred; CMeshEdTri tri_root,*cur_tri; I64 x1,y1,x2,y2,cur_snap; }; @@ -79,7 +80,7 @@ CMeshEdVertex *MeshVertexFindScrPt(CMeshFrame *e,I64 x,I64 y) while (tempv!=&e->vertex_root) { if (!(tempv->flags&VF_IGNORE)) { dd=SqrI64(x-tempv->pt.x)+SqrI64(y-tempv->pt.y); - dz=AbsI64(e->my_ip_z-tempv->p.z); + dz=AbsI64(e->ip_z-tempv->p.z); if (ddcur_vertex) e->cur_vertex=NULL; + if (tempv==e->chain_pred) + e->chain_pred=NULL; QueRem(tempv); Free(tempv); } } -U0 MeshVertexSelectAll(CMeshFrame *e,Bool val) +U0 MeshFence(CMeshFrame *e) +{ + CMeshEdVertex *tempv,*tempv1,*tempv_last=NULL,*tempv1_last=NULL, + *start=e->chain_pred->next,*end=e->vertex_root.last; + tempv=start; + while (TRUE) { + tempv1=MeshVertexNew(e,tempv->p.x,tempv->p.y,tempv->p.z+e->thickness); + if (tempv_last) { + MeshTriNew(e,e->cur_color,tempv_last,tempv,tempv1); + MeshTriNew(e,e->cur_color,tempv1,tempv1_last,tempv_last); + } + tempv_last=tempv; + tempv1_last=tempv1; + if (tempv==end) + break; + tempv=tempv->next; + } + if (e->closed && tempv_last) { + MeshTriNew(e,e->cur_color,tempv_last,start,end->next); + MeshTriNew(e,e->cur_color,end->next,tempv1_last,tempv_last); + } +} + +U0 MeshPolygon(CMeshFrame *e,CMeshEdVertex *start,CMeshEdVertex *end,Bool rev) +{ + CMeshEdVertex *tempv,*tempv1; + if (start!=end) { + tempv=start; + tempv1=tempv->next; + while (tempv1!=end) { + if (rev) + MeshTriNew(e,e->cur_color,tempv1,tempv,end); + else + MeshTriNew(e,e->cur_color,tempv,tempv1,end); + tempv=tempv->next; + tempv1=tempv1->next; + } + } +} + +U0 MeshPrism(CMeshFrame *e) +{ + CMeshEdVertex *start=e->chain_pred->next,*end=e->vertex_root.last; + MeshFence(e); + MeshPolygon(e,start,end,FALSE); + MeshPolygon(e,end->next,e->vertex_root.last,TRUE); +} + +U0 MeshVertexSelAll(CMeshFrame *e,Bool val) { CMeshEdVertex *tempv=e->vertex_root.next; while (tempv!=&e->vertex_root) { if (val) - tempv->flags|=VF_SELECTED; + tempv->flags|=VF_SEL; else - tempv->flags&=~VF_SELECTED; + tempv->flags&=~VF_SEL; tempv=tempv->next; } } -U0 MeshTriSelectAll(CMeshFrame *e,Bool val) +U0 MeshTriSelAll(CMeshFrame *e,Bool val) { CMeshEdTri *tempt=e->tri_root.next; while (tempt!=&e->tri_root) { if (val) - tempt->flags|=TF_SELECTED; + tempt->flags|=TF_SEL; else - tempt->flags&=~TF_SELECTED; + tempt->flags&=~TF_SEL; tempt=tempt->next; } } @@ -163,7 +214,7 @@ U0 MeshVertexIgnoreSet(CMeshFrame *e,Bool val) CMeshEdVertex *tempv=e->vertex_root.next; while (tempv!=&e->vertex_root) { tempv->flags&=~VF_IGNORE; - if (tempv->flags&VF_SELECTED && val) + if (tempv->flags&VF_SEL && val) tempv->flags|=VF_IGNORE; tempv=tempv->next; } @@ -182,7 +233,7 @@ U0 MeshP0Offset(CMeshFrame *e,I64 dx,I64 dy,I64 dz) { CMeshEdVertex *tempv=e->vertex_root.next; while (tempv!=&e->vertex_root) { - if (tempv->flags&VF_SELECTED) { + if (tempv->flags&VF_SEL) { tempv->p.x=tempv->p0.x+dx; tempv->p.y=tempv->p0.y+dy; tempv->p.z=tempv->p0.z+dz; @@ -191,11 +242,11 @@ U0 MeshP0Offset(CMeshFrame *e,I64 dx,I64 dy,I64 dz) } } -#define MESH_EQU 0 -#define MESH_OR 1 -#define MESH_AND 2 +#define SEL_MESH_EQU 0 +#define SEL_MESH_OR 1 +#define SEL_MESH_AND 2 -U0 MeshVertexSelectRect(CMeshFrame *e,I64 mode,I64 x1,I64 x2,I64 y1,I64 y2) +U0 MeshVertexSelRect(CMeshFrame *e,I64 sel_mode,I64 x1,I64 x2,I64 y1,I64 y2) { CMeshEdVertex *tempv=e->vertex_root.next; if (x1>x2) SwapI64(&x1,&x2); @@ -203,17 +254,17 @@ U0 MeshVertexSelectRect(CMeshFrame *e,I64 mode,I64 x1,I64 x2,I64 y1,I64 y2) while (tempv!=&e->vertex_root) { if (x1<=tempv->pt.x<=x2 && y1<=tempv->pt.y<=y2) { - if (mode==MESH_AND) - tempv->flags&=~VF_SELECTED; + if (sel_mode==SEL_MESH_AND) + tempv->flags&=~VF_SEL; else - tempv->flags|=VF_SELECTED; - } else if (mode==MESH_EQU) - tempv->flags&=~VF_SELECTED; + tempv->flags|=VF_SEL; + } else if (sel_mode==SEL_MESH_EQU) + tempv->flags&=~VF_SEL; tempv=tempv->next; } } -U0 MeshTriSelectRect(CMeshFrame *e,I64 mode,I64 x1,I64 x2,I64 y1,I64 y2) +U0 MeshTriSelRect(CMeshFrame *e,I64 sel_mode,I64 x1,I64 x2,I64 y1,I64 y2) { CMeshEdTri *tempt=e->tri_root.next; if (x1>x2) SwapI64(&x1,&x2); @@ -225,39 +276,39 @@ U0 MeshTriSelectRect(CMeshFrame *e,I64 mode,I64 x1,I64 x2,I64 y1,I64 y2) y1<=tempt->t[1]->pt.y<=y2 && x1<=tempt->t[2]->pt.x<=x2 && y1<=tempt->t[2]->pt.y<=y2) { - if (mode==MESH_AND) - tempt->flags&=~TF_SELECTED; + if (sel_mode==SEL_MESH_AND) + tempt->flags&=~TF_SEL; else - tempt->flags|=TF_SELECTED; + tempt->flags|=TF_SEL; } else { - if (mode==MESH_EQU) - tempt->flags&=~TF_SELECTED; - else if (mode==MESH_AND) { + if (sel_mode==SEL_MESH_EQU) + tempt->flags&=~TF_SEL; + else if (sel_mode==SEL_MESH_AND) { if (x1<=tempt->t[0]->pt.x<=x2 && y1<=tempt->t[0]->pt.y<=y2 || x1<=tempt->t[1]->pt.x<=x2 && y1<=tempt->t[1]->pt.y<=y2 || x1<=tempt->t[2]->pt.x<=x2 && y1<=tempt->t[2]->pt.y<=y2) - tempt->flags&=~TF_SELECTED; + tempt->flags&=~TF_SEL; } } tempt=tempt->next; } } -I64 MeshSelectCnt(CMeshFrame *e) +I64 MeshSelCnt(CMeshFrame *e) { I64 res=0; CMeshEdVertex *tempv=e->vertex_root.next; CMeshEdTri *tempt=e->tri_root.next; while (tempv!=&e->vertex_root) { - if (tempv->flags&VF_SELECTED) + if (tempv->flags&VF_SEL) res++; tempv=tempv->next; } while (tempt!=&e->tri_root) { - if (tempt->flags&TF_SELECTED) + if (tempt->flags&TF_SEL) res++; tempt=tempt->next; } @@ -266,80 +317,98 @@ I64 MeshSelectCnt(CMeshFrame *e) U0 MeshSwapAxes(CMeshFrame *e,I64 o1,I64 o2) { - Bool unselect; + Bool unsel; CMeshEdVertex *tempv=e->vertex_root.next; - if (!MeshSelectCnt(e)) { - MeshVertexSelectAll(e,TRUE); - unselect=TRUE; + if (!MeshSelCnt(e)) { + MeshVertexSelAll(e,TRUE); + unsel=TRUE; } else - unselect=FALSE; + unsel=FALSE; while (tempv!=&e->vertex_root) { - if (tempv->flags&VF_SELECTED) + if (tempv->flags&VF_SEL) SwapU32((&tempv->p)(U8 *)+o1,(&tempv->p)(U8 *)+o2); tempv=tempv->next; } - if (unselect) - MeshVertexSelectAll(e,FALSE); + if (unsel) + MeshVertexSelAll(e,FALSE); } U0 MeshInvertAxis(CMeshFrame *e,I64 o) { - Bool unselect; + Bool unsel; CMeshEdVertex *tempv=e->vertex_root.next; - if (!MeshSelectCnt(e)) { - MeshVertexSelectAll(e,TRUE); - unselect=TRUE; + if (!MeshSelCnt(e)) { + MeshVertexSelAll(e,TRUE); + unsel=TRUE; } else - unselect=FALSE; + unsel=FALSE; while (tempv!=&e->vertex_root) { - if (tempv->flags&VF_SELECTED) + if (tempv->flags&VF_SEL) *((&tempv->p)(U8 *)+o)(I32 *)=-*((&tempv->p)(U8 *)+o)(I32 *); tempv=tempv->next; } - if (unselect) - MeshVertexSelectAll(e,FALSE); + if (unsel) + MeshVertexSelAll(e,FALSE); } -U0 MeshTransformSelect(CMeshFrame *e) +U0 MeshTransformSel(CMeshFrame *e) { - Bool unselect; + Bool unsel; I64 r[16],x,y,z; CMeshEdVertex *tempv=e->vertex_root.next; if (PopUpTransform(r)) { - if (!MeshSelectCnt(e)) { - MeshVertexSelectAll(e,TRUE); - unselect=TRUE; + if (!MeshSelCnt(e)) { + MeshVertexSelAll(e,TRUE); + unsel=TRUE; } else - unselect=FALSE; + unsel=FALSE; while (tempv!=&e->vertex_root) { - if (tempv->flags&VF_SELECTED) { + if (tempv->flags&VF_SEL) { x=tempv->p.x; y=tempv->p.y; z=tempv->p.z; Mat4x4MulXYZ(r,&x,&y,&z); tempv->p.x=x; tempv->p.y=y; tempv->p.z=z; } tempv=tempv->next; } - if (unselect) - MeshVertexSelectAll(e,FALSE); + if (unsel) + MeshVertexSelAll(e,FALSE); } } -U0 MeshFlipTris(CMeshFrame *e) +U0 MeshColorTris(CMeshFrame *e) { - Bool unselect; + Bool unsel; CMeshEdTri *tempt=e->tri_root.next; - if (!MeshSelectCnt(e)) { - MeshTriSelectAll(e,TRUE); - unselect=TRUE; + if (!MeshSelCnt(e)) { + MeshTriSelAll(e,TRUE); + unsel=TRUE; } else - unselect=FALSE; + unsel=FALSE; while (tempt!=&e->tri_root) { - if (tempt->flags & TF_SELECTED) + if (tempt->flags & TF_SEL) + tempt->mt.color=e->cur_color; + tempt=tempt->next; + } + if (unsel) + MeshTriSelAll(e,FALSE); +} + +U0 MeshRevTris(CMeshFrame *e) +{ + Bool unsel; + CMeshEdTri *tempt=e->tri_root.next; + if (!MeshSelCnt(e)) { + MeshTriSelAll(e,TRUE); + unsel=TRUE; + } else + unsel=FALSE; + while (tempt!=&e->tri_root) { + if (tempt->flags & TF_SEL) SwapI64(&tempt->t[1],&tempt->t[2]); tempt=tempt->next; } - if (unselect) - MeshTriSelectAll(e,FALSE); + if (unsel) + MeshTriSelAll(e,FALSE); } U0 MeshRecalcCxCy(CTask *task,CMeshFrame *e) @@ -388,7 +457,7 @@ U0 MPDrawIt(CMeshFrame *e) //$LK,"DCAlias",A="MN:DCAlias"$() allocs a new identity rotation matrix. //We want e->dc's rotation matrix. dc->r=e->dc->r; - + dc->depth_buf=e->depth_buf; MemCpy(&dc->ls,&e->dc->ls,sizeof(CD3I32)); //... and translation (shift) vals. @@ -426,7 +495,7 @@ U0 MPDrawIt(CMeshFrame *e) while (tempt!=&e->tri_root) { if (tempt->cpu_num==Gs->num) { - if (tempt->flags & TF_SELECTED) { + if (tempt->flags & TF_SEL) { if (Blink) dc->color=ROPF_DITHER+WHITE<<16+RED; else @@ -494,7 +563,7 @@ U0 MeshCursorW(CMeshFrame *e,CTask *task,I64 *_x,I64 *_y,I64 *_z) I64 x_shadow,y_shadow,z_shadow, xc=ip.pos.x-task->pix_left-task->scroll_x-e->cx, yc=ip.pos.y-task->pix_top-task->scroll_y-e->cy,zc=0, - x=0,y=0,z=e->my_ip_z, + x=0,y=0,z=e->ip_z, i,x2,y2,z2; Mat4x4MulXYZ(e->w2s,&x,&y,&z); //screen of Z vect @@ -515,7 +584,7 @@ U0 MeshCursorW(CMeshFrame *e,CTask *task,I64 *_x,I64 *_y,I64 *_z) Mat4x4MulXYZ(e->s2w,&x,&y,&z); x=RoundI64(x,e->cur_snap); y=RoundI64(y,e->cur_snap); - z=RoundI64(e->my_ip_z,e->cur_snap); + z=RoundI64(e->ip_z,e->cur_snap); *_x=x; *_y=y; *_z=z; } @@ -542,20 +611,20 @@ U0 MeshClipboardCopy(CMeshFrame *e) MeshClipboardRst; while (tempv!=&e->vertex_root) { - if (tempv->flags&VF_SELECTED) { + if (tempv->flags&VF_SEL) { tempv->copy=tempv2=ACAlloc(sizeof(CMeshEdVertex)); MemCpy(&tempv2->p,&tempv->p,sizeof(CD3I32)); QueIns(tempv2,sys_clipboard_vertex_root.last); tempv->flags|=VF_COPIED; - tempv->flags&=~VF_SELECTED; + tempv->flags&=~VF_SEL; } else { tempv->copy=NULL; - tempv->flags&=~(VF_COPIED|VF_SELECTED); + tempv->flags&=~(VF_COPIED|VF_SEL); } tempv=tempv->next; } while (tempt!=&e->tri_root) { - if (tempt->flags&TF_SELECTED && + if (tempt->flags&TF_SEL && tempt->t[0]->copy && tempt->t[1]->copy && tempt->t[2]->copy) { tempt2=ACAlloc(sizeof(CMeshEdTri)); tempt2->t[0]=tempt->t[0]->copy; @@ -564,9 +633,9 @@ U0 MeshClipboardCopy(CMeshFrame *e) tempt2->mt.color=tempt->mt.color; QueIns(tempt2,sys_clipboard_tri_root.last); tempt->flags|=TF_COPIED; - tempt->flags&=~TF_SELECTED; + tempt->flags&=~TF_SEL; } else - tempt->flags&=~(TF_COPIED|TF_SELECTED); + tempt->flags&=~(TF_COPIED|TF_SEL); tempt=tempt->next; } } @@ -596,13 +665,13 @@ U0 MeshClipboardDel(CMeshFrame *e) CMeshEdTri *tempt=e->tri_root.next,*tempt1; while (tempt!=&e->tri_root) { tempt1=tempt->next; - if (tempt->flags&TF_SELECTED) + if (tempt->flags&TF_SEL) MeshTriDel(e,tempt); tempt=tempt1; } while (tempv!=&e->vertex_root) { tempv1=tempv->next; - if (tempv->flags&VF_SELECTED) + if (tempv->flags&VF_SEL) MeshVertexDel(e,tempv); tempv=tempv1; } @@ -613,20 +682,20 @@ U0 MeshClipboardPaste(CMeshFrame *e) CMeshEdVertex *tempv2=sys_clipboard_vertex_root.next,*tempv; CMeshEdTri *tempt2=sys_clipboard_tri_root.next,*tempt; - MeshVertexSelectAll(e,FALSE); - MeshTriSelectAll(e,FALSE); + MeshVertexSelAll(e,FALSE); + MeshTriSelAll(e,FALSE); while (tempv2!=&sys_clipboard_vertex_root) { tempv2->copy=tempv=CAlloc(sizeof(CMeshEdVertex)); MemCpy(&tempv->p,&tempv2->p,sizeof(CD3I32)); QueIns(tempv,e->vertex_root.last); - tempv->flags|=VF_SELECTED; + tempv->flags|=VF_SEL; tempv2=tempv2->next; } while (tempt2!=&sys_clipboard_tri_root) { tempt=MeshTriNew(e,tempt2->mt.color,tempt2->t[0]->copy, tempt2->t[1]->copy,tempt2->t[2]->copy); - tempt->flags|=TF_SELECTED; + tempt->flags|=TF_SEL; tempt2=tempt2->next; } } @@ -682,6 +751,7 @@ U0 DrawIt(CTask *task,CDC *dc) e->mp_not_done_flags=1<dc=dc; + e->depth_buf=dc->depth_buf; for (i=0;iflags&VF_SELECTED) { - if (e->mode=='t') { + if (tempv->flags&VF_SEL) { + if (e->ed_mode=='t') { if (Blink(10)) //This blinks at 10 Hz. dc->color=ROPF_DITHER+e->cur_color.c0.color<<16+ e->cur_color.c0.color^8; @@ -736,7 +806,7 @@ U0 DrawIt(CTask *task,CDC *dc) dc->color^=0xF; GrLine3(dc,x,y,z,x,y,0); - if (e->select_rect) { + if (e->sel_rect) { dc->flags&=~DCF_TRANSFORMATION; dc->pen_width=1; if (Blink) @@ -755,19 +825,22 @@ U0 MeshInit(CMeshFrame *e,Bool flip_y) MemSet(e,0,sizeof(CMeshFrame)); e->vertex_root.next=e->vertex_root.last=&e->vertex_root; e->tri_root.next=e->tri_root.last=&e->tri_root; - e->mode='v'; + e->ed_mode='v'; e->grid_on=TRUE; e->vertex_on=TRUE; - e->my_ip_z=0; + e->ip_z=0; + e->thickness=25; + e->closed=TRUE; e->view_scale=1.0; e->w2s=NULL; e->s2w=NULL; e->cur_color=RED; e->cur_snap=5; e->flip_y=flip_y; - e->select_rect=FALSE; + e->sel_rect=FALSE; e->cur_tri=NULL; e->cur_vertex=NULL; + e->chain_pred=NULL; } U0 MeshLoad(CMeshFrame *e,U8 *src) @@ -864,13 +937,19 @@ U0 MeshUpdateMenu(CMeshFrame *e) if (tempse=MenuEntryFind(Fs->cur_menu,"View/Vertex")) tempse->checked=ToBool(e->vertex_on); if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/PlaceVertex")) - tempse->checked=ToBool(e->mode=='v'); + tempse->checked=ToBool(e->ed_mode=='v'); if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/MoveVertex")) - tempse->checked=ToBool(e->mode=='m'); + tempse->checked=ToBool(e->ed_mode=='m'); if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/MoveVertexZ")) - tempse->checked=ToBool(e->mode=='M'); - if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/MakeTri")) - tempse->checked=ToBool(e->mode=='t'); + tempse->checked=ToBool(e->ed_mode=='M'); + if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/Triangle")) + tempse->checked=ToBool(e->ed_mode=='t'); + if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/Polygon")) + tempse->checked=ToBool(e->ed_mode=='n'); + if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/Fence")) + tempse->checked=ToBool(e->ed_mode=='f'); + if (tempse=MenuEntryFind(Fs->cur_menu,"Mode/Prism")) + tempse->checked=ToBool(e->ed_mode=='p'); if (tempse=MenuEntryFind(Fs->cur_menu,"View/FlipY")) tempse->checked=ToBool(e->flip_y); } @@ -878,10 +957,10 @@ U0 MeshUpdateMenu(CMeshFrame *e) I32 *SpriteMeshEd(I32 *root=NULL,I64 *_size=NULL,Bool flip_y=FALSE) {/*Fmt for mesh: { - I32 vertex_cnt; - I32 tri_cnt; - CD3I32 vertices[]; - CMeshTri tris[]; +I32 vertex_cnt; +I32 tri_cnt; +CD3I32 vertices[]; +CMeshTri tris[]; } If root points to a mesh, it will load it. @@ -892,7 +971,7 @@ See $LK,"::/Demo/Graphics/SpritePlot3D.CPP"$. $WW,0$*/ CCtrl *c=CtrlFindUnique(Fs,CTRLT_VIEWING_ANGLES); CViewAngles *s,*old_s; - I64 i,msg_code,a1,a2,vn=0,x,y,z; + I64 i,msg_code,sel_mode,a1,a2,make_tri_vertex_num=0,x,y,z; CD3I32 p0a,p0b; CMeshEdVertex *va[3],*tempv; Bool adjusting_z=FALSE,moving,save_and_exit; @@ -931,13 +1010,17 @@ $WW,0$*/ " UnSelectRect(,'u');" " OrSelectRect(,'o');" " JumpToZ(,'j');" - " FlipTri(,'f');" + " ResetColor(,'C');" + " ReverseTri(,'r');" "}" "Mode {" " PlaceVertex(,'v');" " MoveVertex(,'m');" " MoveVertexZ(,'M');" - " MakeTri(,'t');" + " Triangle(,'t');" + " Polygon(,'n');" + " Fence(,'f');" + " Prism(,'p');" "}" "Settings {" " Color(,'c');" @@ -946,7 +1029,7 @@ $WW,0$*/ "View {" " ZoomIn(,'z');" " ZoomOut(,'Z');" - " NullAngles(,'n');" + " NullAngles(,'N');" " FlipY(,'y');" " Grid(,'g');" " Vertex(,'V');" @@ -960,7 +1043,7 @@ $WW,0$*/ " InvertX(,'4');" " InvertY(,'5');" " InvertZ(,'6');" - " FlipTri(,'F');" + " ReverseTri(,'R');" "}"); SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ @@ -969,9 +1052,12 @@ $WW,0$*/ "$$GREEN$$Right Mouse$$FG$$: Hold and move to shift cursor z\n" "$$GREEN$$'j'$$FG$$: Jump cursor Z to nearest vertex's Z\n" "$$GREEN$$'v'$$FG$$: Place Vertex Mode\n" - "$$GREEN$$'t'$$FG$$: Make Tri Mode\n" "$$GREEN$$'m'$$FG$$: Move Vertex Mode\n" "$$GREEN$$'M'$$FG$$: Move Vertex Z\n" + "$$GREEN$$'t'$$FG$$: Form Triangle Mode\n" + "$$GREEN$$'n'$$FG$$: Polygon Mode\n" + "$$GREEN$$'f'$$FG$$: Fence Mode\n" + "$$GREEN$$'p'$$FG$$: Prism Mode\n" "$$GREEN$$'c'$$FG$$: Set color\n" "$$GREEN$$'s'$$FG$$: Set snap\n" "\nSee menu at top of screen for more.\n"); @@ -993,105 +1079,108 @@ $WW,0$*/ MeshUpdateMenu(&e); msg_code=GetMsg(&a1,&a2,1<pix_left-Fs->scroll_x, ip.presnap.y-Fs->pix_top-Fs->scroll_y)); - MeshVertexSelectAll(&e,FALSE); - MeshTriSelectAll(&e,FALSE); - vn=0; + MeshVertexSelAll(&e,FALSE); + MeshTriSelAll(&e,FALSE); + make_tri_vertex_num=0; } break; case SC_INS: - if (e.mode=='t') { - Beep; Beep; - } else { - if (a2&SCF_CTRL) - MeshClipboardCopy(&e); - else if (a2&SCF_SHIFT) { - MeshClipboardPaste(&e); - e.mode='m'; - } - } - break; + if (a2&SCF_CTRL) + goto me_clipboard_copy; + else if (a2&SCF_SHIFT) + goto me_clipboard_paste; } break; case CH_BACKSPACE: - switch (e.mode) { + switch (e.ed_mode) { + case 'n': + case 'f': + case 'p': case 'v': MeshVertexDel(&e,e.cur_vertex); break; case 't': - if (vn) { - MeshVertexSelectAll(&e,FALSE); - MeshTriSelectAll(&e,FALSE); - vn=0; + if (make_tri_vertex_num) { + MeshVertexSelAll(&e,FALSE); + MeshTriSelAll(&e,FALSE); + make_tri_vertex_num=0; } else MeshTriDel(&e,e.cur_tri); break; } break; + case 'f': + case 'p': + e.thickness=PopUpGetI64("Thickness (%d):",e.thickness); + case 'n': + if (a1=='n' || a1=='p') + e.closed=TRUE; + else + e.closed=PopUpNoYes("Closed?\n"); +me_chain: + e.chain_pred=e.vertex_root.last; case 't': - MeshVertexSelectAll(&e,FALSE); - MeshTriSelectAll(&e,FALSE); + MeshVertexSelAll(&e,FALSE); + MeshTriSelAll(&e,FALSE); case 'v': case 'm': case 'M': adjusting_z=FALSE; moving=FALSE; - e.mode=a1; - vn=0; + e.ed_mode=a1; + make_tri_vertex_num=0; Snd(0); break; case 'T': - MeshTransformSelect(&e); + MeshTransformSel(&e); break; case 'A': - MeshTriSelectAll(&e,TRUE); - if (e.mode!='t') - MeshVertexSelectAll(&e,TRUE); + MeshTriSelAll(&e,TRUE); + if (e.ed_mode!='t') + MeshVertexSelAll(&e,TRUE); else - MeshVertexSelectAll(&e,FALSE); - vn=0; + MeshVertexSelAll(&e,FALSE); + make_tri_vertex_num=0; break; case 'U': - MeshTriSelectAll(&e,FALSE); - MeshVertexSelectAll(&e,FALSE); - vn=0; + MeshTriSelAll(&e,FALSE); + MeshVertexSelAll(&e,FALSE); + make_tri_vertex_num=0; break; case 'a': case 'u': case 'o': if (a1=='a') - i=MESH_EQU; + sel_mode=SEL_MESH_EQU; else if (a1=='u') - i=MESH_AND; + sel_mode=SEL_MESH_AND; else - i=MESH_OR; + sel_mode=SEL_MESH_OR; if ((msg_code=GetMsg(&a1,&a2,1<display_flags,DISPLAYf_NO_BORDER)); break; case CH_CTRLC: - if (e.mode=='t') { +me_clipboard_copy: + if (e.ed_mode=='t') { Beep;Beep; } else MeshClipboardCopy(&e); break; case CH_CTRLV: - if (e.mode=='t') { +me_clipboard_paste: + if (e.ed_mode=='t') { Beep;Beep; } else { MeshClipboardPaste(&e); - e.mode='m'; + e.ed_mode='m'; } break; case CH_CTRLX: - if (e.mode=='t') { +me_clipboard_cut: + if (e.ed_mode=='t') { Beep;Beep; } else MeshClipboardCut(&e); break; case CH_SHIFT_ESC: save_and_exit=FALSE; - goto mesh_done; + goto me_done; case CH_ESC: save_and_exit=TRUE; - goto mesh_done; + goto me_done; case 'z': MeshScaleZoom(&e,1.5); break; @@ -1166,7 +1258,7 @@ gm_restart: case 'V': e.vertex_on=!e.vertex_on; break; - case 'n': + case 'N': s->sx=s->sy=s->sz=0; break; case 'y': @@ -1179,10 +1271,10 @@ gm_restart: ip.pos.x-Fs->pix_left-Fs->scroll_x, ip.pos.y-Fs->pix_top-Fs->scroll_y)) { Noise(25,2000,8000); - e.my_ip_z=RoundI64(tempv->p.z,e.cur_snap); + e.ip_z=RoundI64(tempv->p.z,e.cur_snap); } else { Beep; Beep; - e.my_ip_z=0; + e.ip_z=0; } MeshVertexIgnoreSet(&e,FALSE); if (moving) { @@ -1215,26 +1307,28 @@ gm_restart: case '6': MeshInvertAxis(&e,offset(CD3I32.z)); break; - case 'f': + case 'r': if (e.cur_tri) SwapI64(&e.cur_tri->t[1],&e.cur_tri->t[2]); break; - case 'F': - MeshFlipTris(&e); + case 'C': + MeshColorTris(&e); + break; + case 'R': + MeshRevTris(&e); break; - } break; case MSG_IP_L_DOWN: - switch (e.mode) { + switch (e.ed_mode) { case 'm': if (!moving) { - if (!MeshSelectCnt(&e) && + if (!MeshSelCnt(&e) && (tempv=MeshVertexFindScrPt(&e,a1,a2))) { - tempv->flags|=VF_SELECTED; - e.my_ip_z=RoundI64(tempv->p.z,e.cur_snap); + tempv->flags|=VF_SEL; + e.ip_z=RoundI64(tempv->p.z,e.cur_snap); } - if (MeshSelectCnt(&e)) { + if (MeshSelCnt(&e)) { MeshCursorW(&e,Fs,&x,&y,&z); p0a.x=x; p0a.y=y; @@ -1246,12 +1340,12 @@ gm_restart: break; case 'M': if (!adjusting_z && !moving) { - if (!MeshSelectCnt(&e) && + if (!MeshSelCnt(&e) && (tempv=MeshVertexFindScrPt(&e,a1,a2))) { - tempv->flags|=VF_SELECTED; - e.my_ip_z=RoundI64(tempv->p.z,e.cur_snap); + tempv->flags|=VF_SEL; + e.ip_z=RoundI64(tempv->p.z,e.cur_snap); } - if (MeshSelectCnt(&e)) { + if (MeshSelCnt(&e)) { MeshCursorW(&e,Fs,&x,&y,&z); p0a.x=x; p0a.y=y; @@ -1261,16 +1355,19 @@ gm_restart: p0b.x=ip.presnap.x; p0b.y=ip.presnap.y; - p0b.z=e.my_ip_z; + p0b.z=e.ip_z; adjusting_z=TRUE; - Snd(ClampI64(3*e.my_ip_z+1500,0,15000)); + Snd(ClampI64(3*e.ip_z+1500,0,15000)); } } break; } break; case MSG_IP_L_UP: - switch (e.mode) { + switch (e.ed_mode) { + case 'n': + case 'f': + case 'p': case 'v': Noise(25,2000,8000); MeshCursorW(&e,Fs,&x,&y,&z); @@ -1280,7 +1377,7 @@ gm_restart: case 'M': if (moving) { if (adjusting_z) { - e.my_ip_z=RoundI64(Sign(p0b.y-ip.presnap.y) + e.ip_z=RoundI64(Sign(p0b.y-ip.presnap.y) *Sqrt(Sqr(p0b.x-ip.presnap.x)+Sqr(p0b.y-ip.presnap.y)) +p0b.z,e.cur_snap); Snd(0); @@ -1291,27 +1388,27 @@ gm_restart: MeshCursorW(&e,Fs,&x,&y,&z); MeshP0Offset(&e,x-p0a.x,y-p0a.y,z-p0a.z); } - MeshTriSelectAll(&e,FALSE); - MeshVertexSelectAll(&e,FALSE); + MeshTriSelAll(&e,FALSE); + MeshVertexSelAll(&e,FALSE); moving=FALSE; } break; case 't': if (tempv=MeshVertexFindScrPt(&e,a1,a2)) { - for (i=0;iflags|=VF_SELECTED; - if (vn==3) { + va[make_tri_vertex_num++]=tempv; + tempv->flags|=VF_SEL; + if (make_tri_vertex_num==3) { e.cur_tri=MeshTriNew(&e,e.cur_color,va[0],va[1],va[2]); - for (i=0;iflags&=~VF_SELECTED; - vn=0; + for (i=0;iflags&=~VF_SEL; + make_tri_vertex_num=0; } } } @@ -1319,7 +1416,8 @@ gm_restart: } break; case MSG_IP_R_DOWN: - if (e.mode!='M' && !adjusting_z) { + if (e.ed_mode!='M' && e.ed_mode!='n' && e.ed_mode!='f' && + e.ed_mode!='p' && !adjusting_z) { if (moving) { MeshCursorW(&e,Fs,&x,&y,&z); MeshP0Offset(&e,x-p0a.x,y-p0a.y,z-p0a.z); @@ -1330,14 +1428,29 @@ gm_restart: } p0b.x=ip.presnap.x; p0b.y=ip.presnap.y; - p0b.z=e.my_ip_z; + p0b.z=e.ip_z; adjusting_z=TRUE; - Snd(ClampI64(3*e.my_ip_z+1500,0,15000)); + Snd(ClampI64(3*e.ip_z+1500,0,15000)); } break; case MSG_IP_R_UP: - if (e.mode!='M' && adjusting_z) { - e.my_ip_z=RoundI64(Sign(p0b.y-ip.presnap.y) + if (e.ed_mode=='n') { + if (e.chain_pred && e.chain_pred!=e.vertex_root.last) + MeshPolygon(&e,e.chain_pred->next,e.vertex_root.last,FALSE); + a1=e.ed_mode; + goto me_chain; + } else if (e.ed_mode=='f') { + if (e.chain_pred && e.chain_pred!=e.vertex_root.last) + MeshFence(&e); + a1=e.ed_mode; + goto me_chain; + } else if (e.ed_mode=='p') { + if (e.chain_pred && e.chain_pred!=e.vertex_root.last) + MeshPrism(&e); + a1=e.ed_mode; + goto me_chain; + } else if (e.ed_mode!='M' && adjusting_z) { + e.ip_z=RoundI64(Sign(p0b.y-ip.presnap.y) *Sqrt(Sqr(p0b.x-ip.presnap.x)+Sqr(p0b.y-ip.presnap.y)) +p0b.z,e.cur_snap); Snd(0); @@ -1354,10 +1467,10 @@ gm_restart: break; case MSG_IP_MOVE: if (adjusting_z) { - e.my_ip_z=RoundI64(Sign(p0b.y-ip.presnap.y) + e.ip_z=RoundI64(Sign(p0b.y-ip.presnap.y) *Sqrt(Sqr(p0b.x-ip.presnap.x)+Sqr(p0b.y-ip.presnap.y)) +p0b.z,e.cur_snap); - Snd(ClampI64(3*e.my_ip_z+1500,0,15000)); + Snd(ClampI64(3*e.ip_z+1500,0,15000)); } if (moving) { MeshCursorW(&e,Fs,&x,&y,&z); @@ -1373,7 +1486,7 @@ gm_restart: break; } } -mesh_done: +me_done: } catch Fs->catch_except=TRUE; SettingsPop; diff --git a/Adam/Opt/Boot/BootDVD.CPP b/Adam/Opt/Boot/BootDVD.CPP index 414fd13..4122f1b 100644 --- a/Adam/Opt/Boot/BootDVD.CPP +++ b/Adam/Opt/Boot/BootDVD.CPP @@ -58,7 +58,7 @@ BDVD_NOT64_MSG: BDVD_BLK_LO:: DU16 0; BDVD_BLK_HI:: DU16 0; BDVD_BLK_CNT:: DU16 0; - +BDVD_SHIFT_BLKS:: DU16 0; BDVD_PROGRESS_STEP:: DU32 0; BDVD_PROGRESS_VAL:: DU32 0; @@ -150,10 +150,35 @@ BDVD_MAIN:: POP CX LOOP @@20 +//Shift backward to align + PUSH DS + MOV BX,U16 [BDVD_SHIFT_BLKS-BDVD_START] + SHL BX,BLK_SIZE_BITS-4 + MOV CX,U16 [BDVD_BLK_CNT-BDVD_START] + MOV AX,BOOT_RAM_BASE/16 + MOV ES,AX + ADD AX,BX + MOV DS,AX +@@35: PUSH CX + XOR SI,SI + XOR DI,DI + MOV CX,DVD_BLK_SIZE/4 + REP_MOVSD + MOV AX,DS + ADD AX,DVD_BLK_SIZE/16 + MOV DS,AX + MOV AX,ES + ADD AX,DVD_BLK_SIZE/16 + MOV ES,AX + POP CX + LOOP @@35 + POP DS + //See $LK,"BootDVDProve",A="MN:BootDVDProve"$(). - MOV EBX,U32 [BDVD_BLK_LO-BDVD_START] //TODO: oops overflow? - SHL EBX,16 - MOV BX,BOOT_SRC_DVD //$MA-X+PU,"See sys_boot_src",LM="Find(\"sys_boot_src\",\"/*\");View;\n"$ + MOV EBX,U32 [BDVD_BLK_LO-BDVD_START] + MOV AX,U16 [BDVD_SHIFT_BLKS-BDVD_START] + SHL EAX,16 + MOV AX,BOOT_SRC_DVD //$MA-X+PU,"See sys_boot_src",LM="Find(\"sys_boot_src\",\"/*\");View;\n"$ //My assembler doesn't support 16-bit very well. DU8 0xEA; //JMP BOOT_RAM_BASE:0000 diff --git a/Adam/Opt/Boot/BootHD.CPP b/Adam/Opt/Boot/BootHD.CPP index 33a471f..910d0e5 100644 --- a/Adam/Opt/Boot/BootHD.CPP +++ b/Adam/Opt/Boot/BootHD.CPP @@ -86,7 +86,8 @@ BHD_HISTART: @@10: POP CX LOOP @@05 - MOV EBX,BOOT_SRC_HARDDRV //$MA-X+PU,"See sys_boot_src",LM="Find(\"sys_boot_src\",\"/*\");View;\n"$ + XOR EBX,EBX + MOV EAX,BOOT_SRC_HARDDRV //$MA-X+PU,"See sys_boot_src",LM="Find(\"sys_boot_src\",\"/*\");View;\n"$ //My assembler doesn't support 16-bit very well. DU8 0xEA; //JMP BOOT_RAM_BASE:0000 DU16 0,BOOT_RAM_BASE/16; diff --git a/Adam/Opt/Boot/BootIns.CPP b/Adam/Opt/Boot/BootIns.CPP index 44250a1..132080d 100644 --- a/Adam/Opt/Boot/BootIns.CPP +++ b/Adam/Opt/Boot/BootIns.CPP @@ -48,7 +48,7 @@ public Bool MakeOSDrvBootInstall(U8 src_drv=0,U8 dst_drv=0) if (!Drv(src_drv)) throw; MakeAll; - if ((bd=Let2BlkDev(dst_drv,FALSE)) && (dv=Let2Drv(dst_drv,FALSE))) + if ((dv=Let2Drv(dst_drv,FALSE)) && (bd=dv->bd)) type=bd->type; else { type=BDT_ATAPI; @@ -56,6 +56,7 @@ public Bool MakeOSDrvBootInstall(U8 src_drv=0,U8 dst_drv=0) } switch (type) { case BDT_ATAPI: + case BDT_FILE: Move("/Kernel/Kernel.BIN.Z",BOOT_DIR_KERNEL_BIN_C); res=TRUE; break; @@ -67,7 +68,7 @@ public Bool MakeOSDrvBootInstall(U8 src_drv=0,U8 dst_drv=0) else { Free(de.full_name); "Modifying partition boot record.\n"; - RBlks(dv,&br,dv->base_offset,1); + RBlks(dv,&br,dv->drv_offset,1); br.jump_and_nop[0]=OC_JMP_REL8; br.jump_and_nop[1]=offset(CFAT32Boot.code)-2; #assert offset(CFAT32Boot.code)>=offset(CRedSeaBoot.code) @@ -79,7 +80,7 @@ public Bool MakeOSDrvBootInstall(U8 src_drv=0,U8 dst_drv=0) #assert sizeof(CFAT32Boot.code)>=BHD_END-BHD_CODE for (;ibase_offset,1); + WBlks(dv,&br,dv->drv_offset,1); res=TRUE; } break; @@ -172,7 +173,7 @@ public Bool MasterBootInstall(U8 drv_let,U8 *drv_lst=NULL) if (dv->fs_type!=FSt_REDSEA && dv->fs_type!=FSt_FAT32) PrintErr("File System Not Supported\n"); else { - bd=Let2BlkDev(drv_let); + bd=dv->bd; if (!FileFind(BOOT_DIR_OLDMBR_BIN_C,,FUF_JUST_FILES)) MasterBootOldRead(drv_let,drv_let); @@ -190,14 +191,14 @@ public Bool MasterBootInstall(U8 drv_let,U8 *drv_lst=NULL) ptr=buf; while (ch=*ptr++) { - if ((p1=Let2Drv(ch,FALSE)) && (bd1=Let2BlkDev(ch,FALSE)) && bd1==bd) { - *_q=p1->base_offset; + if ((p1=Let2Drv(ch,FALSE)) && (bd1=p1->bd) && bd1==bd) { + *_q=p1->drv_offset; "Drive %C:%16X\n",Drv2Let(p1),*_q; CatPrint(menu_ptr,"%d. Drive %C\n\r",j++,Drv2Let(p1)); _q++; } } - CatPrint(menu_ptr,"\n\rSelection:"); + CatPrint(menu_ptr,"\n\rSellection:"); size=BMHD2_END-BMHD2_START; FileWrite(BOOT_DIR_BOOTMHD2_BIN_C,BMHD2_START,size); diff --git a/Adam/Opt/Boot/DskISOFile.CPP b/Adam/Opt/Boot/DskISO9660.CPP similarity index 92% rename from Adam/Opt/Boot/DskISOFile.CPP rename to Adam/Opt/Boot/DskISO9660.CPP index 2c275c7..c3db64d 100644 --- a/Adam/Opt/Boot/DskISOFile.CPP +++ b/Adam/Opt/Boot/DskISO9660.CPP @@ -1,28 +1,14 @@ #help_index "File/CD DVD" -U0 FillU16Palindrome(CPalindromeU16 *dst,U16 w) -{ - dst->big=EndianU16(w); - dst->little=w; -} - -U0 FillU32Palindrome(CPalindromeU32 *dst,I64 d) -{ - dst->big=EndianU32(d); - dst->little=d; -} - class CCDVDUserData //Create DVD { I64 loc,path_entry_num, short_dir_blks,long_dir_blks; }; -I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde, - CISO1DirEntry *tempi,CISO1DirEntry *tempi2, - I64 *_cur_blk, - CDirEntry *parent,Bool write, - U8 *stage2_filename,I64 *_stage2_blk) +I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde,CISO1DirEntry *tempi, + CISO1DirEntry *tempi2,I64 *_cur_blk,CDirEntry *parent,Bool write, + U8 *stage2_filename,I64 *_stage2_blk) { CCDVDUserData *tempc; CDirEntry *tempde1,*tempde2; @@ -65,7 +51,7 @@ I64 DVDFileCreate2(CFile *out_file,CDirEntry *tempde, de2->flags=ISO1_ATTR_DIR; de2->name_len=1; de2->name=0; - de2->len=de2->len+de2->name_len; + de2->len+=de2->name_len; de2(U8 *)+=de2->len; de2->len=sizeof(CISO1DirEntry)-1; @@ -315,20 +301,7 @@ U0 DVDFillPathTable(CDirEntry *tempde, } } -class CElTorito -{ - U16 w[16]; - U8 bootable; //88=bootable 00=not bootable - U8 media_type; //0=no emulation 4=hard disk - U16 load_seg; //0000->07C0 - U8 sys_type; - U8 zero; - U16 sect_cnt; - U32 load_rba; //start addr of virtual disk - U8 zero2[20]; -}; - -public I64 ISOFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask, +public I64 ISO9660ISO(U8 *_filename=NULL,U8 *src_files_find_mask, U8 *fu_flags=NULL,U8 *_stage2_filename=NULL) {//See $LK,"::/Misc/DoDistro.CPP"$ //Use "C:/Distro/*" if you want all files in the C:/Distro directory. @@ -338,7 +311,7 @@ public I64 ISOFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask, *iso_sup=CAlloc(DVD_BLK_SIZE), *iso_term=CAlloc(DVD_BLK_SIZE); CDirEntry *rootdir=CAlloc(sizeof(CDirEntry)); - I64 i,j,stage2_blk=(DVD_FILE_OFFSET+1<<2+DVD_BOOT_LOADER_SIZE/BLK_SIZE)>>2, + I64 i,j,stage2_blk=(20<<2+1<<2+DVD_BOOT_LOADER_SIZE/BLK_SIZE)>>2, stage2_size,cur_blk=0,tabsize,tabsize2,first_free,max_depth,fuf_flags=0; U32 *d; CElTorito *et=CAlloc(DVD_BLK_SIZE); @@ -369,13 +342,12 @@ public I64 ISOFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask, tempc=rootdir->user_data; tempc->path_entry_num=1; - cur_blk=DVD_FILE_OFFSET>>2; + cur_blk=20<<2>>2; if (stage2_filename) //preboot and bootloader cur_blk+=1+DVD_BOOT_LOADER_SIZE/DVD_BLK_SIZE; - DVDFileCreate2(out_file,rootdir, - &iso_pri->root_dir_record, - &iso_sup->root_dir_record, - &cur_blk,rootdir,FALSE,stage2_filename,&stage2_blk); + DVDFileCreate2(out_file,rootdir,&iso_pri->root_dir_record, + &iso_sup->root_dir_record,&cur_blk,rootdir,FALSE, + stage2_filename,&stage2_blk); tabsize=sizeof(CISO1PathEntry); tabsize2=sizeof(CISO1PathEntry); max_depth=DVDTableLen(rootdir,&tabsize,&tabsize2,1); @@ -394,7 +366,7 @@ public I64 ISOFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask, if (!out_file) goto cf_done; - while (cur_blk>2) + while (cur_blk<20<<2>>2) FWBlks(out_file,zero_buf,cur_blk++<<2,4); iso_pri->type=ISO1T_PRI_VOL_DESC; @@ -418,7 +390,7 @@ public I64 ISOFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask, iso_boot->version=1; StrCpy(iso_boot(U8 *)+7,"EL TORITO SPECIFICATION"); - cur_blk=DVD_FILE_OFFSET>>2; + cur_blk=20<<2>>2; if (stage2_filename) { d=iso_boot(U8 *)+0x47; @@ -511,7 +483,7 @@ public I64 ISOFileCreate(U8 *_filename=NULL,U8 *src_files_find_mask, "$$RED$$!!! Boot Stage 2 !!! %X-%X$$FG$$\n", stage2_blk,stage2_blk+stage2_size-1; FWBlks(out_file,stage1_buf, - DVD_FILE_OFFSET+1<<2,DVD_BOOT_LOADER_SIZE/BLK_SIZE); + 20<<2+1<<2,DVD_BOOT_LOADER_SIZE/BLK_SIZE); } else { FWBlks(out_file,iso_sup,17<<2,4); FWBlks(out_file,iso_term,18<<2,4); diff --git a/Adam/Opt/Boot/DskISORedSea.CPP b/Adam/Opt/Boot/DskISORedSea.CPP new file mode 100644 index 0000000..5885c46 --- /dev/null +++ b/Adam/Opt/Boot/DskISORedSea.CPP @@ -0,0 +1,186 @@ +#help_index "File/CD DVD" + +U0 FillU16Palindrome(CPalindromeU16 *dst,U16 w) +{ + dst->big=EndianU16(w); + dst->little=w; +} + +U0 FillU32Palindrome(CPalindromeU32 *dst,I64 d) +{ + dst->big=EndianU32(d); + dst->little=d; +} + +class CElTorito +{ + U16 w[16]; + U8 bootable; //88=bootable 00=not bootable + U8 media_type; //0=no emulation 4=hard disk + U16 load_seg; //0000->07C0 + U8 sys_type; + U8 zero; + U16 sect_cnt; + U32 load_rba; //start addr of virtual disk + U8 zero2[20]; +}; + +U0 RedSeaISO9660(U8 *iso_filename,U8 drv_let,I64 stage2_blk=0,I64 stage2_size=0) +{ + CDrv *dv=Let2Drv(drv_let); + CISO1PriDesc *iso_pri=CAlloc(DVD_BLK_SIZE), + *iso_boot=CAlloc(DVD_BLK_SIZE), + *iso_sup=CAlloc(DVD_BLK_SIZE), + *iso_term=CAlloc(DVD_BLK_SIZE); + I64 iso_size=0,i,j; + U32 *d; + CElTorito *et=CAlloc(DVD_BLK_SIZE); + U8 *stage1_buf=CAlloc(DVD_BOOT_LOADER_SIZE), + *zero_buf=CAlloc(DVD_BLK_SIZE); + CFile *out_file=NULL; + + if (out_file=FOpen(iso_filename,"wc+")) { + iso_size=FSize(out_file)/DVD_BLK_SIZE; + for (i=0;ibd->drv_offset;i+=4) + FWBlks(out_file,zero_buf,i,4); + + iso_pri->type=ISO1T_PRI_VOL_DESC; + StrCpy(iso_pri->id,"CD001"); + iso_pri->version=1; + FillU16Palindrome(&iso_pri->vol_set_size,1); + FillU16Palindrome(&iso_pri->vol_seq_num,1); + FillU16Palindrome(&iso_pri->log_block_size,DVD_BLK_SIZE); + FillU32Palindrome(&iso_pri->vol_space_size,iso_size); + FillU32Palindrome(&iso_pri->root_dir_record,dv->root_cluster); + iso_pri->file_structure_version=1; + StrCpy(iso_pri->publisher_id,"TempleOS RedSea"); + + MemCpy(iso_sup,iso_pri,DVD_BLK_SIZE); + iso_sup->type=ISO1T_SUPPLEMENTARY_DESC; + + iso_boot->type=ISO1T_BOOT_RECORD; + StrCpy(iso_boot->id,"CD001"); + iso_boot->version=1; + StrCpy(iso_boot(U8 *)+7,"EL TORITO SPECIFICATION"); + + FWBlks(out_file,iso_pri,16<<2,4); + iso_term->type=ISO1T_TERMINATOR; + StrCpy(iso_term->id,"CD001"); + iso_term->version=1; + if (stage2_blk) { + d=iso_boot(U8 *)+0x47; + *d=20<<2>>2; + FWBlks(out_file,iso_boot,17<<2,4); + + FWBlks(out_file,iso_sup,18<<2,4); + FWBlks(out_file,iso_term,19<<2,4); + + et->w[0]=1; + StrCpy(&et->w[2],"TempleOS"); + et->w[15]=0xAA55; + j=0; + for (i=0;i<16;i++) //Checksum + j+=et->w[i]; + et->w[14]=-j; + et->bootable=0x88; + et->media_type=0;//0=no emu 2=1.44meg 4=hard drive + et->sect_cnt=4; //5 seems like the limit, 4 is safer + et->load_rba=20<<2>>2+1; + FWBlks(out_file,et,20<<2,4); + + MemCpy(stage1_buf,BDVD_START,BDVD_END-BDVD_START); + *(BDVD_BLK_LO -BDVD_START+stage1_buf)(U32 *)=stage2_blk>>2; + *(BDVD_BLK_CNT -BDVD_START+stage1_buf)(U16 *)= + (stage2_size+DVD_BLK_SIZE-1)>>(BLK_SIZE_BITS+2); + *(BDVD_SHIFT_BLKS -BDVD_START+stage1_buf)(U16 *)=stage2_blk&3; + if (stage2_blk&3) + *(BDVD_BLK_CNT -BDVD_START+stage1_buf)(U16 *)+=1; + FWBlks(out_file,stage1_buf, + 20<<2+1<<2,DVD_BOOT_LOADER_SIZE/BLK_SIZE); + } else { + FWBlks(out_file,iso_sup,17<<2,4); + FWBlks(out_file,iso_term,18<<2,4); + } + FClose(out_file); + } + Free(zero_buf); + Free(stage1_buf); + Free(et); + Free(iso_pri); + Free(iso_boot); + Free(iso_sup); + Free(iso_term); +} + +I64 RedSeaISOPass1(CDirEntry *tempde) +{ + I64 dir_entry_cnt=3+LinkedLstCnt(tempde),res=0; + while (tempde) { + if (tempde->attr & RS_ATTR_DIR) { + if (tempde->sub) + res+=RedSeaISOPass1(tempde->sub); + else + res+=BLK_SIZE; //Empty dir + } else + res+=CeilU64(tempde->size,BLK_SIZE); + tempde=tempde->next; + } + res+=CeilU64(dir_entry_cnt<<6,BLK_SIZE); //Size in bytes +#assert CDIR_SIZE==64 + return res; +} +public I64 RedSeaISO(U8 *_iso_filename=NULL,U8 *_src_dir, + U8 *_stage2_filename=NULL) +{//See $LK,"::/Misc/DoDistro.CPP"$. Must be ISO.C + I64 i,res,root_cnt,root_dir_blks,bitmap_blks,bitmap_blks1; + CDirEntry *tempde,de; + U8 buf[STR_LEN],*iso_filename,*src_dir,*stage2_filename; + CDrv *dv=DrvNextFree('M'); //First $LK,"BDT_FILE",A="MN:BDT_FILE"$ + CBlkDev *bd=BlkDevNextFree(dv->drv_let,BDT_FILE); + + if (!_iso_filename) + _iso_filename=blkdev.dft_iso_filename; + iso_filename=ChgExt(_iso_filename,"ISO.C"); + src_dir=DirNameAbs(_src_dir); + if (_stage2_filename) { + stage2_filename=FileNameAbs(_stage2_filename); + *stage2_filename=dv->drv_let; + i=StrLen(src_dir); + if (i!=3) //If not root + i++; //Skip slash + StrCpy(stage2_filename+3,stage2_filename+i); + } else + stage2_filename=NULL; + tempde=FilesFind(src_dir,FUF_RECURSE); + root_cnt=LinkedLstCnt(tempde)+3; + root_dir_blks=CeilU64(root_cnt<<6,BLK_SIZE)>>BLK_SIZE_BITS; + if (res=RedSeaISOPass1(tempde)>>BLK_SIZE_BITS) { + bd->drv_offset=19<<2; + if (stage2_filename) //preboot and bootloader + bd->drv_offset+=(DVD_BLK_SIZE*2+DVD_BOOT_LOADER_SIZE)/BLK_SIZE; + + bitmap_blks=1; + do { + bitmap_blks1=bitmap_blks; + bitmap_blks=(res+bitmap_blks+BLK_SIZE<<3-1)/BLK_SIZE<<3; + } while (bitmap_blks!=bitmap_blks1); + + bd->max_blk=CeilI64(bd->drv_offset+1+bitmap_blks+res,4); + bd->max_blk--; //Inclusive. + bd->file_dsk_name=AStrNew(iso_filename); + bd->init_root_dir_blks=root_dir_blks; + BlkDevAdd(bd,TRUE,TRUE); + StrPrint(buf,"%C:/",dv->drv_let); + CopyTree(src_dir,buf,TRUE); + if (FileFind(stage2_filename,&de)) + RedSeaISO9660(iso_filename,dv->drv_let,de.cluster,de.size); + else + RedSeaISO9660(iso_filename,dv->drv_let); + DrvDel(dv); + BlkDevDel(bd); + } + Free(stage2_filename); + Free(src_dir); + Free(iso_filename); + return res; +} diff --git a/Adam/Opt/Boot/MakeBoot.CPP b/Adam/Opt/Boot/MakeBoot.CPP index 75b0f46..72476e3 100644 --- a/Adam/Opt/Boot/MakeBoot.CPP +++ b/Adam/Opt/Boot/MakeBoot.CPP @@ -3,7 +3,8 @@ Cd(__DIR__);; #include "BootHD" #include "BootMHD" #include "BootMHD2" -#include "DskISOFile" +#include "DskISORedSea" +#include "DskISO9660" #include "BootIns" #include "Reboot" Cd("..");; diff --git a/Adam/Opt/Boot/Reboot.CPP b/Adam/Opt/Boot/Reboot.CPP index 1e54415..593592e 100644 --- a/Adam/Opt/Boot/Reboot.CPP +++ b/Adam/Opt/Boot/Reboot.CPP @@ -43,6 +43,7 @@ public U0 RAMReboot(U8 *filename) while (sys_ram_reboot<0x100000); hi_image->boot_src=BOOT_SRC_RAM; + hi_image->boot_blk=0; hi_image->boot_patch_table_base=lo_image(U8 *)+hi_image->h.patch_table_offset; hi_image->sys_run_level =lo_image->sys_run_level&(RLF_VGA|RLF_16BIT); MemCpy(&hi_image->start,&lo_image->start, diff --git a/Adam/Opt/Utils/Diff.CPP b/Adam/Opt/Utils/Diff.CPP index 976a058..6380c9d 100644 --- a/Adam/Opt/Utils/Diff.CPP +++ b/Adam/Opt/Utils/Diff.CPP @@ -34,7 +34,7 @@ I64 DiffEntriesCompare(CDocEntry *doc_e1,CDocEntry *doc_e2) #define DF_ABORT_ALL_FILES 0x20 #define DF_NO_MORE_PMTS_THIS_FILE 0x40 -U0 DiffSelect(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi, +U0 DiffSel(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi, I64 j2_lo,I64 j2_hi,I64 cnt1,I64 cnt2, CDocEntry **doc_unsorted1,CDocEntry **doc_unsorted2) { @@ -150,7 +150,7 @@ Bool DiffSub(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi,I64 j2_lo,I64 j2_hi, if (j1_lo>=j1_hi || j2_lo>=j2_hi) { if (j1_loy+1,TRUE); + PutFileLink(haystack_filename,,doc_e->y+1,TRUE); name_buf=MStrPrint("%s,%d",haystack_filename,doc_e->y+1); if (cur_l=DocPut) { old_flags=cur_l->flags&DOCF_PLAIN_TEXT; diff --git a/Adam/Opt/Utils/LinkChk.CPP b/Adam/Opt/Utils/LinkChk.CPP index 29f44ea..50c765a 100644 --- a/Adam/Opt/Utils/LinkChk.CPP +++ b/Adam/Opt/Utils/LinkChk.CPP @@ -20,13 +20,13 @@ I64 LinkChkDoc(CDoc *doc,I64 *_fuf_flags) Fs->put_doc=old_doc; DocUnlock(old_doc); if (!found) { - PutFileLink(doc->filename.name,doc_e->y); + PutFileLink(doc->filename.name,,doc_e->y); "$$RED$$ %04d:%s\n$$FG$$",doc_e->y,st; res++; } Free(st); } else if (doc_e->type_u8==DOCT_ERROR) { - PutFileLink(doc->filename.name,doc_e->y); + PutFileLink(doc->filename.name,,doc_e->y); "$$RED$$ Doc Error\n$$FG$$"; res++; } diff --git a/Adam/Opt/Utils/ToTXT.CPP b/Adam/Opt/Utils/ToTXT.CPP index e9df36a..b37bc24 100644 --- a/Adam/Opt/Utils/ToTXT.CPP +++ b/Adam/Opt/Utils/ToTXT.CPP @@ -12,7 +12,7 @@ U0 TXTPutS(CDoc *doc,U8 *st,I64 *_col) } while (*_col&7); break; - sub_switch_start: + start: case 'ã': ptr="pi"; break; case 'é': ptr="theta"; break; case 'è': ptr="phi"; break; @@ -20,7 +20,7 @@ U0 TXTPutS(CDoc *doc,U8 *st,I64 *_col) case 'ì': ptr="inf"; break; case 'æ': ptr="u"; break; case CH_SHIFT_SPACE: ptr=" "; break; - sub_switch_end: + end: DocPrint(doc,ptr); *_col=*_col+StrLen(ptr); break; diff --git a/Adam/Training.CPP b/Adam/Training.CPP index 5d56c49..56eddb9 100644 --- a/Adam/Training.CPP +++ b/Adam/Training.CPP @@ -53,9 +53,9 @@ U0 KeyMapCtrlAltFamily(Bool no_shift,Bool shift) if (no_shift) KeyMapKeyPrint(SC_DELETE+SCF_CTRL+SCF_ALT+no_shift_f, &Reboot,"Cmd /Reboot"); if (no_shift) KeyMapKeyPrint(SC_ESC+SCF_CTRL+SCF_ALT+no_shift_f, - &User,"Cmd /Spawn New User Task"); + &User,"Cmd /Terminal Window"); if (no_shift) KeyMapKeyPrint(SC_TAB+SCF_CTRL+SCF_ALT+no_shift_f, - &WinToTop,"Cmd /Switch Focus to Next Task"); + &WinToTop,"Cmd /Next Focus Task"); for (i=0;i<26;i++) if (keydev.fp_ctrl_alt_cbs[i]) { diff --git a/Adam/WinA.CPP b/Adam/WinA.CPP index 916cbcb..acb1085 100644 --- a/Adam/WinA.CPP +++ b/Adam/WinA.CPP @@ -104,7 +104,7 @@ U0 ExtendedASCII() { I64 i; CDoc *doc=DocNew; - DocPrint(doc,"Select Char and Press \n$$LTBLUE$$"); + DocPrint(doc,"Sel Char and Press \n$$LTBLUE$$"); for (i=0;i<256;i++) { if (i>=CH_SHIFT_SPACE && i!=0x7F) { if (i==CH_SHIFT_SPACE) diff --git a/Apps/Budget/BgtMain.CPP b/Apps/Budget/BgtMain.CPP index e2259da..7040e2c 100644 --- a/Apps/Budget/BgtMain.CPP +++ b/Apps/Budget/BgtMain.CPP @@ -2,7 +2,7 @@ extern U0 BgtRegen(); Bool BgtPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) {//ch=ASCII; sc=scan_code - nounusedwarn sc; + no_warn sc; CBgtEntry *tempb,*tempb1; CBgtTemplate *tempt,*tempt1; CDocEntry *doc_ce; @@ -51,7 +51,7 @@ Bool BgtPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) case 'a': PopUpOk( "Set the name and color of your accounts.\n" "To delete accounts, manually edit\n" - "$$GREEN$$/Home/Budget/Accts.TXT.Z$$FG$$."); + "$$GREEN$$~/Budget/Accts.TXT.Z$$FG$$."); if (PopUpEd(BGT_ACCTS_FILE,Fs)) { BgtAcctsRead; BgtRegen; diff --git a/Apps/Budget/Budget.CPP b/Apps/Budget/Budget.CPP index 9282498..9453492 100644 --- a/Apps/Budget/Budget.CPP +++ b/Apps/Budget/Budget.CPP @@ -1,6 +1,6 @@ -#define BGT_STRINGS_FILE "::/Home/Budget/Strs.TXT.Z" -#define BGT_ACCTS_FILE "::/Home/Budget/Accts.TXT.Z" -#define BGT_DATA_FILE "::/Home/Budget/Bgt.DAT.Z" +#define BGT_STRINGS_FILE "~/Budget/Strs.TXT.Z" +#define BGT_ACCTS_FILE "~/Budget/Accts.TXT.Z" +#define BGT_DATA_FILE "~/Budget/Bgt.DAT.Z" #define BE_NORMAL 0 #define BE_GAS 1 diff --git a/Apps/Budget/Install.CPP b/Apps/Budget/Install.CPP index 2e99028..8abae5c 100644 --- a/Apps/Budget/Install.CPP +++ b/Apps/Budget/Install.CPP @@ -1,5 +1,5 @@ Cd(__DIR__);; -if (!FileFind("::/Home/Budget",,FUF_JUST_DIRS)) { - MkDir("::/Home/Budget"); - Copy("Accts.TXT.Z","::/Home/Budget"); +if (!FileFind("~/Budget",,FUF_JUST_DIRS)) { + MkDir("~/Budget"); + Copy("Accts.TXT.Z","~/Budget"); } diff --git a/Apps/KeepAway/KeepAway.CPP b/Apps/KeepAway/KeepAway.CPP index c5f2f15..abf3786 100644 --- a/Apps/KeepAway/KeepAway.CPP +++ b/Apps/KeepAway/KeepAway.CPP @@ -240,16 +240,17 @@ I64 score0,score1; #define NUM_PER_SIDE 3 #define NUM_OBJS (NUM_PER_SIDE*2+1) -Bool someone_shooting; - +Bool someone_shooting,someone_has_ball; +F64 shot_land_t; + class Obj { I64 team; //-1 is ball - F64 x,y,z,DxDt,DyDt,DzDt,ay,radius,stolen_t0; - F64 last_t0,next_t0,foul_t0; + F64 x,y,z,DxDt,DyDt,DzDt,é,radius,stolen_t0; + F64 get_ball_dt,get_ball_é,nearest_man_dd,last_t0,next_t0,foul_t0; I64 last_img,next_img; - Bool stopped,shooting,has_ball,pad[5]; -} objs[NUM_OBJS],*ball,*human; + Bool stopped,shooting,has_ball,nearest_ball,pad[4]; +} objs[NUM_OBJS],*ball,*human,*last_owner; /*Just to be different, I didn't use the built-in DCF_TRANSFORMATION flag in this game. @@ -282,7 +283,7 @@ U0 DrawObj(CDC *dc,Obj *o,F64 tt) temps=SpriteInterpolate((tt-o->last_t0)/(o->next_t0-o->last_t0), imgs[o->last_img].img[o->team], imgs[o->next_img].img[o->team]); - SpriteY3B(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,temps,o->ay); + SpriteY3B(dc,o->x,(o->y-o->z)/2,GR_Z_ALL-o->y,temps,o->é); Free(temps); } } @@ -316,9 +317,9 @@ U0 DrawIt(CTask *task,CDC *dc) o=o_sort[i]=&objs[i]; if (o!=ball) { if (o->has_ball) { - ball->x=o->x+HAND_X_OFFSET*Cos(o->ay-ã/2)+HAND_Y_OFFSET*Cos(o->ay); + ball->x=o->x+HAND_X_OFFSET*Cos(o->é-ã/2)+HAND_Y_OFFSET*Cos(o->é); //The factor 2 is because the man is not transformed. - ball->y=o->y+HAND_X_OFFSET*Sin(o->ay-ã/2)/2+HAND_Y_OFFSET*Sin(o->ay)/2; + ball->y=o->y+HAND_X_OFFSET*Sin(o->é-ã/2)/2+HAND_Y_OFFSET*Sin(o->é)/2; if (ball->z+ball->radius*2>o->z+HAND_Z_OFFSET) ball->z=o->z+HAND_Z_OFFSET-ball->radius*2; } else if (o->shooting) { @@ -355,10 +356,12 @@ U0 DrawIt(CTask *task,CDC *dc) o->next_img=FIRST_SHOOTING; if (o->next_img>LAST_SHOOTING) { o->next_img=FIRST_STANDING; - someone_shooting=o->has_ball=o->shooting=FALSE; - ball->DxDt=o->DxDt+SHOT_VELOCITY/sqrt2*Cos(o->ay-ã/2); - ball->DyDt=o->DyDt+SHOT_VELOCITY/sqrt2*Sin(o->ay-ã/2); + someone_has_ball=someone_shooting=o->has_ball=o->shooting=FALSE; + ball->DxDt=o->DxDt+SHOT_VELOCITY/sqrt2*Cos(o->é-ã/2); + ball->DyDt=o->DyDt+SHOT_VELOCITY/sqrt2*Sin(o->é-ã/2); ball->DzDt=o->DzDt+SHOT_VELOCITY/sqrt2; + shot_land_t=tt+(ball->DzDt+Sqrt(Sqr(ball->DzDt)+ + 2*GRAVITY_ACCELERATION*ball->z))/GRAVITY_ACCELERATION; } else { ball->DxDt=0; ball->DyDt=0; @@ -426,9 +429,9 @@ U0 Shoot(Obj *o) U0 AnimateTask(CTask *parent_task) { F64 d,dx,dy,dt,dx2,dy2,t0=tS; - I64 i,j,team; - Bool gets_ball,ball_stolen; - Obj *o; + I64 i,j; + Bool gets_ball; + Obj *o,*nearest_ball[2]; while (TRUE) { dt=tS-t0; t0=tS; @@ -444,10 +447,29 @@ U0 AnimateTask(CTask *parent_task) } } - if (game_t_end) + if (game_t_end) { + MemSet(&nearest_ball,0,sizeof(nearest_ball)); for (i=0;inearest_ball=FALSE; + if (o!=ball) { + d=0; + for (j=0;j<5;j++) //Iterative estimate of how long to get ball. + d=Sqrt(Sqr(ball->DxDt*d+ball->x-o->x)+ + Sqr(ball->DyDt*d+ball->y-o->y))/MAN_VELOCITY; + o->get_ball_dt=d; + o->get_ball_é=Arg(ball->DxDt*d+ball->x-o->x, + ball->DyDt*d+ball->y-o->y); + if (o!=last_owner && !nearest_ball[o->team] || + o->get_ball_dtteam]->get_ball_dt) + nearest_ball[o->team]=o; + } + } + nearest_ball[0]->nearest_ball=TRUE; + nearest_ball[1]->nearest_ball=TRUE; + for (i=0;ix+=dt*o->DxDt; o->y+=dt*o->DyDt; @@ -460,32 +482,31 @@ U0 AnimateTask(CTask *parent_task) dy=ball->y-o->y; if (dx*dx+dy*dyzz+HAND_Z_OFFSET) { gets_ball=TRUE; - ball_stolen=FALSE; for (j=0;jhas_ball=TRUE; - if (o==human) { - if (ball_stolen && team) { - Noise(250,2000,2000); - score0+=2; - } - } else { + someone_has_ball=o->has_ball=TRUE; + if (o!=last_owner) { if (o->team) { + if (t0pix_left-parent_task->scroll_x)-o->x; dy=(ip.pos.y-parent_task->pix_top-parent_task->scroll_y)*2-o->y; } else { - dx=o->DxDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/MAX_I16*dt; - dy=o->DyDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/MAX_I16*dt; + if (!someone_has_ball && o->nearest_man_dd>4*MAN_SQR_RADIUS && + o->nearest_ball) { + dx=o->DxDt=MAN_VELOCITY*Cos(o->get_ball_é); + dy=o->DyDt=MAN_VELOCITY*Sin(o->get_ball_é); + } else { + dx=o->DxDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/MAX_I16*dt; + dy=o->DyDt+=RANDOM_MAN_ACCELERATION/sqrt2*RandI16/MAX_I16*dt; + } } d=Sqrt(dx*dx+dy*dy); if (d>=1.0) { - o->ay=Arg(dx,dy)+ã/2; + o->é=Arg(dx,dy)+ã/2; dx*=MAN_VELOCITY/sqrt2*dt/d; dy*=MAN_VELOCITY/sqrt2*dt/d; + o->nearest_man_dd=MAX_F64; for (j=0;jx; dy2=objs[j].y-o->y; - if ((d=Sqr(dx2)+Sqr(dy2))nearest_man_dd) + o->nearest_man_dd=d; + if (dDzDt*=d; } } - + } WinMgrSync; } } @@ -593,6 +624,7 @@ U0 Init() { I64 i; someone_shooting=FALSE; + shot_land_t=0; MemSet(&objs,0,sizeof(objs)); for (i=0;ipix_height/2; objs[i].next_img=objs[i].last_img=FIRST_RUNNING; } + last_owner=NULL; human=&objs[0]; ball =&objs[i]; ball->team=-1; @@ -612,28 +645,26 @@ U0 Init() foul_t_end=0; } -U0 CleanUp() -{ -} - U0 KeepAway() { I64 msg_code,a1,a2; PopUpOk( - "$$RED$$Pass or hand-off to score points.$$FG$$\n\n" - "Left-Click to pass.\n" - "Right-Click to jump.\n"); + "Pass or hand-off to your team to score points.$$FG$$\n\n" + "\t2 points for successful hand-off.\n" + "\t6 points for successful pass.\n" + "\t1 point penalty for foul.\n\n" + "Left-Click\tto pass.\n\n" + "Right-Click\tto jump.\n"); SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ Fs->text_attr=BLACK+YELLOW<<4; + Fs->win_inhibit|=WIG_DBL_CLICK; AutoComplete; WinBorder; WinMax; DocCursor; DocClear; - Fs->win_inhibit|=WIG_DBL_CLICK; - MenuPush( "File {" " Abort(,CH_SHIFT_ESC);" @@ -666,7 +697,6 @@ ka_jump: case MSG_KEY_DOWN: switch (a1) { case '\n': - CleanUp; Init; break; case 'j': @@ -687,7 +717,6 @@ ka_done: //Don't goto out of try SettingsPop; RegWriteBranch("TempleOS/KeepAway","I64 best_score0=%d,best_score1=%d;\n", best_score0,best_score1); - CleanUp; MenuPop; } Êp¨­ÿÿÿûÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ·ÿÿÿûÿÿÿûÿÿÿ·ÿÿÿûÿÿÿ­ÿÿÿûÿÿÿ­ÿÿÿ·ÿÿÿûÿÿÿ·ÿÿÿ diff --git a/Apps/Logic/Logic.CPP b/Apps/Logic/Logic.CPP index 17333bd..0bd5e95 100644 --- a/Apps/Logic/Logic.CPP +++ b/Apps/Logic/Logic.CPP @@ -63,18 +63,18 @@ U8 *gate_type_lst="NULL\0OUTPUT\0INPUT\0" #define GT_XOR 8 #define GT_AND3 9 #define GT_OR3 10 -#define GT_NAND3 11 +#define GT_NAND3 11 #define GT_NOR3 12 #define GT_NUM_ENTRIES 13 -#define MAX_SELECTED_GATES 128 +#define MAX_SEL_GATES 128 CSprite *imgs[GT_NUM_ENTRIES]={NULL,NULL,NULL, $IB,"",BI=1$,$IB,"",BI=2$,$IB,"",BI=3$,$IB,"",BI=4$,$IB,"",BI=5$,$IB,"",BI=6$,$IB,"",BI=7$,$IB,"",BI=8$,$IB,"",BI=9$,$IB,"",BI=10$}; I64 num_inputs_entered,num_outputs_entered; -I64 num_selected_gates, - selected_gates[MAX_SELECTED_GATES]; +I64 num_sel_gates, + sel_gates[MAX_SEL_GATES]; U0 GetGates() { @@ -87,9 +87,9 @@ U0 GetGates() "%z ",i,gate_type_lst; '\n'; - num_selected_gates=0; - while (num_selected_gates$FG$, but you should do it after pressing $FG,2$$FG$ because the clipboard-insert in $FG,2$$FG$ is screwy. See this $SO,"",A="2qG3ECB2eGG3qCeFDsBGBG2qG3ECB2eGG3qCeFDsBGBGqEeEFqEB2eG3FetCAGqFCEeEFqEB2eG3FetCAGqFC"$ after pressing $FG,2$$FG$, now. -* You can call $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.CPP,JukeBox"$("::/Home/Psalmody"); to play your songs. +* You can call $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.CPP,JukeBox"$("~/Psalmody"); to play your songs. -* To create a $FG,2$.SND$FG$ file which can be exported and played under Windows, set the $FG,2$Bool$FG$ $LK,"snd.record",A="MN:CSndGlbls"$ to $FG,2$TRUE$FG$, play music, and set it to $FG,2$FALSE$FG$. Then, call $LK,"SndFileCreate",A="MN:SndFileCreate"$(). You might wish to make a $FG,2$$FG$ to toggle this system level recording feat. See $LK,"Snd",A="MN:Snd"$(). Add this code to your $LK,"::/Home/HomeKeyPlugIns.CPP"$ file. +* To create a $FG,2$.SND$FG$ file which can be exported and played under Windows, set the $FG,2$Bool$FG$ $LK,"snd.record",A="MN:CSndGlbls"$ to $FG,2$TRUE$FG$, play music, and set it to $FG,2$FALSE$FG$. Then, call $LK,"SndFileCreate",A="MN:SndFileCreate"$(). You might wish to make a $FG,2$$FG$ to toggle this system level recording feat. See $LK,"Snd",A="MN:Snd"$(). Add this code to your $LK,"~/HomeKeyPlugIns.CPP"$ file. $FG,5$U0 CtrlAltR(I64) { @@ -20,5 +20,5 @@ $FG,5$U0 CtrlAltR(I64) } CtrlAltCBSet('R',&CtrlAltR,"Cmd /Toggle snd.record");$FG$ -* When calling $LK,"SndFileCreate",A="MN:SndFileCreate"$() you can set a waveform. The PC speaker is $LK,"WF_SQUARE",A="MN:WF_SQUARE"$. You can select reverb and averaging, also. +* When calling $LK,"SndFileCreate",A="MN:SndFileCreate"$() you can set a waveform. The PC speaker is $LK,"WF_SQUARE",A="MN:WF_SQUARE"$. You can sel reverb and averaging, also. diff --git a/Apps/Psalmody/Install.CPP b/Apps/Psalmody/Install.CPP index 0a42817..0272a82 100644 --- a/Apps/Psalmody/Install.CPP +++ b/Apps/Psalmody/Install.CPP @@ -1,2 +1,2 @@ -if (!FileFind("::/Home/Psalmody",,FUF_JUST_DIRS)) - MkDir("::/Home/Psalmody"); +if (!FileFind("~/Psalmody",,FUF_JUST_DIRS)) + MkDir("~/Psalmody"); diff --git a/Apps/Psalmody/JukeBox.CPP b/Apps/Psalmody/JukeBox.CPP index 76cda2f..0141818 100644 --- a/Apps/Psalmody/JukeBox.CPP +++ b/Apps/Psalmody/JukeBox.CPP @@ -49,7 +49,7 @@ Bool JBPutKey(CDoc *doc,U8 *,I64 ch,I64 sc) return FALSE; } -public U0 JukeBox(U8 *dirname="::/Home/Psalmody",U8 **_filename=NULL) +public U0 JukeBox(U8 *dirname="~/Psalmody",U8 **_filename=NULL) {//_filename is for using this as a song-chooser program. I64 i=0,rating; U8 *st,*st2; diff --git a/Apps/Psalmody/JukePuppet.CPP b/Apps/Psalmody/JukePuppet.CPP index 406fa39..e701a26 100644 --- a/Apps/Psalmody/JukePuppet.CPP +++ b/Apps/Psalmody/JukePuppet.CPP @@ -72,7 +72,7 @@ U0 JukeSongPuppet(CTask *juke_task,I64 passes,I64 song_num,U8 *name) Kill(task); } -public U0 JukeSongsPuppet(U8 *dirname="::/Home/Psalmody",I64 passes=2, +public U0 JukeSongsPuppet(U8 *dirname="~/Psalmody",I64 passes=2, I64 start_song=0,I64 end_song=MAX_I64) {//Help make music video by puppeting JukeBox task. I64 i; diff --git a/Apps/Psalmody/Psalmody.CPP b/Apps/Psalmody/Psalmody.CPP index 4289c64..7bc93ee 100644 --- a/Apps/Psalmody/Psalmody.CPP +++ b/Apps/Psalmody/Psalmody.CPP @@ -29,8 +29,8 @@ $WW,1$$WW,0$*/ #define PSMT_NOTE 1 #define PSMT_METER 2 -#define PSMf_SELECTED 0 -#define PSMF_SELECTED 1 +#define PSMf_SEL 0 +#define PSMF_SEL 1 #define PSMf_SHARP 1 #define PSMf_FLAT 2 #define PSMf_TIE 3 diff --git a/Apps/Psalmody/PsalmodyDraw.CPP b/Apps/Psalmody/PsalmodyDraw.CPP index 8877e94..abaca50 100644 --- a/Apps/Psalmody/PsalmodyDraw.CPP +++ b/Apps/Psalmody/PsalmodyDraw.CPP @@ -86,15 +86,15 @@ Bool PsmIsDotted(I64 duration) return FALSE; } -U0 PsmMarkSelected(I64 x1,I64 x2,Bool sel) +U0 PsmMarkSel(I64 x1,I64 x2,Bool sel) { PsmNote *tempo=oc.root.next; while (tempo!=&oc.root) { if (sel) { if (x1<=tempo->x<=x2) - tempo->flags|=PSMF_SELECTED; + tempo->flags|=PSMF_SEL; } else - tempo->flags&=~PSMF_SELECTED; + tempo->flags&=~PSMF_SEL; tempo=tempo->next; } } @@ -236,7 +236,7 @@ U0 DrawIt(CTask *task,CDC *dc) if (tempo==oc.cur_note && PsmBlink) { dc->color=BROWN; GrPrint(dc,x+8,y,"%s",tempo->word); - } else if (tempo->flags&PSMF_SELECTED) + } else if (tempo->flags&PSMF_SEL) dc->color=RED; else { if (tempo->note!=NOTE_REST) @@ -331,7 +331,7 @@ Bool PsmGetPickToolBox(I64 xx,I64 yy) { if (PSM_TOOLS_X<=xxnext; - if (tempo->flags&PSMF_SELECTED) { + if (tempo->flags&PSMF_SEL) { if (oc.cur_note==tempo) oc.cur_note=tempo->next; QueRem(tempo); - tempo->flags&=~PSMF_SELECTED; + tempo->flags&=~PSMF_SEL; QueIns(tempo,oc.clipboard.last); } tempo=tempo1; @@ -61,8 +61,8 @@ U0 PsmCopyToClipboard() PsmSongDel(&oc.clipboard); tempo=oc.root.next; while (tempo!=&oc.root) { - if (tempo->flags&PSMF_SELECTED) { - tempo->flags&=~PSMF_SELECTED; + if (tempo->flags&PSMF_SEL) { + tempo->flags&=~PSMF_SEL; tempo1=PsmNoteCopy(tempo); QueIns(tempo1,oc.clipboard.last); } diff --git a/Apps/Psalmody/PsalmodyMain.CPP b/Apps/Psalmody/PsalmodyMain.CPP index 6902c28..2307485 100644 --- a/Apps/Psalmody/PsalmodyMain.CPP +++ b/Apps/Psalmody/PsalmodyMain.CPP @@ -241,7 +241,7 @@ U0 PsmLeftClickStaffBox(I64 x,I64 y) GrBorder(oc.dc2,x,y,a1,a2); if (msg_code==MSG_IP_L_UP) { if (x>a1) SwapI64(&x,&a1); - PsmMarkSelected(x,a1,TRUE); + PsmMarkSel(x,a1,TRUE); } } while (msg_code!=MSG_IP_L_UP); DrawDC2; @@ -396,7 +396,7 @@ U0 PsmPopMode() #define PSMF_CD 1 #define PSMF_INCOMPLETE 2 -U0 Psalmody(U8 *dirname="::/Home/Psalmody") +U0 Psalmody(U8 *dirname="~/Psalmody") { Bool was_playing; I64 a1,a2,msg_code=0,col, @@ -536,7 +536,7 @@ mo_got_msg: col=0; } else { switch (a1) { - sub_switch_start: + start: case 'a': note=7; octave--; break; case 's': note=8; octave--; break; case 'e': note=9; octave--; break; @@ -556,7 +556,7 @@ mo_got_msg: case '[': note=11; break; case '\'': note=0; octave++; break; case ']': note=1; octave++; break; - sub_switch_end: + end: f=Note2Freq(note,octave); break; case CH_SPACE: @@ -572,13 +572,13 @@ mo_got_msg: while (oc.cur_note->last!=&oc.root) { oc.cur_note=oc.cur_note->last; if (oc.cur_note!=&oc.root) - LBEqu(&oc.cur_note->flags,PSMf_SELECTED,a2&SCF_SHIFT); + LBEqu(&oc.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); } } else { if (oc.cur_note->last!=&oc.root) { oc.cur_note=oc.cur_note->last; if (oc.cur_note!=&oc.root) - LBEqu(&oc.cur_note->flags,PSMf_SELECTED,a2&SCF_SHIFT); + LBEqu(&oc.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); } } break; @@ -586,13 +586,13 @@ mo_got_msg: if (a2&SCF_CTRL) { while (oc.cur_note!=&oc.root) { if (oc.cur_note!=&oc.root) - LBEqu(&oc.cur_note->flags,PSMf_SELECTED,a2&SCF_SHIFT); + LBEqu(&oc.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); oc.cur_note=oc.cur_note->next; } } else { if (oc.cur_note!=&oc.root) { if (oc.cur_note!=&oc.root) - LBEqu(&oc.cur_note->flags,PSMf_SELECTED,a2&SCF_SHIFT); + LBEqu(&oc.cur_note->flags,PSMf_SEL,a2&SCF_SHIFT); oc.cur_note=oc.cur_note->next; } } @@ -638,7 +638,7 @@ mo_got_msg: case CH_CTRLO: PsmPopMode; RegOneTimePopUp(ARf_PSALMODY_JUKEBOX, - "Select a song and preview it.\n" + "Sel a song and preview it.\n" "$$GREEN$$$$FG$$ to load it into Psalmody.\n\n" ST_WARN_ST " Graphics and other embelishments\n" "will be lost because Psalmody can't\n" diff --git a/Apps/Span/Install.CPP b/Apps/Span/Install.CPP index fc5f95f..f6dcaef 100644 --- a/Apps/Span/Install.CPP +++ b/Apps/Span/Install.CPP @@ -1 +1 @@ -MkDir("::/Home/Span"); +MkDir("~/Span"); diff --git a/Apps/Span/SpanMain.CPP b/Apps/Span/SpanMain.CPP index 41d4025..c8762fa 100644 --- a/Apps/Span/SpanMain.CPP +++ b/Apps/Span/SpanMain.CPP @@ -319,7 +319,7 @@ U0 Span() "\t$$GREEN$$'c'$$FG$$oncrete\n" "\t$$GREEN$$'s'$$FG$$teel\n" "\t$$GREEN$$'w'$$FG$$ire\n" - "\nto select materials.\n"); + "\nto sel materials.\n"); try { while (TRUE) { diff --git a/Apps/Span/SpanNew.CPP b/Apps/Span/SpanNew.CPP index 0932406..e76ff95 100644 --- a/Apps/Span/SpanNew.CPP +++ b/Apps/Span/SpanNew.CPP @@ -69,9 +69,9 @@ Bool SpanWrite(CMathODE *ode) U8 *name,*buf; I64 size; Bool res=FALSE,old_silent=Silent; - MkDir("::/Home/Span"); + MkDir("~/Span"); Silent(old_silent); - if (name=PopUpFileName("::/Home/Span/Game.DAT")) { + if (name=PopUpFileName("~/Span/Game.DAT")) { if (buf=SpanSave(ode,&size)) { FileWrite(name,buf,size); Free(buf); @@ -115,9 +115,9 @@ U8 *SpanRead() { U8 *src=NULL,*name; Bool old_silent=Silent; - MkDir("::/Home/Span"); + MkDir("~/Span"); Silent(old_silent); - if (name=PopUpPickFile("::/Home/Span")) { + if (name=PopUpPickFile("~/Span")) { src=FileRead(name); Free(name); } diff --git a/Apps/Strut/Strut.CPP b/Apps/Strut/Strut.CPP index 3a069ef..9c4fd13 100644 --- a/Apps/Strut/Strut.CPP +++ b/Apps/Strut/Strut.CPP @@ -603,10 +603,10 @@ U0 Strut() DocCursor; DocClear; "\n$$WW,1$$$$PURPLE$$$$TX+CX,\"Build a ship.\"$$$$FG$$\n\n" - "Select mass mode.\tLeft-click to place masses.\n" - "Select spring mode.\tLeft-drag to make members.\n" - "Select thruster mode.\tPress a digit, 0-9. Drag to make thruster.\n" - "Select connector mode.\tPress a digit, 0-9. " + "Sel mass mode.\tLeft-click to place masses.\n" + "Sel spring mode.\tLeft-drag to make members.\n" + "Sel thruster mode.\tPress a digit, 0-9. Drag to make thruster.\n" + "Sel connector mode.\tPress a digit, 0-9. " "Drag to make breakable connector.\n\n" "Press $$GREEN$$$$FG$$ to run the game. Press digits to operate " "thrusters and break connectors.\n\n" diff --git a/Apps/TimeClock/Install.CPP b/Apps/TimeClock/Install.CPP index e2e1c55..2b76c01 100644 --- a/Apps/TimeClock/Install.CPP +++ b/Apps/TimeClock/Install.CPP @@ -1,5 +1,5 @@ -if (!FileFind("::/Home/TimeClock",,FUF_JUST_DIRS)) { - MkDir("::/Home/TimeClock"); +if (!FileFind("~/TimeClock",,FUF_JUST_DIRS)) { + MkDir("~/TimeClock"); DocClear; "After Loading, type $$GREEN$$PunchIn;$$FG$$, " "$$GREEN$$PunchOut;$$FG$$ or $$GREEN$$TimeRep;$$FG$$\n" diff --git a/Apps/TimeClock/TimeClk.CPP b/Apps/TimeClock/TimeClk.CPP index 766ef6f..64d71ab 100644 --- a/Apps/TimeClock/TimeClk.CPP +++ b/Apps/TimeClock/TimeClk.CPP @@ -1,4 +1,4 @@ -#define TIME_FILENAME "::/Home/TimeClock/TimeFile.DAT.Z" +#define TIME_FILENAME "~/TimeClock/TimeFile.DAT.Z" #define TET_EOF 0 #define TET_PUNCH_IN 1 diff --git a/Apps/TimeOut/TimeOut.CPP b/Apps/TimeOut/TimeOut.CPP index 5ac33ac..e29c440 100644 --- a/Apps/TimeOut/TimeOut.CPP +++ b/Apps/TimeOut/TimeOut.CPP @@ -521,20 +521,21 @@ U0 TimeOut() WinMax; DocCursor; DocClear; + "\n\nYou're sent back through time to help fight some bad guys. " "($$LTPURPLE$$Purple$$FG$$)\n" "Perhaps, you are an angel helping the Jews in the Bible?\n\n" "Scoring:\n" - " Enemy Killed\t\t+5\n" - " Enemy by Friendly\t+10\n" - " Friendly Fire\t\t-200\n" - " Bullets Fired\t\t-1\n" - " Game Time\t\t-10 per second\n" - " Surviving Friendlies\t+500\n\n" + "\tEnemy Killed\t\t+5\n" + "\tEnemy by Friendly\t+10\n" + "\tFriendly Fire\t\t-200\n" + "\tBullets Fired\t\t-1\n" + "\tGame Time\t\t-10 per second\n" + "\tSurviving Friendlies\t+500\n\n" "Sweep side-to-side while shooting, " "holding down $$GREEN$$$$FG$$.\n\n"; - PressAKey; + Fs->text_attr=YELLOW<<4+CYAN; Init; DocClear; diff --git a/Apps/ToTheFront/Install.CPP b/Apps/ToTheFront/Install.CPP index 854026b..803d1b1 100644 --- a/Apps/ToTheFront/Install.CPP +++ b/Apps/ToTheFront/Install.CPP @@ -1,2 +1,2 @@ -MkDir("::/Home/ToTheFront"); +MkDir("~/ToTheFront"); diff --git a/Apps/ToTheFront/ToTheFront.CPP b/Apps/ToTheFront/ToTheFront.CPP index 10091c2..5cb1f78 100644 --- a/Apps/ToTheFront/ToTheFront.CPP +++ b/Apps/ToTheFront/ToTheFront.CPP @@ -1371,7 +1371,7 @@ U0 PickAI(U8 *dirname,I64 player) st=MStrPrint("%s/*.CPP*",dirname); tempde=FilesFind(st); Free(st); - tempde2=FilesFind("::/Home/ToTheFront/*.CPP*"); + tempde2=FilesFind("~/ToTheFront/*.CPP*"); tempde1=tempde; Silent(old_silent); @@ -1395,7 +1395,7 @@ U0 PickAI(U8 *dirname,I64 player) Free(st); tempde1=tempde1->next; } - DocPrint(doc,"\n\n\n$$FG$$Create your own AI in /Home/ToTheFront."); + DocPrint(doc,"\n\n\n$$FG$$Create your own AI in ~/ToTheFront."); while ((tempde1=PopUpMenu(doc))<=0); ExeFile(tempde1->full_name); DocDel(doc); diff --git a/Apps/X-Caliber/X-Caliber.CPP b/Apps/X-Caliber/X-Caliber.CPP index 7637759..bfc7cca 100644 --- a/Apps/X-Caliber/X-Caliber.CPP +++ b/Apps/X-Caliber/X-Caliber.CPP @@ -1263,8 +1263,8 @@ U0 XCaliber() " StopSpin(,,SC_CURSOR_DOWN);" " Left(,,SC_CURSOR_LEFT);" " Right(,,SC_CURSOR_RIGHT);" - " LeftMissile(,'l');" - " RightMissile(,'r');" + " LeftMissile(,,SC_CURSOR_LEFT|SCF_CTRL);" + " RightMissile(,,SC_CURSOR_RIGHT|SCF_CTRL);" " Spackwalk(,'w');" " LongerFuse(,,SC_CURSOR_RIGHT|SCF_SHIFT);" " ShorterFuse(,,SC_CURSOR_LEFT|SCF_SHIFT);" @@ -1298,12 +1298,16 @@ U0 XCaliber() case 0: switch (sc.u8[0]) { case SC_CURSOR_RIGHT: + if (sc&SCF_CTRL) + HumanFireMissileBegin(0); if (sc&SCF_SHIFT) ctrl_panel.fuse_time+=2; else human_t_right=MAX_THRUST; break; case SC_CURSOR_LEFT: + if (sc&SCF_CTRL) + HumanFireMissileBegin(1); if (sc&SCF_SHIFT) ctrl_panel.fuse_time-=2; else @@ -1331,12 +1335,6 @@ U0 XCaliber() else HumanFireLaserBegin; break; - case 'l': - HumanFireMissileBegin(1); - break; - case 'r': - HumanFireMissileBegin(0); - break; case 'w': ctrl_panel.spacewalk=TRUE; break; diff --git a/Compiler/Asm.CPP b/Compiler/Asm.CPP index 114c05f..3422d9d 100644 --- a/Compiler/Asm.CPP +++ b/Compiler/Asm.CPP @@ -48,7 +48,7 @@ U0 PrsAsmArg(CCmpCtrl *cc,CAsmArg *arg,Bool rel) tempr=temph; arg->reg1_type=tempr->reg_type; switch (tempr->reg_type) { - sub_switch_start: + start: case REGT_R8: arg->size=1; break; @@ -61,7 +61,7 @@ U0 PrsAsmArg(CCmpCtrl *cc,CAsmArg *arg,Bool rel) case REGT_R64: arg->size=8; break; - sub_switch_end: + end: arg->reg1=tempr->reg_num; Lex(cc); return; diff --git a/Compiler/BackA.CPP b/Compiler/BackA.CPP index 5257ae9..e4b5bcf 100644 --- a/Compiler/BackA.CPP +++ b/Compiler/BackA.CPP @@ -329,7 +329,7 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) r=tempi->a1.reg; else ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, tempi->a1.reg,tempi->a1.disp,ip); if (r>7) j=0xC0004D; @@ -341,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&MDG_MASK+tempi->a1.type_pointed_to, + 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,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); + 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); @@ -355,7 +355,7 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 ip) ICU24(tempi,0xDB6948); ICU32(tempi,i); } - ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0, + ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,REG_RBX,0,ip); } } else { @@ -367,10 +367,10 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 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_RBX,0, - tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + 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&MDG_MASK+tempi->a1.type_pointed_to, + 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 { ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, @@ -378,9 +378,9 @@ U0 ICMulEqu(CIntermediateCode *tempi,I64 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); + MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); ICU24(tempi,i); - ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0, + ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0, MDF_REG+RT_I64,REG_RAX,0,ip); } } @@ -411,7 +411,7 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 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_RAX,0, - tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + 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); @@ -421,10 +421,10 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) ICU24(tempi,0xF9F748); } if (is_mod) - ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + 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&MDG_MASK+tempi->a1.type_pointed_to, + 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 { ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0, @@ -432,7 +432,7 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 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,MDF_REG+RT_I64,REG_RAX,0,MDF_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&RTF_UNSIGNED) { ICZero(tempi,REG_RDX); @@ -442,10 +442,10 @@ U0 ICDivEqu(CIntermediateCode *tempi,Bool is_mod,I64 ip) ICU24(tempi,0xF9F748); } if (is_mod) - ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RBX,0, + ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RBX,0, MDF_REG+RT_I64,REG_RDX,0,ip); else - ICMov(tempi,MDF_DISP+tempi->a1.type_pointed_to,REG_RBX,0, + ICMov(tempi,MDF_DISP+tempi->a1_type_pointed_to,REG_RBX,0, MDF_REG+RT_I64,REG_RAX,0,ip); } if (tempi->r.type.mode) { diff --git a/Compiler/BackB.CPP b/Compiler/BackB.CPP index fc22481..de6701d 100644 --- a/Compiler/BackB.CPP +++ b/Compiler/BackB.CPP @@ -257,7 +257,6 @@ U0 ICBitOps(CIntermediateCode *tempi,CICArg *a1,CICArg *a2, } if (!res_not_used) { ICU24(tempi,0xC0920F); //SETC AL -progress3++; if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip); @@ -309,17 +308,17 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip) if (tempi->ic_flags & ICF_BY_VAL) { if (tempc->ptr_stars_cnt && tempc1->size!=1) { ICAddSubEctImm(tempi, - tempi->a1.type&MDG_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&MDG_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&MDG_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.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - tempi->a1.type&MDG_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&MDF_REG) @@ -331,15 +330,15 @@ U0 ICPreIncDec(CIntermediateCode *tempi,I64 op,I64 ip) } if (tempc->ptr_stars_cnt && tempc1->size!=1) { - ICAddSubEctImm(tempi,MDF_DISP+tempi->a1.type_pointed_to,r,0, - MDF_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, - MDF_DISP+tempi->a1.type_pointed_to,r,0,op,ip); + 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, - MDF_DISP+tempi->a1.type_pointed_to,r,0,ip); + MDF_DISP+tempi->a1_type_pointed_to,r,0,ip); } } @@ -350,17 +349,17 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) 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&MDG_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&MDG_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&MDG_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&MDG_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&MDF_REG && @@ -373,12 +372,12 @@ U0 ICPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) } if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - MDF_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,MDF_DISP+tempi->a1.type_pointed_to,r,0, - MDF_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,MDF_DISP+tempi->a1.type_pointed_to,r,0,op,ip); + ICSlashOp(tempi,MDF_DISP+tempi->a1_type_pointed_to,r,0,op,ip); } } @@ -388,8 +387,8 @@ U0 ICDerefPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) I64 r; CHashClass *tempc1=tempi->ic_class; t=tempi->r.type.raw_type; - if (t>tempi->a1.type_pointed_to) - t=tempi->a1.type_pointed_to; + if (t>tempi->a1_type_pointed_to) + t=tempi->a1_type_pointed_to; if (tempi->ic_flags & ICF_BY_VAL) { if (tempi->a1.type&MDF_REG) r=tempi->a1.reg; @@ -439,7 +438,7 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) tempi->a1.type&MDG_MASK+RT_I64,tempi->a1.reg,tempi->a1.disp,ip); r=REG_RDX; } - ICMov(tempi,MDF_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.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -453,7 +452,7 @@ U0 ICAssignPostIncDec(CIntermediateCode *tempi,I64 op,I64 ip) ICMov(tempi,MDF_REG+RT_I64,REG_RDX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); 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, + 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.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, diff --git a/Compiler/BackC.CPP b/Compiler/BackC.CPP index 2d00f56..800923e 100644 --- a/Compiler/BackC.CPP +++ b/Compiler/BackC.CPP @@ -160,18 +160,14 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip) { CIntermediateCode *tempi1; if (tempi->ic_flags & ICF_BY_VAL) { - ICMov(tempi,tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + 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.mode) { - if (tempi->a1.type&MDF_REG) - ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - 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); - } + if (tempi->r.type.mode) + ICMov(tempi,tempi->r.type&MDG_MASK+tempi->a1_type_pointed_to, + tempi->r.reg,tempi->r.disp, + tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to, + tempi->a1.reg,tempi->a1.disp,ip); } else { if (tempi->a1.type&MDF_REG) { if (!(tempi1=OptLag1(tempi)) || tempi1->ic_code!=IC_ADD_CONST || @@ -181,7 +177,7 @@ U0 ICAssign(CIntermediateCode *tempi,I64 ip) tempi->a2.reg==tempi->a1.reg || tempi->r.type.mode || tempi1->ic_flags&~ICG_NO_CVT_MASK) { ICMov(tempi, - MDF_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.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -191,14 +187,14 @@ 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,MDF_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,MDF_REG+RT_I64,REG_RCX,0, tempi->a1.type,tempi->a1.reg,tempi->a1.disp,ip); - ICMov(tempi,MDF_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.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, @@ -552,7 +548,7 @@ U0 ICAndEqu(CIntermediateCode *tempi,I64 ip2) return; } } - ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, + ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x210425240423,ip2); @@ -573,7 +569,7 @@ U0 ICOrEqu(CIntermediateCode *tempi,I64 ip2) return; } } - ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, + ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x09010D0C010B,ip2); @@ -594,7 +590,7 @@ U0 ICXorEqu(CIntermediateCode *tempi,I64 ip2) return; } } - ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, + ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp,0x310635340633,ip2); diff --git a/Compiler/BackFA.CPP b/Compiler/BackFA.CPP index dca4b92..198723d 100644 --- a/Compiler/BackFA.CPP +++ b/Compiler/BackFA.CPP @@ -549,36 +549,36 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip) if (tempi->ic_flags & ICF_BY_VAL) { if (dont_push_float) { ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - tempi->a1.type&MDG_MASK+tempi->a1.type_pointed_to, + 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) + if (tempi->a1_type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); } else { 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&MDG_MASK+tempi->a1.type_pointed_to, + 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) + if (tempi->a1_type_pointed_to!=RT_F64) 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) + if (tempi->a1_type_pointed_to!=RT_F64) 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, + 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&MDG_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,MDF_REG+RT_I64,REG_RCX,0,tempi->a1.type, tempi->a1.reg,tempi->a1.disp,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) + MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); + if (tempi->a1_type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RAX,MDF_REG+RT_I64,REG_RAX,0,FALSE,ip); } else { ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, @@ -586,15 +586,15 @@ U0 ICFModEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 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_RDX,0, - MDF_DISP+tempi->a1.type_pointed_to,REG_RCX,0,ip); - if (tempi->a1.type_pointed_to!=RT_F64) + MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); + if (tempi->a1_type_pointed_to!=RT_F64) 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) + if (tempi->a1_type_pointed_to!=RT_F64) 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, + 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, diff --git a/Compiler/BackFB.CPP b/Compiler/BackFB.CPP index 016218a..8838208 100644 --- a/Compiler/BackFB.CPP +++ b/Compiler/BackFB.CPP @@ -16,32 +16,32 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) if (tempi->ic_flags & ICF_BY_VAL) { p1_mem=FALSE; if (dont_push_float) { - if (a1->type_pointed_to!=RT_F64) { + if (tempi->a1_type_pointed_to!=RT_F64) { ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + a1->type&MDG_MASK+tempi->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&MDG_DISP_SIB_RIP) { - t1=a1->type&MDG_MASK+a1->type_pointed_to; + if (tempi->a1_type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { + t1=a1->type&MDG_MASK+tempi->a1_type_pointed_to; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { - ICPush(tempi, - a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + ICPush(tempi,a1->type&MDG_MASK+tempi->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 (a1->type_pointed_to!=RT_F64 || a1->type&MDF_STK) { + if (tempi->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) + a1->type&MDG_MASK+tempi->a1_type_pointed_to,a1->reg,a1->disp,ip); + if (tempi->a1_type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; @@ -65,14 +65,14 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) rsp_size+=8; } } - if (a1->type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { - t1=a1->type&MDG_MASK+a1->type_pointed_to; + if (tempi->a1_type_pointed_to>=RT_I64 && a1->type&MDG_DISP_SIB_RIP) { + t1=a1->type&MDG_MASK+tempi->a1_type_pointed_to; r1=a1->reg; d1=a1->disp; p1_mem=TRUE; } else { - ICPush(tempi, - a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + ICPush(tempi,a1->type&MDG_MASK+tempi->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) @@ -80,7 +80,7 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } } - if (!rsp_size && !(p1_mem && a1->type_pointed_to==RT_F64)) { + if (!rsp_size && !(p1_mem && tempi->a1_type_pointed_to==RT_F64)) { rsp_size=8; ICAddRSP(tempi,-8); } @@ -96,7 +96,7 @@ 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) { + if (p1_mem && tempi->a1_type_pointed_to==RT_F64) { ICSlashOp(tempi,t1,r1,d1,SLASH_OP_FSTP,ip); if (rsp_size) ICAddRSP(tempi,rsp_size); @@ -108,40 +108,41 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) SLASH_OP_FSTP,ip); ICAddRSP(tempi,rsp_size-8); } - if (a1->type_pointed_to!=RT_F64) { + if (tempi->a1_type_pointed_to!=RT_F64) { 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); + ICMov(tempi,a1->type&MDG_MASK+tempi->a1_type_pointed_to,a1->reg, + a1->disp,MDF_REG+RT_I64,REG_RAX,0,ip); } else - ICPop(tempi,a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + ICPop(tempi,a1->type&MDG_MASK+tempi->a1_type_pointed_to, + a1->reg,a1->disp,ip); } if (tempi->r.type.mode) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, - a1->type&MDG_MASK+a1->type_pointed_to,a1->reg,a1->disp,ip); + a1->type&MDG_MASK+tempi->a1_type_pointed_to,a1->reg,a1->disp,ip); } else { - if (a1->type_pointed_to>=RT_I64) + if (tempi->a1_type_pointed_to>=RT_I64) p1_mem=TRUE; else p1_mem=FALSE; if (dont_push_float) { ICMov(tempi,MDF_REG+RT_I64,REG_RCX,0,a1->type,a1->reg,a1->disp,ip); - if (a1->type_pointed_to!=RT_F64) { + if (tempi->a1_type_pointed_to!=RT_F64) { ICMov(tempi,MDF_REG+RT_I64,REG_RAX,0, - MDF_DISP+a1->type_pointed_to,REG_RCX,0,ip); + MDF_DISP+tempi->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,MDF_DISP+a1->type_pointed_to,REG_RCX,0,ip); + ICPush(tempi,MDF_DISP+tempi->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 (a1->type_pointed_to!=RT_F64 || a1->type&MDF_STK) { + if (tempi->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) + MDF_DISP+tempi->a1_type_pointed_to,REG_RCX,0,ip); + if (tempi->a1_type_pointed_to!=RT_F64) ICFCvt2(cc,tempi,REG_RDX,MDF_REG+RT_I64,REG_RDX,0,FALSE,ip); ICU16(tempi,0x5052); //PUSH EDX PUSH EAX rsp_size=16; @@ -166,14 +167,14 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) } } 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); + ICPush(tempi,MDF_DISP+tempi->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; } } - if (!rsp_size && !(p1_mem && a1->type_pointed_to==RT_F64)) { + if (!rsp_size && !(p1_mem && tempi->a1_type_pointed_to==RT_F64)) { rsp_size=8; ICAddRSP(tempi,-8); } @@ -190,8 +191,9 @@ 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,MDF_DISP+a1->type_pointed_to,REG_RCX,0,SLASH_OP_FSTP,ip); + if (p1_mem && tempi->a1_type_pointed_to==RT_F64) { + ICSlashOp(tempi,MDF_DISP+tempi->a1_type_pointed_to, + REG_RCX,0,SLASH_OP_FSTP,ip); if (rsp_size) ICAddRSP(tempi,rsp_size); } else { @@ -203,9 +205,9 @@ U0 ICFOpEqu(CCmpCtrl *cc,CIntermediateCode *tempi,I64 op,U8 *buf2,I64 ip) ICAddRSP(tempi,rsp_size-8); } ICPop(tempi,MDF_REG+RT_I64,REG_RAX,0,ip); - if (a1->type_pointed_to!=RT_F64) + if (tempi->a1_type_pointed_to!=RT_F64) 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, + 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) @@ -474,13 +476,13 @@ U0 ICFCmpAndBranch(CCmpCtrl *cc,CIntermediateCode *tempi,I64 ip, U0 ICFMul(CCmpCtrl *cc,CIntermediateCode *tempi,U8 *buf,I64 ip) { - if (tempi->a1.type&MDF_IMM && tempi->a1.type_pointed_to==RT_F64 && + if (tempi->a1.type&MDF_IMM && tempi->a1.type&RTG_MASK==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&MDF_IMM && - tempi->a2.type_pointed_to==RT_F64&& tempi->a2.disp(F64)==1.0) { + tempi->a2.type&RTG_MASK==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); @@ -490,7 +492,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&MDF_IMM && tempi->a2.type_pointed_to==RT_F64 && + if (tempi->a2.type&MDF_IMM && tempi->a2.type&RTG_MASK==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, diff --git a/Compiler/BackLib.CPP b/Compiler/BackLib.CPP index 366aed6..c44f235 100644 --- a/Compiler/BackLib.CPP +++ b/Compiler/BackLib.CPP @@ -56,52 +56,48 @@ U0 ICU64(CIntermediateCode *tempi,U64 q) tempi->ic_cnt+=8; } -CIntermediateCode *ICLastIns(CIntermediateCode *tempi) -{ - if (tempi->ic_last_cnt>=0) - return tempi; - else if (!tempi->ic_cnt &&(tempi=OptLag1(tempi)) && tempi->ic_last_cnt>=0) - return tempi; - else - return NULL; -} - U0 ICAddRSP(CIntermediateCode *tempi,I64 i,Bool optimize=TRUE) { - I64 j,last_cnt; + I64 j,last_start; CIntermediateCode *tempil1; - if (optimize && (tempil1=ICLastIns(tempi))) { - j=tempil1->ic_cnt; - 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); - else if (tempil1->ic_body[j-2]==0xC4) - j=tempil1->ic_body[j-1](I8); - else + if (optimize) { + tempil1=tempi; + if (tempi->ic_last_start<0 && !tempi->ic_cnt && + (tempil1=OptLag1(tempi)) && tempil1->ic_last_start<0) + tempil1=NULL; + if (tempil1) { + j=tempil1->ic_cnt; + if (tempil1->ic_last_start==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); + else if (tempil1->ic_body[j-2]==0xC4) + j=tempil1->ic_body[j-1](I8); + else + j=0; + } else if (tempil1->ic_last_start==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); + else if (tempil1->ic_body[j-5]==0xC4) + j=tempil1->ic_body[j-4](I32); + else + j=0; + } else j=0; - } 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); - else if (tempil1->ic_body[j-5]==0xC4) - j=tempil1->ic_body[j-4](I32); - else - j=0; - } else - j=0; - if (j) { - if (tempi==tempil1) { - tempi->ic_cnt=tempi->ic_last_cnt; - i+=j; - } else if (!(tempi->ic_flags&ICF_PREV_DELETED)) { - tempil1->ic_flags|=ICF_DEL_PREV_INS; - tempi->ic_flags=tempi->ic_flags&~ICF_CODE_FINAL|ICF_PREV_DELETED; - i+=j; + if (j) { + if (tempi==tempil1) { + tempi->ic_cnt=tempi->ic_last_start; + i+=j; + } else if (!(tempi->ic_flags&ICF_PREV_DELETED)) { + tempil1->ic_flags|=ICF_DEL_PREV_INS; + tempi->ic_flags=tempi->ic_flags&~ICF_CODE_FINAL|ICF_PREV_DELETED; + i+=j; + } } } } - last_cnt=tempi->ic_cnt; + last_start=tempi->ic_cnt; if (i>0) { if (i<=MAX_I8) ICU32(tempi,0xC48348+i<<24); @@ -120,8 +116,8 @@ U0 ICAddRSP(CIntermediateCode *tempi,I64 i,Bool optimize=TRUE) } else throw('Compiler'); } - if (optimize && tempi->ic_cnt>last_cnt) - tempi->ic_last_cnt=last_cnt; + if (optimize && tempi->ic_cnt>last_start) + tempi->ic_last_start=last_start; } extern U0 ICMov(CIntermediateCode *tempi, @@ -430,7 +426,8 @@ I64 ICBuiltInFloatConst(F64 d) U0 ICMov(CIntermediateCode *tempi, CICType t1,I64 r1,I64 d1,CICType t2,I64 r2,I64 d2,I64 ip) { - I64 i,j,last_cnt=tempi->ic_cnt; + I64 i,cnt1,cnt2,b1_rex,b2_rex,b1,b2,b1_modr,b2_modr, + b1_r1,b1_r2,b2_r1,b2_r2,last_start=tempi->ic_cnt; CIntermediateCode *tempil1; Bool old_lock=Btr(&tempi->ic_flags,ICf_LOCK); switch (Bsr(t1)) { @@ -492,19 +489,8 @@ U0 ICMov(CIntermediateCode *tempi, else { if (r1==r2 && t2&MDF_REG) goto move_done; - if (t2&MDF_REG) { + if (t2&MDF_REG) t2=MDF_REG+RT_I64; - if (tempil1=ICLastIns(tempi)) { - i=tempil1->ic_cnt; - j=0x48+(r1>7); - if (r2>7) j+=4; - if (tempil1->ic_last_cnt==i-3 && tempil1->ic_body[i-2]==0x8B && - tempil1->ic_body[i-1]==0xC0+r1&7+(r2&7)<<3 && - tempil1->ic_body[i-3]==j) { - goto move_done; - } - } - } i=ICModr1(r1,t2,r2,d2); if (t2.raw_type!=RT_U32) i|=0x4800; @@ -605,9 +591,87 @@ U0 ICMov(CIntermediateCode *tempi, break; } move_done: + if (!((t1|t2)&(MDF_STK|MDF_RIP_DISP32))) { + tempil1=tempi; + if (tempi->ic_last_start<0 && (tempil1=OptLag1(tempi)) && + tempil1->ic_last_start<0) + tempil1=NULL; + if (tempil1) { + if (tempil1==tempi) + cnt1=last_start-tempil1->ic_last_start; + else { + if (!(tempil1->ic_flags&ICF_CODE_FINAL)) + tempi->ic_flags&=~ICF_CODE_FINAL; + if (last_start) + cnt1=0; + else + cnt1=tempil1->ic_cnt-tempil1->ic_last_start; + } + cnt2=tempi->ic_cnt-last_start; + if (cnt1 && cnt1==cnt2) { + b1_rex=tempil1->ic_body[tempil1->ic_last_start]; + b2_rex=tempi->ic_body[last_start]; + if (b1_rex&0x48==0x48 && b2_rex&0x48==0x48) { + for (i=1;iic_body[tempil1->ic_last_start+i])== + (b2=tempi->ic_body[last_start+i])) { + if (i==1 && (b2==0x89 || b2==0x8B)) { + b1_modr=tempil1->ic_body[tempil1->ic_last_start+2]; + b1_r1=b1_modr&7 +Bt(&b1_rex,0)<<3; + b1_r2=b1_modr>>3&7+Bt(&b1_rex,2)<<3; + b2_modr=tempi->ic_body[last_start+2]; + b2_r1=b2_modr&7 +Bt(&b2_rex,0)<<3; + b2_r2=b2_modr>>3&7+Bt(&b2_rex,2)<<3; + if (cnt1==3 && b2_modr&0xC0==0xC0) { + if (b2_r1==b2_r2) + goto move_redundant; + if (b1_modr&0xC0==0xC0) { + if (b1_r1==b2_r2 && b2_r1==b1_r2) + goto move_redundant; + } + } else if (b1_rex!=b2_rex || b1_r1==b1_r2 || (t1|t2)&MDF_SIB) + break; + } else if (b1_rex!=b2_rex) + break; + } else if (i!=1) + break; + else if (b2!=0x89 && b2!=0x8B) + break; + else { + b1_modr=tempil1->ic_body[tempil1->ic_last_start+2]; + b1_r1=b1_modr&7 +Bt(&b1_rex,0)<<3; + b1_r2=b1_modr>>3&7+Bt(&b1_rex,2)<<3; + b2_modr=tempi->ic_body[last_start+2]; + b2_r1=b2_modr&7 +Bt(&b2_rex,0)<<3; + b2_r2=b2_modr>>3&7+Bt(&b2_rex,2)<<3; + if (cnt1==3 && b2_modr&0xC0==0xC0) { + if (b2_r1==b2_r2) + goto move_redundant; + if (b1==0x89 && b2==0x8B || b1==0x8B && b2==0x89) { + if (b1_modr&0xC0==0xC0) { + if (b1_r1==b2_r1 && b1_r2==b2_r2 || + b1_r1==b2_r2 && b2_r1==b1_r2) + goto move_redundant; + } + if (b1_rex!=b2_rex) + break; + } else + break; + } else if (b1_r1==b1_r2 || (t1|t2)&MDF_SIB || b1_rex!=b2_rex || + !(b1==0x89 && b2==0x8B || b1==0x8B && b2==0x89)) + break; + } + if (i==cnt1) { +move_redundant: + tempi->ic_cnt=last_start; + } + } + } + } + } + if (tempi->ic_cnt>last_start>tempi->ic_last_start) + tempi->ic_last_start=last_start; BEqu(&tempi->ic_flags,ICf_LOCK,old_lock); - if (tempi->ic_cnt>last_cnt>tempi->ic_last_cnt) - tempi->ic_last_cnt=last_cnt; } U0 ICLea(CIntermediateCode *tempi,CICType t1,I64 r1,I64 d1, @@ -646,8 +710,8 @@ U0 ICDeref(CIntermediateCode *tempi,I64 ip) { CICType t; t=tempi->r.type.raw_type; - if (t>tempi->a1.type_pointed_to) - t=tempi->a1.type_pointed_to; + if (t>tempi->a1_type_pointed_to) + t=tempi->a1_type_pointed_to; if (tempi->a1.type&MDF_REG) ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, MDF_DISP+t,tempi->a1.reg,tempi->a1.disp,ip); diff --git a/Compiler/CExcept.CPP b/Compiler/CExcept.CPP index 5a1ecfa..0ab1c53 100644 --- a/Compiler/CExcept.CPP +++ b/Compiler/CExcept.CPP @@ -54,7 +54,7 @@ U0 LexPutPos(CCmpCtrl *cc) if (IsRaw) "%s,%d ",cc->lex_include_stk->full_name,cc->lex_include_stk->line_num; else { - PutFileLink(cc->lex_include_stk->full_name,cc->lex_include_stk->line_num); + PutFileLink(cc->lex_include_stk->full_name,,cc->lex_include_stk->line_num); AdamErr("%s,%d\n", cc->lex_include_stk->full_name,cc->lex_include_stk->line_num); '' CH_SPACE; @@ -138,12 +138,11 @@ U0 ICClassPut(CHashClass *c) '' CH_SPACE; } -U0 ICArgPut(CICArg *a) +U0 ICArgPut(CICArg *a,I64 type_pointed_to) { - if (a->type_pointed_to) - "%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"; + if (type_pointed_to) + "[%Z](%Z) %Z ",a->type.raw_type,"ST_RAW_TYPES", + type_pointed_to,"ST_RAW_TYPES",Bsr(a->type>>8)+1,"ST_TY_TYPES"; else "%Z %Z ",a->type.raw_type,"ST_RAW_TYPES", Bsr(a->type>>8)+1,"ST_TY_TYPES"; @@ -179,6 +178,7 @@ U0 ICArgPut(CICArg *a) } break; } + '' CH_SPACE; } U0 ICPut(CCmpCtrl *cc,CIntermediateCode *tempi) @@ -188,15 +188,22 @@ U0 ICPut(CCmpCtrl *cc,CIntermediateCode *tempi) "%15ts %016X ",intermediate_code_table[opcode].name,tempi->ic_data; if (cc->pass) { if (tempi->r.type.mode) { - ICArgPut(&tempi->r); - "<-"; + "$$PURPLE$$R:$$FG$$"; + ICArgPut(&tempi->r,0); } - if (tempi->a1.type.mode) - ICArgPut(&tempi->a1); - ','; - if (tempi->a2.type.mode) - ICArgPut(&tempi->a2); - '' CH_SPACE; + if (tempi->a1.type.mode) { + "$$PURPLE$$A1:$$FG$$"; + if (intermediate_code_table[tempi->ic_code].type==IST_DEREF || + intermediate_code_table[tempi->ic_code].type==IST_ASSIGN) + ICArgPut(&tempi->a1,tempi->a1_type_pointed_to); + else + ICArgPut(&tempi->a1,0); + } + if (tempi->a2.type.mode) { + "$$PURPLE$$A2:$$FG$$"; + ICArgPut(&tempi->a2,0); + } + "$$PURPLE$$:$$FG$$"; } ICClassPut(tempi->ic_class); if (tempi->ic_flags & ICF_LOCK) diff --git a/Compiler/CInit.CPP b/Compiler/CInit.CPP index 3ee1359..faf30c8 100644 --- a/Compiler/CInit.CPP +++ b/Compiler/CInit.CPP @@ -166,8 +166,8 @@ CIntermediateStruct intermediate_code_table[IC_NUM_ENTRIES]={ {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"BR_2LESS_EQU"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_AND_ZERO"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_AND_NOT_ZERO"}, - {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_MM_ZERO"}, - {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_MM_NOT_ZERO"}, + {IS_1_ARG,0,IST_DEREF,FALSE,TRUE,0,0,0,"BR_MM_ZERO"}, + {IS_1_ARG,0,IST_DEREF,FALSE,TRUE,0,0,0,"BR_MM_NOT_ZERO"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_AND_AND_ZERO"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_AND_AND_NOT_ZERO"}, {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_OR_OR_ZERO"}, diff --git a/Compiler/CMain.CPP b/Compiler/CMain.CPP index 63b35a1..7002524 100644 --- a/Compiler/CMain.CPP +++ b/Compiler/CMain.CPP @@ -389,7 +389,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) Free(tempie); } else { switch (tempie->type) { - sub_switch_start: + start: case IET_REL32_EXPORT: case IET_IMM32_EXPORT: case IET_REL64_EXPORT: @@ -405,7 +405,7 @@ U0 CmpFixUpAOTAsm(CCmpCtrl *cc,CAOT *tempaot) case IET_REL_I16: *ptr(U16 *)-=ip2; break; case IET_REL_I32: *ptr(U32 *)-=ip2; break; case IET_REL_I64: *ptr(I64 *)-=ip2; break; - sub_switch_end: + end: tempie->ip+=ip2; break; } @@ -569,16 +569,14 @@ I64 Cmp(U8 *filename,U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drv_let=0) } I64 ExePutS(U8 *buf,U8 *filename=NULL, - Bool just_load=FALSE,CLexHashTableContext *htc=NULL) + I64 ccf_flags=0,CLexHashTableContext *htc=NULL) {//JIT Compile and execute text from a puts(""). I64 res; Bool okay=TRUE; CCmpCtrl *cc; if (!filename) filename=blkdev.temp_filename; - cc=CmpCtrlNew(buf,CCF_DONT_FREE_BUF,filename); - if (just_load) - cc->flags|=CCF_JUST_LOAD; + cc=CmpCtrlNew(buf,ccf_flags|CCF_DONT_FREE_BUF,filename); if (Fs->last_lex!=&Fs->next_lex) { cc->opts=Fs->last_lex->opts; if (htc) { @@ -613,26 +611,24 @@ I64 ExePrint(U8 *fmt,...) return res; } -I64 ExeFile(U8 *name,Bool just_load=FALSE) +I64 ExeFile(U8 *name,I64 ccf_flags=0) {//JIT Compile and execute a file. I64 res; U8 *name2=DftExt(name,"CPP.Z"), *st=MStrPrint("#include \"%s\";",name2); - res=ExePutS(st,name,just_load); + res=ExePutS(st,name,ccf_flags); Free(st); Free(name2); return res; } -I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE) +I64 ExePutS2(U8 *buf,U8 *filename=NULL,I64 ccf_flags=0) {//throws exceptions I64 res; CCmpCtrl *cc; if (!filename) filename=blkdev.temp_filename; - cc=CmpCtrlNew(buf,CCF_DONT_FREE_BUF,filename); - if (just_load) - cc->flags|=CCF_JUST_LOAD; + cc=CmpCtrlNew(buf,ccf_flags|CCF_DONT_FREE_BUF,filename); if (Fs->last_lex!=&Fs->next_lex) cc->opts=Fs->last_lex->opts; QueIns(cc,Fs->last_lex); @@ -652,11 +648,11 @@ I64 ExePrint2(U8 *fmt,...) return res; } -I64 ExeFile2(U8 *name,Bool just_load=FALSE) +I64 ExeFile2(U8 *name,I64 ccf_flags=0) {//throws exceptions I64 res; U8 *name2=DftExt(name,"CPP.Z"),*st=MStrPrint("#include \"%s\";",name2); - res=ExePutS2(st,name,just_load); + res=ExePutS2(st,name,ccf_flags); Free(st); Free(name2); return res; diff --git a/Compiler/Compiler.BIN b/Compiler/Compiler.BIN index 0ad47713a9c96cd6ce917c2845b46761887ef78a..d9a398636a34910e43da18e7bdd206755adb8d84 100644 GIT binary patch delta 87193 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∾M;3 z|NlLkf3Wj6TXR6O(Q|MBhKGOx@b$WvY9O;Ym>3vdzM9+}%BOwx^Z)-ZIT#pTp8gE# z$CXL2cr?}tfbuba%Z|_g|ATlSZ}PXSntUYGRprZLxDV67KFke!p#oCZdZ6@WH9N?M zZzl7HyVrmF1a5kQbK^@ncCb(RTg(3c|Nrv#C*(ks0lDZe8^pJuxB+QwJx~hvE%VFA zY@k$DCczAH2_#9K2Py7u10^X?NWbj-^#4CB26&z8Ju=jeT2j()O~+2ocDr(!2|BP(wB=qB3!5T2o`!$ z2-k%{4Scy4!IysQ*^g+WPyV4|-ieJ9{fUvFbAtV13&^%ieUNS0#UN3bZL?XBt&8}892j8hs#sw56}_}TvTx4=O#9xvhuY^1 zwr`6b$iDi0AW@io&zO1amERf%5==>mp_b zhK#S^qRRL5|Nk#1fu*%!s++)EM=?f*m*pU4*b9O8Ag6*#DM&#A>M(fxFN*+|8=w*- z>_znL|NlKY-6CG{zyJR~?8V)8s5*3+85pt{vK+uVe7Y}Wup~?l2o#^(7^S1U=pEP( z4y7-rgLHxFpTkTH4By-&8cHD5(U!>G}gy zSVgyx>X#y`dg5A#sHsyr}|90OWp4MmiTi1d*NZqbKJP!U4 z0J{pr26d#`L9@HC+}UYyJy>&zsvYH~=d9>?j|pi~ul zXL47pf(So@ID-Pi<I~*& zz=wj5|ATa!GdvWmC(i(oc91dT=tj{~Plo$Z44_cI1Eq#d-WcyN`9drgvyY(9u0(Dj>W~PMI{PuiJ3X6 zDGCfB5g~d}30{F76Upt2OdhF|15yo1APa`czjB=9j$i!z|35hY{`ctam;uUL z4jdkq$LljZx+`W(j?1;>tN8r?zvDM2Hic4lkN-uJSLQ0XdVrb|2Ols8fQwa+PW8{A zVQP?aaq;BHJQ>E`$z^$Ro*k(mhcGY% zc>Fib0@eHfO@lxE{|~Wa2eNDkL>AOw0LyyD!@EI;8T1%7-^$}=WQuE;{5)TQDWPF9 zXF-lldIJN4M{ntdlU6IeWcsSJ}Uh!URcRJw^NqjB=L(n6+{jhi#e<})&_ zX`IYep~bYZak5#(Atr{V$-gQ(nV6e4w^j->GAT4oo>is8q|-F{M3pX+VbkRARW3{k zO_Ob_XK^fU0(p+1dh-2hF(&3_kQ*m+)$qu3G=pX_N?$+%uNzch@wb4Qs36yig4Bsj z_N)+1H{M+O}^Fzn77&GoPPZlf{o?Koh#PkrtoL48n^bE`teEANP6#tufG#}&0V$66A z7M=XO&X?&Uh$$kHo$(FggcC3)sJ2XwtCwWaXhCvgks#6dHDPA!{_8osiysHP|=P1b2u5W3R>9cKj1!elXIu(eK(Yc&z)ZAA!6c>F*1 z`gj&YhCu7&m92F`JCNi+GdYi1CtJ3eh`&S<25UK*#gOr)b#hDFDyAdcn+@9UGctad zEYNAn$TiumvzyU+@}c1 zj9E-!FCP5^)wG8oeCDthmq4TMy}dX7{r?{r_QFYu5u}bK?8PpS`2SK354c>I8CWjt z#XPVP?_9uKwy+m{VE#Gp$+7*uBI{il7(63AI~hTl{;bFUa)}pnChzN4k=y^95!6KF z2z&AUFQ^#H0+ka`YZw2XG(n1~{r6;<2@0yIzZn^Px*zyj-l>z$V#p|-fCv+TjMfRD z2I1tXlM^SnG5z{AdF6yVj4G4cCh7@2nFtEVM-xCvb3ztF#<5A0k4>zXzCQ_+pUMp& z`3W@Na?Fi`<8^Sx!%3SHCUr5^FD(B5-($CsprC*tD4BN3&HxLjC@Co@K?M520v;|d z4lEFXKCnPTM@It(L||?)$VV9rEHI~bRuzI;h^`M5m_Q93)zzzU4jlawQ34xl` z8B8-7+#yqe0WWqe0u|mLJdU@4rg}g{bl8j1Eg&&B0ni|OODd?N(O4${?)GtK@XZ8; zgx5r{&FV8JZ z3BsQ3U=zwGOs<(~D?S_4G;XdFu;y=>0A*V7x3o^aFg1hY3|Qgj{>cv0)a#88bhz_& zxbt+lbHjSJ{H+H6!G60p6BL7GkQnsoe&EuP&h5j$SoM3s|Nq5o$J}{2Uh9GQ?_qp_ z*K#O)h1Yx_{(q1>%Q1Iehp-pQn?Ox#P>%-`n*8;xNB@ECdW~jR*o$8q|NnRCNaq2W z&;~Mr^O!py$IGez{{IIFRl|e?UN%96DquniFY}>7tp)%8^EW5{`~Ux#JD+aoqr#<_0G z?rD2A{}tr#oe0VmI~b5>;g5P`AK(Jb!gspfc<~U_5A43-c-&b)0i?9s_l5`mHc7{h z=*hV=HJRLUCeN5@#|fSW?UwzYJ^B93b>cTclUSf!0mmr}{>=W9m&{r{Idt}MCg0hc z<>t6CGEJYeIc=^RBh&r4o7c_LWi$^h2KS0fIl^8rEdKxhwQYCX6Of&)2THgzbmoIX zN4gC(*pnt9Ud)~03>M*Rn=G{8CR5LX$!`}(F&%1}%(+mDX&QuA)wDTqp)I4xltr-2 z-h4zMi@`JKMP>8kMT;z%b}rg{cTpLm@cYFG1sb4HxGjy7)0V_Ab+%7Fy(EaeNKZk5 zp_pO%eojWQ$;L~c*j!$YP!BRN_{IDB|NmdB`L@0-Q3Nfo@cdsSkj0eo2}9lS`pv=1 ztQbY~Rv=7}$YSseeo;}kdExS9jI0bnz7`CdeO9V5a)hk{`FVczKH8kHH4(BTey zp)%wD|Cj9y3=GHtQ~*|NQ@#1_DnCY!v~{4O!esSi<27cY+voiM|MC^6m(9NoG-4U2 z5&mNF}Ez`${$sgC)apZ%|vsg3P ze61dD#X1It@E2<;KqHjvCl{^FXSAREXzd}hnpyw3Rhl0DB5M{X{niUW z({CqOqfa>~{l_bKbjC%5zi^*?Yn>P4pUJB0)p?hI<&Tzu3_dYAa(z4tC@?1PS#QR1 zX(Px(zt>IvwZ5Nm!{)9HZx}glfW_)JZm!!T&&a8;4ZMn=xM=dS&CfV2AiS2zOE;TO zKE352X8=^7VDhrfW}8oM)n(+&fC!oAZD!nV$;?!Ie6!6iJr<^k$2aHfW94A#*tWU& z*lkA6^~b>mZ;PEAe&PY+-N_aw4ODk|LSlm>>_uwj|NpNuk)wj`6e!*rVkY;VoM!W} z4pM$K|IjGm&X5I5U5N%|&Fgg_GVm%${)0zzoq%QucZNP#!Dg_6ZIk0q8F4s*MM|P4 z&pc%&=UVsw|4SB7g%8c@;b2)+uzHQjZ%_5{{sN11Mg9Mu!GC&k$7v^NuUe25ptTRy zCEOXpr$MgMjRIM2F!|}}R^FsbAd%UTAdz{K%g-b!S=apk@7sOEv-to>mn46)Hxr}| zaxJ+8iU;;HlYgI)=U)ca_&VbM|JOHtjW12^yQn_I;H(#FBVn*|Npuj zb&P{N(@4lL^m zlI>=Pl$u##9DQJs(_xeC&#N)6nVfb$jDJ2@$Sv&u|JP<= zFWe`eK0ncJYX!`|RwdjS8^J1Ogo2EjUGe|_%L34t7i47BrQ1Qkk$=|%sbcPo!(ep< zp_6A_P+<(7y#InI#{;mCUg+dI7wj0nPnNzY#dN29@_`E?dY`~D+e1Kx?kfNP|7AZT z149PO6_C#thW!8kvL3`21@k9{Os>4>Bo_wCXQ1k*L<&?>gI0x<2xO>%l^BLhzIjof z!vf6t6+Btsl97e_PLMBdfX3ZqvKYf&?B4F?#a+O9paIW&i)bmIB8#s2Dc}ak(?H!3t%AH^05~gNZdEturoR@~f*l zP?q$ye%9m?O@->o>#tq0Uaa^3|7&T`;)D`TpKjSLATEywXu%e!E$Y*KO=YXTW3uEe_e*jRBy8E z4Rfa7x|73hXnI^@08Q~6@@)QL%in$yG;$X7A`q0fAfu1`En7ipvfK5C5C3)t0ng?i z4*V^P(1aZMTlyy-zaeXprThPXsSs$noPhBGkLI6TrOY1x54<)=YpxgIE)DbOc2@v} ztZ!O#oq$TIn~$}u1xSbOWSN^1qQ7)NW47@I9^LQ3EH?wsPN&JvH?7z~OEtn@SWRxZ znaY0UH>hAdH~GU&$?5q%jAD~jZY47cPwu#-$23iQ@{U{jjJGDgxTVXuX0q6AV`T>L zqKgk6{M*9>Jeq$w^EZ2d8g`%sKP&EnGI8at$vL-Wl?yyN;|n~x=QV(Q);S+Ug}rG0 z_5XjkXYh;3%nS@KA5C6%yP8Sq*W`QmB{=l%f%Jyop6q-ls9xSjWU1`Hhk|8q>%xhDBpS=2!WIcZ?xD4uU15vPCD^ObI0}=6TJ|K|h zc$|TY0U==E*=ga~S!Lkz%{}CQiK0jI@dl6PdI!c*rq?0}RSF*6@eZDy60fyAEkBha zOL!g!b+Z{>3wiwCrUkP0#q*D#HpfHIWM5Q#TjgId=H;qyNF|rK8UMNg%eCk|(XAy`G>SeZY z|FxH|@omS=jIW)t7(D))K7&XyhP_w=lGJtm<`nY3L=7x=3M9vvB@p&v0?e%KARz{j zCADB7&mfS>Qi-q^x!}Q`AKzT18B6r|cjaqH2!o_d+aNj^!(R9-`u{(Jfq?^LZ2?5o zG3I$HNf+B}3uCNz^V1qsWn_58B7>2$0w-A(XMb#B1uYRV*0vf2FeDj$j z`x{U&bUxdx_*{Zf05pHu{UeJZJd43IB)nQ>UqN z|NnP`7NmUe40<6j57eS?ec>7OV)E`6MrJ4DL8Bo1azBN82ECXv7d&(TlI#RAyW3WP z3eNup2A)AL%0VLkOF@R@Ojdqr&bVQ6^h*_fSI{(L<8e?m5&mMs>&bmDWhFn)`~Uyt z_kW-QGw8*&IdDTyPd@Te1>%k9my_SW)Hjm;|33>H;$`!ou{Rea1P<}!dH?^vh6HK{ zM36D;h2P|WR}zfAlQUnXD}>m9+U?t1KY3WY-YDbr;NKSe$)hv&h7bR?+)o}mHcbBb zT5dAmYkn@dSD^6t0TPOSsW937wSe*)Py;!@>i_>V&=>|I!!g%ScAh~m{Aa_1$7OQW z>oP`=Am;+*kgQm;FUN}#Ve4}CymlFkboo_+?{$nQG?{7g& zlmNXA5`hHhg~@x~xCtv*frn!@fy6t(QM7!r=-WHu(`SIJ^Y~x-;ziGl|Nk?3-ZC&` zOny6=;D@?7sg<7=e?FO1A5m%r0w`Z06zqIU`GA3%OwU^bcay((kVWc~Ms znqUzpv;Y6Q-33-S^0x$lTe{^MprvxH2THj!w81JA%qDlfHxm3B@&EtJSzsmM4q-2z zMNB^PUPc0}VwdUv|F5~exeIWVuy}OW2ZX)YIO&6^=qv|N!UcB~cr${)D(g)rulp!J z+4F;(s%Hd97SwapDrI{8-q-k&<0cMprg0Yq`5crRcqjLK=wbf|a(S1@WciNPuQ>wcsi$)JHz-V z$cf*LKncqY+=6Edd+{-J^1)ByI*Ayn)4{5@gH`((c<^sy1i6VV?8Vy2ET7}Og+TF} zr4sf+XDY~9;9Td~e89k?Th>eH|9{U;39u9GAnFRjUa(9B>G1e(stpoi%wi6E@o@^M zIKDi2-DiEq%aiYYmSR_C0y)uX^8e3b4zol4|9@=*?tqn;W=sV;r_S*I|JNEW-&~)8 zD}*`$9Z=t_5TsHFq!KjjupF#1#Bg%xmt4hnQ^A>ILl%Qa_eBBF2+jdewh!?5U%DZS zC+x-6$&bIdOWbDw4UT*MFERk7SWtjQPyYY^<%!8oUo}HP3*f_E@J#^?t+!c#R#!5B z9QnJ8fx+WASO6pz_Tm*tpwo3l*b6U^+HThs9{&prUUc6Fh0h0&;Ve<(a?#|NFLH;%^aSWMFXo=Hw&5-@*+ZXyu*^3OA7UEC!Ivf+vB^ zSP}NZaI*I|MP>V-|NmceXY2&~T2mhsqI*C}{+CLCM*G8F{P{My|C==9#mTF`=_y|d z1gky`R=r0Lq}m@vbw5OP%4CV}hWtqo)px#BbjI%R3=Vr?J^93UYsUV`EI)J^6DJ$}F!a`+ z@c;j7cTf@mYYopz2zwz75;KO2dGxl=U|?Vf$chVl!2ps1rzo&;kN?|2Qdu!!FP`;J zUiZUBWJNzHlsx`}rL#D)Lc?B6o&4{IGGpOnrJuTt&XWUvN-%0o&ipCE$UC|1=U2wG z>5A5jV$=PK8QCY#{bj_%$k2G$;}@un{aSMJzW)-Fzx;9*Ec5;U|K%1&28I{Y{)2)l zZL-JjUK@5shOieWHUIzr4<6J7IoR|zCn#6B-tcHV0CHIXD5j?OK-^@yj}ycIWtNu7 zf`5d4U~2zw0IAL54SNyS18Oa&Nr)Azru}bwz`(%pS_W)xDVkcYuop%>|Np1`Z+iqz zg|?Fm{x}JP6#XxE09ksa8|2Vu-jk31F%;|S1iR{oN8-D1UhTH-*Y;WO0YR&;-j{gXFD1^2}i` z^gtv2ovu4TxlIscR3kjM?EvMruU(+L;Jd@KdGeCKf)hNYX_!XE9`%g}qQ{2RYJcdJ!X| zKEw-Ol&7y?WLyX0G#qU4nHeRFT3i1Af1U66&E12eL=-f!;R(&l{9!LLL2|*!g1lib zLZ+LuFv^>ow18X&YU6@jrv_3f08v?90ZQB=Eg*~4TtLfQ+&vgejKFcQZh9{ZqXwhw z^ldDR`f?ng%%8==$ngKMXR|d+ExYG&X3(Uoukn+x7Yn8{u`+5wB0Wt3WLV~O3sy!2 zMvv){APG)T%HRV_2u|;3WmI7L;52c}x!tq`JOQHs%Px+OQGIpd+}h1`tl^+wg8k||F@GK;}843es@*Zlu) zd|(6f%g4-+lr34T=Gn~zY96qA9%llDoM-S0!|MP41F{%F#edAR|NmcZV+O4f7sAs!co?l2uTMY1!|1J4Tn$=d4w-^*0vlH#0SbU(YpAo+ryKGziqwZ%gF*t_ zZ~<4;r;o$(rRxt5{%sB+AP;e81c8lEkN_!mlUT{Xz;J-S)ebbq*X{blqxnEXz>A64 zb*6xIJ{1QgP>=tmKe8AyR2X;|!d`&<;WK>?FQX}A=k!m!jA~2~_b2y%lbrsPk5PrM z46IE@9OPzwtLftWjH*H(DiMZ&GWLVY>2vrP<%AAYg2FFN!ZR3B*Dt#VH;1JkYnp-6>K@boqT z#-sII{F4s&bYBR2VOS0dn%8BZpoIjVE@-`R>wyvj5Erz&HSC27TskW{?1fkvxW&!j z(d+slAne6?P*Usu@tVo_f7lDJa!7~3qt{IWx^}MnIBfrp07FJ*9(c52`zb-ja7GKM zgP;WU!>2nw!n6A@c&P<=8EbQ$Ky?Xs#y@dT&P@{pxp0Lvh`a^P#j(>Pg&ECM)J#B= zTGFqNguRH8h9vje67CEE36L%ZurB85n}rz@_#Q}sx~m?&t}g<@UNBEr6k#l444ghi zgmHtWy(GxoEF%zUQVb&B6@kLSqZd5X1*)wKKvk;2^juL!1x0=oNk~!fyAY%SwBaM{ z#nb8QL>Z&>rWAsP5SSQ1y?oHppB9J`&?=nhuoq=eo=30ifq<|V`qRzC7}E{hn?bD+ z*B7tvdIr4!jVgz|uqpcg|K(J08^=Q8|Noa=V5Y7FsBw8|GUIoV?GMEmxf#X%_JDH0 z4UcYL4UcX{4{%?HzomUTvjn3)-vKeG=YIr*y?8v`L4t9y7O3C$axbXC01E0-p|BT! zML~Yo2a}uhK%rUB!NA|EHJw+Iv53b+4^$B!c|9%ch352bNk$DOkM8LkB^gC^L_oD% z=?}1jJvv=)cy=0u44c*K;t|@q&6QI;Cu3FC28i ze*f|MC`hQbR5k2{uI~T;uVp>{mwI@HdIov?FEt4F3lxz- z-5=(_z%~7d6k{gil<9iXjNa@*xgeEirZ-44YBP#WUn9+EE^r_l99f{mdm|w1MdkF* z(u{G!vuYv!djZ|H9`<6w^b{G!bY3||hVU1U*g^9&Pqn7skYQAmWcUgS><_-($2^;V zFw}Bq$bl6tVxKM~%b3Cg=9q(ZSWRz|W!$2v2uhFTY@lw=6Oi|`N-bT!xxV~g!V~sl zg#gHjxA;M1?DRM}MhRuGax=F7|6d;nd%>Rpvh0Ot^Is;=GWfqNrT$?rl%~&+V^n0k zH+`2Jqp`vn4UiI0msqQWJ0ljXeLdJR$1R}Yvgv&Cj1p{M;g;#T@{C4|k<%0884c?d z86gXxJUiKax?MFqn-BP;IW}`Byynhm2P^*zYJN5UVW^1%IUCfiTmTk-$^vrk3w4;i zpo#DeV42e_pm;0|$YKZ&dm(BFnvOf+*?q(#^8jc%7_tcE0!ZNC1NP|x3XJTGPo_&K zFxoJ^+B`i>fl-ScY>F52^mYZtA55u5(;F2TRaJ!4z&rk`Kwa1F4{68Ud;}Ogx@CnQ z|NHOJ8E25iknvV&`YA<5b(Jzcuu6S2l_ws-Ren;ME~>;B#{Y*Gv>dBSK(mzHGw6l= z^eQFBCcZr?poCv1U=8X}ubQ<5CgxyZaNOSD%fIh`*o*T? z|Nr~+I^6Ya{=rln4LXWLRTtE>aZv%a$R>a{+9`&;xS$Mi3S?JXDQJbHx-KIFctRCa zX83eJ@RS5a**f3uKVdHxDgXcfdNEkDLfDHb(-l=1W!P;0{{R0{ak{e#qfWgs*r{d= zAa4kQoB-ZB$W*Er_CiY;lqZTDc7P5O^Wb(>2=ELFd+`aRIT$pl+U>dnH2dw@ePD$F ze=9cw14D)z*t8e_|NTGaI*-w#J9dXhXY7fv7h#+r^KUAF7qB_a?)g8hHY-A^&>#Wt`xFE~J^WhYyJ-Eqv_Pa*6@GFW^nSX^TIY*j{WMxp7)RT;JT^0`1G0-z>yc-V`i>Hk$3 zwFN*U8K9}Bbg(;Ct4+63W0dD81bfl_-}FQ^#!j)XMgRZ5zVF$6#Pk0d(Aou)EQYWb z2Gi6T4H@@NH&SP`li9`wa_j~$X$%@DW(*H|vEnmGFnM~9I%AUf$3iS-=#)%nRA)4h z_5^DLZ_&sD>1GNKd-3=aNcX(y0UC_@Oy5hUH)=2{2nd4K0{$ zD9R`?Jzk4Zglq3guD~dJr*HjMA_7yzz~Ix{5WvX5;Mr*a6PvEA$5;*0 zxj>ImmZ?&I`hGn|1*SUv=@0c7T|wd+`iyc+*Y&4+=rbDn`5Ax;A<3`*{)fGg0k`Z! z9{vB{2`*uDO1Lu;!16!8faL#xThS&Ud3P325dg z;0G%Z5(gCs$3b&Z0t~Jd1*y{)7%;{eXMzH+^*~9P@qrW{{%s9epuSV{557`0P>}uK zP{0g2(I~~^|Aq?C7C5GiuSU}i4H<=H5E2L$SP63m=kx?aMo|Tj(T>L$K+Q2o73k9q z8f-3+^b7*+JTTrq)sRt;k-0>HVfvq7CaLKc9GO_AA2(u@SK#t!-gknLfq@CsYN-V; z2{I1_6>Ffza@Y&Y>1@V~R`MPp;2Z}sKRWD%RS39E3~F+KnqZ$Jr^g#JS~7M_pJ~jf z$Nw+{lmTvlx`=9_|Nl=vsK6*Z{iQMEZI(!nPR8jMOc?($%{n*zf+?dRAw!N2xuia(ZJuy~vtz8Dr;kNgGB@LGXDipdzytEPKXgdaw;+ zL_KIVDYQw8wD#!baZvNK+g$_P?B4>~_5)h_6XF>R_KJcpxVQjMNr-p`XEA0hwTF5b zbdcC8y?LEEIj@*c>FKD@#4!gsD^IW8$R6*4!+$Fe3{b(e2vvFy^hLa%=!xo zg#R1Bj)9y_1c~%gi0S+6r~BG6hI3p8J6+pu`WjnC74FCOpt`kG;Kjjb({I}{T574Xi=XY5G)0MitIO&WsG6;VV1gn9;CIdr;y@c3W)A&W7i$P+2(L93=cx?Lqe z^_@^ggXeZT7e-bVu{MZa=!smNt}k8-W%PJXkMv-yWSZnT{fY-;Ce#1_)9pPOHG{KQ zz;T@V2GlHbeE}Im=ke)wec{=BK*F<`Lje+5pz;&M>Spk0Jn(^;fg#ev`b0^YN4M(> zkH!NIj0_9`U};dnyWW#ALl2|@BA>O9>CBOF!;6t2YJvcYwSF_9!eI zJS`8FNPtBeKyn`4GeCji(K!!9!SXF=s7b=J)4-!s&ZpCj!=tm9BkV=QbW0yb8KJIM z|NeV+AA)ZxJ0vkZ$A>XqAMB4szUcl~;fv}Ih%Z+Co1Wv%XvzjUP>O+Jx~?yyxirW* zV28n+>S1}TR49ufBhhbqy)UCEdx0OQZh1LBs0OBoGMdqCLF& z@4s*B?GpPJKg_4E@nbY*Ts{4PAEQ0fq-)a^{TYp!Vy{gP^JmmyQUFVFUm&9i z?8SW(cy$yW_CnJHRHAJA0h(xF2zy~<1}Zn(KwOZyqM(WllIUxV+nh)W%|irMg_*n(_aNMmM}fDn4S>AsLj|py(fgxlQDn#wGc)v#-8bn zp^WN`OQvgvGHNg#2%8=p%4oxMJZ$>JP(}&HpVL=`G8!=b37dW=lu?e?_<#q(3zH4g zgs01gF&eOy=9Lzwrc4hAWAvN8IE>Lx@Z2$w`)_!Fw#|XI;Ac%|3TK=zkpL>m3?o3T zLC|1<$N$m`pq!>VeOEZ6yx=5u22eEtn%V>l|DFCSoYBeCo*jGwNS1)?OA|B|^MCyR z|55=Y2wH5XR3wlgm;g#?250{Lf5{FK|6d9>u4sB`1fw?N>FEn27=^{QgAQpxk`?;( z|NqNH(@#Y(7IUbB-FY^0x@#n3grpOwjRP~^7;OIiQ~&r+BWw%P1#q(- zbcD^zyVIGY7?l`zO;?Lzl-HjHT8a!dfWLVss6yr6wH#CiDDyWj1f_=NdI8%~?hH?` z(XywemqaltGW&G@n7%lQF^;1WEIj$-bk1l-cgE)Ffzgag@(FhT|G$3X*<9_wR4VS# z?YqOLo6+&x0mc$8&`t`c>64-vQ>E|Nf;xvsUf=UIe&TEShQAjy69g*`(J`)0m8yx?AZevNqIm0eJo=jW8ZYgI7U&%is|8Tj3#1_&V$sqfJt_c zdZw`O7cA2k#xWWQOa-lr0q-|Chz!LsjYp zKr7OhfxV@56l9?8^rCpiqm0(mZ4(&Pc@ja1+3*OcRctc7Ac0Z89xU?hFi7O*Gf*NA zd+|{N)E@l-O7GzrZQ!oZF}45yvp77%K$)#T2sHD(L=~J0J)3{CmwJS~*bCLW6+9So z0i@S6C@V1RMGr_P=p>jdmarG~AP&?RO(9VG6SP+(2qcxN_W%EDUXZ?U5I1bPSt4VY zQ4+|#oM6}SKy6?_v4JJ*#cfqs?hbo#v}^i$QAVk0$&BoNN5Pu69s+r7$5V*cHmGBG ztreu5BOKKJG!O(i3DgS)xjY9X0dsl$bloIIuOuDtn9l`J`Jjj}$`kB^AD~$~h(U|N z=LTI@1_cqQbmc7J&bX8e^2?)xAm==N0xNexLq|`+GAFEacV$^p5i}W4@IU3}g zjCOD=n?)3M`j9T?wkQpLyd_dDcyfSofsDwKs5^QV?*x2~TAj37m z&Up+~qX|A2k^vN`_xM1`g$pcg10G2F5cVP&I?x2_iDiJz5&)Y88q&(*2=`PE4tueT z53~n0>_r6B*O2sdO9>L&;8b#U`u-F~2c{$3(-~74%e3a_f;=m`ALJed(2!TJ>j@7~ zGsuC%r`z{}XY)Y`&p=SzF;8EZ$|!C292`MEJpa2}fYRIzF!uvU!CBDQPp6xLXSbUI zw2=)83Xs%<>F-h*<{&Q|Ng&LfT{=%d%*!!0SdDd z!C)o(KtAPo2un<$IfENuiPw8UGVdOM-N@kizf1w-!D9-b)DPX$Sr6LN*<2@3%imH0 zJ`!fe^ap8-Vur7BK@~}TI;bLf=>?XV_5fys6=-0v9aLL$XM6(NRJeD#dOD*aqxGNC{*oV-vr5e27}}#Pyd?1Xv(;Gx^^a` zF{9)3_)JD8g@1QJabmUt6b7K(LjOTy0apC2+rfGJ!QJTxGa0wkbL4^2u=K8f|6e-( z`Tsvd3e4vQ@eM(%gHfFR7ZhsUNKU^Z12WyUA?(GYJ0PcLF?fPA${vt7XzL6p{*K@I z2U;wo12%c%&VTT|7T=_RqfyL@BhoEzd-AdTFXJ3t4jI6 z(E#@K#>04P4K zOLk`HfmL&Eo8Fkmn96jwVET(ZMped;>3sQ&wmQebtyEAWAKXi50QJXlowz%_F`rSL z|MPWlblocex#8}X>D%)e!x)cE=PO`Tm3s#k6ub2A|7%WA$_F=-V4>E!7bO<(;(>posecVlDzrj(56(i_d9b;SZpg$YRI}dyy*!nhsQuVqggO49gM< zdl3r}0P({?eBbHDg^Y??+G79zzgEv;2>0x5081UDeF7_ykcUTm0tp^#CIZz5O`*lA%e zny3FMWK^tA1epV|w;5yw*j^uyAjICyAVHA57GTX#8?@1FkOIqs>VeV^pt6q(Je&AM z7!*dJ#LZm7ov{)ei2pZ&5;xP;f8bt)DI}BL5dk%_vKT<~L;pb&qmAG$3dpwTuowG4 zvJ6neS;Ahdn|`r~F_kfUa&C$^sC%TzuNwaUKWN2R76WKqW&HHEVn%hrmzV$jfBg}Z zG^sbhJJ7>i_@ORxdXG2TjC>y^wzQ|Nm?47mJ|WJFh|E@M1EQyY~$!k-TVu za>J(2FJ)BVHLC+9<`e5c@o;+jnNmgvK~Jzy)jCkf}tF*lM z@4sh=XJ|Oc%|;LY|9`m-v@p;LRH-z=&qpW)>tI<28p;6e8;iZ+aoo)Sl;^`NAjSz#|OPCr@BXd!hAEZq#2ZaWXs4)Q)z*o*q<(iM#D zav#tA`~ULWFHju_OBtoy8E?V5&a9q(pn_4HiLZY8%?d^x?`7Tp{(FXJ#fQDf;rsvp zHF%k)=|qqq(lXCLkQ8{Cr)e2T3bD-795lQ6|LE(PVJ}>!2UIeuh=|vNV$om~DEvUF zG3>?bqUrBb8D*wl3uY8x;Rt(iWcrRuMx`)wu)Lc68u18wVZR*GGOsPod$|C-UfBN(D55~|%n60ji%EmR$}=o0G3>=#ZqUqMMkCmf?^jHpTg|8=q`(JCXJC)Yf;_r| zce-H}qv-Sx)r?#r6TwP5R{Z<#*z9G(1U3rX0ZQWrg+s+@NGLY{05=vhPlIc(RbWlQ zD?kB*luQnTg>6<$_p4#lliXbL|Nm-4Slj7A!Z zRY5zn!8!ARM|bQ4(D?v9-S@H_KnKHs?py$6RnT4^fg_AE^=ZpMMd0BEP!Tx61Jofn z_=Cx#+qc1^Thc@OhDWF5YtTyah8M2jK=bU5GVth(z2MV14Yb_|+;Y_dwaVNoz-(Di zPWj={9S>4j2zR~G%$*)XMtUk)Ch73Xsn9Cvw0tA zEjkl_>jh=dv0)NS{4K|nr_Wl=D5K@kEjyzbG;|ne@N$kaXpLT(1S3L2Cqx4ye@p#z zy+%d_?n0R2Q03{7jf_t9vx5Hrf61c^3M%kMff7g0ZfDRQ0PvzX{??C5paE8A10Viv z4xyf)i75e(ZrOKD|NeV+Mq9kRqy*9_yAQ@c1m=SR9kGqpr~7``3nP#{OTe;x9^IBc z-Qu3zQXZYIu^T{Jjk)++JCzt1(j1$s1kCtbYr*PVH^4TJsqnXE!GyXUBs_M3jyn7I z|NnoV)OVvD7-wNMvtlm*AqTo`{LNI5)JO$N)lKJe&vZ~)D~@MPRu&dA^y_9ABv zC?mTg;-0@HU6z5N9u#KkrIKmK-2_w_Ji7fQJUIO%!e3nV`Tzf=yDS3(NM3`#)ds{o z?k1pyq-G;XjWUY$qNvvMx3b7GFl4-gIN{aofB#>8mH|8ee+?v|vwL*QeyREQfBK1b zMqSB+HBe731*w7u;tt>Gd>xE-jBlpx6$;T{Q`#FqJE5RE z{<%sWJh~x!*nJ?Ir>FnvWK=TY0GrPQGL93X3siW)av2wY>t`O2i{LszvS6KRn>;}- zTjL2z$~;hCar3t>=RtPK%;{6Q7!nB?I6d%oXXAL`V1_Jq8p@QI!HIqJh1K= zAl>t)H+3_rF|tfw+0E$8WWqiDT{ok&tT;E+6I}eQ+}xmxE0PpIaoKu+zvcIIwH`)g z-qY?N7aVo}|NrF~E^rE9S;57?FnwMpqYSqm=sccskX+sL#XXFAOt(FzU+!UaV&dkS zF5b&%qH~oKIb@D=BCOjDI>EXdVclv@u;HQYARXOEB`tqT39=Aqbeg{<5v02_Nx}2K z7dWvQGraWUgqA(v(&LOfsDc6=>dN0@!a4n2FQc@YILP|rZUWp4FG1&LBMOu*B*mYm z>-RCrs9oh?U;yQ8ZibhqKph5nj`BcKyJ31^AES))WQ5ud6t!&b(;FuPN z$}#;P7h%S)xkUSv)7KLPBknv`vvOeA5tTTPX1V$0g*U~Vq{6t12vCU2(SFd#f zwT>Y{&&}T|1`c|saNUj3vAu~kCr+_LPlz`_hbwm$%!AXo_)6Y$0*8;{0Tx9LZUt!gf|3jmp|Y>t5vB4` zyXjri7>${da;NW~#;9c&*EAujdRtodO_`)DQ+#tSNt9^JB8P>v)2u4D-nK&jefDUGhGMgSYmr%cv;TiNI2rTDgIz4F~qng$#uzDG=m>E{} z3}CrmCet^~W7K0hZZiGj0!A&SStir@<}*r(zes_^okzFqT?o@6{6(h8bo=>?N=zzlb!N?!J)Gicw~I z(?UjL#pi}#cV&U)!S0HOFd^chwnVu3t07E_ z@E7KW|Np;S2^zWZ40|yN92+-Y&V=!;rZ+8O4A84E`2XLd({+YVcb$S~cf5c{XKaUO zx4QsnD3Z^kJ9dU=XS{$mIQ6p1}(o>4La)Kf4PBY zuxHSVc_7Y?4b!WaFlzEBJoxt?ywiI8lQj%= zru!~u{Klv@-DL%%FJt8NNh=sXFg5R)-m;QWy`FzNcr=T@g%8}zk@M(`J>bz?yMnP4 zw0m0X|Nob7xIrTiZs0K@*BzkLtmN^(bjJ%5h{y&|$6Lu`M+Rt63bZiHb;D~R6s||7 z>kgmpG6R%>BM;Eg0|y^W*ImWP5dglyXTu&)2eWQ9sD}$3#$xv9?u`JAUBl|%mrp8U2~anq1XQ-qnBKUGQK~*R5+on{;xz}P&l~#!v?cQe zi~0ZmX`OBXX^n0H42)nQN%Q~zJKTc6(?%Xp)A=E$UjVIRLNQ$pV(f?4%1Ba7V2fWz zfNlH$wo#|RqcipcXoV)Y$VlsSb4Y7+a{ycU;l*+@kd;m#D+NG9d1k8_<@|L$!(RBA zft{C-*65bNz~~wFA{DGM38a!g4CXqmo1g)X&=uhOBzJ&A?(rH>$brY*KoUq&%%N4&pHm5I3nK&IweTNP(7fU3gKU z{{MekbDax+t0}1a2VIP$3GN*p@yI@);mLf+r`v(U$J)(fdgmHOMV(I^3=E$CkG$UP z(e1he*1WUeZ@mTTrgbAm)Z~}>0jC6=wBf~CHSj3gju%VR{{MfO z4l?$CS;31o6HtUCP4`~QsLtpz{ni#nB}R|wf44Ad)`R>73YC{PK+Dk@>Okiko`tM1 zI{{k97WN|EJtX)r(Kof0Tfk!e}MFhxu;EuBe1I$5b$K3+J>*g-JC<8BuK?xph zi0R<5NEgrMAN;KnP!SKPeV~Yv1V{h$dFvR(89k0s6+@5;NUl1EXe+A=H`tEoz{)r0Wik zZU>}szgB+GCO6j|(1puPFaNQ?G_-yOb>04#UI=^P2&&+pfViOX^Zx}BFXF*#K|n)` zt`DFqY+fFoer^M!31i=M=8cTLOoy&d58B9RRnHH~5wNh}E=>n)Cs_L>jGZwK?iBdOi7CqSe2 z9^IhJ)nY%q&H|Tu{M#L-t88Kv^Z5bp#(>H~u*LkX&p`tJOHaJ$RRp)9Kv6@aUDN9} zGRjTgwu#Y6>9+z{vjb#cC6M8zHN@BpFCK!=0l2NOU1~Gqenymd)A5<01BxoA*COBC zBpgckKv4_|h_Dypx}Zg`X%a%kTprz^3>*94HLu72GKCjULGuosDB%s75Ui7%Ub>Z0 zU0r7%N~0(E#n$3~|1&)Hffqt6=79>s(gQDVPd~hsF_rPjcFk>!@{Eib(>=E{syK5M zOM7-VgQlWDCxB-$W=usk%%j_NhKKbE-+%x4`?^8b8ySP9bbYK-XYlt{gDxwwww>%d zeZzJ}X{I^S)6Z^aRNxBn{rA6C-J`qMclzp`j4C23AkDqsK?j<4ANTx!+=JQDce?%# zMrRGKVgnEUeeQnX)6AJ&B|QEcfHnza%-zSx;K9Ey-p?aAizQ>_zUi}eFd8tO+&BHq z4n`-YbNi+X>||79V(^)6v6C@CiFrS0*?+kPc(Mq*9YX=)u&Le{b!Ad}(l5Si|~i&2KrWcukHjLwXf)7R}{v=__Uj|h2%jE4Q- z5Wg^;c{gKDJtJd3gDe9BgD}@|PGPP~oWfiXxQ=BV3+SpT2v3;n1*b6A9L^X97#}18 z5<~DItXzg2j5`?DKp{j7L|QXhGl6Ijj%1p|{DKp#yPoSKGX#PpKv;nV2KiX{P}p-g z=Wy!lgVbQd0oViyiq%8Ci>&Ys+Z#5JU4Q>}a6%x62g4QY_8e@SY@8qufG|uPMkAYq z$`*xyfW+crE7cSQ-^}9T%-qa7K_d+O+rwNySHal1P210C9PErxJp8-T9Ju(KLHBz3bR!u*hXFKpeasVPd=Ka}*XBBx>23QNUF%&u4nE*W z>vVTXYj$^0@Mx}6U@T?l-<9ve_gVzRV}kJbU$dn(`nxb3fVknJFw_m^P&Y_{hAQg> zMEF}JnLyr758&W${s!911iD&T0pvE$VnNWQr+3{v?((QacyzjXyw>uV{_hf_WWC2- z8K{Uyv%iFZ5C69K03ZHsX%3)E&p3Q7@6Dl~?uY}pR`zlC02}N8QBH_{z9^}ElJq{Gs zAs*dv9v+?X5!2(YFp8P<2|@j<0`Z*#2Y)j!Be>dSD#78q=_fBUDj|7I4CMR!d8mG6 z0r}MdH+pEQ<>oO^#>Vs70X~Lv?dIZ zI_teWU@7z9^uGrg#pRsRI^!ME8r>ZjIN%0?5=qwouos^NrW+k%v{Z2N>^|VZd@!xk z-2tu!W@*@qQv%bw4>3wvA)5r zUW!R<`l~~XzG1@f-qi+|Z?5zIm$-R0|79t0@NE7Y2wo}^RH_E92QB!)UH%Ck-L4aS zx*aS)XBgCRgLsfu2uIk9qaY>SA6{mABE;D%H8UEtIeo*xcTT<`=)Y;3e0GpKpHY@G8n*$dU zq&*Pl0c!V1F}%#;0=GGkB57mzGX<=>SKGWHcj z#D%~0KB!;xzf?lRu_M#U0Rkoe2=l0=y+ApmA6!{? zNMpSN7ZZPL5y-&qa1W2xOZ*+FoD2+*W40lsY$&+5mM$U7-{b|-(_AmWTgn9;neza3 zEaM?vFX-eoD7fUMz&!#dxbHyS1Q!8@@E86d*Dz22f0R*z&!yA{bgUHE7b1MqRgW>M zAsi0sU2TDYGhKq62- z`+!Y^`q`cX>StkS)uPV{I@2aTs0$+a3Nw3uN;>_US6e8Ew5? zSV};b4ufOVlYhGtxDN5)-|p`M&g5<`uQk$|>s?s*TS`IwAZXls@NahqtMugG?gdjh zea&%3*?K>2@N{1}H@Fcj0PZO{a0wi9bK(N^Oajt6;{sj^!6x@~`CHk*?8YhwE*AdQ zpKPEB!YT!3{{DBMnKQ@cDv;feK)olZ-B?}e*<7W-2)flaJkN#iWejLpU~`oM6G$Y_ zh5x1Z|NsBf8vR@t4!m>#F+r)8zqJ>9`z<)-Hi0Z_u6HSwhDY~OZcveM092OLyiAxr z{{*8#y$ef;l1DcrCb7EXCFtTGXn+ZU91T^BHNalZ_y;=jwYdsZ?LPrc=RiZ@Iy?~0 zfJ7l-aDaiK9OF}?9LqaWk_=@(8j8Za$kpU!lK(U2F^Tsr~kUtkjHfXvy4itU|rMA&N9kr`?LN3k75lx>4OK*K>i330Bx&PW1C)o zmQh?1;F^X7&%w7T-0z@s$Vdc0dcsvTEJk1d_e8%E=+zmV~397^1pJPr z!olzwG)(0JN|VRkQWzLs8+&xS3V8hA09vq?#hCHt5~AB95eD84eJt|d{|t`HpuSkC zzzc(rfB!+paa)JI*aEuaz4br|)9cSZ{M+*cK(+}SVHBC(cb<{2{^Ax;^;f##<()N>U2E+nSXI=V_=YEXy$^z04@e7yB;C{BF&&eAT|uQGc+(FAWRgMUdn{ZN9IZJ@=Cx#6DP71 zgk6tK5F$m0)MH16sH$~2@k5YmkiP=#xdOlt*(eYjq<|Pa{q8cxJeJ&ooK(;m01~XO z0zTa{raRnV6srfvVfPNul2%aV2%7N$-DC`&^5Jg*&1!oz*S=up@B0gBo=fl*>w@(( z9snIK@{K{EMAq}aaTa3+`*lS8ON4_{+uAVjOb+6vFwnkv&^Ur8^Fbf}Z492x^*@+P zML>%?JP!U~_Ut|lZ-;?wjVP7yHU96}{9m9JbOl_!LNT-Fe`e4B$6vn&Nk<~2`F;2o zL!`OE()_!?y(CUht_^;%VIwH@egNH~g6K@W1^1w&Bye{!eqUmgLF#0{`cLJcJ`lYB z^aa#^`U2`@!1_-R5iI?uW6=InKB)f`=H%OYsf5qh@)fB6^cUQ9c;&;tEi4H|9MXS! z<%qAKd|=`IEwi}Ta-DAK)XX<*scc!f&I&ye?Y~RHMqD!DIA$Hc#x8-LWbOR zXpyMohbXS5AG^ZnC^md|@wi|4moC%ILtDFg@uiqYgWGMB%jF z^r=@Fbv+SHJy6FDHs=7InD)r}AO7OepMU>fD?@ry-|613x`4?NMX!whNYd~{2ZVKTqzN`WDWFEX0 z@@)RaUdrR~pFjM?1Be)?gcrNcsG}OdQLO6u|BSEYpITYedW^+)GLAXgD-0WPyK-Or*JYj^6z@b=>e_A z!d@7HP7;7rH4Y7R3DX~3XWUi~TBZ*QTW0>YZ{Uizxn6*|jM=mMzfbo+{#|LHK@VX@ za3cs*fp$Qcpkbd{kn-j_0T=$(&CnBox%rzx2NZzZ#>wA27d$FcFTlp%G6~9L=WhXx zNQ0VM1^g{F3=IAZpp^`uL&gd~Rdcty#0qBq))WQ?2Goq~!N1K9(dAA6dDp2UJ_*+K zPJwp4Gp2{!WK<1i`}yzxOUM=K+v31YZE$-76f7a2L(SbHK%?j${M+Ia(mLZ4(i+_p z7+BJdyQhF8-NCi~OVDHrXpD!WxRQTYdcyQGHyLH*!7+fQ&*L~m2Pj_OpJS9a19db( zZH43Rpr!&(+Hp5fQvqx`C}enxL30ys37|8pLBnF*CqUy53DaY4F>3fV{|2?Tzk76p zCR4#BCv!Pl*bA2*pnO&O;pLUT(2S+#`QO;{|0ZyYgDK<0T|`P%$hdWv5wuYAhx_zP zw-}=txu)ygW|R~Ag``HpyE?>Gdm^{_QrS z31h)@?K_NGvIQRe``tv+{=13zbRY0#KInLiA^X@R}G8Rlf zbB9r%v0(b2JB$X51=Dr!GAdbyd31wL7^@RwsPX7N_F4^W8ff-cD(uDSuOQEX#~^sp znqf+qj1R=c9^#npb(c{!9<*MLRR($r0guHXa*_!^5_5m*V89zG73+Bcb`#_^$6$$ zoaurO7^B$5o`Obe9&aytz*xXke+A4-cnTi7d7Tv=_TuP||NmbnhKId4^7H@y*AX84 z+hV0Xg2P^{1&MpYx$}Pf{~sRqVme6F7%tiY5$yzNmG$7??0Z?+d?HgntyQ=r+V=3nH{Iq5qm&#sNYu=sq4uXoDZ9%z zSL6Ssyl~UXz-kyTPw#)in7~o_0%T*(^XcE8Fv<&hfB*mg<$X|8^m+vZhP{|PUHvJe zDx>Ih-=~a<9NwV2sls0POfP%Ns4go5I)5(O1L^_(Vl9vdrh<(#crks~Q$`2I^y$B! zG8XZD`3l;!{$HvQL2Mjf`qPyheF zTs&Rp6{Ci_F^F9X8Wib13L4$_>1_bb$$^K*kARN8{rLa?%TTuIm9H3`7*9>#^NLZG z?FvZj+4SeH7}Xiert`mMlws7IuJf8vl`R=0Q#w83HKVci$q)bkdxnO+Py~q?gQh)> zcr+dWO+J8*6NXAMgCs?#?|98<&6x-l+d2KuYeqTwtPlVHzgz>JFG12+^B!Vq&2-B* zjB@O{AVv8s)8pPSs?}eB%0++#t-#YLsRkUy;^CfQo*^Fm+hZj_$@tRG|NmdgurM(A zT3#vT0Rokz3l2Nn;=0pEW;`S*K+O3%_F-(K$ms3=l-2fEO& zGz>2H{{*Bk<1jw3f!$LX91P+y_eR{QG9D0;i(n z51>>u!GnLB>o1Rk4+K0K5Ag3}U&;wni<^b-Q zfhMFmvN*zCy!rv!47|-1WU{Y>hxLhK^>EPf#_)!WuYr&9K@a}v0`C}k>aT&axe!Vg-Ab)ZY7pkdD8(Rcu~?l&Op#d?q`6}T!5?5aB7{QvLJQ2T?u1ax@;s4e{? z?8TK&|Np-Z16Kha-N!*yK=T0>kMB1;nU8sNx=J89R}SRb-C)M&TeX;jFg0p0h&PoT@bk^tVgnYY? zgPK2Lo|Xsd(p)<0#L$On92kVzQQ>74VRi-vCnu-c+S*zMZHW3jK5e5b>&|aNgx=eD@lfN>WO1XXoMX>G{NMM9`{4cct9kl(z>D~0B`b-)| z3toZt)E)I`KEM*-36lO1_F@mHT-pL^f%ETr%v)TXl@a!0!OQ>uLB;ffSJQdEG0tY1 z{cZZnZ;ZA9pvu(E$;0|bnFs&2Iww$jnX6bIbfkBg2e@tS5$w_14;p9;^!Q(v0TN2_ z2nJCJpac)D6+MxZPoJpCB%<;CD`@N-v_%%5=8Ipa7ky{U=TP_o@?-h8=`X)CW-)G< zKIaFcJg=ljcUuK$p#%SRhm`3JKNzJMH*BBtgE5quv0(bA-;6hzPQ9Lf_79_un9mbX zQ626X?imKkh#DYwIlP+A|CdpmN#V(KjlYbxx(^=z|NmMOl$o;_GFVs`7&5rPryyMb z1xqOS+yVt?%DDSx`lP>%9ZXfPrpx?eRAziU-SHozu+@(jpa2BjVt}mw5m*#O|NGbf z|2rOQZvpy2Ppv!II)1EK>_4j zp_kLA{AW}VpY!1V|JTBv;Ta5f?=pf;KLq8J{^!%r|7Vn{2c7Ynaq|IaIcLIy|Npa? zvKX@%!#smtG<^phP~v*-e~BPyBHKQT5tLAD9)kA3dxmE)-@VI-8fco&|NjTM12Z}3 zgHj{fx$g=LdJK9D3{x|h)ELF4_A`mHK@!&Vi`+~iVSS){oDuHvzbpcjs6xP=iVN@n z-xdLlkt~oJ7yN46-u(X$QUNtvFqlciP2~;Po1lYUL1%1u2EDlT1MJm*|4WrXd7lAn z0k(Ag^7a4!pvLRTLlV>TO_(I7w=*(HT1{nQf}BX}(ftFI+3>iz5oACJXfhJyEtlya z2QkIHp8kQ6Nr`DL({vFgCS9p)(82nx2TCF`Ja&WPh4~)nh>)-s-S?(PGcnm|@4oy0 z|4UoYRnwrwKVdJJ?}92QaC`d*qOc7Jd-3V+^dn46E4l3MfU-i^3%k41%bA%hLKfcv zt#&MT2z#M<_y7Nl|KMw_`|f~JNe0Boo3|l4Zr*_w#-1Tr3|Y7X#`EQLW)`M2#(?Qr zEKD+t0n^)AnA8}*PG85uq$khf(HXnKqdShnqce8F%O-GJM~$=C!Q+1!$BT*2r~hVQ zQqtq_41S^A4o=mOYGT1l8&K;j6r>6iSdfG*=MfzKBJ%NcZ&s!-1(3l9JiDVn2Jd)T z3Mtx@IEyVkL6>Epem4CeE0dfq$mGm6B$Ic%HuVezDe>gr9>wAj?8(1f3S{i8NB{p% zci?0anXbUbq=DvaG4Pc!aA&JNo1V_bq{Id?e1Gfoel{jCA<)=V9FjBNJ_I>aZu(U= zCRq;-6w5%TyMR+!_zQc`DcP95ga>!{3)yG?|7QdRfVP!L-JEX4&Xgeo@;N+6UzhOj zQsXSP1clU#b5Ex4V`q}n201LJ1ATY%xtPQ_ zUT`uoG#-A!F+HA($&mlxRZ!;H9;*UM0b8z4pU=f4p|$7^xQJlPVg%j4z2^zbLvk{UH~VJX7SI=}g>Asyap>eT<&nM?9Jj{0IntA$1LujXeIB zgKEflNDUdE0J2Hr{&XoRCh6&U+)Ty>4DY}e{QqB)1{z3`F17|y!o|Fx6I%}7|NsBx z0??)+M6m%XBePN-{{R275-Nean6w3z*rA|85Vso1hoEepCLvtRmBkYF!s-71|F4xm zT9C?3*JlqPiiCR800YAetC2srN{>vUXNrr z6FA$2y;yr6YIunlxXjOjNMtdAeDdQx)Ni0l0xSZmNE{mKocKV>8R3r1VgM;W`5w*V zkYMu&hISFA|B7PbR)#qu?1j#KP<*>3{^xI5$H>3{@()DEbdYP!U<$F-K#%YJ|Nkj<4_BhZ%>b>p( z(}e_>^!PxTKlUZaT-SI1OTa^F^`J=+ZvJK$28Lsl_;DnD|PnzzqOc zO#qF5{_T9=9^y7XCQu)l`5+>dhrgHxs+_^KE3|$Eof;PW;`tj;!xEm*!e1P_{{O$@ zzIspt)p0+lt?F^y^#EwN+q3y7$IE^uQ2()xiL1!QgMT|)+DZls{uVt@jR;$J2zP>S z_Xi*5k3Rg{>sX+b@_}QnZy8_uFflL?bbUQ&aa=(73oEc|a5#n;>KH!I`V=(|{$|i| zfu14Q%5_MDhQF8uYH)xWMg)S+0~~gcBo_W6_BJ@pF!7a$LmDXXTnvi3<*(s&h0Qt8 zdXtG0B13CNnF+^_>T^ ztAx$Q=So{|I!=bFM7{R z@0VZ_mkobWbs1D4ZVOfLX#T}stPkpXZ;=4im<>Xp8dGVyln4{IcerO*_zRuO&`b=j zCfy!`4S)N;#02DVzEWM!5O6mER0V^&Vc{=+Ujp5N^_IT{v@Sl25j4^E;LP*_5hewe z@E1oeP0x^IQmzkwG4~Sa_AAeBQ2!NFjkcbFMRPnPn!yE0_=~Am!FdF^umHvTHfZk) znxBx`JUH`X_zTG!pmUr&Lpkkgun2Y3n~`WUFmhc{C%1~q?> zLk7b$jbIg^@*Gs0Bl`lD#pAERybI3aI`Ecr785A0S0dWRb|u zh>SkFgqVze`T{hgPk%4Y#9@y+x=bNylpzZ>p2A<0TtEuiY+)u{jNE$b1SpNUV#%!s zj>B^6+H)AWbvHP-`idiRYX~^E#-BsZt(Et{hQIw^VhhQwX3*S<5gFkxR6(U@>s$Vo zZJ@&)!P%DU#B>))aJGGS7M5*~pGD2K>yN_{AT*^NyMP>*=-C!D7z0j)u+)kXWMP*< zZgx-nU!shp5R$6|wxhJKbuNS2*GeqG!6EUWCD+!B0n@9cn4}m3rcaY%a$-C@{iYOC zkTj?twZNx4o#W+6aJN*Qv)COplJdg-;&eA@CUpZ2@Vc8z1>iK{+x@_YIkn?u4JgNl zfz+XmxG5rsSS!1?J%W#A4ChM5U*C}@q5CpL#Ro(4Hoe7dnL zlajI8IZ$&Si}mol7WU%QdC(sG<}6EQ?vxgp}vPF%Rl*up3|NVRfLg9ladj{WUXAN$>0zLUv`DXS79$APX7Nty;F`!ae9V4lTak6xQ~bQ+ZDh?EhGVk zz1VOT(&K@4i*BAK98R@o;bBsB02C(r)0q^Q#6pY@{Qv)2+%pW^F9nT~mF@sli(xO6 zj)T&)>)ZdO93I`Vp!4-KK)d)rTdF}-^NFw*KlX!exrS*44dyNYol*Ys*z_C)CVi$2 z2d2+eV3Mn!upbmd;0hPiZYTvSYCiV=|7+Kb+aE#WNO{;)Bp&@q%Y(Dbi z^%L;U70|?`>%Qp;icBJ!>c>H2OmJZZsOr~mA#(+cz6#*|4iQ_X&sAi4$#i({^bRE^ zAD)uEpz*5G2VpNx?FC&ZY*HTt?u(Urdw?eN7#J8n*n3#Id6Zgbfsb|s^~s#B{0EQx zp>-6o^{MWk1l`~aS`))r3^F)~56$2RWP@K`{{P7u8WU^SeXRya^ z#yfWy@10~|0QZ#L9{m3gxd1cvkizu;%1lZ@0mRrHbQ$6)NN*9Z)$dPCZ%|5Z_PYK9?L7V;5ElO8;}vjpI&ktgp9amyb-Q_hmSVK-o4!w#Nxa?= zRD}h>yCT>;>UQG)|CcF{Zt1`OC6?f!f3%>78xZzF`~)~XF@nYpvbe*-U!1%0|Nl!B z(A*eg{5kxE&Lz-X0cZf&3N%`T7y-s+{fXoM|G#_&S*#Sm$=`ew;){ssJ5-ru?V_)M zjDlN_&42=s0ifAPmv65B{+F16-46+6@PKrx<8d?>|G51B|LZ^`b$DZg39daX{Dtnt z|Nmc$fi5EQ*v$Y+76(DeBK*bH={;&phRPrhT!VT591SNy9OU?VIQ@YdlenGbWrF_l zJNEzoOML!PIELo0YoOL3(f)dH6sA2a`~~*~guhro{(1@V*W~Hz)R~N7qdkRjOybl3 zsWWl7B*8UjF?a@rc?Q3bxP;uzhYvWwgEs7i-qHX6U#B6mA9!MkiR>=Y-hhfgfZfVzHbPqdB|ES3%VHOY92p$fBw5GA8e6z#I z9|3T9s@HhZx1JCn^kn95&WvyVvpn%l_oh4DK0Xk=b&^$`Vq3Msb zm_DXV1>Gh6ztjOVe+inTgDe)%-vOD`1`UGB6mw^M03V}$ax=K43z^D(vl(eI5O}o+ zXn~R6mjC}fK-2ji5Ho*-y_mggy15Qh7R&Ji|Nl>asKX@9wBo?@Lpn@WOgRUp|I=ZT zW%4~RT~?P#hpBGUbZ=cI8!3s+;8^nv0Y@0kAjY`M}lf||WyFWNRtx6x;E;gW#z9X3wy(q~c^ zsl4&`e^G#Eh-Xj+7igzO=nLO1;8|PY)f@i*_w4m%2?ST*Kf+#|+BVIANu6Vr5vcz? zS8uw$0h2c4-sv$0Ol^5Opz!E){lUL0Rf4NX2sNH~+4F4Zb zfKTfmgD3>Am;g=wgZB9bguPH-kFrGI!n)}JhD@S@j38ment&>Zu+Z&wPR04+uddttT?#clW3PIok75)~8x z2_xLr2@#fjwHEBQK&aEKwm>3BYwh%@Moeb)P8+c~@y;4#Cz^xCK(2wEm}iLUL}4^1 zf|dvdguQTC`~UxIgj@DPjDvdws!DF{e_`n23H~h5C~)bIuoqdIr^gyI88BI_o!)QE zB*P@NcKTXlCV8HjYySU#9SNF(eZOY<4Pz!%CW~#`{~I&KFs3o>0FSDa3K;))*v_2c z@%;uv*bCLw;5HL-*2-dd(GH4kaH2_*Kx8e&RbcNzvX;v#)U4$JUc0w!)%1g=Od^sW zKuHuadH|}#K$)X(`}B9FOtwr$+o$WAG08CrZJ+LI#$?QNcN>JiciZ$uW=sb1-P`{E z_c-nfTHVS3Y6ilce3K#U#j=&tKbkSAF)dv&UDBM%PTzJVD6YV>=oaA22(#_Y*8l%K z<2;eJ*G4cf6oKztn`h1>svh9c{R4EUhEMl}W3J~JUkiaa5U~J=7=v$j636sg=1g|s z30y3tMxaBj%2E3P*a}ODt)Q^ko|p1k35yPR3nT2s`z_P+EtsO2el4GV#)8R!YsPYr zSHfN#SU#Q2lF6VR)hbYz8|=Zb7ra|QgBaf&w}B?={}*A*8p66JPdESn|2oz)7}N_w z=`tcY;^1abvre6>n9ZTVo~u|3;pAlG-VS77DeT4M%`mH9`|xisXYp+Q$6m+o`TvM# z^D}nO?qi@OS)RDR27qIoAR{r~^9sc&x|LnZ^mbbf0lC3)kepe9e)i|D10 zLOK}c0BBncWTY(2$gmgtHva$r@;mAj%S25k5#{L{!TKR149L?Ykaa&{FUmGfe{RjB zVX_zz!i0$*2Ky*VCgJKUfdIdKo?1k9I>Fzd6#u~U=z{fWrx8%X| zK1MKiBdtf81j=qfVJ{9XhS&&+enh1V@~=HiU)YP#4bbKuD3ozqu7_$lC`9UcKw=nP zL2}CL^$^cXqc{aaN7#!)>p{&2P>TT6^zej75oiuH4l)NC2VNyK6J%l>q#rc>oGp_y zmhgfl&WQCW;RTuiWineo-QST()P4Qh|Nk>QzJFv0d*QPP)CA4&mPUu^Q;sj98V@th}>%gwEzqAHyJIGb}3z1x9v=A%~a#i?3 zP{Dnv#0u1)gg4QUlCl~iYM-wC|No^DC@I5p3TiTdPjZI6SPfDOTF8Mt8NkA{Wi7IY z;EimgI8Oqp0P#`MH{1bXFC0PjU$-0RY^CWDj!ZoDyH|1=jS5q9u_b!rQz zFK}iOu{$saQky>ntpR&H2UKHibA1F`HJ=Nefed@$Fc-8&@Cam$AZT3YLD-9)#na85 znOvCeuAE-$%%sSawE%3U0}Ha5>gZ->z|Cx#gD}(Me`$ipf6%DSxkb~@xG*U(Ijx*7 z;liZLB)oFEy9<+r&W#nI3JSR;qBa|JE69KLI<73Auon`u|Nno@k>wHgf^YWpLU$&4 zrm3?bCS|Ue{=tPQkwng9R425l8`%|dd=Jh=Ru z84!2mE}Q6cWfQ0CIsBJ5jPT%Oxq{7s+bozC7rrAtSmrO75VA5dvJbn5+4<>c4 zQ_~^E|Ep=!&wDUQNELwUK+w=_sfA~F76Y`q6!s!w$#h0fCMAoU>EP516$f>rK)1+% zI(gt_@S>oq6m3ah1_MJL!(^Y864U<+F|tmt@MMZ+YFRw}swb1Nl;2{|z~UcJ!te}x zv0y4JVN9DkUBsJ7l}UWsbZc)WDbC+h!CO;&rcRIZW|CsMF?D)}7n3T}%0<)Hdod|V zw=RM#$SL&zEtf^=z2_{N{>F<*n%933s1fu86hcd;K#W$M3Ne}!Vsz9Lh|$lcOt120 zl4d%%aQbwR3uY~xzR#OU2R3j3%Kc733;+KQ_e2bxg}n%v4GtDOMUdP=L=kk1d%Bws zlU^F6M1hykVJ{k{L%J>Sew_bgNYefVPEw5rzCrp*8$iOn{-8y=9*`C8e`kVL{DFJa zuO|Kf|5^*J#Bxqs09kG5H~;_t4E`wx7{Xq3PyYXZw+H{W1HoZ0)=!3c0JLcVTRE$` zV7j3%lZF*$`vX=|KAaEE_YPdeTps+}-CRKX#k7!y(!k3iGuFAg7zmoxZ`3NzD4l#Q*;@O27{7 z1Tj6p4qZ19(xS$bE`sNQ&bwAKz#XiDFozal1ZMs7xhT#9UD=g92OOAt=D;0vasoKy z4l{(kcsBu(3hd@U!gm@%)nbS$Q23qzGmSwS_D;YT)a>8}U((#^AN`rkStCGW?bCGw zn0zHcanIj!n}LDBhktvTi%)l%2Pm`xW>23Sz~sQRt$+H}046=Iwtmp$M%asGebadZ zndEb0q5Rf3aj2OgX3bfdg?z z@ATh+O!5l(5blgVaFUS_Di-hz3I|0h_>Qc?Y11bJGpW}9>IH{0C1r@i) zT_1oJ@AL0c<0=*dr5CtCpopkrd2NMkzZR1H;DQ^nii0U*I$tOgn^f0yQ1JhE+|Klx z+1L0#=(0)<&{f<_)281GWs-8=)(J{MYMjNwAnz#D@_<(jc`6_A=}q7SSGx~9Lp;M@ z-0KBb1Q$RR!9~!*(zP&+b|8(@?ZcSF>J7UsY3?;qyr4$FRpch4uS#APb44k z_|M?-4Kg_&id5v5X9$62$srv-$l}+`X`op=5&25c0yPFKjcjPa3aUe`6sCbvQ}d6+ zuotzR|Nm#yaDmEwArRA}`A1dQi*yhZbTe?+i$5KpimLg*gW#|i0iDys!~ z^i)vs8Xoq7X$q*;oC?a?_F%_AYR%-1=`ImWp|HjQsP8BU>)WArCS)UprS2jXwx0(A~i4YP$AhOOp%Fd2Hu1EdH9CE_rb*BVIe z0Z_Tew0iRNDUnQC`S9Tl(9{Y_e=zLDX3%7q4A`YuWJ7zQZYpY2L|7}rf+y@n-KGEkUkX7&uoNx0 z9TCbndqB6NK_(gZmmD`Sx_ko- zj}RFe&y^dN+8)G#a{jg+Ya3dO!q|=ycy0CLUwRW-lM> z4`n|5+sZ(jy(GB#n?dKfKvM=J)f*$H`ocISd8UaIrmu}*5;wx=sHTG&1I^VAj3q&y zpmSDYVAQ#u!6<1v>_rVMdzNTp(SR-WdVv}Q z%~cMJpuj9|L6PPL)Ii~+j zV2U*3@BoSOZ;t>CXLtJ^@ZjGr=@AST{9k}wGVBH8^qxc}c`=sPCZ3@fN~a%8WD;je z>7ITokx53*tP4C_VZh%}!SM1j189wAtx;{MC}McO zVeRzXBql44S}^Z@&Ghw2Oo~w6x!UPBl9<$)Y`dm2CNt@BfwpOb4zmwnnQoEH(*4UN;kr7#)PvykGRm+fF*cy#+7@ZsOi=*Yk80ar0M$Y3A-?FrbE0@!QNBn3+K z;HF^Mi+Nz9o=jhw%H*n01!@g_10B`-3v~t43-CI;8`BFbm_(<`r!lQztek!(jmh4) z64dM}eG&GerxK!9*)tS$;XT-NY~{h9*6DWXOws9(OpBDIZ9y^I=?dCR4Vk#(sel9| z+7Li)1!w})4^+}YhX8if!G{2rmxC^)1~m$y`+C9C{8~z_klr6x3+NhZPzm4yN>sm_ zK{kLk8Zw>&FVtFPr77XG5PY`Q`glPF{AbOmch$?5)COyatr89UEjCkK!253dD%jc-HPKRkP# z0zA4ufZNrAJN|=CiLrF!m_9j+Nsp0Z`k^c)B^ivFG{|tVXV44NrfJzs3XG-G6|t;Po1ln*N1<5KFf5&TqbW<;(Rc%9^@o-h?Cs02a11OJ&HH~ zmxA;7kC(H+EhROGW;dezBV7Og|Mct}CM{fnRKLFtY#GeQ2~f*CxNVKUF47sZAD|G)MFm7YJrrIa+9x>l$<@52Ay z|3Rl5Z3E>w&!88F3s4P&DO4^5g%6*-xMook|MQn(GBDN;A_M>p^qvi5_m?F+cw8{-D-!X;4~Yy#p6ZsTZsf?eF4Y zeWDb!1u}rEh#fRk#EsO#4gs~W8lHwhYo8-qrfM2e?BC}k37epc!gRUkH%UB{>2Oor79q6e7YStruUXHnKOONnSQK{ z$rP)y9bjc5B(;#J1 z*bB+@=>e5Y)_g9QgC9&m#nabUGD%2T6ob-q7DG6=F_Xm+4(?Ngy-+Bg{;-lsIWT~W zrIatNxh{kW(nSt=tqSUnprvP|2JfjNaI-C~u?|!~fCebyPzNYLgOW_sil%2*G0CQt z7lFGnpk;L|3=CNepp^&Ujzk;tC`$nL;E$3Q@fz z1CaoE5h4)`4Fu*wke3vv*H<#}V2$2Q1=Ia&m?RCS7l5M|8m&lkXLSXj5xPz(hOif_ zlflejj<6ROl0mU9F@1s}Bg^!yHB7=fpuhr+lDL6KuR+VY>q1cGNk9vfklUf5-}C?f ze|Z)(ya=u`S`U=QfNBZQ5#BQVExw?Z9B3W}GX+8B(8FGA%Lk3iIc#UbFuE`Q|NqzN zU|~${kTzu4i_Cn`x$5B5CjuS>0Xx^w^FMf6=d}iC!5xax-~_3fKmATElO&T<()91O zOu9_YNz>Kpm~>$SQlJ4tkx6;zGlLT{rZ?6xsp(+41~zSG2hOyR`LYt-wB|aO>6h!6 zl+0Xwy2CtP8#?X-onZuS>@oWqUjk(Gi&tUuZodHxmfR^-aP6w}?mhQ?0r$JD+9F%YnJIM=kr%$M7G7)kCjbL8_)ze(X z;5-^K{aQVfTs?+Ip!qE9#Yd23@J0-h^Ps6S?8W&U(6WW?ZUUZ-2cp2I-Tz?WZ(hp? zJ$3F(1E_VURu5|3frk_`I6yf*3l>uSIsgApFK%EGktzdO1*%jbIT=(afHQJz&h&*1 zOkzwfIn#GGFv&=(LDYE$XRt$zf~6qdoarALn8Yo=WTOUyXAoFr*o)iQ|Np-{1sZ$- zXG2bic9=`{W>0r$WD+-70@V%?2NzBtm0>Tsp%M`L;6{YKD9WDR-N+;<9S%|88Jxil zF&d&W?1f$S^!<%Y;?k-R1@H*+3<9eRd%=@E{bM7OK4ZXi#U>^R#)#=wO-zQY5uh_@ zrx!Fa>Ba;EguP$_jT;7lcBm+`sHn0iGB9AtQJ8Us*%AaF-3sa@ChP;PD4#Cq$E3mn zN)^);n<2J0BW!Pm*$&z=0Jfc*k%yO&lM1%)MYp|$NrW+Cx1_qDrxCrP~k`|b;gR~waHvRwq z=?hz#jCkUsz?J!juotzF)9<%3*_(;LMXaL!|9`m?RM7q}1(}DDci~xUMcVX`HYO#% zJ(2(azs`fY9k=pWNDBgFCPrZd?Iwr4uz;A!l$d!o|KX_R0xkP^5ehcTE9}L+(CKxZ zOyW#u!=_K~WRf>q5(=)nA;%#e@i_QE8gxS8b{W@zuon|RE-(d~!T}!RXL`+-I+H*_(vYTgA|!SB)S?%=`fY7h|i;!NoO|K08;D{S~%KwajH z#={^_hlPUlRGC|Wl#7C|5QHe#1PQQsHXmZk`2QHBaz_ZrWp6>3M+szr?!5?m@i%yS zTsM=x?vfBtjT{bAl?i5c|6mAv(FbN8KgbaFqB#VVEXowZUaSn6zN?!_Mot?f`FRyc zivo!05f5UDhW!5zI=FYTzo*P}fgUE6`q&1KZdVP^Oms>X1Nc0F{|7t{K49`_KEM$G zT7Jmj(dpXZ(e10@(aGr1?c3qe9iP!D>C^4n;R!krusgoMu~WhWbfSh*v4~H%Z--~| zK@N{@-v*CvM#oOZ*P>9R9Il-LuQ@!9yMpdFX8@_^DpvFm?Vb)=NAAJDcsl6h{9=JD zhK$55(?9hvDNBfeFA5R^B^onOive`uGJnfQ)#FK>p zvW%9~TYH%->J6ZULa)dF|NjHQK1n<71~=2?n_J-jl8SF`5&|XWkd4ULI&xv*FBI~? zx5NZ+p`B3u+WMQDghGiaSTiHK=6cXrYFPM-$GO;byL@wVgxJplwx1ESL>{C3U^=Wf4@xV#x0BOH-7}NcQG(HfM#D9JX*sg_*?IS_Wdzr zNq_^|r~8MvN4IN(M|T6Lob&8tcRc1Uz~0g09w@0lopX+joLTC!kQECpdQ_^ z6FfU5e7b!nfYT=b{^@KJm;`)47a?ST_MV2lsP%`qp*8^Q-I6SDvQjQef?QrT*Wf=$ zKFa}S)dHVx*9D%<2P_v~H`!1NyJBvxO9;D2p+rh%4+jjxj0j(erkUEd<*ae=Q z5*Z%JpjqY1{{R2KEN5U~fQI*Ef6xFFXiT;ndidMFfUp<50U*&`=@LrCexS9no=`_Q zW+8<$axinFg|kjQ#-PHV=>Pv;UIpz~3d-PbDq;YgB6tIIdc{GgSaUI0>(>i_>Qr^7{COTnTCK%$LcQIFk>|Nb*DFlYydy;yMUzsY~kpbVJiLXeSB z7|JS-fqEnv{7}QZu1{B(#H7T@5cb0O-2eYCd8YrJ$Rx+g81{na-1NLjOiEk~VK1JZ z{r~^vKKAK8lbB>V8N*)e1M#O%pE-$1hG|Os^m|YPNrR0vQ3VPAo6bFjNw%Ib?8U#+|Np-P-I4?j!KNaH4E|jT3>l!Y2~ep2 zy9crdbXpH6j3Ck)3>o~Z8Nh*h44sC8B;&6u|z3rj!?;y}$?IqR_~_ z1QJ~hx{VifGi-^&zyChnH=w5#ig`h&iw=MfnRN!W4LH63|9@EpQ|}B>zk@-5fx$!B zO#-y9cIx!{3MMwD*81rer!pCE*8l(ipV8%8YyEVtX-sB8y*yfwDh#ace*vV-^XYco;MsgY zz_(KX%9QZ!)bQzcH3SJO_;xBlT?RUYU_fsUen z@UnaQyy;Bl^;I6Qa-YEyG`$2qQ!>@#|Noa}ObiUrh+69o3B9!-anKDFQ1PkmpzsQN zG1UWHhVr*CfqeqH40x^ur2K?9+oQ8p12hZN-3k)+=xzWVjOWqas{x8VNU;f$@N7H) zk(dio4KBcY!K~(k9G=}rJpLc>>|}g74_uLeIsq^Cy2Hy$Zg8;rc7O3<{sz|>ge=0-6X090|J84U~sKbq%QU3VZR<6%tJ!-7uUY_aEUF zRHtx&oC2=n|5|ps-ZCahhxedbtg%kve?0?3y@Chm z8t&EuCA=A+4e?skmyh556#Lq(T|2qHw z|1wGx6vJUJ6axPL&q(p;W(a%n7NpJzD$W5CPX&u#1&M1x#Xo==3MpYPb~uA(%Rt8> zDS#Vp1~2kG{{4p?;Dp(+4tt><2%2IMfmpi=WK3$u3}2}L zXiIZg_=`u0|Np-<2dl|o2J3pT?*IRns$datUo{SNb1l55i_OR8Ae+AkgQ}6R7n>sg z|9|-$%<#u?gqDEBGa=%PVc{=$x~HF?%Ooq^sWsD7*Z@9uiEA60q!opujB~QT>1b1%Q&Iw50@~> zqK~l=X98&3%}XKB)jw$x9L3;k8e(Sr|Nru%AjDT;;V-T<|NsB;p&*Kyj(MQLScIAd zE&uEPzub$esAu8-|1Vd96@`Vr_?Gbh|I686UY0U?HwT>Nh)9Ks-T(i;41*ZLjcQ0e z=tyYdJbkC@|NobQ5L1j%O(EWp=^#VS2*85Hwcax%iVJ z4idh@4{}l#b6EHb^Q`~>U!LKI`B%_0B&#N?DD1_2kh(1pb!=hbFZi>jH!Nflt1kzM z_dvv1!opuX&;0-YWetk{`mFM>7ycl1DG+sG;V<@sl!bt~VK0hS|NsBe9m;WC1Im<8 zjs|F3qb`)Q8q~s90CV7lf)c1yum z(*qYXiJIwxRO|w)2n&A^4hqOM5Z;Sdpw{(#DCaKd6yZrw&V}i77Bk6{Q+U8b;mF+o z|6gi?%>%g|`52p*paF3{URa_D^$hXY4LbNz6Ky!vgnv7+IS+2F@ASMSOj3+R(>s?i z>8TP?ct|XserE}jZaoo7k1hKD|K(?HP+)^IHRvoVBDDE;{Qv)Q4_I4&T$prSrt>Xhl40CFU3(dm z4AUp)>7L7&LKNocgKnd11>N-P8R7}vn9t(D>?+~$-yqAQyVYU(-epYEVjXV(|9k#F z_A(RHeg=*4D1^PJv6}vF8Ixj4rzNbhzTD#f|CcOW3=A3nr>HQ5y~u~lOtt*~|0U?g zYj8P)77$@C(j5Q)e|egdfgvj*>_sBTlzp6_po9Azypl}*rYmSYJfj6e*b6q0f!$aX z)h`1pS_e{e8DvrfCj&#q9B>QlwK=GjgES|+$_doE04V_NKnQ!W$m0M1jOGW73}G*( zgY?RPoCH1vEQ>LVBP{%dV9@{nFWHbqdBVb9{023tK0rnk6fg$g!(QY#{QsW;y67(K zMW*@m$Q4X7ny)~Ox#bWo7&@{TvcNM;VJ{B3OrN)cN!DgDNO=NoP`0_TszQ|Nj}K%%FC34~XgU{Q^VSi;ZTW zE*>_$fe^iWL3-DMG(hw^ftV1z=^(vtK({|38l+&a*Rwl=rX@kqp2e8O85aIxA86QX zGgxWZ3(#38FPA|$;V*uJ>WCRIo-U}8=z{U$LA)9;FN-%U{6%~H|Nk#@Abh^C@E7GE zehh@q9~S;19mMxx^92QImH?-L3|!C zA2lfJ)tx}ykXFzbUWn=c{~49wkdy>5At$!jng0L(@-WzD|F9R+FaH1katoN}6ZWD5 z#9IpHxre=|1o5VUc}`(3vOv6c5HIY7>*fFdUsi$G8Q_-pW6-vS3=lsog9R*d5hM}@ z7I~oq8dLFvu%Cm*vTPviC{W$14`Iii2aP^J*a@Ho`l28By4tpwB>_`f!sViAah%35ZC+% z84lV27xvwnn5P4Weqvwn#6Xt^guReb`}hClQcxoJ51L7Aw*3G9bvCFe6!zk}6>Rxp6nMG|vbF}jJ>(2p zIZ$c?I`9XgZJ`zDY9^2W+d*@DS&SK~+nAu2>@**d0QI4(|NhT#+{VNZ{-V9~?|<-u zP^pbf(ni7h|Nm#)l>s$oJU|{<1a@>5GkBB)ZBhd~Fz{-6`bH+@cr>Z77hA1C=Zt-G zlVB=w0rm61<4b6&zy|byhMy5Ro-h5BONS7u4H;g|yu>e7Zlt=0zb5Jtj})gWU|Ey|182sgCK5o0u$^61Pp?y@^RC z>dfW8|6dDafzJGT;L+<>5cp!(<-h;47&6k40#CqW7Xu3eD4{TTw1!FWw~BxcbvE$m zh0Jz>r#?Z$eGDGmz7ISZ&!#oji8M^t+svfM#CU6Z;ASRKc_}6a2FLDT&?SCs{LL(& zXa~&(=4=Da2L9bRy>&B_I^&t?Yd13`GiFQ|+`<$a&&3G36!H>(3usNVukklu>tYZ7 zUhs+o(7>q@e{&sZ^#O>jTvUc@mI^X}$^x1UL=2#Uht6+pVbWppZJ5rzmC1?GcDmnI zCMUaVpnH+KUBQ9u4IR!_g#{;gzWU$;P{w=H{5+D*Qk|k0u z@=jzPTP|CgVvyo4@jr@HVy%kD6_vOr@$_??7O&!D;rhk#ja^8>P@+)6P9jWhx2%F} zyTTrYk8(>Sj!N)If;?m<87f&TIY)8{;{%Cr5^p30q)enDq#$H{jnpxz%`yjM&dS`9 zc`lR9)X3z_6wdUN$(Xs3`6F{8%S9F*<|yV<%vLO`Sfm`;!r7)X?PCH32M9YRHZDB) zkdaN1ZJ7)NevlTBwv-8%@sLTADV1rGnIh95JwbYb^akkz(ify3NCzYq7h9>ODEMX; z7iZ?BD@=d8j8UgvCCJr9g+ay5U4`K@BM34us52a8>OblkZObiCOObqFUObm&J zObn$4Obq!3ObjjhObm7UObpZYm>4GNF)_G_Gch=bGcnXx3NbMh3o$X=~_{hi*^MR2e z>;of%$s0xny*G^Y47M*B8O&cYGHAYFWKe#=$dLA&ks;wZBSX^{5hKIuyNnFe?=muo++}27yUWNBc!!Z;=PgDC-cGK5}aWN-)FMtPBu;noF4hC>$^8A>lOGQ=HYWQaIc&&VKjjFExo7$d{` zql^r~ySdV3fd-tA^&Shbsxp?5bUL;Y?>hGV-J8GLpz zGH~o-WVp7Ik>SKnMur_b7#W&&Fft@;XJmN2jgjH%Hb#cKYZw`>uVG|pT*Jsvv6_*g zXf-24@M=Z|+trK=x~mx(cGs_BWH_~wk->EtBZK)eMut^O85!J{GBQ{#Wn@rU%E%xy zhmqk$CnLk7PDTcsPDTc^PDTc&4n~Fp?Tic`S{NB(8W|bF8W|aM8W|b(G%zx3YhYxU z*}%vUR?En6v4)XhR}CXWYYiiVTn!_`pDIR%8C8r7$yJODe=8Xo5-J%P>K!W?8M-PM z87wLo8Sa-eGW3=+G6a+}GH{kNGF&fXWSCsW$lzMW$nd>{k>O(rBLiPCBSTCfBZF%p zBZF=sBg2*gMh1fdMux(CMh2FAMuuy7j0`Thj10SS7#aL>7#TEk7#TiiGcv?vGcqt` zGctV2Vq}QVU}T8QU}Tt+&REY-na;>ioX*Igl+MV&k`4CWz>46Q-+j0}4N7#S7^ zFf!=)GcxS+V`NbAV`SjQIzBf~*`MusST zMg|LgMur1Aj0_Gsj0{#fj10%r7#WtTF*3|oV`Mm@%E&N7m62hRDkFnxy(%NabrnX2 zcojwlTNOqIa}`F0kIIY;^OYGH%9R)ybd(qw9xE_1I4LkPXecl;2q-Wzd{JOz=u}{2 zh*Mx>xGu-YFinn;;hHQXL$)jQ3=F5=F)-x5V_>-PmVu$@EdxXDTLy;O*9;7iuNfHjzG7hLeZ{~K_KJZa zb7#L2RVPIHwhJm5u z3~7bh7QW}akVh&su@V0n^(q4xws zJww=W28PO`3=BDY85k^fGBAAI%D~XEg@K`CGXulSO$-bb8yOgiHZm}@u4iEQvW|h_ z-8u#ak97&%hvC&%p4xj)7rc9RtIZItGTyItGT!ItGToItGUKwG0fW zYZ(}p)iN;D*D^5V)-o`p*D^5J*D^4O)-o{ss$pQLe^tZ4aH)oYA-0Br!Lf#cfvtvt z;XpM5!<=dchVp6#hJb1Y2IFc52BB&OhF?_-3}31k7$T||7=)@A7#>wJFl?!0V3=3I zz#ve;z~EiZz@Sjhz))Mtz`#|?z~EfMz@S>f!0@7&f#FOs1H+v{28Nl13=Cm~3=G1B z3=9_v80r~%3m6#U3K$q73K$q93m6!V^UuO9=0yB`C?X%7a5WDkaVhFA{1A~PX1H*4i28K#Y28Low1_moj1_l#L z28Lx83=De>85k@L85lGS85qP385lszoDFpu7({g$7=G$7FkIDPVA!X_z_470fnkCU z14E@wJp)6M4g-U?4g-UU4g-U%4g&+b4g!9uOwVDhJ<(do(;hGE#_L>X~hMEiv zvYHGG|1}sG?rJbF9MNE4*rdV0Fkgd#VWI{DLtVWF14F6?14E1k14Ebw1A~?Z1B0vv z0|T=L1H)%^28L(q3=Fr_85j@!U|1o^z_3`7fnla3 z1H%+a28J$428LEi28L=$28J?828J9-28MJ=28LKk28IYp1_nP#1_n<_1_pac1_moh z1_lF31_o_O1_nh*1_l{P1_lpd1_ldZ1_ljbhI$4GVFm^cVFrdDLJSNqgculZ2r)36 z5Mp51A;iG2LWqH3h7bcohY$lpg%ATnh7bcogb)LRhY$mUg%AUSh7bdTgb)J*hY$n9 z4?zZo7lI57Hv}0NP6#qE>=0yNSRu&3Fhh`mp+k^?p+b;>Aw!UXAwrOW!9$RN!9tLM zK|`>ffk8r$fq_Gif#HV$1H%ge28J5~3=Ag(7#Ma4FfgnTU|^Ubz`)QUz`#%;z`&3p zz`zgzT4yD|z+fT3z@Q<(z#t*Oz`!BE!0>~gf#C%|1H%n|28I*-3=BK?85maZGce5H zXJF{yXJDw{XJE+SXJClnXJGK)XJD}4XJF8%=VxG$;Ada}P3ryNV__!t;G_!t;0_!t;8_!t-@_!t;C_!t;| z@G>yG;ALRA!OOsKf|r3|2QLG|3SI_=8N3V(9lQ(-6}$`#8N3V(5xfix9=r?;7Q74$ z^%}ek3=+Hy3>>@+3_o}n7+&x&Fx=o_U^v0Uz_5ddfnfy?1H%j+28IqE28IeA28IkC z28IY81_lov1_lcr1_lit1_lWp1_llu28JKp3=A*085nMGGccUsW?ZlHv>ZjHv>ZkHv>ZiHv@wQHv@wOH$y#x1~&tP1UCZ%2R8%54=x6V7hDVsH@FxW zPH-_W?BHTxSi!}>FoTPMp@WNop#n6S!^OZ5!NtJf!NtH}!NtI!!NtHJ!NtJ9!NtJv zgOh>b1t$Z;4NeAz6PyeTJ2)8_R&X*f%;02T=-^~vr~u8aa56A}CSg1{85k@$;~5w< zI2jluI2jl?I2jmza4;~u;9y|5!NI_Af`fr!2L}Vg3JwN_85|4@9UKe{6&wr4{r9gB-I)AIuIi%UH7l3h}h83fdRFfusj76hl3xaH(0miQM0 zlon?MmlOcMKD}mJql$Q8p=A|+S{AgnU zDe+FN49_o0VGxLz&%oeVoC}ilDK23U=(`7UynjJ(W>soXY6XLU9#|mMfsn zUNM8fxeO4`F)zibC^0WNgF(Qfg@GZILEu^yNIbAKH7FHi>{W2!_@pML7%~X3eFF!y zUw%odTTVSVs2Kz#mM}0l`iHpZB;^zbr55Msl%+BV==s3I!iYh@BY}azBe6KcHLs+o z65^N-kWdB16obIB7a*U4*g>i3#S8*w_d)znVSIXNMTNja&-3<43e!R`PDiF1BRDp-3OM7x;@gTR70X!0PzczsBm-62(Z0klw|O94#+QngxE4BP^`Iu)NK=*{@@goNIgdf11Ptoq%a74 zdxV_w83fY!psHO9OBn>>gcw1&%(bGRD7CmaGe6H06f(yuL24kWB`CFwL4Z#fO&Np0 zzc*lyBXlwdShRzMoO9|Ei;MkI%NYa=T*2=4%nL3lVh~_pXJ7zjyrR6socNN;g4E*p z5>Ny(2(+z$r(k0Sfo(_NJQD_ixXW;!DT9FDEjZ7NLExMosE3=8&mf={4h~FEN(@U3 zhD4VcBGH5LZAf&OU>0`Ed0P5{SSo;`@;o1elUaPA6NdvI!rpMQWMgTS#aCRiC^ zZei)jAn*@aff0kiwI-0>i2NdOx~PL18(L5RN|X!cL5ip3)C%MXKld8sWZ(QU27!HE zAnktnB@6=JOhHWF(i{eXIB>QF7hwM&`5aU-s~Lk+Q*cRciIG!g9)rL=Ban{Z(j*3f z3tiJMo@G*$lL1GkV^L9JrAuaRF@peGEm%!q5raTCXHL{Di@p!xD=imBzJ3kkS6o7y#ox1_3j0TJg~{RF2GaPbk6T9nHmu-^z4Fh0d4E~z;T z0^7VnnjG^|96>JWNS)qro=L2JK{vR}0;^zC2B~m!1eGFbhM>|v1ynx;{tg5 zBj3dARL7!p-^Ai<1_6#fzNExcF!@fG98qD_90evEZn7D+d*AoFLQOz&W}u6&!ZK&}hz60!xAO z^ozM@g};Sk34=h`4MaiWlbFsR&~}x9q29ls#3wP`kU?M{wDL<#H)0TYrpL$-TvC*p zm>U3!Dh7dbzd(@zYFjV}^y$MST{4Rp1kyf$!`?qFtvIy=ltcCO7#ZACOZ*E;GV}8o z1g<549qN)Fo{^c8${-Nu26Aa|MrK+GgFw!+e_(^bSvUexe}LN;cF(}3A~K&5gTQ-e zr2wi2ptYA9I2VHAJrh(d)+vI_b^~X{bM7EE*dB1;PZOM8f00Sl_uYT6jRE=P3<3qo z3=F=Bpqe!`yeP9Il|kU23P_h5IBS}5gW10Mkl6EsG^yMSLA4Utk$P9BKfK7KS)XG8 z&QUJ;IXQ_%3<4f2z-c8kuL#mYNCBs)fLZ9V!XQu<1hT;?v&6rkm_Z=Jf`K6?wIaSM zwJ5)sL14iGurcsvM&CAYkT@3Sdgg(eOcx-@&pE$7w*VZnaxS1WTfiU?0BLN2+-bxh zuwETpHx{LXljwg{P`R1{uFX?iD@sy9HTSap;I!fCY{DR5cOA+GRX1@U_c`YlAT^!- z!72}Ms6I<%Wbh0qDuzbxF$s_cPzpuTq2K`y9tMGDsUX>q)Z!8(Spm?%Kw@z&gTRYL z(*rLvi5TfQfc@c?SrJ;`=pW(;lB6(!)dg_;A%WJmp!l;F}N*W?m# zY{=<=1z}=feQM7^_JP8LK_IVg`u8hL>Wmwv%U@-ZsgDCY1yU>In}eH8&Lu@T;KJ~} z8YtC({R~bwV)lM{2`<-b@8xTtUgRV;COj0~U#en?Sbaw>zs4rr3jFMzgHru_hU z%Q?TG66Od7fqlhb{h)f5K_D&|%mF*?3M5uN^OAE)Q&Pd<=O)Kk59*PCx zU!0mAUr>~qmRSKRnDVMY;pLl|=bKo;ARsOYwyhpi+d|sa#S8-562PWLyBjo#N_PK0#GV;&H$B$+w>S2ppp2l5M-oN5wySy z5x4^>INeiAAZnjDf;|(Qomt?TpTi)qFCC=8EhjM@)^U?l1B)Ql{p%nd7?2|v1Qfca zbKPLls+YS44q-^8WE7N|&LFS=(pYyZ%>&2qK3`ZZ2I|H_YPpIoaE0!kACeC#XuypY zy(i!nly8`Ger`cxQ7VH#9=QDxlJArca%5g0IO5z&^B@Jyx;#b^P|EVl56vqrPE7%Y zFoS^Gqv@M&F!_mmfW(($Nl9XIhD&}jgMeH9bdj4(di4*|85lq%JGiY3DPx`~f{k{` zFM%Kifq51n|NEBafb;u`3E(Osps3h0uNV|e#SD_){1_P+IE)$?8RC5%eSG|#8937O zK|;}B@@Wo;y&(%kKFI`;t3f-2IiA(WfH>R0q=^TJ9qs}moh?BmGnni%0kMmWK;%Jf z5XqztBHw|Q=Wt9^0N+29YcKLF6X5SpgjTycijRD~p9giYgg6ewcw=Rt|C*=S-jJ z4{tF^)-(GsFfee|dV>tOn9l%e89|yw9Ip8wv9d@822k?zOUzAmOe$vJum}JNbDD$5 zJIV|U0i`7%d7sR@Yz9t&AO?oyjKrei_@vx|_`LkQ_|*Iy2F}ZYAWQx@g7he*GBCL0 zCp%^46^A9})Mut7mZUOpyp&{MfRq+K#U-GkgMs6gBuM#bFu4azt_73xz+^v|Yygvm zU@{3z27^f#Flh=V)xc!TXGVs2C)dDG2966spkPqa1CjL-LLln82P1=XM!IW72?Ix| zDg%RKN@A{SQ4s^jB^8h({wagV4Y7>i!H?jgWRQ=8Q%e{)md1j#KL?wb4mzrUBL+-n z`-8*}Uj*sny8t35M}o+c;LzJ@0Wm2gu|6p$6;vg0ECsEF;#jd5q-e4W14F#CkE3ru zJg6tg!KTK*04ldqix@bJAi)RLqhJP7{W}Mg8(e*ZT|*$suWB(e#5+6s_%Lwzh=ZJA zC=4R+fPLBmCU2bp>6BZ=P|v`?aRRiTl0$etNNAQB%wboDMowha)Qz zoH2C3ffAj}z!2{n>>1^1#J~}l406r=BoMhBOqPL3PcV5g5hT72OfCYG)4*gcn9Kr` zeik4#E@09aOlpBiIWU=P0+Nk40oxx6<~V`Lf5sq*yI^u+GB~M%gQ46RBra&h$N);| zsVUH&7e@*>-a40pWc$Fu99)ii^VA2>&>VipOFq!8D zQWFj)zqx|gAz<>Y6NvpBOvc-T*s@@f7fiB)$tCqRAc zi)1-4c|jkfCKF8hg2@-yIEO@o$q+E<0w$Tk90DRa1AQ17 zl5(fk^_*fL%Q(;ZAy*t3sTJ{grMam^naK>CCqUlf>~;g0Rd$wv z!8tWE2h^qD$oFMr@C`00g4S2}!AX2BxOlMzCymu0Z*rcT!N8E1l9(G`0vg!h@HPVX z;6d$Vj`h3i85!b(LxMbg9YdTw7&v%$fl`8Q4Y*nhE=mUFbq0=ic_6!=KpItG+rW(> z4he8JYXIBJ1Ge$6AtQrxX%T4bfTLF#RC88$A=)&v=&6FRe{LHG!WU90wPP2L8K38hdKv$B8YuP3q9 z))51VWb=W@oxC9O6zJw(jwaB(Q5>RR^70puk2KZ5>2IehxOPrpU`GZJOejJ9&To0i1&5%bqXT#ZGvJFh8fk{bgkdf}- zd}9VCT|jw)!={>{9@^>wjmdDFsRF6{yc^Um&de(Tx2-t>!AY`x2Pn)AtOAkeSAxi{ zco3N$1|ns^WFgo~wmU(F++GMGWx>Ua2k78pj$F`r$Q+4kAaOrXtA?`=)J+9Nd6;8R zyr-XMNPL*14+H1NI7S8r&h=n25Y)WkOa!%?IlDAK;yz%q4b(E`^Z=0@QP4RdP-hb~ zgT*l!+&l+2NEkSn!OlzunZv;Vj_Wxf6F6po^)9Oi7rlMkL9SX0E>>4g0kKt$7(p#d zP|vBDfnx$_w-$#xXxkVE(`=CZ9&pL#s0(6;fp#Er*nvqgO^`^XI*8N;lbj&Gas+`} zaE@RyT?r(+SP?|l--I-fLqQW-3>+uTLBZJzF88$|sUI?S#_`UB5!?=ja5)2&kjtx- z%;JKa#7gk=2j>JMMx-`yc}8YQYJ714sH4xJ%)rDD@8KBi5%1>d=fc2|S_uvpuR@Tm zMqqLa=r$;hN#Kfovn@zm?>ESyo}WM@Cz$*KI@^q6^%9VX?{pA(2%KmcK_w-}a#aQf zm!xzC&Rb^F1wJxK)-!O-Wn_ff>*(SV@8}ld8pOb{QJ;~)C9??Blx5&JKw91_ zPJv3UoK$e9o1+)p+{*=5I#WPpHiwoGXzmnb2gi?UkoB%9u%;UW$JYdq$aOH;2qNV< zdV==5!l~mstgQ4iRBC&Lf~0} z%)AnCi##4&(Dp3@*tw9XM@G z0;ejj=?o0MjyXB`$(|{xc_j=SXFxX~aTIK4WC#q-FDhZ+SPPGRM;8|c4oOfB(#;DU&9CrkOnYm4(>;&gUR?aAfL|#H!Qw^BR>~RJ^&|y8gTAe2yQuq zfQu>7%}fl=V0STaM9lz|%NM4D$aFBd3$$;CqqrX=a;*%Ab3ayN*a+X*6n zb%4kqaK-hM0mNz)ib#;2Lh02uOngIDqDXyI5x6pqaiE6hP@< z^6C~4dnuT_x*5y{lg~DR*xSIQ2Dlyf4crNGp9gLdxq!=?Kj4z)2wrVo z65L+f*$y%y5KI<=Yluj2s4oF$l=m(m*)8DgVhU>Ea1?`^P?NyL|59-C$WsBNMgdIj z1e1y&vYz9Z97rM$L~}~SxDTigZf~)BGBN~~LVA+M z;E*~58d~6V4}etaL7{%}KCWS|J`9|bKq;3~4McJ{7%_sfm`f1@$9g9QkO^U_$@L|n z7GR_2z=cXeE!NBA0pvpn)ZDna7cm#DM4*L9)y)a4+m7*m;)7CV{(C*~lWG zF<6eXs*I4jP$m^Rf{~%Z$iToM2~OARrh?ii*8`@ndd;L*pSF>S0op3j2RA;-)`QaH z9B^vga2KR)4w&QylWT5(MDAY$kq<6|NFUIGc#h*2Kx|`hXKd1L5c~E{5V;pz+1}a) zV%sbOk(x_Eq#vl=%CXZC+-W!o&ZRkEQW)Gcxo-$kv>r?vfs@lKa3^3jI5j1MYcFYV znkod3{&e+%qS*^fE^Y;}`@m!bm^=ZluQ!9qS}+*~PGx4g;6|Gixa#|-1JZU2OdbZ4 zYry1GFj)sC)4^l_n6w0wN??))Onw7bn-9R`DKNPOOwI$79bmEuOe%rNuUg<7atK_{ zZUB?>z+?}Yi~*BoV3Gw)KGFa=@g$gB0w$ZmWEPmz2a`X*WppT*bONW$?ckDi7MLsr zlRLqsY$vGhuIH!(Q5AonPPD=gTmB#r`g28Q@ZPgfro z1`aWB&`t&IYbhxLXTUOWQ(PTfBG-Zo;7l;74=#qK!K6F5Yh42#`7{KRKfxXB`VMgS zAsbvDX|Dv?Jpo*ZHiAhVaNR5oCLe>xaWcUT6KyaV04^ET!6hRfm{bM_xe~aPv~2(l zb(KIfcNBPd#tBSnfk{x>XQ<~m4cbx0(FP{tz@!YA{8I~Z%ndNP8BF$oNgpuD4kqu{ zfYi(blUZQW4@?S!$+O@F%}OxY0w!a@qym_{32vd+r+_IrF!`<$WZVHTxvB!hmI0ID zpo1Jaw83OY8A!aV6hw-H$$%0N+Xzg4Ee5e~g2_o>@?{}NWEq%D29pY4@@@f0e3m_! xQUjA)z@xO&!6ZAFoDFHX7zN}cX6A*Yf`&A^XD~20218<=^CY-gsKL$v0RUHq@L&ø&ø@øJøNøRøWøYøqø‰ø‰ø“øp©Á6ü6ü`übüiüoüuüwü}üƒü™ü¬ü»üÀüÂüÇüÑüæüüüý ý1ý8ãã'ã,ã7ã@ãGãIãNãd`µfÖfÖ„ÖˆÖ•Ö—Ö¤Ö¦Ö²Ö²Ö¿ÖÁÖÎÖÐÖÜÖÜÖòÖûÖûÖ× ××'×-×2×4×@×G×V×a×g×l×n×zת×Ð×à×ðרØØ"Ø2Ø2Ø7ØQØXØ_Ø_Ø_Ø_ØfØ|؈؎ؚؔ؞؞؞ØËØÒØèØôØúØÙÙÙÙÙD¶ÃÙÙ,Ù/Ù2Ù?ÙEÙRÙUÙXÙ^Ù`ÙjÙ,cj°ˆ°ˆ¾ˆÈˆÓˆÞˆäˆêˆ hl..<QW -P ×5×5å5ô5 66$6$6/686>6E6K6 œ;^¶I¶I¾IÂIÛIîIJJ?JHJYJ}J”J”J³JÂJËJØJßJK"K&K.K.KAKQKUKYK Œ×öžž¾ÆÊØÞää&:H_eqv„ ©¹»ÂÂÈÈØ |1Ç"Ç"Ý"æ"ñ" # #####,#.#4#=#?#E#O#V#Y#Y#c#0 'ø†ø†‡&‡,‡2‡2‡8‡„“°XŸXŸlŸsŸzŸ~Ÿ¢ŸµŸ¼ŸÍŸòŸýŸ  -  : E P R Y b d o v   ("ŽÞŽÞ�Þ´ÞÏÞÏÞÕÞ .Þ.Þ=ÞSÞYÞ ˆà±à±² ²#²/²:²L²]²N²L²}²˜²¤²«²±²½²Ç²Î²Õ²Ù²Û²á²í²÷²þ²³ ³ ³³³#³5³F³7³5³f³‡³“³š³ ³¬³¶³½³Ä³È³Ê³Ð³Ü³æ³í³ô³ø³ø³´´#´5´F´7´5´f´‡´“´š´ ´¬´¶´½´Ä´È´Ê´Ð´Ü´æ´í´ô´ø´ø´µµ$µ5µ&µ$µUµ\µbµnµxµµ†µŠµŒµ’µžµ¨µ¯µ¶µºµºµÄµÒµÛµôµ¶¶¶¶¶†¶Ôîî €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Ÿ|Ÿ‚Ÿ‡Ÿ‡Ÿ’Ÿ£Ÿ¦Ÿ²Ÿ»ŸÇŸΟԟٟٟٟٟޟãŸãŸîŸòŸòŸþŸ  -  -   - 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ä3ð3444484=4I4\4f4i4t4w44‰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„_„u„…„Œ„£„¾„ЄԄ…L“¢ÖzÖzêz÷z {ùz{{7{P{[{f{n{4IRîÕîÕ÷Õ÷ÕúÕÖÖÖÖì=öö.ö1öOöföwöwö’ö˜ö�ö�ö¸ö¾öÃöÃöÌöÚö÷ö÷÷÷!÷#÷@÷P÷U÷\÷b÷d÷d÷w÷}÷}÷}÷�÷‚÷ž÷®÷À÷Å÷Å÷Å÷Ì÷Ó÷Ú÷ï÷ö÷øø$øÌL»¤¤2¤=¤H¤Q¤Y¤\¤c¤g¤p¤ƒ¤‡¤�¤›¤¸¤Å¤Ô¤Ù¤å¤ê¤ñ¤ý¤¥¥¥¥ ¥(¥9¥7¥/¥G¥P¥V¥V¥d¥g¥{¥„¥�¥”¥˜¥�¥´¥Ì¥Õ¥ã¥ÿ¥ ¦ ¦#¦4¦4¦;¦T¦`¦h¦{¦‚¦–¦Ÿ¦¦¦ª¦µ¦º¦Á¦Þ¦ §§§§#§/§3§H§J§[§e§p§z§‰§˜§±§±§´§¼§Á§C¨Xs….L.LKL\LiLsLŠL§LÂLÈLÑLßLåLèLôLŒ H`H`X`|`|`Š`Š`Š`Š`“`“`š`µ`Ê`Ò`Ò`Ý`Ý`ë`û`û` aaa'a'a-aSa(kqðˆðˆþˆ -‰‰!‰'‰ @O[¦è¦è´è¼èÃèâèïèïèòèôèúè $/46ß6ßCßXß]ßcß!$).ßßß(ß-ß3ß"$#(ÖÞÖÞåÞûÞßß#€ðL__iy�—¡¼ÁÑçïù  / 9 C M W a k u  ‰ “ � § ± Ç Ñ Û å ï ù   - 7 A W a k u  ‰ “ � § ± » Å Ï Ù ã í ÷ ! !! !)!3!=!G!Q![!e!o!y!ƒ!‘!$¤CX›X›n›u›Š›››­›¯›¶›¼›Ì›×›á›ì›œœœœ œ0œ:œDœKœVœkœsœsœ‰œ‰œ‰œ�œ%$5:fßfßt߉ߎߔß&¤Di œ œ¶œ½œÒœãœõœ÷œþœ�� �)�4�K�N�P�b�i�y�ƒ���”�Ÿ�³�»�»�Ñ�Ñ�Ñ�æ�'(&,_/_/m/t/~/„/Š/(0_g^K^KtK‡K–KœKŸK§K)  ßþ"þ" #(#.#;#B#^#d#d#d#q#s#~#ˆ#�#ž#©#¯#¹#Ã#Ô#Ô#ß#é#é#û#$$$$#$#$D$J$\$o$u$x$~$~$€$†$Œ$Ž$Ž$Ž$Ÿ$©$®$®$Ã$Í$Í$á$ê$ð$ö$ %%%/%3%3%;%A%G%Q%X%_%h%z%z%Ÿ%£%©%¯%Á%Ô%Ú%Þ%ä%ê%ð%ð%ò%ö%ü%&& & & & &8&I&I&`&m&q&y&‹&«&«&±&´&¸&¾&¾&Ð&á&ö& -''#'''8'<'B'[']'c'p'r'~'œ'¢'­'Ð'Û'á'ç'í'ö'ü'( ('(+(<(@(F(_(a(g(t(v(‚( (¦(¬(²(»(Á(Þ(Ñ(ø())))!)!)()2)G)L)L)L)i)k)ˆ)Š)§)­)µ)¹)À)ã)é)ï)û)** ***/*/*6*:*D*R*T*\*a*i*t*z*‰*Ž*”*™*¡*¦*µ*Ð*à*í*ü*++6+6+=+R+W+`+m+r+x+}+}+„+ˆ+’+ +¢+ª+®+²+¼+È+Ï+Ó+Û+ã+ë+ý+ ,,,,$,$,G,G,U,[,`,d,i,i,i,i,o,q,q,”,š, ,§,½,¿,¿,¿,Ê,Ê,Ê,Ï,ø-*4.wÆÇÆÇàÇäÇüÇÈ ÈÈÈ!È'È;ÈCÈHÈKÈVÈaÈiÈtÈÈ�ȗȞȥȰȻȽÈÈÈÓÈÕÈáÈêÈêÈÉ É#É)É2ÉCÉIÉRÉdÉjÉjÉrÉvÉ�ɆɘɣɧɵɷɻÉÊÉÊÉÊÉÛÉÛÉàÉòÉøÉfÊ+Ô@NäNädäkänä’ä’ä¯äÂäÕäèäíäíä åå,å?åGåGåIåIåIå\å^å^å^åeåxå‹å‹å‹åžå©å¼åÒå×åÛåâå÷å -ææææ9æ,LAP7$7$E$V$b$}$‚$¢$¤$¿$Ú$Ú$â$é$%-P~Žx‰x‰†‰“‰¡‰³‰¾‰Ì‰Ù‰ç‰ù‰ŠŠŠŠ.4 -55�5™5ª5¼5Å5Ï5Õ5/|ºU> > ` g u € ¦ ¦ ¯ ± ± ¸ ß æ æ õ  - -+ -+ -7 -? -P -Y -w -‚ -„ -� -£ -® -¾ -Ð -Ù -ä -é -ï -ö - # 1 : : A P g g v  “ š ¡ ¦ ± · ¿ å î õ ú    4 9 A M _ _ v } … • § ­ ¶ ¶ Å Ë ß è ø   " 2 E M a  – š ¦ ½ Ù ë ñ ü (-66HLXo‹�£®ºÊÚìòò÷ùùþþ –0ŒÄãnÙnÙŠÙ–ÙšÙžÙ¥Ù¬Ù»ÙÆÙÌÙÑÙÓÙßÙæÙîÙôÙúÙþÙþÙ ÚÚÚ"Ú(Ú*Ú*Ú6Ú18 —.—.¥.«.·.Â.Ó.Ý.ä.ê.2@x„êêê ê&êEêRêRêUêWê]ê3ÌS¦¦Ìßæíôúü -    1<PXaintŠš¯´Íåééî÷&.3:L\qsŒ¤¨¨¼ÄÍÕÚàö 9QUhhhm�±¼ÂÚò÷'/17IYnp‰¡¥¥¹ÁÊÒ×Þô7OSfffk�¯ºÀØðððü )9Pg~••¨ÃÃÃäô    " < J Q d f … ” � ¬ ¼ Ö Ö ï 4D{ˆ¶¶ÆÚãéûûÿ -5\Obˆˆ(ˆ7ˆ@ˆIˆMˆQˆ]ˆbˆgˆgˆxˆ|ˆ„ˆœˆŸˆ«ˆ60üöâöâÿâã ãããã7lØffˆ�–¡··Éââíñü)8O`tx}’ª¯·»æÀì b<q�š ´ÌÑåíöþ -,BD]uyyަ«³·ß¹åùý     %/6Idd€�žž²ÀÎãöû)"AQXi‹€µãããî,1<BMo‰v˜¯ÀÛïóø +`Mo�˜ž²ÊÏãëôü*@B[sww™²ÆÊÙÙÙìòü111M]kk�›¹ÌÑðÿø'8VVxx¢¢¢Â8Dmz^^n‚‹‘££§ª²9l{’ÆyÆyÜyëyðyzòyzzz$z9z&zHzNzgz€z™z²zËzÕz:<‰”/8>BM;”)þìþìí -íí'í)í9íDíVíaílí{íŒí“í¬í°íÁíÁíËíÒíåíîíüíî,î1îNî<d(=8‡8‡D‡X‡[‡o‡w‡{‡…‡�‡—‡š‡ ‡=$uº0E0ETEWE[EhEqE|EŒE”EžEÆEÆEÖEÛEÛEëEðEðEFFFFFF*F/F/F?FDFDFTFYFYFiFnFnFnFqFqFŠF˜F¯FÂFÂFÄFÄFÓFÙFÞFÞFäFôFôFÿFGG4GÐ 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ÖƒÖ‹Ö�Ö¥Ö¥Ö¥Ö³Ö»Ö»Ö¾ÖÉÖçÖõÖ>×Ax`ºNÚNÚfÚvÚ}Ú„Ú�Ú¢Ú¥Ú­Ú´Ú·ÚÇÚÕÚàÚëÚîÚùÚÛÛ%Û0Û;ÛFÛ]ÛiÛ†ÛŽÛ—ÛŸÛ¿ÛÂÛÈÛÍÛÜÛâÛêÛùÛÿÛÜÜÜ!Ü0Ü8ÜGÜOÜrÜxÜ~܀܆܌܌܌ܱܶÜÓÜÖÜÖÜÝÜêÜîÜùÜÝ Ý/ÝBÝ^ÝsÝ{݅ݤݸݸÝ,Þ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#Y7Y7YbPb_bkb}b}b†b©b©b«b¾bÀbÚbæbébcPhî„ðmðm nn$nmntnˆn�n—nŸn¨n°n¸nºnÂnÊnÑnØn÷noooMowo€o¢o¼oÙopp1p3p:pApApdp€p§pÃpêpq-qIqpqŒq³qÏqöqöqrrrr&r3r8r8r?rJr\rtrŒr¤r¦r¦r¦r­r­rºr¿r¿r¿rÐrÞrñrsBsIsIsIsQsns|sšs£s¬s¹sÇsásýsýsýstt:tXtXtXtctft•t—t®t´tÅtÎtÐtÝtßtìtîtûtût u!u(u9uBuDuRuTubudururu’u’u’u’u²uæu vvv v$v2v@vBvJvNvRvZvhvvvvv�v›v±vÅvåvþv www3w?wFw_w_wqwvwxw~w�w w¯w¶wÇwÐwÒwàwâwðwòwxxx$x$xCxJxQxTx`xcxqxuxƒx‡x•x™x™x²x¹x¾xÌxßxæxy!y4yCyEyTyVyeyoyoy}y†yœy£yÈyÍyöy&z+z9z;zIzRzlznzpzwzˆz‘z“z¡z£z±z³zÁzÁzázázázázáz{{{ {'{L{e{j{j{j{Œ{‘{‘{‘{±{¶{¶{¶{Õ{Ú{Ú{á{ã{ã{ë{í{í{ô{ô{÷{ü{|1|V|r|†|‹|‹|¦|³|µ|Ä|Í|ç|é|é|î|é|}}}}}T}T}T}s}s}s}”}™}™}™}»}À}À}À}à}å}å}å}~ ~ ~$~2~4~C~L~f~h~h~m~h~Ž~�~�~˜~“~Ó~Ó~Ó~Þ~Þ~2Jbmƒ—°Èàþ€€.€E€L€D„Q| (ÞåÞåüå -æ æ:æRæ]æyæyæyæ†æ¡æ£æ£æ£æ°æËæÍæÍæÛæèæççç%çRæd6Ú6ÚPÚYÚyÚyÚÚ‡Ú�Ú—Ú¥Ú«Ú¸Ú¸ÚÒÚ×Ú×ÚÝÚâÚâÚèÚíÚíÚóÚøÚøÚÛ#Û)Û.Û.Û7ÛWÛWÛWÛ^Û`Û`ÛgÛiÛiÛoÛoÛvÛxÛxÛ~Û~Û…Û‡Û‡Û�Û�۔۔ۜۢۨ۰۰۰۰ۼÛÄÛÌÛÔÛÜÛêÛøÛþÛÜ%Ü/Ü2Ü2Ü<ÜEÜKÜKÜOÜWÜaÜeÜsÜ{Ü�܉ܓܡܩܭܾܳÜÄÜÕÜáÜçÜïÜóÜýÜ ÝÝÝÝ%Ý/Ý=ÝEÝIÝOÝZÝ_ÝxÝ’Ý—ÝšÝ@ÞSL”£……1…3…:…P…`…f…~…–…™…«…ó…TÔ*[NîNîbîwî†îŠî˜î¡î°î°î¿îÊîÕîàîçî÷îï%ï+ï0ï4ïGïGï]ï_ïiï�ï˜ïšï³ï·ïÅïÊïÊïÑïàïèïûïeðU$îUîUVV#V+VVPÍÝn?n?�?|?±?ž?À?Ï?×?â?ä?ï?ú?ú?@"@W,ÎÔÎÔ×ÔÝÔåÔîÔ÷ÔüÔX …ÆŠÆŠçŠüŠ‹‹2‹<‹K‹e‹r‹r‹|‹|‹ƒ‹–‹”‹¤‹¤‹¯‹¹‹¿‹Å‹È‹Ö‹Ý‹õ‹ü‹ÿ‹ŒŒ!Œ,ŒFŒ`ŒtŒzŒ€Œ‡Œ¥Œ�Œ®Œ´ŒºŒÂŒâŒÊŒëŒñŒ÷ŒÿŒÿŒ�$� �-�3�9�A�a�I�j�p�v�~�~�”�”�”�”�Ÿ�©�²�Ò�Þ�ì�ñ�ÿ�ŽŽŽ#Ž+Ž3Ž<ŽHŽ\ŽiŽxއޡަަޱ޹ޯŽÑŽÞŽêŽ��(�3�8�8�C�Y�n�z�ˆ���›�¯�¯�º�¯�Ò�×�×�æ�ë�ë�ú�ÿ�ÿ����&�+�+�>�M�R�R�e�t�y�‡�y�›� �®� �Â�Ç�Õ�Ç�é�î�ü�î�‘‘‘2‘7‘Y‘^‘l‘^‘€‘…‘…‘¢‘§‘É‘ΑÜ‘Αð‘õ‘õ‘’’9’>’L’>’`’e’e’‚’‡’©’®’¼’®’Ð’Õ’Õ’ð’õ’õ’“““0“5“5“P“U“U“p“u“u“�“•“•“°“µ“µ“ГÕ“Õ“æ“ë“ë“ü“”” ””-”2”2”>”W”\”‚”‰”“”˜”©”³”ȔӔؔé”ô”ü”••• •••$•$•7•<•<•<•@•V•_•_•…•ЕЕ’•¦•¯•ɕ֕á•ì•÷• –––#–#–#–4–Q–\–f–q–v–�–‰–Ž–Ž–™–¡–ª–µ–Å–Ý–õ– ————,—6—A—b—n—|—�—�—“—˜—˜—¨—³—»—À—Ë—Ø—ä—þ—˜"˜-˜2˜=˜E˜J˜U˜b˜n˜ˆ˜š˜¬˜¬˜¬˜¬˜±˜¶˜¶˜˜Ó˜Ó˜ø˜ú˜™™!™5™?™A™M™U™r™ƒ™�™˜™»™Ì™Ý™î™ù™š!š&š&š1š6š6š>šIšNšNšVšašfšfšnš�šxšvš§š¬š¬š´šÕš¾š¼šíšòš›òš›#›#›0›5›5›=›B›B›T›f›k›k››k›—›œ›œ›¤›©›©›¼›Á›Á›Ô›Ù›Ù›ó›œœœ"œ2œ7œ7œQœaœfœfœ€œ�œ•œ¬œ•œÄœÉœÉœÔœÙœ��ñœÙœ-�2�n�\�J�2�†�‹�‹�š�ª�¯�¯�¾�Î�Ó�Ó�â�ð�õ�ž žõ�5ž:žbžPž:žzžž§ž•žž¿žÄžÄžážËž ŸŸ Ÿ Ÿ;Ÿ'ŸeŸuŸzŸzŸ†Ÿ‹Ÿ‹Ÿ—ŸœŸœŸ¯Ÿ¿ŸÄŸÄŸןçŸìŸìŸÿŸ   ' 7 < < D I I Q V V ^ c c k p p ƒ ˆ ˆ ›   î Ü Ê ¸   û ¡N¡<¡*¡¡¡[¡`¡`¡o¡Š¡�¡�¡ ¡»¡À¡À¡Ñ¡ß¡ä¡ä¡ì¡ñ¡ñ¡ù¡þ¡þ¡¢ ¢ ¢C¢1¢ ¢¢b¢}¢‚¢‚¢º¢¨¢–¢‰¢Ù¢ô¢ù¢.£££ù¢F£K£€£n£c£K£˜£�£·£¡£�£Ï£Ô£ñ£Û£Ô£ ¤¤¤¤3¤C¤T¤T¤y¤{¤‘¤—¤—¤´¤Á¤ò¤#¥¥F¥N¥N¥N¥Z¥_¥_¥r¥}¥‡¥Œ¥—¥¡¥¦¥¦¥À¥Å¥Å¥Í¥Ò¥æ¥Ò¥õ¥¦¦¦¦(¦3¦8¦8¦C¦T¦Y¦Y¦d¦o¦t¦t¦…¦ЦЦ›¦ ¦ ¦º¦ŦʦÕ¦ʦä¦é¦ý¦é¦ §§§§+§0§D§0§S§X§X§l§X§{§{§{§€§Œ§€§Ÿ§¤§¤§°§¤§çȧȧÔ§ȧç§ì§ì§ø§ì§ ¨¨$¨¨3¨?¨J¨U¨Z¨n¨Z¨}¨‰¨”¨Ÿ¨¤¨¸¨¤¨ϨǨبݨݨå¨ê¨ê¨ó¨ø¨ø¨©©©©©© ©$©$©/©4©4©?©D©D©O©T©T©_©d©d©o©t©t©©„©˜©„©§©²©½©È©Í©Í©שܩܩæ©ë©ë©õ©ú©ú©ª ª ªªªª#ª(ª(ª5ª:ª:ª:ª:ª:ªBªGªGªOªTªTª\ªaªaªiªnªnªvª{ª�ª{ªžª¯ª´ª´ª»ªƪæªëª« «%««4«?«J«O«O«V«a«�«†«œ«§«À«¬«Ï«Ú«å«ê«ê«ñ«ü«¬!¬7¬B¬[¬G¬j¬u¬€¬…¬…¬ ¬Œ¬¯¬ϬÔ¬ê¬õ¬­ú¬1­­@­K­P­P­k­W­z­š­Ÿ­µ­À­Ù­Å­ü­è­ ®®®®6®"®E®e®j®€®‹®¤®�®Ç®³®Ö®á®æ®æ®õ®ú®ú® ¯¯¯¯¯¯¯¯#¯%¯%¯/¯6¯Y¯[¯[¯e¯e¯e¯e¯e¯g¯g¯~¯…¯�¯�¯›¯¡¯¨¯³¯¾¯ɯï䯰ö¯°°'°!°M°B°e°e°e°n°u°ˆ°�°›°®°®°ʰÕ°é°±±±'±7±L±^±n±n±–±�±¬±¾±¾±±DZαÞ±ý±ý±²² ²$²$²(²3²?²M²z²ƒ²”²¢²Õ²á²æ²ü²³³*³/³=³Y³„³­³°³À³³³Ƴå³ð³ð³ó³´,´L´L´L´O´x¶Y, þÔþÔ ÕÕÕ Õ(Õ.ÕZ`FZÖ‚Ö‚ì‚ú‚ƒƒƒ-ƒ1ƒ7ƒMƒjƒlƒlƒ�ƒ‹ƒlƒ¼ƒƃ[8 ~U~UŸUŒU®U¹UÄUÏUÚUæUìU\\’ ž ž®ž°ž»žÃžÎžÙžäžæžüžüžŸŸ#Ÿ&ŸUŸ]è®dÎëÎëüëìì:ì:ìEìRìpìxì¥ìªìÓìóìííí<íbígí�í­íÓíêíðíôí îîî+î3îRîXî\îuî}îœî¡î²îºîÙîÞîæîìîðîôîïïï,ï1ï=ïBïMïSïeïnï‚ï�ï²ïãï ðððð'ð6ðCðcðcðzððð–ð˜ð˜ð¬ð®ð®ðÅðÇðÇðÞðàðàð÷ð÷ðñ ñ ñññPñdñdñwñ|ñ|ñ|ñ|ñ«ñÁñÝñÝñÝñêñòòòòò'ò)ò)ò6òMòMòbòdò}ò™ò™ò™ò�òŸòŸòŸò¤ò¦ò¦ò«ò«òµòºòºòÖòÖòÖòÞòàòàòàòèòêòêòòòòòôòóó2óMóMóMóMóMó`ówó|ó|óËó^\ -¾J¾JÐJæJKK&K9KDKYKFKhKpK{K‘K‡K©K¯K_øAö5ö5666%6,6062696@6D6H6[6ƒ6ž6‹6¶6»6ß6ß6ë6ó67<7A7n7v7{7„7�7˜7Ÿ7Á7Ç7é7ë7 88;8A8H8H8N8Q8U8f8‰8›8`$^Þ^ÞmÞˆÞˆÞŽÞa|\wþèþèéDéDécéséuéuéuéué|é„éŸé¸éºéºéºéÂéÝéßéßéééééêb”"&3&3H3R3^3c3s3y3Ž3¢3²3À3Î3å3í3÷3444#4&4&4&4(474A4J4R4U4g4côÍÞ2Þ2333 3&3=3T3k3v3¬3Ì3Ñ3Ö3á3û3 4404F4]4b4t4y4|4œ4¼4Ä4Ì4Ñ4ñ455!5#5C5K5P5U5`5`5k5k5w5w5‰5É5â5â5ò5dd¤¹ÐŠÐŠàŠçŠóŠùŠ‹‹"‹.‹H‹U‹U‹X‹f‹v‹�‹”‹œ‹e ¸÷Ÿ*Ÿ*µ*º*Î*ý* +++*+*+;+B+S+Z+c+z+z+�+�+¦+¦+¼+¼+Ò+Ò+è+è+þ+þ+,,*,*,A,A,X,X,o,o,†,†,�,�,´,´,Ë,Ë,â,ê,õ,--"-%-'->-E-M.f¬÷ÞÞøþ #55LSVXduux€–™§ª­´¸ÀÎàóöEg(ÉÏ}}-}}<}N}V}hCþNþN!O6O;OCOKOSO`OfOoOuOzO‚OžO¤O¦O¨OµOµOÂO·OÓOÙOÛOÝOêOêOêOïOøOP PPPP#P+P8P>PIPPP`PkPzP›P¢P­P¶PÇPËPÓPÓPçP÷PÿPQhQi8-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ãFÞFÞ`ÞiÞ‰Þ‰Þ�Þ—ÞŸÞ§ÞµÞ»ÞÈÞÈÞÖÞÛÞÛÞáÞæÞæÞìÞñÞñÞ÷ÞüÞüÞß'ß-ß2ß2ß;ß[ß[ß[ßbßdßdßkßmßmßsßsßzß|ß|߂߂߉ߋߋߑߑߘߘߠߦ߬ߴߴߴߴßÀßÈßÐߨßàßîßüßàà)à3à6à6à@àIàOàOàSà[àeàsà{àà…à�à—à¥à­à±à·àÂàÈàÙàåàëàóà÷àáááá!á)á3áAáIáMáSá^ácá|á–á›ážáDâl`—!—! !§!»!Ï!Ô!ò!÷!""5"7"N"b"k"m"�"‘"Â"m�2Òè’è’þ’“ “1“B“S“f“n“|“𓥓«“¸“͓͓à“ñ“÷“ ”'”'”3”;”C”I”^”f”j”r”€”†”‹”‹” ”µ”¼”Ĕ̔Ҕõ”•••"•;•A•C•P•R•d•d•k•s•…•…•”•¢•µ•¹•ÕǕӕוã•ç•ó•÷•÷• – –&–*–4–8–G–K–Z–^–q–u–u–u–u–Œ–š–§–¯–Æ–Ö–ä–ï–——!—)—6—Q—a—q—v—v—v—v—ƒ—’—š— —µ—Ä—Ù—ê—ú—˜˜˜˜˜$˜*˜7˜R˜b˜n˜t˜�˜“˜¡˜Ã˜OšnÔ¼ílll#l.l9lOlalyl~l�l”l¡l¨l¶l½l¿lÂlÇlÉlÏlélmm1m6mEmLmYmpmŽm•m—mšmŸmÂmàmìmo$hmG&G&U&i&p&Š&pxKe†M†M®MšM½MØMÄMçMìMóMûMN NN N(N3N>NTNINlNtNqFƒþ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×/×/ë/ï/ô/ÿ/ 0 000t0†ŽöLöL M M,M2M5M=MuÜtNNp{†�Ÿ±·½ÃÙÈíúý"EX\by�•¡¯´ÂÛéò 7EQkŠ‘›ª°¶¼ÂØù 0;JXgt„’©µºÈäö ',2ITahhv…‡•¤¶¶¾áì v`1EÖ�Ö�ì�þ�‚ ‚‚7‚;‚A‚W‚t‚v‚v‚§‚•‚v‚Æ‚ЂwD‹Ø~â~â�â˜â£â©â¯â³â·âãâãâêâíâòâãã/ã3ã8ã8ã?ãBãGãSãdãhãyã‹ã�ã‘ã£ã§ãÃãÇãÌãÌãàãããñãûãä(ä3ä7ä<ärä‹ä–äšä«ä¶äºä¼äÇäËäËäßäãäåäåäðäôäå å å åå2åxˆÙ÷6å6åJå`å`å`åbåbåiåkåkåråtåtå�åƒåƒå�å—å™å™å¦å­å¯å¯åÇåÌåÌåÜåy°1YÞVÞVöVþV WmWSWHW.WWsW…WuW¥W¥W¼W°WîWóWÿWXX#X)X0XTXCX7XkXmX‰X‰X�XºXºXºXÆXzÄL¹îùîù úú"úHúHúJúWúbúhúyúˆú—ú¤ú¤úªú¯ú´úÊúÝúèúìúþú ûûûû5ûCûCûCûNûiûTûqû„û†û¢ûŽûªû¸û¸ûºûÖûÖûÝûãûìûóûöûü,ü ü4ü:üCüCüCüVü[ü[ücücünüƒüŒüŒüŒüŒü¨ü¿üÅüÊüÊüßüåüêüêüöüý3ý8ý=ý=ýIýfýuý„ýŒý‘ý—ýœýœý£ýªýÍýêýìý þþþ$þ$þ1þ:þ:þXþnþyþ~þ‹þ–þŸþ§þ·þÎþÎþÞþÞþðþöþ ÿ(ÿ(ÿ*ÿ1ÿ6ÿ6ÿCÿNÿTÿ]ÿ]ÿpÿ}ÿ�ÿšÿ¨ÿ±ÿ¶ÿàÿéÿôÿùÿ05<IPbw~„��–°·¼ÊÚèèîõþþ#&&7?GSpw„†�¡°°°ÚÚÚççü&1?JY``yŒŽ�²´Â××Ýææóù  &8?JOW^inƒ…Ÿ´´´¶½ÃÔâôôú -3<<BKKjjwzƒŒ”Ÿ±·ÂÂÏÒÛäì÷ '*3<>`sˆŽ™«±¹¹¹¹Ä= {”�¾¿2¿2Ó2×2à2ã2ì2õ2333373<3?3H3X3_3b3j3m3z3‚3Š3’3™3©3©3µ3|`2¶K¶KÞKÊKíKLþK!L&L-L5LŒ>ŒGŒIŒIŒRŒTŒTŒ]Œ]ŒfŒlŒoŒyŒŠŒ�ŒœŒœŒ�œö##$#5#M#T#p#e#ˆ#¨#”#·#È#Í#î#Ú#$#$*$F$;$^$~$j$�$ž$´$ $Ì$Ù$Ù$ñ$ñ$û$€œX{f1f1r1‚1�1·1ç1ø1 22"2)2=2D2R2j2y2†2‰2¢2¥2ª2Á2Ñ2á2å2ì2"3�x± ¸®¸®Î®Õ®Ü®û® -¯¯(¯7¯F¯P¯P¯U¯\¯o¯~¯ƒ¯ž¯¸¯¸¯Î¯à¯ä¯ò¯ù¯þ¯þ¯°° °"°0°B°B°B°T°_°q°|°‰°Ž°ž°£°³°¿°Ä°Ñ°Ö°æ°ë°û°ý° ±± ±!±2±;±;±=±M±T±d±d±±‘±£±µ±Å±Å±Å±È±Û±‚\åø��#�*�/�=�R�Y�c�q�t�v�€�’�’�™�Ï�ƒ0ÎÖ&&>~rHF’š„`0Ö€Ö€ì€þ€���7�;�A�W�t�v�v�§�•�v�Æ�Ð�…L4CÞ/Þ/ì/þ/0 00$0-0?0E0H0„0†(–œ�2�2�2¬2°2³2¹2‡\DW†0†0”0¦0¬0´0Æ0Ì0Õ0ç0í0ö0111_1ˆ, ¦Ô¦Ô´Ô»ÔÃÔÈÔÎÔ‰„ ö ö  -& -- -4 -C -H -j +$LK,"InstEntryFind",A="FL:::/Compiler/UAsm.CPP.Z,66",BI=261$ +$LK,"PrsDotDotDot",A="FL:::/Compiler/PrsVar.CPP.Z,381",BI=262$ +$LK,"ICMulEqu",A="FL:::/Compiler/BackA.CPP.Z,322",BI=263$ +$LK,"AsmPrsInsFlags",A="FL:::/Compiler/AsmInit.CPP.Z,1",BI=264$ +$LK,"PrsNoWarn",A="FL:::/Compiler/PrsStmt.CPP.Z,787",BI=265$ +H2@_#_#h#n#‰#Ž#¹#»#ð#Ú#$$$+$¨­Ón`n`„`Œ`—`£`Ã`¥`Ò`Ø`Ø`a a4aBaBaoa‘a©a–a¸aäaÑaûab-b-b4bXbnbnbnbxbH>L®û®ûÈûÒûÖûÚûßûáûùûüüüp©Á¾ÿ¾ÿèÿêÿñÿ÷ÿýÿÿÿ !4CHJOYn„—¼Î(äää;ä?ä?äGä8ÖãÖãßãäãïãøãÿãääd`µ¶×¶×Ôר×å×ç×ô×ö×ØØØØØ Ø,Ø,ØGØUØUØ`ØgØvØ�؇،؎ؚءذػØÁØÆØÈØÔØÙ*Ù:ÙJÙZÙ\ÙlÙ|ٌٌّ٤٫ٲٲٲٲٹÙÏÙÛÙáÙçÙíÙñÙñÙñÙÚ%Ú;ÚGÚMÚSÚYÚ[Ú[ÚiÚD¶ÃnÚnÚ„Ú‡ÚŠÚ—Ú�ÚªÚ­Ú°Ú¶Ú¸ÚÂÚ ,cj؉؉æ‰ð‰û‰Š ŠŠ + hl&&4IO P Ÿ6Ÿ6­6¼6Ø6Þ6ð6ð6û67 +777 ”;\®J®J¶JºJÓJíJ +K+K4KEKiK€K€KŸK®K·KÄKËKýKLLLL-L=LALEL Œ×öžž¾ÆÊØÞää&:H_eqv„ ©¹»ÂÂÈÈØ|1¿"¿"Õ"Þ"é"#####$#&#,#5#7#=#G#N#Q#Q#[#0 ' ˆ ˆ.ˆNˆTˆZˆZˆ`ˆ„“°¨ ¨ ¼ Ã Ê Î ò ¡ ¡¡B¡M¡X¡Z¡e¡Š¡•¡ ¡¢¡©¡²¡´¡¿¡Æ¡ð¡(">Þ>ÞMÞdÞÞÞ…Þ ÞÝÞÝíÝÞ Þ ˆ0³0³U³\³s³³Š³œ³­³ž³œ³Í³è³ô³û³´ ´´´%´)´+´1´=´G´N´U´Y´Y´c´h´s´…´–´‡´…´¶´×´ã´ê´ð´ü´µ µµµµ µ,µ6µ=µDµHµHµUµcµsµ…µ–µ‡µ…µ¶µ×µãµêµðµüµ¶ ¶¶¶¶ ¶,¶6¶=¶D¶H¶H¶R¶b¶t¶…¶v¶t¶¥¶¬¶²¶¾¶È¶Ï¶Ö¶Ú¶Ü¶â¶î¶ø¶ÿ¶· +· +··"·+·D·P·T·T·W·`·Ö·Ø æ€æ€�Ѧ ��=�H�Z�a�r�z�~�����“�¿�¿�Ô�Ö�Ö�â�ê�î�û�û�‚‚‚ ‚ ‚ ‚<‚G‚X‚X‚]‚u‚„‚‰‚�‚š‚Ÿ‚Ÿ‚¤‚¼‚Ë‚ЂÖ‚á‚æ‚æ‚ô‚ý‚ ƒƒƒ!ƒ$ƒ*ƒ/ƒ8ƒJƒSƒdƒtƒtƒyƒ�ƒ‰ƒŒƒ’ƒ’ƒ—ƒ—ƒ—ƒ�ƒ ƒ§ƒ²ƒǃ샄„„ „,„8„>„E„N„R„U„a„g„n„s„s„�„‘„‘„ž„ž„¦„®„·„Ƅ˄˄݄҄ã„ë„ñ„ü„…………-…3…;…A…F…Q…c…i…q…w…|…|…�…–…¡…§…©…¹…¿…¿…ä… †††$†*†@†Q†W†\†u†{†‹†“†›†¡†¦†¦†º†À†Ö†ç†í†ò† ‡‡!‡)‡1‡7‡<‡<‡R‡X‡n‡‡…‡Ї™‡Ÿ‡°‡¸‡À‡Ƈ͇Ò‡Ò‡è‡î‡ˆˆˆˆ,ˆ2ˆ<ˆDˆLˆRˆYˆYˆYˆkˆtˆ…ˆ•ˆ•ˆšˆšˆ¨ˆ°ˆÁˆÔˆÛˆáˆéˆïˆÿˆ‰ ‰‰‰‰‰‰‰‰‰7‰C‰H‰H‰W‰`‰k‰t‰‰Љ�‰�‰¥‰«‰Á‰Ò‰؉݉ï‰õ‰ú‰Š1Š1Š6Š6ŠBŠJŠMŠSŠYŠ^Š^Š‚ŠŠŠ’Š¢Š¨Š®Š®Š¿ŠÝŠÝŠâŠâŠîŠöŠùŠ‹‹ ‹ ‹+‹3‹C‹I‹P‹n‹}‹…‹�‹¥‹¨‹¯‹µ‹Í‹Õ‹í‹õ‹ø‹ÿ‹ŒŒŒ$Œ4Œ@ŒHŒKŒRŒXŒhŒwŒƒŒžŒ¦Œ©Œ°Œ¶ŒÎŒÚŒõŒýŒ�� � � � ����+�A�G�_�r�x�}���•�š�¶�¼�È�Ð�Ó�Ú�à� ŽŽ!Ž'Ž.Ž.Ž.Ž3Ž3Ž<ŽTŽjŽpŽˆŽ›Ž¡Ž¦ŽÑŽ׎êŽ!�3�P�X�^�c�c�}�‰�•� � �¥�¥�¿�Ë�×�â�â�ç�ç�� ��$�$�)�)�?�E�Q�W�\�n�t�y�ˆ�”� �¦�¬�³�Æ�Ñ�Ú�æ�î�ñ�÷�ý�‘‘%‘-‘E‘M‘P‘V‘\‘t‘|‘œ‘¶‘¾‘Á‘Ǒ͑͑ޑç‘ó‘û‘þ‘’ ’’"’1’9’Q’Y’\’c’i’�’‰’¨’Â’Ê’Í’Ô’Ú’Ú’ê’ó’ÿ’“ +““““/“>“F“`“h“k“q“w“�“—“¹“Õ“Ý“à“æ“ì“ì“ý“””””$”*”/”A”P”X”s”{”~”…”‹”£”«”Í”ê”ò”õ”ü”••••••••#•/•5•:•L•R•W•e•q•z•†•Ž•‘•˜•ž•£•µ•ĕ̕ä•ì•ï•ö•ü•––;–U–]–`–g–m–m–m–~–‡–“–›–ž–¥–«––Ñ–Ý–ø–—— +——(—4—V—s—{—~—…—‹—‹—‹—‹—‹—�—�—£—¾—Ä—Ï—Ô—Ô—ç—ý—˜˜˜˜#˜F˜L˜W˜W˜i˜r˜ƒ˜ˆ˜š˜ª˜ª˜¯˜¯˜˜ؘÞ˜ì˜û˜™™™)™/™=™L™Q™Q™g™m™Š™¢™¢™Ì™Ò™×™ã™ì™û™û™šššš9šQšQš{š�š†š’š›šªšªš¯š¯šÅšËšèš››*›0›5›A›J›Y›Y›^›^›t›z›—›¯›¯›Ù›ß›á›í›ö›œœœœœœœ.œ0œBœOœOœOœ_œoœtœ˜œ¤œ¥œªœ¿œÜœìœ� �&�&�&�+�0�E�X�–�¦�¬�®�³�Ä�Ó�ž žžžž!ž!ž*ž<žOžXžgžgžlžqž€ž‰ž”ž–žŸžªžªžËžÒžØžàžëžñžŸŸŸŸ Ÿ Ÿ%Ÿ*Ÿ1Ÿ8Ÿ?ŸFŸOŸ^Ÿ^Ÿ^ŸcŸcŸcŸuŸzŸzŸŒŸ—ŸŸŸ§Ÿ­Ÿ­Ÿ­Ÿ²Ÿ²Ÿ½ŸΟÑŸÝŸæŸòŸùŸÿŸ     # / 8 D K Q V V V V [ ` ` k o o { „ ‡ ‡ ’ ” ª ± · Æ Ñ Ü â î ò ò þ ¡ +¡ +¡¡¡-¡4¡:¡B¡M¡X¡^¡h¡k¡o¡o¡w¡~¡�¡ƒ¡Ž¡’¡›¡ž¡ž¡©¡«¡É¡СÛ¡æ¡é¡ï¡ô¡ô¡ÿ¡¢¢¢¢¢¢&¢(¢>¢E¢K¢Z¢e¢p¢v¢‚¢†¢†¢’¢›¢ž¢ž¢©¢«¢Á¢È¢΢Ö¢á¢ì¢ò¢ü¢ÿ¢££ ££££"£&£/£2£2£=£?£]£d£o£z£}£ƒ£ˆ£ˆ£š£ž£ž£ª£³£¶£¶£Á£ãÙ£à£æ£ø£¤¤¤¤¤$¤)¤)¤4¤9¤9¤D¤G¤K¤R¤W¤\¤a¤a¤u¤z¤z¤‡¤‹¤œ¤¤¤¨¤¼¤äǤǤÔ¤à¤è¤î¤þ¤¥¥%¥0¥4¥4¥A¥I¥Q¥W¥W¥W¥W¥W¥Y¥Y¥g¥n¥{¥‡¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥•¥—¥—¥®¥¶¥Â¥Â¥ã¥ò¥ +¦ ¦¦%¦%¦H¦U¦`¦i¦r¦}¦„¦„¦ަަ‘¦£¦Á¦ͦͦü¨x¿Ùw4w4‰4‹4�4˜4¤4°4Å4Å4ô4ø4ý4 55&5)54575?5I5l_v>|>|T|c|h|}|j|Œ|�|�|œ|±|ž|À|Æ|ß|ø|}*}C}M}„ž~l~lœl¤lªl±l¸lºl½lÄlËlËlÜlàlælælûlmm m&mImjmom�m•m¡m¬m±mÁmÄmØmÞmãmémëmñmômúmÿmn +nn#nFnTnlnqnunšn­n²nÀnØnÝnánoo9oLoQoWo\o_oaogomosoxo~o†o†o�o™o§o¿oÄoÈoíoýo p3p8pHpkpyp‘p–pšp¿pÒpÒpípípípûpqqqq#q;q=q=qKqcqcququq~q‹q¡qÁqÛqãqîqrrrr rr,r4r?rZr\rbr|r„r�r�r¨r¨rÂrH…“p…p…‡…�…­…´…Ë…æ…ø…ü…?†L�ž^~^~r~~•~�~¤~¦~¿~Ø~ã~î~ö~4IR>×>×G×G×J×X×f×i×n×ì=ŽùŽù¶ù¹ù×ùîùÿùÿùú ú%ú%ú@úFúKúKúTúbúú—úœú£ú©ú«úÈúØúÝúäúêúìúìúÿúûûûû +û&û6ûHûMûMûMûTû[ûbûwû~ûšûšû¬ûÌL»h¥h¥‚¥�¥˜¥¡¥©¥¬¥³¥·¥À¥Ó¥×¥Ý¥ë¥¦¦$¦)¦5¦:¦A¦M¦R¦U¦_¦W¦o¦x¦‰¦‡¦¦—¦ ¦¦¦¦¦´¦·¦Ë¦Ô¦Ý¦ä¦è¦í¦§§%§3§O§[§[§s§„§„§‹§¤§°§¸§Ë§Ò§æ§ï§ö§ú§¨ +¨¨.¨[¨b¨f¨h¨s¨¨ƒ¨˜¨š¨«¨µ¨À¨Ê¨Ù¨è¨©©© ©©“©Pq�MM2MCMVMmMŠM¥M«M´MÂMÈMËM×MŒ papa€a¤a¤a²a²a²a²a»a»aÂaÝaòaúaúabbb#b#b1b7b7bObObUb{b (kqŠŠ&Š2ŠBŠIŠOŠ @KW6è6èDèLèSèrèèè‚è„èŠè!$/4æÞæÞóÞß ßß"$).¶Þ¶ÞÃÞØÞÝÞãÞ#$#(†Þ†Þ•Þ«Þ°Þ¶Þ$€ðLWWaq‡�™´¹Éßçñ  ' 1 ; E O Y c m w � ‹ • Ÿ © ¿ É Ó Ý ç ñ û  % / 9 O Y c m w � ‹ • Ÿ © ³ ½ Ç Ñ Û å ï ù ! !!!!+!5!?!I!S!]!g!q!{!‰!%¤C¨œ¨œ¾œÅœÚœëœýœÿœ� ��'�1�<�S�V�X�j�p�€�Š�”�›�¦�»�Ã�Ã�Ù�Ù�Ù�í�&$5:ßß$ß9ß>ßDß'¤Dið�ð�ž ž"ž3žEžGžNžTždžožyž„ž›žžž ž²ž¹žÉžÓžÝžäžïžŸ Ÿ Ÿ!Ÿ!Ÿ!Ÿ6Ÿ((&, 0 0-040>0D0J0)0]eFLFL\LoL~L„L‡L�L*  ßþ#þ# $($.$;$B$^$d$d$d$q$s$~$ˆ$�$ž$©$¯$¹$¿$Ð$Ð$Û$å$å$÷$ý$ %%% % %@%F%X%k%q%t%z%z%|%‚%ˆ%Š%Š%Š%›%¥%ª%ª%¿%É%É%Ý%æ%ì%ò%& &&+&/&/&7&=&C&M&T&[&d&v&v&›&Ÿ&¥&«&½&Ð&Ö&Ú&à&æ&ì&ì&î&ò&ø&þ&' ' ' ' '4'E'E'\'i'm'u'‡'§'§'­'°'´'º'º'Ì'Ý'ò'(( (#(4(8(>(W(Y(_(l(n(z(˜(ž(©(Ì(×(Ý(ã(é(ò(ø( +))#)')8)<)B)[)])c)p)r)~)œ)¢)¨)®)·)½)Ú)Í)ô)ý)*****$*.*C*H*H*H*e*g*„*†*£*©*±*µ*¼*ß*å*ë*÷*+++&+++++2+6+@+N+P+X+]+e+p+v+…+Š+�+•+�+¢+±+È+Ø+å+ð+ ,,*,*,1,F,K,T,a,f,l,q,q,x,|,†,”,–,ž,¢,¦,°,¼,Ã,Ç,Ï,×,ß,ñ,ÿ,-----;-;-I-O-T-X-]-]-]-]-c-e-e-ˆ-Ž-”-›-±-³-³-³-¾-¾-¾-Ã-ì.+4.wÉÉ0É4ÉLÉTÉ\ÉfÉjÉqÉwɋɓɘɛɦɱɹÉÄÉÏÉÑÉçÉîÉõÉÊ Ê ÊÊ#Ê%Ê1Ê:Ê:ÊPÊ[ÊsÊyʂʓʙʢʴʺʺÊÂÊÆÊÑÊÖÊèÊóÊ÷ÊËË ËËËË+Ë+Ë0ËBËH˶Ë,Ô@NåNådåkånå’å’å¯åÂåÕåèåíåíå ææ,æ?æGæGæIæIæIæ\æ^æ^æ^æeæxæ‹æ‹æ‹æžæ©æ¼æÒæ×æÛæâæ÷æ +çççç9ç-LAP/$/$=$N$Z$u$z$š$œ$·$Ò$Ò$Ú$á$%.P~ޠРЮлŠÉŠÛŠæŠôŠ‹‹!‹,‹:‹@‹F‹/4 +?6?6M6Y6j6|6…6“6™60|ºU> +> +` +g +u +€ +¦ +¦ +¯ +± +± +¸ +ß +æ +æ +õ +  + + 7 ? P Y w ‚ „ � £ ® ¾ Ð Ù ä é ï ö  # 1 : : A P g g v  “ š ¡ ¦ ± · ¿ å î õ ú    4 9 A M _ _ v } … • § ­ ¶ ¶ Å Ë ß ä ô *=EYwŽ’žµÑãéô %..@DPgƒ•›¦²ÂÒäêêïññöö Ž1ŒÄãÆÚÆÚâÚîÚòÚöÚýÚÛÛÛ$Û)Û+Û7Û>ÛFÛLÛRÛVÛVÛeÛlÛtÛzÛ€Û‚Û‚ÛŽÛ28 W/W/e/k/w/‚/“/�/¤/ª/3@t€–é–é¤é¯é¶éÕéâéâéåéçéíé4ÌS>>dw~…Œ’”›¢¥¥··ÉÔèðù "2GLe}��†�™­µ¾ÆËÒäô  $<@@T\emrxŽž³¸Ñéí    ' I T Z r Š � š ® ¶ ¿ Ç É Ï á ñ  + +! +9 += += +Q +Y +b j o -‘ -¦ -“ -µ -Ä -Æ -è -è -è -÷ -  + 5 Š`>~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ëõn"n"ˆ"�"¦"Ç"´"ß"÷"÷"#Œ`j~è�è�žžž"ž,ž7ž?žNžXž[ž€ž‚ž’ž’ž ž�_VØVØxØØ†Ø‹Ø¢Ø´Ø¾ØÄØÖØÛØçØïØòØôØþØÙÙ ÙÙÙ$Ù.Ù7Ù?ÙBÙKÙfÙwÙ~Ù�نٕٛ٣٣٪٭ٲÙÁÙÇÙÏÙÏÙÝÙàÙåÙôÙÿÙÚÚÚ&Ú-Ú4ÚKÚŽ83=†Õ†Õ�Õ�Õ�Õ¡Õ¯Õ²Õ·Õ�8>H¾Õ¾ÕÇÕÇÕÕÕÙÕàÕãÕèÕ�D*æ.æ.///$/0/H/Q/U/g/m/Œ/‘Ä{¨ÎúÎúøúûúûû ûûûûû,û3ûIû\ûkûqûsûzû€ûŠûŠûžû û§û­û·û·û·ûÎûàûçûöûøûü!ü!ü3ü’0+3Ž/Ž/—/½/Î/Ô/Ô/Ü/“„\yfðfðxð�ð—ð ð¢ð©ð¹ðÄðÆðÐðÐðÙðêðíðíðñññ7ñ>ñBñQñdñ·ñ”  -....7.T.Y.•hö ÖbÖbìb÷bccc$c5c>cOcUcacxcxcŠc›c¨c±cÂcÈcd–„a~^F^FŽF”F�F©F±F¸F¼FÅFÅFÊFÑFéFGGæ>æ`æhænævæxæxæ‰æ‰æ‰æ‘æ™æ«æºæ«æÏæÑæÑæëæíæíæøæýæçççç1ç3ç@çBçOçQç^çfçnçuç„ç‘ç“ç¤ç±ç±ç±çºçÌçßçåçíçïçüçüçèèèè&è>èCèCèCèQèWè\èdèoè�èŒè‘è‘è˜èœèªè®è·è¾èÜèéèðèùèééééé"é-é;é;é[é[é[ébépéé’é¥é§é§é§éºéºéÁéÈéÍéÓéåéïé ê5ê;ê;êOêTêxêê‹ê©ê¼êÇêÎêÒêÒêÒêÒêÝêçêõêë"ë?ëIëIëWëuë¥ë¸ëÉëàëóëøëøëøëì ìì(ì-ì-ì-ì?ìiìoìoìoìzì„ì�ì›ì�ì�ì�ì¢ì®ì®ìøìšH%ï.ï.ý.///(/0/0/H/R/X/^/›0 FJFJmJZJ|J˜JŽJ°J¸JœLÛê~!~!˜!Ÿ!¶!×!Ä!ï!ñ!"0""H"`"`"j"�ð·ÎGÎGH HH H+HJHJHTHVHqHYH€H€HŽH˜HŸH¿HÁHÛHâHâHþHþH%I*IIIbII‚IŠI‘I±I³IÍIÔIÔIðIðI J J4JFJžTVg––¬¹¿ÅÖäò )Ÿ0 -Rîÿîÿ>*aMp|���¤±¼ÈÓÛàìñ  +DMY^ry}}‚› ¹Îàåðøøøú(3=HJU]]mb…¥ àZŽpcpcŠc˜c�cªc¸cÁcÜcêcdd(dCdNd^d`dbdldxd|d‰d•d§d¯dÇdËdËdËdËdÐdîdeeeee&e/e…e¡d/þ$þ$%4%E%L%h%]%€% %Œ%¯%À%Ö%Â%î%û%û%&&&¢ü!\6 6 N ` k ˜ ~ r § È Ý Ê  ø ì ! > > > P m m ¢ ¹ ­ ë ð  ÷ +  : [ s ` Ž ‚ ¶ ¤ Å â â â ô 29[[c£(NãNã\ãã…ãŠãŠã�ã¤(!'.Õ.Õ7ÕEÕKÕMÕRÕ¥D]jl8l8†8�8–8¢8·8¿8Å8Ë8Í8Í8Ü8¦„¼ÙH¨H¨{¨‡¨‹¨“¨›¨Ÿ¨ª¨®¨²¨¶¨¾¨Ã¨Ç¨Ø¨é¨ë¨ï¨©© ©3©;©F©F©F©X©§€PšPšišpšwš~š„š”šŸš©š´šËšÎšÐšëšõšÿš››#›+›+›A›A›S›¨Ê -vRvRœR¹RÁRÌRÜRåRéRSS3S9SASDSYS^SpS’S˜S S¥S«S®SÄSÍSÏSñSùSTT"TDTJTOTOTOT\TmTxT…T‘T¤T±T¾TÕTéTóTõT U U%U8U;UBUeUeUeUwU©°)    Ã Ð Õ Ù â ñ ý ¡¡¡&¡.¡1¡=¡E¡_¡…¡¡•¡ž¡Ó¡¿¡ã¡ã¡û¡¢"¢)¢M¢†¢†¢†¢†¢ç¢ª˜‹-޶޶«¶²¶º¶Å¶Ü¶æ¶æ¶ý¶·"·8·F·J·j·~·’·™·�·¶·À·Ñ·Þ·Þ·å·ì·ñ·ö·û·¸ ¸#¸*¸:¸>¸>¸H¸^¸b¸b¸s¸†¸™¸™¸Ÿ¸ª¸±¸¹¸Ä¸Ë¸Ó¸Þ¸å¸å¸ð¸¹¹*¹¹E¹E¹K¹R¹a¹k¹y¹€¹„¹†¹˜¹˜¹˜¹ª¹²¹Ø¹æ¹æ¹ê¹ÿ¹ºº"º7º<ºJºYºcºqº|º€º…º�º‘º º¢º±º³ºÂºÄºÓºÚºÞºòºüº -»»»%»0»5»S»]»k»r»v»€»Ž»•»™»£»·»¿»Ê»Î»Î»Î»Ù»ä»ô»¼¼¼)¼8¼@¼K¼P¼X¼c¼o¼s¼~¼ƒ¼—¼Ÿ¼ª¼ª¼ª¼ª¼Ç¼ä¼ð¼ø¼½½6½:½i½^½O½y½y½ƒ½Š½™½¨½²½À½Ç½Ë½Í½Ü½æ½ô½û½ÿ½ÿ½¾¾¾%¾%¾%¾7¾I¾Q¾i¾•¾£¾§¾Å¾Ì¾Ó¾Þ¾ô¾ù¾¿¿¿+¿2¿6¿8¿K¿U¿c¿j¿n¿n¿n¿n¿|¿‡¿–¿ ¿®¿¹¿½¿½¿Â¿Ê¿Î¿Ý¿ß¿î¿ð¿ÿ¿ÀÀÀÀ/À9ÀGÀNÀRÀbÀmÀrÀ�ÀšÀ¨À¯À³À½ÀËÀÒÀÖÀàÀôÀüÀÁ Á Á ÁÁÁ+ÁEÁUÁ`ÁuÁzÁ…Á•Á¡Á·Á¿ÁÊÁÙÁáÁìÁñÁùÁ Â$Â8Â@ÂKÂKÂKÂKÂ_Âo„‘•©ºÂÏÂÜÂàÂîÂÃÃ*ÃCÃ\Ã^ÃiÃqÃqÃzÃ—Ã¨Ã¿ÃØÃæÃñÃýÃÄÄÄÄÄÄ7ÄEÄSÄjÄ�Ä�Ä�ĽÄÄÄÄÄÔÄèÄÅÅÅÅ+ÅFÅQÅhÅpÅpŕŕŨÅÃÅÌÅãÅýÅ ÆÆ9ÆGÆ]ÆyƉơơƹƹÆÅÆàÆøÆÇÇÇ ÇÇ6Ç?Ç?ÇFÇOÇUÇaÇÀÇ«0ùAÐ�Ð�õ�Ž ŽŽŽ&Ž,Ž6ŽDŽNŽ`ŽjŽpŽzŽ€ŽŠŽ‘Ž�ޣެŽ×ŽæŽéŽëŽõŽ��#�-�B�B�E�O�d�i�y�„�‰���°�º�Ï�Ý�æ�î�ü� ��.�;�;�H�H�P�^�¥�¬l£:DD7DOD_DD‘D©DÄDÄDîDöDúDýDEEEEE E'E-E1E6E@EQEXE_EaEeEnExE{E†E’E•E¦E±E·E¾EÇEàEñEúEF FF!F-F>FOF[FiFkFrFyF~F‚F�F–F¹FÇFÑFÛFäFýFGG G(G1G7G;G@GDGQGXGfGpG…G�G˜G±GÂGËGÔGÜGåGëGïGôGúGHH-H;HAHFHNHVH^HkHsH’H…H§H°HËHßHòHùHI III$I-IFI6IVIZI´I­  P†P†^†€†††®¸�·¯'¯'¸'Ù'¿'((7(b(b(r(w(w(‹(�(�(¬(±(±(Ñ(Ö(Ö(ê(ï(ï( ) ))>)d)„)–)¨)º)Ê)Ê)Ê)Ê)Ê)Ÿ*¯$bgÿ%ÿ%&&-&G&°”¢¦¿¦¿À¿Ï¿Ï¿Ò¿Û¿ç¿ç¿ý¿À%À,À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ز¤ÕzÎ^Î^ñ^ù^ __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³à˜Ìþ<þ<=1==f=L=@=u=„=Œ=—=™=¤=¯=¯=´=é=î=#>;>(>]>J>q>l>�>œ>¤>¯>±>¼>Ç>Ç>Ì>í>ï>????>?@?b?b?b?j?´\âõæaæaüabb b-b9bPbPbbbhbsbƒbŽbœb©bÕbµÙÚÆÆä÷þ  $$,EOOcn|�‘–ª®·»ÀÆããñ &7;;;@KU\osxŒ”�¡£ª¼Ìãåþ)-6:?Ebbp‡Œ¥¶ºÌÌÌÑà&17M^cn‚†�“•›´´ÂÙÛô  #'9>RZcgls‰™°µÎáå÷÷÷÷ü-Q\bx‰‰‰�£¼¼¼ËËÞõ    & ( 4 4 ; F [ ] h } ‰ ‹ – ¢ ² ¹ À Ê Ò Ö Ú Ü á é í ÿ        * @ ` z ˆ ” › › ® ² ² ² ¹ ¾ Ø æ ò ù ù !!!4!B!N!U!U!b!l!l!~!¶˜ »� H H=HLHLHLHiHiHxHxH~H€H€H†HˆHˆHŽH�H�H—H›H H H H H H H¨HÀHÀHÕHàHêH÷HII0I2IQIVIuIzI€I€I™IœIÃIÐIèIJJJJ4J"J:JIJNJUJ^JqJyJ�J†J†J†J�J¨J®J®JÇJÕJòJ K KKK#K(K(K.K.K7KHKJK_KaKiKoKwK|K|K|K|KŠK¡K£K·K·K¿KÅKÍKÒKÛKãKìKòKøKúKúKúKLLL'L+L-L9L;LVL\LdLiLrL}L€L†LŒL•L˜L˜L¦L·L¹LßLüLM -MMMMM"M$M,M,MGMYM^MjMpMsMŠMŒM�MŸM£MªM³MÂMÐMÖMÞMãMëMðMðMøMNN"N,NTN_NjNuN€N‹N–N¡N¬N¬N¬N´N´NÍNÛNøNOOOOO"O$O$O*O0O0O8OAOGOSOSOZO]O|O‡O�O—OœOœO£O§O¬O¾OÃOÍO×O×OäO P PP"P3P?PFPTPcPyPP„P„P‰PŸP«P³PÃPÍPÖPäPëPíPöPöPQQQ1QGQ^QdQfQ}Q‚Q‚Q¢Q¢Q´QºQÃQÉQÒQàQåQåQüQRRR!R7R7RKR[RmRrR~R„R‡RžR R£R³R½RÀRÀRÏRæRøRýR SSS)S+S.S>SBSJSXS]SbSbShSpSuSuS{S{S‰S�S•SŸS©S·SÌSÏSÑSÛSÛSÝSåSêSïSôSôSúSTTT TTT!T,T1TWTYT^TcThTmTrTwT|T|T�T†T¢T¬TÀTÔTÚTâTâTðTöTüTUUU3U6U8UBUQUVUVUVU^UcUlUlUqUqUwUU„U„U‰U”U™UžU£U²U²UÃUÉUÉU×UÝUãUíU÷UVVV V)V8V=V=V=VEVJVSVXVXV^VfVkVkVpV{V€V…VŠV™V™VªV°V°V¾VÄVÊVÔVÞVìVWWWW W$W$W$W,W1W:W?W?WEWMWRWRW_WeWeWsWyWW‰W“W¡W¶W¹W»WÅWÔWÙWÙWÙWáWæWïWôWôWúWXXXXXX(X.X4X>XHXVXkXnXpXzX‰XŽXŽXŽX–X›X¤X©X©X³X»XÀXÀXÀXÆXÐXÖXêXïXïXõXÿXY -Y -YY!Y*Y8Y=Y=YFYTY`YqY~Y…Y�Y—Y¥Y¥YªYªYµYµYµY¹Y¾Y¾YÄYÈYÍYÕYÛYÝYæYõYýYZZZZZ'Z2Z7Z=ZEZJZJZJZJZJZJZJZJZJZJZcZiZrZxZ€Z…ZŠZ“ZžZ§Z¯Z´Z´Z´ZºZÂZÇZÇZËZÐZÐZÙZçZóZ[[[[#[#[)[2[F[F[O[Q[W[`[t[t[}[}[}[‚[‡[‡[�[”[”[±[¿[Ë[Ô[Ú[ä[ì[ñ[ñ[ñ[\\\&\0\0\8\8\@\B\B\[\e\n\p\p\p\v\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è¢è¢££££££ £$£)£K£8£[£c£k£n£p£€£‰£’£˜£›£¬£Ã£Ô£ß£¤¹à.¢.@.@L@W@h@k@o@x@@�@œ@²@Ã@Ô@æ@ø@AA'A6A6ADAHALAQAUAbAiAwA‹A”AšA¨AÁAÃAÇAÑAÑAÖAÖAÖAÛAÛAêAóAûABBBBB.B:BEBJBJBMBRBRBqB}BŠBŒBŒB�B’B’B±B½BÉBËBËBÎBÐBÐBÝBßBßBâBâBëBñBöBCCCCCCCCCCCCC%C7CFCUCUCYCYCaCzC~CƒCDº,~Ô~ԌԓԛԠԦԻl3J–L–L¬LÆL²LÕLúLæL MMMMMM"M*MBMMMcMXM{M…M¼PQa%%%%3%:%J%[%`%}%ƒ%Š%‘%Ÿ%«%½%ù%½D$–ã–ãªã¸ã¾ãáãçãíãäää$ä$ä,ä¾ô#œn4n4v4…4‰4–4£4·4Æ4ã4ð45$5D5R5n5€5˜5¯5º5Û5ù56#6.6I6b6b6}6¦6À6Û6í6ü6 7 77)7:7M7]7j7v7…7¢7¢7ª7ª7ª7»7È7Ï7î7÷78 88 878O8X8h8p8u8™8©8¹8Ä8Ø8Ý8å8 9 99K9e9e9}9Œ9”9£9¬9´9Æ9è9ð9ø9:::-:E:]:u:‡:ž:§:°:Â:Ð:Ô:Ø:¿ ˆ†ˆ†‘†°†µ†À\ˆ[&Ë&Ë@ËGËTË_ËdËjË|˂˚ˠ˾ËÔËßËåËÌÌÌ,Ì.Ì1Ì=ÌEÌMÌUÌcÌiÌrÌ~Ì~̘̀̒Ì�Ì�Ì´Ì´ÌÒÌÒÌåÌòÌ÷Ì÷ÌÍÍ&Í<ÍGÍUÍ`ÍpÍ}Í�͕ͫ͟͸ͺͺÍÂÍÇÍÇÍÏÍÔÍÔÍÜÍáÍáÍéÍîÍîÍôÍùÍùÍÎÎÎ ÎÎÎÎ!Î!Î,Î1Î1Î<ÎAÎAÎLÎLÎgÎnÎtÎw΂΅ΙΦεμοÎÑÎÓÎÙÎíÎúÎ Ï Ï Ï ÏÏ-ÏBÏTÏeÏnÏυϊϕϧϸÏÇÏÍÏÞÏéÏóÏÐÐÐ#Ð)Ð>ÐDÐUÐ`ÐfÐvÐvІЙХЭнÐÄÐÊÐÛÐæÐëÐÑÑ+Ñ;ÑGÑYÑdÑsÑuчÑ�єћџѭѷѽÑÇÑÍÑØÑÞÑàÑíÑúÑÒÒ+Ò+Ò1Ò8Ò|ÔÁD#°ˆªˆª§ªÉªÑªÑªßªòª «««4«4«4«<«>«>«F«H«H«P«R«R«Z«Z«c«i«n«n«w«†«Š«�«•«š«š«š«š«¢«««±«¶«¶«»«È«á«¬¬¬8¬8¬8¬@¬B¬B¬B¬J¬L¬L¬L¬T¬V¬V¬V¬^¬`¬`¬k¬k¬q¬v¬v¬v¬v¬}¬ˆ¬š¬¨¬¶¬À¬À¬À¬Ð¬Ð¬×¬Û¬á¬ù¬­­'­P­S­\­c­w­­ˆ­“­“­ž­¤­©­©­©­°­¶­Ë­Ó­Ù­ä­û­®®$®)®)®0®;®;®@®R®X®X®X®X®´®Âd*BB6B@BCBCBMB`BbBoBqB|B�B˜B¨B­B³B»B¾BÐBÃLWf‡0‡0›0Ÿ0¤0¯0¯0¹0¿0¿0Ã0Ë0Ä\CV 0 0505090>0Q0T0Y0Y0c0i0i0w0y0ƒ0Å8(2VÕVÕ_Õ_ÕmÕqÕxÕ{Õ€ÕÆ¨Z€Æ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[>'>'X'�'c'�'°'Ì'Â'ä'ü'é' ($(D(V(o(o(v(˜(˜(¢(È4Ž—¾ê¾êÒê×êÝêáêåêë ëÉxÐêV}V}�}n}�}š}¡}·}¼}Á}Å}Ç}Í}Ó}é}Ö}ø}~~+~N~D~]~i~Ê4;D–ߖߟ߫ßÊßÏßÑßÑßÖßË”"X©X©f©x©|©„©Œ©—©¢©ª©µ©À©Å©Û©â©é©ô©ÿ©ª ªªª%ª0ª;ªDªLªLªPª‡ªÌ€Úö�4�4­4±4µ4½4Ë4Î4Ñ4ç4í4ï455 555%5:5K5R5Y5Y5f5{5ÍÞ`&@&@V@a@†@h@ @Ö@Û@Û@Þ@è@AAAA;A\AnA{A–AªA¯AÉAÓAÕAÚAñAB*B7BRBrBhBŒB’B’B›B»BÇBÊBÌBçBÑBöBöBCCC CKCACeCeCjCmCƒC�C¤CÈCÒCØCèCDÿC D!D3DGD[DQDpDvD…D­DœD¼D¾DÐDÚDîDøDEE"E$E8EBEBEaEgEgEgEpE�E¸E§EÇEÌEÞEæEFF&F&F&FLFLF^FÎ`8Ì,,U,\,d,m,x,,—,œ,Ÿ,¢,«,¹,Ã,È,ð,õ,-.-3-@-`-e-t- -¨-­-Â-î-ö-û-û-.!.5.9.[.l.q.q.�.�.�.�.�.±.É.Î.Ñ.Ô.Ô.////$/?/V/d/o/‹/‹/‹/˜/¯/±/±/±/¾/Õ/×/×/ä/û/û/ 0070N0`0|0|0|0‰0 0¢0¢0¢0¯0Æ0È0È0Õ0ì0ì0ü01 1)1@1R1n1n1n1{1’1”1”1¡1¸1¸1Ì1Î1Ü1þ12!2/2=2G2I2I2I2f2n2p2p2˜2Þ2Ϥ)N&ç&ç@çlçlç‹ç›ç ç ç¯çÁçÛçãçêçïç -èèèèèèèè0è0è0è0èGèIèIèIèIèdèoè¤èÐÐën~n~„~�~•~•~¡~¦~«~¶~»~»~»~ð~Ý~ÿ~&&?XqŠ��¨ÁÚóøø€*€C€\€^€^€w€�€©€€€€Ô€Ñ0…�^ê^êlêrêvê•ê¶ê¶ê¼êÒ<:Eo7o7x7ƒ7‘7�7©7²7»7Ä7Ê7Ï7ÓluŒß&ß&í&÷&þ&''''('2'@']'_'o'o't'v'}'¯'ÔØŸÑ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¦(¦(Ä(Ö(Ý(ÿ(ÿ()).)$)F)P)ÖÈg•Ï0Ï0ó0÷0181D1K1V1d1q1z1z11‰1¡1¬1¼1È1Ï1Ú1ë1í1þ12222 -2 -2222$2,24282B2Ž2× ø…ø…††#†Ø`FZÏ7Ï7ß7æ7è7í7ü7888%8%818:8=8K8U8X8`8Ù<ú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Û, ^.^.l.}.–.ª.­.³.Ü4¸†¸†Æ†Ð†Ù†à†ç†ñ†ñ†÷†ÝÄMz–ø–øÂøÅøÊø×øÜøîøðøôøøøûøù'ùMùVùaùhù�ù§ù¬ùÅùëùðù÷ùú6ú8úQúwúwúwú�ú©ú¸úÊúބ¾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}çß „È^S^S|SŠS�S¢SÀSÆSËSÑSßSæSõSúSTTT6TATTT[TuT’TžT¹TÑTíTöTU UU#U(U8UFUfUkUsUŒUžU®U´U¿UÈUÎUVþUïU$V_VIV:VoVrV’V&Wà<+6ÔBÔBõBûBCC/C7CMCYCá„ |FFhsz‚……•  £ª±·½ÃÊÐááãìøþ# ' * : B G G N W h n w ‚ “ “ œ ¡ « ² ¹ Á Ç É × î ñ        2 ; L m ~ – � § ¯ ¶ ¶ ¿ Æ Ò â í í í !!%!(!ã!â„9O6O6k6z6�6›6Á6×6è6ñ6ÿ67*7*7<7R7Z7]7i7ãX{Í&&Q[ny‹™Ÿ°·¿ÕÝð !1AJPU\bhny„‡Ž¨°Êßìï÷û '/F_cls…�”˜¡£µÌÚàäæóóóõ $ä  -(†(†1†E†J†å¤£Èn{n{Š{�{¢{§{­{°{´{´{×{Ü{ |õ{|1||@|V|B|e|m|r|x|{||�|š|†|©|©|©|Ä|ó|ÿ|æ˜Íï /*>9HWWffuu„„““¢¶±ÀÀÏÞíXçxÇá¶`¶`Ô`æ`ì`ø`aa!a'a2aBaNaWa]acana|a‰a•a£a²a²aâaèd˜­ëëë%ë%ë?ëFëRëRëiëië€ë€ë—ë—ë®ë®ëÅëÇëÇëËëéÌÂñ6ý6ýXý_ýjý€ý€ý’ý�ý±ýµýºý¾ýÀýÆýØýäýùýûýþ#þ'þ'þ'þ:þOþOþ[þaþkþvþ„þ‹þšþœþµþÏþÏþáþêP7G\C\CrC~C†CŠC›C©C¯C»CÃCÎCÔC×CáCë ®-–;–;°;»;¿;È;Ï;Ö;ì;ý;< <2<A<P<a<p<p<w<{<„<‘<˜<¡<¨<¬<Ì<Ì<Ì<Ì<Ì<Ø<Ü<ß<ç<õ<ý< -===+=6=;=;=H=N=]=t=v=�=Ž=�= =¦=¢=º=Ñ=Ó=á=ã=î=ô=ô=ü=ü=>>+>+>+>0>0>H>V>a>f>f>i>n>n>�>›>¨>ª>ª>®>°>°>Ï>Ý>é>ë>ë>î>ð>ð>ý>ÿ>ÿ>????? ???!?A?N?\?c?+@ì(rx(‰(‰6‰=‰M‰P‰V‰í(nt�&�&˜&¢&³&¾&¾&Ü&îTzK¾ñ¾ñÜñâñåñîñøñò ò)ò/ò2ò6ò8òPò`òmòsòwò}òò‚ò†ò†ò©ò­ò³ò³òºòÜòñòóóó$ó/ó9ó=ó@óGóMóQóWóhónósóxó…ó‡ó™ó›ó¢ó¯ó±óÃóÃóÃóÃóÃóçóòóþóôô*ô6ôSôwô‘ô–ô­ô²ôÀô×ôÜôâôóôõõõ+õCõJõVõnõzõzõzõ€õƒõ†õŸõ¥õ¹õ¿õÄõÏõÏõÔõáõîõîõôõöö ö"ö%ö,ö5ö<ö<öAöNö[ö[öaöoö†öŒö�ö’ö™ö™öªö±ö¾öËöËöÒöÜöãöéöðöûö÷÷)÷.÷5÷=÷D÷T÷X÷a÷y÷~÷…÷§÷²÷¸÷À÷Ù÷í÷í÷øø"ø0ø7ø>ø`øsø—ø™ø£øÅøÅøÅøÞøêøûøùùíùïÀ�­ÆZÆZÞZâZçZöZ[ [.[[=[B[B[g[˜[{[n[»[À[é[î[ú[\ü[*\/\H\O\r\ˆ\ˆ\®\®\º\ð þ-þ- .&.,.ñ4�˜>M>MWMzM‡M�M“M–M·Mò8 O.O.].d.o.w.~.„.Š.Š.�.ó ¶.¶.À.È.Í.ôÒ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ò8þ8þ89 9!9@9@9@9G9Q9U9Y9\9\9e9i999µ9Á9Ì9Ü9ì9ñ9ô9ù9ù9ù9::":):1:6:6:K:W:_:d:d:y:†:Ž:“:“:¨:´:½:Å:Í:Ù:ï:ú:;!;/;7;<;<;Q;k;u;�;‰;Ž;Ž;­;¹;Ä;É;Þ;ê;ù;þ; << < < < <"<'<'<'<F<R<]<_<b<g<g<g<q<y<€<ˆ<‘<œ<¢<°<¾<¾<È<Ñ<Ù<===*=@=E=E=X=`=`=b=b=b=g=g=n=t=x==ƒ=ƒ=ƒ=ƒ=’=’=·=À=À=Ä=ßAö(äAäAòAûA BB÷�«Ë¾g¾gÜgägðghh)h4hChIhIhIhNhShahlh…h‡hŒhšh¥h²h¹hÇhø\0C&&8&]&?&l&ˆ&~& &µ&¢&Ä&Ý&ï&'''1'1';'ù8hr®K®KÇKÖKêKùKÿKLL)Lú0�— Š Š4Š@ŠNŠQŠiŠlŠtŠû0S[ÖÖ2Ö:ÖGÖQÖdÖüP>N ‡ ‡¬‡À‡Ã‡×‡ß‡ã‡í‡÷‡ÿ‡ˆˆýT™ª¾M¾MØMëMîMøMNNN.N8NLNLNRNUN©Nþ<˜£xŠxŠŒŠ“ŠŸŠ«Š»ŠÀŠÃŠÇŠÏŠÿ +/.ä.ä<äHäH"0nVnV‚VŽV¤V�V³VµV¼VÇVÓVÛV DƒnQnQ’Q™QžQ¦QÀQÉQËQØQØQÚQôQúQüQþQ R R R RRR'R/R8R@RGRMRORkRoR�R”RšR®R³RÀRÀRÔRÛRâRëRùRS%S+S/S4S9SCKO^Q}‘•¤¤¤¤·½ÇÎáüü(66JXf{Ž“²ÁºÙéð'MO{{{†ÄÉÔÚå!0GXs‡‹�¡Ãøå%06Jbg{ƒŒ”™ ²ÂØÚó 1J^bqqq„Š”›®ÉÉÉåõ%>3Qdiˆ—�¯¿Ðîî:::Z9DmzVVfzƒ‰››Ÿ¢ª:lwŽN}N}d}s}x}�}z}œ}Ÿ}Ÿ}¬}Á}®}Ð}Ö}ï}~!~:~S~]~;<‰”'06:E<”)þíþíî +îî'î)î9îDîVîaîlî{îŒî“î¬î°îÁîÁîËîÒîåîîîüîï,ï1ïNï=d(=`ˆ`ˆlˆ€ˆƒˆ—ˆŸˆ£ˆ­ˆ·ˆ¿ˆÂˆÈˆ>$uºXFXF|FFƒF�F™F¤F´F¼FÆFîFîFþFGGGGG(G-G-G=GBGBGRGWGWGgGlGlG|G�G�G‘G–G–G–G™G™G²GÀG×GêGêGìGìGûGHHH HHH'H7HDH\HdHjHjH~H~H‡HŠHHI?È oþ¨þ¨©#©&©4©B©W©`©{©”©¦©±©©Æ©Ø©Û©æ©ï©û©ª?ª4ªªOªfªzª†ª”ªµªʪ«%« «@«C«H«K«K«R«h«o«|«�«�«�«°«°«È«Ì«ù«ù«¬¬¬&¬*¬;¬E¬V¬`¬s¬x¬x¬ˆ¬Œ¬�¬§¬¸¬¬Õ¬á¬æ¬æ¬æ¬­­­+­@­@­E­O­^­c­i­n­n­s­}­Œ­‘­—­œ­œ­¢­¨­­­­­µ­È­Ô­á­í­ü­® ®®,®@®Q®^®c®{®Ž®¥®²®º®É®Ó®Ù®â®ë®ë®ð®ð®ð®ð®ð®¯¯¯¯.¯6¯Q¯b¯o¯q¯~¯ƒ¯ƒ¯ƒ¯ޝœ¯¡¯¡¯¨¯¶¯»¯Ó¯߯ñ¯ý¯° °°°@°L°R°X°g°o°w°¤°µ°°İÒ°Ò°×°×°Þ°ì°ñ°±±±"±(±1±6±6±6±6±6±N±S±S±S±S±S±d±d±d±d±d±d±d±d±d±d±|±’±š±µ±ƱÓ±Õ±â±ò±÷±÷±÷±²²&²+²M²Y²Y²^²^²^²^²^²^²^²^²s²x²x²x²‰²�²•²•² ²²²ʲß²³!³,³=³B³B³B³K³q³z³‹³‘³²³˳ӳ۳鳴´"´C´\´\´\´\´\´~´·´À´Æ´Ì´Ñ´Ú´ã´è´è´è´è´÷´ µ)µ9µ?µDµDµWµkµ‘µ¤µªµªµ¯µ¯µ¾µÒµðµ¶¶ ¶ ¶¶2¶X¶k¶q¶q¶v¶v¶v¶޶¤¶¬¶Ƕضå¶ç¶ö¶ø¶ø¶ø¶ø¶ø¶ · · · · · · · · · · · · · · · ··*·5·7·7·@·B·B·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·V·X·X·o·w·ƒ·ƒ·‡·Œ·œ·¸·зß·ë·¸¸¸(¸4¸Z¸z¸š¸¾¸À¸Ó¸¹Ù¸¹¹ ¹/¹7¹R¹c¹f¹€¹޹š¹²¹²¹ݹà¹ï¹º$º8ºTº@ºpº…º£ºغÖº˺Àº±ºæºæºæºéºîºñº »»G»i»i»”»—»¦»º»Û»ï» ¼÷»'¼'¼E¼z¼x¼m¼b¼S¼ˆ¼ˆ¼ˆ¼‹¼�¼�¼—¼§¼ȼÔ¼)À@Ä„±®Ä®ÄÄÄÈÄÓÄÚÄåÄùÄùÄÅÅÅ)Å5ÅBÅFÅWÅWÅ`ÅeÅmÅ}ŋŚťŸŸÅÐÅÐÅëÅÆÆ+Æ-Æ-Æ7Æ?Æ?ÆIÆQÆQÆQÆbÆbÆbÆhÆpÆvÆ{Æ{Æ�ƉÆ�ƓƘƘƮƾÆÈÆׯÜÆäÆäÆéÆéÆðÆÇÇ Ç(Ç.Ç=ÇBÇJÇPÇPÇUÇ\ÇgǛǪǴǼÇÂÇ×ÇÝÇâÇâÇâÇâÇâÇâÇâÇâÇâÇíÇûÇ ÈÈÈ(È-È:ÈBÈGÈGÈGÈOÈXÈaÈnÈvÈ‚È�ÈÁÈÉÈØÈâÈüÈÉÉÉÉ!É)É>ÉFÉNÉcÉeÉpÉxÉ�É�ɕɦɮɵɻÉÁÉÅÉÎÉÓÉ÷ÉÊ Ê Ê,Ê1Ê=ÊHÊMÊMÊMÊcʀʅÊ�ʞʦʮÊÃÊÈÊÓÊÛÊðÊõÊõÊË%Ë-ËBËNËSË_ËjËoËoËoËoËoËoËzËzËzËzËzËzËzËzËzËzËzËz˅˔˗˥˵˻ËÃËÒË×ËßËçËéËñËÌÌÌÌÌ Ì=ÌFÌNÌVÌ]ÌqÌz̵̧̟̺̃̋̿̕ÌÑÌÍ ÍÍ&Í@ÍHÍMÍMÍMÍVÍ_ÍbÍlÍz͎͌͠ͲͲͲͽÍÂÍßÍäÍäÍíÍòÍòÍòÍòÍòÍòÍòÍòÍòÍòÍòÍòÍòÍòÍòÍòÍýÍ Î!Î4Î<ÎKÎPÎXÎ_ÎlÎuÎ~ΆÎ�ΒΒΚ΢ÎÀÎÈÎËÎÍÎÝÎçÎçÎçÎéÎþÎÏÏÏÏ"Ï"Ï+Ï0Ï8Ï?ÏLÏaÏhÏyυϢϻÏÐÏåÏìÏìÏñÏñÏñÏñÏñÏñÏñÏùÏÐÐ Ð$Ð$Ð,Ð4ÐAÐFÐFÐFÐJÐOÐOÐ_ÐdÐdÐdÐpÐwÐ}ЇЌУвкÐËÐÓÐöÐüÐÑÑ ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ/Ñ9ÑGÑGÑLÑWÑ^ÑzчччыіѴÑÂѺÓAx[¾Ó¾ÓÔÓÛÓâÓíÓôÓÔÔÔ Ô3Ô;Ô;ÔVÔpÔvÔÔ†Ô‰Ô”Ô�Ô¤Ô§Ô¬Ô·ÔÁÔÓÔÙÔïÔöÔþÔÕÕÕÕ)ÕPÕYÕaÕsÕ{Õ{Õ{Õ†Õ�Õ¢Õ¨Õ¾ÕÅÕÍÕÔÕéÕúÕúÕÖÖÖÖ6ÖCÖLÖTÖfÖnÖnÖnÖ|Ö„Ö„Ö‡Ö’Ö¬Ö¸ÖýÖBt`¹ÚÚ&Ú6Ú=ÚDÚOÚbÚeÚmÚtÚwÚ‡Ú•Ú Ú«Ú®Ú¹ÚÏÚÚÚåÚðÚûÚÛÛ!Û>ÛGÛOÛoÛrÛxÛ}یےۚ۩ۯ۷۷ÛÃÛÑÛàÛèÛ÷ÛÿÛ"Ü(Ü.Ü0Ü6Ü<Ü<Ü<ÜaÜf܃܆܆Ü�ܚܞܩÜÃÜÏÜßÜòÜÝ#Ý+Ý5ÝTÝhÝhÝÜÝC ¾/¾/È/Ð/Õ/DÉÆXX3X>XQX>XkXyXyX‰X’X™X�X¦X¦X®X²XÒXàXìXòXýX!Y!Y4Y?YEYLYQYQYdYoYzY�Y‹Y˜Y˜YªY¯Y¯Y¿YÄYÄYÄY×YÜYïYõYþYZ'Z'Z,Z,Z]J][]r]t]€]‹]�]�]˜]¬]¹]Á]Ã]×]é]ð]^^1^8^D^b^b^b^j^u^y^�^…^�^”^¤^¯^Í^Ò^Û^æ^ï^÷^ü^ü^ __&_1_<_J_P_V_\_e_k_z_‡_�_›_©_À_Â_Ë_Ö_Ø_ä_`````.`U`]`g`u`�`”` `¯`Ä`Ä`Ñ`Ö`è`î`î`î`î`°aEDQ^¾{¾{Ò{ß{õ{á{|||6|>|FœfÉ6R6RXRbRŠR™R¤R½RÂRÆRÎR×RæRíRöRûRS!S@SHSJSiSqS€S‡S“S˜SŸS§S­S¯SÀSÅSÛSÇSêSðSðSøSTT/T6T8TWT^T^T^TuT~TŠTŽTœT²T§TÊTÏTàTåTûTçT +UUU U%U'U8U=USU?UbUhUhUpUyUyUƒUƒU›UËUÔUàUäUòUVýU V V2VG ;zFßFßeßnßq߃ߙߛߤߩßÊßèß÷ßà)àAàHànàŒà›à¸àÉàààäàäàèàíàòàüàÿà áá'á*á*á*á*á/á5áQá_ákátáˆá�á™áµáÀáÌáÕáéáéáøáýáýá âHP‡—@@'@@I@6@X@g@o@z@|@‡@’@’@´@º@IPÅÕÞøÞøòø÷øùù ù:ùPù<ùmù_ù…ù�ùJŒ¥ÄV÷V÷‰÷µ÷µ÷È÷Ì÷î÷øøøøøø3ø?øPøUøføzøø�ø�ø�ø�ø»ø»øØøKP�­Ö;Ö;ÿ;<<<0<?<N<]<k<v<y<‰<Lè7--A-D-G-M-R-i-€-—-»-×-Ú-ù-.%.2.H.[.`.k.s.s.}.}.ˆ.�.¢.¨.Ç.æ.è.ý./"/A/I/T/T/^/^/p/®/Æ/Ø/M$ ÞYÞY ZòYZZNLx‡¶Ë¶ËÈËÝËîËÿËÌÌÌ)Ì:Ì@ÌrÌOTHY(d(d:dÝDÝ\ÝkÝuÝxÝx݂݈ݎݎݒݚݡݥݭݵݻÝÃÝÊÝÒÝÚÝÞÝäÝïÝõÝÞÞÞÞ Þ'Þ/Þ7Þ;ÞAÞIÞPÞXÞ`ÞdÞjÞuÞzÞ�Þ¡Þ¦Þ©ÞOßTL”£@†@†Y†[†b†x†ˆ†Ž†¦†¾†Á†Ó†‡UÔ*[NïNïbïwï†ïŠï˜ï¡ï°ï°ï¿ïÊïÕïàïçï÷ïð%ð+ð0ð4ðGðGð]ð_ðið�ð˜ðšð³ð·ðÅðÊðÊðÑðàðèðûðeñV$žYžYÉY²YÓYÛYWPÍÝ.C.COCÖGÖLÖY …NŽNŽoŽ„Ž’ŽŸŽÒŽߎñŽ�!�!�.�.�5�H�F�V�V�a�k�q�w�z�ˆ���§�®�±�Æ�Ë�Ö�á�û��&�,�2�9�W�?�`�f�l�t�”�|���£�©�±�±�¸�Ö�¾�ß�å�ë�ó�‘û�‘"‘(‘0‘0‘0‘F‘F‘F‘F‘Q‘[‘d‘„‘�‘¡‘¦‘·‘Ë‘ББÛ‘ã‘î‘÷‘’’'’<’Q’n’s’s’~’†’“’ž’®’½’Ú’ï’““““ “5“J“V“g“l“}“‘“‘“œ“‘“´“¹“¹“ȓ͓͓ܓá“á“ò“÷“÷“” ” ” ”/”4”4”G”V”[”i”[”}”‚”�”‚”¤”©”·”©”Ë”ДÞ”Дò”÷”÷”••;•@•N•@•b•g•g•„•‰•«•°•¾•°•Ò•ווô•ù•– –.– –B–G–G–d–i–‹–�–ž–�–²–·–·–Ò–×–×–ò–÷–÷–———2—7—7—R—W—W—r—w—w—’—————²—·—·—È—Í—Í—Þ—ã—ã—ï—ú—˜˜˜ ˜9˜>˜d˜k˜u˜z˜‹˜•˜ª˜µ˜º˜˘Ö˜Þ˜ã˜ã˜ç˜ë˜ò˜ü˜™™™™™™"™;™D™D™j™o™o™w™‹™”™®™»™Æ™Ñ™Ü™î™ú™ššššš6šAšKšVš[šfšnšsšsš~š†š�šššªššÚšîšóšóšþš››&›G›S›d›i›z›~›ƒ›ƒ›“›ž›¦›«›¶›Æ›Õ›ò›œœ'œ,œ7œ?œDœOœ_œnœ‹œ œµœµœµœµœºœ¿œ¿œËœÜœÜœ�� � �*�>�H�J�V�^�{�Œ�–�¡�Ä�Õ�æ�÷�žž*ž/ž/ž:ž?ž?žGžRžWžWž_žjžožožwž˜ž�žž°žµžµž½žÞžÇžÅžöžûžŸûž'Ÿ,Ÿ,Ÿ9Ÿ>Ÿ>ŸFŸKŸKŸ]ŸoŸtŸtŸˆŸtŸ Ÿ¥Ÿ¥Ÿ­Ÿ²Ÿ²ŸÅŸÊŸÊŸÝŸâŸâŸüŸ    + ; @ @ Z j o o ‰ ™ ž µ ž Í Ò Ò Ý â ¡ ¡ú â 6¡;¡w¡e¡S¡;¡�¡”¡”¡£¡³¡¸¡¸¡Ç¡סܡܡë¡ù¡þ¡&¢¢þ¡>¢C¢k¢Y¢C¢ƒ¢ˆ¢°¢ž¢ˆ¢È¢Í¢Í¢ê¢Ô¢£$£)£)£D£0£n£~£ƒ£ƒ£�£”£”£ £¥£¥£¸£È£Í£Í£à£ð£õ£õ£¤¤¤¤0¤@¤E¤E¤M¤R¤R¤Z¤_¤_¤g¤l¤l¤t¤y¤y¤Œ¤‘¤‘¤¤¤©¤÷¤å¤Ó¤Á¤©¤¥ ¥W¥E¥3¥!¥ ¥d¥i¥i¥x¥“¥˜¥˜¥©¥Ä¥É¥É¥Ú¥è¥í¥í¥õ¥ú¥ú¥¦¦¦¦¦¦L¦:¦(¦¦k¦†¦‹¦‹¦æ±¦Ÿ¦’¦â¦ý¦§7§%§§§O§T§‰§w§l§T§¡§¦§À§ª§¦§اݧú§ä§ݧ¨¨¨#¨<¨L¨]¨]¨‚¨„¨š¨ ¨ ¨½¨ʨû¨,©©O©W©W©W©c©h©h©{©†©�©•© ©ª©¯©¯©É©ΩΩÖ©Û©ï©Û©þ© ªª"ªª1ª<ªAªAªLª]ªbªbªmªxª}ª}ªŽª“ª“ª¤ª©ª©ªêΪÓªÞªÓªíªòª«òª««%««4«9«M«9«\«a«a«u«a«„«„«„«‰«•«‰«¨«­«­«¹«­«Ì«Ñ«Ñ«Ý«Ñ«ð«õ«õ«¬õ«¬¬-¬¬<¬H¬S¬^¬c¬w¬c¬†¬’¬�¬¨¬­¬Á¬­¬جЬá¬æ¬æ¬î¬ó¬ó¬ü¬­­ +­­­­­­(­-­-­8­=­=­H­M­M­X­]­]­h­m­m­x­}­}­ˆ­�­¡­�­°­»­Æ­Ñ­Ö­Ö­à­å­å­ï­ô­ô­þ­®® ®®®® ® ®,®1®1®>®C®C®C®C®C®K®P®P®X®]®]®e®j®j®r®w®w®®„®˜®„®§®¸®½®½®Ä®Ï®ï®ô® +¯¯.¯¯=¯H¯S¯X¯X¯_¯j¯Н�¯¥¯°¯ɯµ¯دã¯î¯ó¯ó¯ú¯°%°*°@°K°d°P°s°~°‰°ްް©°•°¸°ذݰó°þ°±±:±&±I±T±Y±Y±t±`±ƒ±£±¨±¾±ɱâ±α²ñ±² ²$²$²?²+²N²n²s²‰²”²­²™²в¼²ß²ê²ï²ï²þ²³³³³³³³"³"³"³,³.³.³8³?³b³d³d³n³n³n³n³n³p³p³‡³޳™³™³¤³ª³±³¼³dzÒ³̳í³ +´ÿ³"´"´0´*´V´K´n´n´n´w´~´‘´–´¤´·´·´Ö´á´ø´µµµ9µIµ^µpµ€µ€µ¥µ¬µ»µ͵͵ѵÖµݵíµ ¶ ¶¶'¶.¶3¶3¶7¶B¶N¶\¶‰¶’¶£¶±¶ä¶ð¶õ¶ ·#·/·@·E·V·u·£·Ì·Ï·ß·á·á·å·¸¸¸¸#¸T¸w¸w¸w¸z¸£ºZ, NÖNÖ\ÖbÖfÖoÖxÖ~Ö[`BV^†^†t†‚†‰†�†œ†µ†¹†¿†Õ†ò†ô†ô†%‡‡ô†D‡N‡\8 +.Y.YOYÞb|XsŽèŽè¨èÔèÔèóèééééé éé/éHéJéJéJéRéméoéoéyéyé‘éc”"4484B4N4S4c4i4~4’4¢4°4¾4Õ4Ý4ç4ö4þ4 555555'515:5B5E5W5dôÍž6ž6Ç6Ô6×6à6æ6ý67+767l7Œ7‘7–7¡7»7Í7Ú7ð788"84898<8\8|8„8Œ8‘8±8Ñ8Ù8á8ã89 999 9 9+9+97979I9‰9¢9¢9²9ed¤¹ø‹ø‹ŒŒŒ!Œ)Œ7ŒJŒVŒpŒ}Œ}Œ€ŒŽŒžŒ¸Œ¼ŒÄŒf(¸þŸ*Ÿ*µ*º*Î*ý* ++$+0+7+G+e+�+ +®+®+µ+Å+Ñ+á+ê+,,,,-,-,C,C,Y,Y,o,o,…,…,›,›,±,±,È,È,ß,ß,ö,ö, - -$-$-;-;-R-R-i-q-|-�-˜-©-¬-®-Å-Ì-/g¬÷ÞÞøþ #55LSVXduux€–™§ª­´¸ÀÎàóöE h(ÅËŽ€Ž€µ€¢€Ä€Ö€Þ€iCÞOÞOPPP#P+P3P@PFPOPUPZPbP~P„P†PˆP•P•P¢P—P³P¹P»P½PÊPÊPÊPÏPØPàPéPñPóPûPQ QQQ)Q0Q@QKQZQ{Q‚Q�Q–Q§Q«Q³Q³QÇQ×QßQâQHRj8-7O0O0c0g0l0w0‚0…0‰0‘0kˆWõN‡N‡h‡ƒ‡‰‡�‡�‡—‡¼‡Á‡̇ê‡Ô‡ù‡ ˆˆ'ˆ/ˆ9ˆWˆiˆrˆzˆ„ˆŸˆ‰ˆ®ˆÀˆʈÒˆêˆÔˆ‰ùˆ‰0‰:‰B‰B‰K‰S‰i‰‚‰”‰£‰§‰§‰®‰³‰щÓ‰؉ã‰ù‰ù‰ù‰ý‰ Š*Š4Š>ŠGŠhŠrŠ|Š~Š~Š›Š©Š·ŠºŠÓŠ׊òŠöŠ‹‹4‹8‹8‹8‹>‹L‹V‹o‹u‹€‹Œ‹Ž‹–‹œ‹µ‹À‹΋Ø‹ñ‹ô‹ü‹Œ +ŒŒŒ.Œ0Œ<Œ>ŒFŒLŒeŒ}Œ‰ŒžŒ£Œ¸ŒÈŒáŒòŒòŒýŒ� �,�A�F�[�k�„�•�•�›�¦�®�¼�Ã�Õ�leãVßVßpßyߙߙߟߧ߯߷߿ßÅßÒßÒßàßåßåßëßðßðßößûßûßàààà1à7à<à<àEàeàeàeàlànànàuàwàwà}à}à„à†à†àŒàŒà“à•à•à›à›à¢à¢àªà°à¶à¾à¾à¾à¾àÊàÒàÚàâàêàòàúàáá'á1á4á4á>áDáJáJáNáVá]áeámáqáwáá†áŽá–ášá á«á±á¾áÊáÐáØáÜáãáëáóá÷áýáâ âââ â&â1â6âLâ]âbâeâ ãm`�!�!˜!Ÿ!³!Ç!Ì!ê!ï! ""-"/"F"Z"c"e"y"‰"º"n�2Ò””&”7”H”Y”j”{”Ž”–”¤””͔Ӕà”õ”õ”•• •4•O•O•[•c•k•q•†•Ž•’•𕍕®•³•³•ȕݕä•ì•ô•ú•–0–<–@–J–c–i–k–x–z–Œ–Œ–“–›–­–­–Þ–ì–ÿ–— ———!—-—1—=—A—A—W—j—p—t—~—‚—‘—•—¤—¨—»—¿—¿—¿—¿—Ö—ä—ñ—ù—˜ ˜.˜9˜O˜\˜k˜s˜€˜›˜«˜»˜À˜À˜À˜À˜Í˜Ü˜ä˜ê˜ÿ˜™#™4™D™J™J™J™\™b™n™t™�™œ™¬™¸™¾™Ë™Ý™ë™ š™›oÔ¼í(m(m:mKmVmamzmŒm¤m©m¸m¿mÌmÓmámèmêmímòmômúmn.nDn\nanpnwn„n›n¹nÀnÂnÅnÊnín oop$hm?&?&M&a&h&‚&qxKeFQFQnQZQ}Q˜Q„Q§Q¬Q³Q»QÂQÍQØQàQèQóQþQR R,R4RrFƒöqöqrr1rIrSr^r^rcrnrzr…r“r£r³rºrÀrÕrêrêrþrss#s2s?sPsasos}s„sŠsŸs´s´sÈsÕsæsösÿsttt$t5tBtRt´ts8§±ŽOŽO’O—OœO­O»OÄOÉOÎOÐOt88B—0—0«0¯0´0¿0É0Ì0Ð0Ø0u0‚ŠÞMÞMôMNNNN%NvÜtFFhs~‡—©¯µ»ÑÀåòõý=PTZqw‡�™§¬ºÓáêúü/=Ic‚‰“¢¨®´ºÐñ(3BP_l|Š¡­²ÀÜî $*ALY``n}�œ®®¶Ùäw`-A^…^…t…†…�…‘… …¿…Ã…É…ß…ü…þ…þ…/††þ…N†X†xD‡Ôââ â(â3â9â?âCâGâsâsâzâ}â‚â”â˜â¿âÃâÈâÈâÏâÒâ×âãâôâøâ ãã ã!ã3ã7ãSãWã\ã\ãpãsã�ã‹ã’ã¸ãÃãÇãÌãää&ä*ä;äFäJäLäWä[ä[äoäsäuäuä€ä„ä˜äœäœäœä äÂäyˆÕóÆäÆäÚäðäðäðäòäòäùäûäûäåååååå å'å)å)å6å=å?å?åWå\å\ålåz°0XŽZŽZ¦Z®Z¹Z[[øZÞZÇZ#[5[%[U[U[l[`[ž[£[¯[Ä[±[Ó[Ù[à[\ó[ç[\\9\9\@\j\j\j\v\{ÄL¹îúîú ûû"ûHûHûJûWûbûhûyûˆû—û¤û¤ûªû¯û´ûÊûÝûèûìûþû üüüü5üCüCüCüNüiüTüqü„ü†ü¢üŽüªü¸ü¸üºüÖüÖüÝüãüìüóüöüý,ý ý4ý:ýCýCýCýVý[ý[ýcýcýnýƒýŒýŒýŒýŒý¨ý¿ýÅýÊýÊýßýåýêýêýöýþ3þ8þ=þ=þIþfþuþ„þŒþ‘þ—þœþœþ£þªþÍþêþìþ ÿÿÿ$ÿ$ÿ1ÿ:ÿ:ÿXÿnÿyÿ~ÿ‹ÿ–ÿŸÿ§ÿ·ÿÎÿÎÿÞÿÞÿðÿöÿ ((*166CNT]]p}�š¨±¶àéôù05<IPbw~„��–°·¼ÊÚèèîõþþ#&&7?GSpw„†�¡°°°ÚÚÚççü&1?JY``yŒŽ�²´Â××Ýææóù  &8?JOW^inƒ…Ÿ´´´¶½ÃÔâôôú +3<<BKKjjwzƒŒ”Ÿ±·ÂÂÏÒÛäì÷ '*3<>`sˆŽ™«±¹¹¹¹Ä= +|”�¾33“3—3 3£3¬3µ3Ç3Ç3ó3÷3ü3ÿ344 4"4*4-4:4B4J4R4Y4i4i4u4}`2vOvOžOŠO­OÒO¾OáOæOíOõOüOPPP0P%PHPPP~À-°f°fÎfÞfèfèfòfòfüfggg g)g6g6gDgXgXg|g‰g‰g™g¦g¦gÉgÖgÖgëg h"hDhMhZhZh}h‡h‡hºhíhóhóhóhi¸ºäȌȌàŒâŒîŒòŒÿŒ����"�&�.�9�M�Y�[�[�d�f�f�o�q�q�z�|�|�…�…�Ž�”�—�¡�²�¸�Ä�Ä�,Ž€œøÆ&Æ&ä&õ& ''0'%'H'h'T'w'ˆ'�'®'š'Æ'ã'ê'(û'(>(*(M(^(t(`(Œ(™(™(±(±(»(�œX{V2V2b2r2}2§2×2è2ù2 333-343B3Z3i3v3y3’3•3š3±3Á3Ñ3Õ3Ü34‚x± °°°%°,°K°Z°i°x°‡°–° ° °¥°¬°¿°Î°Ó°î°±±±0±4±B±I±N±N±U±g±p±r±€±’±’±’±¤±¯±Á±Ì±Ù±Þ±î±ó±²²²!²&²6²;²K²M²]²_²o²q²‚²‹²‹²�²�²¤²´²´²Ï²á²ó²³³³³³+³ƒ\åø0Ž0ŽKŽRŽWŽeŽzŽ�Ž‹Ž™ŽœŽžŽ¨ŽºŽºŽÁŽ÷Ž„0ÎÖ&&>~rHF’š…`,^„^„t„†„�„—„¦„¿„ÄɄ߄ü„þ„þ„/……þ„N…X…†L4CÎ0Î0Ü0î0ô0ü0111/15181t1‡(–œO3O3]3l3p3s3y3ˆ\DWv1v1„1–1œ1¤1¶1¼1Å1×1Ý1æ1ø1þ12O2‰, öÕöÕÖ ÖÖÖÖŠ„ Ž Ž ¬ ¾ Å Ì Û à )>+M\^€€€�«¡ÃÍ‹`>~f~f›f£fªfÏfÝfßfífúfg g"g1gh>hVhVh{h{h€h€h‰h•h¢h®hÃhÚhéhôhii)iAibibikipipipipi€i‰i‘i–i¤i²iÂiÇiÇiÕiÕiÚiÚiäiïijjj#j.j8jÙAÙFÙUÙ[ÙcÙcÙjÙmÙrÙ�Ù‡Ù�Ù�Ù�٠٥ٴٿÙÇÙÇÙÒÙæÙíÙôÙ Ú�83=ÖÖÖÖßÖßÖíÖñÖÿÖ××�8>H××××%×)×0×3×8בD*Ö/Ö/ð/0 00 080A0E0W0]0|0’Ä{¨VþVþ€þƒþŠþ�þ•þ—þœþ¢þ¢þ´þ»þÑþäþóþùþûþÿÿÿÿ&ÿ(ÿ/ÿ5ÿ?ÿ?ÿ?ÿVÿhÿoÿ~ÿ€ÿ–ÿ©ÿ©ÿ»ÿ“0+3~0~0‡0­0¾0Ä0Ä0Ì0”„\yfñfñxñ�ñ—ñ ñ¢ñ©ñ¹ñÄñÆñÐñÐñÙñêñíñíñòòò7ò>òBòQòdò·ò•  +//'/D/I/–hö ÖcÖcìc÷cddd$d5d>dOdUdadxdxdŠd›d¨d±dÂdÈde—„a~JJNJTJ]JiJqJxJ|J…J…JŠJ‘J©JÓJØJüJKKK6KZKyK‹K˜lò ~~–¨¯¶ØÚüþ3 BBT[}}…™ y}€Š€Š‰Š•ŠšŠš(A>ç>ç`çhçnçvçxçxç‰ç‰ç‰ç‘ç™ç«çºç«çÏçÑçÑçëçíçíçøçýçèèèè1è3è@èBèOèQè^èfènèuè„è‘è“è¤è±è±è±èºèÌèßèåèíèïèüèüèéééé&é>éCéCéCéQéWé\édéoé�éŒé‘é‘é˜éœéªé®é·é¾éÜéééðéùéêêêêê"ê-ê;ê;ê[ê[ê[êbêpêê’ê¥ê§ê§ê§êºêºêÁêÈêÍêÓêåêïê ë5ë;ë;ëOëTëxëë‹ë©ë¼ëÇëÎëÒëÒëÒëÒëÝëçëõëì"ì?ìIìIìWìuì¥ì¸ìÉìàìóìøìøìøìí íí(í-í-í-í?íiíoíoíoízí„í�í›í�í�í�í¢í®í®íøí›H%¯/¯/½/Ä/Ï/Ü/ç/ï/ï/0000œ0 NN-NNÁ@ÁOÁQÁ`ÁgÁkÁÁ‰Á—ÁžÁ¢Á²Á½ÁÂÁàÁêÁøÁÿÁ ÂÂ"Â&Â0ÂDÂLÂWÂ[Â[Â[ÂfÂmÂ{•¥°ÂÅÂÊÂÕÂåÂñÂÃÃÃ)Ã1Ã<ÃAÃIÃTÃ`ÃdÃoÃtÈÃ�ÛÛÛÛïÿÃÔÃáÃåÃùà +Ä Ä,Ä0Ä>ÄSÄcÄzēĬĮĹÄÁÄÁÄÊÄçÄøÄÅ(Å6ÅAÅMÅUÅWÅbÅjÅjÅjŇŕţźÅÑÅàÅíÅ ÆÆÆ$Æ8ÆRÆRÆVÆlÆ{ƖơƸÆÀÆÀÆåÆåÆøÆÇÇ3ÇMÇ\ÇiljǗǭÇÉÇÙÇñÇñÇ È ÈÈ0ÈHÈQÈQÈQÈ]ÈnȆÈ�È�ȖȟȥȱÈɬ0ùAøŽøŽ�)�4�>�D�N�T�^�l�v�ˆ�’�˜�¢�¨�²�¹�Å�Ë�Ô�ÿ�����/�9�K�U�j�j�m�w�Œ�‘�¡�¬�±�Å�Ø�â�÷�‘‘‘$‘5‘E‘V‘c‘c‘p‘p‘x‘†‘Í‘­l£:EE/EGEWEwE‰E¡E¼E¼EæEîEòEõEùEþEF FFF F%F)F.F8FIFPFWFYF]FfFpFsF~FŠF�FžF©F¯F¶F¿FØFéFòFûFGGG%G6GGGSGaGcGjGqGvGzG‡GŽG±G¿GÉGÓGÜGõGHHH H)H/H3H8HIFINIVIcIkIŠI}IŸI¨IÃI×IêIñIúIJ +JJJ%J>J.JNJRJ¬J®  x‡x‡†‡¨‡®‡¯¸�·§'§'µ'º'õ'÷',(W(W(g(l(l(€(…(…(¡(¦(¦(Æ(Ë(Ë(ß(ä(ä()))3)Y)y)‹)�)¯)¿)¿)¿)¿)Æ)Ÿ*°$bg÷%÷%û%&%&?&±ƒ.À.À@ÀOÀOÀRÀ[ÀgÀgÀ}À“À¥À¬À°ÀÀÀàÀòÀøÀÁÁÁÁ#Á9Á=ÁZÁxÁŠÁ�ÁŸÁ±Á½Á¿ÁËÁÓÁ×ÁÝÁæÁæÁæÁøÁ  Â&Â.ÂDÂKÂKÂKÂY€‰‘£«´¿ÂÅÂÛÂâÂêÂñÂÃÃÃÃÃÃ,ÃSÃ`ÃiÃqÃËÔÔßæôøÃÄÃÜÃäÃêÃùÃÄÄÄÄÄ%Ä-Ä3ÄPÄYÄaÄgÄmÄmÄmÄtÄ{ĊĒĘĞĞĠĪIJxþÖþÖ ×!×(×3×I×s×�×–×®×´×Ã×Ì×Ô×Ü×Þ×ä×ê×ù×ØØ ØØ³¤Ôy~b~b¡b©b¹bÁbåbübcccc c+c3c3c;ckcªc…cÍcÒcÚcêcìcd d)d0d8d@dLdTd\dodwd|d†d¦d­d¯d¹dÈdèdïdñdeeee!e(eAeGeOeOeTeXedemeve‚e¥e³eáeäef f!f;f?f^flfxf¦f¬f®fÜfßfßfûfgg6g>gBgMgUgeggg•g˜g g°g²gàgægægðgðgûg,h4h4h4h4h=hIh_hxh‹h’hžh¥h¥h¸h¼h¼h¼hÃhÈhÛhâhîhõhõhiii)i0iQLQ]QiQpQ~Q�Q£Q©Q®Q®Q³QÉQÕQÝQíQ÷QRRRR R R*R8RDR[RqRˆRŽR�R§R¬R¬RÌRÌRÞRäRíRóRüR +SSS&S,S.S9SKSaSaSuS…S—SœS¨S®S±SÈSÊSÍSÝSçSêSêSùST"T'T3T9TYDYDYRYXY^YhYrY€Y•Y˜YšY¤Y³Y¸Y¸Y¸YÀYÅYÎYÓYÓYÝYåYêYêYêYðYúYZZZZ Z)Z/Z4Z4Z=ZKZTZbZgZgZpZ~ZŠZ›Z¨Z¯Z·ZÁZÏZÏZÔZÔZßZßZßZãZèZèZïZóZøZ[[[[ [([-[3[3[;[D[R[][b[h[p[u[u[u[u[u[u[u[u[u[u[Ž[”[�[£[«[°[µ[¾[É[Ò[Ú[ß[ß[ß[å[í[ò[ò[ö[û[û[\\\'\-\-\6\L\L\R\[\q\q\z\|\‚\‹\¡\¡\ª\ª\ª\³\¸\¸\À\Å\Å\â\ð\ü\]]]]]]]2];]A]S]]]]]e]e]m]o]o]ˆ]’]›]�]�]�]£]§]©]©]©]©]®]´]º]¾]7a¸Ìz©–i–i¸iÃiÙiõijj,j7jMj9j\jdjdjsjsj{j‡j�j²jÁjÌjßjåjåjåjêjïjþj k#k%k*k9kDkQk[k[kik¹”*K8¤8¤P¤W¤^¤a¤j¤m¤p¤t¤y¤›¤ˆ¤«¤³¤»¤¾¤À¤Ð¤Ù¤â¤è¤ë¤ü¤¥+¥6¥h¥ºà.¢&A&ADAOA`AcAgApAwA…A”AªA»AÌAÞAðAÿAB B.B.BDMDMDQDQDYDrDvD{DE»,ÎÕÎÕÜÕãÕëÕðÕöÕ¼l3JVPVPlP†PrP•PºP¦PÉPÎPÕPÕPÛPÞPâPêPQ Q#QQ;QEQ½PQa%%%+%2%B%S%X%u%{%‚%‰%—%£%µ%ñ%¾D+–ä–äªä¸ä¾äáäçäíäååå$å$å,å¿ô#œ^5^5f5u5y5†5“5§5¶5Ó5à5ò56<6J6f6x6�6§6²6Ó6ñ677&7A7Z7Z7u7ž7¸7Ó7å7ô7888!828E8U8b8n8}8š8š8¢8¢8¢8³8À8Ç8æ8ï899 99/9G9P9`9h9m9‘9¡9±9¼9Ð9Õ9Ý9:::C:]:]:u:„:Œ:›:¤:¬:¾:à:è:ð:û:ý: ;%;=;U;m;;–;Ÿ;¨;º;È;Ì;Ð;À °‡°‡¹‡Ø‡Ý‡Á\ˆ[vÌvÌ�̴̗̤̯̺ÌÌÌÒÌêÌðÌÍ$Í/Í5ÍWÍWÍgÍ|Í~Í�Í�Í•Í�ͥͳ͹ÍÂÍÎÍÎÍÐÍâÍèÍíÍíÍÎÎ"Î"Î5ÎBÎGÎGÎ^ÎgÎvΌΗΥΰÎÀÎÍÎßÎåÎïÎûÎÏ +Ï +ÏÏÏÏ Ï$Ï$Ï,Ï1Ï1Ï9Ï>Ï>ÏDÏIÏIÏPÏUÏUÏ\ÏaÏaÏlÏqÏqÏ|Ï�Ï�όϑϑϜϜϷϾÏÄÏÇÏÒÏÕÏéÏöÏÐ ÐÐ!Ð#Ð)Ð=ÐJÐYÐYÐYÐYÐcÐ}ВФеоÐÏÐÕÐÚÐåÐ÷ÐÑÑÑ.Ñ9ÑCÑSÑbÑhÑsÑyÑŽÑ”Ñ¥Ñ°Ñ¶ÑÆÑÆÑÖÑéÑõÑýÑ ÒÒÒ+Ò6Ò;ÒXÒmÒ{Ò‹Ò—Ò©Ò´ÒÃÒÅÒ×ÒßÒäÒëÒïÒýÒÓ ÓÓÓ(Ó.Ó0Ó=ÓJÓTÓmÓ{Ó{Ó�ÓˆÓÌÕÂD#°Ø«Ø«÷«¬!¬!¬/¬B¬\¬_¬h¬„¬„¬„¬Œ¬Ž¬Ž¬–¬˜¬˜¬ ¬¢¬¢¬ª¬ª¬³¬¹¬¾¬¾¬Ç¬Ö¬Ú¬ß¬å¬ê¬ê¬ê¬ê¬ò¬û¬­­­ ­­1­P­S­i­ˆ­ˆ­ˆ­�­’­’­’­š­œ­œ­œ­¤­¦­¦­¦­®­°­°­»­»­Á­Æ­Æ­Æ­Æ­Í­Ø­ê­ø­®®®® ® ®'®+®1®I®W®j®w® ®£®¬®³®Ç®Ï®Ø®ã®ã®î®ô®ù®ù®ù®¯¯¯#¯)¯4¯K¯b¯n¯t¯y¯y¯€¯‹¯‹¯�¯¢¯¨¯¨¯¨¯¨¯°Ãd*,C,CNCXC[C[CeCxCzC‡C‰C”C¨C°CÀCÅCËCÓCÖCèCÄLWfG1G1[1_1d1o1o1y111ƒ1‹1Å\CVß0ß0õ0õ0ù0þ01111#1)1)17191C1Æ8(2¦Ö¦Ö¯Ö¯Ö½ÖÁÖÈÖËÖÐÖǨYv\v\Ž\–\¡\´\¨\æ\J]0]%] ]ô\P]e]U]…]Š]§]¬]Á]®]Ð]Ö]Ö]Ý]^2^^I^g^g^g^s^ÈlF]þ*þ*+A+#+P+p+Œ+‚+¤+¼+©+Ë+ä+,,/,/,6,X,X,b,É4Š“NêNêbêgêmêqêuê”êœêÊxÌæÞ€Þ€ �ö€�"�)�?�D�I�M�O�U�[�q�^�€�™�¡�³�Ö�Ì�å�ñ�Ë”"¨ª¨ª¶ªÈªÌªÔªÜªçªòªúª«««+«2«9«D«O«Q«\«g«i«u«€«‹«”«œ«œ« «×«Ì€ÚöO5O5m5q5u5}5‹5Ž5‘5§5­5¯5Á5Å5É5Ñ5Ù5å5ú5 6666&6;6ÍÞ`æCæCD!DFD(D`D–D›D›DžD¨DÀDÏDÑDÙDûDE.E;EVEjEoE‰E“E•EšE±EØEêE÷EF2F(FLFRFRF[F{F‡FŠFŒF§F‘F¶F¶FÈFÈFÖFàF GG%G%G*G-GCGOGdGˆG’G˜G¨GÐG¿GßGáGóGHHH0H6HEHmH\H|H~H�HšH®H¸HÁHØHâHäHøHII!I'I'I'I0IPIxIgI‡IŒIžI¦IÑIÇIæIæIæI J JJÎ`8ÌÞ/Þ/00$0-080?0W0\0_0b0k0y0ƒ0ˆ0°0µ0Â0î0ó01 1%141`1h1m1‚1®1¶1»1»1Î1á1õ1ù12,21212]2]2]2]2]2q2‰2Ž2‘2”2”2Á2Æ2Ï2Ü2ä2ÿ23$3/3K3K3K3X3o3q3q3q3~3•3—3—3¤3»3»3Ë3Ð3÷34 4<4<4<4I4`4b4b4b4o4†4ˆ4ˆ4•4¬4¬4¼4Ä4É4é455.5.5.5;5R5T5T5a5x5x5Œ5Ž5œ5¾5Ü5á5ï5ý56 6 6 6&6.60606X6ž6Ϥ%J¶æ¶æÐæüæüæç+ç0ç0ç?çQçkçsçzççšç¢ç¢ç¢ç¤ç¤ç¤ç¤çÀçÀçÀçÀç×çÙçÙçÙçÙçôçÿç4èÐÐçö�ö� ‚‚‚‚)‚.‚3‚>‚C‚C‚C‚x‚e‚‡‚®‚®‚Ç‚à‚ù‚ƒƒƒ0ƒIƒbƒ{ƒ€ƒ€ƒ™ƒ²ƒ˃äƒæƒæƒÿƒ„1„J„J„J„\„Ñ0�‰îéîéüéêê%êFêFêLêÒ<:E?8?8H8S8a8m8y8‚8‹8”8š8Ÿ8ÓluŒ×&×&å&ï&ö& ' ''' '*'8'U'W'g'g'l'n'u'§'ÔÈŸÍÆrÆrÚrsùrår$sVsujujujujuruÕL^mf,f,„,–,�,¿,¿,Ñ,Þ,î,ä,--ÖÈg•�1�1³1·1Ö1ø12 22$212:2:2?2I2a2l2|2ˆ2�2š2«2­2¾2À2Â2Â2Â2Ê2Ê2Ô2Ô2Ü2ä2ì2ô2ø23O3×  ‡ ‡.‡E‡K‡Ø`FZŸ8Ÿ8¯8¶8¸8½8Ì8Ò8ç8ç8õ8õ89 +9 99%9(909Ù<öÖ�Ö�ß�ê�õ�Ž ŽŽ3Ž>ŽNŽÚ  1ee.e@eFeRe]ekeweŽe™e©e»eÁeÇeÍeàeæeïeõef ff f.f;fxfÛ, N/N/\/m/†/š/�/£/Ü4à‡à‡î‡ø‡ˆˆˆˆˆ ˆÝÄMzüüJüMüRü_üdüvüxü|ü€üƒü–ü¯üÕüÞüéüðü ý/ý4ýMýsýxýý˜ý¾ýÀýÙýÿýÿýÿýþ1þ@þRþބ¶t¶tÔt×tÝtñtùt +uuu"u"u/u8u>uNu\u^u}u‘u˜u¤u´u´uÂuÕuàuäuõuõuõuúuúuvv(v.v3vGvMvUvgvmvov~v‹v‘v—vœv¢v¨v¯v»vÂvÄvÉvÑvÓvØvävævëvóvõvúvww wwww w w w0w0w0wGwMwSw^wcwkw„wŠw•w™wŸwªwÃwÎwÙwßwìwñwöwöw xxxT>T\TjT�T†T«T±T¶T¼TÊTÑTàTåTñTUU!U,U?UFU`U}U‰U¤U¼UØUáUðUøUVVV#V1VQVVV^VwV‰V™VŸVªV³V¹VÿVéVÚVWJW4W%WZW]W‚WXà<+6ìCìC DDD.DGDODiDuDá„ |F F h s z ‚ … … •     £ ª ± · ½ à Ê Ð á á ã ì ø þ # ' * : B G G N W h n w ‚ “ “ œ ¡ « ² ¹ Á Ç É × î ñ ! !!!!! !2!;!L!m!~!–!�!§!¯!¶!¶!¿!Æ!Ò!â!í!í!í!""%"("ã"â„97737B7I7c7�7¦7·7À7Î7à7ù7ù7 8%8-808<8ãX{ÍISfqƒ‘—¨¯·ÍÕèý )9BHMTZ`fq|† ¨Â×äçïó#>[_ho�‰�”�Ÿ±ÈÖÜàâïïïñ ä  +P‡P‡Y‡m‡r‡å¤ŸÄö~ö~*/58<<_d‘} ¹¥ÈÞÊíõú€€€ €"€€1€1€1€L€{€‡€æ˜Íï'"61@OO^^mm||‹‹š®©¸¸ÇÖåPçxÇá¶a¶aÔaæaìaøabb!b'b2bBbNbWb]bcbnb|b‰b•b£b²b²bâbèd”©žêžê¢êµêµêÏêÖêâêâêùêùêëë'ë'ë>ë>ëUëWëWë[ëéÌÂñÎÎð÷*5IMRVX^p|‘“¬»¿¿¿Òççóù#24MggyêP7G|D|D’DžD¦DªD»DÉDÏDÛDãDîDôD÷DEë ®-Ž<Ž<¨<³<·<À<Ç<Î<ä<õ<==*=9=H=Y=h=h=o=s=|=‰=�=™= =¤=Ä=Ä=Ä=Ä=Ä=Ð=Ô=×=ß=í=õ=> +>>#>.>3>3>@>F>U>l>n>y>†>‘>”>š>–>®>Å>Ç>Õ>×>â>è>è>ð>ð>? ? ? ? ?$?$?NaNnNtNzN}NžNò8 ///$///7/>/D/J/J/P/ó ¦/¦/°/¸/½/ôÎPvuvu”u¤u¯uÅuâuñuvCvIvOvWvYvavvvyv„v�v¦vÃvÒvöv$w*w0w8w=wEwZw]whwtwyww…w�w•w�w­wÅwÓwxx xx$xJxxx~xƒxƒx”xŸxªxÇxßxëxóxyyyy0y2yOygysy{y‰y‰yŽy¡y®y¸yÏyæyÿyzz@zWznz|z~z•z¬z¬zµzÁz×zðz{{!{%{%{%{,{1{D{O{i{k{p{ƒ{Ž{›{¥{¥{·{õ˜k ¬9¬9Â9Î9Î9ä9ï9ñ9::::":&:*:-:-:6:::P:P:†:’:¤:´:Ë:Ð:Ó:Ø:Ø:Ø:ô:û:;;;;;8;D;L;Q;Q;m;z;‚;‡;‡;£;¯;¸;À;È;Ô;ê;õ;<<*<2<7<7<S<m<w<ƒ<‹<�<�<¯<»<Í<Ò<î<ú< ===*=/=/=/=/=2=7=7=7=V=b=t=v=y=~=~=~=ˆ=�=—=Ÿ=¨=³=¹=Æ=Ô=Ô=Þ=ç=ï=$>*>1>@>Z>_>_>r>z>z>|>|>|>�>�>ˆ>Ž>’>™>�>�>�>�>¬>¬>Ñ>Ú>Ú>Þ>ùBö(üBüB +CC!C'C÷�ªÊnknkŒk”k k¶kËkÙkäkókùkùkùkþklll5l7l*`*u*b*„*�*¯*È*È*Ï*ñ*ñ*û*ù8fp–L–L®L½LÑLàLæLìLïLMú0�—H‹H‹\‹h‹v‹y‹‘‹”‹œ‹û0S[n×nׂ׊חס״×üP>NȈȈԈèˆëˆÿˆ‰ ‰‰ ‰'‰*‰0‰ýT•¦žNžN¸NËNÎNØNåNúNüNOO,O,O2O5O‰Oþ<˜£ ‹ ‹´‹»‹Ç‹Ó‹ã‹è‹ë‹ï‹÷‹ÿ 26.å.å<åHåH!/ZZ2Z>ZTZ@ZcZeZlZwZƒZ‹Z DƒNRNRrRyR~R†R R©R«R¸R¸RºRÔRÚRÜRÞRëRëRëRëRïRþRSSS S'S-S/SKSOSaStSzSŽS“S S S´S»SÂSËSÙSâST TTTTT&T)T9Tläûãã"ã8ãFãQãUã\ã`ãiãxãzãzãŽã�ã™ãŸãŸãŸãŸã§ã´KtEE6EGELESE]E]EeExE|E�E–E˜E›EŸE¦EºE¾EÆEÒEÙEÝEåEçEïEýEFF +F#F+F3FAFEFSF !E6p6pFpRp^pnp†pŒpšp«p³pºpÓpqq'q4qDqJqLq]qq†qŒqšq¢q¸qÃqÉqÏqòqôB»ii"i%i,i7iFiHiSibibioi}i€i‚i‚i‡iŒi•i i¦i¯iÂiÇiÜiçiñiñijj4jHj_jejjjqjwj~jƒjƒj‰j�j”j”j§jµjÍjÓjØjìjöjýjýjk5k;k@k@kkkpkpk›kÂkÇkÇkÇkÊkÑk×kÞkãkãkékïkôkôk l l%lHlNl^ljlpl~l…l‡l›l¡l¨l¨lªlªlªl¯lµlºl¾lÀlÃlÎlÝlàlâlælælëlëlùl#m˜}Ÿæ"æ"#####)#9#A#I#N#Y#c#i#t#„#Œ#œ#£#«#³#»#Ã#È#Ó#á#á#÷# B†^<^<v<}<�<¸<Ã<Ð<Þ<Ò<====*=d=f=“=›=›=Ð=è=Õ= >÷=>>->B>D>O>W>W>x>}>†>’>š>¸>¥>í>Ó>Ç>ü>??9?Q?>?s?`?”?‚?£?µ?«?Ì?Ì?Ì?õ?õ?@Ð1ББä‘ä‘ +’ +’*’.’3’3’3’?’D’T’Y’Y’Y’^’^’w’~’�’›’¤’´’½’¿’¿’¿’¿’Æ’Í’Ô’Û’â’é’ð’÷’÷’ù’ù’ÿ’“ ” D žožo¬o¶oÀoÐoÕoÞoêoìoþoþop0p \ No newline at end of file diff --git a/Compiler/CompilerA.HPP b/Compiler/CompilerA.HPP index feeca84..521e4ef 100644 --- a/Compiler/CompilerA.HPP +++ b/Compiler/CompilerA.HPP @@ -237,54 +237,54 @@ class CIntermediateStruct #define IC_ATAN 0xB9 #define IC_NUM_ENTRIES 0xBA -#define KW_INCLUDE 0 -#define KW_DEFINE 1 -#define KW_UNION 2 -#define KW_CATCH 3 -#define KW_CLASS 4 -#define KW_TRY 5 -#define KW_IF 6 -#define KW_ELSE 7 -#define KW_FOR 8 -#define KW_WHILE 9 -#define KW_EXTERN 10 -#define KW__EXTERN 11 -#define KW_RETURN 12 -#define KW_SIZEOF 13 -#define KW__INTERN 14 -#define KW_DO 15 -#define KW_ASM 16 -#define KW_GOTO 17 -#define KW_EXE 18 -#define KW_BREAK 19 -#define KW_SWITCH 20 -#define KW_SUB_SWITCH_START 21 -#define KW_SUB_SWITCH_END 22 -#define KW_CASE 23 -#define KW_DFT 24 -#define KW_PUBLIC 25 -#define KW_OFFSET 26 -#define KW_IMPORT 27 -#define KW__IMPORT 28 -#define KW_IFDEF 29 -#define KW_IFNDEF 30 -#define KW_IFAOT 31 -#define KW_IFJIT 32 -#define KW_ENDIF 33 -#define KW_ASSERT 34 -#define KW_REG 35 -#define KW_NOREG 36 -#define KW_LASTCLASS 37 -#define KW_NOUNUSEDWARN 38 -#define KW_HELP_INDEX 39 -#define KW_HELP_FILE 40 -#define KW_STATIC 41 -#define KW_LOCK 42 -#define KW_DEFINED 43 -#define KW_INTERRUPT 44 -#define KW_HASERRCODE 45 -#define KW_ARGPOP 46 -#define KW_NOARGPOP 47 +#define KW_INCLUDE 0 +#define KW_DEFINE 1 +#define KW_UNION 2 +#define KW_CATCH 3 +#define KW_CLASS 4 +#define KW_TRY 5 +#define KW_IF 6 +#define KW_ELSE 7 +#define KW_FOR 8 +#define KW_WHILE 9 +#define KW_EXTERN 10 +#define KW__EXTERN 11 +#define KW_RETURN 12 +#define KW_SIZEOF 13 +#define KW__INTERN 14 +#define KW_DO 15 +#define KW_ASM 16 +#define KW_GOTO 17 +#define KW_EXE 18 +#define KW_BREAK 19 +#define KW_SWITCH 20 +#define KW_START 21 +#define KW_END 22 +#define KW_CASE 23 +#define KW_DFT 24 +#define KW_PUBLIC 25 +#define KW_OFFSET 26 +#define KW_IMPORT 27 +#define KW__IMPORT 28 +#define KW_IFDEF 29 +#define KW_IFNDEF 30 +#define KW_IFAOT 31 +#define KW_IFJIT 32 +#define KW_ENDIF 33 +#define KW_ASSERT 34 +#define KW_REG 35 +#define KW_NOREG 36 +#define KW_LASTCLASS 37 +#define KW_NO_WARN 38 +#define KW_HELP_INDEX 39 +#define KW_HELP_FILE 40 +#define KW_STATIC 41 +#define KW_LOCK 42 +#define KW_DEFINED 43 +#define KW_INTERRUPT 44 +#define KW_HASERRCODE 45 +#define KW_ARGPOP 46 +#define KW_NOARGPOP 47 #define AKW_ALIGN 64 #define AKW_MODULE_ORG 65 diff --git a/Compiler/CompilerB.HPP b/Compiler/CompilerB.HPP index 6644d0c..b91982a 100644 --- a/Compiler/CompilerB.HPP +++ b/Compiler/CompilerB.HPP @@ -1,12 +1,12 @@ #help_index "Compiler" extern U0 CInit(Bool first); -public extern I64 ExeFile(U8 *name,Bool just_load=FALSE); -public extern I64 ExeFile2(U8 *name,Bool just_load=FALSE); +public extern I64 ExeFile(U8 *name,I64 ccf_flags=0); +public extern I64 ExeFile2(U8 *name,I64 ccf_flags=0); public extern I64 ExePrint(U8 *fmt,...); public extern I64 ExePrint2(U8 *fmt,...); -public extern I64 ExePutS(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE, +public extern I64 ExePutS(U8 *buf,U8 *filename=NULL,I64 ccf_flags=0, CLexHashTableContext *htc=NULL); -public extern I64 ExePutS2(U8 *buf,U8 *filename=NULL,Bool just_load=FALSE); +public extern I64 ExePutS2(U8 *buf,U8 *filename=NULL,I64 ccf_flags=0); public extern CCmpGlbls cmp; #help_index "Compiler/Directive" diff --git a/Compiler/OpCodes.TXT b/Compiler/OpCodes.TXT index 55476a0..e47d4d7 100644 --- a/Compiler/OpCodes.TXT +++ b/Compiler/OpCodes.TXT @@ -158,8 +158,8 @@ KEYWORD goto 17; KEYWORD exe 18; KEYWORD break 19; KEYWORD switch 20; -KEYWORD sub_switch_start 21; -KEYWORD sub_switch_end 22; +KEYWORD start 21; +KEYWORD end 22; KEYWORD case 23; KEYWORD default 24; KEYWORD public 25; @@ -175,7 +175,7 @@ KEYWORD assert 34; KEYWORD reg 35; KEYWORD noreg 36; KEYWORD lastclass 37; -KEYWORD nounusedwarn 38; +KEYWORD no_warn 38; KEYWORD help_index 39; KEYWORD help_file 40; KEYWORD static 41; diff --git a/Compiler/OptLib.CPP b/Compiler/OptLib.CPP index e1cb928..2220d22 100644 --- a/Compiler/OptLib.CPP +++ b/Compiler/OptLib.CPP @@ -260,7 +260,7 @@ CIntermediateCode *OptBrZero(CCmpCtrl *cc,CIntermediateCode *tempi) case IC_CALL_END: tempii2=OptLag(tempii); switch (tempii2->ic_code) { - sub_switch_start: + start: case IC_CARRY: tempii2->ic_code=IC_BR_NOT_CARRY; break; @@ -282,7 +282,7 @@ CIntermediateCode *OptBrZero(CCmpCtrl *cc,CIntermediateCode *tempi) case IC_BTC: tempii2->ic_code=IC_BR_NOT_BTC; break; - sub_switch_end: + end: tempii2->ic_data=tempi->ic_data; tempii->ic_code=IC_CALL_END2; OptSetNOP1(tempi); @@ -387,7 +387,7 @@ CIntermediateCode *OptBrNotZero(CCmpCtrl *cc,CIntermediateCode *tempi) case IC_CALL_END: tempii2=OptLag(tempii); switch (tempii2->ic_code) { - sub_switch_start: + start: case IC_CARRY: tempii2->ic_code=IC_BR_CARRY; break; @@ -409,7 +409,7 @@ CIntermediateCode *OptBrNotZero(CCmpCtrl *cc,CIntermediateCode *tempi) case IC_BTC: tempii2->ic_code=IC_BR_BTC; break; - sub_switch_end: + end: tempii2->ic_data=tempi->ic_data; tempii->ic_code=IC_CALL_END2; OptSetNOP1(tempi); @@ -525,6 +525,13 @@ I64 CmpRawTypePointed(CHashClass *tempc) return 0; } +U0 CmpMinTypePointed(CIntermediateCode *tempi,I64 pt1) +{ + I64 pt; + if ((pt=tempi->a1_type_pointed_to) && pt!=RT_F64 && 0a1_type_pointed_to=pt; +} + U0 CmpF1PushPop(CIntermediateCode *tempi,CIntermediateCode *tempi2) { if (intermediate_code_table[tempi2->ic_code].fpop|| diff --git a/Compiler/OptPass012.CPP b/Compiler/OptPass012.CPP index 088ab24..9cf4fe4 100644 --- a/Compiler/OptPass012.CPP +++ b/Compiler/OptPass012.CPP @@ -43,7 +43,8 @@ args. tempc=tempi->ic_class; tempi->ic_class2=tempc; tempi_push=tempi; - MemSet(&tempi->a1,0,sizeof(CICArg)*4); + MemSet(&tempi->a1,0,3*sizeof(CICArg)); + tempi->a1_type_pointed_to=0; switch [intermediate_code_table[code].arg_cnt] { case IS_V_ARG: ps->ptr-=tempi->ic_data>>2; @@ -158,7 +159,7 @@ args. } tempi_push->ic_class2=cmp.internal_types[RT_I64]; break; - sub_switch_start: + start: case IC_NOT: if (tempc->raw_type==RT_F64) { if (tempi1->ic_code==IC_IMM_F64) { @@ -263,7 +264,7 @@ args. OptSetNOP1(tempi2); } break; - sub_switch_end: + end: if (!tempi_push->ic_class->ptr_stars_cnt) { if (tempi_push->ic_class->raw_type==RT_F64) tempi_push->ic_class2=cmp.internal_types[RT_F64]; @@ -303,7 +304,7 @@ args. tempi2->ic_flags|=ICF_R_TO_F64; tempi_push->ic_class2=cmp.internal_types[RT_F64]; break; - sub_switch_start: + start: case IC_MUL: if (i=OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { if (i==FBO1_INT) { @@ -710,7 +711,7 @@ args. } tempi->ic_class=cmp.internal_types[RT_I64]; break; - sub_switch_end: + end: if (!tempi_push->ic_class->ptr_stars_cnt) { if (tempi_push->ic_class->raw_type==RT_F64) tempi_push->ic_class2=cmp.internal_types[RT_F64]; @@ -720,7 +721,7 @@ args. tempi_push->ic_class2=cmp.internal_types[RT_I64]; } break; - sub_switch_start: + start: case IC_EQU_EQU: if (OptFixupBinaryOp1(tempi,tempi1,tempi2,&is_unsigned)) { tempi->ic_data=tempi1->ic_data==tempi2->ic_data; @@ -805,7 +806,7 @@ args. tempi->ic_flags|=ICF_USE_F64; } break; - sub_switch_end: + end: tempi->ic_flags&=~ICF_R_TO_INT; if (!tempi_push->ic_class->ptr_stars_cnt) { if (tempi_push->ic_class->raw_type==RT_F64) @@ -820,10 +821,10 @@ args. else tempi->ic_class=cmp.internal_types[RT_I64]; break; - sub_switch_start: + start: if (cc->pass==2 && (!tempc->size||!tempc2->size)) LexWarn(cc,"Assign U0 "); - sub_switch_start: + start: case IC_MUL_EQU: if (tempi2->ic_code==IC_IMM_I64 && tempc->raw_type!=RT_F64 && tempc2->raw_type!=RT_F64) { @@ -854,7 +855,7 @@ args. case IC_ADD_EQU: case IC_SUB_EQU: break; - sub_switch_end: + end: if (tempi2->ic_class->raw_type==RT_F64) tempi->ic_flags=tempi->ic_flags|ICF_USE_F64; if (tempc->raw_type==RT_F64) { @@ -892,7 +893,7 @@ args. if (tempc2->raw_type==RT_F64) tempi2->ic_flags|=ICF_R_TO_INT; break; - sub_switch_end: + end: break; case IC_ENTER: case IC_LEAVE: @@ -1257,7 +1258,7 @@ args. LexExcept(cc,"Compiler Optimization Error at "); } if (intermediate_code_table[code].arg_cnt==IS_2_ARG) { - if (tempi_push->ic_precedence.u8[0]&~ASSOC_MASK==PREC_ASSIGN) + if (tempi_push->ic_precedence&~ASSOC_MASK==PREC_ASSIGN) OptFixSizeOf(tempi2,tempi_push,tempi1->ic_class-1); else { OptFixSizeOf(tempi1,tempi_push,tempi2->ic_class); diff --git a/Compiler/OptPass3.CPP b/Compiler/OptPass3.CPP index f89fb5d..c8b228c 100644 --- a/Compiler/OptPass3.CPP +++ b/Compiler/OptPass3.CPP @@ -74,7 +74,6 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) else tempc2=tempi->t.a2c; 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: tempi1=PrsPop(ps); @@ -85,7 +84,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) else tempc1=tempi->t.a1c; tempi->a1.type=MDF_STK+CmpRawType(tempc1); - tempi->a1.type_pointed_to=CmpRawTypePointed(tempc1); + tempi->a1_type_pointed_to=CmpRawTypePointed(tempc1); tempi->ic_flags|=ICF_A1_WAS_STK; break; case IS_0_ARG: //nobound switch @@ -93,7 +92,6 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) } if (intermediate_code_table[code].res_cnt) { tempi->r.type=MDF_STK+CmpRawType(tempc); - tempi->r.type_pointed_to=CmpRawTypePointed(tempc); tempi->ic_flags|=ICF_R_WAS_STK; PrsPush(ps,tempi); } @@ -119,13 +117,13 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->a1.reg=REG_RBP; break; case IC_DEREF: - tempi->a1.type_pointed_to=tempi->r.type.raw_type; + 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=MDF_DISP+tempi->r.type.raw_type; - tempi->a1.type_pointed_to=tempi->r.type_pointed_to; + tempi->a1_type_pointed_to=CmpRawTypePointed(tempc); tempi->ic_code=IC_MOV; OptFree(tempi1); if (tempi->a1.reg==REG_RBP) @@ -141,7 +139,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) tempi->a1.reg=tempil2->a1.reg; tempi->a1.disp=tempi->ic_data; tempi->a1.type=MDF_DISP+tempi->r.type.raw_type; - tempi->a1.type_pointed_to=tempi->r.type_pointed_to; + tempi->a1_type_pointed_to=CmpRawTypePointed(tempc); tempi->ic_code=IC_MOV; OptFree(tempil2); OptFree(tempil1); @@ -152,7 +150,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) case IC__MM: case IC_PP_: case IC_MM_: - tempi->r.type_pointed_to=CmpRawTypePointed(tempi->t.a1c); + CmpMinTypePointed(tempi,CmpRawTypePointed(tempi->t.a1c)); case IC_DEREF_PP: case IC_DEREF_MM: if (tempi1->ic_code==IC_LEA && tempi1->a1.type&MDF_DISP && @@ -163,7 +161,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[i].score++; break; } - tempi->a1.type_pointed_to=tempi->r.type.raw_type; + tempi->a1_type_pointed_to=tempi->r.type.raw_type; break; case IC_MUL: case IC_DIV: @@ -183,7 +181,7 @@ 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.raw_type; + 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) { @@ -245,8 +243,8 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[i].score++; break; } - tempi->a1.type_pointed_to=tempi->r.type.raw_type; - tempi->r.type_pointed_to=CmpRawTypePointed(tempi->t.a1c); + tempi->a1_type_pointed_to=tempi->r.type.raw_type; + CmpMinTypePointed(tempi,CmpRawTypePointed(tempi->t.a1c)); break; case IC_RETURN_VAL: case IC_RETURN_VAL2: @@ -369,7 +367,7 @@ U0 OptPass3(CCmpCtrl *cc,COptReg *reg_offsets) mv[i].score++; break; } - tempi->a1.type_pointed_to=CmpRawType(tempc); + tempi->a1_type_pointed_to=CmpRawType(tempc); goto here1; case IC_BR_LESS: case IC_BR_GREATER_EQU: diff --git a/Compiler/OptPass4.CPP b/Compiler/OptPass4.CPP index a03d803..2b32067 100644 --- a/Compiler/OptPass4.CPP +++ b/Compiler/OptPass4.CPP @@ -1,6 +1,6 @@ Bool OptIC4(CIntermediateCode *tempi) { - I64 i,ty,pt,ty1,pt1; + I64 i; CIntermediateCode *tempil1,*tempil2; if (tempi->ic_codeic_flags|=ICF_A2_TO_F64; } - - ty=tempil1->a2.type.raw_type; - ty1=tempil2->a1.type.raw_type; - if (ty1 && ty1r.type.raw_type; - if (ty1 && ty1a2.type=tempil2->a1.type&MDG_MASK+ty; - - pt=tempil1->a2.type_pointed_to; - pt1=tempil2->a1.type_pointed_to; - if (pt1 && pt1r.type_pointed_to; - if (pt1 && pt1a2.type_pointed_to=pt; - + tempil1->a2.type=tempil2->a1.type&MDG_MASK+ + MinI64(tempil1->a2.type.raw_type, + MinI64(tempil2->r.type.raw_type,tempil2->a1.type.raw_type)); tempil1->a2.reg=tempil2->a1.reg; tempil1->a2.disp=tempil2->a1.disp; tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK; @@ -97,25 +81,10 @@ Bool OptIC4(CIntermediateCode *tempi) } else tempil1->ic_flags|=ICF_A1_TO_F64; } - - ty=tempil1->a1.type.raw_type; - ty1=tempil2->a1.type.raw_type; - if (ty1 && ty1r.type.raw_type; - if (ty1 && ty1a1.type=tempil2->a1.type&MDG_MASK+ty; - - pt=tempil1->a1.type_pointed_to; - pt1=tempil2->a1.type_pointed_to; - if (pt1 && pt1r.type_pointed_to; - if (pt1 && pt1a1.type_pointed_to=pt; - + tempil1->a1.type=tempil2->a1.type&MDG_MASK+ + MinI64(tempil1->a1.type.raw_type, + MinI64(tempil2->r.type.raw_type,tempil2->a1.type.raw_type)); + CmpMinTypePointed(tempil1,tempil2->a1_type_pointed_to); tempil1->a1.reg=tempil2->a1.reg; tempil1->a1.disp=tempil2->a1.disp; tempil1->ic_flags|=tempil2->ic_flags&ICG_NO_CVT_MASK; @@ -131,7 +100,7 @@ Bool OptIC4(CIntermediateCode *tempi) !Bt(&cmp.non_ptr_vars_mask,tempil2->a1.reg)) { tempil1->ic_flags|=tempil2->ic_flags; tempil1->ic_code=IC_MOV; - tempil1->a1.type=MDF_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); @@ -141,7 +110,7 @@ Bool OptIC4(CIntermediateCode *tempi) 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&MDG_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); @@ -151,7 +120,7 @@ Bool OptIC4(CIntermediateCode *tempi) } if (tempil1->ic_code==IC_DEREF) { if (tempil1->a1.type&MDF_REG) { - tempil1->a1.type=MDF_DISP+tempil1->a1.type_pointed_to; + tempil1->a1.type=MDF_DISP+tempil1->a1_type_pointed_to; tempil1->a1.disp=0; tempil1->ic_code=IC_MOV; return TRUE; @@ -220,7 +189,7 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) case IC_IMM_F64: tempi->a1.type=MDF_IMM+RT_I64; tempi->a1.disp=tempi->ic_data; - tempi->a1.type_pointed_to=RT_F64; + tempi->a1_type_pointed_to=RT_F64; tempi->ic_code=IC_MOV; break; case IC_MOV: @@ -246,7 +215,8 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) OptFree(tempi1); } } - } else if ((tempi1->ic_code==IC_ABS_ADDR || tempi1->ic_code==IC_MOV && + } 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) @@ -255,7 +225,7 @@ U0 OptPass4(CCmpCtrl *cc,COptReg *reg_offsets,I64 *_type) tempi->a1.disp=tempi1->a1.disp; tempi->ic_flags|=tempi1->ic_flags; tempi->ic_code=IC_MOV; - tempi->a1.type=MDF_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); } @@ -298,7 +268,7 @@ p4_lea_gone: tempi->a1.disp=tempi1->ic_data; else tempi->a1.disp=tempi1->a1.disp; - tempi->a1.type=MDF_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_BY_VAL; OptFree(tempi1); @@ -324,7 +294,7 @@ p4_sib: tempi->ic_code=IC_LEA; tempi->a1.type=MDF_SIB+RT_I64; - tempi->a1.type_pointed_to=RT_I64; + tempi->a1_type_pointed_to=RT_I64; tempi->a2.type=MDF_NULL+tempi->a2.type.raw_type; } @@ -391,6 +361,7 @@ p4_sib: case IC_SUB_EQU: if (tempi1->ic_code==IC_LEA) { if (tempi1->a1.type&(MDF_DISP|MDF_SIB)) { + tempi2=tempi->next; if (tempi1->a1.type&MDF_DISP && tempi1->a1.reg==REG_RBP) { i=CmpOffset2Reg(tempi1->a1.disp,reg_offsets); if (i>=0) { @@ -407,12 +378,22 @@ p4_sib: OptSetNOP2(tempi1); } } else { - tempi->a1.type=tempi1->a1.type&MDG_MASK+tempi->a1.type.raw_type; tempi->ic_flags|=tempi1->ic_flags; + tempi->a1.type=tempi1->a1.type&MDG_MASK+tempi->a1.type.raw_type; tempi->a1.reg=tempi1->a1.reg; tempi->a1.disp=tempi1->a1.disp; OptSetNOP2(tempi1); } + if (tempi->r.type&MDF_STK && tempi2->a2.type&MDF_STK && + code!=IC_ASSIGN_PP && code!=IC_ASSIGN_MM) { + tempi->r.type=tempi->a1.type; + tempi->r.reg=tempi->a1.reg; + tempi->r.disp=tempi->a1.disp; + tempi2->a2.type=tempi->a1.type; + tempi2->a2.reg=tempi->a1.reg; + tempi2->a2.disp=tempi->a1.disp; + CmpMinTypePointed(tempi2,tempi->a1_type_pointed_to); + } tempi->ic_flags|=ICF_BY_VAL; } } else if ((tempi1->ic_code==IC_ABS_ADDR || diff --git a/Compiler/OptPass5.CPP b/Compiler/OptPass5.CPP index 5ba1136..221b981 100644 --- a/Compiler/OptPass5.CPP +++ b/Compiler/OptPass5.CPP @@ -1,7 +1,7 @@ U0 OptPass5(CCmpCtrl *cc) { CIntermediateCode *tempi,*tempi1; - I64 code,i,ty,pt,ty1,pt1; + I64 code,i; CPrsStk *ps=cc->ps; ps->ptr=0; ps->ptr2=0; @@ -40,25 +40,9 @@ U0 OptPass5(CCmpCtrl *cc) else tempi->ic_flags|=ICF_A2_TO_F64; } - - ty=tempi->a2.type.raw_type; - ty1=tempi1->a1.type.raw_type; - if (ty1 && ty1r.type.raw_type; - if (ty1 && ty1a2.type=tempi1->a1.type&MDG_MASK+ty; - - pt=tempi->a2.type_pointed_to; - pt1=tempi1->a1.type_pointed_to; - if (pt1 && pt1r.type_pointed_to; - if (pt1 && pt1a2.type_pointed_to=pt; - + tempi->a2.type=tempi1->a1.type&MDG_MASK+ + MinI64(tempi->a2.type.raw_type, + MinI64(tempi1->r.type.raw_type,tempi1->a1.type.raw_type)); tempi->a2.reg=tempi1->a1.reg; tempi->a2.disp=tempi1->a1.disp; tempi->ic_flags|=tempi1->ic_flags&ICG_NO_CVT_MASK; @@ -83,25 +67,10 @@ U0 OptPass5(CCmpCtrl *cc) } else tempi->ic_flags|=ICF_A1_TO_F64; } - - ty=tempi->a1.type.raw_type; - ty1=tempi1->a1.type.raw_type; - if (ty1 && ty1r.type.raw_type; - if (ty1 && ty1a1.type=tempi1->a1.type&MDG_MASK+ty; - - pt=tempi->a1.type_pointed_to; - pt1=tempi1->a1.type_pointed_to; - if (pt1 && pt1r.type_pointed_to; - if (pt1 && pt1a1.type_pointed_to=pt; - + tempi->a1.type=tempi1->a1.type&MDG_MASK+ + MinI64(tempi->a1.type.raw_type, + MinI64(tempi1->r.type.raw_type,tempi1->a1.type.raw_type)); + CmpMinTypePointed(tempi,tempi1->a1_type_pointed_to); tempi->a1.reg=tempi1->a1.reg; tempi->a1.disp=tempi1->a1.disp; tempi->ic_flags|=tempi1->ic_flags&ICG_NO_CVT_MASK; diff --git a/Compiler/OptPass6.CPP b/Compiler/OptPass6.CPP index 73beae1..636e984 100644 --- a/Compiler/OptPass6.CPP +++ b/Compiler/OptPass6.CPP @@ -10,14 +10,14 @@ Bool OptIC6(CIntermediateCode *tempi) 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=MDF_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=MDF_DISP+tempi->a1.type_pointed_to; + tempi->a1.type=MDF_DISP+tempi->a1_type_pointed_to; tempi->a1.disp=tempil1->ic_data; } return TRUE; @@ -123,8 +123,7 @@ U0 OptPass6(CCmpCtrl *cc) 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&MDG_MASK+tempi->a1.type_pointed_to; - tempil2->r.type_pointed_to=tempi->a1.type_pointed_to; + tempil2->r.type =tempi->a1.type&MDG_MASK+tempi->a1_type_pointed_to; tempil2->r.reg =tempi->a1.reg; tempil2->r.disp =tempi->a1.disp; tempil2->ic_flags=tempil2->ic_flags diff --git a/Compiler/OptPass789A.CPP b/Compiler/OptPass789A.CPP index 3304eb5..8096b24 100644 --- a/Compiler/OptPass789A.CPP +++ b/Compiler/OptPass789A.CPP @@ -8,7 +8,7 @@ cc->pass==10 is final pass, code is placed into buf. */ CIntermediateCode *tempi,*tempi_next; I64 i,cnt,num_lines=cc->max_line+1-cc->min_line,ip=0,ip2; - U8 *ptr; + U8 *ptr,saved_a1_a2_r[3*sizeof(CICArg)]; CCodeMisc *lb; CAOT *tempaot; CAOTAbsAddr *tempa; @@ -18,7 +18,6 @@ cc->pass==10 is final pass, code is placed into buf. CDbgInfo *dbg_info; CAOTCtrl *aotc=cc->aotc; Bool short_jmp; - CICArg saved_p123[3]; CHashClass *tempc; CHashFun *tempf; CHashGlblVar *tempg; @@ -42,8 +41,8 @@ cc->pass==10 is final pass, code is placed into buf. cc->last_float_op_ic=NULL; tempi=&cc->coc.coc_root; + tempi->ic_last_start=-1; tempi->ic_cnt=0; - tempi->ic_last_cnt=-1; tempi=tempi->next; while (tempi->ic_code) { tempi_next=tempi->next; @@ -60,9 +59,9 @@ cc->pass==10 is final pass, code is placed into buf. ~(ICF_PREV_DELETED|ICF_DONT_RESTORE)|ICF_CODE_FINAL; if (cc->pass==7) cc->dont_push_float=Btr(&tempi->ic_flags,ICf_DONT_PUSH_FLOAT0); - MemCpy(saved_p123,&tempi->a1,3*sizeof(CICArg)); + MemCpy(saved_a1_a2_r,&tempi->a1,3*sizeof(CICArg)); tempi->ic_cnt=0; - tempi->ic_last_cnt=-1; + tempi->ic_last_start=-1; if (tempi->a2.type.mode) { if (tempi->ic_flags & ICF_A2_TO_F64) { ICFCvt(cc,tempi,REG_RAX, @@ -93,9 +92,10 @@ cc->pass==10 is final pass, code is placed into buf. tempi->a1.disp=0; } } + switch [tempi->ic_code] { - sub_switch_start: - sub_switch_start: + start: + start: case IC_ABS_ADDR: ICU16(tempi,0xB848); ICU64(tempi,tempi->ic_data); @@ -145,7 +145,7 @@ cc->pass==10 is final pass, code is placed into buf. tempa->ip=ip2+tempi->ic_cnt-8; } break; - sub_switch_end: + end: ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp, MDF_REG+RT_I64,REG_RAX,0,ip2); break; @@ -381,7 +381,7 @@ cc->pass==10 is final pass, code is placed into buf. } } break; - sub_switch_end: + end: tempi->ic_flags&=~ICF_CODE_FINAL; break; case IC_LEAVE: @@ -613,14 +613,14 @@ cc->pass==10 is final pass, code is placed into buf. ICAssignPostIncDec(tempi,SLASH_OP_DEC,ip2); break; case IC_SHL_EQU: - ICShiftEqu(tempi,tempi->a1.type_pointed_to, + ICShiftEqu(tempi,tempi->a1_type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp, 0xE0D1E0D3E0C1,0xE0D1E0D3E0C1,ip2); break; case IC_SHR_EQU: - ICShiftEqu(tempi,tempi->a1.type_pointed_to, + ICShiftEqu(tempi,tempi->a1_type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp, @@ -655,7 +655,7 @@ cc->pass==10 is final pass, code is placed into buf. break; case IC_ADD_EQU: if (tempi->ic_flags&ICF_USE_INT) - ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, + ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp, @@ -665,7 +665,7 @@ cc->pass==10 is final pass, code is placed into buf. break; case IC_SUB_EQU: if (tempi->ic_flags&ICF_USE_INT) - ICAddSubEctEqu(tempi,tempi->a1.type_pointed_to, + ICAddSubEctEqu(tempi,tempi->a1_type_pointed_to, tempi->r.type,tempi->r.reg,tempi->r.disp, tempi->a1.type,tempi->a1.reg,tempi->a1.disp, tempi->a2.type,tempi->a2.reg,tempi->a2.disp, @@ -1069,7 +1069,7 @@ cc->pass==10 is final pass, code is placed into buf. cnt=tempi->ic_cnt; if (tempi->ic_flags&ICF_DEL_PREV_INS) { if (cc->pass>8) - cnt=tempi->ic_last_cnt; + cnt=tempi->ic_last_start; tempi->ic_flags&=~ICF_DEL_PREV_INS; } if (cnt && buf) @@ -1090,7 +1090,7 @@ op789A_skip_copy: "$$FG$$"; } if (!(tempi->ic_flags&(ICF_CODE_FINAL|ICF_DONT_RESTORE))) - MemCpy(&tempi->a1,saved_p123,3*sizeof(CICArg)); + MemCpy(&tempi->a1,saved_a1_a2_r,3*sizeof(CICArg)); ip+=cnt; if (tempi->ic_cnt>=IC_BODY_SIZE && tempi->ic_code!=IC_ASM) throw('Compiler'); diff --git a/Compiler/PrsExp.CPP b/Compiler/PrsExp.CPP index 06d12e9..d18fe2e 100644 --- a/Compiler/PrsExp.CPP +++ b/Compiler/PrsExp.CPP @@ -601,16 +601,16 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, *_local_var=NULL; *paren_prec=PREC_NULL; switch (cc->token) { - sub_switch_start: + start: if (PREC_UNARY_PRE>*max_prec) *max_prec=PREC_UNARY_PRE; *unary_pre_prec=PREC_UNARY_PRE; - sub_switch_start: + start: case '~': i=IC_COM; break; case '!': i=IC_NOT; break; case '-': i=IC_UNARY_MINUS; break; case '*': i=IC_DEREF; break; - sub_switch_end: + end: Lex(cc); //Skip op break; case '&': @@ -665,12 +665,12 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, } i=IC_ADDR; break; - sub_switch_end: + end: PrsPush(ps,tempc); PrsPush(ps,PREC_UNARY_PRE<<16+i); return PE_UNARY_TERM2; - sub_switch_start: + start: case TK_I64: case TK_CHAR_CONST: case TK_INS_BIN_SIZE: @@ -714,7 +714,7 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, } Lex(cc); break; - sub_switch_end: + end: if (PREC_TERM>*max_prec) *max_prec=PREC_TERM; return PE_MAYBE_MODIFIERS; @@ -741,11 +741,11 @@ I64 PrsUnaryTerm(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, return PE_UNARY_MODIFIERS; } - sub_switch_start: + start: case '+': break; case TK_PLUS_PLUS: cc->flags|=CCF_PREINC; break; case TK_MINUS_MINUS: cc->flags|=CCF_PREDEC; break; - sub_switch_end: + end: if (PREC_UNARY_PRE>*max_prec) *max_prec=PREC_UNARY_PRE; *unary_pre_prec=PREC_UNARY_PRE; @@ -1091,14 +1091,14 @@ I64 PrsUnaryModifier(CCmpCtrl *cc,CPrsStk *ps,CMemberLst **_local_var, ICAdd(cc,IC_ADD,0,tempc); cc->flags&=~(CCF_RAX|CCF_ARRAY); return PE_UNARY_MODIFIERS; - sub_switch_start: + start: case TK_PLUS_PLUS: cc->flags|=CCF_POSTINC; break; case TK_MINUS_MINUS: cc->flags|=CCF_POSTDEC; break; - sub_switch_end: + end: if (!*unary_post_prec) *unary_post_prec=PREC_UNARY_POST; Lex(cc); diff --git a/Compiler/PrsStmt.CPP b/Compiler/PrsStmt.CPP index eaf2d7d..e459e77 100644 --- a/Compiler/PrsStmt.CPP +++ b/Compiler/PrsStmt.CPP @@ -186,7 +186,7 @@ U0 PrsFun(CCmpCtrl *cc,CHashClass *temp_return,U8 *name,I64 fsp_flags) while (tempm) { if (tempm->flags & MLF_NO_UNUSED_WARN) { if (tempm->use_cnt>1&&StrCmp(tempm->str,"_anon_")) - PrintWarn("Unneeded nounusedwarn\n $$LK,\"FL:%s,%d\"$$ '%s' in '%s'\n", + PrintWarn("Unneeded no_warn\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->use_cnt && GetOption(OPTf_WARN_UNUSED_VAR)) @@ -618,9 +618,9 @@ U0 PrsSwitch(CCmpCtrl *cc,I64 try_cnt) while (cc->token && cc->token!='}') { sw_cont: switch (PrsKeyWord(cc)) { - case KW_SUB_SWITCH_END: + case KW_END: goto sw_sub_end; - case KW_SUB_SWITCH_START: + case KW_START: if (Lex(cc)==':') Lex(cc); else @@ -636,10 +636,10 @@ sw_cont: tempi_start=ICAdd(cc,IC_LABEL,tempss->lb_start,0); while (cc->token && cc->token!='}') { switch (PrsKeyWord(cc)) { - case KW_SUB_SWITCH_END: + case KW_END: OptFree(tempi_jmp); goto sw_sub_end; - case KW_SUB_SWITCH_START: + case KW_START: case KW_CASE: case KW_DFT: if (cc->coc.coc_root.last==tempi_start) { @@ -749,8 +749,8 @@ sw_sub_end: } else { QueRem(tempss); Free(tempss); - if (PrsKeyWord(cc)!=KW_SUB_SWITCH_END) - LexExcept(cc,"Missing 'sub_switch_end' at "); + if (PrsKeyWord(cc)!=KW_END) + LexExcept(cc,"Missing 'end' at "); if (Lex(cc)==':') Lex(cc); else @@ -784,7 +784,7 @@ sw_sub_end: mc_jt->range=range; } -U0 PrsNoUnusedWarn(CCmpCtrl *cc) +U0 PrsNoWarn(CCmpCtrl *cc) { CMemberLst *tempm; while (cc->token==TK_IDENT) { @@ -936,7 +936,7 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, case KW_NUM_KEYWORDS-1: //nobound switch default: //A keyword that is not valid here is just a symbol. goto sm_not_keyword_afterall; - sub_switch_start: + start: case KW_ASM: if (cc->htc.fun) { if (tempaot=CmpJoin(cc,CMPF_ASM_BLK)) @@ -956,7 +956,7 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, fsp_flags=FSF_ASM; } break; - sub_switch_start: + start: Lex(cc); case KW_LOCK: cc->lock_cnt++; @@ -981,11 +981,11 @@ Bool PrsStmt(CCmpCtrl *cc,I64 try_cnt=0, case KW_SWITCH: PrsSwitch(cc,try_cnt); break; - sub_switch_end: - sub_switch_end: + end: + end: if (cc->token!=',') goto sm_done; break; - sub_switch_start: + start: if (cc->htc.fun) LexExcept(cc,"Not allowed in fun"); Lex(cc); @@ -1055,10 +1055,10 @@ sm_import: Lex(cc); PrsGlblVarLst(cc,PRS0__INTERN|PRS1_NULL,tempex,i,fsp_flags); break; - sub_switch_end: + end: fsp_flags&=FSF_ASM; break; - sub_switch_start: + start: case KW_STATIC: fsp_flags=FSF_STATIC|fsp_flags&FSF_ASM; break; @@ -1078,7 +1078,7 @@ sm_import: case KW_PUBLIC: fsp_flags=FSF_PUBLIC|fsp_flags&(FSG_FUN_FLAGS2|FSF_ASM); break; - sub_switch_end: + end: Lex(cc); break; case KW_RETURN: @@ -1131,9 +1131,9 @@ sm_import: LexExcept(cc,"'break' not allowed\n"); ICAdd(cc,IC_JMP,lb_break,0); goto sm_semicolon; - case KW_NOUNUSEDWARN: + case KW_NO_WARN: Lex(cc); - PrsNoUnusedWarn(cc); + PrsNoWarn(cc); goto sm_semicolon; case KW_UNION: case KW_CLASS: diff --git a/Compiler/UAsm.CPP b/Compiler/UAsm.CPP index e96ec97..6abb219 100644 --- a/Compiler/UAsm.CPP +++ b/Compiler/UAsm.CPP @@ -537,7 +537,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) case ARGT_UIMM64: CatPrint(a1_st,"%016X",*ip(I64 *)++); break; - sub_switch_start: + start: case ARGT_REL8: disp=*ip(I8 *)++; break; @@ -547,7 +547,7 @@ U0 Ui(U8 *buf,U8 **_ip,I64 seg_size=64,I64 *_jmp_dst=NULL,Bool just_ins=FALSE) case ARGT_REL32: disp=*ip(I32 *)++; break; - sub_switch_end: + end: disp+=ip; if (IsDbg) CatPrint(a1_st,"%p ",disp); diff --git a/Demo/AcctExample/DoOnce.CPP b/Demo/AcctExample/DoOnce.CPP index 00a4034..1a099b0 100644 --- a/Demo/AcctExample/DoOnce.CPP +++ b/Demo/AcctExample/DoOnce.CPP @@ -9,6 +9,35 @@ U0 DoOnce() { + switch (sys_boot_src.u16[0]) { + case BOOT_SRC_DVD: + "\nIf you answer 'No' you can play with\n" + "the live CD without installing.\n\n" + "Install onto hard drive "; + if (YorN) { + DocBottom; + ExeFile("::/Misc/OSInstall"); + if (ExePrint("OSInstall(FALSE);")) { + *sys_registry_doc->filename.name='C'; + "\n\n1) TAD\n\n"; + switch (GetI64("Staff Member Number:")) { + case 1: + RegWriteBranch("TempleOS/Staff", + "#define PERSONAL_INITIALS \"TAD\"\n" + "#define MACHINE_CFG %d\n", + GetI64("Machine Cfg Number:") + ); + break; + } + Del("C:/Home/DoDistro.CPP.Z"); + Del("D:/Home/DoDistro.CPP.Z"); + "\n\n\nAfter Reboot be sure to run MakeDistrosAndBackUp.\n\n"; + PressAKey; + Reboot; //Too dangerous for amateurs until reboot. + } + } + break; + } if (FileFind("D:/Temp/Logs/access.log")) { Auto("\n\n%C",CH_ESC); WebLogRep("D:/Temp/Logs/*.log","D:/Temp/LogRep.TXT"); diff --git a/Demo/AcctExample/HomeKeyPlugIns.CPP b/Demo/AcctExample/HomeKeyPlugIns.CPP index 6ab41e2..7229476 100644 --- a/Demo/AcctExample/HomeKeyPlugIns.CPP +++ b/Demo/AcctExample/HomeKeyPlugIns.CPP @@ -321,7 +321,7 @@ Bool MyPutKey(I64 ch,I64 sc) if (sc&SCF_KEY_DESC) KeyDescSet("Cmd /JukeBox(Home/Downloads)"); else - JukeBox("::/Home/Downloads/Psalmody"); + JukeBox("~/Downloads/Psalmody"); return TRUE; case 'P': if (sc&SCF_KEY_DESC) diff --git a/Demo/AcctExample/HomePkgs.CPP b/Demo/AcctExample/HomePkgs.CPP deleted file mode 100644 index b214826..0000000 --- a/Demo/AcctExample/HomePkgs.CPP +++ /dev/null @@ -1,14 +0,0 @@ -//Place this file in /Home and change -//anything you want. - -#include "::/HomePkgs" -#include "::/Apps/Psalmody/Load" -#include "::/Demo/WebLogExample/WebLogRep" -Cd("::/Home");; -#include "::/Home/TOSCfg" -#include "::/Home/TOSMisc" -#include "::/Home/TOSToHtml" -#include "::/Home/TOSDistro" -#include "::/Home/TOSBlog" -#include "::/Home/TOSHolySpirit" -Cd("::/Home");; diff --git a/Demo/AcctExample/HomeSys.CPP b/Demo/AcctExample/HomeSys.CPP index be1b03a..203e0b3 100644 --- a/Demo/AcctExample/HomeSys.CPP +++ b/Demo/AcctExample/HomeSys.CPP @@ -9,7 +9,7 @@ U0 UserStartUp() WinToTop; WinZBufUpdate; Dir; - "$TX,"81,095",D="DD_TEMPLEOS_LOC_OFFICIAL"$LOC:"; + "$TX,"80,142",D="DD_TEMPLEOS_LOC_OFFICIAL"$LOC:"; CPURep; } @@ -30,9 +30,9 @@ U0 StartUpTasks() WinToTop(user1); WinTileVert; "Boot Time:%7.3fs\n",tS; - XTalk(user1,"Cd(\"::/Home\");#include \"DoOnce\";\n"); + XTalk(user1,"Cd;#include \"DoOnce\";\n"); Silent; - ACInit("/*;~*/Bible.TXT*;~*.TXT*"); //No Bible, no uncompressed TXT. + ACInit("/*;!*/Bible.TXT*;!*.TXT*"); //No Bible, no uncompressed TXT. Silent(OFF); "AutoComplete Time:%7.3fs\n",tS; } diff --git a/Demo/AcctExample/HomeWrappers.CPP b/Demo/AcctExample/HomeWrappers.CPP index 783993f..08f309b 100644 --- a/Demo/AcctExample/HomeWrappers.CPP +++ b/Demo/AcctExample/HomeWrappers.CPP @@ -1,8 +1,8 @@ #help_index "Cmd Line (Typically)" -#define FILEMASK_OFF_LIMITS "~*/Misc/PCIDevices.TXT*;~*/Misc/Bible.TXT*;"\ - "~*/Downloads/Text/*;~*/Downloads/Words/*;~*/Downloads/Bin/*;"\ - "~*/God/Vocab.TXT*" +#define FILEMASK_OFF_LIMITS "!*/Misc/PCIDevices.TXT*;!*/Misc/Bible.TXT*;"\ + "!*/Downloads/Text/*;!*/Downloads/Words/*;!*/Downloads/Bin/*;"\ + "!*/God/Vocab.TXT*" public I64 F(U8 *needle_str,U8 *fu_flags=NULL) {//Find text in all text files. diff --git a/Demo/AcctExample/MakeHome.CPP b/Demo/AcctExample/MakeHome.CPP new file mode 100644 index 0000000..ad4c9ee --- /dev/null +++ b/Demo/AcctExample/MakeHome.CPP @@ -0,0 +1,24 @@ +Cd(__DIR__);; + +//If these are not present in /Home, it uses the version in the root dir. You +//can make your own, modified, version of these files in your /Home directory. +#include "~/HomeLocalize" + +#include "/Adam/Opt/Boot/MakeBoot" +#include "/Adam/Opt/Utils/MakeUtils" +MapFileLoad("::/Kernel/Kernel"); +MapFileLoad("::/Compiler/Compiler"); + +#include "::/Apps/Psalmody/Load" +#include "::/Demo/WebLogDemo/WebLogRep" +#include "~/TOSCfg" +#include "~/TOSMisc" +#include "~/TOSToHtml" +#include "~/TOSDistro" +#include "~/TOSBlog" +#include "~/TOSHolySpirit" + +#include "~/HomeKeyPlugIns" +#include "~/HomeWrappers" +#include "~/HomeSys" +Cd("..");; diff --git a/Demo/AcctExample/PersonalMenu.TXT b/Demo/AcctExample/PersonalMenu.TXT index 873eb5be02a6cbcde44166fcd8f97f3b2d6ed784..e47bad5da590a38a8df3eadb30c8ce21a4c6ed47 100644 GIT binary patch delta 462 zcmbQ!!}7A9g-^xTQOC#ER>?WV+9k7SqM`6cJzZ7~=lqn^;N+sj$qlTsljT_XH%GJf zGO@U%=H^c>WS7~@&9RSBOi@eUCo?ZKD78Qn8u_ie#*t9M2ujST}hucNk;cWGNmHyMiZ}v2OAu9&gs*lEk#M$%X== zP}V*^DHh-Sved~7_~oENfA}PsL5e2win2LE)a&t^Pkz8_3RgMVoNpn5^NTN=Gq@y0 zAt*H^ICZjtfEb7e<|Izu$0x-HGG8OaKRDhq*gxKRvLc@ti?d5m@Z>*y(ri#=6M03E zH0kjxF*;B7=l6x#aTLaoo7^stJ~^77i#s%@q$m+?CEOq^_7w_9GX(`t?h%khvW*L@ eA8h;Ng91v7&YK?z@NqEKO%7lc-^?e;_Z9$>F_J|9 delta 316 zcmaFa&oZZng?Ug0V~ z5pcFRcO;x$$Q=%6pX3gMvlVy{;uSo>aPc!d-pnEX!IJ|7L_zc is broken? @@ -57,6 +54,8 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ * Use pen_width and pen_height when clipping with pen_width>1. +* $LK,"~/Downloads/Games/Rocks.CPP"$. + * Asm LIST NOLIST bugs. * Review writing to same cache-line from multicore. Do $LK,"CTask",A="MN:CTask"$->task_flags and others need to be in separate cache lines? @@ -64,6 +63,14 @@ $WW,1$$FG,5$$TX+CX,"TODO"$$FG$ * Fix $LK,"KbdLEDsSet",A="MN:KbdLEDsSet"$(). * NumLock comes on with break key. +* Hymns: mightest, finger + +* Get rid of JIFFY and HPET and just use tS. + +* Change %h*c so the character is not a arg? + +* $LK,"GrLineFat3",A="MN:GrLineFat3"$() needs work. + $FG,5$$TX+CX,"TODO? Meh"$$FG$ * Compiler: lock{} needs warn on invalid modes or something. @@ -152,7 +159,7 @@ $FG,5$$TX+CX,"Bugs? Not really sure."$$FG$ * $LK,"ChkDsk",A="MN:ChkDsk"$ alloc unalloced. I don't know if I fixed this. -* 1/?/2015,8/10/2015 Macro select in Menu did not go to shell? No, I think just twice. Not a bug. +* 1/?/2015,8/10/2015 Macro sel in Menu did not go to shell? No, I think just twice. Not a bug. * 5/7/14:Something like $LK,"AFSetIP",A="MN:AFSetIP"$ caused hang, then reboot in TestSuite. * 5/7/14:#63 Maybe, $LK,"::/Demo/Graphics/Pick3D.CPP"$ crashed in TestSuite. @@ -205,6 +212,8 @@ $ID,-5$ $FG,5$$TX+CX,"Committee Needed"$$FG$ * Make binary tree look-up using FUN_SEG symbol addresses, so we can eliminate fun_seg cache and wall-paper kludge? All HolyC functions and glbl vars would have left-right for address search. +* $LK,"MP DepthBuf",A="FF:::/Adam/Gr/SpriteMesh.CPP,dc->depth_buf=e->"$ is a kludge because of dc->depth_buf=NULL in various graphics routines. + * Improve editor undo, add redo. * Compiler: F32? @@ -261,7 +270,9 @@ $FG,5$$TX+CX,"Committee Needed"$$FG$ * Note: We will never put multiple $LK,"Keyboard Tables",A="FI:::/Kernel/SerialDev/Keyboard.CPP"$. Each country must make their own version of TempleOS. The $LK,"Intel Factory ROM",A="FF:::/Doc/Demands.TXT,English"$ will have just English. Our $LK,"Charter",A="FI:::/Doc/Charter.TXT"$ bans multiple country or architectures in the same version. -* We are not doing UTF, but we will add cyrillic 8-bit Russian font on aux_font. will toggle fonts. Or, we will redefine upper 128-255 ASCII characters and move 12 border chars to screen font codes 0-26? $LK,"TextBorder",A="MN:TextBorder"$() $LK,"RawDr",A="MN:RawDr"$(). Add aux_font option with $LK,"chars_bmp_alpha",A="MN:chars_bmp_alpha"$ configured for any aux_font? +* 12 border chars in screen font codes 0x02-0x0D. $LK,"TextBorder",A="MN:TextBorder"$() $LK,"RawDr",A="MN:RawDr"$() LineFeed shows-up in $FG,2$$FG$ PersonalMenu. + +* Super-simple high speed serial needs flow control. $FG,2$$FG$ and $FG,2$$FG$? $FG,5$$TX+CX,"Inspirational Ideas"$$FG$ @@ -354,7 +365,7 @@ $FG,5$$TX+CX,"Uncategorized"$$FG$ * $LK,"gr.screen_image",A="MN:CGrGlbls"$ >Might want to do ZOOM in U8 graphics and convert screen capture to U8 - >Might want to reverse bit order + >Might want to rev bit order * This $LK,"Fs->catch_except=TRUE",A="FF:::/Kernel/SrvCmd.CPP,Fs->catch_except=TRUE"$ causes problems because it catches divide and out-of-mem. Not sure what to do, yet. @@ -397,7 +408,7 @@ Do not seek your own wealth $TX,"1 Corinthians 10:24",HTML="http://www.biblegat $FG,5$$TX+CX,"Misc Notes"$$FG$ Intel CEO's name: Brian Krzanich >$FG,2$lspci -v$FG$ -Size:$TX,"17380 KB",D="DD_TEMPLEOSCD_K_SIZE"$ +Size:$TX,"17400 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"$ diff --git a/Demo/AcctExample/Registry.CPP b/Demo/AcctExample/Registry.CPP index 4d4e7bb..b1edc4b 100644 --- a/Demo/AcctExample/Registry.CPP +++ b/Demo/AcctExample/Registry.CPP @@ -2,45 +2,48 @@ $TR-UL,"Adam"$ $ID,2$$TR,"SysMsgFlags"$ $ID,2$sys_msg_flags[0]=0xFF; $ID,-2$$TR,"SysRegVer"$ -$ID,2$registry_version=4.06; -$ID,-2$$ID,-2$$TR-UL,"TempleOS"$ +$ID,2$registry_version=4.080; +$ID,-2$$ID,-2$$TR-C-UL,"TempleOS"$ $ID,2$$TR,"TOS"$ $ID,2$I64 tos_code_walk_thru=105,tos_after_egypt_in_action=46; $ID,-2$$TR,"CircleTrace"$ $ID,2$F64 best_score=4.9425; $ID,-2$$TR,"DiningStars"$ $ID,2$F64 best_score=9999.0000; +$ID,-2$$TR,"Staff"$ +$ID,2$#define PERSONAL_INITIALS "TAD" +#define MACHINE_CFG 0 $ID,-2$$TR,"BlackDiamond"$ $ID,2$I64 best_score=9; +$ID,-2$$TR,"EagleDive"$ +$ID,2$I64 best_score=8; $ID,-2$$TR,"DunGen"$ $ID,2$F64 best_score=20.5295; $ID,-2$$TR,"CastleFrankenstein"$ $ID,2$F64 best_score=33.8405; $ID,-2$$TR,"ZoneOut"$ $ID,2$F64 best_score=8.1373; +$ID,-2$$TR,"Varoom"$ +$ID,2$F64 best_score=46.2643; $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,"Wenceslas"$ -$ID,2$F64 best_score=49.8074; -$ID,-2$$TR,"BomberGolf"$ -$ID,2$I64 best_score=175; -$ID,-2$$TR,"Varoom"$ -$ID,2$F64 best_score=46.2643; -$ID,-2$$TR,"EagleDive"$ -$ID,2$I64 best_score=4; $ID,-2$$TR,"XCaliber"$ $ID,2$I64 best_score=248; I64 msg_flags=1; +$ID,-2$$TR,"Wenceslas"$ +$ID,2$F64 best_score=43.9944; +$ID,-2$$TR,"BomberGolf"$ +$ID,2$I64 best_score=175; +$ID,-2$$TR,"KeepAway"$ +$ID,2$I64 best_score0=68,best_score1=30; $ID,-2$$ID,-2$$TR,"DemoCompany"$ $ID,2$ $TR,"Game1"$ -$ID,2$F64 best_score=190.66292; +$ID,2$F64 best_score=166.57305; $TR,"SimpleVal"$ -$ID,2$1313; +$ID,2$1329; $ID,-2$$ID,-2$ \ No newline at end of file diff --git a/Demo/AcctExample/TOSBlog.CPP b/Demo/AcctExample/TOSBlog.CPP index 8fc012b..43b7901 100644 --- a/Demo/AcctExample/TOSBlog.CPP +++ b/Demo/AcctExample/TOSBlog.CPP @@ -100,7 +100,8 @@ public U0 MakeWebSitePartial() public U0 Blog() { if (!FileFind(BlogLocalFile,,FUF_JUST_FILES)) - Copy("::/Home/Downloads/Blog/DailyBlogHeader.TXT.Z",BlogLocalFile); + Copy("~/Web/" PERSONAL_INITIALS "/DailyBlogHeader.TXT.Z", + BlogLocalFile); AutoComplete; WinBorder; WinMax; diff --git a/Demo/AcctExample/TOSCfg.CPP b/Demo/AcctExample/TOSCfg.CPP index 1e1911d..36f80d3 100644 --- a/Demo/AcctExample/TOSCfg.CPP +++ b/Demo/AcctExample/TOSCfg.CPP @@ -1,7 +1,12 @@ #help_index "TOS" +RegSetDftEntry("TempleOS/Staff", +"#define PERSONAL_INITIALS \"TAD\"\n" +"#define MACHINE_CFG 0\n" +); +RegExeBranch("TempleOS/Staff"); + #define PERSONAL_WEB "http:/" "/www.templeos.org/Wb" -#define PERSONAL_INITIALS "TAD" #define BLOG_BASE "/Home/Web/" PERSONAL_INITIALS "/Blog" #define DAILY_BASE "/Home/Web/" PERSONAL_INITIALS "/DailyBlog" #define BLOG_LOCAL_BASE "::" BLOG_BASE @@ -29,16 +34,29 @@ U0 TOSBootRescueDrv2() U0 TOSInit() { - DefinePrint("CFG_RAM_DRVS", - "\"b\nScale2Mem(2048,0x100000,4*1024*1024*1024)\n\""); - DefinePrint("CFG_HARD_DRVS","\"\""); - DefinePrint("CFG_DVD_DRVS","\"\""); - DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); - DefinePrint("TOS_HDS","\"CD\""); - DefinePrint("TOS_MASTER_BOOT_DRVS","\"C\""); + switch (MACHINE_CFG) { + case 1: //TAD Native Machine + DefinePrint("CFG_RAM_DRVS", + "\"b\nScale2Mem(2048,0x100000,4*1024*1024*1024)\n\""); + DefinePrint("CFG_HARD_DRVS","\"cs0xFE00\n0xFE10\n0\""); + DefinePrint("CFG_DVD_DRVS","\"ts0x1F0\n1\""); + DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); + DefinePrint("TOS_HDS","\"CD\""); + DefinePrint("TOS_MASTER_BOOT_DRVS","\"C\""); + break; + default: + DefinePrint("CFG_RAM_DRVS", + "\"b\nScale2Mem(2048,0x100000,4*1024*1024*1024)\n\""); + DefinePrint("CFG_HARD_DRVS","\"\""); + DefinePrint("CFG_DVD_DRVS","\"\""); + DefinePrint("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); + DefinePrint("TOS_HDS","\"CD\""); + DefinePrint("TOS_MASTER_BOOT_DRVS","\"C\""); + } } TOSInit; #define TOS_ISO_NAME "B:/TempleOSCD.ISO" +#define TOS_ISO_C_NAME "B:/TempleOSCD.ISO.C" #define TOS_DISTRO_DIR "B:/Distro" #define CFG_OPTS "AutoMountIDE\nCT\n" #define CFG_DBG_OPTS "AutoMountIDE\nCT"\ diff --git a/Demo/AcctExample/TOSDistro.CPP b/Demo/AcctExample/TOSDistro.CPP index 9bc5657..48da3ce 100644 --- a/Demo/AcctExample/TOSDistro.CPP +++ b/Demo/AcctExample/TOSDistro.CPP @@ -1,4 +1,4 @@ -//The CFG defines are $LK,"::/Home/TOSCfg.CPP",A="FI:::/Demo/AcctExample/TOSCfg.CPP"$. +//The CFG defines are $LK,"~/TOSCfg.CPP",A="FI:::/Demo/AcctExample/TOSCfg.CPP"$. #help_index "TOS" @@ -68,10 +68,7 @@ public U0 CopySongs(U8 threshold='7') U0 DistroPrep() { - Del("/Demo/WebLogExample/WebLogRep.TXT*"); - Del("/Demo/ReverseFileExample/PoemForeward.TXT*"); - Del("/Demo/ToHtmlToTXTExample/Out*"); - Del("/Home/NumBible.TXT.Z"); + Del("/Home/Demo*"); DelTree("/Home/*Temp.TXT.Z"); if (FileFind("/Home/Downloads/Psalmody")) CopySongs; @@ -97,7 +94,7 @@ U0 DistroPrep() if (FileFind("/Home/Downloads/Blog/YouTube.TXT.Z")) Sort("/Home/Downloads/Blog/YouTube.TXT.Z",,2); - //Once in a while, do $LK,"::/Home/Downloads/Utils/DblSpaceScan.CPP"$. + //Once in a while, do $LK,"~/Downloads/Utils/DblSpaceScan.CPP"$. CursorRem("/*"); DelTree("/Demo/*.BI*"); @@ -223,7 +220,7 @@ I64 MakeLineRepFile() return res; } -U0 TOSDistroPrep() +U0 StaffDistroPrep() {/*This is the TempleOS internal distro. Only run this on a virtual machine, not bare metal hardware because it's settings could cause problems. The hard drive must be partitioned. Install Std Distro, then @@ -233,17 +230,18 @@ install this on top. DistroPrep; Auto(TOS_DVD_CFG); MakeOSDrvBootInstall('C','T'); + Fmt('B',,FALSE,FSt_REDSEA); DelTree(TOS_DISTRO_DIR); CopyTree("C:/",TOS_DISTRO_DIR "/"); Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); } -U0 MakeTOSDistro() +U0 MakeStaffDistro() { - TOSDistroPrep; - ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, + StaffDistroPrep; + ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); - DefinePrint("DD_TEMPLEOSTS_SIZE", - "Download $TX,"TempleOS V4.06",D="DD_OS_NAME_VERSION"$ - T.S. Company Internal Distro (%0.1f MB)", + DefinePrint("DD_TEMPLEOSSTAFF_SIZE", + "Download $TX,"TempleOS V4.08",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'); } @@ -267,6 +265,7 @@ I call $LK,"MakeBootDrvFile",A="FF:::/Demo/AcctExample/TOSDistro.CPP,MakeBootRes MakeBootRescueDrvFile; Auto(TOS_DVD_DBG_CFG); MakeOSDrvBootInstall('C','T'); + Fmt('B',,FALSE,FSt_REDSEA); DelTree(TOS_DISTRO_DIR); CopyTree("C:/",TOS_DISTRO_DIR "/"); Del(TOS_DISTRO_DIR "/" KERNEL_BIN_C); @@ -275,10 +274,10 @@ I call $LK,"MakeBootDrvFile",A="FF:::/Demo/AcctExample/TOSDistro.CPP,MakeBootRes U0 MakeDbgDistro() { DbgDistroPrep; - ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, + ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSDBG_SIZE", - "Download $TX,"TempleOS V4.06",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - Debug Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -289,6 +288,7 @@ U0 StdDistroPrep() DistroPrep; Auto(STD_DISTRO_DVD_CFG); MakeOSDrvBootInstall('C','T'); + Fmt('B',,FALSE,FSt_REDSEA); DelTree(TOS_DISTRO_DIR); CopyTree("C:/",TOS_DISTRO_DIR "/"); DelTree(TOS_DISTRO_DIR "/Home"); @@ -300,8 +300,20 @@ U0 StdDistroPrep() U0 MakeStdDistro() { StdDistroPrep; - ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, + ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); + DefinePrint("DD_TEMPLEOSCD_SIZE", + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)", + 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); + Drv('C'); +} +U0 MakeStdRedSeaDistro() +{ + StdDistroPrep; + RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); + DefinePrint("DD_TEMPLEOSCD_RS_SIZE", + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1f MB)", + 0.1*(10*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); Drv('C'); } @@ -323,10 +335,10 @@ Demos, Documentation. U0 MakeLiteDistro() { LiteDistroPrep; - ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, + ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSLITE_SIZE", - "Download $TX,"TempleOS V4.06",D="DD_OS_NAME_VERSION"$ - Lite Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - Lite Distro (%0.1f MB)", 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); Drv('C'); } @@ -356,11 +368,20 @@ FileManager, WindowManager, PCSpeaker, Documentation. U0 MakeUltraDistro() { UltraDistroPrep; - ISOFileCreate(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, + ISO9660ISO(TOS_ISO_NAME,TOS_DISTRO_DIR "/*",, TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); DefinePrint("DD_TEMPLEOSULTRA_SIZE", - "Download $TX,"TempleOS V4.06",D="DD_OS_NAME_VERSION"$ - UltraLite Distro (%0.1f MB)", - 0.1*(10*Size(TOS_ISO_NAME,"+s")/1024/1024)); + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2f MB)", + 0.01*(100*Size(TOS_ISO_NAME,"+s")/1024/1024)); + Drv('C'); +} +U0 MakeUltraRedSeaDistro() +{ + UltraDistroPrep; + RedSeaISO(TOS_ISO_C_NAME,TOS_DISTRO_DIR,TOS_DISTRO_DIR BOOT_DIR_KERNEL_BIN_C); + DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE", + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2f MB)", + 0.01*(100*Size(TOS_ISO_C_NAME,"+s")/1024/1024)); Drv('C'); } @@ -368,26 +389,38 @@ U0 UpdateISODocDefines() { try { DefinePrint("DD_TEMPLEOSCD_SIZE", - "Download $TX,"TempleOS V4.06",D="DD_OS_NAME_VERSION"$ - Standard Distro (%0.1f MB)", + "Download $TX,"TempleOS V4.08",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_TEMPLEOSCD_RS_SIZE", + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - Standard RedSea Distro (%0.1f MB)", + 0.1*(10*Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024/1024)); + DefinePrint("DD_TEMPLEOSCD_RS_K_SIZE", + "%d KB",Size("D:/Wb/TempleOSCDRS.ISO","+s")/1024); + DefinePrint("DD_TEMPLEOSULTRA_SIZE", - "Download $TX,"TempleOS V4.06",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.1f MB)", - 0.1*(10*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024)); + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - UltraSmall Distro (%0.2f MB)", + 0.01*(100*Size("D:/Wb/TempleOSUltra.ISO","+s")/1024/1024)); DefinePrint("DD_TEMPLEOSULTRA_K_SIZE", "%d KB",Size("D:/Wb/TempleOSUltra.ISO","+s")/1024); + + DefinePrint("DD_TEMPLEOSULTRA_RS_SIZE", + "Download $TX,"TempleOS V4.08",D="DD_OS_NAME_VERSION"$ - UltraSmall RedSea Distro (%0.2f MB)", + 0.01*(100*Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024/1024)); + DefinePrint("DD_TEMPLEOSULTRA_RS_K_SIZE", + "%d KB",Size("D:/Wb/TempleOSUltraRS.ISO","+s")/1024); } catch Fs->catch_except=TRUE; } - UpdateISODocDefines; public U0 MakeDistrosAndBackUp() { SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$ progress4=*progress4_desc=0; - progress4_max=14; + progress4_max=19; AutoComplete; WinBorder; WinMax; @@ -401,11 +434,23 @@ public U0 MakeDistrosAndBackUp() MakeStdDistro; progress4++; DocClear; - Copy(TOS_ISO_NAME,"D:/Wb/TempleOSCD.ISO"); progress4++; + Move(TOS_ISO_NAME,"D:/Wb/TempleOSCD.ISO"); progress4++; + + MakeStdRedSeaDistro; progress4++; + DocClear; + Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSCDRS.ISO"); progress4++; MakeUltraDistro; progress4++; DocClear; - Copy(TOS_ISO_NAME,"D:/Wb/TempleOSUltra.ISO"); progress4++; + Move(TOS_ISO_NAME,"D:/Wb/TempleOSUltra.ISO"); progress4++; + + MakeUltraRedSeaDistro; progress4++; + DocClear; + Move(TOS_ISO_C_NAME,"D:/Wb/TempleOSUltraRS.ISO"); progress4++; + + MakeStaffDistro; progress4++; + DocClear; + Move(TOS_ISO_NAME,"D:/Wb/TempleOSStaff.ISO"); progress4++; UpdateISODocDefines; diff --git a/Demo/AcctExample/TOSHolySpirit.CPP b/Demo/AcctExample/TOSHolySpirit.CPP index eb0631a..6e85789 100644 --- a/Demo/AcctExample/TOSHolySpirit.CPP +++ b/Demo/AcctExample/TOSHolySpirit.CPP @@ -15,7 +15,11 @@ U0 BadCodeJump() DocDel(doc); tempde=tempde->next; } - num=KbdMouseEvtTime>>GOD_BAD_BITS%cnt; + + FifoU8Flush(god.fifo); + GodBitsIns(GOD_GOOD_BITS,KbdMouseEvtTime>>GOD_BAD_BITS); + num=GodBits(GOD_GOOD_BITS)%cnt; + tempde=tempde1; while (tempde) { num-=tempde->user_data; @@ -30,7 +34,7 @@ U0 BadCodeJump() Free(st); } -U8 *WebBookMarks(U8 *filename="::/Home/Downloads/Blog/Bookmarks.html") +U8 *WebBookMarks(U8 *filename="~/Downloads/Blog/Bookmarks.html") { U8 *st; CDocEntry *doc_e; @@ -190,10 +194,11 @@ class CRandDecForm I64 sec; }; -class CRandHexForm +class CRandHex5Form { U8 tag[STR_LEN]; - U8 special[STR_LEN] fmtstr "$$DA-P,A=\"Line (Hex):%s\"$$\n"; + U8 special[STR_LEN] fmtstr "$$DA-P-TRM,LEN=5," + "A=\"Line (5-Digit Hex):%5s\"$$\n"; I64 timestamp; I64 cert; I64 min; @@ -618,7 +623,7 @@ U0 InsMyURL() } break; case: - if (DocForm(url(CRandHexForm *))) { + if (DocForm(url(CRandHex5Form *))) { "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="http://qrng.anu.edu.au/NIST.php"; @@ -627,7 +632,7 @@ U0 InsMyURL() } break; case: - if (DocForm(url(CRandHexForm *))) { + if (DocForm(url(CRandHex5Form *))) { "$$TX,\"Guidelines for Talking with God\"," "HTML=\"http://www.templeos.org/Wb/Adam/God/HSNotes.html\"$$\n"; tag="https://www.fourmilab.ch/hotbits/secure_generate.html"; @@ -677,5 +682,5 @@ U0 InsMyURL() Free(url); } -if (FileFind("::/Home/Downloads/Words/LinuxDict.TXT")) - GodInit("::/Home/Downloads/Words/LinuxDict.TXT"); +if (FileFind("~/Downloads/Words/LinuxDict.TXT")) + GodInit("~/Downloads/Words/LinuxDict.TXT"); diff --git a/Demo/AcctExample/TOSMisc.CPP b/Demo/AcctExample/TOSMisc.CPP index 94bf921..f8f99d2 100644 --- a/Demo/AcctExample/TOSMisc.CPP +++ b/Demo/AcctExample/TOSMisc.CPP @@ -124,7 +124,7 @@ public U0 JukeSong(I64 num) AutoComplete; if (!fg_on) FrameGrabberToggle; - JukeSongsPuppet("::/Home/Downloads/Psalmody",,num,num+1); + JukeSongsPuppet("~/Downloads/Psalmody",,num,num+1); if (fg_on) FrameGrabberToggle; } @@ -134,7 +134,7 @@ public U0 JukeLines(I64 start_line,I64 end_line) AutoComplete; if (!fg_on) FrameGrabberToggle; - JukeSongsPuppet("::/Home/Downloads/Psalmody",,start_line*5,end_line*5); + JukeSongsPuppet("~/Downloads/Psalmody",,start_line*5,end_line*5); if (fg_on) FrameGrabberToggle; } @@ -273,7 +273,7 @@ U0 AfterEgyptInAction() WinMax; if (!fg_on) PopUp("Sleep(50);FrameGrabberToggle;"); - Ed("::/Home/Videos/AfterEgypt.TXT.Z"); + Ed("~/Videos/AfterEgypt.TXT.Z"); Msg(MSG_KEY_DOWN_UP,CH_SPACE,0x3900000039); // ExeFile("::/Apps/AfterEgypt/Run"); SettingsPop; @@ -289,7 +289,7 @@ U0 CodeWalkThru() WinMax; if (!fg_on) PopUp("Sleep(50);FrameGrabberToggle;"); - Ed("::/Home/Videos/RandomCode.TXT.Z"); + Ed("~/Videos/RandomCode.TXT.Z"); SettingsPop; Msg(MSG_KEY_DOWN_UP,'b',0x83000000830); // tos_code_walk_thru++; @@ -300,7 +300,7 @@ U0 TempleOSTheme() { if (!fg_on) PopUp("Sleep(50);FrameGrabberToggle;"); - ExeFile("::/Home/Downloads/Graphics/TempleOSTheme.CPP"); + ExeFile("~/Downloads/Graphics/TempleOSTheme.CPP"); DocClear; } @@ -310,6 +310,6 @@ U0 TOSJukeVideo(I64 start=0,I64 end=10) Free(buf); AutoComplete; FrameGrabberToggle; - JukeSongsPuppet("::/Home/Downloads/Psalmody",,start,end); + JukeSongsPuppet("~/Downloads/Psalmody",,start,end); FrameGrabberToggle; } diff --git a/Demo/AcctExample/TOSToHtml.CPP b/Demo/AcctExample/TOSToHtml.CPP index 9a96047..23d41c1 100644 --- a/Demo/AcctExample/TOSToHtml.CPP +++ b/Demo/AcctExample/TOSToHtml.CPP @@ -1,4 +1,4 @@ -//This is a customized version of $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$. +//This is a customized version of $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$. #help_index "DolDoc/Conversion" //See $LK,"::/Doc/Credits.TXT"$. @@ -33,25 +33,25 @@ U0 HtmlPutS(CDoc *doc,I64 u32_attr,I64 *_old_u32_attr, } while (*_col&7); break; - sub_switch_start: + start: case 'ã': ptr="pi"; break; case 'é': ptr="theta"; break; case 'è': ptr="phi"; break; case 'ê': ptr="omega"; break; case 'ì': ptr="inf"; break; case 'æ': ptr="u"; break; - sub_switch_end: + end: DocPrint(doc,ptr); *_col=*_col+StrLen(ptr); break; - sub_switch_start: + start: case CH_SHIFT_SPACE: ptr=" "; break; case '&': ptr="&"; break; case '<': ptr="<"; break; case '>': ptr=">"; break; case '"': ptr="""; break; - sub_switch_end: + end: DocPrint(doc,ptr); *_col=*_col+1; break; @@ -83,7 +83,7 @@ U8 *URLBibleGateway(U8 *src) { U8 buf[STR_LEN],*dst=buf; if (!MemCmp(src,"BF:",3)) - src+=3; + src+=3; while (*src) { if (*src==CH_SPACE || *src==',') *dst++='+'; @@ -92,8 +92,12 @@ U8 *URLBibleGateway(U8 *src) src++; } *dst=0; - return MStrPrint( - "http://www.biblegateway.com/passage/?search=%s&version=NIV",buf); + if (StrOcc(buf,'-')) + return MStrPrint( + "http://www.biblegateway.com/passage/?search=%s&version=NIV",buf); + else + return MStrPrint( + "http://www.biblegateway.com/verse/en/%s",buf); } U8 *TOSLinkCvt1(U8 *link_st) @@ -122,12 +126,8 @@ U8 *TOSLinkCvt1(U8 *link_st) Yield; if (!bible) bible=Adam("DocRead(\"%s\");",filename); - if (DocFind(bible,num,needle)) { - if (StrOcc(link_st,'-')) - res=URLBibleGateway(link_st); - else - res=TOSLinkCvt2(filename,bible->cur_entry->y+1); - } + if (DocFind(bible,num,needle)) + res=URLBibleGateway(link_st); LBtr(&locks,0); break; default: @@ -171,7 +171,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";
    @@ -393,7 +393,7 @@ U0 TOSWebFile(U8 *name)
     	  "\n"
    -	  "\n",
    +	  "\n",
     
     	  " and select "Data", "List" or "Check Box"
    +{//Use  and sel "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";
    diff --git a/Demo/DolDoc/MenuButton.CPP b/Demo/DolDoc/MenuButton.CPP
    index 9c1d237..49007c1 100644
    --- a/Demo/DolDoc/MenuButton.CPP
    +++ b/Demo/DolDoc/MenuButton.CPP
    @@ -27,7 +27,7 @@ U0 MenuButton()
       Bool done=FALSE;
       I64 i,j=0,freq=100;
       I64 old_flags=DocPut->flags;
    -//This allows keyboard navigation to skip nonselectible entries.
    +//This allows keyboard navigation to skip nonselible entries.
       DocPut->flags|=DOCF_FORM;
       do {
         DocClear;
    diff --git a/Demo/DolDoc/NumBible.CPP b/Demo/DolDoc/NumBible.CPP
    index 07a825e..4dbcf55 100644
    --- a/Demo/DolDoc/NumBible.CPP
    +++ b/Demo/DolDoc/NumBible.CPP
    @@ -4,7 +4,7 @@
     U0 NumBible()
     {
       CDoc *doc_in=DocRead("::/Misc/Bible.TXT.Z",DOCF_PLAIN_TEXT_TABS),
    -	*doc_out=DocNew("::/Home/NumBible.TXT.Z");
    +	*doc_out=DocNew("~/DemoNumBible.TXT.Z");
       CDocEntry *doc_e=doc_in->root.next;
       while (doc_e!=doc_in) {
         if (doc_e->type_u8==DOCT_TEXT) {
    diff --git a/Demo/Dsk/DataBase.CPP b/Demo/Dsk/DataBase.CPP
    index 2205def..6bfa193 100644
    --- a/Demo/Dsk/DataBase.CPP
    +++ b/Demo/Dsk/DataBase.CPP
    @@ -1,4 +1,4 @@
    -#define DB_FILENAME	"::/Home/DataBaseDemo.BIN"
    +#define DB_FILENAME	"~/DataBaseDemo.BIN"
     #define DB_MAX_ACCT	100
     #define DB_ACCT_BLKS	1
     
    diff --git a/Demo/Dsk/DskRaw.CPP b/Demo/Dsk/DskRaw.CPP
    index 058c91e..b9091f0 100644
    --- a/Demo/Dsk/DskRaw.CPP
    +++ b/Demo/Dsk/DskRaw.CPP
    @@ -17,19 +17,19 @@ U0 RawAccess(I64 drv_let=0)
       //Temporarily change partition range to full device.
       //Normally, you are limited to just your partition.
       //This is obviously $BK,1$dangerous$BK,0$!
    -  old_offset=dv->base_offset;
    +  old_offset=dv->drv_offset;
       old_size  =dv->size;
    -  dv->base_offset=bd->min_blk;
    -  dv->size=bd->max_blk-bd->min_blk+1;
    +  dv->drv_offset=0;
    +  dv->size=bd->max_blk+1;
     
       try {
    -    blk=GetI64("Blk to Read: ",old_offset,bd->min_blk,bd->max_blk);
    +    blk=GetI64("Blk to Read: ",old_offset,0,bd->max_blk);
         RBlks(dv,buf,blk,1);
         D(buf,BLK_SIZE);
       } catch
         PutExcept;
     
    -  dv->base_offset=old_offset;
    +  dv->drv_offset=old_offset;
       dv->size  =old_size;
     
       Free(buf);
    diff --git a/Demo/Games/BomberGolf.CPP b/Demo/Games/BomberGolf.CPP
    index 3cd7dd1c8c49a0f64997e4d928f8dad040fe098b..db1fda38852fbe4e322b4439415045d28efd5687 100644
    GIT binary patch
    delta 22
    ecmbO_N@ED$7{)h&@J(QR
    zQwZM_#y5lT&0u_U2;UsWw}9|1V0=pm-x9_*G=K;g8mMq_sW`c-a4Dyxre)@(DmXa?
    zyT(Uwa%#8-#fN*kgm~y1X`)I-a&l@IYqQ$e_h3#FF6ZEaqRf(11+ApSl9JS-_{`k&;%GEwv9{GJ
    zo=!SSHt-ast%D?Ic-aBA
    z2IOEgKe!h;XBH*rq=H-w4%P~7sKdd$N(e7f7m+7*jKF4PrYUGBmKbPqDJWoZhpv$^
    z#KRz;Bj-bdSg`KYoZ?gkkP(?Sn6aS%iaP}baM;^Iyy%%%l3G-dpOaXUs=>vnprC;z
    z65%nZsijd;qN)LlP<aGgb$Mt8EBzDk0y2oeB1of`VI7YN`gZ0LY7q
    zkQA(-rlwF*Vh4AX5hUmo6d=;JCBdMSP^$nA8fXZV=-R^6gCrGTsTYzj4Z-;mntWkG
    z;Pk726t*x4P#)GbRM3QmF8=U^g)pjSO??J
    zsR1qXGGld6`H1i)CB(6WIZ6;JD3p}w+QM7}4IEH7f|4CX7*cA1iU1fNp)5^7Bh$v%
    z02FAP;CRK69zmG^oXlWGfcy>(Eu;7lXo`eMhUlZ)4i6((C_&5COjUH1vEYOYvJVn`
    zP=y+q+J>5#iZ!jdI3YO*sgTe$GS)RU&?+f`W>F}|KnLtYkQR(|te^l7Rn8IvTLWt@
    zPH_29fnZjGm>_p4DAa-r1rS-wRg0)5og969;sYE*JmLdFf;r8(oL!7Pjg1t*1{EZh
    zWJIGVh_wY}f@%XD1091}ooXWk9bFR$)5Ji>2+ZPAP^gA;s!a`abdAB{)uyI8hF}&*
    z1&qT5s#Kiv^K%pea`H=@5_57iLM;@ubU?L2dCZMy5JO1_lN?#s&rkU|T@Soq`K;GV@Z6H2gw+e00>n
    zjsu064oaBmsKLAj*9fr#7B`?cQBZ(*!4Rwl97CZ73Z8kHB^nUdLLwMmFd2Y+4Ym**
    z+X}GYFo1bEBsCQrnh@Q=sU;pe`I+m8?JLl&X0x{1;?cPq7n@qXOH+`4^Ov{c-LTOO>2mh
    zYegnR1};_$k_gC2tW<#N4ld8kONZzVaCCNs=?qFOE=dF#s~(f54iN-tg}4M1Ss-tM
    ze3Md?SRS8QVygye34vW&Qd9{o=CPza1%=}B%#!2`1r7Jq66cJ>A`KlkN1tF}xSa6E$2I3#h_azTZyxIm>&a$-qx2Dm&4C@pcVNKP#%0r?!BaPkX4TyWHY
    zn6+G7(Bx>%#lXY>0h1UQz-&ftW{?oqpZ^f>@Bjb*cmMzY&jn+!FfcHHq`(6A|Ns9F
    zQhpqy0;J{k|NsAg{r~?TE&yVHY}gG_0b+mzKxSMA34j~XLIzn1js%z=fB*mgAEXk=kD&PZ0CFKa$a&C&42nexTnN&R;zE!QLH1&}5F`Ln
    z$p!M=o&W#;Be@VH1d;JOa|^kP+;Bz
    z1r#*cp>3);
     }
     
    +F64 claws_down;
    +
    +#define HAND_X	(1.0-claws_down)*(0.3*w)+claws_down*(0.4*w)
    +#define HAND_Y	(1.0-claws_down)*(h-125)+claws_down*h
    +
    +
    +
    +
    +$SP,"<2>",BI=2$
    +$SP,"<3>",BI=3$
    +
    +
    +
    +U0 ClawDraw(CDC *dc,I64 x1,I64 y1,I64 x2,I64 y2,I64 w,I64 segments,Bool talon)
    +{
    +  I64 i,j;
    +  for (i=0,j=segments;ipen_width=w;
    +    dc->color=BLACK;
    +    GrLine3(dc,
    +	j*x1/segments+i*x2/segments,
    +	j*y1/segments+i*y2/segments,0,
    +	(j-1)*x1/segments+(i+1)*x2/segments,
    +	(j-1)*y1/segments+(i+1)*y2/segments,0);
    +    dc->pen_width=w-2;
    +    dc->color=YELLOW;
    +    GrLine3(dc,
    +	j*x1/segments+i*x2/segments,
    +	j*y1/segments+i*y2/segments,0,
    +	(j-1)*x1/segments+(i+1)*x2/segments,
    +	(j-1)*y1/segments+(i+1)*y2/segments,0);
    +  }
    +  if (talon) {
    +    if (y1",BI=2$);
    +    else
    +      Sprite3B(dc,x1,y1,0,$IB,"<3>",BI=3$);
    +  }
    +}
    +
    +U0 ClawsDraw(CTask *task,CDC *dc)
    +{
    +  F64 claws_up=1.0-claws_down;
    +  I64 w=task->pix_width,h=task->pix_height;
    +  dc->flags|=DCF_SYMMETRY;
    +  DCSymmetrySet(dc,w>>1,0,w>>1,1);
    +
    +  ClawDraw(dc,HAND_X-30,HAND_Y-50*claws_up,HAND_X-5,HAND_Y,	22,4,TRUE);
    +  ClawDraw(dc,HAND_X-10,HAND_Y-60*claws_up,HAND_X,HAND_Y,	22,4,TRUE);
    +  ClawDraw(dc,HAND_X+10,HAND_Y-60*claws_up,HAND_X,HAND_Y,	22,4,TRUE);
    +  ClawDraw(dc,HAND_X+30,HAND_Y-50*claws_up,HAND_X+5,HAND_Y,	22,4,TRUE);
    +  ClawDraw(dc,HAND_X+25,HAND_Y+40*claws_up,HAND_X+5,HAND_Y,	22,4,TRUE);
    +
    +  ClawDraw(dc,HAND_X,HAND_Y,6*w/20,h,38,5,FALSE);
    +}
    +
     CDC *main_dc;
     
    -U0 DrawIt(CTask *,CDC *dc)
    +U0 DrawIt(CTask *task,CDC *dc)
     {
       main_dc->flags|=DCF_NO_TRANSPARENTS;
       GrBlot(dc,0,0,main_dc);
    +  if (claws_down)
    +    ClawsDraw(task,dc);
     }
     
     /*
    -$SP,"<2>",BI=2$
    +$SP,"<4>",BI=4$
     
     
     
    @@ -330,7 +388,7 @@ $SP,"<2>",BI=2$
     
     
     
    -$SP,"<3>",BI=3$
    +$SP,"<5>",BI=5$
     
     
     
    @@ -691,13 +749,31 @@ U0 Core0EagleDive()
       WinMgrSync;
     }
     
    +
    +Fish *FishFind(I64 x1,I64 y1,I64 *_dd)
    +{
    +  I64 dd,best_dd=MAX_I64;
    +  Fish *res=NULL,*tempf;
    +  tempf=fish_root.next;
    +  while (tempf!=&fish_root) {
    +    dd=SqrI64(tempf->p.x-x1)+SqrI64(tempf->p.y-y1);
    +    if (ddnext;
    +  }
    +  *_dd=best_dd;
    +  return res;
    +}
    +
     #define ANIMATE_MS	10
     
     U0 AnimateTask(I64)
     {//Steadily moves the airplane fwd.
    -  I64 *s2w,x1,y1,z1;
    -  F64 t0=tS,mS;
    -  Fish *tempf,*tempf1;
    +  I64 *s2w,x1,y1,z1,dx,dy,dz,dd;
    +  F64 t0=tS,mS,é,d;
    +  Fish *tempf;
       while (TRUE) {
         mS=1000*(tS-t0);
         t0=tS;
    @@ -707,21 +783,26 @@ U0 AnimateTask(I64)
           Mat4x4RotZ(s2w,-é1);
           Mat4x4RotX(s2w,-è);
           Mat4x4RotZ(s2w,-é2);
    -      x1=0;y1=0;z1=-speed*mS*COORDINATE_SCALE;
    -      Mat4x4MulXYZ(s2w,&x1,&y1,&z1);
    -      x+=x1;
    -      y+=y1;
    -      z+=z1;
    +      dx=0;dy=0;dz=1<<16;
    +      Mat4x4MulXYZ(s2w,&dx,&dy,&dz);
    +      x-=speed*mS*COORDINATE_SCALE*dx/1<<16;
    +      y-=speed*mS*COORDINATE_SCALE*dy/1<<16;
    +      z-=speed*mS*COORDINATE_SCALE*dz/1<<16;
           Free(s2w);
           x1=x/COORDINATE_SCALE; y1=y/COORDINATE_SCALE; z1=z/COORDINATE_SCALE;
     
    -      if (z1next;
    -	  if (SqrI64(tempf->p.x-x1)+
    -		SqrI64(tempf->p.y-y1)p.x;
    +	  y1-=tempf->p.y;
    +	  é=ACos((dx*x1+dy*y1)/(d*1<<16));
    +	  if (é>0 && dbest_score)
     	      best_score=game_score;
    @@ -731,9 +812,9 @@ U0 AnimateTask(I64)
     	    Snd(1000); Sleep(200); Snd(0);
     	    music.mute=FALSE;
     	  }
    -	  tempf=tempf1;
     	}
           } else {
    +	claws_down=0;
     	if (-ã/4<=è<=ã/4)
     	  speed+=0.0005;
     	else if (-3*ã/4<=è<=3*ã/4)
    @@ -799,6 +880,7 @@ U0 Init(I64 _mp_cnt)
       x=MAP_WIDTH>>1 *COORDINATE_SCALE*MAP_SCALE;
       y=MAP_HEIGHT>>1*COORDINATE_SCALE*MAP_SCALE;
       z=64		 *COORDINATE_SCALE*MAP_SCALE;
    +  claws_down=0;
     
       for (i=1;i",BI=7$	$SP,"<8>",BI=8$
     
     
     $SP,"<9>",BI=9$
    +
    +	$SP,"<10>",BI=10$
    +
    +
    +
    +
    +
    +
    +
     $BG$
     #define ANIMAL_WIDTH	20
     #define ANIMAL_HEIGHT	16
    @@ -53,62 +62,93 @@ class Animal
     } *a;
     
     //************************************
    -#define COURSE_LEN	(MAP_HEIGHT*2)
    -I32 *r_x,*r_y,*r_width;
    -I64 river_lo,river_hi;
    +#define WATERFALL_HEIGHT	(MAP_HEIGHT/20)
    +#define WATERFALL_DROPS		512
    +#define WATERFALL_ACCELERATION	10
    +#define COURSE_LEN		(MAP_HEIGHT*2)
    +I32 *r_x,*r_y,*r_width,*wfd_x;
    +F64 *wfd_t0,waterfall_tf;
    +I64 river_lo,river_hi,waterfall_x,waterfall_y,waterfall_width;
     U0 RiverNew()
     {
       r_x=MAlloc(COURSE_LEN*sizeof(I32));
       r_y=MAlloc(COURSE_LEN*sizeof(I32));
       r_width=MAlloc(COURSE_LEN*sizeof(I32));
       river_lo=river_hi=COURSE_LEN/2;
    +  wfd_x=MAlloc(WATERFALL_DROPS*sizeof(I32));
    +  wfd_t0=MAlloc(WATERFALL_DROPS*sizeof(F64));
    +  waterfall_tf=Sqrt(2*WATERFALL_HEIGHT/WATERFALL_ACCELERATION);
     }
     
     U0 RiverMake()
     {
    -  I64 i,x,y,dx,dy,w,old_x,old_y;
    +  I64 i,j,k,x,y,dx,dy,w,old_x,old_y;
     //Plan lower course of river
       old_x=-1;old_y=-1;
    -  x=MAP_WIDTH<<32/2; y=MAP_HEIGHT<<32/2;
    +  x=MAP_WIDTH<<32/2; y=(MAP_HEIGHT+WATERFALL_HEIGHT)<<32/2;
       dx=0; dy=1<<32;
    -  w=20<<32;
    -  i=COURSE_LEN/2;
    +  w=15<<32;
    +  i=(COURSE_LEN+WATERFALL_HEIGHT)/2;
       while (y.i32[1]=MAP_BORDER && i>=0) {
         if (old_x.i32[1]!=x.i32[1]||old_y.i32[1]!=y.i32[1]) {
           r_x[i]=x.i32[1]; r_y[i]=y.i32[1]; r_width[i]=w.i32[1];
           river_lo=i--;
           old_x=x; old_y=y;
         }
    -    dx=ClampI64(dx+RandI32/64,-MAX_I32,MAX_I32);
    +    dx=ClampI64(dx+RandI32/64,-MAX_I32,MAX_I32)+MAX_I32/256;
         dy=ClampI64(dy+RandI32/64,-MAX_I32,0);
    -    x+=dx; y+=dy;
         w=ClampI64(w+RandI32*2,10*MAX_U32,150*MAX_U32);
    +    x+=dx; y+=dy;
       }
     
    +  //Plot waterfall cliff
    +  Sprite3B(map_dc,waterfall_x,waterfall_y,0,$IB,"<10>",BI=10$);
    +
       //Plot sand bar
       x=0; y=0;
       for (i=river_lo;i<=river_hi;i++) {
    -    map_dc->color=YELLOW;
    -    map_dc->pen_width=r_width[i]+5;
    -    GrPlot3(map_dc,r_x[i]+x.i32[1],r_y[i]+y.i32[1],0);
    -
    +    if (!((MAP_HEIGHT-WATERFALL_HEIGHT)/2-9color=YELLOW;
    +      map_dc->pen_width=r_width[i]+5;
    +      GrPlot3(map_dc,r_x[i]+x.i32[1],r_y[i]+y.i32[1],0);
    +    }
         x=ClampI64(x+RandI32,-6*MAX_U32,6*MAX_U32);
         y=ClampI64(y+RandI32,-6*MAX_U32,6*MAX_U32);
       }
    @@ -126,6 +166,8 @@ U0 RiverDel()
       Free(r_x);
       Free(r_y);
       Free(r_width);
    +  Free(wfd_x);
    +  Free(wfd_t0);
     }
     
     //************************************
    @@ -182,16 +224,27 @@ U0 RiverDropsNext(CTask *mem_task)
     
     U0 RiverDropsDraw(CDC *dc,I64 cx,I64 cy)
     {
    +  I64 i;
    +  F64 t=tS;
       RiverDrop *tempr;
    -  dc->color=LTBLUE;
       while (LBts(&rd_lock,0))
         Yield;
       tempr=rd_root.next;
       while (tempr!=&rd_root) {
    +    if ((MAP_HEIGHT-WATERFALL_HEIGHT)/2idx]
    +	  <(MAP_HEIGHT+WATERFALL_HEIGHT)/2)
    +      dc->color=WHITE;
    +    else
    +      dc->color=LTBLUE;
         GrPlot(dc,r_x[tempr->idx]+tempr->dx-cx,r_y[tempr->idx]+tempr->dy-cy);
         tempr=tempr->next;
       }
       LBtr(&rd_lock,0);
    +
    +  dc->color=WHITE;
    +  for (i=0;i>1+
    +	SqrI64(y-(waterfall_y+WATERFALL_HEIGHT/2))<2500)
    +    return FALSE;
       for (j=-4;j<=2;j++)
         for (i=-4;i<=4;i++) {
           c=GrPeek(map_dc,x+i,y+j);
    @@ -353,10 +409,10 @@ U0 AnimateTask(CTask *parent)
     	  tempa->dy+=f*dy;
     	}
     
    -	//Reselect buddy about every NUM_ANIMALS*10ms=5.12 seconds
    +	//Resel buddy about every NUM_ANIMALS*10ms=5.12 seconds
     	tempa1=&a[tempa->buddy];
     	if (tempa1->dead || i==updates%NUM_ANIMALS) {
    -	  BuddySelect(i);
    +	  BuddySel(i);
     	  tempa1=&a[tempa->buddy];
     	}
     
    @@ -494,7 +550,7 @@ U0 ReInit()
         else
           a[i].imgs=bull_imgs;
         a[i].frame0=RandU16&3;
    -    BuddySelect(i);
    +    BuddySel(i);
       }
       outside_cnt=NUM_ANIMALS;
       gate_t=0;
    @@ -505,7 +561,6 @@ U0 ReInit()
     
     U0 Init()
     {
    -  I64 i;
       RiverNew;
       rd_lock=0;
       QueInit(&rd_root);
    @@ -526,10 +581,6 @@ U0 RawHide()
     {
       I64 msg_code,a1,a2;
       SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
    -  PopUpOk(
    -	"Coral the cattle.  The coral is in the\n"
    -	"upper-left corner if you scroll.\n\n"
    -	"Scroll with $$GREEN$${CTRL-Left Grab}$$FG$$.\n");
       MenuPush(
     	"File {"
     	"  Abort(,CH_SHIFT_ESC);"
    @@ -540,6 +591,13 @@ U0 RawHide()
     	"}"
     	);
       Fs->song_task=Spawn(&SongTask,NULL,"Song",,Fs);
    +
    +  PopUpOk(
    +	"Coral the cattle.  The coral is in the\n"
    +	"upper-left corner if you scroll.\n\n"
    +	"Keep holding the $$GREEN$$$$FG$$ key and\n"
    +	"scroll with $$GREEN$${CTRL-Left Grab}$$FG$$.");
    +
       Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS
     	-WIF_SELF_BORDER-WIF_SELF_GRAB_SCROLL-WIF_FOCUS_TASK_MENU;
       AutoComplete;
    @@ -587,4 +645,210 @@ RawHide;
     úÿÿÿðÿÿÿúÿÿÿ
     ÿÿÿÿðÿÿÿÿÿÿÿ
     ðÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ
    -ÿÿÿÿÿÿÿÿðÿÿÿúÿÿÿzöÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzöÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚöÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚöÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿêÿÿÿ" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    \ No newline at end of file
    +ÿÿÿÿÿÿÿÿðÿÿÿúÿÿÿzöÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzöÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚöÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚöÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿêÿÿÿ" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +ò ÊÿÿÿõÿÿÿxDÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +ÿÿÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿÿÿ
    +
    +
    +
    +ÿÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +ÿÿÿÿÿÿÿ
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +ÿÿÿÿÿÿ
    +
    +
    +
    +
    +ÿÿÿÿÿ
    +
    +
    +
    +
    +
    +
    +
    +ÿÿÿ
    +
    +
    +
    +
    +
    +
    +
    +
    +ÿÿÿ
    +
    +
    +
    +
    +
    +
    +
    +
    +ÿÿ
    +
    +
    +
    +
    +ÿ
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +	
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +	
    +
    +
    +
    +
    +
    +
    +	
    +
    +
    +
    +
    +
    +
    +
    +	
    +	
    +		ÿÿÿÿÿ	ÿÿÿÿÿÿ	ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ	ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ	ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
    \ No newline at end of file
    diff --git a/Demo/Games/Squirt.CPP b/Demo/Games/Squirt.CPP
    index 7c808cc15832b55e5f6ac7854d7c60c755042ceb..41fc0717e88f72409703f9bae5d2eb9b3e715fb0 100644
    GIT binary patch
    delta 14
    VcmZql_~X9e4-aGfW+vYMVgNC~1^fU2
    
    delta 19
    acmez4-srL64-Z>uUTJY^%I3d3|HS}Zpb0Pl
    
    diff --git a/Demo/Games/Wenceslas.CPP b/Demo/Games/Wenceslas.CPP
    index b1d1450..0d664c9 100644
    --- a/Demo/Games/Wenceslas.CPP
    +++ b/Demo/Games/Wenceslas.CPP
    @@ -86,11 +86,6 @@ RegExeBranch("TempleOS/Wenceslas");
     CSprite *king_imgs[4]={$IB,"<2>",BI=2$,$IB,"<1>",BI=1$,$IB,"<2>",BI=2$,$IB,"<3>",BI=3$};
     CSprite *peasant_imgs[4]={$IB,"<5>",BI=5$,$IB,"<4>",BI=4$,$IB,"<5>",BI=5$,$IB,"<6>",BI=6$};
     
    -#define NUM_FLAKES	0x8000
    -class Flake
    -{
    -  U16 x,y;
    -} flakes[NUM_FLAKES];
     
     #define NUM_TREES	8
     class Tree
    @@ -99,7 +94,10 @@ class Tree
       I64 fire_frame_idx;
     } trees[NUM_TREES];
     
    -I64 snow_x,snow_y;
    +U64 snow_x,snow_y,new_snow_mS;
    +#define SNOW_TILE_SIZE	128
    +CDC *snow_tile;
    +
     I64 king_x,king_y,king_mS,king_phase,
         not_stopped_cnt;
     F64 king_timeout,king_é,t0,tf,door_open_t0;
    @@ -122,7 +120,7 @@ class Step
     
     U0 DrawIt(CTask *task,CDC *dc)
     {
    -  I64 r[16],i,w=task->pix_width,h=task->pix_height;
    +  I64 r[16],i,w=task->pix_width,h=task->pix_height,x,y;
       U8 *img;
       CSprite *temps;
       Step *tempst;
    @@ -206,10 +204,10 @@ U0 DrawIt(CTask *task,CDC *dc)
       }
     
       dc->pen_width=1;
    -  dc->color=WHITE;
    -  for (i=0;ipix_width,
    -	  (flakes[i].y+snow_y)%task->pix_height);
    +  dc->color=ROP_MONO|WHITE;
    +  for (y=snow_y%SNOW_TILE_SIZE-SNOW_TILE_SIZE;y<=h;y+=SNOW_TILE_SIZE)
    +    for (x=snow_x%SNOW_TILE_SIZE-SNOW_TILE_SIZE;x<=w;x+=SNOW_TILE_SIZE)
    +      GrBlot(dc,x,y,snow_tile);
     
       if (tf) {
         dc->color=LTRED;
    @@ -266,12 +264,10 @@ U0 Init()
       I64 i,min_x,max_x,min_y,max_y,
     	w=Fs->pix_width,h=Fs->pix_height;
       Peasant *tempp;
    -  snow_x=0;
    -  snow_y=0;
    -  for (i=0;i",BI=7$,&min_x,&max_x,&min_y,&max_y);
       for (i=0;i8) {
    +      new_snow_mS=0;
    +      snow_tile->color=WHITE;
    +      GrPlot(snow_tile,RandU16&(SNOW_TILE_SIZE-1),RandU16&(SNOW_TILE_SIZE-1));
    +    }
    +
         Sleep(1);
    -    animate_mS++;
    -    if (animate_mS>=250) {
    +    if (animate_mS++>=250) {
           animate_mS=0;
           animate_phase=(animate_phase+1)&3;
         }
         if (tS=250) {
    +      if (king_mS++>=250) {
     	king_mS=0;
     	king_phase|=1;
           }
    @@ -550,7 +551,7 @@ Lead peasants to fires.
     	  break;
     	case 0:
     	  switch (sc.u8[0]) {
    -	    sub_switch_start:
    +	    start:
     	      case SC_CURSOR_RIGHT:
     		if (king_x+KING_STEPpix_width-BORDER)
     		  king_x+=KING_STEP;
    @@ -571,7 +572,7 @@ Lead peasants to fires.
     		  king_y-=KING_STEP;
     		king_é=ã/2;
     		break;
    -	    sub_switch_end:
    +	    end:
     	      king_mS=0;
     	      king_phase=(king_phase+2)&2;
     	      StepNew(Fs,king_x,king_y,king_é,king_phase&2,TRUE);
    diff --git a/Demo/Games/ZoneOut.CPP b/Demo/Games/ZoneOut.CPP
    index dc3339a9dc11f9be15152b8f24403e2b9c7d403e..5b159c1d5b0ab0871be57b5578b87e22b0613390 100644
    GIT binary patch
    literal 111739
    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
    
    literal 111745
    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
    
    diff --git a/Demo/Graphics/BSpline.CPP b/Demo/Graphics/BSpline.CPP
    index 3b7cb19..c43ef87 100644
    --- a/Demo/Graphics/BSpline.CPP
    +++ b/Demo/Graphics/BSpline.CPP
    @@ -8,7 +8,7 @@ U0 BSplineDemo()
       Fs->win_inhibit=WIG_TASK_DFT-WIF_SELF_FOCUS-WIF_SELF_BORDER;
     
       DocClear;
    -  "Select ctrl points with left mouse.  Right when finished.\n";
    +  "Sel ctrl points with left mouse.  Right when finished.\n";
       DCFill;
       do {
         msg_code=GetMsg(&a1,&a2,1<n8?#tlXiar*ip8JWcjnZ*jl`3jy2$%%OirNyZVB_P4H%$!t(;*!L?6otf`
    z{Jc~yef|6*g~VcoM1|!1+=BeP)Vvaf{4|9`g@U5|^rFOEJuckd{7wKXLL`>}
    
    diff --git a/Demo/Graphics/CharAnimation.CPP b/Demo/Graphics/CharAnimation.CPP
    index 02357b6..8163d51 100644
    --- a/Demo/Graphics/CharAnimation.CPP
    +++ b/Demo/Graphics/CharAnimation.CPP
    @@ -1,6 +1,6 @@
     U8 *old_font=text.font;
     
    -// See $LK,"::/Kernel/Font8x8.CPP"$, $LK,"::/Demo/ScreenCodes.CPP"$,
    +// See $LK,"::/Kernel/FontStd.CPP"$, $LK,"::/Demo/ScreenCodes.CPP"$,
     //$LK,"::/Demo/ExtendedChars.CPP"$, and $LK,"::/Demo/Graphics/FontEd.CPP"$.
     
     U64 waves[4]={
    diff --git a/Demo/Graphics/Doodle.CPP b/Demo/Graphics/Doodle.CPP
    index ba04831..6ef9a1c 100644
    --- a/Demo/Graphics/Doodle.CPP
    +++ b/Demo/Graphics/Doodle.CPP
    @@ -26,7 +26,7 @@ U0 Doodle()
     	x1=a1; y1=a2;
     	x2=a1; y2=a2;
     	dc->color=ROP_XOR+color^TRANSPARENT;
    -	dc->pen_width=1;
    +	dc->pen_width=7;
     	while (msg_code!=MSG_IP_L_UP) {
     	  GrLine3(dc,x1,y1,0,x2,y2,0);
     	  msg_code=GetMsg(&a1,&a2,
    diff --git a/Demo/Graphics/FontEd.CPP b/Demo/Graphics/FontEd.CPP
    index 70cd947..5c61488 100644
    --- a/Demo/Graphics/FontEd.CPP
    +++ b/Demo/Graphics/FontEd.CPP
    @@ -11,7 +11,7 @@ You can load it with:
     
     If you want to change the system font permanently,
     save to a file with this font editor program
    -and cut and paste the code into $LK,"::/Kernel/Font8x8.CPP"$.
    +and cut and paste the code into $LK,"::/Kernel/FontStd.CPP"$.
     You will need to recompile Kernel by calling $LK,"MakeOSDrvBootInstall",A="MN:MakeOSDrvBootInstall"$().
     
     See $LK,"::/Demo/ExtendedChars.CPP"$, $LK,"::/Demo/Games/CharDemo.CPP"$,
    diff --git a/Demo/Graphics/Mountain.CPP b/Demo/Graphics/Mountain.CPP
    index 225f355dee1c6d7a092b188c2ef7006c281ddb0e..964a5ab76a0b1b8b1c18f415b0874f933f2c585a 100644
    GIT binary patch
    delta 35
    qcmccJ!`j=!xw)
    -    *ptr|=reverse[(0xFF00>>leading&(0x00FF<>8)];
    +    *ptr|=rev[(0xFF00>>leading&(0x00FF<>8)];
       else {
         whole_bytes=(w-leading-trailing)>>3;
         if (leading)
    -      *ptr++|=reverse[(0xFF00>>leading)&0xFF];
    +      *ptr++|=rev[(0xFF00>>leading)&0xFF];
         for (i=0;i>8];
    +      *ptr++|=rev[(0x00FF<>8];
       }
     }
      
    diff --git a/Demo/Lectures/ScreenMemory.CPP b/Demo/Lectures/ScreenMemory.CPP
    index 51306e8..dafe127 100644
    --- a/Demo/Lectures/ScreenMemory.CPP
    +++ b/Demo/Lectures/ScreenMemory.CPP
    @@ -3,7 +3,7 @@
     
     U0 PlotXY(I64 x,I64 y)
     {
    -//Screen bits are reversed
    +//Screen bits are revd
       LBts(text.vga_alias,y*GR_WIDTH+x^7);
     }
     
    @@ -29,9 +29,9 @@ U0 Main()
       OutU8(VGAP_DATA,BLUE);
       for (i=0;i<200;i++)
         PlotXY(200-i,i);
    -/*If you want a mixed color select multiple planes
    -but you have to be sure the unselected planes
    -are zero, so select them and make them zero.
    +/*If you want a mixed color sel multiple planes
    +but you have to be sure the unseled planes
    +are zero, so sel them and make them zero.
     You can't do reads on VGA memory, by the way.
     That means no read-modify-writes, too.
     */
    diff --git a/Demo/MultiCore/Clouds.CPP b/Demo/MultiCore/Clouds.CPP
    index 38627da..4b8cc22 100644
    --- a/Demo/MultiCore/Clouds.CPP
    +++ b/Demo/MultiCore/Clouds.CPP
    @@ -200,8 +200,6 @@ U0 CloudScene()
       CleanUp;
     }
     
    -//This is so I can use this file stand alone
    -//or as a component of a program.
    -#if __DEPTH__<2
    +#if __CMD_LINE__
     CloudScene;
     #endif
    diff --git a/Demo/MultiCore/Palindrome.CPP b/Demo/MultiCore/Palindrome.CPP
    index d7531b7..f5853e6 100644
    --- a/Demo/MultiCore/Palindrome.CPP
    +++ b/Demo/MultiCore/Palindrome.CPP
    @@ -36,7 +36,7 @@ U0 PDAnswer(U8 *a,I64 len)
     
     U0 MPPalindrome(I64 dummy=0)
     {
    -  nounusedwarn dummy;
    +  no_warn dummy;
       U8 *src=buf+BORDER_CHARS+size*Gs->num/mp_cnt,
     	*f,*b;
       I64 len,best=0,
    diff --git a/Demo/MultiCore/RadixSort.CPP b/Demo/MultiCore/RadixSort.CPP
    index 65d7d48..9b4e71c 100644
    --- a/Demo/MultiCore/RadixSort.CPP
    +++ b/Demo/MultiCore/RadixSort.CPP
    @@ -63,14 +63,14 @@ U0 QSortU32(I32 *base,I64 num)
     
     U0 MPSort(I64 dummy=0)
     {
    -  nounusedwarn dummy;
    +  no_warn dummy;
       QSortU32(b[Gs->num],bn[Gs->num]);
       LBtr(&mp_not_done_flags,Gs->num);
     }
     
     U0 MPRadixSortDemo(I64 dummy=0)
     {
    -  nounusedwarn dummy;
    +  no_warn dummy;
       I64 i,j,k1,k2;
       F64 t0;
       a1=MAlloc(NUM*sizeof(I32));
    diff --git a/Demo/RegistryDemo.CPP b/Demo/RegistryDemo.CPP
    index decf390..bf98d33 100644
    --- a/Demo/RegistryDemo.CPP
    +++ b/Demo/RegistryDemo.CPP
    @@ -1,4 +1,4 @@
    -/*The /Home/Registry.CPP.Z file is HolyC code.
    +/*The ~/Registry.CPP.Z file is HolyC code.
     You can execute a tree branch of it.  The Adam
     branch is executed in the Adam task boot phase.
     Normally, you will place var declarations
    diff --git a/Demo/ReverseFileExample/PoemBackward.TXT b/Demo/RevFileDemo/DemoPoemBwd.TXT
    similarity index 100%
    rename from Demo/ReverseFileExample/PoemBackward.TXT
    rename to Demo/RevFileDemo/DemoPoemBwd.TXT
    diff --git a/Demo/ReverseFileExample/Reverse.CPP b/Demo/RevFileDemo/Rev.CPP
    similarity index 73%
    rename from Demo/ReverseFileExample/Reverse.CPP
    rename to Demo/RevFileDemo/Rev.CPP
    index 8ee4d4a..703a58a 100644
    --- a/Demo/ReverseFileExample/Reverse.CPP
    +++ b/Demo/RevFileDemo/Rev.CPP
    @@ -1,11 +1,11 @@
     /*We use the internal routines from the text editor
    -to cut and paste lines to reverse the order of
    +to cut and paste lines to rev the order of
     lines in a text file.
     */
     
     Cd(__DIR__);;
     
    -U0 Reverse(U8 *in_name,U8 *out_name)
    +U0 Rev(U8 *in_name,U8 *out_name)
     {
       CDoc	*doc_in =DocRead(in_name),
     	*doc_out=DocNew(out_name);
    @@ -19,4 +19,4 @@ U0 Reverse(U8 *in_name,U8 *out_name)
       DocWrite(doc_out);
     }
     
    -Reverse("PoemBackward.TXT.Z","PoemForeward.TXT.Z");
    +Rev("DemoPoemBwd.TXT.Z","~/DemoPoemFwd.TXT.Z");
    diff --git a/Demo/Snd/WaterFowl.CPP b/Demo/Snd/WaterFowl.CPP
    index 94557817c5cf6090c312b4cd4bb0460a7a6d5875..efcdaa30e424a0e59c107a934d406f0309c3f8da 100644
    GIT binary patch
    literal 308892
    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
    
    literal 308892
    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�=bC1nU6Hjj{$V1VE(*X|{ulD@X(*
    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 + I64 i,sum=0, + lo=NUM*Gs->num/mp_cnt, //This is how to divide a job + hi=NUM*(Gs->num+1)/mp_cnt; + for (i=lo;inum,lo,hi-1,sum); + lock {grand_total+=sum;} LBtr(&mp_not_done_flags,Gs->num); } U0 Main() { I64 i; + grand_total=0; mp_not_done_flags=1<"$ -I wrote all $LK,"118,851",A="FF:::/Home/Web/LineRep.TXT,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"12.5",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$. I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS. +I wrote all $LK,"118,851",A="FF:~/Web/LineRep.TXT,Kernel.PRJ",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX,"12.5",D="DD_TEMPLEOS_AGE"$ years, full-time, including the 64-bit compiler. It was called, at various times, "$FG,4$$TX,"Hoppy",HTML="http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX,"The J Operating System",HTML="http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX,"LoseThos",HTML="http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX,"SparrowOS",HTML="http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX,"college transcripts",HTML="http://www.templeos.org/files/ASU_Transcripts.pdf"$$FG$. I've been a professional operating system developer since 1990 when I was hired to work on Ticketmaster's VAX OS. $FG,8$ * "Commodore 64" was a trademark of Commodore Business Machines. diff --git a/Demo/ToHtmlToTXTExample/HtmlGen.CPP b/Demo/ToHtmlToTXTDemo/HtmlGen.CPP similarity index 71% rename from Demo/ToHtmlToTXTExample/HtmlGen.CPP rename to Demo/ToHtmlToTXTDemo/HtmlGen.CPP index 1e0efc7..56a4fed 100644 --- a/Demo/ToHtmlToTXTExample/HtmlGen.CPP +++ b/Demo/ToHtmlToTXTDemo/HtmlGen.CPP @@ -1,17 +1,17 @@ -/* This converts $LK,"::/Demo/ToHtmlToTXTExample/InPage.TXT"$ to +/* This converts $LK,"::/Demo/ToHtmlToTXTDemo/DemoInPage.TXT"$ to an html document named "OutPage.html". Notice that an entry like $$TX,"GOOGLE",HTML="http://www.google.com"$$ will be converted to text in the html with an html link. -I cheated by hardcoding $LK,"www.templeos.org",A="FF:::/Demo/ToHtmlToTXTExample/ToHtml.CPP,www.templeos.org"$ as the website +I cheated by hardcoding $LK,"www.templeos.org",A="FF:::/Demo/ToHtmlToTXTDemo/ToHtml.CPP,www.templeos.org"$ as the website for $LK,"TempleOS Links",A="MN:LK_FILE"$. Why don't you copy -$LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$ to your /Home directory +$LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$ to your /Home directory and modify it? You are welcome to link to http://www.templeos.org if you want file that come on the TempleOS distribution. -You can pass html meta data as args to $LK,"ToHtml",A="FF:::/Demo/ToHtmlToTXTExample/ToHtml.CPP,ToHtml"$(). +You can pass html meta data as args to $LK,"ToHtml",A="FF:::/Demo/ToHtmlToTXTDemo/ToHtml.CPP,ToHtml"$(). If you want to blog like I do, see these files... $LK,"::/Demo/AcctExample/TOSToHtml.CPP"$ @@ -22,4 +22,4 @@ $LK,"::/Demo/AcctExample/TOSHolySpirit.CPP"$ Cd(__DIR__);; #include "ToHtml" -ToHtml("InPage.TXT.Z","OutPage.html"); +ToHtml("DemoInPage.TXT.Z","~/DemoOutPage.html"); diff --git a/Demo/ToHtmlToTXTDemo/TXTGen.CPP b/Demo/ToHtmlToTXTDemo/TXTGen.CPP new file mode 100644 index 0000000..65a9a8c --- /dev/null +++ b/Demo/ToHtmlToTXTDemo/TXTGen.CPP @@ -0,0 +1,8 @@ +/* This converts $LK,"::/Demo/ToHtmlToTXTDemo/DemoInPage.TXT"$ to +an plain ASCII text document named, "OutPage.TXT". + +*/ + +Cd(__DIR__);; + +ToTXT("DemoInPage.TXT.Z","~/DemoOutPage.TXT"); diff --git a/Demo/ToHtmlToTXTExample/ToHtml.CPP b/Demo/ToHtmlToTXTDemo/ToHtml.CPP similarity index 98% rename from Demo/ToHtmlToTXTExample/ToHtml.CPP rename to Demo/ToHtmlToTXTDemo/ToHtml.CPP index 8a16229..859a6a1 100644 --- a/Demo/ToHtmlToTXTExample/ToHtml.CPP +++ b/Demo/ToHtmlToTXTDemo/ToHtml.CPP @@ -32,25 +32,25 @@ U0 HtmlPutS(CDoc *doc,I64 u32_attr,I64 *_old_u32_attr, } while (*_col&7); break; - sub_switch_start: + start: case 'ã': ptr="pi"; break; case 'é': ptr="theta"; break; case 'è': ptr="phi"; break; case 'ê': ptr="omega"; break; case 'ì': ptr="inf"; break; case 'æ': ptr="u"; break; - sub_switch_end: + end: DocPrint(doc,ptr); *_col=*_col+StrLen(ptr); break; - sub_switch_start: + start: case CH_SHIFT_SPACE: ptr=" "; break; case '&': ptr="&"; break; case '<': ptr="<"; break; case '>': ptr=">"; break; case '"': ptr="""; break; - sub_switch_end: + end: DocPrint(doc,ptr); *_col=*_col+1; break; @@ -148,7 +148,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";
    diff --git a/Demo/ToHtmlToTXTExample/TXTGen.CPP b/Demo/ToHtmlToTXTExample/TXTGen.CPP
    deleted file mode 100644
    index 737d626..0000000
    --- a/Demo/ToHtmlToTXTExample/TXTGen.CPP
    +++ /dev/null
    @@ -1,8 +0,0 @@
    -/* This converts $LK,"::/Demo/ToHtmlToTXTExample/InPage.TXT"$ to
    -an plain ASCII text document named, "OutPage.TXT".
    -
    -*/
    -
    -Cd(__DIR__);;
    -
    -ToTXT("InPage.TXT.Z","OutPage.TXT");
    diff --git a/Demo/WebLogExample/WebLogRep.CPP b/Demo/WebLogDemo/WebLogRep.CPP
    similarity index 96%
    rename from Demo/WebLogExample/WebLogRep.CPP
    rename to Demo/WebLogDemo/WebLogRep.CPP
    index dc4edff..1d59f05 100644
    --- a/Demo/WebLogExample/WebLogRep.CPP
    +++ b/Demo/WebLogDemo/WebLogRep.CPP
    @@ -2,6 +2,10 @@
     #define DOWNLOAD_FILE1_SIZE	17000000
     #define DOWNLOAD_FILE2		"TempleOSUltra.ISO"
     #define DOWNLOAD_FILE2_SIZE	 1900000
    +#define DOWNLOAD_FILE3		"TempleOSCDRS.ISO"
    +#define DOWNLOAD_FILE3_SIZE	16000000
    +#define DOWNLOAD_FILE4		"TempleOSUltraRS.ISO"
    +#define DOWNLOAD_FILE4_SIZE	 1600000
     
     #define MAX_HOURS		(24*3)
     
    @@ -211,7 +215,11 @@ Bool IsDownLoad(LogStruct *templg)
       if (StrMatch(DOWNLOAD_FILE1,templg->file)&&templg->size>=
     	DOWNLOAD_FILE1_SIZE ||
     	StrMatch(DOWNLOAD_FILE2,templg->file)&&templg->size>=
    -	DOWNLOAD_FILE2_SIZE )
    +	DOWNLOAD_FILE2_SIZE ||
    +	StrMatch(DOWNLOAD_FILE3,templg->file)&&templg->size>=
    +	DOWNLOAD_FILE3_SIZE ||
    +	StrMatch(DOWNLOAD_FILE4,templg->file)&&templg->size>=
    +	DOWNLOAD_FILE4_SIZE)
         return TRUE;
       else
         return FALSE;
    @@ -509,9 +517,7 @@ U0 WebLogRep(U8 *mask,U8 *output_filename)
       LogLstDel(root);
     }
     
    -//This is so I can use this file stand alone
    -//or as a component of a program.
    -#if __DEPTH__<1
    +#if __CMD_LINE__
     Cd(__DIR__);;
    -WebLogRep("*.LOG*","WebLogRep.TXT.Z");
    +WebLogRep("*.LOG*","~/DemoWebLog.TXT.Z");
     #endif
    diff --git a/Demo/WebLogExample/WebLogScramble.CPP b/Demo/WebLogDemo/WebLogScramble.CPP
    similarity index 100%
    rename from Demo/WebLogExample/WebLogScramble.CPP
    rename to Demo/WebLogDemo/WebLogScramble.CPP
    diff --git a/Demo/WebLogExample/access_150211.LOG b/Demo/WebLogDemo/access_150211.LOG
    similarity index 99%
    rename from Demo/WebLogExample/access_150211.LOG
    rename to Demo/WebLogDemo/access_150211.LOG
    index d001e9b..91c1845 100644
    --- a/Demo/WebLogExample/access_150211.LOG
    +++ b/Demo/WebLogDemo/access_150211.LOG
    @@ -136,7 +136,7 @@
     225.87.3.137 - - [10/Feb/2015:02:26:29 -0800] "GET /Wb/Home/Web/TempleOS.html HTTP/1.1" 200 12669 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.1; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
     83.8.47.3 - - [10/Feb/2015:02:26:35 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36" "templeos.org"
     189.3.229.39 - - [10/Feb/2015:02:27:36 -0800] "HEAD / HTTP/1.1" 200 0 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "www.templeos.org"
    -52.53.176.9 - - [10/Feb/2015:02:28:08 -0800] "GET /Wb/Demo/SortFileExample/ HTTP/1.1" 200 2022 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
    +52.53.176.9 - - [10/Feb/2015:02:28:08 -0800] "GET /Wb/Demo/SortFileDemo/ HTTP/1.1" 200 2022 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
     228.48.95.108 - - [10/Feb/2015:02:28:20 -0800] "GET /Wb/Accts/TS/Web/TempleOS.html HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible;  Page2RSS/0.7; +http://page2rss.com/)" "www.templeos.org"
     52.53.176.32 - - [10/Feb/2015:02:29:32 -0800] "GET /Wb/Adam/Gr/GrTextBase.CPP.Z HTTP/1.1" 200 3554 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
     74.51.144.148 - - [10/Feb/2015:02:36:28 -0800] "GET /Wb/Accts/TS/Web/TAD/2014/11/Rant141120.html HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "www.templeos.org"
    @@ -492,7 +492,7 @@
     222.58.71.125 - - [10/Feb/2015:11:31:59 -0800] "GET /Wb/Home/Downloads/Text/ HTTP/1.1" 200 5751 "http://www.templeos.org/Wb/Home/Downloads/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
     222.58.71.125 - - [10/Feb/2015:11:32:03 -0800] "GET /Wb/Home/Downloads/VanGogh/ HTTP/1.1" 200 1007 "http://www.templeos.org/Wb/Home/Downloads/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
     222.58.71.125 - - [10/Feb/2015:11:32:55 -0800] "GET /Wb/Kernel/BlkDev/FileSysRedSea.html HTTP/1.1" 200 342512 "http://www.templeos.org/Wb/Doc/Demands.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
    -222.58.71.125 - - [10/Feb/2015:11:33:41 -0800] "GET /Wb/Adam/Opt/Boot/DskISOFile.html HTTP/1.1" 200 360031 "http://www.templeos.org/Wb/Doc/Demands.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
    +222.58.71.125 - - [10/Feb/2015:11:33:41 -0800] "GET /Wb/Adam/Opt/Boot/DskISO9660.html HTTP/1.1" 200 360031 "http://www.templeos.org/Wb/Doc/Demands.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
     222.178.105.52 - - [10/Feb/2015:11:34:04 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36" "www.templeos.org"
     177.106.234.227 - - [10/Feb/2015:11:35:02 -0800] "GET / HTTP/1.1" 200 6329 "http://disqus.com/embed/comments/?base=default&version=d1b39333cdab5cb490d069fe62825a04&f=hausdorff&t_u=http%3A%2F%2Fblog.nullspace.io%2Fkernel-latency.html&t_d=84%25%20of%20a%20single-threaded%201KB%20write%20in%20Redis%20is%20spent%20in%20the%20kernel&t_t=84%25%20of%20a%20single-threaded%201KB%20write%20in%20Redis%20is%20spent%20in%20the%20kernel&s_o=default" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36" "www.templeos.org"
     58.71.218.57 - - [10/Feb/2015:11:35:37 -0800] "GET / HTTP/1.1" 200 6329 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
    @@ -711,7 +711,7 @@
     224.200.159.122 - - [10/Feb/2015:17:49:54 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:34.0) Gecko/20100101 Firefox/34.0" "www.templeos.org"
     189.217.254.14 - - [10/Feb/2015:17:50:08 -0800] "GET /Wb/Doc/Boot.html HTTP/1.1" 200 10347 "-" "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31" "www.templeos.org"
     202.176.250.211 - - [10/Feb/2015:17:53:27 -0800] "GET /Wb/Misc/Tour/TourA.html HTTP/1.1" 200 16712 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" "www.templeos.org"
    -52.53.176.129 - - [10/Feb/2015:17:55:58 -0800] "GET /Wb/Demo/WebLogExample/?D=A HTTP/1.1" 200 1738 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
    +52.53.176.129 - - [10/Feb/2015:17:55:58 -0800] "GET /Wb/Demo/WebLogDemo/?D=A HTTP/1.1" 200 1738 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
     130.98.70.92 - - [10/Feb/2015:17:57:00 -0800] "GET /Wb/Doc/Charter.html HTTP/1.1" 200 10431 "http://www.templeos.org/Wb/Doc/Charter.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36" "www.templeos.org"
     222.109.173.72 - - [10/Feb/2015:17:58:35 -0800] "GET /Wb/Doc/Charter.html HTTP/1.1" 200 10431 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24" "www.templeos.org"
     3.193.170.161 - - [10/Feb/2015:17:59:06 -0800] "GET /Wb/Accts/TS/Web/TempleOS.html HTTP/1.1" 404 89 "http://www.reddit.com/r/AskReddit/comments/24e4sf/reddit_what_are_some_of_the_creepiest/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36" "www.templeos.org"
    diff --git a/Demo/WebLogExample/access_150212.LOG b/Demo/WebLogDemo/access_150212.LOG
    similarity index 99%
    rename from Demo/WebLogExample/access_150212.LOG
    rename to Demo/WebLogDemo/access_150212.LOG
    index a04c6de..bfa7a9d 100644
    --- a/Demo/WebLogExample/access_150212.LOG
    +++ b/Demo/WebLogDemo/access_150212.LOG
    @@ -9,7 +9,7 @@
     233.6.219.205 - - [11/Feb/2015:00:17:34 -0800] "GET /Wb/Home/Web/Downloads.html HTTP/1.1" 200 7086 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
     233.6.219.205 - - [11/Feb/2015:00:18:10 -0800] "GET /TempleOSCD.ISO HTTP/1.1" 200 18122752 "http://www.templeos.org/Wb/Home/Web/Downloads.html" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
     193.84.229.200 - - [11/Feb/2015:00:18:15 -0800] "GET /robots.txt HTTP/1.1" 404 89 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" "www.templeos.org"
    -193.84.229.200 - - [11/Feb/2015:00:20:19 -0800] "GET /Wb/Kernel/Font8x8.html HTTP/1.1" 200 65536 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" "www.templeos.org"
    +193.84.229.200 - - [11/Feb/2015:00:20:19 -0800] "GET /Wb/Kernel/FontStd.html HTTP/1.1" 200 65536 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" "www.templeos.org"
     157.205.255.211 - - [11/Feb/2015:00:20:55 -0800] "GET / HTTP/1.1" 200 6329 "http://www.reddit.com/r/programming/comments/1aqdxn/temple_operating_system_v100_released/?limit=500" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0" "www.templeos.org"
     157.205.255.211 - - [11/Feb/2015:00:20:56 -0800] "GET /favicon.ico HTTP/1.1" 206 1078 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0" "www.templeos.org"
     228.141.141.213 - - [11/Feb/2015:00:22:02 -0800] "GET /Wb/Accts/TS/Web/Rants/TAD/2014/01/ HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)" "www.templeos.org"
    @@ -19,7 +19,7 @@
     119.225.240.88 - - [11/Feb/2015:00:26:18 -0800] "GET /Wb/Accts/TS/Web/TempleOSV0218A.BMP HTTP/1.1" 404 89 "-" "facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)" "www.templeos.org"
     74.51.215.137 - - [11/Feb/2015:00:28:06 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 Google favicon" "www.templeos.org"
     213.217.218.176 - - [11/Feb/2015:00:33:53 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:25.2) Gecko/20150122 PaleMoon/25.2.1" "www.templeos.org"
    -130.41.233.58 - - [11/Feb/2015:00:34:50 -0800] "GET /Wb/Demo/WebLogExample/access_090509.html HTTP/1.1" 200 217406 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" "www.templeos.org"
    +130.41.233.58 - - [11/Feb/2015:00:34:50 -0800] "GET /Wb/Demo/WebLogDemo/access_090509.html HTTP/1.1" 200 217406 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" "www.templeos.org"
     52.53.176.32 - - [11/Feb/2015:00:35:13 -0800] "GET /Wb/Compiler/BackA.CPP.Z HTTP/1.1" 200 7144 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
     108.204.215.78 - - [11/Feb/2015:00:35:15 -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"
     108.204.215.78 - - [11/Feb/2015:00:35:15 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
    @@ -140,8 +140,8 @@
     211.88.147.68 - - [11/Feb/2015:02:28:18 -0800] "GET / HTTP/1.1" 200 6329 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko" "www.templeos.org"
     37.178.43.26 - - [11/Feb/2015:02:29:15 -0800] "GET /robots.txt HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)" "www.templeos.org"
     37.178.43.26 - - [11/Feb/2015:02:29:20 -0800] "GET /images/?N=D HTTP/1.1" 200 1654 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)" "www.templeos.org"
    -85.146.209.151 - - [11/Feb/2015:02:33:15 -0800] "GET /Wb/Demo/WebLogExample/ HTTP/1.1" 200 1738 "http://estilo.in.ua/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" "www.templeos.org"
    -244.92.34.164 - - [11/Feb/2015:02:33:17 -0800] "GET /Wb/Demo/WebLogExample/ HTTP/1.1" 200 1738 "http://estilo.in.ua/" "Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0" "www.templeos.org"
    +85.146.209.151 - - [11/Feb/2015:02:33:15 -0800] "GET /Wb/Demo/WebLogDemo/ HTTP/1.1" 200 1738 "http://estilo.in.ua/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" "www.templeos.org"
    +244.92.34.164 - - [11/Feb/2015:02:33:17 -0800] "GET /Wb/Demo/WebLogDemo/ HTTP/1.1" 200 1738 "http://estilo.in.ua/" "Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0" "www.templeos.org"
     181.63.235.218 - - [11/Feb/2015:02:36:13 -0800] "GET / HTTP/1.1" 200 6329 "https://www.google.com.au/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36" "www.templeos.org"
     181.63.235.218 - - [11/Feb/2015:02:36:15 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36" "www.templeos.org"
     181.63.235.218 - - [11/Feb/2015:02:36:21 -0800] "GET /Wb/Home/Web/Downloads.html HTTP/1.1" 200 7086 "http://www.templeos.org/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36" "www.templeos.org"
    @@ -230,8 +230,8 @@
     131.17.77.111 - - [11/Feb/2015:03:34:52 -0800] "GET /Wb/Accts/TS/Web/Rants/TAD/2014/11/Rant141120.html HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)" "www.templeos.org"
     131.17.77.111 - - [11/Feb/2015:03:34:55 -0800] "GET /Wb/Accts/TS/Web/Rants/TAD/2014/11/Rant141121.html HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)" "www.templeos.org"
     228.141.141.213 - - [11/Feb/2015:03:35:46 -0800] "GET /Wb/Apps/Psalmody/Psalmody.html HTTP/1.1" 200 39862 "-" "Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)" "www.templeos.org"
    -69.47.114.72 - - [11/Feb/2015:03:37:06 -0800] "GET /Wb/Demo/WebLogExample/access_090510.html HTTP/1.1" 200 222005 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" "www.templeos.org"
    -69.47.114.72 - - [11/Feb/2015:03:37:58 -0800] "GET /Wb/Demo/WebLogExample/access_090509.html HTTP/1.1" 200 217406 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" "www.templeos.org"
    +69.47.114.72 - - [11/Feb/2015:03:37:06 -0800] "GET /Wb/Demo/WebLogDemo/access_090510.html HTTP/1.1" 200 222005 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" "www.templeos.org"
    +69.47.114.72 - - [11/Feb/2015:03:37:58 -0800] "GET /Wb/Demo/WebLogDemo/access_090509.html HTTP/1.1" 200 217406 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" "www.templeos.org"
     210.182.97.43 - - [11/Feb/2015:03:39:28 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0" "www.templeos.org"
     189.52.157.59 - - [11/Feb/2015:03:41:24 -0800] "GET /Wb/Home/Web/Downloads.html HTTP/1.1" 200 7086 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/8.0 Safari/600.1.25" "www.templeos.org"
     217.220.156.197 - - [11/Feb/2015:03:42:14 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
    @@ -335,7 +335,7 @@
     212.15.17.147 - - [11/Feb/2015:05:50:59 -0800] "GET /Wb/Apps/X-Caliber/Run.html HTTP/1.1" 200 3293 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     70.90.114.201 - - [11/Feb/2015:05:51:19 -0800] "GET /Wb/Accts/TS/Web/TempleOSV0217A.BMP HTTP/1.1" 404 89 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "www.templeos.org"
     70.90.114.14 - - [11/Feb/2015:05:51:20 -0800] "GET /Wb/Accts/TS/Web/TempleOSV0217A.BMP HTTP/1.1" 404 89 "-" "facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)" "www.templeos.org"
    -212.15.17.5 - - [11/Feb/2015:05:52:10 -0800] "GET /Wb/Demo/SortFileExample/F64FileGen.html HTTP/1.1" 200 15072 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
    +212.15.17.5 - - [11/Feb/2015:05:52:10 -0800] "GET /Wb/Demo/SortFileDemo/F64FileGen.html HTTP/1.1" 200 15072 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     127.55.189.158 - - [11/Feb/2015:05:52:29 -0800] "GET / HTTP/1.1" 200 6329 "http://nautro.tumblr.com/" "Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B435" "www.templeos.org"
     127.55.189.158 - - [11/Feb/2015:05:52:44 -0800] "GET /Wb/Adam/God/HSNotes.html HTTP/1.1" 200 35828 "http://www.templeos.org/" "Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B435" "www.templeos.org"
     196.51.160.176 - - [11/Feb/2015:05:55:38 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36" "www.templeos.org"
    @@ -897,7 +897,7 @@
     121.139.44.4 - - [11/Feb/2015:20:45:45 -0800] "GET /Wb/Accts/TS/Web/Rants/TAD/2014/02/Rant140218.html HTTP/1.1" 404 89 "-" "creepyCrawler" "www.templeos.org"
     47.31.174.175 - - [11/Feb/2015:20:54:15 -0800] "GET /TempleOSCD.ISO HTTP/1.1" 200 720896 "-" "YisouSpider" "www.templeos.org"
     131.8.134.171 - - [11/Feb/2015:20:55:02 -0800] "GET /Wb/Accts/TS/Web/Rants/TAD/2015/11/Rant150211.html HTTP/1.1" 404 89 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "www.templeos.org"
    -130.41.233.161 - - [11/Feb/2015:20:55:54 -0800] "GET /Wb/Demo/WebLogExample/access_090509.html HTTP/1.1" 200 217406 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" "www.templeos.org"
    +130.41.233.161 - - [11/Feb/2015:20:55:54 -0800] "GET /Wb/Demo/WebLogDemo/access_090509.html HTTP/1.1" 200 217406 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60" "www.templeos.org"
     52.53.176.185 - - [11/Feb/2015:20:56:12 -0800] "GET /Wb/Accts/TS/Web/Rants/TAD/2013/12/Rant131201.TXT.Z HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
     58.128.177.232 - - [11/Feb/2015:20:57:41 -0800] "GET /Certs/virtual-notary-cert-randomnum-46487.p12 HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" "www.templeos.org"
     129.226.244.80 - - [11/Feb/2015:21:00:24 -0800] "GET /robots.txt HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" "www.templeos.org"
    diff --git a/Demo/WebLogExample/access_150213.LOG b/Demo/WebLogDemo/access_150213.LOG
    similarity index 99%
    rename from Demo/WebLogExample/access_150213.LOG
    rename to Demo/WebLogDemo/access_150213.LOG
    index 82c0dd1..b007a76 100644
    --- a/Demo/WebLogExample/access_150213.LOG
    +++ b/Demo/WebLogDemo/access_150213.LOG
    @@ -116,17 +116,17 @@
     146.195.0.189 - - [12/Feb/2015:01:44:53 -0800] "GET / HTTP/1.1" 200 6329 "https://www.google.pl/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36" "www.templeos.org"
     146.195.0.189 - - [12/Feb/2015:01:45:18 -0800] "GET /Wb/Home/Web/TempleOSVideos.html HTTP/1.1" 200 40440 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
     46.48.190.210 - - [12/Feb/2015:01:45:44 -0800] "GET /Wb/Apps/Psalmody/Examples/blinded.html HTTP/1.1" 200 24692 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
    -46.48.190.210 - - [12/Feb/2015:01:47:21 -0800] "GET /Wb/Demo/SortFileExample/SortedF64.html HTTP/1.1" 200 2725 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
    +46.48.190.210 - - [12/Feb/2015:01:47:21 -0800] "GET /Wb/Demo/SortFileDemo/SortedF64.html HTTP/1.1" 200 2725 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     15.88.213.93 - - [12/Feb/2015:01:47:29 -0800] "GET /TempleOS.html HTTP/1.1" 200 12685 "-" "DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" "www.templeos.org"
     52.161.63.49 - - [12/Feb/2015:01:48:58 -0800] "GET / HTTP/1.1" 200 6329 "http://www.templeos.org/" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360Spider(compatible; HaosouSpider; http://www.haosou.com/help/help_3_2.html)" "www.templeos.org"
     46.48.190.210 - - [12/Feb/2015:01:49:19 -0800] "GET /Wb/Apps/Psalmody/Examples/dialogue.html HTTP/1.1" 200 32954 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     46.48.190.210 - - [12/Feb/2015:01:49:40 -0800] "GET /Wb/Apps/Logic/Logic.html HTTP/1.1" 200 320827 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
    -46.48.190.210 - - [12/Feb/2015:01:49:58 -0800] "GET /Wb/Demo/SortFileExample/UnsortedF64.html HTTP/1.1" 200 2727 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
    +46.48.190.210 - - [12/Feb/2015:01:49:58 -0800] "GET /Wb/Demo/SortFileDemo/UnsortedF64.html HTTP/1.1" 200 2727 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     46.48.190.210 - - [12/Feb/2015:01:50:19 -0800] "GET /Wb/Demo/Graphics/PanText.html HTTP/1.1" 200 11763 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     46.48.190.210 - - [12/Feb/2015:01:50:54 -0800] "GET /Wb/Demo/Graphics/MathAudioDemo.html HTTP/1.1" 200 49751 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     46.48.190.210 - - [12/Feb/2015:01:50:59 -0800] "GET /Certs/virtual-notary-cert-randomnum-44155.p12 HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     48.13.74.61 - - [12/Feb/2015:01:51:15 -0800] "GET /favicon.ico HTTP/1.1" 200 1078 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
    -46.48.190.210 - - [12/Feb/2015:01:51:21 -0800] "GET /Wb/Demo/ReverseFileExample/Reverse.html HTTP/1.1" 200 14781 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
    +46.48.190.210 - - [12/Feb/2015:01:51:21 -0800] "GET /Wb/Demo/RevFileDemo/Rev.html HTTP/1.1" 200 14781 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "www.templeos.org"
     96.11.7.33 - - [12/Feb/2015:01:52:13 -0800] "GET /Wb/Apps/Span/?M=A HTTP/1.1" 200 2804 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)" "www.templeos.org"
     147.255.165.35 - - [12/Feb/2015:01:55:51 -0800] "HEAD / HTTP/1.1" 200 0 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "www.templeos.org"
     129.14.210.30 - - [12/Feb/2015:01:56:13 -0800] "GET /Wb/Adam/God/HSNotes.html HTTP/1.1" 200 35828 "http://www.templeos.org/" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko" "www.templeos.org"
    @@ -201,7 +201,7 @@
     18.199.184.33 - - [12/Feb/2015:02:59:23 -0800] "GET /Wb/Doc/CmdLineOverview.html HTTP/1.1" 200 6862 "http://www.templeos.org/Wb/Doc/HelpIndex.html" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0" "www.templeos.org"
     223.247.137.232 - - [12/Feb/2015:03:00:01 -0800] "GET /Wb/Accts/TS/Web/Rants/TAD/2015/11/Rant150212.html HTTP/1.1" 404 89 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "www.templeos.org"
     35.18.127.92 - - [12/Feb/2015:03:00:18 -0800] "GET /Wb/Accts/TS/Web/TAD/2013/12/Rant131208.html HTTP/1.1" 404 89 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" "www.templeos.org"
    -52.209.6.156 - - [12/Feb/2015:03:10:48 -0800] "GET /Wb/Demo/SortFileExample/SortedF64.html HTTP/1.1" 200 2741 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" "www.templeos.org"
    +52.209.6.156 - - [12/Feb/2015:03:10:48 -0800] "GET /Wb/Demo/SortFileDemo/SortedF64.html HTTP/1.1" 200 2741 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" "www.templeos.org"
     219.239.239.165 - - [12/Feb/2015:03:11:14 -0800] "GET /admin.php HTTP/1.1" 200 73 "-" "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13" "templeos.org"
     15.88.159.150 - - [12/Feb/2015:03:14:38 -0800] "GET / HTTP/1.1" 200 6329 "https://www.google.com/" "Mozilla/5.0 (Linux; Android 4.4.2; LG-D850 Build/KVT49L.D85010f) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36" "www.templeos.org"
     15.88.159.153 - - [12/Feb/2015:03:14:50 -0800] "GET /Wb/Home/Web/TempleOS.html HTTP/1.1" 200 12685 "http://www.templeos.org/" "Mozilla/5.0 (Linux; Android 4.4.2; LG-D850 Build/KVT49L.D85010f) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36" "www.templeos.org"
    diff --git a/DoOnce.CPP b/DoOnce.CPP
    index 988f1e6..ad71386 100644
    --- a/DoOnce.CPP
    +++ b/DoOnce.CPP
    @@ -9,25 +9,46 @@
     
     U0 DoOnce()
     {
    -  if (sys_boot_src.u16[0]==BOOT_SRC_DVD) {
    -    "\nIf you answer 'No' you can play with\n"
    -	  "the live CD without installing.\n\n"
    -	  "Install onto hard drive ";
    -    if (YorN) {
    -      DocBottom;
    -      ExeFile("::/Misc/OSInstall");
    -    }
    -  } else {
    -    "$$PURPLE$$$$TX+CX,\"Tip of the Day\"$$$$FG$$\n";
    -    TipOfDay;
    -  }
    -  Type("::/Doc/Customize.TXT");
    -  if (FileFind("::/Misc/Tour")) {
    -    "\nTake Tour";
    -    if (YorN) {
    -      Cd("::/Misc/Tour");
    -      AutoFile("Tour");
    -    }
    +  switch (sys_boot_src.u16[0]) {
    +    case BOOT_SRC_ROM:
    +      "Continue booting hard drive ";
    +      if (YorN) {
    +	DocBottom;
    +	ExeFile("C:/Home/DoOnce");
    +      }
    +      break;
    +    case BOOT_SRC_DVD:
    +      "\nIf you answer 'No' you can play with\n"
    +	    "the live CD without installing.\n\n"
    +	    "Install onto hard drive ";
    +      if (YorN) {
    +	DocBottom;
    +	ExeFile("::/Misc/OSInstall");
    +	ExePrint("OSInstall(TRUE);");
    +      }
    +      if (FileFind("::/Misc/Tour")) {
    +	"\nTake Tour";
    +	if (YorN) {
    +	  DocBottom;
    +	  Cd("::/Misc/Tour");
    +	  AutoFile("Tour");
    +	}
    +      }
    +      break;
    +    case BOOT_SRC_RAM:
    +    case BOOT_SRC_HARDDRV:
    +      "$$PURPLE$$$$TX+CX,\"Tip of the Day\"$$$$FG$$\n";
    +      TipOfDay;
    +      Type("::/Doc/Customize.TXT");
    +      if (FileFind("::/Misc/Tour")) {
    +	"\nTake Tour";
    +	if (YorN) {
    +	  DocBottom;
    +	  Cd("::/Misc/Tour");
    +	  AutoFile("Tour");
    +	}
    +      }
    +      break;
       }
     }
     
    diff --git a/Doc/AutoComplete.TXT b/Doc/AutoComplete.TXT
    index 8de6f31..f9e1482 100644
    --- a/Doc/AutoComplete.TXT
    +++ b/Doc/AutoComplete.TXT
    @@ -1,4 +1,4 @@
    -$FG,2$$WW,1$AutoComplete$FG$ is the $FG,7$LTGRAY$FG$ window on the right of the screen.  $LK,"ACInit",A="MN:ACInit"$() collects words from all text files in subdirectories.  Normally, the call to $LK,"ACInit",A="MN:ACInit"$() is in $LK,"HomeSys.CPP",A="FF:/Home/HomeSys.CPP,ACInit"$.  It provides auto-complete for typing, jump-to-code and jump-to-dictionary functionality.
    +$FG,2$$WW,1$AutoComplete$FG$ is the $FG,7$LTGRAY$FG$ window on the right of the screen.  $LK,"ACInit",A="MN:ACInit"$() collects words from all text files in subdirectories.  Normally, the call to $LK,"ACInit",A="MN:ACInit"$() is in $LK,"HomeSys.CPP",A="FF:~/HomeSys.CPP,ACInit"$.  It provides auto-complete for typing, jump-to-code and jump-to-dictionary functionality.
     
     $FG,2$$FG$	Closes the $FG,7$LTGRAY$FG$ AutoComplete window.
     $FG,2$$FG$		Opens the $FG,7$LTGRAY$FG$ AutoComplete window.
    diff --git a/Doc/Bit.TXT b/Doc/Bit.TXT
    index c5ca06c..0b0a0d4 100644
    --- a/Doc/Bit.TXT
    +++ b/Doc/Bit.TXT
    @@ -10,5 +10,5 @@ $FG$Bit operations are "atomic", no interrupt between the reading and writing th
     
     $FG,5$These don't take a pointer, but the actual field.$FG$
     $FG,2$Bsf$FG$:	Bit Scan Fwd (Pos of first low one bit or -1)
    -$FG,2$Bsr$FG$:	Bit Scan Reverse (Pos of first high one bit or -1)
    +$FG,2$Bsr$FG$:	Bit Scan Rev (Pos of first high one bit or -1)
     $FG,2$BCnt$FG$:	Bit Cnt (Cnt of set bits)
    diff --git a/Doc/Boot.TXT b/Doc/Boot.TXT
    index ca75a1bf1e49d8fa922dda09516ae53c1ec966c3..ff9d557d3f9afd064326f84425fac6beb681ccc2 100644
    GIT binary patch
    delta 35
    ocmeBF>QdV9o1L>b+cVhT(#*_Y@&Y#5$qF27EFjKiEspyf0L|A5Z2$lO
    
    delta 35
    qcmeBD>QvhBo1HzgINRC9C2aD1HaRYr;%v`gf49t>)Xmx)_c;LJX$&&}
    
    diff --git a/Doc/ChangeLog.TXT b/Doc/ChangeLog.TXT
    index 20b1a1a..01fd86b 100644
    --- a/Doc/ChangeLog.TXT
    +++ b/Doc/ChangeLog.TXT
    @@ -2,7 +2,66 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$
     
     Use $LK,"R",A="MN:R"$() to rename if I change a label.
     
    -$IV,1$----05/07/16 20:39:10----$IV,0$
    +$IV,1$----06/24/16 21:56:10----$IV,0$
    +
    +$IV,1$----06/24/16 14:15:13----$IV,0$
    +* Added A.I. to $LK,"::/Apps/KeepAway/KeepAway.CPP"$ and changed scoring.
    +
    +$IV,1$----06/24/16 02:55:42----$IV,0$
    +* $BK,1$TempleOS version 4.08 Released$BK,0$
    +* Added $FG,2$Polygon$FG$, $FG,2$Fence$FG$, $FG,2$Prism$FG$ and $FG,2$ResetColor$FG$ commands to $LK,"SpriteMeshEd",A="MN:SpriteMeshEd"$().
    +* $LK,"R",A="MN:R"$("Reverse","Rev");
    +* $LK,"R",A="MN:R"$("Select","Sel");
    +
    +$IV,1$----06/23/16 01:03:36----$IV,0$
    +* Added $LK,"GrFillCircle",A="MN:GrFillCircle"$().
    +* Added $LK,"GrVLine",A="MN:GrVLine"$() and $LK,"GrLineFat3",A="MN:GrLineFat3"$().
    +
    +$IV,1$----06/18/16 16:16:22----$IV,0$
    +* Modified $LK,"KeyDevAdd",A="MN:KeyDevAdd"$().
    +* $LK,"R",A="MN:R"$("nounusedwarn","no_warn");
    +* $LK,"R",A="MN:R"$("sub_switch_start","start");
    +* $LK,"R",A="MN:R"$("sub_switch_end","end");
    +* Changed args to $LK,"PutDirLink",A="MN:PutDirLink"$() and $LK,"PutFileLink",A="MN:PutFileLink"$().
    +* Added $LK,"HomeSet",A="MN:HomeSet"$().  Added $FG,2$"~"$FG$ as special directory designator.
    +* Changed filename exclude mask char from $FG,2$'~'$FG$ to $FG,2$'!'$FG$.  See $LK,"File Utils",A="FI:::/Doc/FileUtils.TXT"$.
    +* Got rid of $FG,4$/Home/HomePkgs.CPP$FG$.
    +
    +$IV,1$----06/16/16 20:59:41----$IV,0$
    +* $FG,2$$FG$ is terminal window.
    +* $FG,2$$FG$ is next task.
    +
    +$IV,1$----06/16/16 19:49:39----$IV,0$
    +* Added $LK,"::/Doc/Comm.CPP"$.
    +* Added $LK,"::/Doc/StdTempleOSPC.TXT"$.
    +* Added $LK,"::/Kernel/FontCyrillic.CPP"$. $FG,2$$FG$
    +
    +$IV,1$----06/02/16 03:20:56----$IV,0$
    +* $BK,1$TempleOS version 4.07 Released$BK,0$
    +* Added claws to $LK,"::/Demo/Games/EagleDive.CPP"$.
    +
    +$IV,1$----05/30/16 21:16:44----$IV,0$
    +* Added waterfall to $LK,"::/Demo/Games/RawHide.CPP"$.
    +
    +$IV,1$----05/23/16 01:30:28----$IV,0$
    +* Added $LK,"RedSeaISO",A="MN:RedSeaISO"$().
    +* $LK,"R",A="MN:R"$("ISOFileCreate","$LK,"ISO9660ISO",A="MN:ISO9660ISO"$");
    +
    +$IV,1$----05/19/16 02:16:09----$IV,0$
    +* Added $LK,"BDT_FILE",A="MN:BDT_FILE"$.
    +
    +$IV,1$----05/17/16 07:16:38----$IV,0$
    +* Worked on compiler $LK,"CICArg",A="MN:CICArg"$.a1_type_pointed_to.
    +
    +$IV,1$----05/13/16 14:35:14----$IV,0$
    +* Improved $LK,"::/Demo/Games/Wenceslas.CPP"$.
    +
    +$IV,1$----05/12/16 05:18:56----$IV,0$
    +* Added $LK,"CCF_CMD_LINE",A="MN:CCF_CMD_LINE"$
    +* Replaced $FG,4$__DEPTH__$FG$ with $LK,"__CMD_LINE__",A="MN:__CMD_LINE__"$.
    +
    +$IV,1$----05/10/16 06:23:05----$IV,0$
    +* Compiler bug fixes and optimizations.
     
     $IV,1$----05/07/16 08:55:59----$IV,0$
     * $BK,1$TempleOS version 4.06 Released$BK,0$
    @@ -81,7 +140,7 @@ $IV,1$----03/19/16 06:22:36----$IV,0$
     * 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.
    +* Made $LK,"SpriteEd",A="MN:SpriteEd"$() sel foreground elem.
     
     $IV,1$----03/14/16 05:57:27----$IV,0$
     * $BK,1$TempleOS version 4.04 Released$BK,0$
    @@ -89,7 +148,7 @@ $IV,1$----03/14/16 05:57:27----$IV,0$
     * Changed $LK,"KbdMouseCmdAck",A="MN:KbdMouseCmdAck"$().
     
     $IV,1$----02/19/16 18:48:51----$IV,0$
    -* Fixed bug in $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$.
    +* Fixed bug in $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$.
     
     $IV,1$----02/15/16 23:31:15----$IV,0$
     * Improved $LK,"::/Demo/Games/RawHide.CPP"$.
    @@ -108,7 +167,7 @@ $IV,1$----02/09/16 09:34:32----$IV,0$
     * Added $LK,"DOCEF_REMALLOC_DATA",A="MN:DOCEF_REMALLOC_DATA"$.
     
     $IV,1$----02/05/16 23:00:53----$IV,0$
    -* Moved $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$.
    +* Moved $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$.
     * Added $LK,"::/Demo/AcctExample/TOSToHtml.CPP"$.
     
     $IV,1$----02/03/16 18:47:00----$IV,0$
    @@ -151,7 +210,7 @@ $IV,1$----01/27/16 06:40:46----$IV,0$
     * Added compiler err for $FG,2$break;$FG$ in a subswitch preface.
     
     $IV,1$----01/27/16 04:14:08----$IV,0$
    -* Added $LK,"::/Demo/ToHtmlToTXTExample/HtmlGen.CPP"$ and $LK,"::/Demo/ToHtmlToTXTExample/TXTGen.CPP"$.
    +* Added $LK,"::/Demo/ToHtmlToTXTDemo/HtmlGen.CPP"$ and $LK,"::/Demo/ToHtmlToTXTDemo/TXTGen.CPP"$.
     * Now, $LK,"Plain",A="MN:Plain"$() doesn't save with $LK,"CH_CURSOR",A="MN:CH_CURSOR"$.
     * $LK,"R",A="MN:R"$("DOCF_PLAIN_TEXT_WITH_TABS","DOCF_PLAIN_TEXT_TABS"); 
     * Change $LK,"Document Links",A="FF:::/Adam/DolDoc/DocLink.CPP,AD"$ "DF:word" to "DN:word".
    @@ -205,180 +264,3 @@ $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 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.
    -
    -$IV,1$----12/26/15 19:39:31----$IV,0$
    -* Added entry_lines to $LK,"Sort",A="MN:Sort"$().
    -
    -$IV,1$----12/14/15 14:51:57----$IV,0$
    -* Fixed missing compiler warning with dereferencing zero star array classes.
    -* Changed Linear congruential generator, $LK,"Rand",A="MN:Rand"$() from 32-bit to 64-bit.
    -
    -$IV,1$----11/22/15 21:02:38----$IV,0$
    -* Improved $LK,"::/Adam/God/HSNotes.TXT"$.
    -
    -$IV,1$----11/03/15 22:40:18----$IV,0$
    -* Added $FG,2$CTRL-ALT-f$FG$ to toggle an aux font.
    -* $FG,2$CTRL-ALT-v$FG$ is now flush VGA cache.
    -* Added $LK,"BibleDoc",A="MN:BibleDoc"$ to present Bible with tree widgets.
    -* Fixed $FG,2$CTRL-ALT-C$FG$ bug.
    -
    -$IV,1$----11/01/15 21:44:46----$IV,0$
    -* $BK,1$TempleOS version 3.12 Released$BK,0$
    -* Created $FG,2$/Kernel/Mem$FG$ directory.
    -
    -$IV,1$----10/08/15 10:17:55----$IV,0$
    -* $LK,"R",A="MN:R"$("$FG,4$BSP$FG$","$FG,4$Core0$FG$");
    -
    -$IV,1$----10/06/15 06:30:49----$IV,0$
    -* Added $LK,"TaskFocusNext",A="MN:TaskFocusNext"$().
    -
    -$IV,1$----09/27/15 11:46:44----$IV,0$
    -* Got rid of preemption.
    -
    -$IV,1$----09/23/15 14:17:35----$IV,0$
    -* No arrays in fun args.
    -* Got rid of 4x4 array dimensions in function args.
    -
    -$IV,1$----09/05/15 11:26:12----$IV,0$
    -* Gave $LK,"I_DIV_ZERO",A="MN:I_DIV_ZERO"$ its own vector instead of common fault vector.
    -* $LK,"R",A="MN:R"$("$FG,4$Dsk$FG$","$FG,4$BlkDev$FG$");
    -
    -$IV,1$----09/04/15 17:04:39----$IV,0$
    -* $BK,1$TempleOS version 3.11 Released$BK,0$
    -
    -$IV,1$----08/28/15 01:50:15----$IV,0$
    -*  Added $LK,"BibleView",A="MN:BibleView"$() and $FG,2$$FG$.
    -
    -$IV,1$----08/25/15 23:29:48----$IV,0$
    -* Moved $LK,"ToDolDoc",A="MN:ToDolDoc"$() to $FG,2$/Adam/Opt/Utils$FG$.
    -* $LK,"R",A="MN:R"$("$FG,4$map$FG$","$FG,4$fat$FG$");
    -
    -$IV,1$----08/22/15 20:38:15----$IV,0$
    -* $LK,"R",A="MN:R"$("$FG,4$CDImageWrite$FG$","$LK,"DVDImageWrite",A="MN:DVDImageWrite"$");
    -* $LK,"R",A="MN:R"$("$FG,4$MakeDistro$FG$","$FG,4$DoDistro$FG$");
    -* $LK,"R",A="MN:R"$("$FG,4$::/Home/Adam*.CPP$FG$","$FG,4$::/Home/Home*.CPP$FG$");
    -* Created $FG,2$Make*.CPP$FG$ make dir files.
    -* Moved $FG,2$/Adam/Boot$FG$ and $FG,2$/Adam/Utils$FG$ to $FG,2$/Adam/Opt$FG$.
    -
    -$IV,1$----08/21/15 19:14:29----$IV,0$
    -* $BK,1$TempleOS version 3.10 Released$BK,0$
    -
    -$IV,1$----08/20/15 20:05:08----$IV,0$
    -* Fixed bug in $LK,"::/Adam/ABlkDev/FileMgr.CPP"$.
    -* Fixed bug in $LK,"::/Demo/Games/TreeCheckers.CPP"$.
    -
    -$IV,1$----08/18/15 07:28:03----$IV,0$
    -* Improved $LK,"::/PersonalMenu.TXT"$.
    -* Improved $LK,"::/Demo/Games/BattleLines.CPP"$.
    -
    -$IV,1$----08/16/15 14:42:01----$IV,0$
    -* Improved $LK,"::/Demo/Games/BlackDiamond.CPP"$.
    -* Improved $LK,"::/Demo/Games/EagleDive.CPP"$.
    -* Improved $LK,"::/Demo/Games/RawHide.CPP"$.
    -* Improved $LK,"::/Apps/TimeOut/TimeOut.CPP"$.
    -* Improved $LK,"::/Demo/Games/FlapBat.CPP"$.
    -* Improved $LK,"::/Demo/Games/Varoom.CPP"$.
    -* Improved $LK,"::/Demo/Games/BomberGolf.CPP"$.
    -
    -$IV,1$----08/09/15 09:47:10----$IV,0$
    -* Cleaned-up Ultra distro.
    -
    -$IV,1$----08/08/15 06:14:09----$IV,0$
    -* $BK,1$TempleOS version 3.09 Released$BK,0$
    -
    -$IV,1$----08/06/15 09:28:49----$IV,0$
    -* Removed most Moses comics so you can make your own.
    -* Removed most hymns so that you can make your own.
    -
    -$IV,1$----08/05/15 21:39:59----$IV,0$
    -* Fixed bug parsing "$$GREEN FG$$".  It is an error.
    -
    -$IV,1$----08/05/15 13:49:10----$IV,0$
    -* Fixed bug in $LK,"SrvCmdsHandler",A="MN:SrvCmdsHandler"$() && $LK,"SrvTaskCont",A="MN:SrvTaskCont"$().
    -
    -$IV,1$----08/03/15 18:09:33----$IV,0$
    -* Improved $LK,"::/Demo/Games/FlapBat.CPP"$.
    -
    -$IV,1$----08/02/15 07:19:59----$IV,0$
    -* $LK,"R",A="MN:R"$("$FG,4$BugBird$FG$","$FG,4$FlapBat$FG$");
    -
    -$IV,1$----08/02/15 02:51:04----$IV,0$
    -* Rearranged $LK,"::/Adam/DolDoc/MakeDoc.CPP"$.
    -* Got rid of ext ascii with alt-digits keys.  Just use $FG,2$$FG$.
    -* Rearranged $LK,"DocPutKey",A="MN:DocPutKey"$().
    -* Got rid of $FG,4$PressKeyHelp$FG$().
    -* $LK,"R",A="MN:R"$("$FG,4$CtrlAltLet$FG$","$FG,4$CtrlAlt$FG$");
    -
    -$IV,1$----07/30/15 22:26:22----$IV,0$
    -* Fixed bug.  Now, turned-off preemption in $LK,"WinMgrTask",A="MN:WinMgrTask"$().
    -* Added $LK,"::/Misc/Tour/Tour1.AUT"$.
    -
    -$IV,1$----07/30/15 03:38:10----$IV,0$
    -* Added ::/Apps/Psalmody/Examples/caesar.CPP
    -
    -$IV,1$----07/29/15 10:17:29----$IV,0$
    -* Improved $LK,"::/Linux/TOSZ.CPP"$.
    -* Rearranged AutoComplete and $LK,"KeyMap",A="MN:KeyMap"$() code.
    -* Added $LK,"WinInside",A="MN:WinInside"$().
    -* Added $LK,"SYS_SEMA_JUST_PUMP_MSGS",A="MN:SYS_SEMA_JUST_PUMP_MSGS"$.
    -* Added help for $FG,2$$FG$ & $FG,2$$FG$ keys.
    -* Added $LK,"WIf_SELF_KEY_DESC",A="MN:WIf_SELF_KEY_DESC"$.
    -
    -$IV,1$----07/26/15 06:57:29----$IV,0$
    -* Cleaned-up $LK,"MemberClassBaseFind",A="MN:MemberClassBaseFind"$() and $LK,"MemberAdd",A="MN:MemberAdd"$().
    -* $LK,"R",A="MN:R"$("$FG,4$member_lst$FG$","$FG,4$member_lst_and_root$FG$");
    -
    -$IV,1$----07/24/15 19:35:12----$IV,0$
    -* $BK,1$TempleOS version 3.08 Released$BK,0$
    -* Fixed $LK,"UAsm",A="FI:::/Compiler/UAsm.CPP"$ bug.
    -* $LK,"R",A="MN:R"$("$FG,4$CTrace$FG$","$LK,"Trace",A="MN:Trace"$()");
    -* $LK,"R",A="MN:R"$("$FG,4$OTrace$FG$","$LK,"PassTrace",A="MN:PassTrace"$()");
    -* $LK,"R",A="MN:R"$("$FG,4$OTraceMask$FG$","$LK,"PassTrace",A="MN:PassTrace"$()");
    -* $LK,"R",A="MN:R"$("$FG,4$GetEqu$FG$","$LK,"Option",A="MN:Option"$()");
    -* $LK,"R",A="MN:R"$("$FG,4$GetOpt$FG$","$LK,"GetOption",A="MN:GetOption"$()");
    -* $LK,"R",A="MN:R"$("$FG,4$OptOn$FG$","$LK,"Option",A="MN:Option"$(,ON)");
    -* $LK,"R",A="MN:R"$("$FG,4$OptOff$FG$","$LK,"Option",A="MN:Option"$(,OFF)");
    -* Added $LK,"Dsk Stk Diagram",A="FI:::/Doc/FileLowLevel.TXT"$.
    -
    -$IV,1$----07/22/15 22:45:16----$IV,0$
    -* Fixed bug in $LK,"EdFindReplace",A="MN:EdFindReplace"$().
    -
    -$IV,1$----07/20/15 19:48:53----$IV,0$
    -* Added args to $LK,"Del",A="MN:Del"$().
    -* Rearranged disk code.
    -* $LK,"R",A="MN:R"$("$FG,4$CFileAccess$FG$","$LK,"CDirContext",A="MN:CDirContext"$");
    -* $LK,"R",A="MN:R"$("$FG,4$IsDrvWritable$FG$","$LK,"DrvIsWritable",A="MN:DrvIsWritable"$");
    -* $LK,"R",A="MN:R"$("$FG,4$CDFileCreate$FG$","$LK,"ISOFileCreate",A="MN:ISOFileCreate"$");
    -
    -$IV,1$----07/10/15 05:05:41----$IV,0$
    -* Turned-off preemption in $LK,"WinMgrTask",A="MN:WinMgrTask"$().
    -
    -$IV,1$----07/04/15 00:56:18----$IV,0$
    -* Added hex record option to $LK,"GodDoodle",A="MN:GodDoodle"$().
    -* Added $LK,"GodHexIns",A="MN:GodHexIns"$(). 
    -
    -$IV,1$----06/30/15 15:35:31----$IV,0$
    -* Added $LK,"Words",A="MN:Words"$().
    -* Added $LK,"LongLines",A="MN:LongLines"$().
    -
    -$IV,1$----06/26/15 12:54:41----$IV,0$
    -* $BK,1$TempleOS version 3.07 Released$BK,0$
    -
    -$IV,1$----06/19/15 18:16:11----$IV,0$
    -* Added ::/Apps/Psalmody/Examples/science.CPP
    -* Added ::/Apps/AfterEgypt/Comics/Moses84.TXT
    -* Added ::/Apps/AfterEgypt/Comics/Moses85.TXT
    -
    -$IV,1$----06/13/15 07:36:01----$IV,0$
    -* Improved $LK,"::/Demo/Games/EagleDive.CPP"$.
    -
    -$IV,1$----06/11/15 19:26:27----$IV,0$
    -* Fixed bug in $FG,2$$FG$ macros.
    -* Added $LK,"STR_LEN",A="MN:STR_LEN"$.
    -
    -$IV,1$----06/04/15 08:31:15----$IV,0$
    -* Improved assembler and unassembler.
    -* Added $LK,"::/Doc/HelloWorld.TXT"$.
    diff --git a/Doc/CmdLineOverview.TXT b/Doc/CmdLineOverview.TXT
    index 41240fe..c8e3c53 100644
    --- a/Doc/CmdLineOverview.TXT
    +++ b/Doc/CmdLineOverview.TXT
    @@ -18,7 +18,7 @@ Directories are referenced with $FG,2$/$FG$ not $FG,2$\$FG$.  There is a current
     
     Most filenames end in $FG,2$.Z$FG$ because they are stored compressed.
     
    -Drives are specified with a letter.  The boot drive is specified with a '$FG,2$:$FG$'.
    +Drives are specified with a letter.  The boot drive is specified with a '$FG,2$:$FG$'.  The home dir drive is specified with a $FG,2$'~'$FG$.
     
     >$FG,2$Drv('B');$FG$	B drive
     
    @@ -27,11 +27,13 @@ The drive can be specified in a $LK,"Cd",A="MN:Cd"$() command as in:
     >$FG,2$Cd("B:/Temp");$FG$	B drive
     >$FG,2$Cd("::/Demo");$FG$	Boot drive
     
    ->$FG,2$Cd("::/Home/Psalmody");$FG$	See $LK,"::/Home dir",A="FF:::/Doc/GuideLines.TXT,/Home Files"$.
    +The home directory is specified with a $FG,2$'~'$FG$.
    +
    +>$FG,2$Cd("~/Psalmody");$FG$	See $LK,"::/Home dir",A="FF:::/Doc/GuideLines.TXT,/Home Files"$.
     
     If a file is not found, $FG,2$.Z$FG$ is added or removed and a search is done, again.  If a file is still not found, all parent directories are searched.
     
    -You can place macros in your $LK,"PersonalMenu",A="FI:/Home/PersonalMenu.TXT"$ for $LK,"Cd",A="MN:Cd"$() commands.  $FG,2$$FG$ to access your menu.
    +You can place macros in your $LK,"PersonalMenu",A="FI:~/PersonalMenu.TXT"$ for $LK,"Cd",A="MN:Cd"$() commands.  $FG,2$$FG$ to access your menu.
     
     >$FG,2$Find("needle","/Demo/*.CPP.Z;*.TXT.Z;");$FG$ See $LK,"File Utils",A="FI:::/Doc/FileUtils.TXT"$.
     
    diff --git a/Doc/Comm.CPP b/Doc/Comm.CPP
    new file mode 100644
    index 0000000..2fb0ab2
    --- /dev/null
    +++ b/Doc/Comm.CPP
    @@ -0,0 +1,116 @@
    +/* RS232 serial ports no longer exist.
    +Be sure to Adam Include this by placing
    +it in your start-up scripts.
    +*/
    +
    +#help_index "Comm"
    +
    +#define COM1_BASE	0x3F8
    +#define COM2_BASE	0x2F8
    +#define COM3_BASE	0x3E8
    +#define COM4_BASE	0x2E8
    +
    +#define UART_THR		0
    +#define UART_RDR		0
    +#define UART_BRDL		0
    +#define UART_IER		1
    +#define UART_BRDH		1
    +#define UART_IIR		2
    +#define UART_LCR		3
    +#define UART_MCR		4
    +#define UART_LSR		5
    +#define UART_MSR		6
    +
    +I64 comm_base[5]={0,0x3F8,0x2F8,0x3E8,0x2E8};
    +
    +CFifoU8 *comm_fifos[5]={NULL,NULL,NULL,NULL,NULL};
    +
    +interrupt U0 IRQComm3()
    +{
    +  I64 base=comm_base[2];
    +  if (comm_fifos[2] && (InU8(base+UART_IIR) & 0xFE)==4)   //RX IRQ
    +    FifoU8Ins(comm_fifos[2],InU8(base+UART_RDR));
    +
    +  base=comm_base[4];
    +  if (comm_fifos[4] && (InU8(base+UART_IIR) & 0xFE)==4)   //RX IRQ
    +    FifoU8Ins(comm_fifos[4],InU8(base+UART_RDR));
    +  OutU8(0x20,0x20);
    +}
    +
    +interrupt U0 IRQComm4()
    +{
    +  I64 base=comm_base[1];
    +  if (comm_fifos[1] && (InU8(base+UART_IIR) & 0xFE)==4)   //RX IRQ
    +    FifoU8Ins(comm_fifos[1],InU8(base+UART_RDR));
    +
    +  base=comm_base[3];
    +  if (comm_fifos[3] && (InU8(base+UART_IIR) & 0xFE)==4)   //RX IRQ
    +    FifoU8Ins(comm_fifos[3],InU8(base+UART_RDR));
    +  OutU8(0x20,0x20);
    +}
    +
    +IntEntrySet(0x23,&IRQComm3);
    +IntEntrySet(0x24,&IRQComm4);
    +
    +public U0 CommInit8n1(I64 port,I64 baud)
    +{
    +  I64 base=comm_base[port];
    +
    +  PUSHFD
    +  CLI
    +  if (comm_fifos[port])
    +    FifoU8Del(comm_fifos[port]);
    +  comm_fifos[port]=FifoU8New(256);
    +  OutU8(base+UART_LCR,0);     //Set for IER
    +  OutU8(base+UART_IER,0);     //DIsable all IRQ
    +  OutU8(base+UART_LCR,0x80);  //Enable baud rate control
    +  OutU8(base+UART_BRDL,(0x180/(baud/300)) & 0xFF); //LSB
    +  OutU8(base+UART_BRDH,(0x180/(baud/300)) / 256);  //MSB
    +  OutU8(base+UART_LCR,3);     // 8-none-1
    +
    +  InU8(base+UART_RDR);	//read garbage
    +  InU8(base+UART_LSR);
    +
    +  OutU8(base+UART_MCR,4);
    +  OutU8(base+UART_IER,0);     //DIsable all IRQ
    +  OutU8(base+UART_MCR,0xA);	  //out2 and rts
    +  OutU8(0x21,InU8(0x21) & (0xFF-0x18)); //Enable 8259 IRQ 3 & 4
    +  OutU8(base+UART_IER,1);	  //Enable RX IRQ
    +  POPFD
    +}
    +
    +public U0 CommBusyPutChar(I64 port,U8 b)
    +{
    +  I64 base=comm_base[port];
    +  while (!(InU8(base+UART_LSR) & 0x20))
    +    Yield;
    +  OutU8(base+UART_THR,b);
    +  while (!(InU8(base+UART_LSR) & 0x20))
    +    Yield;
    +}
    +
    +public U0 CommBusyPutS(I64 port,U8 *st)
    +{
    +  I64 b,base=comm_base[port];
    +  while (b=*(st++)) {
    +    while (!(InU8(base+UART_LSR) & 0x20))
    +      Yield;
    +    OutU8(base+UART_THR,b);
    +  }
    +  while (!(InU8(base+UART_LSR) & 0x20))
    +    Yield;
    +}
    +
    +public U0 CommBusyWriteBlk(I64 port,U8 *buf,I64 count)
    +{
    +  I64 base=comm_base[port];
    +  while (count--) {
    +    while (!(InU8(base+UART_LSR) & 0x20))
    +      Yield;
    +    OutU8(base+UART_THR,*(buf++));
    +  }
    +  while (!(InU8(base+UART_LSR) & 0x20))
    +    Yield;
    +}
    +
    +#help_index ""
    diff --git a/Doc/Credits.TXT b/Doc/Credits.TXT
    index 00fd6ac..281bf41 100644
    --- a/Doc/Credits.TXT
    +++ b/Doc/Credits.TXT
    @@ -1,48 +1,52 @@
     $WW,1$$FG,5$$TX+CX,"Credits"$$FG$
     
    -1) The font, $LK,"::/Kernel/Font8x8.CPP"$, is taken from $FG,4$$TX,"FreeDOS",HTML="http://www.freedos.org"$$FG$.  It's public domain.
    +I, $FG,2$Terry A. Davis$FG$, wrote all $TX,"120,268",D="DD_TEMPLEOS_LOC"$ lines of TempleOS over the past $TX,"12.9",D="DD_TEMPLEOS_AGE"$ years (full-time).  It can run on some bare metal 64-bit PC's from about 2005-2010 with no layering, libraries, tools, modules or anything from other sources.  Otherwise, you run it in a virtual machine, like $FG,2$VMware$FG$, $FG,2$QEMU$FG$ or $FG,2$VirtualBox$FG$.  It is independent and stands alone.  It has no networking, so it certainly doesn't call home.  100% of the src code is including on all distro's, from the kernel to the compiler to the boot loaders!  It is public domain, not GPL.
     
    -2) $LK,"ATA Reg and Cmd Definitions",A="MN:ATA_NOP"$ are originally from Linux.  Later, I got the spec.
    +*) $LK,"::/Kernel/FontStd.CPP"$, is taken from $FG,4$$TX,"FreeDOS",HTML="http://www.freedos.org"$$FG$.  It's public domain.
     
    -3) The heap algorithm, $LK,"::/Kernel/Mem/MAllocFree.CPP"$, is adapted from one I saw at Ticketmaster when I worked on their VAX operating system.
    +*) $LK,"::/Kernel/FontCyrillic.CPP"$, is taken from $FG,4$$TX,"OrientDisplay",HTML="http://www.orientdisplay.com/images/cyrillic-Russian-fonts.gif"$$FG$ without permission.
     
    -4) The LZW compression algorithm, $LK,"::/Kernel/Compress.CPP"$, came from a magazine and I implemented it when I worked for Ticketmaster.
    +*) $LK,"ATA Reg and Cmd Definitions",A="MN:ATA_NOP"$ are originally from Linux.  Later, I got the spec.
     
    -5) The adaptive-step-size-Runge-Kutta algorithm, $LK,"::/Adam/AMathODE.CPP"$, is adapted from the book, $UL,1$Numeric Recipies in C$UL,0$.
    +*) The heap algorithm, $LK,"::/Kernel/Mem/MAllocFree.CPP"$, is adapted from one I saw at Ticketmaster when I worked on their VAX operating system.
     
    -6) The mountain, palm trees, sheep and goats in AfterEgypt are from $FG,4$$TX,"http://www.public-domain-photos.com",HTML="http://www.public-domain-photos.com"$$FG$.  The wolf in BlackDiamond is also from there.  I took watermarked photos and converted to 16 color.
    +*) The LZW compression algorithm, $LK,"::/Kernel/Compress.CPP"$, came from a magazine and I implemented it when I worked for Ticketmaster.
     
    -7) The $FG,2$FAT32$FG$ file system is owned by MicroSoft.
    +*) The adaptive-step-size-Runge-Kutta algorithm, $LK,"::/Adam/AMathODE.CPP"$, is adapted from the book, $UL,1$Numeric Recipies in C$UL,0$.
     
    -8) A few features were inspired by $FG,2$MATLAB$FG$, such as $FG,2$ans$FG$ in expressions at the command-line.  There is a lot of $FG,2$MSDOS$FG$ , $FG,2$Windows$FG$, $FG,2$VAXTMOS$FG$ (VAX Ticketmaster O.S.) and $FG,2$Unix$FG$ inspiration, too, such as drive letters, command names, etc.
    +*) The mountain, palm trees, sheep and goats in AfterEgypt are from $FG,4$$TX,"http://www.public-domain-photos.com",HTML="http://www.public-domain-photos.com"$$FG$.  The wolf in BlackDiamond is also from there.  I took watermarked photos and converted to 16 color.
     
    -9) I included $LK,"PCIDevice Lst File",A="FI:::/Misc/PCIDevices.TXT",HTML="http://www.pcidatabase.com/reports.php?type=tab-delimeted"$.
    +*) The $FG,2$FAT32$FG$ file system is owned by MicroSoft.
     
    -10) Thanks to whoever wrote this $FG,4$$TX,"CppHtml.CPP.Z",HTML="http://web.archive.org/web/20100325153025/http://home.scarlet.be/zoetrope/cpphtml.htm"$$FG$.  I'm a novice on web stuff and you helped me with html.  See $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$.
    +*) A few features were inspired by $FG,2$MATLAB$FG$, such as $FG,2$ans$FG$ in expressions at the command-line.  There is a lot of $FG,2$MSDOS$FG$ , $FG,2$Windows$FG$, $FG,2$VAXTMOS$FG$ (VAX Ticketmaster O.S.) and $FG,2$Unix$FG$ inspiration, too, such as drive letters, command names, etc.
     
    -11) I used $FG,4$$TX,"MagicISO",HTML="http://www.magiciso.com"$$FG$ to burn test CD's to help me understand the ISO9660 file system format.  I mostly used the $FG,4$$TX,"ISO9660",HTML="http://users.telenet.be/it3.consultants.bvba/handouts/ISO9960.html"$$FG$ spec.
    +*) I included $LK,"PCIDevice Lst File",A="FI:::/Misc/PCIDevices.TXT",HTML="http://www.pcidatabase.com/reports.php?type=tab-delimeted"$.
     
    -12) I looked at bootable CD boot sects, but didn't learn anything, finding it easier to make my own.
    +*) Thanks to whoever wrote this $FG,4$$TX,"CppHtml.CPP.Z",HTML="http://web.archive.org/web/20100325153025/http://home.scarlet.be/zoetrope/cpphtml.htm"$$FG$.  I'm a novice on web stuff and you helped me with html.  See $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$.
     
    -13) I think I got my original PC speaker code from $FG,2$Borland C$FG$.
    +*) I used $FG,4$$TX,"MagicISO",HTML="http://www.magiciso.com"$$FG$ to burn test CD's to help me understand the ISO9660 file system format.  I mostly used the $FG,4$$TX,"ISO9660",HTML="http://users.telenet.be/it3.consultants.bvba/handouts/ISO9960.html"$$FG$ spec.
     
    -14) I found PS/2 keyboard and mouse code on the net and documentation.  My code is very different.  I found VGA reg info on the net.
    +*) I looked at bootable CD boot sects, but didn't learn anything, finding it easier to make my own.
     
    -15) Thanks to $FG,4$$TX,"http://www.osdev.org",HTML="http://www.osdev.org"$$FG$ for a couple tips.
    +*) I think I got my original PC speaker code from $FG,2$Borland C$FG$.
     
    -16) God told me to stick with 640x480 16 color,  a single audio voice and kept me from zombie-walking into making child windows like $FG,2$Windows$FG$.  Instead, I made one window per task with no child windows.  He also guided my progress, very obviously.
    +*) I found PS/2 keyboard and mouse code on the net and documentation.  My code is very different.  I found VGA reg info on the net.
     
    -17) I got $FG,4$$TX,"Webster's Dictionary",HTML="http://www.templeos.org/files/DICTIONARY.TXT"$$FG$ and $FG,4$$TX,"The King James Bible",HTML="http://www.templeos.org/files/BIBLE.TXT"$$FG$ from $FG,4$$TX,"Project Gutenberg",HTML="http://web.archive.org/web/20110730111436/http://promo.net/pg/"$$FG$.
    +*) Thanks to $FG,4$$TX,"http://www.osdev.org",HTML="http://www.osdev.org"$$FG$ for a couple tips.
     
    -18) John Carmack inspired me to use "$LK,"Clamp",A="MN:Clamp"$" as a name instead of "Limit".  He inspired me to use "needle" and "haystack" as names.  He inspired me to simplify my Frames-Per-Second code.
    +*) God told me to stick with 640x480 16 color,  a single audio voice and kept me from zombie-walking into making child windows like $FG,2$Windows$FG$.  Instead, I made one window per task with no child windows.  He also guided my progress, very obviously.
     
    -19) Bill Gates inspired me to add comments to my $LK,"Help & Index",A="FI:::/Doc/HelpIndex.TXT"$.
    +*) I got $FG,4$$TX,"Webster's Dictionary",HTML="http://www.templeos.org/files/DICTIONARY.TXT"$$FG$ and $FG,4$$TX,"The King James Bible",HTML="http://www.templeos.org/files/BIBLE.TXT"$$FG$ from $FG,4$$TX,"Project Gutenberg",HTML="http://web.archive.org/web/20110730111436/http://promo.net/pg/"$$FG$.
     
    -20) I hired and artist, Cody Rigby, for $$3,000 worth of pixel art.
    +*) John Carmack inspired me to use "$LK,"Clamp",A="MN:Clamp"$" as a name instead of "Limit".  He inspired me to use "needle" and "haystack" as names.  He inspired me to simplify my Frames-Per-Second code.
     
    -21) Erik van der Karbargenbok made $LK,"TempleBot",A="PI:::/Linux/TempleBot",HTML="http://www.templeos.org/Wb/Home/Downloads/Bin/TempleBot.html"$.
    +*) Bill Gates inspired me to add comments to my $LK,"Help & Index",A="FI:::/Doc/HelpIndex.TXT"$.
     
    -22) The random number generator is from Donald Knuth in the wikipedia entry for $TX,"Linear_congruential_generator",HTML="http://en.wikipedia.org/wiki/Linear_congruential_generator"$.
    +*) I hired an artist, Cody Rigby, for $$3,000 worth of pixel art.
    +
    +*) Erik van der Karbargenbok made $LK,"TempleBot",A="PI:::/Linux/TempleBot",HTML="http://www.templeos.org/Wb/Home/Downloads/Bin/TempleBot.html"$.
    +
    +*) The random number generator is from Donald Knuth in the wikipedia entry for $TX,"Linear_congruential_generator",HTML="http://en.wikipedia.org/wiki/Linear_congruential_generator"$.
     
     $FG,8$
     * "MSDOS", "Windows", "MovieMaker" "MS Paint" and "FAT32" are trademarks of MicroSoft Corp.
    diff --git a/Doc/Customize.TXT b/Doc/Customize.TXT
    index fedbd29..05277b2 100644
    --- a/Doc/Customize.TXT
    +++ b/Doc/Customize.TXT
    @@ -1,6 +1,6 @@
     
    -$WW,1$* You can adjust the mouse movement rate by setting global vars in your start-up file.  See $LK,"mouse scale",A="FF:/Home/HomeLocalize.CPP,mouse.scale"$.
    +$WW,1$* You can adjust the mouse movement rate by setting global vars in your start-up file.  See $LK,"mouse scale",A="FF:~/HomeLocalize.CPP,mouse.scale"$.
     
    -* You can set your local time zone by setting the $RED$local_time_offset$FG$ global var in a start-up file.  It's units are $LK,"CDATE_FREQ",A="MN:CDATE_FREQ"$.  See $LK,"local time",A="FF:/Home/HomeLocalize.CPP,local_time"$.
    +* You can set your local time zone by setting the $FG,4$local_time_offset$FG$ global var in a start-up file.  It's units are $LK,"CDATE_FREQ",A="MN:CDATE_FREQ"$.  See $LK,"local time",A="FF:~/HomeLocalize.CPP,local_time"$.
     
    -* Get rid of this msg $LK,"here",A="FF:/Home/DoOnce.CPP,Customize.TXT"$.
    +* Get rid of this msg $LK,"here",A="FF:~/DoOnce.CPP,Customize.TXT"$.
    diff --git a/Doc/Demands.TXT b/Doc/Demands.TXT
    index 455a6b7..32b52cf 100644
    --- a/Doc/Demands.TXT
    +++ b/Doc/Demands.TXT
    @@ -1,14 +1,16 @@
     $WW,1$$FG,5$$TX+CX,"Demands"$$FG$
     
    -I, Terry Davis, am high priest of God's official temple, TempleOS.  TempleOS is an operating system for PC desktops that will always dual boot along-side Windows or Linux.  I am in charge of the core 100,000 lines of TempleOS code and I do continual offerings to keep God entertained.  I have divine authority to command any company in the computer industry to do anything that I deem necessary to make God's temple more beautiful, glorious and perfect.  I have authority similar to a building inspector or an enforcer of the Americans with Disability Act -- I make commands, God signs-off with a miraculous authentication from an oracle, and Intel, Microsoft or VMware obeys.
    +I, Terry Davis, am high priest of God's $FG,4$$TX,"official third temple",HTML="http://www.jewishvirtuallibrary.org/jsource/Judaism/The_Temple.html"$$FG$, TempleOS.  TempleOS is an operating system for IBM PC x86_64 desktops that will always dual boot along-side Windows or Linux.  I am in charge of the core 100,000 lines of TempleOS code and I do continual offerings to keep God entertained.  I have divine authority to command any company in the computer industry to do anything that I deem necessary to make God's temple more beautiful, glorious and perfect. I have oversight authority similar to a building inspector or a person enforcing the Americans with Disability Act -- I make commands, God signs-off with a miraculous authentication from an oracle, and Intel, Microsoft or VMware obeys.
     
     $HC,""$
     
     * Windows, Linux and VMware (because of mounted drives) must support $LK,"RedSea",A="FI:::/Doc/RedSea.TXT"$ file system so I can get rid of 2,000 lines of redundant, blemished code -- FAT32 and ISO9660.  God's temple must be perfect.  Redundant code for multiple file systems is imperfect.  For this operating system, we want low line count.  More than one file system type is actually bad, just as more than one driver for the same type of device is bad.
    -$LK,"::/Kernel/BlkDev/FileSysRedSea.CPP"$
    -$LK,"::/Kernel/BlkDev/FileSysFAT.CPP"$	:973 lines for FAT32 gets eliminated.
    -$LK,"::/Kernel/BlkDev/FileSysISO.CPP"$	:293 lines for ISO9660 gets eliminated.
    -$LK,"::/Adam/Opt/Boot/DskISOFile.CPP"$	:535 lines for making ISO files gets reduced.
    +
    +See $LK,"::/Kernel/BlkDev/FileSysRedSea.CPP"$ and $LK,"::/Adam/Opt/Boot/DskISORedSea.CPP"$.
    +
    +$LK,"::/Kernel/BlkDev/FileSysFAT.CPP"$	:974 lines for FAT32 gets eliminated.
    +$LK,"::/Kernel/BlkDev/FileSysISO.CPP"$	:233 lines for ISO9660 gets eliminated.
    +$LK,"::/Adam/Opt/Boot/DskISO9660.CPP"$	:507 lines for making ISO files.
     $LK,"::/Kernel/BlkDev/DskCluster.CPP"$	:152 All the cluster operations become blk.
     
     * Microsoft must cancel SecureBoot because it makes dual booting impossible.  TempleOS is an additional operating system that must be used along-side Windows or Linux, not as a replacement.  It must dual boot because it has no networking. Real hardware as opposed to VMware is like the difference between looking in a telescope eye piece vs just looking at an off-line image.  God said the C64/Apple II generation owned ancestral lands.  VMware is like being taken off of our land and moved onto a reservation.  In this case, however, it will not stand.
    @@ -17,28 +19,26 @@ $LK,"::/Kernel/BlkDev/DskCluster.CPP"$	:152 All the cluster operations become bl
     
     * VMware has a bug stretching 640x480 16 color to full screen.
     
    -* VMware has a bug starting-up multicore, sometimes.  $LK,"APIC MP Start",A="FF:::/Kernel/MultiProc.CPP,IPI"$ Fixed?
    -
    -* VMware PC speaker's distortion is a good idea, but it is too much for hymns.
    +* VMware PC speaker's distortion is a good idea, but it is too much for hymns.  VMware should make an adjustment for distortion and an adjustment for reverb.
     
     * VMware and others must list TempleOS as an official 64-bit operating system.
     
    -* Until super simple block devices are available, hard disk should be placed at IDE primary master 1F0/3F6 and CD/DVD/Blu-ray should be placed at the IDE secondary master 170/376.
    -$LK,"/Kernel/BlkDev/DskATAId.CPP",A="FI:::/Kernel/BlkDev/DskATAId.CPP"$	:285 lines to figure-out I/O ports is gone.
    +* Until super-simple block devices are available, hard disk should be placed at IDE primary master 1F0/3F6 and CD/DVD/Blu-ray should be placed at the IDE secondary master 170/376.
    +$LK,"/Kernel/BlkDev/DskATAId.CPP",A="FI:::/Kernel/BlkDev/DskATAId.CPP"$	:286 lines to figure-out I/O ports is gone.
     $LK,"/Kernel/PCIBIOS.CPP",A="FI:::/Kernel/PCIBIOS.CPP"$		:290 could be eliminated, but maybe we will keep it so people can play with PCI devices.
     
    -* Until super simple serial ports are available, PS/2 emulated keyboard and mouse must work.  The BIOS must enable these.
    +* Until super-simple serial ports are available, PS/2 emulated keyboard and mouse must work.  The BIOS must enable these.
     
    -* The x86 IN/OUT port instructions, normally have a delay.  Perhaps, VMware & Intel can enable faster x86 IN/OUT instruction timing for ATA/ATAPI PIO, so bandwidth isn't bad when doing port I/O.  See $LK,"ATAGetRes",A="MN:ATAGetRes"$().  We don't want to do DMA.  Perhaps, x86 CPU chips need a new TempleOS mode for fast IN/OUT instructions?
    +* The x86 IN/OUT port instructions, normally have a delay.  Perhaps, VMware & Intel can enable faster x86 IN/OUT instruction timing for ATA/ATAPI PIO, so bandwidth isn't bad when doing port I/O.  See $LK,"ATAGetRes",A="MN:ATAGetRes"$().  We don't want to do DMA.  Perhaps, x86 CPU chips need a new TempleOS mode for fast IN/OUT instructions?  I think VMware already does something to speed disk I/O to faster than native speed.
     
     * Perhaps, a new interrupt descriptor table entry type or a new x86 CPU mode can be made that cause fast software interrupts, doing exactly what the CALL REL32 does, but with IDT as indirection.  We don't need to change privilege levels or stacks.
     
     * Since I don't use paging (for anything), Intel should have an option for  no-paging long mode, and optimize it!
    -$LK,"::/Kernel/Mem/PageTables.CPP"$	:153 lines to identity-map gets eliminated.
    +$LK,"::/Kernel/Mem/PageTables.CPP"$	:135 lines to identity-map gets eliminated.
     
    -* Desktop computers must have a reset switch and a fast reboot option, skipping diagnostics.  I recommend booting TempleOS when the reset button is pressed and booting UEFI when the power button is pressed.  Or, we could build UEFI on a TempleOS layer.  Intel must burn TempleOS into a ROM in the factory for all desktop x86 CPUs to ensure tamper-proof trust in the oracle and because God deserves the glory.  There will be just an English version.  A new ROM version is released every seven years.
    +* Desktop computers must have a reset switch and a fast reboot option, skipping diagnostics.  I recommend booting TempleOS from a ROM when the reset button is pressed and booting UEFI when the power button is pressed.  Or, we could build UEFI on a TempleOS layer.  Intel must burn TempleOS into a ROM in the factory for all desktop x86 CPUs to ensure tamper-proof trust in the oracle and because God deserves the glory.  There will be just an English version.  A new ROM version is released every seven years.  The ROM should boot like the DVD boots, but with $LK,"BOOT_SRC_ROM",A="MN:BOOT_SRC_ROM"$.
     
    -* We do not want UTF, just 8-bit characters.  Somebody needs to choose new 8-bit ASCII characters for 128-255, since we do not want text graphic symbols.  We want Russian, Greek or Hebrew alphabets, perhaps?  I heard there is an alternate 8-bit ASCII Cyrillic font.  Should we modify one font or have a key like the C64 that switches to an alternate font?  I made so $FG,2$$FG$ toggles between two fonts, but did not include Cyrillic.  If we modify one font, we just need the twelve window $LK,"TextBorder",A="MN:TextBorder"$ characters, but I think we can place those in the range of screen code from 0x01-0x1E.  Japan, China and Korea should switch-over to alphabets.  Maybe, the United States will change to metric, out of good will. 
    +* We do not want UTF, just 8-bit characters.  $FG,2$$FG$ toggles between Cyrillic and Std Fonts.  We need the twelve window $LK,"TextBorder",A="MN:TextBorder"$ characters added to the VGA font 0x02-0x0D.  Japan, China and Korea must switch to alphabets.  Maybe, the United States will change to metric, out of good will. 
     
     * Microsoft Paint and Linux's Gimp must support TempleOS $LK,"GRA Files",A="FI:::/Doc/GRAFiles.TXT"$.  They are blemish free, unlike $TX,"BMP files",HTML="http://en.wikipedia.org/wiki/BMP_file_format"$.
     
    @@ -46,6 +46,7 @@ $LK,"::/Kernel/Mem/PageTables.CPP"$	:153 lines to identity-map gets eliminated.
     
     * We must have the ultimate Bible search engine.  Currently, all we have is     $TX,"filter search",HTML="https://www.youtube.com/watch?v=ULJU8DzvQFo"$.  In the end, it should be a low line-count technique.
     
    +* We will make a $LK,"Standard TempleOS PC",A="FI:::/Doc/StdTempleOSPC.TXT"$.
     $FG,8$
     * "VMware" is a trademark of VMware, Inc.
     * "Linux" is probably a trademark owned by Linus Torvalds.
    diff --git a/Doc/DemoIndex.TXT b/Doc/DemoIndex.TXT
    index b61b67a..34f6947 100644
    --- a/Doc/DemoIndex.TXT
    +++ b/Doc/DemoIndex.TXT
    @@ -28,7 +28,6 @@ $LK,"::/Demo/KeyBitMap.CPP"$
     $LK,"::/Demo/Graphics/WinZBuf.CPP"$
     $LK,"::/Demo/Graphics/Elephant.CPP"$
     $LK,"::/Demo/Graphics/Mountain.CPP"$
    -$LK,"::/Demo/Games/Coach.CPP"$
     $LK,"::/Demo/Graphics/WallPaperFish.CPP"$ //Press SHIFT-F5 to Adam Include
     $LK,"::/Demo/Games/Digits.CPP"$
     $LK,"::/Demo/Progress.CPP"$ //has some ASM, just ignore
    @@ -126,11 +125,11 @@ $ID,2$$LK,"::/Misc/DoDistro.CPP"$
     $LK,"::/Demo/DbgDemo.CPP"$
     $LK,"::/Demo/SubSwitch.CPP"$
     $LK,"::/Demo/DateTime.CPP"$
    -$LK,"::/Demo/ReverseFileExample/Reverse.CPP"$
    -$LK,"::/Demo/ToHtmlToTXTExample/HtmlGen.CPP"$
    -$LK,"::/Demo/ToHtmlToTXTExample/TXTGen.CPP"$
    -$LK,"::/Demo/SortFileExample/F64FileGen.CPP"$
    -$LK,"::/Demo/SortFileExample/F64FileSort.CPP"$
    +$LK,"::/Demo/RevFileDemo/Rev.CPP"$
    +$LK,"::/Demo/ToHtmlToTXTDemo/HtmlGen.CPP"$
    +$LK,"::/Demo/ToHtmlToTXTDemo/TXTGen.CPP"$
    +$LK,"::/Demo/SortFileDemo/F64FileGen.CPP"$
    +$LK,"::/Demo/SortFileDemo/F64FileSort.CPP"$
     $LK,"::/Demo/PhoneNumWords.CPP"$
     $LK,"::/Demo/SuggestSpelling.CPP"$
     $LK,"::/Demo/WordSearch.CPP"$
    @@ -145,8 +144,8 @@ $LK,"::/Demo/Lectures/MiniGrLib.CPP"$
     $LK,"::/Demo/Lectures/MiniCompiler.CPP"$
     $LK,"::/Demo/MagicPairs.CPP"$
     $LK,"::/Demo/Graphics/PoleZeros.CPP"$
    -$LK,"::/Demo/WebLogExample/WebLogRep.CPP"$
    -$LK,"::/Demo/WebLogExample/WebLogScramble.CPP"$
    +$LK,"::/Demo/WebLogDemo/WebLogRep.CPP"$
    +$LK,"::/Demo/WebLogDemo/WebLogScramble.CPP"$
     $MA-X+PU,"::/Apps/TimeClock",LM="Cd(\"::/Apps/TimeClock\");Dir;View;\n"$
     $MA-X+PU,"::/Apps/Logic",LM="Cd(\"::/Apps/Logic\");Dir;View;\n"$
     $MA-X+PU,"::/Demo/Lectures",LM="Cd(\"::/Demo/Lectures\");Dir;View;\n"$
    diff --git a/Doc/Directives.TXT b/Doc/Directives.TXT
    index f788fd0..2a89aa5 100644
    --- a/Doc/Directives.TXT
    +++ b/Doc/Directives.TXT
    @@ -1,7 +1,7 @@
     $HL,1$$WW,0$#define __DATE__ #exe{StreamPrint("\"%D\"",Now);}
     #define __TIME__ #exe{StreamPrint("\"%T\"",Now);}
     #define __LINE__ #exe{StreamPrint("%d",Fs->last_lex->lex_include_stk->line_num);}
    -#define __DEPTH__ #exe{StreamPrint("%d",Fs->last_lex->lex_include_stk->depth);}
    +#define __CMD_LINE__ #exe{StreamPrint("%d",Fs->last_lex->flags&CCF_CMD_LINE && Fs->last_lex->lex_include_stk->depth<2);}
     #define __FILE__ #exe{StreamPrint("\"%s\"",Fs->last_lex->lex_include_stk->full_name);}
     #define __DIR__  #exe{StreamDir;}
     
    diff --git a/Doc/DolDocOverview.TXT b/Doc/DolDocOverview.TXT
    index dde15c7..73cd6d4 100644
    --- a/Doc/DolDocOverview.TXT
    +++ b/Doc/DolDocOverview.TXT
    @@ -151,7 +151,7 @@ $ID,2$A left macro arg, $FG,2$LM=""$FG$, will send text when the left mouse is c
     
     A left auto string, $FG,2$+LA$FG$, flag will cause text to be sent to $LK,"AutoStr",A="MN:AutoStr"$() instead of $LK,"Auto",A="MN:Auto"$().  An AutoStr runs code.  Literal text is in quotes and messages are sent with $LK,"Msg",A="MN:Msg"$().  See $MA-X+PU,LM="Dir(\"::/Demo/AutoFile\");View;"$.
     
    -Macro's are usually in your $LK,"::/Home/PersonalMenu.TXT"$ and have the '$FG,2$+X$FG$' flag set by $LK,"default",A="MN:DocInit"$.  Adding '$FG,2$-X$FG$' prevents the usual $FG,2$$FG$ from being sent (which exits the PersonalMenu screen).  Note: When you click a macro on the cmd line, it will go to the bottom and execute unless you cancel the $FG,2$$FG$ with a '$FG,2$-X$FG$'.
    +Macro's are usually in your $LK,"~/PersonalMenu.TXT"$ and have the '$FG,2$+X$FG$' flag set by $LK,"default",A="MN:DocInit"$.  Adding '$FG,2$-X$FG$' prevents the usual $FG,2$$FG$ from being sent (which exits the PersonalMenu screen).  Note: When you click a macro on the cmd line, it will go to the bottom and execute unless you cancel the $FG,2$$FG$ with a '$FG,2$-X$FG$'.
     $ID,-2$$TR,"MU Menu Value"$
     $ID,2$A left expression arg, $FG,2$LE=$FG$, will return a number when clicked with the left mouse.
     
    @@ -184,7 +184,7 @@ $ID,2$Include a $FG,2$1$FG$ or $FG,2$0$FG$.
     
     $FG,2$$$HL,1$$$FG$ will turn syntax highlighting on.
     $ID,-2$$TR,"HC html"$
    -$ID,2$See $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$ to generate a html version of a document.  You can cause html code to be injected with $FG,2$HC$FG$.  Use the $FG,2$+HTML$FG$ flag to inject a html link.
    +$ID,2$See $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$ to generate a html version of a document.  You can cause html code to be injected with $FG,2$HC$FG$.  Use the $FG,2$+HTML$FG$ flag to inject a html link.
     $ID,-2$$TR,"ER Error"$
     $ID,2$When errors are detected in DolDoc cmds, an $FG,2$ER$FG$ entry is generated.
     $ID,-2$
    @@ -236,7 +236,7 @@ For indirection, the tag will be regenerated by substituting the value of a syst
     
     For $FG,2$LS$FG$ widgets, see $LK,"::/Demo/DolDoc/Form.CPP"$.
     $ID,-2$$TR,"HTML=\"\""$
    -$ID,2$See $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$ to generate a html version of a document.  You can cause html link on an item with $FG,2$HTML=""$FG$.
    +$ID,2$See $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$ to generate a html version of a document.  You can cause html link on an item with $FG,2$HTML=""$FG$.
     $ID,-2$$TR,"LE= Left Expression"$
     $ID,2$Left expression.  $FG,2$CM$FG$ has this by default for X offset and you can leave-off the $FG,2$LE=$FG$, just putting the $FG,2$$FG$.
     
    diff --git a/Doc/FAQ.TXT b/Doc/FAQ.TXT
    index c7ce537..4cefb16 100644
    --- a/Doc/FAQ.TXT
    +++ b/Doc/FAQ.TXT
    @@ -39,11 +39,11 @@ $ID,2$The refresh rate is $TX,"30",D="WINMGR_FPS"$ frames-per-second.  That is h
     $ID,-2$$TR,"How does a task own the speaker?"$
     $ID,2$No task or application has a lock on the speaker so apps will interfere with each other.
     $ID,-2$$TR,"Why does it leak memory?"$
    -$ID,2$TempleOS allocs mem as more items are displayed in the window.  Also, TempleOS allocs mem for code as it is compiled at the cmd line.  If you $FG,2$#include$FG$ a file twice, it allocs more mem for it.  If you have a 50,000 line program with each line taking twenty bytes on a machine with 1 Gig, you could $FG,2$#include$FG$ it a thousand times if it had no data or graphics and no other use of mem.  If it bothers you, hit $FG,2$$FG$ and $FG,2$, $FG$periodically, to kill and recreate the task$FG$.  Use the pop-up flag on macros in your $LK,"PersonalMenu",A="FI:::Home/PersonalMenu.TXT"$ to spawn new tasks, run applications and free the applications when they are finished.  Small mem chunks stick to the task when they are freed until it is killed.  The only way to get in trouble is allocating multiple Meg chunks and freeing them.  These can only be reused if the same size gets alloced again.  Use $LK,"HeapLog",A="MN:HeapLog"$(), $LK,"HeapLogAddrRep",A="MN:HeapLogAddrRep"$() and $LK,"HeapLogSizeRep",A="MN:HeapLogSizeRep"$() to see who alloced mem and didn't free it.  See $LK,"MemOverview",A="FI:::/Doc/MemOverview.TXT"$.
    +$ID,2$TempleOS allocs mem as more items are displayed in the window.  Also, TempleOS allocs mem for code as it is compiled at the cmd line.  If you $FG,2$#include$FG$ a file twice, it allocs more mem for it.  If you have a 50,000 line program with each line taking twenty bytes on a machine with 1 Gig, you could $FG,2$#include$FG$ it a thousand times if it had no data or graphics and no other use of mem.  If it bothers you, hit $FG,2$$FG$ and $FG,2$, $FG$periodically, to kill and recreate the task$FG$.  Use the pop-up flag on macros in your $LK,"PersonalMenu",A="FI:::Home/PersonalMenu.TXT"$ to spawn new tasks, run applications and free the applications when they are finished.  Small mem chunks stick to the task when they are freed until it is killed.  The only way to get in trouble is allocating multiple Meg chunks and freeing them.  These can only be reused if the same size gets alloced again.  Use $LK,"HeapLog",A="MN:HeapLog"$(), $LK,"HeapLogAddrRep",A="MN:HeapLogAddrRep"$() and $LK,"HeapLogSizeRep",A="MN:HeapLogSizeRep"$() to see who alloced mem and didn't free it.  See $LK,"MemOverview",A="FI:::/Doc/MemOverview.TXT"$.
     $ID,-2$$TR,"Why do I get a memory leak when editing big files?"$
     $ID,2$The editor periodically takes a snap-shot of the document for $FG,2$UNDO$FG$ and this looks like a memory leak.
     $ID,-2$$TR,"Why is it in text mode?"$
    -$ID,2$TempleOS runs in $FG,2$VGA 640x480 16 color$FG$ graphics mode, not text mode.  It changes to this mode with a $LK,"BIOS call",A="FF:::/Kernel/KStart.CPP,INT 0x10"$ while in real-mode before it switches to 64-bit mode.  The text is $LK,"drawn by hand",A="MN:GrUpdateTextFG"$.  See $LK,"::/Kernel/Font8x8.CPP"$.  If graphics mode fails, it falls-back on text mode.  You can force text mode with an $LK,"Kernel config",A="FI:::/Kernel/KCfg.CPP"$ option.
    +$ID,2$TempleOS runs in $FG,2$VGA 640x480 16 color$FG$ graphics mode, not text mode.  It changes to this mode with a $LK,"BIOS call",A="FF:::/Kernel/KStart.CPP,INT 0x10"$ while in real-mode before it switches to 64-bit mode.  The text is $LK,"drawn by hand",A="MN:GrUpdateTextFG"$.  See $LK,"::/Kernel/FontStd.CPP"$.  If graphics mode fails, it falls-back on text mode.  You can force text mode with an $LK,"Kernel config",A="FI:::/Kernel/KCfg.CPP"$ option.
     $ID,-2$$TR,"Where is the kernel memory?"$
     $ID,2$TempleOS identity-maps all memory, all the time.  It is like paging is not used.  There is no special kernel $FG,2$high half$FG$ memory space.  TempleOS is ring-0-only, so everything is kernel, even user programs.  There is a special task called $FG,2$Adam$FG$ and he doesn't die, so his heap never gets freed.  That's as close to $FG,2$kernel memory$FG$ as it gets.  All code goes in the lowest 2 Gig of addresses, 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.  See $LK,"MemOverview",A="FI:::/Doc/MemOverview.TXT"$.
     $ID,-2$$TR,"Why does it run code from stack addresses?"$
    diff --git a/Doc/FileMgr.TXT b/Doc/FileMgr.TXT
    index 1843993..57d8f8a 100644
    --- a/Doc/FileMgr.TXT
    +++ b/Doc/FileMgr.TXT
    @@ -1,13 +1,13 @@
     $WW,1$$FG,5$$TX+CX,"File Manager"$$FG$
     
     $FG,2$$FG$
    -$ID,2$Select files.
    +$ID,2$Sel files.
     $ID,-2$
     $FG,2$ or $FG$
     $ID,2$Delete file or tree.
     $ID,-2$
     $FG,2$ or $FG$
    -$ID,2$Copy selected files to clipboard.
    +$ID,2$Copy sel files to clipboard.
     $ID,-2$
     $FG,2$ or $FG$
     $ID,2$Paste clipboard.
    diff --git a/Doc/FileUtils.TXT b/Doc/FileUtils.TXT
    index b9c0d32..99d68c8 100644
    --- a/Doc/FileUtils.TXT
    +++ b/Doc/FileUtils.TXT
    @@ -1,11 +1,11 @@
     $WW,1$$FG,5$$TX+CX,"File Utils"$$FG$
     
    -File util $LK,"FilesFind",A="MN:FilesFind"$() wildcard mask consists of a single base dir with multiple file masks separated by $FG,2$';'$FG$.  The $FG,2$'*'$FG$ and $FG,2$'?'$FG$ wildcard chars are accepted.  A $FG,2$'~'$FG$ indicates an exclusion mask.
    +File util $LK,"FilesFind",A="MN:FilesFind"$() wildcard mask consists of a single base dir with multiple file masks separated by $FG,2$';'$FG$.  The $FG,2$'*'$FG$ and $FG,2$'?'$FG$ wildcard chars are accepted.  The $FG,2$'~'$FG$ is your home directory and $FG,2$'!'$FG$ indicates an exclusion mask.
     
      
     $FG,2$"/Kernel/*"$FG$		BaseDir: $FG,2$/Kernel$FG$	Mask: $FG,2$*$FG$
     $FG,2$"/Demo/*.BMP*;*.GRA*"$FG$	BaseDir: $FG,2$/Demo$FG$		Mask: $FG,2$*.BMP*$FG$ | $FG,2$*.GRA*$FG$
    -$FG,2$"/*.TXT*;~*/Bible*"$FG$	BaseDir: $FG,2$Root$FG$		Mask: $FG,2$*.TXT*$FG$ but not $FG,2$*/Bible*$FG$
    +$FG,2$"/*.TXT*;!*/Bible*"$FG$	BaseDir: $FG,2$Root$FG$		Mask: $FG,2$*.TXT*$FG$ but not $FG,2$*/Bible*$FG$
     
     See $LK,"FilesFindMatch",A="MN:FilesFindMatch"$().
     
    diff --git a/Doc/Glossary.TXT b/Doc/Glossary.TXT
    index c5555e7..b890745 100644
    --- a/Doc/Glossary.TXT
    +++ b/Doc/Glossary.TXT
    @@ -115,13 +115,15 @@ $FG,2$Reg$FG$	Register, Registry, Regular
     $FG,2$Rem$FG$	Remove
     $FG,2$Rep$FG$	Report, Repeat
     $FG,2$Res$FG$	Result
    +$FG,2$Rev$FG$	Reverse, Reversed
     $FG,2$Rqst$FG$	Request
     $FG,2$Rst$FG$	Reset
     $FG,2$Rot$FG$	Rotation
     $FG,2$Rx$FG$	Receive
     $FG,2$Sched$FG$	Sceduler
     $FG,2$Sec$FG$	Second, Secondary
    -$FG,2$$FG,2$Sect$FG$	Sector
    +$FG,2$Sect$FG$	Sector
    +$FG,2$Sel$FG$	Select, Selected
     $FG,2$Seq$FG$	Sequence
     $FG,2$Snd$FG$	Sound
     $FG,2$SP$FG$	SingleProcessor
    @@ -167,7 +169,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 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$The compiler generates insts one step before making actual assembly (machine) language insts.  This code is rev 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$.
     
    diff --git a/Doc/GraphicsOverview.TXT b/Doc/GraphicsOverview.TXT
    index c4af995435438c9a9309008266724f24b646ccbf..2fab512622c5c615854e68be94958e25649ca528 100644
    GIT binary patch
    delta 12
    TcmbPdI@@%^EWyol1sOR3A@c-k
    
    delta 16
    XcmbPjI?r^&EJ5bf$FG$ key or by clicking "$FG,2$MENU$FG$" in the upper left border area of a window.
    +$LK,"~/PersonalMenu.TXT"$ a menu viewed with the $FG,2$$FG$ key or by clicking "$FG,2$MENU$FG$" in the upper left border area of a window.
     
    -$LK,"::/Home/PersonalNotes.TXT"$ a personal note file viewed with the $FG,2$$FG$ key.
    +$LK,"~/PersonalNotes.TXT"$ a personal note file viewed with the $FG,2$$FG$ key.
     
    -$LK,"::/Home/MakeHome.CPP"$ a file compiled by the $LK,"Adam Task",A="FF:::/Doc/Glossary.TXT,Adam Task"$ during $LK,"StartOS",A="FF:::/StartOS.CPP,MakeHome"$.
    +$LK,"~/MakeHome.CPP"$ a file compiled by the $LK,"Adam Task",A="FF:::/Doc/Glossary.TXT,Adam Task"$ during $LK,"StartOS",A="FF:::/StartOS.CPP,MakeHome"$.
     
    -$FG,4$::/Home/Home*$FG$ Copy $FG,2$Home*$FG$ files from the root into $FG,2$::/Home$FG$ and customize them.  These files are invoked when the adam task starts-up.
    +$FG,4$~/Home*$FG$ Copy $FG,2$Home*$FG$ files from the root into $FG,2$~$FG$ and customize them.  These files are invoked when the adam task starts-up.
     
    -$LK,"::/Home/DoOnce.CPP"$ a file invoked at the start-up of the first user.  Customize this!
    +$LK,"~/DoOnce.CPP"$ a file invoked at the start-up of the first user.  Customize this!
     
    -$LK,"::/Home/Registry.CPP"$ can be edited by hand or deleted to reset to defaults.  Takes affect next boot.
    +$LK,"~/Registry.CPP"$ can be edited by hand or deleted to reset to defaults.  Takes affect next boot.
     
     
     
    @@ -80,8 +80,6 @@ $ID,-5$
     
     * Glbl vars in $FG,2$AOT$FG$ BIN modules are initialized to zero.  They occupy space in BIN files.
     
    -* If you use floats in your interrupt routine, save and restore the fpu state with $LK,"Fxsave",A="MN:Fxsave"$() and $LK,"Fxrstor",A="MN:Fxrstor"$().  The timer interrupt does this.  The keyboard and mouse don't use floats.
    -
     * Bracketing code with $FG,2$PUSHFD CLI$FG$ and $FG,2$POPFD$FG$ will protect against simultaneous accesses from tasks on $UL,1$one$UL,0$ core.  To protect against multiple cores, you need a locked semaphore.  I think semiphores need to be in their own cache line, but I'm not sure.  I use lock bits in a lot of places not aligned.
     
     * $LK,"SysDbg",A="MN:SysDbg"$() and $LK,"IsSysDbg",A="MN:IsSysDbg"$() are really handy when working on the compiler or kernel.  It's just a bit you can set and test.
    diff --git a/Doc/HelpIndex.TXT b/Doc/HelpIndex.TXT
    index c806ac623ddb53ce35da90e6f9fcc7d9789df630..c09a7bc95a641e59bc0154ecf52df333d91629b2 100644
    GIT binary patch
    delta 313
    zcmexvKEZ-pB|KcmP({VfUB`4HuN8}%yN=OBA4v$EB_#>stJt_1+Nrp?t8j99q~;WG
    zffO4}oG%MebWjRHKadC0lUW$cA&dq_We8&hBSh)sQ;bkG?-&&zQo>9=5Jn1TvYKp`WAkJJn>IOzLrub-7?us>8}a~fv=
    iMBV1y+^K9J9j2SrgeEa>ejw`3G;%0S;3(NqvmG$_Ewbt1P_gnN*ytDlNZaDbz;tDTCQy9%dIYFde|b53S*
    zHkS%i*3~b>H3%Xbl$oA^F70Lrk>m78%_)FtnmALI6|8&WE-5JEhCGz(X+Xp_UtoI8G+BX7gOPLcHdc+z
    z9&DaW5ShtSId03lW#*(h7o{eaq$=q++A8__S$PKgBLp{hat1(^Z@$Z&%Ekr>q|I(Z
    clbG33GE4G{6ei0{C~m$k>cO$GREEN$Dir("*");$FG$
    -  >$GREEN$Dir();$FG$
    -  >$GREEN$Dir;$FG$
    +  >$FG,2$Dir("*");$FG$
    +  >$FG,2$Dir();$FG$
    +  >$FG,2$Dir;$FG$
     
     * Default args don't have to be on the end.  This code is valid:
    -$ID,2$$GREEN$U0 Test(I64 i=4,I64 j,I64 k=5)
    +$ID,2$$FG,2$U0 Test(I64 i=4,I64 j,I64 k=5)
     {
       Print("%X %X %X\n",i,j,k);
     }
    @@ -34,7 +34,7 @@ Test(,3);$FG$
     $ID,-2$
     * A char const all alone is sent to $LK,"PutChars",A="MN:PutChars"$().  A string with or without args is sent to $LK,"Print",A="MN:Print"$().  An empty string literal signals a variable fmt_str follows.
     
    -$ID,2$$GREEN$void DemoC(char drv,char *fmt,char *name,int age)
    +$ID,2$$FG,2$void DemoC(char drv,char *fmt,char *name,int age)
     {
       printf("Hello World!\n");
       printf("%s age %d\n",name,age);
    @@ -52,15 +52,15 @@ U0 DemoHolyC(U8 drv,U8 *fmt,U8 *name,I64 age)
       '*';
     }
     $FG$$ID,-2$
    -* When dealing with function addresses such as for callbacks, precede the name with "$GREEN$&$FG$".
    +* When dealing with function addresses such as for callbacks, precede the name with "$FG,2$&$FG$".
     
     * Type casting is postfix.  To typecast int or F64, use $LK,"ToI64",A="MN:ToI64"$(), $LK,"ToBool",A="MN:ToBool"$() or $LK,"ToF64",A="MN:ToF64"$(). (TempleOS follows normal C float<-->int conversion, but sometimes you want to override.  These functions are better than multiplying by "1.0" to convert to float.) 
     
    -* There is no $GREEN$main()$FG$ function.  Any code outside of functions gets executed upon start-up, in order.
    +* There is no $FG,2$main()$FG$ function.  Any code outside of functions gets executed upon start-up, in order.
     
    -* There are no bit fields, but there are $LK,"bit access",A="HI:Bit"$ routines and you can access bytes or words within any int.  See $LK,"I64 declaration",A="MN:I64"$.  A class can be accessed as a whole are subints, if you put a type in front of the $GREEN$class$FG$ declaration.
    +* There are no bit fields, but there are $LK,"bit access",A="HI:Bit"$ routines and you can access bytes or words within any int.  See $LK,"I64 declaration",A="MN:I64"$.  A class can be accessed as a whole are subints, if you put a type in front of the $FG,2$class$FG$ declaration.
     $ID,2$
    -$GREEN$public I64i union I64		//"I64i" is intrinsic.  We are defining "I64".
    +$FG,2$public I64i union I64		//"I64i" is intrinsic.  We are defining "I64".
     {
       I8i i8[8];
       U8i u8[8];
    @@ -73,9 +73,9 @@ $GREEN$public I64i union I64		//"I64i" is intrinsic.  We are defining "I64".
     I64 i=0x123456780000DEF0;
     i.u16[1]=0x9ABC;
     $FG$$ID,-2$
    -* Variable arg count functions ($GREEN$...$FG$) can access their args with built-in variables similar to '$GREEN$this$FG$' in C++.  They are '$GREEN$I64 argc$FG$' and '$GREEN$I64 argv[]$FG$'.  
    +* Variable arg count functions ($FG,2$...$FG$) can access their args with built-in variables similar to '$FG,2$this$FG$' in C++.  They are '$FG,2$I64 argc$FG$' and '$FG,2$I64 argv[]$FG$'.  
     $ID,2$$WW,0$
    -$GREEN$I64 AddNums(...)
    +$FG,2$I64 AddNums(...)
     {
       I64 i,res=0;
       for (i=0;i$GREEN$AddNums(1,2,3);$FG$
    +$FG$>$FG,2$AddNums(1,2,3);$FG$
     ans=6
    -$GREEN$
    +$FG,2$
     
     public U0 GrPrint(CDC *dc,I64 x,I64 y,U8 *fmt,...)
     {
    @@ -101,20 +101,20 @@ public U0 GrPrint(CDC *dc,I64 x,I64 y,U8 *fmt,...)
       ...
     
     $WW,1$$FG$$ID,-2$
    -* Allows "$GREEN$5$GREEN$Zero [One] Two [Three] Four [Five]$FG$
    +>$FG,2$Zero [One] Two [Three] Four [Five]$FG$
     $ID,-2$
    -* A $GREEN$nounusedwarn$FG$ stmt will suppress an unused var warning.
    +* A $FG,2$no_warn$FG$ stmt will suppress an unused var warning.
     
    -* You can have multiple member vars of a class named "$GREEN$pad$FG$" or "$GREEN$reserved$FG$", and it won't issue warnings. 
    +* You can have multiple member vars of a class named "$FG,2$pad$FG$" or "$FG,2$reserved$FG$", and it won't issue warnings. 
     
    -* $GREEN$noreg$FG$ or $GREEN$reg$FG$ can be placed before a function local var name.  You can, optionally, specify a reg after the $GREEN$reg$FG$ keyword.
    +* $FG,2$noreg$FG$ or $FG,2$reg$FG$ can be placed before a function local var name.  You can, optionally, specify a reg after the $FG,2$reg$FG$ keyword.
     
    -$ID,2$$GREEN$U0 Main()
    +$ID,2$$FG,2$U0 Main()
     {
       //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;
    +  no_warn i;
       asm {
     	MOV	RAX,R15
     	CALL	&PUT_HEX_U64
    @@ -168,11 +168,11 @@ $ID,2$$GREEN$U0 Main()
       }
     }
     $FG$$ID,-2$
    -* $GREEN$interrupt$FG$, $GREEN$haserrcode$FG$, $GREEN$public$FG$, $GREEN$argpop$FG$ or $GREEN$noargpop$FG$ are function flags. See $LK,"::/Demo/Lectures/Mem/PageTableEntries.CPP"$.
    +* $FG,2$interrupt$FG$, $FG,2$haserrcode$FG$, $FG,2$public$FG$, $FG,2$argpop$FG$ or $FG,2$noargpop$FG$ are function flags. See $LK,"::/Demo/Lectures/Mem/PageTableEntries.CPP"$.
     
    -* A single quote can encompass multiple characters.  $GREEN$'ABC'$FG$ is equ to $GREEN$0x434241$FG$.  $LK,"PutChars",A="MN:PutChars"$() takes multiple characters.
    +* A single quote can encompass multiple characters.  $FG,2$'ABC'$FG$ is equ to $FG,2$0x434241$FG$.  $LK,"PutChars",A="MN:PutChars"$() takes multiple characters.
     
    -$ID,2$$GREEN$asm {
    +$ID,2$$FG,2$asm {
     HELLO_WORLD::
     	PUSH	RBP
     	MOV	RBP,RSP
    @@ -187,67 +187,67 @@ Call(HELLO_WORLD);
     PutChars('Hello ');
     PutChars('World\n');
     $FG$$ID,-2$
    -* The "$GREEN$`$FG$" operator raises a base to a power.
    +* The "$FG,2$`$FG$" operator raises a base to a power.
     
     * There is no question-colon operator.
     
     * TempleOS $LK,"operator precedence",A="FF:::/Compiler/CInit.CPP,cmp.binary_ops"$
    -  $GREEN$`$FG$,$GREEN$>>$FG$,$GREEN$<<$FG$
    -  $GREEN$*$FG$,$GREEN$/$FG$,$GREEN$%$FG$
    -  $GREEN$&$FG$
    -  $GREEN$^$FG$
    -  $GREEN$|$FG$
    -  $GREEN$+$FG$,$GREEN$-$FG$
    -  $GREEN$$GREEN$<$FG$,$GREEN$>$FG$,$GREEN$<=$FG$,$GREEN$>=$FG$
    -  $GREEN$==$FG$,$GREEN$!=$FG$
    -  $GREEN$&&$FG$
    -  $GREEN$$GREEN$^^$FG$
    -  $GREEN$||$FG$$FG$
    -  $GREEN$=$FG$,$GREEN$<<=$FG$,$GREEN$>>=$FG$,$GREEN$*=$FG$,$GREEN$/=$FG$,$GREEN$&=$FG$,$GREEN$|=$FG$,$GREEN$^=$FG$,$GREEN$+=$FG$,$GREEN$-=$FG$
    +  $FG,2$`$FG$,$FG,2$>>$FG$,$FG,2$<<$FG$
    +  $FG,2$*$FG$,$FG,2$/$FG$,$FG,2$%$FG$
    +  $FG,2$&$FG$
    +  $FG,2$^$FG$
    +  $FG,2$|$FG$
    +  $FG,2$+$FG$,$FG,2$-$FG$
    +  $FG,2$$FG,2$<$FG$,$FG,2$>$FG$,$FG,2$<=$FG$,$FG,2$>=$FG$
    +  $FG,2$==$FG$,$FG,2$!=$FG$
    +  $FG,2$&&$FG$
    +  $FG,2$$FG,2$^^$FG$
    +  $FG,2$||$FG$$FG$
    +  $FG,2$=$FG$,$FG,2$<<=$FG$,$FG,2$>>=$FG$,$FG,2$*=$FG$,$FG,2$/=$FG$,$FG,2$&=$FG$,$FG,2$|=$FG$,$FG,2$^=$FG$,$FG,2$+=$FG$,$FG,2$-=$FG$
     
     * You can use $LK,"Option",A="MN:Option"$($LK,"OPTf_WARN_PAREN",A="MN:OPTf_WARN_PAREN"$,ON) to find unnecessary parentheses in code.
     
     * You can use $LK,"Option",A="MN:Option"$($LK,"OPTf_WARN_DUP_TYPES",A="MN:OPTf_WARN_DUP_TYPES"$,ON) to find dup local var type stmts.
     
    -* With the $GREEN$#exe{}$FG$ feature in your src code, you can place programs that insert text into the stream of code being compiled.  See $LK,"#exe {}",A="FF:::/Kernel/KEnd.CPP,#exe {"$ for an example where the date/time and compile-time prompting for cfguration data is placed into a program.  $LK,"StreamPrint",A="MN:StreamPrint"$() places text into a src program stream following the conclusion of the $GREEN$#exe{}$FG$ blk.
    +* With the $FG,2$#exe{}$FG$ feature in your src code, you can place programs that insert text into the stream of code being compiled.  See $LK,"#exe {}",A="FF:::/Kernel/KEnd.CPP,#exe {"$ for an example where the date/time and compile-time prompting for cfguration data is placed into a program.  $LK,"StreamPrint",A="MN:StreamPrint"$() places text into a src program stream following the conclusion of the $FG,2$#exe{}$FG$ blk.
     
    -* No $GREEN$#define$FG$ functions exist (I'm not a fan)
    +* No $FG,2$#define$FG$ functions exist (I'm not a fan)
     
    -* No $GREEN$typedef$FG$, use $GREEN$class$FG$.
    +* No $FG,2$typedef$FG$, use $FG,2$class$FG$.
     
     * No type-checking
     
    -* Can't use $GREEN$<>$FG$ with $GREEN$#include$FG$, use $GREEN$""$FG$.
    +* Can't use $FG,2$<>$FG$ with $FG,2$#include$FG$, use $FG,2$""$FG$.
     
    -* "$GREEN$$$$FG$" is an escape character.  Two dollar signs signify an ordinary $$.  See $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.TXT"$.  In $GREEN$asm$FG$ or $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ code, it also refers to the inst's address or the offset in a $GREEN$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. 
     
    -* $GREEN$union$FG$ is more like a class, so you don't reference it with a $GREEN$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"$. 
    +* $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"$. 
     
    -* $GREEN$class$FG$ member vars can have meta data. $GREEN$fmtstr$FG$ and $GREEN$fmtdata$FG$ are two meta data types now used.  All compiler structures are saved and you can access the compiler's info about classes and vars.  See $LK,"::/Demo/ClassMeta.CPP"$ and  $LK,"DocForm",A="MN:DocForm"$().
    +* $FG,2$class$FG$ member vars can have meta data. $FG,2$fmtstr$FG$ and $FG,2$fmtdata$FG$ are two meta data types now used.  All compiler structures are saved and you can access the compiler's info about classes and vars.  See $LK,"::/Demo/ClassMeta.CPP"$ and  $LK,"DocForm",A="MN:DocForm"$().
     
    -* There is a keyword $GREEN$lastclass$FG$ you use as a dft arg.  It is set to the class name of the prev arg.  See $LK,"::/Demo/LastClass.CPP"$, $LK,"ClassRep",A="MN:ClassRep"$(), $LK,"DocForm",A="MN:DocForm"$()  and $LK,"::/Demo/Dsk/BlkDevRep.CPP"$.
    +* There is a keyword $FG,2$lastclass$FG$ you use as a dft arg.  It is set to the class name of the prev arg.  See $LK,"::/Demo/LastClass.CPP"$, $LK,"ClassRep",A="MN:ClassRep"$(), $LK,"DocForm",A="MN:DocForm"$()  and $LK,"::/Demo/Dsk/BlkDevRep.CPP"$.
     
    -* See $LK,"::/Demo/Exceptions.CPP"$.  $GREEN$try{} catch{}$FG$ and $GREEN$throw$FG$ are different from C++. $GREEN$throw$FG$ is a function with an 8-byte or less char arg.  The char string passed in $GREEN$throw()$FG$ can be accessed from within a $GREEN$catch{}$FG$ using the $GREEN$Fs->except_ch$FG$.  Within a $GREEN$catch {}$FG$ blk, set the var $GREEN$Fs->catch_except$FG$ to $GREEN$TRUE$FG$ if you want to terminate the search for a handler.  Use $LK,"PutExcept",A="MN:PutExcept"$() as a handler, if you like.
    +* See $LK,"::/Demo/Exceptions.CPP"$.  $FG,2$try{} catch{}$FG$ and $FG,2$throw$FG$ are different from C++. $FG,2$throw$FG$ is a function with an 8-byte or less char arg.  The char string passed in $FG,2$throw()$FG$ can be accessed from within a $FG,2$catch{}$FG$ using the $FG,2$Fs->except_ch$FG$.  Within a $FG,2$catch {}$FG$ blk, set the var $FG,2$Fs->catch_except$FG$ to $FG,2$TRUE$FG$ if you want to terminate the search for a handler.  Use $LK,"PutExcept",A="MN:PutExcept"$() as a handler, if you like.
     
    -* A function is available similar to $GREEN$sizeof$FG$ which provides the offset of a member of a class.  It's called $GREEN$offset$FG$.  You place the class name and member inside as in $GREEN$offset(classname.membername)$FG$.  It has nothing to do with 16-bit code.  Both $GREEN$sizeof$FG$ and $GREEN$offset$FG$ only accept one level of member vars.  That is, you can't do $GREEN$sizeof(classname.membername.submembername)$FG$.$FG$
    +* A function is available similar to $FG,2$sizeof$FG$ which provides the offset of a member of a class.  It's called $FG,2$offset$FG$.  You place the class name and member inside as in $FG,2$offset(classname.membername)$FG$.  It has nothing to do with 16-bit code.  Both $FG,2$sizeof$FG$ and $FG,2$offset$FG$ only accept one level of member vars.  That is, you can't do $FG,2$sizeof(classname.membername.submembername)$FG$.$FG$
     
    -* There is no $GREEN$continue$FG$ stmt.  Use $GREEN$goto$FG$.
    +* There is no $FG,2$continue$FG$ stmt.  Use $FG,2$goto$FG$.
     
    -* $GREEN$lock{}$FG$ can be used to apply asm $GREEN$LOCK$FG$ prefixes to code for safe multicore read-modify-write accesses.  The code bracked with have $GREEN$LOCK$FG$ asm prefix's applied to relevant insts 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 $GREEN$MSize()$FG$ lets you know the real size and you can take full advantage of it.
    +* 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.
     
    -* You CAN $LK,"Free",A="MN:Free"$() a $GREEN$NULL$FG$ ptr.  Useful variants of $LK,"MAlloc",A="MN:MAlloc"$() can be found $LK,"Here",A="MN:CAlloc"$.  Each task has a heap and you can $GREEN$MAlloc$FG$ and $GREEN$Free$FG$ off-of other task's heaps, or make an independent heap with $LK,"HeapCtrlInit",A="MN:HeapCtrlInit"$().  See $LK,"HeapLog",A="MN:HeapLog"$() for an example.
    +* You CAN $LK,"Free",A="MN:Free"$() a $FG,2$NULL$FG$ ptr.  Useful variants of $LK,"MAlloc",A="MN:MAlloc"$() can be found $LK,"Here",A="MN:CAlloc"$.  Each task has a heap and you can $FG,2$MAlloc$FG$ and $FG,2$Free$FG$ off-of other task's heaps, or make an independent heap with $LK,"HeapCtrlInit",A="MN:HeapCtrlInit"$().  See $LK,"HeapLog",A="MN:HeapLog"$() for an example.
     
    -* The stk does not grow because virtual mem is not used.  I recommend allocating large local vars from the heap.  You can change $LK,"MEM_DFT_STK",A="MN:MEM_DFT_STK"$ and recompile $GREEN$Kernel$FG$ or request more when doing a $LK,"Spawn",A="MN:Spawn"$().  You can use $LK,"CallStkGrow",A="MN:CallStkGrow"$(), but it's odd.  See $LK,"::/Demo/StkGrow.CPP"$. 
    +* The stk does not grow because virtual mem is not used.  I recommend allocating large local vars from the heap.  You can change $LK,"MEM_DFT_STK",A="MN:MEM_DFT_STK"$ and recompile $FG,2$Kernel$FG$ or request more when doing a $LK,"Spawn",A="MN:Spawn"$().  You can use $LK,"CallStkGrow",A="MN:CallStkGrow"$(), but it's odd.  See $LK,"::/Demo/StkGrow.CPP"$. 
     
     * Only one base class is allowed.
     
    -* $GREEN$printf()$FG$ has new codes.  See $LK,"Print(\"\") Fmt Strings",A="FI:::/Doc/Print.TXT"$.
    +* $FG,2$printf()$FG$ has new codes.  See $LK,"Print(\"\") Fmt Strings",A="FI:::/Doc/Print.TXT"$.
     
     * All values are extended to 64-bit when accessed.  Intermediate calculations are done with 64-bit values.
     
    -$ID,2$$GREEN$U0 Main()
    +$ID,2$$FG,2$U0 Main()
     {
       I16 i1;
       I32 j1;
    diff --git a/Doc/Install.TXT b/Doc/Install.TXT
    index 56be96c..31a4e99 100644
    --- a/Doc/Install.TXT
    +++ b/Doc/Install.TXT
    @@ -2,7 +2,7 @@ $WW,1$$FG,5$$TX+CX,"Installing TempleOS"$$FG$
     
     Burn a CD with software that supports ISO files.  Then, boot it.  It's a live CD, so you can look around with or without installing.
     
    -Dual booting with another operating system is the best way to use TempleOS.  I only use it in a virtual machine because it won't boot natively on my machine, though.  For native dual booting, you need a partition for TempleOS.  Windows often comes with a restore disk that does not allow repartitioning.  I recommend connecting a spare additional hard drive and using the $FG,2$BIOS$FG$ to select which drive to boot.
    +Dual booting with another operating system is the best way to use TempleOS.  I only use it in a virtual machine because it won't boot natively on my machine, though.  For native dual booting, you need a partition for TempleOS.  Windows often comes with a restore disk that does not allow repartitioning.  I recommend connecting a spare additional hard drive and using the $FG,2$BIOS$FG$ to sel which drive to boot.
     
     The $LK,"::/Misc/OSInstall.CPP"$ script will automate much of this.  It runs if you boot the CD/DVD-ROM.
     
    @@ -12,7 +12,7 @@ Two TempleOS partitions are highly recommended, so you can boot to a back-up and
     
     1)
     $ID,2$$LK,"Mount",A="MN:Mount"$() use if the drive is partitioned.
    -$ID,2$This command mounts a drive making it accessible.  For simplicity, select $FG,2$'C'$FG$ as the first drive letter for your hard drive.  The first partition will be $FG,2$'C'$FG$, second, $FG,2$'D'$FG$, etc.  TempleOS needs 3 numbers to utilize a hard drive -- base0, base1, and unit.  When you enter a hexadecimal number, do it like in $FG,2$C$FG$ with a $FG,2$0x$FG$ prefix.  If the probe was successful, you can just enter the number in the probe box instead of base0.
    +$ID,2$This command mounts a drive making it accessible.  For simplicity, sel $FG,2$'C'$FG$ as the first drive letter for your hard drive.  The first partition will be $FG,2$'C'$FG$, second, $FG,2$'D'$FG$, etc.  TempleOS needs 3 numbers to utilize a hard drive -- base0, base1, and unit.  When you enter a hexadecimal number, do it like in $FG,2$C$FG$ with a $FG,2$0x$FG$ prefix.  If the probe was successful, you can just enter the number in the probe box instead of base0.
     $ID,-2$
     $LK,"PrtDsk",A="MN:PrtDsk"$($FG,2$'C'$FG$) use if drive is not partitioned
     
    diff --git a/Doc/Print.TXT b/Doc/Print.TXT
    index dbdf490..669fabb 100644
    --- a/Doc/Print.TXT
    +++ b/Doc/Print.TXT
    @@ -47,7 +47,7 @@ $FG,2$"%Z"$FG$ $LK,"DefineLstLoad",A="MN:DefineLstLoad"$() subentry.  Pass sub_e
     
     $FG,2$"%Q"$FG$ convert "\" to "\\" and quote to backslash quote. (For use in creating strs in strs.)
     
    -$FG,2$"%q"$FG$ reverse a $FG,2$"%Q"$FG$.
    +$FG,2$"%q"$FG$ rev a $FG,2$"%Q"$FG$.
     $ID,-2$
     
     $FG,5$$TX+CX,"Print Family"$$FG$
    diff --git a/Doc/RedSea.TXT b/Doc/RedSea.TXT
    index 6dd43f1..ae85556 100644
    --- a/Doc/RedSea.TXT
    +++ b/Doc/RedSea.TXT
    @@ -22,7 +22,7 @@ public class CRedSeaBoot //RedSea is type FAT32 in partition table to fool BIOS.
     {
       U8 jump_and_nop[3];
       U8 signature,reserved[4]; //MBR_PT_REDSEA=0x88. Distinguish from real FAT32.
    -  I64 base_offset;	//For CD/DVD image copy.
    +  I64 drv_offset;	//For CD/DVD image copy.
       I64 sects;
       I64 root_cluster; (root_blk)
       I64 bitmap_sects;
    @@ -31,10 +31,9 @@ public class CRedSeaBoot //RedSea is type FAT32 in partition table to fool BIOS.
       U16 signature2;	//0xAA55
     };
     $HL,0$
    -See $LK,"implementation of RedSea file system",A="::/Kernel/BlkDev/FileSysRedSea.CPP"$.
    +See $LK,"::/Kernel/BlkDev/FileSysRedSea.CPP"$ and $LK,"::/Adam/Opt/Boot/DskISORedSea.CPP"$.
     
    -File with names ending in .Z are stored compressed.
    -See $LK,"implementation of LZW compression",A="::/Kernel/Compress.CPP"$.
    +Files with names ending in .Z are compressed.  See $LK,"::/Kernel/Compress.CPP"$.
     
     To replace ISO9660, make hard-drive partition image of a measured size and copy onto a CD/DVD starting at about sector 20, with EL TORITO booting.  512-byte sectors will be placed on top of 2048-byte CD/DCD sectors, so there will be four blocks per CD/DVD sector.
     
    diff --git a/Doc/Resource.TXT b/Doc/Resource.TXT
    index 511300f..71f2f94 100644
    --- a/Doc/Resource.TXT
    +++ b/Doc/Resource.TXT
    @@ -2,4 +2,4 @@ $WW,1$$FG,5$$TX+CX,"Graphic Sprite Resource Help"$$FG$
     
     A sprite is an ordered list of elements such as lines, rectangles, bitmaps and color changes.  In a program's source code, you first $FG,2$make a sprite$FG$ somewhere outside a function.  Then, you $FG,2$insert a pointer$FG$ to the sprite as an "*elems" arg when calling $LK,"Sprite",A="MN:Sprite"$() or $LK,"Sprite3",A="MN:Sprite3"$().  See $LK,"Sprites",A="HI:Sprites"$.
     
    -You can create a $FG,2$sprite macro$FG$ on your $LK,"PersonalMenu",A="FI:::/Home/PersonalMenu.TXT"$ with a payload of $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ source code to execute when it ESC's back to the cmd line.  If you check "Pop-Up", it will spawn a new task and run the payload.  A pop-up macro can be placed in any document.
    +You can create a $FG,2$sprite macro$FG$ on your $LK,"PersonalMenu",A="FI:~/PersonalMenu.TXT"$ with a payload of $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ source code to execute when it ESC's back to the cmd line.  If you check "Pop-Up", it will spawn a new task and run the payload.  A pop-up macro can be placed in any document.
    diff --git a/Doc/SpriteEd.TXT b/Doc/SpriteEd.TXT
    index 5d08c93..ef40776 100644
    --- a/Doc/SpriteEd.TXT
    +++ b/Doc/SpriteEd.TXT
    @@ -1,6 +1,6 @@
     $WW,1$$FG,5$$TX+CX,"Sprite Edit Menu Help"$$FG$
     
    -Order of elements matters.  They are executed in the order they appear in the side-bar.  You can select or unselect elements graphically, or with text in the sidebar.  Then, cut, copy, paste, shift or transform them.
    +Order of elements matters.  They are executed in the order they appear in the side-bar.  You can sel or unsel elements graphically, or with text in the sidebar.  Then, cut, copy, paste, shift or transform them.
     
     You can set the current insert point element by clicking the element in the side-bar and making it RED.
     
    diff --git a/Doc/SpriteMain.TXT b/Doc/SpriteMain.TXT
    index 63c07c8..febf912 100644
    --- a/Doc/SpriteMain.TXT
    +++ b/Doc/SpriteMain.TXT
    @@ -2,10 +2,10 @@ $WW,1$$FG,5$$TX+CX,"Sprite Main Menu Help"$$FG$
     
     Order of elements matters.  They are executed in the order they appear in the side-bar.  You can set the insert point for new elements by click the element in the side-bar and making it RED.
     
    -After you create a 3D Mesh, you can edit it by selecting it in the side-bar so it is colored RED.  Then, click EDIT-3D-MESH.  A shiftable 3D mesh has a 2D offset to position the origin.  You can convert between shiftable and non-shiftable by editing it with the other command.
    +After you create a 3D Mesh, you can edit it by seling it in the side-bar so it is colored RED.  Then, click EDIT-3D-MESH.  A shiftable 3D mesh has a 2D offset to position the origin.  You can convert between shiftable and non-shiftable by editing it with the other command.
     
    -You can convert all elements to a BitMap if END is RED in the side-bar and you CONVERT-TO-BITMAP.  Later, you can edit that bitmap by selecting it in the side bar so it is colored RED and clicking EDIT-BITMAP.
    +You can convert all elements to a BitMap if END is RED in the side-bar and you CONVERT-TO-BITMAP.  Later, you can edit that bitmap by seling it in the side bar so it is colored RED and clicking EDIT-BITMAP.
     
    -If you have a 3D icon, you might want to place a background-colored rectangle under the 3D icon, so it hovers above.  Use TRANSFORM-OFF and TRANSFORM-ON.  You will also need to set the Z offset of the icon.  Go to the Edit menu and select EDIT-AS-TEXT and change the third INT to Z offset.  Good luck.
    +If you have a 3D icon, you might want to place a background-colored rectangle under the 3D icon, so it hovers above.  Use TRANSFORM-OFF and TRANSFORM-ON.  You will also need to set the Z offset of the icon.  Go to the Edit menu and sel EDIT-AS-TEXT and change the third INT to Z offset.  Good luck.
     
     While inserting vector elements, you can usually press $FG,2$'c'$FG$ to eye-dropper the color under the mouse.  Press $FG,2$'t'$FG$ for transparent.
    diff --git a/Doc/StdTempleOSPC.TXT b/Doc/StdTempleOSPC.TXT
    new file mode 100644
    index 0000000..74764d5
    --- /dev/null
    +++ b/Doc/StdTempleOSPC.TXT
    @@ -0,0 +1,86 @@
    +$WW,1$$FG,5$$TX+CX,"The Standard TempleOS PC",HTML="http://www.templeos.org/Wb/Home/Web/TAD/TAD.html"$$FG$
    +
    +All desktop PCs will have 8-channel OCTART super-simple high speed serial ports to replace USB.  They are simpler because the driver is as simple as old school $LK,"RS232 Serial",A="FI:::/Doc/Comm.CPP"$, they have no USB end-points and they have no USB human interface device reports.  Computer mice will all have exactly two buttons and one wheel.  Game controllers will all be the standard deluxe $TX,"game console controllers",HTML="http://www.gamestop.com/pc/accessories/steam-controller/121865"$ that are popular today.  It will have 8 big TX and 8 big RX fifos that allow flow control characters to jump the queue.  It should be locked-down to as few options as possible, like 8-1-N only, although hardware may use a USB frame, not an RS232, so stop bits might not be relevant.  Perhaps, just two baud rates -- high and low speed are needed.  Low speed is good for slow microcontrollers and allows longer cable length.  Keyboard, mouse and game controller can be low speed.
    +
    +The USB creators banned generic devices, requiring a signed, certified driver for everything!  That's no good.  We allow any device and will communicate, generically, using a serial terminal program like the old school HyperTerminal, XTalk or Telnet.
    +
    +A mouse packet interface should be similar to this:
    +
    +$ID,5$TX:	
    +RX:	X:+3 Y:+0 Wheel:+0 LB:OFF RB:OFF
    +TX:	
    +RX:	X:+0 Y:-1 Wheel:+0 LB:ON  RB:OFF
    +$ID,-5$
    +We aspire to be as simple as a Commodore 64 joystick driver:
    +
    +$ID,5$VAL=PEEK(56321)
    +if VAL AND 1 THEN y=y-1
    +if VAL AND 2 THEN y=y+1
    +if VAL AND 4 THEN x=x-1
    +if VAL AND 8 THEN x=x+1
    +$ID,-5$
    +The game controller will be more complicated, but much simpler than USB.  It will use a standard text packet of some kind.
    +
    +On the other end, you might hook-up a thermostat microcontroller and interface as a generic serial device.  The microcontroller in the thermostat would have something simple, not a crazy overkill ethernet connection.
    +
    +$ID,5$$HL,1$U8 b;
    +while (TRUE) {
    +  b=ReadU8(2); //Read byte from high speed serial channel 2.
    +//(Has been configured for low baud because thermostat should be slow.)
    +  if (b==CMD_UP)
    +    temperature++;
    +  else if (b==CMD_DOWN)
    +    temperature--;
    +}$HL,0$
    +$ID,-5$
    +Super-simple block devices will replace ATA/ATAPI hard drives and CD/DVD/BlueRays.  Today, the industry is in flux with nonvolitile memory just invented.  We want a super-simple block device interface for non-volitile memory and for what is currently USB memory sticks, but only if they can be made without bad blocks.  I don't think we want to deal with bad block memory, so maybe we will not do NV-memory.  The standard TempleOS desktop will require a hard disk.
    +
    +There will be minimal commands:  READ_BLOCK, WRITE_BLOCK, GET_CAPACITY, GET_MODEL, GET_SERIAL_NUM, and EJECT.
    +
    +We want a CPU mode with virtual IO port addresses similar to how paging creates virtual memory addresses.  We want a 65536 word look-up table that converts virtual IO port numbers to physical IO port numbers.  There will be a standard IO port configuration, so port numbers can be fixed in the code.  We want the primary hard drive on one set of ports and the primary CD/DVD/Blu-ray on another set of ports.  Choose a contiguous set of IO ports.
    +
    +Meanwhile, a complicated PCI interface can be designed along-side the TempleOS interface for Windows and Linux.  It would almost be possible to carry-on separate lives, however, the super-simple serial requires getting rid of USB since super-simple serial is a new hardware standard.  People can add USB ports with a PCI device card.
    +
    +God said He wants single audio voice for the sound.  I think we want a word-sized IO port for period with zero causing it to be off.  The period should allow for 20Hz to 20,000 Hz.  The PIT period register for PC speaker seems okay, whatever it is.
    +
    +The video will be a linear frame buffer 640x480 16 color with one-byte-per-pixel even though it is only 16 color with is 4-bit.  Perhaps, we have a interrupt to sync with the refresh.
    +
    +I am tempted to help amateur hardware device designers by making the hardware interface for the PC simple.  I have fond memories of 1993, when I made a wire-wrapped ISA data acquisition card which plugged into my 486 and had some analog-to-digital and digital-to-analog convertors.  I am not designing a bus.  Earlier, I said the super-simple high speed serial port replacement could be USB-like in hardware as long as the software driver interface was simple like old school RS232 serial ports.  Requiring a complicated hardware handshake raises the bar, slightly, for the lowest level hardware designers.  Most people will be connecting a microcontroller or something that already has a serial communication design, but if it's not a problem, maybe we should keep it simple at all stages.  It was nice putting an oscilloscope on my serial port wires.
    +
    +The original PC had general purpose digital IO through the parallel port.  That was fun.  I have enough battles to fight, so I'll leave being a savior to hobbiest hardware engineers to somebody else.
    +
    +Digital cameras will be super-simple high speed serial, but TempleOS is forever limited to 16 colors and multimedia is banned because large files being loaded into memory fragments memory, so cameras are somewhat unwelcome.  I have enough problems without making the Brits anxious about autonomous gun turrets and killer robots.  The reason I say cameras will be super-simple serial is because we are replacing USB ports with super-simple serial.  Windows/Linux will have only super-simple serial ports unless people buy a USB PCI expansion card.  So, the digital cameras will be super-simple serial.
    +
    +
    +$FG,5$$TX+CX,"Version One"$$FG$
    +
    +We will make a spec for a $$4,000, perfectly standardized, cryogenically-cooled, monster desktop PC.  It will have 16 cores, integrated 4K graphics, and, hopefully, 6 Ghz continuous operation.  Perhaps, 64 Gig of RAM will be standard? God said to help to poor buy them.  It is pointless to have a high powered machine if other people have wimpy machines and cannot run programs you write.  Therefore, everybody in the developed world will buy a Standard TempleOS IBM PC over the next ten years, so that will be a quantity of 400 million, perhaps.  God said to pay the US national debt with the revenue.  We will standardize everything, not just the TempleOS related items.  The display will be 4K (and of course 640x480 16 color) and no others.  Everybody gets just one monitor, unless you buy special PCI cards.  Everybody gets two speakers, a headphone, a mic and a webcam.  We make the audio one sample rate and one sample size, but TempleOS still gets just a square wave.  (HD Audio is really screwed-up and requires complicated artificial intelligence, just to route output to speakers.)
    +
    +The Standard Temple IBM PC will be a full-sized tower.  We should set the size at exactly 2.5 feet by 1.5 feet by 1.5 feet as in the $LK,"Exodus,25:10-10",A="BF:Exodus,25:10-10"$ for all time.  If there is extra room, make a storage shelf for DVDs.  We do not want a race-to-the-bottom, shrinking the size.  Instead of making it smaller, make it more powerful.  We want to remove all cost pressure from making things small.  It must have a CD/DVD/Blu-ray drive.  We need a network connection, possibly implemented as a super-simple high speed serial device.  What about standard monitor and speakers?  The C64's success was partially due to wide spread, completely standard, hardware.  I think TempleOS will not do bad block devices, so we need a hard drive, not just NV-memory or SSD.
    +
    +TempleOS will have the priority over Windows or Linux on hardware decisions.  We could make it heterogenious multicore.  I think we want 16 non-hyperthreaded cores.  Core#0 is the only full-featured core needed.  The other cores will have long mode, but not some of these: real mode, protected mode, ring-3, paging, interrupts, in/out port instructions, SSE instructions,  MMX instructions.  This $LK,"Graphics Job",A="FI:~/Web/TAD/GraphicsPerformance.TXT"$ is what to optimize for.
    +
    +God said Intel should do a simulation of heat produced by gates and try spreading-out the heat producing gate circuits on the chip.
    +
    +God said Linux's Wine should replace Windows.  We will install a standard software set-up on all Standard Temple IBM PC's.
    +
    +
    +$FG,5$$TX+CX,"Usage"$$FG$
    +
    +TempleOS is primarily for user developers, like the Commodore 64 was.  I created a total of 50 Meg of content over ten years, so you shouldn't need much room, either.  The installed hard drive space should stay small because the resolution is low, multimedia is banned, 3rd party libraries are banned, and applications can be distributed with ISO files or DVDs.
    +
    +The ROM will have a command that copies the ROM onto the hard drive, creating identical C and D partitions, so you can have fun modifying TempleOS.  You will have confidence you can fix it easily if you break it.  It should be able to run everything from just the ROM, too.  You will need to specify a /Home directory that is not in the ROM, but on the hard drive. 
    +
    +The standard set-up will be a C primary drive and a D back-up drive.  Keep the size on each hard drive under 512 Meg and periodically copy all of C to D, so they stay mirrored.  The file manager and other programs read the entire directory structures, so too many files causes problems (unbearably slow).  Third party software should be distributed as ISO files or DVDs, like $FG,4$$TX,"TextAdventure.ISO",HTML="https://github.com/jwhitham/frotz"$$FG$.  No 3rd party libraries are permitted because they circumvent the intent of the 100,000 line of code limit which is keeping it cognatively small enough to see the light at the end of the tunnel and easily master everything.  Therefore, 3rd party ISO files must bring all required software components with them, except what is found in the TempleOS ROM.
    +
    +The Temple PC will stay unchanged for seven years at a time.  The Bible speaks of a seven year release in $LK,"Deuteronomy,15:1",A="BF:Deuteronomy,15:1",HTML="http://www.biblegateway.com/verse/en/Deutoronomy%2015:1"$.  The Commodore stayed unchanged for many years and people became intimately familiar with every aspect.
    +
    +Having all your 3rd party software on separate DVDs or ISO files and TempleOS running from a ROM, keeps it delightfully simple so you have complete understanding of what is going on.  You will have complete confidence and it will be a joy to use.  3rd party applications can store saved data files into your /Home hard drive directory.
    +
    +$HC,""$
    +
    +I thought 2.5' x 1.5' x 1.5' was ridiculously big, but it looks like it is reasonable for super-cooled refrigeration systems!
    +$FG,8$
    +* "Commodore 64" was a trademark of Commodore Business Machines.
    +* "Linux" is probably a trademark owned by Linus Torvalds.
    +* "Windows" is a trademark of MicroSoft Corp.$FG$
    diff --git a/Doc/Streams.TXT b/Doc/Streams.TXT
    index edb7b91..93faf49 100644
    --- a/Doc/Streams.TXT
    +++ b/Doc/Streams.TXT
    @@ -1,6 +1,6 @@
     $WW,1$There are no streams in the traditional sense.  The cmd line output gets sent to the cursor location of a document being edited and by using cursor keys, text can be injected all over the document.  $LK,"Sprites",A="HI:Sprites"$ can be injected and are not serialized!  Furthermore, the input can come from triggering macro widgets.  See $LK,"Doc Overview",A="FI:::/Doc/DolDocOverview.TXT"$ and $LK,"Doc Routines",A="HI:DolDoc"$.
     
    -If you had a remote term and sent key $LK,"Scan Codes",A="MN:SC_INS"$, the user would press $FG,2$$FG$ to access his $FG,2$Personal Menu$FG$ to trigger his macros.  However, the local $LK,"::/Home/PersonalMenu.TXT"$ might differ from the remote, causing loss of sync between local and remote sessions.  Also, the window size of local and remote might differ, so word-wrapped text would be different.  Injecting output text with different windows sizes would cause remote and local documents to not be in sync.
    +If you had a remote term and sent key $LK,"Scan Codes",A="MN:SC_INS"$, the user would press $FG,2$$FG$ to access his $FG,2$Personal Menu$FG$ to trigger his macros.  However, the local $LK,"~/PersonalMenu.TXT"$ might differ from the remote, causing loss of sync between local and remote sessions.  Also, the window size of local and remote might differ, so word-wrapped text would be different.  Injecting output text with different windows sizes would cause remote and local documents to not be in sync.
     
     See $LK,"Char Overview",A="FI:::/Doc/CharOverview.TXT"$ and $LK,"Char Routines",A="HI:Char"$.
     
    diff --git a/Doc/TextBase.TXT b/Doc/TextBase.TXT
    index 224f4c0..22f061e 100644
    --- a/Doc/TextBase.TXT
    +++ b/Doc/TextBase.TXT
    @@ -7,7 +7,7 @@ Bits 16-20	Signed X pos shift val
     Bits 21-25	Signed Y pos shift val
     Bit  28		$LK,"Blink",A="MN:ATTRF_BLINK"$
     Bit  29		$LK,"Invert",A="MN:ATTRF_INVERT"$ed (Swap foreground and background)
    -Bit  30		$LK,"Selected",A="MN:ATTRF_SELECTED"$ (XOR colors with FF)
    +Bit  30		$LK,"Sel",A="MN:ATTRF_SEL"$ (XOR colors with FF)
     Bit  31		$LK,"Underline",A="MN:ATTRF_UNDERLINE"$
     
     $LK,"GrUpdateTaskWin",A="MN:GrUpdateTaskWin"$() calls $LK,"DocUpdateTaskDocs",A="MN:DocUpdateTaskDocs"$() which calls $LK,"DocRecalc",A="MN:DocRecalc"$() where the document text is plotted into $LK,"gr.text_base",A="MN:CGrGlbls"$.  Then, $LK,"GrUpdateTextBG",A="MN:GrUpdateTextBG"$() and $LK,"GrUpdateTextFG",A="MN:GrUpdateTextFG"$() render the $LK,"gr.text_base",A="MN:CGrGlbls"$ onto $LK,"gr.dc2",A="MN:CGrGlbls"$, a raw graphic bitmap.
    diff --git a/Doc/Tips.TXT b/Doc/Tips.TXT
    index 1ebb374..8fa76ec 100644
    --- a/Doc/Tips.TXT
    +++ b/Doc/Tips.TXT
    @@ -8,7 +8,7 @@ $WW,1$$FG,5$$TX+CX,"Tips"$$FG$
     
     * See $MA-X+PU,"Key Map",LM="KeyMap;View;\n"$ for a list of defined keys.  Define your own keys in $LK,"MyPutKey",A="MN:MyPutKey"$().  See $LK,"Keyboard Devices",A="HI:Keyboard Devices/System"$.
     
    -* $FG,2$$FG$ maximizes a window.  $FG,2$$FG$ closes AutoComplete.  $FG,2$$FG$ brings back AutoComplete.  $FG,2$$FG$ vertically tiles windows.  $FG,2$$FG$ horizontally tiles windows.  The $FG,2$ALT$FG$ keys are defined in $LK,"::/Home/HomeKeyPlugIns.CPP"$.  You can customize them.
    +* $FG,2$$FG$ maximizes a window.  $FG,2$$FG$ closes AutoComplete.  $FG,2$$FG$ brings back AutoComplete.  $FG,2$$FG$ vertically tiles windows.  $FG,2$$FG$ horizontally tiles windows.  The $FG,2$ALT$FG$ keys are defined in $LK,"~/HomeKeyPlugIns.CPP"$.  You can customize them.
     
     * If you make changes to TempleOS files in your $FG,2$/Home$FG$ directory, generally you reboot to make them take effect.  (You don't compile anything.)  You should have two TempleOS partitions on your hard drive because a syntax error in a start-up file will make the partition unbootable.  Boot to the second partition or boot to a standard TempleOS CD/DVD and use $LK,"Mount",A="MN:Mount"$() to mount your hard drive.
     
    @@ -21,9 +21,9 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
     
     * Use the PullDown menu at the top of the screen to learn commands, or for finding the keyboard controls to games.
     
    -* You can adjust the mouse movement rate by setting global vars in your start-up file.  See $LK,"mouse scale",A="FF:/Home/HomeLocalize.CPP,mouse.scale"$.
    +* You can adjust the mouse movement rate by setting global vars in your start-up file.  See $LK,"mouse scale",A="FF:~/HomeLocalize.CPP,mouse.scale"$.
     
    -* You can set your local time zone by setting the $LK,"local_time_offset",A="MN:local_time_offset"$ global var in a start-up file.  It's units are $LK,"CDATE_FREQ",A="MN:CDATE_FREQ"$.  See $LK,"local time",A="FF:/Home/HomeLocalize.CPP,local_time"$.
    +* You can set your local time zone by setting the $LK,"local_time_offset",A="MN:local_time_offset"$ global var in a start-up file.  It's units are $LK,"CDATE_FREQ",A="MN:CDATE_FREQ"$.  See $LK,"local time",A="FF:~/HomeLocalize.CPP,local_time"$.
     
     * $FG,2$$FG$ in the editor to reindent a $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ function or renumber an asm routine's local labels.
     
    @@ -33,7 +33,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
     
     * $LK,"Scale2Mem",A="MN:Scale2Mem"$(min,max,limit=2*1024*1024*1024) can be used for cfg questions when recompiling.  The $LK,"MakeOSDrvBootInstall",A="MN:MakeOSDrvBootInstall"$() cfg prompts accept expressions, not just numbers.  The dft disk cache is $FG,2$Scale2Mem(0x80000,0x8000000)$FG$.
     
    -* You can permanently disable $FG,2$AutoComplete$FG$ commenting-out $LK,"ACInit",A="FF:/Home/HomeSys.CPP,ACInit"$() in $LK,"::/Home/HomeSys.CPP",A="FF:/Home/HomeSys.CPP,ACInit"$.
    +* You can permanently disable $FG,2$AutoComplete$FG$ commenting-out $LK,"ACInit",A="FF:/Home/HomeSys.CPP,ACInit"$() in $LK,"~/HomeSys.CPP",A="FF:/Home/HomeSys.CPP,ACInit"$.
     
     * Boolean expressions $BK,1$not$BK,0$ in $FG,2$if$FG$ stmts don't have short circuit logic and are compiled inefficiently.
     
    @@ -69,13 +69,15 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
     
     * Use $FG,2$$FG$ to enter an extended ASCII char.
     
    +* Use $FG,2$$FG$ to toggle between $LK,"Std Font",A="FI:::/Kernel/FontStd.CPP"$ and $LK,"Cyrillic Font",A="FI:::/Kernel/FontCyrillic.CPP"$.
    +
     * Use $FG,2$$FG$ will capture the screen as a sprite on the clipboard.  You can save the cmd line doc as text with $FG,2$$FG$.
     
     * You can save a sprite as a $FG,2$.BMP$FG$ file in $FG,2$$FG$ on the Sprite BitMap Menu.
     
     * You can eye-dropper colors in the $FG,2$$FG$ sprite editor by pressing $FG,2$'c'$FG$.  Press $FG,2$'t'$FG$ for transparent.
     
    -* There are handy functions--$FG,2$F(),R(),FD()$FG$ and $FG,2$RD()$FG$ which are defined in $LK,"::/Home/HomeWrappers.CPP"$.  You are encouraged to change them and add more.  They will perform find-and-replace operations accross multiple files.  The $FG,2$+l$FG$ flag is particularly useful since it limits to whole labels.  The $FG,2$+lb$FG$ and $FG,2$+la$FG$ flags limit to whole labels just before or after.  You are encouraged to add or modify handy wrapper functions to make cmd line operations easier.
    +* There are handy functions--$FG,2$F(),R(),FD()$FG$ and $FG,2$RD()$FG$ which are defined in $LK,"~/HomeWrappers.CPP"$.  You are encouraged to change them and add more.  They will perform find-and-replace operations accross multiple files.  The $FG,2$+l$FG$ flag is particularly useful since it limits to whole labels.  The $FG,2$+lb$FG$ and $FG,2$+la$FG$ flags limit to whole labels just before or after.  You are encouraged to add or modify handy wrapper functions to make cmd line operations easier.
     
     * When using $LK,"Find",A="MN:Find"$() while modifying code, work from the bottom-up so that line numbers are correct.  If you work top-down, then inserting or deleting lines causes the lower file links will be incorrect.
     
    @@ -117,11 +119,11 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
     
     * Using a sub-int array, $FG,2$i.u8[3]$FG$, for example, will force a local var to non-reg.
     
    -* You can delete the $FG,4$/Home/Registry.CPP.Z$FG$ file.  The policy is that deleting it will restore defaults.  It is a text doc, if you want to edit it.  Be careful of tree indentations.
    +* You can delete the $FG,4$~/Registry.CPP.Z$FG$ file.  The policy is that deleting it will restore defaults.  It is a text doc, if you want to edit it.  Be careful of tree indentations.
     
     * Study $LK,"::/Adam/Opt/Utils/MemRep.CPP"$ and $LK,"WallPaper",A="MN:WallPaper"$() to learn how the system resources are put together.
     
    -* The editor's select-text mechanism allows for disjoint portions of selected text.  This is a feature, not a bug -- you can cut-and-paste disjoint text.
    +* The editor's sel-text mechanism allows for disjoint portions of sel text.  This is a feature, not a bug -- you can cut-and-paste disjoint text.
     
     * $LK,"cnts.time_stamp_freq",A="MN:CCntsGlbls"$ is continuously calibrated.  Be careful because expressions might decrease.  Take a snap-shot, like this: $FG,2$timeout=$LK,"GetTSC",A="MN:GetTSC"$+$LK,"cnts.time_stamp_freq",A="MN:CCntsGlbls"$ x seconds;$FG$ and compare against $LK,"GetTSC",A="MN:GetTSC"$().  I recommend just using $LK,"tS",A="MN:tS"$ or $LK,"cnts.jiffies",A="MN:CCntsGlbls"$.
     
    @@ -141,7 +143,7 @@ $FG,2$Merge(\"C:/*\",\"D:/*\",\"+r+d\");$FG$ to check my changes.
     
     * $LK,"ZipRep",A="MN:ZipRep"$() can highlight src files with lots of redundancy.
     
    -* With $FG,2$sub_switch_start$FG$/$FG,2$sub_switch_end$FG$, common trailing code is fast.  Common leading code is slow.$FG$
    +* With $FG,2$start$FG$/$FG,2$end$FG$, common trailing code is fast.  Common leading code is slow.$FG$
     
     * The first line of the $MA-X+PU,"Psalmody",LM="#include \"::/Apps/Psalmody/Run\"\n"$ $LK,"HolyC",A="FI:::/Doc/HolyC.TXT"$ song files is a comment with a category recognized by $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.CPP,JukeBox"$().  The categories are $FG,2$"no nothing"$FG$, $FG,2$"has words"$FG$, $FG,2$"has graphics"$FG$, or $FG,2$"special"$FG$.  The third character in the song comment is a digit rating number, shown in $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.CPP,JukeBox"$().  You can set the song rating in $LK,"JukeBox",A="FF:::/Apps/Psalmody/JukeBox.CPP,JukeBox"$() by pressing $FG,2$0$FG$-$FG,2$9$FG$.  You can press $FG,2$$FG$ to delete songs.
     
    diff --git a/Doc/Welcome.TXT b/Doc/Welcome.TXT
    index 4e30aa6..01b6d95 100644
    --- a/Doc/Welcome.TXT
    +++ b/Doc/Welcome.TXT
    @@ -7,7 +7,7 @@ $ID,2$* Professionals doing hobby projects
     * Teenagers doing projects
     * Non-professional, older-persons projects
     $ID,-2$
    -Simplicity is a goal to $LK,"keep the line count down",A="FI:::/Doc/Strategy.TXT"$, so it's easy to tinker with.  As it turns-out, simplicity makes it faster in some ways, too.  It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed.  It's only $TX,"80,590",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools.  More importantly, it's designed to keep the user's line count down -- you can do a $LK,"Hello World",A="FI:::/Doc/HelloWorld.TXT"$ application in one line of code and can put graphics on the screen with a three line program!
    +Simplicity is a goal to $LK,"keep the line count down",A="FI:::/Doc/Strategy.TXT"$, so it's easy to tinker with.  As it turns-out, simplicity makes it faster in some ways, too.  It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other, similar things which boost speed.  It's only $TX,"80,120",D="DD_TEMPLEOS_LOC_OFFICIAL"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools.  More importantly, it's designed to keep the user's line count down -- you can do a $LK,"Hello World",A="FI:::/Doc/HelloWorld.TXT"$ application in one line of code and can put graphics on the screen with a three line program!
     
     It's a kayak, not a Titanic -- it will crash if you do something wrong.  You quickly reboot, however.  DOS and the 8-bit home computers of the 80's worked fine without memory protection and most computers in the world -- the embedded ones -- operate without protection.  The resing simplicity of no protections is why TempleOS has value.  In facts, that's the point of TempleOS.  See the $LK,"TempleOS Charter",A="FI:::/Doc/Charter.TXT"$.
     
    @@ -70,11 +70,12 @@ $FG,2$$FG$ closes AutoComplete.
     $FG,2$$FG$ brings back AutoComplete.
     $FG,2$$FG$ vertically tiles windows.
     $FG,2$$FG$ horizontally tiles windows.
    -The $FG,2$ALT$FG$ keys are defined in $LK,"::/Home/HomeKeyPlugIns.CPP"$.  You can customize them.
    +The $FG,2$ALT$FG$ keys are defined in $LK,"~/HomeKeyPlugIns.CPP"$.  You can customize them.
     
    -$FG,2$$FG$ creates a new terminal window.  $FG,2$$FG$ kills a window.  You'll do these periodically.
    +$FG,2$$FG$ new terminal window.
    +$FG,2$$FG$ kills a window.
     
    -$LK,"Find",A="MN:Find"$() is your best friend.  There's a wrapper function called $LK,"F",A="MN:F"$() in your $FG,2$/Home/HomeWrappers.CPP.Z$FG$ file.  Feel free to make wrapper functions for functions you use often and customize the args.  By the way, $LK,"Find",A="MN:Find"$() or $LK,"R",A="MN:R"$() can be used to replace strings across multiple files.  You can access $LK,"Find",A="MN:Find"$() using $FG,2$$FG$.
    +$LK,"Find",A="MN:Find"$() is your best friend.  There's a wrapper function called $LK,"F",A="MN:F"$() in your $FG,2$~/HomeWrappers.CPP.Z$FG$ file.  Feel free to make wrapper functions for functions you use often and customize the args.  By the way, $LK,"Find",A="MN:Find"$() or $LK,"R",A="MN:R"$() can be used to replace strings across multiple files.  You can access $LK,"Find",A="MN:Find"$() using $FG,2$$FG$.
     
     As you browse code, use the $FG,2$AutoComplete$FG$ window to look-up functions, etc.  $FG,2$$FG$ (or whatever number) to follow a sym to it's source.  You can browse deeper and deeper.  You go back with $FG,2$$FG$.
     
    diff --git a/Doc/Widget.TXT b/Doc/Widget.TXT
    index c1919c3..926773e 100644
    --- a/Doc/Widget.TXT
    +++ b/Doc/Widget.TXT
    @@ -39,4 +39,4 @@ $FG,5$Escape$FG$ For macro's, send an $FG,2$$FG$ char to exit before runnin
     
     $FG,5$Refresh Data$FG$  updates $FG,2$$$DA...$$$FG$ entry continuously.
     
    -$FG,5$Html Link$FG$  stores a link which will be embedded if you generate a html version of a document with $LK,"::/Demo/ToHtmlToTXTExample/ToHtml.CPP"$.
    +$FG,5$Html Link$FG$  stores a link which will be embedded if you generate a html version of a document with $LK,"::/Demo/ToHtmlToTXTDemo/ToHtml.CPP"$.
    diff --git a/HomePkgs.CPP b/HomePkgs.CPP
    deleted file mode 100644
    index 769e4e5..0000000
    --- a/HomePkgs.CPP
    +++ /dev/null
    @@ -1,12 +0,0 @@
    -//Place this file in /Home and change
    -//anything you want.
    -
    -#include "/Adam/Opt/Boot/MakeBoot"
    -#include "/Adam/Opt/Utils/MakeUtils"
    -
    -MapFileLoad("::/Kernel/Kernel");
    -MapFileLoad("::/Compiler/Compiler");
    -
    -Cd("::/Home");;
    -
    -#help_index ""
    diff --git a/HomeSys.CPP b/HomeSys.CPP
    index dac0f5c..17b2c70 100644
    --- a/HomeSys.CPP
    +++ b/HomeSys.CPP
    @@ -27,9 +27,9 @@ U0 StartUpTasks()
       WinToTop(user1);
       WinTileVert;
       "Boot Time:%7.3fs\n",tS;
    -  XTalk(user1,"Cd(\"::/Home\");#include \"DoOnce\";\n");
    +  XTalk(user1,"Cd;#include \"DoOnce\";\n");
       Silent;	//no output to screen
    -  ACInit("/*;~*/Bible.TXT*");
    +  ACInit("/*;!*/Bible.TXT*");
       Silent(OFF); //no output to screen
     }
     
    diff --git a/Kernel/BlkDev/DskATA.CPP b/Kernel/BlkDev/DskATA.CPP
    index 7adc5a4..621e9e7 100644
    --- a/Kernel/BlkDev/DskATA.CPP
    +++ b/Kernel/BlkDev/DskATA.CPP
    @@ -1,4 +1,4 @@
    -U0 ATABlkSelect(CBlkDev *bd,I64 blk,I64 cnt)
    +U0 ATABlkSel(CBlkDev *bd,I64 blk,I64 cnt)
     {
       if (bd->type!=BDT_ATAPI && bd->base1)
         OutU8(bd->base1+ATAR1_CTRL,0x8);
    @@ -11,13 +11,13 @@ U0 ATABlkSelect(CBlkDev *bd,I64 blk,I64 cnt)
         OutU8(bd->base0+ATAR0_SECT,blk);
         OutU8(bd->base0+ATAR0_LCYL,blk.u8[1]);
         OutU8(bd->base0+ATAR0_HCYL,blk.u8[2]);
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       } else { //28 Bit LBA
         OutU8(bd->base0+ATAR0_NSECT,cnt);
         OutU8(bd->base0+ATAR0_SECT,blk);
         OutU8(bd->base0+ATAR0_LCYL,blk.u8[1]);
         OutU8(bd->base0+ATAR0_HCYL,blk.u8[2]);
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4|blk.u8[3]);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4|blk.u8[3]);
       }
     }
     
    @@ -48,9 +48,9 @@ Bool ATAWaitDRQ(CBlkDev *bd,F64 timeout)
     Bool ATANop(CBlkDev *bd,F64 timeout)
     {
       if (bd->flags & BDF_EXT_SIZE)
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       else
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
       OutU8(bd->base0+ATAR0_FEAT,0);
       OutU8(bd->base0+ATAR0_CMD,ATA_NOP);
       return ATAWaitNotBUSY(bd,timeout);
    @@ -118,9 +118,9 @@ Bool ATAPIWritePktWord(CBlkDev *bd,F64 timeout,...)
     Bool ATAPISetMaxSpeed(CBlkDev *bd)
     {
       if (bd->flags & BDF_EXT_SIZE)
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       else
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
       OutU8(bd->base0+ATAR0_LCYL,0);
       OutU8(bd->base0+ATAR0_HCYL,0);
       ATACmd(bd,ATA_PACKET);
    @@ -131,9 +131,9 @@ Bool ATAPISetMaxSpeed(CBlkDev *bd)
     Bool ATAPISeek(CBlkDev *bd,I64 native_blk)
     {
       if (bd->flags & BDF_EXT_SIZE)
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       else
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
       OutU8(bd->base0+ATAR0_LCYL,0);
       OutU8(bd->base0+ATAR0_HCYL,0);
       ATACmd(bd,ATA_PACKET);
    @@ -149,9 +149,9 @@ Bool ATAPIStartStop(CBlkDev *bd,F64 timeout,Bool start)
       else
         i=0;
       if (bd->flags & BDF_EXT_SIZE)
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       else
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
       ATACmd(bd,ATA_PACKET);
     //Start/Stop
       if (ATAPIWritePktWord(bd,timeout,0x1B00,0,i,0,0,0))
    @@ -167,9 +167,9 @@ I64 ATAGetDevId(CBlkDev *bd,F64 timeout,U16 **_id_record)
       if (bd->type!=BDT_ATAPI && bd->base1)
         OutU8(bd->base1+ATAR1_CTRL,0x8);
       if (bd->flags & BDF_EXT_SIZE)
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       else
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
       ATACmd(bd,ATA_ID_DEV);
       if (!ATAWaitNotBUSY(bd,timeout))
         return BDT_NULL;
    @@ -191,9 +191,9 @@ I64 ATAReadNativeMax(CBlkDev *bd,F64 timeout)
     
       if (bd->type==BDT_ATAPI) {
         if (bd->flags & BDF_EXT_SIZE)
    -      OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
         else
    -      OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
         ATACmd(bd,ATA_DEV_RST);
         if (!ATAWaitNotBUSY(bd,0))
           okay=FALSE;
    @@ -217,7 +217,7 @@ I64 ATAReadNativeMax(CBlkDev *bd,F64 timeout)
       if (okay) {
         if (bd->flags & BDF_EXT_SIZE && bd->base1) {
           OutU8(bd->base1+ATAR1_CTRL,0x8);
    -      OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
           ATACmd(bd,ATA_READ_NATIVE_MAX_EXT);
           if (ATAWaitNotBUSY(bd,timeout)) {
     	res.u8[0]=InU8(bd->base0+ATAR0_SECT);
    @@ -237,13 +237,13 @@ I64 ATAReadNativeMax(CBlkDev *bd,F64 timeout)
         } else {
           if (bd->type!=BDT_ATAPI && bd->base1)
     	OutU8(bd->base1+ATAR1_CTRL,0x8);
    -      OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
           ATACmd(bd,ATA_READ_NATIVE_MAX);
           if (ATAWaitNotBUSY(bd,timeout)) {
     	res.u8[0]=InU8(bd->base0+ATAR0_SECT);
     	res.u8[1]=InU8(bd->base0+ATAR0_LCYL);
     	res.u8[2]=InU8(bd->base0+ATAR0_HCYL);
    -	res.u8[3]=InU8(bd->base0+ATAR0_SELECT) & 0xF;
    +	res.u8[3]=InU8(bd->base0+ATAR0_SEL) & 0xF;
           }
         }
       }
    @@ -257,9 +257,9 @@ I64 ATAPIReadCapacity(CBlkDev *bd,I64 *_blk_size=NULL)
       U32 buf[2];
       if (ATAWaitNotBUSY(bd,0)) {
         if (bd->flags & BDF_EXT_SIZE)
    -      OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
         else
    -      OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
         OutU8(bd->base0+ATAR0_LCYL,8);
         OutU8(bd->base0+ATAR0_HCYL,0);
         ATACmd(bd,ATA_PACKET);
    @@ -280,9 +280,9 @@ CATAPITrack *ATAPIReadTrackInfo(CBlkDev *bd,I64 blk)
       Bool unlock=BlkDevLock(bd);
       if (ATAWaitNotBUSY(bd,0)) {
         if (bd->flags & BDF_EXT_SIZE)
    -      OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
         else
    -      OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
         OutU8(bd->base0+ATAR0_LCYL,sizeof(CATAPITrack)&0xFF);
         OutU8(bd->base0+ATAR0_HCYL,sizeof(CATAPITrack)>>8);
         ATACmd(bd,ATA_PACKET);
    @@ -311,7 +311,7 @@ Bool ATAInit(CBlkDev *bd)
     
       if (ATAReadNativeMax(bd,tS+0.1)) {
     
    -    ATABlkSelect(bd,bd->max_blk,0);
    +    ATABlkSel(bd,bd->max_blk,0);
         if (bd->flags&BDF_EXT_SIZE)
           ATACmd(bd,ATA_SET_MAX_EXT);
         else
    @@ -353,7 +353,7 @@ U0 ATAReadBlks(CBlkDev *bd,U8 *buf, I64 blk, I64 cnt)
       Bool unlock=BlkDevLock(bd);
     
       retry:
    -  ATABlkSelect(bd,blk,cnt);
    +  ATABlkSel(bd,blk,cnt);
       if (bd->flags & BDF_EXT_SIZE)
         ATACmd(bd,ATA_READ_MULTI_EXT);
       else
    @@ -392,9 +392,9 @@ Bool ATAPIReadBlks2(CBlkDev *bd,F64 timeout,U8 *buf,
         unlock=BlkDevLock(bd);
       if (ATAPIWaitReady(bd,timeout)) {
         if (bd->flags & BDF_EXT_SIZE)
    -      OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
         else
    -      OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
         OutU8(bd->base0+ATAR0_LCYL,bd->blk_size);
         OutU8(bd->base0+ATAR0_HCYL,bd->blk_size.u8[1]);
         ATACmd(bd,ATA_PACKET);
    @@ -421,8 +421,8 @@ U0 ATAPIReadBlks(CBlkDev *bd,U8 *buf, I64 blk, I64 cnt)
           blk2=0;
         else
           blk2=FloorU64(blk-bd->max_reads,spc);
    -    if (blk2+l2>dv->size)
    -      l2=dv->size-blk2;
    +    if (blk2+l2>dv->size+dv->drv_offset)
    +      l2=dv->size+dv->drv_offset-blk2;
         n=(l2+spc-1)/spc;
     
         retry=4;
    @@ -465,7 +465,7 @@ U0 ATAWriteBlks(CBlkDev *bd,U8 *buf, I64 blk, I64 cnt)
       F64 timeout;
       Bool unlock=BlkDevLock(bd);
     retry:
    -  ATABlkSelect(bd,blk,cnt);
    +  ATABlkSel(bd,blk,cnt);
       if (bd->flags&BDF_EXT_SIZE)
         ATACmd(bd,ATA_WRITE_MULTI_EXT);
       else
    @@ -505,9 +505,9 @@ Bool ATAPISync(CBlkDev *bd)
         okay=FALSE;
       else {
         if (bd->flags & BDF_EXT_SIZE)
    -      OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
         else
    -      OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +      OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
         OutU8(bd->base0+ATAR0_LCYL,0);
         OutU8(bd->base0+ATAR0_HCYL,0);
         ATACmd(bd,ATA_PACKET);
    @@ -522,9 +522,9 @@ U0 ATAPIClose(CBlkDev *bd,I64 close_field=0x200,I64 track=0)
     {//0x200 CD/DVD part 1
     // 0x300    DVD part 2
       if (bd->flags & BDF_EXT_SIZE)
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       else
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
       OutU8(bd->base0+ATAR0_LCYL,0);
       OutU8(bd->base0+ATAR0_HCYL,0);
       ATACmd(bd,ATA_PACKET);
    @@ -543,9 +543,9 @@ U0 ATAPIWriteBlks(CBlkDev *bd,U8 *buf, I64 native_blk, I64 cnt)
       OutU8(bd->base0+ATAR0_LCYL,bd->blk_size);
       OutU8(bd->base0+ATAR0_HCYL,bd->blk_size.u8[1]);
       if (bd->flags & BDF_EXT_SIZE)
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       else
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
       OutU8(bd->base0+ATAR0_CMD,ATA_PACKET);
       ATAPIWritePktWord(bd,0,0x0400,native_blk.u16[1],native_blk,cnt.u16[1],cnt,0);
       bd->flags|=BDF_LAST_WAS_WRITE;
    @@ -554,9 +554,9 @@ U0 ATAPIWriteBlks(CBlkDev *bd,U8 *buf, I64 native_blk, I64 cnt)
       ATAPISeek(bd,native_blk);
     
       if (bd->flags & BDF_EXT_SIZE)
    -    OutU8(bd->base0+ATAR0_SELECT,0xEF|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xEF|bd->unit<<4);
       else
    -    OutU8(bd->base0+ATAR0_SELECT,0xE0|bd->unit<<4);
    +    OutU8(bd->base0+ATAR0_SEL,0xE0|bd->unit<<4);
       OutU8(bd->base0+ATAR0_LCYL,bd->blk_size);
       OutU8(bd->base0+ATAR0_HCYL,bd->blk_size.u8[1]);
       ATACmd(bd,ATA_PACKET);
    diff --git a/Kernel/BlkDev/DskATAId.CPP b/Kernel/BlkDev/DskATAId.CPP
    index 0e531ff..a94b0b6 100644
    --- a/Kernel/BlkDev/DskATAId.CPP
    +++ b/Kernel/BlkDev/DskATAId.CPP
    @@ -1,6 +1,6 @@
     Bool BootDVDProve(CBlkDev *bd)
     {
    -  CKernel *img=CAlloc(DVD_BLK_SIZE);
    +  U8 *img=CAlloc(DVD_BLK_SIZE);
       I64 i;
       Bool res=FALSE;
       "Port: %04X,%04X Unit: %02X  ",bd->base0,bd->base1,bd->unit;
    @@ -9,8 +9,9 @@ Bool BootDVDProve(CBlkDev *bd)
         if (ATAPIStartStop(bd,tS+5.0,TRUE)) {
           " Started";
           for (i=0;i<2;i++) {//Retry
    -	if (ATAPIReadBlks2(bd,tS+7.0,img,sys_boot_src.u16[1],1,FALSE)) {
    -	  if (img->compile_time==sys_compile_time) {
    +	if (ATAPIReadBlks2(bd,tS+7.0,img,sys_boot_blk,1,FALSE)) {
    +	  if ((img+sys_boot_src.u16[1]<compile_time==sys_compile_time) {
     	    " Found";
     	    return TRUE;
     	  } else
    @@ -201,13 +202,12 @@ CATARep *ATARepFind(CATARep *haystack_root,I64 needle_num)
       return NULL;
     }
     
    -CATARep *ATAIDDrvs(CATARep *root,I64 _sys_boot_drv,
    -		CATARep **_ata_drv,CATARep **_atapi_drv)
    +CATARep *ATAIDDrvs(CATARep *root,CATARep **_ata_drv,CATARep **_atapi_drv)
     {//This is for when trying to sort-out main hard drives and CD/DVD drives.
       CATARep *res=NULL,*tempha=root,*ata_drv=NULL,*atapi_drv=NULL;
       CBlkDev *bd;
       Bool was_silent=Silent;
    -  bd=Let2BlkDev(_sys_boot_drv,FALSE);
    +  bd=Let2BlkDev(':',FALSE);
       Silent(was_silent);
       while (tempha) {
         if (!res && bd && bd->type==tempha->type) {
    @@ -258,7 +258,7 @@ I64 AutoMountIDE()
       I64 res=0;
       CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL,*tempha;
       ATARep(FALSE,TRUE,&root);
    -  ATAIDDrvs(root,blkdev.boot_drv_let,&ata_drv,&atapi_drv);
    +  ATAIDDrvs(root,&ata_drv,&atapi_drv);
       if (ata_drv && ATAMount(blkdev.first_hd_drv_let,BDT_ATA,
     	ata_drv->base0,ata_drv->base1,ata_drv->unit))
         res++;
    diff --git a/Kernel/BlkDev/DskAddDev.CPP b/Kernel/BlkDev/DskAddDev.CPP
    index 0d0c4cc..d0dc85e 100644
    --- a/Kernel/BlkDev/DskAddDev.CPP
    +++ b/Kernel/BlkDev/DskAddDev.CPP
    @@ -5,6 +5,9 @@ U0 BlkDevLockFwdingSet(CBlkDev *bd)
       switch (bd->type) {
         case BDT_RAM:
           break;
    +    case BDT_FILE:
    +      bd->lock_fwding=Let2BlkDev(*bd->file_dsk_name);
    +      break;
         case BDT_ATA:
         case BDT_ATAPI:
           for (i=0;ifirst_drv_let+res);
       dv->bd=bd;
    -  dv->size=bd->max_blk+1;
    +  dv->drv_offset=bd->drv_offset;
    +  dv->size=bd->max_blk+1-bd->drv_offset;
       switch (bd->type) {
         case BDT_RAM:
    +    case BDT_FILE:
           dv->dv_signature=DRV_SIGNATURE_VAL;
           dv->fs_type=FSt_REDSEA;
     //This is to force creation of a RAM
    @@ -60,7 +65,7 @@ I64 BlkDevAdd(CBlkDev *bd,Bool one_drv,Bool make_free)
     	  dv->dv_signature=DRV_SIGNATURE_VAL;
     	  res++;
     	  dv->fs_type=FSt_REDSEA;
    -	  dv->size=bd->max_blk+1;
    +	  dv->size=bd->max_blk+1-bd->drv_offset;
     //The following read is a test read.
     	  //if it hangs, the drive is not supported.
     	  ATAReadBlks(bd,&mbr,0,1);
    @@ -80,7 +85,7 @@ I64 BlkDevAdd(CBlkDev *bd,Bool one_drv,Bool make_free)
     	      else
     		dv=DrvNextFree(bd->first_drv_let+res);
     	      dv->bd=bd;
    -	      dv->base_offset=mbr.p[i].offset+offset;
    +	      dv->drv_offset=mbr.p[i].offset+offset;
     	      dv->size	=mbr.p[i].size;
     	      switch (mbr.p[i].type) {
     		case MBR_PT_REDSEA:
    @@ -95,7 +100,7 @@ I64 BlkDevAdd(CBlkDev *bd,Bool one_drv,Bool make_free)
     		case MBR_PT_FAT32d:
     		case MBR_PT_FAT32e:
     		case MBR_PT_FAT32f:
    -		  ATAReadBlks(bd,&br,dv->base_offset,1);
    +		  ATAReadBlks(bd,&br,dv->drv_offset,1);
     		  dv->dv_signature=DRV_SIGNATURE_VAL;
     		  res++;
     		  if (br.signature==MBR_PT_REDSEA) {
    @@ -122,6 +127,8 @@ I64 BlkDevAdd(CBlkDev *bd,Bool one_drv,Bool make_free)
     	      }
     	    }
     	  }
    +	  if (Let2BlkDevType(bd->first_drv_let+res)!=bd->type)
    +	    break;
     	  if (j<0)
     	    break;
     	  if (!mbr.p[j].offset)
    @@ -138,7 +145,7 @@ I64 BlkDevAdd(CBlkDev *bd,Bool one_drv,Bool make_free)
           dv->dv_signature=DRV_SIGNATURE_VAL;
           res++;
           dv->fs_type=FSt_ISO9660; //Start with this
    -      dv->size =0;
    +      dv->size=0;
           break;
       }
       if (res)
    @@ -220,5 +227,4 @@ U0 BlkDevsInitAll()
         StreamDoc(kernel_cfg->add_dev);
         StreamPrint("#exe {Option(OPTf_WARN_PAREN,ON);}");
       };
    -  DrvRep;
     }
    diff --git a/Kernel/BlkDev/DskBlk.CPP b/Kernel/BlkDev/DskBlk.CPP
    index 5ce7c91..c64253f 100644
    --- a/Kernel/BlkDev/DskBlk.CPP
    +++ b/Kernel/BlkDev/DskBlk.CPP
    @@ -37,10 +37,9 @@ Bool RBlks(CDrv *dv,U8 *buf, I64 blk, I64 cnt)
       try {
         unlock=DrvLock(dv);
         BlkDevInit(bd);
    -    if (dv->base_offset && blkbase_offset ||
    -	  blk+cnt>dv->base_offset+dv->size)
    +    if (dv->drv_offset && blkdrv_offset ||
    +	  blk+cnt>dv->drv_offset+dv->size)
           throw('Drv');
    -
         if (bd->flags & BDF_READ_CACHE)
           RCache(dv,&buf,&blk,&cnt);
         if (cnt>0) {
    @@ -48,6 +47,9 @@ Bool RBlks(CDrv *dv,U8 *buf, I64 blk, I64 cnt)
     	case BDT_RAM:
     	  MemCpy(buf,bd->RAM_dsk+blk<file_dsk,buf,blk,cnt);
    +	  break;
     	case BDT_ATA:
     	case BDT_ATAPI:
     	  res=ATARBlks(dv,buf,blk,cnt);
    @@ -76,14 +78,17 @@ Bool WBlks(CDrv *dv,U8 *buf, I64 blk, I64 cnt)
         BlkDevInit(bd);
         if (bd->flags&BDF_READ_ONLY && !(bd->flags & BDF_READ_ONLY_OVERRIDE))
           throw('BlkDev');
    -    if (dv->base_offset && blkbase_offset ||
    -	  blk+cnt>dv->base_offset+dv->size)
    +    if (dv->drv_offset && blkdrv_offset ||
    +	  blk+cnt>dv->drv_offset+dv->size)
           throw('Drv');
         if (cnt>0) {
           switch (bd->type) {
     	case BDT_RAM:
     	  MemCpy(bd->RAM_dsk+blk<file_dsk,buf,blk,cnt);
    +	  break;
     	case BDT_ATA:
     	case BDT_ATAPI:
     	  res=ATAWBlks(dv,buf,blk,cnt);
    diff --git a/Kernel/BlkDev/DskBlkDev.CPP b/Kernel/BlkDev/DskBlkDev.CPP
    index d8c0bc3..1f8e403 100644
    --- a/Kernel/BlkDev/DskBlkDev.CPP
    +++ b/Kernel/BlkDev/DskBlkDev.CPP
    @@ -30,19 +30,39 @@ Bool BlkDevUnlock(CBlkDev *bd,Bool rst=FALSE)
     
     Bool BlkDevInit(CBlkDev *bd)
     {
    +  CDirEntry de;
    +  U8 buf[STR_LEN];
       CDrv *dv=Let2Drv(bd->first_drv_let);
    -  Bool res=FALSE;
    +  Bool res=FALSE,invalid=FALSE;
       if (!LBts(&bd->flags,BDf_INITIALIZED)) {
         bd->flags|=BDF_INIT_IN_PROGRESS;
         switch (bd->type) {
    -      case BDT_RAM:
    -	if (!bd->RAM_dsk) {
    -	  bd->RAM_dsk=AMAlloc((bd->max_blk+1)<max_blk=MSize(bd->RAM_dsk)>>BLK_SIZE_BITS-1;
    -	}
    +      start:
    +	case BDT_RAM:
    +	  if (!bd->RAM_dsk) {
    +	    bd->RAM_dsk=AMAlloc((bd->max_blk+1)<max_blk=MSize(bd->RAM_dsk)>>BLK_SIZE_BITS-1;
    +	  }
    +	  break;
    +	case BDT_FILE:
    +	  if (!bd->file_dsk_name) {
    +	    StrPrint(buf,"%C:/Drv%C.DRV.C",
    +		  blkdev.boot_drv_let,bd->first_drv_let);
    +	    bd->file_dsk_name=AStrNew(buf);
    +	  }
    +	  if (FileFind(bd->file_dsk_name,&de,FUF_JUST_FILES))
    +	    bd->max_blk=de.size>>BLK_SIZE_BITS-1;
    +	  else {
    +	    invalid=TRUE;
    +	    if (bd->max_blk<7)
    +	      bd->max_blk=7;
    +	  }
    +	  bd->file_dsk=FOpen(bd->file_dsk_name,"wc+",bd->max_blk+1);
    +	  break;
    +      end:
     	dv->fs_type=FSt_REDSEA;
    -	dv->size=bd->max_blk+1;
    -	if (RedSeaDrvValidate(bd->first_drv_let))
    +	dv->size=bd->max_blk+1-bd->drv_offset;
    +	if (!invalid && RedSeaDrvValidate(bd->first_drv_let))
     	  RedSeaDrvInit(dv);
     	else
     	  RedSeaFmt(bd->first_drv_let);
    @@ -89,6 +109,8 @@ CBlkDev *BlkDevNextFree(U8 first_drv_let,I64 type)
     {//Locate free slot for new BlkDev, like during $LK,"Mount",A="MN:Mount"$().
       I64 i=0;
       CBlkDev *res;
    +  if (Let2BlkDevType(first_drv_let)!=type)
    +    throw('BlkDev');
       do {
         res=&blkdev.blkdevs[i];
         if (res->bd_signature!=BD_SIGNATURE_VAL) {
    @@ -116,6 +138,14 @@ CBlkDev *BlkDevNextFree(U8 first_drv_let,I64 type)
       return NULL; //never gets here
     }
     
    +U0 BlkDevDel(CBlkDev *bd)
    +{//Delete BlkDev
    +  FClose(bd->file_dsk);
    +  Free(bd->file_dsk_name);
    +  Free(bd->dev_id_record);
    +  MemSet(bd,0,sizeof(CBlkDev));
    +}
    +
     CBlkDev *BlkDevChk(CBlkDev *bd,Bool except=TRUE)
     {//Check for valid BlkDev. Throw exception.
       if (!bd || bd->bd_signature!=BD_SIGNATURE_VAL ||
    diff --git a/Kernel/BlkDev/DskCDDVD.CPP b/Kernel/BlkDev/DskCDDVD.CPP
    index 9d5c4cc..0809d91 100644
    --- a/Kernel/BlkDev/DskCDDVD.CPP
    +++ b/Kernel/BlkDev/DskCDDVD.CPP
    @@ -1,7 +1,75 @@
    +//ISO1 is ISO9660
    +//ISO2 is ISO13490
    +//ISO3 is ISO13346
    +
    +Bool ISODrvInit(CDrv *dv,I64 blk)
    +{
    +  CBlkDev *bd=dv->bd;
    +  I64 spc=bd->blk_size>>BLK_SIZE_BITS,i=blk/spc,drv_offset=0;
    +  CISO1PriDesc *iso=MAlloc(bd->blk_size);
    +  CISO1DirEntry *de;
    +  Bool unlock,res=FALSE;
    +  U8 buf[8];
    +
    +  try {
    +    unlock=DrvLock(dv);
    +    dv->fs_type=FSt_ISO9660; //default
    +    dv->spc=spc;
    +    dv->drv_offset=bd->drv_offset=dv->data_area=dv->root_cluster=dv->size=0;
    +    while (TRUE) {
    +      dv->size=MaxI64(dv->size,(i+1)*spc);
    +      RBlks(dv,iso,i*spc,spc);
    +      buf[0](U32)=iso->id[0](U32);
    +      buf[4](U16)=iso->id[4](U8);
    +      switch (LstMatch(buf,"CD001\0CDW02\0BEA01\0BOOT2\0NSR02\0NSR03\0TEA01\0",
    +	    LMF_EXACT)) {
    +	case 0:
    +	  switch (iso->type) {
    +	    case ISO1T_BOOT_RECORD:
    +	      drv_offset+=(2*DVD_BLK_SIZE+DVD_BLK_SIZE)/BLK_SIZE;
    +	      break;
    +	    case ISO1T_SUPPLEMENTARY_DESC:
    +	      de=&iso->root_dir_record;
    +	      dv->root_cluster=de->loc.little;
    +	      dv->size=iso->vol_space_size.little*bd->blk_size>>BLK_SIZE_BITS;
    +	      if (!StrCmp(iso->publisher_id,"TempleOS RedSea")) {
    +		dv->fs_type=FSt_REDSEA;
    +		bd->drv_offset=dv->drv_offset=19<<2+drv_offset;
    +		bd->max_blk=dv->size-1;
    +		dv->size-=bd->drv_offset;
    +		RedSeaDrvInit(dv);
    +	      }
    +	      res=TRUE;
    +	      goto ipi_done;
    +	    case ISO1T_TERMINATOR:
    +	      throw('Drv');
    +	  }
    +	  break;
    +	default: //Its normal for ISO13346 to read NULL blk as terminator
    +	  PrintErr("File System Not Supported\n");
    +	  throw('Drv');
    +      }
    +      i++;
    +    }
    +ipi_done:
    +    Free(iso);
    +    if (unlock)
    +      DrvUnlock(dv);
    +  } catch {
    +    dv->fs_type=FSt_ISO9660;
    +    dv->spc=spc;
    +    dv->drv_offset=bd->drv_offset=dv->data_area=dv->root_cluster=0;
    +    Free(iso);
    +    if (unlock)
    +      DrvUnlock(dv);
    +  }
    +  return res;
    +}
    +
     U0 DVDImageRead(U8 dvd_drv_let,U8 *out_name)
     {//Read entire CD/DVD image into ISO file.
    -  CBlkDev *bd=Let2BlkDev(dvd_drv_let);
       CDrv *dv=Let2Drv(dvd_drv_let);
    +  CBlkDev *bd=dv->bd;
       U8 *buf=MAlloc(COPY_BUF_BLKS<flags&=~FF_NEW_FILE;
           }
           DirContextDel(dirc);
    -      if (!contiguous || cnt>0)
    -	return f;
    +      return f;
         }
       } else {
         if (FileFind(full_name,&f->de,FUF_JUST_FILES)) {
    diff --git a/Kernel/BlkDev/DskDirA.CPP b/Kernel/BlkDev/DskDirA.CPP
    index 00c3cd5..12edd14 100644
    --- a/Kernel/BlkDev/DskDirA.CPP
    +++ b/Kernel/BlkDev/DskDirA.CPP
    @@ -160,9 +160,9 @@ CDirEntry *DirFilesFlatten(CDirEntry *tempde,CDirEntry **_res,I64 fuf_flags)
       return _res;
     }
     
    -U0 PutFileLink(U8 *filename,I64 line=0,Bool plain_text=FALSE)
    +U0 PutFileLink(U8 *filename,U8 *full_name=NULL,I64 line=0,Bool plain_text=FALSE)
     {//Put $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.TXT"$ file,line link to StdOut, $LK,"DocPut",A="MN:DocPut"$.
    -  U8 *buf;
    +  U8 *st;
       if (!filename) return;
       if (IsRaw) {
         if (line)
    @@ -177,32 +177,38 @@ U0 PutFileLink(U8 *filename,I64 line=0,Bool plain_text=FALSE)
           else
     	"$$LK,\"%s\",A=\"AI:%s\"$$",filename+3,filename+3;
         } else {
    -      buf=FileNameAbs(filename);
    +      if (!full_name)
    +	full_name=st=FileNameAbs(filename);
    +      else
    +	st=NULL;
           if (plain_text) {
     	if (line)
    -	  "$$LK,\"%s,%04d\",A=\"PL:%s,%d\"$$",filename,line,buf,line;
    +	  "$$LK,\"%s,%04d\",A=\"PL:%s,%d\"$$",filename,line,full_name,line;
     	else
    -	  "$$LK,\"%s\",A=\"PI:%s\"$$",filename,buf;
    +	  "$$LK,\"%s\",A=\"PI:%s\"$$",filename,full_name;
           } else {
     	if (line)
    -	  "$$LK,\"%s,%04d\",A=\"FL:%s,%d\"$$",filename,line,buf,line;
    +	  "$$LK,\"%s,%04d\",A=\"FL:%s,%d\"$$",filename,line,full_name,line;
     	else
    -	  "$$LK,\"%s\",A=\"FI:%s\"$$",filename,buf;
    +	  "$$LK,\"%s\",A=\"FI:%s\"$$",filename,full_name;
           }
    -      Free(buf);
    +      Free(st);
         }
       }
     }
     
    -U0 PutDirLink(U8 *dirname)
    +U0 PutDirLink(U8 *dirname,U8 *full_name=NULL)
     {//Put $LK,"DolDoc",A="FI:::/Doc/DolDocOverview.TXT"$ dir macro to StdOut, $LK,"DocPut",A="MN:DocPut"$.
    -  U8 *buf;
    +  U8 *st;
       if (!dirname) return;
       if (IsRaw)
         "%s",dirname;
       else {
    -    buf=DirNameAbs(dirname);
    -    "$$MA,T=\"%s\",LM=\"Cd(\\\"%s\\\");Dir;\n\"$$",dirname,buf;
    -    Free(buf);
    +    if (!full_name)
    +      full_name=st=DirNameAbs(dirname);
    +    else
    +      st=NULL;
    +    "$$MA,T=\"%s\",LM=\"Cd(\\\"%s\\\");Dir;\n\"$$",dirname,full_name;
    +    Free(st);
       }
     }
    diff --git a/Kernel/BlkDev/DskDirB.CPP b/Kernel/BlkDev/DskDirB.CPP
    index 4b42416..0c8581f 100644
    --- a/Kernel/BlkDev/DskDirB.CPP
    +++ b/Kernel/BlkDev/DskDirB.CPP
    @@ -1,3 +1,11 @@
    +U0 HomeSet(U8 *dirname)
    +{//Change home directory.
    +  dirname=DirNameAbs(dirname);
    +  Free(blkdev.home_dir);
    +  blkdev.home_dir=AStrNew(dirname);
    +  Free(dirname);
    +}
    +
     Bool Cd(U8 *dirname=NULL,Bool make_dirs=FALSE)
     {//Change directory. Optionally, make directories, too.
       I64 maxlen,cur_dir_cluster=0;
    @@ -5,7 +13,7 @@ Bool Cd(U8 *dirname=NULL,Bool make_dirs=FALSE)
       CDrv *dv;
       Bool res=TRUE;
       if (!dirname)
    -    dirname="::/Home";
    +    dirname="~";
       else if (!*dirname)
         return TRUE;
       if (dirname[1]==':') {
    @@ -36,6 +44,12 @@ Bool Cd(U8 *dirname=NULL,Bool make_dirs=FALSE)
           StrLastRem(new_cur_dir,"/");
           if (!*new_cur_dir)
     	StrCpy(new_cur_dir,"/");
    +    } else if (!StrCmp(buf,"~")) {
    +      Free(new_cur_dir);
    +      new_cur_dir=MAlloc(StrLen(blkdev.home_dir+2)+1+StrLen(chg_to_buf)+1);
    +      StrCpy(new_cur_dir,blkdev.home_dir+2);
    +      if (Fs->cur_dv!=Let2Drv('~') && !Drv('~'))
    +	return FALSE;
         } else if (StrCmp(buf,".") && *buf) {
           dv=Fs->cur_dv;
           cur_dir_cluster=Name2DirCluster(dv,new_cur_dir);
    @@ -99,6 +113,11 @@ I64 Dir(U8 *files_find_mask,Bool full)
         PrintErr("Invalid Drive\n");
       else {
         if (tempde1) {
    +      Free(st);
    +      st=MAllocIdent(tempde1->full_name);
    +      StrLastRem(st,"/");
    +      if (!st[2])
    +	StrCpy(st+2,"/");
     //Find max columns
           tempde2=tempde1;
           while (tempde2) {
    @@ -129,9 +148,9 @@ I64 Dir(U8 *files_find_mask,Bool full)
     		csize,tempde1->size;
     	}
     	if (tempde1->attr & RS_ATTR_DIR)
    -	  PutDirLink(tempde1->name);
    +	  PutDirLink(tempde1->name,tempde1->full_name);
     	else
    -	  PutFileLink(tempde1->name);
    +	  PutFileLink(tempde1->name,tempde1->full_name);
     	'\n';
     	DirEntryDel(tempde1);
     	tempde1=tempde2;
    @@ -143,8 +162,9 @@ I64 Dir(U8 *files_find_mask,Bool full)
       return res;
     }
     
    -Bool MkDir(U8 *filename)
    +Bool MkDir(U8 *filename,I64 entry_cnt=0)
     {//Make directory. $LK,"Cd",A="MN:Cd"$() can also make directories.
    +//entry_cnt is for preallocating dir blks, leave it zero if you like.
       U8 *name;
       CDirContext *dirc;
       Bool res=FALSE;
    @@ -160,10 +180,10 @@ Bool MkDir(U8 *filename)
     	      SUF_REM_LEADING|SUF_REM_TRAILING|SUF_REM_CTRL_CHARS);
     	switch (dirc->dv->fs_type) {
     	  case FSt_REDSEA:
    -	    res=RedSeaMkDir(dirc->dv,Fs->cur_dir,name);
    +	    res=RedSeaMkDir(dirc->dv,Fs->cur_dir,name,entry_cnt);
     	    break;
     	  case FSt_FAT32:
    -	    res=FAT32MkDir(dirc->dv,Fs->cur_dir,name);
    +	    res=FAT32MkDir(dirc->dv,Fs->cur_dir,name,entry_cnt);
     	    break;
     	  case FSt_ISO9660:
     	    PrintErr("Not Writable\n");
    diff --git a/Kernel/BlkDev/DskDirContext.CPP b/Kernel/BlkDev/DskDirContext.CPP
    index 86c6c48..08a03e8 100644
    --- a/Kernel/BlkDev/DskDirContext.CPP
    +++ b/Kernel/BlkDev/DskDirContext.CPP
    @@ -34,6 +34,8 @@ CDirContext *DirContextNew(U8 *_mask,Bool make_mask=FALSE,
           valid=FALSE;
         mask+=2;
       }
    +  if (*mask=='~' && Fs->cur_dv!=Let2Drv('~') && !Drv('~'))
    +    valid=FALSE;
       dirc->dv=Fs->cur_dv;
       DrvChk(dirc->dv);
       buf=MAlloc(mask_len+2);
    diff --git a/Kernel/BlkDev/DskDrv.CPP b/Kernel/BlkDev/DskDrv.CPP
    index 03faf11..6aaf327 100644
    --- a/Kernel/BlkDev/DskDrv.CPP
    +++ b/Kernel/BlkDev/DskDrv.CPP
    @@ -62,6 +62,15 @@ CDrv *DrvNextFree(U8 first_drv_let='C')
       return NULL; //never gets here
     }
     
    +U0 DrvDel(CDrv *dv)
    +{//Delete drv
    +  if (dv->fs_type==FSt_REDSEA && dv->next_free)
    +    RedSeaFreeFreeLst(dv);
    +  Free(dv->cur_fat_blk);
    +  Free(dv->fis);
    +  MemSet(dv,0,sizeof(CDrv));
    +}
    +
     U0 DrvFATBlkAlloc(CDrv *dv)
     {
       DrvChk(dv);
    @@ -72,7 +81,7 @@ U0 DrvFATBlkAlloc(CDrv *dv)
       RBlks(dv,dv->cur_fat_blk,dv->fat1,1);
     }
     
    -U0 DrvFATBlkClean(CDrv *dv,I64 fat_select=3)
    +U0 DrvFATBlkClean(CDrv *dv,I64 fat_sel=3)
     {
       if ((dv->fs_type==FSt_FAT32 || dv->fs_type==FSt_REDSEA) &&
            Bt(&dv->fat_blk_dirty,0)) {
    @@ -80,9 +89,9 @@ U0 DrvFATBlkClean(CDrv *dv,I64 fat_select=3)
           WBlks(dv,dv->cur_fat_blk,dv->fat1+dv->cur_fat_blk_num,1);
           LBtr(&dv->fat_blk_dirty,0);
         } else {
    -      if (fat_select==3 || !fat_select)
    +      if (fat_sel==3 || !fat_sel)
     	WBlks(dv,dv->cur_fat_blk,dv->fat1+dv->cur_fat_blk_num,1);
    -      if (fat_select==3 || fat_select==1) {
    +      if (fat_sel==3 || fat_sel==1) {
     	WBlks(dv,dv->cur_fat_blk,dv->fat2+dv->cur_fat_blk_num,1);
     	LBtr(&dv->fat_blk_dirty,0);
           }
    @@ -90,7 +99,7 @@ U0 DrvFATBlkClean(CDrv *dv,I64 fat_select=3)
       }
     }
     
    -U0 DrvFATBlkSet(CDrv *dv,I64 c,I64 fat_select=3)
    +U0 DrvFATBlkSet(CDrv *dv,I64 c,I64 fat_sel=3)
     {
       I64 fat_blk_num;
       if (c==INVALID_CLUSTER)
    @@ -106,9 +115,9 @@ U0 DrvFATBlkSet(CDrv *dv,I64 c,I64 fat_select=3)
           throw('Drv');
       }
       if (fat_blk_num!=dv->cur_fat_blk_num) {
    -    DrvFATBlkClean(dv,fat_select);
    +    DrvFATBlkClean(dv,fat_sel);
         dv->cur_fat_blk_num=fat_blk_num;
    -    if (fat_select==3 || !fat_select)
    +    if (fat_sel==3 || !fat_sel)
           RBlks(dv,dv->cur_fat_blk,dv->fat1+dv->cur_fat_blk_num,1);
         else
           RBlks(dv,dv->cur_fat_blk,dv->fat2+dv->cur_fat_blk_num,1);
    @@ -139,8 +148,10 @@ I64 Let2BlkDevType(U8 drv_let)
       drv_let=ToUpper(drv_let);
       if ('A'<=drv_let<='B')
         return BDT_RAM;
    -  if ('C'<=drv_let<='S')
    +  if ('C'<=drv_let<='L')
         return BDT_ATA;
    +  if ('M'<=drv_let<='S')
    +    return BDT_FILE;
       if ('T'<=drv_let<='Z')
         return BDT_ATAPI;
       return BDT_NULL;
    @@ -154,6 +165,8 @@ CDrv *Let2Drv(U8 drv_let=0,Bool except=TRUE)
       else {
         if (drv_let==':')
           drv_let=blkdev.boot_drv_let;
    +    else if (drv_let=='~')
    +      drv_let=*blkdev.home_dir;
         drv_let=ToUpper(drv_let);
         if (!('A'<=drv_let<='Z')) {
           if (except)
    @@ -188,7 +201,7 @@ U0 DskCacheInvalidate(CDrv *dv)
         BlkDevInit(bd);
         if (bd->flags & BDF_READ_CACHE)
           DskCacheInvalidate2(dv);
    -    if (dv->fs_type==FSt_ISO9660 && !(bd->flags & BDF_READ_ONLY_OVERRIDE))
    +    if (bd->type==BDT_ATAPI && !(bd->flags & BDF_READ_ONLY_OVERRIDE))
           ISODrvInit(dv,(32767/bd->blk_size+1)*bd->blk_size>>BLK_SIZE_BITS);
         if (unlock)
           DrvUnlock(dv);
    @@ -228,7 +241,7 @@ Bool Drv(U8 drv_let)
       if (dv!=Fs->cur_dv) {
         if (bd->flags & BDF_REMOVABLE && !(bd->flags & BDF_INITIALIZED))
           ChgDsk(Drv2Let(dv));
    -    if (bd->type==BDT_RAM)
    +    if (bd->type==BDT_RAM || bd->type=BDT_FILE)
           BlkDevInit(bd);
       }
       Fs->cur_dv=dv;
    @@ -275,7 +288,7 @@ U8 *DrvModelNum(U8 drv_let=0)
       return res;
     }
     
    -U8 blkdev_text_attr[BDT_NUM_TYPES]={BLACK,LTCYAN,WHITE,LTBLUE};
    +U8 blkdev_text_attr[BDT_NUM_TYPES]={BLACK,LTCYAN,WHITE,LTGREEN,LTBLUE};
     U8 drv_text_attr[3]={BLACK,BLUE,RED};
     
     U8 DrvTextAttrGet(U8 drv_let=0)
    @@ -284,6 +297,8 @@ U8 DrvTextAttrGet(U8 drv_let=0)
         drv_let=Drv2Let(Fs->cur_dv);
       else if (drv_let==':')
         drv_let=blkdev.boot_drv_let;
    +  else if (drv_let=='~')
    +    drv_let=*blkdev.home_dir;
       drv_let=ToUpper(drv_let);
       if ('A'<=drv_let<='Z')
         return blkdev_text_attr[Let2BlkDevType(drv_let)]<<4|
    @@ -298,7 +313,7 @@ U0 DrvRep()
       CBlkDev *bd;
       I64 ch,i,drv_let,attr;
       U8 *st;
    -  "\nDefined Drives:\n\n";
    +  "\nDefined Drives:\n";
       for (i=0,dv=blkdev.drvs;idv_signature==DRV_SIGNATURE_VAL) {
           bd=dv->bd;
    @@ -321,9 +336,8 @@ U0 DrvRep()
     	"   Serial#:%s\n",st;
     	Free(st);
           }
    -      "   %016X-%016X\n$$FG$$$$BG$$",
    -	    dv->base_offset,dv->base_offset+dv->size-1;
    -      dv->base_offset,dv->base_offset+dv->size-1;
    +      "   %016X-%016X\n$$FG$$$$BG$$",dv->drv_offset,dv->drv_offset+dv->size-1;
         }
       }
    +  "Home Dir:\"%s\"\n",blkdev.home_dir;
     }
    diff --git a/Kernel/BlkDev/DskFile.CPP b/Kernel/BlkDev/DskFile.CPP
    index 624b059..bbeb349 100644
    --- a/Kernel/BlkDev/DskFile.CPP
    +++ b/Kernel/BlkDev/DskFile.CPP
    @@ -23,16 +23,13 @@ U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL)
           if (dirc=DirContextNew(curname)) {
     	switch (dirc->dv->fs_type) {
     	  case FSt_REDSEA:
    -	    res=RedSeaFileRead(dirc->dv,Fs->cur_dir,dirc->mask,
    -		  &size,&attr);
    +	    res=RedSeaFileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
     	    break;
     	  case FSt_FAT32:
    -	    res=FAT32FileRead(dirc->dv,Fs->cur_dir,dirc->mask,
    -		  &size,&attr);
    +	    res=FAT32FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
     	    break;
     	  case FSt_ISO9660:
    -	    res=ISO1FileRead(dirc->dv,Fs->cur_dir,dirc->mask,
    -		  &size,&attr);
    +	    res=ISO1FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
     	    break;
     	  default:
     	    PrintErr("File System Not Supported\n");
    @@ -52,16 +49,13 @@ U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL)
     	  Cd("..");
     	  switch (Fs->cur_dv->fs_type) {
     	    case FSt_REDSEA:
    -	      res=RedSeaFileRead(dirc->dv,Fs->cur_dir,dirc->mask,
    -		    &size,&attr);
    +	      res=RedSeaFileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
     	      break;
     	    case FSt_FAT32:
    -	      res=FAT32FileRead(dirc->dv,Fs->cur_dir,dirc->mask,
    -		    &size,&attr);
    +	      res=FAT32FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
     	      break;
     	    case FSt_ISO9660:
    -	      res=ISO1FileRead(dirc->dv,Fs->cur_dir,dirc->mask,
    -		    &size,&attr);
    +	      res=ISO1FileRead(dirc->dv,Fs->cur_dir,dirc->mask,&size,&attr);
     	      break;
     	    default:
     	      PrintErr("File System Not Supported\n");
    @@ -75,8 +69,7 @@ U8 *FileRead(U8 *filename,I64 *_size=NULL,I64 *_attr=NULL)
           PrintErr("File not found.\n");
         }
         if (res && attr & RS_ATTR_RESIDENT)
    -      HashGenericAdd(curname,HTT_FILE,
    -	    AMAllocIdent(res),size,0,adam_task);
    +      HashGenericAdd(curname,HTT_FILE,AMAllocIdent(res),size,0,adam_task);
       }
       if (res && attr & RS_ATTR_COMPRESSED) {
         arc=res;
    @@ -108,12 +101,10 @@ I64 FileWrite(U8 *filename,U8 *fbuf,I64 size,CDate cdt=0,I64 attr=0)
         if (!cdt) cdt=Now;
         switch (dirc->dv->fs_type) {
           case FSt_REDSEA:
    -	c=RedSeaFileWrite(dirc->dv,Fs->cur_dir,dirc->mask,fbuf,
    -	      size,cdt,attr);
    +	c=RedSeaFileWrite(dirc->dv,Fs->cur_dir,dirc->mask,fbuf,size,cdt,attr);
     	break;
           case FSt_FAT32:
    -	c=FAT32FileWrite(dirc->dv,Fs->cur_dir,dirc->mask,fbuf,
    -	      size,cdt,attr);
    +	c=FAT32FileWrite(dirc->dv,Fs->cur_dir,dirc->mask,fbuf,size,cdt,attr);
     	break;
           case FSt_ISO9660:
     	PrintErr("Not Writable\n");
    diff --git a/Kernel/BlkDev/DskFmt.CPP b/Kernel/BlkDev/DskFmt.CPP
    index 8851722..0092d21 100644
    --- a/Kernel/BlkDev/DskFmt.CPP
    +++ b/Kernel/BlkDev/DskFmt.CPP
    @@ -65,6 +65,17 @@ U0 Fmt(I64 drv_let,Bool quick=TRUE,Bool confirm=TRUE,I64 type=FSt_FAT32)
         return;
       }
       switch (type) {
    +    case FSt_FAT32:
    +      if (dv->bd->type==BDT_ATA) {
    +	Silent;
    +	Drv(drv_let);
    +	Silent(old_silent);
    +	FAT32Fmt(drv_let,quick);
    +	DskCacheInvalidate(Let2Drv(drv_let));
    +	Drv(drv_let);
    +	break;
    +      }
    +      "Using RedSea File System.\n";
         case FSt_REDSEA:
           Silent;
           Drv(drv_let);
    @@ -73,14 +84,6 @@ U0 Fmt(I64 drv_let,Bool quick=TRUE,Bool confirm=TRUE,I64 type=FSt_FAT32)
           DskCacheInvalidate(Let2Drv(drv_let));
           Drv(drv_let);
           break;
    -    case FSt_FAT32:
    -      Silent;
    -      Drv(drv_let);
    -      Silent(old_silent);
    -      FAT32Fmt(drv_let,quick);
    -      DskCacheInvalidate(Let2Drv(drv_let));
    -      Drv(drv_let);
    -      break;
         case FSt_ISO9660:
           PrintErr("Not Writable\n");
           break;
    diff --git a/Kernel/BlkDev/DskStrA.CPP b/Kernel/BlkDev/DskStrA.CPP
    index 971ca85..e3b1bd8 100644
    --- a/Kernel/BlkDev/DskStrA.CPP
    +++ b/Kernel/BlkDev/DskStrA.CPP
    @@ -60,7 +60,7 @@ Bool FilesFindMatch(U8 *_test_name,U8 *files_find_mask,I64 fuf_flags=0)
         else
           ptr=test_name2;
         if (*mask2) {
    -      if (*mask2=='~') {
    +      if (*mask2=='!') {
     	if (WildMatch(ptr,mask2+1)) {
     	  res=FALSE;
     	  break;
    @@ -115,6 +115,8 @@ U8 *DirNameAbs(U8 *_dirname)
       if (*dirname && dirname[1]==':') {
         if (*dirname==':')
           *drv=blkdev.boot_drv_let;
    +    else if (*dirname=='~')
    +      *drv=*blkdev.home_dir;
         else
           *drv=*dirname;
         dirname=dirname+2;
    @@ -139,9 +141,13 @@ U8 *DirNameAbs(U8 *_dirname)
           StrLastRem(buf3,"/");
           if (!*buf3)
     	StrCpy(buf3,"/");
    -    } else if (!StrCmp(buf4,".")) {
    -      ;
    -    } else if (*buf4) {
    +    } else if (!StrCmp(buf4,"~")) {
    +      Free(buf3);
    +      buf3=MAlloc(StrLen(blkdev.home_dir+2)+1+StrLen(buf2)+1);
    +      StrCpy(buf3,blkdev.home_dir+2);
    +      *drv=*blkdev.home_dir;
    +    } else if (!StrCmp(buf4,"."));
    +    else if (*buf4) {
           if (StrCmp(buf3,"/"))
     	CatPrint(buf3,"/");
           CatPrint(buf3,buf4);
    @@ -265,7 +271,7 @@ U8 *ToggleZorNotZ(U8 *name)
     
     U8 *FileNameTempTxt()
     {//Make pretty-safe temp filename in home dir.
    -  return MStrPrint("::/Home/SysTemp%X.TXT.Z",GetTSC>>8&0xFFFFFFFF);
    +  return MStrPrint("~/SysTemp%X.TXT.Z",GetTSC>>8&0xFFFFFFFF);
     }
     
     U8 *CurDir(CTask *task=NULL,CTask *mem_task=NULL)
    diff --git a/Kernel/BlkDev/FileSysFAT.CPP b/Kernel/BlkDev/FileSysFAT.CPP
    index 1977f25..274200d 100644
    --- a/Kernel/BlkDev/FileSysFAT.CPP
    +++ b/Kernel/BlkDev/FileSysFAT.CPP
    @@ -26,9 +26,9 @@ U0 FAT32DrvInit(CDrv *dv)
       try {
         unlock=DrvLock(dv);
         dv->fs_type=FSt_FAT32;
    -    RBlks(dv,&br32,dv->base_offset,1);
    -    dv->file_system_info_sect=dv->base_offset+br32.file_system_info_sect;
    -    dv->fat1=dv->base_offset+br32.reserved_sects;
    +    RBlks(dv,&br32,dv->drv_offset,1);
    +    dv->file_system_info_sect=dv->drv_offset+br32.file_system_info_sect;
    +    dv->fat1=dv->drv_offset+br32.reserved_sects;
         dv->fat2=dv->fat1+br32.sects_per_fat;
         dv->data_area=dv->fat2+br32.sects_per_fat
     	  -2*br32.sects_per_cluster; //Starts at Cluster 2
    @@ -50,7 +50,7 @@ Bool FAT32DrvValidate(U8 drv_let)
       CDrv *dv;
       CFAT32Boot br;
       if ((dv=Let2Drv(drv_let,FALSE)) && dv->fs_type==FSt_FAT32 &&
    -	RBlks(dv,&br,dv->base_offset,1) && br.signature==0xAA55 &&
    +	RBlks(dv,&br,dv->drv_offset,1) && br.signature==0xAA55 &&
     	br.sects==dv->size)
         return TRUE;
       else
    @@ -111,14 +111,14 @@ U0 FAT32Fmt(U8 drv_let,Bool quick=TRUE)
           i=br->reserved_sects+2*l+4*br->sects_per_cluster;
         else
           i=dv->size;
    -    WZeroBlks(dv,dv->base_offset,i);
    +    WZeroBlks(dv,dv->drv_offset,i);
     
    -    WBlks(dv,fis,dv->base_offset+br->file_system_info_sect,1);
    -    WBlks(dv,br,dv->base_offset,1);
    +    WBlks(dv,fis,dv->drv_offset+br->file_system_info_sect,1);
    +    WBlks(dv,br,dv->drv_offset,1);
         FAT32DrvInit(dv);
         ClustersAlloc(dv,0,1,FALSE); //Alloc #1
         br->root_cluster=ClustersAlloc(dv,0,1,FALSE);
    -    WBlks(dv,br,dv->base_offset,1);
    +    WBlks(dv,br,dv->drv_offset,1);
         FAT32DrvInit(dv);
         DrvUnlock(dv);
       } catch
    @@ -462,7 +462,7 @@ I64 FAT32AllocClusters(CDrv *dv,I64 c,I64 cnt)
       try {
         unlock_break=BreakLock;
         unlock=DrvLock(dv);
    -    l=(dv->size+dv->base_offset-dv->data_area)/dv->spc-1;
    +    l=(dv->size+dv->drv_offset-dv->data_area)/dv->spc-1;
         j=dv->fis->most_recently_alloced;
         while (cnt-->0) {
           while (TRUE) {
    @@ -525,7 +525,7 @@ I64 FAT32AllocContiguousClusters(CDrv *dv,I64 cnt)
           i=0;
           cont=TRUE;
           while (cont && ispc+dv->data_area>dv->size+dv->base_offset)
    +	if ((first+i+1)*dv->spc+dv->data_area>dv->size+dv->drv_offset)
     	  throw('Drv');
     	DrvFATBlkSet(dv,first+i);
     	if (dv->cur_fat_blk[(first+i)&(BLK_SIZE/4-1)])
    @@ -930,10 +930,11 @@ CDirEntry *FAT32FilesFind(U8 *files_find_mask,
       return res;
     }
     
    -Bool FAT32MkDir(CDrv *dv,U8 *cur_dir,U8 *name)
    +Bool FAT32MkDir(CDrv *dv,U8 *cur_dir,U8 *name,I64 entry_cnt)
     {
    -  I64 size=dv->spc<spc<bd;
    -  I64 spc=bd->blk_size>>BLK_SIZE_BITS,i=blk/spc;
    -  CISO1PriDesc *iso=MAlloc(bd->blk_size);
    -  CISO1DirEntry *de;
    -  Bool unlock,res=FALSE;
    -  U8 buf[8];
    -
    -  try {
    -    unlock=DrvLock(dv);
    -    dv->fs_type=FSt_ISO9660; //default
    -    dv->spc=spc;
    -    dv->base_offset=dv->data_area=dv->root_cluster=dv->size=0;
    -    while (TRUE) {
    -      dv->size=MaxI64(dv->size,(i+1)*spc);
    -      RBlks(dv,iso,i*spc,spc);
    -      buf[0](U32)=iso->id[0](U32);
    -      buf[4](U16)=iso->id[4](U8);
    -      switch (LstMatch(buf,"CD001\0CDW02\0BEA01\0BOOT2\0NSR02\0NSR03\0TEA01\0",
    -	    LMF_EXACT)) {
    -	case 0:
    -	  dv->fs_type=FSt_ISO9660;
    -	  switch (iso->type) {
    -	    case ISO1T_SUPPLEMENTARY_DESC:
    -	      dv->data_area=0;
    -	      de=&iso->root_dir_record;
    -	      dv->root_cluster=de->loc.little;
    -	      dv->size=iso->vol_space_size.little*bd->blk_size>>BLK_SIZE_BITS;
    -	      res=TRUE;
    -	      goto ipi_done;
    -	    case ISO1T_TERMINATOR:
    -	      throw('Drv');
    -	  }
    -	  break;
    -	default: //Its normal for ISO13346 to read NULL blk as terminator
    -	  PrintErr("File System Not Supported\n");
    -	  throw('Drv');
    -      }
    -      i++;
    -    }
    -ipi_done:
    -    Free(iso);
    -    if (unlock)
    -      DrvUnlock(dv);
    -  } catch {
    -    dv->fs_type=FSt_ISO9660;
    -    dv->spc=spc;
    -    dv->base_offset=dv->data_area=dv->root_cluster=0;
    -    Free(iso);
    -    if (unlock)
    -      DrvUnlock(dv);
    -  }
    -  return res;
    -}
    -
     U0 Date2ISO1(CISO1Date *dst,CDate cdt)
     {
       CDateStruct ds;
    diff --git a/Kernel/BlkDev/FileSysRedSea.CPP b/Kernel/BlkDev/FileSysRedSea.CPP
    index a044029..1bfa47f 100644
    --- a/Kernel/BlkDev/FileSysRedSea.CPP
    +++ b/Kernel/BlkDev/FileSysRedSea.CPP
    @@ -25,7 +25,7 @@ U0 RedSeaFreeLstBuild(CDrv *dv)
     {
       Bool unlock;
       CFreeLst *tempf;
    -  I64 i,first=dv->data_area,max_blk=dv->size+dv->base_offset;
    +  I64 i,first=dv->data_area,max_blk=dv->size+dv->drv_offset;
       try {
         unlock=DrvLock(dv);
         if (dv->next_free)
    @@ -61,16 +61,16 @@ U0 RedSeaDrvInit(CDrv *dv)
       Bool unlock;
       try {
         unlock=DrvLock(dv);
    -    RBlks(dv,&br,dv->base_offset,1);
    +    RBlks(dv,&br,dv->drv_offset,1);
         if (br.signature!=MBR_PT_REDSEA || br.signature2!=0xAA55)
           throw('Drv');
         dv->fs_type=FSt_REDSEA;
         RedSeaFreeFreeLst(dv);
         dv->spc=1;
         dv->size=br.sects;
    -    dv->data_area=dv->base_offset+br.bitmap_sects;
    +    dv->data_area=dv->drv_offset+br.bitmap_sects;
         dv->root_cluster=br.root_cluster;
    -    dv->fat1=dv->fat2=dv->base_offset+1;
    +    dv->fat1=dv->fat2=dv->drv_offset+1;
         DrvFATBlkAlloc(dv);
         if (unlock)
           DrvUnlock(dv);
    @@ -84,7 +84,7 @@ Bool RedSeaDrvValidate(U8 drv_let)
       CDrv *dv;
       CRedSeaBoot br;
       if ((dv=Let2Drv(drv_let,FALSE)) && dv->fs_type==FSt_REDSEA &&
    -	RBlks(dv,&br,dv->base_offset,1) && br.signature==MBR_PT_REDSEA &&
    +	RBlks(dv,&br,dv->drv_offset,1) && br.signature==MBR_PT_REDSEA &&
     	br.signature2==0xAA55 && br.sects==dv->size)
         return TRUE;
       else
    @@ -97,7 +97,7 @@ U0 RedSeaFmt(U8 drv_let,Bool quick=TRUE)
       CDirEntry *d_native;
       CRedSeaBoot *br=CAlloc(BLK_SIZE);
       CDrv *dv=Let2Drv(drv_let);
    -  I64 i,n;
    +  I64 i,n,root_dir_blks;
       try {
         DrvLock(dv);
     //	DrvTypeSet(drv_let,FSt_REDSEA);
    @@ -105,7 +105,7 @@ U0 RedSeaFmt(U8 drv_let,Bool quick=TRUE)
         dv->fs_type=FSt_REDSEA;
         br->signature=MBR_PT_REDSEA;
         br->signature2=0xAA55;
    -    br->base_offset=dv->base_offset; //For CD/DVD image copy.
    +    br->drv_offset=dv->drv_offset; //For CD/DVD image copy.
         br->sects=dv->size;
         n=(br->sects+BLK_SIZE<<3-1)/BLK_SIZE<<3;
         br->bitmap_sects=n;
    @@ -116,21 +116,23 @@ U0 RedSeaFmt(U8 drv_let,Bool quick=TRUE)
           i=n+1;
         else
           i=dv->size;
    -    WZeroBlks(dv,dv->base_offset,i);
    +    WZeroBlks(dv,dv->drv_offset,i);
     
    -    WBlks(dv,br,dv->base_offset,1);
    +    WBlks(dv,br,dv->drv_offset,1);
         RedSeaDrvInit(dv);
         ClustersAlloc(dv,0,1,FALSE);	//Alloc #1
    -    br->root_cluster=ClustersAlloc(dv,0,1,FALSE);
    -    WBlks(dv,br,dv->base_offset,1);
    -    root_dir=CAlloc(BLK_SIZE);
    +
    +    root_dir_blks=MaxI64(1,dv->bd->init_root_dir_blks);
    +    br->root_cluster=ClustersAlloc(dv,0,root_dir_blks,FALSE);
    +    WBlks(dv,br,dv->drv_offset,1);
    +    root_dir=CAlloc(BLK_SIZE*root_dir_blks);
     
         d_native=root_dir-offset(CDirEntry.start);
     
         d_native->attr=RS_ATTR_DIR|RS_ATTR_CONTIGUOUS;
         *d_native->name='.';
         d_native->cluster=br->root_cluster;
    -    d_native->size=BLK_SIZE;
    +    d_native->size=BLK_SIZE*root_dir_blks;
         d_native->datetime=Now;
     
         d_native(U8 *)+=CDIR_SIZE;
    @@ -141,7 +143,7 @@ U0 RedSeaFmt(U8 drv_let,Bool quick=TRUE)
         d_native->cluster=br->root_cluster;
         d_native->datetime=Now;
     
    -    WBlks(dv,root_dir,br->root_cluster,1);
    +    WBlks(dv,root_dir,br->root_cluster,root_dir_blks);
         RedSeaDrvInit(dv);
         DrvUnlock(dv);
       } catch
    @@ -389,9 +391,9 @@ Bool RedSeaDirNew(CDrv *dv,U8 *cur_dir,CDirEntry *de,Bool free_old_chain)
     	  WBlks(dv,buf,c,dir_size>>BLK_SIZE_BITS);
     	  if (cur_dir_cluster==dv->root_cluster) {
     	    br=CAlloc(BLK_SIZE);
    -	    RBlks(dv,br,dv->base_offset,1);
    +	    RBlks(dv,br,dv->drv_offset,1);
     	    br->root_cluster=c;
    -	    WBlks(dv,br,dv->base_offset,1);
    +	    WBlks(dv,br,dv->drv_offset,1);
     	    Free(br);
     	    dv->root_cluster=c;
     	  } else {
    @@ -599,13 +601,14 @@ CDirEntry *RedSeaFilesFind(U8 *files_find_mask,I64 fuf_flags,
       return res;
     }
     
    -Bool RedSeaMkDir(CDrv *dv,U8 *cur_dir,U8 *name)
    -{
    -  I64 size=BLK_SIZE,c,cur_dir_cluster=Name2DirCluster(dv,cur_dir);
    +Bool RedSeaMkDir(CDrv *dv,U8 *cur_dir,U8 *name,I64 entry_cnt)
    +{//entry_cnt is for preallocating dir blks.
    +  I64	c,cur_dir_cluster=Name2DirCluster(dv,cur_dir),
    +	size=CeilU64((entry_cnt+3)<<6,BLK_SIZE);
    +#assert CDIR_SIZE==64
       U8 *buf=CAlloc(size);
       CDirEntry *d_native=buf-offset(CDirEntry.start);
       Bool unlock_break;
    -
       try {
         unlock_break=BreakLock;
         c=FileWrite(name,buf,size,0,RS_ATTR_DIR);
    diff --git a/Kernel/Display.CPP b/Kernel/Display.CPP
    index a0d0aa5..0f5cbc3 100644
    --- a/Kernel/Display.CPP
    +++ b/Kernel/Display.CPP
    @@ -44,13 +44,13 @@ See also $LK,"GrUpdateScreen",A="MN:GrUpdateScreen"$().
         col=text.raw_col%text.cols;
         if (!Bt(&sys_run_level,RLf_VGA)) { //if text mode
           if (text.raw_flags&RWF_SCROLL && text.raw_col && !row && !col) {
    -	MemCpy(VGAM_TEXT,VGAM_TEXT+text.cols,
    +	MemCpy(text.vga_text_alias,text.vga_text_alias+text.cols*2,
     	      text.cols*(text.rows-1)*2);
    -	MemSet(VGAM_TEXT+text.cols*(text.rows-1)*2,0,text.cols*2);
    +	MemSet(text.vga_text_alias+text.cols*(text.rows-1)*2,0,text.cols*2);
     	text.raw_col-=text.cols;
     	row=text.rows-1;
           }
    -      ptr=VGAM_TEXT+(row*text.cols+col)*2;
    +      ptr=text.vga_text_alias+(row*text.cols+col)*2;
           ptr[0]=ch;
           ptr[1]=BLACK<<4+WHITE;
         } else {
    @@ -75,7 +75,7 @@ See also $LK,"GrUpdateScreen",A="MN:GrUpdateScreen"$().
           ptr1+=text.raw_screen_image; //Write to cached image as well
           ptr2=&text.font[ch&255];
           for (i=0;i>3;
     	ptr1+=GR_WIDTH>>3;
           }
    diff --git a/Kernel/Font8x8.CPP b/Kernel/Font8x8.CPP
    deleted file mode 100644
    index 902d1da..0000000
    --- a/Kernel/Font8x8.CPP
    +++ /dev/null
    @@ -1,260 +0,0 @@
    -//See $LK,"::/Doc/Credits.TXT"$.
    -
    -U64 sys_font_8x8[256]= {
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0000000000000000,
    -0x0008000000000000,//
    -0x0000000000000000,//
    -0x00180018183C3C18,//!
    -0x0000000000363636,//"
    -0x006C6CFE6CFE6C6C,//#
    -0x00187ED07C16FC30,//$$
    -0x0060660C18306606,//%
    -0x00DC66B61C36361C,//&
    -0x0000000000181818,//'
    -0x0030180C0C0C1830,//(
    -0x000C18303030180C,//)
    -0x0000187E3C7E1800,//*
    -0x000018187E181800,//+
    -0x0C18180000000000,//,
    -0x000000007E000000,//-
    -0x0018180000000000,//.
    -0x0000060C18306000,///
    -0x003C666E7E76663C,//0
    -0x007E181818181C18,//1
    -0x007E0C183060663C,//2
    -0x003C66603860663C,//3
    -0x0030307E363C3830,//4
    -0x003C6660603E067E,//5
    -0x003C66663E060C38,//6
    -0x000C0C0C1830607E,//7
    -0x003C66663C66663C,//8
    -0x001C30607C66663C,//9
    -0x0018180018180000,//:
    -0x0C18180018180000,//;
    -0x0030180C060C1830,//<
    -0x0000007E007E0000,//=
    -0x000C18306030180C,//>
    -0x001800181830663C,//?
    -0x003C06765676663C,//@
    -0x006666667E66663C,//A
    -0x003E66663E66663E,//B
    -0x003C66060606663C,//C
    -0x001E36666666361E,//D
    -0x007E06063E06067E,//E
    -0x000606063E06067E,//F
    -0x003C66667606663C,//G
    -0x006666667E666666,//H
    -0x007E18181818187E,//I
    -0x001C36303030307C,//J
    -0x0066361E0E1E3666,//K
    -0x007E060606060606,//L
    -0x00C6C6D6D6FEEEC6,//M
    -0x006666767E6E6666,//N
    -0x003C66666666663C,//O
    -0x000606063E66663E,//P
    -0x006C36566666663C,//Q
    -0x006666363E66663E,//R
    -0x003C66603C06663C,//S
    -0x001818181818187E,//T
    -0x003C666666666666,//U
    -0x00183C6666666666,//V
    -0x00C6EEFED6D6C6C6,//W
    -0x0066663C183C6666,//X
    -0x001818183C666666,//Y
    -0x007E060C1830607E,//Z
    -0x003E06060606063E,//[
    -0x00006030180C0600,//\
    -0x007C60606060607C,//]
    -0x000000000000663C,//^
    -0xFFFF000000000000,//_
    -0x000000000030180C,//`
    -0x007C667C603C0000,//a
    -0x003E6666663E0606,//b
    -0x003C6606663C0000,//c
    -0x007C6666667C6060,//d
    -0x003C067E663C0000,//e
    -0x000C0C0C3E0C0C38,//f
    -0x3C607C66667C0000,//g
    -0x00666666663E0606,//h
    -0x003C1818181C0018,//i
    -0x0E181818181C0018,//j
    -0x0066361E36660606,//k
    -0x003C18181818181C,//l
    -0x00C6D6D6FE6C0000,//m
    -0x00666666663E0000,//n
    -0x003C6666663C0000,//o
    -0x06063E66663E0000,//p
    -0xE0607C66667C0000,//q
    -0x000606066E360000,//r
    -0x003E603C067C0000,//s
    -0x00380C0C0C3E0C0C,//t
    -0x007C666666660000,//u
    -0x00183C6666660000,//v
    -0x006CFED6D6C60000,//w
    -0x00663C183C660000,//x
    -0x3C607C6666660000,//y
    -0x007E0C18307E0000,//z
    -0x003018180E181830,//{
    -0x0018181818181818,//|
    -0x000C18187018180C,//}
    -0x000000000062D68C,//~
    -0xFFFFFFFFFFFFFFFF,
    -0x1E30181E3303331E,//€
    -0x007E333333003300,//�
    -0x001E033F331E0038,//‚
    -0x00FC667C603CC37E,//ƒ
    -0x007E333E301E0033,//„
    -0x007E333E301E0007,//…
    -0x007E333E301E0C0C,//†
    -0x3C603E03033E0000,//‡
    -0x003C067E663CC37E,//ˆ
    -0x001E033F331E0033,//‰
    -0x001E033F331E0007,//Š
    -0x001E0C0C0C0E0033,//‹
    -0x003C1818181C633E,//Œ
    -0x001E0C0C0C0E0007,//�
    -0x00333F33331E0C33,//Ž
    -0x00333F331E000C0C,//�
    -0x003F061E063F0038,//�
    -0x00FE33FE30FE0000,//‘
    -0x007333337F33367C,//’
    -0x001E33331E00331E,//“
    -0x001E33331E003300,//”
    -0x001E33331E000700,//•
    -0x007E33333300331E,//–
    -0x007E333333000700,//—
    -0x1F303F3333003300,//˜
    -0x001C3E63633E1C63,//™
    -0x001E333333330033,//š
    -0x18187E03037E1818,//›
    -0x003F67060F26361C,//œ
    -0x000C3F0C3F1E3333,//�
    -0x70337B332F1B1B0F,//ž
    -0x0E1B18187E18D870,//Ÿ
    -0x007E333E301E0038,// 
    -0x001E0C0C0C0E001C,//¡
    -0x001E33331E003800,//¢
    -0x007E333333003800,//£
    -0x003333331F001F00,//¤
    -0x00333B3F3733003F,//¥
    -0x00007E007C36363C,//¦
    -0x00007E003C66663C,//§
    -0x001E3303060C000C,//¨
    -0x000003033F000000,//©
    -0x000030303F000000,//ª
    -0xF81973C67C1B3363,//«
    -0xC0F9F3E6CF1B3363,//¬
    -0x183C3C1818001800,//­
    -0x0000CC663366CC00,//®
    -0x00003366CC663300,//¯
    -0x1144114411441144,//°
    -0x55AA55AA55AA55AA,//±
    -0xEEBBEEBBEEBBEEBB,//²
    -0x1818181818181818,//³
    -0x1818181F18181818,//´
    -0x1818181F181F1818,//µ
    -0x6C6C6C6F6C6C6C6C,//¶
    -0x6C6C6C7F00000000,//·
    -0x1818181F181F0000,//¸
    -0x6C6C6C6F606F6C6C,//¹
    -0x6C6C6C6C6C6C6C6C,//º
    -0x6C6C6C6F607F0000,//»
    -0x0000007F606F6C6C,//¼
    -0x0000007F6C6C6C6C,//½
    -0x0000001F181F1818,//¾
    -0x1818181F00000000,//¿
    -0x000000F818181818,//À
    -0x000000FF18181818,//Á
    -0x181818FF00000000,//Â
    -0x181818F818181818,//Ã
    -0x000000FF00000000,//Ä
    -0x181818FF18181818,//Å
    -0x181818F818F81818,//Æ
    -0x6C6C6CEC6C6C6C6C,//Ç
    -0x000000FC0CEC6C6C,//È
    -0x6C6C6CEC0CFC0000,//É
    -0x000000FF00EF6C6C,//Ê
    -0x6C6C6CEF00FF0000,//Ë
    -0x6C6C6CEC0CEC6C6C,//Ì
    -0x000000FF00FF0000,//Í
    -0x6C6C6CEF00EF6C6C,//Î
    -0x000000FF00FF1818,//Ï
    -0x000000FF6C6C6C6C,//Ð
    -0x181818FF00FF0000,//Ñ
    -0x6C6C6CFF00000000,//Ò
    -0x000000FC6C6C6C6C,//Ó
    -0x000000F818F81818,//Ô
    -0x181818F818F80000,//Õ
    -0x6C6C6CFC00000000,//Ö
    -0x6C6C6CEF6C6C6C6C,//×
    -0x181818FF00FF1818,//Ø
    -0x0000001F18181818,//Ù
    -0x181818F800000000,//Ú
    -0xFFFFFFFFFFFFFFFF,//Û
    -0xFFFFFFFF00000000,//Ü
    -0x0F0F0F0F0F0F0F0F,//Ý
    -0xF0F0F0F0F0F0F0F0,//Þ
    -0x00000000FFFFFFFF,//ß
    -0x006E3B133B6E0000,//à
    -0x03031F331F331E00,//á
    -0x0003030303637F00,//â
    -0x0036363636367F00,//ã
    -0x007F660C180C667F,//ä
    -0x001E3333337E0000,//å
    -0x03063E6666666600,//æ
    -0x00181818183B6E00,//ç
    -0x3F0C1E33331E0C3F,//è
    -0x001C36637F63361C,//é
    -0x007736366363361C,//ê
    -0x001E33333E180C38,//ë
    -0x00007EDBDB7E0000,//ì
    -0x03067EDBDB7E3060,//í
    -0x003C06033F03063C,//î
    -0x003333333333331E,//ï
    -0x00003F003F003F00,//ð
    -0x003F000C0C3F0C0C,//ñ
    -0x003F00060C180C06,//ò
    -0x003F00180C060C18,//ó
    -0x1818181818D8D870,//ô
    -0x0E1B1B1818181818,//õ
    -0x000C0C003F000C0C,//ö
    -0x0000394E00394E00,//÷
    -0x000000001C36361C,//ø
    -0x0000001818000000,//ù
    -0x0000001800000000,//ú
    -0x383C3637303030F0,//û
    -0x000000363636361E,//ü
    -0x0000003E061C301E,//ý
    -0x00003C3C3C3C0000,//þ
    -0x0000000000000000,//ÿ
    -};
    diff --git a/Kernel/FontCyrillic.CPP b/Kernel/FontCyrillic.CPP
    new file mode 100644
    index 0000000..daad62d
    --- /dev/null
    +++ b/Kernel/FontCyrillic.CPP
    @@ -0,0 +1,132 @@
    +//See $LK,"::/Doc/Credits.TXT"$.
    +
    +U64 sys_font_cyrillic[256]= {
    +0x0000000000000000,0x0000000000000000,
    +0x000000FF00000000,0x000000FF00FF0000,//ÄÍ
    +0x1818181818181818,0x6C6C6C6C6C6C6C6C,//³º
    +0x181818F800000000,0x6C6C6CEC0CFC0000,//ÚÉ
    +0x1818181F00000000,0x6C6C6C6F607F0000,//¿»
    +0x000000F818181818,0x000000FC0CEC6C6C,//ÀÈ
    +0x0000001F18181818,0x0000007F606F6C6C,//Ù¼
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0008000000000000,//
    +0x0000000000000000,0x00180018183C3C18,// !
    +0x0000000000363636,0x006C6CFE6CFE6C6C,//"#
    +0x00187ED07C16FC30,0x0060660C18306606,//$$%
    +0x00DC66B61C36361C,0x0000000000181818,//&'
    +0x0030180C0C0C1830,0x000C18303030180C,//()
    +0x0000187E3C7E1800,0x000018187E181800,//*+
    +0x0C18180000000000,0x000000007E000000,//,-
    +0x0018180000000000,0x0000060C18306000,//./
    +0x003C666E7E76663C,0x007E181818181C18,//01
    +0x007E0C183060663C,0x003C66603860663C,//23
    +0x0030307E363C3830,0x003C6660603E067E,//45
    +0x003C66663E060C38,0x000C0C0C1830607E,//67
    +0x003C66663C66663C,0x001C30607C66663C,//89
    +0x0018180018180000,0x0C18180018180000,//:;
    +0x0030180C060C1830,0x0000007E007E0000,//<=
    +0x000C18306030180C,0x001800181830663C,//>?
    +0x003C06765676663C,0x006666667E66663C,//@A
    +0x003E66663E66663E,0x003C66060606663C,//BC
    +0x001E36666666361E,0x007E06063E06067E,//DE
    +0x000606063E06067E,0x003C66667606663C,//FG
    +0x006666667E666666,0x007E18181818187E,//HI
    +0x001C36303030307C,0x0066361E0E1E3666,//JK
    +0x007E060606060606,0x00C6C6D6D6FEEEC6,//LM
    +0x006666767E6E6666,0x003C66666666663C,//NO
    +0x000606063E66663E,0x006C36566666663C,//PQ
    +0x006666363E66663E,0x003C66603C06663C,//RS
    +0x001818181818187E,0x003C666666666666,//TU
    +0x00183C6666666666,0x00C6EEFED6D6C6C6,//VW
    +0x0066663C183C6666,0x001818183C666666,//XY
    +0x007E060C1830607E,0x003E06060606063E,//Z[
    +0x00006030180C0600,0x007C60606060607C,//\]
    +0x000000000000663C,0xFFFF000000000000,//^_
    +0x000000000030180C,0x007C667C603C0000,//`a
    +0x003E6666663E0606,0x003C6606663C0000,//bc
    +0x007C6666667C6060,0x003C067E663C0000,//de
    +0x000C0C0C3E0C0C38,0x3C607C66667C0000,//fg
    +0x00666666663E0606,0x003C1818181C0018,//hi
    +0x0E181818181C0018,0x0066361E36660606,//jk
    +0x003C18181818181C,0x00C6D6D6FE6C0000,//lm
    +0x00666666663E0000,0x003C6666663C0000,//no
    +0x06063E66663E0000,0xE0607C66667C0000,//pq
    +0x000606066E360000,0x003E603C067C0000,//rs
    +0x00380C0C0C3E0C0C,0x007C666666660000,//tu
    +0x00183C6666660000,0x006CFED6D6C60000,//vw
    +0x00663C183C660000,0x3C607C6666660000,//xy
    +0x007E0C18307E0000,0x003018180E181830,//z{
    +0x0018181818181818,0x000C18187018180C,//|}
    +0x000000000062D68C,0xFFFFFFFFFFFFFFFF,//~
    +0x1E30181E3303331E,0x007E333333003300,//€�
    +0x001E033F331E0038,0x00FC667C603CC37E,//‚ƒ
    +0x007E333E301E0033,0x007E333E301E0007,//„…
    +0x007E333E301E0C0C,0x3C603E03033E0000,//†‡
    +0x003C067E663CC37E,0x001E033F331E0033,//ˆ‰
    +0x001E033F331E0007,0x001E0C0C0C0E0033,//Š‹
    +0x003C1818181C633E,0x001E0C0C0C0E0007,//Œ�
    +0x00333F33331E0C33,0x00333F331E000C0C,//�
    +0x003F061E063F0038,0x00FE33FE30FE0000,//�‘
    +0x007333337F33367C,0x001E33331E00331E,//’“
    +0x001E33331E003300,0x001E33331E000700,//”•
    +0x007E33333300331E,0x007E333333000700,//–—
    +0x1F303F3333003300,0x001C3E63633E1C63,//˜™
    +0x001E333333330033,0x18187E03037E1818,//š›
    +0x003F67060F26361C,0x000C3F0C3F1E3333,//œ�
    +0x70337B332F1B1B0F,0x0E1B18187E18D870,//žŸ
    +0x000F11110F01111F,0x000101010101111F,// ¡
    +0x000F0107010F000A,0x001515150E151515,//¢£
    +0x000F10100E10100F,0x0011111315191111,//¤¥
    +0x001113151911040A,0x001215141414141E,//¦§
    +0x001111111111111F,0x000102040A111111,//¨©
    +0x00040E1515150E04,0x001010101E111111,//ª«
    +0x001F151515151515,0x000E12120E020203,//¬­
    +0x0013151513111111,0x000E11101C10110E,//®¯
    +0x0009151517151509,0x001112141E11111E,//°±
    +0x000E11110F010618,0x0007090709070000,//²³
    +0x00010101111F0000,0x000E011F110E000A,//´µ
    +0x0015150E15150000,0x000F100C100F0000,//¶·
    +0x0011131519110000,0x0013151911040A00,//¸¹
    +0x0009050305090000,0x00121514141E0000,//º»
    +0x001111151B110000,0x0011111F11110000,//¼½
    +0x00111111111F0000,0x00040404041F0000,//¾¿
    +0x0010101E11110000,0x001F151515150000,//ÀÁ
    +0x000E120E02030000,0x0013151311110000,//ÂÃ
    +0x0007090701010000,0x000E111C110E0000,//ÄÅ
    +0x0009151715090000,0x0012141E111E0000,//ÆÇ
    +0x0004120912040000,0x0004091209040000,//ÈÉ
    +0x001B091200000000,0x000000000009121B,//ÊË
    +0x001C141C090D0B09,0x000E110102040004,//ÌÍ
    +0x000304040E040418,0x001E02020F020A04,//ÎÏ
    +0x0004040000000000,0x0004040404000000,//ÐÑ
    +0x000E000A0A0A0000,0x000A000A0A0A0000,//ÒÓ
    +0x0001020408170005,0x00001B0E040E1B00,//ÔÕ
    +0x0001020408150205,0x00000E040404040E,//Ö×
    +0x00001F0A0A0A0A1F,0x0004040404150E04,//ØÙ
    +0x00040E1504040404,0x0001090D1F0D0901,//ÚÛ
    +0x001012161F161210,0x000111151F151101,//ÜÝ
    +0x0001020408110701,0x000000000C0C0000,//Þß
    +0x111F11121414141E,0x101F111111111111,//àá
    +0x101F151515151515,0x111F1112141E0000,//âã
    +0x040E15150E040400,0x101A111111110000,//äå
    +0x101F151515150000,0x0000000000000408,//æç
    +0x000000000000000A,0x0000000000000D12,//èé
    +0x000E011F110E0408,0x06040E11010E0000,//êë
    +0x0006080A0A0A000A,0x0000041F0E0E0E04,//ìí
    +0x00000A0011000A00,0x00000E1111110E00,//îï
    +0x0010101D1A150911,0x001C1019121D0911,//ðñ
    +0x001C0419121D0911,0x10101C1B12030203,//òó
    +0x00111F111F111F11,0x0000000600180003,//ôõ
    +0x041E141015070502,0x07020E021E020E02,//ö÷
    +0x0E040E041F040E04,0x1C08160017001600,//øù
    +0x1C080E080F080E08,0x00040E041F040E04,//úû
    +0x1C08090A0C0A0908,0x0609040A0A04120C,//üý
    +0x001414141E15151E,0xFFFFFFFFFFFFFFFF,//þÿ
    +};
    diff --git a/Kernel/FontStd.CPP b/Kernel/FontStd.CPP
    new file mode 100644
    index 0000000..2e8cafd
    --- /dev/null
    +++ b/Kernel/FontStd.CPP
    @@ -0,0 +1,132 @@
    +//See $LK,"::/Doc/Credits.TXT"$.
    +
    +U64 sys_font_std[256]= {
    +0x0000000000000000,0x0000000000000000,
    +0x000000FF00000000,0x000000FF00FF0000,//ÄÍ
    +0x1818181818181818,0x6C6C6C6C6C6C6C6C,//³º
    +0x181818F800000000,0x6C6C6CEC0CFC0000,//ÚÉ
    +0x1818181F00000000,0x6C6C6C6F607F0000,//¿»
    +0x000000F818181818,0x000000FC0CEC6C6C,//ÀÈ
    +0x0000001F18181818,0x0000007F606F6C6C,//Ù¼
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0000000000000000,
    +0x0000000000000000,0x0008000000000000,//
    +0x0000000000000000,0x00180018183C3C18,// !
    +0x0000000000363636,0x006C6CFE6CFE6C6C,//"#
    +0x00187ED07C16FC30,0x0060660C18306606,//$$%
    +0x00DC66B61C36361C,0x0000000000181818,//&'
    +0x0030180C0C0C1830,0x000C18303030180C,//()
    +0x0000187E3C7E1800,0x000018187E181800,//*+
    +0x0C18180000000000,0x000000007E000000,//,-
    +0x0018180000000000,0x0000060C18306000,//./
    +0x003C666E7E76663C,0x007E181818181C18,//01
    +0x007E0C183060663C,0x003C66603860663C,//23
    +0x0030307E363C3830,0x003C6660603E067E,//45
    +0x003C66663E060C38,0x000C0C0C1830607E,//67
    +0x003C66663C66663C,0x001C30607C66663C,//89
    +0x0018180018180000,0x0C18180018180000,//:;
    +0x0030180C060C1830,0x0000007E007E0000,//<=
    +0x000C18306030180C,0x001800181830663C,//>?
    +0x003C06765676663C,0x006666667E66663C,//@A
    +0x003E66663E66663E,0x003C66060606663C,//BC
    +0x001E36666666361E,0x007E06063E06067E,//DE
    +0x000606063E06067E,0x003C66667606663C,//FG
    +0x006666667E666666,0x007E18181818187E,//HI
    +0x001C36303030307C,0x0066361E0E1E3666,//JK
    +0x007E060606060606,0x00C6C6D6D6FEEEC6,//LM
    +0x006666767E6E6666,0x003C66666666663C,//NO
    +0x000606063E66663E,0x006C36566666663C,//PQ
    +0x006666363E66663E,0x003C66603C06663C,//RS
    +0x001818181818187E,0x003C666666666666,//TU
    +0x00183C6666666666,0x00C6EEFED6D6C6C6,//VW
    +0x0066663C183C6666,0x001818183C666666,//XY
    +0x007E060C1830607E,0x003E06060606063E,//Z[
    +0x00006030180C0600,0x007C60606060607C,//\]
    +0x000000000000663C,0xFFFF000000000000,//^_
    +0x000000000030180C,0x007C667C603C0000,//`a
    +0x003E6666663E0606,0x003C6606663C0000,//bc
    +0x007C6666667C6060,0x003C067E663C0000,//de
    +0x000C0C0C3E0C0C38,0x3C607C66667C0000,//fg
    +0x00666666663E0606,0x003C1818181C0018,//hi
    +0x0E181818181C0018,0x0066361E36660606,//jk
    +0x003C18181818181C,0x00C6D6D6FE6C0000,//lm
    +0x00666666663E0000,0x003C6666663C0000,//no
    +0x06063E66663E0000,0xE0607C66667C0000,//pq
    +0x000606066E360000,0x003E603C067C0000,//rs
    +0x00380C0C0C3E0C0C,0x007C666666660000,//tu
    +0x00183C6666660000,0x006CFED6D6C60000,//vw
    +0x00663C183C660000,0x3C607C6666660000,//xy
    +0x007E0C18307E0000,0x003018180E181830,//z{
    +0x0018181818181818,0x000C18187018180C,//|}
    +0x000000000062D68C,0xFFFFFFFFFFFFFFFF,//~
    +0x1E30181E3303331E,0x007E333333003300,//€�
    +0x001E033F331E0038,0x00FC667C603CC37E,//‚ƒ
    +0x007E333E301E0033,0x007E333E301E0007,//„…
    +0x007E333E301E0C0C,0x3C603E03033E0000,//†‡
    +0x003C067E663CC37E,0x001E033F331E0033,//ˆ‰
    +0x001E033F331E0007,0x001E0C0C0C0E0033,//Š‹
    +0x003C1818181C633E,0x001E0C0C0C0E0007,//Œ�
    +0x00333F33331E0C33,0x00333F331E000C0C,//�
    +0x003F061E063F0038,0x00FE33FE30FE0000,//�‘
    +0x007333337F33367C,0x001E33331E00331E,//’“
    +0x001E33331E003300,0x001E33331E000700,//”•
    +0x007E33333300331E,0x007E333333000700,//–—
    +0x1F303F3333003300,0x001C3E63633E1C63,//˜™
    +0x001E333333330033,0x18187E03037E1818,//š›
    +0x003F67060F26361C,0x000C3F0C3F1E3333,//œ�
    +0x70337B332F1B1B0F,0x0E1B18187E18D870,//žŸ
    +0x007E333E301E0038,0x001E0C0C0C0E001C,// ¡
    +0x001E33331E003800,0x007E333333003800,//¢£
    +0x003333331F001F00,0x00333B3F3733003F,//¤¥
    +0x00007E007C36363C,0x00007E003C66663C,//¦§
    +0x001E3303060C000C,0x000003033F000000,//¨©
    +0x000030303F000000,0xF81973C67C1B3363,//ª«
    +0xC0F9F3E6CF1B3363,0x183C3C1818001800,//¬­
    +0x0000CC663366CC00,0x00003366CC663300,//®¯
    +0x1144114411441144,0x55AA55AA55AA55AA,//°±
    +0xEEBBEEBBEEBBEEBB,0x1818181818181818,//²³
    +0x1818181F18181818,0x1818181F181F1818,//´µ
    +0x6C6C6C6F6C6C6C6C,0x6C6C6C7F00000000,//¶·
    +0x1818181F181F0000,0x6C6C6C6F606F6C6C,//¸¹
    +0x6C6C6C6C6C6C6C6C,0x6C6C6C6F607F0000,//º»
    +0x0000007F606F6C6C,0x0000007F6C6C6C6C,//¼½
    +0x0000001F181F1818,0x1818181F00000000,//¾¿
    +0x000000F818181818,0x000000FF18181818,//ÀÁ
    +0x181818FF00000000,0x181818F818181818,//ÂÃ
    +0x000000FF00000000,0x181818FF18181818,//ÄÅ
    +0x181818F818F81818,0x6C6C6CEC6C6C6C6C,//ÆÇ
    +0x000000FC0CEC6C6C,0x6C6C6CEC0CFC0000,//ÈÉ
    +0x000000FF00EF6C6C,0x6C6C6CEF00FF0000,//ÊË
    +0x6C6C6CEC0CEC6C6C,0x000000FF00FF0000,//ÌÍ
    +0x6C6C6CEF00EF6C6C,0x000000FF00FF1818,//ÎÏ
    +0x000000FF6C6C6C6C,0x181818FF00FF0000,//ÐÑ
    +0x6C6C6CFF00000000,0x000000FC6C6C6C6C,//ÒÓ
    +0x000000F818F81818,0x181818F818F80000,//ÔÕ
    +0x6C6C6CFC00000000,0x6C6C6CEF6C6C6C6C,//Ö×
    +0x181818FF00FF1818,0x0000001F18181818,//ØÙ
    +0x181818F800000000,0xFFFFFFFFFFFFFFFF,//ÚÛ
    +0xFFFFFFFF00000000,0x0F0F0F0F0F0F0F0F,//ÜÝ
    +0xF0F0F0F0F0F0F0F0,0x00000000FFFFFFFF,//Þß
    +0x006E3B133B6E0000,0x03031F331F331E00,//àá
    +0x0003030303637F00,0x0036363636367F00,//âã
    +0x007F660C180C667F,0x001E3333337E0000,//äå
    +0x03063E6666666600,0x00181818183B6E00,//æç
    +0x3F0C1E33331E0C3F,0x001C36637F63361C,//èé
    +0x007736366363361C,0x001E33333E180C38,//êë
    +0x00007EDBDB7E0000,0x03067EDBDB7E3060,//ìí
    +0x003C06033F03063C,0x003333333333331E,//îï
    +0x00003F003F003F00,0x003F000C0C3F0C0C,//ðñ
    +0x003F00060C180C06,0x003F00180C060C18,//òó
    +0x1818181818D8D870,0x0E1B1B1818181818,//ôõ
    +0x000C0C003F000C0C,0x0000394E00394E00,//ö÷
    +0x000000001C36361C,0x0000001818000000,//øù
    +0x0000001800000000,0x383C3637303030F0,//úû
    +0x000000363636361E,0x0000003E061C301E,//üý
    +0x00003C3C3C3C0000,0xFFFFFFFFFFFFFFFF,//þÿ
    +};
    diff --git a/Kernel/KCfg.CPP b/Kernel/KCfg.CPP
    index 3a78417..02f2be9 100644
    --- a/Kernel/KCfg.CPP
    +++ b/Kernel/KCfg.CPP
    @@ -1,25 +1,27 @@
     //This is run in a $LK,"#exe",A="FF:::/Kernel/Kernel.PRJ,KCfg"${}.
     
     U8 *kernel_cfg_options="MemInit\0HeapInit\0VarInit\0"
    -"NoMP\0TextMode\0DontProbe\0AutoMountIDE\0BootRescueDrv\0Help\0";
    +"HomeDir\0NoMP\0TextMode\0DontProbe\0AutoMountIDE\0BootRescueDrv\0Help\0";
     
     #define CFG_MEM_INIT		0
     #define CFG_HEAP_INIT		1
     #define CFG_VAR_INIT		2
    -#define CFG_NO_MP		3
    -#define CFG_TEXT_MODE		4
    -#define CFG_DONT_PROBE		5
    -#define CFG_AUTO_MOUNT_IDE	6
    -#define CFG_BOOT_RESCUE_DRV	7
    -#define CFG_NUM_OPTIONS		8
    +#define CFG_HOME_DIR		3
    +#define CFG_NO_MP		4
    +#define CFG_TEXT_MODE		5
    +#define CFG_DONT_PROBE		6
    +#define CFG_AUTO_MOUNT_IDE	7
    +#define CFG_BOOT_RESCUE_DRV	8
    +#define CFG_NUM_OPTIONS		9
     
    -#define CFG_HELP		8
    +#define CFG_HELP		9
     
     class CKernelCfg
     {
       U8 *dsk_cache_size_exp;
       CDoc *add_dev;
       U8 *boot_rescue_drv_file,*boot_rescue_drv_start;
    +  U8 *home_dir;
       Bool opts[CFG_NUM_OPTIONS];
       U8 mem_init_val,heap_init_val,var_init_val,
     	boot_drv_let,auto_mount_ide_hd_let,auto_mount_ide_cd_let;
    @@ -32,7 +34,7 @@ CDoc *KernelCfgAddDev(CKernelCfg *c)
       "\n\nIn anticipation of the drives you will\n"
     	"define shortly, enter the drive letter\n"
     	"of the drive with the account directory.\n"
    -	"\n($$PURPLE$$$$FG$$ for cur drv) Home Drv:";
    +	"\n($$PURPLE$$$$FG$$ for cur drv) Boot Drv:";
       ch=ToUpper(GetChar);
       if ('A'<=ch<='Z')
         c->boot_drv_let=ch;
    @@ -47,12 +49,15 @@ CDoc *KernelCfgAddDev(CKernelCfg *c)
     U0 KernelCfgOptions(CKernelCfg *c)
     {
       I64 i;
    -  U8 *st=NULL;
    +  U8 *st=NULL,*st2,*st3;
       Bool state;
       do {
         Free(st);
         for (i=0;iopts[i],"ST_OFF_ON";
    +      if (i==CFG_HOME_DIR)
    +	"$$PURPLE$$%13tz$$FG$$:\"%s\"\n",i,kernel_cfg_options,c->home_dir;
    +      else
    +	"$$PURPLE$$%13tz$$FG$$:%Z\n",i,kernel_cfg_options,c->opts[i],"ST_OFF_ON";
         "\nType '$$PURPLE$$Help$$FG$$' for help.\n";
         st=GetStr("Option ($$PURPLE$$$$FG$$ when done):","");
         i=LstMatch(st,kernel_cfg_options,LMF_IGNORE_CASE);
    @@ -62,6 +67,7 @@ U0 KernelCfgOptions(CKernelCfg *c)
     	    "to a val at boot.\n"
     	    "$$PURPLE$$HeapInit$$FG$$ Initializes MAlloc() memory to a val.\n"
     	    "$$PURPLE$$VarInit$$FG$$ Initializes glbl var memory to a val.\n"
    +	    "$$PURPLE$$HomeDir$$FG$$ Set home dir.\n"
     	    "$$PURPLE$$NoMP$$FG$$ No multicore.\n"
     	    "$$PURPLE$$TextMode$$FG$$ Text Mode (requires hard reboot).\n"
     	    "$$PURPLE$$DontProbe$$FG$$ Just prompt CD/DVD ports, don't probe.\n"
    @@ -84,6 +90,22 @@ U0 KernelCfgOptions(CKernelCfg *c)
     	    if (state)
     	      c->var_init_val=GetI64("Val (0-255):",255,0,255);
     	    break;
    +	  case CFG_HOME_DIR:
    +	    st2=GetStr("Home Dir(\"%s\"):",c->home_dir);
    +	    if (!*st2)
    +	      st2=StrNew("::/Home");
    +	    else if (st2[1]!=':') {
    +	      st3=MStrPrint("::%s",st2);
    +	      Free(st2);
    +	      st2=st3;
    +	    }
    +	    Free(c->home_dir);
    +	    c->home_dir=st2;
    +	    if (StrCmp(c->home_dir,"::/Home"))
    +	      c->opts[i]=TRUE;
    +	    else
    +	      c->opts[i]=FALSE;
    +	    break;
     	  case CFG_AUTO_MOUNT_IDE:
     	    if (state) {
     	      "First HD Drive Let:";
    @@ -130,6 +152,7 @@ CKernelCfg *KernelCfgNew()
       CKernelCfg *c=CAlloc(sizeof(CKernelCfg));
     
       c->add_dev=KernelCfgAddDev(c);
    +  c->home_dir=StrNew("::/Home");
       c->dsk_cache_size_exp=GetStr(
     	"Disk Cache Size in Bytes,\n"
     	"gets rounded-up funny,\n"
    @@ -143,6 +166,7 @@ U0 KernelCfgDel(CKernelCfg *c)
     {
       DocDel(c->add_dev);
       Free(c->boot_rescue_drv_file);
    +  Free(c->home_dir);
       Free(c->dsk_cache_size_exp);
       Free(c);
     }
    diff --git a/Kernel/KDbg.CPP b/Kernel/KDbg.CPP
    index 6b1e433..5efdaa2 100644
    --- a/Kernel/KDbg.CPP
    +++ b/Kernel/KDbg.CPP
    @@ -450,7 +450,7 @@ U0 G(U8 *ip=INVALID_PTR,CTask *task=NULL)
     	  ">S;\t\t\t//Single step\n"
     	  ">B2;\t\t\t//Clear all break points\n"
     	  ">G2;\t\t\t//Clear all break points and Go\n\n"
    -	  "After resuming,  changes focus task\n"
    +	  "After resuming,  next focus task\n"
     	  "After resuming,  flushes screen VGA cache\n";
       else {
         LBtr(&task->task_flags,TASKf_DISABLE_BPTS);
    @@ -526,7 +526,7 @@ U0 DbgHelp()
     	">G;\t\t\t\t//Resume execution.\n"
     	">G2;\t\t\t\t//B2;VGAFlush;WinFocus;G;\n"
     	">Exit;\t\t\t\t//Exit (kill) task.\n\n"
    -	"After resuming,  changes focus task.\n"
    +	"After resuming,  next focus task.\n"
     	"After resuming,  flushes screen VGA cache.\n\n";
     }
     
    @@ -560,7 +560,7 @@ U0 Dbg2()
     
     U0 Fault3(I64 fault_num,I64 fault_err_code)
     {
    -  nounusedwarn fault_err_code;
    +  no_warn fault_err_code;
       PUSHFD
       CLI
       if (Gs->num && dbg.mp_crash) {
    diff --git a/Kernel/KDefine.CPP b/Kernel/KDefine.CPP
    index dc54081..f7ec16e 100644
    --- a/Kernel/KDefine.CPP
    +++ b/Kernel/KDefine.CPP
    @@ -108,7 +108,7 @@ U0 SysDefinesLoad()
       DefineLstLoad("ST_FILE_ATTRS","R\0H\0S\0V\0D\0A\0 \0 \0X\0T\0Z\0C\0F\0");
       DefineLstLoad("ST_FILE_UTIL_FLAGS","r\0d\0i\0a\0c\0R\0p\0m\0x\0s\0"
     	"D\0F\0T\0S\0A\0J\0G\0Z\0O\0P\0f\0l\0lb\0la\0");
    -  DefineLstLoad("ST_BLKDEV_TYPES","NULL\0RAM\0ATA\0ATAPI\0");
    +  DefineLstLoad("ST_BLKDEV_TYPES","NULL\0RAM\0ATA\0FILE\0ATAPI\0");
       DefineLstLoad("ST_DRV_TYPES",
     	"NULL\0REDSEA\0FAT32\0ISO9660\0ISO13490\0ISO13346\0NTFS\0UNKNOWN\0");
       DefineLstLoad("ST_COLORS","BLACK\0BLUE\0GREEN\0CYAN\0"
    diff --git a/Kernel/KEnd.CPP b/Kernel/KEnd.CPP
    index ba4eb57..08cf543 100644
    --- a/Kernel/KEnd.CPP
    +++ b/Kernel/KEnd.CPP
    @@ -9,8 +9,8 @@ U0 SysGlblsInit()
       sys_focus_task=Fs;
       QueInit(&sys_macro_root);
     
    -  blkdev.dft_iso_filename="::/Temp/CDDVD.ISO";
    -  blkdev.temp_filename="::/Home/Temp.TXT.Z";
    +  blkdev.dft_iso_filename=AStrNew("::/Temp/CDDVD.ISO");
    +  blkdev.temp_filename=AStrNew("~/Temp.TXT.Z");
       blkdev.dvd_boot_is_good=TRUE;
       #exe {
         if (!kernel_cfg->auto_mount_ide_hd_let)
    @@ -24,11 +24,11 @@ U0 SysGlblsInit()
       }
     
       InDbg(ON);
    -  reverse_bits_table	=CAlloc(256);
    +  rev_bits_table	=CAlloc(256);
       set_bits_table	=CAlloc(256);
       for (i=0;i<256;i++)
         for (j=0;j<8;j++) {
    -      if (Bt(&i,7-j))	LBts(reverse_bits_table+i,j);
    +      if (Bt(&i,7-j))	LBts(rev_bits_table+i,j);
           if (Bt(&i,j))	set_bits_table[i]++;
         }
     
    @@ -63,14 +63,17 @@ U0 SysGlblsInit()
     
     U0 SysGrInit()
     {
    -  text.font=sys_font_8x8;
    -  text.aux_font=MAlloc(256*FONT_HEIGHT);
    -  MemCpy(text.aux_font,text.font,256*FONT_HEIGHT);
    -  text.vga_alias=MemVGAAlloc+VGAM_GRAPHICS;
    +  U8 *vga_page=MemVGAAlloc;
    +  text.font=sys_font_std;
    +  text.aux_font=sys_font_cyrillic;
    +  text.vga_alias	=vga_page+VGAM_GRAPHICS;
    +  text.vga_text_alias	=vga_page+VGAM_TEXT;
       if (!Bt(&sys_run_level,RLf_VGA)) { //if text mode
         text.cols=80;
         text.rows=25;
    -    MemSet(VGAM_TEXT,0,text.rows*text.cols<<1);
    +    MemSet(text.vga_text_alias,0,text.rows*text.cols<<1);
    +    text.border_chars[2] (I64)='ÄͳºÚÉ¿»';
    +    text.border_chars[10](U32)='ÀÈÙ¼';
       } else { //if 640x480 16 color
         text.cols=GR_WIDTH/FONT_WIDTH;
         text.rows=GR_HEIGHT/FONT_HEIGHT;
    @@ -78,6 +81,8 @@ U0 SysGrInit()
         OutU8(VGAP_DATA,0x0F);
         MemSet(text.vga_alias,0,GR_WIDTH*GR_HEIGHT>>3);
         text.raw_screen_image=CAlloc(GR_WIDTH*GR_HEIGHT/8);
    +    text.border_chars[2] (I64)=0x0908070605040302;
    +    text.border_chars[10](U32)=0x0D0C0B0A;
       }
     }
     
    @@ -170,7 +175,9 @@ U0 KernelMain()
       "After  BlkDevsInitAll\n";
     
       ChgDsk(':');
    -  Gs->idle_task->cur_dv=blkdev.let_to_drv[ToUpper(blkdev.boot_drv_let)-'A'];
    +  #exe {StreamPrint("HomeSet(\"%s\");",kernel_cfg->home_dir);}
    +  Gs->idle_task->cur_dv=blkdev.let_to_drv[*blkdev.home_dir-'A'];
    +  DrvRep;
       LBts(&sys_run_level,RLf_BLKDEV);
     
       #exe {
    diff --git a/Kernel/KExcept.CPP b/Kernel/KExcept.CPP
    index 0818fba..51d9d58 100644
    --- a/Kernel/KExcept.CPP
    +++ b/Kernel/KExcept.CPP
    @@ -45,7 +45,8 @@ _extern _SAVE_EXCEPT_REGS U0 SaveExceptRegs(CExcept *t);
     U0 PutExcept(Bool catch_it=TRUE)
     {//Print exception msg and catch exception.
       "Except:%c:",Fs->except_ch;
    -  "%P:%P\n",Fs->except_caller1,Fs->except_caller2;
    +  "%P:%P:%P:%P\n",Fs->except_caller1,Fs->except_caller2,
    +	Fs->except_caller3,Fs->except_caller4;
       Fs->catch_except=catch_it;
     }
     
    @@ -87,10 +88,13 @@ U0 throw(I64 ch=0,Bool no_log=FALSE)
       Fs->except_ch=ch;
       Fs->except_caller1=Caller(1);
       Fs->except_caller2=Caller(2);
    +  Fs->except_caller3=Caller(3);
    +  Fs->except_caller4=Caller(4);
       Fs->except_rbp=GetRBP;
       Fs->catch_except=FALSE;
       if (!no_log)
    -    AdamLog("Except:%c:%p:%p\n",ch,Fs->except_caller1,Fs->except_caller2);
    +    AdamLog("Except:%c:%p:%p:%p:%p\n",ch,Fs->except_caller1,Fs->except_caller2,
    +	  Fs->except_caller3,Fs->except_caller4);
       while (Fs->next_except!=&Fs->next_except) {
         TestExcept;
         if (Fs->catch_except)
    diff --git a/Kernel/KExts.CPP b/Kernel/KExts.CPP
    index 41004a6..f4498fd 100644
    --- a/Kernel/KExts.CPP
    +++ b/Kernel/KExts.CPP
    @@ -42,6 +42,10 @@ extern Bool FAT32DirNew(CDrv *dv,U8 *cur_dir,CDirEntry *tempdee,
     extern U0 FAT32DrvInit(CDrv *dv);
     extern Bool FAT32FileFind(CDrv *dv,I64 cur_dir_cluster,U8 *name,
     	CDirEntry *_res,I64 fuf_flags=0);
    +extern U0 FClose(CFile *f);
    +extern CFile *FOpen(U8 *filename,U8 *flags,I64 cnt=0);
    +extern Bool FRBlks(CFile *f,U8 *buf,I64 blk=FFB_NEXT_BLK,I64 cnt=1);
    +extern Bool FWBlks(CFile *f,U8 *buf,I64 blk=FFB_NEXT_BLK,I64 cnt=1);
     extern U8 *FileExtRem(U8 *src,U8 *dst=NULL);
     extern Bool FileFind(U8 *filename,CDirEntry *_de=NULL,I64 fuf_flags=0);
     extern U8 *FileNameAbs(U8 *name,I64 fuf_flags=0);
    @@ -59,10 +63,11 @@ extern Bool IsDbg();
     extern Bool IsDir(U8 *dir_name);
     extern Bool IsRaw();
     extern CBlkDev *Let2BlkDev(U8 drv_let=0,Bool except=TRUE);
    +extern I64 Let2BlkDevType(U8 drv_let=0);
     extern CDrv *Let2Drv(U8 drv_let=0,Bool except=TRUE);
     extern U0 MPInt(I64 num,I64 cpu_num=1);
     extern U8 *MStrPrint(U8 *fmt,...);
    -extern Bool MkDir(U8 *filename);
    +extern Bool MkDir(U8 *filename,I64 entry_cnt=0);
     extern U0 MouseIPSet(I64 x,I64 y,I64 z,I64 l,I64 r);
     extern U0 Msg(I64 code,I64 a1,I64 a2,I64 flags=0);
     extern I64 PopUp(U8 *buf,CTask *parent=NULL,CTask **_pu_task=NULL);
    diff --git a/Kernel/KGlbls.CPP b/Kernel/KGlbls.CPP
    index 5027dc6..ae19fc1 100644
    --- a/Kernel/KGlbls.CPP
    +++ b/Kernel/KGlbls.CPP
    @@ -9,7 +9,7 @@ CTask *adam_task;
     I64 sys_num_spawned_tasks;
     
     CTask *sys_winmgr_task,*sys_task_being_screen_updated;
    -U8 *reverse_bits_table, //Table with U8 bits reversed
    +U8 *rev_bits_table, //Table with U8 bits revd
        *set_bits_table; //Table with count of set bits in a U8
     CDate local_time_offset;
     F64 *pow10_I64;
    diff --git a/Kernel/KLoad.CPP b/Kernel/KLoad.CPP
    index 4aac06f..da00cd2 100644
    --- a/Kernel/KLoad.CPP
    +++ b/Kernel/KLoad.CPP
    @@ -104,14 +104,14 @@ U0 LoadPass1(U8 *src,U8 *module_base,I64 ld_flags)
     	}
     	break;
     
    -      sub_switch_start:
    +      start:
     	case IET_CODE_HEAP:
     	  ptr3=MAlloc(*src(I32 *)++,Fs->code_heap);
     	  break;
     	case IET_ZEROED_CODE_HEAP:
     	  ptr3=CAlloc(*src(I32 *)++,Fs->code_heap);
     	  break;
    -      sub_switch_end:
    +      end:
     	if (*st_ptr) {
     	  tempex=CAlloc(sizeof(CHashExport));
     	  tempex->str=StrNew(st_ptr);
    @@ -126,14 +126,14 @@ U0 LoadPass1(U8 *src,U8 *module_base,I64 ld_flags)
     	}
     	break;
     
    -      sub_switch_start:
    +      start:
     	case IET_DATA_HEAP:
     	  ptr3=MAlloc(*src(I64 *)++);
     	  break;
     	case IET_ZEROED_DATA_HEAP:
     	  ptr3=CAlloc(*src(I64 *)++);
     	  break;
    -      sub_switch_end:
    +      end:
     	if (*st_ptr) {
     	  tempex=CAlloc(sizeof(CHashExport));
     	  tempex->str=StrNew(st_ptr);
    diff --git a/Kernel/KMathA.CPP b/Kernel/KMathA.CPP
    index c7c24ae..b5bd3ef 100644
    --- a/Kernel/KMathA.CPP
    +++ b/Kernel/KMathA.CPP
    @@ -645,20 +645,4 @@ _FSTSW::
     _FCLEX::
     	FCLEX
     	RET
    -//************************************
    -_FXSAVE::
    -	PUSH	RBP
    -	MOV	RBP,RSP
    -	MOV	RAX,U64 SF_ARG1[RBP]
    -	FXSAVE	U64 [RAX]
    -	POP	RBP
    -	RET1	8
    -//************************************
    -_FXRSTOR::
    -	PUSH	RBP
    -	MOV	RBP,RSP
    -	MOV	RAX,U64 SF_ARG1[RBP]
    -	FXRSTOR	U64 [RAX]
    -	POP	RBP
    -	RET1	8
     }
    diff --git a/Kernel/KStart.CPP b/Kernel/KStart.CPP
    index 78b4654..41f2a16 100644
    --- a/Kernel/KStart.CPP
    +++ b/Kernel/KStart.CPP
    @@ -22,6 +22,7 @@ SYS_KERNEL:: //This must match $LK,"CKernel",A="MN:CKernel"$.
     //  ASM Global vars required for 16-bit start-up
     	ALIGN	4,OC_NOP
     SYS_BOOT_SRC::			DU32	BOOT_SRC_NULL;
    +SYS_BOOT_BLK::			DU32	0;
     SYS_BOOT_PATCH_TABLE_BASE::	DU32	0;
     SYS_RUN_LEVEL::			DU32	0;
     #exe {StreamPrint("SYS_COMPILE_TIME:: DU64 0x%X;",Now);}
    @@ -32,6 +33,10 @@ SYS_BOOT_BASE::	DU32	0;	//Offset from start used by reboot
     SYS_MEM_E801::	DU16	0,0;
     SYS_MEM_E820::	DU8	MEM_NUM_E820_ENTRIES*MEM_E820_ENTRY_SIZE DUP (0);
     
    +SYS_GDT_PTR::	DU16	sizeof(CGDT)-1;
    +		DU64	0;
    +SYS_PCI_BUSES::	DU16	0;
    +
     	ALIGN	16,OC_NOP
     SYS_GDT:: //See $LK,"CGDT",A="MN:CGDT"$
     GDT_NULL:	DU64	0,0;
    @@ -46,18 +51,17 @@ GDT_TR:		DU8	MP_MAX_PROCESSORS*16 DUP(0);
     GDT_TR_RING3:	DU8	MP_MAX_PROCESSORS*16 DUP(0);
     #assert $$-SYS_GDT==sizeof(CGDT)
     
    -SYS_GDT_PTR::	DU16	sizeof(CGDT)-1;
    -		DU64	0;
    -SYS_PCI_BUSES::	DU16	0;
     #assert $$-SYS_KERNEL==sizeof(CKernel)-sizeof(CBinFile)
     
     //************************************
     CORE0_16BIT_INIT::
    -//EBX is $LK,"SYS_BOOT_SRC",A="FF:::/Kernel/KStart.CPP,[SYS_BOOT_SRC]"$. (Val passed from boot blk, $LK,"BootHD",A="FF:::/Adam/Opt/Boot/BootHD.CPP,BOOT_SRC_HARDDRV"$, $LK,"BootDVD",A="FF:::/Adam/Opt/Boot/BootDVD.CPP,BOOT_SRC_DVD"$, & $LK,"BootRAM",A="FF:::/Adam/Opt/Boot/Reboot.CPP,BOOT_SRC_RAM"$.)
    +//EAX is $LK,"SYS_BOOT_SRC",A="FF:::/Kernel/KStart.CPP,[SYS_BOOT_SRC]"$. (Val passed from boot blk, $LK,"BootHD",A="FF:::/Adam/Opt/Boot/BootHD.CPP,BOOT_SRC_HARDDRV"$, $LK,"BootDVD",A="FF:::/Adam/Opt/Boot/BootDVD.CPP,BOOT_SRC_DVD"$, & $LK,"BootRAM",A="FF:::/Adam/Opt/Boot/Reboot.CPP,BOOT_SRC_RAM"$.)
    +	MOV	ECX,EAX
     	MOV	AX,(BOOT_RAM_LIMIT-BOOT_STK_SIZE)/16
     	MOV	SS,AX
     	MOV	SP,BOOT_STK_SIZE
    -	PUSH	EBX	//Will be $LK,"SYS_BOOT_SRC",A="FF:::/Kernel/KStart.CPP,[SYS_BOOT_SRC]"$. See $LK,"BootHD",A="FF:::/Adam/Opt/Boot/BootHD.CPP,BOOT_SRC_HARDDRV"$, $LK,"BootDVD",A="FF:::/Adam/Opt/Boot/BootDVD.CPP,BOOT_SRC_DVD"$ & $LK,"BootRAM",A="FF:::/Adam/Opt/Boot/Reboot.CPP,BOOT_SRC_RAM"$.
    +	PUSH	ECX	//Will be $LK,"SYS_BOOT_SRC",A="FF:::/Kernel/KStart.CPP,[SYS_BOOT_SRC]"$. See $LK,"BootHD",A="FF:::/Adam/Opt/Boot/BootHD.CPP,BOOT_SRC_HARDDRV"$, $LK,"BootDVD",A="FF:::/Adam/Opt/Boot/BootDVD.CPP,BOOT_SRC_DVD"$ & $LK,"BootRAM",A="FF:::/Adam/Opt/Boot/Reboot.CPP,BOOT_SRC_RAM"$.
    +	PUSH	EBX
     	MOV	AX,VGAM_TEXT/16
     	MOV	ES,AX
     	MOV	U32 ES:[0],'O'+BLUE<<12+('S'+GREEN<<12)<<16
    @@ -134,6 +138,7 @@ GET_IP:	POP	BX
     	OR	AL,2
     	OUT	0x92,AL
     
    +	POP	U32 [SYS_BOOT_BLK]
     	POP	U32 [SYS_BOOT_SRC]	//See $LK,"BootHD",A="FF:::/Adam/Opt/Boot/BootHD.CPP,BOOT_SRC_HARDDRV"$, $LK,"BootDVD",A="FF:::/Adam/Opt/Boot/BootDVD.CPP,BOOT_SRC_DVD"$, & $LK,"BootRAM",A="FF:::/Adam/Opt/Boot/Reboot.CPP,BOOT_SRC_RAM"$.
     
     	CLD
    diff --git a/Kernel/KTask.CPP b/Kernel/KTask.CPP
    index b8145ee..2434af5 100644
    --- a/Kernel/KTask.CPP
    +++ b/Kernel/KTask.CPP
    @@ -196,9 +196,11 @@ I64 TaskInit(CTask *task,I64 stk_size)
       task->win_top		=13;
       task->win_bottom	=text.rows-2;
     
    -  if (blkdev.boot_drv_let) //Beware Adam $LK,"TaskInit",A="FF:::/Kernel/KStart.CPP,TaskInit"$. I guess ok until $LK,"ChgDsk",A="FF:::/Kernel/KEnd.CPP,ChgDsk"$().
    -    task->cur_dv=blkdev.let_to_drv[ToUpper(blkdev.boot_drv_let)-'A'];
    -  task->cur_dir=StrNew("/Home",task);
    +  if (blkdev.home_dir) {//Beware Adam $LK,"TaskInit",A="FF:::/Kernel/KStart.CPP,TaskInit"$. I guess ok until $LK,"ChgDsk",A="FF:::/Kernel/KEnd.CPP,ChgDsk"$().
    +    task->cur_dv=blkdev.let_to_drv[*blkdev.home_dir-'A'];
    +    task->cur_dir=StrNew(blkdev.home_dir+2,task);
    +  } else
    +    task->cur_dir=StrNew("/Home",task);
     
       Seed(,task);
     
    @@ -353,7 +355,7 @@ U0 UserTaskCont()
       CDoc *doc;
       Bool cont=TRUE;
       do {
    -    cc=CmpCtrlNew(,CCF_PMT|CCF_QUESTION_HELP);
    +    cc=CmpCtrlNew(,CCF_CMD_LINE|CCF_PMT|CCF_QUESTION_HELP);
         QueIns(cc,Fs->last_lex);
         try {
           Lex(cc);
    @@ -371,7 +373,7 @@ U0 UserTaskCont()
     
     U0 SrvCmdLine(I64 dummy=0)
     {
    -  nounusedwarn dummy;
    +  no_warn dummy;
       Fs->win_inhibit=WIG_USER_TASK_DFT;
       if (HashFind("SrvStartUp",adam_task->hash_table,HTT_FUN))
         CallExtStr("SrvStartUp");
    @@ -380,7 +382,7 @@ U0 SrvCmdLine(I64 dummy=0)
     
     U0 UserCmdLine(I64 dummy=0)
     {//A user task ends-up calling this.
    -  nounusedwarn dummy;
    +  no_warn dummy;
       Fs->win_inhibit=WIG_USER_TASK_DFT;
       if (HashFind("UserStartUp",adam_task->hash_table,HTT_FUN))
         CallExtStr("UserStartUp");
    diff --git a/Kernel/Kernel.MAP b/Kernel/Kernel.MAP
    index 0c86ed7..5f6f01b 100644
    --- a/Kernel/Kernel.MAP
    +++ b/Kernel/Kernel.MAP
    @@ -1,2886 +1,2906 @@
    -$LK,"DrvTextAttrGet",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,281",BI=1$
    -$LK,"ARGT_R64",A="FL:::/Kernel/KernelA.HPP,1895"$
    +$LK,"DrvTextAttrGet",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,294",BI=1$
    +$LK,"ARGT_R64",A="FL:::/Kernel/KernelA.HPP,1897"$
     $LK,"MAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,387"$
    -$LK,"BOOT_SRC_NULL",A="FL:::/Kernel/KernelA.HPP,3879"$
    +$LK,"BOOT_SRC_NULL",A="FL:::/Kernel/KernelA.HPP,3886"$
     $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,255"$
    -$LK,"LXchgU16",A="FL:::/Kernel/KernelB.HPP,254"$
    -$LK,"BDS_CUR_DRV",A="FL:::/Kernel/KernelA.HPP,3262"$
    -$LK,"DOCM_CANCEL",A="FL:::/Kernel/KernelA.HPP,1339"$
    +$LK,"LXchgU32",A="FL:::/Kernel/KernelB.HPP,254"$
    +$LK,"LXchgU16",A="FL:::/Kernel/KernelB.HPP,253"$
    +$LK,"BDS_CUR_DRV",A="FL:::/Kernel/KernelA.HPP,3268"$
    +$LK,"DOCM_CANCEL",A="FL:::/Kernel/KernelA.HPP,1341"$
     $LK,"chars_bmp_word",A="FL:::/Kernel/StrA.CPP.Z,340"$
    -$LK,"BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,2294"$
    -$LK,"ARGT_SS",A="FL:::/Kernel/KernelA.HPP,1926"$
    +$LK,"BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,2297"$
    +$LK,"ARGT_SS",A="FL:::/Kernel/KernelA.HPP,1928"$
     $LK,"c32_eax",A="FL:::/Kernel/PCIBIOS.CPP.Z,152"$
    -$LK,"ARGT_EAX",A="FL:::/Kernel/KernelA.HPP,1919"$
    -$LK,"DOCT_HEADER",A="FL:::/Kernel/KernelA.HPP,909"$
    -$LK,"Ff__EXTERN",A="FL:::/Kernel/KernelA.HPP,850"$
    +$LK,"ARGT_EAX",A="FL:::/Kernel/KernelA.HPP,1921"$
    +$LK,"DOCT_HEADER",A="FL:::/Kernel/KernelA.HPP,911"$
    +$LK,"Ff__EXTERN",A="FL:::/Kernel/KernelA.HPP,852"$
     $LK,"c32_ebx",A="FL:::/Kernel/PCIBIOS.CPP.Z,153"$
    -$LK,"D3Add",A="FL:::/Kernel/KernelB.HPP,146"$
    -$LK,"D3NormSqr",A="FL:::/Kernel/KernelB.HPP,159"$
    -$LK,"ARf_PLANAR_SYMMETRY",A="FL:::/Kernel/KernelA.HPP,3891"$
    -$LK,"DOCf_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1293"$
    -$LK,"RLF_BLKDEV",A="FL:::/Kernel/KernelA.HPP,464"$
    -$LK,"RLf_BLKDEV",A="FL:::/Kernel/KernelA.HPP,445"$
    +$LK,"D3Add",A="FL:::/Kernel/KernelB.HPP,145"$
    +$LK,"D3NormSqr",A="FL:::/Kernel/KernelB.HPP,158"$
    +$LK,"ARf_PLANAR_SYMMETRY",A="FL:::/Kernel/KernelA.HPP,3899"$
    +$LK,"DOCf_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1295"$
    +$LK,"RLF_BLKDEV",A="FL:::/Kernel/KernelA.HPP,466"$
    +$LK,"RLf_BLKDEV",A="FL:::/Kernel/KernelA.HPP,447"$
     $LK,"c32_ecx",A="FL:::/Kernel/PCIBIOS.CPP.Z,154"$
    -$LK,"CCF_USE_LAST_U16",A="FL:::/Kernel/KernelA.HPP,2154"$
    -$LK,"SYSf_CTRL_ALT_DEL",A="FL:::/Kernel/KernelA.HPP,615"$
    -$LK,"SSF_INACTIVE",A="FL:::/Kernel/KernelA.HPP,222"$
    -$LK,"MSF_INACTIVE",A="FL:::/Kernel/KernelA.HPP,205"$
    -$LK,"ATA_READ_MULTI",A="FL:::/Kernel/KernelA.HPP,2262"$
    +$LK,"CCF_USE_LAST_U16",A="FL:::/Kernel/KernelA.HPP,2157"$
    +$LK,"SYSf_CTRL_ALT_DEL",A="FL:::/Kernel/KernelA.HPP,617"$
    +$LK,"SSF_INACTIVE",A="FL:::/Kernel/KernelA.HPP,223"$
    +$LK,"MSF_INACTIVE",A="FL:::/Kernel/KernelA.HPP,206"$
    +$LK,"ATA_READ_MULTI",A="FL:::/Kernel/KernelA.HPP,2265"$
     $LK,"c32_edx",A="FL:::/Kernel/PCIBIOS.CPP.Z,155"$
    -$LK,"FUf_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,2591"$
    -$LK,"CAOTBinBlk",A="FL:::/Kernel/KernelA.HPP,1798"$
    -$LK,"DOCEf_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,1097"$
    -$LK,"KernelMain",A="FL:::/Kernel/KEnd.CPP.Z,130",BI=4$
    +$LK,"FUf_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,2592"$
    +$LK,"CAOTBinBlk",A="FL:::/Kernel/KernelA.HPP,1800"$
    +$LK,"DOCEf_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,1099"$
    +$LK,"KernelMain",A="FL:::/Kernel/KEnd.CPP.Z,135",BI=4$
     $LK,"KbdCmdSend",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,24",BI=5$
     $LK,"_D3_NORM_SQR",A="FL:::/Kernel/KMathA.CPP.Z,22"$
    -$LK,"TTS_CUR_LEX",A="FL:::/Kernel/KernelA.HPP,3270"$
    -$LK,"RS_ATTR_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,2534"$
    -$LK,"CCf_USE_LAST_U16",A="FL:::/Kernel/KernelA.HPP,2155"$
    -$LK,"CDocEntry",A="FL:::/Kernel/KernelA.HPP,1179"$
    -$LK,"CAOT",A="FL:::/Kernel/KernelA.HPP,1996"$
    -$LK,"SVCf_DISPATCHED",A="FL:::/Kernel/KernelA.HPP,3176"$
    -$LK,"RLF_32BIT",A="FL:::/Kernel/KernelA.HPP,457"$
    -$LK,"RLF_16BIT",A="FL:::/Kernel/KernelA.HPP,455"$
    -$LK,"RLf_32BIT",A="FL:::/Kernel/KernelA.HPP,438"$
    -$LK,"RLf_16BIT",A="FL:::/Kernel/KernelA.HPP,436"$
    -$LK,"BreakUnlock",A="FL:::/Kernel/KExcept.CPP.Z,142",BI=6$
    -$LK,"DOCT_BACKGROUND",A="FL:::/Kernel/KernelA.HPP,913"$
    -$LK,"DOCT_FOREGROUND",A="FL:::/Kernel/KernelA.HPP,912"$
    -$LK,"CGDT",A="FL:::/Kernel/KernelA.HPP,334"$
    -$LK,"TSF_SAME_SONG",A="FL:::/Kernel/KernelA.HPP,3240"$
    -$LK,"ICF_PUSH_CMP",A="FL:::/Kernel/KernelA.HPP,1607"$
    -$LK,"MLF_NO_UNUSED_WARN",A="FL:::/Kernel/KernelA.HPP,777"$
    -$LK,"I_MP_CRASH",A="FL:::/Kernel/KernelA.HPP,293"$
    -$LK,"MEM_HEAP_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2870"$
    -$LK,"INVALID_PTR",A="FL:::/Kernel/KernelA.HPP,38"$
    -$LK,"RECALCt_NORMAL",A="FL:::/Kernel/KernelA.HPP,1343"$
    +$LK,"TTS_CUR_LEX",A="FL:::/Kernel/KernelA.HPP,3276"$
    +$LK,"RS_ATTR_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,2536"$
    +$LK,"CCf_USE_LAST_U16",A="FL:::/Kernel/KernelA.HPP,2158"$
    +$LK,"CDocEntry",A="FL:::/Kernel/KernelA.HPP,1181"$
    +$LK,"CAOT",A="FL:::/Kernel/KernelA.HPP,1998"$
    +$LK,"SVCf_DISPATCHED",A="FL:::/Kernel/KernelA.HPP,3182"$
    +$LK,"RLF_32BIT",A="FL:::/Kernel/KernelA.HPP,459"$
    +$LK,"RLF_16BIT",A="FL:::/Kernel/KernelA.HPP,457"$
    +$LK,"RLf_32BIT",A="FL:::/Kernel/KernelA.HPP,440"$
    +$LK,"RLf_16BIT",A="FL:::/Kernel/KernelA.HPP,438"$
    +$LK,"BreakUnlock",A="FL:::/Kernel/KExcept.CPP.Z,146",BI=6$
    +$LK,"DOCT_BACKGROUND",A="FL:::/Kernel/KernelA.HPP,915"$
    +$LK,"DOCT_FOREGROUND",A="FL:::/Kernel/KernelA.HPP,914"$
    +$LK,"CGDT",A="FL:::/Kernel/KernelA.HPP,335"$
    +$LK,"TSF_SAME_SONG",A="FL:::/Kernel/KernelA.HPP,3246"$
    +$LK,"ICF_PUSH_CMP",A="FL:::/Kernel/KernelA.HPP,1609"$
    +$LK,"MLF_NO_UNUSED_WARN",A="FL:::/Kernel/KernelA.HPP,779"$
    +$LK,"I_MP_CRASH",A="FL:::/Kernel/KernelA.HPP,294"$
    +$LK,"MEM_HEAP_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2876"$
    +$LK,"INVALID_PTR",A="FL:::/Kernel/KernelA.HPP,39"$
    +$LK,"RECALCt_NORMAL",A="FL:::/Kernel/KernelA.HPP,1345"$
     $LK,"ATAInit",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,303",BI=7$
     $LK,"HashDefineLstAdd",A="FL:::/Kernel/KHashB.CPP.Z,206",BI=8$
     $LK,"StrUtil",A="FL:::/Kernel/StrA.CPP.Z,524",BI=9$
     $LK,"LstMatch",A="FL:::/Kernel/StrA.CPP.Z,421",BI=10$
    -$LK,"IET_REL_I32",A="FL:::/Kernel/KernelA.HPP,399"$
    -$LK,"IET_REL_I16",A="FL:::/Kernel/KernelA.HPP,397"$
    -$LK,"CPrsStk",A="FL:::/Kernel/KernelA.HPP,1677"$
    -$LK,"CCmpCtrl",A="FL:::/Kernel/KernelA.HPP,2165"$
    +$LK,"IET_REL_I32",A="FL:::/Kernel/KernelA.HPP,400"$
    +$LK,"IET_REL_I16",A="FL:::/Kernel/KernelA.HPP,398"$
    +$LK,"CPrsStk",A="FL:::/Kernel/KernelA.HPP,1679"$
    +$LK,"CCmpCtrl",A="FL:::/Kernel/KernelA.HPP,2168"$
     $LK,"ATAWBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,579",BI=11$
    -$LK,"CCPU",A="FL:::/Kernel/KernelA.HPP,3436"$
    +$LK,"CCPU",A="FL:::/Kernel/KernelA.HPP,3442"$
    +$LK,"ATABlkSel",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,1",BI=12$
     $LK,"c32_esi",A="FL:::/Kernel/PCIBIOS.CPP.Z,156"$
    -$LK,"CCF_JUST_LOAD",A="FL:::/Kernel/KernelA.HPP,2131"$
    -$LK,"LDF_JUST_LOAD",A="FL:::/Kernel/KernelA.HPP,367"$
    -$LK,"SYS_CACHE_LINE_WIDTH",A="FL:::/Kernel/KStart.CPP.Z,229"$
    -$LK,"CMF_I16_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1698"$
    -$LK,"FramePtrSet",A="FL:::/Kernel/KHashB.CPP.Z,230",BI=12$
    -$LK,"CCf_PASS_TRACE_PRESENT",A="FL:::/Kernel/KernelA.HPP,2136"$
    -$LK,"CMF_U16_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1699"$
    +$LK,"CCF_JUST_LOAD",A="FL:::/Kernel/KernelA.HPP,2134"$
    +$LK,"LDF_JUST_LOAD",A="FL:::/Kernel/KernelA.HPP,368"$
    +$LK,"SYS_CACHE_LINE_WIDTH",A="FL:::/Kernel/KStart.CPP.Z,234"$
    +$LK,"CMF_I16_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1700"$
    +$LK,"FramePtrSet",A="FL:::/Kernel/KHashB.CPP.Z,230",BI=13$
    +$LK,"CCf_PASS_TRACE_PRESENT",A="FL:::/Kernel/KernelA.HPP,2139"$
    +$LK,"CMF_U16_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1701"$
     $LK,"_STRICMP",A="FL:::/Kernel/StrA.CPP.Z,117"$
    -$LK,"IET_REL_I64",A="FL:::/Kernel/KernelA.HPP,401"$
    -$LK,"CFAT32Boot",A="FL:::/Kernel/KernelA.HPP,2333"$
    -$LK,"DOCEF_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HPP,1020"$
    -$LK,"FILEMASK_TXT",A="FL:::/Kernel/KernelA.HPP,2289"$
    -$LK,"TK_EOF",A="FL:::/Kernel/KernelA.HPP,2067"$
    +$LK,"IET_REL_I64",A="FL:::/Kernel/KernelA.HPP,402"$
    +$LK,"CFAT32Boot",A="FL:::/Kernel/KernelA.HPP,2335"$
    +$LK,"DOCEF_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HPP,1022"$
    +$LK,"FILEMASK_TXT",A="FL:::/Kernel/KernelA.HPP,2292"$
    +$LK,"TK_EOF",A="FL:::/Kernel/KernelA.HPP,2069"$
     $LK,"SPF_NEG",A="FL:::/Kernel/StrPrint.CPP.Z,10"$
    -$LK,"CWinScroll",A="FL:::/Kernel/KernelA.HPP,3091"$
    -$LK,"DOCEf_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HPP,1106"$
    -$LK,"ARf_FLOODFILL",A="FL:::/Kernel/KernelA.HPP,3889"$
    -$LK,"ICF_USE_F64",A="FL:::/Kernel/KernelA.HPP,1595"$
    -$LK,"MemPagesNotPresentMark",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,58",BI=13$
    -$LK,"CH_BACKSPACE",A="FL:::/Kernel/KernelA.HPP,3504"$
    -$LK,"FloorI64",A="FL:::/Kernel/KMathB.CPP.Z,52",BI=14$
    -$LK,"SC_BACKSPACE",A="FL:::/Kernel/KernelA.HPP,3550"$
    -$LK,"FUf_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,2590"$
    -$LK,"GVF_ARRAY",A="FL:::/Kernel/KernelA.HPP,869"$
    -$LK,"DirEntryCompareCluster",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,84",BI=15$
    -$LK,"KbdCmdFlush",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,45",BI=16$
    -$LK,"CFPU",A="FL:::/Kernel/KernelA.HPP,3163"$
    -$LK,"TASKf_IDLE",A="FL:::/Kernel/KernelA.HPP,3276"$
    -$LK,"CDIR_SIZE",A="FL:::/Kernel/KernelA.HPP,2562"$
    -$LK,"ARGT_UIMM32",A="FL:::/Kernel/KernelA.HPP,1889"$
    -$LK,"ARGT_UIMM16",A="FL:::/Kernel/KernelA.HPP,1888"$
    -$LK,"PCIWriteU8",A="FL:::/Kernel/PCIBIOS.CPP.Z,220",BI=17$
    -$LK,"DefinePrint",A="FL:::/Kernel/KDefine.CPP.Z,90",BI=18$
    -$LK,"FifoI64Del",A="FL:::/Kernel/KDataTypes.CPP.Z,252",BI=19$
    -$LK,"CDocUndo",A="FL:::/Kernel/KernelA.HPP,1331"$
    -$LK,"ROPB_XOR",A="FL:::/Kernel/KernelA.HPP,2925"$
    -$LK,"FUF_JUST_FILES",A="FL:::/Kernel/KernelA.HPP,2605"$
    -$LK,"ATA_SET_MAX",A="FL:::/Kernel/KernelA.HPP,2260"$
    -$LK,"IEF_DFT",A="FL:::/Kernel/KernelA.HPP,1729"$
    -$LK,"RT_F32",A="FL:::/Kernel/KernelA.HPP,1562"$
    -$LK,"Let2BlkDev",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,131",BI=20$
    -$LK,"FUf_JUST_FILES",A="FL:::/Kernel/KernelA.HPP,2579"$
    -$LK,"ARGT_M1632",A="FL:::/Kernel/KernelA.HPP,1907"$
    -$LK,"DOF_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1213"$
    -$LK,"DOCEF_LEFT_X",A="FL:::/Kernel/KernelA.HPP,985"$
    -$LK,"RFLAGf_AUX_CARRY",A="FL:::/Kernel/KernelA.HPP,308"$
    -$LK,"DEF_PROCESSED",A="FL:::/Kernel/KernelA.HPP,2545"$
    -$LK,"WIf_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HPP,1449"$
    -$LK,"DOCEf_LEFT_X",A="FL:::/Kernel/KernelA.HPP,1073"$
    -$LK,"Mem64DevFree",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,145",BI=21$
    -$LK,"Mem32DevFree",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,111",BI=22$
    -$LK,"ARGT_UIMM64",A="FL:::/Kernel/KernelA.HPP,1890"$
    -$LK,"DOCf_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1301"$
    -$LK,"DOCF_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1265"$
    -$LK,"ATARepEntry",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,90",BI=23$
    -$LK,"BLUE",A="FL:::/Kernel/KernelA.HPP,2950"$
    -$LK,"sys_ctrl_alt_flags",A="FL:::/Kernel/KernelB.HPP,203"$
    -$LK,"D3Div",A="FL:::/Kernel/KernelB.HPP,152"$
    -$LK,"RT_F64",A="FL:::/Kernel/KernelA.HPP,1564"$
    -$LK,"EdLite",A="FL:::/Kernel/EdLite.CPP.Z,58",BI=24$
    -$LK,"MBR_PT_FAT12",A="FL:::/Kernel/KernelA.HPP,2692"$
    -$LK,"FramePtr",A="FL:::/Kernel/KHashB.CPP.Z,215",BI=25$
    -$LK,"ARGT_RM8",A="FL:::/Kernel/KernelA.HPP,1897"$
    -$LK,"ROPF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HPP,2945"$
    -$LK,"RTF_UNSIGNED",A="FL:::/Kernel/KernelA.HPP,1567"$
    -$LK,"DOCEF_HAS_BORDER",A="FL:::/Kernel/KernelA.HPP,1000"$
    -$LK,"TK_EQU_EQU",A="FL:::/Kernel/KernelA.HPP,2082"$
    -$LK,"RT_I32",A="FL:::/Kernel/KernelA.HPP,1557"$
    -$LK,"RT_I16",A="FL:::/Kernel/KernelA.HPP,1555"$
    -$LK,"DOCEf_HAS_BORDER",A="FL:::/Kernel/KernelA.HPP,1088"$
    -$LK,"SysTry",A="FL:::/Kernel/KExcept.CPP.Z,62",BI=26$
    -$LK,"POP_REGS",A="FL:::/Kernel/KernelA.HPP,1769"$
    -$LK,"IEF_OP_SIZE32",A="FL:::/Kernel/KernelA.HPP,1726"$
    -$LK,"IEF_OP_SIZE16",A="FL:::/Kernel/KernelA.HPP,1725"$
    -$LK,"HTT_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,685"$
    -$LK,"BD_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2657"$
    -$LK,"DOCEf_ESC",A="FL:::/Kernel/KernelA.HPP,1085"$
    -$LK,"ScanCode2Char",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,136",BI=27$
    -$LK,"NUM_DRVS",A="FL:::/Kernel/KernelA.HPP,2708"$
    -$LK,"FSt_ISO13346",A="FL:::/Kernel/KernelA.HPP,2684"$
    +$LK,"CWinScroll",A="FL:::/Kernel/KernelA.HPP,3097"$
    +$LK,"DOCEf_NO_CLICK_ON",A="FL:::/Kernel/KernelA.HPP,1108"$
    +$LK,"ARf_FLOODFILL",A="FL:::/Kernel/KernelA.HPP,3897"$
    +$LK,"ICF_USE_F64",A="FL:::/Kernel/KernelA.HPP,1597"$
    +$LK,"MemPagesNotPresentMark",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,58",BI=14$
    +$LK,"CH_BACKSPACE",A="FL:::/Kernel/KernelA.HPP,3510"$
    +$LK,"FloorI64",A="FL:::/Kernel/KMathB.CPP.Z,52",BI=15$
    +$LK,"SC_BACKSPACE",A="FL:::/Kernel/KernelA.HPP,3556"$
    +$LK,"FUf_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,2591"$
    +$LK,"GVF_ARRAY",A="FL:::/Kernel/KernelA.HPP,871"$
    +$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,3169"$
    +$LK,"TASKf_IDLE",A="FL:::/Kernel/KernelA.HPP,3282"$
    +$LK,"CDIR_SIZE",A="FL:::/Kernel/KernelA.HPP,2563"$
    +$LK,"ARGT_UIMM32",A="FL:::/Kernel/KernelA.HPP,1891"$
    +$LK,"ARGT_UIMM16",A="FL:::/Kernel/KernelA.HPP,1890"$
    +$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,1333"$
    +$LK,"ROPB_XOR",A="FL:::/Kernel/KernelA.HPP,2931"$
    +$LK,"FUF_JUST_FILES",A="FL:::/Kernel/KernelA.HPP,2606"$
    +$LK,"ATA_SET_MAX",A="FL:::/Kernel/KernelA.HPP,2263"$
    +$LK,"IEF_DFT",A="FL:::/Kernel/KernelA.HPP,1731"$
    +$LK,"RT_F32",A="FL:::/Kernel/KernelA.HPP,1564"$
    +$LK,"Let2BlkDev",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,161",BI=21$
    +$LK,"FUf_JUST_FILES",A="FL:::/Kernel/KernelA.HPP,2580"$
    +$LK,"ARGT_M1632",A="FL:::/Kernel/KernelA.HPP,1909"$
    +$LK,"DOF_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1215"$
    +$LK,"DOCEF_LEFT_X",A="FL:::/Kernel/KernelA.HPP,987"$
    +$LK,"RFLAGf_AUX_CARRY",A="FL:::/Kernel/KernelA.HPP,309"$
    +$LK,"DEF_PROCESSED",A="FL:::/Kernel/KernelA.HPP,2547"$
    +$LK,"WIf_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HPP,1451"$
    +$LK,"DOCEf_LEFT_X",A="FL:::/Kernel/KernelA.HPP,1075"$
    +$LK,"Mem64DevFree",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,145",BI=22$
    +$LK,"Mem32DevFree",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,111",BI=23$
    +$LK,"ARGT_UIMM64",A="FL:::/Kernel/KernelA.HPP,1892"$
    +$LK,"DOCf_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1303"$
    +$LK,"DOCF_MIN_SIZE",A="FL:::/Kernel/KernelA.HPP,1267"$
    +$LK,"ATARepEntry",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,91",BI=24$
    +$LK,"BLUE",A="FL:::/Kernel/KernelA.HPP,2956"$
    +$LK,"sys_ctrl_alt_flags",A="FL:::/Kernel/KernelB.HPP,202"$
    +$LK,"D3Div",A="FL:::/Kernel/KernelB.HPP,151"$
    +$LK,"RT_F64",A="FL:::/Kernel/KernelA.HPP,1566"$
    +$LK,"EdLite",A="FL:::/Kernel/EdLite.CPP.Z,58",BI=25$
    +$LK,"MBR_PT_FAT12",A="FL:::/Kernel/KernelA.HPP,2697"$
    +$LK,"FramePtr",A="FL:::/Kernel/KHashB.CPP.Z,215",BI=26$
    +$LK,"ARGT_RM8",A="FL:::/Kernel/KernelA.HPP,1899"$
    +$LK,"ROPF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HPP,2951"$
    +$LK,"RTF_UNSIGNED",A="FL:::/Kernel/KernelA.HPP,1569"$
    +$LK,"DOCEF_HAS_BORDER",A="FL:::/Kernel/KernelA.HPP,1002"$
    +$LK,"TK_EQU_EQU",A="FL:::/Kernel/KernelA.HPP,2084"$
    +$LK,"RT_I32",A="FL:::/Kernel/KernelA.HPP,1559"$
    +$LK,"RT_I16",A="FL:::/Kernel/KernelA.HPP,1557"$
    +$LK,"DOCEf_HAS_BORDER",A="FL:::/Kernel/KernelA.HPP,1090"$
    +$LK,"SysTry",A="FL:::/Kernel/KExcept.CPP.Z,63",BI=27$
    +$LK,"POP_REGS",A="FL:::/Kernel/KernelA.HPP,1771"$
    +$LK,"IEF_OP_SIZE32",A="FL:::/Kernel/KernelA.HPP,1728"$
    +$LK,"IEF_OP_SIZE16",A="FL:::/Kernel/KernelA.HPP,1727"$
    +$LK,"HTT_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,687"$
    +$LK,"BD_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2659"$
    +$LK,"DOCEf_ESC",A="FL:::/Kernel/KernelA.HPP,1087"$
    +$LK,"ScanCode2Char",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,136",BI=28$
    +$LK,"NUM_DRVS",A="FL:::/Kernel/KernelA.HPP,2713"$
    +$LK,"FSt_ISO13346",A="FL:::/Kernel/KernelA.HPP,2689"$
     $LK,"_D3_ADD",A="FL:::/Kernel/KMathA.CPP.Z,131"$
    -$LK,"SYSf_CTRL_ALT_TAB",A="FL:::/Kernel/KernelA.HPP,618"$
    -$LK,"RCache",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,119",BI=28$
    -$LK,"DOC_ATTR_DFT_TEXT",A="FL:::/Kernel/KernelA.HPP,1132"$
    -$LK,"D3Dot",A="FL:::/Kernel/KernelB.HPP,154"$
    -$LK,"CSrvCmd",A="FL:::/Kernel/KernelA.HPP,3187"$
    -$LK,"ARGT_RAX",A="FL:::/Kernel/KernelA.HPP,1920"$
    -$LK,"EDf_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1253"$
    -$LK,"EDF_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1247"$
    -$LK,"DOCF_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1268"$
    -$LK,"KbdMsgsQue",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,467",BI=29$
    -$LK,"ARGT_ST0",A="FL:::/Kernel/KernelA.HPP,1933"$
    -$LK,"RT_I64",A="FL:::/Kernel/KernelA.HPP,1559"$
    -$LK,"FifoI64Cnt",A="FL:::/Kernel/KDataTypes.CPP.Z,312",BI=30$
    -$LK,"NUM_PROGRESS_BARS",A="FL:::/Kernel/KernelA.HPP,3898"$
    -$LK,"SUF_SAFE_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3792"$
    -$LK,"RWF_SHOW_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3590"$
    -$LK,"_CFG_HEAP_DBG",A="FL:::/Kernel/KernelA.HPP,2789"$
    -$LK,"HTt_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,655"$
    -$LK,"RedSeaFileWrite",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,509",BI=31$
    -$LK,"AutoStr",A="FL:::/Kernel/SrvCmd.CPP.Z,465",BI=32$
    -$LK,"CPatchTableAbsAddr",A="FL:::/Kernel/KernelA.HPP,382"$
    -$LK,"DVDImageRead",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,1",BI=33$
    -$LK,"FSt_ISO13490",A="FL:::/Kernel/KernelA.HPP,2683"$
    -$LK,"IET_CODE_HEAP",A="FL:::/Kernel/KernelA.HPP,410"$
    -$LK,"ROPB_MONO",A="FL:::/Kernel/KernelA.HPP,2927"$
    -$LK,"CAsmNum2",A="FL:::/Kernel/KernelA.HPP,1825"$
    -$LK,"AutoFile",A="FL:::/Kernel/SrvCmd.CPP.Z,475",BI=34$
    -$LK,"AMAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,390",BI=35$
    -$LK,"ICF_R_TO_INT",A="FL:::/Kernel/KernelA.HPP,1590"$
    -$LK,"DOCEf_LEN",A="FL:::/Kernel/KernelA.HPP,1052"$
    -$LK,"B",A="FL:::/Kernel/KDbg.CPP.Z,407",BI=36$
    -$LK,"ICF_PUSH_RES",A="FL:::/Kernel/KernelA.HPP,1602"$
    +$LK,"SYSf_CTRL_ALT_TAB",A="FL:::/Kernel/KernelA.HPP,620"$
    +$LK,"RCache",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,119",BI=29$
    +$LK,"DOC_ATTR_DFT_TEXT",A="FL:::/Kernel/KernelA.HPP,1134"$
    +$LK,"D3Dot",A="FL:::/Kernel/KernelB.HPP,153"$
    +$LK,"CSrvCmd",A="FL:::/Kernel/KernelA.HPP,3193"$
    +$LK,"ARGT_RAX",A="FL:::/Kernel/KernelA.HPP,1922"$
    +$LK,"EDf_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1255"$
    +$LK,"EDF_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,1249"$
    +$LK,"DOCF_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1270"$
    +$LK,"KbdMsgsQue",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,467",BI=30$
    +$LK,"ARGT_ST0",A="FL:::/Kernel/KernelA.HPP,1935"$
    +$LK,"RT_I64",A="FL:::/Kernel/KernelA.HPP,1561"$
    +$LK,"FifoI64Cnt",A="FL:::/Kernel/KDataTypes.CPP.Z,312",BI=31$
    +$LK,"NUM_PROGRESS_BARS",A="FL:::/Kernel/KernelA.HPP,3906"$
    +$LK,"SUF_SAFE_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3799"$
    +$LK,"RWF_SHOW_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3596"$
    +$LK,"_CFG_HEAP_DBG",A="FL:::/Kernel/KernelA.HPP,2795"$
    +$LK,"HTt_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,657"$
    +$LK,"RedSeaFileWrite",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,511",BI=32$
    +$LK,"AutoStr",A="FL:::/Kernel/SrvCmd.CPP.Z,465",BI=33$
    +$LK,"CPatchTableAbsAddr",A="FL:::/Kernel/KernelA.HPP,383"$
    +$LK,"DVDImageRead",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,69",BI=34$
    +$LK,"FSt_ISO13490",A="FL:::/Kernel/KernelA.HPP,2688"$
    +$LK,"IET_CODE_HEAP",A="FL:::/Kernel/KernelA.HPP,411"$
    +$LK,"ROPB_MONO",A="FL:::/Kernel/KernelA.HPP,2933"$
    +$LK,"CAsmNum2",A="FL:::/Kernel/KernelA.HPP,1827"$
    +$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,1592"$
    +$LK,"DOCEf_LEN",A="FL:::/Kernel/KernelA.HPP,1054"$
    +$LK,"B",A="FL:::/Kernel/KDbg.CPP.Z,407",BI=37$
    +$LK,"ICF_PUSH_RES",A="FL:::/Kernel/KernelA.HPP,1604"$
     $LK,"chars_bmp_dec_numeric",A="FL:::/Kernel/StrA.CPP.Z,350"$
    -$LK,"D3Equ",A="FL:::/Kernel/KernelB.HPP,155"$
    -$LK,"FF_NEW_FILE",A="FL:::/Kernel/KernelA.HPP,2773"$
    -$LK,"CMT_STR_CONST",A="FL:::/Kernel/KernelA.HPP,1688"$
    -$LK,"WIf_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HPP,1451"$
    -$LK,"D",A="FL:::/Kernel/KDbg.CPP.Z,172",BI=37$
    -$LK,"StrPrint",A="FL:::/Kernel/StrPrint.CPP.Z,893",BI=38$
    -$LK,"WINMGR_FPS",A="FL:::/Kernel/KernelA.HPP,1465"$
    -$LK,"E",A="FL:::/Kernel/FunSeg.CPP.Z,302",BI=39$
    -$LK,"ICF_A2_TO_INT",A="FL:::/Kernel/KernelA.HPP,1594"$
    -$LK,"CEdFileName",A="FL:::/Kernel/KernelA.HPP,1238"$
    -$LK,"DOCT_LEFT_MARGIN",A="FL:::/Kernel/KernelA.HPP,907"$
    +$LK,"D3Equ",A="FL:::/Kernel/KernelB.HPP,154"$
    +$LK,"FF_NEW_FILE",A="FL:::/Kernel/KernelA.HPP,2779"$
    +$LK,"CMT_STR_CONST",A="FL:::/Kernel/KernelA.HPP,1690"$
    +$LK,"WIf_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HPP,1453"$
    +$LK,"D",A="FL:::/Kernel/KDbg.CPP.Z,172",BI=38$
    +$LK,"StrPrint",A="FL:::/Kernel/StrPrint.CPP.Z,893",BI=39$
    +$LK,"WINMGR_FPS",A="FL:::/Kernel/KernelA.HPP,1467"$
    +$LK,"E",A="FL:::/Kernel/FunSeg.CPP.Z,302",BI=40$
    +$LK,"ICF_A2_TO_INT",A="FL:::/Kernel/KernelA.HPP,1596"$
    +$LK,"CEdFileName",A="FL:::/Kernel/KernelA.HPP,1240"$
    +$LK,"DOCT_LEFT_MARGIN",A="FL:::/Kernel/KernelA.HPP,909"$
     $LK,"_STRNCMP",A="FL:::/Kernel/StrA.CPP.Z,154"$
    -$LK,"G",A="FL:::/Kernel/KDbg.CPP.Z,444",BI=40$
    -$LK,"ScaleIndent",A="FL:::/Kernel/StrB.CPP.Z,35",BI=41$
    -$LK,"IET_ABS_ADDR",A="FL:::/Kernel/KernelA.HPP,409"$
    -$LK,"PressAKey",A="FL:::/Kernel/StrB.CPP.Z,103",BI=42$
    -$LK,"DOF_WIN_MAX",A="FL:::/Kernel/KernelA.HPP,1216"$
    -$LK,"CCodeCtrl",A="FL:::/Kernel/KernelA.HPP,2015"$
    -$LK,"Char2ScanCode",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,100",BI=43$
    -$LK,"Mem32DevInit",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,30",BI=44$
    +$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,410"$
    +$LK,"PressAKey",A="FL:::/Kernel/StrB.CPP.Z,103",BI=43$
    +$LK,"DOF_WIN_MAX",A="FL:::/Kernel/KernelA.HPP,1218"$
    +$LK,"CCodeCtrl",A="FL:::/Kernel/KernelA.HPP,2017"$
    +$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,1304"$
    -$LK,"SPutChar",A="FL:::/Kernel/StrPrint.CPP.Z,14",BI=45$
    -$LK,"TaskQueIns",A="FL:::/Kernel/Sched.CPP.Z,287",BI=46$
    -$LK,"CYAN",A="FL:::/Kernel/KernelA.HPP,2952"$
    -$LK,"TK_SUPERSCRIPT",A="FL:::/Kernel/KernelA.HPP,2068"$
    -$LK,"FileNameTempTxt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,266",BI=47$
    -$LK,"RS_ATTR_DELETED",A="FL:::/Kernel/KernelA.HPP,2532"$
    -$LK,"CMT_ASM_LABEL",A="FL:::/Kernel/KernelA.HPP,1686"$
    -$LK,"RLF_64BIT",A="FL:::/Kernel/KernelA.HPP,459"$
    -$LK,"RLf_64BIT",A="FL:::/Kernel/KernelA.HPP,440"$
    -$LK,"RedSeaFreeLstBuild",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,24",BI=48$
    -$LK,"TK_SHL",A="FL:::/Kernel/KernelA.HPP,2080"$
    -$LK,"DOCf_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,1307"$
    -$LK,"DOCF_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,1271"$
    -$LK,"CH_CTRLA",A="FL:::/Kernel/KernelA.HPP,3477"$
    -$LK,"CHashGlblVar",A="FL:::/Kernel/KernelA.HPP,871"$
    -$LK,"CH_CTRLB",A="FL:::/Kernel/KernelA.HPP,3478"$
    -$LK,"DOCEf_TAG",A="FL:::/Kernel/KernelA.HPP,1051"$
    -$LK,"S",A="FL:::/Kernel/KDbg.CPP.Z,479",BI=49$
    -$LK,"CH_CTRLC",A="FL:::/Kernel/KernelA.HPP,3479"$
    -$LK,"FifoI64Ins",A="FL:::/Kernel/KDataTypes.CPP.Z,258",BI=50$
    -$LK,"FloorU64",A="FL:::/Kernel/KMathB.CPP.Z,36",BI=51$
    -$LK,"CH_CTRLD",A="FL:::/Kernel/KernelA.HPP,3480"$
    -$LK,"DOCF_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1280"$
    -$LK,"DOCT_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,917"$
    -$LK,"CH_CTRLE",A="FL:::/Kernel/KernelA.HPP,3481"$
    -$LK,"BLACK",A="FL:::/Kernel/KernelA.HPP,2949"$
    -$LK,"ARGT_STI",A="FL:::/Kernel/KernelA.HPP,1934"$
    -$LK,"NUM_REGS",A="FL:::/Kernel/KernelA.HPP,1772"$
    -$LK,"DOCf_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1317"$
    -$LK,"DOCEf_BOTTOM_Y",A="FL:::/Kernel/KernelA.HPP,1078"$
    -$LK,"DOCEF_BOTTOM_Y",A="FL:::/Kernel/KernelA.HPP,990"$
    -$LK,"FileNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,161",BI=52$
    -$LK,"CH_CTRLF",A="FL:::/Kernel/KernelA.HPP,3482"$
    -$LK,"TK_SHR",A="FL:::/Kernel/KernelA.HPP,2081"$
    -$LK,"AutoMountIDE",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,254",BI=53$
    -$LK,"CH_CTRLG",A="FL:::/Kernel/KernelA.HPP,3483"$
    -$LK,"DOCEF_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HPP,1010"$
    +$LK,"DOCf_NO_SCROLL_BARS",A="FL:::/Kernel/KernelA.HPP,1306"$
    +$LK,"SPutChar",A="FL:::/Kernel/StrPrint.CPP.Z,14",BI=46$
    +$LK,"TaskQueIns",A="FL:::/Kernel/Sched.CPP.Z,287",BI=47$
    +$LK,"CYAN",A="FL:::/Kernel/KernelA.HPP,2958"$
    +$LK,"TK_SUPERSCRIPT",A="FL:::/Kernel/KernelA.HPP,2070"$
    +$LK,"FileNameTempTxt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,272",BI=48$
    +$LK,"RS_ATTR_DELETED",A="FL:::/Kernel/KernelA.HPP,2534"$
    +$LK,"CMT_ASM_LABEL",A="FL:::/Kernel/KernelA.HPP,1688"$
    +$LK,"RLF_64BIT",A="FL:::/Kernel/KernelA.HPP,461"$
    +$LK,"RLf_64BIT",A="FL:::/Kernel/KernelA.HPP,442"$
    +$LK,"RedSeaFreeLstBuild",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,24",BI=49$
    +$LK,"TK_SHL",A="FL:::/Kernel/KernelA.HPP,2082"$
    +$LK,"DOCf_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,1309"$
    +$LK,"DOCF_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,1273"$
    +$LK,"CH_CTRLA",A="FL:::/Kernel/KernelA.HPP,3483"$
    +$LK,"CHashGlblVar",A="FL:::/Kernel/KernelA.HPP,873"$
    +$LK,"CH_CTRLB",A="FL:::/Kernel/KernelA.HPP,3484"$
    +$LK,"DOCEf_TAG",A="FL:::/Kernel/KernelA.HPP,1053"$
    +$LK,"S",A="FL:::/Kernel/KDbg.CPP.Z,479",BI=50$
    +$LK,"CH_CTRLC",A="FL:::/Kernel/KernelA.HPP,3485"$
    +$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,3486"$
    +$LK,"DOCF_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1282"$
    +$LK,"DOCT_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,919"$
    +$LK,"CH_CTRLE",A="FL:::/Kernel/KernelA.HPP,3487"$
    +$LK,"BLACK",A="FL:::/Kernel/KernelA.HPP,2955"$
    +$LK,"ARGT_STI",A="FL:::/Kernel/KernelA.HPP,1936"$
    +$LK,"NUM_REGS",A="FL:::/Kernel/KernelA.HPP,1774"$
    +$LK,"DOCf_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1319"$
    +$LK,"DOCEf_BOTTOM_Y",A="FL:::/Kernel/KernelA.HPP,1080"$
    +$LK,"DOCEF_BOTTOM_Y",A="FL:::/Kernel/KernelA.HPP,992"$
    +$LK,"FileNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,167",BI=53$
    +$LK,"CH_CTRLF",A="FL:::/Kernel/KernelA.HPP,3488"$
    +$LK,"TK_SHR",A="FL:::/Kernel/KernelA.HPP,2083"$
    +$LK,"AutoMountIDE",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,254",BI=54$
    +$LK,"CH_CTRLG",A="FL:::/Kernel/KernelA.HPP,3489"$
    +$LK,"DOCEF_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HPP,1012"$
     $LK,"_HASH_REM_DEL",A="FL:::/Kernel/KHashA.CPP.Z,208"$
    -$LK,"TaskQueRem",A="FL:::/Kernel/Sched.CPP.Z,301",BI=54$
    -$LK,"CH_CTRLH",A="FL:::/Kernel/KernelA.HPP,3484"$
    -$LK,"CPalindromeU32",A="FL:::/Kernel/KernelA.HPP,2413"$
    -$LK,"CPalindromeU16",A="FL:::/Kernel/KernelA.HPP,2408"$
    -$LK,"DOCT_CHECK_BOX",A="FL:::/Kernel/KernelA.HPP,928"$
    -$LK,"CH_CTRLI",A="FL:::/Kernel/KernelA.HPP,3485"$
    -$LK,"FifoI64New",A="FL:::/Kernel/KDataTypes.CPP.Z,240",BI=55$
    -$LK,"CH_CTRLJ",A="FL:::/Kernel/KernelA.HPP,3486"$
    -$LK,"ARGT_XMM128",A="FL:::/Kernel/KernelA.HPP,1943"$
    -$LK,"SC_CURSOR_UP",A="FL:::/Kernel/KernelA.HPP,3559"$
    -$LK,"CH_CTRLK",A="FL:::/Kernel/KernelA.HPP,3487"$
    -$LK,"TASKf_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,3279"$
    -$LK,"RandI32",A="FL:::/Kernel/KMathB.CPP.Z,90",BI=56$
    -$LK,"RandI16",A="FL:::/Kernel/KMathB.CPP.Z,74",BI=57$
    -$LK,"CH_CTRLL",A="FL:::/Kernel/KernelA.HPP,3488"$
    -$LK,"CH_CTRLM",A="FL:::/Kernel/KernelA.HPP,3489"$
    -$LK,"ICf_LOCK",A="FL:::/Kernel/KernelA.HPP,1614"$
    -$LK,"ICF_LOCK",A="FL:::/Kernel/KernelA.HPP,1613"$
    -$LK,"PutFileLink",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,163",BI=58$
    -$LK,"BreakLock",A="FL:::/Kernel/KExcept.CPP.Z,136",BI=59$
    -$LK,"HPET",A="FL:::/Kernel/KernelB.HPP,284"$
    -$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,3490"$
    -$LK,"BDf_FMT",A="FL:::/Kernel/KernelA.HPP,2649"$
    -$LK,"CCF_KEEP_DOT",A="FL:::/Kernel/KernelA.HPP,2133"$
    -$LK,"Let2BlkDevType",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,137",BI=60$
    -$LK,"CH_CTRLO",A="FL:::/Kernel/KernelA.HPP,3491"$
    -$LK,"ARGT_XMM",A="FL:::/Kernel/KernelA.HPP,1939"$
    -$LK,"DOCEf_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HPP,1096"$
    -$LK,"DOCEf_WIN_REL",A="FL:::/Kernel/KernelA.HPP,1083"$
    -$LK,"DOCEF_WIN_REL",A="FL:::/Kernel/KernelA.HPP,995"$
    -$LK,"FifoI64Rem",A="FL:::/Kernel/KDataTypes.CPP.Z,275",BI=61$
    +$LK,"TaskQueRem",A="FL:::/Kernel/Sched.CPP.Z,301",BI=55$
    +$LK,"CH_CTRLH",A="FL:::/Kernel/KernelA.HPP,3490"$
    +$LK,"CPalindromeU32",A="FL:::/Kernel/KernelA.HPP,2415"$
    +$LK,"CPalindromeU16",A="FL:::/Kernel/KernelA.HPP,2410"$
    +$LK,"DOCT_CHECK_BOX",A="FL:::/Kernel/KernelA.HPP,930"$
    +$LK,"CH_CTRLI",A="FL:::/Kernel/KernelA.HPP,3491"$
    +$LK,"FifoI64New",A="FL:::/Kernel/KDataTypes.CPP.Z,240",BI=56$
    +$LK,"CH_CTRLJ",A="FL:::/Kernel/KernelA.HPP,3492"$
    +$LK,"ARGT_XMM128",A="FL:::/Kernel/KernelA.HPP,1945"$
    +$LK,"SC_CURSOR_UP",A="FL:::/Kernel/KernelA.HPP,3565"$
    +$LK,"CH_CTRLK",A="FL:::/Kernel/KernelA.HPP,3493"$
    +$LK,"TASKf_HAS_SONG",A="FL:::/Kernel/KernelA.HPP,3285"$
    +$LK,"DOCEf_SEL",A="FL:::/Kernel/KernelA.HPP,1049"$
    +$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,3494"$
    +$LK,"CH_CTRLM",A="FL:::/Kernel/KernelA.HPP,3495"$
    +$LK,"ICf_LOCK",A="FL:::/Kernel/KernelA.HPP,1616"$
    +$LK,"ICF_LOCK",A="FL:::/Kernel/KernelA.HPP,1615"$
    +$LK,"PutFileLink",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,163",BI=59$
    +$LK,"BreakLock",A="FL:::/Kernel/KExcept.CPP.Z,140",BI=60$
    +$LK,"HPET",A="FL:::/Kernel/KernelB.HPP,283"$
    +$LK,"CORE0_32BIT_INIT",A="FL:::/Kernel/KStart.CPP.Z,239"$
    +$LK,"CORE0_16BIT_INIT",A="FL:::/Kernel/KStart.CPP.Z,58"$
    +$LK,"CH_CTRLN",A="FL:::/Kernel/KernelA.HPP,3496"$
    +$LK,"BDf_FMT",A="FL:::/Kernel/KernelA.HPP,2651"$
    +$LK,"CCF_KEEP_DOT",A="FL:::/Kernel/KernelA.HPP,2136"$
    +$LK,"Let2BlkDevType",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,146",BI=61$
    +$LK,"CH_CTRLO",A="FL:::/Kernel/KernelA.HPP,3497"$
    +$LK,"ARGT_XMM",A="FL:::/Kernel/KernelA.HPP,1941"$
    +$LK,"DOCEf_REMALLOC_DATA",A="FL:::/Kernel/KernelA.HPP,1098"$
    +$LK,"DOCEf_WIN_REL",A="FL:::/Kernel/KernelA.HPP,1085"$
    +$LK,"DOCEF_WIN_REL",A="FL:::/Kernel/KernelA.HPP,997"$
    +$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,3492"$
    +$LK,"CH_CTRLP",A="FL:::/Kernel/KernelA.HPP,3498"$
     $LK,"chars_bmp_non_eol",A="FL:::/Kernel/StrA.CPP.Z,396"$
    -$LK,"CH_CTRLQ",A="FL:::/Kernel/KernelA.HPP,3493"$
    -$LK,"CTSS",A="FL:::/Kernel/KernelA.HPP,3400"$
    -$LK,"FileNameChk",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,239",BI=62$
    -$LK,"D3Mul",A="FL:::/Kernel/KernelB.HPP,156"$
    -$LK,"CH_CTRLR",A="FL:::/Kernel/KernelA.HPP,3494"$
    +$LK,"CH_CTRLQ",A="FL:::/Kernel/KernelA.HPP,3499"$
    +$LK,"CTSS",A="FL:::/Kernel/KernelA.HPP,3406"$
    +$LK,"HomeSet",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,1",BI=63$
    +$LK,"FileNameChk",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,245",BI=64$
    +$LK,"D3Mul",A="FL:::/Kernel/KernelB.HPP,155"$
    +$LK,"CH_CTRLR",A="FL:::/Kernel/KernelA.HPP,3500"$
     $LK,"SK_NAME",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,89"$
    -$LK,"CtrlAltC",A="FL:::/Kernel/KeyDev.CPP.Z,131",BI=63$
    -$LK,"CallerRep",A="FL:::/Kernel/KDbg.CPP.Z,152",BI=64$
    -$LK,"CH_CTRLS",A="FL:::/Kernel/KernelA.HPP,3495"$
    -$LK,"ROP_EQU",A="FL:::/Kernel/KernelA.HPP,2933"$
    -$LK,"DOCEf_LST",A="FL:::/Kernel/KernelA.HPP,1101"$
    -$LK,"CtrlAltD",A="FL:::/Kernel/KeyDev.CPP.Z,136",BI=65$
    -$LK,"RandI64",A="FL:::/Kernel/KMathB.CPP.Z,106",BI=66$
    -$LK,"CH_CTRLT",A="FL:::/Kernel/KernelA.HPP,3496"$
    -$LK,"MBS_UNUSED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2849"$
    -$LK,"CCmpGlbls",A="FL:::/Kernel/KernelA.HPP,2212"$
    -$LK,"RT_U32",A="FL:::/Kernel/KernelA.HPP,1558"$
    -$LK,"RT_U16",A="FL:::/Kernel/KernelA.HPP,1556"$
    -$LK,"CExternUsage",A="FL:::/Kernel/KernelA.HPP,815"$
    -$LK,"FAT32FreeClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,413",BI=67$
    -$LK,"CtrlAltE",A="FL:::/Kernel/KeyDev.CPP.Z,146",BI=68$
    -$LK,"CH_CTRLU",A="FL:::/Kernel/KernelA.HPP,3497"$
    -$LK,"ARGT_MM32",A="FL:::/Kernel/KernelA.HPP,1937"$
    -$LK,"DOCSS_COMMENT",A="FL:::/Kernel/KernelA.HPP,1129"$
    -$LK,"CtrlAltF",A="FL:::/Kernel/KeyDev.CPP.Z,151",BI=69$
    +$LK,"CtrlAltC",A="FL:::/Kernel/KeyDev.CPP.Z,133",BI=65$
    +$LK,"CallerRep",A="FL:::/Kernel/KDbg.CPP.Z,152",BI=66$
    +$LK,"CH_CTRLS",A="FL:::/Kernel/KernelA.HPP,3501"$
    +$LK,"ROP_EQU",A="FL:::/Kernel/KernelA.HPP,2939"$
    +$LK,"DOCEf_LST",A="FL:::/Kernel/KernelA.HPP,1103"$
    +$LK,"CtrlAltD",A="FL:::/Kernel/KeyDev.CPP.Z,138",BI=67$
    +$LK,"RandI64",A="FL:::/Kernel/KMathB.CPP.Z,106",BI=68$
    +$LK,"CH_CTRLT",A="FL:::/Kernel/KernelA.HPP,3502"$
    +$LK,"MBS_UNUSED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2855"$
    +$LK,"CCmpGlbls",A="FL:::/Kernel/KernelA.HPP,2215"$
    +$LK,"RT_U32",A="FL:::/Kernel/KernelA.HPP,1560"$
    +$LK,"RT_U16",A="FL:::/Kernel/KernelA.HPP,1558"$
    +$LK,"CExternUsage",A="FL:::/Kernel/KernelA.HPP,817"$
    +$LK,"FAT32FreeClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,413",BI=69$
    +$LK,"CH_CTRLU",A="FL:::/Kernel/KernelA.HPP,3503"$
    +$LK,"ARGT_MM32",A="FL:::/Kernel/KernelA.HPP,1939"$
    +$LK,"DOCSS_COMMENT",A="FL:::/Kernel/KernelA.HPP,1131"$
    +$LK,"CtrlAltF",A="FL:::/Kernel/KeyDev.CPP.Z,148",BI=70$
     $LK,"ip_grid",A="FL:::/Kernel/KGlbls.CPP.Z,23"$
    -$LK,"CH_CTRLV",A="FL:::/Kernel/KernelA.HPP,3498"$
    -$LK,"CCodeMisc",A="FL:::/Kernel/KernelA.HPP,1703"$
    -$LK,"DOF_DONT_TEXT_ATTR",A="FL:::/Kernel/KernelA.HPP,1217"$
    -$LK,"DOCEf_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1044"$
    -$LK,"DOCEF_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1038"$
    -$LK,"DrvFATBlkSet",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,93",BI=70$
    -$LK,"ISODrvInit",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,5",BI=71$
    -$LK,"CH_CTRLW",A="FL:::/Kernel/KernelA.HPP,3499"$
    -$LK,"FFB_NEXT_BLK",A="FL:::/Kernel/KernelA.HPP,2770"$
    -$LK,"ISO1FromName",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,88",BI=72$
    -$LK,"MPIntAll",A="FL:::/Kernel/MultiProc.CPP.Z,149",BI=73$
    +$LK,"CH_CTRLV",A="FL:::/Kernel/KernelA.HPP,3504"$
    +$LK,"CCodeMisc",A="FL:::/Kernel/KernelA.HPP,1705"$
    +$LK,"DOF_DONT_TEXT_ATTR",A="FL:::/Kernel/KernelA.HPP,1219"$
    +$LK,"DOCEf_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1046"$
    +$LK,"DOCEF_WORD_WRAP",A="FL:::/Kernel/KernelA.HPP,1040"$
    +$LK,"DrvFATBlkSet",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,102",BI=71$
    +$LK,"ISODrvInit",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,5",BI=72$
    +$LK,"CH_CTRLW",A="FL:::/Kernel/KernelA.HPP,3505"$
    +$LK,"FFB_NEXT_BLK",A="FL:::/Kernel/KernelA.HPP,2776"$
    +$LK,"ISO1FromName",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,28",BI=73$
    +$LK,"MPIntAll",A="FL:::/Kernel/MultiProc.CPP.Z,149",BI=74$
     $LK,"TaskContextRestore",A="FL:::/Kernel/Sched.CPP.Z,283"$
    -$LK,"SCf_ALT",A="FL:::/Kernel/KernelA.HPP,3519"$
    -$LK,"CH_CTRLX",A="FL:::/Kernel/KernelA.HPP,3500"$
    -$LK,"CH_CTRLY",A="FL:::/Kernel/KernelA.HPP,3501"$
    -$LK,"CDoc",A="FL:::/Kernel/KernelA.HPP,1352"$
    -$LK,"MemSetU8",A="FL:::/Kernel/KernelB.HPP,179"$
    +$LK,"SCf_ALT",A="FL:::/Kernel/KernelA.HPP,3525"$
    +$LK,"CH_CTRLX",A="FL:::/Kernel/KernelA.HPP,3506"$
    +$LK,"CH_CTRLY",A="FL:::/Kernel/KernelA.HPP,3507"$
    +$LK,"CDoc",A="FL:::/Kernel/KernelA.HPP,1354"$
    +$LK,"MemSetU8",A="FL:::/Kernel/KernelB.HPP,178"$
     $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,3890"$
    -$LK,"CH_CTRLZ",A="FL:::/Kernel/KernelA.HPP,3502"$
    -$LK,"CHashGeneric",A="FL:::/Kernel/KernelA.HPP,731"$
    +$LK,"ARf_CSPRITE_INS_CLIPBOARD",A="FL:::/Kernel/KernelA.HPP,3898"$
    +$LK,"CH_CTRLZ",A="FL:::/Kernel/KernelA.HPP,3508"$
    +$LK,"CHashGeneric",A="FL:::/Kernel/KernelA.HPP,733"$
     $LK,"SYS_FIND_PCIBIOS_SERVICE_DIR",A="FL:::/Kernel/PCIBIOS.CPP.Z,8"$
    -$LK,"CTRLF_CLICKED",A="FL:::/Kernel/KernelA.HPP,3087"$
    -$LK,"HTF_RESOLVE",A="FL:::/Kernel/KernelA.HPP,705"$
    -$LK,"BCnt",A="FL:::/Kernel/KMisc.CPP.Z,39",BI=74$
    -$LK,"Mem64DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,128",BI=75$
    -$LK,"Mem32DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,78",BI=76$
    -$LK,"RT_U64",A="FL:::/Kernel/KernelA.HPP,1561"$
    -$LK,"DOCT_TAB",A="FL:::/Kernel/KernelA.HPP,903"$
    -$LK,"HTT_FRAME_PTR",A="FL:::/Kernel/KernelA.HPP,696"$
    -$LK,"HTt_FRAME_PTR",A="FL:::/Kernel/KernelA.HPP,666"$
    -$LK,"ISO1FilesFind",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,233",BI=77$
    -$LK,"CtrlAltM",A="FL:::/Kernel/KeyDev.CPP.Z,156",BI=78$
    -$LK,"DefineLstLoad",A="FL:::/Kernel/KDefine.CPP.Z,13",BI=79$
    -$LK,"ARGT_MM64",A="FL:::/Kernel/KernelA.HPP,1938"$
    -$LK,"DOCEf_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,1069"$
    -$LK,"DOCEF_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,981"$
    -$LK,"RFLAGf_DIR",A="FL:::/Kernel/KernelA.HPP,313"$
    -$LK,"ClusterNumNext",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,1",BI=80$
    -$LK,"KbdMouseEvtTime",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,486",BI=81$
    +$LK,"CTRLF_CLICKED",A="FL:::/Kernel/KernelA.HPP,3093"$
    +$LK,"HTF_RESOLVE",A="FL:::/Kernel/KernelA.HPP,707"$
    +$LK,"BCnt",A="FL:::/Kernel/KMisc.CPP.Z,39",BI=75$
    +$LK,"Mem64DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,128",BI=76$
    +$LK,"Mem32DevAlloc",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,78",BI=77$
    +$LK,"RT_U64",A="FL:::/Kernel/KernelA.HPP,1563"$
    +$LK,"DOCT_TAB",A="FL:::/Kernel/KernelA.HPP,905"$
    +$LK,"HTT_FRAME_PTR",A="FL:::/Kernel/KernelA.HPP,698"$
    +$LK,"HTt_FRAME_PTR",A="FL:::/Kernel/KernelA.HPP,668"$
    +$LK,"ISO1FilesFind",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,173",BI=78$
    +$LK,"CtrlAltM",A="FL:::/Kernel/KeyDev.CPP.Z,153",BI=79$
    +$LK,"DefineLstLoad",A="FL:::/Kernel/KDefine.CPP.Z,13",BI=80$
    +$LK,"ARGT_MM64",A="FL:::/Kernel/KernelA.HPP,1940"$
    +$LK,"DOCEf_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,1071"$
    +$LK,"DOCEF_LEFT_CB",A="FL:::/Kernel/KernelA.HPP,983"$
    +$LK,"RFLAGf_DIR",A="FL:::/Kernel/KernelA.HPP,314"$
    +$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,"CtrlAltN",A="FL:::/Kernel/KeyDev.CPP.Z,158",BI=83$
     $LK,"ip_last",A="FL:::/Kernel/KGlbls.CPP.Z,24"$
    -$LK,"CDirEntry",A="FL:::/Kernel/KernelA.HPP,2550"$
    -$LK,"TK_STR",A="FL:::/Kernel/KernelA.HPP,2072"$
    -$LK,"ACD_DEF_END",A="FL:::/Kernel/KernelA.HPP,1504"$
    -$LK,"PROGRESS_DESC_LEN",A="FL:::/Kernel/KernelA.HPP,3899"$
    -$LK,"CCF_ASM_EXPRESSIONS",A="FL:::/Kernel/KernelA.HPP,2143"$
    -$LK,"D3Sub",A="FL:::/Kernel/KernelB.HPP,160"$
    -$LK,"SC_CURSOR_RIGHT",A="FL:::/Kernel/KernelA.HPP,3562"$
    -$LK,"KeyDevAdd",A="FL:::/Kernel/KeyDev.CPP.Z,64",BI=82$
    -$LK,"CTRLF_BORDER",A="FL:::/Kernel/KernelA.HPP,3084"$
    +$LK,"CDirEntry",A="FL:::/Kernel/KernelA.HPP,2551"$
    +$LK,"TK_STR",A="FL:::/Kernel/KernelA.HPP,2074"$
    +$LK,"ACD_DEF_END",A="FL:::/Kernel/KernelA.HPP,1506"$
    +$LK,"PROGRESS_DESC_LEN",A="FL:::/Kernel/KernelA.HPP,3907"$
    +$LK,"CCF_ASM_EXPRESSIONS",A="FL:::/Kernel/KernelA.HPP,2146"$
    +$LK,"D3Sub",A="FL:::/Kernel/KernelB.HPP,159"$
    +$LK,"SC_CURSOR_RIGHT",A="FL:::/Kernel/KernelA.HPP,3568"$
    +$LK,"KeyDevAdd",A="FL:::/Kernel/KeyDev.CPP.Z,70",BI=84$
    +$LK,"CTRLF_BORDER",A="FL:::/Kernel/KernelA.HPP,3090"$
     $LK,"_D3_EQU",A="FL:::/Kernel/KMathA.CPP.Z,226"$
    -$LK,"VGAP_ATTR_DATA_READ",A="FL:::/Kernel/KernelA.HPP,3721"$
    -$LK,"ATA_PACKET",A="FL:::/Kernel/KernelA.HPP,2257"$
    -$LK,"HTF_LOCAL",A="FL:::/Kernel/KernelA.HPP,707"$
    -$LK,"HTT_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HPP,690"$
    -$LK,"HTf_LOCAL",A="FL:::/Kernel/KernelA.HPP,677"$
    -$LK,"CtrlAltT",A="FL:::/Kernel/KeyDev.CPP.Z,161",BI=83$
    -$LK,"IsSilent",A="FL:::/Kernel/KMisc.CPP.Z,223",BI=84$
    -$LK,"CBpt",A="FL:::/Kernel/KernelA.HPP,3149"$
    -$LK,"HTt_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HPP,660"$
    -$LK,"PCIWriteU32",A="FL:::/Kernel/PCIBIOS.CPP.Z,250",BI=85$
    -$LK,"PCIWriteU16",A="FL:::/Kernel/PCIBIOS.CPP.Z,235",BI=86$
    -$LK,"CtrlAltV",A="FL:::/Kernel/KeyDev.CPP.Z,166",BI=87$
    -$LK,"CISO1DirEntry",A="FL:::/Kernel/KernelA.HPP,2455"$
    +$LK,"VGAP_ATTR_DATA_READ",A="FL:::/Kernel/KernelA.HPP,3728"$
    +$LK,"ATA_PACKET",A="FL:::/Kernel/KernelA.HPP,2260"$
    +$LK,"HTF_LOCAL",A="FL:::/Kernel/KernelA.HPP,709"$
    +$LK,"HTT_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HPP,692"$
    +$LK,"HTf_LOCAL",A="FL:::/Kernel/KernelA.HPP,679"$
    +$LK,"CtrlAltT",A="FL:::/Kernel/KeyDev.CPP.Z,163",BI=85$
    +$LK,"IsSilent",A="FL:::/Kernel/KMisc.CPP.Z,223",BI=86$
    +$LK,"CBpt",A="FL:::/Kernel/KernelA.HPP,3155"$
    +$LK,"HTt_ASM_KEYWORD",A="FL:::/Kernel/KernelA.HPP,662"$
    +$LK,"PCIWriteU32",A="FL:::/Kernel/PCIBIOS.CPP.Z,250",BI=87$
    +$LK,"PCIWriteU16",A="FL:::/Kernel/PCIBIOS.CPP.Z,235",BI=88$
    +$LK,"CtrlAltV",A="FL:::/Kernel/KeyDev.CPP.Z,168",BI=89$
    +$LK,"CISO1DirEntry",A="FL:::/Kernel/KernelA.HPP,2457"$
     $LK,"_LXCHG_U8",A="FL:::/Kernel/KUtils.CPP.Z,244"$
    -$LK,"CtrlAltX",A="FL:::/Kernel/KeyDev.CPP.Z,171",BI=88$
    -$LK,"ChgDsk",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,200",BI=89$
    -$LK,"UserTaskCont",A="FL:::/Kernel/KTask.CPP.Z,350",BI=90$
    -$LK,"RFLAGf_NESTED_TASK",A="FL:::/Kernel/KernelA.HPP,317"$
    +$LK,"CtrlAltX",A="FL:::/Kernel/KeyDev.CPP.Z,173",BI=90$
    +$LK,"ChgDsk",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,213",BI=91$
    +$LK,"UserTaskCont",A="FL:::/Kernel/KTask.CPP.Z,352",BI=92$
    +$LK,"RFLAGf_NESTED_TASK",A="FL:::/Kernel/KernelA.HPP,318"$
     $LK,"BEqu",A="FL:::/Kernel/KernelB.HPP,28"$
    -$LK,"ISO1T_PRI_VOL_DESC",A="FL:::/Kernel/KernelA.HPP,2476"$
    -$LK,"FAT32MkDir",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,933",BI=91$
    -$LK,"DCS_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3641"$
    -$LK,"ICF_USE_INT",A="FL:::/Kernel/KernelA.HPP,1597"$
    -$LK,"DOCT_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,899"$
    -$LK,"BIN_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,370"$
    -$LK,"ARGT_IMM8",A="FL:::/Kernel/KernelA.HPP,1882"$
    +$LK,"ISO1T_PRI_VOL_DESC",A="FL:::/Kernel/KernelA.HPP,2478"$
    +$LK,"FAT32MkDir",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,933",BI=93$
    +$LK,"DCS_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3648"$
    +$LK,"ICF_USE_INT",A="FL:::/Kernel/KernelA.HPP,1599"$
    +$LK,"DOCT_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,901"$
    +$LK,"BIN_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,371"$
    +$LK,"ARGT_IMM8",A="FL:::/Kernel/KernelA.HPP,1884"$
     $LK,"SYS_HASH_SINGLE_TABLE_FIND1",A="FL:::/Kernel/KHashA.CPP.Z,30"$
    -$LK,"DOC_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,1341"$
    -$LK,"DOCEF_INVERT",A="FL:::/Kernel/KernelA.HPP,1040"$
    -$LK,"CDateStruct",A="FL:::/Kernel/KernelA.HPP,191"$
    -$LK,"CHashFun",A="FL:::/Kernel/KernelA.HPP,854"$
    -$LK,"SV_I_REG",A="FL:::/Kernel/KernelA.HPP,1739"$
    -$LK,"DOCEf_INVERT",A="FL:::/Kernel/KernelA.HPP,1046"$
    -$LK,"DayOfWeek",A="FL:::/Kernel/KDate.CPP.Z,30",BI=92$
    -$LK,"CDrv",A="FL:::/Kernel/KernelA.HPP,2711"$
    -$LK,"TK_MINUS_MINUS",A="FL:::/Kernel/KernelA.HPP,2077"$
    -$LK,"DOCT_LST",A="FL:::/Kernel/KernelA.HPP,929"$
    -$LK,"JobResGet",A="FL:::/Kernel/SrvCmd.CPP.Z,198",BI=93$
    -$LK,"sys_heap_init_flag",A="FL:::/Kernel/KernelB.HPP,181"$
    -$LK,"FUF_CANCEL",A="FL:::/Kernel/KernelA.HPP,2597"$
    -$LK,"FUf_CANCEL",A="FL:::/Kernel/KernelA.HPP,2571"$
    -$LK,"FALSE",A="FL:::/Kernel/KernelA.HPP,19"$
    -$LK,"VGAP_REG_READ",A="FL:::/Kernel/KernelA.HPP,3726"$
    -$LK,"SVCf_ADD_TO_QUE",A="FL:::/Kernel/KernelA.HPP,3178"$
    -$LK,"CUAsmGlbls",A="FL:::/Kernel/KernelA.HPP,2227"$
    -$LK,"TK_ADD_EQU",A="FL:::/Kernel/KernelA.HPP,2096"$
    -$LK,"TK_XOR_EQU",A="FL:::/Kernel/KernelA.HPP,2095"$
    -$LK,"StrPrintHex",A="FL:::/Kernel/StrA.CPP.Z,1",BI=94$
    +$LK,"DOC_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,1343"$
    +$LK,"DOCEF_INVERT",A="FL:::/Kernel/KernelA.HPP,1042"$
    +$LK,"CDateStruct",A="FL:::/Kernel/KernelA.HPP,192"$
    +$LK,"CHashFun",A="FL:::/Kernel/KernelA.HPP,856"$
    +$LK,"SV_I_REG",A="FL:::/Kernel/KernelA.HPP,1741"$
    +$LK,"DOCEf_INVERT",A="FL:::/Kernel/KernelA.HPP,1048"$
    +$LK,"DayOfWeek",A="FL:::/Kernel/KDate.CPP.Z,30",BI=94$
    +$LK,"CDrv",A="FL:::/Kernel/KernelA.HPP,2716"$
    +$LK,"TK_MINUS_MINUS",A="FL:::/Kernel/KernelA.HPP,2079"$
    +$LK,"DOCT_LST",A="FL:::/Kernel/KernelA.HPP,931"$
    +$LK,"JobResGet",A="FL:::/Kernel/SrvCmd.CPP.Z,198",BI=95$
    +$LK,"sys_heap_init_flag",A="FL:::/Kernel/KernelB.HPP,180"$
    +$LK,"FUF_CANCEL",A="FL:::/Kernel/KernelA.HPP,2598"$
    +$LK,"FUf_CANCEL",A="FL:::/Kernel/KernelA.HPP,2572"$
    +$LK,"FALSE",A="FL:::/Kernel/KernelA.HPP,20"$
    +$LK,"VGAP_REG_READ",A="FL:::/Kernel/KernelA.HPP,3733"$
    +$LK,"SVCf_ADD_TO_QUE",A="FL:::/Kernel/KernelA.HPP,3184"$
    +$LK,"CUAsmGlbls",A="FL:::/Kernel/KernelA.HPP,2230"$
    +$LK,"TK_ADD_EQU",A="FL:::/Kernel/KernelA.HPP,2098"$
    +$LK,"TK_XOR_EQU",A="FL:::/Kernel/KernelA.HPP,2097"$
    +$LK,"StrPrintHex",A="FL:::/Kernel/StrA.CPP.Z,1",BI=96$
     $LK,"_D3_ADD_EQU",A="FL:::/Kernel/KMathA.CPP.Z,239"$
    -$LK,"DRV_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2710"$
    -$LK,"DOCT_PMT",A="FL:::/Kernel/KernelA.HPP,916"$
    -$LK,"Cf_EXTERN",A="FL:::/Kernel/KernelA.HPP,828"$
    -$LK,"HPET_GCAP_ID",A="FL:::/Kernel/KernelA.HPP,531"$
    -$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,2266"$
    -$LK,"CHashReg",A="FL:::/Kernel/KernelA.HPP,746"$
    -$LK,"SCf_INS",A="FL:::/Kernel/KernelA.HPP,3527"$
    -$LK,"LAPIC_LVT_ERR",A="FL:::/Kernel/KernelA.HPP,501"$
    -$LK,"Scale2Mem",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,182",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,"DRV_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2715"$
    +$LK,"DOCT_PMT",A="FL:::/Kernel/KernelA.HPP,918"$
    +$LK,"Cf_EXTERN",A="FL:::/Kernel/KernelA.HPP,830"$
    +$LK,"HPET_GCAP_ID",A="FL:::/Kernel/KernelA.HPP,533"$
    +$LK,"ATan",A="FL:::/Kernel/KernelB.HPP,95"$
    +$LK,"SysBadFree",A="FL:::/Kernel/Mem/Mem512.CPP.Z,1",BI=97$
    +$LK,"ATA_ID_DEV",A="FL:::/Kernel/KernelA.HPP,2269"$
    +$LK,"CHashReg",A="FL:::/Kernel/KernelA.HPP,748"$
    +$LK,"SCf_INS",A="FL:::/Kernel/KernelA.HPP,3533"$
    +$LK,"LAPIC_LVT_ERR",A="FL:::/Kernel/KernelA.HPP,503"$
    +$LK,"Scale2Mem",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,182",BI=98$
    +$LK,"Mem512TaskFree",A="FL:::/Kernel/Mem/Mem512.CPP.Z,153",BI=99$
    +$LK,"RandU32",A="FL:::/Kernel/KMathB.CPP.Z,98",BI=100$
    +$LK,"RandU16",A="FL:::/Kernel/KMathB.CPP.Z,82",BI=101$
     $LK,"_FLDCW",A="FL:::/Kernel/KMathA.CPP.Z,625"$
    -$LK,"__DIR__",A="FL:::/Kernel/KernelA.HPP,2031"$
    -$LK,"ARGT_RM32",A="FL:::/Kernel/KernelA.HPP,1899"$
    -$LK,"ARGT_RM16",A="FL:::/Kernel/KernelA.HPP,1898"$
    -$LK,"RFLAGf_INT",A="FL:::/Kernel/KernelA.HPP,312"$
    -$LK,"WIf_SELF_DOC",A="FL:::/Kernel/KernelA.HPP,1443"$
    -$LK,"WIF_SELF_DOC",A="FL:::/Kernel/KernelA.HPP,1417"$
    -$LK,"MLF_STATIC",A="FL:::/Kernel/KernelA.HPP,778"$
    -$LK,"ChgExt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,193",BI=100$
    +$LK,"__DIR__",A="FL:::/Kernel/KernelA.HPP,2033"$
    +$LK,"ARGT_RM32",A="FL:::/Kernel/KernelA.HPP,1901"$
    +$LK,"ARGT_RM16",A="FL:::/Kernel/KernelA.HPP,1900"$
    +$LK,"RFLAGf_INT",A="FL:::/Kernel/KernelA.HPP,313"$
    +$LK,"WIf_SELF_DOC",A="FL:::/Kernel/KernelA.HPP,1445"$
    +$LK,"WIF_SELF_DOC",A="FL:::/Kernel/KernelA.HPP,1419"$
    +$LK,"MLF_STATIC",A="FL:::/Kernel/KernelA.HPP,780"$
    +$LK,"ChgExt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,199",BI=102$
     $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,2108"$
    +$LK,"RedSeaFilesFind",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,539",BI=103$
    +$LK,"TK_INS_BIN",A="FL:::/Kernel/KernelA.HPP,2110"$
     $LK,"_D3_MUL",A="FL:::/Kernel/KMathA.CPP.Z,167"$
    -$LK,"ISO1_BASE_YEAR",A="FL:::/Kernel/KernelA.HPP,2518"$
    -$LK,"TK_ELSE",A="FL:::/Kernel/KernelA.HPP,2104"$
    -$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,1900"$
    -$LK,"ATAGetRes",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,67",BI=105$
    -$LK,"ATAWaitDRQ",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,36",BI=106$
    -$LK,"TaskInit",A="FL:::/Kernel/KTask.CPP.Z,150",BI=107$
    -$LK,"DOCEf_RIGHT_CB",A="FL:::/Kernel/KernelA.HPP,1071"$
    -$LK,"DOCEF_RIGHT_CB",A="FL:::/Kernel/KernelA.HPP,983"$
    -$LK,"HTT_DICT_WORD",A="FL:::/Kernel/KernelA.HPP,688"$
    -$LK,"HTt_DICT_WORD",A="FL:::/Kernel/KernelA.HPP,658"$
    -$LK,"RLf_MP",A="FL:::/Kernel/KernelA.HPP,446"$
    -$LK,"CSpring",A="FL:::/Kernel/KernelA.HPP,225"$
    -$LK,"CBGR24",A="FL:::/Kernel/KernelA.HPP,2981"$
    -$LK,"FONT_WIDTH",A="FL:::/Kernel/KernelA.HPP,3602"$
    -$LK,"CHeapCtrl",A="FL:::/Kernel/KernelA.HPP,2899"$
    -$LK,"LastDayOfYear",A="FL:::/Kernel/KDate.CPP.Z,110",BI=108$
    +$LK,"ISO1_BASE_YEAR",A="FL:::/Kernel/KernelA.HPP,2520"$
    +$LK,"TK_ELSE",A="FL:::/Kernel/KernelA.HPP,2106"$
    +$LK,"RandU64",A="FL:::/Kernel/KMathB.CPP.Z,114",BI=104$
    +$LK,"PostMsgWait",A="FL:::/Kernel/SrvCmd.CPP.Z,251",BI=105$
    +$LK,"UndefinedDefine",A="FL:::/Kernel/KDefine.CPP.Z,43",BI=106$
    +$LK,"ARGT_RM64",A="FL:::/Kernel/KernelA.HPP,1902"$
    +$LK,"ATAGetRes",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,67",BI=107$
    +$LK,"ATAWaitDRQ",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,36",BI=108$
    +$LK,"TaskInit",A="FL:::/Kernel/KTask.CPP.Z,150",BI=109$
    +$LK,"DOCEf_RIGHT_CB",A="FL:::/Kernel/KernelA.HPP,1073"$
    +$LK,"DOCEF_RIGHT_CB",A="FL:::/Kernel/KernelA.HPP,985"$
    +$LK,"HTT_DICT_WORD",A="FL:::/Kernel/KernelA.HPP,690"$
    +$LK,"HTt_DICT_WORD",A="FL:::/Kernel/KernelA.HPP,660"$
    +$LK,"RLf_MP",A="FL:::/Kernel/KernelA.HPP,448"$
    +$LK,"CSpring",A="FL:::/Kernel/KernelA.HPP,226"$
    +$LK,"CBGR24",A="FL:::/Kernel/KernelA.HPP,2987"$
    +$LK,"FONT_WIDTH",A="FL:::/Kernel/KernelA.HPP,3609"$
    +$LK,"CHeapCtrl",A="FL:::/Kernel/KernelA.HPP,2905"$
    +$LK,"LastDayOfYear",A="FL:::/Kernel/KDate.CPP.Z,110",BI=110$
     $LK,"SYS_IDLE_PT",A="FL:::/Kernel/Sched.CPP.Z,204"$
    -$LK,"mp_cnt_initial",A="FL:::/Kernel/KernelB.HPP,229"$
    -$LK,"STD_DISTRO_DVD_CFG",A="FL:::/Kernel/KernelA.HPP,3885"$
    -$LK,"CAbsCntsI64",A="FL:::/Kernel/KernelA.HPP,1804"$
    -$LK,"Core0StartMP",A="FL:::/Kernel/MultiProc.CPP.Z,284",BI=109$
    +$LK,"mp_cnt_initial",A="FL:::/Kernel/KernelB.HPP,228"$
    +$LK,"STD_DISTRO_DVD_CFG",A="FL:::/Kernel/KernelA.HPP,3893"$
    +$LK,"CAbsCntsI64",A="FL:::/Kernel/KernelA.HPP,1806"$
    +$LK,"Core0StartMP",A="FL:::/Kernel/MultiProc.CPP.Z,284",BI=111$
     $LK,"_D3_SUB",A="FL:::/Kernel/KMathA.CPP.Z,149"$
    -$LK,"CBGR48",A="FL:::/Kernel/KernelA.HPP,2985"$
    -$LK,"DOCEF_BORDER_PLOT",A="FL:::/Kernel/KernelA.HPP,1002"$
    -$LK,"IntCore0TimerHandler",A="FL:::/Kernel/KMisc.CPP.Z,47",BI=110$
    -$LK,"__DATE__",A="FL:::/Kernel/KernelA.HPP,2023"$
    +$LK,"CBGR48",A="FL:::/Kernel/KernelA.HPP,2991"$
    +$LK,"DOCEF_BORDER_PLOT",A="FL:::/Kernel/KernelA.HPP,1004"$
    +$LK,"IntCore0TimerHandler",A="FL:::/Kernel/KMisc.CPP.Z,47",BI=112$
    +$LK,"__DATE__",A="FL:::/Kernel/KernelA.HPP,2025"$
     $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,197"$
    -$LK,"DOCEf_BORDER_PLOT",A="FL:::/Kernel/KernelA.HPP,1090"$
    -$LK,"HTT_MODULE",A="FL:::/Kernel/KernelA.HPP,694"$
    -$LK,"HTt_MODULE",A="FL:::/Kernel/KernelA.HPP,664"$
    -$LK,"SVCf_HIGHEST_PRIORITY",A="FL:::/Kernel/KernelA.HPP,3173"$
    -$LK,"ARGT_REL8",A="FL:::/Kernel/KernelA.HPP,1878"$
    -$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,2126"$
    -$LK,"ACD_EXTRA",A="FL:::/Kernel/KernelA.HPP,1509"$
    -$LK,"WIf_SELF_ODE",A="FL:::/Kernel/KernelA.HPP,1444"$
    -$LK,"WIF_SELF_ODE",A="FL:::/Kernel/KernelA.HPP,1418"$
    -$LK,"MLF_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HPP,772"$
    +$LK,"AdamErr",A="FL:::/Kernel/SrvCmd.CPP.Z,434",BI=113$
    +$LK,"sys_focus_task",A="FL:::/Kernel/KernelB.HPP,196"$
    +$LK,"DOCEf_BORDER_PLOT",A="FL:::/Kernel/KernelA.HPP,1092"$
    +$LK,"HTT_MODULE",A="FL:::/Kernel/KernelA.HPP,696"$
    +$LK,"HTt_MODULE",A="FL:::/Kernel/KernelA.HPP,666"$
    +$LK,"SVCf_HIGHEST_PRIORITY",A="FL:::/Kernel/KernelA.HPP,3179"$
    +$LK,"ARGT_REL8",A="FL:::/Kernel/KernelA.HPP,1880"$
    +$LK,"GridInit",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,1",BI=114$
    +$LK,"FirstDayOfYear",A="FL:::/Kernel/KDate.CPP.Z,98",BI=115$
    +$LK,"CCf_PMT",A="FL:::/Kernel/KernelA.HPP,2129"$
    +$LK,"ACD_EXTRA",A="FL:::/Kernel/KernelA.HPP,1511"$
    +$LK,"WIf_SELF_ODE",A="FL:::/Kernel/KernelA.HPP,1446"$
    +$LK,"WIF_SELF_ODE",A="FL:::/Kernel/KernelA.HPP,1420"$
    +$LK,"MLF_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HPP,774"$
     $LK,"COREAP_16BIT_INIT",A="FL:::/Kernel/MultiProc.CPP.Z,9"$
    -$LK,"SCf_NUM",A="FL:::/Kernel/KernelA.HPP,3521"$
    -$LK,"RS_ATTR_RESIDENT",A="FL:::/Kernel/KernelA.HPP,2533"$
    -$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,2934"$
    -$LK,"NULL",A="FL:::/Kernel/KernelA.HPP,17"$
    -$LK,"BlkPoolInit",A="FL:::/Kernel/Mem/BlkPool.CPP.Z,18",BI=116$
    +$LK,"SCf_NUM",A="FL:::/Kernel/KernelA.HPP,3527"$
    +$LK,"RS_ATTR_RESIDENT",A="FL:::/Kernel/KernelA.HPP,2535"$
    +$LK,"Dbg2",A="FL:::/Kernel/KDbg.CPP.Z,533",BI=116$
    +$LK,"HashSrcFileSet",A="FL:::/Kernel/KHashB.CPP.Z,154",BI=117$
    +$LK,"ROP_XOR",A="FL:::/Kernel/KernelA.HPP,2940"$
    +$LK,"NULL",A="FL:::/Kernel/KernelA.HPP,18"$
    +$LK,"BlkPoolInit",A="FL:::/Kernel/Mem/BlkPool.CPP.Z,18",BI=118$
     $LK,"_BIT_FIELD_EXTRACT_U32",A="FL:::/Kernel/KUtils.CPP.Z,167"$
    -$LK,"BDF_EXT_SIZE",A="FL:::/Kernel/KernelA.HPP,2641"$
    -$LK,"ProgressBarsRst",A="FL:::/Kernel/KMisc.CPP.Z,270",BI=117$
    -$LK,"TASKf_PENDING_BREAK",A="FL:::/Kernel/KernelA.HPP,3283"$
    -$LK,"BDf_EXT_SIZE",A="FL:::/Kernel/KernelA.HPP,2651"$
    -$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,2876"$
    -$LK,"DOCEF_UPDATE_DATA",A="FL:::/Kernel/KernelA.HPP,1006"$
    -$LK,"AdamLog",A="FL:::/Kernel/SrvCmd.CPP.Z,424",BI=119$
    -$LK,"TASKf_KILL_TASK",A="FL:::/Kernel/KernelA.HPP,3274"$
    -$LK,"ACD_H1",A="FL:::/Kernel/KernelA.HPP,1501"$
    -$LK,"Ff_RET1",A="FL:::/Kernel/KernelA.HPP,852"$
    -$LK,"SVCT_SPAWN_TASK",A="FL:::/Kernel/KernelA.HPP,3185"$
    -$LK,"RS_ATTR_ARCHIVE",A="FL:::/Kernel/KernelA.HPP,2528"$
    -$LK,"DOCEf_UPDATE_DATA",A="FL:::/Kernel/KernelA.HPP,1094"$
    -$LK,"EXT_DBG_RESUME",A="FL:::/Kernel/KernelA.HPP,577"$
    -$LK,"FSt_FAT32",A="FL:::/Kernel/KernelA.HPP,2681"$
    -$LK,"OPTf_WARN_PAREN",A="FL:::/Kernel/KernelA.HPP,1537"$
    -$LK,"TaskStkNew",A="FL:::/Kernel/KTask.CPP.Z,68",BI=120$
    -$LK,"RT_PTR",A="FL:::/Kernel/KernelA.HPP,1560"$
    -$LK,"HashTableDel",A="FL:::/Kernel/KHashB.CPP.Z,90",BI=121$
    +$LK,"BDF_EXT_SIZE",A="FL:::/Kernel/KernelA.HPP,2643"$
    +$LK,"ProgressBarsRst",A="FL:::/Kernel/KMisc.CPP.Z,270",BI=119$
    +$LK,"sys_boot_blk",A="FL:::/Kernel/KernelB.HPP,38"$
    +$LK,"TASKf_PENDING_BREAK",A="FL:::/Kernel/KernelA.HPP,3289"$
    +$LK,"BDf_EXT_SIZE",A="FL:::/Kernel/KernelA.HPP,2653"$
    +$LK,"RedSeaAllocClusters",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,302",BI=120$
    +$LK,"CQue",A="FL:::/Kernel/KernelA.HPP,121"$
    +$LK,"MEM_ADAM_STK",A="FL:::/Kernel/KernelA.HPP,2882"$
    +$LK,"DOCEF_UPDATE_DATA",A="FL:::/Kernel/KernelA.HPP,1008"$
    +$LK,"AdamLog",A="FL:::/Kernel/SrvCmd.CPP.Z,424",BI=121$
    +$LK,"TASKf_KILL_TASK",A="FL:::/Kernel/KernelA.HPP,3280"$
    +$LK,"ACD_H1",A="FL:::/Kernel/KernelA.HPP,1503"$
    +$LK,"Ff_RET1",A="FL:::/Kernel/KernelA.HPP,854"$
    +$LK,"SVCT_SPAWN_TASK",A="FL:::/Kernel/KernelA.HPP,3191"$
    +$LK,"RS_ATTR_ARCHIVE",A="FL:::/Kernel/KernelA.HPP,2530"$
    +$LK,"DOCEf_UPDATE_DATA",A="FL:::/Kernel/KernelA.HPP,1096"$
    +$LK,"EXT_DBG_RESUME",A="FL:::/Kernel/KernelA.HPP,579"$
    +$LK,"FSt_FAT32",A="FL:::/Kernel/KernelA.HPP,2686"$
    +$LK,"OPTf_WARN_PAREN",A="FL:::/Kernel/KernelA.HPP,1539"$
    +$LK,"TaskStkNew",A="FL:::/Kernel/KTask.CPP.Z,68",BI=122$
    +$LK,"RT_PTR",A="FL:::/Kernel/KernelA.HPP,1562"$
    +$LK,"HashTableDel",A="FL:::/Kernel/KHashB.CPP.Z,90",BI=123$
     $LK,"LBtc",A="FL:::/Kernel/KernelB.HPP,22"$
    -$LK,"FUF_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HPP,2611"$
    -$LK,"ClampI64",A="FL:::/Kernel/KernelB.HPP,124"$
    -$LK,"FUf_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HPP,2585"$
    -$LK,"B2",A="FL:::/Kernel/KDbg.CPP.Z,422",BI=122$
    +$LK,"FUF_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HPP,2612"$
    +$LK,"ClampI64",A="FL:::/Kernel/KernelB.HPP,125"$
    +$LK,"FUf_Z_OR_NOT_Z",A="FL:::/Kernel/KernelA.HPP,2586"$
    +$LK,"B2",A="FL:::/Kernel/KDbg.CPP.Z,422",BI=124$
     $LK,"SLOP",A="FL:::/Kernel/StrPrint.CPP.Z,217"$
    -$LK,"FF_BUF_DIRTY",A="FL:::/Kernel/KernelA.HPP,2774"$
    -$LK,"ICF_SWAP",A="FL:::/Kernel/KernelA.HPP,1609"$
    +$LK,"FF_BUF_DIRTY",A="FL:::/Kernel/KernelA.HPP,2780"$
    +$LK,"ICF_SWAP",A="FL:::/Kernel/KernelA.HPP,1611"$
     $LK,"_STRMATCH",A="FL:::/Kernel/StrA.CPP.Z,223"$
    -$LK,"MSF_FIXED",A="FL:::/Kernel/KernelA.HPP,206"$
    +$LK,"MSF_FIXED",A="FL:::/Kernel/KernelA.HPP,207"$
     $LK,"_CPUID",A="FL:::/Kernel/KUtils.CPP.Z,319"$
    -$LK,"SYS_HEAP_BASE",A="FL:::/Kernel/KStart.CPP.Z,184"$
    +$LK,"SYS_HEAP_BASE",A="FL:::/Kernel/KStart.CPP.Z,189"$
     $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,3789"$
    -$LK,"ATA_DEV_RST",A="FL:::/Kernel/KernelA.HPP,2256"$
    +$LK,"Caller",A="FL:::/Kernel/KDbg.CPP.Z,60",BI=125$
    +$LK,"SUF_S2T",A="FL:::/Kernel/KernelA.HPP,3796"$
    +$LK,"ATA_DEV_RST",A="FL:::/Kernel/KernelA.HPP,2259"$
     $LK,"INT_MP_CRASH_ADDR",A="FL:::/Kernel/KInts.CPP.Z,2"$
    -$LK,"RWF_LAST_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3589"$
    -$LK,"RS_ATTR_CONTIGUOUS",A="FL:::/Kernel/KernelA.HPP,2535"$
    -$LK,"HPET_MAIN_CNT",A="FL:::/Kernel/KernelA.HPP,533"$
    -$LK,"ARGT_NONE",A="FL:::/Kernel/KernelA.HPP,1877"$
    -$LK,"DOCT_DATA",A="FL:::/Kernel/KernelA.HPP,927"$
    -$LK,"SUF_T2S",A="FL:::/Kernel/KernelA.HPP,3790"$
    -$LK,"MEM_MIN_MEG",A="FL:::/Kernel/KernelA.HPP,3456"$
    -$LK,"exp_1",A="FL:::/Kernel/KernelA.HPP,50"$
    +$LK,"RWF_LAST_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3595"$
    +$LK,"RS_ATTR_CONTIGUOUS",A="FL:::/Kernel/KernelA.HPP,2537"$
    +$LK,"HPET_MAIN_CNT",A="FL:::/Kernel/KernelA.HPP,535"$
    +$LK,"ARGT_NONE",A="FL:::/Kernel/KernelA.HPP,1879"$
    +$LK,"DOCT_DATA",A="FL:::/Kernel/KernelA.HPP,929"$
    +$LK,"SUF_T2S",A="FL:::/Kernel/KernelA.HPP,3797"$
    +$LK,"MEM_MIN_MEG",A="FL:::/Kernel/KernelA.HPP,3462"$
    +$LK,"exp_1",A="FL:::/Kernel/KernelA.HPP,51"$
     $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,1029"$
    -$LK,"TSSNew",A="FL:::/Kernel/MultiProc.CPP.Z,76",BI=126$
    -$LK,"SYS_PROGRESS1_DESC",A="FL:::/Kernel/KStart.CPP.Z,210"$
    +$LK,"KeyDevRem",A="FL:::/Kernel/KeyDev.CPP.Z,64",BI=126$
    +$LK,"G2",A="FL:::/Kernel/KDbg.CPP.Z,469",BI=127$
    +$LK,"DOCEG_HAS_ARG",A="FL:::/Kernel/KernelA.HPP,1031"$
    +$LK,"TSSNew",A="FL:::/Kernel/MultiProc.CPP.Z,76",BI=128$
    +$LK,"SYS_PROGRESS1_DESC",A="FL:::/Kernel/KStart.CPP.Z,215"$
     $LK,"LBtr",A="FL:::/Kernel/KernelB.HPP,24"$
    -$LK,"FStf_DISABLE",A="FL:::/Kernel/KernelA.HPP,2690"$
    -$LK,"HTT_OPCODE",A="FL:::/Kernel/KernelA.HPP,691"$
    -$LK,"HTt_OPCODE",A="FL:::/Kernel/KernelA.HPP,661"$
    -$LK,"CDATE_YEAR_DAYS_INT",A="FL:::/Kernel/KernelA.HPP,182"$
    -$LK,"FAT32AllocContiguousClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,514",BI=127$
    +$LK,"FStf_DISABLE",A="FL:::/Kernel/KernelA.HPP,2695"$
    +$LK,"HTT_OPCODE",A="FL:::/Kernel/KernelA.HPP,693"$
    +$LK,"HTt_OPCODE",A="FL:::/Kernel/KernelA.HPP,663"$
    +$LK,"CDATE_YEAR_DAYS_INT",A="FL:::/Kernel/KernelA.HPP,183"$
    +$LK,"FAT32AllocContiguousClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,514",BI=129$
     $LK,"LBts",A="FL:::/Kernel/KernelB.HPP,26"$
     $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,3617"$
    +$LK,"Adam",A="FL:::/Kernel/SrvCmd.CPP.Z,407",BI=130$
    +$LK,"CTryStk",A="FL:::/Kernel/KExcept.CPP.Z,55"$
    +$LK,"DCF_PALETTE",A="FL:::/Kernel/KernelA.HPP,3624"$
     $LK,"set_bits_table",A="FL:::/Kernel/KGlbls.CPP.Z,13"$
    -$LK,"KBD_CTRL",A="FL:::/Kernel/KernelA.HPP,2992"$
    -$LK,"HTt_FUN",A="FL:::/Kernel/KernelA.HPP,656"$
    -$LK,"RS_ATTR_LONG_NAME",A="FL:::/Kernel/KernelA.HPP,2529"$
    -$LK,"TK_XOR_XOR",A="FL:::/Kernel/KernelA.HPP,2088"$
    -$LK,"DOCEf_HOLD",A="FL:::/Kernel/KernelA.HPP,1099"$
    -$LK,"DOCEF_HOLD",A="FL:::/Kernel/KernelA.HPP,1013"$
    -$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,1133"$
    -$LK,"MBR_PT_FAT32a",A="FL:::/Kernel/KernelA.HPP,2693"$
    -$LK,"DbgHelp",A="FL:::/Kernel/KDbg.CPP.Z,498",BI=131$
    +$LK,"rev_bits_table",A="FL:::/Kernel/KGlbls.CPP.Z,12"$
    +$LK,"KBD_CTRL",A="FL:::/Kernel/KernelA.HPP,2998"$
    +$LK,"HTt_FUN",A="FL:::/Kernel/KernelA.HPP,658"$
    +$LK,"RS_ATTR_LONG_NAME",A="FL:::/Kernel/KernelA.HPP,2531"$
    +$LK,"TK_XOR_XOR",A="FL:::/Kernel/KernelA.HPP,2090"$
    +$LK,"DOCEf_HOLD",A="FL:::/Kernel/KernelA.HPP,1101"$
    +$LK,"DOCEF_HOLD",A="FL:::/Kernel/KernelA.HPP,1015"$
    +$LK,"KDInputFilterPutKey",A="FL:::/Kernel/KeyDev.CPP.Z,108",BI=131$
    +$LK,"GetOutOfDollar",A="FL:::/Kernel/StrB.CPP.Z,75",BI=132$
    +$LK,"DOC_COLOR_ALT_TEXT",A="FL:::/Kernel/KernelA.HPP,1135"$
    +$LK,"MBR_PT_FAT32a",A="FL:::/Kernel/KernelA.HPP,2698"$
    +$LK,"DbgHelp",A="FL:::/Kernel/KDbg.CPP.Z,498",BI=133$
     $LK,"_FLOOR",A="FL:::/Kernel/KMathA.CPP.Z,420"$
    -$LK,"MBR_PT_FAT32b",A="FL:::/Kernel/KernelA.HPP,2694"$
    -$LK,"MBR_PT_FAT32c",A="FL:::/Kernel/KernelA.HPP,2695"$
    -$LK,"D3Dist",A="FL:::/Kernel/KernelB.HPP,150"$
    -$LK,"MBR_PT_FAT32d",A="FL:::/Kernel/KernelA.HPP,2696"$
    -$LK,"TK_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HPP,2109"$
    -$LK,"LMF_EXACT",A="FL:::/Kernel/KernelA.HPP,3802"$
    -$LK,"MBR_PT_FAT32e",A="FL:::/Kernel/KernelA.HPP,2697"$
    -$LK,"FSt_NTFS",A="FL:::/Kernel/KernelA.HPP,2685"$
    -$LK,"MBR_PT_FAT32f",A="FL:::/Kernel/KernelA.HPP,2698"$
    -$LK,"CM_MAX_CONSTS",A="FL:::/Kernel/KernelA.HPP,1701"$
    -$LK,"DOCEF_TAG_CB",A="FL:::/Kernel/KernelA.HPP,992"$
    -$LK,"Str2Date",A="FL:::/Kernel/StrScan.CPP.Z,138",BI=132$
    -$LK,"ICF_PASS_TRACE",A="FL:::/Kernel/KernelA.HPP,1603"$
    -$LK,"DOCEf_TAG_CB",A="FL:::/Kernel/KernelA.HPP,1080"$
    -$LK,"HTt_REG",A="FL:::/Kernel/KernelA.HPP,662"$
    -$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,3425"$
    -$LK,"SYS_MEM_INIT_VAL",A="FL:::/Home/Temp.TXT.Z,1"$
    -$LK,"_R11",A="FL:::/Kernel/KernelA.HPP,3426"$
    -$LK,"BOOT_RAM_LIMIT",A="FL:::/Kernel/KernelA.HPP,3876"$
    -$LK,"_R12",A="FL:::/Kernel/KernelA.HPP,3427"$
    +$LK,"MBR_PT_FAT32b",A="FL:::/Kernel/KernelA.HPP,2699"$
    +$LK,"MBR_PT_FAT32c",A="FL:::/Kernel/KernelA.HPP,2700"$
    +$LK,"D3Dist",A="FL:::/Kernel/KernelB.HPP,149"$
    +$LK,"MBR_PT_FAT32d",A="FL:::/Kernel/KernelA.HPP,2701"$
    +$LK,"TK_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HPP,2111"$
    +$LK,"LMF_EXACT",A="FL:::/Kernel/KernelA.HPP,3809"$
    +$LK,"MBR_PT_FAT32e",A="FL:::/Kernel/KernelA.HPP,2702"$
    +$LK,"FSt_NTFS",A="FL:::/Kernel/KernelA.HPP,2690"$
    +$LK,"MBR_PT_FAT32f",A="FL:::/Kernel/KernelA.HPP,2703"$
    +$LK,"CM_MAX_CONSTS",A="FL:::/Kernel/KernelA.HPP,1703"$
    +$LK,"DOCEF_TAG_CB",A="FL:::/Kernel/KernelA.HPP,994"$
    +$LK,"Str2Date",A="FL:::/Kernel/StrScan.CPP.Z,138",BI=134$
    +$LK,"ICF_PASS_TRACE",A="FL:::/Kernel/KernelA.HPP,1605"$
    +$LK,"DOCEf_TAG_CB",A="FL:::/Kernel/KernelA.HPP,1082"$
    +$LK,"HTt_REG",A="FL:::/Kernel/KernelA.HPP,664"$
    +$LK,"ChkPtr",A="FL:::/Kernel/KDbg.CPP.Z,1",BI=135$
    +$LK,"TaskWait",A="FL:::/Kernel/SrvCmd.CPP.Z,220",BI=136$
    +$LK,"_R10",A="FL:::/Kernel/KernelA.HPP,3431"$
    +$LK,"SYS_MEM_INIT_VAL",A="FL::/Temp.TXT.Z,1"$
    +$LK,"_R11",A="FL:::/Kernel/KernelA.HPP,3432"$
    +$LK,"BOOT_RAM_LIMIT",A="FL:::/Kernel/KernelA.HPP,3883"$
    +$LK,"_R12",A="FL:::/Kernel/KernelA.HPP,3433"$
     $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,173"$
    -$LK,"_R13",A="FL:::/Kernel/KernelA.HPP,3428"$
    -$LK,"DEF_NOT_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2547"$
    -$LK,"SYS_BOOT_PATCH_TABLE_BASE",A="FL:::/Kernel/KStart.CPP.Z,25"$
    -$LK,"_R14",A="FL:::/Kernel/KernelA.HPP,3429"$
    -$LK,"CTRLT_WIN_VSCROLL",A="FL:::/Kernel/KernelA.HPP,3080"$
    -$LK,"TK_LESS_EQU",A="FL:::/Kernel/KernelA.HPP,2084"$
    -$LK,"ODEF_HAS_MASSES",A="FL:::/Kernel/KernelA.HPP,239"$
    -$LK,"_R15",A="FL:::/Kernel/KernelA.HPP,3430"$
    -$LK,"FUG_FILES_FIND",A="FL:::/Kernel/KernelA.HPP,2619"$
    -$LK,"TRUE",A="FL:::/Kernel/KernelA.HPP,18"$
    -$LK,"FSt_NULL",A="FL:::/Kernel/KernelA.HPP,2679"$
    +$LK,"SysGetI64",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,167",BI=137$
    +$LK,"MemSetI64",A="FL:::/Kernel/KernelB.HPP,172"$
    +$LK,"_R13",A="FL:::/Kernel/KernelA.HPP,3434"$
    +$LK,"DEF_NOT_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2548"$
    +$LK,"SYS_BOOT_PATCH_TABLE_BASE",A="FL:::/Kernel/KStart.CPP.Z,26"$
    +$LK,"_R14",A="FL:::/Kernel/KernelA.HPP,3435"$
    +$LK,"CTRLT_WIN_VSCROLL",A="FL:::/Kernel/KernelA.HPP,3086"$
    +$LK,"TK_LESS_EQU",A="FL:::/Kernel/KernelA.HPP,2086"$
    +$LK,"ODEF_HAS_MASSES",A="FL:::/Kernel/KernelA.HPP,240"$
    +$LK,"_R15",A="FL:::/Kernel/KernelA.HPP,3436"$
    +$LK,"FUG_FILES_FIND",A="FL:::/Kernel/KernelA.HPP,2620"$
    +$LK,"TRUE",A="FL:::/Kernel/KernelA.HPP,19"$
    +$LK,"FSt_NULL",A="FL:::/Kernel/KernelA.HPP,2684"$
     $LK,"chars_bmp_zero_tab_ff_cr_nl_cursor",A="FL:::/Kernel/StrA.CPP.Z,365"$
    -$LK,"CEdFindText",A="FL:::/Kernel/KernelA.HPP,1222"$
    -$LK,"MEM_FREE_PAGE_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2871"$
    -$LK,"LDF_NO_ABSS",A="FL:::/Kernel/KernelA.HPP,366"$
    -$LK,"DOCEf_LINK",A="FL:::/Kernel/KernelA.HPP,1084"$
    -$LK,"DOCEF_LINK",A="FL:::/Kernel/KernelA.HPP,996"$
    -$LK,"D3Copy",A="FL:::/Kernel/KernelB.HPP,148"$
    -$LK,"Beep",A="FL:::/Kernel/KMisc.CPP.Z,185",BI=136$
    +$LK,"CEdFindText",A="FL:::/Kernel/KernelA.HPP,1224"$
    +$LK,"MEM_FREE_PAGE_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2877"$
    +$LK,"LDF_NO_ABSS",A="FL:::/Kernel/KernelA.HPP,367"$
    +$LK,"DOCEf_LINK",A="FL:::/Kernel/KernelA.HPP,1086"$
    +$LK,"DOCEF_LINK",A="FL:::/Kernel/KernelA.HPP,998"$
    +$LK,"D3Copy",A="FL:::/Kernel/KernelB.HPP,147"$
    +$LK,"Beep",A="FL:::/Kernel/KMisc.CPP.Z,185",BI=138$
     $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,3509"$
    -$LK,"AAT_SUB_U8",A="FL:::/Kernel/KernelA.HPP,1968"$
    -$LK,"IET_IMM64_EXPORT",A="FL:::/Kernel/KernelA.HPP,408"$
    -$LK,"IET_IMM32_EXPORT",A="FL:::/Kernel/KernelA.HPP,406"$
    -$LK,"sys_gdt",A="FL:::/Kernel/KernelB.HPP,266"$
    -$LK,"Call",A="FL:::/Kernel/KernelB.HPP,43"$
    -$LK,"SYS_FIXED_AREA",A="FL:::/Kernel/KernelA.HPP,3462"$
    -$LK,"ICF_CODE_FINAL",A="FL:::/Kernel/KernelA.HPP,1599"$
    -$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,1924"$
    -$LK,"CMemUnused",A="FL:::/Kernel/KernelA.HPP,2808"$
    -$LK,"IEF_48_REX",A="FL:::/Kernel/KernelA.HPP,1731"$
    -$LK,"RECALCt_TO_SCREEN",A="FL:::/Kernel/KernelA.HPP,1345"$
    -$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,3737"$
    -$LK,"TK_MOD_EQU",A="FL:::/Kernel/KernelA.HPP,2105"$
    -$LK,"FunSegFind",A="FL:::/Kernel/FunSeg.CPP.Z,54",BI=139$
    -$LK,"Define",A="FL:::/Kernel/KDefine.CPP.Z,49",BI=140$
    -$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,911"$
    +$LK,"CH_SPACE",A="FL:::/Kernel/KernelA.HPP,3515"$
    +$LK,"AAT_SUB_U8",A="FL:::/Kernel/KernelA.HPP,1970"$
    +$LK,"IET_IMM64_EXPORT",A="FL:::/Kernel/KernelA.HPP,409"$
    +$LK,"IET_IMM32_EXPORT",A="FL:::/Kernel/KernelA.HPP,407"$
    +$LK,"sys_gdt",A="FL:::/Kernel/KernelB.HPP,265"$
    +$LK,"Call",A="FL:::/Kernel/KernelB.HPP,44"$
    +$LK,"SYS_FIXED_AREA",A="FL:::/Kernel/KernelA.HPP,3468"$
    +$LK,"ICF_CODE_FINAL",A="FL:::/Kernel/KernelA.HPP,1601"$
    +$LK,"SYS_PROGRESS2_DESC",A="FL:::/Kernel/KStart.CPP.Z,218"$
    +$LK,"BlkDevLockFwdingSet",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,1",BI=139$
    +$LK,"InU8",A="FL:::/Kernel/KernelB.HPP,77"$
    +$LK,"ARGT_SREG",A="FL:::/Kernel/KernelA.HPP,1926"$
    +$LK,"CMemUnused",A="FL:::/Kernel/KernelA.HPP,2814"$
    +$LK,"IEF_48_REX",A="FL:::/Kernel/KernelA.HPP,1733"$
    +$LK,"RECALCt_TO_SCREEN",A="FL:::/Kernel/KernelA.HPP,1347"$
    +$LK,"ã",A="FL:::/Kernel/KernelA.HPP,50"$
    +$LK,"Suspend",A="FL:::/Kernel/KTask.CPP.Z,45",BI=140$
    +$LK,"ClampU64",A="FL:::/Kernel/KernelB.HPP,127"$
    +$LK,"ARC_MAX_BITS",A="FL:::/Kernel/KernelA.HPP,3744"$
    +$LK,"TK_MOD_EQU",A="FL:::/Kernel/KernelA.HPP,2107"$
    +$LK,"FunSegFind",A="FL:::/Kernel/FunSeg.CPP.Z,54",BI=141$
    +$LK,"Define",A="FL:::/Kernel/KDefine.CPP.Z,49",BI=142$
    +$LK,"FAT32Fmt",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,60",BI=143$
    +$LK,"SrvCmdLine",A="FL:::/Kernel/KTask.CPP.Z,374",BI=144$
    +$LK,"HashTableNew",A="FL:::/Kernel/KHashB.CPP.Z,50",BI=145$
    +$LK,"DOCT_INDENT",A="FL:::/Kernel/KernelA.HPP,913"$
     $LK,"_ARG",A="FL:::/Kernel/KMathA.CPP.Z,366"$
    -$LK,"COLORROP_NO_ROP0_MASK",A="FL:::/Kernel/KernelA.HPP,2979"$
    -$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,2980"$
    -$LK,"BROWN",A="FL:::/Kernel/KernelA.HPP,2955"$
    -$LK,"Da",A="FL:::/Kernel/KDbg.CPP.Z,209",BI=145$
    -$LK,"SUF_REM_TRAILING",A="FL:::/Kernel/KernelA.HPP,3784"$
    -$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,1018"$
    -$LK,"CCF_DONT_FREE_BUF",A="FL:::/Kernel/KernelA.HPP,2128"$
    -$LK,"IET_ZEROED_CODE_HEAP",A="FL:::/Kernel/KernelA.HPP,411"$
    -$LK,"SrcEdLink",A="FL:::/Kernel/FunSeg.CPP.Z,270",BI=147$
    -$LK,"GetRBP",A="FL:::/Kernel/KernelB.HPP,242"$
    -$LK,"GREEN",A="FL:::/Kernel/KernelA.HPP,2951"$
    -$LK,"RECALCF_TO_HTML",A="FL:::/Kernel/KernelA.HPP,1350"$
    -$LK,"ì",A="FL:::/Kernel/KernelA.HPP,47"$
    -$LK,"ON",A="FL:::/Kernel/KernelA.HPP,20"$
    +$LK,"COLORROP_NO_ROP0_MASK",A="FL:::/Kernel/KernelA.HPP,2985"$
    +$LK,"CDualBuf",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,109"$
    +$LK,"TaskText",A="FL:::/Kernel/SrvCmd.CPP.Z,75",BI=146$
    +$LK,"COLORROP_BITS",A="FL:::/Kernel/KernelA.HPP,2986"$
    +$LK,"BROWN",A="FL:::/Kernel/KernelA.HPP,2961"$
    +$LK,"Da",A="FL:::/Kernel/KDbg.CPP.Z,209",BI=147$
    +$LK,"SUF_REM_TRAILING",A="FL:::/Kernel/KernelA.HPP,3791"$
    +$LK,"Cd",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,9",BI=148$
    +$LK,"Ceil",A="FL:::/Kernel/KernelB.HPP,123"$
    +$LK,"DOCEF_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HPP,1020"$
    +$LK,"CCF_DONT_FREE_BUF",A="FL:::/Kernel/KernelA.HPP,2131"$
    +$LK,"IET_ZEROED_CODE_HEAP",A="FL:::/Kernel/KernelA.HPP,412"$
    +$LK,"SrcEdLink",A="FL:::/Kernel/FunSeg.CPP.Z,270",BI=149$
    +$LK,"GetRBP",A="FL:::/Kernel/KernelB.HPP,241"$
    +$LK,"GREEN",A="FL:::/Kernel/KernelA.HPP,2957"$
    +$LK,"RECALCF_TO_HTML",A="FL:::/Kernel/KernelA.HPP,1352"$
    +$LK,"ì",A="FL:::/Kernel/KernelA.HPP,48"$
    +$LK,"ON",A="FL:::/Kernel/KernelA.HPP,21"$
     $LK,"_LXCHG_I64",A="FL:::/Kernel/KUtils.CPP.Z,217"$
    -$LK,"MDG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HPP,1586"$
    -$LK,"DOCEt_BLINK",A="FL:::/Kernel/KernelA.HPP,951"$
    -$LK,"DOCET_BLINK",A="FL:::/Kernel/KernelA.HPP,945"$
    +$LK,"MDG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HPP,1588"$
    +$LK,"DOCEt_BLINK",A="FL:::/Kernel/KernelA.HPP,953"$
    +$LK,"DOCET_BLINK",A="FL:::/Kernel/KernelA.HPP,947"$
     $LK,"sys_clipboard_doc",A="FL:::/Kernel/KGlbls.CPP.Z,6"$
    -$LK,"CCF_NO_DEFINES",A="FL:::/Kernel/KernelA.HPP,2129"$
    -$LK,"DOCEf_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HPP,1104"$
    -$LK,"CGDTEntry",A="FL:::/Kernel/KernelA.HPP,329"$
    -$LK,"ARGT_XMM0",A="FL:::/Kernel/KernelA.HPP,1944"$
    +$LK,"CCF_NO_DEFINES",A="FL:::/Kernel/KernelA.HPP,2132"$
    +$LK,"DOCEf_SKIP_IN_FORM",A="FL:::/Kernel/KernelA.HPP,1106"$
    +$LK,"CGDTEntry",A="FL:::/Kernel/KernelA.HPP,330"$
    +$LK,"ARGT_XMM0",A="FL:::/Kernel/KernelA.HPP,1946"$
     $LK,"_TASK_END_NOW",A="FL:::/Kernel/Sched.CPP.Z,151"$
    -$LK,"HTT_INVALID",A="FL:::/Kernel/KernelA.HPP,679"$
    +$LK,"HTT_INVALID",A="FL:::/Kernel/KernelA.HPP,681"$
     $LK,"_REP_OUT_U8",A="FL:::/Kernel/KUtils.CPP.Z,308"$
    -$LK,"GetRAX",A="FL:::/Kernel/KernelB.HPP,241"$
    -$LK,"sys_boot_src",A="FL:::/Kernel/KernelB.HPP,39"$
    -$LK,"SCF_DELETE",A="FL:::/Kernel/KernelA.HPP,3541"$
    -$LK,"SCf_DELETE",A="FL:::/Kernel/KernelA.HPP,3526"$
    -$LK,"ARGT_M32N32",A="FL:::/Kernel/KernelA.HPP,1910"$
    -$LK,"ARGT_M16N16",A="FL:::/Kernel/KernelA.HPP,1909"$
    -$LK,"ARGT_M16N32",A="FL:::/Kernel/KernelA.HPP,1908"$
    -$LK,"SV_STI_LIKE",A="FL:::/Kernel/KernelA.HPP,1740"$
    -$LK,"ICG_NO_CVT_MASK",A="FL:::/Kernel/KernelA.HPP,1619"$
    -$LK,"RECALCG_MASK",A="FL:::/Kernel/KernelA.HPP,1346"$
    -$LK,"HTF_PRIVATE",A="FL:::/Kernel/KernelA.HPP,699"$
    +$LK,"GetRAX",A="FL:::/Kernel/KernelB.HPP,240"$
    +$LK,"sys_boot_src",A="FL:::/Kernel/KernelB.HPP,40"$
    +$LK,"SCF_DELETE",A="FL:::/Kernel/KernelA.HPP,3547"$
    +$LK,"SCf_DELETE",A="FL:::/Kernel/KernelA.HPP,3532"$
    +$LK,"ARGT_M32N32",A="FL:::/Kernel/KernelA.HPP,1912"$
    +$LK,"ARGT_M16N16",A="FL:::/Kernel/KernelA.HPP,1911"$
    +$LK,"ARGT_M16N32",A="FL:::/Kernel/KernelA.HPP,1910"$
    +$LK,"SV_STI_LIKE",A="FL:::/Kernel/KernelA.HPP,1742"$
    +$LK,"ICG_NO_CVT_MASK",A="FL:::/Kernel/KernelA.HPP,1621"$
    +$LK,"RECALCG_MASK",A="FL:::/Kernel/KernelA.HPP,1348"$
    +$LK,"HTF_PRIVATE",A="FL:::/Kernel/KernelA.HPP,701"$
     $LK,"ESTIMATED_MISC_ALLOCS",A="FL:::/Kernel/Mem/PageTables.CPP.Z,88"$
    -$LK,"Pow10I64",A="FL:::/Kernel/KMathB.CPP.Z,26",BI=148$
    -$LK,"IEF_STI_LIKE",A="FL:::/Kernel/KernelA.HPP,1734"$
    -$LK,"HTf_PRIVATE",A="FL:::/Kernel/KernelA.HPP,669"$
    -$LK,"Dm",A="FL:::/Kernel/KDbg.CPP.Z,204",BI=149$
    -$LK,"CCF_EXE_BLK",A="FL:::/Kernel/KernelA.HPP,2140"$
    -$LK,"CQueD3I32",A="FL:::/Kernel/KernelA.HPP,130"$
    -$LK,"BDf_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2643"$
    -$LK,"BDF_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2633"$
    -$LK,"DEF_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2546"$
    -$LK,"COLOR_INVALID",A="FL:::/Kernel/KernelA.HPP,2967"$
    -$LK,"DftExt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,202",BI=150$
    +$LK,"Pow10I64",A="FL:::/Kernel/KMathB.CPP.Z,26",BI=150$
    +$LK,"IEF_STI_LIKE",A="FL:::/Kernel/KernelA.HPP,1736"$
    +$LK,"HTf_PRIVATE",A="FL:::/Kernel/KernelA.HPP,671"$
    +$LK,"Dm",A="FL:::/Kernel/KDbg.CPP.Z,204",BI=151$
    +$LK,"CCF_EXE_BLK",A="FL:::/Kernel/KernelA.HPP,2143"$
    +$LK,"CQueD3I32",A="FL:::/Kernel/KernelA.HPP,131"$
    +$LK,"BDf_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2645"$
    +$LK,"BDF_REMOVABLE",A="FL:::/Kernel/KernelA.HPP,2635"$
    +$LK,"COLOR_INVALID",A="FL:::/Kernel/KernelA.HPP,2973"$
    +$LK,"DftExt",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,208",BI=152$
     $LK,"Bt",A="FL:::/Kernel/KernelB.HPP,14"$
    -$LK,"OPTf_EXTERNS_TO_IMPORTS",A="FL:::/Kernel/KernelA.HPP,1539"$
    -$LK,"HashFunSegFind",A="FL:::/Kernel/FunSeg.CPP.Z,10",BI=151$
    -$LK,"Dr",A="FL:::/Kernel/KDbg.CPP.Z,328",BI=152$
    -$LK,"CPUId",A="FL:::/Kernel/KernelB.HPP,252"$
    -$LK,"FilesFind2",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,1",BI=153$
    -$LK,"TaskKillDying",A="FL:::/Kernel/KTask.CPP.Z,496",BI=154$
    +$LK,"OPTf_EXTERNS_TO_IMPORTS",A="FL:::/Kernel/KernelA.HPP,1541"$
    +$LK,"HashFunSegFind",A="FL:::/Kernel/FunSeg.CPP.Z,10",BI=153$
    +$LK,"Dr",A="FL:::/Kernel/KDbg.CPP.Z,328",BI=154$
    +$LK,"CPUId",A="FL:::/Kernel/KernelB.HPP,251"$
    +$LK,"FilesFind2",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,1",BI=155$
    +$LK,"TaskKillDying",A="FL:::/Kernel/KTask.CPP.Z,498",BI=156$
     $LK,"scan_code_map",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,157"$
     $LK,"MSize2",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,385"$
    -$LK,"MemSetU32",A="FL:::/Kernel/KernelB.HPP,177"$
    -$LK,"MemSetU16",A="FL:::/Kernel/KernelB.HPP,175"$
    -$LK,"DirTreeDel",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,36",BI=155$
    -$LK,"Fs",A="FL:::/Kernel/KernelB.HPP,276"$
    -$LK,"SCF_CAPS",A="FL:::/Kernel/KernelA.HPP,3535"$
    -$LK,"SCf_CAPS",A="FL:::/Kernel/KernelA.HPP,3520"$
    -$LK,"SYS_SEMA_FAR_CALL32",A="FL:::/Kernel/KernelA.HPP,603"$
    -$LK,"ACD_DEF_CHAR",A="FL:::/Kernel/KernelA.HPP,1515"$
    -$LK,"Gs",A="FL:::/Kernel/KernelB.HPP,234"$
    -$LK,"SYS_PROGRESS3_DESC",A="FL:::/Kernel/KStart.CPP.Z,216"$
    -$LK,"RWF_SCROLL",A="FL:::/Kernel/KernelA.HPP,3591"$
    -$LK,"REGG_LOCAL_VARS",A="FL:::/Kernel/KernelA.HPP,1792"$
    -$LK,"DrvModelNum",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,263",BI=156$
    -$LK,"RepInU8",A="FL:::/Kernel/KernelB.HPP,85"$
    -$LK,"MSG_FOCUS",A="FL:::/Kernel/KernelA.HPP,3229"$
    -$LK,"IsSysDbg",A="FL:::/Kernel/KMisc.CPP.Z,233",BI=157$
    -$LK,"CDbgGlbls",A="FL:::/Kernel/KernelA.HPP,3861"$
    +$LK,"MemSetU32",A="FL:::/Kernel/KernelB.HPP,176"$
    +$LK,"MemSetU16",A="FL:::/Kernel/KernelB.HPP,174"$
    +$LK,"DirTreeDel",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,36",BI=157$
    +$LK,"Fs",A="FL:::/Kernel/KernelB.HPP,275"$
    +$LK,"SCF_CAPS",A="FL:::/Kernel/KernelA.HPP,3541"$
    +$LK,"SCf_CAPS",A="FL:::/Kernel/KernelA.HPP,3526"$
    +$LK,"SYS_SEMA_FAR_CALL32",A="FL:::/Kernel/KernelA.HPP,605"$
    +$LK,"ACD_DEF_CHAR",A="FL:::/Kernel/KernelA.HPP,1517"$
    +$LK,"Gs",A="FL:::/Kernel/KernelB.HPP,233"$
    +$LK,"SYS_PROGRESS3_DESC",A="FL:::/Kernel/KStart.CPP.Z,221"$
    +$LK,"RWF_SCROLL",A="FL:::/Kernel/KernelA.HPP,3597"$
    +$LK,"REGG_LOCAL_VARS",A="FL:::/Kernel/KernelA.HPP,1794"$
    +$LK,"DrvModelNum",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,276",BI=158$
    +$LK,"RepInU8",A="FL:::/Kernel/KernelB.HPP,86"$
    +$LK,"MSG_FOCUS",A="FL:::/Kernel/KernelA.HPP,3235"$
    +$LK,"IsSysDbg",A="FL:::/Kernel/KMisc.CPP.Z,233",BI=159$
    +$LK,"CDbgGlbls",A="FL:::/Kernel/KernelA.HPP,3868"$
     $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,3236"$
    -$LK,"ScanFlags",A="FL:::/Kernel/StrB.CPP.Z,123",BI=158$
    -$LK,"Ln",A="FL:::/Kernel/KernelB.HPP,135"$
    +$LK,"MSG_IP_R_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3242"$
    +$LK,"ScanFlags",A="FL:::/Kernel/StrB.CPP.Z,123",BI=160$
    +$LK,"Ln",A="FL:::/Kernel/KernelB.HPP,134"$
     $LK,"INT_WAKE",A="FL:::/Kernel/KInts.CPP.Z,6"$
    -$LK,"GetS",A="FL:::/Kernel/SerialDev/Message.CPP.Z,209",BI=159$
    +$LK,"GetS",A="FL:::/Kernel/SerialDev/Message.CPP.Z,209",BI=161$
     $LK,"_MEMSET_U32",A="FL:::/Kernel/KUtils.CPP.Z,29"$
     $LK,"_MEMSET_U16",A="FL:::/Kernel/KUtils.CPP.Z,16"$
    -$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,280"$
    -$LK,"BptR",A="FL:::/Kernel/KDbg.CPP.Z,389",BI=160$
    -$LK,"DOCT_MARKER",A="FL:::/Kernel/KernelA.HPP,902"$
    -$LK,"BptS",A="FL:::/Kernel/KDbg.CPP.Z,368",BI=161$
    +$LK,"SYS_MP_CNT_LOCK",A="FL:::/Kernel/KStart.CPP.Z,231"$
    +$LK,"SYS_COMPILE_TIME",A="FL::/Temp.TXT.Z,1"$
    +$LK,"GetTSC",A="FL:::/Kernel/KernelB.HPP,279"$
    +$LK,"BptR",A="FL:::/Kernel/KDbg.CPP.Z,389",BI=162$
    +$LK,"DOCT_MARKER",A="FL:::/Kernel/KernelA.HPP,904"$
    +$LK,"BptS",A="FL:::/Kernel/KDbg.CPP.Z,368",BI=163$
     $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=162$
    -$LK,"FifoI64Peek",A="FL:::/Kernel/KDataTypes.CPP.Z,290",BI=163$
    +$LK,"ATAMount",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,239",BI=164$
    +$LK,"FifoI64Peek",A="FL:::/Kernel/KDataTypes.CPP.Z,290",BI=165$
     $LK,"_EXP",A="FL:::/Kernel/KMathA.CPP.Z,558"$
    -$LK,"SYS_SEMA_SYS_TIMER",A="FL:::/Kernel/KernelA.HPP,593"$
    -$LK,"IET_END",A="FL:::/Kernel/KernelA.HPP,391"$
    -$LK,"KbdHandler",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,441",BI=164$
    -$LK,"GSF_WITH_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,3778"$
    +$LK,"SYS_SEMA_SYS_TIMER",A="FL:::/Kernel/KernelA.HPP,595"$
    +$LK,"IET_END",A="FL:::/Kernel/KernelA.HPP,392"$
    +$LK,"KbdHandler",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,441",BI=166$
    +$LK,"GSF_WITH_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,3785"$
     $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,244"$
    +$LK,"GetRSP",A="FL:::/Kernel/KernelB.HPP,243"$
     $LK,"_D3_DIST",A="FL:::/Kernel/KMathA.CPP.Z,39"$
    -$LK,"ScanKey",A="FL:::/Kernel/SerialDev/Message.CPP.Z,123",BI=165$
    -$LK,"MouseDriverInstall",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,217",BI=166$
    +$LK,"ScanKey",A="FL:::/Kernel/SerialDev/Message.CPP.Z,123",BI=167$
    +$LK,"MouseDriverInstall",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,217",BI=168$
     $LK,"mouse_last",A="FL:::/Kernel/KGlbls.CPP.Z,27"$
    -$LK,"D3DistSqr",A="FL:::/Kernel/KernelB.HPP,151"$
    -$LK,"_RDI",A="FL:::/Kernel/KernelA.HPP,3419"$
    -$LK,"SV_R_REG",A="FL:::/Kernel/KernelA.HPP,1738"$
    -$LK,"ATARepExitAllApplications",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,119",BI=167$
    -$LK,"CeilI64",A="FL:::/Kernel/KMathB.CPP.Z,62",BI=168$
    -$LK,"_RBP",A="FL:::/Kernel/KernelA.HPP,3420"$
    -$LK,"CCacheBlk",A="FL:::/Kernel/KernelA.HPP,2739"$
    -$LK,"OPTf_WARN_DUP_TYPES",A="FL:::/Kernel/KernelA.HPP,1538"$
    -$LK,"ATAProbe",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,373",BI=169$
    +$LK,"D3DistSqr",A="FL:::/Kernel/KernelB.HPP,150"$
    +$LK,"_RDI",A="FL:::/Kernel/KernelA.HPP,3425"$
    +$LK,"SV_R_REG",A="FL:::/Kernel/KernelA.HPP,1740"$
    +$LK,"ATARepExitAllApplications",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,120",BI=169$
    +$LK,"CeilI64",A="FL:::/Kernel/KMathB.CPP.Z,62",BI=170$
    +$LK,"_RBP",A="FL:::/Kernel/KernelA.HPP,3426"$
    +$LK,"CCacheBlk",A="FL:::/Kernel/KernelA.HPP,2744"$
    +$LK,"OPTf_WARN_DUP_TYPES",A="FL:::/Kernel/KernelA.HPP,1540"$
    +$LK,"ATAProbe",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,373",BI=171$
     $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,910"$
    -$LK,"MEM_NUM_E820_ENTRIES",A="FL:::/Kernel/KernelA.HPP,355"$
    -$LK,"MPAPICInit",A="FL:::/Kernel/MultiProc.CPP.Z,171",BI=170$
    -$LK,"SYS_PROGRESS2",A="FL:::/Kernel/KStart.CPP.Z,211"$
    -$LK,"DOCEf_SKIP",A="FL:::/Kernel/KernelA.HPP,1102"$
    -$LK,"DOCEF_SKIP",A="FL:::/Kernel/KernelA.HPP,1016"$
    +$LK,"SYS_PROGRESS1",A="FL:::/Kernel/KStart.CPP.Z,213"$
    +$LK,"DOCT_FOOTER",A="FL:::/Kernel/KernelA.HPP,912"$
    +$LK,"MEM_NUM_E820_ENTRIES",A="FL:::/Kernel/KernelA.HPP,356"$
    +$LK,"MPAPICInit",A="FL:::/Kernel/MultiProc.CPP.Z,171",BI=172$
    +$LK,"SYS_PROGRESS2",A="FL:::/Kernel/KStart.CPP.Z,216"$
    +$LK,"DOCEf_SKIP",A="FL:::/Kernel/KernelA.HPP,1104"$
    +$LK,"DOCEF_SKIP",A="FL:::/Kernel/KernelA.HPP,1018"$
     $LK,"SPF_COMMA",A="FL:::/Kernel/StrPrint.CPP.Z,4"$
    -$LK,"SYS_PROGRESS3",A="FL:::/Kernel/KStart.CPP.Z,214"$
    -$LK,"CCF_DONT_MAKE_RES",A="FL:::/Kernel/KernelA.HPP,2163"$
    -$LK,"CSrvCtrl",A="FL:::/Kernel/KernelA.HPP,3207"$
    -$LK,"DirNew",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,1",BI=171$
    -$LK,"SYS_PROGRESS4",A="FL:::/Kernel/KStart.CPP.Z,217"$
    -$LK,"_RAX",A="FL:::/Kernel/KernelA.HPP,3414"$
    -$LK,"FAT32DirNew",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,576",BI=172$
    -$LK,"HTf_RESOLVED",A="FL:::/Kernel/KernelA.HPP,675"$
    -$LK,"LinkedLstDel",A="FL:::/Kernel/KDataTypes.CPP.Z,1",BI=173$
    -$LK,"Help",A="FL:::/Kernel/StrB.CPP.Z,115",BI=174$
    -$LK,"Log2",A="FL:::/Kernel/KernelB.HPP,137"$
    -$LK,"_RBX",A="FL:::/Kernel/KernelA.HPP,3415"$
    -$LK,"DOCT_HEX_ED",A="FL:::/Kernel/KernelA.HPP,932"$
    -$LK,"DOCT_LINK",A="FL:::/Kernel/KernelA.HPP,925"$
    +$LK,"SYS_PROGRESS3",A="FL:::/Kernel/KStart.CPP.Z,219"$
    +$LK,"CCF_DONT_MAKE_RES",A="FL:::/Kernel/KernelA.HPP,2166"$
    +$LK,"CSrvCtrl",A="FL:::/Kernel/KernelA.HPP,3213"$
    +$LK,"DirNew",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,1",BI=173$
    +$LK,"SYS_PROGRESS4",A="FL:::/Kernel/KStart.CPP.Z,222"$
    +$LK,"_RAX",A="FL:::/Kernel/KernelA.HPP,3420"$
    +$LK,"FAT32DirNew",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,576",BI=174$
    +$LK,"HTf_RESOLVED",A="FL:::/Kernel/KernelA.HPP,677"$
    +$LK,"LinkedLstDel",A="FL:::/Kernel/KDataTypes.CPP.Z,1",BI=175$
    +$LK,"Help",A="FL:::/Kernel/StrB.CPP.Z,115",BI=176$
    +$LK,"Log2",A="FL:::/Kernel/KernelB.HPP,136"$
    +$LK,"_RBX",A="FL:::/Kernel/KernelA.HPP,3421"$
    +$LK,"DOCT_HEX_ED",A="FL:::/Kernel/KernelA.HPP,934"$
    +$LK,"DOCT_LINK",A="FL:::/Kernel/KernelA.HPP,927"$
     $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,3416"$
    -$LK,"BIOSTotalMem",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,164",BI=175$
    -$LK,"_RDX",A="FL:::/Kernel/KernelA.HPP,3417"$
    -$LK,"RLF_FULL_HEAP",A="FL:::/Kernel/KernelA.HPP,461"$
    -$LK,"RLf_FULL_HEAP",A="FL:::/Kernel/KernelA.HPP,442"$
    -$LK,"ScanMsg",A="FL:::/Kernel/SerialDev/Message.CPP.Z,37",BI=176$
    -$LK,"SYS_PROGRESS4_DESC",A="FL:::/Kernel/KStart.CPP.Z,219"$
    -$LK,"__FILE__",A="FL:::/Kernel/KernelA.HPP,2029"$
    -$LK,"CDate",A="FL:::/Kernel/KernelA.HPP,184"$
    -$LK,"CLFlush",A="FL:::/Kernel/KernelB.HPP,269"$
    -$LK,"SYS_HEAP_DBG_FLAG",A="FL:::/Kernel/KStart.CPP.Z,199"$
    -$LK,"_RIP",A="FL:::/Kernel/KernelA.HPP,3422"$
    -$LK,"IEF_REX_ONLY_R8_R15",A="FL:::/Kernel/KernelA.HPP,1732"$
    -$LK,"MDF_IMM",A="FL:::/Kernel/KernelA.HPP,1579"$
    -$LK,"DOCSS_SINGLE_QUOTE",A="FL:::/Kernel/KernelA.HPP,1127"$
    -$LK,"KBD_PORT",A="FL:::/Kernel/KernelA.HPP,2991"$
    -$LK,"NUM_COLORS",A="FL:::/Kernel/KernelA.HPP,2966"$
    +$LK,"_RCX",A="FL:::/Kernel/KernelA.HPP,3422"$
    +$LK,"BIOSTotalMem",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,164",BI=177$
    +$LK,"_RDX",A="FL:::/Kernel/KernelA.HPP,3423"$
    +$LK,"RLF_FULL_HEAP",A="FL:::/Kernel/KernelA.HPP,463"$
    +$LK,"RLf_FULL_HEAP",A="FL:::/Kernel/KernelA.HPP,444"$
    +$LK,"ScanMsg",A="FL:::/Kernel/SerialDev/Message.CPP.Z,37",BI=178$
    +$LK,"SYS_PROGRESS4_DESC",A="FL:::/Kernel/KStart.CPP.Z,224"$
    +$LK,"__FILE__",A="FL:::/Kernel/KernelA.HPP,2031"$
    +$LK,"CDate",A="FL:::/Kernel/KernelA.HPP,185"$
    +$LK,"CLFlush",A="FL:::/Kernel/KernelB.HPP,268"$
    +$LK,"SYS_HEAP_DBG_FLAG",A="FL:::/Kernel/KStart.CPP.Z,204"$
    +$LK,"_RIP",A="FL:::/Kernel/KernelA.HPP,3428"$
    +$LK,"IEF_REX_ONLY_R8_R15",A="FL:::/Kernel/KernelA.HPP,1734"$
    +$LK,"MDF_IMM",A="FL:::/Kernel/KernelA.HPP,1581"$
    +$LK,"DOCSS_SINGLE_QUOTE",A="FL:::/Kernel/KernelA.HPP,1129"$
    +$LK,"KBD_PORT",A="FL:::/Kernel/KernelA.HPP,2997"$
    +$LK,"NUM_COLORS",A="FL:::/Kernel/KernelA.HPP,2972"$
     $LK,"ac",A="FL:::/Kernel/KGlbls.CPP.Z,18"$
    -$LK,"C:/Doc/TimeCycles.TXT.Z",A="FL:::/Kernel/KernelB.HPP,280"$
    +$LK,"C:/Doc/TimeCycles.TXT.Z",A="FL:::/Kernel/KernelB.HPP,279"$
     $LK,"_FSTSW",A="FL:::/Kernel/KMathA.CPP.Z,641"$
    -$LK,"ARGT_IMM32",A="FL:::/Kernel/KernelA.HPP,1884"$
    -$LK,"ARGT_IMM16",A="FL:::/Kernel/KernelA.HPP,1883"$
    -$LK,"MouseSpeedSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,109",BI=177$
    -$LK,"Name2ParentDirCluster",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,54",BI=178$
    +$LK,"ARGT_IMM32",A="FL:::/Kernel/KernelA.HPP,1886"$
    +$LK,"ARGT_IMM16",A="FL:::/Kernel/KernelA.HPP,1885"$
    +$LK,"MouseSpeedSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,109",BI=179$
    +$LK,"Name2ParentDirCluster",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,54",BI=180$
     $LK,"Free",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,383"$
    -$LK,"DOCEf_AUX_STR",A="FL:::/Kernel/KernelA.HPP,1053"$
    -$LK,"DOCEF_AUX_STR",A="FL:::/Kernel/KernelA.HPP,965"$
    -$LK,"Char2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,201",BI=179$
    -$LK,"Mem512Free",A="FL:::/Kernel/Mem/Mem512.CPP.Z,83",BI=180$
    +$LK,"DOCEf_AUX_STR",A="FL:::/Kernel/KernelA.HPP,1055"$
    +$LK,"DOCEF_AUX_STR",A="FL:::/Kernel/KernelA.HPP,967"$
    +$LK,"Char2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,201",BI=181$
    +$LK,"Mem512Free",A="FL:::/Kernel/Mem/Mem512.CPP.Z,83",BI=182$
     $LK,"blkdev",A="FL:::/Kernel/KGlbls.CPP.Z,19"$
    -$LK,"TK_NUM_TK",A="FL:::/Kernel/KernelA.HPP,2110"$
    -$LK,"CWinMgrGlbls",A="FL:::/Kernel/KernelA.HPP,1467"$
    -$LK,"DOCEf_TREE",A="FL:::/Kernel/KernelA.HPP,1100"$
    -$LK,"DOCEF_TREE",A="FL:::/Kernel/KernelA.HPP,1014"$
    -$LK,"MouseUpdatePre",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,119",BI=181$
    -$LK,"ISO1FileFind",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,130",BI=182$
    -$LK,"TASK_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3296"$
    -$LK,"SysDefinesLoad",A="FL:::/Kernel/KDefine.CPP.Z,97",BI=183$
    -$LK,"Mem512TaskAlloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,114",BI=184$
    -$LK,"MEM_MAPPED_SPACE",A="FL:::/Kernel/KernelA.HPP,3457"$
    -$LK,"D3Norm",A="FL:::/Kernel/KernelB.HPP,158"$
    +$LK,"TK_NUM_TK",A="FL:::/Kernel/KernelA.HPP,2112"$
    +$LK,"CWinMgrGlbls",A="FL:::/Kernel/KernelA.HPP,1469"$
    +$LK,"DOCEf_TREE",A="FL:::/Kernel/KernelA.HPP,1102"$
    +$LK,"DOCEF_TREE",A="FL:::/Kernel/KernelA.HPP,1016"$
    +$LK,"MouseUpdatePre",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,119",BI=183$
    +$LK,"ISO1FileFind",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,70",BI=184$
    +$LK,"TASK_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,3302"$
    +$LK,"SysDefinesLoad",A="FL:::/Kernel/KDefine.CPP.Z,97",BI=185$
    +$LK,"Mem512TaskAlloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,114",BI=186$
    +$LK,"MEM_MAPPED_SPACE",A="FL:::/Kernel/KernelA.HPP,3463"$
    +$LK,"D3Norm",A="FL:::/Kernel/KernelB.HPP,157"$
     $LK,"_POW",A="FL:::/Kernel/KMathA.CPP.Z,515"$
    -$LK,"MSG_KEY_DOWN",A="FL:::/Kernel/KernelA.HPP,3218"$
    -$LK,"ARGT_IMM64",A="FL:::/Kernel/KernelA.HPP,1885"$
    -$LK,"RTG_MASK",A="FL:::/Kernel/KernelA.HPP,1568"$
    -$LK,"TASK_HASH_TABLE_SIZE",A="FL:::/Kernel/KernelA.HPP,2881"$
    -$LK,"DOCT_BUTTON",A="FL:::/Kernel/KernelA.HPP,926"$
    -$LK,"drv_text_attr",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,279"$
    +$LK,"MSG_KEY_DOWN",A="FL:::/Kernel/KernelA.HPP,3224"$
    +$LK,"ARGT_IMM64",A="FL:::/Kernel/KernelA.HPP,1887"$
    +$LK,"RTG_MASK",A="FL:::/Kernel/KernelA.HPP,1570"$
    +$LK,"TASK_HASH_TABLE_SIZE",A="FL:::/Kernel/KernelA.HPP,2887"$
    +$LK,"DOCT_BUTTON",A="FL:::/Kernel/KernelA.HPP,928"$
    +$LK,"drv_text_attr",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,292"$
     $LK,"PUT_HEX_U8",A="FL:::/Kernel/StrA.CPP.Z,44"$
    -$LK,"_RSI",A="FL:::/Kernel/KernelA.HPP,3418"$
    -$LK,"CTRLF_CAPTURE_RIGHT_IP",A="FL:::/Kernel/KernelA.HPP,3086"$
    -$LK,"CPUStructInit",A="FL:::/Kernel/MultiProc.CPP.Z,116",BI=185$
    -$LK,"WIf_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1454"$
    -$LK,"WIF_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1429"$
    -$LK,"CIntermediateCode",A="FL:::/Kernel/KernelA.HPP,1654"$
    -$LK,"MDF_REG",A="FL:::/Kernel/KernelA.HPP,1580"$
    -$LK,"DOC_COLOR_ANCHOR",A="FL:::/Kernel/KernelA.HPP,1136"$
    -$LK,"Str2ColorU32",A="FL:::/Kernel/KDefine.CPP.Z,201",BI=186$
    -$LK,"Str2ColorU16",A="FL:::/Kernel/KDefine.CPP.Z,157",BI=187$
    -$LK,"LinkedLstCnt",A="FL:::/Kernel/KDataTypes.CPP.Z,21",BI=188$
    -$LK,"Auto",A="FL:::/Kernel/SrvCmd.CPP.Z,483",BI=189$
    -$LK,"CTRLT_VIEWING_ANGLES",A="FL:::/Kernel/KernelA.HPP,3081"$
    -$LK,"DOCEf_QUIT",A="FL:::/Kernel/KernelA.HPP,1086"$
    -$LK,"DOCEF_QUIT",A="FL:::/Kernel/KernelA.HPP,998"$
    -$LK,"Tabs2Spaces",A="FL:::/Kernel/StrB.CPP.Z,1",BI=190$
    -$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,3421"$
    -$LK,"DOCT_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HPP,936"$
    -$LK,"FSetCluster",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,100",BI=191$
    -$LK,"WinDerivedValsUpdate",A="FL:::/Kernel/Display.CPP.Z,93",BI=192$
    +$LK,"_RSI",A="FL:::/Kernel/KernelA.HPP,3424"$
    +$LK,"CTRLF_CAPTURE_RIGHT_IP",A="FL:::/Kernel/KernelA.HPP,3092"$
    +$LK,"CPUStructInit",A="FL:::/Kernel/MultiProc.CPP.Z,116",BI=187$
    +$LK,"WIf_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1456"$
    +$LK,"WIF_FOCUS_TASK_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1431"$
    +$LK,"CIntermediateCode",A="FL:::/Kernel/KernelA.HPP,1655"$
    +$LK,"MDF_REG",A="FL:::/Kernel/KernelA.HPP,1582"$
    +$LK,"DOC_COLOR_ANCHOR",A="FL:::/Kernel/KernelA.HPP,1138"$
    +$LK,"Str2ColorU32",A="FL:::/Kernel/KDefine.CPP.Z,201",BI=188$
    +$LK,"Str2ColorU16",A="FL:::/Kernel/KDefine.CPP.Z,157",BI=189$
    +$LK,"LinkedLstCnt",A="FL:::/Kernel/KDataTypes.CPP.Z,21",BI=190$
    +$LK,"Auto",A="FL:::/Kernel/SrvCmd.CPP.Z,483",BI=191$
    +$LK,"CTRLT_VIEWING_ANGLES",A="FL:::/Kernel/KernelA.HPP,3087"$
    +$LK,"DOCEf_QUIT",A="FL:::/Kernel/KernelA.HPP,1088"$
    +$LK,"DOCEF_QUIT",A="FL:::/Kernel/KernelA.HPP,1000"$
    +$LK,"Tabs2Spaces",A="FL:::/Kernel/StrB.CPP.Z,1",BI=192$
    +$LK,"MaxI64",A="FL:::/Kernel/KernelB.HPP,99"$
    +$LK,"SYS_GDT_PTR",A="FL:::/Kernel/KStart.CPP.Z,36"$
    +$LK,"_RSP",A="FL:::/Kernel/KernelA.HPP,3427"$
    +$LK,"DOCT_INS_BIN_SIZE",A="FL:::/Kernel/KernelA.HPP,938"$
    +$LK,"FSetCluster",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,99",BI=193$
    +$LK,"WinDerivedValsUpdate",A="FL:::/Kernel/Display.CPP.Z,93",BI=194$
     $LK,"fp_update_ctrls",A="FL:::/Kernel/KGlbls.CPP.Z,32"$
    -$LK,"DSK_CACHE_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2737"$
    -$LK,"RS_ATTR_VOL_ID",A="FL:::/Kernel/KernelA.HPP,2526"$
    -$LK,"DOCf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1321"$
    -$LK,"DOCF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1284"$
    -$LK,"DOCT_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,918"$
    -$LK,"IntDivZero",A="FL:::/Kernel/KInts.CPP.Z,143",BI=193$
    +$LK,"DSK_CACHE_HASH_SIZE",A="FL:::/Kernel/KernelA.HPP,2742"$
    +$LK,"RS_ATTR_VOL_ID",A="FL:::/Kernel/KernelA.HPP,2528"$
    +$LK,"DOCf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1323"$
    +$LK,"DOCF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1286"$
    +$LK,"DOCT_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,920"$
    +$LK,"IntDivZero",A="FL:::/Kernel/KInts.CPP.Z,143",BI=195$
     $LK,"_SQR",A="FL:::/Kernel/KMathA.CPP.Z,337"$
    -$LK,"DISPLAYf_SILENT",A="FL:::/Kernel/KernelA.HPP,3291"$
    -$LK,"MDF_SIB",A="FL:::/Kernel/KernelA.HPP,1582"$
    -$LK,"REGT_R32",A="FL:::/Kernel/KernelA.HPP,739"$
    -$LK,"REGT_R16",A="FL:::/Kernel/KernelA.HPP,738"$
    -$LK,"IEF_NOT_IN_64_BIT",A="FL:::/Kernel/KernelA.HPP,1730"$
    -$LK,"RedSeaFileFind",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,153",BI=194$
    +$LK,"DISPLAYf_SILENT",A="FL:::/Kernel/KernelA.HPP,3297"$
    +$LK,"MDF_SIB",A="FL:::/Kernel/KernelA.HPP,1584"$
    +$LK,"REGT_R32",A="FL:::/Kernel/KernelA.HPP,741"$
    +$LK,"REGT_R16",A="FL:::/Kernel/KernelA.HPP,740"$
    +$LK,"IEF_NOT_IN_64_BIT",A="FL:::/Kernel/KernelA.HPP,1732"$
    +$LK,"RedSeaFileFind",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,155",BI=196$
     $LK,"SYS_PCIBIOS_SERVICE_DIR",A="FL:::/Kernel/PCIBIOS.CPP.Z,4"$
    -$LK,"tS",A="FL:::/Kernel/KMisc.CPP.Z,117",BI=195$
    +$LK,"tS",A="FL:::/Kernel/KMisc.CPP.Z,117",BI=197$
     $LK,"LBEqu",A="FL:::/Kernel/KernelB.HPP,34"$
    -$LK,"ICF_RES_NOT_USED",A="FL:::/Kernel/KernelA.HPP,1598"$
    -$LK,"ArcDetermineCompressionType",A="FL:::/Kernel/Compress.CPP.Z,102",BI=196$
    -$LK,"SYS_SEMA_REFRESH_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,599"$
    -$LK,"IntInit1",A="FL:::/Kernel/KInts.CPP.Z,173",BI=197$
    -$LK,"CH_CURSOR",A="FL:::/Kernel/KernelA.HPP,3503"$
    -$LK,"IntInit2",A="FL:::/Kernel/KInts.CPP.Z,188",BI=198$
    -$LK,"DOCT_CURSOR",A="FL:::/Kernel/KernelA.HPP,901"$
    -$LK,"GetKey",A="FL:::/Kernel/SerialDev/Message.CPP.Z,142",BI=199$
    -$LK,"ROP_MONO",A="FL:::/Kernel/KernelA.HPP,2936"$
    -$LK,"CFAT32DirEntryLong",A="FL:::/Kernel/KernelA.HPP,2393"$
    -$LK,"Kill",A="FL:::/Kernel/KTask.CPP.Z,28",BI=200$
    -$LK,"RS_ATTR_FIXED",A="FL:::/Kernel/KernelA.HPP,2536"$
    -$LK,"TK_IFDEF",A="FL:::/Kernel/KernelA.HPP,2099"$
    -$LK,"REGT_R64",A="FL:::/Kernel/KernelA.HPP,740"$
    -$LK,"SingleUser",A="FL:::/Kernel/KMisc.CPP.Z,250",BI=201$
    -$LK,"Date2Struct",A="FL:::/Kernel/KDate.CPP.Z,39",BI=202$
    -$LK,"CFile",A="FL:::/Kernel/KernelA.HPP,2779"$
    -$LK,"Fault2",A="FL:::/Kernel/KDbg.CPP.Z,592",BI=203$
    -$LK,"Load",A="FL:::/Kernel/KLoad.CPP.Z,181",BI=204$
    +$LK,"ICF_RES_NOT_USED",A="FL:::/Kernel/KernelA.HPP,1600"$
    +$LK,"DOCEt_SEL",A="FL:::/Kernel/KernelA.HPP,955"$
    +$LK,"ArcDetermineCompressionType",A="FL:::/Kernel/Compress.CPP.Z,102",BI=198$
    +$LK,"SYS_SEMA_REFRESH_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,601"$
    +$LK,"IntInit1",A="FL:::/Kernel/KInts.CPP.Z,173",BI=199$
    +$LK,"CH_CURSOR",A="FL:::/Kernel/KernelA.HPP,3509"$
    +$LK,"IntInit2",A="FL:::/Kernel/KInts.CPP.Z,188",BI=200$
    +$LK,"DOCT_CURSOR",A="FL:::/Kernel/KernelA.HPP,903"$
    +$LK,"GetKey",A="FL:::/Kernel/SerialDev/Message.CPP.Z,142",BI=201$
    +$LK,"ROP_MONO",A="FL:::/Kernel/KernelA.HPP,2942"$
    +$LK,"CFAT32DirEntryLong",A="FL:::/Kernel/KernelA.HPP,2395"$
    +$LK,"Kill",A="FL:::/Kernel/KTask.CPP.Z,28",BI=202$
    +$LK,"RS_ATTR_FIXED",A="FL:::/Kernel/KernelA.HPP,2538"$
    +$LK,"TK_IFDEF",A="FL:::/Kernel/KernelA.HPP,2101"$
    +$LK,"REGT_R64",A="FL:::/Kernel/KernelA.HPP,742"$
    +$LK,"SingleUser",A="FL:::/Kernel/KMisc.CPP.Z,250",BI=203$
    +$LK,"Date2Struct",A="FL:::/Kernel/KDate.CPP.Z,39",BI=204$
    +$LK,"CFile",A="FL:::/Kernel/KernelA.HPP,2785"$
    +$LK,"Fault2",A="FL:::/Kernel/KDbg.CPP.Z,592",BI=205$
    +$LK,"Load",A="FL:::/Kernel/KLoad.CPP.Z,181",BI=206$
     $LK,"ip",A="FL:::/Kernel/KGlbls.CPP.Z,24"$
    -$LK,"CFreeLst",A="FL:::/Kernel/KernelA.HPP,2702"$
    -$LK,"DOCEF_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HPP,1003"$
    -$LK,"CHash",A="FL:::/Kernel/KernelA.HPP,621"$
    -$LK,"RedSeaFreeClusters",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,248",BI=205$
    -$LK,"Fault3",A="FL:::/Kernel/KDbg.CPP.Z,561",BI=206$
    -$LK,"CompressBuf",A="FL:::/Kernel/Compress.CPP.Z,281",BI=207$
    +$LK,"CFreeLst",A="FL:::/Kernel/KernelA.HPP,2707"$
    +$LK,"DOCEF_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HPP,1005"$
    +$LK,"CHash",A="FL:::/Kernel/KernelA.HPP,623"$
    +$LK,"RedSeaFreeClusters",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,250",BI=207$
    +$LK,"Fault3",A="FL:::/Kernel/KDbg.CPP.Z,561",BI=208$
    +$LK,"CompressBuf",A="FL:::/Kernel/Compress.CPP.Z,281",BI=209$
     $LK,"chars_bmp_hex_numeric",A="FL:::/Kernel/StrA.CPP.Z,353"$
    -$LK,"CCF_NOT_CONST",A="FL:::/Kernel/KernelA.HPP,2137"$
    -$LK,"CeilU64",A="FL:::/Kernel/KMathB.CPP.Z,41",BI=208$
    -$LK,"BPlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2884"$
    -$LK,"BDlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2654"$
    -$LK,"TK_OR_EQU",A="FL:::/Kernel/KernelA.HPP,2094"$
    +$LK,"CCF_NOT_CONST",A="FL:::/Kernel/KernelA.HPP,2140"$
    +$LK,"CeilU64",A="FL:::/Kernel/KMathB.CPP.Z,41",BI=210$
    +$LK,"BPlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2890"$
    +$LK,"BDlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2656"$
    +$LK,"TK_OR_EQU",A="FL:::/Kernel/KernelA.HPP,2096"$
     $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=209$
    -$LK,"DVlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2676"$
    -$LK,"SrcFileName",A="FL:::/Kernel/FunSeg.CPP.Z,231",BI=210$
    -$LK,"RawD",A="FL:::/Kernel/KDbg.CPP.Z,234",BI=211$
    -$LK,"IsSingleUser",A="FL:::/Kernel/KMisc.CPP.Z,255",BI=212$
    +$LK,"MStrPrint",A="FL:::/Kernel/StrPrint.CPP.Z,915",BI=211$
    +$LK,"DVlf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2681"$
    +$LK,"SrcFileName",A="FL:::/Kernel/FunSeg.CPP.Z,231",BI=212$
    +$LK,"RawD",A="FL:::/Kernel/KDbg.CPP.Z,234",BI=213$
    +$LK,"IsSingleUser",A="FL:::/Kernel/KMisc.CPP.Z,255",BI=214$
     $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,3206"$
    -$LK,"BDF_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,2637"$
    -$LK,"DOCT_CURSOR_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,923"$
    -$LK,"SCF_CTRL",A="FL:::/Kernel/KernelA.HPP,3533"$
    -$LK,"SCf_CTRL",A="FL:::/Kernel/KernelA.HPP,3518"$
    -$LK,"TK_ENDIF",A="FL:::/Kernel/KernelA.HPP,2103"$
    -$LK,"RT_UF32",A="FL:::/Kernel/KernelA.HPP,1563"$
    -$LK,"CCF_NO_REG_OPT",A="FL:::/Kernel/KernelA.HPP,2138"$
    -$LK,"DOCEf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1048"$
    -$LK,"DOCEF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1042"$
    -$LK,"DOCEt_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,954"$
    -$LK,"DOCET_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,948"$
    -$LK,"RLf_DOC",A="FL:::/Kernel/KernelA.HPP,448"$
    -$LK,"pi",A="FL:::/Kernel/KernelA.HPP,48"$
    -$LK,"ATTRF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,890"$
    -$LK,"ATTRf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,895"$
    -$LK,"KbdMouseVarsInit",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,271",BI=213$
    -$LK,"DOCF_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1273"$
    -$LK,"SYS_SEMA_UPDATE_WIN_Z_BUF",A="FL:::/Kernel/KernelA.HPP,606"$
    -$LK,"Exit",A="FL:::/Kernel/KTask.CPP.Z,1",BI=214$
    -$LK,"TASKf_BREAK_TO_SHIFT_ESC",A="FL:::/Kernel/KernelA.HPP,3284"$
    -$LK,"HTT_KEYWORD",A="FL:::/Kernel/KernelA.HPP,689"$
    -$LK,"CopySingleZ",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,1",BI=215$
    -$LK,"DCF_NO_TRANSPARENTS",A="FL:::/Kernel/KernelA.HPP,3618"$
    -$LK,"HTt_KEYWORD",A="FL:::/Kernel/KernelA.HPP,659"$
    -$LK,"SYS_SEMA_IN_DEBUGGER",A="FL:::/Kernel/KernelA.HPP,595"$
    -$LK,"RT_UF64",A="FL:::/Kernel/KernelA.HPP,1565"$
    -$LK,"DOCf_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1309"$
    -$LK,"GetMsg",A="FL:::/Kernel/SerialDev/Message.CPP.Z,95",BI=216$
    -$LK,"CMPCrash",A="FL:::/Kernel/KernelA.HPP,3852"$
    -$LK,"ROPBF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HPP,2928"$
    -$LK,"MEM_NUM_PML2",A="FL:::/Kernel/KernelA.HPP,3458"$
    -$LK,"ICF_SHORT_JMP",A="FL:::/Kernel/KernelA.HPP,1601"$
    -$LK,"IA32_FS_BASE",A="FL:::/Kernel/KernelA.HPP,520"$
    -$LK,"Rand",A="FL:::/Kernel/KMathB.CPP.Z,122",BI=217$
    -$LK,"MEM_NUM_PML3",A="FL:::/Kernel/KernelA.HPP,3459"$
    -$LK,"FAT32_ENTRIES_BITS",A="FL:::/Kernel/KernelA.HPP,2406"$
    -$LK,"TK_IDENT",A="FL:::/Kernel/KernelA.HPP,2071"$
    -$LK,"ArcCompressBuf",A="FL:::/Kernel/Compress.CPP.Z,110",BI=218$
    -$LK,"MEM_NUM_PML4",A="FL:::/Kernel/KernelA.HPP,3460"$
    -$LK,"MDG_REG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HPP,1587"$
    -$LK,"ToFileLine",A="FL:::/Kernel/EdLite.CPP.Z,303",BI=219$
    -$LK,"D3Unit",A="FL:::/Kernel/KernelB.HPP,162"$
    -$LK,"CTRLT_WIN_HSCROLL",A="FL:::/Kernel/KernelA.HPP,3079"$
    -$LK,"TK_IFAOT",A="FL:::/Kernel/KernelA.HPP,2101"$
    -$LK,"IsDotC",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,31",BI=220$
    -$LK,"BDf_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,2647"$
    -$LK,"TK_GREATER_EQU",A="FL:::/Kernel/KernelA.HPP,2085"$
    -$LK,"CICArg",A="FL:::/Kernel/KernelA.HPP,1630"$
    -$LK,"MDF_STK",A="FL:::/Kernel/KernelA.HPP,1578"$
    -$LK,"DOCEf_CENTER_X",A="FL:::/Kernel/KernelA.HPP,1074"$
    -$LK,"DOCEF_CENTER_X",A="FL:::/Kernel/KernelA.HPP,986"$
    -$LK,"SYS_TIMER_FREQ",A="FL:::/Kernel/KernelA.HPP,550"$
    -$LK,"HashTablePurge",A="FL:::/Kernel/KHashB.CPP.Z,107",BI=221$
    -$LK,"GR_HEIGHT",A="FL:::/Kernel/KernelA.HPP,3607"$
    -$LK,"DOCEf_CENTER_Y",A="FL:::/Kernel/KernelA.HPP,1077"$
    -$LK,"DOCEF_CENTER_Y",A="FL:::/Kernel/KernelA.HPP,989"$
    -$LK,"Seed",A="FL:::/Kernel/KMathB.CPP.Z,128",BI=222$
    -$LK,"DrvsRelease",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,27",BI=223$
    -$LK,"TASKf_FILTER_INPUT",A="FL:::/Kernel/KernelA.HPP,3278"$
    -$LK,"DOCEF_REFRESH_DATA",A="FL:::/Kernel/KernelA.HPP,1005"$
    -$LK,"DOCf_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HPP,1303"$
    -$LK,"DOCF_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HPP,1267"$
    -$LK,"SYS_SEMA_FLUSH_VGA_IMAGE",A="FL:::/Kernel/KernelA.HPP,600"$
    -$LK,"OPTf_NO_REG_VAR",A="FL:::/Kernel/KernelA.HPP,1541"$
    -$LK,"CTRLF_SHOW",A="FL:::/Kernel/KernelA.HPP,3083"$
    -$LK,"DOCEf_REFRESH_DATA",A="FL:::/Kernel/KernelA.HPP,1093"$
    -$LK,"DOCEf_LEFT_EXP",A="FL:::/Kernel/KernelA.HPP,1056"$
    -$LK,"DOCEF_LEFT_EXP",A="FL:::/Kernel/KernelA.HPP,968"$
    -$LK,"ISO1FileRead",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,190",BI=224$
    -$LK,"ATAPIWaitReady",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,334",BI=225$
    -$LK,"SC_PRTSCRN1",A="FL:::/Kernel/KernelA.HPP,3583"$
    -$LK,"FUF_ALL",A="FL:::/Kernel/KernelA.HPP,2596"$
    -$LK,"STR_LEN",A="FL:::/Kernel/KernelA.HPP,39"$
    -$LK,"DskCacheQueIns",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,53",BI=226$
    -$LK,"SC_PRTSCRN2",A="FL:::/Kernel/KernelA.HPP,3584"$
    -$LK,"sys_semas",A="FL:::/Kernel/KernelB.HPP,231"$
    -$LK,"InputFilterTask",A="FL:::/Kernel/SerialDev/Message.CPP.Z,1",BI=227$
    +$LK,"SVCRf_LOCKED",A="FL:::/Kernel/KernelA.HPP,3212"$
    +$LK,"BDF_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,2639"$
    +$LK,"DOCT_CURSOR_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,925"$
    +$LK,"SCF_CTRL",A="FL:::/Kernel/KernelA.HPP,3539"$
    +$LK,"SCf_CTRL",A="FL:::/Kernel/KernelA.HPP,3524"$
    +$LK,"TK_ENDIF",A="FL:::/Kernel/KernelA.HPP,2105"$
    +$LK,"RT_UF32",A="FL:::/Kernel/KernelA.HPP,1565"$
    +$LK,"CCF_NO_REG_OPT",A="FL:::/Kernel/KernelA.HPP,2141"$
    +$LK,"DOCEf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1050"$
    +$LK,"DOCEF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,1044"$
    +$LK,"DOCEt_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,956"$
    +$LK,"DOCET_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,950"$
    +$LK,"RLf_DOC",A="FL:::/Kernel/KernelA.HPP,450"$
    +$LK,"pi",A="FL:::/Kernel/KernelA.HPP,49"$
    +$LK,"ATTRF_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,892"$
    +$LK,"ATTRf_UNDERLINE",A="FL:::/Kernel/KernelA.HPP,897"$
    +$LK,"KbdMouseVarsInit",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,271",BI=215$
    +$LK,"DOCF_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1275"$
    +$LK,"SYS_SEMA_UPDATE_WIN_Z_BUF",A="FL:::/Kernel/KernelA.HPP,608"$
    +$LK,"Exit",A="FL:::/Kernel/KTask.CPP.Z,1",BI=216$
    +$LK,"TASKf_BREAK_TO_SHIFT_ESC",A="FL:::/Kernel/KernelA.HPP,3290"$
    +$LK,"HTT_KEYWORD",A="FL:::/Kernel/KernelA.HPP,691"$
    +$LK,"CopySingleZ",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,1",BI=217$
    +$LK,"DCF_NO_TRANSPARENTS",A="FL:::/Kernel/KernelA.HPP,3625"$
    +$LK,"HTt_KEYWORD",A="FL:::/Kernel/KernelA.HPP,661"$
    +$LK,"SYS_SEMA_IN_DEBUGGER",A="FL:::/Kernel/KernelA.HPP,597"$
    +$LK,"RT_UF64",A="FL:::/Kernel/KernelA.HPP,1567"$
    +$LK,"DOCf_BWD_MOVEMENT",A="FL:::/Kernel/KernelA.HPP,1311"$
    +$LK,"GetMsg",A="FL:::/Kernel/SerialDev/Message.CPP.Z,95",BI=218$
    +$LK,"CMPCrash",A="FL:::/Kernel/KernelA.HPP,3859"$
    +$LK,"ROPBF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HPP,2934"$
    +$LK,"MEM_NUM_PML2",A="FL:::/Kernel/KernelA.HPP,3464"$
    +$LK,"ICF_SHORT_JMP",A="FL:::/Kernel/KernelA.HPP,1603"$
    +$LK,"IA32_FS_BASE",A="FL:::/Kernel/KernelA.HPP,522"$
    +$LK,"Rand",A="FL:::/Kernel/KMathB.CPP.Z,122",BI=219$
    +$LK,"MEM_NUM_PML3",A="FL:::/Kernel/KernelA.HPP,3465"$
    +$LK,"FAT32_ENTRIES_BITS",A="FL:::/Kernel/KernelA.HPP,2408"$
    +$LK,"TK_IDENT",A="FL:::/Kernel/KernelA.HPP,2073"$
    +$LK,"ArcCompressBuf",A="FL:::/Kernel/Compress.CPP.Z,110",BI=220$
    +$LK,"MEM_NUM_PML4",A="FL:::/Kernel/KernelA.HPP,3466"$
    +$LK,"MDG_REG_DISP_SIB_RIP",A="FL:::/Kernel/KernelA.HPP,1589"$
    +$LK,"ToFileLine",A="FL:::/Kernel/EdLite.CPP.Z,303",BI=221$
    +$LK,"D3Unit",A="FL:::/Kernel/KernelB.HPP,161"$
    +$LK,"CTRLT_WIN_HSCROLL",A="FL:::/Kernel/KernelA.HPP,3085"$
    +$LK,"TK_IFAOT",A="FL:::/Kernel/KernelA.HPP,2103"$
    +$LK,"IsDotC",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,31",BI=222$
    +$LK,"BDf_LAST_WAS_WRITE",A="FL:::/Kernel/KernelA.HPP,2649"$
    +$LK,"TK_GREATER_EQU",A="FL:::/Kernel/KernelA.HPP,2087"$
    +$LK,"CICArg",A="FL:::/Kernel/KernelA.HPP,1632"$
    +$LK,"MDF_STK",A="FL:::/Kernel/KernelA.HPP,1580"$
    +$LK,"DOCEf_CENTER_X",A="FL:::/Kernel/KernelA.HPP,1076"$
    +$LK,"DOCEF_CENTER_X",A="FL:::/Kernel/KernelA.HPP,988"$
    +$LK,"SYS_TIMER_FREQ",A="FL:::/Kernel/KernelA.HPP,552"$
    +$LK,"HashTablePurge",A="FL:::/Kernel/KHashB.CPP.Z,107",BI=223$
    +$LK,"GR_HEIGHT",A="FL:::/Kernel/KernelA.HPP,3614"$
    +$LK,"DOCEf_CENTER_Y",A="FL:::/Kernel/KernelA.HPP,1079"$
    +$LK,"DOCEF_CENTER_Y",A="FL:::/Kernel/KernelA.HPP,991"$
    +$LK,"Seed",A="FL:::/Kernel/KMathB.CPP.Z,128",BI=224$
    +$LK,"DrvsRelease",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,27",BI=225$
    +$LK,"TASKf_FILTER_INPUT",A="FL:::/Kernel/KernelA.HPP,3284"$
    +$LK,"DOCEF_REFRESH_DATA",A="FL:::/Kernel/KernelA.HPP,1007"$
    +$LK,"DOCf_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HPP,1305"$
    +$LK,"DOCF_DONT_HIGHLIGHT_CURSOR",A="FL:::/Kernel/KernelA.HPP,1269"$
    +$LK,"SYS_SEMA_FLUSH_VGA_IMAGE",A="FL:::/Kernel/KernelA.HPP,602"$
    +$LK,"OPTf_NO_REG_VAR",A="FL:::/Kernel/KernelA.HPP,1543"$
    +$LK,"CTRLF_SHOW",A="FL:::/Kernel/KernelA.HPP,3089"$
    +$LK,"DOCEf_REFRESH_DATA",A="FL:::/Kernel/KernelA.HPP,1095"$
    +$LK,"DOCEf_LEFT_EXP",A="FL:::/Kernel/KernelA.HPP,1058"$
    +$LK,"DOCEF_LEFT_EXP",A="FL:::/Kernel/KernelA.HPP,970"$
    +$LK,"ISO1FileRead",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,130",BI=226$
    +$LK,"ATAPIWaitReady",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,334",BI=227$
    +$LK,"SC_PRTSCRN1",A="FL:::/Kernel/KernelA.HPP,3589"$
    +$LK,"FUF_ALL",A="FL:::/Kernel/KernelA.HPP,2597"$
    +$LK,"STR_LEN",A="FL:::/Kernel/KernelA.HPP,40"$
    +$LK,"DskCacheQueIns",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,53",BI=228$
    +$LK,"SC_PRTSCRN2",A="FL:::/Kernel/KernelA.HPP,3590"$
    +$LK,"sys_semas",A="FL:::/Kernel/KernelB.HPP,230"$
    +$LK,"InputFilterTask",A="FL:::/Kernel/SerialDev/Message.CPP.Z,1",BI=229$
     $LK,"SYS_HASH_STR",A="FL:::/Kernel/KHashA.CPP.Z,4"$
    -$LK,"ATAR0_CMD",A="FL:::/Kernel/KernelA.HPP,2282"$
    -$LK,"I_DBG",A="FL:::/Kernel/KernelA.HPP,295"$
    -$LK,"FATNameTo",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,130",BI=228$
    -$LK,"SrvCmdQueDel",A="FL:::/Kernel/SrvCmd.CPP.Z,7",BI=229$
    -$LK,"MinI64",A="FL:::/Kernel/KernelB.HPP,100"$
    -$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=230$
    +$LK,"ATAR0_CMD",A="FL:::/Kernel/KernelA.HPP,2285"$
    +$LK,"I_DBG",A="FL:::/Kernel/KernelA.HPP,296"$
    +$LK,"FATNameTo",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,130",BI=230$
    +$LK,"SrvCmdQueDel",A="FL:::/Kernel/SrvCmd.CPP.Z,7",BI=231$
    +$LK,"MinI64",A="FL:::/Kernel/KernelB.HPP,101"$
    +$LK,"MaxU64",A="FL:::/Kernel/KernelB.HPP,100"$
    +$LK,"CallInd",A="FL:::/Kernel/KernelB.HPP,49"$
    +$LK,"EndianI64",A="FL:::/Kernel/KMisc.CPP.Z,25",BI=232$
     $LK,"_MSIZE",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,337"$
    -$LK,"AC_MAX_FILLINS",A="FL:::/Kernel/KernelA.HPP,1483"$
    -$LK,"GVF_IMPORT",A="FL:::/Kernel/KernelA.HPP,865"$
    -$LK,"HTF_IMPORT",A="FL:::/Kernel/KernelA.HPP,702"$
    -$LK,"HTf_IMPORT",A="FL:::/Kernel/KernelA.HPP,672"$
    -$LK,"NUM_BLKDEVS",A="FL:::/Kernel/KernelA.HPP,2656"$
    -$LK,"IEF_PLUS_OPCODE",A="FL:::/Kernel/KernelA.HPP,1727"$
    -$LK,"LAPIC_ICR_LOW",A="FL:::/Kernel/KernelA.HPP,493"$
    +$LK,"AC_MAX_FILLINS",A="FL:::/Kernel/KernelA.HPP,1485"$
    +$LK,"GVF_IMPORT",A="FL:::/Kernel/KernelA.HPP,867"$
    +$LK,"HTF_IMPORT",A="FL:::/Kernel/KernelA.HPP,704"$
    +$LK,"HTf_IMPORT",A="FL:::/Kernel/KernelA.HPP,674"$
    +$LK,"NUM_BLKDEVS",A="FL:::/Kernel/KernelA.HPP,2658"$
    +$LK,"IEF_PLUS_OPCODE",A="FL:::/Kernel/KernelA.HPP,1729"$
    +$LK,"LAPIC_ICR_LOW",A="FL:::/Kernel/KernelA.HPP,495"$
     $LK,"mouse",A="FL:::/Kernel/KGlbls.CPP.Z,27"$
    -$LK,"D3Zero",A="FL:::/Kernel/KernelB.HPP,163"$
    -$LK,"ST_WARN_ST",A="FL:::/Kernel/KernelA.HPP,3512"$
    -$LK,"FUF_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HPP,2613"$
    -$LK,"DskCacheInvalidate2",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,97",BI=231$
    -$LK,"CCtrl",A="FL:::/Kernel/KernelA.HPP,3105"$
    -$LK,"CBlkDev",A="FL:::/Kernel/KernelA.HPP,2658"$
    -$LK,"DOCT_SONG",A="FL:::/Kernel/KernelA.HPP,937"$
    -$LK,"DOCT_TREE",A="FL:::/Kernel/KernelA.HPP,933"$
    -$LK,"progress1_desc",A="FL:::/Kernel/KernelB.HPP,208"$
    -$LK,"BDS_ED_FILENAME_DRV",A="FL:::/Kernel/KernelA.HPP,3263"$
    -$LK,"DOCT_TEXT",A="FL:::/Kernel/KernelA.HPP,898"$
    -$LK,"CMathODE",A="FL:::/Kernel/KernelA.HPP,243"$
    -$LK,"WinInside",A="FL:::/Kernel/Display.CPP.Z,126",BI=232$
    -$LK,"RFLAGf_ALIGN_CHECK",A="FL:::/Kernel/KernelA.HPP,320"$
    -$LK,"FUf_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HPP,2587"$
    -$LK,"DOCF_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HPP,1269"$
    -$LK,"CMemberLst",A="FL:::/Kernel/KernelA.HPP,795"$
    -$LK,"DOCf_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HPP,1305"$
    -$LK,"DskCacheQueRem",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,46",BI=233$
    +$LK,"D3Zero",A="FL:::/Kernel/KernelB.HPP,162"$
    +$LK,"ST_WARN_ST",A="FL:::/Kernel/KernelA.HPP,3518"$
    +$LK,"FUF_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HPP,2614"$
    +$LK,"DskCacheInvalidate2",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,97",BI=233$
    +$LK,"CCtrl",A="FL:::/Kernel/KernelA.HPP,3111"$
    +$LK,"CBlkDev",A="FL:::/Kernel/KernelA.HPP,2660"$
    +$LK,"DOCT_SONG",A="FL:::/Kernel/KernelA.HPP,939"$
    +$LK,"DOCT_TREE",A="FL:::/Kernel/KernelA.HPP,935"$
    +$LK,"progress1_desc",A="FL:::/Kernel/KernelB.HPP,207"$
    +$LK,"BDS_ED_FILENAME_DRV",A="FL:::/Kernel/KernelA.HPP,3269"$
    +$LK,"DOCT_TEXT",A="FL:::/Kernel/KernelA.HPP,900"$
    +$LK,"CMathODE",A="FL:::/Kernel/KernelA.HPP,244"$
    +$LK,"WinInside",A="FL:::/Kernel/Display.CPP.Z,126",BI=234$
    +$LK,"RFLAGf_ALIGN_CHECK",A="FL:::/Kernel/KernelA.HPP,321"$
    +$LK,"FUf_SCAN_PARENTS",A="FL:::/Kernel/KernelA.HPP,2588"$
    +$LK,"DOCF_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HPP,1271"$
    +$LK,"CMemberLst",A="FL:::/Kernel/KernelA.HPP,797"$
    +$LK,"DOCf_ALLOW_UNDO",A="FL:::/Kernel/KernelA.HPP,1307"$
    +$LK,"DskCacheQueRem",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,46",BI=235$
     $LK,"_D3_NORM",A="FL:::/Kernel/KMathA.CPP.Z,4"$
    -$LK,"DOCEf_BLINK",A="FL:::/Kernel/KernelA.HPP,1045"$
    -$LK,"DOCEF_BLINK",A="FL:::/Kernel/KernelA.HPP,1039"$
    -$LK,"IsDotZ",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,22",BI=234$
    -$LK,"HashGenericAdd",A="FL:::/Kernel/KHashB.CPP.Z,140",BI=235$
    +$LK,"DOCEf_BLINK",A="FL:::/Kernel/KernelA.HPP,1047"$
    +$LK,"DOCEF_BLINK",A="FL:::/Kernel/KernelA.HPP,1041"$
    +$LK,"IsDotZ",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,22",BI=236$
    +$LK,"HashGenericAdd",A="FL:::/Kernel/KHashB.CPP.Z,140",BI=237$
     $LK,"_TASK_CONTEXT_RESTORE",A="FL:::/Kernel/Sched.CPP.Z,100"$
     $LK,"BFieldOrU32",A="FL:::/Kernel/KernelB.HPP,32"$
    -$LK,"TK_IFJIT",A="FL:::/Kernel/KernelA.HPP,2102"$
    -$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,3730"$
    -$LK,"ARGT_REL32",A="FL:::/Kernel/KernelA.HPP,1880"$
    -$LK,"ARGT_REL16",A="FL:::/Kernel/KernelA.HPP,1879"$
    -$LK,"cpu_structs",A="FL:::/Kernel/KernelB.HPP,227"$
    -$LK,"SC_DELETE",A="FL:::/Kernel/KernelA.HPP,3568"$
    -$LK,"MAX_U64_F64",A="FL:::/Kernel/KernelA.HPP,43"$
    +$LK,"TK_IFJIT",A="FL:::/Kernel/KernelA.HPP,2104"$
    +$LK,"RedSeaFileRead",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,207",BI=238$
    +$LK,"MousePktRead",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,1",BI=239$
    +$LK,"VGAP_CRTC_DATA",A="FL:::/Kernel/KernelA.HPP,3737"$
    +$LK,"ARGT_REL32",A="FL:::/Kernel/KernelA.HPP,1882"$
    +$LK,"ARGT_REL16",A="FL:::/Kernel/KernelA.HPP,1881"$
    +$LK,"cpu_structs",A="FL:::/Kernel/KernelB.HPP,226"$
    +$LK,"SC_DELETE",A="FL:::/Kernel/KernelA.HPP,3574"$
    +$LK,"MAX_U64_F64",A="FL:::/Kernel/KernelA.HPP,44"$
     $LK,"CLine",A="FL:::/Kernel/EdLite.CPP.Z,1"$
    -$LK,"ACD_MAX_FILLINS",A="FL:::/Kernel/KernelA.HPP,1520"$
    -$LK,"REGT_SEG",A="FL:::/Kernel/KernelA.HPP,741"$
    -$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,2961"$
    -$LK,"FSG_TYPE_MASK",A="FL:::/Kernel/KernelA.HPP,2688"$
    +$LK,"ACD_MAX_FILLINS",A="FL:::/Kernel/KernelA.HPP,1522"$
    +$LK,"REGT_SEG",A="FL:::/Kernel/KernelA.HPP,743"$
    +$LK,"CMass",A="FL:::/Kernel/KernelA.HPP,208"$
    +$LK,"GetStr",A="FL:::/Kernel/SerialDev/Message.CPP.Z,193",BI=240$
    +$LK,"LTRED",A="FL:::/Kernel/KernelA.HPP,2967"$
    +$LK,"FSG_TYPE_MASK",A="FL:::/Kernel/KernelA.HPP,2693"$
     $LK,"StrIMatch",A="FL:::/Kernel/StrA.CPP.Z,319"$
    -$LK,"HTG_TYPE_MASK",A="FL:::/Kernel/KernelA.HPP,697"$
    -$LK,"Sign",A="FL:::/Kernel/KernelB.HPP,141"$
    -$LK,"ExpandBuf",A="FL:::/Kernel/Compress.CPP.Z,250",BI=239$
    -$LK,"ICF_ALT_TEMPLATE",A="FL:::/Kernel/KernelA.HPP,1612"$
    -$LK,"DOCT_PAGE_LEN",A="FL:::/Kernel/KernelA.HPP,906"$
    -$LK,"RLf_RAW",A="FL:::/Kernel/KernelA.HPP,443"$
    -$LK,"ToggleZorNotZ",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,255",BI=240$
    -$LK,"VGAP_ATTR_INDEX",A="FL:::/Kernel/KernelA.HPP,3719"$
    -$LK,"D3MulEqu",A="FL:::/Kernel/KernelB.HPP,157"$
    -$LK,"BDS_CONST",A="FL:::/Kernel/KernelA.HPP,3261"$
    -$LK,"MP_MAX_PROCESSORS",A="FL:::/Kernel/KernelA.HPP,302"$
    -$LK,"SysGlblsInit",A="FL:::/Kernel/KEnd.CPP.Z,1",BI=241$
    -$LK,"PutSrcLink",A="FL:::/Kernel/FunSeg.CPP.Z,287",BI=242$
    -$LK,"CMenu",A="FL:::/Kernel/KernelA.HPP,3139"$
    -$LK,"BDT_ATAPI",A="FL:::/Kernel/KernelA.HPP,2630"$
    -$LK,"FUF_MAP",A="FL:::/Kernel/KernelA.HPP,2601"$
    -$LK,"CFAT32DirEntry",A="FL:::/Kernel/KernelA.HPP,2377"$
    -$LK,"ACD_POS_END",A="FL:::/Kernel/KernelA.HPP,1508"$
    -$LK,"DOCT_INVERT",A="FL:::/Kernel/KernelA.HPP,919"$
    -$LK,"CMT_HASH_ENTRY",A="FL:::/Kernel/KernelA.HPP,1692"$
    -$LK,"RLf_VGA",A="FL:::/Kernel/KernelA.HPP,437"$
    -$LK,"WIf_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1452"$
    -$LK,"LAPIC_LVT_PERF",A="FL:::/Kernel/KernelA.HPP,498"$
    -$LK,"SC_F1",A="FL:::/Kernel/KernelA.HPP,3569"$
    -$LK,"SYS_SEMAS",A="FL:::/Kernel/KStart.CPP.Z,231"$
    -$LK,"SC_F2",A="FL:::/Kernel/KernelA.HPP,3570"$
    -$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,3571"$
    -$LK,"SignI64",A="FL:::/Kernel/KernelB.HPP,103"$
    +$LK,"HTG_TYPE_MASK",A="FL:::/Kernel/KernelA.HPP,699"$
    +$LK,"Sign",A="FL:::/Kernel/KernelB.HPP,140"$
    +$LK,"ExpandBuf",A="FL:::/Kernel/Compress.CPP.Z,250",BI=241$
    +$LK,"ICF_ALT_TEMPLATE",A="FL:::/Kernel/KernelA.HPP,1614"$
    +$LK,"DOCT_PAGE_LEN",A="FL:::/Kernel/KernelA.HPP,908"$
    +$LK,"RLf_RAW",A="FL:::/Kernel/KernelA.HPP,445"$
    +$LK,"ToggleZorNotZ",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,261",BI=242$
    +$LK,"VGAP_ATTR_INDEX",A="FL:::/Kernel/KernelA.HPP,3726"$
    +$LK,"D3MulEqu",A="FL:::/Kernel/KernelB.HPP,156"$
    +$LK,"BDS_CONST",A="FL:::/Kernel/KernelA.HPP,3267"$
    +$LK,"MP_MAX_PROCESSORS",A="FL:::/Kernel/KernelA.HPP,303"$
    +$LK,"SysGlblsInit",A="FL:::/Kernel/KEnd.CPP.Z,1",BI=243$
    +$LK,"PutSrcLink",A="FL:::/Kernel/FunSeg.CPP.Z,287",BI=244$
    +$LK,"CMenu",A="FL:::/Kernel/KernelA.HPP,3145"$
    +$LK,"BDT_ATAPI",A="FL:::/Kernel/KernelA.HPP,2632"$
    +$LK,"FUF_MAP",A="FL:::/Kernel/KernelA.HPP,2602"$
    +$LK,"CFAT32DirEntry",A="FL:::/Kernel/KernelA.HPP,2379"$
    +$LK,"ACD_POS_END",A="FL:::/Kernel/KernelA.HPP,1510"$
    +$LK,"DOCT_INVERT",A="FL:::/Kernel/KernelA.HPP,921"$
    +$LK,"CMT_HASH_ENTRY",A="FL:::/Kernel/KernelA.HPP,1694"$
    +$LK,"RLf_VGA",A="FL:::/Kernel/KernelA.HPP,439"$
    +$LK,"WIf_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1454"$
    +$LK,"LAPIC_LVT_PERF",A="FL:::/Kernel/KernelA.HPP,500"$
    +$LK,"SC_F1",A="FL:::/Kernel/KernelA.HPP,3575"$
    +$LK,"SYS_SEMAS",A="FL:::/Kernel/KStart.CPP.Z,236"$
    +$LK,"SC_F2",A="FL:::/Kernel/KernelA.HPP,3576"$
    +$LK,"SYS_VAR_INIT_FLAG",A="FL::/Temp.TXT.Z,1"$
    +$LK,"SYS_MEM_INIT_FLAG",A="FL::/Temp.TXT.Z,1"$
    +$LK,"SC_F3",A="FL:::/Kernel/KernelA.HPP,3577"$
    +$LK,"SignI64",A="FL:::/Kernel/KernelB.HPP,104"$
     $LK,"_CALLIND",A="FL:::/Kernel/KUtils.CPP.Z,333"$
    -$LK,"SC_F4",A="FL:::/Kernel/KernelA.HPP,3572"$
    -$LK,"WSSf_SET_TO_POS",A="FL:::/Kernel/KernelA.HPP,3089"$
    -$LK,"RS_ATTR_SYSTEM",A="FL:::/Kernel/KernelA.HPP,2525"$
    -$LK,"SYS_SEMA_MUTE",A="FL:::/Kernel/KernelA.HPP,608"$
    -$LK,"I_BPT",A="FL:::/Kernel/KernelA.HPP,288"$
    +$LK,"SC_F4",A="FL:::/Kernel/KernelA.HPP,3578"$
    +$LK,"WSSf_SET_TO_POS",A="FL:::/Kernel/KernelA.HPP,3095"$
    +$LK,"RS_ATTR_SYSTEM",A="FL:::/Kernel/KernelA.HPP,2527"$
    +$LK,"SYS_SEMA_MUTE",A="FL:::/Kernel/KernelA.HPP,610"$
    +$LK,"I_BPT",A="FL:::/Kernel/KernelA.HPP,289"$
     $LK,"_TAKE_EXCEPT",A="FL:::/Kernel/KExcept.CPP.Z,20"$
    -$LK,"DefineCnt",A="FL:::/Kernel/KDefine.CPP.Z,74",BI=243$
    -$LK,"SC_F5",A="FL:::/Kernel/KernelA.HPP,3573"$
    -$LK,"WIF_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HPP,1421"$
    -$LK,"RedSeaCd",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,234",BI=244$
    +$LK,"DefineCnt",A="FL:::/Kernel/KDefine.CPP.Z,74",BI=245$
    +$LK,"SC_F5",A="FL:::/Kernel/KernelA.HPP,3579"$
    +$LK,"WIF_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HPP,1423"$
    +$LK,"RedSeaCd",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,236",BI=246$
     $LK,"C:/Doc/Bit.TXT.Z",A="FL:::/Kernel/KernelB.HPP,9"$
    -$LK,"SC_F6",A="FL:::/Kernel/KernelA.HPP,3574"$
    -$LK,"SysGrInit",A="FL:::/Kernel/KEnd.CPP.Z,64",BI=245$
    -$LK,"ArcCtrlDel",A="FL:::/Kernel/Compress.CPP.Z,244",BI=246$
    -$LK,"SysBadMAlloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,6",BI=247$
    -$LK,"SC_F7",A="FL:::/Kernel/KernelA.HPP,3575"$
    -$LK,"DOCSS_NORMAL",A="FL:::/Kernel/KernelA.HPP,1126"$
    -$LK,"GVF_EXTERN",A="FL:::/Kernel/KernelA.HPP,866"$
    -$LK,"blkdev_text_attr",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,278"$
    +$LK,"SC_F6",A="FL:::/Kernel/KernelA.HPP,3580"$
    +$LK,"SysGrInit",A="FL:::/Kernel/KEnd.CPP.Z,64",BI=247$
    +$LK,"ArcCtrlDel",A="FL:::/Kernel/Compress.CPP.Z,244",BI=248$
    +$LK,"SysBadMAlloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,6",BI=249$
    +$LK,"SC_F7",A="FL:::/Kernel/KernelA.HPP,3581"$
    +$LK,"DOCSS_NORMAL",A="FL:::/Kernel/KernelA.HPP,1128"$
    +$LK,"GVF_EXTERN",A="FL:::/Kernel/KernelA.HPP,868"$
    +$LK,"blkdev_text_attr",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,291"$
     $LK,"SPF_NEG_E",A="FL:::/Kernel/StrPrint.CPP.Z,11"$
    -$LK,"SC_F8",A="FL:::/Kernel/KernelA.HPP,3576"$
    -$LK,"Mute",A="FL:::/Kernel/KMisc.CPP.Z,199",BI=248$
    +$LK,"SC_F8",A="FL:::/Kernel/KernelA.HPP,3582"$
    +$LK,"Mute",A="FL:::/Kernel/KMisc.CPP.Z,199",BI=250$
     $LK,"INT_FAULT",A="FL:::/Kernel/KInts.CPP.Z,55"$
    -$LK,"progress2_desc",A="FL:::/Kernel/KernelB.HPP,212"$
    -$LK,"DCSF_PALETTE_GET",A="FL:::/Kernel/KernelA.HPP,3639"$
    -$LK,"SC_F9",A="FL:::/Kernel/KernelA.HPP,3577"$
    -$LK,"DOCEF_SOLID_BORDER",A="FL:::/Kernel/KernelA.HPP,1001"$
    -$LK,"KbdBuildSC",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,301",BI=249$
    -$LK,"CInst",A="FL:::/Kernel/KernelA.HPP,1742"$
    -$LK,"IOAPICID",A="FL:::/Kernel/KernelA.HPP,510"$
    -$LK,"RFLAGf_SIGN",A="FL:::/Kernel/KernelA.HPP,310"$
    -$LK,"DKGRAY",A="FL:::/Kernel/KernelA.HPP,2957"$
    -$LK,"DOCEF_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HPP,994"$
    -$LK,"PutDirLink",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,197",BI=250$
    -$LK,"EndianU32",A="FL:::/Kernel/KMisc.CPP.Z,15",BI=251$
    -$LK,"EndianU16",A="FL:::/Kernel/KMisc.CPP.Z,7",BI=252$
    -$LK,"DOCEf_SOLID_BORDER",A="FL:::/Kernel/KernelA.HPP,1089"$
    +$LK,"progress2_desc",A="FL:::/Kernel/KernelB.HPP,211"$
    +$LK,"DCSF_PALETTE_GET",A="FL:::/Kernel/KernelA.HPP,3646"$
    +$LK,"SC_F9",A="FL:::/Kernel/KernelA.HPP,3583"$
    +$LK,"DOCEF_SOLID_BORDER",A="FL:::/Kernel/KernelA.HPP,1003"$
    +$LK,"KbdBuildSC",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,301",BI=251$
    +$LK,"CInst",A="FL:::/Kernel/KernelA.HPP,1744"$
    +$LK,"IOAPICID",A="FL:::/Kernel/KernelA.HPP,512"$
    +$LK,"RFLAGf_SIGN",A="FL:::/Kernel/KernelA.HPP,311"$
    +$LK,"DKGRAY",A="FL:::/Kernel/KernelA.HPP,2963"$
    +$LK,"DOCEF_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HPP,996"$
    +$LK,"PutDirLink",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,200",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,1091"$
     $LK,"SPF_NEG_AUX_FMT_NUM",A="FL:::/Kernel/StrPrint.CPP.Z,12"$
    -$LK,"sys_pci_busses",A="FL:::/Kernel/KernelB.HPP,237"$
    -$LK,"BOOT_STK_SIZE",A="FL:::/Kernel/KernelA.HPP,3877"$
    -$LK,"TTS_LOCKED_CONST",A="FL:::/Kernel/KernelA.HPP,3267"$
    -$LK,"CCf_FUN_EXP",A="FL:::/Kernel/KernelA.HPP,2147"$
    -$LK,"CCF_FUN_EXP",A="FL:::/Kernel/KernelA.HPP,2146"$
    -$LK,"LAPIC_APIC_VERSION",A="FL:::/Kernel/KernelA.HPP,478"$
    -$LK,"PutS",A="FL:::/Kernel/KeyDev.CPP.Z,29",BI=253$
    -$LK,"DOCEf_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HPP,1082"$
    -$LK,"CDocBin",A="FL:::/Kernel/KernelA.HPP,1112"$
    -$LK,"LAPIC_BASE",A="FL:::/Kernel/KernelA.HPP,475"$
    -$LK,"MAX_F64",A="FL:::/Kernel/KernelA.HPP,44"$
    -$LK,"StrPrintJoin",A="FL:::/Kernel/StrPrint.CPP.Z,219",BI=254$
    -$LK,"IA32_GS_BASE",A="FL:::/Kernel/KernelA.HPP,521"$
    -$LK,"log2_e",A="FL:::/Kernel/KernelA.HPP,52"$
    -$LK,"CurDir",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,271",BI=255$
    -$LK,"MinU64",A="FL:::/Kernel/KernelB.HPP,101"$
    +$LK,"sys_pci_busses",A="FL:::/Kernel/KernelB.HPP,236"$
    +$LK,"BOOT_STK_SIZE",A="FL:::/Kernel/KernelA.HPP,3884"$
    +$LK,"TTS_LOCKED_CONST",A="FL:::/Kernel/KernelA.HPP,3273"$
    +$LK,"CCf_FUN_EXP",A="FL:::/Kernel/KernelA.HPP,2150"$
    +$LK,"CCF_FUN_EXP",A="FL:::/Kernel/KernelA.HPP,2149"$
    +$LK,"LAPIC_APIC_VERSION",A="FL:::/Kernel/KernelA.HPP,480"$
    +$LK,"PutS",A="FL:::/Kernel/KeyDev.CPP.Z,29",BI=255$
    +$LK,"DOCEf_MARGIN_REL_X",A="FL:::/Kernel/KernelA.HPP,1084"$
    +$LK,"CDocBin",A="FL:::/Kernel/KernelA.HPP,1114"$
    +$LK,"LAPIC_BASE",A="FL:::/Kernel/KernelA.HPP,477"$
    +$LK,"MAX_F64",A="FL:::/Kernel/KernelA.HPP,45"$
    +$LK,"StrPrintJoin",A="FL:::/Kernel/StrPrint.CPP.Z,219",BI=256$
    +$LK,"IA32_GS_BASE",A="FL:::/Kernel/KernelA.HPP,523"$
    +$LK,"log2_e",A="FL:::/Kernel/KernelA.HPP,53"$
    +$LK,"CurDir",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,277",BI=257$
    +$LK,"MinU64",A="FL:::/Kernel/KernelB.HPP,102"$
     $LK,"_SYS_HLT",A="FL:::/Kernel/KUtils.CPP.Z,469"$
    -$LK,"CCF_AOT_COMPILE",A="FL:::/Kernel/KernelA.HPP,2157"$
    -$LK,"OPTf_KEEP_PRIVATE",A="FL:::/Kernel/KernelA.HPP,1540"$
    -$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,701"$
    -$LK,"HTf_EXPORT",A="FL:::/Kernel/KernelA.HPP,671"$
    -$LK,"ATAPIReadBlks2",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,385",BI=256$
    +$LK,"CCF_AOT_COMPILE",A="FL:::/Kernel/KernelA.HPP,2160"$
    +$LK,"OPTf_KEEP_PRIVATE",A="FL:::/Kernel/KernelA.HPP,1542"$
    +$LK,"MAX_I32",A="FL:::/Kernel/KernelA.HPP,32"$
    +$LK,"MAX_I16",A="FL:::/Kernel/KernelA.HPP,28"$
    +$LK,"HTF_EXPORT",A="FL:::/Kernel/KernelA.HPP,703"$
    +$LK,"HTf_EXPORT",A="FL:::/Kernel/KernelA.HPP,673"$
    +$LK,"DrvDel",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,65",BI=258$
    +$LK,"ATAPIReadBlks2",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,385",BI=259$
     $LK,"_D3_UNIT",A="FL:::/Kernel/KMathA.CPP.Z,305"$
    -$LK,"CCf_AOT_COMPILE",A="FL:::/Kernel/KernelA.HPP,2158"$
    -$LK,"POP_C_REGS",A="FL:::/Kernel/KernelA.HPP,1765"$
    +$LK,"CCf_AOT_COMPILE",A="FL:::/Kernel/KernelA.HPP,2161"$
    +$LK,"POP_C_REGS",A="FL:::/Kernel/KernelA.HPP,1767"$
     $LK,"_STRIMATCH",A="FL:::/Kernel/StrA.CPP.Z,262"$
    -$LK,"DrvChk",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,118",BI=257$
    -$LK,"CSema",A="FL:::/Kernel/KernelA.HPP,585"$
    -$LK,"EXT_HEAPLOG_MALLOC",A="FL:::/Kernel/KernelA.HPP,575"$
    -$LK,"GR_WIDTH",A="FL:::/Kernel/KernelA.HPP,3606"$
    -$LK,"DOCT_SOFT_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,900"$
    -$LK,"GetBaseUnit",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,167",BI=258$
    -$LK,"DrvMakeFree",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,38",BI=259$
    -$LK,"FixSet",A="FL:::/Kernel/EdLite.CPP.Z,327",BI=260$
    -$LK,"IPSet",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,43",BI=261$
    -$LK,"SYS_SEMA_HEAPLOG_LOCK",A="FL:::/Kernel/KernelA.HPP,598"$
    -$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=262$
    -$LK,"TASKf_INPUT_FILTER_TASK",A="FL:::/Kernel/KernelA.HPP,3277"$
    -$LK,"OM_CB",A="FL:::/Kernel/KernelA.HPP,1869"$
    -$LK,"MAX_I64",A="FL:::/Kernel/KernelA.HPP,35"$
    -$LK,"throw",A="FL:::/Kernel/KExcept.CPP.Z,82",BI=263$
    +$LK,"DrvChk",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,127",BI=260$
    +$LK,"CSema",A="FL:::/Kernel/KernelA.HPP,587"$
    +$LK,"EXT_HEAPLOG_MALLOC",A="FL:::/Kernel/KernelA.HPP,577"$
    +$LK,"GR_WIDTH",A="FL:::/Kernel/KernelA.HPP,3613"$
    +$LK,"DOCT_SOFT_NEW_LINE",A="FL:::/Kernel/KernelA.HPP,902"$
    +$LK,"GetBaseUnit",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,174",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,"DOCf_SEL",A="FL:::/Kernel/KernelA.HPP,1322"$
    +$LK,"SYS_SEMA_HEAPLOG_LOCK",A="FL:::/Kernel/KernelA.HPP,600"$
    +$LK,"sqrt2",A="FL:::/Kernel/KernelA.HPP,56"$
    +$LK,"ATAR0_SEL",A="FL:::/Kernel/KernelA.HPP,2283"$
    +$LK,"CQueVectU8",A="FL:::/Kernel/KernelA.HPP,162"$
    +$LK,"IntFaultHandlersNew",A="FL:::/Kernel/KInts.CPP.Z,159",BI=265$
    +$LK,"TASKf_INPUT_FILTER_TASK",A="FL:::/Kernel/KernelA.HPP,3283"$
    +$LK,"OM_CB",A="FL:::/Kernel/KernelA.HPP,1871"$
    +$LK,"MAX_I64",A="FL:::/Kernel/KernelA.HPP,36"$
    +$LK,"throw",A="FL:::/Kernel/KExcept.CPP.Z,83",BI=266$
     $LK,"sys_boot_base",A="FL:::/Kernel/KernelB.HPP,37"$
    -$LK,"BDF_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HPP,2636"$
    -$LK,"TK_AND_AND",A="FL:::/Kernel/KernelA.HPP,2086"$
    -$LK,"REG_NONE",A="FL:::/Kernel/KernelA.HPP,1785"$
    -$LK,"OC_LOCK_PREFIX",A="FL:::/Kernel/KernelA.HPP,1757"$
    -$LK,"WIF_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1414"$
    -$LK,"Ff_INTERRUPT",A="FL:::/Kernel/KernelA.HPP,845"$
    -$LK,"CFunSegCache",A="FL:::/Kernel/KernelA.HPP,3842"$
    -$LK,"OM_CD",A="FL:::/Kernel/KernelA.HPP,1871"$
    -$LK,"AAT_ADD_U8",A="FL:::/Kernel/KernelA.HPP,1967"$
    -$LK,"REGT_XMM",A="FL:::/Kernel/KernelA.HPP,744"$
    -$LK,"DOCSS_CPP_Z_COMMENT",A="FL:::/Kernel/KernelA.HPP,1130"$
    -$LK,"DOCT_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,921"$
    -$LK,"PutExcept",A="FL:::/Kernel/KExcept.CPP.Z,45",BI=264$
    +$LK,"BDF_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HPP,2638"$
    +$LK,"TK_AND_AND",A="FL:::/Kernel/KernelA.HPP,2088"$
    +$LK,"REG_NONE",A="FL:::/Kernel/KernelA.HPP,1787"$
    +$LK,"OC_LOCK_PREFIX",A="FL:::/Kernel/KernelA.HPP,1759"$
    +$LK,"WIF_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1416"$
    +$LK,"Ff_INTERRUPT",A="FL:::/Kernel/KernelA.HPP,847"$
    +$LK,"CFunSegCache",A="FL:::/Kernel/KernelA.HPP,3849"$
    +$LK,"OM_CD",A="FL:::/Kernel/KernelA.HPP,1873"$
    +$LK,"AAT_ADD_U8",A="FL:::/Kernel/KernelA.HPP,1969"$
    +$LK,"REGT_XMM",A="FL:::/Kernel/KernelA.HPP,746"$
    +$LK,"DOCSS_CPP_Z_COMMENT",A="FL:::/Kernel/KernelA.HPP,1132"$
    +$LK,"DOCT_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,923"$
    +$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,2974"$
    -$LK,"CColorROPU16",A="FL:::/Kernel/KernelA.HPP,2970"$
    -$LK,"DOCT_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,922"$
    -$LK,"HTT_FILE",A="FL:::/Kernel/KernelA.HPP,693"$
    -$LK,"HTT_DEFINE_STR",A="FL:::/Kernel/KernelA.HPP,682"$
    -$LK,"HTt_FILE",A="FL:::/Kernel/KernelA.HPP,663"$
    -$LK,"BootDVDProve",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,1",BI=265$
    -$LK,"Push",A="FL:::/Kernel/KernelB.HPP,246"$
    -$LK,"SVCf_FREE_ON_COMPLETE",A="FL:::/Kernel/KernelA.HPP,3177"$
    -$LK,"HTt_DEFINE_STR",A="FL:::/Kernel/KernelA.HPP,652"$
    +$LK,"CColorROPU32",A="FL:::/Kernel/KernelA.HPP,2980"$
    +$LK,"CColorROPU16",A="FL:::/Kernel/KernelA.HPP,2976"$
    +$LK,"DOCT_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,924"$
    +$LK,"HTT_FILE",A="FL:::/Kernel/KernelA.HPP,695"$
    +$LK,"HTT_DEFINE_STR",A="FL:::/Kernel/KernelA.HPP,684"$
    +$LK,"HTt_FILE",A="FL:::/Kernel/KernelA.HPP,665"$
    +$LK,"BootDVDProve",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,1",BI=268$
    +$LK,"Push",A="FL:::/Kernel/KernelB.HPP,245"$
    +$LK,"SVCf_FREE_ON_COMPLETE",A="FL:::/Kernel/KernelA.HPP,3183"$
    +$LK,"HTt_DEFINE_STR",A="FL:::/Kernel/KernelA.HPP,654"$
     $LK,"STK_REP_LEN",A="FL:::/Kernel/KDbg.CPP.Z,102"$
    -$LK,"I_NMI",A="FL:::/Kernel/KernelA.HPP,287"$
    -$LK,"Date2ISO1",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,61",BI=266$
    -$LK,"ModU64",A="FL:::/Kernel/KernelB.HPP,102"$
    -$LK,"SVCf_EXIT_ON_COMPLETE",A="FL:::/Kernel/KernelA.HPP,3171"$
    -$LK,"DOCG_DBL_BUF_FLAGS",A="FL:::/Kernel/KernelA.HPP,956"$
    -$LK,"JobResScan",A="FL:::/Kernel/SrvCmd.CPP.Z,163",BI=267$
    -$LK,"WIf_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HPP,1446"$
    -$LK,"WIf_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1440"$
    -$LK,"CTask",A="FL:::/Kernel/KernelA.HPP,3312"$
    -$LK,"OC_JMP_REL8",A="FL:::/Kernel/KernelA.HPP,1761"$
    +$LK,"I_NMI",A="FL:::/Kernel/KernelA.HPP,288"$
    +$LK,"Date2ISO1",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,1",BI=269$
    +$LK,"ModU64",A="FL:::/Kernel/KernelB.HPP,103"$
    +$LK,"SVCf_EXIT_ON_COMPLETE",A="FL:::/Kernel/KernelA.HPP,3177"$
    +$LK,"DOCG_DBL_BUF_FLAGS",A="FL:::/Kernel/KernelA.HPP,958"$
    +$LK,"JobResScan",A="FL:::/Kernel/SrvCmd.CPP.Z,163",BI=270$
    +$LK,"WIf_FOCUS_TASK_MENU",A="FL:::/Kernel/KernelA.HPP,1448"$
    +$LK,"WIf_SELF_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1442"$
    +$LK,"CTask",A="FL:::/Kernel/KernelA.HPP,3318"$
    +$LK,"OC_JMP_REL8",A="FL:::/Kernel/KernelA.HPP,1763"$
     $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=268$
    +$LK,"Str2F64",A="FL:::/Kernel/StrScan.CPP.Z,55",BI=271$
     $LK,"_YIELD",A="FL:::/Kernel/Sched.CPP.Z,157"$
    -$LK,"OM_IB",A="FL:::/Kernel/KernelA.HPP,1873"$
    -$LK,"progress3_desc",A="FL:::/Kernel/KernelB.HPP,216"$
    -$LK,"DCF_SYMMETRY",A="FL:::/Kernel/KernelA.HPP,3623"$
    -$LK,"DrvNextFree",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,51",BI=269$
    -$LK,"OM_ID",A="FL:::/Kernel/KernelA.HPP,1875"$
    -$LK,"OM_CP",A="FL:::/Kernel/KernelA.HPP,1872"$
    -$LK,"WIF_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HPP,1423"$
    +$LK,"OM_IB",A="FL:::/Kernel/KernelA.HPP,1875"$
    +$LK,"progress3_desc",A="FL:::/Kernel/KernelB.HPP,215"$
    +$LK,"DCF_SYMMETRY",A="FL:::/Kernel/KernelA.HPP,3630"$
    +$LK,"DrvNextFree",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,51",BI=272$
    +$LK,"OM_ID",A="FL:::/Kernel/KernelA.HPP,1877"$
    +$LK,"OM_CP",A="FL:::/Kernel/KernelA.HPP,1874"$
    +$LK,"WIF_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HPP,1425"$
     $LK,"_ROUND",A="FL:::/Kernel/KMathA.CPP.Z,380"$
    -$LK,"RFLAGf_TRAP",A="FL:::/Kernel/KernelA.HPP,311"$
    +$LK,"RFLAGf_TRAP",A="FL:::/Kernel/KernelA.HPP,312"$
     $LK,"SYS_HASH_BUCKET_FIND",A="FL:::/Kernel/KHashA.CPP.Z,109"$
    -$LK,"BOOT_SRC_DVD",A="FL:::/Kernel/KernelA.HPP,3882"$
    -$LK,"FUF_RECURSE",A="FL:::/Kernel/KernelA.HPP,2593"$
    -$LK,"FUf_RECURSE",A="FL:::/Kernel/KernelA.HPP,2567"$
    -$LK,"MemCmp",A="FL:::/Kernel/KernelB.HPP,167"$
    -$LK,"SVCf_DONE",A="FL:::/Kernel/KernelA.HPP,3175"$
    -$LK,"SC_PAGE_UP",A="FL:::/Kernel/KernelA.HPP,3563"$
    -$LK,"User",A="FL:::/Kernel/KTask.CPP.Z,392",BI=270$
    -$LK,"WIF_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HPP,1425"$
    -$LK,"DOCEf_RIGHT_EXP",A="FL:::/Kernel/KernelA.HPP,1058"$
    -$LK,"DOCEF_RIGHT_EXP",A="FL:::/Kernel/KernelA.HPP,970"$
    -$LK,"DirEntryDel",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,17",BI=271$
    -$LK,"CLexFile",A="FL:::/Kernel/KernelA.HPP,2035"$
    -$LK,"OM_CW",A="FL:::/Kernel/KernelA.HPP,1870"$
    -$LK,"DOCF_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HPP,1275"$
    -$LK,"IA32_LAPIC_BASE",A="FL:::/Kernel/KernelA.HPP,518"$
    -$LK,"ATACmd",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,59",BI=272$
    -$LK,"BusyWait",A="FL:::/Kernel/KMisc.CPP.Z,131",BI=273$
    -$LK,"DOCEf_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,1063"$
    -$LK,"DOCEG_DONT_EDIT",A="FL:::/Kernel/KernelA.HPP,1033"$
    -$LK,"DOCEF_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,975"$
    -$LK,"DOCEf_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,1064"$
    -$LK,"DOCEF_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,976"$
    -$LK,"Str2I64",A="FL:::/Kernel/StrScan.CPP.Z,1",BI=274$
    -$LK,"Sqrt",A="FL:::/Kernel/KernelB.HPP,108"$
    -$LK,"DrvMap",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,212",BI=275$
    -$LK,"NowDateTimeStruct",A="FL:::/Kernel/KDate.CPP.Z,133",BI=276$
    -$LK,"YorN",A="FL:::/Kernel/StrB.CPP.Z,87",BI=277$
    -$LK,"MT_CD",A="FL:::/Kernel/KernelA.HPP,2540"$
    -$LK,"RFLAGf_VINT",A="FL:::/Kernel/KernelA.HPP,321"$
    -$LK,"DCF_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3635"$
    -$LK,"ACD_DEF",A="FL:::/Kernel/KernelA.HPP,1503"$
    -$LK,"DOCEF_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HPP,973"$
    -$LK,"SYS_CPU_STRUCTS",A="FL:::/Kernel/KStart.CPP.Z,223"$
    -$LK,"SVCT_MSG",A="FL:::/Kernel/KernelA.HPP,3181"$
    -$LK,"DOCf_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HPP,1311"$
    -$LK,"CDocEntryBase",A="FL:::/Kernel/KernelA.HPP,1157"$
    -$LK,"MLF_STR_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HPP,774"$
    -$LK,"ArcCtrlNew",A="FL:::/Kernel/Compress.CPP.Z,221",BI=278$
    -$LK,"DCF_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,3630"$
    -$LK,"SYS_SEMA_HEAPLOG_ACTIVE",A="FL:::/Kernel/KernelA.HPP,597"$
    -$LK,"DOC_SCROLL_SPEED",A="FL:::/Kernel/KernelA.HPP,1124"$
    -$LK,"DOCEf_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HPP,1061"$
    -$LK,"SSF_NO_TENSION",A="FL:::/Kernel/KernelA.HPP,224"$
    -$LK,"I32",A="FL:::/Kernel/KernelA.HPP,85"$
    -$LK,"I16",A="FL:::/Kernel/KernelA.HPP,71"$
    -$LK,"MemCpy",A="FL:::/Kernel/KernelB.HPP,169"$
    -$LK,"CT_NONE",A="FL:::/Kernel/KernelA.HPP,3739"$
    -$LK,"OM_IW",A="FL:::/Kernel/KernelA.HPP,1874"$
    -$LK,"VGAP_DATA",A="FL:::/Kernel/KernelA.HPP,3724"$
    -$LK,"OM_NO",A="FL:::/Kernel/KernelA.HPP,1868"$
    -$LK,"IET_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,412"$
    -$LK,"GVF_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,867"$
    -$LK,"DefineSub",A="FL:::/Kernel/KDefine.CPP.Z,60",BI=279$
    -$LK,"WHITE",A="FL:::/Kernel/KernelA.HPP,2964"$
    -$LK,"ATA_READ_MULTI_EXT",A="FL:::/Kernel/KernelA.HPP,2263"$
    -$LK,"DOCEF_SCROLLING_X",A="FL:::/Kernel/KernelA.HPP,977"$
    -$LK,"DOCEf_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HPP,1091"$
    -$LK,"ISO1T_SUPPLEMENTARY_DESC",A="FL:::/Kernel/KernelA.HPP,2477"$
    -$LK,"DOCEf_SCROLLING_X",A="FL:::/Kernel/KernelA.HPP,1065"$
    -$LK,"MPInt",A="FL:::/Kernel/MultiProc.CPP.Z,132",BI=280$
    -$LK,"BOOT_SRC_RAM",A="FL:::/Kernel/KernelA.HPP,3880"$
    -$LK,"TK_AND_EQU",A="FL:::/Kernel/KernelA.HPP,2093"$
    -$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"$
    -$LK,"PopUpPrint",A="FL:::/Kernel/SrvCmd.CPP.Z,398",BI=281$
    -$LK,"IntEntryGet",A="FL:::/Kernel/KInts.CPP.Z,90",BI=282$
    -$LK,"CD2",A="FL:::/Kernel/KernelA.HPP,148"$
    -$LK,"KeyDevInit",A="FL:::/Kernel/KeyDev.CPP.Z,199",BI=283$
    -$LK,"sys_font_8x8",A="FL:::/Kernel/Font8x8.CPP.Z,3"$
    -$LK,"CCF_HAS_RETURN",A="FL:::/Kernel/KernelA.HPP,2142"$
    -$LK,"CAsmArg",A="FL:::/Kernel/KernelA.HPP,1844"$
    -$LK,"CD3",A="FL:::/Kernel/KernelA.HPP,154"$
    -$LK,"progress4_desc",A="FL:::/Kernel/KernelB.HPP,220"$
    -$LK,"RFLAGf_ZERO",A="FL:::/Kernel/KernelA.HPP,309"$
    -$LK,"DrvFATBlkClean",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,75",BI=284$
    -$LK,"CCF_CLASS_IP",A="FL:::/Kernel/KernelA.HPP,2162"$
    -$LK,"WIf_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HPP,1448"$
    -$LK,"PCIReadU8",A="FL:::/Kernel/PCIBIOS.CPP.Z,163",BI=285$
    -$LK,"SYS_SEMA_SYS_DATE",A="FL:::/Kernel/KernelA.HPP,594"$
    -$LK,"EXT_WIN_FOCUS",A="FL:::/Kernel/KernelA.HPP,574"$
    -$LK,"ClustersAlloc",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,134",BI=286$
    -$LK,"WIF_SELF_IP_L",A="FL:::/Kernel/KernelA.HPP,1410"$
    -$LK,"MAX_U64",A="FL:::/Kernel/KernelA.HPP,37"$
    -$LK,"WIf_SELF_IP_L",A="FL:::/Kernel/KernelA.HPP,1438"$
    -$LK,"CHashAC",A="FL:::/Kernel/KernelA.HPP,751"$
    -$LK,"DOCf_NO_CURSOR",A="FL:::/Kernel/KernelA.HPP,1294"$
    -$LK,"DOCF_NO_CURSOR",A="FL:::/Kernel/KernelA.HPP,1258"$
    -$LK,"PrintWarn",A="FL:::/Kernel/StrPrint.CPP.Z,931",BI=287$
    -$LK,"LoadOneImport",A="FL:::/Kernel/KLoad.CPP.Z,1",BI=288$
    -$LK,"FOpen",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,9",BI=289$
    -$LK,"CCF_LAST_WAS_DOT",A="FL:::/Kernel/KernelA.HPP,2156"$
    -$LK,"CMF_DEFINED",A="FL:::/Kernel/KernelA.HPP,1695"$
    -$LK,"WIf_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HPP,1450"$
    -$LK,"HTG_ALL",A="FL:::/Kernel/KernelA.HPP,712"$
    -$LK,"sys_var_init_val",A="FL:::/Kernel/KernelB.HPP,186"$
    -$LK,"FUF_REPLACE",A="FL:::/Kernel/KernelA.HPP,2598"$
    -$LK,"FUf_REPLACE",A="FL:::/Kernel/KernelA.HPP,2572"$
    -$LK,"DrvRep",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,295",BI=290$
    -$LK,"BlkDevUnlock",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,15",BI=291$
    -$LK,"CMemUsed",A="FL:::/Kernel/KernelA.HPP,2815"$
    -$LK,"WIF_SELF_IP_R",A="FL:::/Kernel/KernelA.HPP,1412"$
    -$LK,"IntMPCrash",A="FL:::/Kernel/MultiProc.CPP.Z,379",BI=292$
    -$LK,"JobQue",A="FL:::/Kernel/MultiProc.CPP.Z,213",BI=293$
    -$LK,"TSSBusy",A="FL:::/Kernel/MultiProc.CPP.Z,71",BI=294$
    -$LK,"DrvTypeSet",A="FL:::/Kernel/BlkDev/DskFmt.CPP.Z,1",BI=295$
    -$LK,"FUF_JUST_AOT",A="FL:::/Kernel/KernelA.HPP,2608"$
    -$LK,"FUf_JUST_AOT",A="FL:::/Kernel/KernelA.HPP,2582"$
    -$LK,"WIf_SELF_IP_R",A="FL:::/Kernel/KernelA.HPP,1439"$
    -$LK,"DirNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,104",BI=296$
    -$LK,"DOF_DONT_HOME",A="FL:::/Kernel/KernelA.HPP,1215"$
    -$LK,"CH_ESC",A="FL:::/Kernel/KernelA.HPP,3506"$
    -$LK,"DOCEf_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,1107"$
    -$LK,"DOCEF_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,1021"$
    -$LK,"DrvFATBlkAlloc",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,65",BI=297$
    -$LK,"WildMatch",A="FL:::/Kernel/StrA.CPP.Z,656",BI=298$
    -$LK,"CDC",A="FL:::/Kernel/KernelA.HPP,3650"$
    -$LK,"SC_CURSOR_LEFT",A="FL:::/Kernel/KernelA.HPP,3561"$
    -$LK,"IsMute",A="FL:::/Kernel/KMisc.CPP.Z,213",BI=299$
    -$LK,"DOCT_CLEAR",A="FL:::/Kernel/KernelA.HPP,904"$
    -$LK,"DVDImageWrite",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,79",BI=300$
    -$LK,"MouseRst",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,37",BI=301$
    -$LK,"HashTypeNum",A="FL:::/Kernel/KHashB.CPP.Z,1",BI=302$
    -$LK,"CPUf_DYING_TASK_QUE",A="FL:::/Kernel/KernelA.HPP,3434"$
    -$LK,"BDf_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2645"$
    -$LK,"BDF_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2635"$
    -$LK,"DCF_JUST_MIRROR",A="FL:::/Kernel/KernelA.HPP,3627"$
    -$LK,"FSt_UNKNOWN",A="FL:::/Kernel/KernelA.HPP,2686"$
    -$LK,"WIG_USER_TASK_DFT",A="FL:::/Kernel/KernelA.HPP,1434"$
    -$LK,"sys_cache_line_width",A="FL:::/Kernel/KernelB.HPP,265"$
    -$LK,"XchgI64",A="FL:::/Kernel/KernelB.HPP,260"$
    -$LK,"SC_CURSOR_DOWN",A="FL:::/Kernel/KernelA.HPP,3560"$
    -$LK,"DOF_DONT_WINMGR_SYNC",A="FL:::/Kernel/KernelA.HPP,1218"$
    -$LK,"I_SINGLE_STEP",A="FL:::/Kernel/KernelA.HPP,286"$
    -$LK,"KbdMouseRst",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,207",BI=303$
    -$LK,"ATA_WRITE_MULTI",A="FL:::/Kernel/KernelA.HPP,2264"$
    -$LK,"DOC_COLOR_KEYWORD",A="FL:::/Kernel/KernelA.HPP,1140"$
    -$LK,"XTalkStr",A="FL:::/Kernel/SrvCmd.CPP.Z,490",BI=304$
    -$LK,"FUF_JUST_GRA",A="FL:::/Kernel/KernelA.HPP,2610"$
    -$LK,"FUf_JUST_GRA",A="FL:::/Kernel/KernelA.HPP,2584"$
    -$LK,"CCF_IN_QUOTES",A="FL:::/Kernel/KernelA.HPP,2139"$
    -$LK,"CFifoU8",A="FL:::/Kernel/KernelA.HPP,169"$
    -$LK,"ATAReadNativeMax",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,187",BI=305$
    -$LK,"RLF_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HPP,471"$
    -$LK,"SYS_KERNEL_END",A="FL:::/Kernel/KEnd.CPP.Z,211"$
    +$LK,"BOOT_SRC_DVD",A="FL:::/Kernel/KernelA.HPP,3890"$
    +$LK,"FUF_RECURSE",A="FL:::/Kernel/KernelA.HPP,2594"$
    +$LK,"FUf_RECURSE",A="FL:::/Kernel/KernelA.HPP,2568"$
    +$LK,"MemCmp",A="FL:::/Kernel/KernelB.HPP,166"$
    +$LK,"SVCf_DONE",A="FL:::/Kernel/KernelA.HPP,3181"$
    +$LK,"SC_PAGE_UP",A="FL:::/Kernel/KernelA.HPP,3569"$
    +$LK,"User",A="FL:::/Kernel/KTask.CPP.Z,394",BI=273$
    +$LK,"WIF_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HPP,1427"$
    +$LK,"DOCEf_RIGHT_EXP",A="FL:::/Kernel/KernelA.HPP,1060"$
    +$LK,"DOCEF_RIGHT_EXP",A="FL:::/Kernel/KernelA.HPP,972"$
    +$LK,"DirEntryDel",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,17",BI=274$
    +$LK,"CLexFile",A="FL:::/Kernel/KernelA.HPP,2037"$
    +$LK,"OM_CW",A="FL:::/Kernel/KernelA.HPP,1872"$
    +$LK,"DOCF_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HPP,1277"$
    +$LK,"IA32_LAPIC_BASE",A="FL:::/Kernel/KernelA.HPP,520"$
    +$LK,"ATACmd",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,59",BI=275$
    +$LK,"BusyWait",A="FL:::/Kernel/KMisc.CPP.Z,131",BI=276$
    +$LK,"DOCEf_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,1065"$
    +$LK,"DOCEG_DONT_EDIT",A="FL:::/Kernel/KernelA.HPP,1035"$
    +$LK,"DOCEF_SHIFTED_X",A="FL:::/Kernel/KernelA.HPP,977"$
    +$LK,"DOCEf_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,1066"$
    +$LK,"DOCEF_SHIFTED_Y",A="FL:::/Kernel/KernelA.HPP,978"$
    +$LK,"Str2I64",A="FL:::/Kernel/StrScan.CPP.Z,1",BI=277$
    +$LK,"Sqrt",A="FL:::/Kernel/KernelB.HPP,109"$
    +$LK,"DrvMap",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,225",BI=278$
    +$LK,"NowDateTimeStruct",A="FL:::/Kernel/KDate.CPP.Z,133",BI=279$
    +$LK,"YorN",A="FL:::/Kernel/StrB.CPP.Z,87",BI=280$
    +$LK,"MT_CD",A="FL:::/Kernel/KernelA.HPP,2542"$
    +$LK,"RFLAGf_VINT",A="FL:::/Kernel/KernelA.HPP,322"$
    +$LK,"DCF_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3642"$
    +$LK,"ACD_DEF",A="FL:::/Kernel/KernelA.HPP,1505"$
    +$LK,"DOCEF_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HPP,975"$
    +$LK,"SYS_CPU_STRUCTS",A="FL:::/Kernel/KStart.CPP.Z,228"$
    +$LK,"SVCT_MSG",A="FL:::/Kernel/KernelA.HPP,3187"$
    +$LK,"DOCf_DONT_SWAP_OUT",A="FL:::/Kernel/KernelA.HPP,1313"$
    +$LK,"CDocEntryBase",A="FL:::/Kernel/KernelA.HPP,1159"$
    +$LK,"MLF_STR_DFT_AVAILABLE",A="FL:::/Kernel/KernelA.HPP,776"$
    +$LK,"ArcCtrlNew",A="FL:::/Kernel/Compress.CPP.Z,221",BI=281$
    +$LK,"DCF_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,3637"$
    +$LK,"SYS_SEMA_HEAPLOG_ACTIVE",A="FL:::/Kernel/KernelA.HPP,599"$
    +$LK,"DOC_SCROLL_SPEED",A="FL:::/Kernel/KernelA.HPP,1126"$
    +$LK,"ATTRf_SEL",A="FL:::/Kernel/KernelA.HPP,896"$
    +$LK,"DOCEf_BIN_PTR_LINK",A="FL:::/Kernel/KernelA.HPP,1063"$
    +$LK,"SSF_NO_TENSION",A="FL:::/Kernel/KernelA.HPP,225"$
    +$LK,"I32",A="FL:::/Kernel/KernelA.HPP,86"$
    +$LK,"I16",A="FL:::/Kernel/KernelA.HPP,72"$
    +$LK,"MemCpy",A="FL:::/Kernel/KernelB.HPP,168"$
    +$LK,"CT_NONE",A="FL:::/Kernel/KernelA.HPP,3746"$
    +$LK,"OM_IW",A="FL:::/Kernel/KernelA.HPP,1876"$
    +$LK,"VGAP_DATA",A="FL:::/Kernel/KernelA.HPP,3731"$
    +$LK,"OM_NO",A="FL:::/Kernel/KernelA.HPP,1870"$
    +$LK,"IET_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,413"$
    +$LK,"GVF_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,869"$
    +$LK,"DefineSub",A="FL:::/Kernel/KDefine.CPP.Z,60",BI=282$
    +$LK,"WHITE",A="FL:::/Kernel/KernelA.HPP,2970"$
    +$LK,"ATA_READ_MULTI_EXT",A="FL:::/Kernel/KernelA.HPP,2266"$
    +$LK,"DOCEF_SCROLLING_X",A="FL:::/Kernel/KernelA.HPP,979"$
    +$LK,"DOCEf_CHECKED_COLLAPSED",A="FL:::/Kernel/KernelA.HPP,1093"$
    +$LK,"ISO1T_SUPPLEMENTARY_DESC",A="FL:::/Kernel/KernelA.HPP,2479"$
    +$LK,"DOCEf_SCROLLING_X",A="FL:::/Kernel/KernelA.HPP,1067"$
    +$LK,"MPInt",A="FL:::/Kernel/MultiProc.CPP.Z,132",BI=283$
    +$LK,"BOOT_SRC_RAM",A="FL:::/Kernel/KernelA.HPP,3888"$
    +$LK,"TK_AND_EQU",A="FL:::/Kernel/KernelA.HPP,2095"$
    +$LK,"I64",A="FL:::/Kernel/KernelA.HPP,104"$
    +$LK,"MAX_U32",A="FL:::/Kernel/KernelA.HPP,34"$
    +$LK,"MAX_U16",A="FL:::/Kernel/KernelA.HPP,30"$
    +$LK,"PopUpPrint",A="FL:::/Kernel/SrvCmd.CPP.Z,398",BI=284$
    +$LK,"IntEntryGet",A="FL:::/Kernel/KInts.CPP.Z,90",BI=285$
    +$LK,"CD2",A="FL:::/Kernel/KernelA.HPP,149"$
    +$LK,"KeyDevInit",A="FL:::/Kernel/KeyDev.CPP.Z,201",BI=286$
    +$LK,"CCF_HAS_RETURN",A="FL:::/Kernel/KernelA.HPP,2145"$
    +$LK,"CAsmArg",A="FL:::/Kernel/KernelA.HPP,1846"$
    +$LK,"CD3",A="FL:::/Kernel/KernelA.HPP,155"$
    +$LK,"SYS_BOOT_BLK",A="FL:::/Kernel/KStart.CPP.Z,25"$
    +$LK,"progress4_desc",A="FL:::/Kernel/KernelB.HPP,219"$
    +$LK,"RFLAGf_ZERO",A="FL:::/Kernel/KernelA.HPP,310"$
    +$LK,"DrvFATBlkClean",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,84",BI=287$
    +$LK,"CCF_CLASS_IP",A="FL:::/Kernel/KernelA.HPP,2165"$
    +$LK,"WIf_FOCUS_TASK_IP_L",A="FL:::/Kernel/KernelA.HPP,1450"$
    +$LK,"PCIReadU8",A="FL:::/Kernel/PCIBIOS.CPP.Z,163",BI=288$
    +$LK,"SYS_SEMA_SYS_DATE",A="FL:::/Kernel/KernelA.HPP,596"$
    +$LK,"EXT_WIN_FOCUS",A="FL:::/Kernel/KernelA.HPP,576"$
    +$LK,"ClustersAlloc",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,134",BI=289$
    +$LK,"WIF_SELF_IP_L",A="FL:::/Kernel/KernelA.HPP,1412"$
    +$LK,"MAX_U64",A="FL:::/Kernel/KernelA.HPP,38"$
    +$LK,"WIf_SELF_IP_L",A="FL:::/Kernel/KernelA.HPP,1440"$
    +$LK,"CHashAC",A="FL:::/Kernel/KernelA.HPP,753"$
    +$LK,"DOCf_NO_CURSOR",A="FL:::/Kernel/KernelA.HPP,1296"$
    +$LK,"DOCF_NO_CURSOR",A="FL:::/Kernel/KernelA.HPP,1260"$
    +$LK,"PrintWarn",A="FL:::/Kernel/StrPrint.CPP.Z,931",BI=290$
    +$LK,"LoadOneImport",A="FL:::/Kernel/KLoad.CPP.Z,1",BI=291$
    +$LK,"FOpen",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,9",BI=292$
    +$LK,"CCF_LAST_WAS_DOT",A="FL:::/Kernel/KernelA.HPP,2159"$
    +$LK,"CMF_DEFINED",A="FL:::/Kernel/KernelA.HPP,1697"$
    +$LK,"WIf_FOCUS_TASK_IP_R",A="FL:::/Kernel/KernelA.HPP,1452"$
    +$LK,"HTG_ALL",A="FL:::/Kernel/KernelA.HPP,714"$
    +$LK,"sys_var_init_val",A="FL:::/Kernel/KernelB.HPP,185"$
    +$LK,"FUF_REPLACE",A="FL:::/Kernel/KernelA.HPP,2599"$
    +$LK,"FUf_REPLACE",A="FL:::/Kernel/KernelA.HPP,2573"$
    +$LK,"DrvRep",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,310",BI=293$
    +$LK,"BlkDevUnlock",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,15",BI=294$
    +$LK,"CMemUsed",A="FL:::/Kernel/KernelA.HPP,2821"$
    +$LK,"WIF_SELF_IP_R",A="FL:::/Kernel/KernelA.HPP,1414"$
    +$LK,"IntMPCrash",A="FL:::/Kernel/MultiProc.CPP.Z,379",BI=295$
    +$LK,"JobQue",A="FL:::/Kernel/MultiProc.CPP.Z,213",BI=296$
    +$LK,"TSSBusy",A="FL:::/Kernel/MultiProc.CPP.Z,71",BI=297$
    +$LK,"DrvTypeSet",A="FL:::/Kernel/BlkDev/DskFmt.CPP.Z,1",BI=298$
    +$LK,"FUF_JUST_AOT",A="FL:::/Kernel/KernelA.HPP,2609"$
    +$LK,"FUf_JUST_AOT",A="FL:::/Kernel/KernelA.HPP,2583"$
    +$LK,"WIf_SELF_IP_R",A="FL:::/Kernel/KernelA.HPP,1441"$
    +$LK,"DirNameAbs",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,104",BI=299$
    +$LK,"DOF_DONT_HOME",A="FL:::/Kernel/KernelA.HPP,1217"$
    +$LK,"CH_ESC",A="FL:::/Kernel/KernelA.HPP,3512"$
    +$LK,"DOCEf_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,1109"$
    +$LK,"DOCEF_DONT_DRAW",A="FL:::/Kernel/KernelA.HPP,1023"$
    +$LK,"DrvFATBlkAlloc",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,74",BI=300$
    +$LK,"WildMatch",A="FL:::/Kernel/StrA.CPP.Z,656",BI=301$
    +$LK,"CDC",A="FL:::/Kernel/KernelA.HPP,3657"$
    +$LK,"SC_CURSOR_LEFT",A="FL:::/Kernel/KernelA.HPP,3567"$
    +$LK,"IsMute",A="FL:::/Kernel/KMisc.CPP.Z,213",BI=302$
    +$LK,"DOCT_CLEAR",A="FL:::/Kernel/KernelA.HPP,906"$
    +$LK,"DVDImageWrite",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,147",BI=303$
    +$LK,"MouseRst",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,37",BI=304$
    +$LK,"HashTypeNum",A="FL:::/Kernel/KHashB.CPP.Z,1",BI=305$
    +$LK,"CPUf_DYING_TASK_QUE",A="FL:::/Kernel/KernelA.HPP,3440"$
    +$LK,"BDf_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2647"$
    +$LK,"BDF_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2637"$
    +$LK,"DCF_JUST_MIRROR",A="FL:::/Kernel/KernelA.HPP,3634"$
    +$LK,"FSt_UNKNOWN",A="FL:::/Kernel/KernelA.HPP,2691"$
    +$LK,"WIG_USER_TASK_DFT",A="FL:::/Kernel/KernelA.HPP,1436"$
    +$LK,"sys_cache_line_width",A="FL:::/Kernel/KernelB.HPP,264"$
    +$LK,"XchgI64",A="FL:::/Kernel/KernelB.HPP,259"$
    +$LK,"SC_CURSOR_DOWN",A="FL:::/Kernel/KernelA.HPP,3566"$
    +$LK,"DOF_DONT_WINMGR_SYNC",A="FL:::/Kernel/KernelA.HPP,1220"$
    +$LK,"I_SINGLE_STEP",A="FL:::/Kernel/KernelA.HPP,287"$
    +$LK,"KbdMouseRst",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,207",BI=306$
    +$LK,"ATA_WRITE_MULTI",A="FL:::/Kernel/KernelA.HPP,2267"$
    +$LK,"DOC_COLOR_KEYWORD",A="FL:::/Kernel/KernelA.HPP,1142"$
    +$LK,"XTalkStr",A="FL:::/Kernel/SrvCmd.CPP.Z,490",BI=307$
    +$LK,"FUF_JUST_GRA",A="FL:::/Kernel/KernelA.HPP,2611"$
    +$LK,"FUf_JUST_GRA",A="FL:::/Kernel/KernelA.HPP,2585"$
    +$LK,"CCF_IN_QUOTES",A="FL:::/Kernel/KernelA.HPP,2142"$
    +$LK,"CFifoU8",A="FL:::/Kernel/KernelA.HPP,170"$
    +$LK,"ATAReadNativeMax",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,187",BI=308$
    +$LK,"BOOT_SRC_ROM",A="FL:::/Kernel/KernelA.HPP,3887"$
    +$LK,"RLF_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HPP,473"$
    +$LK,"SYS_KERNEL_END",A="FL:::/Kernel/KEnd.CPP.Z,218"$
     $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,822"$
    -$LK,"MemSet",A="FL:::/Kernel/KernelB.HPP,171"$
    +$LK,"CHashDefineStr",A="FL:::/Kernel/KernelA.HPP,824"$
    +$LK,"MemSet",A="FL:::/Kernel/KernelB.HPP,170"$
     $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,703"$
    -$LK,"FUF_IGNORE",A="FL:::/Kernel/KernelA.HPP,2595"$
    -$LK,"FUf_IGNORE",A="FL:::/Kernel/KernelA.HPP,2569"$
    -$LK,"AAT_SUB_U32",A="FL:::/Kernel/KernelA.HPP,1972"$
    -$LK,"AAT_SUB_U16",A="FL:::/Kernel/KernelA.HPP,1970"$
    -$LK,"IP_MOUSE",A="FL:::/Kernel/KernelA.HPP,3035"$
    -$LK,"ATAIDDrvs",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,204",BI=306$
    -$LK,"UserCmdLine",A="FL:::/Kernel/KTask.CPP.Z,381",BI=307$
    -$LK,"GVF_FUN",A="FL:::/Kernel/KernelA.HPP,864"$
    -$LK,"IA32F_LME",A="FL:::/Kernel/KernelA.HPP,517"$
    -$LK,"LAPICF_APIC_ENABLED",A="FL:::/Kernel/KernelA.HPP,487"$
    -$LK,"RLf_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HPP,452"$
    -$LK,"PCIClassFind",A="FL:::/Kernel/PCIBIOS.CPP.Z,265",BI=308$
    -$LK,"RECALCF_HAS_CURSOR",A="FL:::/Kernel/KernelA.HPP,1348"$
    -$LK,"ATARep",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,130",BI=309$
    -$LK,"KDInputFilterPutS",A="FL:::/Kernel/KeyDev.CPP.Z,115",BI=310$
    -$LK,"D3SubEqu",A="FL:::/Kernel/KernelB.HPP,161"$
    -$LK,"FUF_JUST_JIT",A="FL:::/Kernel/KernelA.HPP,2609"$
    -$LK,"FUf_JUST_JIT",A="FL:::/Kernel/KernelA.HPP,2583"$
    -$LK,"CAsmIns",A="FL:::/Kernel/KernelA.HPP,1832"$
    -$LK,"InU32",A="FL:::/Kernel/KernelB.HPP,75"$
    -$LK,"InU16",A="FL:::/Kernel/KernelB.HPP,74"$
    -$LK,"TK_IF",A="FL:::/Kernel/KernelA.HPP,2098"$
    -$LK,"DOCT_BLINK",A="FL:::/Kernel/KernelA.HPP,920"$
    -$LK,"U32",A="FL:::/Kernel/KernelA.HPP,77"$
    -$LK,"U16",A="FL:::/Kernel/KernelA.HPP,65"$
    +$LK,"HTF_IMM",A="FL:::/Kernel/KernelA.HPP,705"$
    +$LK,"FUF_IGNORE",A="FL:::/Kernel/KernelA.HPP,2596"$
    +$LK,"FUf_IGNORE",A="FL:::/Kernel/KernelA.HPP,2570"$
    +$LK,"AAT_SUB_U32",A="FL:::/Kernel/KernelA.HPP,1974"$
    +$LK,"AAT_SUB_U16",A="FL:::/Kernel/KernelA.HPP,1972"$
    +$LK,"IP_MOUSE",A="FL:::/Kernel/KernelA.HPP,3041"$
    +$LK,"ATAIDDrvs",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,205",BI=309$
    +$LK,"UserCmdLine",A="FL:::/Kernel/KTask.CPP.Z,383",BI=310$
    +$LK,"GVF_FUN",A="FL:::/Kernel/KernelA.HPP,866"$
    +$LK,"IA32F_LME",A="FL:::/Kernel/KernelA.HPP,519"$
    +$LK,"LAPICF_APIC_ENABLED",A="FL:::/Kernel/KernelA.HPP,489"$
    +$LK,"RLf_AUTO_COMPLETE",A="FL:::/Kernel/KernelA.HPP,454"$
    +$LK,"PCIClassFind",A="FL:::/Kernel/PCIBIOS.CPP.Z,265",BI=311$
    +$LK,"RECALCF_HAS_CURSOR",A="FL:::/Kernel/KernelA.HPP,1350"$
    +$LK,"ATARep",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,131",BI=312$
    +$LK,"KDInputFilterPutS",A="FL:::/Kernel/KeyDev.CPP.Z,117",BI=313$
    +$LK,"D3SubEqu",A="FL:::/Kernel/KernelB.HPP,160"$
    +$LK,"FUF_JUST_JIT",A="FL:::/Kernel/KernelA.HPP,2610"$
    +$LK,"FUf_JUST_JIT",A="FL:::/Kernel/KernelA.HPP,2584"$
    +$LK,"CAsmIns",A="FL:::/Kernel/KernelA.HPP,1834"$
    +$LK,"InU32",A="FL:::/Kernel/KernelB.HPP,76"$
    +$LK,"InU16",A="FL:::/Kernel/KernelB.HPP,75"$
    +$LK,"TK_IF",A="FL:::/Kernel/KernelA.HPP,2100"$
    +$LK,"DOCT_BLINK",A="FL:::/Kernel/KernelA.HPP,922"$
    +$LK,"U32",A="FL:::/Kernel/KernelA.HPP,78"$
    +$LK,"U16",A="FL:::/Kernel/KernelA.HPP,66"$
     $LK,"_XCHG_I64",A="FL:::/Kernel/KUtils.CPP.Z,184"$
    -$LK,"ATANop",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,48",BI=311$
    -$LK,"TaskDel",A="FL:::/Kernel/KTask.CPP.Z,405",BI=312$
    -$LK,"LXchgU8",A="FL:::/Kernel/KernelB.HPP,256"$
    -$LK,"AAT_SUB_U64",A="FL:::/Kernel/KernelA.HPP,1974"$
    -$LK,"HasLower",A="FL:::/Kernel/FunSeg.CPP.Z,1",BI=313$
    +$LK,"ATANop",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,48",BI=314$
    +$LK,"TaskDel",A="FL:::/Kernel/KTask.CPP.Z,407",BI=315$
    +$LK,"LXchgU8",A="FL:::/Kernel/KernelB.HPP,255"$
    +$LK,"AAT_SUB_U64",A="FL:::/Kernel/KernelA.HPP,1976"$
    +$LK,"HasLower",A="FL:::/Kernel/FunSeg.CPP.Z,1",BI=316$
     $LK,"_CALL",A="FL:::/Kernel/KUtils.CPP.Z,145"$
    -$LK,"IA32F_SCE",A="FL:::/Kernel/KernelA.HPP,516"$
    -$LK,"MIN_F64",A="FL:::/Kernel/KernelA.HPP,45"$
    -$LK,"__LINE__",A="FL:::/Kernel/KernelA.HPP,2025"$
    -$LK,"FUF_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HPP,2614"$
    -$LK,"KeyDescSet",A="FL:::/Kernel/KeyDev.CPP.Z,56",BI=314$
    -$LK,"U64",A="FL:::/Kernel/KernelA.HPP,93"$
    -$LK,"MIN_I32",A="FL:::/Kernel/KernelA.HPP,30"$
    -$LK,"MIN_I16",A="FL:::/Kernel/KernelA.HPP,26"$
    -$LK,"FSize",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,1",BI=315$
    -$LK,"IntEntrySet",A="FL:::/Kernel/KInts.CPP.Z,102",BI=316$
    -$LK,"Mem32DevIns",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,1",BI=317$
    -$LK,"SYS_MP_CNT_INITIAL",A="FL:::/Kernel/KStart.CPP.Z,225"$
    -$LK,"FUf_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HPP,2588"$
    -$LK,"_FXRSTOR",A="FL:::/Kernel/KMathA.CPP.Z,658"$
    +$LK,"IA32F_SCE",A="FL:::/Kernel/KernelA.HPP,518"$
    +$LK,"MIN_F64",A="FL:::/Kernel/KernelA.HPP,46"$
    +$LK,"__LINE__",A="FL:::/Kernel/KernelA.HPP,2027"$
    +$LK,"FUF_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HPP,2615"$
    +$LK,"KeyDescSet",A="FL:::/Kernel/KeyDev.CPP.Z,56",BI=317$
    +$LK,"U64",A="FL:::/Kernel/KernelA.HPP,94"$
    +$LK,"MIN_I32",A="FL:::/Kernel/KernelA.HPP,31"$
    +$LK,"MIN_I16",A="FL:::/Kernel/KernelA.HPP,27"$
    +$LK,"FSize",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,1",BI=318$
    +$LK,"IntEntrySet",A="FL:::/Kernel/KInts.CPP.Z,102",BI=319$
    +$LK,"Mem32DevIns",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,1",BI=320$
    +$LK,"SYS_MP_CNT_INITIAL",A="FL:::/Kernel/KStart.CPP.Z,230"$
    +$LK,"FUf_FLATTEN_TREE",A="FL:::/Kernel/KernelA.HPP,2589"$
     $LK,"_CEIL",A="FL:::/Kernel/KMathA.CPP.Z,441"$
    -$LK,"INVALID_CLUSTER",A="FL:::/Kernel/KernelA.HPP,2297"$
    -$LK,"TaskEnd",A="FL:::/Kernel/KTask.CPP.Z,413",BI=318$
    -$LK,"MIN_I64",A="FL:::/Kernel/KernelA.HPP,34"$
    -$LK,"TaskCaller",A="FL:::/Kernel/KDbg.CPP.Z,75",BI=319$
    -$LK,"SV_NONE",A="FL:::/Kernel/KernelA.HPP,1741"$
    -$LK,"QUE_VECT_U8_CNT",A="FL:::/Kernel/KernelA.HPP,160"$
    -$LK,"__DEPTH__",A="FL:::/Kernel/KernelA.HPP,2027"$
    -$LK,"RT_I0",A="FL:::/Kernel/KernelA.HPP,1551"$
    -$LK,"DOCEF_LEFT_MACRO",A="FL:::/Kernel/KernelA.HPP,969"$
    -$LK,"TK_DEREFERENCE",A="FL:::/Kernel/KernelA.HPP,2078"$
    -$LK,"ARGT_UIMM8",A="FL:::/Kernel/KernelA.HPP,1887"$
    -$LK,"DOCF_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1274"$
    -$LK,"DOCEf_LEFT_MACRO",A="FL:::/Kernel/KernelA.HPP,1057"$
    -$LK,"SYS_GDT",A="FL:::/Kernel/KStart.CPP.Z,36"$
    -$LK,"CDate2Dos",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,1",BI=320$
    -$LK,"SrvCmdRunOne",A="FL:::/Kernel/SrvCmd.CPP.Z,267",BI=321$
    -$LK,"MRT_UNUSED",A="FL:::/Kernel/KernelA.HPP,2856"$
    -$LK,"MDG_REG_DISP_SIB",A="FL:::/Kernel/KernelA.HPP,1585"$
    -$LK,"RedSeaFilesDel",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,456",BI=322$
    -$LK,"XchgU32",A="FL:::/Kernel/KernelB.HPP,262"$
    -$LK,"XchgU16",A="FL:::/Kernel/KernelB.HPP,261"$
    -$LK,"TK_SHL_EQU",A="FL:::/Kernel/KernelA.HPP,2089"$
    -$LK,"CCntsGlbls",A="FL:::/Kernel/KernelA.HPP,535"$
    +$LK,"INVALID_CLUSTER",A="FL:::/Kernel/KernelA.HPP,2299"$
    +$LK,"TaskEnd",A="FL:::/Kernel/KTask.CPP.Z,415",BI=321$
    +$LK,"MIN_I64",A="FL:::/Kernel/KernelA.HPP,35"$
    +$LK,"TaskCaller",A="FL:::/Kernel/KDbg.CPP.Z,75",BI=322$
    +$LK,"SV_NONE",A="FL:::/Kernel/KernelA.HPP,1743"$
    +$LK,"QUE_VECT_U8_CNT",A="FL:::/Kernel/KernelA.HPP,161"$
    +$LK,"RT_I0",A="FL:::/Kernel/KernelA.HPP,1553"$
    +$LK,"DOCEF_LEFT_MACRO",A="FL:::/Kernel/KernelA.HPP,971"$
    +$LK,"TK_DEREFERENCE",A="FL:::/Kernel/KernelA.HPP,2080"$
    +$LK,"ARGT_UIMM8",A="FL:::/Kernel/KernelA.HPP,1889"$
    +$LK,"DOCF_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1276"$
    +$LK,"DOCEf_LEFT_MACRO",A="FL:::/Kernel/KernelA.HPP,1059"$
    +$LK,"SYS_GDT",A="FL:::/Kernel/KStart.CPP.Z,41"$
    +$LK,"CDate2Dos",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,1",BI=323$
    +$LK,"SrvCmdRunOne",A="FL:::/Kernel/SrvCmd.CPP.Z,267",BI=324$
    +$LK,"MRT_UNUSED",A="FL:::/Kernel/KernelA.HPP,2862"$
    +$LK,"MDG_REG_DISP_SIB",A="FL:::/Kernel/KernelA.HPP,1587"$
    +$LK,"RedSeaFilesDel",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,458",BI=325$
    +$LK,"XchgU32",A="FL:::/Kernel/KernelB.HPP,261"$
    +$LK,"XchgU16",A="FL:::/Kernel/KernelB.HPP,260"$
    +$LK,"TK_SHL_EQU",A="FL:::/Kernel/KernelA.HPP,2091"$
    +$LK,"CCntsGlbls",A="FL:::/Kernel/KernelA.HPP,537"$
     $LK,"TEMP_BUF_LEN",A="FL:::/Kernel/StrPrint.CPP.Z,216"$
    -$LK,"LastDayOfMon",A="FL:::/Kernel/KDate.CPP.Z,82",BI=323$
    -$LK,"RT_I8",A="FL:::/Kernel/KernelA.HPP,1553"$
    -$LK,"SVCf_WAKE_MASTER",A="FL:::/Kernel/KernelA.HPP,3169"$
    -$LK,"CAsmNum",A="FL:::/Kernel/KernelA.HPP,1817"$
    +$LK,"LastDayOfMon",A="FL:::/Kernel/KDate.CPP.Z,82",BI=326$
    +$LK,"RT_I8",A="FL:::/Kernel/KernelA.HPP,1555"$
    +$LK,"SVCf_WAKE_MASTER",A="FL:::/Kernel/KernelA.HPP,3175"$
    +$LK,"CAsmNum",A="FL:::/Kernel/KernelA.HPP,1819"$
     $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,3716"$
    -$LK,"ACD_POS",A="FL:::/Kernel/KernelA.HPP,1507"$
    -$LK,"FirstDayOfMon",A="FL:::/Kernel/KDate.CPP.Z,71",BI=324$
    -$LK,"PutChars",A="FL:::/Kernel/KeyDev.CPP.Z,20",BI=325$
    +$LK,"VGAM_TEXT",A="FL:::/Kernel/KernelA.HPP,3723"$
    +$LK,"ACD_POS",A="FL:::/Kernel/KernelA.HPP,1509"$
    +$LK,"FirstDayOfMon",A="FL:::/Kernel/KDate.CPP.Z,71",BI=327$
    +$LK,"PutChars",A="FL:::/Kernel/KeyDev.CPP.Z,20",BI=328$
     $LK,"_BEQU",A="FL:::/Kernel/KUtils.CPP.Z,89"$
    -$LK,"DOCEf_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1062"$
    -$LK,"DOCEF_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,974"$
    -$LK,"ansf",A="FL:::/Kernel/KernelA.HPP,3412"$
    -$LK,"BlkDevsInitAll",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,207",BI=326$
    -$LK,"SysUntry",A="FL:::/Kernel/KExcept.CPP.Z,75",BI=327$
    -$LK,"WIF_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HPP,1428"$
    +$LK,"DOCEf_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1064"$
    +$LK,"DOCEF_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,976"$
    +$LK,"ansf",A="FL:::/Kernel/KernelA.HPP,3418"$
    +$LK,"BlkDevsInitAll",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,214",BI=329$
    +$LK,"SysUntry",A="FL:::/Kernel/KExcept.CPP.Z,76",BI=330$
    +$LK,"WIF_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HPP,1430"$
     $LK,"_MEMCMP",A="FL:::/Kernel/KUtils.CPP.Z,70"$
    -$LK,"DISPLAYf_NO_BORDER",A="FL:::/Kernel/KernelA.HPP,3292"$
    -$LK,"OFF",A="FL:::/Kernel/KernelA.HPP,21"$
    -$LK,"DOCF_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HPP,1276"$
    +$LK,"DISPLAYf_NO_BORDER",A="FL:::/Kernel/KernelA.HPP,3298"$
    +$LK,"OFF",A="FL:::/Kernel/KernelA.HPP,22"$
    +$LK,"DOCF_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HPP,1278"$
     $LK,"SYS_BOOT_SRC",A="FL:::/Kernel/KStart.CPP.Z,24"$
    -$LK,"FUF_JUST_SRC",A="FL:::/Kernel/KernelA.HPP,2607"$
    -$LK,"FUf_JUST_SRC",A="FL:::/Kernel/KernelA.HPP,2581"$
    -$LK,"OC_CALL",A="FL:::/Kernel/KernelA.HPP,1760"$
    -$LK,"TaskExe",A="FL:::/Kernel/SrvCmd.CPP.Z,39",BI=328$
    -$LK,"ThrowBreak",A="FL:::/Kernel/KExcept.CPP.Z,125",BI=329$
    -$LK,"FileWrite",A="FL:::/Kernel/BlkDev/DskFile.CPP.Z,94",BI=330$
    -$LK,"ARf_CSPRITE_PTS_RECTANGLES",A="FL:::/Kernel/KernelA.HPP,3894"$
    -$LK,"RFLAGf_ID",A="FL:::/Kernel/KernelA.HPP,323"$
    -$LK,"SCF_E0_PREFIX",A="FL:::/Kernel/KernelA.HPP,3530"$
    -$LK,"SCf_E0_PREFIX",A="FL:::/Kernel/KernelA.HPP,3515"$
    -$LK,"ATAWaitNotBUSY",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,24",BI=331$
    +$LK,"FUF_JUST_SRC",A="FL:::/Kernel/KernelA.HPP,2608"$
    +$LK,"FUf_JUST_SRC",A="FL:::/Kernel/KernelA.HPP,2582"$
    +$LK,"OC_CALL",A="FL:::/Kernel/KernelA.HPP,1762"$
    +$LK,"TaskExe",A="FL:::/Kernel/SrvCmd.CPP.Z,39",BI=331$
    +$LK,"ThrowBreak",A="FL:::/Kernel/KExcept.CPP.Z,129",BI=332$
    +$LK,"FileWrite",A="FL:::/Kernel/BlkDev/DskFile.CPP.Z,87",BI=333$
    +$LK,"ARf_CSPRITE_PTS_RECTANGLES",A="FL:::/Kernel/KernelA.HPP,3902"$
    +$LK,"RFLAGf_ID",A="FL:::/Kernel/KernelA.HPP,324"$
    +$LK,"SCF_E0_PREFIX",A="FL:::/Kernel/KernelA.HPP,3536"$
    +$LK,"SCf_E0_PREFIX",A="FL:::/Kernel/KernelA.HPP,3521"$
    +$LK,"ATAWaitNotBUSY",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,24",BI=334$
     $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,3788"$
    -$LK,"ARGT_XMM32",A="FL:::/Kernel/KernelA.HPP,1941"$
    -$LK,"WIF_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1416"$
    -$LK,"LDF_SILENT",A="FL:::/Kernel/KernelA.HPP,368"$
    -$LK,"RED",A="FL:::/Kernel/KernelA.HPP,2953"$
    -$LK,"RT_U0",A="FL:::/Kernel/KernelA.HPP,1552"$
    -$LK,"SYS_SEMA_DEBUG",A="FL:::/Kernel/KernelA.HPP,591"$
    -$LK,"SrvCmdDel",A="FL:::/Kernel/SrvCmd.CPP.Z,1",BI=332$
    -$LK,"VGAR_MAP_MASK",A="FL:::/Kernel/KernelA.HPP,3734"$
    -$LK,"CAOTCtrl",A="FL:::/Kernel/KernelA.HPP,2049"$
    -$LK,"SCF_NEW_KEY",A="FL:::/Kernel/KernelA.HPP,3538"$
    +$LK,"SUF_TO_LOWER",A="FL:::/Kernel/KernelA.HPP,3795"$
    +$LK,"ARGT_XMM32",A="FL:::/Kernel/KernelA.HPP,1943"$
    +$LK,"WIF_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1418"$
    +$LK,"LDF_SILENT",A="FL:::/Kernel/KernelA.HPP,369"$
    +$LK,"RED",A="FL:::/Kernel/KernelA.HPP,2959"$
    +$LK,"RT_U0",A="FL:::/Kernel/KernelA.HPP,1554"$
    +$LK,"SYS_SEMA_DEBUG",A="FL:::/Kernel/KernelA.HPP,593"$
    +$LK,"SrvCmdDel",A="FL:::/Kernel/SrvCmd.CPP.Z,1",BI=335$
    +$LK,"VGAR_MAP_MASK",A="FL:::/Kernel/KernelA.HPP,3741"$
    +$LK,"CAOTCtrl",A="FL:::/Kernel/KernelA.HPP,2051"$
    +$LK,"SCF_NEW_KEY",A="FL:::/Kernel/KernelA.HPP,3544"$
     $LK,"TASK_CONTEXT_SAVE",A="FL:::/Kernel/Sched.CPP.Z,56"$
    -$LK,"SCf_NEW_KEY",A="FL:::/Kernel/KernelA.HPP,3523"$
    -$LK,"CDirContext",A="FL:::/Kernel/KernelA.HPP,2763"$
    -$LK,"BootDVDProbeAll",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,28",BI=333$
    -$LK,"SysThrowBreak",A="FL:::/Kernel/KExcept.CPP.Z,111",BI=334$
    +$LK,"SCf_NEW_KEY",A="FL:::/Kernel/KernelA.HPP,3529"$
    +$LK,"CDirContext",A="FL:::/Kernel/KernelA.HPP,2769"$
    +$LK,"BootDVDProbeAll",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,29",BI=336$
    +$LK,"SysThrowBreak",A="FL:::/Kernel/KExcept.CPP.Z,115",BI=337$
     $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,1942"$
    -$LK,"ATAWriteBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,461",BI=335$
    -$LK,"RT_U8",A="FL:::/Kernel/KernelA.HPP,1554"$
    -$LK,"DOCEf_USER_DATA",A="FL:::/Kernel/KernelA.HPP,1066"$
    -$LK,"DOCEF_USER_DATA",A="FL:::/Kernel/KernelA.HPP,978"$
    +$LK,"ARGT_XMM64",A="FL:::/Kernel/KernelA.HPP,1944"$
    +$LK,"ATAWriteBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,461",BI=338$
    +$LK,"RT_U8",A="FL:::/Kernel/KernelA.HPP,1556"$
    +$LK,"DOCEf_USER_DATA",A="FL:::/Kernel/KernelA.HPP,1068"$
    +$LK,"DOCEF_USER_DATA",A="FL:::/Kernel/KernelA.HPP,980"$
     $LK,"COPY_BUF_BLKS",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,22"$
    -$LK,"FAT32FileWrite",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,813",BI=336$
    -$LK,"CISO1Date",A="FL:::/Kernel/KernelA.HPP,2450"$
    -$LK,"EDf_BAIL",A="FL:::/Kernel/KernelA.HPP,1250"$
    -$LK,"EDF_BAIL",A="FL:::/Kernel/KernelA.HPP,1244"$
    -$LK,"ChkCodePtr",A="FL:::/Kernel/KDbg.CPP.Z,16",BI=337$
    -$LK,"SYS_RAM_REBOOT",A="FL:::/Kernel/KStart.CPP.Z,348"$
    -$LK,"ISO1T_BOOT_RECORD",A="FL:::/Kernel/KernelA.HPP,2475"$
    -$LK,"FileFind",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,57",BI=338$
    +$LK,"FAT32FileWrite",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,813",BI=339$
    +$LK,"CISO1Date",A="FL:::/Kernel/KernelA.HPP,2452"$
    +$LK,"EDf_BAIL",A="FL:::/Kernel/KernelA.HPP,1252"$
    +$LK,"EDF_BAIL",A="FL:::/Kernel/KernelA.HPP,1246"$
    +$LK,"ChkCodePtr",A="FL:::/Kernel/KDbg.CPP.Z,16",BI=340$
    +$LK,"SYS_RAM_REBOOT",A="FL:::/Kernel/KStart.CPP.Z,353"$
    +$LK,"ISO1T_BOOT_RECORD",A="FL:::/Kernel/KernelA.HPP,2477"$
    +$LK,"FileFind",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,57",BI=341$
     $LK,"SYS_FIND_PCI_SERVICES",A="FL:::/Kernel/PCIBIOS.CPP.Z,38"$
    -$LK,"VGAP_ATTR_DATA_WRITE",A="FL:::/Kernel/KernelA.HPP,3720"$
    -$LK,"FUF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,2616"$
    -$LK,"TK_MUL_EQU",A="FL:::/Kernel/KernelA.HPP,2091"$
    -$LK,"TK_NOT_EQU",A="FL:::/Kernel/KernelA.HPP,2083"$
    -$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=339$
    -$LK,"IntNop",A="FL:::/Kernel/KInts.CPP.Z,136",BI=340$
    +$LK,"VGAP_ATTR_DATA_WRITE",A="FL:::/Kernel/KernelA.HPP,3727"$
    +$LK,"FUF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,2617"$
    +$LK,"TK_MUL_EQU",A="FL:::/Kernel/KernelA.HPP,2093"$
    +$LK,"TK_NOT_EQU",A="FL:::/Kernel/KernelA.HPP,2085"$
    +$LK,"MIN_U32",A="FL:::/Kernel/KernelA.HPP,33"$
    +$LK,"MIN_U16",A="FL:::/Kernel/KernelA.HPP,29"$
    +$LK,"CFileNameTo",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,1",BI=342$
    +$LK,"IntNop",A="FL:::/Kernel/KInts.CPP.Z,136",BI=343$
     $LK,"_D3_MUL_EQU",A="FL:::/Kernel/KMathA.CPP.Z,273"$
    -$LK,"DISPLAYf_SHOW",A="FL:::/Kernel/KernelA.HPP,3289"$
    -$LK,"DOF_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1219"$
    -$LK,"HTF_PUBLIC",A="FL:::/Kernel/KernelA.HPP,700"$
    -$LK,"HTf_PUBLIC",A="FL:::/Kernel/KernelA.HPP,670"$
    +$LK,"DISPLAYf_SHOW",A="FL:::/Kernel/KernelA.HPP,3295"$
    +$LK,"DOF_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1221"$
    +$LK,"HTF_PUBLIC",A="FL:::/Kernel/KernelA.HPP,702"$
    +$LK,"HTf_PUBLIC",A="FL:::/Kernel/KernelA.HPP,672"$
     $LK,"SYS_HASH_SINGLE_TABLE_FIND",A="FL:::/Kernel/KHashA.CPP.Z,41"$
    -$LK,"OC_OP_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HPP,1755"$
    -$LK,"CCF_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,2144"$
    -$LK,"MLF_FUN",A="FL:::/Kernel/KernelA.HPP,775"$
    -$LK,"TaskMsg",A="FL:::/Kernel/SrvCmd.CPP.Z,119",BI=341$
    -$LK,"RBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,31",BI=342$
    -$LK,"DOCEF_ZERO_BASED",A="FL:::/Kernel/KernelA.HPP,1012"$
    -$LK,"HTF_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,706"$
    -$LK,"FAT32Cd",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,399",BI=343$
    -$LK,"DOCEf_ZERO_BASED",A="FL:::/Kernel/KernelA.HPP,1098"$
    -$LK,"HTf_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,676"$
    -$LK,"CAP16BitInit",A="FL:::/Kernel/KernelA.HPP,523"$
    -$LK,"ATAPIWriteBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,535",BI=344$
    +$LK,"OC_OP_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HPP,1757"$
    +$LK,"CCF_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,2147"$
    +$LK,"MLF_FUN",A="FL:::/Kernel/KernelA.HPP,777"$
    +$LK,"TaskMsg",A="FL:::/Kernel/SrvCmd.CPP.Z,119",BI=344$
    +$LK,"RBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,31",BI=345$
    +$LK,"DOCEF_ZERO_BASED",A="FL:::/Kernel/KernelA.HPP,1014"$
    +$LK,"HTF_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,708"$
    +$LK,"FAT32Cd",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,399",BI=346$
    +$LK,"DOCEf_ZERO_BASED",A="FL:::/Kernel/KernelA.HPP,1100"$
    +$LK,"HTf_UNRESOLVED",A="FL:::/Kernel/KernelA.HPP,678"$
    +$LK,"CAP16BitInit",A="FL:::/Kernel/KernelA.HPP,525"$
    +$LK,"ATAPIWriteBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,535",BI=347$
     $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,2615"$
    -$LK,"ScanChar",A="FL:::/Kernel/SerialDev/Message.CPP.Z,110",BI=345$
    -$LK,"RepInU32",A="FL:::/Kernel/KernelB.HPP,83"$
    -$LK,"RepInU16",A="FL:::/Kernel/KernelB.HPP,81"$
    -$LK,"loge_2",A="FL:::/Kernel/KernelA.HPP,54"$
    -$LK,"MIN_U64",A="FL:::/Kernel/KernelA.HPP,36"$
    +$LK,"SYS_HEAP_INIT_FLAG",A="FL::/Temp.TXT.Z,1"$
    +$LK,"FUF_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,2616"$
    +$LK,"ScanChar",A="FL:::/Kernel/SerialDev/Message.CPP.Z,110",BI=348$
    +$LK,"RepInU32",A="FL:::/Kernel/KernelB.HPP,84"$
    +$LK,"RepInU16",A="FL:::/Kernel/KernelB.HPP,82"$
    +$LK,"loge_2",A="FL:::/Kernel/KernelA.HPP,55"$
    +$LK,"MIN_U64",A="FL:::/Kernel/KernelA.HPP,37"$
     $LK,"chars_bmp_white_space",A="FL:::/Kernel/StrA.CPP.Z,356"$
    -$LK,"FAT32FileFind",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,298",BI=346$
    -$LK,"GSF_SHIFT_ESC_EXIT",A="FL:::/Kernel/KernelA.HPP,3777"$
    -$LK,"SFG_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,3798"$
    -$LK,"FUf_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,2589"$
    -$LK,"DOCf_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HPP,1312"$
    -$LK,"DOCf_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1306"$
    -$LK,"DOCF_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1270"$
    -$LK,"DirTreeDel2",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,49",BI=347$
    -$LK,"FUF_JUST_TXT",A="FL:::/Kernel/KernelA.HPP,2606"$
    -$LK,"FUf_JUST_TXT",A="FL:::/Kernel/KernelA.HPP,2580"$
    -$LK,"DOCT_DFT_BACKGROUND",A="FL:::/Kernel/KernelA.HPP,915"$
    -$LK,"DOCT_DFT_FOREGROUND",A="FL:::/Kernel/KernelA.HPP,914"$
    -$LK,"BOOT_SRC_HARDDRV",A="FL:::/Kernel/KernelA.HPP,3881"$
    +$LK,"FAT32FileFind",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,298",BI=349$
    +$LK,"GSF_SHIFT_ESC_EXIT",A="FL:::/Kernel/KernelA.HPP,3784"$
    +$LK,"SFG_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,3805"$
    +$LK,"FUf_WHOLE_LABELS",A="FL:::/Kernel/KernelA.HPP,2590"$
    +$LK,"DOCf_DO_FULL_REFRESH",A="FL:::/Kernel/KernelA.HPP,1314"$
    +$LK,"DOCf_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1308"$
    +$LK,"DOCF_DONT_SHOW",A="FL:::/Kernel/KernelA.HPP,1272"$
    +$LK,"DirTreeDel2",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,49",BI=350$
    +$LK,"FUF_JUST_TXT",A="FL:::/Kernel/KernelA.HPP,2607"$
    +$LK,"FUf_JUST_TXT",A="FL:::/Kernel/KernelA.HPP,2581"$
    +$LK,"DOCT_DFT_BACKGROUND",A="FL:::/Kernel/KernelA.HPP,917"$
    +$LK,"DOCT_DFT_FOREGROUND",A="FL:::/Kernel/KernelA.HPP,916"$
    +$LK,"BOOT_SRC_HARDDRV",A="FL:::/Kernel/KernelA.HPP,3889"$
     $LK,"HashFind",A="FL:::/Kernel/KHashA.CPP.Z,255"$
    -$LK,"D3Cross",A="FL:::/Kernel/KernelB.HPP,149"$
    -$LK,"MAX_PTR_STARS",A="FL:::/Kernel/KernelA.HPP,769"$
    -$LK,"DOCEF_ESC",A="FL:::/Kernel/KernelA.HPP,997"$
    +$LK,"D3Cross",A="FL:::/Kernel/KernelB.HPP,148"$
    +$LK,"MAX_PTR_STARS",A="FL:::/Kernel/KernelA.HPP,771"$
    +$LK,"DOCEF_ESC",A="FL:::/Kernel/KernelA.HPP,999"$
     $LK,"_FREE",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,224"$
    -$LK,"SrcLineNum",A="FL:::/Kernel/FunSeg.CPP.Z,176",BI=348$
    -$LK,"ATAPIClose",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,521",BI=349$
    -$LK,"DOCT_MACRO",A="FL:::/Kernel/KernelA.HPP,930"$
    -$LK,"CH_SHIFT_ESC",A="FL:::/Kernel/KernelA.HPP,3507"$
    -$LK,"InDbg",A="FL:::/Kernel/KMisc.CPP.Z,260",BI=350$
    -$LK,"Dbg",A="FL:::/Kernel/KDbg.CPP.Z,634",BI=351$
    -$LK,"Abs",A="FL:::/Kernel/KernelB.HPP,95"$
    -$LK,"CDATE_YEAR_DAYS",A="FL:::/Kernel/KernelA.HPP,181"$
    -$LK,"RFLAGf_OVERFLOW",A="FL:::/Kernel/KernelA.HPP,314"$
    +$LK,"SrcLineNum",A="FL:::/Kernel/FunSeg.CPP.Z,176",BI=351$
    +$LK,"ATAPIClose",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,521",BI=352$
    +$LK,"DOCT_MACRO",A="FL:::/Kernel/KernelA.HPP,932"$
    +$LK,"CH_SHIFT_ESC",A="FL:::/Kernel/KernelA.HPP,3513"$
    +$LK,"InDbg",A="FL:::/Kernel/KMisc.CPP.Z,260",BI=353$
    +$LK,"Dbg",A="FL:::/Kernel/KDbg.CPP.Z,634",BI=354$
    +$LK,"Abs",A="FL:::/Kernel/KernelB.HPP,96"$
    +$LK,"CDATE_YEAR_DAYS",A="FL:::/Kernel/KernelA.HPP,182"$
    +$LK,"RFLAGf_OVERFLOW",A="FL:::/Kernel/KernelA.HPP,315"$
     $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,1310"$
    -$LK,"DOCEf_RIGHT_X",A="FL:::/Kernel/KernelA.HPP,1075"$
    -$LK,"DOCEF_RIGHT_X",A="FL:::/Kernel/KernelA.HPP,987"$
    -$LK,"DCF_FILL_NOT_COLOR",A="FL:::/Kernel/KernelA.HPP,3633"$
    -$LK,"DOCEF_LEN",A="FL:::/Kernel/KernelA.HPP,964"$
    -$LK,"FileAttr",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,228",BI=352$
    +$LK,"DOCf_NULL_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1312"$
    +$LK,"DOCEf_RIGHT_X",A="FL:::/Kernel/KernelA.HPP,1077"$
    +$LK,"DOCEF_RIGHT_X",A="FL:::/Kernel/KernelA.HPP,989"$
    +$LK,"DCF_FILL_NOT_COLOR",A="FL:::/Kernel/KernelA.HPP,3640"$
    +$LK,"DOCEF_LEN",A="FL:::/Kernel/KernelA.HPP,966"$
    +$LK,"FileAttr",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,234",BI=355$
     $LK,"_MEMSET",A="FL:::/Kernel/KUtils.CPP.Z,3"$
    -$LK,"ROP_COLLISION",A="FL:::/Kernel/KernelA.HPP,2935"$
    -$LK,"TK_PLUS_PLUS",A="FL:::/Kernel/KernelA.HPP,2076"$
    -$LK,"sys_heap_init_val",A="FL:::/Kernel/KernelB.HPP,182"$
    -$LK,"MemVGAAlloc",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,156",BI=353$
    -$LK,"DOCEF_DEREF_DATA",A="FL:::/Kernel/KernelA.HPP,1009"$
    -$LK,"VGAP_REG_WRITE",A="FL:::/Kernel/KernelA.HPP,3727"$
    -$LK,"FUF_EXPAND",A="FL:::/Kernel/KernelA.HPP,2602"$
    -$LK,"FUf_EXPAND",A="FL:::/Kernel/KernelA.HPP,2576"$
    -$LK,"DOCEf_DEREF_DATA",A="FL:::/Kernel/KernelA.HPP,1095"$
    -$LK,"Del",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,82",BI=354$
    -$LK,"IDTET_TASK",A="FL:::/Kernel/KernelA.HPP,279"$
    -$LK,"TaskValidate",A="FL:::/Kernel/KTask.CPP.Z,19",BI=355$
    -$LK,"LAPIC_ARIBITRATION_PRIORITY",A="FL:::/Kernel/KernelA.HPP,480"$
    +$LK,"ROP_COLLISION",A="FL:::/Kernel/KernelA.HPP,2941"$
    +$LK,"TK_PLUS_PLUS",A="FL:::/Kernel/KernelA.HPP,2078"$
    +$LK,"sys_heap_init_val",A="FL:::/Kernel/KernelB.HPP,181"$
    +$LK,"MemVGAAlloc",A="FL:::/Kernel/Mem/MemPhysical.CPP.Z,156",BI=356$
    +$LK,"DOCEF_DEREF_DATA",A="FL:::/Kernel/KernelA.HPP,1011"$
    +$LK,"VGAP_REG_WRITE",A="FL:::/Kernel/KernelA.HPP,3734"$
    +$LK,"FUF_EXPAND",A="FL:::/Kernel/KernelA.HPP,2603"$
    +$LK,"FUf_EXPAND",A="FL:::/Kernel/KernelA.HPP,2577"$
    +$LK,"DOCEf_DEREF_DATA",A="FL:::/Kernel/KernelA.HPP,1097"$
    +$LK,"Del",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,82",BI=357$
    +$LK,"IDTET_TASK",A="FL:::/Kernel/KernelA.HPP,280"$
    +$LK,"TaskValidate",A="FL:::/Kernel/KTask.CPP.Z,19",BI=358$
    +$LK,"LAPIC_ARIBITRATION_PRIORITY",A="FL:::/Kernel/KernelA.HPP,482"$
     $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,"OCF_ALIAS",A="FL:::/Kernel/KernelA.HPP,1947"$
    -$LK,"IC_BODY_SIZE",A="FL:::/Kernel/KernelA.HPP,1621"$
    +$LK,"OCF_ALIAS",A="FL:::/Kernel/KernelA.HPP,1949"$
    +$LK,"IC_BODY_SIZE",A="FL:::/Kernel/KernelA.HPP,1623"$
     $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,2926"$
    -$LK,"HTT_WORD",A="FL:::/Kernel/KernelA.HPP,687"$
    -$LK,"HTt_WORD",A="FL:::/Kernel/KernelA.HPP,657"$
    -$LK,"FUG_FILE_FIND",A="FL:::/Kernel/KernelA.HPP,2622"$
    -$LK,"I_PAGE_FAULT",A="FL:::/Kernel/KernelA.HPP,289"$
    -$LK,"DrvUnlock",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,14",BI=356$
    -$LK,"CProgress",A="FL:::/Kernel/KernelA.HPP,3900"$
    -$LK,"Arg",A="FL:::/Kernel/KernelB.HPP,121"$
    -$LK,"FSt_ISO9660",A="FL:::/Kernel/KernelA.HPP,2682"$
    -$LK,"CallExtNum",A="FL:::/Kernel/KernelB.HPP,54"$
    -$LK,"DirFile",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,284",BI=357$
    -$LK,"DOCEF_TAG",A="FL:::/Kernel/KernelA.HPP,963"$
    +$LK,"ROPB_COLLISION",A="FL:::/Kernel/KernelA.HPP,2932"$
    +$LK,"HTT_WORD",A="FL:::/Kernel/KernelA.HPP,689"$
    +$LK,"HTt_WORD",A="FL:::/Kernel/KernelA.HPP,659"$
    +$LK,"FUG_FILE_FIND",A="FL:::/Kernel/KernelA.HPP,2623"$
    +$LK,"I_PAGE_FAULT",A="FL:::/Kernel/KernelA.HPP,290"$
    +$LK,"DrvUnlock",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,14",BI=359$
    +$LK,"CProgress",A="FL:::/Kernel/KernelA.HPP,3908"$
    +$LK,"Arg",A="FL:::/Kernel/KernelB.HPP,122"$
    +$LK,"FSt_ISO9660",A="FL:::/Kernel/KernelA.HPP,2687"$
    +$LK,"CallExtNum",A="FL:::/Kernel/KernelB.HPP,55"$
    +$LK,"DirFile",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,290",BI=360$
    +$LK,"DOCEF_TAG",A="FL:::/Kernel/KernelA.HPP,965"$
     $LK,"Btc",A="FL:::/Kernel/KernelB.HPP,16"$
    -$LK,"CCF_KEEP_NEW_LINES",A="FL:::/Kernel/KernelA.HPP,2132"$
    -$LK,"MDF_RIP_DISP32",A="FL:::/Kernel/KernelA.HPP,1583"$
    -$LK,"Dir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,91",BI=358$
    +$LK,"CCF_KEEP_NEW_LINES",A="FL:::/Kernel/KernelA.HPP,2135"$
    +$LK,"MDF_RIP_DISP32",A="FL:::/Kernel/KernelA.HPP,1585"$
    +$LK,"Dir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,105",BI=361$
     $LK,"Bsf",A="FL:::/Kernel/KernelB.HPP,10"$
    -$LK,"MDf_RIP_DISP32",A="FL:::/Kernel/KernelA.HPP,1575"$
    -$LK,"ECF_HAS_PUSH_CMP",A="FL:::/Kernel/KernelA.HPP,1623"$
    -$LK,"WIf_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1442"$
    -$LK,"DOCT_PAGE_BREAK",A="FL:::/Kernel/KernelA.HPP,905"$
    -$LK,"SYS_SEMA_RECORD_MACRO",A="FL:::/Kernel/KernelA.HPP,592"$
    -$LK,"IPVarsUpdate",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,9",BI=359$
    -$LK,"MLF_LASTCLASS",A="FL:::/Kernel/KernelA.HPP,773"$
    -$LK,"Fxrstor",A="FL:::/Kernel/KernelB.HPP,133"$
    -$LK,"_R8",A="FL:::/Kernel/KernelA.HPP,3423"$
    -$LK,"_R9",A="FL:::/Kernel/KernelA.HPP,3424"$
    -$LK,"FileRead",A="FL:::/Kernel/BlkDev/DskFile.CPP.Z,1",BI=360$
    -$LK,"DOCf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1316"$
    -$LK,"DOCF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1279"$
    -$LK,"DOCT_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,938"$
    +$LK,"MDf_RIP_DISP32",A="FL:::/Kernel/KernelA.HPP,1577"$
    +$LK,"ECF_HAS_PUSH_CMP",A="FL:::/Kernel/KernelA.HPP,1625"$
    +$LK,"WIf_SELF_GRAB_SCROLL",A="FL:::/Kernel/KernelA.HPP,1444"$
    +$LK,"DOCT_PAGE_BREAK",A="FL:::/Kernel/KernelA.HPP,907"$
    +$LK,"SYS_SEMA_RECORD_MACRO",A="FL:::/Kernel/KernelA.HPP,594"$
    +$LK,"IPVarsUpdate",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,9",BI=362$
    +$LK,"MLF_LASTCLASS",A="FL:::/Kernel/KernelA.HPP,775"$
    +$LK,"_R8",A="FL:::/Kernel/KernelA.HPP,3429"$
    +$LK,"_R9",A="FL:::/Kernel/KernelA.HPP,3430"$
    +$LK,"FileRead",A="FL:::/Kernel/BlkDev/DskFile.CPP.Z,1",BI=363$
    +$LK,"DOCf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1318"$
    +$LK,"DOCF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1281"$
    +$LK,"DOCT_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,940"$
     $LK,"_FAR_CALL32",A="FL:::/Kernel/PCIBIOS.CPP.Z,69"$
    -$LK,"KbdMouseCmdAck",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,65",BI=361$
    -$LK,"CAOTHeapGlblRef",A="FL:::/Kernel/KernelA.HPP,1982"$
    -$LK,"IEF_IMM_NOT_REL",A="FL:::/Kernel/KernelA.HPP,403"$
    -$LK,"FAT32DirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,241",BI=362$
    -$LK,"QueCopy",A="FL:::/Kernel/KDataTypes.CPP.Z,53",BI=363$
    -$LK,"Carry",A="FL:::/Kernel/KernelB.HPP,240"$
    -$LK,"Cos",A="FL:::/Kernel/KernelB.HPP,97"$
    -$LK,"Clamp",A="FL:::/Kernel/KMathB.CPP.Z,1",BI=364$
    -$LK,"BDF_FMT",A="FL:::/Kernel/KernelA.HPP,2639"$
    -$LK,"Name2DirCluster",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,10",BI=365$
    +$LK,"KbdMouseCmdAck",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,65",BI=364$
    +$LK,"CAOTHeapGlblRef",A="FL:::/Kernel/KernelA.HPP,1984"$
    +$LK,"DOCEF_SEL",A="FL:::/Kernel/KernelA.HPP,1043"$
    +$LK,"IEF_IMM_NOT_REL",A="FL:::/Kernel/KernelA.HPP,404"$
    +$LK,"FAT32DirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,241",BI=365$
    +$LK,"QueCopy",A="FL:::/Kernel/KDataTypes.CPP.Z,53",BI=366$
    +$LK,"Carry",A="FL:::/Kernel/KernelB.HPP,239"$
    +$LK,"Cos",A="FL:::/Kernel/KernelB.HPP,98"$
    +$LK,"Clamp",A="FL:::/Kernel/KMathB.CPP.Z,1",BI=367$
    +$LK,"BDF_FMT",A="FL:::/Kernel/KernelA.HPP,2641"$
    +$LK,"Name2DirCluster",A="FL:::/Kernel/BlkDev/DskStrB.CPP.Z,10",BI=368$
     $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,3612"$
    -$LK,"CMasterBoot",A="FL:::/Kernel/KernelA.HPP,2311"$
    -$LK,"Fix",A="FL:::/Kernel/EdLite.CPP.Z,337",BI=366$
    +$LK,"SYS_PROGRESS1_MAX",A="FL:::/Kernel/KStart.CPP.Z,214"$
    +$LK,"GR_Z_ALL",A="FL:::/Kernel/KernelA.HPP,3619"$
    +$LK,"CMasterBoot",A="FL:::/Kernel/KernelA.HPP,2313"$
    +$LK,"Fix",A="FL:::/Kernel/EdLite.CPP.Z,337",BI=369$
     $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,1536"$
    -$LK,"DOCF_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1288"$
    -$LK,"RFLAGf_CARRY",A="FL:::/Kernel/KernelA.HPP,306"$
    -$LK,"FAT32FileRead",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,367",BI=367$
    -$LK,"DirFilesFlatten",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,136",BI=368$
    -$LK,"FileExtDot",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,1",BI=369$
    -$LK,"IsDbg",A="FL:::/Kernel/KMisc.CPP.Z,265",BI=370$
    +$LK,"OPTf_WARN_UNUSED_VAR",A="FL:::/Kernel/KernelA.HPP,1538"$
    +$LK,"DOCF_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1290"$
    +$LK,"RFLAGf_CARRY",A="FL:::/Kernel/KernelA.HPP,307"$
    +$LK,"FAT32FileRead",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,367",BI=370$
    +$LK,"DirFilesFlatten",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,136",BI=371$
    +$LK,"FileExtDot",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,1",BI=372$
    +$LK,"IsDbg",A="FL:::/Kernel/KMisc.CPP.Z,265",BI=373$
     $LK,"Bts",A="FL:::/Kernel/KernelB.HPP,20"$
    -$LK,"CMemBlk",A="FL:::/Kernel/KernelA.HPP,2850"$
    -$LK,"DOCEF_LST",A="FL:::/Kernel/KernelA.HPP,1015"$
    -$LK,"Man",A="FL:::/Kernel/FunSeg.CPP.Z,316",BI=371$
    -$LK,"Mem512Alloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,11",BI=372$
    -$LK,"TK_SHR_EQU",A="FL:::/Kernel/KernelA.HPP,2090"$
    -$LK,"CDATE_FREQ",A="FL:::/Kernel/KernelA.HPP,549"$
    -$LK,"FilesFind",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,30",BI=373$
    +$LK,"CMemBlk",A="FL:::/Kernel/KernelA.HPP,2856"$
    +$LK,"DOCEF_LST",A="FL:::/Kernel/KernelA.HPP,1017"$
    +$LK,"Man",A="FL:::/Kernel/FunSeg.CPP.Z,316",BI=374$
    +$LK,"Mem512Alloc",A="FL:::/Kernel/Mem/Mem512.CPP.Z,11",BI=375$
    +$LK,"TK_SHR_EQU",A="FL:::/Kernel/KernelA.HPP,2092"$
    +$LK,"CDATE_FREQ",A="FL:::/Kernel/KernelA.HPP,551"$
    +$LK,"FilesFind",A="FL:::/Kernel/BlkDev/DskFind.CPP.Z,30",BI=376$
     $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,3463"$
    -$LK,"Fmt",A="FL:::/Kernel/BlkDev/DskFmt.CPP.Z,53",BI=374$
    -$LK,"ExeCmdLine",A="FL:::/Kernel/KTask.CPP.Z,268",BI=375$
    -$LK,"reverse_bits_table",A="FL:::/Kernel/KGlbls.CPP.Z,12"$
    -$LK,"Log10",A="FL:::/Kernel/KernelB.HPP,136"$
    -$LK,"FifoI64Flush",A="FL:::/Kernel/KDataTypes.CPP.Z,304",BI=376$
    -$LK,"InvlPg",A="FL:::/Kernel/KernelB.HPP,273"$
    -$LK,"CallExtStr",A="FL:::/Kernel/KernelB.HPP,45"$
    -$LK,"VGAM_GRAPHICS",A="FL:::/Kernel/KernelA.HPP,3715"$
    -$LK,"DCF_LOCATE_NEAREST",A="FL:::/Kernel/KernelA.HPP,3629"$
    -$LK,"Ff_ARGPOP",A="FL:::/Kernel/KernelA.HPP,847"$
    -$LK,"SCF_ALT",A="FL:::/Kernel/KernelA.HPP,3534"$
    -$LK,"CViewAngles",A="FL:::/Kernel/KernelA.HPP,3098"$
    -$LK,"CArrayDim",A="FL:::/Kernel/KernelA.HPP,780"$
    -$LK,"DOCEf_NUM_FLAGS",A="FL:::/Kernel/KernelA.HPP,1110"$
    -$LK,"Ff_INTERNAL",A="FL:::/Kernel/KernelA.HPP,849"$
    -$LK,"Drv",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,223",BI=377$
    -$LK,"Fclex",A="FL:::/Kernel/KernelB.HPP,128"$
    -$LK,"MDF_DISP",A="FL:::/Kernel/KernelA.HPP,1581"$
    -$LK,"MDf_DISP",A="FL:::/Kernel/KernelA.HPP,1573"$
    -$LK,"Blink",A="FL:::/Kernel/KMisc.CPP.Z,125",BI=378$
    -$LK,"CDbgInfo",A="FL:::/Kernel/KernelA.HPP,716"$
    -$LK,"IET_ZEROED_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,413"$
    -$LK,"RFLAGf_V8086",A="FL:::/Kernel/KernelA.HPP,319"$
    -$LK,"IDTET_TRAP",A="FL:::/Kernel/KernelA.HPP,281"$
    -$LK,"SetRBP",A="FL:::/Kernel/KernelB.HPP,248"$
    -$LK,"LTGREEN",A="FL:::/Kernel/KernelA.HPP,2959"$
    -$LK,"DOCf_BLINK",A="FL:::/Kernel/KernelA.HPP,1318"$
    -$LK,"DOCF_BLINK",A="FL:::/Kernel/KernelA.HPP,1281"$
    -$LK,"DOCEf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1043"$
    -$LK,"DOCEF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1037"$
    -$LK,"SysSymImportsResolve",A="FL:::/Kernel/KLoad.CPP.Z,55",BI=379$
    -$LK,"RS_ATTR_HIDDEN",A="FL:::/Kernel/KernelA.HPP,2524"$
    +$LK,"CSysFixedArea",A="FL:::/Kernel/KernelA.HPP,3469"$
    +$LK,"Fmt",A="FL:::/Kernel/BlkDev/DskFmt.CPP.Z,53",BI=377$
    +$LK,"ExeCmdLine",A="FL:::/Kernel/KTask.CPP.Z,270",BI=378$
    +$LK,"Log10",A="FL:::/Kernel/KernelB.HPP,135"$
    +$LK,"FifoI64Flush",A="FL:::/Kernel/KDataTypes.CPP.Z,304",BI=379$
    +$LK,"InvlPg",A="FL:::/Kernel/KernelB.HPP,272"$
    +$LK,"CallExtStr",A="FL:::/Kernel/KernelB.HPP,46"$
    +$LK,"VGAM_GRAPHICS",A="FL:::/Kernel/KernelA.HPP,3722"$
    +$LK,"DCF_LOCATE_NEAREST",A="FL:::/Kernel/KernelA.HPP,3636"$
    +$LK,"Ff_ARGPOP",A="FL:::/Kernel/KernelA.HPP,849"$
    +$LK,"SCF_ALT",A="FL:::/Kernel/KernelA.HPP,3540"$
    +$LK,"CViewAngles",A="FL:::/Kernel/KernelA.HPP,3104"$
    +$LK,"CArrayDim",A="FL:::/Kernel/KernelA.HPP,782"$
    +$LK,"DOCEf_NUM_FLAGS",A="FL:::/Kernel/KernelA.HPP,1112"$
    +$LK,"Ff_INTERNAL",A="FL:::/Kernel/KernelA.HPP,851"$
    +$LK,"Drv",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,236",BI=380$
    +$LK,"Fclex",A="FL:::/Kernel/KernelB.HPP,129"$
    +$LK,"MDF_DISP",A="FL:::/Kernel/KernelA.HPP,1583"$
    +$LK,"MDf_DISP",A="FL:::/Kernel/KernelA.HPP,1575"$
    +$LK,"Blink",A="FL:::/Kernel/KMisc.CPP.Z,125",BI=381$
    +$LK,"CDbgInfo",A="FL:::/Kernel/KernelA.HPP,718"$
    +$LK,"IET_ZEROED_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,414"$
    +$LK,"RFLAGf_V8086",A="FL:::/Kernel/KernelA.HPP,320"$
    +$LK,"IDTET_TRAP",A="FL:::/Kernel/KernelA.HPP,282"$
    +$LK,"SetRBP",A="FL:::/Kernel/KernelB.HPP,247"$
    +$LK,"LTGREEN",A="FL:::/Kernel/KernelA.HPP,2965"$
    +$LK,"DOCf_BLINK",A="FL:::/Kernel/KernelA.HPP,1320"$
    +$LK,"DOCF_BLINK",A="FL:::/Kernel/KernelA.HPP,1283"$
    +$LK,"DOCEf_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1045"$
    +$LK,"DOCEF_HIGHLIGHT",A="FL:::/Kernel/KernelA.HPP,1039"$
    +$LK,"SysSymImportsResolve",A="FL:::/Kernel/KLoad.CPP.Z,55",BI=382$
    +$LK,"RS_ATTR_HIDDEN",A="FL:::/Kernel/KernelA.HPP,2526"$
     $LK,"TaskEndNow",A="FL:::/Kernel/Sched.CPP.Z,285"$
    -$LK,"Max",A="FL:::/Kernel/KMathB.CPP.Z,18",BI=380$
    +$LK,"Max",A="FL:::/Kernel/KMathB.CPP.Z,18",BI=383$
     $LK,"SYS_HASH_FIND",A="FL:::/Kernel/KHashA.CPP.Z,89"$
    -$LK,"ROPF_DITHER",A="FL:::/Kernel/KernelA.HPP,2944"$
    -$LK,"ICF_PREV_DELETED",A="FL:::/Kernel/KernelA.HPP,1617"$
    -$LK,"WIG_DBL_CLICK",A="FL:::/Kernel/KernelA.HPP,1431"$
    -$LK,"SYS_SEMA_FIX",A="FL:::/Kernel/KernelA.HPP,612"$
    -$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,3508"$
    -$LK,"ROPBF_DITHER",A="FL:::/Kernel/KernelA.HPP,2930"$
    -$LK,"FF_WRITE",A="FL:::/Kernel/KernelA.HPP,2772"$
    -$LK,"SetRAX",A="FL:::/Kernel/KernelB.HPP,247"$
    -$LK,"Min",A="FL:::/Kernel/KMathB.CPP.Z,10",BI=381$
    -$LK,"mp_cnt",A="FL:::/Kernel/KernelB.HPP,228"$
    -$LK,"Exp",A="FL:::/Kernel/KernelB.HPP,127"$
    -$LK,"DCF_RECORD_EXTENTS",A="FL:::/Kernel/KernelA.HPP,3634"$
    -$LK,"FAT32FilesFind",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,846",BI=382$
    -$LK,"ISO1Cd",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,219",BI=383$
    +$LK,"ROPF_DITHER",A="FL:::/Kernel/KernelA.HPP,2950"$
    +$LK,"ICF_PREV_DELETED",A="FL:::/Kernel/KernelA.HPP,1619"$
    +$LK,"WIG_DBL_CLICK",A="FL:::/Kernel/KernelA.HPP,1433"$
    +$LK,"SYS_SEMA_FIX",A="FL:::/Kernel/KernelA.HPP,614"$
    +$LK,"ToF64",A="FL:::/Kernel/KernelB.HPP,120"$
    +$LK,"SYS_PROGRESS2_MAX",A="FL:::/Kernel/KStart.CPP.Z,217"$
    +$LK,"CH_SHIFT_SPACE",A="FL:::/Kernel/KernelA.HPP,3514"$
    +$LK,"ROPBF_DITHER",A="FL:::/Kernel/KernelA.HPP,2936"$
    +$LK,"FF_WRITE",A="FL:::/Kernel/KernelA.HPP,2778"$
    +$LK,"SetRAX",A="FL:::/Kernel/KernelB.HPP,246"$
    +$LK,"Min",A="FL:::/Kernel/KMathB.CPP.Z,10",BI=384$
    +$LK,"mp_cnt",A="FL:::/Kernel/KernelB.HPP,227"$
    +$LK,"Exp",A="FL:::/Kernel/KernelB.HPP,128"$
    +$LK,"DCF_RECORD_EXTENTS",A="FL:::/Kernel/KernelA.HPP,3641"$
    +$LK,"FAT32FilesFind",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,846",BI=385$
    +$LK,"ISO1Cd",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,159",BI=386$
     $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=384$
    -$LK,"RS_ATTR_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2523"$
    -$LK,"ICF_USE_UNSIGNED",A="FL:::/Kernel/KernelA.HPP,1596"$
    -$LK,"ATAGetDevId",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,163",BI=385$
    -$LK,"WBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,68",BI=386$
    -$LK,"DOCT_ERROR",A="FL:::/Kernel/KernelA.HPP,940"$
    -$LK,"CopySingle",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,23",BI=387$
    -$LK,"EXT_WIN_TO_TOP",A="FL:::/Kernel/KernelA.HPP,573"$
    -$LK,"MouseIPSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,195",BI=388$
    -$LK,"ATAPIReadCapacity",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,253",BI=389$
    -$LK,"MkDir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,146",BI=390$
    -$LK,"IsDir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,76",BI=391$
    -$LK,"SetMSR",A="FL:::/Kernel/KernelB.HPP,258"$
    -$LK,"ToI64",A="FL:::/Kernel/KernelB.HPP,120"$
    -$LK,"IET_MAIN",A="FL:::/Kernel/KernelA.HPP,414"$
    -$LK,"ScanCode2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,248",BI=392$
    -$LK,"DOCf_INVERT",A="FL:::/Kernel/KernelA.HPP,1319"$
    -$LK,"DOCF_INVERT",A="FL:::/Kernel/KernelA.HPP,1282"$
    -$LK,"sys_heap_limit",A="FL:::/Kernel/KernelB.HPP,194"$
    -$LK,"FileExtRem",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,10",BI=393$
    -$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,3783"$
    -$LK,"OPTf_USE_IMM64",A="FL:::/Kernel/KernelA.HPP,1545"$
    -$LK,"Raw",A="FL:::/Kernel/KMisc.CPP.Z,238",BI=394$
    -$LK,"Msg",A="FL:::/Kernel/SrvCmd.CPP.Z,257",BI=395$
    -$LK,"OPTf_GLBLS_ON_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,1542"$
    -$LK,"KbdInit",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,424",BI=396$
    +$LK,"QueInit",A="FL:::/Kernel/KernelB.HPP,66"$
    +$LK,"SrvTaskCont",A="FL:::/Kernel/KTask.CPP.Z,336",BI=387$
    +$LK,"RS_ATTR_READ_ONLY",A="FL:::/Kernel/KernelA.HPP,2525"$
    +$LK,"ICF_USE_UNSIGNED",A="FL:::/Kernel/KernelA.HPP,1598"$
    +$LK,"ATAGetDevId",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,163",BI=388$
    +$LK,"WBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,70",BI=389$
    +$LK,"DOCT_ERROR",A="FL:::/Kernel/KernelA.HPP,942"$
    +$LK,"CopySingle",A="FL:::/Kernel/BlkDev/DskCopy.CPP.Z,23",BI=390$
    +$LK,"EXT_WIN_TO_TOP",A="FL:::/Kernel/KernelA.HPP,575"$
    +$LK,"MouseIPSet",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,195",BI=391$
    +$LK,"ATAPIReadCapacity",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,253",BI=392$
    +$LK,"MkDir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,165",BI=393$
    +$LK,"IsDir",A="FL:::/Kernel/BlkDev/DskDirB.CPP.Z,90",BI=394$
    +$LK,"SetMSR",A="FL:::/Kernel/KernelB.HPP,257"$
    +$LK,"ToI64",A="FL:::/Kernel/KernelB.HPP,121"$
    +$LK,"IET_MAIN",A="FL:::/Kernel/KernelA.HPP,415"$
    +$LK,"ScanCode2KeyName",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,248",BI=395$
    +$LK,"DOCf_INVERT",A="FL:::/Kernel/KernelA.HPP,1321"$
    +$LK,"DOCF_INVERT",A="FL:::/Kernel/KernelA.HPP,1284"$
    +$LK,"sys_heap_limit",A="FL:::/Kernel/KernelB.HPP,193"$
    +$LK,"FileExtRem",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,10",BI=396$
    +$LK,"Tan",A="FL:::/Kernel/KernelB.HPP,118"$
    +$LK,"SYS_PROGRESS3_MAX",A="FL:::/Kernel/KStart.CPP.Z,220"$
    +$LK,"SUF_REM_LEADING",A="FL:::/Kernel/KernelA.HPP,3790"$
    +$LK,"OPTf_USE_IMM64",A="FL:::/Kernel/KernelA.HPP,1547"$
    +$LK,"Raw",A="FL:::/Kernel/KMisc.CPP.Z,238",BI=397$
    +$LK,"Msg",A="FL:::/Kernel/SrvCmd.CPP.Z,257",BI=398$
    +$LK,"OPTf_GLBLS_ON_DATA_HEAP",A="FL:::/Kernel/KernelA.HPP,1544"$
    +$LK,"KbdInit",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,424",BI=399$
     $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,3285"$
    -$LK,"IRQMouse",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,13",BI=397$
    +$LK,"ToBool",A="FL:::/Kernel/KernelB.HPP,119"$
    +$LK,"TASKf_KILL_AFTER_DBG",A="FL:::/Kernel/KernelA.HPP,3291"$
    +$LK,"IRQMouse",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,13",BI=400$
     $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=398$
    +$LK,"ATAPIStartStop",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,144",BI=401$
     $LK,"_SIGN",A="FL:::/Kernel/KMathA.CPP.Z,347"$
    -$LK,"REGT_R8",A="FL:::/Kernel/KernelA.HPP,737"$
    -$LK,"log10_2",A="FL:::/Kernel/KernelA.HPP,53"$
    -$LK,"PrintErr",A="FL:::/Kernel/StrPrint.CPP.Z,923",BI=399$
    -$LK,"ROPF_TWO_SIDED",A="FL:::/Kernel/KernelA.HPP,2941"$
    -$LK,"BDF_READ_CACHE",A="FL:::/Kernel/KernelA.HPP,2638"$
    -$LK,"SCF_INS",A="FL:::/Kernel/KernelA.HPP,3542"$
    -$LK,"CPUf_RAN_A_TASK",A="FL:::/Kernel/KernelA.HPP,3433"$
    -$LK,"BDf_READ_CACHE",A="FL:::/Kernel/KernelA.HPP,2648"$
    -$LK,"Snd",A="FL:::/Kernel/KMisc.CPP.Z,158",BI=400$
    +$LK,"REGT_R8",A="FL:::/Kernel/KernelA.HPP,739"$
    +$LK,"log10_2",A="FL:::/Kernel/KernelA.HPP,54"$
    +$LK,"PrintErr",A="FL:::/Kernel/StrPrint.CPP.Z,923",BI=402$
    +$LK,"ROPF_TWO_SIDED",A="FL:::/Kernel/KernelA.HPP,2947"$
    +$LK,"BDF_READ_CACHE",A="FL:::/Kernel/KernelA.HPP,2640"$
    +$LK,"SCF_INS",A="FL:::/Kernel/KernelA.HPP,3548"$
    +$LK,"CPUf_RAN_A_TASK",A="FL:::/Kernel/KernelA.HPP,3439"$
    +$LK,"BDf_READ_CACHE",A="FL:::/Kernel/KernelA.HPP,2650"$
    +$LK,"Snd",A="FL:::/Kernel/KMisc.CPP.Z,158",BI=403$
     $LK,"SPF_PAD_ZERO",A="FL:::/Kernel/StrPrint.CPP.Z,1"$
    -$LK,"GetChar",A="FL:::/Kernel/SerialDev/Message.CPP.Z,182",BI=401$
    -$LK,"Sin",A="FL:::/Kernel/KernelB.HPP,104"$
    -$LK,"TK_OR_OR",A="FL:::/Kernel/KernelA.HPP,2087"$
    +$LK,"GetChar",A="FL:::/Kernel/SerialDev/Message.CPP.Z,182",BI=404$
    +$LK,"Sin",A="FL:::/Kernel/KernelB.HPP,105"$
    +$LK,"TK_OR_OR",A="FL:::/Kernel/KernelA.HPP,2089"$
     $LK,"SYS_PCIBIOS_SERVICE_CALL",A="FL:::/Kernel/PCIBIOS.CPP.Z,46"$
    -$LK,"Now",A="FL:::/Kernel/KDate.CPP.Z,191",BI=402$
    -$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,3269"$
    -$LK,"WIf_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HPP,1453"$
    -$LK,"IA32_EFER",A="FL:::/Kernel/KernelA.HPP,519"$
    -$LK,"SetRSP",A="FL:::/Kernel/KernelB.HPP,250"$
    -$LK,"Pop",A="FL:::/Kernel/KernelB.HPP,245"$
    -$LK,"sys_progresses",A="FL:::/Kernel/KernelB.HPP,223"$
    -$LK,"CMenuEntry",A="FL:::/Kernel/KernelA.HPP,3130"$
    -$LK,"OC_NOP2",A="FL:::/Kernel/KernelA.HPP,1762"$
    -$LK,"DOCT_RIGHT_MARGIN",A="FL:::/Kernel/KernelA.HPP,908"$
    +$LK,"Now",A="FL:::/Kernel/KDate.CPP.Z,191",BI=405$
    +$LK,"Fldcw",A="FL:::/Kernel/KernelB.HPP,130"$
    +$LK,"TTS_ED_FILENAME",A="FL:::/Kernel/KernelA.HPP,3275"$
    +$LK,"WIf_FOCUS_TASK_BORDER",A="FL:::/Kernel/KernelA.HPP,1455"$
    +$LK,"IA32_EFER",A="FL:::/Kernel/KernelA.HPP,521"$
    +$LK,"SetRSP",A="FL:::/Kernel/KernelB.HPP,249"$
    +$LK,"Pop",A="FL:::/Kernel/KernelB.HPP,244"$
    +$LK,"sys_progresses",A="FL:::/Kernel/KernelB.HPP,222"$
    +$LK,"CMenuEntry",A="FL:::/Kernel/KernelA.HPP,3136"$
    +$LK,"OC_NOP2",A="FL:::/Kernel/KernelA.HPP,1764"$
    +$LK,"DOCT_RIGHT_MARGIN",A="FL:::/Kernel/KernelA.HPP,910"$
     $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,307"$
    -$LK,"SYS_PROGRESS4_MAX",A="FL:::/Kernel/KStart.CPP.Z,218"$
    -$LK,"SUF_TO_UPPER",A="FL:::/Kernel/KernelA.HPP,3787"$
    -$LK,"MBR_PT_REDSEA",A="FL:::/Kernel/KernelA.HPP,2700"$
    -$LK,"MBR_PT_NTFS",A="FL:::/Kernel/KernelA.HPP,2699"$
    -$LK,"MouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,158",BI=403$
    -$LK,"SCF_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3539"$
    -$LK,"SCf_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3524"$
    -$LK,"MSG_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3221"$
    -$LK,"LAPIC_TASK_PRIORITY",A="FL:::/Kernel/KernelA.HPP,479"$
    -$LK,"REGT_MM",A="FL:::/Kernel/KernelA.HPP,743"$
    -$LK,"DOCEf_POPUP",A="FL:::/Kernel/KernelA.HPP,1103"$
    -$LK,"DOCEF_POPUP",A="FL:::/Kernel/KernelA.HPP,1017"$
    -$LK,"SYS_SEMA_VGA",A="FL:::/Kernel/KernelA.HPP,605"$
    -$LK,"ODEF_PAUSED",A="FL:::/Kernel/KernelA.HPP,240"$
    -$LK,"FATNameXSum",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,157",BI=404$
    +$LK,"RFLAGf_PARITY",A="FL:::/Kernel/KernelA.HPP,308"$
    +$LK,"SYS_PROGRESS4_MAX",A="FL:::/Kernel/KStart.CPP.Z,223"$
    +$LK,"SUF_TO_UPPER",A="FL:::/Kernel/KernelA.HPP,3794"$
    +$LK,"MBR_PT_REDSEA",A="FL:::/Kernel/KernelA.HPP,2705"$
    +$LK,"MBR_PT_NTFS",A="FL:::/Kernel/KernelA.HPP,2704"$
    +$LK,"MouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,158",BI=406$
    +$LK,"SCF_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3545"$
    +$LK,"SCf_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3530"$
    +$LK,"MSG_IP_L_DOWN",A="FL:::/Kernel/KernelA.HPP,3227"$
    +$LK,"LAPIC_TASK_PRIORITY",A="FL:::/Kernel/KernelA.HPP,481"$
    +$LK,"REGT_MM",A="FL:::/Kernel/KernelA.HPP,745"$
    +$LK,"DOCEf_POPUP",A="FL:::/Kernel/KernelA.HPP,1105"$
    +$LK,"DOCEF_POPUP",A="FL:::/Kernel/KernelA.HPP,1019"$
    +$LK,"SYS_SEMA_VGA",A="FL:::/Kernel/KernelA.HPP,607"$
    +$LK,"ODEF_PAUSED",A="FL:::/Kernel/KernelA.HPP,241"$
    +$LK,"FATNameXSum",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,157",BI=407$
     $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,1415"$
    -$LK,"DOCF_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HPP,1290"$
    -$LK,"MStrUtil",A="FL:::/Kernel/StrB.CPP.Z,58",BI=405$
    +$LK,"Pow",A="FL:::/Kernel/KernelB.HPP,137"$
    +$LK,"sys_boot_patch_table_base",A="FL:::/Kernel/KernelB.HPP,39"$
    +$LK,"WIF_SELF_BORDER",A="FL:::/Kernel/KernelA.HPP,1417"$
    +$LK,"DOCF_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HPP,1292"$
    +$LK,"MStrUtil",A="FL:::/Kernel/StrB.CPP.Z,58",BI=408$
     $LK,"_D3_CROSS",A="FL:::/Kernel/KMathA.CPP.Z,82"$
    -$LK,"VGAP_INPUT_STAT",A="FL:::/Kernel/KernelA.HPP,3731"$
    -$LK,"DOCf_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HPP,1327"$
    -$LK,"SYS_HEAP_LIMIT",A="FL:::/Kernel/KStart.CPP.Z,185"$
    -$LK,"WIf_SELF_BORDER",A="FL:::/Kernel/KernelA.HPP,1441"$
    +$LK,"VGAP_INPUT_STAT",A="FL:::/Kernel/KernelA.HPP,3738"$
    +$LK,"DOCf_UNDO_DIRTY",A="FL:::/Kernel/KernelA.HPP,1329"$
    +$LK,"SYS_HEAP_LIMIT",A="FL:::/Kernel/KStart.CPP.Z,190"$
    +$LK,"WIf_SELF_BORDER",A="FL:::/Kernel/KernelA.HPP,1443"$
     $LK,"text",A="FL:::/Kernel/KGlbls.CPP.Z,29"$
    -$LK,"ATA_READ_NATIVE_MAX_EXT",A="FL:::/Kernel/KernelA.HPP,2259"$
    -$LK,"MPrintQ",A="FL:::/Kernel/StrPrint.CPP.Z,69",BI=406$
    +$LK,"ATA_READ_NATIVE_MAX_EXT",A="FL:::/Kernel/KernelA.HPP,2262"$
    +$LK,"MPrintQ",A="FL:::/Kernel/StrPrint.CPP.Z,69",BI=409$
     $LK,"MHeapCtrl",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,386"$
    -$LK,"RECALCt_FIND_CURSOR",A="FL:::/Kernel/KernelA.HPP,1344"$
    -$LK,"SYS_SEMA_SND",A="FL:::/Kernel/KernelA.HPP,596"$
    -$LK,"CCF_RAX",A="FL:::/Kernel/KernelA.HPP,2153"$
    -$LK,"DskCacheInvalidate",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,181",BI=407$
    -$LK,"DOCG_BL_IV_UL",A="FL:::/Kernel/KernelA.HPP,949"$
    +$LK,"CCF_CMD_LINE",A="FL:::/Kernel/KernelA.HPP,2127"$
    +$LK,"RECALCt_FIND_CURSOR",A="FL:::/Kernel/KernelA.HPP,1346"$
    +$LK,"SYS_SEMA_SND",A="FL:::/Kernel/KernelA.HPP,598"$
    +$LK,"CCF_RAX",A="FL:::/Kernel/KernelA.HPP,2156"$
    +$LK,"DskCacheInvalidate",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,194",BI=410$
    +$LK,"DOCG_BL_IV_UL",A="FL:::/Kernel/KernelA.HPP,951"$
     $LK,"HashSingleTableFind",A="FL:::/Kernel/KHashA.CPP.Z,257"$
    -$LK,"sys_data_bp",A="FL:::/Kernel/KernelB.HPP,190"$
    -$LK,"SYS_PCI_BUSES",A="FL:::/Kernel/KStart.CPP.Z,51"$
    -$LK,"sys_heap_base",A="FL:::/Kernel/KernelB.HPP,193"$
    +$LK,"sys_data_bp",A="FL:::/Kernel/KernelB.HPP,189"$
    +$LK,"SYS_PCI_BUSES",A="FL:::/Kernel/KStart.CPP.Z,38"$
    +$LK,"sys_heap_base",A="FL:::/Kernel/KernelB.HPP,192"$
     $LK,"_CLAMP_I64",A="FL:::/Kernel/KUtils.CPP.Z,121"$
    -$LK,"VGAP_MISC_OUTPUT",A="FL:::/Kernel/KernelA.HPP,3722"$
    -$LK,"BDf_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HPP,2646"$
    -$LK,"Spaces2Tabs",A="FL:::/Kernel/StrA.CPP.Z,477",BI=408$
    -$LK,"Drv2Let",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,129",BI=409$
    -$LK,"ROPBF_TWO_SIDED",A="FL:::/Kernel/KernelA.HPP,2929"$
    -$LK,"MEM_E820_ENTRY_SIZE",A="FL:::/Kernel/KernelA.HPP,356"$
    -$LK,"KDRawPutS",A="FL:::/Kernel/KeyDev.CPP.Z,95",BI=410$
    -$LK,"Sqr",A="FL:::/Kernel/KernelB.HPP,105"$
    -$LK,"REG_RDI",A="FL:::/Kernel/KernelA.HPP,1781"$
    -$LK,"REG_ALLOC",A="FL:::/Kernel/KernelA.HPP,1786"$
    -$LK,"DOCf_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1325"$
    -$LK,"SrvCmdsHandler",A="FL:::/Kernel/SrvCmd.CPP.Z,350",BI=411$
    -$LK,"progress1_max",A="FL:::/Kernel/KernelB.HPP,209"$
    -$LK,"CCF_ARRAY",A="FL:::/Kernel/KernelA.HPP,2152"$
    -$LK,"REG_RBP",A="FL:::/Kernel/KernelA.HPP,1779"$
    -$LK,"DOCEF_FILTER_SKIP",A="FL:::/Kernel/KernelA.HPP,1019"$
    -$LK,"FifoU8Flush",A="FL:::/Kernel/KDataTypes.CPP.Z,219",BI=412$
    -$LK,"MSG_MOVE",A="FL:::/Kernel/KernelA.HPP,3231"$
    -$LK,"SYS_PROGRESSES",A="FL:::/Kernel/KStart.CPP.Z,208"$
    -$LK,"SUF_REM_SPACES",A="FL:::/Kernel/KernelA.HPP,3785"$
    -$LK,"CCF_PMT",A="FL:::/Kernel/KernelA.HPP,2125"$
    -$LK,"DOCEf_FILTER_SKIP",A="FL:::/Kernel/KernelA.HPP,1105"$
    -$LK,"DskCacheHash",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,40",BI=413$
    -$LK,"SCF_NUM",A="FL:::/Kernel/KernelA.HPP,3536"$
    -$LK,"ACD_DEF_FILENAME",A="FL:::/Kernel/KernelA.HPP,1498"$
    +$LK,"VGAP_MISC_OUTPUT",A="FL:::/Kernel/KernelA.HPP,3729"$
    +$LK,"BDf_READ_ONLY_OVERRIDE",A="FL:::/Kernel/KernelA.HPP,2648"$
    +$LK,"Spaces2Tabs",A="FL:::/Kernel/StrA.CPP.Z,477",BI=411$
    +$LK,"Drv2Let",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,138",BI=412$
    +$LK,"ROPBF_TWO_SIDED",A="FL:::/Kernel/KernelA.HPP,2935"$
    +$LK,"MEM_E820_ENTRY_SIZE",A="FL:::/Kernel/KernelA.HPP,357"$
    +$LK,"KDRawPutS",A="FL:::/Kernel/KeyDev.CPP.Z,97",BI=413$
    +$LK,"Sqr",A="FL:::/Kernel/KernelB.HPP,106"$
    +$LK,"BDT_FILE",A="FL:::/Kernel/KernelA.HPP,2631"$
    +$LK,"REG_RDI",A="FL:::/Kernel/KernelA.HPP,1783"$
    +$LK,"REG_ALLOC",A="FL:::/Kernel/KernelA.HPP,1788"$
    +$LK,"DOCf_SUPERSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1327"$
    +$LK,"SrvCmdsHandler",A="FL:::/Kernel/SrvCmd.CPP.Z,350",BI=414$
    +$LK,"progress1_max",A="FL:::/Kernel/KernelB.HPP,208"$
    +$LK,"CCF_ARRAY",A="FL:::/Kernel/KernelA.HPP,2155"$
    +$LK,"REG_RBP",A="FL:::/Kernel/KernelA.HPP,1781"$
    +$LK,"DOCEF_FILTER_SKIP",A="FL:::/Kernel/KernelA.HPP,1021"$
    +$LK,"FifoU8Flush",A="FL:::/Kernel/KDataTypes.CPP.Z,219",BI=415$
    +$LK,"MSG_MOVE",A="FL:::/Kernel/KernelA.HPP,3237"$
    +$LK,"SYS_PROGRESSES",A="FL:::/Kernel/KStart.CPP.Z,213"$
    +$LK,"SUF_REM_SPACES",A="FL:::/Kernel/KernelA.HPP,3792"$
    +$LK,"CCF_PMT",A="FL:::/Kernel/KernelA.HPP,2128"$
    +$LK,"DOCEf_FILTER_SKIP",A="FL:::/Kernel/KernelA.HPP,1107"$
    +$LK,"DskCacheHash",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,40",BI=416$
    +$LK,"SCF_NUM",A="FL:::/Kernel/KernelA.HPP,3542"$
    +$LK,"ACD_DEF_FILENAME",A="FL:::/Kernel/KernelA.HPP,1500"$
     $LK,"fp_doc_put",A="FL:::/Kernel/KGlbls.CPP.Z,33"$
    -$LK,"DskCacheFind",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,64",BI=414$
    -$LK,"IsRaw",A="FL:::/Kernel/KMisc.CPP.Z,245",BI=415$
    -$LK,"TK_DBL_COLON",A="FL:::/Kernel/KernelA.HPP,2079"$
    -$LK,"ATAPIReadTrackInfo",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,277",BI=416$
    -$LK,"CATARep",A="FL:::/Kernel/KernelA.HPP,2248"$
    -$LK,"REG_RAX",A="FL:::/Kernel/KernelA.HPP,1774"$
    -$LK,"ATAReadBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,350",BI=417$
    -$LK,"D3AddEqu",A="FL:::/Kernel/KernelB.HPP,147"$
    -$LK,"ToUpper",A="FL:::/Kernel/KernelB.HPP,57"$
    -$LK,"REG_RBX",A="FL:::/Kernel/KernelA.HPP,1777"$
    +$LK,"DskCacheFind",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,64",BI=417$
    +$LK,"IsRaw",A="FL:::/Kernel/KMisc.CPP.Z,245",BI=418$
    +$LK,"TK_DBL_COLON",A="FL:::/Kernel/KernelA.HPP,2081"$
    +$LK,"ATAPIReadTrackInfo",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,277",BI=419$
    +$LK,"CATARep",A="FL:::/Kernel/KernelA.HPP,2251"$
    +$LK,"REG_RAX",A="FL:::/Kernel/KernelA.HPP,1776"$
    +$LK,"ATAReadBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,350",BI=420$
    +$LK,"D3AddEqu",A="FL:::/Kernel/KernelB.HPP,146"$
    +$LK,"ToUpper",A="FL:::/Kernel/KernelB.HPP,58"$
    +$LK,"REG_RBX",A="FL:::/Kernel/KernelA.HPP,1779"$
     $LK,"SCR_DONE",A="FL:::/Kernel/SrvCmd.CPP.Z,263"$
    -$LK,"Fxsave",A="FL:::/Kernel/KernelB.HPP,134"$
    -$LK,"MDG_MASK",A="FL:::/Kernel/KernelA.HPP,1584"$
    -$LK,"ACD_EXTRA_CHAR",A="FL:::/Kernel/KernelA.HPP,1518"$
    -$LK,"Reboot",A="FL:::/Kernel/KEnd.CPP.Z,117",BI=418$
    +$LK,"MDG_MASK",A="FL:::/Kernel/KernelA.HPP,1586"$
    +$LK,"ACD_EXTRA_CHAR",A="FL:::/Kernel/KernelA.HPP,1520"$
    +$LK,"Reboot",A="FL:::/Kernel/KEnd.CPP.Z,122",BI=421$
     $LK,"acd",A="FL:::/Kernel/KGlbls.CPP.Z,17"$
    -$LK,"TK_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,2107"$
    -$LK,"REG_RCX",A="FL:::/Kernel/KernelA.HPP,1775"$
    -$LK,"Ff_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,851"$
    -$LK,"CHashClass",A="FL:::/Kernel/KernelA.HPP,831"$
    +$LK,"TK_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,2109"$
    +$LK,"REG_RCX",A="FL:::/Kernel/KernelA.HPP,1777"$
    +$LK,"Ff_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,853"$
    +$LK,"CHashClass",A="FL:::/Kernel/KernelA.HPP,833"$
     $LK,"ZERO_BUF_SIZE",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,1"$
    -$LK,"LoadKernel",A="FL:::/Kernel/KLoad.CPP.Z,240",BI=419$
    -$LK,"SCF_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3531"$
    -$LK,"SCf_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3516"$
    -$LK,"MSG_IP_R_D_DOWN",A="FL:::/Kernel/KernelA.HPP,3227"$
    -$LK,"ICF_BY_VAL",A="FL:::/Kernel/KernelA.HPP,1600"$
    -$LK,"REG_RDX",A="FL:::/Kernel/KernelA.HPP,1776"$
    -$LK,"ATAPIReadBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,413",BI=420$
    -$LK,"REG_RIP",A="FL:::/Kernel/KernelA.HPP,1783"$
    -$LK,"DOCEF_FROM_START",A="FL:::/Kernel/KernelA.HPP,999"$
    -$LK,"SEMA_STRUCT_SIZE",A="FL:::/Kernel/KernelA.HPP,582"$
    +$LK,"LoadKernel",A="FL:::/Kernel/KLoad.CPP.Z,240",BI=422$
    +$LK,"SCF_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3537"$
    +$LK,"SCf_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3522"$
    +$LK,"MSG_IP_R_D_DOWN",A="FL:::/Kernel/KernelA.HPP,3233"$
    +$LK,"ICF_BY_VAL",A="FL:::/Kernel/KernelA.HPP,1602"$
    +$LK,"REG_RDX",A="FL:::/Kernel/KernelA.HPP,1778"$
    +$LK,"ATAPIReadBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,413",BI=423$
    +$LK,"REG_RIP",A="FL:::/Kernel/KernelA.HPP,1785"$
    +$LK,"DOCEF_FROM_START",A="FL:::/Kernel/KernelA.HPP,1001"$
    +$LK,"SEMA_STRUCT_SIZE",A="FL:::/Kernel/KernelA.HPP,584"$
     $LK,"SCR_CONT",A="FL:::/Kernel/SrvCmd.CPP.Z,264"$
    -$LK,"progress2_max",A="FL:::/Kernel/KernelB.HPP,213"$
    -$LK,"DOCEf_FROM_START",A="FL:::/Kernel/KernelA.HPP,1087"$
    -$LK,"SYS_SEMA_TMBEAT",A="FL:::/Kernel/KernelA.HPP,611"$
    -$LK,"RLF_WINMGR",A="FL:::/Kernel/KernelA.HPP,468"$
    -$LK,"RLf_WINMGR",A="FL:::/Kernel/KernelA.HPP,449"$
    -$LK,"SUF_SCALE_INDENT",A="FL:::/Kernel/KernelA.HPP,3791"$
    -$LK,"CT_7_BIT",A="FL:::/Kernel/KernelA.HPP,3740"$
    -$LK,"PUSH_REGS",A="FL:::/Kernel/KernelA.HPP,1767"$
    -$LK,"MAX_I8",A="FL:::/Kernel/KernelA.HPP,23"$
    -$LK,"KbdMouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,236",BI=421$
    -$LK,"Color2Str",A="FL:::/Kernel/KDefine.CPP.Z,126",BI=422$
    -$LK,"MAllocIdent",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,407",BI=423$
    -$LK,"EDF_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1245"$
    -$LK,"LAPIC_DFR",A="FL:::/Kernel/KernelA.HPP,484"$
    -$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,3216"$
    -$LK,"CCF_QUESTION_HELP",A="FL:::/Kernel/KernelA.HPP,2127"$
    -$LK,"EDf_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1251"$
    -$LK,"MPrintq",A="FL:::/Kernel/StrPrint.CPP.Z,128",BI=425$
    -$LK,"AMAllocIdent",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,418",BI=426$
    -$LK,"MEM_DFT_STK",A="FL:::/Kernel/KernelA.HPP,2879"$
    -$LK,"SYS_FOCUS_TASK",A="FL:::/Kernel/KStart.CPP.Z,222"$
    -$LK,"DYING_JIFFIES",A="FL:::/Kernel/KernelA.HPP,3305"$
    +$LK,"progress2_max",A="FL:::/Kernel/KernelB.HPP,212"$
    +$LK,"DOCEf_FROM_START",A="FL:::/Kernel/KernelA.HPP,1089"$
    +$LK,"SYS_SEMA_TMBEAT",A="FL:::/Kernel/KernelA.HPP,613"$
    +$LK,"RLF_WINMGR",A="FL:::/Kernel/KernelA.HPP,470"$
    +$LK,"RLf_WINMGR",A="FL:::/Kernel/KernelA.HPP,451"$
    +$LK,"SUF_SCALE_INDENT",A="FL:::/Kernel/KernelA.HPP,3798"$
    +$LK,"CT_7_BIT",A="FL:::/Kernel/KernelA.HPP,3747"$
    +$LK,"PUSH_REGS",A="FL:::/Kernel/KernelA.HPP,1769"$
    +$LK,"MAX_I8",A="FL:::/Kernel/KernelA.HPP,24"$
    +$LK,"KbdMouseHandler",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,236",BI=424$
    +$LK,"Color2Str",A="FL:::/Kernel/KDefine.CPP.Z,126",BI=425$
    +$LK,"MAllocIdent",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,407",BI=426$
    +$LK,"EDF_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1247"$
    +$LK,"LAPIC_DFR",A="FL:::/Kernel/KernelA.HPP,486"$
    +$LK,"CDATE_BASE_DAY_OF_WEEK",A="FL:::/Kernel/KernelA.HPP,184"$
    +$LK,"StrFirstOcc",A="FL:::/Kernel/StrA.CPP.Z,572",BI=427$
    +$LK,"MSG_NULL",A="FL:::/Kernel/KernelA.HPP,3222"$
    +$LK,"CCF_QUESTION_HELP",A="FL:::/Kernel/KernelA.HPP,2130"$
    +$LK,"EDf_COLLAPSE",A="FL:::/Kernel/KernelA.HPP,1253"$
    +$LK,"MPrintq",A="FL:::/Kernel/StrPrint.CPP.Z,128",BI=428$
    +$LK,"AMAllocIdent",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,418",BI=429$
    +$LK,"MEM_DFT_STK",A="FL:::/Kernel/KernelA.HPP,2885"$
    +$LK,"sys_font_cyrillic",A="FL:::/Kernel/FontCyrillic.CPP.Z,3"$
    +$LK,"SYS_FOCUS_TASK",A="FL:::/Kernel/KStart.CPP.Z,227"$
    +$LK,"DYING_JIFFIES",A="FL:::/Kernel/KernelA.HPP,3311"$
     $LK,"dbg",A="FL:::/Kernel/KGlbls.CPP.Z,21"$
    -$LK,"QSort",A="FL:::/Kernel/QSort.CPP.Z,85",BI=427$
    -$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,610"$
    -$LK,"LAPIC_ICR_HIGH",A="FL:::/Kernel/KernelA.HPP,494"$
    -$LK,"LMF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HPP,3801"$
    -$LK,"SFF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HPP,3795"$
    +$LK,"QSort",A="FL:::/Kernel/QSort.CPP.Z,85",BI=430$
    +$LK,"OutU32",A="FL:::/Kernel/KernelB.HPP,79"$
    +$LK,"OutU16",A="FL:::/Kernel/KernelB.HPP,78"$
    +$LK,"SYS_SEMA_JUST_PUMP_MSGS",A="FL:::/Kernel/KernelA.HPP,612"$
    +$LK,"LAPIC_ICR_HIGH",A="FL:::/Kernel/KernelA.HPP,496"$
    +$LK,"LMF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HPP,3808"$
    +$LK,"SFF_IGNORE_CASE",A="FL:::/Kernel/KernelA.HPP,3802"$
     $LK,"HashRemDel",A="FL:::/Kernel/KHashA.CPP.Z,264"$
    -$LK,"REG_RSI",A="FL:::/Kernel/KernelA.HPP,1780"$
    +$LK,"REG_RSI",A="FL:::/Kernel/KernelA.HPP,1782"$
     $LK,"HashAdd",A="FL:::/Kernel/KHashA.CPP.Z,262"$
    -$LK,"mp_cnt_lock",A="FL:::/Kernel/KernelB.HPP,230"$
    -$LK,"MLF_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,776"$
    -$LK,"IsSuspended",A="FL:::/Kernel/KTask.CPP.Z,59",BI=428$
    -$LK,"CAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,395",BI=429$
    -$LK,"BDF_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2634"$
    -$LK,"ATAR0_SELECT",A="FL:::/Kernel/KernelA.HPP,2280"$
    -$LK,"CAsmUnresolvedRef",A="FL:::/Kernel/KernelA.HPP,1854"$
    -$LK,"BDf_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2644"$
    -$LK,"DOCT_SPRITE",A="FL:::/Kernel/KernelA.HPP,934"$
    -$LK,"WClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,92",BI=430$
    -$LK,"RClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,46",BI=431$
    +$LK,"mp_cnt_lock",A="FL:::/Kernel/KernelB.HPP,229"$
    +$LK,"MLF_DOT_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,778"$
    +$LK,"IsSuspended",A="FL:::/Kernel/KTask.CPP.Z,59",BI=431$
    +$LK,"CAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,395",BI=432$
    +$LK,"BDF_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2636"$
    +$LK,"CAsmUnresolvedRef",A="FL:::/Kernel/KernelA.HPP,1856"$
    +$LK,"BDf_INITIALIZED",A="FL:::/Kernel/KernelA.HPP,2646"$
    +$LK,"DOCT_SPRITE",A="FL:::/Kernel/KernelA.HPP,936"$
    +$LK,"WClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,92",BI=433$
    +$LK,"RClustersBlks",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,46",BI=434$
     $LK,"sys_neg_pows_lets",A="FL:::/Kernel/StrPrint.CPP.Z,212"$
    -$LK,"progress3_max",A="FL:::/Kernel/KernelB.HPP,217"$
    -$LK,"SqrI64",A="FL:::/Kernel/KernelB.HPP,106"$
    -$LK,"BDF_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,2640"$
    -$LK,"OPTF_ECHO",A="FL:::/Kernel/KernelA.HPP,1547"$
    -$LK,"OPTf_ECHO",A="FL:::/Kernel/KernelA.HPP,1534"$
    -$LK,"LAPIC_EOI",A="FL:::/Kernel/KernelA.HPP,482"$
    +$LK,"progress3_max",A="FL:::/Kernel/KernelB.HPP,216"$
    +$LK,"SqrI64",A="FL:::/Kernel/KernelB.HPP,107"$
    +$LK,"BDF_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,2642"$
    +$LK,"OPTF_ECHO",A="FL:::/Kernel/KernelA.HPP,1549"$
    +$LK,"OPTf_ECHO",A="FL:::/Kernel/KernelA.HPP,1536"$
    +$LK,"LAPIC_EOI",A="FL:::/Kernel/KernelA.HPP,484"$
     $LK,"sys_pos_pows_lets",A="FL:::/Kernel/StrPrint.CPP.Z,211"$
    -$LK,"QueSize",A="FL:::/Kernel/KDataTypes.CPP.Z,76",BI=432$
    -$LK,"C:/Doc/Que.TXT.Z",A="FL:::/Kernel/KernelB.HPP,64"$
    -$LK,"CT_8_BIT",A="FL:::/Kernel/KernelA.HPP,3741"$
    -$LK,"REG_RSP",A="FL:::/Kernel/KernelA.HPP,1778"$
    -$LK,"CtrlAltDel",A="FL:::/Kernel/KeyDev.CPP.Z,126",BI=433$
    -$LK,"CTRLF_CAPTURE_LEFT_IP",A="FL:::/Kernel/KernelA.HPP,3085"$
    -$LK,"LFSF_DEFINE",A="FL:::/Kernel/KernelA.HPP,2034"$
    -$LK,"BLK_SIZE_BITS",A="FL:::/Kernel/KernelA.HPP,2293"$
    -$LK,"AOT_BIN_BLK_BITS",A="FL:::/Kernel/KernelA.HPP,1795"$
    -$LK,"HTT_FUN",A="FL:::/Kernel/KernelA.HPP,686"$
    -$LK,"I_DIV_ZERO",A="FL:::/Kernel/KernelA.HPP,285"$
    -$LK,"SrvCtrlInit",A="FL:::/Kernel/SrvCmd.CPP.Z,18",BI=434$
    -$LK,"DOCEF_DEFINE",A="FL:::/Kernel/KernelA.HPP,966"$
    +$LK,"QueSize",A="FL:::/Kernel/KDataTypes.CPP.Z,76",BI=435$
    +$LK,"C:/Doc/Que.TXT.Z",A="FL:::/Kernel/KernelB.HPP,65"$
    +$LK,"CT_8_BIT",A="FL:::/Kernel/KernelA.HPP,3748"$
    +$LK,"REG_RSP",A="FL:::/Kernel/KernelA.HPP,1780"$
    +$LK,"CtrlAltDel",A="FL:::/Kernel/KeyDev.CPP.Z,128",BI=436$
    +$LK,"CTRLF_CAPTURE_LEFT_IP",A="FL:::/Kernel/KernelA.HPP,3091"$
    +$LK,"LFSF_DEFINE",A="FL:::/Kernel/KernelA.HPP,2036"$
    +$LK,"BLK_SIZE_BITS",A="FL:::/Kernel/KernelA.HPP,2296"$
    +$LK,"AOT_BIN_BLK_BITS",A="FL:::/Kernel/KernelA.HPP,1797"$
    +$LK,"HTT_FUN",A="FL:::/Kernel/KernelA.HPP,688"$
    +$LK,"I_DIV_ZERO",A="FL:::/Kernel/KernelA.HPP,286"$
    +$LK,"SrvCtrlInit",A="FL:::/Kernel/SrvCmd.CPP.Z,18",BI=437$
    +$LK,"DOCEF_DEFINE",A="FL:::/Kernel/KernelA.HPP,968"$
     $LK,"SPF_LEFT_JUSTIFY",A="FL:::/Kernel/StrPrint.CPP.Z,2"$
    -$LK,"DOCEf_DEFINE",A="FL:::/Kernel/KernelA.HPP,1054"$
    -$LK,"HeapCtrlInit",A="FL:::/Kernel/Mem/HeapCtrl.CPP.Z,1",BI=435$
    -$LK,"progress1",A="FL:::/Kernel/KernelB.HPP,206"$
    -$LK,"Floor",A="FL:::/Kernel/KernelB.HPP,130"$
    -$LK,"CIPStateGlbls",A="FL:::/Kernel/KernelA.HPP,3036"$
    -$LK,"SYSf_CTRL_ALT_C",A="FL:::/Kernel/KernelA.HPP,616"$
    -$LK,"progress2",A="FL:::/Kernel/KernelB.HPP,210"$
    +$LK,"DOCEf_DEFINE",A="FL:::/Kernel/KernelA.HPP,1056"$
    +$LK,"HeapCtrlInit",A="FL:::/Kernel/Mem/HeapCtrl.CPP.Z,1",BI=438$
    +$LK,"progress1",A="FL:::/Kernel/KernelB.HPP,205"$
    +$LK,"Floor",A="FL:::/Kernel/KernelB.HPP,131"$
    +$LK,"CIPStateGlbls",A="FL:::/Kernel/KernelA.HPP,3042"$
    +$LK,"SYSf_CTRL_ALT_C",A="FL:::/Kernel/KernelA.HPP,618"$
    +$LK,"progress2",A="FL:::/Kernel/KernelB.HPP,209"$
     $LK,"_CLAMP_U64",A="FL:::/Kernel/KUtils.CPP.Z,133"$
    -$LK,"progress3",A="FL:::/Kernel/KernelB.HPP,214"$
    -$LK,"MPN_VECT",A="FL:::/Kernel/KernelA.HPP,503"$
    -$LK,"MAX_U8",A="FL:::/Kernel/KernelA.HPP,25"$
    +$LK,"progress3",A="FL:::/Kernel/KernelB.HPP,213"$
    +$LK,"MPN_VECT",A="FL:::/Kernel/KernelA.HPP,505"$
    +$LK,"MAX_U8",A="FL:::/Kernel/KernelA.HPP,26"$
     $LK,"RAWDR_COL",A="FL:::/Kernel/KDbg.CPP.Z,289"$
    -$LK,"progress4",A="FL:::/Kernel/KernelB.HPP,218"$
    -$LK,"CtrlAltCBSet",A="FL:::/Kernel/KeyDev.CPP.Z,176",BI=436$
    -$LK,"SysTimerRead",A="FL:::/Kernel/KMisc.CPP.Z,61",BI=437$
    +$LK,"progress4",A="FL:::/Kernel/KernelB.HPP,217"$
    +$LK,"CtrlAltCBSet",A="FL:::/Kernel/KeyDev.CPP.Z,178",BI=439$
    +$LK,"SysTimerRead",A="FL:::/Kernel/KMisc.CPP.Z,61",BI=440$
     $LK,"dev",A="FL:::/Kernel/KGlbls.CPP.Z,22"$
    -$LK,"MSG_IP_L_D_UP",A="FL:::/Kernel/KernelA.HPP,3224"$
    -$LK,"FunSegCacheFind",A="FL:::/Kernel/FunSeg.CPP.Z,114",BI=438$
    -$LK,"HTT_REG",A="FL:::/Kernel/KernelA.HPP,692"$
    -$LK,"StrFirstRem",A="FL:::/Kernel/StrA.CPP.Z,582",BI=439$
    -$LK,"SYS_VAR_INIT_VAL",A="FL:::/Home/Temp.TXT.Z,1"$
    -$LK,"DCF_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,3616"$
    -$LK,"ans",A="FL:::/Kernel/KernelA.HPP,3411"$
    -$LK,"ICF_DEL_PREV_INS",A="FL:::/Kernel/KernelA.HPP,1616"$
    -$LK,"LAPIC_LDR",A="FL:::/Kernel/KernelA.HPP,485"$
    -$LK,"BptFind",A="FL:::/Kernel/KDbg.CPP.Z,344",BI=440$
    +$LK,"MSG_IP_L_D_UP",A="FL:::/Kernel/KernelA.HPP,3230"$
    +$LK,"FunSegCacheFind",A="FL:::/Kernel/FunSeg.CPP.Z,114",BI=441$
    +$LK,"HTT_REG",A="FL:::/Kernel/KernelA.HPP,694"$
    +$LK,"StrFirstRem",A="FL:::/Kernel/StrA.CPP.Z,582",BI=442$
    +$LK,"SYS_VAR_INIT_VAL",A="FL::/Temp.TXT.Z,1"$
    +$LK,"DCF_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,3623"$
    +$LK,"ans",A="FL:::/Kernel/KernelA.HPP,3417"$
    +$LK,"ICF_DEL_PREV_INS",A="FL:::/Kernel/KernelA.HPP,1618"$
    +$LK,"LAPIC_LDR",A="FL:::/Kernel/KernelA.HPP,487"$
    +$LK,"BptFind",A="FL:::/Kernel/KDbg.CPP.Z,344",BI=443$
     $LK,"kbd",A="FL:::/Kernel/KGlbls.CPP.Z,25"$
    -$LK,"progress4_max",A="FL:::/Kernel/KernelB.HPP,221"$
    -$LK,"MouseUpdatePost",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,126",BI=441$
    -$LK,"HashDel",A="FL:::/Kernel/KHashB.CPP.Z,59",BI=442$
    -$LK,"CKbdStateGlbls",A="FL:::/Kernel/KernelA.HPP,2993"$
    -$LK,"LinkedLstCopy",A="FL:::/Kernel/KDataTypes.CPP.Z,11",BI=443$
    -$LK,"IP_NULL",A="FL:::/Kernel/KernelA.HPP,3034"$
    -$LK,"MDF_NULL",A="FL:::/Kernel/KernelA.HPP,1577"$
    -$LK,"SYS_SEMA_DEV_MEM",A="FL:::/Kernel/KernelA.HPP,604"$
    -$LK,"ICF_A1_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1605"$
    -$LK,"Let2Drv",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,149",BI=444$
    +$LK,"progress4_max",A="FL:::/Kernel/KernelB.HPP,220"$
    +$LK,"MouseUpdatePost",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,126",BI=444$
    +$LK,"HashDel",A="FL:::/Kernel/KHashB.CPP.Z,59",BI=445$
    +$LK,"CKbdStateGlbls",A="FL:::/Kernel/KernelA.HPP,2999"$
    +$LK,"sys_font_std",A="FL:::/Kernel/FontStd.CPP.Z,3"$
    +$LK,"LinkedLstCopy",A="FL:::/Kernel/KDataTypes.CPP.Z,11",BI=446$
    +$LK,"IP_NULL",A="FL:::/Kernel/KernelA.HPP,3040"$
    +$LK,"MDF_NULL",A="FL:::/Kernel/KernelA.HPP,1579"$
    +$LK,"SYS_SEMA_DEV_MEM",A="FL:::/Kernel/KernelA.HPP,606"$
    +$LK,"ICF_A1_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1607"$
    +$LK,"Let2Drv",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,160",BI=447$
     $LK,"fat_long_name_map",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,183"$
    -$LK,"DskCacheInit",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,1",BI=445$
    -$LK,"CCF_NO_ABSS",A="FL:::/Kernel/KernelA.HPP,2159"$
    -$LK,"DOC_COLOR_MACRO",A="FL:::/Kernel/KernelA.HPP,1135"$
    -$LK,"LAPIC_LOG_DST",A="FL:::/Kernel/KernelA.HPP,483"$
    -$LK,"RLF_ADAM_SERVER",A="FL:::/Kernel/KernelA.HPP,472"$
    -$LK,"RClusters",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,87",BI=446$
    -$LK,"VGAP_IDX",A="FL:::/Kernel/KernelA.HPP,3723"$
    -$LK,"ISO1CDirFill",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,116",BI=447$
    -$LK,"RLf_ADAM_SERVER",A="FL:::/Kernel/KernelA.HPP,453"$
    +$LK,"DskCacheInit",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,1",BI=448$
    +$LK,"CCF_NO_ABSS",A="FL:::/Kernel/KernelA.HPP,2162"$
    +$LK,"DOC_COLOR_MACRO",A="FL:::/Kernel/KernelA.HPP,1137"$
    +$LK,"LAPIC_LOG_DST",A="FL:::/Kernel/KernelA.HPP,485"$
    +$LK,"RLF_ADAM_SERVER",A="FL:::/Kernel/KernelA.HPP,474"$
    +$LK,"RClusters",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,87",BI=449$
    +$LK,"VGAP_IDX",A="FL:::/Kernel/KernelA.HPP,3730"$
    +$LK,"ISO1CDirFill",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,56",BI=450$
    +$LK,"RLf_ADAM_SERVER",A="FL:::/Kernel/KernelA.HPP,455"$
     $LK,"SCR_EXIT",A="FL:::/Kernel/SrvCmd.CPP.Z,265"$
    -$LK,"QueDel",A="FL:::/Kernel/KDataTypes.CPP.Z,41",BI=448$
    -$LK,"ICF_DONT_RESTORE",A="FL:::/Kernel/KernelA.HPP,1618"$
    -$LK,"RedSeaDirNew",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,350",BI=449$
    -$LK,"IET_REL64_EXPORT",A="FL:::/Kernel/KernelA.HPP,407"$
    -$LK,"IET_REL32_EXPORT",A="FL:::/Kernel/KernelA.HPP,405"$
    -$LK,"CExcept",A="FL:::/Kernel/KernelA.HPP,3156"$
    -$LK,"QueInsRev",A="FL:::/Kernel/KernelB.HPP,69"$
    -$LK,"SYSf_CTRL_ALT_X",A="FL:::/Kernel/KernelA.HPP,617"$
    -$LK,"SYS_EXTERN_TABLE",A="FL:::/Kernel/KStart.CPP.Z,202"$
    -$LK,"FUF_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HPP,2612"$
    -$LK,"DOCT_HTML_CODE",A="FL:::/Kernel/KernelA.HPP,939"$
    -$LK,"LAPIC_IRR",A="FL:::/Kernel/KernelA.HPP,492"$
    +$LK,"QueDel",A="FL:::/Kernel/KDataTypes.CPP.Z,41",BI=451$
    +$LK,"ICF_DONT_RESTORE",A="FL:::/Kernel/KernelA.HPP,1620"$
    +$LK,"RedSeaDirNew",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,352",BI=452$
    +$LK,"IET_REL64_EXPORT",A="FL:::/Kernel/KernelA.HPP,408"$
    +$LK,"IET_REL32_EXPORT",A="FL:::/Kernel/KernelA.HPP,406"$
    +$LK,"CExcept",A="FL:::/Kernel/KernelA.HPP,3162"$
    +$LK,"QueInsRev",A="FL:::/Kernel/KernelB.HPP,70"$
    +$LK,"SYSf_CTRL_ALT_X",A="FL:::/Kernel/KernelA.HPP,619"$
    +$LK,"SYS_EXTERN_TABLE",A="FL:::/Kernel/KStart.CPP.Z,207"$
    +$LK,"FUF_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HPP,2613"$
    +$LK,"DOCT_HTML_CODE",A="FL:::/Kernel/KernelA.HPP,941"$
    +$LK,"LAPIC_IRR",A="FL:::/Kernel/KernelA.HPP,494"$
     $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,548"$
    -$LK,"COrder2D3",A="FL:::/Kernel/KernelA.HPP,199"$
    -$LK,"TaskRegAddr",A="FL:::/Kernel/KDbg.CPP.Z,266",BI=450$
    -$LK,"DCSF_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,3638"$
    -$LK,"LAPIC_ISR",A="FL:::/Kernel/KernelA.HPP,490"$
    +$LK,"sys_run_level",A="FL:::/Kernel/KernelB.HPP,41"$
    +$LK,"JIFFY_FREQ",A="FL:::/Kernel/KernelA.HPP,550"$
    +$LK,"COrder2D3",A="FL:::/Kernel/KernelA.HPP,200"$
    +$LK,"TaskRegAddr",A="FL:::/Kernel/KDbg.CPP.Z,266",BI=453$
    +$LK,"DCSF_COMPRESSED",A="FL:::/Kernel/KernelA.HPP,3645"$
    +$LK,"LAPIC_ISR",A="FL:::/Kernel/KernelA.HPP,492"$
     $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,2265"$
    -$LK,"CCF_PREDEC",A="FL:::/Kernel/KernelA.HPP,2151"$
    -$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=451$
    -$LK,"SYS_ENTER_LONG_MODE",A="FL:::/Kernel/KStart.CPP.Z,318"$
    -$LK,"DOCEf_LEFT_AUTO",A="FL:::/Kernel/KernelA.HPP,1070"$
    -$LK,"DOCEF_LEFT_AUTO",A="FL:::/Kernel/KernelA.HPP,982"$
    -$LK,"eps",A="FL:::/Kernel/KernelA.HPP,56"$
    -$LK,"LstSub",A="FL:::/Kernel/StrA.CPP.Z,402",BI=452$
    -$LK,"RLF_PATCHED",A="FL:::/Kernel/KernelA.HPP,458"$
    -$LK,"FRBlks",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,130",BI=453$
    -$LK,"TaskDerivedValsUpdate",A="FL:::/Kernel/KTask.CPP.Z,252",BI=454$
    +$LK,"Pow10",A="FL:::/Kernel/KernelB.HPP,138"$
    +$LK,"ATA_WRITE_MULTI_EXT",A="FL:::/Kernel/KernelA.HPP,2268"$
    +$LK,"CCF_PREDEC",A="FL:::/Kernel/KernelA.HPP,2154"$
    +$LK,"inf",A="FL:::/Kernel/KernelA.HPP,47"$
    +$LK,"MIN_I8",A="FL:::/Kernel/KernelA.HPP,23"$
    +$LK,"XTalk",A="FL:::/Kernel/SrvCmd.CPP.Z,446",BI=454$
    +$LK,"SYS_ENTER_LONG_MODE",A="FL:::/Kernel/KStart.CPP.Z,323"$
    +$LK,"DOCEf_LEFT_AUTO",A="FL:::/Kernel/KernelA.HPP,1072"$
    +$LK,"DOCEF_LEFT_AUTO",A="FL:::/Kernel/KernelA.HPP,984"$
    +$LK,"eps",A="FL:::/Kernel/KernelA.HPP,57"$
    +$LK,"LstSub",A="FL:::/Kernel/StrA.CPP.Z,402",BI=455$
    +$LK,"RLF_PATCHED",A="FL:::/Kernel/KernelA.HPP,460"$
    +$LK,"TaskDerivedValsUpdate",A="FL:::/Kernel/KTask.CPP.Z,254",BI=456$
     $LK,"_HASH_ADD",A="FL:::/Kernel/KHashA.CPP.Z,170"$
    -$LK,"__TIME__",A="FL:::/Kernel/KernelA.HPP,2024"$
    -$LK,"RLf_PATCHED",A="FL:::/Kernel/KernelA.HPP,439"$
    -$LK,"FUf_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HPP,2586"$
    -$LK,"ACD_WORD_FILENAME",A="FL:::/Kernel/KernelA.HPP,1497"$
    -$LK,"ATTRf_BLINK",A="FL:::/Kernel/KernelA.HPP,892"$
    -$LK,"ATTRF_BLINK",A="FL:::/Kernel/KernelA.HPP,887"$
    -$LK,"XchgU8",A="FL:::/Kernel/KernelB.HPP,263"$
    -$LK,"TTS_TASK_NAME",A="FL:::/Kernel/KernelA.HPP,3268"$
    -$LK,"CKernel",A="FL:::/Kernel/KernelA.HPP,417"$
    -$LK,"IET_IMM_I64",A="FL:::/Kernel/KernelA.HPP,402"$
    -$LK,"log2_10",A="FL:::/Kernel/KernelA.HPP,51"$
    -$LK,"LTBLUE",A="FL:::/Kernel/KernelA.HPP,2958"$
    -$LK,"FAT32AllocClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,456",BI=455$
    -$LK,"DOCEf_TOP_Y",A="FL:::/Kernel/KernelA.HPP,1076"$
    -$LK,"DOCEF_TOP_Y",A="FL:::/Kernel/KernelA.HPP,988"$
    +$LK,"FRBlks",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,129",BI=457$
    +$LK,"__TIME__",A="FL:::/Kernel/KernelA.HPP,2026"$
    +$LK,"RLf_PATCHED",A="FL:::/Kernel/KernelA.HPP,441"$
    +$LK,"FUf_CLUSTER_ORDER",A="FL:::/Kernel/KernelA.HPP,2587"$
    +$LK,"ACD_WORD_FILENAME",A="FL:::/Kernel/KernelA.HPP,1499"$
    +$LK,"ATTRf_BLINK",A="FL:::/Kernel/KernelA.HPP,894"$
    +$LK,"ATTRF_BLINK",A="FL:::/Kernel/KernelA.HPP,889"$
    +$LK,"XchgU8",A="FL:::/Kernel/KernelB.HPP,262"$
    +$LK,"TTS_TASK_NAME",A="FL:::/Kernel/KernelA.HPP,3274"$
    +$LK,"CKernel",A="FL:::/Kernel/KernelA.HPP,418"$
    +$LK,"IET_IMM_I64",A="FL:::/Kernel/KernelA.HPP,403"$
    +$LK,"log2_10",A="FL:::/Kernel/KernelA.HPP,52"$
    +$LK,"LTBLUE",A="FL:::/Kernel/KernelA.HPP,2964"$
    +$LK,"FAT32AllocClusters",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,456",BI=458$
    +$LK,"DOCEf_TOP_Y",A="FL:::/Kernel/KernelA.HPP,1078"$
    +$LK,"DOCEF_TOP_Y",A="FL:::/Kernel/KernelA.HPP,990"$
     $LK,"_CALLEXTNUM",A="FL:::/Kernel/KUtils.CPP.Z,362"$
    -$LK,"SCF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,3544"$
    -$LK,"SCf_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,3529"$
    -$LK,"MSG_CMD",A="FL:::/Kernel/KernelA.HPP,3217"$
    -$LK,"IDTET_IRQ",A="FL:::/Kernel/KernelA.HPP,280"$
    -$LK,"CCF_LOCAL",A="FL:::/Kernel/KernelA.HPP,2145"$
    -$LK,"QueCnt",A="FL:::/Kernel/KDataTypes.CPP.Z,65",BI=456$
    +$LK,"SCF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,3550"$
    +$LK,"SCf_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,3535"$
    +$LK,"MSG_CMD",A="FL:::/Kernel/KernelA.HPP,3223"$
    +$LK,"IDTET_IRQ",A="FL:::/Kernel/KernelA.HPP,281"$
    +$LK,"CCF_LOCAL",A="FL:::/Kernel/KernelA.HPP,2148"$
    +$LK,"QueCnt",A="FL:::/Kernel/KDataTypes.CPP.Z,65",BI=459$
     $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,1544"$
    -$LK,"HTG_SRC_SYM",A="FL:::/Kernel/KernelA.HPP,710"$
    -$LK,"LAPIC_LVT_THERMAL",A="FL:::/Kernel/KernelA.HPP,497"$
    -$LK,"RFLAGf_IOPL0",A="FL:::/Kernel/KernelA.HPP,315"$
    -$LK,"IntsInit",A="FL:::/Kernel/KInts.CPP.Z,122",BI=457$
    +$LK,"SwapI64",A="FL:::/Kernel/KernelB.HPP,111"$
    +$LK,"SqrU64",A="FL:::/Kernel/KernelB.HPP,108"$
    +$LK,"OPTf_NO_BUILTIN_CONST",A="FL:::/Kernel/KernelA.HPP,1546"$
    +$LK,"HTG_SRC_SYM",A="FL:::/Kernel/KernelA.HPP,712"$
    +$LK,"LAPIC_LVT_THERMAL",A="FL:::/Kernel/KernelA.HPP,499"$
    +$LK,"RFLAGf_IOPL0",A="FL:::/Kernel/KernelA.HPP,316"$
    +$LK,"IntsInit",A="FL:::/Kernel/KInts.CPP.Z,122",BI=460$
     $LK,"_XCHG_U8",A="FL:::/Kernel/KUtils.CPP.Z,208"$
    -$LK,"DOCEF_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HPP,1004"$
    -$LK,"RFLAGf_IOPL1",A="FL:::/Kernel/KernelA.HPP,316"$
    -$LK,"FAT32FilesDel",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,726",BI=458$
    -$LK,"DOCT_MENU_VAL",A="FL:::/Kernel/KernelA.HPP,931"$
    -$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,3841"$
    -$LK,"ACf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,1482"$
    -$LK,"RawDm",A="FL:::/Kernel/KDbg.CPP.Z,250",BI=462$
    -$LK,"ICf_DONT_POP_FLOAT0",A="FL:::/Kernel/KernelA.HPP,1611"$
    -$LK,"DskCacheAdd",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,76",BI=463$
    -$LK,"MPNMInt",A="FL:::/Kernel/MultiProc.CPP.Z,159",BI=464$
    +$LK,"DOCEF_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HPP,1006"$
    +$LK,"RFLAGf_IOPL1",A="FL:::/Kernel/KernelA.HPP,317"$
    +$LK,"FAT32FilesDel",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,726",BI=461$
    +$LK,"DOCT_MENU_VAL",A="FL:::/Kernel/KernelA.HPP,933"$
    +$LK,"Bcd2Bin",A="FL:::/Kernel/KDate.CPP.Z,123",BI=462$
    +$LK,"CAllocAligned",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,434",BI=463$
    +$LK,"MAllocAligned",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,423",BI=464$
    +$LK,"ext",A="FL:::/Kernel/KernelB.HPP,53"$
    +$LK,"FUN_SEG_CACHE_SIZE",A="FL:::/Kernel/KernelA.HPP,3848"$
    +$LK,"ACf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,1484"$
    +$LK,"RawDm",A="FL:::/Kernel/KDbg.CPP.Z,250",BI=465$
    +$LK,"ICf_DONT_POP_FLOAT0",A="FL:::/Kernel/KernelA.HPP,1613"$
    +$LK,"DskCacheAdd",A="FL:::/Kernel/BlkDev/DskCache.CPP.Z,76",BI=466$
    +$LK,"MPNMInt",A="FL:::/Kernel/MultiProc.CPP.Z,159",BI=467$
     $LK,"_MSIZE2",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,353"$
    -$LK,"LTPURPLE",A="FL:::/Kernel/KernelA.HPP,2962"$
    -$LK,"RawDr",A="FL:::/Kernel/KDbg.CPP.Z,291",BI=465$
    +$LK,"LTPURPLE",A="FL:::/Kernel/KernelA.HPP,2968"$
    +$LK,"RawDr",A="FL:::/Kernel/KDbg.CPP.Z,291",BI=468$
     $LK,"StrICmp",A="FL:::/Kernel/StrA.CPP.Z,311"$
    -$LK,"ATAR0_DATA",A="FL:::/Kernel/KernelA.HPP,2274"$
    -$LK,"MIN_U8",A="FL:::/Kernel/KernelA.HPP,24"$
    -$LK,"DVD_FILE_OFFSET",A="FL:::/Kernel/KernelA.HPP,2296"$
    -$LK,"OPTf_TRACE",A="FL:::/Kernel/KernelA.HPP,1535"$
    -$LK,"HTG_FLAGS_MASK",A="FL:::/Kernel/KernelA.HPP,708"$
    -$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,3537"$
    -$LK,"SCf_SCROLL",A="FL:::/Kernel/KernelA.HPP,3522"$
    -$LK,"BDf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,2650"$
    -$LK,"TK_SUB_EQU",A="FL:::/Kernel/KernelA.HPP,2097"$
    -$LK,"TK_DIV_EQU",A="FL:::/Kernel/KernelA.HPP,2092"$
    -$LK,"OC_BPT",A="FL:::/Kernel/KernelA.HPP,1759"$
    -$LK,"DOCF_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HPP,1266"$
    -$LK,"IOREDTAB",A="FL:::/Kernel/KernelA.HPP,513"$
    -$LK,"Fstcw",A="FL:::/Kernel/KernelB.HPP,131"$
    -$LK,"MSG_IP_L_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3234"$
    -$LK,"LAPIC_TMR",A="FL:::/Kernel/KernelA.HPP,491"$
    +$LK,"ATAR0_DATA",A="FL:::/Kernel/KernelA.HPP,2277"$
    +$LK,"MIN_U8",A="FL:::/Kernel/KernelA.HPP,25"$
    +$LK,"OPTf_TRACE",A="FL:::/Kernel/KernelA.HPP,1537"$
    +$LK,"HTG_FLAGS_MASK",A="FL:::/Kernel/KernelA.HPP,710"$
    +$LK,"DirFilesSort",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,92",BI=469$
    +$LK,"HashLstAdd",A="FL:::/Kernel/KHashB.CPP.Z,185",BI=470$
    +$LK,"ACAlloc",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,402",BI=471$
    +$LK,"SYS_RUN_LEVEL",A="FL:::/Kernel/KStart.CPP.Z,27"$
    +$LK,"SCF_SCROLL",A="FL:::/Kernel/KernelA.HPP,3543"$
    +$LK,"SCf_SCROLL",A="FL:::/Kernel/KernelA.HPP,3528"$
    +$LK,"BDf_INIT_IN_PROGRESS",A="FL:::/Kernel/KernelA.HPP,2652"$
    +$LK,"TK_SUB_EQU",A="FL:::/Kernel/KernelA.HPP,2099"$
    +$LK,"TK_DIV_EQU",A="FL:::/Kernel/KernelA.HPP,2094"$
    +$LK,"OC_BPT",A="FL:::/Kernel/KernelA.HPP,1761"$
    +$LK,"DOCF_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HPP,1268"$
    +$LK,"IOREDTAB",A="FL:::/Kernel/KernelA.HPP,515"$
    +$LK,"Fstcw",A="FL:::/Kernel/KernelB.HPP,132"$
    +$LK,"MSG_IP_L_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3240"$
    +$LK,"LAPIC_TMR",A="FL:::/Kernel/KernelA.HPP,493"$
     $LK,"C32_EFLAGS",A="FL:::/Kernel/PCIBIOS.CPP.Z,64"$
    -$LK,"sys_compile_time",A="FL:::/Kernel/KernelB.HPP,201"$
    +$LK,"sys_compile_time",A="FL:::/Kernel/KernelB.HPP,200"$
     $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,3275"$
    -$LK,"FUF_DIFF",A="FL:::/Kernel/KernelA.HPP,2594"$
    -$LK,"FUf_DIFF",A="FL:::/Kernel/KernelA.HPP,2568"$
    -$LK,"DOCf_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HPP,1302"$
    -$LK,"CHashImport",A="FL:::/Kernel/KernelA.HPP,762"$
    -$LK,"CMT_LABEL",A="FL:::/Kernel/KernelA.HPP,1685"$
    +$LK,"TASKf_SUSPENDED",A="FL:::/Kernel/KernelA.HPP,3281"$
    +$LK,"FUF_DIFF",A="FL:::/Kernel/KernelA.HPP,2595"$
    +$LK,"FUf_DIFF",A="FL:::/Kernel/KernelA.HPP,2569"$
    +$LK,"DOCf_HIDE_CURSOR",A="FL:::/Kernel/KernelA.HPP,1304"$
    +$LK,"CHashImport",A="FL:::/Kernel/KernelA.HPP,764"$
    +$LK,"CMT_LABEL",A="FL:::/Kernel/KernelA.HPP,1687"$
     $LK,"C32_ADD",A="FL:::/Kernel/PCIBIOS.CPP.Z,122"$
    -$LK,"MEM_PAGE_BITS",A="FL:::/Kernel/KernelA.HPP,2868"$
    -$LK,"MBS_USED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2848"$
    -$LK,"HeapCtrlDel",A="FL:::/Kernel/Mem/HeapCtrl.CPP.Z,15",BI=469$
    +$LK,"MEM_PAGE_BITS",A="FL:::/Kernel/KernelA.HPP,2874"$
    +$LK,"MBS_USED_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2854"$
    +$LK,"HeapCtrlDel",A="FL:::/Kernel/Mem/HeapCtrl.CPP.Z,15",BI=472$
     $LK,"_CALLEXTSTR",A="FL:::/Kernel/KUtils.CPP.Z,393"$
    -$LK,"FF_USE_OLD_DATETIME",A="FL:::/Kernel/KernelA.HPP,2777"$
    -$LK,"CCf_PAREN",A="FL:::/Kernel/KernelA.HPP,2161"$
    -$LK,"CCF_PAREN",A="FL:::/Kernel/KernelA.HPP,2160"$
    -$LK,"ACD_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,1511"$
    -$LK,"CSysLimitBase",A="FL:::/Kernel/KernelA.HPP,348"$
    -$LK,"DVD_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,2295"$
    -$LK,"QueIns",A="FL:::/Kernel/KernelB.HPP,67"$
    -$LK,"CGrSym",A="FL:::/Kernel/KernelA.HPP,3643"$
    -$LK,"ATAR0_FEAT",A="FL:::/Kernel/KernelA.HPP,2275"$
    -$LK,"RLF_HOME",A="FL:::/Kernel/KernelA.HPP,470"$
    -$LK,"RLf_HOME",A="FL:::/Kernel/KernelA.HPP,451"$
    +$LK,"FF_USE_OLD_DATETIME",A="FL:::/Kernel/KernelA.HPP,2783"$
    +$LK,"CCf_PAREN",A="FL:::/Kernel/KernelA.HPP,2164"$
    +$LK,"CCF_PAREN",A="FL:::/Kernel/KernelA.HPP,2163"$
    +$LK,"ACD_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,1513"$
    +$LK,"CSysLimitBase",A="FL:::/Kernel/KernelA.HPP,349"$
    +$LK,"DVD_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,2298"$
    +$LK,"QueIns",A="FL:::/Kernel/KernelB.HPP,68"$
    +$LK,"CGrSym",A="FL:::/Kernel/KernelA.HPP,3650"$
    +$LK,"ATAR0_FEAT",A="FL:::/Kernel/KernelA.HPP,2278"$
    +$LK,"RLF_HOME",A="FL:::/Kernel/KernelA.HPP,472"$
    +$LK,"RLf_HOME",A="FL:::/Kernel/KernelA.HPP,453"$
     $LK,"snd",A="FL:::/Kernel/KGlbls.CPP.Z,28"$
    -$LK,"SC_ENTER",A="FL:::/Kernel/KernelA.HPP,3552"$
    -$LK,"LTCYAN",A="FL:::/Kernel/KernelA.HPP,2960"$
    -$LK,"FUF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,2617"$
    -$LK,"CCF_PREINC",A="FL:::/Kernel/KernelA.HPP,2150"$
    -$LK,"HTT_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,681"$
    -$LK,"HTT_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,680"$
    -$LK,"FunSegCacheAdd",A="FL:::/Kernel/FunSeg.CPP.Z,92",BI=470$
    -$LK,"CTRLT_GENERIC",A="FL:::/Kernel/KernelA.HPP,3078"$
    -$LK,"CCF_KEEP_AT_SIGN",A="FL:::/Kernel/KernelA.HPP,2135"$
    -$LK,"RS_ATTR_DIR",A="FL:::/Kernel/KernelA.HPP,2527"$
    -$LK,"CCF_POSTDEC",A="FL:::/Kernel/KernelA.HPP,2149"$
    -$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,2100"$
    -$LK,"CMT_FLOAT_CONSTS",A="FL:::/Kernel/KernelA.HPP,1690"$
    -$LK,"CBinFile",A="FL:::/Kernel/KernelA.HPP,371"$
    -$LK,"SpawnQue",A="FL:::/Kernel/MultiProc.CPP.Z,248",BI=473$
    -$LK,"LAPIC_SVR",A="FL:::/Kernel/KernelA.HPP,488"$
    -$LK,"CMouseStateGlbls",A="FL:::/Kernel/KernelA.HPP,3014"$
    -$LK,"StrPrintFunSeg",A="FL:::/Kernel/FunSeg.CPP.Z,134",BI=474$
    -$LK,"ISO1_ATTR_DIR",A="FL:::/Kernel/KernelA.HPP,2519"$
    -$LK,"HashVal",A="FL:::/Kernel/KHashB.CPP.Z,9",BI=475$
    -$LK,"C:/Doc/MultiCore.TXT.Z",A="FL:::/Kernel/KernelB.HPP,227"$
    -$LK,"DOCEF_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1023"$
    -$LK,"IET_IMM_U32",A="FL:::/Kernel/KernelA.HPP,400"$
    -$LK,"IET_IMM_U16",A="FL:::/Kernel/KernelA.HPP,398"$
    -$LK,"QueRem",A="FL:::/Kernel/KernelB.HPP,71"$
    -$LK,"TASKf_DISABLE_BPTS",A="FL:::/Kernel/KernelA.HPP,3280"$
    -$LK,"BDT_NULL",A="FL:::/Kernel/KernelA.HPP,2627"$
    +$LK,"SC_ENTER",A="FL:::/Kernel/KernelA.HPP,3558"$
    +$LK,"LTCYAN",A="FL:::/Kernel/KernelA.HPP,2966"$
    +$LK,"FUF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,2618"$
    +$LK,"CCF_PREINC",A="FL:::/Kernel/KernelA.HPP,2153"$
    +$LK,"HTT_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,683"$
    +$LK,"HTT_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,682"$
    +$LK,"FunSegCacheAdd",A="FL:::/Kernel/FunSeg.CPP.Z,92",BI=473$
    +$LK,"CTRLT_GENERIC",A="FL:::/Kernel/KernelA.HPP,3084"$
    +$LK,"CCF_KEEP_AT_SIGN",A="FL:::/Kernel/KernelA.HPP,2138"$
    +$LK,"RS_ATTR_DIR",A="FL:::/Kernel/KernelA.HPP,2529"$
    +$LK,"CCF_POSTDEC",A="FL:::/Kernel/KernelA.HPP,2152"$
    +$LK,"DirContextDel",A="FL:::/Kernel/BlkDev/DskDirContext.CPP.Z,1",BI=474$
    +$LK,"StrPrintFlags",A="FL:::/Kernel/StrB.CPP.Z,177",BI=475$
    +$LK,"TK_IFNDEF",A="FL:::/Kernel/KernelA.HPP,2102"$
    +$LK,"CMT_FLOAT_CONSTS",A="FL:::/Kernel/KernelA.HPP,1692"$
    +$LK,"CBinFile",A="FL:::/Kernel/KernelA.HPP,372"$
    +$LK,"SpawnQue",A="FL:::/Kernel/MultiProc.CPP.Z,248",BI=476$
    +$LK,"LAPIC_SVR",A="FL:::/Kernel/KernelA.HPP,490"$
    +$LK,"CMouseStateGlbls",A="FL:::/Kernel/KernelA.HPP,3020"$
    +$LK,"StrPrintFunSeg",A="FL:::/Kernel/FunSeg.CPP.Z,134",BI=477$
    +$LK,"ISO1_ATTR_DIR",A="FL:::/Kernel/KernelA.HPP,2521"$
    +$LK,"HashVal",A="FL:::/Kernel/KHashB.CPP.Z,9",BI=478$
    +$LK,"C:/Doc/MultiCore.TXT.Z",A="FL:::/Kernel/KernelB.HPP,226"$
    +$LK,"DOCEF_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1025"$
    +$LK,"IET_IMM_U32",A="FL:::/Kernel/KernelA.HPP,401"$
    +$LK,"IET_IMM_U16",A="FL:::/Kernel/KernelA.HPP,399"$
    +$LK,"QueRem",A="FL:::/Kernel/KernelB.HPP,72"$
    +$LK,"TASKf_DISABLE_BPTS",A="FL:::/Kernel/KernelA.HPP,3286"$
    +$LK,"BDT_NULL",A="FL:::/Kernel/KernelA.HPP,2628"$
     $LK,"FarCall32",A="FL:::/Kernel/PCIBIOS.CPP.Z,161"$
    -$LK,"SCF_NO_SHIFT",A="FL:::/Kernel/KernelA.HPP,3543"$
    -$LK,"SCf_NO_SHIFT",A="FL:::/Kernel/KernelA.HPP,3528"$
    -$LK,"ARGT_MOFFS32",A="FL:::/Kernel/KernelA.HPP,1914"$
    -$LK,"ARGT_MOFFS16",A="FL:::/Kernel/KernelA.HPP,1913"$
    -$LK,"sys_heap_dbg",A="FL:::/Kernel/KernelB.HPP,180"$
    -$LK,"FUF_SINGLE",A="FL:::/Kernel/KernelA.HPP,2603"$
    -$LK,"FUf_SINGLE",A="FL:::/Kernel/KernelA.HPP,2577"$
    -$LK,"DOCEf_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1109"$
    -$LK,"DVDImageWriteTask",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,49",BI=476$
    -$LK,"LTGRAY",A="FL:::/Kernel/KernelA.HPP,2956"$
    -$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,3893"$
    -$LK,"CAsmUndefHash",A="FL:::/Kernel/KernelA.HPP,1811"$
    -$LK,"HTt_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,651"$
    -$LK,"HTt_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,650"$
    +$LK,"SCF_NO_SHIFT",A="FL:::/Kernel/KernelA.HPP,3549"$
    +$LK,"SCf_NO_SHIFT",A="FL:::/Kernel/KernelA.HPP,3534"$
    +$LK,"ARGT_MOFFS32",A="FL:::/Kernel/KernelA.HPP,1916"$
    +$LK,"ARGT_MOFFS16",A="FL:::/Kernel/KernelA.HPP,1915"$
    +$LK,"sys_heap_dbg",A="FL:::/Kernel/KernelB.HPP,179"$
    +$LK,"FUF_SINGLE",A="FL:::/Kernel/KernelA.HPP,2604"$
    +$LK,"FUf_SINGLE",A="FL:::/Kernel/KernelA.HPP,2578"$
    +$LK,"DOCEf_DFT_RAW_TYPE",A="FL:::/Kernel/KernelA.HPP,1111"$
    +$LK,"DVDImageWriteTask",A="FL:::/Kernel/BlkDev/DskCDDVD.CPP.Z,117",BI=479$
    +$LK,"LTGRAY",A="FL:::/Kernel/KernelA.HPP,2962"$
    +$LK,"CoreAPSethInit",A="FL:::/Kernel/MultiProc.CPP.Z,276",BI=480$
    +$LK,"IRQKbd",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,411",BI=481$
    +$LK,"QueVectU8Del",A="FL:::/Kernel/KDataTypes.CPP.Z,132",BI=482$
    +$LK,"SwapU32",A="FL:::/Kernel/KernelB.HPP,115"$
    +$LK,"SwapU16",A="FL:::/Kernel/KernelB.HPP,113"$
    +$LK,"ARf_MESH_ED",A="FL:::/Kernel/KernelA.HPP,3901"$
    +$LK,"CAsmUndefHash",A="FL:::/Kernel/KernelA.HPP,1813"$
    +$LK,"HTt_IMPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,653"$
    +$LK,"HTt_EXPORT_SYS_SYM",A="FL:::/Kernel/KernelA.HPP,652"$
     $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,499"$
    -$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,500"$
    +$LK,"LAPIC_LVT_LINT0",A="FL:::/Kernel/KernelA.HPP,501"$
    +$LK,"Cluster2Blk",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,32",BI=483$
    +$LK,"ArcFinishCompression",A="FL:::/Kernel/Compress.CPP.Z,155",BI=484$
    +$LK,"LAPIC_LVT_LINT1",A="FL:::/Kernel/KernelA.HPP,502"$
     $LK,"sys_winmgr_task",A="FL:::/Kernel/KGlbls.CPP.Z,11"$
    -$LK,"SC_CAPS",A="FL:::/Kernel/KernelA.HPP,3556"$
    -$LK,"SYS_RAM_REBOOT_END",A="FL:::/Kernel/KStart.CPP.Z,373"$
    -$LK,"REG_R8",A="FL:::/Kernel/KernelA.HPP,1782"$
    -$LK,"CMT_ARRAY_DIM",A="FL:::/Kernel/KernelA.HPP,1691"$
    -$LK,"ACD_POS_CHAR",A="FL:::/Kernel/KernelA.HPP,1517"$
    -$LK,"REGT_FSTK",A="FL:::/Kernel/KernelA.HPP,742"$
    -$LK,"ARGT_MOFFS64",A="FL:::/Kernel/KernelA.HPP,1915"$
    -$LK,"DOCF_COLOR_NAMES",A="FL:::/Kernel/KernelA.HPP,1261"$
    -$LK,"CRAXRBCRCXRDX",A="FL:::/Kernel/KernelA.HPP,566"$
    +$LK,"SC_CAPS",A="FL:::/Kernel/KernelA.HPP,3562"$
    +$LK,"SYS_RAM_REBOOT_END",A="FL:::/Kernel/KStart.CPP.Z,378"$
    +$LK,"REG_R8",A="FL:::/Kernel/KernelA.HPP,1784"$
    +$LK,"CMT_ARRAY_DIM",A="FL:::/Kernel/KernelA.HPP,1693"$
    +$LK,"ACD_POS_CHAR",A="FL:::/Kernel/KernelA.HPP,1519"$
    +$LK,"REGT_FSTK",A="FL:::/Kernel/KernelA.HPP,744"$
    +$LK,"ARGT_MOFFS64",A="FL:::/Kernel/KernelA.HPP,1917"$
    +$LK,"DOCF_COLOR_NAMES",A="FL:::/Kernel/KernelA.HPP,1263"$
    +$LK,"CRAXRBCRCXRDX",A="FL:::/Kernel/KernelA.HPP,568"$
     $LK,"_SAVE_EXCEPT_REGS",A="FL:::/Kernel/KExcept.CPP.Z,26"$
    -$LK,"MDf_IMM",A="FL:::/Kernel/KernelA.HPP,1571"$
    -$LK,"DOCf_COLOR_NAMES",A="FL:::/Kernel/KernelA.HPP,1297"$
    -$LK,"RoundI64",A="FL:::/Kernel/KMathB.CPP.Z,47",BI=482$
    -$LK,"CSndGlbls",A="FL:::/Kernel/KernelA.HPP,3833"$
    -$LK,"EXT_HEAPLOG_FREE",A="FL:::/Kernel/KernelA.HPP,576"$
    -$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,3273"$
    -$LK,"BDT_ATA",A="FL:::/Kernel/KernelA.HPP,2629"$
    -$LK,"RFLAGf_RESUME",A="FL:::/Kernel/KernelA.HPP,318"$
    +$LK,"MDf_IMM",A="FL:::/Kernel/KernelA.HPP,1573"$
    +$LK,"DOCf_COLOR_NAMES",A="FL:::/Kernel/KernelA.HPP,1299"$
    +$LK,"RoundI64",A="FL:::/Kernel/KMathB.CPP.Z,47",BI=485$
    +$LK,"CSndGlbls",A="FL:::/Kernel/KernelA.HPP,3840"$
    +$LK,"EXT_HEAPLOG_FREE",A="FL:::/Kernel/KernelA.HPP,578"$
    +$LK,"DrvSerialNum",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,261",BI=486$
    +$LK,"Fstsw",A="FL:::/Kernel/KernelB.HPP,133"$
    +$LK,"TASKf_TASK_LOCK",A="FL:::/Kernel/KernelA.HPP,3279"$
    +$LK,"BDT_ATA",A="FL:::/Kernel/KernelA.HPP,2630"$
    +$LK,"RFLAGf_RESUME",A="FL:::/Kernel/KernelA.HPP,319"$
     $LK,"C32_EAX",A="FL:::/Kernel/PCIBIOS.CPP.Z,58"$
    -$LK,"PortNop",A="FL:::/Kernel/KMisc.CPP.Z,1",BI=484$
    +$LK,"PortNop",A="FL:::/Kernel/KMisc.CPP.Z,1",BI=487$
     $LK,"StrNCmp",A="FL:::/Kernel/StrA.CPP.Z,313"$
    -$LK,"FUF_PUBLIC",A="FL:::/Kernel/KernelA.HPP,2600"$
    -$LK,"FUf_PUBLIC",A="FL:::/Kernel/KernelA.HPP,2574"$
    -$LK,"CFAT32FileInfoSect",A="FL:::/Kernel/KernelA.HPP,2366"$
    -$LK,"SYS_HEAP_INIT_VAL",A="FL:::/Home/Temp.TXT.Z,1"$
    -$LK,"CATAPITrack",A="FL:::/Kernel/KernelA.HPP,2418"$
    +$LK,"FUF_PUBLIC",A="FL:::/Kernel/KernelA.HPP,2601"$
    +$LK,"FUf_PUBLIC",A="FL:::/Kernel/KernelA.HPP,2575"$
    +$LK,"CFAT32FileInfoSect",A="FL:::/Kernel/KernelA.HPP,2368"$
    +$LK,"SYS_HEAP_INIT_VAL",A="FL::/Temp.TXT.Z,1"$
    +$LK,"CATAPITrack",A="FL:::/Kernel/KernelA.HPP,2420"$
     $LK,"C32_EBX",A="FL:::/Kernel/PCIBIOS.CPP.Z,59"$
    -$LK,"CCF_HAS_MISC_DATA",A="FL:::/Kernel/KernelA.HPP,2141"$
    -$LK,"LFSF_DOC",A="FL:::/Kernel/KernelA.HPP,2033"$
    -$LK,"ACD_PRONUNCIATION_CHAR",A="FL:::/Kernel/KernelA.HPP,1516"$
    -$LK,"ACD_PRONUNCIATION",A="FL:::/Kernel/KernelA.HPP,1505"$
    +$LK,"CCF_HAS_MISC_DATA",A="FL:::/Kernel/KernelA.HPP,2144"$
    +$LK,"LFSF_DOC",A="FL:::/Kernel/KernelA.HPP,2035"$
    +$LK,"ACD_PRONUNCIATION_CHAR",A="FL:::/Kernel/KernelA.HPP,1518"$
    +$LK,"ACD_PRONUNCIATION",A="FL:::/Kernel/KernelA.HPP,1507"$
     $LK,"C32_ECX",A="FL:::/Kernel/PCIBIOS.CPP.Z,60"$
    -$LK,"FifoU8Peek",A="FL:::/Kernel/KDataTypes.CPP.Z,205",BI=485$
    +$LK,"FifoU8Peek",A="FL:::/Kernel/KDataTypes.CPP.Z,205",BI=488$
     $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,3895"$
    -$LK,"CSndData",A="FL:::/Kernel/KernelA.HPP,3826"$
    -$LK,"SC_PAGE_DOWN",A="FL:::/Kernel/KernelA.HPP,3564"$
    -$LK,"OC_NOP",A="FL:::/Kernel/KernelA.HPP,1758"$
    +$LK,"LoadPass1",A="FL:::/Kernel/KLoad.CPP.Z,67",BI=489$
    +$LK,"LoadPass2",A="FL:::/Kernel/KLoad.CPP.Z,154",BI=490$
    +$LK,"ARf_MANAGE_SLIDER",A="FL:::/Kernel/KernelA.HPP,3903"$
    +$LK,"CSndData",A="FL:::/Kernel/KernelA.HPP,3833"$
    +$LK,"SC_PAGE_DOWN",A="FL:::/Kernel/KernelA.HPP,3570"$
    +$LK,"OC_NOP",A="FL:::/Kernel/KernelA.HPP,1760"$
     $LK,"SPF_AUX_FMT_NUM",A="FL:::/Kernel/StrPrint.CPP.Z,8"$
    -$LK,"MSG_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3219"$
    -$LK,"SYS_SEMA_SINGLE_USER",A="FL:::/Kernel/KernelA.HPP,601"$
    -$LK,"TimeStampFreqCal",A="FL:::/Kernel/KMisc.CPP.Z,80",BI=488$
    -$LK,"QueVectU8Get",A="FL:::/Kernel/KDataTypes.CPP.Z,140",BI=489$
    -$LK,"DOCF_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HPP,1259"$
    -$LK,"PostMsg",A="FL:::/Kernel/SrvCmd.CPP.Z,240",BI=490$
    -$LK,"SVCT_CALL",A="FL:::/Kernel/KernelA.HPP,3184"$
    -$LK,"MDf_REG",A="FL:::/Kernel/KernelA.HPP,1572"$
    -$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,3578"$
    -$LK,"SC_F11",A="FL:::/Kernel/KernelA.HPP,3579"$
    -$LK,"SYS_SEMA_TT",A="FL:::/Kernel/KernelA.HPP,607"$
    -$LK,"Silent",A="FL:::/Kernel/KMisc.CPP.Z,218",BI=493$
    -$LK,"SC_F12",A="FL:::/Kernel/KernelA.HPP,3580"$
    -$LK,"WIF_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HPP,1422"$
    -$LK,"CCF_POSTINC",A="FL:::/Kernel/KernelA.HPP,2148"$
    -$LK,"CCF_IN_IF",A="FL:::/Kernel/KernelA.HPP,2130"$
    +$LK,"MSG_KEY_UP",A="FL:::/Kernel/KernelA.HPP,3225"$
    +$LK,"SYS_SEMA_SINGLE_USER",A="FL:::/Kernel/KernelA.HPP,603"$
    +$LK,"TimeStampFreqCal",A="FL:::/Kernel/KMisc.CPP.Z,80",BI=491$
    +$LK,"QueVectU8Get",A="FL:::/Kernel/KDataTypes.CPP.Z,140",BI=492$
    +$LK,"DOCF_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HPP,1261"$
    +$LK,"PostMsg",A="FL:::/Kernel/SrvCmd.CPP.Z,240",BI=493$
    +$LK,"SVCT_CALL",A="FL:::/Kernel/KernelA.HPP,3190"$
    +$LK,"MDf_REG",A="FL:::/Kernel/KernelA.HPP,1574"$
    +$LK,"ATAPISeek",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,131",BI=494$
    +$LK,"MPrintDate",A="FL:::/Kernel/StrPrint.CPP.Z,62",BI=495$
    +$LK,"SC_F10",A="FL:::/Kernel/KernelA.HPP,3584"$
    +$LK,"SC_F11",A="FL:::/Kernel/KernelA.HPP,3585"$
    +$LK,"SYS_SEMA_TT",A="FL:::/Kernel/KernelA.HPP,609"$
    +$LK,"Silent",A="FL:::/Kernel/KMisc.CPP.Z,218",BI=496$
    +$LK,"SC_F12",A="FL:::/Kernel/KernelA.HPP,3586"$
    +$LK,"WIF_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HPP,1424"$
    +$LK,"CCF_POSTINC",A="FL:::/Kernel/KernelA.HPP,2151"$
    +$LK,"CCF_IN_IF",A="FL:::/Kernel/KernelA.HPP,2133"$
     $LK,"HashStr",A="FL:::/Kernel/KHashA.CPP.Z,254"$
    -$LK,"CHashExport",A="FL:::/Kernel/KernelA.HPP,757"$
    -$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,1574"$
    -$LK,"FWBlks",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,182",BI=496$
    +$LK,"CHashExport",A="FL:::/Kernel/KernelA.HPP,759"$
    +$LK,"FifoU8Del",A="FL:::/Kernel/KDataTypes.CPP.Z,167",BI=497$
    +$LK,"DrvIsWritable",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,182",BI=498$
    +$LK,"MDf_SIB",A="FL:::/Kernel/KernelA.HPP,1576"$
     $LK,"chars_bmp_printable",A="FL:::/Kernel/StrA.CPP.Z,381"$
    -$LK,"RLF_COMPILER",A="FL:::/Kernel/KernelA.HPP,466"$
    -$LK,"RLf_COMPILER",A="FL:::/Kernel/KernelA.HPP,447"$
    +$LK,"FWBlks",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,181",BI=499$
    +$LK,"RLF_COMPILER",A="FL:::/Kernel/KernelA.HPP,468"$
    +$LK,"RLf_COMPILER",A="FL:::/Kernel/KernelA.HPP,449"$
     $LK,"SYS_INIT_PAGE_TABLES",A="FL:::/Kernel/Mem/PageTables.CPP.Z,6"$
    -$LK,"TASK_NAME_LEN",A="FL:::/Kernel/KernelA.HPP,3297"$
    -$LK,"COLORROP_COLORS_MASK",A="FL:::/Kernel/KernelA.HPP,2978"$
    +$LK,"TASK_NAME_LEN",A="FL:::/Kernel/KernelA.HPP,3303"$
    +$LK,"COLORROP_COLORS_MASK",A="FL:::/Kernel/KernelA.HPP,2984"$
     $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,3728"$
    -$LK,"ATAR0_HCYL",A="FL:::/Kernel/KernelA.HPP,2279"$
    -$LK,"sys_code_bp",A="FL:::/Kernel/KernelB.HPP,189"$
    -$LK,"RepOutU32",A="FL:::/Kernel/KernelB.HPP,89"$
    -$LK,"RepOutU16",A="FL:::/Kernel/KernelB.HPP,87"$
    -$LK,"TK_SUBSCRIPT",A="FL:::/Kernel/KernelA.HPP,2069"$
    -$LK,"WIG_TASK_DFT",A="FL:::/Kernel/KernelA.HPP,1432"$
    -$LK,"REGT_NONE",A="FL:::/Kernel/KernelA.HPP,736"$
    -$LK,"ARf_PSALMODY_JUKEBOX",A="FL:::/Kernel/KernelA.HPP,3892"$
    -$LK,"DOCEf_HTML_LINK",A="FL:::/Kernel/KernelA.HPP,1055"$
    -$LK,"DOCEF_HTML_LINK",A="FL:::/Kernel/KernelA.HPP,967"$
    +$LK,"BlkPoolsInit",A="FL:::/Kernel/Mem/BlkPool.CPP.Z,29",BI=500$
    +$LK,"SYS_DATA_BP",A="FL:::/Kernel/KStart.CPP.Z,210"$
    +$LK,"VGAP_PALETTE_DATA",A="FL:::/Kernel/KernelA.HPP,3735"$
    +$LK,"ATAR0_HCYL",A="FL:::/Kernel/KernelA.HPP,2282"$
    +$LK,"DOCET_SEL",A="FL:::/Kernel/KernelA.HPP,949"$
    +$LK,"sys_code_bp",A="FL:::/Kernel/KernelB.HPP,188"$
    +$LK,"RepOutU32",A="FL:::/Kernel/KernelB.HPP,90"$
    +$LK,"RepOutU16",A="FL:::/Kernel/KernelB.HPP,88"$
    +$LK,"TK_SUBSCRIPT",A="FL:::/Kernel/KernelA.HPP,2071"$
    +$LK,"WIG_TASK_DFT",A="FL:::/Kernel/KernelA.HPP,1434"$
    +$LK,"REGT_NONE",A="FL:::/Kernel/KernelA.HPP,738"$
    +$LK,"ARf_PSALMODY_JUKEBOX",A="FL:::/Kernel/KernelA.HPP,3900"$
    +$LK,"DOCEf_HTML_LINK",A="FL:::/Kernel/KernelA.HPP,1057"$
    +$LK,"DOCEF_HTML_LINK",A="FL:::/Kernel/KernelA.HPP,969"$
     $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,223"$
    -$LK,"DirContextNew",A="FL:::/Kernel/BlkDev/DskDirContext.CPP.Z,21",BI=499$
    +$LK,"LinkedLstSize",A="FL:::/Kernel/KDataTypes.CPP.Z,31",BI=501$
    +$LK,"SSF_NO_COMPRESSION",A="FL:::/Kernel/KernelA.HPP,224"$
    +$LK,"DirContextNew",A="FL:::/Kernel/BlkDev/DskDirContext.CPP.Z,21",BI=502$
     $LK,"_SET_MSR",A="FL:::/Kernel/KUtils.CPP.Z,459"$
    -$LK,"HClf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2896"$
    +$LK,"HClf_LOCKED",A="FL:::/Kernel/KernelA.HPP,2902"$
     $LK,"SPF_QUESTION",A="FL:::/Kernel/StrPrint.CPP.Z,7"$
    -$LK,"ACD_EXTRA_END",A="FL:::/Kernel/KernelA.HPP,1510"$
    -$LK,"SetRFlags",A="FL:::/Kernel/KernelB.HPP,249"$
    -$LK,"GetRFlags",A="FL:::/Kernel/KernelB.HPP,243"$
    -$LK,"DOCEF_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HPP,971"$
    -$LK,"MSG_IP_MOVE",A="FL:::/Kernel/KernelA.HPP,3220"$
    -$LK,"SVCT_TEXT_INPUT",A="FL:::/Kernel/KernelA.HPP,3180"$
    -$LK,"DOClf_LOCKED",A="FL:::/Kernel/KernelA.HPP,1330"$
    -$LK,"CallStkGrow",A="FL:::/Kernel/KTask.CPP.Z,78",BI=500$
    -$LK,"ATAR0_NSECT",A="FL:::/Kernel/KernelA.HPP,2276"$
    -$LK,"DOCEf_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HPP,1059"$
    -$LK,"RLF_DOC",A="FL:::/Kernel/KernelA.HPP,467"$
    +$LK,"ACD_EXTRA_END",A="FL:::/Kernel/KernelA.HPP,1512"$
    +$LK,"SetRFlags",A="FL:::/Kernel/KernelB.HPP,248"$
    +$LK,"GetRFlags",A="FL:::/Kernel/KernelB.HPP,242"$
    +$LK,"DOCEF_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HPP,973"$
    +$LK,"MSG_IP_MOVE",A="FL:::/Kernel/KernelA.HPP,3226"$
    +$LK,"SVCT_TEXT_INPUT",A="FL:::/Kernel/KernelA.HPP,3186"$
    +$LK,"DOClf_LOCKED",A="FL:::/Kernel/KernelA.HPP,1332"$
    +$LK,"CallStkGrow",A="FL:::/Kernel/KTask.CPP.Z,78",BI=503$
    +$LK,"ATAR0_NSECT",A="FL:::/Kernel/KernelA.HPP,2279"$
    +$LK,"DOCEf_RIGHT_MACRO",A="FL:::/Kernel/KernelA.HPP,1061"$
    +$LK,"RLF_DOC",A="FL:::/Kernel/KernelA.HPP,469"$
     $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,3631"$
    -$LK,"CoreAPSethTask",A="FL:::/Kernel/MultiProc.CPP.Z,194",BI=501$
    -$LK,"Ff_HASERRCODE",A="FL:::/Kernel/KernelA.HPP,846"$
    -$LK,"REGG_LOCAL_NON_PTR_VARS",A="FL:::/Kernel/KernelA.HPP,1793"$
    -$LK,"DOCF_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HPP,1256"$
    -$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,284"$
    -$LK,"DOCf_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HPP,1292"$
    -$LK,"CArcEntry",A="FL:::/Kernel/KernelA.HPP,3742"$
    -$LK,"AOT_BIN_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,1796"$
    -$LK,"DOCf_FORM",A="FL:::/Kernel/KernelA.HPP,1300"$
    -$LK,"DOCF_FORM",A="FL:::/Kernel/KernelA.HPP,1264"$
    -$LK,"CHashTable",A="FL:::/Kernel/KernelA.HPP,640"$
    -$LK,"QueVectU8New",A="FL:::/Kernel/KDataTypes.CPP.Z,87",BI=504$
    -$LK,"MEM_INTERRUPT_STK",A="FL:::/Kernel/KernelA.HPP,2878"$
    -$LK,"BDT_RAM",A="FL:::/Kernel/KernelA.HPP,2628"$
    -$LK,"CMF_POP_CMP",A="FL:::/Kernel/KernelA.HPP,1694"$
    -$LK,"ICF_POP_CMP",A="FL:::/Kernel/KernelA.HPP,1608"$
    -$LK,"DOCf_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HPP,1295"$
    -$LK,"MLMF_IS_STR",A="FL:::/Kernel/KernelA.HPP,786"$
    -$LK,"SYS_TIMER0_PERIOD",A="FL:::/Kernel/KernelA.HPP,551"$
    +$LK,"OutU8",A="FL:::/Kernel/KernelB.HPP,80"$
    +$LK,"DCF_ALIAS",A="FL:::/Kernel/KernelA.HPP,3638"$
    +$LK,"CoreAPSethTask",A="FL:::/Kernel/MultiProc.CPP.Z,194",BI=504$
    +$LK,"Ff_HASERRCODE",A="FL:::/Kernel/KernelA.HPP,848"$
    +$LK,"REGG_LOCAL_NON_PTR_VARS",A="FL:::/Kernel/KernelA.HPP,1795"$
    +$LK,"DOCF_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HPP,1258"$
    +$LK,"RawPutChar",A="FL:::/Kernel/Display.CPP.Z,1",BI=505$
    +$LK,"FifoU8Cnt",A="FL:::/Kernel/KDataTypes.CPP.Z,227",BI=506$
    +$LK,"C:/Doc/TimeHPET.TXT.Z",A="FL:::/Kernel/KernelB.HPP,283"$
    +$LK,"DOCf_PLAIN_TEXT",A="FL:::/Kernel/KernelA.HPP,1294"$
    +$LK,"CArcEntry",A="FL:::/Kernel/KernelA.HPP,3749"$
    +$LK,"AOT_BIN_BLK_SIZE",A="FL:::/Kernel/KernelA.HPP,1798"$
    +$LK,"DOCf_FORM",A="FL:::/Kernel/KernelA.HPP,1302"$
    +$LK,"DOCF_FORM",A="FL:::/Kernel/KernelA.HPP,1266"$
    +$LK,"CHashTable",A="FL:::/Kernel/KernelA.HPP,642"$
    +$LK,"QueVectU8New",A="FL:::/Kernel/KDataTypes.CPP.Z,87",BI=507$
    +$LK,"MEM_INTERRUPT_STK",A="FL:::/Kernel/KernelA.HPP,2884"$
    +$LK,"BDT_RAM",A="FL:::/Kernel/KernelA.HPP,2629"$
    +$LK,"CMF_POP_CMP",A="FL:::/Kernel/KernelA.HPP,1696"$
    +$LK,"ICF_POP_CMP",A="FL:::/Kernel/KernelA.HPP,1610"$
    +$LK,"DOCf_CARRIAGE_RETURN",A="FL:::/Kernel/KernelA.HPP,1297"$
    +$LK,"MLMF_IS_STR",A="FL:::/Kernel/KernelA.HPP,788"$
    +$LK,"SYS_TIMER0_PERIOD",A="FL:::/Kernel/KernelA.HPP,553"$
     $LK,"SET_FS_BASE",A="FL:::/Kernel/KUtils.CPP.Z,446"$
    -$LK,"CISO1PriDesc",A="FL:::/Kernel/KernelA.HPP,2481"$
    -$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,3540"$
    -$LK,"SCf_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3525"$
    -$LK,"MSG_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3225"$
    -$LK,"SVCT_EXE_STR",A="FL:::/Kernel/KernelA.HPP,3182"$
    -$LK,"DOCF_OVERSTRIKE",A="FL:::/Kernel/KernelA.HPP,1286"$
    -$LK,"IOAPICARB",A="FL:::/Kernel/KernelA.HPP,512"$
    -$LK,"DOCf_OVERSTRIKE",A="FL:::/Kernel/KernelA.HPP,1323"$
    +$LK,"CISO1PriDesc",A="FL:::/Kernel/KernelA.HPP,2483"$
    +$LK,"PutHex",A="FL:::/Kernel/StrA.CPP.Z,12",BI=508$
    +$LK,"PopUp",A="FL:::/Kernel/SrvCmd.CPP.Z,377",BI=509$
    +$LK,"SCF_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3546"$
    +$LK,"SCf_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3531"$
    +$LK,"MSG_IP_R_DOWN",A="FL:::/Kernel/KernelA.HPP,3231"$
    +$LK,"SVCT_EXE_STR",A="FL:::/Kernel/KernelA.HPP,3188"$
    +$LK,"DOCF_OVERSTRIKE",A="FL:::/Kernel/KernelA.HPP,1288"$
    +$LK,"IOAPICARB",A="FL:::/Kernel/KernelA.HPP,514"$
    +$LK,"DOCf_OVERSTRIKE",A="FL:::/Kernel/KernelA.HPP,1325"$
     $LK,"COREAP_16BIT_INIT_END",A="FL:::/Kernel/MultiProc.CPP.Z,27"$
    -$LK,"SCF_SHIFT",A="FL:::/Kernel/KernelA.HPP,3532"$
    -$LK,"SCf_SHIFT",A="FL:::/Kernel/KernelA.HPP,3517"$
    -$LK,"WIF_SELF_FOCUS",A="FL:::/Kernel/KernelA.HPP,1407"$
    -$LK,"StrLastOcc",A="FL:::/Kernel/StrA.CPP.Z,599",BI=507$
    -$LK,"WIf_SELF_FOCUS",A="FL:::/Kernel/KernelA.HPP,1436"$
    -$LK,"FClose",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,74",BI=508$
    -$LK,"MDf_STK",A="FL:::/Kernel/KernelA.HPP,1570"$
    -$LK,"IEF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,1956"$
    -$LK,"CMT_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,1687"$
    +$LK,"SCF_SHIFT",A="FL:::/Kernel/KernelA.HPP,3538"$
    +$LK,"SCf_SHIFT",A="FL:::/Kernel/KernelA.HPP,3523"$
    +$LK,"WIF_SELF_FOCUS",A="FL:::/Kernel/KernelA.HPP,1409"$
    +$LK,"StrLastOcc",A="FL:::/Kernel/StrA.CPP.Z,599",BI=510$
    +$LK,"WIf_SELF_FOCUS",A="FL:::/Kernel/KernelA.HPP,1438"$
    +$LK,"FClose",A="FL:::/Kernel/BlkDev/DskCFile.CPP.Z,73",BI=511$
    +$LK,"MDf_STK",A="FL:::/Kernel/KernelA.HPP,1572"$
    +$LK,"IEF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,1958"$
    +$LK,"CMT_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,1689"$
     $LK,"mon_start_days1",A="FL:::/Kernel/KDate.CPP.Z,3"$
    -$LK,"HTF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,704"$
    +$LK,"HTF_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,706"$
     $LK,"mon_start_days2",A="FL:::/Kernel/KDate.CPP.Z,5"$
    -$LK,"FONT_HEIGHT",A="FL:::/Kernel/KernelA.HPP,3603"$
    -$LK,"SVCf_FOCUS_MASTER",A="FL:::/Kernel/KernelA.HPP,3170"$
    -$LK,"HTf_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,674"$
    -$LK,"DFT_CACHE_LINE_WIDTH",A="FL:::/Kernel/KernelA.HPP,581"$
    -$LK,"ATAR0_LCYL",A="FL:::/Kernel/KernelA.HPP,2278"$
    -$LK,"MemPagePresentMark",A="FL:::/Kernel/Mem/PageTables.CPP.Z,123",BI=509$
    -$LK,"ICf_DONT_PUSH_FLOAT0",A="FL:::/Kernel/KernelA.HPP,1610"$
    -$LK,"Sleep",A="FL:::/Kernel/KMisc.CPP.Z,150",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,"FONT_HEIGHT",A="FL:::/Kernel/KernelA.HPP,3610"$
    +$LK,"SVCf_FOCUS_MASTER",A="FL:::/Kernel/KernelA.HPP,3176"$
    +$LK,"HTf_GOTO_LABEL",A="FL:::/Kernel/KernelA.HPP,676"$
    +$LK,"DFT_CACHE_LINE_WIDTH",A="FL:::/Kernel/KernelA.HPP,583"$
    +$LK,"ATAR0_LCYL",A="FL:::/Kernel/KernelA.HPP,2281"$
    +$LK,"MemPagePresentMark",A="FL:::/Kernel/Mem/PageTables.CPP.Z,123",BI=512$
    +$LK,"ICf_DONT_PUSH_FLOAT0",A="FL:::/Kernel/KernelA.HPP,1612"$
    +$LK,"Sleep",A="FL:::/Kernel/KMisc.CPP.Z,150",BI=513$
    +$LK,"RedSeaMkDir",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,604",BI=514$
    +$LK,"PutKey",A="FL:::/Kernel/KeyDev.CPP.Z,1",BI=515$
     $LK,"_HASH_STR",A="FL:::/Kernel/KHashA.CPP.Z,120"$
    -$LK,"FUf_ALL",A="FL:::/Kernel/KernelA.HPP,2570"$
    +$LK,"FUf_ALL",A="FL:::/Kernel/KernelA.HPP,2571"$
     $LK,"sys_macro_task",A="FL:::/Kernel/KGlbls.CPP.Z,5"$
    -$LK,"CArcCompress",A="FL:::/Kernel/KernelA.HPP,3768"$
    -$LK,"CHashOpcode",A="FL:::/Kernel/KernelA.HPP,1948"$
    -$LK,"FifoU8Ins",A="FL:::/Kernel/KDataTypes.CPP.Z,173",BI=513$
    -$LK,"CGridGlbls",A="FL:::/Kernel/KernelA.HPP,3061"$
    -$LK,"FATFromName",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,168",BI=514$
    -$LK,"AAT_ADD_U32",A="FL:::/Kernel/KernelA.HPP,1971"$
    -$LK,"AAT_ADD_U16",A="FL:::/Kernel/KernelA.HPP,1969"$
    -$LK,"SC_PAUSE",A="FL:::/Kernel/KernelA.HPP,3581"$
    -$LK,"TRANSPARENT",A="FL:::/Kernel/KernelA.HPP,2948"$
    -$LK,"XTalkStrWait",A="FL:::/Kernel/SrvCmd.CPP.Z,497",BI=515$
    -$LK,"CArcCtrl",A="FL:::/Kernel/KernelA.HPP,3750"$
    -$LK,"SC_CTRL",A="FL:::/Kernel/KernelA.HPP,3554"$
    -$LK,"RS_ATTR_LONG_NAME_MASK",A="FL:::/Kernel/KernelA.HPP,2531"$
    -$LK,"ATAR1_CTRL",A="FL:::/Kernel/KernelA.HPP,2283"$
    -$LK,"ICF_A1_TO_F64",A="FL:::/Kernel/KernelA.HPP,1591"$
    -$LK,"RECALCF_ADD_CURSOR",A="FL:::/Kernel/KernelA.HPP,1349"$
    -$LK,"DOC_COLOR_BIN",A="FL:::/Kernel/KernelA.HPP,1139"$
    -$LK,"Ff_NOARGPOP",A="FL:::/Kernel/KernelA.HPP,848"$
    -$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,3565"$
    -$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,1134"$
    -$LK,"AAT_ADD_U64",A="FL:::/Kernel/KernelA.HPP,1973"$
    -$LK,"HTT_CLASS",A="FL:::/Kernel/KernelA.HPP,684"$
    -$LK,"HTt_CLASS",A="FL:::/Kernel/KernelA.HPP,654"$
    -$LK,"Cd2DirEntry",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,211",BI=521$
    -$LK,"IET_IMM_U0",A="FL:::/Kernel/KernelA.HPP,394"$
    -$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,"REGG_CLOBBERED",A="FL:::/Kernel/KernelA.HPP,1789"$
    -$LK,"ROPF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HPP,2940"$
    -$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,2860"$
    -$LK,"WIf_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HPP,1447"$
    +$LK,"CArcCompress",A="FL:::/Kernel/KernelA.HPP,3775"$
    +$LK,"CHashOpcode",A="FL:::/Kernel/KernelA.HPP,1950"$
    +$LK,"FifoU8Ins",A="FL:::/Kernel/KDataTypes.CPP.Z,173",BI=516$
    +$LK,"CGridGlbls",A="FL:::/Kernel/KernelA.HPP,3067"$
    +$LK,"FATFromName",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,168",BI=517$
    +$LK,"AAT_ADD_U32",A="FL:::/Kernel/KernelA.HPP,1973"$
    +$LK,"AAT_ADD_U16",A="FL:::/Kernel/KernelA.HPP,1971"$
    +$LK,"SC_PAUSE",A="FL:::/Kernel/KernelA.HPP,3587"$
    +$LK,"TRANSPARENT",A="FL:::/Kernel/KernelA.HPP,2954"$
    +$LK,"XTalkStrWait",A="FL:::/Kernel/SrvCmd.CPP.Z,497",BI=518$
    +$LK,"CArcCtrl",A="FL:::/Kernel/KernelA.HPP,3757"$
    +$LK,"SC_CTRL",A="FL:::/Kernel/KernelA.HPP,3560"$
    +$LK,"RS_ATTR_LONG_NAME_MASK",A="FL:::/Kernel/KernelA.HPP,2533"$
    +$LK,"ATAR1_CTRL",A="FL:::/Kernel/KernelA.HPP,2286"$
    +$LK,"ICF_A1_TO_F64",A="FL:::/Kernel/KernelA.HPP,1593"$
    +$LK,"RECALCF_ADD_CURSOR",A="FL:::/Kernel/KernelA.HPP,1351"$
    +$LK,"DOC_COLOR_BIN",A="FL:::/Kernel/KernelA.HPP,1141"$
    +$LK,"Ff_NOARGPOP",A="FL:::/Kernel/KernelA.HPP,850"$
    +$LK,"EdLiteFileLine",A="FL:::/Kernel/EdLite.CPP.Z,316",BI=519$
    +$LK,"FifoU8New",A="FL:::/Kernel/KDataTypes.CPP.Z,155",BI=520$
    +$LK,"SC_HOME",A="FL:::/Kernel/KernelA.HPP,3571"$
    +$LK,"ATAPIWritePktWord",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,106",BI=521$
    +$LK,"FilesFindMatch",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,40",BI=522$
    +$LK,"BlkDevsRelease",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,97",BI=523$
    +$LK,"DOC_COLOR_LINK",A="FL:::/Kernel/KernelA.HPP,1136"$
    +$LK,"AAT_ADD_U64",A="FL:::/Kernel/KernelA.HPP,1975"$
    +$LK,"HTT_CLASS",A="FL:::/Kernel/KernelA.HPP,686"$
    +$LK,"HTt_CLASS",A="FL:::/Kernel/KernelA.HPP,656"$
    +$LK,"Cd2DirEntry",A="FL:::/Kernel/BlkDev/DskStrA.CPP.Z,217",BI=524$
    +$LK,"IET_IMM_U0",A="FL:::/Kernel/KernelA.HPP,395"$
    +$LK,"FifoU8Rem",A="FL:::/Kernel/KDataTypes.CPP.Z,190",BI=525$
    +$LK,"StrLastRem",A="FL:::/Kernel/StrA.CPP.Z,609",BI=526$
    +$LK,"RedSeaDrvInit",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,58",BI=527$
    +$LK,"BlkDevAdd",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,26",BI=528$
    +$LK,"REGG_CLOBBERED",A="FL:::/Kernel/KernelA.HPP,1791"$
    +$LK,"ROPF_HALF_RANGE_COLOR",A="FL:::/Kernel/KernelA.HPP,2946"$
    +$LK,"DirLongNameFill",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,199",BI=529$
    +$LK,"QueVectU8Put",A="FL:::/Kernel/KDataTypes.CPP.Z,96",BI=530$
    +$LK,"StrFind",A="FL:::/Kernel/StrA.CPP.Z,624",BI=531$
    +$LK,"CMemRange",A="FL:::/Kernel/KernelA.HPP,2866"$
    +$LK,"WIf_FOCUS_TASK_CTRLS",A="FL:::/Kernel/KernelA.HPP,1449"$
     $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,1092"$
    -$LK,"DOCEF_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HPP,993"$
    -$LK,"TimersInit",A="FL:::/Kernel/KEnd.CPP.Z,84",BI=530$
    -$LK,"ATAR0_SECT",A="FL:::/Kernel/KernelA.HPP,2277"$
    -$LK,"WIF_SELF_CTRLS",A="FL:::/Kernel/KernelA.HPP,1409"$
    -$LK,"DOCEf_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HPP,1081"$
    -$LK,"IET_IMM_U8",A="FL:::/Kernel/KernelA.HPP,396"$
    -$LK,"SC_ALT",A="FL:::/Kernel/KernelA.HPP,3555"$
    -$LK,"ARGT_MOFFS8",A="FL:::/Kernel/KernelA.HPP,1912"$
    -$LK,"REGG_STK_TEMP",A="FL:::/Kernel/KernelA.HPP,1791"$
    -$LK,"WIf_SELF_CTRLS",A="FL:::/Kernel/KernelA.HPP,1437"$
    -$LK,"EXT_NUM_ENTRIES",A="FL:::/Kernel/KernelA.HPP,578"$
    -$LK,"DefineMatch",A="FL:::/Kernel/KDefine.CPP.Z,85",BI=531$
    -$LK,"CLexHashTableContext",A="FL:::/Kernel/KernelA.HPP,2112"$
    -$LK,"RLF_RAW",A="FL:::/Kernel/KernelA.HPP,462"$
    -$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,3849"$
    -$LK,"DCF_TRANSFORMATION",A="FL:::/Kernel/KernelA.HPP,3620"$
    -$LK,"FF_CONTIGUOUS",A="FL:::/Kernel/KernelA.HPP,2776"$
    -$LK,"TTS_CONST",A="FL:::/Kernel/KernelA.HPP,3266"$
    -$LK,"ISO1T_VOL_DRV_DESC",A="FL:::/Kernel/KernelA.HPP,2478"$
    +$LK,"OutStr",A="FL:::/Kernel/StrPrint.CPP.Z,33",BI=532$
    +$LK,"DOCEf_CHECK_COLLAPSABLE",A="FL:::/Kernel/KernelA.HPP,1094"$
    +$LK,"DOCEF_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HPP,995"$
    +$LK,"TimersInit",A="FL:::/Kernel/KEnd.CPP.Z,89",BI=533$
    +$LK,"ATAR0_SECT",A="FL:::/Kernel/KernelA.HPP,2280"$
    +$LK,"__CMD_LINE__",A="FL:::/Kernel/KernelA.HPP,2029"$
    +$LK,"WIF_SELF_CTRLS",A="FL:::/Kernel/KernelA.HPP,1411"$
    +$LK,"DOCEf_PAGE_REL_Y",A="FL:::/Kernel/KernelA.HPP,1083"$
    +$LK,"IET_IMM_U8",A="FL:::/Kernel/KernelA.HPP,397"$
    +$LK,"SC_ALT",A="FL:::/Kernel/KernelA.HPP,3561"$
    +$LK,"ARGT_MOFFS8",A="FL:::/Kernel/KernelA.HPP,1914"$
    +$LK,"REGG_STK_TEMP",A="FL:::/Kernel/KernelA.HPP,1793"$
    +$LK,"WIf_SELF_CTRLS",A="FL:::/Kernel/KernelA.HPP,1439"$
    +$LK,"EXT_NUM_ENTRIES",A="FL:::/Kernel/KernelA.HPP,580"$
    +$LK,"DefineMatch",A="FL:::/Kernel/KDefine.CPP.Z,85",BI=534$
    +$LK,"CLexHashTableContext",A="FL:::/Kernel/KernelA.HPP,2114"$
    +$LK,"RLF_RAW",A="FL:::/Kernel/KernelA.HPP,464"$
    +$LK,"WZeroBlks",A="FL:::/Kernel/BlkDev/DskBlk.CPP.Z,2",BI=535$
    +$LK,"ATAPISetMaxSpeed",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,118",BI=536$
    +$LK,"StkRep",A="FL:::/Kernel/KDbg.CPP.Z,104",BI=537$
    +$LK,"SwapU8",A="FL:::/Kernel/KernelB.HPP,117"$
    +$LK,"FUN_SEG_CACHE_STR_LEN",A="FL:::/Kernel/KernelA.HPP,3856"$
    +$LK,"DCF_TRANSFORMATION",A="FL:::/Kernel/KernelA.HPP,3627"$
    +$LK,"FF_CONTIGUOUS",A="FL:::/Kernel/KernelA.HPP,2782"$
    +$LK,"TTS_CONST",A="FL:::/Kernel/KernelA.HPP,3272"$
    +$LK,"ISO1T_VOL_DRV_DESC",A="FL:::/Kernel/KernelA.HPP,2480"$
     $LK,"SaveExceptRegs",A="FL:::/Kernel/KExcept.CPP.Z,43"$
    -$LK,"SC_END",A="FL:::/Kernel/KernelA.HPP,3566"$
    -$LK,"CAOTHeapGlbl",A="FL:::/Kernel/KernelA.HPP,1988"$
    -$LK,"ArcExpandBuf",A="FL:::/Kernel/Compress.CPP.Z,165",BI=535$
    -$LK,"FUf_MAP",A="FL:::/Kernel/KernelA.HPP,2575"$
    -$LK,"DOCf_MORE",A="FL:::/Kernel/KernelA.HPP,1308"$
    -$LK,"DOCF_MORE",A="FL:::/Kernel/KernelA.HPP,1272"$
    +$LK,"SC_END",A="FL:::/Kernel/KernelA.HPP,3572"$
    +$LK,"CAOTHeapGlbl",A="FL:::/Kernel/KernelA.HPP,1990"$
    +$LK,"ArcExpandBuf",A="FL:::/Kernel/Compress.CPP.Z,165",BI=538$
    +$LK,"FUf_MAP",A="FL:::/Kernel/KernelA.HPP,2576"$
    +$LK,"DOCf_MORE",A="FL:::/Kernel/KernelA.HPP,1310"$
    +$LK,"DOCF_MORE",A="FL:::/Kernel/KernelA.HPP,1274"$
     $LK,"chars_bmp_non_eol_white_space",A="FL:::/Kernel/StrA.CPP.Z,359"$
    -$LK,"CISO1PathEntry",A="FL:::/Kernel/KernelA.HPP,2466"$
    -$LK,"REGG_SAVED",A="FL:::/Kernel/KernelA.HPP,1790"$
    -$LK,"SF_ARG1",A="FL:::/Kernel/KernelA.HPP,557"$
    -$LK,"RLF_VGA",A="FL:::/Kernel/KernelA.HPP,456"$
    -$LK,"COLOR_MONO",A="FL:::/Kernel/KernelA.HPP,2968"$
    -$LK,"ACD_END_CHAR",A="FL:::/Kernel/KernelA.HPP,1513"$
    -$LK,"WIF_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1427"$
    -$LK,"DOCET_INVERT",A="FL:::/Kernel/KernelA.HPP,946"$
    -$LK,"SF_ARG2",A="FL:::/Kernel/KernelA.HPP,558"$
    -$LK,"SC_SCROLL",A="FL:::/Kernel/KernelA.HPP,3558"$
    -$LK,"DISPLAYf_NOT_RAW",A="FL:::/Kernel/KernelA.HPP,3290"$
    -$LK,"DOCEt_INVERT",A="FL:::/Kernel/KernelA.HPP,952"$
    -$LK,"ATTRf_INVERT",A="FL:::/Kernel/KernelA.HPP,893"$
    -$LK,"ATTRF_INVERT",A="FL:::/Kernel/KernelA.HPP,888"$
    -$LK,"SF_ARG3",A="FL:::/Kernel/KernelA.HPP,559"$
    -$LK,"ACD_PRONUNCIATION_END",A="FL:::/Kernel/KernelA.HPP,1506"$
    -$LK,"SF_ARG4",A="FL:::/Kernel/KernelA.HPP,560"$
    -$LK,"SF_ARG5",A="FL:::/Kernel/KernelA.HPP,561"$
    -$LK,"ODEF_STARTED",A="FL:::/Kernel/KernelA.HPP,241"$
    -$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,3796"$
    -$LK,"FUF_RISKY",A="FL:::/Kernel/KernelA.HPP,2599"$
    -$LK,"FUf_RISKY",A="FL:::/Kernel/KernelA.HPP,2573"$
    -$LK,"CAOTAbsAddr",A="FL:::/Kernel/KernelA.HPP,1975"$
    -$LK,"SF_ARG6",A="FL:::/Kernel/KernelA.HPP,562"$
    -$LK,"SC_ESC",A="FL:::/Kernel/KernelA.HPP,3549"$
    -$LK,"ACD_WORD_CHAR",A="FL:::/Kernel/KernelA.HPP,1514"$
    -$LK,"SF_ARG7",A="FL:::/Kernel/KernelA.HPP,563"$
    -$LK,"FAT32DrvValidate",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,48",BI=538$
    +$LK,"CISO1PathEntry",A="FL:::/Kernel/KernelA.HPP,2468"$
    +$LK,"REGG_SAVED",A="FL:::/Kernel/KernelA.HPP,1792"$
    +$LK,"SF_ARG1",A="FL:::/Kernel/KernelA.HPP,559"$
    +$LK,"RLF_VGA",A="FL:::/Kernel/KernelA.HPP,458"$
    +$LK,"COLOR_MONO",A="FL:::/Kernel/KernelA.HPP,2974"$
    +$LK,"ACD_END_CHAR",A="FL:::/Kernel/KernelA.HPP,1515"$
    +$LK,"WIF_FOCUS_TASK_IP_WHEEL",A="FL:::/Kernel/KernelA.HPP,1429"$
    +$LK,"DOCET_INVERT",A="FL:::/Kernel/KernelA.HPP,948"$
    +$LK,"SF_ARG2",A="FL:::/Kernel/KernelA.HPP,560"$
    +$LK,"SC_SCROLL",A="FL:::/Kernel/KernelA.HPP,3564"$
    +$LK,"DISPLAYf_NOT_RAW",A="FL:::/Kernel/KernelA.HPP,3296"$
    +$LK,"DOCEt_INVERT",A="FL:::/Kernel/KernelA.HPP,954"$
    +$LK,"ATTRf_INVERT",A="FL:::/Kernel/KernelA.HPP,895"$
    +$LK,"ATTRF_INVERT",A="FL:::/Kernel/KernelA.HPP,890"$
    +$LK,"SF_ARG3",A="FL:::/Kernel/KernelA.HPP,561"$
    +$LK,"ACD_PRONUNCIATION_END",A="FL:::/Kernel/KernelA.HPP,1508"$
    +$LK,"SF_ARG4",A="FL:::/Kernel/KernelA.HPP,562"$
    +$LK,"SF_ARG5",A="FL:::/Kernel/KernelA.HPP,563"$
    +$LK,"ODEF_STARTED",A="FL:::/Kernel/KernelA.HPP,242"$
    +$LK,"TaskFocusNext",A="FL:::/Kernel/Sched.CPP.Z,38",BI=539$
    +$LK,"Print",A="FL:::/Kernel/StrPrint.CPP.Z,907",BI=540$
    +$LK,"SFF_WHOLE_LABELS_BEFORE",A="FL:::/Kernel/KernelA.HPP,3803"$
    +$LK,"FUF_RISKY",A="FL:::/Kernel/KernelA.HPP,2600"$
    +$LK,"FUf_RISKY",A="FL:::/Kernel/KernelA.HPP,2574"$
    +$LK,"CAOTAbsAddr",A="FL:::/Kernel/KernelA.HPP,1977"$
    +$LK,"SF_ARG6",A="FL:::/Kernel/KernelA.HPP,564"$
    +$LK,"SC_ESC",A="FL:::/Kernel/KernelA.HPP,3555"$
    +$LK,"ACD_WORD_CHAR",A="FL:::/Kernel/KernelA.HPP,1516"$
    +$LK,"SF_ARG7",A="FL:::/Kernel/KernelA.HPP,565"$
    +$LK,"FAT32DrvValidate",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,48",BI=541$
     $LK,"StrCmp",A="FL:::/Kernel/StrA.CPP.Z,309"$
    -$LK,"MSG_RESIZE",A="FL:::/Kernel/KernelA.HPP,3230"$
    -$LK,"DOF_INTERCEPT_TASK_END",A="FL:::/Kernel/KernelA.HPP,1214"$
    -$LK,"SF_ARG8",A="FL:::/Kernel/KernelA.HPP,564"$
    -$LK,"ST_ERR_ST",A="FL:::/Kernel/KernelA.HPP,3511"$
    -$LK,"BlkDevChk",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,119",BI=539$
    -$LK,"MSG_IP_L_UP",A="FL:::/Kernel/KernelA.HPP,3222"$
    -$LK,"FSt_REDSEA",A="FL:::/Kernel/KernelA.HPP,2680"$
    -$LK,"CPCIDev",A="FL:::/Kernel/KernelA.HPP,2238"$
    -$LK,"DOCEf_DFT_LEN",A="FL:::/Kernel/KernelA.HPP,1108"$
    -$LK,"DOCEF_DFT_LEN",A="FL:::/Kernel/KernelA.HPP,1022"$
    -$LK,"RepOutU8",A="FL:::/Kernel/KernelB.HPP,91"$
    -$LK,"DOCEF_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HPP,984"$
    +$LK,"MSG_RESIZE",A="FL:::/Kernel/KernelA.HPP,3236"$
    +$LK,"DOF_INTERCEPT_TASK_END",A="FL:::/Kernel/KernelA.HPP,1216"$
    +$LK,"SF_ARG8",A="FL:::/Kernel/KernelA.HPP,566"$
    +$LK,"BlkDevDel",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,141",BI=542$
    +$LK,"ST_ERR_ST",A="FL:::/Kernel/KernelA.HPP,3517"$
    +$LK,"BlkDevChk",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,149",BI=543$
    +$LK,"MSG_IP_L_UP",A="FL:::/Kernel/KernelA.HPP,3228"$
    +$LK,"FSt_REDSEA",A="FL:::/Kernel/KernelA.HPP,2685"$
    +$LK,"CPCIDev",A="FL:::/Kernel/KernelA.HPP,2241"$
    +$LK,"DOCEf_DFT_LEN",A="FL:::/Kernel/KernelA.HPP,1110"$
    +$LK,"DOCEF_DFT_LEN",A="FL:::/Kernel/KernelA.HPP,1024"$
    +$LK,"RepOutU8",A="FL:::/Kernel/KernelB.HPP,92"$
    +$LK,"DOCEF_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HPP,986"$
     $LK,"sys_macro_root",A="FL:::/Kernel/KGlbls.CPP.Z,4"$
    -$LK,"VGAP_PALETTE_MASK",A="FL:::/Kernel/KernelA.HPP,3725"$
    -$LK,"DOCEf_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HPP,1072"$
    -$LK,"NUM_SYS_SEMAS",A="FL:::/Kernel/KernelA.HPP,613"$
    -$LK,"ATAPISync",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,501",BI=540$
    +$LK,"VGAP_PALETTE_MASK",A="FL:::/Kernel/KernelA.HPP,3732"$
    +$LK,"DOCEf_RIGHT_AUTO",A="FL:::/Kernel/KernelA.HPP,1074"$
    +$LK,"NUM_SYS_SEMAS",A="FL:::/Kernel/KernelA.HPP,615"$
    +$LK,"ATAPISync",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,501",BI=544$
     $LK,"TO_UPPER",A="FL:::/Kernel/StrA.CPP.Z,110"$
    -$LK,"RFLAGG_NORMAL",A="FL:::/Kernel/KernelA.HPP,326"$
    -$LK,"KERNEL_MODULE_NAME",A="FL:::/Kernel/KernelA.HPP,714"$
    -$LK,"SYS_SEMA_DSK_CACHE",A="FL:::/Kernel/KernelA.HPP,602"$
    -$LK,"MEM_PAGE_SIZE",A="FL:::/Kernel/KernelA.HPP,2869"$
    -$LK,"SleepUntil",A="FL:::/Kernel/KMisc.CPP.Z,142",BI=541$
    -$LK,"Spawn",A="FL:::/Kernel/KTask.CPP.Z,208",BI=542$
    -$LK,"CTaskDying",A="FL:::/Kernel/KernelA.HPP,3306"$
    -$LK,"MSG_IP_R_D_UP",A="FL:::/Kernel/KernelA.HPP,3228"$
    -$LK,"CRedSeaBoot",A="FL:::/Kernel/KernelA.HPP,2320"$
    -$LK,"WIF_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,1419"$
    +$LK,"RFLAGG_NORMAL",A="FL:::/Kernel/KernelA.HPP,327"$
    +$LK,"KERNEL_MODULE_NAME",A="FL:::/Kernel/KernelA.HPP,716"$
    +$LK,"SYS_SEMA_DSK_CACHE",A="FL:::/Kernel/KernelA.HPP,604"$
    +$LK,"MEM_PAGE_SIZE",A="FL:::/Kernel/KernelA.HPP,2875"$
    +$LK,"SleepUntil",A="FL:::/Kernel/KMisc.CPP.Z,142",BI=545$
    +$LK,"Spawn",A="FL:::/Kernel/KTask.CPP.Z,210",BI=546$
    +$LK,"CTaskDying",A="FL:::/Kernel/KernelA.HPP,3312"$
    +$LK,"MSG_IP_R_D_UP",A="FL:::/Kernel/KernelA.HPP,3234"$
    +$LK,"CRedSeaBoot",A="FL:::/Kernel/KernelA.HPP,2322"$
    +$LK,"WIF_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,1421"$
     $LK,"SET_GS_BASE",A="FL:::/Kernel/KUtils.CPP.Z,434"$
    -$LK,"RFLAGf_VINT_PENDING",A="FL:::/Kernel/KernelA.HPP,322"$
    -$LK,"DirEntryDel2",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,26",BI=543$
    -$LK,"DefineLoad",A="FL:::/Kernel/KDefine.CPP.Z,1",BI=544$
    +$LK,"RFLAGf_VINT_PENDING",A="FL:::/Kernel/KernelA.HPP,323"$
    +$LK,"DirEntryDel2",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,26",BI=547$
    +$LK,"DefineLoad",A="FL:::/Kernel/KDefine.CPP.Z,1",BI=548$
     $LK,"INT_FAULT_ERR_CODE_BITMAP",A="FL:::/Kernel/KInts.CPP.Z,87"$
    -$LK,"ICF_NO_RIP",A="FL:::/Kernel/KernelA.HPP,1615"$
    -$LK,"SUF_REM_CTRL_CHARS",A="FL:::/Kernel/KernelA.HPP,3782"$
    -$LK,"SC_SHIFT",A="FL:::/Kernel/KernelA.HPP,3553"$
    -$LK,"ATA_SET_MAX_EXT",A="FL:::/Kernel/KernelA.HPP,2261"$
    -$LK,"StrOcc",A="FL:::/Kernel/StrA.CPP.Z,467",BI=545$
    +$LK,"ICF_NO_RIP",A="FL:::/Kernel/KernelA.HPP,1617"$
    +$LK,"SUF_REM_CTRL_CHARS",A="FL:::/Kernel/KernelA.HPP,3789"$
    +$LK,"SC_SHIFT",A="FL:::/Kernel/KernelA.HPP,3559"$
    +$LK,"ATA_SET_MAX_EXT",A="FL:::/Kernel/KernelA.HPP,2264"$
    +$LK,"StrOcc",A="FL:::/Kernel/StrA.CPP.Z,467",BI=549$
     $LK,"StrCpy",A="FL:::/Kernel/StrA.CPP.Z,321"$
    -$LK,"DOCT_INS_BIN",A="FL:::/Kernel/KernelA.HPP,935"$
    +$LK,"DOCT_INS_BIN",A="FL:::/Kernel/KernelA.HPP,937"$
     $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,1689"$
    -$LK,"RLF_MP",A="FL:::/Kernel/KernelA.HPP,465"$
    -$LK,"SC_GUI",A="FL:::/Kernel/KernelA.HPP,3582"$
    -$LK,"RLF_INTERRUPTS",A="FL:::/Kernel/KernelA.HPP,463"$
    -$LK,"StrLen",A="FL:::/Kernel/KernelB.HPP,60"$
    -$LK,"ATA_READ_NATIVE_MAX",A="FL:::/Kernel/KernelA.HPP,2258"$
    -$LK,"PUSH_C_REGS",A="FL:::/Kernel/KernelA.HPP,1764"$
    -$LK,"IEF_REX_XOR_LIKE",A="FL:::/Kernel/KernelA.HPP,1733"$
    -$LK,"WIf_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,1445"$
    -$LK,"RLf_INTERRUPTS",A="FL:::/Kernel/KernelA.HPP,444"$
    -$LK,"ISO1DateStruct2CDate",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,74",BI=547$
    -$LK,"RLF_REGISTRY",A="FL:::/Kernel/KernelA.HPP,469"$
    -$LK,"RLf_REGISTRY",A="FL:::/Kernel/KernelA.HPP,450"$
    -$LK,"SC_INS",A="FL:::/Kernel/KernelA.HPP,3567"$
    -$LK,"TK_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,2106"$
    -$LK,"RT_NUM_IT",A="FL:::/Kernel/KernelA.HPP,1566"$
    -$LK,"AbsI64",A="FL:::/Kernel/KernelB.HPP,96"$
    -$LK,"SC_TAB",A="FL:::/Kernel/KernelA.HPP,3551"$
    +$LK,"FlushMsgs",A="FL:::/Kernel/SerialDev/Message.CPP.Z,87",BI=550$
    +$LK,"CMT_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1691"$
    +$LK,"RLF_MP",A="FL:::/Kernel/KernelA.HPP,467"$
    +$LK,"SC_GUI",A="FL:::/Kernel/KernelA.HPP,3588"$
    +$LK,"RLF_INTERRUPTS",A="FL:::/Kernel/KernelA.HPP,465"$
    +$LK,"StrLen",A="FL:::/Kernel/KernelB.HPP,61"$
    +$LK,"ATA_READ_NATIVE_MAX",A="FL:::/Kernel/KernelA.HPP,2261"$
    +$LK,"PUSH_C_REGS",A="FL:::/Kernel/KernelA.HPP,1766"$
    +$LK,"IEF_REX_XOR_LIKE",A="FL:::/Kernel/KernelA.HPP,1735"$
    +$LK,"WIf_SELF_KEY_DESC",A="FL:::/Kernel/KernelA.HPP,1447"$
    +$LK,"RLf_INTERRUPTS",A="FL:::/Kernel/KernelA.HPP,446"$
    +$LK,"ISO1DateStruct2CDate",A="FL:::/Kernel/BlkDev/FileSysISO.CPP.Z,14",BI=551$
    +$LK,"DOCF_SEL",A="FL:::/Kernel/KernelA.HPP,1285"$
    +$LK,"RLF_REGISTRY",A="FL:::/Kernel/KernelA.HPP,471"$
    +$LK,"RLf_REGISTRY",A="FL:::/Kernel/KernelA.HPP,452"$
    +$LK,"SC_INS",A="FL:::/Kernel/KernelA.HPP,3573"$
    +$LK,"TK_DOT_DOT",A="FL:::/Kernel/KernelA.HPP,2108"$
    +$LK,"RT_NUM_IT",A="FL:::/Kernel/KernelA.HPP,1568"$
    +$LK,"AbsI64",A="FL:::/Kernel/KernelB.HPP,97"$
    +$LK,"SC_TAB",A="FL:::/Kernel/KernelA.HPP,3557"$
     $LK,"SPF_DECIMAL",A="FL:::/Kernel/StrPrint.CPP.Z,9"$
    -$LK,"IOAPICVER",A="FL:::/Kernel/KernelA.HPP,511"$
    -$LK,"LAPIC_LVT_TIMER",A="FL:::/Kernel/KernelA.HPP,496"$
    -$LK,"sys_mem_init_flag",A="FL:::/Kernel/KernelB.HPP,183"$
    -$LK,"RWF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3588"$
    -$LK,"DISPLAYf_CHILDREN_NOT_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3294"$
    -$LK,"RedSeaFmt",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,94",BI=548$
    -$LK,"sys_var_init_flag",A="FL:::/Kernel/KernelB.HPP,185"$
    -$LK,"IOAPIC_DATA",A="FL:::/Kernel/KernelA.HPP,508"$
    -$LK,"SysGetStr2",A="FL:::/Kernel/KDbg.CPP.Z,337",BI=549$
    +$LK,"IOAPICVER",A="FL:::/Kernel/KernelA.HPP,513"$
    +$LK,"LAPIC_LVT_TIMER",A="FL:::/Kernel/KernelA.HPP,498"$
    +$LK,"sys_mem_init_flag",A="FL:::/Kernel/KernelB.HPP,182"$
    +$LK,"RWF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,3594"$
    +$LK,"DISPLAYf_CHILDREN_NOT_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3300"$
    +$LK,"RedSeaFmt",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,94",BI=552$
    +$LK,"sys_var_init_flag",A="FL:::/Kernel/KernelB.HPP,184"$
    +$LK,"IOAPIC_DATA",A="FL:::/Kernel/KernelA.HPP,510"$
    +$LK,"SysGetStr2",A="FL:::/Kernel/KDbg.CPP.Z,337",BI=553$
     $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,1289"$
    -$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,304"$
    -$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,3593"$
    -$LK,"CDevGlbls",A="FL:::/Kernel/KernelA.HPP,2913"$
    +$LK,"KDRawPutKey",A="FL:::/Kernel/KeyDev.CPP.Z,88",BI=554$
    +$LK,"DOCF_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1291"$
    +$LK,"Dos2CDate",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,9",BI=555$
    +$LK,"SYS_START_CR0",A="FL:::/Kernel/KernelA.HPP,305"$
    +$LK,"QSortI64",A="FL:::/Kernel/QSort.CPP.Z,1",BI=556$
    +$LK,"RawPrint",A="FL:::/Kernel/KDbg.CPP.Z,217",BI=557$
    +$LK,"CTextGlbls",A="FL:::/Kernel/KernelA.HPP,3599"$
    +$LK,"CDevGlbls",A="FL:::/Kernel/KernelA.HPP,2919"$
     $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,1324"$
    -$LK,"DOCF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,1287"$
    +$LK,"AreYouSure",A="FL:::/Kernel/StrB.CPP.Z,109",BI=558$
    +$LK,"C:/Doc/D3.TXT.Z",A="FL:::/Kernel/KernelB.HPP,145"$
    +$LK,"DOCf_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,1326"$
    +$LK,"DOCF_IN_DOLLAR",A="FL:::/Kernel/KernelA.HPP,1289"$
     $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,3505"$
    -$LK,"MP_VECT_ADDR",A="FL:::/Kernel/KernelA.HPP,504"$
    -$LK,"I_WAKE",A="FL:::/Kernel/KernelA.HPP,294"$
    +$LK,"CH_FORM_FEED",A="FL:::/Kernel/KernelA.HPP,3511"$
    +$LK,"MP_VECT_ADDR",A="FL:::/Kernel/KernelA.HPP,506"$
    +$LK,"I_WAKE",A="FL:::/Kernel/KernelA.HPP,295"$
     $LK,"Yield",A="FL:::/Kernel/Sched.CPP.Z,284"$
    -$LK,"CKeyDevGlbls",A="FL:::/Kernel/KernelA.HPP,3814"$
    -$LK,"MRT_DEV",A="FL:::/Kernel/KernelA.HPP,2858"$
    -$LK,"CBlkDevGlbls",A="FL:::/Kernel/KernelA.HPP,2749"$
    -$LK,"CMBRPrt",A="FL:::/Kernel/KernelA.HPP,2299"$
    -$LK,"StrNew",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,446",BI=556$
    -$LK,"HTT_GLBL_VAR",A="FL:::/Kernel/KernelA.HPP,683"$
    -$LK,"HTt_GLBL_VAR",A="FL:::/Kernel/KernelA.HPP,653"$
    -$LK,"WIF_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HPP,1424"$
    -$LK,"HTT_HELP_FILE",A="FL:::/Kernel/KernelA.HPP,695"$
    -$LK,"HTt_HELP_FILE",A="FL:::/Kernel/KernelA.HPP,665"$
    -$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,3223"$
    -$LK,"ATAR0_STAT",A="FL:::/Kernel/KernelA.HPP,2281"$
    -$LK,"DOC_COLOR_PMT",A="FL:::/Kernel/KernelA.HPP,1138"$
    -$LK,"HPET_GEN_CONF",A="FL:::/Kernel/KernelA.HPP,532"$
    -$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,"CKeyDevGlbls",A="FL:::/Kernel/KernelA.HPP,3821"$
    +$LK,"MRT_DEV",A="FL:::/Kernel/KernelA.HPP,2864"$
    +$LK,"CBlkDevGlbls",A="FL:::/Kernel/KernelA.HPP,2754"$
    +$LK,"CMBRPrt",A="FL:::/Kernel/KernelA.HPP,2301"$
    +$LK,"StrNew",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,446",BI=559$
    +$LK,"HTT_GLBL_VAR",A="FL:::/Kernel/KernelA.HPP,685"$
    +$LK,"HTt_GLBL_VAR",A="FL:::/Kernel/KernelA.HPP,655"$
    +$LK,"WIF_FOCUS_TASK_IP_L_D",A="FL:::/Kernel/KernelA.HPP,1426"$
    +$LK,"HTT_HELP_FILE",A="FL:::/Kernel/KernelA.HPP,697"$
    +$LK,"HTt_HELP_FILE",A="FL:::/Kernel/KernelA.HPP,667"$
    +$LK,"Round",A="FL:::/Kernel/KernelB.HPP,139"$
    +$LK,"TaskRstAwaitingMsg",A="FL:::/Kernel/SrvCmd.CPP.Z,25",BI=560$
    +$LK,"MSG_IP_L_D_DOWN",A="FL:::/Kernel/KernelA.HPP,3229"$
    +$LK,"ATAR0_STAT",A="FL:::/Kernel/KernelA.HPP,2284"$
    +$LK,"DOC_COLOR_PMT",A="FL:::/Kernel/KernelA.HPP,1140"$
    +$LK,"HPET_GEN_CONF",A="FL:::/Kernel/KernelA.HPP,534"$
    +$LK,"MPHalt",A="FL:::/Kernel/MultiProc.CPP.Z,164",BI=561$
    +$LK,"UnusedStk",A="FL:::/Kernel/KDbg.CPP.Z,46",BI=562$
    +$LK,"DirEntryCompareName",A="FL:::/Kernel/BlkDev/DskDirA.CPP.Z,62",BI=563$
     $LK,"BFieldExtU32",A="FL:::/Kernel/KernelB.HPP,30"$
    -$LK,"DOCf_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1326"$
    -$LK,"ATAS_DF",A="FL:::/Kernel/KernelA.HPP,2270"$
    -$LK,"ROPBF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HPP,2931"$
    -$LK,"StrScan",A="FL:::/Kernel/StrScan.CPP.Z,212",BI=561$
    +$LK,"DOCf_SUBSCRIPT_MODE",A="FL:::/Kernel/KernelA.HPP,1328"$
    +$LK,"ATAS_DF",A="FL:::/Kernel/KernelA.HPP,2273"$
    +$LK,"ROPBF_PROBABILITY_DITHER",A="FL:::/Kernel/KernelA.HPP,2937"$
    +$LK,"StrScan",A="FL:::/Kernel/StrScan.CPP.Z,212",BI=564$
     $LK,"CONSERVATIVE_16MEG_SIZE",A="FL:::/Kernel/Mem/PageTables.CPP.Z,87"$
    -$LK,"ACD_DEF_FILENAME_Z",A="FL:::/Kernel/KernelA.HPP,1499"$
    -$LK,"ATARepFind",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,194",BI=562$
    -$LK,"QSort2a",A="FL:::/Kernel/QSort.CPP.Z,32",BI=563$
    +$LK,"ACD_DEF_FILENAME_Z",A="FL:::/Kernel/KernelA.HPP,1501"$
    +$LK,"ATARepFind",A="FL:::/Kernel/BlkDev/DskATAId.CPP.Z,195",BI=565$
    +$LK,"QSort2a",A="FL:::/Kernel/QSort.CPP.Z,32",BI=566$
     $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,3805"$
    -$LK,"CBlkPool",A="FL:::/Kernel/KernelA.HPP,2885"$
    -$LK,"SC_NUM",A="FL:::/Kernel/KernelA.HPP,3557"$
    -$LK,"MSG_IP_R_UP",A="FL:::/Kernel/KernelA.HPP,3226"$
    -$LK,"IEF_DONT_SWITCH_MODES",A="FL:::/Kernel/KernelA.HPP,1728"$
    -$LK,"I_TIMER",A="FL:::/Kernel/KernelA.HPP,291"$
    +$LK,"QSort2b",A="FL:::/Kernel/QSort.CPP.Z,55",BI=567$
    +$LK,"KDF_HAS_DESCS",A="FL:::/Kernel/KernelA.HPP,3812"$
    +$LK,"CBlkPool",A="FL:::/Kernel/KernelA.HPP,2891"$
    +$LK,"SC_NUM",A="FL:::/Kernel/KernelA.HPP,3563"$
    +$LK,"MSG_IP_R_UP",A="FL:::/Kernel/KernelA.HPP,3232"$
    +$LK,"IEF_DONT_SWITCH_MODES",A="FL:::/Kernel/KernelA.HPP,1730"$
    +$LK,"I_TIMER",A="FL:::/Kernel/KernelA.HPP,292"$
     $LK,"IRQ_TIMER",A="FL:::/Kernel/KInts.CPP.Z,12"$
    -$LK,"DOC_COLOR_TREE",A="FL:::/Kernel/KernelA.HPP,1137"$
    -$LK,"DOCEf_HAS_BIN",A="FL:::/Kernel/KernelA.HPP,1060"$
    -$LK,"DOCEF_HAS_BIN",A="FL:::/Kernel/KernelA.HPP,972"$
    -$LK,"SYS_BOOT_BASE",A="FL:::/Kernel/KStart.CPP.Z,31"$
    -$LK,"VGAP_CRTC_INDEX",A="FL:::/Kernel/KernelA.HPP,3729"$
    -$LK,"BlkDevNextFree",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,88",BI=565$
    -$LK,"SFF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,3797"$
    -$LK,"CDIR_FILENAME_LEN",A="FL:::/Kernel/KernelA.HPP,2549"$
    -$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,1502"$
    +$LK,"DOC_COLOR_TREE",A="FL:::/Kernel/KernelA.HPP,1139"$
    +$LK,"DOCEf_HAS_BIN",A="FL:::/Kernel/KernelA.HPP,1062"$
    +$LK,"DOCEF_HAS_BIN",A="FL:::/Kernel/KernelA.HPP,974"$
    +$LK,"SYS_BOOT_BASE",A="FL:::/Kernel/KStart.CPP.Z,32"$
    +$LK,"VGAP_CRTC_INDEX",A="FL:::/Kernel/KernelA.HPP,3736"$
    +$LK,"ATTRF_SEL",A="FL:::/Kernel/KernelA.HPP,891"$
    +$LK,"BlkDevNextFree",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,108",BI=568$
    +$LK,"SFF_WHOLE_LABELS_AFTER",A="FL:::/Kernel/KernelA.HPP,3804"$
    +$LK,"CDIR_FILENAME_LEN",A="FL:::/Kernel/KernelA.HPP,2550"$
    +$LK,"CFifoI64",A="FL:::/Kernel/KernelA.HPP,175"$
    +$LK,"PCIReadU32",A="FL:::/Kernel/PCIBIOS.CPP.Z,201",BI=569$
    +$LK,"PCIReadU16",A="FL:::/Kernel/PCIBIOS.CPP.Z,182",BI=570$
    +$LK,"YearStartDate",A="FL:::/Kernel/KDate.CPP.Z,8",BI=571$
    +$LK,"ACD_H1_END",A="FL:::/Kernel/KernelA.HPP,1504"$
     $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,1277"$
    -$LK,"REG_UNDEF",A="FL:::/Kernel/KernelA.HPP,1787"$
    -$LK,"VGAFlush",A="FL:::/Kernel/Display.CPP.Z,88",BI=569$
    -$LK,"FILEMASK_AOT",A="FL:::/Kernel/KernelA.HPP,2287"$
    -$LK,"SysDbg",A="FL:::/Kernel/KMisc.CPP.Z,228",BI=570$
    -$LK,"FramePtrAdd",A="FL:::/Kernel/KHashB.CPP.Z,225",BI=571$
    -$LK,"DCF_SCREEN_BITMAP",A="FL:::/Kernel/KernelA.HPP,3632"$
    -$LK,"FF_NEEDS_WRITE",A="FL:::/Kernel/KernelA.HPP,2775"$
    -$LK,"WIF_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HPP,1426"$
    -$LK,"DOCF_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HPP,1260"$
    -$LK,"LAPIC_APIC_ID",A="FL:::/Kernel/KernelA.HPP,477"$
    -$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,2074"$
    -$LK,"TASKf_AWAITING_MSG",A="FL:::/Kernel/KernelA.HPP,3281"$
    -$LK,"ICF_A1_TO_INT",A="FL:::/Kernel/KernelA.HPP,1592"$
    -$LK,"DOCf_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HPP,1296"$
    -$LK,"EDF_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HPP,1246"$
    -$LK,"DOCEG_HAS_ALLOC",A="FL:::/Kernel/KernelA.HPP,1025"$
    -$LK,"CHashSrcSym",A="FL:::/Kernel/KernelA.HPP,722"$
    -$LK,"HashPublic",A="FL:::/Kernel/KHashB.CPP.Z,170",BI=574$
    -$LK,"HEAP_CTRL_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2898"$
    -$LK,"EDf_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HPP,1252"$
    -$LK,"CDocSettings",A="FL:::/Kernel/KernelA.HPP,1145"$
    -$LK,"BlkDevInit",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,31",BI=575$
    -$LK,"CTaskStk",A="FL:::/Kernel/KernelA.HPP,3298"$
    -$LK,"CWinMgrTimingGlbls",A="FL:::/Kernel/KernelA.HPP,1456"$
    -$LK,"FAT32_ENTRIES_PER_BLK",A="FL:::/Kernel/KernelA.HPP,2405"$
    -$LK,"ATARBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,442",BI=576$
    -$LK,"GVF_ALIAS",A="FL:::/Kernel/KernelA.HPP,868"$
    -$LK,"CTaskSettings",A="FL:::/Kernel/KernelA.HPP,3241"$
    -$LK,"IEF_ENDING_ZERO",A="FL:::/Kernel/KernelA.HPP,1735"$
    +$LK,"DOCF_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HPP,1279"$
    +$LK,"REG_UNDEF",A="FL:::/Kernel/KernelA.HPP,1789"$
    +$LK,"VGAFlush",A="FL:::/Kernel/Display.CPP.Z,88",BI=572$
    +$LK,"FILEMASK_AOT",A="FL:::/Kernel/KernelA.HPP,2290"$
    +$LK,"SysDbg",A="FL:::/Kernel/KMisc.CPP.Z,228",BI=573$
    +$LK,"FramePtrAdd",A="FL:::/Kernel/KHashB.CPP.Z,225",BI=574$
    +$LK,"DCF_SCREEN_BITMAP",A="FL:::/Kernel/KernelA.HPP,3639"$
    +$LK,"FF_NEEDS_WRITE",A="FL:::/Kernel/KernelA.HPP,2781"$
    +$LK,"WIF_FOCUS_TASK_IP_R_D",A="FL:::/Kernel/KernelA.HPP,1428"$
    +$LK,"DOCF_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HPP,1262"$
    +$LK,"LAPIC_APIC_ID",A="FL:::/Kernel/KernelA.HPP,479"$
    +$LK,"MPrintTime",A="FL:::/Kernel/StrPrint.CPP.Z,55",BI=575$
    +$LK,"CatPrint",A="FL:::/Kernel/StrPrint.CPP.Z,898",BI=576$
    +$LK,"TK_CHAR_CONST",A="FL:::/Kernel/KernelA.HPP,2076"$
    +$LK,"TASKf_AWAITING_MSG",A="FL:::/Kernel/KernelA.HPP,3287"$
    +$LK,"ICF_A1_TO_INT",A="FL:::/Kernel/KernelA.HPP,1594"$
    +$LK,"DOCf_DBL_DOLLARS",A="FL:::/Kernel/KernelA.HPP,1298"$
    +$LK,"EDF_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HPP,1248"$
    +$LK,"DOCEG_HAS_ALLOC",A="FL:::/Kernel/KernelA.HPP,1027"$
    +$LK,"CHashSrcSym",A="FL:::/Kernel/KernelA.HPP,724"$
    +$LK,"HashPublic",A="FL:::/Kernel/KHashB.CPP.Z,170",BI=577$
    +$LK,"HEAP_CTRL_SIGNATURE_VAL",A="FL:::/Kernel/KernelA.HPP,2904"$
    +$LK,"EDf_UNCOLLAPSE",A="FL:::/Kernel/KernelA.HPP,1254"$
    +$LK,"CDocSettings",A="FL:::/Kernel/KernelA.HPP,1147"$
    +$LK,"BlkDevInit",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,31",BI=578$
    +$LK,"CTaskStk",A="FL:::/Kernel/KernelA.HPP,3304"$
    +$LK,"CWinMgrTimingGlbls",A="FL:::/Kernel/KernelA.HPP,1458"$
    +$LK,"FAT32_ENTRIES_PER_BLK",A="FL:::/Kernel/KernelA.HPP,2407"$
    +$LK,"ATARBlks",A="FL:::/Kernel/BlkDev/DskATA.CPP.Z,442",BI=579$
    +$LK,"GVF_ALIAS",A="FL:::/Kernel/KernelA.HPP,870"$
    +$LK,"CTaskSettings",A="FL:::/Kernel/KernelA.HPP,3247"$
    +$LK,"IEF_ENDING_ZERO",A="FL:::/Kernel/KernelA.HPP,1737"$
     $LK,"PUT_CHARS",A="FL:::/Kernel/StrA.CPP.Z,51"$
    -$LK,"CMemE820",A="FL:::/Kernel/KernelA.HPP,357"$
    -$LK,"FILEMASK_GRA",A="FL:::/Kernel/KernelA.HPP,2290"$
    -$LK,"ATAS_DRQ",A="FL:::/Kernel/KernelA.HPP,2269"$
    -$LK,"DOCF_BORDER_DOC",A="FL:::/Kernel/KernelA.HPP,1263"$
    -$LK,"DrvEnable",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,151",BI=577$
    -$LK,"BlkDevLock",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,1",BI=578$
    -$LK,"BDT_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,2631"$
    -$LK,"DOCf_BORDER_DOC",A="FL:::/Kernel/KernelA.HPP,1299"$
    -$LK,"MRT_RAM",A="FL:::/Kernel/KernelA.HPP,2857"$
    -$LK,"FSt_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,2687"$
    -$LK,"ATAS_BSY",A="FL:::/Kernel/KernelA.HPP,2272"$
    -$LK,"DOCf_SELECTED",A="FL:::/Kernel/KernelA.HPP,1320"$
    -$LK,"DOCF_SELECTED",A="FL:::/Kernel/KernelA.HPP,1283"$
    -$LK,"HTt_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,667"$
    -$LK,"ICF_R_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1604"$
    -$LK,"DOCf_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HPP,1313"$
    -$LK,"sys_mem_init_val",A="FL:::/Kernel/KernelB.HPP,184"$
    -$LK,"SYS_SEMA_FORCE_WINMGR",A="FL:::/Kernel/KernelA.HPP,609"$
    -$LK,"ATAS_ERR",A="FL:::/Kernel/KernelA.HPP,2268"$
    -$LK,"Struct2Date",A="FL:::/Kernel/KDate.CPP.Z,14",BI=579$
    -$LK,"ISO1T_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,2479"$
    -$LK,"SF_RBP",A="FL:::/Kernel/KernelA.HPP,555"$
    -$LK,"SYS_MP_CNT",A="FL:::/Kernel/KStart.CPP.Z,224"$
    -$LK,"CMF_U8_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1697"$
    -$LK,"CMF_I8_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1696"$
    -$LK,"EdLiteUpdate",A="FL:::/Kernel/EdLite.CPP.Z,7",BI=580$
    +$LK,"CMemE820",A="FL:::/Kernel/KernelA.HPP,358"$
    +$LK,"FILEMASK_GRA",A="FL:::/Kernel/KernelA.HPP,2293"$
    +$LK,"ATAS_DRQ",A="FL:::/Kernel/KernelA.HPP,2272"$
    +$LK,"DOCF_BORDER_DOC",A="FL:::/Kernel/KernelA.HPP,1265"$
    +$LK,"DrvEnable",A="FL:::/Kernel/BlkDev/DskAddDev.CPP.Z,158",BI=580$
    +$LK,"BlkDevLock",A="FL:::/Kernel/BlkDev/DskBlkDev.CPP.Z,1",BI=581$
    +$LK,"BDT_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,2633"$
    +$LK,"DOCf_BORDER_DOC",A="FL:::/Kernel/KernelA.HPP,1301"$
    +$LK,"MRT_RAM",A="FL:::/Kernel/KernelA.HPP,2863"$
    +$LK,"FSt_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,2692"$
    +$LK,"ATAS_BSY",A="FL:::/Kernel/KernelA.HPP,2275"$
    +$LK,"HTt_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,669"$
    +$LK,"ICF_R_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1606"$
    +$LK,"DOCf_BREAK_UNLOCKED",A="FL:::/Kernel/KernelA.HPP,1315"$
    +$LK,"sys_mem_init_val",A="FL:::/Kernel/KernelB.HPP,183"$
    +$LK,"SYS_SEMA_FORCE_WINMGR",A="FL:::/Kernel/KernelA.HPP,611"$
    +$LK,"ATAS_ERR",A="FL:::/Kernel/KernelA.HPP,2271"$
    +$LK,"Struct2Date",A="FL:::/Kernel/KDate.CPP.Z,14",BI=582$
    +$LK,"ISO1T_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,2481"$
    +$LK,"SF_RBP",A="FL:::/Kernel/KernelA.HPP,557"$
    +$LK,"SYS_MP_CNT",A="FL:::/Kernel/KStart.CPP.Z,229"$
    +$LK,"CMF_U8_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1699"$
    +$LK,"CMF_I8_JMP_TABLE",A="FL:::/Kernel/KernelA.HPP,1698"$
    +$LK,"EdLiteUpdate",A="FL:::/Kernel/EdLite.CPP.Z,7",BI=583$
     $LK,"_ARC_ENTRY_GET",A="FL:::/Kernel/Compress.CPP.Z,43"$
    -$LK,"DOCT_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,942"$
    -$LK,"SYS_CTRL_ALT_FLAGS",A="FL:::/Kernel/KStart.CPP.Z,201"$
    -$LK,"BOOT_RAM_BASE",A="FL:::/Kernel/KernelA.HPP,3875"$
    -$LK,"MT_DVD",A="FL:::/Kernel/KernelA.HPP,2541"$
    -$LK,"DOCEf_SELECTED",A="FL:::/Kernel/KernelA.HPP,1047"$
    -$LK,"DOCEF_SELECTED",A="FL:::/Kernel/KernelA.HPP,1041"$
    -$LK,"DOCEt_SELECTED",A="FL:::/Kernel/KernelA.HPP,953"$
    -$LK,"DOCET_SELECTED",A="FL:::/Kernel/KernelA.HPP,947"$
    -$LK,"ATTRF_SELECTED",A="FL:::/Kernel/KernelA.HPP,889"$
    -$LK,"FramePtrDel",A="FL:::/Kernel/KHashB.CPP.Z,240",BI=581$
    +$LK,"DOCT_NUM_TYPES",A="FL:::/Kernel/KernelA.HPP,944"$
    +$LK,"SYS_CTRL_ALT_FLAGS",A="FL:::/Kernel/KStart.CPP.Z,206"$
    +$LK,"BOOT_RAM_BASE",A="FL:::/Kernel/KernelA.HPP,3882"$
    +$LK,"MT_DVD",A="FL:::/Kernel/KernelA.HPP,2543"$
    +$LK,"FramePtrDel",A="FL:::/Kernel/KHashB.CPP.Z,240",BI=584$
     $LK,"chars_bmp_filename",A="FL:::/Kernel/StrA.CPP.Z,345"$
    -$LK,"CICType",A="FL:::/Kernel/KernelA.HPP,1625"$
    -$LK,"ICF_A2_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1606"$
    -$LK,"ATTRf_SELECTED",A="FL:::/Kernel/KernelA.HPP,894"$
    -$LK,"FILEMASK_JIT",A="FL:::/Kernel/KernelA.HPP,2286"$
    -$LK,"ATAS_DRDY",A="FL:::/Kernel/KernelA.HPP,2271"$
    -$LK,"ARGT_AL",A="FL:::/Kernel/KernelA.HPP,1917"$
    -$LK,"CIntermediateCodeBase",A="FL:::/Kernel/KernelA.HPP,1645"$
    -$LK,"CAutoCompleteDictGlbls",A="FL:::/Kernel/KernelA.HPP,1521"$
    -$LK,"SYS_CODE_BP",A="FL:::/Kernel/KStart.CPP.Z,204"$
    -$LK,"WClusters",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,129",BI=582$
    -$LK,"LXchgI64",A="FL:::/Kernel/KernelB.HPP,253"$
    -$LK,"MSG_KEY_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3233"$
    -$LK,"TASKf_NONTIMER_RAND",A="FL:::/Kernel/KernelA.HPP,3286"$
    -$LK,"ARGT_CL",A="FL:::/Kernel/KernelA.HPP,1922"$
    -$LK,"ARGT_M8",A="FL:::/Kernel/KernelA.HPP,1902"$
    -$LK,"ChkOnStk",A="FL:::/Kernel/KDbg.CPP.Z,31",BI=583$
    -$LK,"TaskQueInsChild",A="FL:::/Kernel/Sched.CPP.Z,314",BI=584$
    -$LK,"TK_F64",A="FL:::/Kernel/KernelA.HPP,2075"$
    -$LK,"RLF_BOOT_HEAP",A="FL:::/Kernel/KernelA.HPP,460"$
    -$LK,"RLf_BOOT_HEAP",A="FL:::/Kernel/KernelA.HPP,441"$
    -$LK,"I_USER",A="FL:::/Kernel/KernelA.HPP,300"$
    -$LK,"FAT32CDirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,226",BI=585$
    -$LK,"BlkPoolAdd",A="FL:::/Kernel/Mem/BlkPool.CPP.Z,1",BI=586$
    +$LK,"CICType",A="FL:::/Kernel/KernelA.HPP,1627"$
    +$LK,"ICF_A2_WAS_STK",A="FL:::/Kernel/KernelA.HPP,1608"$
    +$LK,"FILEMASK_JIT",A="FL:::/Kernel/KernelA.HPP,2289"$
    +$LK,"ATAS_DRDY",A="FL:::/Kernel/KernelA.HPP,2274"$
    +$LK,"ARGT_AL",A="FL:::/Kernel/KernelA.HPP,1919"$
    +$LK,"CIntermediateCodeBase",A="FL:::/Kernel/KernelA.HPP,1646"$
    +$LK,"CAutoCompleteDictGlbls",A="FL:::/Kernel/KernelA.HPP,1523"$
    +$LK,"SYS_CODE_BP",A="FL:::/Kernel/KStart.CPP.Z,209"$
    +$LK,"WClusters",A="FL:::/Kernel/BlkDev/DskCluster.CPP.Z,129",BI=585$
    +$LK,"LXchgI64",A="FL:::/Kernel/KernelB.HPP,252"$
    +$LK,"MSG_KEY_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3239"$
    +$LK,"TASKf_NONTIMER_RAND",A="FL:::/Kernel/KernelA.HPP,3292"$
    +$LK,"ARGT_CL",A="FL:::/Kernel/KernelA.HPP,1924"$
    +$LK,"ARGT_M8",A="FL:::/Kernel/KernelA.HPP,1904"$
    +$LK,"ChkOnStk",A="FL:::/Kernel/KDbg.CPP.Z,31",BI=586$
    +$LK,"TaskQueInsChild",A="FL:::/Kernel/Sched.CPP.Z,314",BI=587$
    +$LK,"TK_F64",A="FL:::/Kernel/KernelA.HPP,2077"$
    +$LK,"RLF_BOOT_HEAP",A="FL:::/Kernel/KernelA.HPP,462"$
    +$LK,"RLf_BOOT_HEAP",A="FL:::/Kernel/KernelA.HPP,443"$
    +$LK,"I_USER",A="FL:::/Kernel/KernelA.HPP,301"$
    +$LK,"FAT32CDirFill",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,226",BI=588$
    +$LK,"BlkPoolAdd",A="FL:::/Kernel/Mem/BlkPool.CPP.Z,1",BI=589$
     $LK,"sys_task_being_screen_updated",A="FL:::/Kernel/KGlbls.CPP.Z,11"$
    -$LK,"TK_NORMALSCRIPT",A="FL:::/Kernel/KernelA.HPP,2070"$
    -$LK,"SF_RIP",A="FL:::/Kernel/KernelA.HPP,556"$
    -$LK,"IOAPIC_REG",A="FL:::/Kernel/KernelA.HPP,507"$
    -$LK,"Complex",A="FL:::/Kernel/KernelA.HPP,114"$
    -$LK,"Trunc",A="FL:::/Kernel/KernelB.HPP,142"$
    -$LK,"ROPB_EQU",A="FL:::/Kernel/KernelA.HPP,2924"$
    -$LK,"HTf_IMM",A="FL:::/Kernel/KernelA.HPP,673"$
    +$LK,"TK_NORMALSCRIPT",A="FL:::/Kernel/KernelA.HPP,2072"$
    +$LK,"SF_RIP",A="FL:::/Kernel/KernelA.HPP,558"$
    +$LK,"IOAPIC_REG",A="FL:::/Kernel/KernelA.HPP,509"$
    +$LK,"Complex",A="FL:::/Kernel/KernelA.HPP,115"$
    +$LK,"Trunc",A="FL:::/Kernel/KernelB.HPP,141"$
    +$LK,"ROPB_EQU",A="FL:::/Kernel/KernelA.HPP,2930"$
    +$LK,"HTf_IMM",A="FL:::/Kernel/KernelA.HPP,675"$
     $LK,"sys_pci_services",A="FL:::/Kernel/PCIBIOS.CPP.Z,159"$
    -$LK,"CStreamBlk",A="FL:::/Kernel/KernelA.HPP,2009"$
    -$LK,"ARGT_M32",A="FL:::/Kernel/KernelA.HPP,1904"$
    -$LK,"ARGT_M16",A="FL:::/Kernel/KernelA.HPP,1903"$
    -$LK,"MEM_EXTRA_HASH2_PAGES",A="FL:::/Kernel/KernelA.HPP,2874"$
    -$LK,"ARGT_CS",A="FL:::/Kernel/KernelA.HPP,1932"$
    -$LK,"ICF_R_TO_F64",A="FL:::/Kernel/KernelA.HPP,1589"$
    -$LK,"DOC_COLOR_QUOTE",A="FL:::/Kernel/KernelA.HPP,1143"$
    -$LK,"DOCSS_DBL_QUOTE",A="FL:::/Kernel/KernelA.HPP,1128"$
    +$LK,"CStreamBlk",A="FL:::/Kernel/KernelA.HPP,2011"$
    +$LK,"ARGT_M32",A="FL:::/Kernel/KernelA.HPP,1906"$
    +$LK,"ARGT_M16",A="FL:::/Kernel/KernelA.HPP,1905"$
    +$LK,"MEM_EXTRA_HASH2_PAGES",A="FL:::/Kernel/KernelA.HPP,2880"$
    +$LK,"ARGT_CS",A="FL:::/Kernel/KernelA.HPP,1934"$
    +$LK,"ICF_R_TO_F64",A="FL:::/Kernel/KernelA.HPP,1591"$
    +$LK,"DOC_COLOR_QUOTE",A="FL:::/Kernel/KernelA.HPP,1145"$
    +$LK,"DOCSS_DBL_QUOTE",A="FL:::/Kernel/KernelA.HPP,1130"$
     $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,1918"$
    -$LK,"LAPIC_PROCESSOR_PRIORITY",A="FL:::/Kernel/KernelA.HPP,481"$
    -$LK,"Core0Init",A="FL:::/Kernel/MultiProc.CPP.Z,354",BI=587$
    -$LK,"ARGT_DS",A="FL:::/Kernel/KernelA.HPP,1927"$
    -$LK,"ARGT_R8",A="FL:::/Kernel/KernelA.HPP,1892"$
    -$LK,"AStrNew",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,461",BI=588$
    -$LK,"ARGT_ES",A="FL:::/Kernel/KernelA.HPP,1928"$
    -$LK,"ICF_A2_TO_F64",A="FL:::/Kernel/KernelA.HPP,1593"$
    -$LK,"DOCF_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1257"$
    -$LK,"Cf_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,829"$
    -$LK,"FAT32DrvInit",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,22",BI=589$
    -$LK,"DOCT_ANCHOR",A="FL:::/Kernel/KernelA.HPP,924"$
    -$LK,"KbdPktRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,388",BI=590$
    -$LK,"KbdCmdRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,36",BI=591$
    -$LK,"D3DivEqu",A="FL:::/Kernel/KernelB.HPP,153"$
    -$LK,"ARGT_FS",A="FL:::/Kernel/KernelA.HPP,1929"$
    -$LK,"TK_I64",A="FL:::/Kernel/KernelA.HPP,2073"$
    -$LK,"ARGT_DX",A="FL:::/Kernel/KernelA.HPP,1923"$
    -$LK,"ARGT_M64",A="FL:::/Kernel/KernelA.HPP,1905"$
    -$LK,"DOCE_LEN_DFT",A="FL:::/Kernel/KernelA.HPP,1177"$
    -$LK,"DOC_COLOR_KEYWORD2",A="FL:::/Kernel/KernelA.HPP,1141"$
    -$LK,"CD2I32",A="FL:::/Kernel/KernelA.HPP,136"$
    -$LK,"DrvLock",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,1",BI=592$
    -$LK,"ARGT_GS",A="FL:::/Kernel/KernelA.HPP,1931"$
    -$LK,"CICTreeLinks",A="FL:::/Kernel/KernelA.HPP,1638"$
    -$LK,"DOC_COLOR_COMMENT",A="FL:::/Kernel/KernelA.HPP,1142"$
    -$LK,"SYS_MEM_E801",A="FL:::/Kernel/KStart.CPP.Z,32"$
    -$LK,"ATA_NOP",A="FL:::/Kernel/KernelA.HPP,2255"$
    -$LK,"SVCf_DONT_FILTER",A="FL:::/Kernel/KernelA.HPP,3172"$
    -$LK,"IET_REL_I0",A="FL:::/Kernel/KernelA.HPP,393"$
    -$LK,"OC_ADDR_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HPP,1756"$
    -$LK,"SYS_MEM_E820",A="FL:::/Kernel/KStart.CPP.Z,33"$
    -$LK,"SUF_SINGLE_SPACE",A="FL:::/Kernel/KernelA.HPP,3786"$
    -$LK,"RFLAGG_START",A="FL:::/Kernel/KernelA.HPP,325"$
    -$LK,"CKeyDevEntry",A="FL:::/Kernel/KernelA.HPP,3806"$
    -$LK,"MSG_IP_R_D_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3237"$
    -$LK,"MSG_IP_L_D_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3235"$
    -$LK,"XTalkWait",A="FL:::/Kernel/SrvCmd.CPP.Z,455",BI=593$
    -$LK,"MemPageTable",A="FL:::/Kernel/Mem/PageTables.CPP.Z,118",BI=594$
    -$LK,"CCF_KEEP_NUM_SIGN",A="FL:::/Kernel/KernelA.HPP,2134"$
    -$LK,"ARGT_MM",A="FL:::/Kernel/KernelA.HPP,1936"$
    +$LK,"ARGT_AX",A="FL:::/Kernel/KernelA.HPP,1920"$
    +$LK,"LAPIC_PROCESSOR_PRIORITY",A="FL:::/Kernel/KernelA.HPP,483"$
    +$LK,"Core0Init",A="FL:::/Kernel/MultiProc.CPP.Z,354",BI=590$
    +$LK,"ARGT_DS",A="FL:::/Kernel/KernelA.HPP,1929"$
    +$LK,"ARGT_R8",A="FL:::/Kernel/KernelA.HPP,1894"$
    +$LK,"AStrNew",A="FL:::/Kernel/Mem/MAllocFree.CPP.Z,461",BI=591$
    +$LK,"ARGT_ES",A="FL:::/Kernel/KernelA.HPP,1930"$
    +$LK,"ICF_A2_TO_F64",A="FL:::/Kernel/KernelA.HPP,1595"$
    +$LK,"DOCF_PLAIN_TEXT_TABS",A="FL:::/Kernel/KernelA.HPP,1259"$
    +$LK,"Cf_INTERNAL_TYPE",A="FL:::/Kernel/KernelA.HPP,831"$
    +$LK,"FAT32DrvInit",A="FL:::/Kernel/BlkDev/FileSysFAT.CPP.Z,22",BI=592$
    +$LK,"DOCT_ANCHOR",A="FL:::/Kernel/KernelA.HPP,926"$
    +$LK,"KbdPktRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,388",BI=593$
    +$LK,"KbdCmdRead",A="FL:::/Kernel/SerialDev/Keyboard.CPP.Z,36",BI=594$
    +$LK,"D3DivEqu",A="FL:::/Kernel/KernelB.HPP,152"$
    +$LK,"ARGT_FS",A="FL:::/Kernel/KernelA.HPP,1931"$
    +$LK,"TK_I64",A="FL:::/Kernel/KernelA.HPP,2075"$
    +$LK,"ARGT_DX",A="FL:::/Kernel/KernelA.HPP,1925"$
    +$LK,"ARGT_M64",A="FL:::/Kernel/KernelA.HPP,1907"$
    +$LK,"DOCE_LEN_DFT",A="FL:::/Kernel/KernelA.HPP,1179"$
    +$LK,"DOC_COLOR_KEYWORD2",A="FL:::/Kernel/KernelA.HPP,1143"$
    +$LK,"CD2I32",A="FL:::/Kernel/KernelA.HPP,137"$
    +$LK,"DrvLock",A="FL:::/Kernel/BlkDev/DskDrv.CPP.Z,1",BI=595$
    +$LK,"ARGT_GS",A="FL:::/Kernel/KernelA.HPP,1933"$
    +$LK,"CICTreeLinks",A="FL:::/Kernel/KernelA.HPP,1639"$
    +$LK,"DOC_COLOR_COMMENT",A="FL:::/Kernel/KernelA.HPP,1144"$
    +$LK,"SYS_MEM_E801",A="FL:::/Kernel/KStart.CPP.Z,33"$
    +$LK,"ATA_NOP",A="FL:::/Kernel/KernelA.HPP,2258"$
    +$LK,"SVCf_DONT_FILTER",A="FL:::/Kernel/KernelA.HPP,3178"$
    +$LK,"IET_REL_I0",A="FL:::/Kernel/KernelA.HPP,394"$
    +$LK,"OC_ADDR_SIZE_PREFIX",A="FL:::/Kernel/KernelA.HPP,1758"$
    +$LK,"SYS_MEM_E820",A="FL:::/Kernel/KStart.CPP.Z,34"$
    +$LK,"SUF_SINGLE_SPACE",A="FL:::/Kernel/KernelA.HPP,3793"$
    +$LK,"RFLAGG_START",A="FL:::/Kernel/KernelA.HPP,326"$
    +$LK,"CKeyDevEntry",A="FL:::/Kernel/KernelA.HPP,3813"$
    +$LK,"MSG_IP_R_D_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3243"$
    +$LK,"MSG_IP_L_D_DOWN_UP",A="FL:::/Kernel/KernelA.HPP,3241"$
    +$LK,"XTalkWait",A="FL:::/Kernel/SrvCmd.CPP.Z,455",BI=596$
    +$LK,"MemPageTable",A="FL:::/Kernel/Mem/PageTables.CPP.Z,118",BI=597$
    +$LK,"CCF_KEEP_NUM_SIGN",A="FL:::/Kernel/KernelA.HPP,2137"$
    +$LK,"ARGT_MM",A="FL:::/Kernel/KernelA.HPP,1938"$
     $LK,"chars_bmp_alpha_numeric_no_at",A="FL:::/Kernel/StrA.CPP.Z,335"$
    -$LK,"SysHlt",A="FL:::/Kernel/KernelB.HPP,259"$
    -$LK,"FUF_JUST_DIRS",A="FL:::/Kernel/KernelA.HPP,2604"$
    -$LK,"CD2I64",A="FL:::/Kernel/KernelA.HPP,140"$
    -$LK,"CD3I32",A="FL:::/Kernel/KernelA.HPP,126"$
    +$LK,"SysHlt",A="FL:::/Kernel/KernelB.HPP,258"$
    +$LK,"FUF_JUST_DIRS",A="FL:::/Kernel/KernelA.HPP,2605"$
    +$LK,"CD2I64",A="FL:::/Kernel/KernelA.HPP,141"$
    +$LK,"CD3I32",A="FL:::/Kernel/KernelA.HPP,127"$
     $LK,"_STRCPY",A="FL:::/Kernel/StrA.CPP.Z,65"$
    -$LK,"RedSeaDrvValidate",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,82",BI=595$
    -$LK,"YELLOW",A="FL:::/Kernel/KernelA.HPP,2963"$
    -$LK,"FUf_JUST_DIRS",A="FL:::/Kernel/KernelA.HPP,2578"$
    -$LK,"RedSeaFreeFreeLst",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,3",BI=596$
    -$LK,"IPVarsInit",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,68",BI=597$
    -$LK,"IET_REL_I8",A="FL:::/Kernel/KernelA.HPP,395"$
    -$LK,"MouseGetDevType",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,26",BI=598$
    -$LK,"ARGT_R32",A="FL:::/Kernel/KernelA.HPP,1894"$
    -$LK,"ARGT_R16",A="FL:::/Kernel/KernelA.HPP,1893"$
    -$LK,"DOC_DFT",A="FL:::/Kernel/KernelA.HPP,1155"$
    -$LK,"CMemberLstMeta",A="FL:::/Kernel/KernelA.HPP,787"$
    -$LK,"DISPLAYf_WIN_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3293"$
    -$LK,"CAutoCompleteGlbls",A="FL:::/Kernel/KernelA.HPP,1484"$
    -$LK,"CAOTImportExport",A="FL:::/Kernel/KernelA.HPP,1957"$
    -$LK,"MEM_SETH_STK",A="FL:::/Kernel/KernelA.HPP,2877"$
    -$LK,"DOCEF_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,1011"$
    -$LK,"CD3I64",A="FL:::/Kernel/KernelA.HPP,144"$
    +$LK,"RedSeaDrvValidate",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,82",BI=598$
    +$LK,"YELLOW",A="FL:::/Kernel/KernelA.HPP,2969"$
    +$LK,"FUf_JUST_DIRS",A="FL:::/Kernel/KernelA.HPP,2579"$
    +$LK,"RedSeaFreeFreeLst",A="FL:::/Kernel/BlkDev/FileSysRedSea.CPP.Z,3",BI=599$
    +$LK,"IPVarsInit",A="FL:::/Kernel/SerialDev/InputPointer.CPP.Z,68",BI=600$
    +$LK,"IET_REL_I8",A="FL:::/Kernel/KernelA.HPP,396"$
    +$LK,"MouseGetDevType",A="FL:::/Kernel/SerialDev/Mouse.CPP.Z,26",BI=601$
    +$LK,"ARGT_R32",A="FL:::/Kernel/KernelA.HPP,1896"$
    +$LK,"ARGT_R16",A="FL:::/Kernel/KernelA.HPP,1895"$
    +$LK,"DOC_DFT",A="FL:::/Kernel/KernelA.HPP,1157"$
    +$LK,"CMemberLstMeta",A="FL:::/Kernel/KernelA.HPP,789"$
    +$LK,"DISPLAYf_WIN_ON_TOP",A="FL:::/Kernel/KernelA.HPP,3299"$
    +$LK,"CAutoCompleteGlbls",A="FL:::/Kernel/KernelA.HPP,1486"$
    +$LK,"CAOTImportExport",A="FL:::/Kernel/KernelA.HPP,1959"$
    +$LK,"MEM_SETH_STK",A="FL:::/Kernel/KernelA.HPP,2883"$
    +$LK,"DOCEF_HAS_TERMINATOR",A="FL:::/Kernel/KernelA.HPP,1013"$
    +$LK,"CD3I64",A="FL:::/Kernel/KernelA.HPP,145"$
     $LK,"c32_edi",A="FL:::/Kernel/PCIBIOS.CPP.Z,157"$
    -$LK,"PURPLE",A="FL:::/Kernel/KernelA.HPP,2954"$
    -$LK,"TASKf_BREAK_LOCKED",A="FL:::/Kernel/KernelA.HPP,3282"$
    -$LK,"FILEMASK_SRC",A="FL:::/Kernel/KernelA.HPP,2288"$
    -D&ÈÈ#È7È9ÈGÈ]ÈlȆȴȸȸȽÈDVc337FR^jx„‹�¡¢¦@4@ããëï4CO]duvzH‚Ð.€.€2€J€W€\€e€j€o€t€y€~€–€·€È€â€ï€ø€ý€�����;�;�@�P�V�`�e�n�u�s�ƒ�ˆ�˜�Ÿ�á�‚
    ‚‚‚8‚6‚F‚R‚i‚r‚y‚…‚‘‚³‚³‚º‚Á‚Ƃ͂ւׂà‚å‚›ƒ<#³³Æàù
    &DŽ›££±¿ÍÕÛçúúˆ/M
    -¡
    -¡¡%¡0¡7¡7¡Z¡f¡u¡‚¡�¡”¡š¡©¡¯¡¶¡¶¡º¡º¡º¡º¡Ç¡Ê¡Ú¡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ê«ê«¬¬¬"¬+¬3¬9¬<¬H¬H¬v¬ƒ¬�¬�¬“¬š¬¢¬¨¬µ¬µ¬ˬ4æï¥ˆ¥ˆ¿ˆÍˆåˆøˆúˆúˆ‰
    \:MªZªZ¸Z»ZÈZÕZÜZãZëZïZ[['[/[6[8[8[@[44=XCXCfC‚C‚C…CŸCŸC¥C TXaãaãoã}ã(-3““›µ½ÒÔÞHÜêñfñfgg#g/gOgUg[ghgqgrg~g(Z`ÍÍ Í2Í:Í@ÍHÍ$ü¬y¬yµy½yÃyÈy0ƒ‹ª¾ª¾À¾˾ܾÞ¾æ¾8‘›"]"]0]7]B]G]I]`]`]i]o]Po2\2\@\G\R\W\`\o\u\|\~\�\Œ\’\€Zvú°ú°(±,±0±G±W±m±ƒ±•±•±±±¶±±ȱ˱Ò±Ö±Ú±Þ±â±â±â±Ÿ²à:.vv+v3vNvYv`vmvzv‡v›v®vÌv×våvõvþvwww*w/w6w>wPwSwawpw�w‡w�w™w¨wÀwÄwÉwÜwùwxxxxx%x2x4xFxNxPxZxaxaxaxhxpxzx…x‘xŸxµxäxäxyyyy/yQyVyVy]yey{y�y¢y¢y¥yÄyÇyÓyÖyÙy÷y÷yüyüyz	z
    zz z9z9z>z>zQzXzbzxz–z™z›z›z®zµz½zÓzñzôzözöz{{4{O{X{a{e{s{y{y{–{–{–{›{›{›{§{º{Å{Ö{Ù{Ü{á{á{æ{þ{|'|+|F|_|h|q|u|ƒ|‰|Œ|‘|‘|¡|¤|§|µ|¾|Ä|Ç|Ì|Ì|à|ì|ø|} }E}R}V}l}†}˜}¡}¥}¨}¨}¸}¾}Ð}Õ}Ý}ä}ð}
    ~~~#~*~6~O~\~_~f~i~k~ƒ~–~�~«~«~«~²~¾~È~Ö~ß~å~ì~÷~-MVÀ4×à%ˆ%ˆ9ˆGˆ_ˆjˆlˆlˆtˆ@>Jkksz‡–¥ºÎÝæ			`ˆœóó+3FH[[_innt|w’â’â’“““"“$“*“<“N“^“o““�“�“�“‡“ “½“͓ϓϓؓä“XÓå3)3)?)A)P)f)r)y)�)’)©)©)«)®)´)@8DÔzÔzâzäz{{{{ |ýYYŠ�›¤¤»Ìáæùý!*:BRad™ 4ÑÚkakaa‘a a±aÄaÊaÓa!¬(gg(g9gKgZgjg~g‰g�g§g§g³gÅgÏgÞgãgãgïgïgõgõg_hdhdhŒhŒhšh�h h®h´h½håh",ÛâÓaÓaáabïabbAb# †ŠªUªU³UÀUÅU$H—¥fòfò�òƒò”ò ò¥ò±ò±òµò¿ò%Œ¬ËÞéÞéÿéêê'ê:ê:êEêJêRêlêtê‡ê‘ê–ê¢ê¨ê¯ê¼ê¿êÈêËêÎêÓêúê& }�N¼N¼b¼p¼v¼'D.;¶z¶zÒzÔzçzìzüz	{{{{(p¼ÔFóFóTóbóxó‡óŒóœóžó¤ó­óµóÀóÚóêóùóùóôôôôô)h#9ÐgÐgægèg÷gh
    hhhhh7hwh„hŽhžh¨h³h¶hÄh*$glHjHjLj\jgj‚j+œd‡««ÁÊ×äñ	 33;P]]jr�“›¯ÁÉÝääî,|9êYêYôYZZZ#Z*Z3Z;ZSZZZaZkZsZzZ�Z‰Z�ZšZžZ Z Z¤Z-X N˜N˜m˜p˜u˜x˜�˜Œ˜Ÿ˜©˜±˜µ˜¸˜¸˜¾˜Á˜Ï˜.D ,¥J¥J¹JÉJÐJÞJåJìJíJõJ/ 
    -zŒzŒ~Œ§ŒÁŒ0”9ÉôÉôÑôõôõõõ)õ;õIõQõ_õsõ¦õ¨õ¬õ¬õ·õÂõÑõàõööö"ö)ö)ö;ö<ö@ö1XßñVõdõrõrõŠõ�õ™õ¡õ¬õ¶õ½õÕõÕõÕõÜõÜõÝõãõ2PÌyÌyàyðyöyûyûyzzzzz3 $(ØBØBæBúBC4Œ¡Àʇʇé‡å‡ø‡ˆˆˆˆ@ˆMˆYˆdˆpˆyˆ¸ˆÀˆ߈öˆ‰‰‰‰:‰@‰G‰J‰`‰5Œþ¹¹̹ιæ¹ô¹ººHºKºTº‚º…º‰ºŽºšº¡ºúƺȺϺñºôºôº÷º»	»»6@-9õJõJKKKK#K$K,K7<ðûDyDyXyfyqy‚yŠy’yšy�y¥y8,ZaEEEKE[E�EŽE�E9,JQDDD;DKDqDD�D:”£ÄIåIådånåxå�å¥åªå·å¼åØå÷åüåææ&æ;æ=æWælælæsæsæsæç;$ˆ�kkt‚—œ<<‰”*Ã*Ã4ÃJÃYÃ_ÃnÃtÃÉËÃ�Ã=H!$z$z2z>zCzCzTzfzkzkzqz>Lïþj‹j‹x‹{‹‡‹‘‹—‹¤‹¸‹¸‹Ú‹Ú‹÷‹û‹ÿ‹Œ? ƒ‡)-@\˜«6é6éJéXé]écénéwéwé‡é“é—é¯é¶é¹é»éÞéA4ˆ‘..2<Lm‚‚‚†B,jqFFFKF[F�F‹F�FC¸�Ç.$.$6$>$I$h$q$‡$›$¥$±$¼$¼$Ë$ì$%%&%<%G%O%O%^%%¤%±%¹%Ï%Ú%ì%ì%ú%&&&!&!&"&5&D ’–††Š—›E —›žž¢ÅÉFp]uòÁòÁÂÂ:Â:ÂAÂCÂCÂQÂSÂSÂ_Â_ÂeÂmÂqÂ|”®®®»ÂGì<™ç™ç¡ç­çÍçáçåçôçèèèUèUè�èžè¨è·èµèäèäèòèéé'é6éJéoéséuéué�é�éƒéƒé“éŸéŸé£é¨é±éÃéÊéØéçéêê-ê-ê3ê~ëH|XsIìIìaìkìrì~ì�ì�ì’ì–ì˜ì›ìžì¦ì©ì±ìÅìÏìåìëìîìðìöìíI4•ž:m:mDmFmNmUmgmhmmmJ,'.†Ü†Ü�ܒܚܴܹܿÜKP€�’\’\¤\§\²\·\Ä\Ï\Þ\ò\ü\]]]]L�NnB[B[\[g[l[u[ˆ[ [¨[°[½[Ç[Î[Õ[Ù[Ý[è[î[÷[û[\
    -\
    \\\+\Mé%òòò"ò3ò6òWòjòwò…ò®òÇòÓòÚòÜòßòåòéòúòó
    -ó
    óóóó.ó6ó<óIóLóOó]ónó~óŠóŒóœó©ó¯ó¼óÐóÓóÖóÞóÞóÞóæóíóôóôóôôN œ ÎÎÒçëO„
    *VÊVÊpÊsʆʓʯʲʸÊÁÊÍÊÏÊåÊûÊÿÊËËË+Ë7Ë9Ë9ËIËLËbËPˆ 	Ï	ÏÏÏ,Ï;ÏGÏkÏkÏkÏsÏxÏxϜϫÏÌÏäÏìÏîÏîÏúÏúÏÐÐÐ%Ð*Ð2ÐQ,æí»)»)¿)Ø)ß)á)RL@Ovv™ ª®²¶ÀÀÊÝàîS ¡¥îîòT ßããã
    -ã ã"ãUHúhh1h>hChOhohuh{hˆh‘h’hžhVHëù�g�g¡g®g³g¿gßgågëgøghhhW ¦ª
    -X «¯)-Y<ÈÓZÅZÅkÅwÅ{ŇʼnŕŜŢŪÅZd^sûKûKLLLL5LDLMLVLmLLˆL�L³L¼LÃLÏLÑL[°¥Íæ?æ?ñ?@@!@,@;@H@a@x@|@€@ˆ@�@™@·@¿@Ö@Ú@Þ@â@ê@ò@û@A,A5AFAMAMA^AgA\0&““'“'“>“a“a“f“]dÆÛóVóVWWWW*W/W1W7WFWKWMW\WgWkWqW^8°(°(Ê(Î(Ñ(Ü(ù(ý())_ MM&M1M@M`D¶Ã2^2^L^c^p^p^z^š^¤^aL™¨5P5PCPHPJPYP[PiPtP}P}P~P„Pb,bi�E�E”EËEÛEF
    FFc,RYˆDˆDŒDÃDÓDùDE	Ed0ÁÉb‰b‰v‰µ‰¼‰‰ωâ‰î‰eY™™¡¬´Õäí
    
    $
    1
    D
    b
    k
    x
    „
    �
    •
    ²
    ·
    ·
    Ä
    Î
    â
    ï
    *GRZu€•³¿ÈÍêó$>IQ\\\aoz�Œ‘˜f,ry�F�F”FËFÛFGG
    Gg$ûSXSXsX€X†X’Xh$+0fËfËoˀ˒ËÎËi¨Ciò–ò–— —*—4—>—J—J—R—{—„—‰—’—•—š—š—²—Ç—Ê—Í—Ó—Ú—Þ—
    ˜˜˜˜&˜&˜+˜+˜:˜J˜j<$/²•²•À•È•Еà•ì•ö•%–'–-–kô–ϳD³DÇDÖDåDïDþD
    E
    E/EDEOEVErEE�E›E©E·E×EÍEãEõEFF$F+F2F?FFFNF^FfFvF€F·FÆFÎFÑFßFl@nz&–&–3–;–>–L–P–T–W–e–l–q–m$aºpºpÍpÓpâpìpñpñpýpq	qq$q5qIqKqfq–q­qÃqÎqìqîqùqrrr#r-r8rFrMr[r[rer~r¦r±rÈrÍrÏrÙrõrþrs!snD/<ÆÜÆÜÏÜäÜðÜûÜÝÝÝ%Ý*Ýo<²½“_“_©_¼_Ð_Ù_ó_ú_```R`p,0Kt‚„q<bmÞ•Þ•ë•ó•ö•–––––#–r|0†ú†ú—ú¡ú¯úÇúßúôúûû&û3û>ûEûVû`û`ûqûyû~û…û’û¦û±ûsLš©
    †
    †)†0†7†C†L†f†q†v††•†¤†®†®†Ã†t8ýPýPQ Q2QLQZQcQmQu VäVäZäsävÔ,]!!)1?Rakw‚�Ÿ°ÌÔàèððûý0Dv‡”¯ÌÎàééûû	""0059w4¨±__'_9_B_\_c_y__’_x0DL#C#C+CACLC[CuC}CyPZjM„M„_„f„o„}„‚„…„‹„Ž„“„ž„¤„®„zd¦»ÆòÆòßòâòðòðòùòó	óóó'ó-ó0ó3ó5ó9óEó{H<J&æ&æ6æ<æGæPæSæ`æiæiæmæpæxæ|$PUîî÷}4ÕÞöôöôõõõ%õ>õCõJõPõ~¬LsJjJj\jkjqj…j˜j¯jÂjÙjìjkk1kLkPkWk]kakskŒk™kŸkºk¾kÅkËkÏkákúkl
    lll?Æ(Æ(Î(Ö(ç(ö())))))5)o)�)•)¹)Â)Ë)Ë)Ð)ã)è)ó)	**$*V*‰*š*ª*À*Ô*Û*
    +@+Q+a+a+h+z+z+ˆ+ˆ+‰+›+›+©+­+±+€P—§k^k^�^”^¦^¿^É^Ë^×^ð^û^__
    _�0jr~~Œ›¦¬®®´‚<KVHiHiQi[ikimi i§i§i§iªiƒ˜òæõæõìõêõúõ„ú„4ŠÓ>Â>ÂVÂ^ÂlÂwÂ{Â�‡•ª¯µÂÌÂÑÂ×ÂîÂóÂùÂÃÃÃ)Ã-ÃIÃ\ÃoÃtÃÃ�àïüÃÏÃÕÃÜÃÞÃñÃÄÄ Ä2Ä2ÄEÄGÄZÄ\ÄoÄqĄĄĠķĽÄÃÄÎÄòÄ…Hvävääšä£ä¯ä±ä³äÂäÂäÑäÓäÓäØä†\ÜïsWsWƒW‘WœWžW¥W¯WÅWÐWÒW×WÙWÚWÚWâW‡( ¦ÙÝÙÝäÝøÝ	ÞÞˆD¹Æââ%â3âBâNâUâdâpâpâvâ‰d!Ù!Ù1ÙLÙLÙNÙNÙNÙVÙgÙpÙ�Ù�Ù�ْٕٗٗٗ٣يD-:“B“B¨B¶B¶B¾BÔBØBØBÜBäB‹¤6[rr8r@rDrLrXr_rfrkr€r‘r•r•r¢r©r®rÅrÈrÑr×rÚrÜrærërsssss sŒ81;ÎËÎËÜËóËþËþË	Ì
    Ì
    ÌÌ�$<�ùù!3BKYgny…š¨°ÅÒçô	(2GQftt‚Žš®Õäó
    *?Teo�“¥·êø
    2IRa|“œ§®¹ÃÌÜŽ0t|ÓLÓL×LèLMMM8M�02:ƒƒ)ƒ4ƒFƒNƒQƒYƒ�¼Kv3S3SOSpS‚S‰S–S¢SªSµS½SÈSÓS÷ST
    TT%T'T/T:TETTT[T^T`TfTlT„T�T�T‘TªT‘,ÑØëë,ë8ëOëSëUëië’8KîJîJKKKK K.K5K;KdKkK˜KŸK£K»KÇKäKíKíKíKúK3L?LKLXLkLyLŠL�LªL»LÔLÛLæLMMMMMMMM*M,M,MH¨C¨C¶C¼CÃCÙCÙCàCúCúCD©<u€"£"£:£H£O£S£V£Z£a£…£•£ª`«¿ªmªm®m·mßmnn n.n3n9n;n«Láá4áPáPá]á]ájájázá~á~áŽá�á�áÇá¬d@Õ¶+¶+Á+×+Þ+ü+
    ,,),8,L,d,|,�,¥,°,Ò,í,
    --/-4-M-b-‚-™-©-«-á-8.	..W.h.o.�.¤.¾.¾.å.å.//G/U/µ/†/„/Ô/Û/à/ö/þ/þ/#030T0š0g0o0Z0Ã0õ0ý0ý0121S1]1t1|1g1Ð1Ð1Ð1Õ1Õ1æ122'2@2Y2t2Œ2¢2º2È2Ó2Ó2æ2ÿ23(3F3J3H3˜3¦3¶3Ä3Ü3÷3440404‡4X4V4¦4´4Ä4ß4÷4
    55Y5*5(5x5x5�5Š5Ÿ5Ÿ5°5·5Ì5Ì5Ý5Ý5à5ä5­4
    -ÄsÄsÒs×sÚsàsãsåsës®,sz¸j¸j¼jÁjËjÛjÛjk¯T¤µ²]²]À]Í]Ú]ø]û]^	^^^^'^/^°Ô%V3737S7a7f7p7p7w7…7ˆ7�7�7–7¤7§7«7·7·7Ã7É7Ö7ä7æ7æ7æ7é7î7ú7ú78 8"8585888;8K8±4mv‹-‹-•-•-Å-Û-.%.).²À6b××$×(×L×W×f×rׂסש×Á×Ñ×õ×õ×ØØØ?ØAØAØeØgØgØsØsØ{Ø{؇؛ثسسØÅØÌØÌØÞØëØ÷ØÙ³ÈÉ÷{{“�®®ÀÅÅ×ÜÜîóó
    -
    -!!!!(--?DDV[[r¢··ÉÐ×àïR´ˆSqÅNÅNÛNàNìNìNøNOOOO$O)O+O/O>OIOQOYOZOZOdOµ(w}+.+.4.;.[.b.e.¶ü‚½�í�í‰í�í®í¹íÂíØíìíøíî#îDîzîœî±îºî¼îÄîÌîãîëîöîïïï
    ï ï'ï:ïJïQïgï}ïïƒïƒïƒï�ï›ï›ï ï©ï»ïÂïÂïÔïÚïïï·€a}NÍNÍRÍaÍaÍpÍpÍÍÍŽÍ�Í�ͬÍÀÍ»ÍÊÍÊÍÙÍÙÍèÍ?Ò¸¨r˜eOeOO—O¬O³O¾OÄOÄOÇOÎOÙOÝOâOèOõOûOþOPPPPPPP/P¹Ltƒll.l;l>lBlPl[ldlƒl�lšlžl¡l³lºTÉÚÎÕÎÕÜÕãÕîÕÖ Ö)Ö/Ö9Ö>ÖLÖRÖUÖ[Ö»¼�ÈöÓöÓÔÔÔÔ9ÔCÔ[Ô_ÔwÔ{Ô•Ô•Ô¨Ô±Ô¼ÔÅÔÒÔÛÔðÔúÔÕÕÕÕ!Õ'ÕLÕOÕgÕwÕˆÕŒÕ�Õ›Õ›ÕŸÕŸÕŸÕÈÕ¼44t4tBtDtItLtOtTtZt½(ãéCbCbYbub‡b�b¨b¾”"°f°fÊféfõfgg g'g+g7gHgUg[g^gagdgigkgog{gŒg›g¡g¤g§gªgªg´g·gÉg¿„d�f\f\‰\�\š\Ÿ\£\¶\×\á\á\÷\]
    -]]"]&]9]Z]d]d]x]x]{]‰]À�]}¦Ù¦Ù¯Ù½Ù½ÙÕÙëÙúÙÚ/Ú>ÚWÚsÚyÚ‡Ú•Ú£Ú±Ú³ÚÉÚßÚõÚÛÛÛÛÁL�žlqlqzq†q‘q¢q¶qºqÈqÝqïqøqýqr%rÂܙ̉ú‰ú‘ú•ú¶úÃúÎú×úíúûû)û5ûEûXûeûxû–ûŸû¬û¸ûÄûÄûÑûÛûëûüü/üHüLüNüSüXüaüsüzüzüŒü’ü¹üÃ,u|ßß"ß\ßsßsß}ßÄ,fmå{å{ó{ù{||||ÅH­»”r”r�r©r¼rÇrßrárçròrörúrýrÆd¼Ñss
    s%s0sLsNsdszs�s£s½sÁsǬ޵Û9Û9÷9ù9:":O:Y:^:�:”:–:–:¥:¯:º:¿:Â:Ñ:Ö:å:þ:;;;#;';1;ÈP,BB B4B?BQBZBeBjBoB€B†BˆB�BÉ úþÖãÖãàãóãøãÊŒ'Ff“f“v“z“ƒ“ž“¬“±“´““Ǔæ“î“””<”>”F”p”t”””ž”¥”»”Ö”ò”•*•1•9•Ë´Py.ý.ýLýSý]ýbýuý€ý–ý ýµýºýÄýÎýØýÖýæýþþþ.þ8þRþvþ|þƒþ—þŸþ¥þ¬þ³þºþÁþÒþ×þ×þOÿÌøµïE�E�c�t�‰���–�–�¤�³�º�À�Ò�Ò�å�õ�ü���*�A�C�[�]�`�b�b�f�f�r�y�y�}�ˆ�Ž�š�¢�Ç�Ý�î�‘‘‘‘-‘ÍÜø+ÉþÉþÑþÕþàþîþ÷þ
    ÿ!ÿ+ÿ7ÿBÿPÿ_ÿÿœÿ´ÿ¸ÿÑÿéÿøÿüÿ-<\jy¥²¶ÃÕÕãêüü
    -
    - Έ1O¶û¶û¿ûáûìûýûü)ü>üSü\üaüaüqü}üƒü�ü¦üÉüÙüÙüâüçüèü,ýÏ€5E�E�e�q�}���…�”�¨�°�¶�Ê�Ù�å�ñ�õ�ø�ú�‚‚‚(‚,‚5‚;‚N‚Ð$).CCCC)C/CÑ,“šö¼ö¼½ ½*½0½3½;½Ò¨ç
    FxFx`xcx{x†x–x¨x¬xºxÃxåxëxëx÷xyyy"y&y&y&y)y+y/y/y4yByPy^ycyeyey{yÓLêùìì2ì>ìXìcìpì„ìŠì–ìÔ ÿþãþãäääÕ`#[4[4_4v4†4–4©4°4Ç4×4ç4ø4	55;5\5s5~5‰5Ã5ÖTAAA#A2ADAIA_AfAxA‹AžA¸AÈAÍAÍAÏA×`~b—b™b¡b½bÆbÙbèbíbccc)c9c9cKc‹cØH_mƒ8ƒ8£8±8·8Ë8Ñ8Ö8Þ8á8í8Ù$zGGG.G‘ãœ$Ã5Ã5Ë5Ñ5â5ñ56(6(646E6P6\6\6i6{6€6§6®6¿6É6Î6Î6Î6î67(7-727äx‚œááõÿ!$(1ADMPbˆ�™™ŸËÐÖãå8sQsQƒQ†Q‹QŽQœQ¢Q¥Q§Q¯QæD&6Ü6Ü>ÜFÜNÜVÜ^ÜfÜnÜvÜ~܂܆ÜçdavB’B’R’^’i’n’{’„’ˆ’Ž’”’œ’¤’¬’È’Ë’Ö’Ö’Þ’èH~ŒÛÛ1Û?ÛPÛUÛaÛÛ…Û‘Û¯ÛµÛµÛÁÛé(.4ª�ª�³�Á�Ð�ß�ä�ê0
    -‚
    -‚‚0‚i‚o‚q‚q‚w‚ëDŒ™…………±…¿…Ê…Î…Ò…Ö…Ú…æ…ó…ö…†ì€Íé¹ü¹üÄüÌü×üâüíüöüý ý)ý=ýdýzý”ýœý¸ýÄýÏýçýòýùýþ	þþí<ã)ã)ë)	****;*J*d*|*~*€*îLÁГ;“;­;À;Õ;Û;á;ð;þ;þ;<<ïˆúU€U€k€�€¡€¡€³€¾€Ô€Ô€ä€æ€æ€æ€÷€�	�
    ���!�'�-�-�0�>�ð8ÿ	
    -Œ
    -ŒŒ#Œ.ŒQŒgŒjŒuŒñ?¶{¶{¿{Ë{Û{è{ù{||*|1|D|W|i|q|’|¦|©|±|Á|Ò|ù|}}S}U}f}r}w}}¡}´}À}è}òH -zz0zCz\zqzwz}z}z…z‡z³zó8JT†Ì†Ì”̶̶̫ÌÁÌÉÌÉÌÏÌôDê÷!þ!þ3þ?þUþoþzþzþ‹þ›þ�þÈþõ\@Sî}î}ò}~~.~E~N~Y~d~…~‡~’~�~¦~¯~Â~Õ~Õ~×~ö$ôù5€5€>€G€M€R€÷ 
    -EMEMNMYMjMøDÇÔvâvâ…âŠâ“â¤â¥â¸â»âÁâùh-ƒ"";"="F"Z"]"b"f"…"™"œ"®"¶"½"Ü"å"ç"#####J#T#^#h#r#y#…#‘#›#›#›#¼#¼#Å#Ç#Ç#Ð#Ò#Ò#Û#Ý#Ý#â#ä#ä#é#é#é#í#$$)$@$I$N$X$d$p$|$�$¦$¸$¼$Ç$Ý$í$%,%J%J%J%J%J%T%]%d%ä%ú@ÅÑçç'ç.ç3çIçKçTçfçlç—çû4þÛþÛÜÜÜÜ&Ü.Ü2Ü6Üü,ÖÛÖÛÞÛæÛîÛöÛúÛþÛýx7FFZ_ipƒœœ«ÁÊÙààãí
    -þ”
    -Û|æŸæŸ 	   ) 4 ? A T b m x Œ — š   ¤ § ­ ± ´ · Ê ß ç ê ¡¡¡¡¡1¡F¡N¡Q¡i¡y¡~¡~¡†¡†¡©¡©¡©¡­¡¯¡¯¡³¡µ¡µ¡¹¡»¡»¡¿¡¿¡¿¡Â¡Ä¡Ä¡Ç¡Ì¡Ò¡Õ¡Ù¡Û¡á¡ä¡ü¡¢¢¢¢#¢6¢Q¢S¢i¢i¢i¢n¢n¢p¢p¢u¢x¢ž¢ž¢ž¢¶¢¼¢Ó¢â¢ñ¢££=£B£B£Z£x£}£}£•£³£µ£µ£Í£é£ë£ë£¤ ¤ ¤=¤I¤N¤N¤f¤}¤‚¤‚¤š¤¶¤»¤»¤¿¤×¤õ¤ù¤û¤û¤ÿ¤¥5¥9¥9¥W¥\¥\¥t¥‹¥’¥—¥—¥¯¥Æ¥Í¥Û¥ë¥¦¦¦¦&¦.¦W¦Y¦Y¦q¦q¦–¦·¦Ö¦Û¦Û¦ó¦ó¦§!§C§7§[§z§›§ž§£§£§»§Ò§Ü§á§ò§ò§ø§¨¨¨'¨7¨7¨m¨{¨�¨˜¨ ¨©¨©¨µ¨¹¨¹¨Â¨Ñ¨Ú¨Ú¨ã¨í¨	©'©D©S©Y©n©v©‚©Œ©Œ©¤©¦©±©É©Ë©ë©ë©ð©ð©&ª4ª=ª=ªIªMªMªVªeªnªnªwª}ª™ª¤ª¼ª¾ªÉªáªãªÿªÿªÿª«0«2«2«J«a«f«f«~«•«Ÿ«¤«º«º«Ñ«Ñ«Ý«á«ç«ð«ÿ«¬¬¬¬4¬6¬R¬]¬x¬z¬z¬ƒ¬›¬¦¬¼¬É¬Ñ¬ò¬ô¬ü¬­­"­'­H­R­R­m­w­‚­ž­±­È­Ð­Ú­Ú­ã­ç­þ­6®A®A®A®U®^®b®y®±®±®³®³®Ï®Ù®á®á®ê®î®¯=¯N¯T¯k¯s¯€¯…¯…¯Ž¯’¯©¯á¯ò¯û¯°°°°'°>°H°M°c°{°{°¥°¯°¯°Ì°Ð°ã°ë°ò°ý°±	±	±±A±U±s±Š±”±ž±ž±®±Ø±è±ú±²
    -²$²6²B²F²F²F²F²J²O²O²Z²^²v²�²—²œ²²²Ê²Ê²ô²þ²#³(³(³(³3³7³O³f³p³u³‹³‹³£³£³Õ³ß³ü³´´´8´>´^´p´x´z´“´¡´¾´Î´Î´û´ý´'µ)µEµPµZµdµkµˆµ‘µ‘µ¾µÖµÙµôµôµôµùµþµ1¶E¶c¶z¶¶‰¶“¶À¶Ô¶×¶î¶î¶î¶î¶ø¶·%·/·4·4·L·c·m·}·}·™·­·°·Â·Ó·Ù·ð·ø·¸
    -¸
    -¸
    -¸&¸:¸=¸O¸h¸m¸m¸…¸œ¸¦¸¶¸¶¸Ò¸æ¸é¸û¸¹¹)¹1¹>¹C¹C¹C¹_¹s¹v¹ˆ¹¡¹¦¹¦¹¦¹¾¹Õ¹ß¹ï¹ï¹º%º6º<ºSº[ºdºiºiºiºŽºŸº¸º½º½ºÒºÒºÒºîºîº»»L¼ÿ@ŒŒ֌äŒäŒñŒ�!�%�3�6�>�|�œš£š£·£¹£Ç£Ç£Õ£è£¤3¤A¤Q¤t¤\¤ޤ®¤äȤȤȤÚ¤ݤé¤8v€ÂÂÂÂÑÂßÂðÂôÂôÂùÂùÂÿ¬§ÎÞÞ!Þ7ÞMÞKÞ[ÞcÞjÞnÞvÞ†Þ”Þ£Þ©Þ±Þ½ÞÃÞÃÞÊÞÎÞÎÞÐÞ7à@&2ê¿ê¿û¿À À,À@ÀMÀTÀWÀ_À4GP’€’€¦€¼€Ç€Ì€Ú€ç€ð€�p+Ckk‹œ£´»»ÑÑßçõýý(S~‹©©¶¶¶ÄDŸ¬,r,r8rOrZr`rfrlr‚r‰rŽr”rxRlC	C	Z	d	t	�	ª	½	Î	ù	
    -
    -%
    -/
    -<
    -F
    -T
    -Z
    -f
    -m
    -y
    -®
    -(-3ûûÿ=h	xÒ¬Ò¬ä¬ó¬ö¬­:­J­s­ƒ­�­­Ï­ß­å­õ­õ­®
    -®®® ®%®(®‹®
    -@=I�ë�ë“ëžë«ë³ë»ëÃëËëÓëÛëá똣Å+V+VCVRV`VpVvVvV�VŒV�V”VžV¬V³V´VÀVÆVÌVÏVØVÙVÙVåVçVóVX7‰ÀÀ$À*À1ÀAÀHÀPÀVÀ]ÀsÀ�À…ÀŠÀ�ÀžÀ¡À¦À©À©À¹ÀÊÀÌÀÞÀàÀíÀòÀùÀûÀÁ
    -Á
    -ÁÁ+Á.Á0Á<Á>Á^ÁcÁjÁsÁyÁÁ†Á‰Á‰Á™ÁªÁ¬Á×ÁùÁûÁÂÂÂÂ$Â(Â(Â>Â
    D3@bÀbÀqÀˆÀ–À¢À¢À·ÀÌÀØÀäÀæÀìÀ@ˆ”ÃMÃMÙMûMNNN&N,N/N7N0ÉáÉáÒá×áàáæáæáëá,;B²–²–Á–Í–Û–ä–é–ï–8ƒ�ÖßÖßäßðßà.à0à7à?àAàGàä6¾¾<¾?¾B¾V¾^¾e¾y¾|¾~¾¡¾¡¾¤¾´¾¶¾¶¾¹¾»¾»¾¾¾Õ¾ê¾¿¿¿!¿!¿!¿#¿#¿(¿G¿M¿\¿l¿€¿�¿’¿¤¿´¿¹¿¹¿Å¿Å¿Ò¿Õ¿Õ¿À8ÔުŪŹÅÏÅÞÅüÅÆÆÆÆÆô…¾¾–¾–ЖӖݖê–î–ô–ô–û–——	————#—*—0—7—=—D—J—Q—W—^—d—q—w—~—‡—�—�—˜—™—ª—½—¿—Ï—Ö—á—ì—÷—˜
    ˜˜˜"˜LWf°i°i¹iÉiÉiçiíiýij	jjjjjBjhÝóuuŠ™ž®¶¶ÄÎÝåñ€€€€(€+€3€D<IÌÌ*ÌFÌTÌdÌfÌhÌsÌwÌwÌÌP„”ºlºlÉlÒlÜlÞlðlðlðlòlúlm$m2m3m9m0Ž–^^1^D^V^\^_^g^<Zeppp#p+p/p;p@pDpJp\ÇÚNNRex‹–ª»Ýÿ5Pk†¡¼†TK\JÁJÁXÁjÁpÁzÁ’Á˜ÁšÁ¥Á½ÁÉÁáÁçÁçÁçÁçÁíÁX£µee1e>eCeOeoeue‚e�e–eŸe£e¯eX†˜aÔaÔ|Ô„Ô�Ô«Ô«Ô´Ô´Ô¹ÔÊÔÓÔÞÔÞÔêÔ÷Ô ,£ª®½®½Â½Ô½Ù½ê½¾ ä6m‰m‰‡‰Š‰�‰“‰§‰®‰±‰Ì‰Ö‰Û‰â‰ç‰ç‰ø‰ê‰ŠŠ)Š=ŠFŠNŠ_Š_Š_ŠhŠoŠ}ŠŠŠŠ�Š¯Š¿ŠÇŠÙŠâŠóŠûŠ
    ‹‹‹‹‹‹_‹!	IöXöXY%Y1YjDj'Ü4†m†m¤m°m¹m×m×mÙmàmàmñmømnn!n-n0n5nUnpnpn†nˆnˆnžn n n¬n¬nÁnÒnØnÛnÛnÞnãnënüno	ooo:o:o?o?o?oZo(ðh b…b…v…’…¢…¢…¶…À…Ä…È…Õ…æ…ï…󅆆†"†1†4†?†t†€†Œ†”†ž†¬†½†І݆	‡‡*‡8‡8‡D‡h‡t‡‡†‡Œ‡“‡œ‡Ÿ‡ć)4AJòÀòÀûÀÁÁ Á(Á0Á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´ÆiÆiÜièiðijjj+j9jKjTjZj_jvjj—j§j§j´jÂjÎjÞjðjðjôjújkkkkk#k3k7k\k\kkkmksk{k�k¢k¬k»kÀkÀkÌkÌkÚkãkãkòk l$l'l+l2l=lSlhlwl†l‘l“l™l¦l¬l³lÀlÆlÆlÍlãlèlðlølmmm€m-,%l++#+'+.+5+@+H+O+O+^+c+o+{+‹+¥+´+¹+Á+È+Ù+ó+,, , ,C,H,Z,_,‚,†,�,—, ,¿,Æ,×,Ø,Ü,þ,-$-/-<-<-C-e-v-|-†-.,U‚U‚^‚y‚‚‚„‚/4ÏØs2s2w2|2ˆ2”2 2«2²2´20(êð«b«bÅb×bãbébñb1»üÒ›Ò›à›è›í›ó›œ>œFœNœYœ^œtœ�œŠœ�œ¾œÅœÍœÏœØœçœîœ���4�C�d�l����Ÿ�¯�¾�Î�Þ�î�ž
    žžžž(ž7žXžcžrž‚ž’ž¢ž¼ž¼ž¼žÈžΞ2˜Ìîâ·â·¸
    ¸¸#¸*¸3¸F¸`¸f¸n¸‹¸‘¸‘¸ ¸§¸¬¸ʸ͸Ö¸Û¸ù¸ü¸ü¸ü¸ÿ¸¹¹ ¹1¹38}‡;M;M?MPMlM�M’M›M M¼M4p	!¡h¡hµhÂhÇhÓhÙhàhüh2i;iDiPi5‚Áj³j³‰³œ³¨³¨³¹³À³À³ɳ۳䳴
    -´#´*´*´@´L´L´s´v´•´´´Ó´ß´ö´
    µµ µ7µNµmµŒµ˜µ¯µƵ˵ܵóµ
    -¶
    -¶¶ ¶1¶H¶_¶p¶‡¶ž¶¨¶±¶¸¶ζ×¶¯·68s}¶¶ÄÓÝîöøøþ780:2–2–;–c–†–’–Ÿ–©–®–8,•œ;N;NDNMN`NfNkN90	®p®p¼pÆpÚpàpâpèp:,8?2DUcio;,ÖXÖXßXêXìXìXñX<\fyLpLpnprp~p�p›p¤pÃpÏpØpÞpâpðp=€ÒXÒXâXéXüXY/Y9YCYKYSY[YgYyY‹Y¥Y±YºYÈYÎYÔY×YÞYæY>X�ïkNkNwN€N‰N�N›N§N¯NµN»NÃNÑNÜNäNýNOO#O#O(O-O;OBOGOGOMOTOYOeOmOvOvO~O�O‘OžO«O°OºOºOÃOÊOÖOáOýOýOýOPPPP!P(P/P6P=PDPJPSPYPlP}P™P¨P«P±P?|Kf~æ~æ�æ«æ»æÇæÍæÖæÝæäæéæõæùæçç
    -ç
    çççç+ç2ç2ç2ç@ç@,		!,Rv~AX]ËXËXÓXÞXðXöXþXY+Y+Y=YJY^YkYsY�Y¼YÊYZZZZ&Z:ZGZLZ[Z�Z—Z¨Z®Z³Z³ZÅZÒZæZóZøZ[;[B[S[Y[[[[[c[c[p[…[‹[ž[Â[Ï[ß[ä[ê[÷[\\\\\"\-\=\B\a\n\{\€\€\„\�\BàÈüùù	!	0	:	C	T	d	w	„	—	µ	¾	Ë	×	ã	ã	ð	ú	 
    -3
    -R
    +$LK,"PURPLE",A="FL:::/Kernel/KernelA.HPP,2960"$
    +$LK,"TASKf_BREAK_LOCKED",A="FL:::/Kernel/KernelA.HPP,3288"$
    +$LK,"FILEMASK_SRC",A="FL:::/Kernel/KernelA.HPP,2291"$
    +L&5šÓšÓ¤Ó¸ÓºÓÈÓÊÓÛÓñÓÔÔHÔLÔLÔQÔDVcÃÃÇÖâîú 126@4@ss{–­ÄÓßíô
    +P‡×7�7�;�S�`�e�n�s�x�}�‚�‡�Ÿ�À�Ñ�ë�ø�‘‘‘‘‘‘&‘D‘D‘I‘Y‘_‘i‘n‘w‘~‘|‘Œ‘‘‘¡‘²‘ç‘ì‘’’’"’C’A’Q’]’t’}’„’�’œ’¾’¾’Å’Ì’Ñ’Ø’á’â’ë’ð’®“<#CCVp‰–�ŸŸ¨¶D’Ÿ -5;GZZcˆ/M¢ª¢ª²ª½ªȪϪϪòªþª
    ««'«,«2«A«G«N«N«R«R«R«R«_«b«r«0ÎÖÕ�Õ�ï�����&�	Ì;X3X3p3v3�3“3Ÿ3´3º3À3Æ3å3ê3ò3ò3444046484G4K4Z4`4c4e4t4x4‡4�4�4’4¢4¦4º4½4À4Â4Ñ4Ô4à4
    +Ä¥Òà0à0111 171A1G1J1M1P1Œ1�1’1”1§1ª1­1µ1»1À1À1Æ1Ò1Ô1Ý1Ý1Ý1Ý1ã1æ1ë1î1ö12ˆCa’µ’µ¸µ¼µĵʵÓµÛµáµäµðµðµ¶+¶5¶8¶;¶B¶J¶P¶]¶]¶s¶hz�z�ƒ�‘� �«�»�Ë�Û�ë�ú�	žž)žJžLž[žjžzžŠž¶ž¶ž»ž
    4æï­�­�Ç�Õ�í�‘‘‘‘\:M²Z²ZÀZÃZÐZÝZäZëZóZ÷Z[ [/[7[>[@[@[H[44=XCXCfC‚C‚C…CŸCŸC¥C TX‚ï‚ï�ïžï(-3##+EMbdnHÜê¹o¹oÙoæoëo÷opp#p0p9p:pFp(Z`æÔæÔÕÕÕ Õ(Õ$ü´�´�½�Å�Ë�Ð�0¡©‚ɂɘɣɴɶɾÉ8‘›*]*]8]?]J]O]Q]h]h]q]w]Po:\:\H\O\Z\_\h\w\}\„\†\‰\”\š\€[wººººèºìºðº»»-»C»U»U»q»v»‚»ˆ»‹»’»–»š»ž»¢»¢»¢»_¼à:.ê~ê~&18ER_s†¤¯½ÍÖÙã瀀€€(€+€9€H€Y€_€e€q€€€˜€œ€¡€´€Ô€ã€ê€ñ€ñ€ø€�
    ��!�)�+�5�<�<�<�C�K�U�`�l�z���¿�¿�ã�ã�ê�ô�
    +‚,‚1‚1‚8‚@‚V‚x‚}‚}‚€‚Ÿ‚¢‚®‚±‚´‚Ò‚Ò‚ׂׂß‚ä‚è‚ø‚û‚ƒƒƒƒ,ƒ3ƒ=ƒSƒqƒtƒvƒvƒ‰ƒ�ƒ˜ƒ®ƒ̃σууìƒïƒ„*„3„<„@„N„T„T„q„q„q„v„v„v„‚„•„ „±„´„·„¼„¼„Á„Ù„Ü„……!…:…C…L…P…^…d…g…l…l…|……‚…�…™…Ÿ…¢…§…§…»…Ç…Ó…ã…û… †-†1†G†a†s†|†€†ƒ†ƒ†“†™†«†°†¸†¿†ˆè†ë†í†þ†‡‡*‡7‡:‡A‡D‡F‡^‡q‡x‡†‡†‡†‡�‡™‡£‡±‡º‡À‡LJÒ‡Û‡ê‡ù‡ˆ(ˆ1ˆ›ˆ4×à-�-�A�O�g�r�t�t�|�@?K{{ƒŠ—¦µÊÞíö`ˆœƒ ƒ ‘ ž ¨ ¨ » à Ö Ø ë ë ï ù þ þ  |w’rœrœ’œ¢œ­œ²œ´œºœÌœÞœîœÿœ�����0�M�]�_�_�h�t�XÓåÃ1Ã1Ï1Ñ1à1ö12	2 2"29292;2>2D2 @8D܂܂ê‚삃ƒƒ%ƒ |ÿââ$--DUjo‚†—ª³ÃËÛêí"!4ÑÚ3j3jGjYjhjyjŒj’j›j"¬El¯v¯vÅvÖvÚvévûvww w8w8wLwZwdwswxwxw„w„wŠwŠwôwùwùw!x!x/x2x5xCxIxRxzx#,Ûâ›j›j©jÌj·jÜjâj	k$ †Š²U²U»UÈUÍU%H—¥VúVúqúsú„ú�ú•ú¡ú¡ú¥ú¯ú&Œ¬ËÎñÎñïñòñûñò*ò*ò5ò:òBò\òdòwò�ò†ò’ò˜òŸò¬ò¯ò¸ò»ò¾òÃòêò' }�&Ä&Ä:ÄHÄNÄ(D.;�Š�ЫЭŠÀŠÅŠÕŠâŠèŠëŠ÷Š)p¼Ô6û6ûDûRûhûwû|ûŒûŽû”û�û¥û°ûÊûÚûéûéûðûðûðûáü*h#9ØoØoîoðoÿoppp p p#p?ppŒp–p¦p°p»p¾pÌp+$glPrPrTrdrorŠr,œd‡;;QZgt�™­¯ÃÃËàííú  # + ? Q Y m t t ~ -|9òYòYüY	ZZ$Z+Z2Z;ZCZ[ZbZiZsZ{Z‚Z‰Z‘Z—Z¢Z¦Z¨Z¨Z¬Z.X V V u x } € ‰ ” § ± ¹ ½ À À Æ É × /D ,¥J¥J¹JÉJÐJåJìJóJôJüJ0 ú•ú•þ•'–;–1”92ý2ý:ý^ýmýyý„ý’ý¤ý²ýºýÈýÜýþþþþ þ+þ:þIþiþtþyþ‹þ’þ’þ¤þ¥þ©þ2XßñFýTýbýbýzý€ý‰ý‘ýœý¦ý­ýÅýÅýÅýÌýÌýÍýÓý3PÔ�Ô�è�ø�þ�‚‚‚‚‚‚%‚4 $(ØBØBæBúBC5Œ§ÆJ‘J‘i‘e‘x‘ˆ‘•‘™‘�‘À‘ّ͑ä‘ð‘ù‘8’@’_’v’„’‹’’’™’º’À’Ç’Ê’à’6ŒþzÃzÄÆÞìÿÃÈÃöÃùÃÄ0Ä3Ä7Ä<ÄHÄOÄqÄtÄvÄ}ğĢĢĥİķľÄ7@-9ýJýJ
    KKK$K+K,K4K8<ðûL�L�`�n�y�Š�’�š�¢�¥�­�9,ZaEEEKE[E�EŽE�E:,JQDDD;DKDqDD�D; £Çjñjñ‹ñ•ñŸñ¶ñÌñÑñÞñãñÿñò#ò6ò;ò@òZòoòqò‹ò ò ò§ò§ò§òNó<$Œ‘ËËÔâ÷ü=D’ŸRÎRÎ\ÎrÎ�·ΖΜΫαÎÀÎÆÎÈÎÍÎ>H!,‚,‚:‚F‚K‚K‚\‚n‚s‚s‚y‚?,ßSßSèSñSýS
    +TTT@Lõê”ê”ø”û”•••$•8•8•Z•Z•w•{••…•A …‰)-B\˜«&ñ&ñ:ñHñMñSñ^ñgñgñwñƒñ‡ñŸñ¦ñ©ñ«ñÎñC4Š“..2<Lm‚‚‚†D,jqFFFKF[F�F‹F�FE¸�Ç×,×,ß,ç,ò,--0-D-N-Z-e-e-t-•-º-Ç-Ï-å-ð-ø-ø-.(.M.Z.b.x.ƒ.•.•.£.ª.¼.¼.Ê.Ê.Ë.Þ.F ”˜††Š­±Gpf~ÍÍ4ÍFÍbÍbÍiÍkÍkÍyÍ{Í{͇͇Í�͕͙ͤͼÍÖÍÖÍÖÍãÍHD q q'q3q[qoqsq‚qŽqœq«qðqðqr9rCrRrPrrr¥r¥rªr¯r¯r¾rÒr÷rs sBsZsus~s‚s„s„s�s�s’s’s¢s®s®s²s·sÀsÒsÙsçsös.t7tItItOtªvI|7²ô²ôÊôÔôÛôçôêôøôûôÿôõõõõõõ.õ8õNõTõWõYõ_õkõJ4•žúuúuvvvv'v(v-vK,'.vävä€ä‚äŠä¤ä©ä¯äLP€�š\š\¬\¯\º\¿\Ì\×\æ\ú\]
    ]]]#]M�NnJ[J[d[o[t[}[�[¨[°[¸[Å[Ï[Ö[Ý[á[å[ð[ö[ÿ[\\\\#\%\3\N­éjújú„ú‹úœúŸúÀúÓúàúîúû0û<ûCûEûHûNûRûcûmûsûvûyû{û‡û—ûŸû¥û²ûµû¸ûÆû×ûçûóûõûüüü%ü9ü<ü?üGüGüGüOüVü]ü]üküƒüO ™�¶¶ºÏÓP„
    *.Ò.ÒHÒKÒ^ÒkÒ‡ÒŠÒ�Ò™Ò¥Ò§Ò½ÒÓÒ×ÒòÒõÒûÒÓÓÓÓ&Ó)Ó?ÓQˆ êÚêÚòÚýÚ
    ÛÛ(ÛLÛLÛLÛTÛYÛYÛ}یۭÛÅÛÍÛÏÛÏÛÛÛÛÛíÛôÛôÛÜÜÜR,æíK2K2O2h2o2q2S ž¢ÖÖÚéíTTFWŽ	Ž	±	¸	Â	Æ	Ê	Î	Ø	Ø	â	õ	
    +
    +
    +U £§îîòÿV ßãöêöêúêëëWHúÙpÙpùpqqq7q=qCqPqYqZqfqXHëùIpIpipvp{p‡p§p­p³pÀpÉpÊpÖpY ¨¬
    +Z ­±)-[<ÕàªÐªÐ»ÐÇÐËÐ×ÐÙÐåÐìÐòÐúÐ\d`uÃTÃTËTÏTÏTÞTýTUUU5UGUPUWU{U„U‹U—U™U]´¥ÎŸHŸHªH»HÞHíHøHII-IDIHILITI\IeIƒI‹I¢I¦IªI®I¶I¾IÇIåIøIJJJJ*J3J^0&&›&›/›/›F›i›i›n›_dÆÛ»_»_É_Î_Þ_ã_ò_÷_ù_ÿ_```$`/`3`9``8�(�(ª(®(±(¼(Ù(Ý(â(ý(a %M%M.M9MHMbD¶Ã:^:^T^k^x^x^‚^¢^¬^cL™¨=P=PKPPPRPaPcPqP|P…P…P†PŒPd,bi�E�E”EËEÛEF
    FFe,RYˆDˆDŒDÃDÓDùDE	Ef0ÇÏâ’â’ö’5“<“B“O“b“n“g[""*5=^mvŠš­ºÍëô
    ;@@MWkx‘ ³ÐÛãþ	<HQVs|‰˜­ÇÒÚåååêø
    +!h,ry�F�F”FËFÛFGG
    Gi$ûaa;aHaNaZaj$+0FÓFÓOÓ`ÓrÓ®Ók¨Ci‚ ‚ « ° º Ä ΠÚ Ú â ¡¡¡"¡%¡*¡*¡B¡W¡Z¡]¡c¡j¡n¡�¡¡¡©¡«¡¶¡¶¡»¡»¡Ê¡Ú¡l<$/BŸBŸPŸXŸ`ŸpŸ|Ÿ†ŸµŸ·Ÿ½Ÿmü–ÑcMcMwM†M•MŸM®M½M½MãMøMN
    +N-N:NHNVNdNrN’NˆNžN°N»NÍNßNæNíNúNO	OO!O1O=OgO}OŽOŽO–O™O§On@nz.ž.ž;žCžFžTžXž\ž_žmžtžyžo$azyzy�y“y¢y¬y±y±y½yÄyÉyÓyäyõy	zz&zVzmz†z‘z¯z±z¼zÆzÑzÛzæzðzûz	{{{{({A{i{t{‹{�{’{œ{¸{Á{É{ä{pD/<¶ä¶ä¿äÔäàäëäôäå
    åååq<²½[h[hqh„h˜h¡h»hÂhØhÞhähir,ccg”»èýÿs<bmæ�æ�ó�û�þ�žžž"ž&ž+žt|0vv‡‘Ÿ·Ïäþ#.5FPPainu‚–¡uLš©ŽŽ1Ž8Ž?ŽKŽTŽnŽyŽ~އŽ�ެ޶޶ŽËŽv8QQQ(Q:QTQbQkQuQw FìFìJìcìxÔ._²	²	º	Â	Ð	ã	ò	ü	
    +
    +!
    +0
    +A
    +]
     e
    -e
    -…
    -’
    -Ç
    -³
    -Ø
    -Ý
    -ï
    -ó
    -û
    -û
    -	")4BBGSCLRa†•†•“•›•ž•¬•¯•¶•º•½•Á•ϕ֕ەD8GQ>•>•K•S•V•d•h•v•z••E0',;?AFFXÏá9à9àCàVàiàqà¢àááG(KQ			!	3	<	>	Hœ'J#R#R=R^RpRwR„R�R˜R£R®R»RÊRÓRÚRÞRÞRäRêRSSSS S S S#S-SI8}‡##,<IIP_ffkJÄ^‹æVæVWWW8WFWMWZW]WaWkWxW˜WžW˜W¶W¸W¾W¸WÖWØWØWèWêWêWúWúWX%X.X8X2b2k2t2t2y2Œ2‘2œ2²2Æ2Í2ÿ223C3S3i3}3„3¶3é3ú3
    +4
    +44#4#4141424D4D4R4V4Z4‚P—§3g3gIg\gng‡g‘g“gŸg¸gÃgÉgÍgÕgƒ0lt~
    +~
    +Œ
    +›
    +¦
    +¬
    +®
    +®
    +´
    +„<KVPqPqYqcqsquq¨q¯q¯q¯q²q…˜òÖýÖýÜýÚýêýq†4ŠÓÊÊ.Ê6ÊDÊOÊSÊYÊ_ÊmʂʇÊ�Ê¤Ê©Ê¯ÊÆÊËÊÑÊèÊíÊóÊËË!Ë4ËGËLË[ËhËxˇ˔˧˭˴˶ËÉËãËêËøË
    +Ì
    +ÌÌ Ì2Ì4ÌGÌIÌ\Ì\ÌxÌ�̛̦̕ÌÊ̇HfìfìoìŠì“ìŸì¡ì£ì²ì²ìÁìÃìÃìÈìˆ\Üï;`;`K`Y`d`f`m`w`�`˜`š`Ÿ`¡`¢`¢`ª`‰(§­úéúéêê*ê,êŠD¹Æêêê#ê2ê>êEêTê`ê`êfê‹pååå,å,å.å.åBåDåDåDåMå^ågåxåƒå†åˆå‹å�å�å�åšåŒD-:3K3KHKVKVK^KtKxKxK|K„K�¤6[÷�÷�‚‚‚%‚1‚8‚?‚D‚Y‚j‚n‚n‚{‚‚‚‡‚ž‚¡‚ª‚°‚³‚µ‚¿‚Ăۂނà‚ç‚ë‚ù‚Ž81;®Ó®Ó¼ÓÓÓÞÓÞÓéÓíÓíÓóÓ�$<�šš¢²ÂÔãìú&;IQfsˆ•ª´ÉÓèò#/;Ov…”¢®ºËàõ  " 4 F X ‹ ™ ® Ó ê ó   4 = H O Z d m } �0v~›U›UŸU°UÌUáUæUV‘02:‹‹1‹<‹N‹V‹Y‹a‹’¼Kvû[û[\8\J\Q\^\j\r\}\…\�\›\¿\Î\Õ\Ü\í\ï\÷\]
    ]]#]&](].]4]L]U]U]Y]r]“,ÑØóóó(ó?óCóEóYó”P	YTT1T4T:TFTHTWT^TdT�T”TÁTÈTÌTäTðT
    UUUU#U\UhUtU�U”U¢U³UÆUÓUäUûUVHVZV‡VŽV­V´V¿VÛVÛVçVéVéVõV÷V÷VWWWWWW$W0WIWUW^WiWW�W�W�WžW·W¾WÅWËWÎWX•PW‰W‰w‰Љ–‰¢‰¸‰¾‰ɉωԉ։4#�B�B™B®B®B»BÐBÐBÕB— ÌÐîòîòüòóó˜0ÐØr“r“†“œ̓ғê“í“ù“™¼
    +5ǀǀå€é€ð€÷€����$�*�1�8�:�D�I�S�a�g�v�‚�…�ˆ���•�«�·�º�½�½�½�½�À�È�Ð�×�Þ�ð�š0HPî÷î÷ü÷
    +øø5øNøvø›€MM“MšM¢MªMÆMÆMÔMÖMÖMæMèMèMöMøMøMNNNN%NBNBNTNTNXNNœXò{Y{Y…Y™YªYµYÑYÔYâYèYëYüYZZ�@$0BîBîPîUîXîjîpîsîuî{îžH"
    +Ó
    +Ó Ó+Ó.Ó7ÓCÓKÓhÓwÓ}Ӏӌӟ éí>ë>ëBëOëQë ä{°ss.s7sZsdsvsys�s„sŠs�s™s«s¸s¾sËsÖsÛsásósósttttt0t=tCtPt[t`tftxtxtxtxtƒtƒt‘t¡ Ñõ³D³DÒDÔDåDêDøDE'E5E@EXE_EaEaEsEyEE�E‡E�E�E–E˜E¡E°E¶E¶E¶E½EÎE¢T…–ÎùÎùòùõùúúú'ú2ú8úCúCúCúGúUú£`p„6ù6ùSùYùgùgù{ù†ùŠù‘ù”ùžù¥ùµù¹ù¹ù¹ù½ùÉù¤HïýêÂêÂÃ/Ã=ÃHÃLÃPÃTÃ^ÃhÃhÃjÃxÃ¥D"/|‚|‚Š‚–‚›‚›‚¬‚±‚±‚·‚¦t¹Ò“0“0›0¬0Ð0×0è011(111D1K1U1c1y1�1‘1§1½1½1½1¿1§X{�ãAãAüAB$B0BH¨C¨C¶C¼CÃCÙCÙCàCúCúCD«<u€º¬º¬Õ¬ã¬ê¬î¬ñ¬õ¬ü¬ ­0­¬`«¿jvjvnvwvŸvÅvÐvßvîvóvùvûv­L:í:íUíqíqí~í~í‹í‹í›íŸíŸí¯í±í±íèí®d@Õ_4_4j4€4‡4¥4¶4Å4Ò4á4õ4
    5%585N5Y5ƒ5ž5»5à5å5þ5636J6Z6\6’6é6º6¸677 7@7U7o7o7–7–7µ7¼7ø78f87858…8Œ8‘8§8¯8¯8Ô8ä89K99 99t9¦9®9®9Î9ã9::%:-::�:�:�:†:†:—:²:À:Ø:ñ:
    +;%;=;S;k;y;„;„;—;°;Ä;Ù;÷;û;ù;I<W<g<u<�<¨<³<Ë<á<á<8=	==W=e=u=�=¨=¾=À=
    +>Û=Ù=)>)>2>;>P>P>a>h>}>}>Ž>Ž>‘>•>¯4
    +Ì{Ì{Ú{ß{â{è{ë{í{ó{°,szÀrÀrÄrÉrÓrãrãrs±T¤µº]º]È]Õ]â]^^
    +^^ ^#^%^/^7^²Ô%VÓ?Ó?ó?@@@@@%@(@/@/@6@D@G@K@W@W@c@i@v@„@†@†@†@‰@Ž@š@š@¦@¿@Â@Õ@Õ@Ø@Û@ë@³4mv66%6%6U6k6§6µ6¹6´À6búâúâã	ã-ã8ãGãSãgã†ãŽã¦ã¶ãÚãÚãþãää$ä&ä&äJäLäLäXäXä`ä`älä€ä�ä˜ä˜äªä±ä±äÃäÐäÜäÿäµÈÉ÷""#"-">">"P"U"U"g"l"l"~"ƒ"ƒ"•"š"š"¬"±"±"±"±"¸"½"½"Ï"Ô"Ô"æ"ë"ë"#/#D#D#V#]#d#m#|#ß#¶ˆSqÍNÍNãNèNôNôNOOOO$O,O1O3O7OFOQOYOaObObOlO·(w}»6»6Ä6Ë6ë6ò6õ6¸üF�êõêõòõöõö"ö+öAöUöaöyöŒö­öãö÷÷#÷%÷-÷5÷L÷T÷_÷l÷p÷t÷v÷‰÷�÷£÷³÷º÷Ð÷æ÷è÷ì÷ì÷ì÷ø÷øø	øø$ø+ø+ø=øCøXø¹€a}.Õ.Õ2ÕAÕAÕPÕPÕ_Õ_ÕnÕ}Õ}Ռՠ՛ժժչչÕÈÕ$Úº¨r˜mOmO‡OŸO´O»OÆOÌOÌOÏOÖOáOåOêOðOýOPPPPPPP"P%P7P»LtƒÚtÚtîtûtþtuuu$uCuPuZu^uausu¼TÉڮݮݼÝÃÝÎÝñÝÿÝ	ÞÞÞÞ,Þ2Þ5Þ;Þ½¼�ÈÖÛÖÛèÛîÛüÛüÛÜ#Ü;Ü?ÜWÜ[ÜuÜu܈ܑܜܥܻܲÜÐÜÚÜçÜðÜòÜøÜÝÝ,Ý/ÝGÝWÝhÝlÝpÝ{Ý{ÝÝÝݨݾ4<|<|J|L|Q|T|W|\|b|¿(ãékk!k=kOkUkpkÀ”"¸n¸nÒnñnýnoo'o/o3o?oPo]ocofoioloqosowoƒo”o£o©o¬o¯o²o²o¼o¿oÑoÁ„c€wfwfšfžf«f°f´fÇfèfòfòfggg.g3g7gJgkgugug‰g‰gŒgšgÂ�]}–á–áŸá­á­áÅáÛáêáâ â.âGâcâiâwâ…â“â¡â£â¹âÏâåâûâûâüâãÃL�žtyty‚yŽy™yªy¾yÂyÐyåy÷yzzz-zÄÜ›Î"&GT_h~‘¦ºÆÖéö	'0=IUUbl|’¨ÀÙÝßäéò#JÅ,u|çççLçcçcçmçÆ,fmíƒíƒûƒ„
    „„„#„ÇH­»œzœz¥z±zÄzÏzçzézïzúzþz{{Èd¼Ñ{{{-{8{T{V{l{‚{•{«{Å{É{ɬ޵{B{B—B™B³BÂBïBùBþB-C4C6C6CECOCZC_CbCqCvC…CžC¥C¥C·CÃCÇCÑCÊP,«J«JÀJÔJßJñJúJK
    +KK K&K(K0KË úþÆëÆëÐëãëèëÌŒ'Fn›n›~›‚›‹›¦›´›¹›¼›Ê›Ï›î›ö› œ$œDœFœNœxœ|œœœ¦œ­œÃœÞœúœ�2�9�A�Í´Py<CMRep†�¥ª´¾ÈÆÖô(Bfls‡�•œ£ª±ÂÇÇ?ÎøµïM—M—k—|—‘———ž—ž—¬—»——ȗڗڗí—ý—˜˜&˜2˜I˜K˜c˜e˜h˜j˜j˜n˜n˜z˜�˜�˜…˜�˜–˜¢˜ª˜Ï˜å˜ö˜
    ™™™™5™ÏÜú-ZZbfqˆž²¼ÈÓáð-EIbz‰�˜¤¯¾Ííû
    +	6	C	G	T	f	f	t	{	�	�	›	›	œ	°	Ј1O¦¦¯ÑÜí.CLQQams–¹ÉÉÒ×ØÑ€5M‰M‰m‰y‰…‰‰‰�‰œ‰°‰¸‰¾‰Ò‰á‰í‰ù‰ý‰ŠŠŠ"Š&Š0Š4Š=ŠCŠVŠÒ$).CCCC)C/CÓ,“šÎÄÎÄäÄ÷ÄÅÅÅÅÔ¨ç
     ˆ ˆ9ˆ<ˆTˆ_ˆoˆ�ˆ…ˆ“ˆœˆ¾ˆĈĈЈÛˆéˆóˆûˆÿˆÿˆÿˆ‰‰‰‰
    ‰‰)‰7‰<‰>‰>‰T‰ÕLêùôô"ô.ôHôSô`ôtôzô†ôÖ ÿîëîëòëÿëì×`#û<û<ÿ<=&=6=I=P=g=w=‡=˜=©=º=Û=ü=>>)>c>ØT£I£I§IÃIÒIäIéIÿIJJ+J>JXJhJmJmJoJÙ`�l¨lªl²lÎl×lêlùlþlm(m.m:mJmJm\mœmÚH_m#A#ACAQAWAkAqAvA~A�A�AÛ$zGGG.Gc>k>q>‚>‘>¯>È>È>Ô>å>ð>ü>ü>	?? ?G?N?_?i?n?n?n?Ž?®?È?Í?Ò?æx‚œ‚ ‚ –   ¦ ²  Å É Ò â å î ñ !)!1!:!:!@!l!q!w!„!ç8;Z;ZKZNZSZVZdZjZmZoZwZèD&&ä&ä.ä6ä>äFäNäVä^äfänäräväédavʛʛڛê›õ›ú›œœœœ œ(œ0œ<œXœ[œfœfœnœêH~Œãã!ã/ã@ãEãQãoãuã�ãŸã¥ã¥ã±ãë(.42š2š;šIšXšgšlšì0êŠêŠøŠ‹I‹O‹Q‹Q‹W‹íDŒ™����¹�Ç�Ò�Ö�Ú�Þ�â�î�û�þ�Žî€ÏëJJU]hs~‡�±ºÎõ%-IU`xƒŠ•š®ï<s2s2{2™2ª2º2Ë2Ú2ô2333ðLÁÐ3D3DMD`DuD{D�D�DžDžD¡D¬Dñˆú]ˆ]ˆsˆ—ˆ©ˆ©ˆ»ˆÆˆÜˆÜˆìˆîˆîˆîˆÿˆ
    +‰‰‰‰!‰)‰/‰5‰5‰8‰F‰ò8ЕЕ˜•£•®•Ñ•ç•ê•õ•ó?�‹�‹˜‹¤‹´‹Á‹Ò‹ã‹ô‹	ŒŒ#Œ6ŒHŒPŒqŒ…ŒˆŒ�Œ Œ±ŒØŒëŒýŒ2�4�E�Q�V�^�€�“�Ÿ�Á�ôH -ï‰ï‰	ŠŠ5ŠJŠPŠVŠVŠ^Š`ŠŒŠõ8JTfÔfÔtÔ‹Ô–Ô–Ô¡Ô©Ô©Ô¯ÔöDìù²²ÄÐæ,.Y÷p@XÇ�Ç�Ð�Ø�é�ú�ŽŽ Ž*Ž5ŽXŽiŽsŽuހދޔŽ�ްŽÃŽÔŽÞŽÞŽáŽø$ôù=ˆ=ˆFˆOˆUˆZˆù 
    +MMMMVMaMrMúDÇÔfêfêuêzêƒê”ê•ê¨ê«ê±êûh-ƒ£*£*Ë*Í*Ö*ê*í*ò*ö*+)+,+>+F+M+l+u+w+–+Ÿ+Ÿ+Ÿ+¤+Ú+ä+î+ø+,	,,!,+,+,+,L,L,U,W,W,`,b,b,k,m,m,r,t,t,y,y,y,},˜,®,¹,Ð,Ù,Þ,è,ô,-- -6-H-L-W-m-}-Ÿ-¼-Ú-Ú-Ú-Ú-Ú-ä-í-ô-t.üLÈ×RóRófómóróˆóŠó›óŸó²ó¸óåóý4îãîãöãþãääää"ä&äþ,ÆãÆãÎãÖãÞãæãêãîãÿx766JOY`sŒŒ›±ºÉÐÐÓÝóúüÿ		
    	”
    +Û|î§î§¨¨(¨1¨<¨G¨I¨\¨j¨u¨€¨”¨Ÿ¨¢¨¨¨¬¨¯¨µ¨¹¨¼¨¿¨Ò¨ç¨ï¨ò¨
    +©©©#©&©9©N©V©Y©q©�©†©†©Ž©Ž©±©±©±©µ©·©·©»©½©½©Á©Ã©Ã©Ç©Ç©Ç©Ê©Ì©Ì©Ï©Ô©Ú©Ý©á©ã©é©ì©ªªª#ª&ª+ª>ªYª[ªqªqªqªvªvªxªxª}ª€ª¦ª¦ª¦ª¾ªÄªÛªêªùª« «E«J«J«b«€«…«…«�«»«½«½«Õ«ñ«ó«ó«¬'¬'¬E¬Q¬V¬V¬n¬…¬Š¬Š¬¢¬¾¬Ã¬Ã¬Ç¬ß¬ý¬­­­­ ­=­A­A­_­d­d­|­“­š­Ÿ­Ÿ­·­Î­Õ­ã­ó­®® ® ®.®6®_®a®a®y®y®ž®¿®Þ®ã®ã®û®û®¯)¯K¯?¯c¯‚¯£¯¦¯«¯«¯Ã¯Ú¯ä¯é¯ú¯ú¯°° °%°/°?°?°u°ƒ°‰° °¨°±°±°½°Á°Á°Ê°Ù°â°â°ë°õ°±/±L±[±a±v±~±Š±”±”±¬±®±¹±Ñ±Ó±ó±ó±ø±ø±.²<²E²E²Q²U²U²^²m²v²v²²…²¡²¬²Ä²Æ²Ñ²é²ë²³³³³8³:³:³R³i³n³n³†³�³§³¬³Â³Â³Ù³Ù³å³é³ï³ø³´´´´$´<´>´Z´e´€´‚´‚´‹´£´®´Ä´Ñ´Ù´ú´ü´µµ!µ*µ/µPµZµZµuµµŠµ¦µ¹µÐµØµâµâµëµïµ¶>¶I¶I¶I¶]¶f¶j¶�¶¹¶¹¶»¶»¶×¶á¶é¶é¶ò¶ö¶
    ·E·V·\·s·{·ˆ·�·�·–·š·±·é·ú·¸¸¸¸¸/¸F¸P¸U¸k¸ƒ¸ƒ¸­¸·¸·¸Ô¸Ø¸ë¸ó¸ú¸¹
    +¹¹¹¹I¹]¹{¹’¹œ¹¦¹¦¹¶¹à¹ð¹ººº,º>ºJºNºNºNºNºRºWºWºbºfº~º•ºŸº¤ºººÒºÒºüº»+»0»0»0»;»?»W»n»x»}»“»“»«»«»Ý»ç»¼¼¼¼@¼F¼f¼x¼€¼‚¼›¼©¼Æ¼Ö¼Ö¼½½/½1½M½X½b½l½s½�½™½™½Æ½Þ½á½ü½ü½ü½¾¾9¾M¾k¾‚¾‡¾‘¾›¾È¾Ü¾ß¾ö¾ö¾ö¾ö¾¿¿-¿7¿<¿<¿T¿k¿u¿…¿…¿¡¿µ¿¸¿Ê¿Ô¿Ú¿ñ¿ù¿ÀÀÀÀ#À7À:ÀLÀ^ÀcÀcÀ{À’ÀœÀ¬À¬ÀÈÀÜÀßÀñÀûÀÁÁ Á)Á.Á.Á.ÁJÁ^ÁaÁsÁ…ÁŠÁŠÁŠÁ¢Á¹ÁÃÁÓÁÓÁøÁ	ÂÂÂ0Â8ÂAÂFÂFÂFÂkÂ|Ž““¨¨¨ÂÄÂÄÂÞÂåÂ"Ä@!B–B–V–d–d–q–––¡–¥–³–¶–¾–0AIÊËÊËÓËæËìËøËÌÌÌ|�œ2­2­O­Q­_­_­m­€­¨­Ë­Ù­é­®ô­&®F®[®`®`®`®r®u®�®8‰êÍêÍùÍÎÎÎÎ!Î!Î'ά®Õ2ê2êBêXênêlê|ê„ê‹ê�ê—ê§êµêÄêÊêÒêÞêäêäêëêïêïêñêXì@&2ÂÊÂÊÓÊêÊøÊËË%Ë,Ë/Ë7Ë4GPr‰r‰†‰œ‰§‰¬‰º‰ljЉá‰p+Cãã,33IIW_muu Ëö!!...<	DŸ¬4z4z@zWzbzhznztzŠz‘z–zœz
    +„SpSSjt„ŸºÕðSot‰– ®´ÀÇÓ,-4óó÷%Iz|z¶z¶Œ¶›¶ž¶¿¶â¶ò¶·+·8·h·w·„·”·š·ª·ª·¼·¿·Ä·Ä·Ô·Ú·Ý·@¸
    @
    êóêóüóôôô$ô,ô4ô<ôDôJô˜£Åó^ó^__(_8_>_>_I_T_W_\_f_t_{_|_ˆ_Ž_”_—_ _¡_¡_­_¯_»_X7‰ÞÇÞÇüÇÈ	ÈÈ È(È.È5ÈKÈYÈ]ÈbÈhÈvÈyÈ~È�È�ȑȢȤȶȸÈÅÈÊÈÑÈÓÈàÈâÈâÈòÈÉÉÉÉÉ6É;ÉBÉKÉQÉWÉ^ÉaÉaÉqɂɄɯÉÑÉÓÉÚÉÜÉèÉèÉüÉÊÊÊD3@:Ë:ËIË`ËnËzËzË�ˤ˰˼˾ËÄË@Š–‹V‹V¡VÃVÉVÎVáVîVôV÷VÿV0êíêíóíøíîîîî,;BB B Q ] k t y  8ƒ�ÆçÆçÔçàçèè è'è/è1è7èä6öÅöÅÆÆÆ.Æ6Æ=ÆQÆTÆVÆyÆyÆ|ƌƎƎƑƓƓƖƭÆÂÆÝÆçÆñÆùÆùÆùÆûÆûÆÇ Ç%Ç4ÇDÇXÇhÇjÇ|njǑǑÇ�Ç�ÇªÇ­Ç­ÇØÇ8áëúÐúÐ	Ñ Ñ.ÑLÑPÑVÑXÑXÑ^Ñô…¾ÆžÆžØžÛžåžòžöžüžüžŸ	Ÿ
    ŸŸŸŸ%Ÿ+Ÿ2Ÿ8Ÿ?ŸEŸLŸRŸYŸ_ŸfŸlŸyŸŸ†Ÿ�Ÿ—Ÿ—Ÿ Ÿ¡Ÿ²ŸÅŸÇŸ×ŸÞŸéŸôŸÿŸ
    +      * LWf¸q¸qÁqÑqÑqïqõqrrr!r#r#r#rJrhÝó}‡}‡’‡¡‡¦‡¶‡¾‡¾‡Ì‡Ö‡å‡í‡ù‡ˆˆ ˆ%ˆ0ˆ3ˆ;ˆD<IöÓöÓ
    +Ô&Ô4ÔDÔFÔHÔSÔWÔWÔ_ÔP„”zuzu‰u’uœužu°u°u°u²uºuÁuäuòuóuùu0Ž–ãfãfùfgg$g'g/g<Zexxx+x3x7xCxHxLxRx\ÉÜN
    N
    R
    e
    x
    ‹
    –
    ª
    »
    Ý
    ÿ
    5Pk†¡¼x TTerÌr̢̘̺̀̒ÌÀÌÂÌÍÌåÌñÌ	ÍÍÍÍÍÍ X£µÙmÙmùmnnn7n=nJnWn^ngnknwn!X†˜BàBà]àeàpàŒàŒà•à•àšà«à´à¿à¿àËàØà",£ª†Å†ÅšÅ¬Å±ÅÂÅïÅ#ä6u‘u‘�‘’‘•‘›‘¯‘¶‘¹‘Ô‘Þ‘ã‘ê‘ï‘ï‘’ò‘’%’1’E’N’V’g’g’g’p’w’…’‡’’’˜’·’Ç’Ï’á’ê’û’““““““$“g“$	Hcc7cFcRc]chc|c�cšc¦c·c¼cÈcÍcÑcÚcócÿcÿcd,d?dMdbdhdŒd”d”d d¤d¨dÀdÎdùdÔdee*e.e5e:e:eOeUeteyeye…e‹e‘e“e£e%˜6XRÔRÔfÔvÔŠÔ—Ô›Ô¤Ô«Ô±Ô³ÔÆÔÎÔÕöÔØÔ+Õ:ÕKÕQÕ`ÕqÕwÕ—Õ¡ÕjÖ&LÅÅ)Å1Å1Å>ÅPÅ\ÅdÅjÅoÅuÅwÅwÅ}Å'<{†’|’| |«|¶|½|ç|Å|õ|A}(˜Õ÷zwzw¤wµwÇwÔwäwìwðwôwøwüwxxx,x6x;xKxTxixoxsx…x) GKÒrÒrárþrs*Ü4 } }=}I}R}p}p}r}y}y}Š}‘}ž}±}º}Æ}É}Î}î}	~	~ ~!~!~7~9~9~E~E~Z~k~q~t~t~w~|~„~•~œ~¢~³~¶~Ó~Ó~Ø~Ø~Ø~ó~+h¦BŽBŽVŽrނނޖޠޤލ޵ޯŽÈŽÜŽåŽéŽøŽ���'�*�5�j�v�‚�Š�”�¢�³�Æ�Ó�ä�÷�ý�D�V�d�z�‰�”�ª�¸�¸�Ä�è�ô�ÿ�‘‘‘‘ ‘F‘,4JSÌÌ#Ì+Ì7ÌHÌPÌXÌkÌpÌ- �´H7H7b7h7h7w7ƒ7Š7�7�7š7£7£7©7­7°7º7Å7Å7Ô7Ý7Ý7è7í7ð7ó7ö7ù7888888. ÕÙ¶ê¶êºêÇêÉê/¤“ø_y_yuy�y‰yšyžy²yÄyÒyäyéyïyôyzz,z‹G‹M‹S‹\‹_‹e‹a,œ£r]r]|]š]¡]§]ª]®]btRkff+f-fFffflfffƒf…f‹f…f¢f¤f¤f´f¶f¶fÆfÆfÌf
    -gc0ÓAÓAÜAîAüABBB	Bd@B¿B¿Q¿Y¿m¿w¿¿‡¿Œ¿’¿”¿”¿š¿eØNB�B�X�g�r�„�›�›�¬�Ä�Ñ�ä�ð�û�Ž-Ž/ŽLŽYŽYŽYŽjŽ–Ž�ަެ޳޹޾ŽÄŽÈŽÏŽÚŽàŽ
    -�fè[‘¾N¾NÝNßNîNúNOO O)O,O1O;O;OEOHO^OvOrO„O‰O§OÀOÉOÌOÏOÔOøOúOPPBPBPRPbPiPoPrPwP‡PŽP‘PcQg”	*‹‹­Õý%
    3
    v
    ¹
    ü
    þ
    ((B\y‹›°ÉÛë 'C_kh€]æRæRúRüRSS$SHSlStS†S”SŸS°SµSËSÓSØSñSTTT2T4T>T4TUTWTaTWTxTzTzTŠTŠT�T“T˜T®T¶T»TÔT÷TU*U4U*UKUMUWUMUnUsU}UsU”U™U™U©U©U´U·UÁUÕUåUVñUVVV!V-V;VDVXVlVsVzV}VåVi`AU{{ƒ™¡¡©¸Äßèïô(,13jðñ)ÞÞüÿ%=EOu‚�Ÿ´ÅÐý2<BER]o„˜ ÆËÑôù
    %<Sn„––ÂØÛík<5@ÜtÜtôtu
    -uuu/u2u7uCul0	BBB0B0BDBHBLBm¼
    -51Õ1Õ<Õ@ÕdÕoÕ~ÕŠÕ–ÕµÕÍÕÝÕýÕýÕÖ Ö ÖAÖCÖCÖdÖfÖfÖrÖrÖzÖzÖ†ÖšÖªÖ²Ö²ÖÄÖËÖËÖÝÖêÖöÖúÖ×n\Qd���� �$�7�@�E�J�Z�g�g�m�x�oŒoŽþ!þ!	"""'"2";"Q"e"n"‚"©"¿"Ù"á"÷"ÿ"#)#4#L#W#^#i#n#�#pxˆ¢¹ä¹äÕäÚäÝäêäðäóäûäåååå&å&å.å0å0å7å:åFåq0	z�z�ˆ�’�©�¯�±�·�r 	
    >ä>äBäOäQäsL<K{{6{8{B{k{y{{{�{›{¡{¶{t,RmMmM…M‡M“M“MŸM¬M¹MÁMÆMÌMÎMÒMâMðMNNNNNN"N"NANONZN\NbNdNfNhNhNsNuN}NƒN…N…N‘N›NžNžNžNžN©N±NµNÁNux8ŽEŽE¤EÁEÈEÔEãEéEíEFFFF F)Fv¨5[^o^o‚o�o•o¤o©o®o¾oÃoÞoÞoåoëoñoùop
    ppppp"p*p8p>p@p@pPpRpRpbp¬pwMãHãHýHI$I/IFISIeIzIŠI‘I¢I­I¼IÇIãIãIçIòIþIJJJJJ	JJJ.J;J;J@JPJcJiJrJ|JŒJ JÈJÙJäJäJöJöJöJKK3K>)>4>I>R>l>{>‡>�>•>²>¿>Å>Þ>Ú>ô>ÿ>??????.?.?A?S?f?o?o?‚?’?š?š?š?¨?³?º?Å?Æ?Ú?Þ?å?DÛèYñYñkñwñ�ñ§ñ²ñ²ñÃñÓñÕñò€LN]sKsK|K�KˆKˆK§KÊKÑKàKïKôKöKøKøK�l£ºÂššÖšâšðšÿšÿš'›J›U›_›h›x›„›‘›­›³›·›¿›ÛË›‚œDgaÍaÍiÍmÍy͉͔ͣͯ͸ÍÔÍæÍûÍ$Î0Î;ÎZÎZÎ�΃΃΃ΛΛέεÎÐÎÐÎÐÎâÎéÎéÎûÎ	σøQŽc¬cÆcàcäcöcÿcddd!d9dHd`dsd|d…d“d«d¾dÇdÛdßdådîdôdÿdeee!e6e9eDeJeReVehenete{e�e‘e—e©e°e²ef„<ÃΫ1«1Ë1Û1à12,2R2Y2`2e2q2…lýÒžÒžæžïžŸ(ŸKŸZŸgŸrŸ�Ÿ¢ŸµŸµŸÅŸÅŸÒŸäŸîŸöŸ†œ’µfQfQxQzQˆQ”Q­Q¾QÇQÜQáQ÷QóQR#R#R8R:R:RORQRQRaRcRcRsRsRzRzR€RàR‡HLZFNFNZNoNyN�N”N™N�N£NªN­N¾Nˆàø,SSfm‹‹©©ÇÇåú06;bœ¹Öó-Jg„¡¾Ûø2Ol‰¦Ãàý 4 N h ‚ š š š © "‰<
    -º�º�Î�Ý�í�ð�ò�ú�ý�‚Š(îôfãfãpãzã¤ã©ã‹$“X“X­XÉXŒP¨¸['['_'n's''‹'—' '¬'³'¸'É'à'ø'ú'�@
    ƒ*ƒ*‘*˜*ž*¥*¹*À*Â*Ç*Ô*ŽX�¢
    -š
    -š š)š-š-šUšxšƒš¡š²š´š´š¼š�,›¢>½>½R½d½i½z½€½§½�xž¸æàæàïàüàáá'áMábáhánáuáˆáªáªá¾áÈáÐáÙáñáúáúáâ‘8¶À3;3;O;\;a;w;z;�;’(¿Å&˜&˜.˜8˜N˜“ žÂk0k0y0~0†0Ž0›0­0·0¼0Î0ã0ù01%171>1>1T1a1a1w1†1†1�1”1›1 1¨1”8�§éé÷ÿ(>GM•P:JÈhÈhàhìhôhûhi
    -i
    i
    i!i.i4i7iCi–øEŽšŽš¨š¸š¿šÇšÎšêš›››››&›/›1›:›C›E›E›N›]›b›b›k›t›y›y›‚›‹›�›�›™›¢›§›§›§›°›¹›¾›¾›Ê›Ó›Ø›ï›ó›ó›
    œœœœ!œ“œ—XµÇ‚ĂĊĖġİļÄÅÄÍÄÜÄùÄ*Å*Å<ÅCÅCÅUÅVÅZŘÈÝp2p2Œ2’2œ2Ÿ2Ÿ2¨2³2½2Ç2Ó2Õ2Û2â2å2è2ð2ü233
    3333#3)32323:3C3I3R3R3R3R3X3`3c3s3™,�ˆÃÃÃà Ã$Ã)Ú8_i>>LV`ksuu{›x^x£\£\¹\À\Î\Î\Ú\å\]]]]]!]!]#]#]#]%]%]%].]1]4]A]œ,ÛâÔxÔxÝxçxèxíx�$(-z�z�ˆ���¢�¨�ž<@KB‘B‘X‘b‘f‘k‘w‘|‘€‘„‘Ž‘Ÿ õù®ã®ã²ãÒãÔã t.úŸúŸ
    -    0 X { Š — « ¢ Ì à æ è ê ð ò ÿ ¡
    -¡¡h^tJ¢J¢l¢r¢{¢{¢„¢“¢ ¢Ï¢Ú¢â¢ä¢ö¢ö¢ö¢£££"£¢@u�ææêëú€	€
    €€'€,€.€£<ðû-‘-‘B‘1‘Q‘y‘¤€�¹ê¤ê¤¥¥!¥4¥F¥Q¥\¥r¥v¥†¥œ¥¤¥¤¥ò¥÷¥÷¥¦¦0¦P¦V¦x¦¥˜ì{3{3‹3•3š3Ÿ3Ÿ3®3³3Ì3Õ3à3â3ã3ã3ï3ú3ü34
    44#41464E4L4N4N4N4T4¦€~šFÒFÒOÒRÒiÒiÒ€Ò”Ò²Ò´ÒÌÒßÒêÒûÒÓÓ)Ó=Ó[Ó]ÓuÓˆÓˆÓ‹ÓäÓ§8—¡"V"V8VAVKVVV_VbVlV¨4<E5550525=5?5?5G5©X€Ò–œ–œ²œÂœÉœÑœØœôœøœ��9�9�9�B�D�D�M�O�O�X�Z�Z�c�e�e�n�p�p�y�{�{�„�†�†�����’�—�—�—�š�����·�Ç�Þ�ñ�ñ�ó�ó�ü�ÿ�žž
    ž
    žžžž(ž-ž-ž6žJžMžRžRž[ž[žižmžFŸª ¢¦rVrV{VˆV�V«`Ui“@“@³@¾@Ä@Ï@Ñ@â@ï@õ@õ@A¬0;CëBëBôBCCCCC C­(‹‘ÊUÊUÞUéUòUõUýU® \€±Ò±Ò¹ÒÄÒÔÒãÒïÒÓÓ(Ó0Ó5Ó5ÓBÓXÓdÓlÓtÓ†Ó³Ó¿ÓÒÓÚÓßÓßÓëÓëÓýÓÔÔÔÔ"Ô¯°.V™Ð™Ð¡Ð¬Ð¼ÐËÐ×ÐûÐûÐ(ÑMÑRÑRÑgÑoÑtÑtћѣѫѽÑêÑöÑ	ÒÒÒ+Ò-Ò-Ò9Ò9ÒKÒRÒRÒdÒiÒuÒ°8LVtutu„u‡u‰uŽu—ušuŸu§u± ~‚þþ²(³Q³Q¼QÆQÑQÙQÞQ³DXX&X8X?XCXFXQXYXiXlXtX´h°Æ..Pgq…›¿ÙÙï,,??KµX=O.Ý.Ý8Ý:ÝOÝWÝxÝ݌݌ݣݬݰݴݶ\r…tt,t3tBtItRtRtltwtt“tœt¢t­t­tËt·PFVH5H5f5l5q5�5“5˜5¶5¸5Æ5Ì5Ï5Ý5¸lXo¾ð¾ðßðâðððððüðññññññ!ñ!ñ&ñ)ñ+ñ/ñ?ñ¹Œ~�k.k.t.Ÿ.Ê.õ.D/Q/S/k/k/º/Ç/É/á/á/ñ/000'0T0[0]0b0e0ºˆ;Y]ƒ]ƒfƒpƒpƒ€ƒ�ƒ–ƒŸƒ¨ƒ±ƒÅƒÅƒÐƒÖƒØƒçƒïƒþƒ„„0„0„2„B„H„M„»4ìsìsttt"t%t+t3t¼\•¨’ÒèôöÃÄÃÚÃéÃúÃÄÄÄ#Ä+Ľ¨'
    -�
    -��'�,�:�F�R�[�f�q�|�������«�Ê�Õ�Ü�ð����'�)�:�E�L�Z�e�g�p�z�¾ W[yÒyÒ“Ò¥Ò¯Ò¿Dt�	í	íí'í9í@íGíWíbípísí{íÀ<)4ŒtŒt£t¦t«t®tÁtÇtÊtÌtÖtÁ´^Ç99Del{ˆ•¤¸ÈÞëþ .;DD]€¡ÔÙó#.NW_l~�°ÅØò!-?DVh€�œ¯¯âíø ,88=M[tž¥ªÊÑöö(RTTYt{††”©©ºÁÖÖççêòÂh
    - íí$í?íKíWícílíuí~í‡í�í™í¢í«í´í½íÆíÏíØíØíðíÃ0¾ÆS`S`q`�`¤`°`¶`¼`Û`ÄX’¤ 0 0®0·0Ã0É0Ì0Ñ0×0Ú0ß0ß0ì0ð0ó0ó0ù0ÅÜ‚µŽ]Ž]´]¼]È]Ý]Ý]ó]û]^^^ ^=^@^E^S^g^n^x^x^�^�^£^±^·^¿^Ê^è^ò^õ^ø^ý^_!_+_._1_9_G_]_g_j_j_q_u_‡_ÆLüsHsH‚H�H�HšH¤HÁHÌHÕHÛHÜHâHÇôÈ6&6&>&B&J&[&j&t&€&»&Í&ß&ß&ã&ò&ü&'''*'G'L'L'b'j'}'Œ'±'¾'Æ'Ë'Þ'í'( (*(@(V(q(x(Š(Š(˜(˜(™(«(«(¹(½(Á(È8AKDuDuTuWuYu^uauduiuquÉDz‡ôpôpøpþpq
    -qqqq"q(q.q4q6qÊhÖ,æ5æ5ñ5	66)636<6M6e6}6�6 6¨6Ä6Ù6ï6ù67#7-7>7P7g7g7‹7©7³7³7Ò7å7í7í788:8z8M8U8@8 8¹8Á8Á8Û8ð899+9399~9~9~9´9´9Å9Å9Ø9ê9ò9::0:8:8:F:O:Z:h:o:z:ˆ:ˆ:�:™:Ë4{„v–v–†–ˆ–�–¤–«–°–¸–Ì<²½
    -W
    -W.W2WKWbWlWvWyW‰WÍ8§±’V’V¶VºVÓVêVôV÷VWÎLú	–ì–ì²ì¾ìØìáìîìíííÏ`L`’‘’‘²‘¾‘É‘ΑÜ‘ç‘ö‘ü‘
    ’’’’’%’0’0’<’Ð Ÿ£rmrmvm�mƒmÑ #Göíöíîîî*î*î2îKînîpî�î¦îÅîëî
    -ïïï,ïDï\ïeïeï~ïˆï¡ï¯ï±ï¸ï¿ïøïÒ¼\‡�ã�ã�ã ã©ã²ã¼ãÎãÑãÔãÙãìãïãäääää,ä,ä/ä2ä@äDäZä`ägänäqävä‹äŽä�ä�ä¥ä¥ä¥ä·äÓ`¹ÍE‡E‡a‡d‡i‡o‡x‡}‡‰‡‘‡�‡¡‡©‡µ‡·‡·‡º‡Æ‡Ô ’–VVVVVÕ\"zXzXŠX�X™X¡XªX­X´X·X¿XÆXÎXÖd\q&s&s>sGsbsqs†sŒs”s·sÅsésùsÿsttt×\nAnA|A†A�A“AœAªAµA·AÇAÓAðAùABBBØ<±¼�l�l¤l§l°lÀlÅlÙlêlÙ|øÊoÊopôopp%p*p;p?pCpMpRpbphpoprp„pÚ´†¯ÎtÎtîtñtútuu#u%u9uFuOuSuSu\unusu‡u¬uÅuÌuÎuòu
    -v
    -vvvv&v;v;vƒvÛ°	1…‚…‚Ž‚©‚©‚¯‚¯‚µ‚µ‚µ‚µ‚µ‚µ‚µ‚µ‚º‚º‚Ƃ̂̂҂ׂà‚à‚ó‚ó‚ó‚ó‚ó‚ó‚ù‚ù‚ù‚ù‚û‚û‚ƒÜ„1Næhæhühii+i@iFiTiYi`ililivi{i‚i�i›iŸi¢i¥i®iÁiÝ,ŠpŠpŽp“p­p²p´pÞ@›§'''' ')'0'2'D'I'V'ß,„‹ìvìvõvúvwww
    wàD -9Ð9ÐGÐOÐkÐkÐpÐpÐpÐ}Ð}ЉЉГÐá4›¤=}=}F}T}h}p}v}x}x}}}â /30C0C>CRCXCãHøÇÇÇ#Ç&Ç/Ç;ÇCÇ`ÇoÇuÇxÇ„Çä$ÆÛÆÛÊÛÎÛÐÛåDÍÚœxœxªx¶x»x»xÈxÍxÍxÓxæhC™Å‹Å‹ß‹á‹ú‹Œ
    -Œ&ŒAŒAŒAŒAŒAŒMŒYŒ`ŒnŒrŒ}Œ�Œ—ŒœŒœŒ¥ŒµŒºŒºŒËŒÐŒÓŒßŒðŒ���� �!�!�>�>�D�P�\�c�g�w�z�†�—�¨�ª�ª�À�Â�Â�Ø�Ø�Þ�ê�ö�ý�ŽŽŽ Ž1ŽCŽEŽEŽEŽJŽŽŽçxš´•Ž•ޭ޼ŽÂŽÅŽàŽûŽûŽ�������� � � �+�+�+�0�B�è PtÎÝÎÝ×ÝçÝõÝÞ.Þ0ÞQÞcÞcÞxÞzÞ�Þ¨Þ¯Þ¯Þ°Þ°Þ¾ÞÉÞØÞÚÞæÞñÞß	ßßéHŒšww(w/wAwDwDwKwewhwmwowwwê8ðúãWãWXXXX/X@X@X@XLXë@ƒ�Z™Z™h™�™³™À™Í™Ø™ú™ššì(>D&š&š3šHštšˆší ÚÞÞâÞâèâûâãî$§¬ÜwÜwåwíwówøwï<©´2Ä2ÄHÄ^ÄoÄsÄsÄxÄxÄ€Äðd¶Ž_Ž_°_´_¼_Í_Í_ã_ì_ü_ü_```8`;`@`E`U```g`k`o`}`‘`˜`¢`¨`«`¹`¿`Ï`æ`è`ë`ë`í`aaa"a.aOaSa_afamasava„ašašašaŸa«aÃaÇaÒaÕaØaÞaáaïabbb
    bb1b5b@bCbJb[b[bbbxbñÀImQmQ�QŽQ”QœQ©Q«QÁQÉQÉQÓQìQúQRRRR#R(R0R5RBRGRYR`R†R‰R¤R¤R¤R¨R­R»Rò4 (\t\tjtltqtzt}t‚tˆtóTBB1B7BPB\BnBxBˆB‹B˜BÅBÈBÌB×BâBôBüBCC,C>CGCTCcCyC€C‘C‘C�C¨C¨C»C¾CÎCÛCäCôCöC	DD#D,D7I7M7M7V7Y7g7d!6Ö˜Ö˜þ˜™ ™+™.™4™<™P™`™m™o™}™Š™š™®™°™°™À™�TtÞ~Þ~è~î~õ~û~9MMRYqŠ£¨¬»½ÈÓÞÞâ UYÖÌÖÌêÌùÌÍ€ÉÊÉÊçÊöÊ
    Ë Ë4Ë:Ë?ËEËHËVËbËeËhËtËy˂ˇˎˤˤ˺Ë@v‚ª˜ª˜³˜Û˜þ˜™™#™F™N™S™Ìh—FçFçaçkçyçç‰ç‰ç–çœç ç£ç¥ç¬ç³ç½çÉçÒçæçþçèè0è0è>èfèhèuè|è“èŸè§è©èÃèÞèêèúè0éì¥Ü}}}}—}Ÿ}§}¶}Ç}É}à}ò}î}~~~~$~-~K~G~Z~j~�~’~•~š~ ~À~Ö~ã~ê~õ~ù~þ~	#2CHT_qL&5 G GªG±G¼GÈGÏGÏGÕGÜGìGîGõGúGþG,‹’¾¼¾¼Ò¼ä¼ê¼ð¼ö¼<0;‘‘£³Óçíïïõ<w‚R¾R¾a¾f¾�¾˜¾œ¾œ¾¡¾¡¾§¾\õB¨B¨P¨U¨]¨d¨i¨‘¨´¨Á¨ΨÙ¨ö¨þ¨©©©©,Ž•NàNà\àvàƒàˆà›à¡à¼ÐûãFãFGG.GFGMGYGeGiGwG–G–GµG¿GÇGÎGÖGàGèGüG
    HH3H:HCHIHQHQHUHrH 4#ñáñáúáÿáâââââ <ÎÉÎÉâÉõÉÊÊÊ2ÊBÊEÊUÊ!4ÓÜ(2(2<2>2G2G2T2\2a2i2",W^K8K8Y8[8m8u8z8€8#DJWáëáëîëüëììì"ì*ì2ì:ìDìIì$ø^˜á÷á÷é÷ù÷øø#ø1ø?øKø\øqø†ø�ø¬øÌøÛøîøüøù(ù1ù@ù\ùsùƒù�ùžùªù¿ùÎùàùåùñùýùú ú2úIúRú]údúoúyú‚ú†ú%(QW†ð†ð‘ð¥ð´ð¸ð&0V^ )/577<'@	��•£±»ÌÝçñû(hê“ê“ó“”””+”;”K”[”j”y”‰”™”º”¼”˔ڔê”ú”&•&•+•)ˆ 3=3=S=]=`=h=x=x=Œ=–=¬=¶=¸=×=Ü=í=û=>>%>/>/>/>?>*PÙénënëŒëŸë«ëÅëÖëãë÷ëþëìì+$mrˆjˆjŒjœj¡j±j,H¾ÌŠWŠW W¥W¾WÉWÒWÔWàWãWæWðW-D&ãQãQìQúQúQüQR
    R
    RRR"R.(¤ªŠmŠmŽm™mžm¨mªm/D.;¾å¾åÌåÚåÚåâåæææ æ%æ0d>S¡â¡âºâ¾âÊâÊâÖâÖâãâãâòâãã"ã7ãAãPãPãZã1ÔTöÄöÄÅÅÅ,Å?ÅIÅOÅSÅVÅXÅ^ÅbÅeÅkÅnÅ�řšŤŵÅÉÅÐÅÚÅÞÅñÅôÅÆÆÆÆ&Æ@ÆHÆKÆ\ÆtÆ{Æ{ƊƘƲƿÆÞÆÞÆïÆÇÇÇÇ*Ç>ÇEÇJÇJÇ[ÇodžNjNjǑǢǶÇÕÇÚÇÚÇàÇñÇÈ$È)È)È:ÈNÈ[È`È`ÈqȅȒȗȗȨȼÈÉÈËÈËÈËÈËÈËÈÜÈôÈÉÉÉÉ*É3É3É9É9ÉBÉBÉËÉ24Â˲·²·À·Å·зÓ·×·Ý·3l 7C>C>a>d>l>€>€>•>Ÿ>¶>À>Â>á>æ>÷>??!?/?9?9?G?4ˆ7UK?K?q?u?x?ˆ?¡?¡?´?½?Ò?Û?â?ç?ñ?ú?@@
    -@@'@5@F@`@n@~@~@�@5ˆXvš½š½±½´½´½Žνؽܽß½ì½õ½õ½ÿ½ÿ½¾¾¾¾¾"¾'¾3¾E¾G¾Q¾6XÉÛQfQfqf~fƒf�f¯fµfÂfÍfÔfÝfáfíf7X¶È±e±eÑeÞeãeïeff"f/f6f?fCfOf8$
    ®‘®‘Ä‘þ‘’+’9 X\–ٖٚ٣٥Ù: äè&ã&ã0ãCãHã; áåuˆuˆ‰ˆ›ˆ£ˆ<(7=ƙƙәè™
    š!š=0‚Šv¼v¼�¼“¼“¼œ¼­¼°¼¸¼>Hª¸Å†Å†à†ý†‡‡‡-‡2‡4‡4‡>‡?Ä LÒ»Ò»â»ó»õ»¼¼$¼$¼-¼B¼W¼^¼j¼v¼‚¼’¼—¼œ¼œ¼£¼ª¼³¼µ¼µ¼¼¼Ǽæ¼æ¼ö¼ý¼½½½½"½)½.½5½8½D½@XºÌz¦z¦œ¦ ¦¦¦©¦´¦´¦ŦÒ¦ܦߦâ¦è¦ö¦A0—Ÿ�Ý�Ý—Ý£ÝÎÝÐÝÐÝØÝBD»»»#»#»0»B»J»O»[»a»c»c»h»CL.’.’>’L’\’b’�’±’Â’
    “““DØ9jtjt„t‹t�t“tžt¯t½tÑtÝtàtétôtuuuu&u.u1u4uHu_ugu~u…uŽu‘u“u£u¦u¨u¯u¿uÃuÊuÍuóuúuvE<ðû‰‰‰‰+‰H‰L‰\‰i‰F �…)Ô)ÔCÔUÔ_ÔGH ->å>åRåTå[åiå‘å–å­å²å²å¶å¾åH@:F-K-K=KJKQK_KfKmKvKIHâðVVp}�¢©²ÏÒÜJP…P…P™P»P»PÇPÒPÖPÝPèPìPôPõPýPKpbz"s"s*s6sLsWsesss’s§s¬s³s¸s¸sºsL ÍÑòWòWûW
    XMt/*8Sv™ºËî(?Zovv‹Œ�Nh„šû%û%&!&2&B&I&m&~&‘&˜&©&Á&Ã&Ã&Ö&ç&ÿ&'''O0$,++3MUmy‚ŒP@
    ê¾ê¾ó¾û¾¿¿"¿'¿3¿9¿;¿;¿@¿Q4ÇÐÛ`Û`ù`a,a8a>aDaKajaR vz�L�L¦L¸L½LS<R]q÷q÷ƒ÷“÷³÷Ò÷Ø÷Ú÷Ú÷à÷T`!ô!ô)ô8ôDôXôiôtô}ô…ô‡ô™ô«ô²ô²ôÄôÅôÉôUTDUËËÏæý.Wb}„‹–¦·¾V8$Û*Û*ä*ô*ü*	+++++
    \ No newline at end of file
    +î
    +ö
    +ø
    +ø
    +þ
    +:80:ŸŸËŸóŸ " / 9 > ;,—žWWWW(W.W3W<0	‡€‡€•€Ÿ€³€¹€»€Á€=,8?		"	4	E	S	Y	_	>,÷b÷bcc
    c
    cc?\fyTxTxvxzx†x—x£x¬xËx×xàxæxêxøx@€ÚXÚXêXñXYY7YAYKYSY[YcYoY�Y“Y­Y¹YÂYÐYÖYÜYßYæYîYAXŸñ3W3W?WHWQWWWcWoWwW}WƒW‹W™W¤W¬WÅW×WâWëWëWðWõWX
    +XXXXX!X-X5X>X>XFXUXYXfXsXxX‚X‚X‹X’XžX©XÅXÅXÅXÍXÔXÛXâXéXðX÷XþXYYYY!Y4YEYaYpYsYyYB|Kfnînî�î›î«î·î½îÆîÍîÔîÙîåîéîóîóîúîýîïï
    ïï"ï"ï"ï0ïC,ªªÂÍó DX]“a“a›a¦a¸a¾aÆaÐaóaóabb&b3b;bIb„b’bÊbÏbÏbábîbccc#cXc_cpcvc{c{c�cšc®c»cÀcÏcd
    +dd!d#d#d+d+d8dMdSdfdŠd—d§d¬d²d¿dÊdÐdÛdÛdádêdõde
    +e)e6eCeHeHeLeeeEàÊþ‚‚Šª¹ÃÌÝí
     >GT`llyƒ©¼ÛîîP<afx|„„’�«²½ËËÐÜFLRaŽ�Ž�›�£�¦�´�·�¾�Â�Å�É�×�Þ�ã�G8GQF�F�S�[�^�l�p�~�‚�‡�H0+/16ITÖçZìZìdìwìŠì’ìÃì3íJ(LR#1CLNKœ'JëZëZ[&[8[?[L[X[`[k[v[ƒ[’[›[¢[¦[¦[¬[²[Ê[Ó[Ù[â[ç[ç[ç[ë[õ[L8�‹ƒƒŒœ©©°¿ÆÆËM¼W‚aa-a0a>aYagana{a~a‚aŒa™a¹a¹a×aÙaÙa÷aùaùa	bbbbb?bFbObYb]bvbxb�b¦b¬b³bõbN<#žžОØžàžðžüžŸ5Ÿ7Ÿ=ŸO$ZZ$Z-Z3Z8ZPZB¸B¸V¸]¸m¸t¸t¸Џ–¸½¸ܸû¸¹¹ ¹%¹3¹7¹=¹K¹K¹K¹j¹‰¹�¹µ¹¹¹¿¹͹ѹ×¹é¹é¹é¹é¹ì¹ñ¹ö¹ü¹ººº%º)º/º:º:º:º?ºEºYº]ºcºnºrºxº�º�º�º¶ºQDs€'=?PW\ahzz|R¬Íô¢°¢°İɰÒ°Ò°Þ°í°ú°þ°±±±.±:±?±?±X±c±k±p±‚±‚±‚±б˜±¦±°±³±¸±űÒ±Ò±ä±S�-MOCOC|CC�C–C–C­C¾CÓCØCëCøCýCDDµBµTµYµfµpµ~µ~µˆµ’µ\@nz“A“A›A¼AÀAÓAÜAàAâA] *n—'—'¢'¦'®'Ï'Ü'í'ø'((*(?(S(_(w(‡(š(¢(Ã(Ø(ã(í())!)3)L)[)h)})u)˜)°)´)¹)¹)Ê)Ê)Ý)ï)****-*5*5*5*G*G*P*b*i*i*{*�*§*^@1=‚î‚î�î•î˜îªî°î³îµî»î_è°æ_†_†y†‘†�†­†¿†ÆƆφÒ†ã†ã†ã†ê†÷†ú†ÿ†ü†Y‡p‡s‡u‡Œ‡�‡‘‡™‡©‡©‡²‡Á‡χ߇í‡ö‡ý‡ˆˆˆˆˆ`D	º²º²βö²³&³3³>³Z³b³j³a ììì#ì(ìb4zƒFFT]dmc8êôª”ª”¸”¾”ǔ͔Ӕܔߔå”d,œ£z]z]„]¢]©]¯]²]¶]etRkpppWpwp}pwp”p–pœp–p³pµpµpÅpÇpÇp×p×pÝpqf0sJsJ|JŽJœJ J¤J¤J©Jg@ÊÊ)Ê1ÊEÊOÊWÊ_ÊdÊjÊlÊlÊrÊhØ"T––Ø–ç–ò–———,—D—Q—d—p—{—‹—­—¯—̗ٗٗٗꗘ˜&˜,˜3˜9˜>˜D˜H˜O˜Z˜`˜Š˜iüi¤�X�X®X°X¿XËX×XìXñXúXYYY3Y3Y6Y;YEYEYOYRYhY€Y|YŽY“Y±YÊYÓYÖYÙYÞYZZ ZZLZLZ`ZtZ{Z�Z„Z‰Z™Z Z£Zy[j”	*%Mu�«î1tv„’  ºÔñ(AScx‘˜Ÿ»×ãkdV]]]]-];]E]i]�]•]§]µ]À]Ñ]Ö]ì]ô]ù]^2^2^S^U^U^v^x^x^™^›^›^«^«^±^´^¹^Ï^×^Ü^õ^_$_K_K_l_n_n_�_”_”_µ_º_º_Ê_Ê_Õ_Ø_â_ö_``2`2`>`B`N`\`e`y`�`”`›`ž`al`AU)119HTox„•¦¸¼ÁÃmðñ)‡$‡$¥$¨$«$µ$Ã$Î$æ$î$ø$%+%6%H%]%n%y%¦%«%±%Û%å%ë%î%û%&&-&A&I&o&t&z&�&¢&¶&Î&å&ü&'-'?'?'k'�'„'–'n<5@ä|ä|ü|}}}"}7}:}?}K}o0	BBB0B0BDBHBLBp¼
    +5ááá!áEáPá_ákáwá–á®á¾áÞáÞáÿáââ"â$â$âEâGâGâSâSâ[â[âgâ{â‹â“â“â¥â¬â¬â¾âËâ×âÛâúâq\Qdâ‰â‰ò‰ô‰ÿ‰ŠŠ Š%Š*Š:ŠGŠGŠMŠXŠrŒoާ*§*²*º*Å*Ð*Û*ä*ú*++++R+h+‚+Š+ +¨+Æ+Ò+Ý+õ+,,,,*,sxˆ¢ÚðÚðöðûðþðññññ%ñ4ñ<ñ<ñGñGñOñQñQñXñ[ñgñt0	ZŠZŠhŠrЉŠ�БЗŠu 	
    .ì.ì2ì?ìAìvL<K÷Š÷Š‹‹‹D‹R‹T‹i‹t‹z‹�‹w,RuMuM�M�M›M›M§M´MÁMÉMÎMÔMÖMÚMêMøMNNNN N N*N*NINWNbNdNjNlNnNpNpN{N}N…N‹N�N�N™N£N¦N¦N¦N¦N±N¹N½NÉNxx8NN•N²N¹NÅNÔNÚNÞNóNOO
    OOOy´5^÷~÷~&.=BGW\ww…Œ’™¡¯µ·ÇÇÎÔÛãñ÷ùù	€€€€€€zO«Q«QÅQÓQìQ÷QRR-RBRRRYRjRuR„R�R«R«R¯RºRÆRÈRÈRÈRÎRÎRÑRÛRÛRöRSSSS+S1S:SDSTShS�S¡S¬S¬S¾S¾S¾SÔSäSûST
    +TTTT#T#T;T{,07¼‚¼‚łςЂՂ|pìbÑbÑsÑÑ�љѥѱÑáÑìÑìÑùÑÒ"Ò>Ò>Ò>Ò>ÒDÒDÒTÒVÒVÒÒ}$}‚nçnçrççµçÁç~<7Bm“m“�“�“�“¥“µ“¼“¾“Æ“,pBpBtBˆBŒBŒB�B€,
    +PBPBTBhBlBlBpB�hN¤¯D¯DºDÅDÕDÝDþD
    EE'E;ESEcEvE†EŽE¯EÄEÏEÙEþEF
    FF,FEFTFTF{FŠF”F±F¼FÄFßFêFÿFG"G1G=GFGKGhGuG{G”G�GªGµG½GÈGÈGÈGÓGÓGäGäG÷G	HH%H%H8HHHPHPHPH^HiHpH{H|H�H”H›H‚DŸ¬ÂùÂùÔùàùöùúúú,ú<ú>újúƒLP_;T;TDTITPTPToT’T™T¨T·T¼T¾TÀTÀT„l£ºR¤R¤f¤r¤€¤�¤�¤·¤Ú¤å¤ï¤ø¤¥¥!¥=¥C¥G¥O¥S¥[¥…¨Fl"Ù"Ù*Ù.Ù:ÙJÙUÙdÙpÙyÙ•Ù§Ù¼ÙåÙñÙüÙÚÚBÚDÚDÚ]Ú_Ú_Ú_ÚwÚwÚ‰Ú‘Ú¬Ú¬Ú¬Ú¾ÚÅÚÅÚ×ÚæÚ†øQŸm½m×mñmõmnnn n)n2nJnYnqn„n�n–n¤n¼nÏnØnìnðnönÿnooooo2oGoJoUo[ocogoyoo…oŒo’o¢o¨oºoÁoÃop‡<ÃÎ;:;:[:k:p:–:¼:â:é:ð:õ:;ˆlýb¨b¨v¨¨�¨¸¨Û¨ê¨÷¨© ©2©K©K©a©a©n©€©Š©’©‰ ¥É[[—[™[§[³[Ì[Ý[æ[û[\\\"\B\B\Y\[\[\r\t\t\„\†\†\–\–\�\�\£\]ŠHZhXX+X@XJX^XeXjXnXtX{X~X�X‹àø,ã#ã#ö#ý#$$9$9$W$W$u$Š$–$À$Æ$Ë$ò$%,%I%f%ƒ% %½%Ú%÷%&1&N&k&ˆ&¥&Â&ß&ü&'6'S'p'�'ª'Ä'Þ'ø'(*(*(*(9(¡*Œ<
    +šŠšŠ®Š½ŠÍŠЊÒŠÚŠÝŠåŠ�(îôVëVë`ëjë”ë™ëŽ$[a[aua‘a�P¨¸ë/ë/ï/þ/000'000<0C0H0Y0p0ˆ0Š0�@
    33!3(3.353I3P3R3W3d3‘X�¢š£š£¯£¹£½£½£å£¤¤1¤B¤D¤D¤L¤’,›¢ÅÅ*Å<ÅAÅRÅXÅÅ“xž¸ÖèÖèßèìèûèéé=éRéXé^éeéxéšéšé®é¸éÀéÉéáéêéêéÿé”8¶ÀÓCÓCïCüCDDD/D•(¿Å. . 6 @ V – žÂû8û8	9999+9=9G9L9^9s9‰9Ÿ9µ9Ç9Î9Î9ä9ñ9ñ9::::$:+:0:8:—8�§Š!Š!˜! !¨!É!ß!è!î!˜P:JÐpÐpèpôpüpqqqqq)q6q
    +>
    +L
    +V
    +`
    +k
    +s
    +u
    +u
    +{
    +žx^xkeke�eˆe–e–e¢e­eßeßeâeäeäeéeéeëeëeëeíeíeíeöeùeüe	fŸ,Ûâ܀܀å€ï€ð€õ€ $(-šššš*š0š¡<@Kʚʚàšêšîšóšÿš››››¢ õùžëžë¢ëÂëÄë£t.’©’©¢©®©·©È©ð©ª"ª/ªCª:ªdªxª~ª€ª‚ªˆªŠª—ªšª¢ª¤h^tâ«â«¬
    +¬¬¬¬+¬8¬g¬r¬z¬|¬ެެެŸ¬¬¬¬¬º¬¥@z†ï�ï�ó�ô������0�5�7�¦<ðû5™5™J™9™Y™�™§€�¹‚®‚® ®±®¹®Ì®Þ®é®ô®
    +¯¯,¯B¯J¯J¯™¯ž¯ž¯Á¯Á¯دø¯ÿ¯!°¨˜ì<<+<5<:<?<?<N<S<l<u<€<‚<ƒ<ƒ<�<š<œ<«<­<¹<Ã<Ñ<Ö<å<ì<î<î<î<ô<©€~š&Ú&Ú/Ú2ÚIÚIÚ`ÚtÚ’Ú”Ú¬Ú¿ÚÊÚÛÚòÚòÚ	ÛÛ;Û=ÛUÛhÛhÛkÛÄÛª8—¡*V*V@VIVSV^VgVjVtV«4<Eà4à4ô4555 5 5'5¬X€Òž¤ž¤º¤Ê¤Ñ¤Ù¤à¤ü¤¥ ¥ ¥A¥A¥A¥J¥L¥L¥U¥W¥W¥`¥b¥b¥k¥m¥m¥v¥x¥x¥�¥ƒ¥ƒ¥Œ¥Ž¥Ž¥—¥—¥š¥Ÿ¥Ÿ¥Ÿ¥¢¥¥¥¥¥¿¥Ï¥æ¥ù¥ù¥û¥û¥¦¦¦¦¦¦¦¦#¦0¦5¦5¦>¦R¦U¦Z¦Z¦c¦c¦q¦u¦N§­ ¢¦zVzVƒV�V•V®`Ui3I3ISI^IdIoIqI‚I�I•I•I¡I¯0;C‹K‹K”K¢K¨K¹K»K»KÀK°(‹‘ÒUÒUæUñUúUýUV± \€’Þ’ÞšÞ¥ÞµÞÄÞÐÞôÞôÞ	ßßßß#ß9ßEßMßUßgߔߠ߳߻ßÀßÀßÌßÌßÞßåßåß÷ßüßರ.VzÜzÜ‚Ü�Ü�ܬܸÜÜÜÜÜ	Ý.Ý3Ý3ÝHÝPÝUÝUÝ|݄݌ݞÝËÝ×ÝêÝòÝ÷ÝÞÞÞÞÞ,Þ3Þ3ÞEÞJÞVÞ³8LV|}|}Œ}�}‘}–}Ÿ}¢}§}¯}´ €„þ
    +þ
    +µ({Z{Z„ZŽZ™Z¡Z¦Z¶DXX.X@XGXKXNXYXaXuXxX€X·h²È..Pgq…›¿ÙÙï
    ,
    ,
    ?
    ?
    K
    ¸X=Oåå(å*å?åGåhåoå|å|å“åœå å¤å¹\r…ïƒïƒ„„„"„+„+„E„P„X„l„u„{„†„†„¤„ºPFV(5(5F5L5Q5m5s5x5–5˜5¦5¬5¯5½5»lXo®ø®øÏøÒøàøàøìøóøøøûøùùùùùùùù ù/ù¼Œ~�û6û67/7Z7…7Ô7á7ã7û7û7J8W8Y8q8q8�8¡8¨8­8·8ä8ë8í8ò8õ8½ˆ;Ye‹e‹n‹x‹x‹ˆ‹•‹ž‹§‹°‹¹‹Í‹Í‹Ø‹Þ‹à‹ï‹÷‹ŒŒŒ8Œ8Œ:ŒJŒPŒUŒ¾4ô{ô{|||*|-|3|;|¿d µÒÎÒÎèÎôÎùÎÏ	ÏÏ0Ï?ÏPÏVÏVÏqÏyÏ�ÏÀ¨'Š˜Š˜œ˜§˜¬˜º˜ƘÒ˜Û˜æ˜ñ˜ü˜™™™+™J™U™\™p™Œ™˜™ ™«™­™¾™É™ЙÞ™í™ï™ø™šÁ W[ZÞZÞtÞ†Þ�ÞÂD8Erõrõ†õ�õ¢õ©õ°õÀõËõÙõÜõäõÃ<)4”|”|«|®|³|¶|É|Ï|Ò|Ô|Þ|Ä´`ÉÊÊÕöý&5IYo|�°¿ÌÕÕî
    2
    e
    j
    „
    ˜
    ´
    ¿
    ß
    è
    ð
    ù
    =Re”®ºÌÑãõ
    )<<oz…Ÿ­¹ÅÅÊÚè+27W^ƒƒ¦µßááæ!66GNccttwÅh
    + õõõ/õ;õGõSõ\õeõnõwõ€õ‰õ’õ›õ¤õ­õ¶õ¿õÈõÈõàõÆ0¾Æii9iUilixi~i„i£iÇX’¤€0€0Ž0—0£0©0¬0±0·0º0¿0¿0Ì0Ð0Ó0Ó0Ù0ÈLþ
    ;Q;QJQXQXQbQlQ‰Q”Q�Q£Q¤QªQÉÜ�´ŸgŸgÅgÍgÙgîgîghhh+h+h0hNhQhVhdhxhh‰h‰hžhžh´hÂhÈhÐhÛhùhii	iii2iyÍhÖ,—>—>¢>º>Ë>Ú>ä>í>þ>?.?>?Q?Y?z?�?¥?¯?Ô?Ù?ã?ô?@@@A@_@i@i@ˆ@›@£@£@Â@Ò@ð@0AAAö@VAoAwAwA‘A¦AÄAÎAáAéAÔA4B4B4BjBjB{B{BŽB B¨B»BÓBæBîBîBüBCCC%C0C>C>CCCOCÎ4{„~ž~žŽž�ž˜ž¬ž³ž¸žÀžÏ<²½WW6W:WSWjWtW~W�W‘WÐ8§±šVšV¾VÂVÛVòVüVÿVWÑLú	†ô†ô¢ô®ôÈôÑôÞôòôøôõÒ`L`››:›F›Q›V›d›o›~›„›•›™›�›£›¦›­›¸›¸›Ä›Ó Ÿ£2v2v6vAvCvÔ #Gæõæõûõöööö"ö;ö^ö`öö–öµöÛöúö÷÷÷4÷L÷U÷U÷n÷x÷‘÷Ÿ÷¡÷¨÷¯÷è÷Õ¼\‡¢ï¢ï¾ïÁïÊïÓïÝïïïòïõïúï
    ðð#ð#ð7ð9ð9ðMðMðPðSðaðeð{ð�ðˆð�ð’ð—ð¬ð¯ð±ð±ðÆðÆðÆðØðÖ`¹ÍM�M�i�l�q�w�€�…�‘�™�¥�©�±�½�¿�¿�Â�Î�× ’–
    +V
    +VV V%VØ\"‚X‚X’X—X¡X©X²XµX¼X¿XÇXÎXÖXÙd\qÿ‚ÿ‚ƒ ƒ;ƒJƒ_ƒeƒmƒ�ƒžƒƒÒƒ؃áƒáƒíƒÚ\7J7JEJOJVJ\JeJsJ~J€J�JœJ¹JÂJËJÑJÙJÛ<±¼˜t˜t¬t¯t¸tÈtÍtátòtÜ|øŠxŠxÀx´xÐxÖxåxêxûxÿxy
    yy"y(y/y2yDyÝ´†¯§„§„DŽʄӄç„ñ„ü„þ„… …(…,…,…5…G…L…`………ž…¥…§…Ë…ã…ã…å…å…å…ÿ…††\†Þ°	1�Š�ЖббззннннннннŠÂŠÂŠÎŠÔŠÔŠÚŠßŠèŠèŠûŠûŠûŠûŠûŠûŠ‹‹‹‹‹‹‹ß„u’xx•xœxªxÄxÙxßxíxòxùxyyyyy&y4y8y;y>yGyZyà,JyJyNySymyrytyá@›§“/“/¡/¨/¯/¹/À/Â/Ô/Ù/æ/â,„‹ô~ô~ý~
    +ãD -ÜÜ(Ü0ÜLÜLÜQÜQÜQÜ^Ü^ÜjÜjÜtÜä4›¤E…E…N…\…p…x…~…€…€………å /30C0C>CRCXCæH‚Ò‚Ò—Ò£Ò¦Ò¯Ò»ÒÃÒàÒïÒõÒøÒÓç$¶ã¶ãºã¾ãÀãèDÍÚ¤€¤€²€¾€Ã€Ã€Ð€Õ€Õ€Û€éhC™Í“Í“ç“é“”””.”I”I”I”I”I”U”a”h”v”z”…”•”Ÿ”¤”¤”­”½”Â”Â”Ó”Ø”Û”ç”ø”•
    +•
    +•
    +•'•)•)•F•F•L•X•d•k•o••‚•Ž•Ÿ•°•²•²•ȕʕʕà•à•æ•ò•þ•–	–––(–9–K–M–M–M–R–––êxš´�–�–µ–Ä–Ê–Í–è–——
    ———————&—(—(—(—3—3—3—8—J—ë Pt¾å¾åÇå×ååå	ææ æAæSæSæhæjæ€æ˜æŸæŸæ æ æ®æ¹æÈæÊæÖæáæñæùæçìHŒš07ILLSmpuwí8ðú«`«`Ë`Ö`ä`Ü`÷`aaaaî@ƒ�ê¢ê¢ø¢ £C£P£]£h£Š£’£˜£ï(>D.¢.¢;¢P¢|¢�¢ð ÚÞÎêÎêØêëêðêñ$§¬ääíõû€ò<¶Á‚ςϘϮϿÏÃÏÃÏÈÏÈÏÐÏódµ
    +ŸiŸiÁiÅiÍiÞiÞiôiýi
    j
    jj(j-jIjLjQjVjfjqjxj|j€jŽj¢j©j³j¹j¼jÊjÐjàj÷jùjüjüjþjk$k*k3k?k`kdkpkwk~k„k‡k•k«k«k«k°k¼kÔkØkãkækékïkòklllll*lBlFlQlTl[lllllsl‰lôÀIuQuQ‰Q–QœQ¤Q±Q³QÉQÑQÑQÛQôQRRR!R$R+R0R8R=RJRORaRhRŽR‘R¬R¬R¬R°RµRÃRõ4 (d|d|r|t|y|‚|…|Š|�|öVßJßJúJKK%K7KAKQKTKaKŽK‘K•KÀKÃKÎKÙKëKóKLL#L5L>LKLZLpLwLˆLˆL”LŸLŸL²LµLÅLÒLÛLëLíLM
    +MM#M3M?M?M?MEMLMQMWMYM~M÷$N“#L#L+L;LJLOLcL€L™L¶L¾LÝLðLMZM\M`MøXÂÔwwwwww!w!w+w>wNwTwcwhwwwywywùhW>Þ>ÞVÞ_ÞeÞnÞvÞއތތޔޙޙޡޯޯ޵޼޼ÞÒÞÚÞáÞèÞïÞúÞßß'ß)ß=ßeß{߈ßÏß·ßíßà,à6àSàVàZà_àhàqà¨à™à”à¹à´àÏàçàõàÿàÿàáá(á=áFá]áaáhájákárárá‚áú@ãïü€ü€
    +��.�;�;�?�E�û0W_´}´}Â}Ñ}Ø}è}ì}ï}õ}ü,))))0)E)N)ý`y�ff'fLfQf`fhflflf|f‹f“fŸf³f»fÇfËfËfßfþ4W`À5À5Ö5Ø5â5ï5ø5ý56ÿtIb§e§eµe¾eÃeÜeàeåeüe
    +f
    +f&f?fEfSfSf_fhfnfnftf<{†ÅLÅLÜLæLîLýLMMM,–�–è–èŸè©èÏèÏèÔè˜\~""*;Ver�‹¤²ÄÓâôù +:I[nw…ŒŒš£Xnn‚Œ“¢»»ÌÛçüþP­½€€€)€/€4€4€>€B€G€G€O€H¨¶ò!ò!
    +"
    """+"B"Y"g"w"�"˜"ª"±"½",ñø»k»kÕkèkókùkl8<F"‰"‰6‰F‰X‰a‰d‰l‰<›¦„„˜¦±¼ÄÌÔ×ß	<juÚ¡Ú¡î¡õ¡ÿ¡¢¢)¢/¢5¢
    +(gʋʋ䋌:Œ=ŒHŒUŒfŒwŒŒ�Œ�Œ’Œ•Œ•Œ¢Œ´Œ·Œ¼ŒÆŒÌŒÝŒàŒåŒåŒòŒùŒ����,�/�1�8�J�M�O�V�h�k�m�t�†�‰�‹�‘�‘�‘�‘�–�–���¤�«�±�´�AŽ8akÊÇÊÇÔÇÜÇíÇÈ
    +È
    ÈÈÈPÙéú“ú“””0”A”f”i”ƒ”�”š”š”œ”¤”
    H¾ÌT€T€b€n€s€s€€€’€—€—€�€Hao66"636C6F6H6U6Y6\6f6l:QªþªþµþÄþÓþîþÿÿÿ#ÿ2ÿDÿcÿuÿšÿ£ÿ¸ÿ¿ÿ¿ÿÔÿÕÿÙÿ�šåšå¼å¿åÆåÜåïåóåûå
    æ+æ+æ+æ8æ>æFæRæWæWæ^ædæpæuæ|æƒæŠæ“æ¥æ·æ¼æ¿æÆæÆæØæèæïæüæç1çDçHçgçç³ç³çºçÃçÉçËçËçËçËçËçËçËçßçæçéçùçÿçè
    èèèè è!è!è!è$è&è&è-è0è6è6è9èOè\è\ègè{è‚èˆè�è èÀèÀèÅèÅèÅèÌèÕèÝèÝèÝèèèôè÷è éxÇáÏ"Ï"ë"î"ó"þ"###.#5#<#d#d#l#’#�#¢#¢#ª#Ö#á#æ#æ#ê#ù#œ`ƒü}ü}~~)~/~2~2~9~?~S~X~[~`~i~i~i~m~w~†~Ž~£~®~Ä~È~Ê~ß~ã~ã~ã~í~Œp�h6h6†6‰6¡6¡6£6´6Á6Æ6Ì6é6ì6÷6û6û6777)7-7-76797G7d!6Þ Þ ¡¡(¡3¡6¡<¡D¡X¡h¡u¡w¡…¡’¡¢¡¶¡¸¡¸¡È¡�YyçŽçŽñŽ÷ŽþŽ��B�V�V�[�b�z�“�¬�±�µ�Ä�Æ�Ñ�Ü�ç�ç�ë� UY¶Ô¶ÔÊÔÙÔáÔ€jÖjÖˆÖ—Ö®ÖÀÖÕÖÛÖàÖæÖéÖ÷Ö××	×××#×(×/×H×H×^×@v‚:¢:¢C¢k¢Ž¢›¢¨¢³¢Ö¢Þ¢ã¢Ìh—6ï6ïQï[ïiïoïyïyï†ïŒï�ï“ï•ïœï£ï­ï¹ïÂïÖïîïðûï ð ð.ðVðXðeðlðƒð�ð—ð™ð³ðÎðÚðêð ñì¥Ü…………Ÿ…§…¯…¾…Ï…Ñ…è…ú…ö…	†† †%†,†5†S†O†b†r†‰†š†�†¢†¨†È†Þ†ë†ò†ý†‡‡‡‡"‡%‡+‡:‡K‡P‡\‡g‡y‡L&5 G GªG±G¼GÈGÏGÏGÕGÜGìGîGõGúGþG,‹’–ĖĪļÄÂÄÈÄÎÄ<0;22DTtˆŽ��–,�”òÈòÈûÈÉ
    ÉÉ É%É <• *É*É9É>ÉYÉpÉtÉtÉyÉyÉÉ \õê±ê±ø±ý±²²²9²\²i²v²�²ž²¦²­²­²°²¶²!,Ž•>è>èLèfèsèxè‹è‘è"¼Òý«O«O×OÝOöOPP!P-P1P?P^P^P}P‡P�P–PžP¨P°PÄPÕPæPûPQQQQQQ:Q#4#îîî î)î2î8î8î=î$<¦Ñ¦ÑºÑÍÑÚÑæÑîÑ
    +ÒÒÒ-Ò%4ÓÜ2222'2'242<2A2I2&,W^ë@ë@ù@û@
    AAA A'DJôJôWôeômôuôƒô‹ô“ô›ô£ô­ô²ô(^šJJRbtƒŒš¨´ÅÚï5DWez‘š©Äâù
    (4I^pu��›°ÂÛäïö)(QWvøvø�ø•ø¤ø¨ø*0X`
    +
    + 
    +)
    +/
    +5
    +7
    +7
    +<
    ++@	""6DR\m~ˆ’œ¢,ˆ ÓEÓEóEýEFFFF,F6FLFVFXFwF|F�F›F¦F·FÅFÏFÏFÏFßF-PÙé^ó^ó|ó�ó›óµóÆóÓóçóîóôóô.$mr�r�r”r¤r©r¹r/H¾Ì’W’W¨W­WÆWÑWÚWÜWèWëWîWøW0D&«Z«Z´ZÂZÂZÄZÊZÕZÕZäZåZêZ1(¤ªJvJvNvYv^vhvjv2D.;®í®í¼íÊíÊíÒíñíîîîî3d>SÂîÂîÛîßîëîëî÷î÷îïïï"ï1ïCïXïbïqïqï{ï4ÔTÎÌÎÌìÌðÌóÌÍÍ!Í'Í+Í.Í0Í6Í:Í=ÍCÍFÍYÍqÍyÍ|Í�ͨ͡ͲͶÍÉÍÌÍØÍÝÍãÍëÍþÍÎ Î#Î4ÎLÎSÎSÎbÎpΊΗζζÎÇÎßÎìÎñÎñÎÏÏÏ"Ï"Ï3ÏGÏ^ÏcÏcÏiÏzώϭϲϲϸÏÉÏÝÏüÏÐÐÐ&Ð3Ð8Ð8ÐIÐ]ÐjÐoÐoЀДСУУУУУдÐÌÐÛÐÝÐÝÐîÐÑÑÑÑÑÑÑ£Ñ54ÃÌrÁrÁ€Á…Á�Á“Á—Á�Á6l 7ãFãFGGG G G5G?GVG`GbG�G†G—G¥G°GÁGÏGÙGÙGçG7ˆ7UëGëGHHH(HAHAHTH]HrH{H‚H‡H‘HšH¤H§HªH¯HÇHÕHæHIIII0I8�lŒÈÈ1È4È>ÈUÈUÈfÈoÈyÈ}È€È�ȖȖȠȠȦȭȱȺȺÈÃÈÈÈÔÈæÈèÈòÈ9XÉÛoo9oFoKoWowo}oŠo•oœo¥o©oµo:X¶Èynyn™n¦n«n·n×nÝnên÷nþnooo;$
    ¶™¶™Ì™š%š3š< X\†á†áŠá“á•á= äèëë ë3ë8ë> áå}�}�‘�£�«�?(7=ΡΡۡð¡¢)¢@0‚ŠNÄNÄhÄkÄkÄtąĈÄ�ÄAHª¸ÍŽÍŽèŽ����5�:�<�<�F�B `‚łŗŨŭŹžÅÜÅÜÅÜÅéÅþÅÆÆÆ2Æ!ÆJÆ[ÆnƃƅƋƚƚƴƻÆÍÆãÆêÆúÆÿÆÇÇÇÇÇÇÇ$Ç/ÇNÇNÇ^ÇeÇnÇÇÇNJǑǖÇ�Ç ÇÈÇCXºÌ"°"°D°H°N°Q°\°\°m°z°„°‡°а�°ž°D0ž¦¢é¢é¸éÄéïéñéñéùéEDÂÄÂÄËÄÓÄÓÄàÄòÄúÄÿÄÅÅÅÅÅFL6š6šFšTšdšjš•š¹šÊš››!›GØ9B}B}\}c}g}k}v}‡}•}©}µ}¸}Á}Ì}ã}è}ñ}ô}þ}~	~~ ~7~?~V~]~f~i~k~{~~~€~‡~—~›~¢~¥~Ë~Ò~ä~H<ðû
    ‘
    ‘#‘%‘3‘P‘T‘d‘q‘I �…
    +à
    +à$à6à@àJH -.í.íBíDíKíYí�í†í�í¢í¢í¦í®íK@:F5K5KEKRKYKnKuK|K…KLHâðÿ#ÿ#$&$6$K$R$[$x${$…$MP�P�P¡PÃPÃPÏPÚPÞPåPðPôPüPýPQNpbzê{ê{ò{þ{|"|0|>|d|y|~|…|Š|Š|Œ|O ÍÑúWúWXXPt/¢¢­¼ËÙô:[l�¢³¼Éàû,-1Qh„š‹.‹.“.±.Â.Ò.Ù.ý./!/(/9/Q/S/S/f/w/�/‘/‘/“/R0$,»»ÃÝåý	S@
    ÂÉÂÉËÉÓÉÜÉðÉúÉÿÉÊÊÊÊÊT4ÇУi£iÁiÝiôijjjj2jU vz¥L¥L®LÀLÅLV<R]ÚÿÚÿìÿüÿ;ACCIW`ŠüŠü’ü¡ü­üÁüÒüÝüæüîüðüýýýý-ý.ý2ýXTDUCCG^u€‹²ßê *:KRY8$k3k3t3„3Œ3™3›3¨3¨3«3
    \ No newline at end of file
    diff --git a/Kernel/Kernel.PRJ b/Kernel/Kernel.PRJ
    index f7aa8fc..6c0b431 100644
    --- a/Kernel/Kernel.PRJ
    +++ b/Kernel/Kernel.PRJ
    @@ -27,7 +27,8 @@
     #include "KMathB"
     #include "Sched"
     #include "Mem/MakeMem"
    -#include "Font8x8"
    +#include "FontStd"
    +#include "FontCyrillic"
     #include "StrB"
     #include "KHashA"
     #include "KInts"
    diff --git a/Kernel/KernelA.HPP b/Kernel/KernelA.HPP
    index 3011ef2..e9860a3 100644
    --- a/Kernel/KernelA.HPP
    +++ b/Kernel/KernelA.HPP
    @@ -1,18 +1,19 @@
     // Main TempleOS header
     
     #help_index ""
    -extern class CTask;
    -extern class CDoc;
    +extern class CAOT;
    +extern class CAOTHeapGlbl;
    +extern class CAOTImportExport;
     extern class CCPU;
    +extern class CDC;
    +extern class CDoc;
    +extern class CFile;
     extern class CHashClass;
     extern class CHashFun;
    -extern class CAOTImportExport;
     extern class CHeapCtrl;
    -extern class CAOTHeapGlbl;
    -extern class CAOT;
    -extern class CDC;
    -extern class CSrvCtrl;
     extern class CIntermediateCode;
    +extern class CSrvCtrl;
    +extern class CTask;
     
     #define NULL	0
     #define TRUE	1
    @@ -419,6 +420,7 @@ class CKernel
       CBinFile h;
       U32	jmp,
     	boot_src,
    +	boot_blk,
     	boot_patch_table_base,
     	sys_run_level;
       CDate	compile_time;
    @@ -427,9 +429,9 @@ class CKernel
       U32	boot_base;
       U16	sys_mem_E801[2];
       CMemE820 sys_mem_E820[MEM_NUM_E820_ENTRIES];
    -  CGDT	sys_gdt;
       CSysLimitBase sys_gdt_ptr;
       U16	sys_pci_busses;
    +  CGDT	sys_gdt;
     };
     
     //Run-Levels
    @@ -886,12 +888,12 @@ public class CHashGlblVar:CHashSrcSym
     //See $LK,"TextBase Layer",A="HI:TextBase Layer"$.
     #define ATTRF_BLINK	0x10000000
     #define ATTRF_INVERT	0x20000000
    -#define ATTRF_SELECTED	0x40000000
    +#define ATTRF_SEL	0x40000000
     #define ATTRF_UNDERLINE	0x80000000
     
     #define ATTRf_BLINK		28
     #define ATTRf_INVERT		29
    -#define ATTRf_SELECTED		30
    +#define ATTRf_SEL		30
     #define ATTRf_UNDERLINE		31
     
     //CDocEntry.type codes (Low 8 bits)
    @@ -944,13 +946,13 @@ public class CHashGlblVar:CHashSrcSym
     //CDocEntry.type flags upper bits
     #define DOCET_BLINK		ATTRF_BLINK
     #define DOCET_INVERT		ATTRF_INVERT
    -#define DOCET_SELECTED		ATTRF_SELECTED
    +#define DOCET_SEL		ATTRF_SEL
     #define DOCET_UNDERLINE		ATTRF_UNDERLINE
     #define DOCG_BL_IV_UL		0xB0000000
     
     #define DOCEt_BLINK		ATTRf_BLINK
     #define DOCEt_INVERT		ATTRf_INVERT
    -#define DOCEt_SELECTED		ATTRf_SELECTED
    +#define DOCEt_SEL		ATTRf_SEL
     #define DOCEt_UNDERLINE		ATTRf_UNDERLINE
     
     #define DOCG_DBL_BUF_FLAGS	(DOCF_OVERSTRIKE|DOCF_PLAIN_TEXT|\
    @@ -1038,13 +1040,13 @@ public class CHashGlblVar:CHashSrcSym
     #define DOCEF_WORD_WRAP		0x8000000
     #define DOCEF_BLINK		ATTRF_BLINK
     #define DOCEF_INVERT		ATTRF_INVERT
    -#define DOCEF_SELECTED		ATTRF_SELECTED
    +#define DOCEF_SEL		ATTRF_SEL
     #define DOCEF_UNDERLINE		ATTRF_UNDERLINE
     #define DOCEf_HIGHLIGHT		26
     #define DOCEf_WORD_WRAP		27
     #define DOCEf_BLINK		ATTRf_BLINK
     #define DOCEf_INVERT		ATTRf_INVERT
    -#define DOCEf_SELECTED		ATTRf_SELECTED
    +#define DOCEf_SEL		ATTRf_SEL
     #define DOCEf_UNDERLINE		ATTRf_UNDERLINE
     
     //CDocEntry.de_flags.  These first 16 are arg=
    @@ -1227,7 +1229,7 @@ class CEdFindText
     	"A=\"Replace     :%s\"$$\n";
       Bool	replace			fmtstr "$$CB,\"Replace\"$$\n",
     	scan_fwd		fmtstr "$$CB,\"Fwd\"$$\n",
    -	scan_selected_text	fmtstr "$$CB,\"Selection\"$$\n",
    +	scan_sel_text	fmtstr "$$CB,\"Sellection\"$$\n",
     	match_case		fmtstr "$$CB,\"Match Case\"$$\n",
     	whole_labels		fmtstr "$$CB,\"Whole Labels\"$$\n",
     	local_var		fmtstr "$$CB,\"Rename Local Var\"$$\n",
    @@ -1280,7 +1282,7 @@ class CEdFileName
     #define DOCF_WORD_WRAP		DOCEF_WORD_WRAP
     #define DOCF_BLINK		DOCEF_BLINK
     #define DOCF_INVERT		DOCEF_INVERT
    -#define DOCF_SELECTED		DOCEF_SELECTED
    +#define DOCF_SEL		DOCEF_SEL
     #define DOCF_UNDERLINE		DOCEF_UNDERLINE
     
     #define DOCF_OVERSTRIKE 	0x100000000
    @@ -1317,7 +1319,7 @@ class CEdFileName
     #define DOCf_WORD_WRAP		DOCEf_WORD_WRAP
     #define DOCf_BLINK		DOCEf_BLINK
     #define DOCf_INVERT		DOCEf_INVERT
    -#define DOCf_SELECTED		DOCEf_SELECTED
    +#define DOCf_SEL		DOCEf_SEL
     #define DOCf_UNDERLINE		DOCEf_UNDERLINE
     
     #define DOCf_OVERSTRIKE 	32
    @@ -1618,7 +1620,7 @@ public class CAutoCompleteDictGlbls
     #define ICF_DONT_RESTORE		0x100000000
     #define ICG_NO_CVT_MASK			0x1FFFFFF00
     
    -#define IC_BODY_SIZE			0x80
    +#define IC_BODY_SIZE			0x83
     
     #define ECF_HAS_PUSH_CMP		0x01 //for 50last_lex->lex_include_stk->line_num);}
    -#define __DEPTH__ #exe{StreamPrint("%d",\
    -	Fs->last_lex->lex_include_stk->depth);}
    +#define __CMD_LINE__ #exe{StreamPrint("%d",Fs->last_lex->flags&CCF_CMD_LINE &&\
    +	Fs->last_lex->lex_include_stk->depth<2);}
     #define __FILE__ #exe{StreamPrint("\"%s\"",\
     	Fs->last_lex->lex_include_stk->full_name);}
     #define __DIR__  #exe{StreamDir;}
    @@ -2122,18 +2124,19 @@ class CLexHashTableContext
     };
     
     //CmpCtrl flags
    -#define CCF_PMT			1
    -#define CCf_PMT			0
    -#define CCF_QUESTION_HELP	2
    -#define CCF_DONT_FREE_BUF	4
    -#define CCF_NO_DEFINES		8
    -#define CCF_IN_IF		16
    -#define CCF_JUST_LOAD		32
    -#define CCF_KEEP_NEW_LINES	64
    -#define CCF_KEEP_DOT		128
    -#define CCF_KEEP_NUM_SIGN	256
    -#define CCF_KEEP_AT_SIGN	512
    -#define CCf_PASS_TRACE_PRESENT	10
    +#define CCF_CMD_LINE		0x001
    +#define CCF_PMT			0x002
    +#define CCf_PMT			1
    +#define CCF_QUESTION_HELP	0x004
    +#define CCF_DONT_FREE_BUF	0x008
    +#define CCF_NO_DEFINES		0x010
    +#define CCF_IN_IF		0x020
    +#define CCF_JUST_LOAD		0x040
    +#define CCF_KEEP_NEW_LINES	0x080
    +#define CCF_KEEP_DOT		0x100
    +#define CCF_KEEP_NUM_SIGN	0x200
    +#define CCF_KEEP_AT_SIGN	0x400
    +#define CCf_PASS_TRACE_PRESENT	11
     #define CCF_NOT_CONST		0x0000010000
     #define CCF_NO_REG_OPT		0x0000020000
     #define CCF_IN_QUOTES		0x0000040000
    @@ -2277,7 +2280,7 @@ public class CATARep
     #define ATAR0_SECT	3
     #define ATAR0_LCYL	4
     #define ATAR0_HCYL	5
    -#define ATAR0_SELECT	6
    +#define ATAR0_SEL	6
     #define ATAR0_STAT	7
     #define ATAR0_CMD	7
     #define ATAR1_CTRL	2
    @@ -2293,7 +2296,6 @@ public class CATARep
     #define BLK_SIZE_BITS	9
     #define BLK_SIZE	(1<put_key=fp_put_key;
    -  tempp->put_s=fp_puts;
    -  tempp->priority=priority;
    -  if (key_descs)
    -    tempp->flags|=KDF_HAS_DESCS;
    -  while (tempp1->priority>priority)
    -    tempp1=tempp1->last;
    -  QueIns(tempp,tempp1);
    -  return tempp;
    -}
    -
     U0 KeyDevRem(CKeyDevEntry *tempp)
     {//Remove StdOut hook and free.
       QueRem(tempp);
       Free(tempp);
     }
     
    +CKeyDevEntry *KeyDevAdd(Bool (*fp_put_key)(I64 ch,I64 sc),
    +	Bool (*fp_puts)(U8 *st),I64 priority,Bool key_descs=FALSE)
    +{//Places hook in StdOut chain. See $LK,"Keyboard Devices",A="HI:Keyboard Devices/System"$.
    +  CKeyDevEntry *tempp=keydev.put_key_root.last,
    +	*tempp1=ACAlloc(sizeof(CKeyDevEntry));
    +  tempp1->put_key=fp_put_key;
    +  tempp1->put_s=fp_puts;
    +  tempp1->priority=priority;
    +  if (key_descs)
    +    tempp1->flags|=KDF_HAS_DESCS;
    +  while (tempp->priority>priority)
    +    tempp=tempp->last;
    +  QueIns(tempp1,tempp);
    +  if (tempp->priority==priority)
    +    KeyDevRem(tempp);
    +  return tempp1;
    +}
    +
     Bool KDRawPutKey(I64 ch,I64)
     {
       if (IsRaw) {
    @@ -143,11 +145,6 @@ U0 CtrlAltD(I64)
       }
     }
     
    -U0 CtrlAltE(I64)
    -{
    -  User;
    -}
    -
     U0 CtrlAltF(I64)
     {
       SwapI64(&text.font,&text.aux_font);
    @@ -158,11 +155,16 @@ U0 CtrlAltM(I64)
       Mute(!IsMute);
     }
     
    -U0 CtrlAltT(I64)
    +U0 CtrlAltN(I64)
     {
       LBts(sys_ctrl_alt_flags,SYSf_CTRL_ALT_TAB);
     }
     
    +U0 CtrlAltT(I64)
    +{
    +  User;
    +}
    +
     U0 CtrlAltV(I64)
     {
       VGAFlush;
    @@ -208,10 +210,10 @@ U0 KeyDevInit()
       KeyDevAdd(&KDRawPutKey,&KDRawPutS,0x60000000,FALSE);
       CtrlAltCBSet('C',&CtrlAltC,"Cmd /Break Execution",,TRUE);
       CtrlAltCBSet('D',&CtrlAltD,"Cmd /Enter Debugger",,TRUE);
    -  CtrlAltCBSet('E',&CtrlAltE,"Cmd /Spawn New User Task");
       CtrlAltCBSet('F',&CtrlAltF,"Cmd /Toggle Aux Font");
       CtrlAltCBSet('M',&CtrlAltM,"Cmd /Toggle Mute");
    -  CtrlAltCBSet('T',&CtrlAltT,"Cmd /Switch Focus to Next Task",,TRUE);
    +  CtrlAltCBSet('N',&CtrlAltN,"Cmd /Next Focus Task",,TRUE);
    +  CtrlAltCBSet('T',&CtrlAltT,"Cmd /Terminal Window");
       CtrlAltCBSet('V',&CtrlAltV,"Cmd /VGA Flush",,TRUE);
       CtrlAltCBSet('X',&CtrlAltX,"Cmd /Kill Focused Task",,TRUE);
     }
    diff --git a/Kernel/Mem/MemPhysical.CPP b/Kernel/Mem/MemPhysical.CPP
    index 2bdc8b7..91cf762 100644
    --- a/Kernel/Mem/MemPhysical.CPP
    +++ b/Kernel/Mem/MemPhysical.CPP
    @@ -36,8 +36,8 @@ U0 Mem32DevInit()
       tempmr=AMAlloc(sizeof(CMemRange));
       tempmr->type=MRT_UNUSED;
       tempmr->flags=0;
    -//Maybe !!! Change this to 0xE0000000 !!!
    -  tempmr->base=0xF0000000;
    +//Maybe !!! Change this to 0xF0000000 !!!
    +  tempmr->base=0xE0000000;
       tempmr->size=0x10000000;
       QueIns(tempmr,dev.mem32_root.last);
     
    @@ -156,7 +156,7 @@ U0 Mem64DevFree(U8 *base,I64 pages2Meg)
     U8 *MemVGAAlloc()
     {
       I64 i=1,*a=Mem64DevAlloc(&i),*pte=MemPageTable(a);
    -  *pte=0x18F;
    +  *pte=0x197;
       InvlPg(a);
       return a;
     }
    diff --git a/Kernel/Sched.CPP b/Kernel/Sched.CPP
    index a67b912..5371228 100644
    --- a/Kernel/Sched.CPP
    +++ b/Kernel/Sched.CPP
    @@ -26,7 +26,7 @@ The scheduler checks for a few keys:
     
      kill a task.
      reboots.
    - changes focus to next task.
    + Next task.
      breaks execution of a program.
     
     Each core has its own circular task queue.
    diff --git a/Kernel/SerialDev/Keyboard.CPP b/Kernel/SerialDev/Keyboard.CPP
    index 06ed38e..bd3f35b 100644
    --- a/Kernel/SerialDev/Keyboard.CPP
    +++ b/Kernel/SerialDev/Keyboard.CPP
    @@ -362,9 +362,9 @@ U0 KbdBuildSC(U8 raw_byte,Bool in_irq,U8 *_last_raw_byte,I64 *_last_sc)
     	CtrlAltDel(sc);
           else {
     	if (sc&255==SC_ESC)
    -	  ch='e';
    -	else if (sc&255==SC_TAB)
     	  ch='t';
    +	else if (sc&255==SC_TAB)
    +	  ch='n';
     	else
     	  ch=ScanCode2Char(sc&255);
     	if ('a'<=ch<='z') {
    diff --git a/Kernel/SerialDev/Mouse.CPP b/Kernel/SerialDev/Mouse.CPP
    index 50ef6a6..5deb003 100644
    --- a/Kernel/SerialDev/Mouse.CPP
    +++ b/Kernel/SerialDev/Mouse.CPP
    @@ -216,7 +216,7 @@ U0 KbdMouseRst()
     
     Bool MouseDriverInstall(I64 dummy=0) //can be spawned
     {
    -  nounusedwarn dummy;
    +  no_warn dummy;
       I64 i;
       mouse.install_in_progress=TRUE;
       OutU8(0xA1,InU8(0xA1)|0x10);
    diff --git a/Kernel/StrPrint.CPP b/Kernel/StrPrint.CPP
    index 3a5d644..31acc8c 100644
    --- a/Kernel/StrPrint.CPP
    +++ b/Kernel/StrPrint.CPP
    @@ -139,7 +139,7 @@ U8 *MPrintq(U8 *ptr,I64 flags)
           switch (ch) {
     	case '\\':
     	  switch (ch1) {
    -	    sub_switch_start:
    +	    start:
     	      case 'n':
     		SPutChar(_dst,'\n',_buf);
     		break;
    @@ -164,7 +164,7 @@ U8 *MPrintq(U8 *ptr,I64 flags)
     	      case '0':
     		SPutChar(_dst,0,_buf);
     		break;
    -	    sub_switch_end:
    +	    end:
     	      ptr++;
     	      break;
     
    @@ -281,7 +281,7 @@ to avoid this.
           aux_fmt_num=0;
           while (TRUE) {
     	switch (*fmt) {
    -	  sub_switch_start:
    +	  start:
     	    case '$$':
     	      flags|=SPF_DOLLAR;
     	      break;
    @@ -296,7 +296,7 @@ to avoid this.
     	      break;
     	    case 'l': //harmless
     	      break;
    -	  sub_switch_end:
    +	  end:
     	    fmt++;
     	    break;
     
    @@ -332,7 +332,7 @@ to avoid this.
           sp_arg:
           k=0;
           switch (*fmt++) {
    -	sub_switch_start:
    +	start:
     	  case 'F':
     	    if (cur_arg>=argc)
     	      throw('StrPrint');
    @@ -365,12 +365,12 @@ to avoid this.
     	      throw('StrPrint');
     	    ptr=MPrintTime(argv[cur_arg++]);
     	    break;
    -	sub_switch_end:
    +	end:
     	  OutStr(ptr,_buf,_dst,len,flags);
     	  Free(ptr);
     	  break;
     
    -	sub_switch_start:
    +	start:
     	  case 's':
     	    if (cur_arg>=argc)
     	      throw('StrPrint');
    @@ -393,11 +393,11 @@ to avoid this.
     	    ptr=DefineSub(argv[cur_arg],argv[cur_arg+1]);
     	    cur_arg=cur_arg+2;
     	    break;
    -	sub_switch_end:
    +	end:
     	  OutStr(ptr,_buf,_dst,len,flags);
     	  break;
     
    -	sub_switch_start:
    +	start:
     	  case 'c':
     	    if (cur_arg>=argc)
     	      throw('StrPrint');
    @@ -415,7 +415,7 @@ to avoid this.
     	      ptr++;
     	    }
     	    break;
    -	sub_switch_end:
    +	end:
     	  if (!(flags&SPF_AUX_FMT_NUM))
     	    aux_fmt_num=1;
     	  while (aux_fmt_num-->0)
    diff --git a/MakeHome.CPP b/MakeHome.CPP
    index c47e546..053de17 100644
    --- a/MakeHome.CPP
    +++ b/MakeHome.CPP
    @@ -2,9 +2,14 @@ Cd(__DIR__);;
     
     //If these are not present in /Home, it uses the version in the root dir.  You
     //can make your own, modified, version of these files in your /Home directory.
    -#include "::/Home/HomeLocalize"
    -#include "::/Home/HomePkgs"
    -#include "::/Home/HomeKeyPlugIns"
    -#include "::/Home/HomeWrappers"
    -#include "::/Home/HomeSys"
    +#include "~/HomeLocalize"
    +
    +#include "/Adam/Opt/Boot/MakeBoot"
    +#include "/Adam/Opt/Utils/MakeUtils"
    +MapFileLoad("::/Kernel/Kernel");
    +MapFileLoad("::/Compiler/Compiler");
    +
    +#include "~/HomeKeyPlugIns"
    +#include "~/HomeWrappers"
    +#include "~/HomeSys"
     Cd("..");;
    diff --git a/Misc/DoDistro.CPP b/Misc/DoDistro.CPP
    index dcc9b08..6d45036 100644
    --- a/Misc/DoDistro.CPP
    +++ b/Misc/DoDistro.CPP
    @@ -34,7 +34,10 @@ U0 MakeMyISO(U8 *out_iso_filename)
       CopyTree("/Linux","/Distro/Linux");	  //You can leave this out.
       MkDir("/Distro/Temp");
       MkDir("/Distro/Temp/ScreenShots");
    -  ISOFileCreate(out_iso_filename,"/Distro/*",,"/Distro" BOOT_DIR_KERNEL_BIN_C);
    +  ISO9660ISO(out_iso_filename,"/Distro/*",,"/Distro" BOOT_DIR_KERNEL_BIN_C);
    +
    +  //If you want $LK,"RedSea",A="FI:::/Doc/RedSea.TXT"$ filesystem, use this instead but make it ISO.C.
    +  //RedSeaISO(out_iso_filename,"/Distro","/Distro" BOOT_DIR_KERNEL_BIN_C);
     
       //If CD-ROM use MT_CD instead of MT_DVD.
       //DVDImageWrite('T',out_iso_filename,MT_DVD); //Uncomment to burn.
    diff --git a/Misc/OSInstall.CPP b/Misc/OSInstall.CPP
    index 5f5e325..37a5d79 100644
    --- a/Misc/OSInstall.CPP
    +++ b/Misc/OSInstall.CPP
    @@ -1,3 +1,22 @@
    +U0 InstallDrv(U8 drv_let)
    +{
    +  U8 *st;
    +  ExePrint("CopyTree(\"::/\",\"%C:/\");",drv_let);
    +  ExePrint("MkDir(\"%C:/Temp\");",drv_let);
    +  ExePrint("MkDir(\"%C:/Temp/ScreenShots\");",drv_let);
    +  ExePrint("MkDir(\"%C:/Home\");",drv_let);
    +
    +  st=MStrPrint("%C:/Home/DoDistro.CPP.Z",drv_let);
    +  if (!FileFind(st))
    +    Copy("::/Misc/DoDistro.CPP.Z",st);
    +  Free(st);
    +
    +  st=MStrPrint("%C:/Home/MakeHome.CPP.Z",drv_let);
    +  if (!FileFind(st))
    +    Copy("::/MakeHome.CPP.Z",st);
    +  Free(st);
    +}
    +
     Bool VMPrtDsk(CTask *task,CATARep *ata_drv)
     {
       if (ata_drv) {
    @@ -8,23 +27,11 @@ Bool VMPrtDsk(CTask *task,CATARep *ata_drv)
         return FALSE;
     }
     
    -U0 VMInstallBoot(CTask *task,U8 dvd_drv,U8 drv_let,
    +U0 VMInstallDrv(CTask *task,U8 drv_let,
     	CATARep *ata_drv,CATARep *atapi_drv)
     {
    -  U8 *st1,*st2;
    -
    -  st1=MStrPrint("%C:/",dvd_drv);  st2=MStrPrint("%C:/",drv_let);
    -  CopyTree(st1,st2);
    -  Free(st1); Free(st2);
    -
    -  st1=MStrPrint("%C:/Home",drv_let);
    -  MkDir(st1);
    -  Copy("::/Misc/DoDistro.CPP.Z",st1);
    -  Copy("::/MakeHome.CPP.Z",st1);
    -  Free(st1);
    -
    -  XTalkWait(task,"MakeOSDrvBootInstall('%C');\n"
    -	"\nB\n0x20000\n",drv_let);
    +  InstallDrv(drv_let);
    +  XTalkWait(task,"MakeOSDrvBootInstall('%C');\n\nB\n0x20000\n",drv_let);
       if (ata_drv)
         XTalkWait(task,"Cp%d\n",ata_drv->num);
       if (atapi_drv)
    @@ -51,10 +58,10 @@ U0 VMInstallWiz()
       WinToTop(Fs);
     
       ATARep(FALSE,TRUE,&root);
    -  ATAIDDrvs(root,blkdev.boot_drv_let,&ata_drv,&atapi_drv);
    +  ATAIDDrvs(root,&ata_drv,&atapi_drv);
       if (VMPrtDsk(task,ata_drv)) {
    -    VMInstallBoot(task,blkdev.boot_drv_let,'C',ata_drv,atapi_drv);
    -    VMInstallBoot(task,blkdev.boot_drv_let,'D',ata_drv,atapi_drv);
    +    VMInstallDrv(task,'C',ata_drv,atapi_drv);
    +    VMInstallDrv(task,'D',ata_drv,atapi_drv);
         MasterBootInstall('C');
       }
       LinkedLstDel(root);
    @@ -65,7 +72,7 @@ U0 VMInstallWiz()
     U0 RegularInstallWiz()
     {
       I64 unit,drv_let;
    -  U8 *st,*base0,*base1,*st1,*st2,*new_home_str;
    +  U8 *st,*base0,*base1;
       CATARep *root=NULL,*tempha;
       I64 ch,num_hints;
       CTask *task;
    @@ -123,8 +130,6 @@ U0 RegularInstallWiz()
         Free(st);
       } while (!('A'<=drv_let<='Z'));
       '\n';
    -  st1=MStrPrint("%C:/",blkdev.boot_drv_let);
    -  st2=MStrPrint("%C:/",drv_let);
     
       "$$RED$$Format %C Partition?$$FG$$\n",drv_let;
       if (YorN) {
    @@ -141,26 +146,15 @@ U0 RegularInstallWiz()
         else
           Fmt(drv_let,,FALSE,FSt_REDSEA);
       }
    -  CopyTree(st1,st2);
    -  st2=MStrPrint("%C:/Temp",drv_let);
    -  MkDir(st2);
    -  Free(st2);
    -
    -  new_home_str=MStrPrint("%C:/Home",drv_let);
    -  MkDir(new_home_str);
    -  Copy("::/Misc/DoDistro.CPP.Z",new_home_str);
    -  Copy("::/MakeHome.CPP.Z",new_home_str);
    -  XTalkWait(task,"MakeOSDrvBootInstall('%C');\n"
    -	"\nB\n0x20000\n"
    -	"Cs%s\n%s\n%C"
    -	"\n\n\n", //Exit Drives,Dsk Cache,Options
    +  InstallDrv(drv_let);
    +  XTalkWait(task,"MakeOSDrvBootInstall('%C');\n\nB\n0x20000\n"
    +	"Cs%s\n%s\n%C\n\n\n", //Exit Drives,Dsk Cache,Options
     	drv_let,base0,base1,'0'+unit);
       "$$RED$$Install Master Boot loader?$$FG$$";
       if (YorN) {
         '\n';
         MasterBootInstall(drv_let);
       }
    -  Free(new_home_str);
       Free(base0);
       Free(base1);
     
    @@ -182,9 +176,9 @@ U0 DoInstructions()
       }
     }
     
    -U0 DoInstall()
    +Bool DoInstall(Bool pmt_reboot)
     {
    -  I64 vm_install,pmt_reboot;
    +  I64 res=FALSE,vm_install;
       "\n\n\n\n\nAre you installing inside VMware, QEMU, VirtualBox "
     	"or a similar virtual machine? ";
       vm_install=YorN;
    @@ -192,21 +186,32 @@ U0 DoInstall()
     
       if (vm_install) {
         VMInstallWiz();
    -    pmt_reboot=TRUE;
    +    res=TRUE;
       } else {
         "\n\nThis wizard works if you have a partition ready.  "
     	  "You can partition the drive or MakeOSDrvBootInstall() "
     	  "with more options if you do it by hand, not using this wizard.\n\n"
     	  "Continue Install Wizard ";
    -    if (pmt_reboot=YorN)
    +    if (YorN) {
           RegularInstallWiz();
    +      res=TRUE;
    +    } else
    +      pmt_reboot=FALSE;
       }
       if (pmt_reboot) {
         "Reboot Now ";
         if (YorN)
           Reboot;
       }
    +  return res;
     }
     
    -DoInstructions;
    -DoInstall;
    +Bool OSInstall(Bool pmt_reboot=TRUE)
    +{
    +  DoInstructions;
    +  return DoInstall(pmt_reboot);
    +}
    +
    +#if __CMD_LINE__
    +OSInstall(TRUE);
    +#endif
    diff --git a/Misc/OSTestSuite.CPP b/Misc/OSTestSuite.CPP
    index f9de193..a42d25e 100644
    --- a/Misc/OSTestSuite.CPP
    +++ b/Misc/OSTestSuite.CPP
    @@ -6,7 +6,7 @@ U0 TSStart()
     U0 TS()
     {
       progress4=ts_num++;
    -  progress4_max=168;
    +  progress4_max=167;
       *progress4_desc=0;
     }
     U0 TSEnd()
    @@ -281,16 +281,6 @@ U0 DoMountain()
       Kill(task);
     }
     
    -U0 DoCoach()
    -{
    -  CTask *task=User;
    -  XTalkWait(task,"#include \"::/Demo/Games/Coach\";\n");
    -  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
    -  Sleep(1000);
    -  PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SHIFT_ESC,0);
    -  XTalk(task,"Exit;\n");
    -}
    -
     U0 DoDigits()
     {
       CTask *task=User;
    @@ -356,7 +346,7 @@ U0 DoScreenCapture()
       Sleep(750);
       PostMsgWait(task,MSG_KEY_DOWN_UP,CH_SPACE,0);
       XTalk(task,"Exit;\n");
    -  Del("/Home/ScreenShot.GRA.Z");
    +  Del("~/DemoScreenShot.GRA*");
     }
     
     /*
    @@ -1765,11 +1755,11 @@ U0 DoFPrintF()
     {
       CTask *task=User;
       XTalkWait(task,"#include \"::/Demo/Dsk/FPrintF\";\n");
    -  XTalkWait(task,"::/Demo/Dsk/FPrintF.TXT");
    +  XTalkWait(task,"~/DemoFPrintF.TXT.Z");
       PostMsgWait(task,MSG_KEY_DOWN_UP,CH_ESC,0);
    -  XTalkWait(task,"Type(\"::/Demo/Dsk/FPrintF.TXT\");\n");
    +  XTalkWait(task,"Type(\"~/DemoFPrintF.TXT.Z\");\n");
       PostMsgWait(task,MSG_KEY_DOWN_UP,CH_CTRLO,0);
    -  XTalkWait(task,"Del(\"::/Demo/Dsk/FPrintF.TXT\");\n");
    +  XTalkWait(task,"Del(\"~/DemoFPrintF.TXT*\");\n");
       Sleep(500);
       XTalk(task,"Exit;\n");
     }
    @@ -1850,7 +1840,7 @@ U0 DoMiniGrLib()
     U0 DoWebLog()
     {
       CTask *task=User;
    -  XTalkWait(task,"#include \"::/Demo/WebLogExample/WebLogRep\";\n");
    +  XTalkWait(task,"#include \"::/Demo/WebLogDemo/WebLogRep\";\n");
       PostMsgWait(task,MSG_KEY_DOWN_UP,'\n',0);
       PostMsgWait(task,MSG_KEY_DOWN_UP,'\n',0);
       PostMsgWait(task,MSG_KEY_DOWN_UP,CH_ESC,0);
    @@ -1858,12 +1848,12 @@ U0 DoWebLog()
       XTalk(task,"Exit;\n");
     }
     
    -U0 DoReverseFile()
    +U0 DoRevFile()
     {
       CTask *task=User;
    -  Del("::/Demo/ReverseFileExample/PoemForward.TXT.Z");
    -  XTalkWait(task,"#include \"::/Demo/ReverseFileExample/Reverse\";\n");
    -  XTalkWait(task,"Type(\"::/Demo/ReverseFileExample/PoemForeward.TXT.Z\");\n");
    +  Del("~/DemoPoemForward.TXT*");
    +  XTalkWait(task,"#include \"::/Demo/RevFileDemo/Rev\";\n");
    +  XTalkWait(task,"Type(\"~/DemoPoemFwd.TXT.Z\");\n");
       Sleep(750);
       XTalk(task,"Exit;\n");
     }
    @@ -1871,8 +1861,8 @@ U0 DoReverseFile()
     U0 DoSortFile()
     {
       CTask *task=User;
    -  XTalkWait(task,"#include \"::/Demo/SortFileExample/F64FileGen\";\n");
    -  XTalkWait(task,"#include \"::/Demo/SortFileExample/F64FileSort\";\n");
    +  XTalkWait(task,"#include \"::/Demo/SortFileDemo/F64FileGen\";\n");
    +  XTalkWait(task,"#include \"::/Demo/SortFileDemo/F64FileSort\";\n");
       Sleep(750);
       XTalk(task,"Exit;\n");
     }
    @@ -1880,8 +1870,8 @@ U0 DoSortFile()
     U0 DoToHtmlToTXT()
     {
       CTask *task=User;
    -  XTalkWait(task,"#include \"::/Demo/ToHtmlToTXTExample/HtmlGen\";\n");
    -  XTalkWait(task,"#include \"::/Demo/ToHtmlToTXTExample/TXTGen\";\n");
    +  XTalkWait(task,"#include \"::/Demo/ToHtmlToTXTDemo/HtmlGen\";\n");
    +  XTalkWait(task,"#include \"::/Demo/ToHtmlToTXTDemo/TXTGen\";\n");
       Sleep(750);
       XTalk(task,"Exit;\n");
     }
    @@ -1984,7 +1974,7 @@ U0 DoNumBible()
     {
       CTask *task=User;
       XTalkWait(task,"#include \"::/Demo/DolDoc/NumBible\";\n");
    -  Del("::/Home/NumBible.TXT.Z");
    +  Del("~/DemoNumBible.TXT*");
       XTalk(task,"Exit;\n");
     }
     
    @@ -2287,7 +2277,7 @@ U0 OSTestSuite()
     {
       TSStart;
       TS; DoBlackDiamond;
    -  TS; if (DrvIsWritable(':')) DoEagleDive;
    +  TS; DoEagleDive;
       TS; DoFlatTops;
       TS; DoDunGen;
       TS; DoFPS;
    @@ -2314,7 +2304,7 @@ U0 OSTestSuite()
       TS; if (FileFind(BIBLE_FILENAME)) DoPalindrome;
       TS; DoClouds;
       TS; if (mp_cnt>1) DoRadixSort;
    -  TS; if (mp_cnt>1) DoLoadTest;
    +  TS; if (mp_cnt>1 && DrvIsWritable(':')) DoLoadTest;
       TS; if (mp_cnt>1) DoMPPrint;
       TS; if (mp_cnt>1) DoLock;
       TS; if (mp_cnt>1) DoInterrupts;
    @@ -2346,11 +2336,10 @@ U0 OSTestSuite()
       TS; DoSpeedLine;
       TS; DoKeyBitMap;
       TS; DoMountain;
    -  TS; DoCoach;
       TS; DoBSpline;
       TS; DoGrModels;
       TS; DoBlot;
    -  TS; if (DrvIsWritable(':')) DoScreenCapture;
    +  TS; if (DrvIsWritable('~')) DoScreenCapture;
       TS; DoGrid;
       TS; DoPick;
       TS; DoPick3D;
    @@ -2386,7 +2375,7 @@ U0 OSTestSuite()
       TS; DoUnusedSpaceRep;
       TS; DoBlkDevRep;
       TS; DoLastClass;
    -  TS; if (DrvIsWritable(':')) DoFPrintF;
    +  TS; if (DrvIsWritable('~')) DoFPrintF;
       TS; DoSerializeTree;
       TS; DoExceptions;
       TS; DoScreenCodes;
    @@ -2407,11 +2396,11 @@ U0 OSTestSuite()
       TS; DoLogic;
       TS; DoCompileDemo;
       TS; DoPrompt;
    -  TS; if (DrvIsWritable(':')) DoWebLog;
    -  TS; if (DrvIsWritable(':')) DoReverseFile;
    -  TS; if (DrvIsWritable(':')) DoSortFile;
    -  TS; if (DrvIsWritable(':')) DoToHtmlToTXT;
    -  TS; if (DrvIsWritable(':')) DoRegistryDemo;
    +  TS; if (DrvIsWritable('~')) DoWebLog;
    +  TS; if (DrvIsWritable('~')) DoRevFile;
    +  TS; if (DrvIsWritable('~')) DoSortFile;
    +  TS; if (DrvIsWritable('~')) DoToHtmlToTXT;
    +  TS; if (DrvIsWritable('~')) DoRegistryDemo;
       TS; DoDefine;
       TS; DoGlblVars;
       TS; DoFileRead;
    @@ -2420,7 +2409,7 @@ U0 OSTestSuite()
       TS; DoData;
       TS; DoCallBack;
       TS; DoClassMeta;
    -  TS; if (DrvIsWritable(':')) DoNumBible;
    +  TS; if (DrvIsWritable('~')) DoNumBible;
       TS; DoForm;
       TS; DoClickCallBack;
       TS; DoMenuButton;
    diff --git a/Misc/Tour/Tour.AUT b/Misc/Tour/Tour.AUT
    index 419b58f..8dbacd5 100644
    --- a/Misc/Tour/Tour.AUT
    +++ b/Misc/Tour/Tour.AUT
    @@ -123,4 +123,4 @@ U0 TourMenu()
     WinMgrSync(2);
     TourMenu;
     Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
    -"Cd(\"::/Home\");Dir;\n";
    +"Cd;Dir;\n";
    diff --git a/Misc/Tour/Tour3.AUT b/Misc/Tour/Tour3.AUT
    index 98f7f99..9250f7c 100644
    --- a/Misc/Tour/Tour3.AUT
    +++ b/Misc/Tour/Tour3.AUT
    @@ -67,9 +67,9 @@ AFUntilChar(CH_ESC,CH_SHIFT_ESC);
     TourPut(
     "$$GREEN$$$$FG$$\tExtended ASCII.\n"
     "$$GREEN$$$$FG$$\tBreak(interrupt) program.\n"
    -"$$GREEN$$$$FG$$\tSpawn new user terminal window.\n"
     "$$GREEN$$$$FG$$\tMutes sound.\n"
    -"$$GREEN$$$$FG$$\tSwitch tasks.\n"
    +"$$GREEN$$$$FG$$\tNext tasks.\n"
    +"$$GREEN$$$$FG$$\tTerminal window.\n"
     "$$GREEN$$$$FG$$\tKill task (window).\n",TRUE);
     
     AFPrint(50,"Ed(\"CastleFrankenstein.CPP.Z\");\n");
    diff --git a/Misc/Tour/Tour6.AUT b/Misc/Tour/Tour6.AUT
    index dafa500..34f6841 100644
    --- a/Misc/Tour/Tour6.AUT
    +++ b/Misc/Tour/Tour6.AUT
    @@ -1,4 +1,4 @@
    -PopUp("ACInit(\"::/*;~*/Bible.TXT*\");");
    +PopUp("ACInit(\"::/*;!*/Bible.TXT*\");");
     AutoComplete(ON);
     Sleep(3500);
     
    diff --git a/Misc/Tour/Tour7.AUT b/Misc/Tour/Tour7.AUT
    index 6794d5f..36e8fd0 100644
    --- a/Misc/Tour/Tour7.AUT
    +++ b/Misc/Tour/Tour7.AUT
    @@ -48,7 +48,7 @@ Sleep(2000);
     TourPut("Notice the number of matches.\n",TRUE);
     
     TourPut(
    -"The wrapper function is in your $$RED$$/Home/HomeWrappers.CPP.Z$$FG$$ file.  "
    +"The wrapper function is in your $$RED$$~/HomeWrappers.CPP.Z$$FG$$ file.  "
     "There is a function $$RED$$$$TX+L+PU+UL,\"R\",A=\"MN:R\"$$$$FG$$() for "
     "find and replace.  Feel free to customize.\n",TRUE);
     
    @@ -58,7 +58,7 @@ TourPut("Press $$GREEN$$$$FG$$.\n");
     Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
     "\n";
     
    -"Ed(\"::/Home/HomeWrappers.CPP.Z\");";
    +"Ed(\"~/HomeWrappers.CPP.Z\");";
     AFGetStr("\n");
     
     TourPut("Press $$GREEN$$$$FG$$ to abort the source code.\n");
    diff --git a/Misc/Tour/Tour8.AUT b/Misc/Tour/Tour8.AUT
    index 44361c2..19ea966 100644
    --- a/Misc/Tour/Tour8.AUT
    +++ b/Misc/Tour/Tour8.AUT
    @@ -17,9 +17,9 @@ TourPut(
     "Press $$GREEN$$$$FG$$.\n");
     AFGetStr("\n");
     
    -"FF(\"/Kernel/St*;*.HPP*;~*Print*\");";
    +"FF(\"/Kernel/St*;*.HPP*;!*Print*\");";
     TourPut(
    -"Let's unselect $$GREEN$$*Print*$$FG$$.\n\n"
    +"Let's unsel $$GREEN$$*Print*$$FG$$.\n\n"
     "Press $$GREEN$$$$FG$$.\n");
     AFGetStr("\n");
     TourPut("There is no way to include multiple base directories.\n",TRUE);
    diff --git a/Misc/Tour/TourB.AUT b/Misc/Tour/TourB.AUT
    index 7fb6a39..932e592 100644
    --- a/Misc/Tour/TourB.AUT
    +++ b/Misc/Tour/TourB.AUT
    @@ -9,7 +9,7 @@ TourPut(
     Msg(MSG_KEY_DOWN,0,SC_CURSOR_DOWN|SCF_CTRL);
     "\n";
     
    -"Type(\"::/Home/PersonalMenu.TXT\");";
    +"Type(\"~/PersonalMenu.TXT\");";
     AFGetStr("\n");
     
     Sleep(1500);
    diff --git a/PersonalMenu.TXT b/PersonalMenu.TXT
    index df42f42c05399cae5af38e5283ff869b94f0f04d..be2d1398b70589a19583ec9cb55b2349286bec63 100644
    GIT binary patch
    delta 15
    XcmZ4YiFx5C<_U!p=gV!JGwBBaK}QH+
    
    delta 26
    icmZ4ZiFw^8<_U#d8Zk;%R{9?Kxv3NT6*u-z`T+ou2n!+r
    
    diff --git a/StartOS.CPP b/StartOS.CPP
    index af4dd11..470e837 100644
    --- a/StartOS.CPP
    +++ b/StartOS.CPP
    @@ -17,7 +17,7 @@ HashTablePurge(adam_task->hash_table);
     
     #help_index "Misc"
     //Use Dbg("Type 'G;'"); to debug before window mgr is running.
    -public F64 os_version=4.060;//Operating system version.
    +public F64 os_version=4.080;//Operating system version.
     
     #include "/Adam/MakeAdam"