To CedarImplementors Date November 14, 1983 From Cedar5Implementors Location PARC/CSL Subject Converting to Cedar 5.0 Cedar 5.0 Conversion Attributes: Cedar 5, Conversion Draft: [Indigo]Documentation>Cedar5Conversion.tioga Last edited by: Paul Rovner, November 14, 1983 12:20 pm Abstract: This note contains hints for converting software from Cedar 4.4 to Cedar 5.0. It has two parts: a structured list of DF files and the interfaces they export, and a list of hints, mostly in the form (oldItem: => newItem) where the conversion is easy, or (oldItem: ~~~> newItem) where the conversion is more involved. Interfaces are listed in Part II below if they have moved or been changed substantially; if we anticipated no conversion problem we did not list an interface. We may well have overlooked something; please let us know if you encounter an interface or interface item that should have been included here. The easiest way for your DF file to reference interfaces in the "life support" system is to IMPORT LifeSupport.df, which is an umbrella DF file. The following people contributed their time and effort to prepare this memo: Russ Atkinson, Andrew Birrell, Roy Levin, John Maxwell and Paul Rovner. John Maxwell wrote a suite of programs to produce the lists below, which were then edited by all of us. OTHER DOCUMENTATION to help with the conversion to Cedar 5.0 can be found in the following files on [Indigo]Documentation>: InitializationDoc.tioga (setting up your disk) IOConversionDoc.tioga IODoc.tioga FSDoc.Tioga CommandToolDoc.tioga (for the new command tool) Commands.tioga (for some predefined commands) Part I: Cedar5 DF Files and their exports Selected [Indigo]Top> dfFiles and their exports, constructed 2-Nov-83 9:40:17 BootTool.df: ! +BootTool.bcd BTree.df: ! +BTree.bcd ! +BTreeImpl.bcd ! +BTreeVM.bcd ! +BTreeVMImpl.bcd Clock.df: ! +Clock.bcd DebugTool.df: ! +DebugTool.bcd DFTool.df: ! +DFTool.bcd FTP.df: ! +FTP.bcd Germ.df: ! D0.germ ! DLion.germ ! Dorado.germ LifeSupport.df: ! UserInterface.df: ! ! Installer.df ! ! Viewers.df: ! ! ! Buttons.bcd ! ! ! Carets.bcd ! ! ! ChoiceButtons.bcd ! ! ! Containers.bcd ! ! ! Cursors.bcd ! ! ! DeskTops.bcd ! ! ! EndOps.bcd ! ! ! HourGlass.bcd ! ! ! IconManager.bcd ! ! ! Icons.bcd ! ! ! ImplErrors.bcd ! ! ! InputFocus.bcd ! ! ! Labels.bcd ! ! ! MBQueue.bcd ! ! ! Menus.bcd ! ! ! MessageWindow.bcd ! ! ! NumberLabels.bcd ! ! ! Rules.bcd ! ! ! VBootOps.bcd ! ! ! VFonts.bcd ! ! ! ViewerBLT.bcd ! ! ! ViewerEvents.bcd ! ! ! ViewerLocks.bcd ! ! ! ViewerMenus.bcd ! ! ! ViewerClasses.bcd ! ! ! ViewerOps.bcd ! ! ! ViewerSpecs.bcd ! ! ! ViewerTools.bcd ! ! ! ViewersStallNotifier.bcd ! ! ! VirtualDesktops.bcd ! ! ! WindowManager.bcd ! ! ! Standard.icons ! ! ! ViewerDoc.tioga ! ! Tioga.df: ! ! ! TiogaDoc.Tioga ! ! ! TRopeFile.bcd ! ! Inscript.df: ! ! ! ClassIncreek.bcd ! ! ! ClassInscript.bcd ! ! ! Intime.bcd ! ! ! Interminal.bcd ! ! ! InterminalExtra.bcd ! ! Graphics.df: ! ! ! Graphics.bcd ! ! ! GraphicsBasic.bcd ! ! ! GraphicsOps.bcd ! ! ! GraphicsColor.bcd ! ! ! Spline.bcd ! ! TIP.df: ! ! ! TIPTables.bcd ! ! ! TIPUser.bcd ! ! ReadEvalPrint.df: ! ! ReadEvalPrint.bcd ! Tools.df: ! ! CommandTool.df: ! ! ! CommandTool.bcd ! ! Chat.df: ! ! ! +Chat.bcd ! ! ! Chat.TIP ! ! ! Chat.Doc ! ! InterpreterTool.df ! ! Compiler.df: ! ! ! +NucleusCompiler.bcd ! ! Binder.df: ! ! +NucleusBinder.bcd ! AbstractMachine.df: ! ! VersionMap.df: ! ! ! VersionMap.bcd ! ! ! VersionMapDefaults.bcd ! ! WorldVM.df: ! ! ! AMProcessBasic.bcd ! ! ! WorldVM.bcd ! ! AMTypes.df: ! ! ! AMBridge.bcd ! ! ! AMTypes.bcd ! ! ! RTSymbols.bcd ! ! AMModel.df: ! ! ! AMModel.bcd ! ! ! AMMiniModel.bcd ! ! AMEvents.df: ! ! ! AMEvents.bcd ! ! ! FastBreak.bcd ! ! AMProcess.df: ! ! ! AMProcess.bcd ! ! PrintTV.df: ! ! ! PrintTV.bcd ! ! ! BackStop.bcd ! ! Interpreter.df: ! ! ! Interpreter.bcd ! Packages.df: ! BasicPackages.df (replaces Random.df, Commander.df, PriorityQueue.df, Resource.df): ! ! Resource.bcd ! ! PriorityQueue.bcd ! ! SymTab.bcd ! ! RefTab.bcd ! ! Commander.bcd ! ! Random.bcd ! ! RandomCard.bcd ! ! RandomInt.bcd ! ! RopeFile.bcd ! UserProfile.Df: ! ! User.Profile ! ! UserProfileDoc.tioga ! ! UserProfile.bcd ! DFPackage.df ! ! DFOperations.bcd ! ! DFUtilities.bcd ! ! +DFPackage.bcd Lister.df: ! +Lister.bcd Lupine.df: ! LupineStubs.df: ! ! LupineRuntime.bcd ! ! RPC.bcd ! ! RPCLupine.bcd ! ! Rope.bcd ! ! Atom.bcd ! ! SafeStorage.bcd ! ! PrincOpsUtils.bcd ! +Lupine.bcd Maintain.df: ! +Maintain.bcd MCross.df: ! +MCross.bcd Nucleus.df: ! BasicLoadState.df: ! ! BasicLoadState.bcd ! ! BcdDefs.bcd ! ! BcdOps.bcd ! ! Table.bcd ! ! TimeStamp.bcd ! BasicTime.df: ! ! BasicTime.bcd ! CedarRuntime.Df: ! ! BCDStuff.df (replaces BCD.df) ! ! Real.df (replaces CedarReals.df): ! ! ! Ieee.bcd ! ! ! Real.bcd ! ! ! RealConvert.bcd ! ! ! +RealConvertImpl.bcd ! ! ! RealFns.bcd ! ! ! RealOps.bcd ! ! SafeStorage.df: ! ! ! List.bcd ! ! ! UnsafeStorage.bcd ! ! ! Atom.bcd ! ! ! SafeStorage.bcd ! ! Rope.df (replaces Rigging.df and RiggingMaker.df): ! ! ! +Ascii.bcd ! ! ! ConvertUnsafe.bcd ! ! ! RefText.bcd ! ! ! Rope.bcd ! ! ProcessProps.df: ! ! ProcessProps.bcd ! Communication.df: ! ! AddressTranslation.bcd ! ! BufferDefs.bcd ! ! NetworkStream.bcd ! ! NSAddress.bcd ! ! PacketExchange.bcd ! ! PupDefs.bcd ! ! PupStream.bcd ! ! PupTypes.bcd ! ! Socket.bcd ! ! SpecialCommunication.bcd ! ! CommUtilDefs.bcd ! ! DriverDefs.bcd ! ! DriverTypes.bcd ! ! OISCP.bcd ! ! OISCPConstants.bcd ! ! OISCPConstantsAdditions.bcd ! ! OISCPTypes.bcd ! ! OISCPTypesAdditions.bcd ! ! PacketExchangeInternal.bcd ! ! StatsDefs.bcd ! ! StatsOps.bcd ! ! +TeledebugProtocol.bcd ! ! +RS232CEnvironment.bcd ! ! +RS232CCorrespondents.bcd ! ! +RS232C.bcd ! ! +Dialup.bcd ! ! +RS232CManager.bcd ! ! +RS232CFace.bcd ! ! +RS366Face.bcd ! ! +OISTransporter.bcd ! Disk.df: ! ! Disk.bcd ! File.df: ! ! Booting.bcd ! ! File.bcd ! ! FileInternal.bcd ! ! FileStats.bcd ! ! VolumeFormat.bcd ! ! PhysicalVolume.bcd ! FS.df: ! ! FS.bcd ! ! FSBackdoor.bcd ! GrapevineUser.df: ! ! GVLocate.bcd ! ! GVNames.bcd ! ! GVRetrieve.bcd ! ! GVSend.bcd ! ! GVBasics.bcd ! HeadsCommon.df: ! ! +ColorDisplayFace.bcd ! ! +DESFace.bcd ! ! +DeviceCleanup.bcd ! ! +DiskFace.bcd ! ! +DisplayFace.bcd ! ! +EthernetFace.bcd ! ! +EthernetOneFace.bcd ! ! +KeyboardFace.bcd ! ! +Keys.bcd ! ! +MicrocodeBooting.bcd ! ! +MicrocodeVersion.bcd ! ! +MouseFace.bcd ! ! +MPCodes.bcd ! ! +ProcessorFace.bcd ! ! +SoftwareTextBlt.bcd ! ! +TrapSupport.bcd ! HeadsDorado.df: ! ! DoradoInputOutput.bcd ! Iago.df ! IO.Df: ! ! Convert.bcd ! ! IO.bcd ! ! IOUtils.bcd ! ! IOClasses.bcd ! ! EditedStream.bcd ! LoadState.df: ! ! LoadState.bcd ! MesaRuntime.df: ! ! Basics.bcd ! ! MesaRuntimeInit.bcd ! ! PrincOps.bcd ! ! Process.bcd ! ! ProcessExtras.bcd ! ! RuntimeError.bcd ! ! PrincOpsUtils.bcd ! Pup.df: ! ! EFTPDefs.bcd ! ! PupPktDefs.bcd ! ! PupRouterDefs.bcd ! Loader.df: ! ! Loader.bcd ! Rollback.df ! SimpleTerminal.df: ! ! SimpleTerminal.bcd ! STP.df: ! ! STP.bcd ! Tentacles.df: ! ! BootFile.bcd ! ! BootStartList.bcd ! ! DebuggerFormat.bcd ! ! DebuggerSwap.bcd ! ! GermSwap.bcd ! ! SystemVersion.bcd ! Terminal.df: ! ! Terminal.bcd ! UserCredentials.df: ! ! UserCredentials.bcd ! VM.df: ! VM.bcd ! VMBacking.bcd ! VMSideDoor.bcd ! VMStatistics.bcd PeekMail.df: ! +PeekMail.bcd Pupwatch.df: ! +Pupwatch.bcd RedBlackTreeRef.df: ! OrderedSymbolTableRef.bcd ! +RedBlackTreeRefImpl.bcd RPCRuntime.df: ! RPCWatch.bcd ! LupineRuntime.bcd ! RPC.bcd ! RPCLupine.bcd ! GVBasics.bcd Spy.df: ! +Spy.bcd Watch.df: ! +Watch.bcd ! WatchStats.bcd Waterlily.df: +Waterlily.bcd Part II: (old interface => new interface) comments AddressTranslation: => AddressTranslation AddressTranslation.SystemElement: => AddressTranslation.NSAddressElement AddressTranslation.StringToSystemElement: => AddressTranslation.StringToNSAddressElement AddressTranslation.AppendSystemElement: => AddressTranslation.AppendNSAddressElement AMBridgeExtras: => AMBridge AMBridgeExtras.AssignNew: => AMTypes AMEventBooted: => AMEvents AMEvents.Booted: => AMEvents.EndSession AMEventsExtra: => AMEvents AMEventsExtra.Boot: => Booting.Boot (in File.df) AMEventsExtra.Screen: => AMEvents.Screen AMViewerOps: => AMViewerOps (from InterpreterTool.df) Ascii: => Ascii (from Rope.df) Atom: => Atom (from SafeStorage.df) Atom.Gensym: => ELIMINATED Atom.IsAnAtom: => (AMTypes.IsAtom) and see Paul Rovner Atom.Length: => Atom.GetPName[].length Other AM-related operations : => See Paul Rovner AtomsPrivate: => AtomPrivate (from SafeStorage.df) BugBane.df: ~~~> Interpreter.df, AMEvents.df, AMModel.df, and AMTypes.df. BBAction: => see AMEvents BBBreak: => see AMEvents, AMModelLocation BBContext: => see AMModel, AMModelBridge, InterpreterOps BBEmptyReturn: => see AMTypes.GetEmptyTV BBObjectLocation: => see AMEvents, AMModelLocation, AMModelBridge BBSafety: => see BackStop.Call (from AMIO.df) BodyDefs: => GVBasics BodyDefs.RNameSize: => SIZE[STRING[foo.Length[]]] Booting: ~~~> Booting Booting.BootFile: => ELIMINATED Booting.defaultSwitches: => Booting.Switches[] Booting.InstallPhysicalVolumeBootFile: => File.SetRoot Booting.InstallVolumeBootFile: => File.SetRoot Booting.MakeBootable: => ELIMINATED Booting.nullBootFile: => Booting.Bootee[noOp[]] Booting.nullVolume: => NIL CedarInitOps: => Process CedarScanner: => IO CedarSnapshot: => Booting CedarSnapshot.Delete: => Booting.DeleteCheckpoint CedarSnapshot.Register: => Booting.RegisterProcs CedarSnapshot.RollBack: => Booting.Boot[[self[]], switches[r:TRUE]] CedarVersion: => SystemVersion CIFS, CIFSFeedback: ~~~> FS, FSBackdoor (lots of stuff has changed) Commander: => Commander (from BasicPackages.df) The "CompatibilityPackage" has gone away. See Rope, Convert, ConvertUnsafe, RefText, IO, BasicTime and FS for replacements. CompatibilityPackage>Date: => IO Date.Packed: => BasicTime.GMT Date.PackedToString: => IO.Put[IO.time[]] Date.StringToPacked: => IO.GetTime CompatibilityPackage>Directory: ~~~> FS Directory.CreateFile: => FS.Create, FS.OpenOrCreate Directory.DeleteFile: => FS.Delete Directory.LookupUnlimited: => FS.Open, FS.OpenOrCreate Directory.Lookup: => FS.Open, FS.OpenOrCreate Directory.GetNext: => FS.EnumerateForInfo, FS.EnumerateForNames Directory.Rename: => FS.Rename Directory.Error: => FS.Error CompatibilityPackage>FileStream: => FS CompatibilityPackage>Streams: => IO Convert: ~~~> Convert (from IO.df; many changes) DateAndTime: => IO DateAndTime.Parse => IO.GetUnpackedTime DateAndTime.Unintelligible => IO.Error DateAndTimeUnsafe: => IO DateAndTimeUnsafe.Parse => IO.GetUnpackedTime DateAndTimeUnsafe.Unintelligible => IO.Error (syntaxError) DFFiles.df: => DFPackage.df FileIO: => FS FileIO.CapabilityFromStream: => FS.OpenFileFromStream FileIO.Open: => FS.StreamOpen FileIO.OpenFailed: => FS.Error FileIO.StreamFromLFH: => FS.StreamFromOpenFile FileIO.StreamFromOpenFile: => FS.StreamFromOpenFile FileIOPrivate: => ELIMINATED FileLookup: => ELIMINATED FTPDefs: ~~~> use STP.df GVRetrieve: => GVRetrieve GVRetrieve.CharsAvail: => IO.CharsAvail (use GVRetrieve.GetItem to get a stream) GVRetrieve.EndOf: => IO.EndOf GVRetrieve.GetBlock: => IO.GetBlock GVRetrieve.GetChar: => IO.GetChar GVRetrieve.NextBlock: => IO.GetBlock GVRetrieve.ReadItem: => ELIMINATED GVSend: => GVSend GVSend.Close: => ELIMINATED Ieee: => Ieee (from Real.df) IFSFile: => ELIMINATED (use FS) IO: => (see Mark's conversion documentation in IOConversionDoc.tioga, thru IO.df) IO.AttachRefPrintProc: => PrintTV.RegisterRefPrintProc IO.AttachTVPrintProc: => PrintTV.RegisterTVPrintProc IO.PutSignal: => PrintTV.PrintSignal IO.PutTV: => ELIMINATED IO.PutType: => ELIMINATED IO.RefPrintProc: => PrintTV.RefPrintProc IO.tv: => ELIMINATED IO.TVPrintProc: => PrintTV.TVPrintProc IO.Type: => ELIMINATED List: => List (from SafeStorage.df) List.IsAList: => See Paul Rovner List.IsAListOfRefAny: => See Paul Rovner List.Member: => See Paul Rovner List.NotThatLong: => ARGGH (This was left out by accident; I will fix it ... PDR) LocateDefs: => GVLocate LongString, LongStrings: => RefText, Convert (or Rope) LongString.AppendChar: => RefText.AppendChar, Convert.AppendChar LongString.AppendDecimal: => Convert.AppendInt LongString.AppendLongDecimal: => Convert.AppendInt LongString.AppendLongNumber: => Convert.AppendCard[base: radix] LongString.AppendNumber: => Convert.AppendCard LongString.AppendOctal: => Convert.AppendCard[base: 8] LongString.AppendString: => RefText.Append LongString.AppendSubString: => ConvertUnsafe.AppendSubString LongString.CompareStrings: => RefText.Compare LongString.DeleteSubString: => ELIMINATED LongString.EqualString: => RefText.Equal LongString.EqualSubString: => ConvertUnsafe.EqualSubStrings LongString.EquivalentString: => RefText.Equal LongString.EquivalentSubString: => ConvertUnsafe.EqualSubStrings LongString.StringBoundsFault: => RuntimeError.BoundsFault LongString.StringToDecimal: => Convert.IntFromRope LongString.StringToLongNumber: => Convert.CardFromRope LongString.StringToNumber: => Convert.CardFromRope LongString.StringToOctal: => Convert.CardFromRope[defaultBase: 8] LongString.WordsForString: => ELIMINATED MesaRPC: => Withdrawn - use RPC NameInfoDefs: => GVNames NameInfoDefs.Close: => ELIMINATED NameInfoDefs.Enumerate: => enumerate the LIST OF Rope.ROPE yourself NameInfoSpecialDefs: => ELIMINATED NameUpdateDefs: => GVNames NameUpdateDefs.MakeKey: => GVBasics.MakeKey PilotInterfaces>PhysicalVolumeFormat: => VolumeFormat PilotInterfaces>BandBlt: => ELIMINATED PilotInterfaces>BitBlt: => PrincOps, PrincOpsUtils BitBlt.AlignedBBTable: => PrincOpsUtils.AlignedBBTable BitBlt.BITBLT: => PrincOpsUtils.BITBLT PilotInterfaces>Boot: => BootFile, GermSwap (wizards only) PilotInterfaces>BootFile: => BootFile (wizards only) PilotInterfaces>BootSwap: => GermSwap (wizards only) PilotInterfaces>ByteBlt: => PrincOpsUtils PilotInterfaces>CachedRegion: => ELIMINATED PilotInterfaces>CachedRegionInternal: => ELIMINATED PilotInterfaces>CachedSpace: => ELIMINATED PilotInterfaces>Checksum: => Use Checksums.bcd from Communication.df PilotInterfaces>ColorDisplay: => Terminal PilotInterfaces>ColorDisplayFace: => ColorDisplayFace PilotInterfaces>CommunicationPrograms: => ELIMINATED PilotInterfaces>ControlPrograms: => ELIMINATED PilotInterfaces>CPSwapDefs: ~~~> DebuggerFormat PilotInterfaces>DebuggerSwap: ~~~> DebuggerSwap (from Tentacles.df) PilotInterfaces>DESFace: => DESFace PilotInterfaces>Device: => DiskFace PilotInterfaces>DeviceCleanup: => DeviceCleanup PilotInterfaces>DeviceTypes: => DiskFace PilotInterfaces>DiskChannel: => Disk PilotInterfaces>DiskChannelBackend: => ELIMINATED PilotInterfaces>DiskDriverShared: => ELIMINATED PilotInterfaces>DisplayFace: ~~~> DisplayFace PilotInterfaces>DisplayFaceExtras: => DisplayFace PilotInterfaces>DriverStartChain: => ELIMINATED PilotInterfaces>Environment: => Basics, PrincOps (both from MesaRuntime.df) Environment.Base: => LONG BASE POINTER Environment.Block: => PrincOps.ByteBltBlock Environment.Byte: => Basics.Byte, Basics.BYTE Environment.Comparison: => Basics.Comparison Environment.first64K: => ELIMINATED Environment.logBitsPerWord: => Basics.logBitsPerWord Environment.LongNumber: => Basics.LongNumber Environment.maxCARDINAL: => LAST[CARDINAL] Environment.maxINTEGER: => LAST[INTEGER] Environment.maxLONGCARDINAL: => LAST[LONG CARDINAL] Environment.maxLONGINTEGER: => LAST[INT] Environment.maxPagesInMDS: => PrincOps.shortPointerSpan Environment.minINTEGER: => FIRST[INTEGER] Environment.minLONGINTEGER: => FIRST[INT] Environment.nullBlock: => PrincOps.nullByteBltBlock Environment.PageOffset: => ELIMINATED Environment.Word: => Basics.Word = WORD PilotInterfaces>EthernetFace: => EthernetFace PilotInterfaces>EthernetOneFace: => EthernetOneFace PilotInterfaces>EthernetOneFaceExtras: => EthernetOneFace PilotInterfaces>File: ~~~> FS PilotInterfaces>FileCache: => ELIMINATED PilotInterfaces>FileInternal: => ELIMINATED PilotInterfaces>FilePageLabel: => ELIMINATED PilotInterfaces>FilePageTransfer: => ELIMINATED PilotInterfaces>FilerException: => ELIMINATED PilotInterfaces>FilerPrograms: => ELIMINATED PilotInterfaces>FileTask: => ELIMINATED PilotInterfaces>FileTypes: => ELIMINATED PilotInterfaces>FloppyChannel: => ELIMINATED PilotInterfaces>FloppyChannelInternal: => ELIMINATED PilotInterfaces>FMPrograms: => ELIMINATED PilotInterfaces>Fonts: => PrincOps PilotInterfaces>Frame: => PrincOpsUtils Frame.Copy: => LoadState.CopyNew PilotInterfaces>HeadStartChain: => ELIMINATED PilotInterfaces>Heap: => ELIMINATED (See Paul Rovner) PilotInterfaces>Hierarchy: => ELIMINATED PilotInterfaces>Inline: => Basics (for safe items), PrincOpsUtils (for unsafe items) Inline.COPY: => PrincOpsUtils.COPY, Copy Inline.LongCARDINAL: => LONG CARDINAL Inline.LongCOPY: => PrincOpsUtils.LongCOPY, LongCopy Inline.PUSH: => PrincOpsUtils.PUSH PilotInterfaces>IntervalTimerFace: => IntervalTimerFace (coming soon) PilotInterfaces>JLevelIVKeys: => ELIMINATED PilotInterfaces>KernelFile: ~~~> File PilotInterfaces>KernelPhysicalVolume: ~~~> PhysicalVolume PilotInterfaces>KernelSpace: ~~~> VM PilotInterfaces>KeyboardFace: => KeyboardFace PilotInterfaces>Keys: => Keys Keys.Bit: => KeyboardFace Keys.DownUp: => KeyboardFace PilotInterfaces>KeyStations: => KeyboardFace PilotInterfaces>LabelTransfer: => ELIMINATED PilotInterfaces>LevelIIIKeys: => ELIMINATED PilotInterfaces>LevelIVKeys: => ELIMINATED PilotInterfaces>LogicalVolume: ~~~> File PilotInterfaces>MapLog: => ELIMINATED PilotInterfaces>MarkerPage: ~~~> PhysicalVolume PilotInterfaces>MicrocodeBooting: => MicrocodeBooting PilotInterfaces>MicrocodeVersion: => MicrocodeVersion PilotInterfaces>MiscAlpha: => PrincOps PilotInterfaces>MiscPrograms: => ELIMINATED PilotInterfaces>Mopcodes: => PrincOps PilotInterfaces>MouseFace: => MouseFace PilotInterfaces>MStore: => ELIMINATED PilotInterfaces>PageFault: ~~~> VM PilotInterfaces>PageMap: => PrincOps PilotInterfaces>PerformancePrograms: => ELIMINATED PilotInterfaces>PhysicalVolume: ~~~> PhysicalVolume PilotInterfaces>PilotClient: => ELIMINATED PilotInterfaces>PilotDisk: => DiskFace PilotInterfaces>PilotFileTypes: => VolumeFormat PilotInterfaces>PilotFloppyFormat: => ELIMINATED PilotInterfaces>PilotMP: => MPCodes (in HeadsCommon.df) PilotInterfaces>PilotSwitches: ~~~> Booting PilotInterfaces>PrincOps: => Basics, PrincOps PilotInterfaces>PrincOpsRuntime: => PrincOps PrincOpsRuntime.GetFrame: => (See a wizard) PilotInterfaces>Process: => Process Process.Aborted: => use ABORTED Process.priorityInterrupt: => Process.priorityRealTime Process.TooManyProcesses: => ELIMINATED PilotInterfaces>ProcessInternal: => PrincOpsUtils PilotInterfaces>ProcessOperations: => PrincOpsUtils ProcessOperations.HandleToIndex: => PrincOpsUtils.PsbHandleToIndex ProcessOperations.IndexToHandle: => PrincOpsUtils.PsbIndexToHandle ProcessOperations.QueueHandle: => PrincOps.QueueHandle PilotInterfaces>ProcessorFace: => ProcessorFace ProcessorFace.Start: => ProcessorFace.Go PilotInterfaces>ProcessPriorities: ~~~> Process PilotInterfaces>Projection: => ELIMINATED PilotInterfaces>PSB: => PrincOps PilotInterfaces>RavenFace: => ELIMINATED PilotInterfaces>RealMemory: => ELIMINATED PilotInterfaces>RemotePageTransfer: => ELIMINATED PilotInterfaces>ResidentHeap: => ELIMINATED PilotInterfaces>ResidentMemory: => Use VM.Allocate and VM.Pin PilotInterfaces>Runtime: => PrincOpsUtils/RuntimeError/DebuggerSwap Runtime.BoundsFault: => RuntimeError.BoundsFault Runtime.CallDebugger: => DebuggerSwap.CallDebugger Runtime.ConfigError: ~~~> Loader Runtime.ConfigErrorType: ~~~> Loader Runtime.ControlFault: => RuntimeError.ControlFault Runtime.DivideCheck: => RuntimeError.DivideCheck Runtime.GetBcdTime: => Loader.BCDBuildTime Runtime.GetBuildTime: => SystemVersion.bootFileDate Runtime.GetCaller: => ELIMINATED Runtime.GetTableBase: => PrincOpsUtils.Codebase Runtime.GlobalFrame: => PrincOpsUtils.GlobalFrame Runtime.Interrupt: => DebuggerSwap.CallDebugger["Interrupt"] Runtime.InvalidFrame: => ELIMINATED Runtime.InvalidGlobalFrame: => ELIMINATED Runtime.IsBound: => PrincOpsUtils.IsBound Runtime.LinkageFault: => RuntimeError.LinkageFault Runtime.LoadConfig: ~~~> Loader Runtime.NewConfig: ~~~> Loader Runtime.NullProgram: ~~~> Loader Runtime.PointerFault: => RuntimeError.PointerFault Runtime.PortFault: => RuntimeError.PortFault Runtime.RunConfig: ~~~> Loader Runtime.SelfDestruct: ~~~> LoadState.SelfDestruct Runtime.StackError: => RuntimeError.StackError Runtime.StartFault: => RuntimeError.StartFault Runtime.UnboundProcedure: => RuntimeError.UnboundProcedure Runtime.UnNew: => LoadState.UnNew Runtime.UnNewConfig: => ELIMINATED Runtime.ValidateFrame: => ELIMINATED Runtime.ValidateGlobalFrame: => ELIMINATED Runtime.ZeroDivisor: => RuntimeError.ZeroDivisor PilotInterfaces>RuntimeInternal: => PrincOpsUtils, RuntimeError, DebuggerSwap, LoadState RuntimeInternal.Bug: => ELIMINATED RuntimeInternal.bugLinkage: => ELIMINATED RuntimeInternal.BugLinkage: => ELIMINATED RuntimeInternal.CAbort: => ELIMINATED RuntimeInternal.CantSwap: => ELIMINATED RuntimeInternal.CleanMapLog: => ELIMINATED RuntimeInternal.Code: => ELIMINATED RuntimeInternal.Codebase: => PrincOpsUtils.Codebase RuntimeInternal.DeletedFrame: => ELIMINATED RuntimeInternal.EnterGlobalFrame: => ELIMINATED RuntimeInternal.EntryVector: => ELIMINATED RuntimeInternal.FlushLargeFrames: => ELIMINATED RuntimeInternal.FrameSize: => PrincOpsUtils.FrameSize RuntimeInternal.GetNextGlobalFrame: => ELIMINATED RuntimeInternal.loadStatePage: => DebuggerSwap.NoteLoadState RuntimeInternal.MakeFsi: => PrincOpsUtils.MakeFsi RuntimeInternal.NoGlobalFrameSlots: => ELIMINATED RuntimeInternal.RemoveGlobalFrame: => ELIMINATED RuntimeInternal.ResumeError: => RuntimeError.ResumeError RuntimeInternal.SendMsgSignal: => RuntimeError.SendMsgSignal RuntimeInternal.StartTrace: => ELIMINATED RuntimeInternal.StopTrace: => ELIMINATED RuntimeInternal.WorryCallDebugger: => DebuggerSwap.WorryCallDebugger PilotInterfaces>RuntimePrograms: ~~~> MesaRuntimeInit PilotInterfaces>SA4000Face: => DiskFace (from HeadsCommon.df) PilotInterfaces>SA4000FaceExtras: => DiskFace (from HeadsCommon.df) PilotInterfaces>SA800Face: => DiskFace PilotInterfaces>Scavenger: => ELIMINATED PilotInterfaces>SDDefs: => PrincOps SDDefs.sAddFileRequest: => ELIMINATED SDDefs.sCallDebugger: => ELIMINATED SDDefs.sCoreSwap: => ELIMINATED SDDefs.sFirstPilot: => ELIMINATED SDDefs.sGoingAway: => ELIMINATED SDDefs.sInterrupt: => ELIMINATED SDDefs.sLastPilot: => ELIMINATED SDDefs.sProcessBreakpoint: => ELIMINATED SDDefs.sUnNew: => ELIMINATED SDDefs.sWorryCallDebugger: => ELIMINATED PilotInterfaces>SimpleSpace: ~~~> VM PilotInterfaces>Snapshot: => Booting PilotInterfaces>SoundGenerator: => ELIMINATED PilotInterfaces>Space: ~~~> VM Space.Handle: => VM.Interval Space.nullHandle: => VM.nullInterval Space.mds: ~~~> VM.VMPartition.mds Space.Create: => VM.Allocate Space.Delete: => VM.Free Space.CopyIn: => FS.Read Space.CopyOut: => FS.Write Space.MakeWritable: => VM.MakeReadWrite Space.Map: ~~~> FS.Read Space.Unmap: ~~~> FS.Write Space.Activate: => VM.Touch Space.GetAttributes: => ELIMINATED Space.GetHandle: => ELIMINATED Space.GetWindow: => ELIMINATED Space.LongPointer: => VM.AddressForPageNumber[interval.page] Space.LongPointerFromPage: => VM.AddressForPageNumber Space.PageFromLongPointer: => VM.PageNumberForAddress Space.VMPageNumber: => interval.page Space.Error: => VM.CantDoIO, VM.WriteProtectFault Space.ErrorType: => VM.IOErrorType Space.InsufficientSpace: => VM.CantAllocate Space.wordsPerPage: => VM.wordsPerPage Space.PageCount: => VM.PageCount Space.PageNumber: => VM.PageNumber Space.MakeReadOnly: => VM.MakeReadOnly Space.Kill: => VM.Kill PilotInterfaces>SpaceExtras:~~~> VM PilotInterfaces>SpaceImplInternal: => ELIMINATED PilotInterfaces>SpecialFile: => ELIMINATED PilotInterfaces>SpecialHeap: => ELIMINATED PilotInterfaces>SpecialSpace: => Loader, VM SpecialSpace.MakeCodeSwappable: => ELIMINATED SpecialSpace.MakeCodeResident: => ELIMINATED SpecialSpace.MakeSwappable: => VM.Unpin SpecialSpace.MakeResident: => VM.Pin SpecialSpace.MakeProcedureSwappable: => Loader.MakeProcedureSwappable SpecialSpace.MakeProcedureResident: => Loader.MakeProcedureResident SpecialSpace.MakeGlobalFrameSwappable: => Loader.MakeGlobalFrameSwappable SpecialSpace.MakeGlobalFrameResident: => Loader.MakeGlobalFrameResident PilotInterfaces>SpecialSystem: => ELIMINATED PilotInterfaces>SpecialTransaction: => ELIMINATED PilotInterfaces>SpecialVolume: => ELIMINATED PilotInterfaces>StartChainPlug: => ELIMINATED PilotInterfaces>StartList: => BootStartList (from Tentacles.df) PilotInterfaces>STLeaf: => ELIMINATED PilotInterfaces>StoragePrograms: => ELIMINATED PilotInterfaces>StoreDriverStartChain: => ELIMINATED PilotInterfaces>Stream: ~~~> IO PilotInterfaces>STree: => ELIMINATED PilotInterfaces>SubSys: => ELIMINATED PilotInterfaces>SubVolume: => ELIMINATED PilotInterfaces>SwapBuffer: => ELIMINATED PilotInterfaces>SwapperDriverStartChain: => ELIMINATED PilotInterfaces>SwapperException: => ELIMINATED PilotInterfaces>SwapperPrograms: => ELIMINATED PilotInterfaces>SwapTask: => ELIMINATED PilotInterfaces>System: => BasicTime, PrincOps, PrincOpsUtils System.AdjustGreenwichMeanTime: => BasicTime.Update System.CreateIntervalTimer: => ELIMINATED System.FileID: => FS.OpenFile System.GetClockPulses: => BasicTime.GetClockPulses System.GetGreenwichMeanTime: => BasicTime.Now System.GetIntervalTime: => ELIMINATED System.GetLocalTimeParameters: => BasicTime.GetZoneAndDST System.GetUniversalID: => ELIMINATED System.gmtEpoch: => BasicTime.earliestGMT System.GreenwichMeanTime: => BasicTime.GMT System.LocalTimeParameters: => BasicTime.ZoneAndDST System.LocalTimeParametersUnknown: => TimeParametersNotKnown System.Microseconds: => LONG CARDINAL System.MicrosecondsToPulses: => BasicTime.MicrosecondsToPulses System.NetworkAddress: => NSAddress.NetworkAddress System.nullID: => ELIMINATED System.nullIDRep: => ELIMINATED System.nullNetworkAddress: => NSAddress.nullNetworkAddress System.PhysicalVolumeID: => File.VolumeID System.PowerOff: => ProcessorFace.PowerOff System.Pulses: => BasicTime.Pulses System.PulsesToMicroseconds: => BasicTime.PulsesToMicroseconds, PulsesToSeconds System.ResetAutomaticPowerOn: => ProcessorFace.ResetAutomaticPowerOn System.SecondsSinceEpoch: ~~~> BasicTime.Period System.SetAutomaticPowerOn: => ProcessorFace.SetAutomaticPowerOn System.SetLocalTimeParameters: => BasicTime.SetZoneAndDST System.TimerHandle: => ELIMINATED System.UniversalID: => ELIMINATED System.VolumeID: => File.VolumeID System.WestEast: => ELIMINATED PilotInterfaces>SystemInternal: => ELIMINATED PilotInterfaces>TemporaryBooting: => Booting PilotInterfaces>TemporarySetGMT: => ELIMINATED PilotInterfaces>TemporarySignals: => RuntimeError PilotInterfaces>TemporaryTransaction: => ELIMINATED PilotInterfaces>TextBlt: => PrincOps TextBlt.TextBlt: => SoftwareTextBlt.TextBlt PilotInterfaces>TimeStamp: => TimeStamp PilotInterfaces>Transaction: => ELIMINATED PilotInterfaces>TransactionExtras: => ELIMINATED PilotInterfaces>TransactionInternal: => ELIMINATED PilotInterfaces>TransactionState: => ELIMINATED PilotInterfaces>Trap: => PrincOpsUtils PilotInterfaces>TrapSupport: => TrapSupport TrapSupport.TrapSupportImpl: => ELIMINATED PilotInterfaces>TTYPortEnvironment: => ELIMINATED PilotInterfaces>TTYPortFace: => ELIMINATED PilotInterfaces>UserTerminal: => Terminal PilotInterfaces>Utilities: => PrincOpsUtils Utilities.LongPointerFromPage: => PrincOpsUtils.AddressForPageNumber Utilities.PageFromLongPointer: => PrincOpsUtils.PageNumberForAddress PilotInterfaces>VM: ~~~> VM PilotInterfaces>VMMapLog: => ELIMINATED PilotInterfaces>VMMgrStore: => ELIMINATED PilotInterfaces>VMMPrograms: => ELIMINATED PilotInterfaces>VolAllocMap: => ELIMINATED PilotInterfaces>VolFileMap: => ELIMINATED PilotInterfaces>Volume: ~~~> File PilotInterfaces>VolumeExtras: ~~~> File PilotInterfaces>VolumeImplInterface: => ELIMINATED PilotInterfaces>VolumeInternal: => ELIMINATED PilotInterfaces>WriteFault: ~~~> VM PilotInterfaces>XferTrap: => PrincOpsUtils XferTrap.Status: => PrincOps.XferTrapStatus PilotInterfaces>Zone: => ELIMINATED PilotInterfaces>ZoneInternal: => ELIMINATED PrintTV: => PrintTV (from AMIO.df) PrintTV.Mother: => BackStop.Call ProtocolDefs: => GVProtocol (Grapevine) PupDefs: => PupDefs PupDefs.AppendPupAddress: => PupDefs.PupAddressToRope PupDefs.AppendHostName: => PupDefs.GetHostName PupDefs.AppendMyName: => PupDefs.GetMyName PupDefs.MoveStringBodyToPupBuffer: => PupDefs.MoveRopeToPupBuffer PupDefs.AppendStringBodyToPupBuffer: => PupDefs.AppendRopeToPupBuffer PupDefs.AppendErrorPup: => ELIMINATED PupPktDefs: => PupPktDefs (consult a wizard) Real, RealConvert, RealFns, RealOps: => counterparts from Real.df Real.ReadReal: => see IO Real.WriteReal: => see IO RefAnyOps: => See Paul Rovner RetrieveDefs: => GVRetrieve RetrieveDefs.Destroy: => ELIMINATED RetrieveDefs.SetMTPRetrieveDefault: => ELIMINATED Rope: => Rope Rope.caseOffset: => Ascii.caseOffset Rope.Control: => Ascii.Control Rope.controlOffset: => Ascii.controlOffset Rope.Digit: => Ascii.Digit Rope.Letter: => Ascii.Letter Rope.Lower: => Ascii.Lower Rope.Upper: => Ascii.Upper RopeInline: => Rope, RopePrivate RTBases: => ELIMINATED RTBasic: => SafeStorage, AMTypes RTFiles: => ELIMINATED RTFilesExtra: => ELIMINATED RTMiniModel: => AMMiniModel RTMiniModel.AcquireIRInstance: => AMMiniModel.GetInterfaceRecord RTMiniModel.AcquireIRInstanceFromType: => AMMiniModel.GetInterfaceRecordFromType RTMiniModel.GetLoadstateDefsNames: => AMMiniModel.GetInterfaceRecordNames RTMiniModel.LocalWorld: => WorldVM.LocalWorld RTOS: => (See Paul Rovner) RTProcess: => ELIMINATED RTProcessPrivate: => ELIMINATED RTQuanta: => ELIMINATED RTRefCounts: => ELIMINATED RTStorageOps: => SafeStorageOps RTSymbols: => RTSymbols RTSymbols.AcquireSTBForDefs: => See AMMiniModel.AcquireIRType RTTypesBasic: => SafeStorage RTTypesBasic.listOfRefAnyType: => ELIMINATED RTTypesBasic.refAnyType: => ELIMINATED RTZones: => ELIMINATED SafeStorage: => SafeStorage SafeStorage.ExtendZone: => ELIMINATED SafeStorage.GetRootBase: => ELIMINATED SafeStorage.InvalidSize: => ELIMINATED SafeStorage.IsZoneEmpty: => ELIMINATED SafeStorage.MergeAllPrefixedZones: => SafeStorage.TrimSystemZone SafeStorage.NewBase: => ELIMINATED SafeStorage.NewZone: => ELIMINATED SafeStorage.SetMaxDataQuanta: => ELIMINATED SafeStorage.SetZoneFullProc: => ELIMINATED SafeStorage.SizeRepresentation: => ELIMINATED SafeStorage.TrimAllZones: => SafeStorage.TrimSystemZone SafeStorage.TrimRootBase: => SafeStorage.TrimSystemZone SafeStorage.TrimZone: => SafeStorage.TrimSystemZone SafeStorage.ZoneFullProc: => ELIMINATED SafeStorageExtras: => SafeStorage SafeStorageExtras.permanentZone: => SafeStorage.GetPermanentZone SendDefs: => GVSend SendDefs.Destroy: => ELIMINATED ShowTime: => IO, BasicTime Socket: => Socket Socket.Byte: => [0..255] SpecialTerminal: => SimpleTerminal SpecialTerminal.DisableTypescriptFile: => ELIMINATED SpecialTerminal.EnableTypescriptFile: => ELIMINATED SpecialTerminal.GetProc: => ELIMINATED SpecialTerminal.PutProc: => ELIMINATED SpecialTerminal.TerminalOn: => ELIMINATED SpecialTerminal.tty: => ELIMINATED SpecialTerminal.TurnOffInternal: => ELIMINATED SpecialTerminal.TurnOnInternal: => ELIMINATED SSExtra: => SafeStorage STP: => STP (consult a wizard) STPOps: => STPOps STPReplyCode: => STPReplyCode String: => RefText/Convert/ConvertUnsafe (or Rope) TerminalMultiplex: => Terminal TerminalMultiplex.RegisterNotifier: => Terminal.RegisterNotifier TerminalMultiplex.SwapAction: => Terminal.SwapAction TerminalMultiplex.UnregisterNotifier: => Terminal.UnregisterNotifier Time: => BasicTime Time.Append: => stream.Put[IO.time[time]], Convert.AppendTime Time.AppendCurrent: => stream.Put[IO.time[]], Convert.AppendTime[from: BasicTime.Now[]], Time.Current: => BasicTime.Now TimeExtra: => IO TimeExtra.PackedTimeFromString: => IO.GetTime TTYIO: => ELIMINATED UECP: => UECP (from CommandTool.df) UnsafeStorage: => UnsafeStorage (NOTE see Paul Rovner if you still need to use this) UnsafeStorage.GetHeapReferentType: => ELIMINATED UnsafeStorage.MergeUZone: => UnsafeStorage.TrimUZone UnsafeSTP: => STP (consult a wizard) ViewerAbort: => ELIMINATED ViewerIO: ~~~> ViewerIO (extensive changes; see it and EditedStream.mesa from IO.df) VMenus: => ??? WorldVMExtra: => ELIMINATED šIn particular, see Interpreter.mesa, InterpreterOps.mesa and EvalQuote.mesa from Interpreter.df. See Paul Rovner for details if that doesn't help. ΚC˜ImemoHeadšΟsœœœ˜0KšΠtvœœΟt˜*Kšœ˜Ititle˜Ibodyš žž7œž)˜—MšΟb œ½˜ΗMšœ―˜―Mšœ\Οkœ&‘œ˜M˜ύ˜…M˜.M˜M˜ M˜ M˜/M˜-—Iblock˜š )˜)J˜J˜XJ˜J˜ J˜J˜ J˜J˜J˜J˜J˜ J˜J˜ J˜J˜ J˜Jš‘œ˜Jšœ‘œ˜ J˜J˜ J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜$J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜Jšœ‘œ˜J˜J˜J˜J˜J˜ J˜J˜J˜J˜Jšœ‘˜J˜J˜J˜J˜ J˜J˜J˜J˜J˜J˜"J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜Jšœ[˜[J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜ J˜J˜J˜J˜J˜J˜ J˜J˜ J˜J˜Jšœ‘œ˜J˜J˜J˜J˜J˜J˜J˜ J˜J˜ J˜J˜ J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜%J˜)J˜J˜J˜J˜ J˜J˜J˜J˜J˜J˜J˜Jšœ:˜:J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜ J˜J˜J˜Jšœ‘œ˜J˜J˜#J˜J˜J˜"J˜J˜J˜J˜J˜!J˜J˜J˜J˜J˜J˜J˜ J˜J˜ J˜J˜J˜J˜J˜J˜Jšœ‘œ˜ Jšœ‘œ˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜ Jšœ‘œ˜ J˜Jšœ‘œ˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜ J˜J˜J˜J˜J˜J˜J˜J˜Jšœ‘œ˜ Jšœ‘œ˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜Jšœ‘œ˜ Jšœ‘œ˜J˜J˜J˜J˜ J˜J˜ J˜J˜J˜J˜J˜J˜J˜Jšœ‘œ˜ J˜J˜J˜J˜ J˜ J˜J˜˜ J˜——N˜Nš 2˜2N˜˜)J˜HJ˜XJ˜T—˜J˜$—˜J˜'—˜J˜0J˜(—N˜5N˜˜#Jšœ˜J˜6J˜&Jšœ0˜0—N˜2˜IJ™“J˜J˜)J˜8J˜(J˜AJšœ-˜-N˜—˜J˜1—˜J˜J˜.J˜6J˜.J˜#Jšœ/˜/J˜—N˜Nšœ˜˜J˜1J˜0J˜C—N˜NšœE˜EN˜/šœ|˜|šœ!˜!Jšœ˜Jšœ)˜)Jšœ"˜"—šœ)˜)Jšœ3˜3Jšœ"˜"Jšœ6˜6Jšœ-˜-Jšœ?˜?Jšœ˜Jšœ˜—Nšœ(˜(Nšœ$˜$—Nšœ1˜1šœ˜Jšœ'˜'Jšœ&˜&—šœ˜Jšœ-˜-Jšœ;˜;—N˜šœ ˜ Jšœ5˜5Jšœ˜Jšœ˜Jšœ.˜.Jšœ3˜3—Nšœ˜Nšœ˜Nšœ˜˜JšœP˜PJšœ˜Jšœ#˜#Jšœ!˜!J˜%Jšœ"˜"—˜Jšœ˜—N˜N˜šœQ˜QJšœ6˜6Jšœ4˜4Jšœ$˜$Jšœ˜Jšœ˜Jšœ(˜(Jšœ˜Jšœ&˜&Jšœ˜—˜#J˜ J˜(J˜JšœR˜R—N˜˜7J˜@J˜.J˜2J˜?J˜.J˜6J˜*J˜J˜2J˜J˜J˜:J˜)J˜*J˜"J˜OJ˜DJ˜/J˜@J˜9J˜!J˜!J˜!J˜—N˜-N˜,N˜.N˜1N˜3˜$J˜+—N˜'N˜*N˜0N˜2N˜/N˜&˜+J˜*—N˜1N˜*N˜)˜+J˜DJ˜D—Nšœ˜N˜'N˜)N˜*N˜*N˜)N˜!N˜'N˜2N˜-Nšœ#˜#˜*J˜+—N˜#N˜+šœ"˜"J˜ —N˜'˜J˜5J˜.J˜*J˜AJ˜EJ˜%—N˜,˜AJšœ˜Jšœ˜—N˜˜Jšœ#˜#Jšœ1˜1—˜ J˜$J˜J˜*J˜J˜J˜J˜—N˜ Nšœ˜Nšœ ˜ Nšœ˜Nšœ˜˜J˜@J˜PJ˜IJ˜-—Nšœ˜Nšœ˜Nšœ˜Nšœ˜Nšœ˜Nšœ˜˜J˜=—˜Jšœ,˜,Jšœ&˜&—Nšœ˜˜Jšœ%˜%Jšœ&˜&Jšœ&˜&Jšœ&˜&J˜@Jšœ"˜"Jšœ"˜"Jšœ+˜+Jšœ*˜*Jšœ-˜-J˜7J˜7J˜3Jšœ'˜'—˜!J˜@—˜Jšœ˜—Nšœ˜˜J˜—˜"J˜4J˜3J˜&J˜&J˜)J˜"J˜.J˜-—Nšœ˜Nšœ˜Nšœ˜Nšœ˜N˜3˜J˜@J˜4J˜D—˜Jšœ>˜>JšœY˜YJ˜—šœ˜Nšœ-˜-—Nšœ˜Nšœ#˜#˜TJšœ0˜0J˜4—Nšœ$˜$N˜NšœT˜TN˜šœ˜N˜N˜N˜J˜J˜——…—ƒ‘α