#################################################### Date: 18 Jan 85 17:50:51 PST From: Jacobi.pa Subject: ChipNDale Colors (and plots) To: ChipNDaleUsers^.pa, ChipNDaleDiscussion^.pa Cc: Jacobi Reply-to: Jacobi.pa ChipNDale Colors on the Screen Now both NMos and CMos have 8 bit per pixel colors. The user profile entry ChipNDale.ColorStartBits: 4 or ChipNDale.ColorStartBits: 8 tells ChipNDale which bit-per-pixel mode to start; only this mode will be set up according to the other user profile options. ChipNDale Color Plots The plot package is improved such that plots can be made on the Versatec color plotter Inkjet printer (MrCoffee) (Thankyou, SDD folks) Puffin (Lilac) Use the new df-file /indigo/chipndale/5.2/top/ColorPDPlot19.df commandiles for stipple initialization VersatecNMos.cm VersatecCMos.cm LilacCMos.cm ... The Inkjet printer can use the same stipples as the Versatec color plotter does, there is no separate commandfile needed. John Dillon can instruct you on how to use MrCoffee. Be patient with the device, it is not real fast. Lilac does not yet has reasonable stipples! Sorry, I had no time to make them already now. The stipples for the Versatec plotter do not look good on Lilac. But while the versatec is down, you might still be happy to have at least some silly replacement. Command H-middle is the new Hardcopy command. Draw a rectangle and select the device in the menu. Check on terminal if reasonable stipples have been loaded. enjoi, Christian #################################################### Date: 18 Jan 85 18:32:43 PST From: Beretta.pa Subject: Chipnsil To: ChipndaleUsers^.pa Reply-to: Beretta.pa Cedar Sil models can be converted to Chipndale designs and edited with Chipnsil. The program CDSilConversionImpl registers the command CDReadSil with the CommandTool. This command converts a *.sil file into a *.dale file. Sil macros are automatically converted to cells and imported, when referenced. The Sil colors are mapped into Chipndale levels. Chipnsil's user interface is very close to that of Chipndale. Usage - Bring over /Indigo/Chipndale/5.2/Top/Chipnsil19 - @Chipnsil - @CDSil - CDReadSil The following entries in the user profile are recommended: Chipndale.chipnsil.Font0: "Helvetica10" Chipndale.chipnsil.Font1: "Helvetica10I" Chipndale.chipnsil.Font2: "Helvetica10B" Chipndale.chipnsil.Font3: "Helvetica7" Chipndale.chipnsil.Font4: "Helvetica7I" Chipndale.chipnsil.Font5: "Helvetica7B" Chipndale.chipnsil.Font6: "Template64" Chipndale.chipnsil.Font7: "Gates32" Chipndale.chipnsil.Library5: "///Chipnsil/SilLib5.dale" Chipndale.chipnsil.Library6: "///Chipnsil/SilLib6.dale" Chipndale.chipnsil.Library7: "///Chipnsil/SilLib7.dale" Chipndale.chipnsil.Library8: "///Chipnsil/SilLib8.dale" Chipndale.chipnsil.Library9: "///Chipnsil/SilLib9.dale" Sil.Font0: Helvetica10 Sil.Font1: Helvetica7 Sil.Font2: Template64 Sil.Font3: Gates32 Sil.Font5: ///sil/Sil.lb5 Sil.Font6: ///sil/Sil.lb6 Sil.Font7: ///sil/Sil.lb7 Sil.Font8: ///sil/Sil.lb8 Sil.Font9: ///sil/Voicelb9.sil Known errors and restrictions - The production of PD files is very slow - The Sil `background' attribute is ignored - Colors are not displayed in color (therefore only the layer `neutral' should be used for the moment) - Like Alto Sil, Chipnsil uses Strike fonts, while Cedar Sil uses Spline fonts. Font information is always converted correctly, but text may be displayed using an alternate font. - Strings of macros as they occour in the synoptic tables are not aligned correctly. Converting Sil files is a one-way operation. There are no plans for a program to convert Chipnsil files into Sil files. Have fun Giordano #################################################### Date: 17 Jan 85 15:42:03 PST From: Jacobi.pa Subject: ChipNDale 0.19 TIP Table To: ChipndaleUsers^.pa Cc: Jacobi Reply-to: Jacobi.pa A new tip table for ChipNDale 0.19 The new tiptable is a little bit less orthogonal than the old was, however the frequent commands are simpler and you will far less invoke the wrong commands by using a neighbour key. The explanation do not mention the mouse actions, which should be obvious to users of the old tip table. The new tiptable is a mixture of the old tiptable, Louis tip table and some brand new ideas from Praedip and me. The new tip table is used for default immediately. The old tiptable is still works but will NOT be maintained. Check your user profile if you dont get the new tiptable. Whats different The frequent commands move: use CTRL instead of Q copy: use SHIFT instead of TAB-Q stretch: use TAB instead of CTRL push: use C instead of V (All cell commands use C) pop: use SHIFT C instead of V middle mouse button Deselect: use ESC instead of SHIFT Area select: no key necessary Commands which do not depend upon a mouse position can also be issued with CTRL instead of a mouse button. Some more tidbits; (which you don't need to learn now) connecty move: use TAB-CTRL instead of TAB-SHIFT; warning: Using the CTRL as speed up for some commands caused the following trouble: TAB-CTRL ASWZ: is that step connecty move or a set up for step stretch? The conflict is resolved reasonable (find out yourself), but it is now non orthogonal. Expand cell: can only be done with a pop up menu Split wire: use \ instead of B Touching area select: swat key (guess how is Touching area DE select ?) Undelete: ESC-D insted D middle Show all: TAB-Space Show selected: CTRL-Space Show a rectangle on OTHER viewer: Space Shift left instead of space right Select all: Space right. Draw the other viewers: V-middle There are some more changes which you will find natural and use without explanation! Do you find out which ? Summary In Summary, if you keep the following meanings for keys in hour head, you will be able to remember most of the commands: ESC: NOT TAB: Stretch CTRL: Move, Execute CTRL-TAB: Stretchy move SHIFT: COPY, Chose the other thing (P+ N-, other Viewer) Space: Viewer, Menu WASZ: Directions ERT: Transforms D: Delete QWE: Transistor, Pullup (nmos) Mouse left: deselct everything else, select pointed Mouse right: keep selection, add pointed Mouse middle: draw #################################################### Date: 3 Jan 85 17:36:37 PST From: Jacobi.pa Subject: ChipNDale 0.19 released To: ChipNDaleUsers^.pa, ChipndaleDiscussion^.pa Cc: Jacobi, ChipndaleImplementors^.pa Reply-to: Jacobi.pa ChipNDale 0.19 released ChipNDale 0.19 contains only modest improvements in definitions to keep track of older implementation changes; It had to be done now, because I want the public and my private ChipNDale version to get into synch again. Tiptable mechanism change Layered tiptables allow division of tiptables in personalized layers, technology specific and the general default tiptable. Special tools can provide a tiptable fragment to be included using the user profile. The user profile option is now identical to Tiogas tip table user profile: Chipndale.CMos.TIP: Default or Chipndale.CMos.TIP: listOfUserTipTables Default or Chipndale.CMos.TIP: listOfUserTipTables or Chipndale.CMos.TIP: /indigo/chipndale/5.2//cmos19/chipndalecmos.tip /indigo/chipndale/5.2//cd19//chipndale.tip Note that 1) they key has a new name; this prevents from usage of old tiptables without really intending it. (But: old tip-tables still work) 2) you must specify full path names. (Because the user profile is querried with different working directories at different times...; This is NOT a ChipNDale problem) Idea to layer tiptables from Pradeep: As I got no feedback at all which features caused people to use different tiptables we make it possible to have layered tiptables. At some time I will brouse at peoples personalized tiptables additions. I then will no more get the glorious feedback that an other Tiptable is used, but will see exactly which feature is disabled and what is added. Please: Do not simply replace the standard tiptable if having your extras in a layered tiptable also works. Changes in the ChipNDale base CD new mechanism to keep track of nesting not need for CONS on nested objects any more makes drawing faster DrawRecord has no more a pushLevel field (I think nobody used it); the new mechanism draws conditional objects also correct if you are pushed in. Cells key field removed new field in the objectprocs for the benefit of CDX CDApplications I-O appendices cleaned: I -> interest; O -> outer; IX inside; clients please use only I and O, NOT IX. BoundingRect with I or O HighPosI, HighPosO removed CDConditions changed to take use of CDEnvironment. CDDirectory key features removed (now must use properties) EnumerateChildren relaxed CDIO: keep is set to 2 CDEnvironment: new interface CDMenus: Menus can be removed, they don't appear double CDOps PROC LayerName (the old inline coding was used only 2 times in chipndale!, but 5 times in Spinifex) CDOrient: All orientations get a constant MapPosition removed new procedure MapPoint (is DIFFERENT from MapPosition) MapRect, ComposeOrient are now faster CDProperties ownerKey field removed property records gets property list for additional procedures... CDRepetition: exports Index procedure CDRopeViewer New module lifted and improved from Parquet CDTipEtc New layered tiptables (No definition module change) TokenIO EncodingError is now SIGNAL instead ERROR; this allows me to do dirty tricks from the debugger if somebodys design is screwed up and needs to be saved. New features which will be put into the ChipNDales base with Cedar 5.3 CDFeedBack new module; courtesy of Mike Spreitzer; needs special command to be loaded CDOrientExtras new module; needs special command to be loaded Changes on ChipNDale related programs CornerStitching marginal clean up to be easer to read; Spinifex marginal clean up to be easer to read. net naming improvements by Mike Spreitzer Parquet use of CDMenus instead of TilerMenu use of CDRopeViewer instead of RopeViewer Need volunteer: to unify my and Parquet's alignment-marks; my alignment-marks are not that much different, but only a clean up anyway. Need volunteer: to lift the expression reading stuff, this might be useful stuff for other applications. Temporary changes in release strategy Spinifex Parquet are not guaranteed to not change public definition modules while the lifetime of Chipndale 0.19 Christian #################################################### Date: 27 Nov 84 12:07:41 PST From: jacobi.pa Subject: Updates on Chipndale 0.18 To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa Cc: Jacobi Reply-to: Jacobi.pa Updates on Chipndale 0.18 New commands - New name and properties menu: this replaces most of the old commands handling names (of the design, an object, a signalname...) and properties. It also contains commands for the comment feature. Comment feature: objects, instances and designs may have comments. Do not exagerate comments on objects and instances; they could eat up your virtual memory and time for IO. =--{Middle} Change (redefine) the vector of a repetition. The rect-program menu (P-SHIFT-middle) has an entry to draw an interestrect. On selection, a cell now outlines its interestrect, not it's real border. (An interestrect is used to define how the object should abut, [once in future, the tiler should understand interestrects]) Real changes no public definition module has changed The repositioning of changed objects is completetely reprogrammed. The new modules used for this should still be considered private until the next release. (The following procedures and procedure variables of CDDirectory should no more be used: RepositionAnObject, ReplaceDirectChilds, adjustItself, repositionElements, computeBounds, replaceDirectChilds; but these procedures are quite private to chipndale and not yet used by any client program stored on [indigo]* ) New module CDRopeViewer Christian #################################################### Date: 18 Dec 84 13:08:00 PST From: Spreitzer.pa Subject: New Spinifex18 To: ChipNDaleUsers^.pa Reply-To: The Name Server I've made a few changes to Spinfex, mostly concerning the naming convention. Since the Spinifex documentation doesn't even touch on the issue, there's no change in the document. I'll describe the changes here. I'd appreciate comments, especially on whether the two switches described below should be fixed at what particular value. Naming The interesting change deals with the way nets inherit names from their connections. A net is an electrical node that results from the analysis of a cell definition (considering the definitions of its components, but none of its instances). For example, if cell type A contains three rectangles (r1, r2, and r3) that do not touch each other, and an instance (named b) of cell type B, and nothing else, and if cell type B contains nothing but one rectangle rb, and in A b.rb touches r1 and r2 but not r3, we get the following output: cell type B contains one net, corresponding to rb, and cell type A contains two nets, one corresponding to r1 and r2, and the other corresponding to r3. Nets may be contrasted to another concept, which we'll call signals here. A signal is like an electrical node on the silicon; it is all of what is eventually connected. A net is the part of a signal that is localized to a cell definition. Both kinds of Spinifex output (Thyme and Structural) name nets, not signals. Spinifex recognizes that nets may have multiple names. The Thyme style output allows only one name; Spinifex chooses one to use, and puts in a comment giving the others. If the designer gives names directly to a net (with the $SignalName property on an object comprising the net), those are all the names the net will have. If the designer gives no names directly to a net, it inherits names from its connections. Each net is, in general, connected to nets in subcells. An otherwise unnamed net will try to inherit the names of the subcell nets it is connected to. If a name collision occurs (i.e., two different nets (in the same parent, of course) are both trying to have a certain name), they try instead using the subcell net name qualified with the subcell instance name. The qualified name is instanceName.subnetName. If there is still a name collision, the names are disambiguated by appending -1, -2, &etc. to the colliding nets. For purposes of naming (and too many other things as well), transistors are not considered subcells; they do not contribute anything to the naming issue. The rules in this paragraph are what's different from the old Spinifex; it didn't try qualifying the names. If a designer gives no names directly to a net, and it is not connected to anything, it will get a simply generated name (e.g., n42). For an example of qualified name inheritence, suppose cell type A contains a net, and an instance (named bOfA) of cell type B, and that cell type B contains a net named nb, and that the net in A is connected to the net nb of bOfA. Spinifex will try the following names in order for the net in A: nb, bOfA.nb, bOfA.nb-I (for some I). Other changes in naming: A repetition continues to be treated as a cell with N subcells. They used to get named C1, C2, ... CN. They are now named 0, 1, ... N-1. Generated names use the general name collision avoidance algorithm. All otherwise unnamed nets try the name n, all otherwise unnamed transistors try the name Q, and all otherwise unnamed subcells try the name C. When there are name collisions, they are removed by appending numbers to the colliding names. The new name inheritence rule may allow a net to inherit a lot of names. There is a switch you can throw to cut down on the number of names. Observe that names can have different "quality". Dots, and generated components, decrease the quality of a name. By setting SpinifexOutput.shortestNamesOnly to TRUE, only the names of the highest available quality are used. Geometric information Spinifex will now output some summary geometric information in the Structural style: bounding boxes and instantiation transformations. See Geometry.Tioga in [Indigo]Compare0.2>Compare.DF for details. This can be disabled by setting SpinifexOutput.outputGeometricInfo to FALSE. Enjoy, Mike #################################################### Date: 6 Nov 84 10:17:36 PST From: jacobi.pa Subject: Chipndale release 0.18 To: ChipndaleUsers^.pa, ChipndaleDiscussion^.pa Cc: Jacobi, ChipndaleImplementors^.pa Reply-to: jacobi.pa Chipndale 0.18 released Chipndale 0.18 contains lots of internal changes made in long time. However, only minor adaptions of client programs are necessary. Chipndale is now several pages of code shorter. Since really everything has been updated, version 0.17 will be deleted soon. DF file for designers /indigo/chipndale/5.2/top/cddesign.df On bringover, the public option on cddesign18, cddesign now is important; with all you now get everything, which might be interesting for programers, but not for designers. /indigo/chipndale/5.2/top/spinifex18.df ... DF file for programmers /indigo/chipndale/5.2/top/cd18.df /indigo/chipndale/5.2/top/cmos18.df ... DF file for documentation /indigo/chipndale/5.2/top/CDDoc.df Release strategy change Chipndale has grown too much, and it is no more possible for us to maintain everything. Every author of some Chipndale tool is now asked too maintain his tool himself. The fact that some file is stored on /indigo/chipndale/ does NOT mean it is maintained automatically. Users of certain hacks are supposed to verify themselves whether the hack will be supported or not. The following stuff is inside the chipndale-implementors support umbrella: /indigo/chipndale/5.2/top/cddesignc.df cdc.df, cmosc.df, nmosc.df CornerStitchingc.df, spinifexc.df (soon) For all the other stuff, no maintenance agreements exist yet. Authors will get pre-release messages few days in advance of the release. New Hacks CMos Color hack A nice color hack for cmos has been written by Gerome and Louis; bringover -P /indigo/chipndale/5.2/top/cmoscolors18.df -- cmos now is supposed to be loaded already run CMosColors no further support yet Press plot hack New press plot package (use on RocknRoll or Stinger). Plots all layers in black. (Also plots texts of chipnsil) bringover -P /indigo/chipndale/5.2/top/PressPlot18.df -- chipndale is supposed to be loaded already CDPressPlot -- will load the program; use to make a plot no further support yet Designer visible changes Stretchy step move commands: step move+SHIFT. Changed user profile options for selection of colors (maps and patterns). New user profile options to put viewers on the color display. Not loaded commands do no more appear in the menus. Control panel: changing values with CTRL or SHIFT down shows a menu. Control panel: button to create/split a design viewer. stops drawing of viewer (commands are exchanged) abort command, (programmers (cif, plot,... :! please check for aborts) Scaling and moving the view works concurrently with other commands! executes programs which need a rectangular input area. There is no way back from version 0.18 to 0.17. The chipmonk compatible tiptable is no more available (code is removed). User profile suggestions (for chipmonk compatible colors, ...) Chipndale.FirstViewerOnColor: TRUE Chipndale.ColorStartLeft: TRUE Chipndale.ColorStartBits: 4 Chipndale.ChipmonkColorMapNum: 2 Chipndale.ChipmonkColorPatternNum: 3 Definitions changes CD: DeviceDrawRef: worldClip gets comment as interrestrect, device might be different gets new procedure to draw background if pushed background level match is removed; the exotic stretchy move feature moved to an exotic module.. hasChildren renamed to inDirectory; CDBasics: new module; will replace CDInline, new proc: PushedIn CDColors: new module, makes color definitions non private CDCommandOps: new proc to redraw an application, to handle resources (cif, mask, plot) CDDefaults: new module CDDirectory: CDDirectoryExtras, CDExtras2 merged in; proc's another, replacedirectchild... CDEvents: $Abort: new event CDExtras: DecomposeRect, AppendExt removed CDInline: Will be discarded in next version CDInterestRects: new module, supports a rectangle which constitutes a designer specified border CDIO: CDIOExtras merged in (working directories, file name handling) CDMarkObjects: new module, not yet compatible with the tiler CDMarks: marks must be used only on objects which are in the directory CDMenus: new menu module, to allow dynamic inclusions in menus CDObjectProcs: type included CDOps: DelayedRedraw gets comment about efficiency CDOrient: new representation of orientation; give up 45 degrees. CDStretchyExtras: new module, to allow object implementors handling of stretchy move CDTechnology: removed, replaced by CDDefaults, CDTipEtc CDTipEtc: new module CDX: new module, supports an origin which does no more move Implementation changes ChipmonkPatterns: new module ChipmonkColorMap: new module CDVPrivate: color definition stuff removed, to module CDColors All the chipmonk compatible color handling is removed from basic Chipndale and can be loaded as new, separate module. Use of interest rect for initial interactive placement of objects. (Use of inner rect for placement of objects in files.) Christian #################################################### Date: 20 Sep 84 16:12:03 PDT From: jacobi.pa Subject: Chipndale update on version 0.17 To: ChipndaleUsers^.pa Cc: jacobi Reply-to: jacobi.pa Chipndale update on version 0.17 No public interface changed; Improved private inteface to register colors; (New colors are coming soon; ask Gerome or Louis). (Colors outside of pushed cell can now be different) Copy of object - definitions; Partial import; (To support the tiler) Provision of immutable object relative coordinates; interest rects. (To support the router). Actually there are quite more changes; a new release could be advantageous soon, but I would not have time to upgrade the clients before vacation. Since soon I will go back home for some weeks, there will be no support; Some users should switch immediately to the new update, so that bug claims can be handled before I leave. In case of unexpected problems: I will not delete the pre-update version of chipndale until I'm back. Old, pre-update df files /indigo/chipndale/5.2/top/cd17.df!53 13-Sep-84 12:03:14 PDT /indigo/chipndale/5.2/top/nmos17.df!15 11-Sep-84 12:02:42 PDT /indigo/chipndale/5.2/top/cmos17.df!42 11-Sep-84 12:02:11 PDT Christian #################################################### Date: 6 Sep 84 13:02:36 PDT From: jacobi.pa Subject: Chipndale's internal tiptable format has changed To: ChipndaleUsers^.pa Cc: ChipndaleDiscussion^.pa Reply-to: jacobi.pa Chipndale's internal tiptable format has changed ----------------------------------------------- If you use the default tiptable: No visible change. If you use private tiptables: At cost of speed, chipndale checks now the cursor coordinates to be legal. Until now Chipndale used to rely that coordinates were initialized and always inside of the viewer; because of this, bugy tiptables frequently caused chipndale to wedge. Nobody blamed the tiptable.... You can now register your own favorite cursors (However, only by using the private interface CDVPrivate [private interfaces can change without new release or message]). The tiptable mechanism for setting or querrying cursors is changed. Old tiptables will no more work. Look at the default tiptables for an example. Christian #################################################### Date: 22 Aug 84 18:49:39 PDT From: Jacobi.pa Subject: Chipndale 0.17 improvements Chipndale 0.17 improvements No changes in existing interfaces Imports: it is possible to include an import lateron. (use directory menu) New interface module CDImports allows client access of imports. Conditional objects: It is now possible to allow or dis-allow propagation of environment information trough cells. Default is changed to no propagation. Use conditional objects only after a chat with me, it is still somewhat like committing error 33. () for propagation menu) Tip table changes butting contact is <3-middle> buried contact is <1-2-middle> metal-metal2 contact is <6-middle> #################################################### -- CDEvents-Registration17.txt -- Ch. Jacobi September 16, 1983 2:11 pm -- last edited by Christian Jacobi August 23, 1984 12:57:18 pm PDT EventProc: TYPE = PROC [event: REF, design: CD.Design, x: REF] RETURNS [dont: BOOL_FALSE]; If not specified else: event, design are initialized, x is NIL $CreateNewDesign $RenameDesign $RegisterTechnology (design=NIL, x=Technology) $AfterCellReplacement (x=Object [cell] ) $BeforeCellReplacement (x=Object [cell] ) $AfterPush $AfterPop $WriteTechnologyPrivate [listens to dont, allows writing technology private information; may be used only with permission of technology, because of order on file!!!] $ReadTechnologyPrivate [listens to dont, allows reading back technology private information; may be used only with permission of technology, because of order on file!!!] $AfterChange (x=Object) [is not called if one of $AfterCellReplacement or $AfterPop is called; must be handled fast] $AfterAdjustItSelf (x=Object) #################################################### Chipndale Version 0.17 Definition Modules CD FetchObjectProcs return result no more readonly new mechanism for partially drawing objects old procedure drawMe renamed to be quickDrawMe procedure drawMe implements the new mechanism new boolean (with mechanism) to keep track of changes CDInline new Comments about: normalization, inclusive or exclusive border CDIO WriteDesign: new "quiet" parameter (used by background saver) new procedures ReadProperties, WriteProperties so clients can implement property lists on their own objects, even if they are implemented with properties CDApplications new procedure names to mirror taking either the inner or the outside rects more orthogonal CDCommandOps new module with handy stuff to implement commands CDSequencer new mechanism to check and set an abort flag new mechanism to allow specification of queueing method CMos now uses 5 lambda nwell. If you did the conversion with cd16 as messaged twice, you will get no trouble reading the files with cd17. If not ... it's not my business anymore, but then you better wait with using cd17 until after. Implementations new module CDEmergencyHandling some new commands for the sake of the tip table fans; mainly more orthogonal there is a background process saving designs, sometimes it even works. User Interface If wedged, a design can still be saved by From keyboard: using "SHIFT-SHIFT-SWAT" From a worldswap or remote debugger: call "_ %CDEmergencyHandling.SaveAll[]" but if it interfeares with the background saving process, you clobber both files irreversibly since SHIFT-SHIFT-SWAT saves the design without respecting locks. Color plot: bringover of CDDesign automatically bring's over the plot df file. New or changed commands Stretch selected is changed to use also a selected object as model. View al of top pushlevel. View al selected. Pop from cell flushes automatically if chipndale thinks the cell is not changed. New pop commands to avoid pop up menu. New create cell command without name input. Reselect the pointed object. Conventions I've been asked about name syntax; here it is: Designers should use (but Chipndale does NOT enforce) Mesa identifiers; case matters. (On write back to chipmonk case information is lost.) Other ROPE's may be used internally by Chipndale. If you use mesa identifiers you'l be not surprised; whenever chipndale changes or creates names automatically, these names do NOT have the syntax of Mesa identifiers; so no conflicts can occur. Using non Mesa identifiers usually puts some semantic meaning to a name (e.g: object has been created automatically and therefore may also be deleted automatically...) However, designers can create arbitrary names without clobbering chipndale. #################################################### -- /indigo/chipndale/documentation/cd16.tioga -- Ch. Jacobi June 7, 1984 4:48:40 pm PDT Chipndale Version 0.16 Release Runs on Cedar 5.2 DF files /indigo/chipndale/5.2/top/ cddoc.df DOCUMENTATION cddesign.df FOR DESIGNERS cd16.df current technology independent release, used by clients and implementors nmos16.df current nmos release, used by clients and implementors cmos16.df ... chipnsil16.df vplot16.df colorvplot16.df cornerstitching16.df New TIP Table (now for cmos only) exists, is not yet default All commands (except input of names, text) can be typed without removing the right hand from the mouse. Easy to remember commands: Discard the meaning of the letter, but associate function with row and column position of key. PROBLEM: The reason I made the new tiptable was: I would like to write the documentation only once, for the final tiptable. Therefore: Since this tiptable is a try and not yet final at all, I will NOT write documentation for it now. I will not delete the old tiptable, unless the new one gets at least some documentation. However, the df file cddesign might bringover only one tiptable. Interfaces CDMarks improved comments CDDialogue replaced by CDViewer CDViewer New procedures RemoveArrow, ShowArrow to handle the Arrow New procedure FindDesign CDConditions renaming of parameters to make more sense for designers, at cost of clients CDExtras New procedures MergeIn, MergeInObjects serves copying objects from one design to another. procedures Cellize, PopToTopLevel used internally CDApplications New procedures SplitPointed CDCommands New procedures MovePointed, CopyPointed CDCells New procedures RemoveApplication and IncludeApplication CDOps New procedure ResetDesign CDDirectory Runtime-test included: an object is in the directory of at most one design CDProperties Properties have exclusive flag; exclusive properties can not be modified by a designer directly, but only by client programs Documentation Improved but very incomplete. File: Chipndale16.tioga, but for old tiptable Implementation IO Modules split: new module CDIOCommands; Include now uses CDExtras.MergeIn All command modules get CD prefix Bug corrected (copy of nwell, buried contacts with nwell,...) #################################################### -- ColorVersatecDoc.tioga -- Last Edited by: Kimr, May 11, 1984 3:17:16 pm PDT -- Last Edited by: Jacobi, May 17, 1984 4:51:40 pm PDT CREATING THE PLOT Bringover the file [indigo]top>colorvplot15.df with the DF tool. (15 is the current chipndale version, keep this number up to date, independantly of this documentation). Independently whether ChipNDale is already running or not, execute the command %VersatecCMOS or %VersatecNMOS to set up the appropriate software and colors. Now you need to get your design on the screen. Execute the commands %CDRead or %CDReadCMCMOS or %CDReadCMNMOS to read in your ".chip" or ".dale" file into ChipNDale. Plot any portion of the design you wish by selecting an area using the left mouse button with 'Y' held down. Terminal will request the number of vertical strips you want the plot divided into; each strip will be made into a pd file named "plot(i).pd" where i is 0..(#strips -1). A '.' will be printed for every band completed; the phrase "finished plot(s)" indicates that all strips have been done. SENDING TO THE VERSATEC Be sure that the versatec is in "Soliciting Client" mode. If it says "Got a Client" and the LED display indicates disk activity, someone else is probably sending a file and you'll have to wait. If it is not busy and does not say "Soliciting Client," punch the white boot button on the front of the machine and wait for the correct prompt to appear. You have your pd files; you want hard copy. Make sure the versatec is in "Soliciting Client" mode; give the command %peach belle and the file will be transferred over the net to the color versatec (aka belle). An pie-shaped icon will appear indicating the portion of the file that has been transferred. You must wait until the file has completely finished printing (not just finished moving over the net) before sending the next print request. Completed plots are cut off each night and left for pick-up on a table in the Purple Lab. Users are discouraged from cutting off their own plots. (It is quite difficult to install the paper properly; such that the next user gets a good plot again) COLOR SELECTION You can easily change the colors assigned to levels by editing the command files VersatecCMOS.cm and VersatecCMOS.cm. #################################################### --/indigo/chipndale/documentation/cd15.tioga --Ch. Jacobi May 11, 1984 2:21:36 pm PDT Chipndale Version 0.15 Release previous release was cdPost14 Color plot see /indigo/chipndale/documentation/ColorVersatecDoc.tioga Interfaces CD more exact comments DrawRecords get new field CDProperties some new procedures CDCallSpecific New procedure CallForThis New procedure Register; replaces import of CDObjectProcs for most clients. (saves pages in technology dependent part) Commands renames the selected object interrupts the drawing process; it leaves the screen in unfinished state; works for Black and white display only; WHY??? chipndale uses the same code for both display types!!! Temporary solution for colordisplay: use a button "CD-stop"; This button works only if there is no command ahead. drawing of design if in a pushed cell: viewer may optionally ommit drawing the outside cell objects; option by using the viewer popup menu simplification treshold of viwers can be modified by using the viewer popup menu show properties of selected object change property of selected object Implementation 2 bugs corrected (CDCellsImpl, CDPropertiesImpl) 2 bugs avoided (for popup menu) IO.Flush of viewer streams gets some help with Process.Pause Use of tiptable and InputFocus.CaptureButtons replaced by use of Terminal.GetKeys #################################################### ChipNSil, a new chipndale technology Sil <-> ChipNSil ChipNSil does not want to compete in general with Sil; ChipNSil wants: - demonstrate chipndale's wide range of technology independence - be a base for experimenting in integrating schematic capturing to chipndale - be a documentation facilty for chipndale design's ChipNSil has a chipndale (chipmonk) like userinterinterface, not a Sil like. ChipNSil has no colors; it is thought to run together with other chipndale technologies and leaves the definition of a color map to the other technology. Commands @chipnsil.cm starts the program cdnewsil to create a new design create or modify a macro DF file /indigo/chipndale/top/chipnsil14.df Restrictions Characters can not yet be plotted. Fonts ChipNSil supports 8 fonts; which are initialized with the user profile. The user profile designates the font used on creation of the text; once a text is created, its font can NOT be changed with the user profile. Example user profile: Chipndale.chipnsil.Font0: "TimesRoman14.strike" Chipndale.chipnsil.AlternateFont0: "/indigo/AltoFonts/TimesRoman14.strike" Chipndale.chipnsil.ScaleFont0: 32 Chipndale.chipnsil.Font1: "Gates32.strike" Chipndale.chipnsil.AlternateFont1: "/indigo/AltoFonts/Gates32.strike" Chipndale.chipnsil.ScaleFont1: 64 Macros There is a new chipndale object type, calld macro. Macro's are a subclass of cells, but with user definable bounding box. Macros are created, or their bounding box changed, with the command. Pushing and popping with "replace" option from macros does not modify the bounding box; Popping and creating a new cell creates a cell, not a macro. Popping out of a macro can move its application; Sorry, but pushing into macros is thought to be a non standard feature, used only to create macro libraries. #################################################### -- /indigo/chipndale/documentation/cdPost14.tioga --Ch. Jacobi April 30, 1984 11:55:47 am PDT Chipndale Version Post 0.14 Updates Commands and visible Features to set simplification treshold value of selected cell select design copy selected object from selected design: actually it does NOT copy, but checks for the name and creates a reference Control panel: mouse clicking values if none: increment/decrement value CTRL: double/half value SHIFT: set default value CTRL-SHIFT: input value sets double layer metal Area de-selection Area add selection step moves: <=> <\> stepsize adjustable by control panel New Technology ChiPencil; separate message already out 23 Apr 84 12:07:32 PST documentation: [indigo]documentation>chipnsil14.tioga command to handle macros NMos Transistors: different implants for 4 different treshold values Implementation All tiptables are created using same source with the EditTool (read in chipmonk files version 8 [already messaged]) read/write chipmonk files with repetitions/busses burried contacts revised Technology may set reasonable default values for grid, initial scales,... Tiptable can be changed at runtime; (affects new viewers only) Christian #################################################### --/indigo/chipndale/documentation/cd14.tioga --Ch. Jacobi April 3, 1984 4:25:57 pm PST Chipndale Version 0.14 Updates previous release was cdPost13, not cd13, because it did not change interfaces Intefaces CD ObjectProcs is no more REF; uses now either REF ObjectProcs or REF READONLY ObjectProcs; new predeclared Levels: highLightShade, highLightError DrawRecords get rid of the ShadeRect procedure; use now DrawRect with highLightShade-level CDEvents.RegisterEventProc has its parameters changed, to have the parameters in the same other as all other registration procedures CDOps new IncludeApplicationList procedure CDApplications get rid of procedure RemoveApp; use now CDOps.RemoveApplication CDIO ReadDesign, WriteDesign exported new procedures VersionKey, DesignInReadOperation CDDirectory new procedures: Rename, Key, Name, InstallDirectoryProcs new fields in DirectoryProcs-type: name, key, setName, setKey DirectoryProcs changed to a private type CDProperties properties on objects are considered bad Commands It is possible to set up the color display from commandfiles (necessary for people who do not yet want to set up their user profile options) Implementation New format for files; old format files can be read in and converted, (for limited amount of time). Cell simplication treshhold value saved on files some cleanup work, saving pages #################################################### -- cdPost13.tioga Implementation Objectprocs for $Narrow, $Widen, $Shorten are removed Objectproc for $Lengthen gets parameter of type (REF) CD.DesignPosition meaning direction. pop from cell faster; (less trashing because introduction of last recently used cache) Commands and otherwise visible Stretch command White flicker on move screen removed Export and import facilities Import is very different from include: Included objects are part of the design when written on files; Imported objects are referenced only, also in files; changes of their implementation are reflected to their importer next time they are read. Global menu calls other menues hierarchical - command IO menu directory menu New Definition Modules CDLRUCache #################################################### --Ch. Jacobi March 6, 1984 12:23:04 pm PST Chipndale Version 0.13 Updates Major changes including runs on Cedar 5.1 new DrawRecords to allow access to properties of applications new scaling for faster redraw new mark mechanism directory separated from cells improved registration mechanism Release strategy df files /indigo/chipndale/top/cddoc.df (documentation) /indigo/chipndale/top5.1/cddesign.df (designers features) Definition modules CD DrawProcedure gets ApplicationPtr instead of ObPtr, usefull for parametrization New procedure DrawComment in DrawRecord new error "Error" all registration procedures now error on double registration (this removes the necessity for tests in most cases and requires catches in few cases; more important, lazy peoples registration will work the way I want it) Design gets new private field marks are subrange CDValue, CDProperties, CDValue, CDEvents, CDObjectProcs use new registration mechanism CDDirectory new module handling the (cell-) directory of a design CDCells directory operations removed from module CDMarks More efficient algorithm for marking: Instead of always clearing all marks before using them, just get a new (design-) unique mark value and use it. Overflow of mark values cause a clear of all marks. CDOps commands removed to new module, completely redesigned new procedure DelayedRedraw CDCommands new module with commands from old CDOps CDRepetitions get new procedure CreateRepetitionCell CDBusses get new procedure CreateBusCell refuses to create busses on bad levels CreateRepetitionCells module removed CreateBusCells module removed CDTechnology possibility to use chipmonks pattern coding Implementation all this additional features make repainting the screen about 20% faster, in addition, the area to be redrawn per command did shrink some small amount a) by improved transformation from design to viewer space b) by new delayed redraw procedure allowing more areas to be combined Commands the global commands popup-menu got new command to clean up the directory Remark - In spite of this beeing a quite major release, applications like VersatecPlotting did need only a recompilation. - Released somewhat fast to have a version on Cedar 5.1 #################################################### --Ch. Jacobi February 17, 1984 3:30 pm --Last edited Ch. Jacobi February 23, 1984 5:08 pm Chipndale Version 0.12 Updates General Idea Stretchy (technology dependent part only in cmos) Back output to chipmonk's .chip file format (cmos only) CMos Chipndale designs can be writen in .chip format for Chipmonk, however, what remains is only the subrange of common features between Chipndale and Chipmonk. This feature is a hack and used only while the design rule checking and analysis programs cannot input proper Chipndale data. Chipmonk distinguishes between rectangles and wires; this difference is not known to Chipndale; (On the other side, Chipndale use different data structures to distinguish rectangles on some levels). Chipndale tries to remember the source of Chipmonk rectangles (or wires) by using properties, however it is not clear to me, if all cases are written back correctly. Busses: Chipndale does not support them on all levels, and does not at all write them back. Texts: Chipndale may exchange fonts when texts are read from Chipmonk; they are not written back. Chipndale terminology caused some problems: SignalNames are NOT Texts ! SignalNames are properties put to some objects, maybe used by some analysis programs. Texts are a data structure of Chipndale, they have a font and a size, and can be put ont masks (if supported by the technology). Repetitions: Chipmonk repetitions are read in as cells! Proper Chipndale repetitions are not understand by Chipmonk and can not be written back on .chip files. Temporary proposed usage of the writeback feature: Try to write back your design immediately after you have read it the first time with chipndale; test if the way back works, and only then proceed using chipndale. Definition modules CDProperties properties without copyproc or writeproc are copied or written to dale files if their keys are atoms and their values are either atoms or ropes. This feature serves the handling of unknown chipmonk properties; it should not be used for basic features of Chipndale. CD objects get a describe proc objects get a match proc (used for stretchy) drawrecords get a hint field about the scale CDOps MoveSelected gets stretchy parameter AreaSelect gets include toched parameter Select gets verbose parameter CDExtras new procedure ToLambda CDRects new procedure CreateSaverect new parameters for UseAsCreateRect CDSequencer new procedure ExecuteCommand Commands [] tells how many objects are available and how many are selected Query position and distance: Select new mode: toggle bit if new objects should be selected for stretchy move stretchy move toggle bit in control panel for <=>, <\>, , VersatecPlot [replace by] ViewerMenu: DesignMenu: ResetScale: SelectAll: #################################################### --/indigo/chipndale/documentation/cd11.tioga --Ch. Jacobi February 1, 1984 10:33 am Chipndale Version 0.11 Updates Definition modules CD New concept of exporting a Graphics.Context in the DrawRecord's replaces procedure field DrawSome and DrawText CDTechnology Separate ColorBricks for any bit per pixel number (1,4,8) CDViewer ViewersOf ' s design parameter is of type REF ANY, to additionally allow using a technology CDTexts Font representation is redesigned Text are in some level (Text are not signalname's) New procedures to install and query for fonts TokenIO Error message of type Rope.ROPE instead of REF ANY Implementation CDTextsImpl uses new Context feature to implement drawing texts font information may be put on .dale files VImplDraw all procedure handling texts are removed Several small bugs replaced by a smaller number of new bugs Commands All executive commands start with CD... readnmos is renamed to [CDReadCMNMos] --where CM stands for ChipMonk readcmos is renamed to [CDReadCMCMos] New command to read in patterns from chipmonk pattern files [CDPattern] (cmos only) New command to read in colormaps from chipmonk colormap files [CDColorMap] Enhanced command [CDColor] Plotting now must be explicitely enabled (again) by including "Chipndale.RunPrograms: VPlot.bcd" into the userprofile or by running VPlot from the user executive. The select command gives more feedback CMos four kinds of diffusion in control panel contacts and transistors get diffusion from current level selection NMos Text commands are temporary disabled, until we know which fonts will be supported in nmos. (This protects design files against using wrong fonts). User profile see /indigo/chipndale/documentation/Chipndale11.profile options for popup menu options for initialization of colordisplay options for selection of chipmonk pattern files options for selection of chipmonk colormap files options to start further programs Documentation to see what is available, look on /indigo/chipndale/top/cddoc.df Release strategy df files /indigo/chipndale/top/cddoc.df (documentation) /indigo/chipndale/top/cddesign.df (designers features) are version independent and bring over the actual version. df files /indigo/chipndale/top/... cd11, nmos11, cmos11, cornerstitching11, vplot11,... analysis10, maskgen10,... contain a version number in their name, but are used only by programmers. #################################################### CDEvents-Registration10.txt -- CDEvents-Registration10.txt -- Ch. Jacobi September 16, 1983 2:11 pm -- last edited by Christian Jacobi October 17, 1983 4:45 pm EventProc: TYPE = PROC [event: REF, design: CD.Design, x: REF] RETURNS [dont: BOOL_FALSE]; If not specified else: event, design are initialized, x is NIL $CreateNewDesign $RenameDesign $RegisterTechnology (design=NIL, x=Technology) $AfterCellReplacement (x=Object [cell] ) $BeforeCellReplacement (x=Object [cell] ) $AfterPush $AfterPop $WriteTechnologyPrivate [listens to dont, allows writing technology private information; may be used only with permission of technology, because of order on file!!!] $ReadTechnologyPrivate [listens to dont, allows reading back technology private information; may be used only with permission of technology, because of order on file!!!] #################################################### plot10.tioga [Indigo]Documentation>plot10.tioga Versatec plotting with Chipndale Subject: chipndale, cmos, versatecplots To: chipndaleusers^ Cc: Jacobi Chipndale is hacked such, that cmos-designs (in addition to nmos) can be ploted on the versatec plotter, whenever still somewhat painfull. To create a plot: -Get Cedar 5. -Get Chipndale from the df file [indigo]top>cdDesign.df bringing over everything. -Read your design, by typing readcmos (or readnmos), to the commander, which starts chipndale and reads a Chipmonk ...chip file. (You must not err which technology your design is.) -Do the plot: Hold down and draw a rectangle with the Mark button. Chipndale answers with a menu were to put the plot. (discarding the entries in the menu stops plotting). Chipndale needs a fair amount of time to do the plot. Chipndale CMOS does NOT implement busses. Have fun Christian #################################################### cd10.tioga Version 10 has no real changes of definition modules, but everything is recompiled with Cedar version 5.0 The command "run cdnmos" is replaced by the command "@cdnmos" Module Terminal is renamed to TerminalIO to avoid conflict with the new Cedar module Terminal Chipndale version 9's DF files are changed such that they do not bringover any Cedar files of any (wrong) Cedar version. New commands "<" and ">" for grow and shrink Plots are no more inverted. It is possible to include filenames on the commandline. It is possible to read in the directory of an other design. File format change; files are now slightly smaller than chipmonk files. #################################################### cd9.tioga CD ObjectProcsRec, RegisterObjectType: objectType changed type to ATOM (for representation on files) CDSequencer CommandRec gets new field sPos; pos and sPos now replace r which is removed. (this allows to get rid of unnormalized rect's) please do not yet use the orientation, I want to experiment first CDInline: New procedure ToRect (used to replace r by pos, sPos in CDSequencer) CDDraw world is renamed to design (consistency) CDValue searchUntil is renamed to propagation order of parameter reversed (consistenc with CDProperties....) (dangerous since of same type, but I checked all DF files of all users for CDValue...) CDProperties RegisterProperty gets optional registrationKey parameter (to allow multiple registration) CDPrivate new procedure Debug CDTechnology new procedures SetCurrentLevel, SetLevelWidth; widthAtomTable made private (widthAtomTable is no more needed public: since cd8, levels can have properties) CDCells EachEntryAction gets a default return value TokenIO, CDIO: New modules read/write included, uses TokenIO On read write of a design, an event allows the Technology to add private information to the file In NMos: TIPTable may be specified by UserProfile (See Chipndale.profile for default values) You are NOT supposed to make your own tiptable now, the commands are still considered implementation level and change without documentation The tip process knows a "WiringMode" set, reset and querried by tip process, has no further influences #################################################### Date: 31 May 84 10:06:54 PDT From: Jacobi.pa Subject: access right on /indigo/chipndale/ To: Chipndale.pa Cc: Jacobi As you get this message, you have write-access rights on the /indigo/chipndale/ directory. These are the rules which make it possible to share this crowded directory: /indigo/chipndale/ is a release directory, not a working directory. To develop some program you use your own personal directory. Once the program works, you may copy it to chipndale. This allows client programmers, to coexist with programmers changing chipndale. Furthermore, it allows designers using chipndale to coexist with programmers changing chipndale and programmers making client's. -Every file "FooFile" lives in a subdirectory like /indigo/chipndale/5.2/FooDirectoryX/FooFile.mesa where "5.2" means the Cedar release number and "X" means the chipndale release. -Every DF file lives in a top subdirectory like /indigo/chipndale/5.2/top/FooX.df where "X" means the chipndale release. -Every file is mentionned in a df file. -All df files are verified, without errors and without warnings. -Every DF file to be used by programmers of clients has the chipndale version number in its name, if it depend on a chipndale version. -The DF file to be used by designers does not has a chipndale version number; it refers to the currently newest released chipndale version's df files. -DF file's have owners; whoever changes a DF file owned by somebody else must send a message to the owner. Whenever disk real estate gets short on Chipndale, I have to perform some actions, probably in this order: 1. Delete any file not in a subdirectory. 2. Delete any file not in a df file. 3. Delete any .bcd file with a release number of a release which is no more in use. 4. Delete any second version of any file 5. Delete any file with a release number of a release which is no more in use. 6. Declare some release as beeing no more in use. At this point, I might consider asking users or client programmers if they agree. goto 3. 7. Ask for more disk real estate. Christian #################################################### cd8.tioga CDInline: MidPoint renamed to Center ExtendRect renamed to Extend CD: lambda gets a new value Technology gets a list of levels it uses; LevelFields replaced by LevelTechnology and LevelKey CDProperties: Properties can hang on levels and on Atoms registration rules relaxed CDValue: propagation default changed to no propagation CDSequencer: locking is now per design, queue is no more exported QueueCommand now needs a design CDPrivate: New private module with errors, zones and level-information CDTechnology: TeachLevel replaced by TeachColorBrick, (TeachSimpleColor will be replaced in later version) CifName must be handled by properties; must use $CDxCIFName CDOrient: new procedure OrientateContext CDExtras: new procedure PushedCellName CDPanel: CreatePanel returns now a viewer HookIntOntoDValue is renamed to DefineIntEntry, now using a more consistent naming scheme CDDebug: module has variable: xdesign: CD.Design is the last design created. #################################################### CD7.txt PosInrect for cdinline CDDialogue removes CreateChipndaleViewer MidPos: PROC [r: CD.Rect] RETURNS [CD.Position] = INLINE {RETURN[(r.x1+r.x2)/2, (r.y1+r.y2)/2]}; drawrecords get list of saved rects (and are no more allowed to copy) drawrecords get list of applications? and design [for parameters] #################################################### ChipndaleMessages.tioga Copyright c 1983, 1985 by Xerox Corporation. All rights reserved. by Ch. Jacobi, 1983 last edited by Ch. Jacobi, January 29, 1985 11:18:42 am PST Sil Options: Chipndale.ChipmonkColorMaps: "default.CDColorMaps" better: use full path name Chipndale.ChipmonkColorPatterns: "default.CDColorPatterns" better: use full path name Chipndale.ChipmonkColorPatternNum: 2 good value for nmos Chipndale.SavePeriod: 0 to specify interval for automatic saving designs, in seconds; -1 to avoid saving --///cd17/cd17.tioga --chipnsil14.tioga --Christian Jacobi April 24, 1984 3:57:50 pm PST Chipndale.chipnsil.TIPTable: "chipnsil.tip" -- this is default -- Fonts do not have defaults --/indigo/chipndale/documentation/cd13.tioga --/indigo/chipndale/documentation/cd12.tioga Ê¿˜J˜™Jšœ Ïmœ7™BJšœ™Jšœ<™<—J˜J˜J˜Jšœ4˜4Jšœ˜Jšœ˜Jšœ%˜%Jšœ/˜/Jšœ ˜ J˜J˜šÏb˜J˜˜KJšœ˜Jšœ˜—šœ}˜}J˜——šž˜J˜˜?J˜J˜0J˜—J˜˜J˜*J˜—˜&J˜J˜J˜ J˜J˜áJ˜Jšœ žœxžœx˜—J˜˜Jšœžœ˜–——J˜˜J˜—J˜Jšœ4˜4Jšœ˜Jšœ˜JšÐbsœ ˜JšŸœ˜J˜J˜Ibody˜PKšœ Ïeœ  œ   œö˜ÊIheadšœ˜Iitem˜1M˜ M˜M˜J˜J˜:˜Iidentšœ'˜'Nšœ(˜(Nšœ(˜(Nšœ&˜&Nšœ'˜'Nšœ'˜'Nšœ&˜&Nšœ#˜#Nšœ7˜7Nšœ7˜7Nšœ7˜7Nšœ7˜7Nšœ7˜7N˜N™ N˜N˜N˜N˜Nšœ˜Nšœ˜Nšœ˜Nšœ˜Nšœ˜—L˜M˜)M˜+M˜fM˜²M˜TN˜K˜wK˜Iblockš ˜N˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ!˜!Jšœ˜Jšœ ˜ J˜J˜J˜šž"˜"J˜J˜’J˜J˜«J˜—šž˜J˜˜J˜J˜ J˜ J˜3J˜1J˜"J˜J˜j—J˜˜6˜:J˜ì—J˜0J˜J˜GJ˜J˜J˜J˜IJ˜J˜ —J˜J˜mJ˜—šž˜˜xJ˜J˜ ˜J˜—J˜8J˜J˜J˜J˜ J˜J˜3J˜(J˜——J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ ˜ Jšœ/˜/Jšœ%˜%J˜J˜šž˜J˜JšœÝ˜Ý—šž˜J˜J˜ÑJ˜˜LJšœ˜Jšœ3˜3Jšœ+˜+Jšœr˜r—J˜˜ J˜„J˜§—J˜J˜óJ˜—šž˜J˜˜˜&Jšœ,˜,J˜—J˜‘J˜J˜3—˜˜>J˜(—J˜Jšœ˜—˜ J˜%—˜ J˜.J˜—˜J˜—˜J˜ —˜ J˜.—˜J˜d—˜ J˜J˜J˜6J˜%—˜ J˜J˜@—˜J˜—˜ J˜+—˜J˜3—˜J˜——J˜—šž œ:˜GJ˜˜ J˜J—˜J˜.—J˜—šž%œ˜&J˜˜J˜&—˜J˜&J˜)—˜J˜#J˜)J˜†J˜h—J˜—šž%œ˜&J˜J˜˜J˜a—J˜—J˜ J˜Jšœ4˜4Jšœ˜Jšœ˜Jšœ"˜"Jšœ/˜/Jšœ ˜ J˜J˜Jšž˜J˜šž ˜ J˜J˜ÒJ˜J˜®J˜Jšœ@˜@J˜Jšœ–˜–J˜—J˜šž œ˜ J˜Jšœ'˜'J˜Jšœá˜áJ˜J˜—J˜ J˜Jšœ4˜4MšŸœ˜MšŸœ˜MšŸœ˜MšŸœ˜MšŸœ ˜(M˜K˜Î˜K˜ïK˜ªK˜™K˜òK˜…K˜Í˜K˜ŠK˜³Kšœð˜ð——˜Kšœ ˜ —K˜K˜K˜J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ˜Jšœ/˜/Jšœ%˜%J˜J˜šž˜Jšœƒ˜ƒJ˜šœ˜˜%JšœÏiœ7¡œZ˜¬—J˜'J˜—šœ˜J˜!J˜#J˜—šœ˜J˜"—J˜—šž˜J˜ô˜JJšœ"œ˜&Jšœœ œ œ˜Jšœœ œ ˜)—J˜ˆJ˜—šž ˜ šž˜˜AJ˜Jšœ6˜6J˜,Jšœ˜—J˜J˜J˜—šž˜J˜Q˜J˜Jšœ5˜5J˜-Jšœ ˜ J˜>—J˜J˜J˜——šž˜J˜-JšœI˜IJšœ=˜=J˜3J˜DJ˜6Jšœ;˜;JšœÏsœ8˜PJšœBž˜CJ˜GJ˜/J˜HJ˜—šž>˜>Jšœ"˜"Jšœ˜šœ˜šœ2™2Jšœ™——šœ ˜ šœ:™:Jšœ™——šœ$˜$šœ%™%J™—šœ™J™P——J˜—šž˜˜˜QJ˜/—J˜J˜NJšœ#˜#—J˜?J˜:JšœV˜VJ˜J˜ZJ˜J˜*J˜+J˜_J˜DJ˜J˜uJ˜yJ˜—J˜ J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ)˜)Jšœ˜Jšœ ˜ J˜J˜Jšž ˜ J˜J˜J˜˜`J˜4—J˜DJ˜]J˜’J˜J˜šJ˜˜Jšœ!žœ˜@Jšœ#žœ˜>Jšœ#žœ˜>—J˜J˜J˜ J˜Jšœ4˜4J˜Jšœ˜Jšœ˜Jšœ:˜:Jšœ˜Jšœ˜J˜J˜Jšœ0˜0J˜/J˜˜ J˜J˜J˜—J˜˜J˜Jšœ—˜—J˜J˜¨J˜Jšœ•˜•—J˜J˜ J˜J˜Jšœ4˜4Jšœ˜Jšœ˜Jšœ$˜$J˜J˜Jšž˜J˜J˜!J˜JšœK˜KJšœ?˜?J˜J˜ŸJ˜šœ˜Jšœ˜Jšœ˜Jšœ"˜"—J˜J˜J˜J˜Jšœ4˜4JšœžœÖ˜õJ˜Jšœ4˜4J™J™J˜Jšž˜J˜Jšž˜J˜˜Jšœ/˜/šœ+˜+J˜.J˜-—Jšœ6˜6—J˜˜Jšœ@˜@—J˜˜Jšœ=˜=Jšœ™˜™J˜—˜J˜JJ˜J˜—˜ J˜1—J˜˜ J˜,J˜7—J˜˜J˜J˜NJ˜VJ˜)—J˜J˜Jšž˜J˜J˜J˜LJ˜GJ˜Jšž˜J˜˜)J˜)JšœM˜M—J˜ŸJ˜J˜NJ˜Jšž˜J˜J˜CJ˜J˜J˜PJ˜&J˜+J˜J˜Jšž ˜ J˜0J˜HJ˜KJ˜,J˜J˜GJ˜CJ˜GJ˜FJ˜AJ˜@J˜J˜Jšœ4˜4J˜J˜-Jšœ+˜+J˜J˜JšÐbl˜J˜Jšœ˜J˜J˜Jšž˜J˜J˜+˜J˜J˜J˜RJ˜@J˜J˜ J˜ J˜J˜—˜J˜—šž<˜˜>J˜@J˜%J˜J˜Jšž˜J˜?J˜J˜Jšž˜J˜=J˜5J˜1J˜J˜IJ˜>J˜J˜ Jšœ4˜4J˜,Jšœ+˜+J˜Jš£˜˜J˜N—J˜J˜Jšž ˜ J˜šœ˜J˜XJšœ6˜6JšœZ˜Z—J˜Jšœ„˜„J˜˜Jšœ%˜%J˜—šœ˜Jšœ?˜?—J˜˜Jšœ ˜ Jšœ0˜0J˜—˜ Jšœ8˜8Jšœ=˜=Jšœ(˜(—J˜šœ ˜ J˜)—J˜Jšž˜J˜J˜ŒJ˜J˜Jšž˜J˜J˜cJ˜J˜0J˜J˜Jšœ4˜4Jšœž˜J˜Jšž˜J˜J˜5J˜ZJ˜J˜VJ˜J˜Jšž˜J˜J˜J˜J˜$J˜˜J˜õ—J˜J˜:J˜J˜J˜J˜Jšž˜J˜J˜ Jšœ4˜4J™,Jšœ,˜,J˜Jš£˜J˜šž˜J˜J˜=J˜J˜J˜J˜—J˜šž˜˜J˜0Jšœžœ!˜9——J˜šž˜˜J˜OJ˜'J˜˜J˜J˜CJ˜/J˜J˜J˜J˜—Jšœ4˜4J˜,J˜(J˜Jš£˜J˜šž˜˜J˜?J˜/—˜ J˜:—˜JšœI˜IJ˜—˜J˜!J˜2J˜-—˜Jšœ3˜3——J˜šž˜˜ J˜3J˜*—˜ J˜(—J˜;—J˜šž˜J˜'Jšœ&¡˜DJšœ%˜%J˜SJ˜JJ˜šœ4˜4JšœA˜AJšœ,˜,—J˜&J˜—šž˜J˜(J˜C—J˜šž˜J˜GJ˜L—J˜šž ˜ J˜8J˜J˜*J˜/J˜0Jšœ"˜"—J˜šž ˜ J˜@—J˜šž˜˜J˜/J˜6—J˜:˜$J˜4J˜—J˜JJ˜—Jšœ4˜4J˜JšžœÙ˜ôJšœ4˜4Jšž ˜ Jšœ-˜-J˜Jšœ ˜ J˜Jšœ'˜'Jšœ˜Jšœ ˜ J˜J˜AJ˜HJ˜˜J˜˜J˜"—J˜˜J˜J˜—J˜GJ˜;˜ J˜J˜V—J˜˜ JšœY˜Y—J˜˜ J˜—J˜šœ ˜ JšœJ˜JJšœP˜P—J˜˜Jšœ+˜+—J˜˜J˜!J˜IJ˜—J˜J˜J˜˜1Jšœ*˜*J˜UJ˜5J˜MJ˜—J˜Jšœ4˜4Jšœ˜Jšœ˜JšŸœ$˜+JšŸœ˜JšŸœ˜ J˜J˜ZJ˜JšžK˜KJ˜J˜‹J˜J˜˜2Jšœ0˜0JšœP˜P—˜/Jšœ!˜!Jšœ&˜&—J˜'J˜@J˜†J˜—J˜kJ˜J˜˜jJ˜)J˜$J˜SJ˜(J˜NJ˜J˜!—J˜J˜J˜ J˜Jšœ4˜4Jšž ˜ J˜˜ J˜J˜J˜—˜J˜J˜*J˜5—J˜˜8J˜J˜—J˜7J˜˜BJ˜J˜—J˜FJ˜˜6J˜4J˜;J˜—J˜(J˜J˜&J˜˜)J˜AJ˜J˜—˜1J˜—J˜Jšœ4˜4J˜Jšž˜J˜µJ˜Jšœ4˜4J˜—…—ØöòÏ