exec visual -=$0 "$@" VWIM I9):00\pl@ q(:+X"w, ,p50,H,,Tq|̶q`,,},x,,Ƞv  q@\ssHYw<`|q@HqwLxgx4xT|@}iEH|-5\q@ \{zt|lޡTxa=q@8(r4ywTmxh}` 0a8DžP:HI7̡q@$4y }l7~,Gx*؈6q@$tt#~Hp@^8&<[=,q@(q$\0*`SwК쐡`q@(ppq|t$x0p24q@,dze{;<l@̢q@4|s8x$؂hۆ謏@/2C2(3 q@$r4ytȍoȅ L2@6<q@0|jqpt$xxH^{{k|L4#2447xq@Dpxrux~v̧(І8ˍ[ ̫@]==ȣq@4Zxz8X]@7Ȏ3Ыx26q@x$q@<Dp|rtvz|QՀ@L*L‹(٫lq@@hDr@s@tБwwlpx0{ܧq@(0wρX+.z,H/919q@$Huԉ{|ܘSDX_@q@,r y<{p~46h78xq@8r|sȰ{ı~L)(DYdH֊|4,45q@4fq4r#|HX<n2)24(Z=q@,`thuvXx4yp{Xn}<#4q@,ԋpq rX6u,$z4̀yB,̩4lq@(p`d,t H q@uvw[t,ȩq@@D2rDr|l}ܸӁ9[̊lHMLx1h1XW=q@8q8qhx\z:m8pԅM1OXq@Hs+y:|tDLq@(v {}Lޅ  D4q@ }u$誂r쨡ܪq@8Ȁ$aBӉ|ϐU Кtt&4Ԣ6 q@\;DH@0!2H4Dq@`^r]xxx2dq@0_plr{8 _s579q@ d05Əݘ8ޟ0U=̫q@y<_\p4J=q@$r4D@D}q@(W|tX݄ͅl9T=Hq@ pTy|<$3d*:]=tq@ԖtlzX} q@,uy@T2,+2p5\=Ԭq@(svwwt6zx@J`Ú0ūq@H8r`rāudyd?{{0|}(Hix`ܖ @\q@$THsyY4\3q@HXxQq@ ?tyāOȗ,,oحq@,9stLGvvlTP47q@ <4(q@8Tqtw{?f|X520x56:T=lq@qtDvV5q@ @nvH#2q@0<#qDtxvy@y( @T 6q@$w(~~D= 8 #$q@4@hsst2q@hps|D}uwq@<Zt4fuAxxEyDz}Tq@( r>yz`X~h/3q@,p7udv|՗2DĬq@ XOtavp‚ Ɏ0}q@(Rt4:.T V5g= q@ sܪvv(Y|2Lq@,brtvnwdTxwtS7q@,vy |}8`7<4L=q@8<>2q@40ruHOxڋL$ T 8b=b=q@y˕h=q@0psvt8<{$5|6lO=<q@`Kv4A`̊S䰫dq@,|zsu/x{48 62p6q@ rx sP.v8x$;}ŀܜ4Ƚq@(Tpz{<= Ǡ+H:x^=|a|(4T ;pud96d=q@8quxz<%{ |4~D~܀첗p%,l4Tq@(sh0}ܺPЅ4+x@$6,n=q@$/qHzԆ~vah=q@8qplxy w{螎:2P=Y=Z=q@uxR~| q@$`7 p7 7(:k=Pq@ ,uyTނʇ6p7|q@0pv"Th $ \̫\3xR=q@ $qnr rct{q@4q3tvyܫ PD,Ί12D8$q@<hwy0,}T|6UL1H1l11X=lq@8qtvHzTT4`ۋ\ٗ`<|4@79q@ Ty{40q@,pPtwP}{@qЖLQ=q@{q xDxDO8q@Dnprx}>yH2|Ԡ)26q@cwH6q@(uu{R|(2H 6q@H$GqdtlNJ7=q@(TzM|8~xяД2`4q@412+Mޙ" ȥ C7LH7q@Ls,f}`jDơV>0q@tpuD{l}dχP5Xq@sP|q@,rx$ |`Ԁ>dƇL60 6q@4LXqtwMzHX~lh84R.'Y6q@<qpurx-s.s|sfx{{x.ѠXA2t5=<q@4st8T,,`q@ \.|*[w\4D09q@$]v|3E=q@<P#,s $|7:`[=^=^=t_=_=j==q@,`uu|aV輂Lf܈d`6/90q@ qLr@~܏0'2\q@$qry OP.Lu@q@(0ww(1}[}x~|Xq@hxw8H=$q@ pqD%쁏p\Pq@,z`*`sh=237q@,uxxDyE؉15hG7G7P69q@,|7~؉x@p 66H+:q@Xrlqt0y{ě q@<pp|q@0\apwy zxB|0~ lXj4q@$Dهu/̖>$q@,|s}b|ДTL˚X˚ q@q8Rvhח :Hq@ sv|zmz誅tq@0#qv4zhfd40 q@ sDyG4HLr=C7q@8puv{@̀ DTl 5X= q@0ԠsTz|~Kdt5O=\q@gp@t0˕)2|q@8$q&vgw(r~j'J |2$2q@,$u1w2xV||![d!s,90I=q@(u\yD{a{,|4~ԋG2,q@4sw08D(2Pq@ "$1[< %2|q@<q$lsx4y }XmlQ Mњ09q@kq@$u8v `|L,.$2145q@$gpt"w xw @q@pEr~pЀxƎdq@~txؐ5q@$PpHdul`P(KD5v=q@xQ6q@4 qr0Tstz!|L/זh p 3q@Dy0 <q@<tS{{M|}!pɇ(@|e`:E=q@4ؐvv/yDC(6$ӊ55D$Tk3,e=q@$|E8wx{ D7@E78q@0(}swlw@{||}$@~0q@(\vv{i~x̀@XX06dq@,uzȽz4~ׁhރlʼnxL6Lc=q@ $cpt4>v~!'q@s2dq@,Dps$/w ]d4P:6P09 q@@s0st~w~ r&8ԟ,ڟlq@4HsNz|{H~ ~\|ЎL)268q@,*rXubx0Mzހo+H44L6q@$sȡuπ d˚ 12q@$pswl^ 8=ɋDq@vmzlv{p=dq@4o{p{6,|d)2g55|Q=q@,0qqgx7|D|lH<ZHv5q@$Tqtr8Ls%t\zH|ذl= q@\tЖx\t=,q@,hEq@zNĈȉT}dq@$DyԜzj~ӅkH K`q@ hPr,r@qyH<|}x8q@84pX.t|tDw5x z+|bdh`66q@,Xyɀp$3:::<q@z$ħ#`q@H%2,23q@LOlah@y V=q@D`szĀC6DL#06|79:q@$oudu +v ay!~pX Q0q@0udvܧ6׎h  Dq@(,FsxP2x}4Phm5<q@ xqxx~Ǎՠ4hq@4phpwZzj}h)~԰~ĉ\266q@8wd xxpz9|~ l"|6()2D4q@Dr,sp$uNwx8<$ъDf3\dͫX#26<q@<H[uT:xzɇҋȎ' y586T:`F=q@$tu~KS\ G2q@4brstv$`yz 8З36|lB2q@}Tt %q@$tRy,|i6 66Hq@0x5qy` b4h @.P3q@vq }(0>PR>q@4rHxD*/Knx+|)2X]=q@0@"qtw|{@~(~p%t͚أ4(q@ \{|0o$X=Pq@(s01u48 E 8>q@<p,q>y,9zTls|CnYS4 x55H74-:q@,^s@}h~uczʋ[u5q@(8r4sJv}@v=DB8q@(uxyx}\ (]=lq@D&rr(twyԽ}k섉ډ*,114hI5q@8g\vvxhgy|}P(@՟̭C7q@Hqt(wy zc~ CB,Llċߡ7Tq@LGrtQ{~}6~xބNA؊<Ǝ#2D+2Pp5(8q@|{@q@0؜s((z\hR<Ɉ,ǎ`ƚ* -6q@0lp@ rt{h} ~(T]athܽӈ$̠C2Lq@< p slu%w{|t~p*r5$|7 =q@<8tvHwB~`~踀L*hӗ-04$o5y5q@(qt@ՁpHp|$ūt=2<29q@<x q~ttuTz|'HTHԚd1Xq@pu=%2`4q@(\;r$xy{<~؉/w@82q@ GrW!tɫ67q@$ix}$+d=q@@Xu`wDIy}HO~lS-pT9235488\q@(:z:~lTo\0觗35q@(\;҆(pآg5q@,ěp@z|DYI䰏30Yq@$12dT50B8j=48>,q@4|r0 {'{PD~ldxcNš<#X6lq@4uuwzt;~ԁ14jߏ?6q@+r| kq@,StD@yEyhrL*U5ܺ7p3:q@8@{e|$䓈ʈd\ۍIϚʫ6Hq@<8PrHswlxTzH~P+p( @D4l=q@0qrrxrs{vpwx{,P42q@ tv-Xdhb=b=p=q@$u|L}஀ٗd4\=(q@\{8| u|4Lq@ Dtv| z\|47xq@43r0uĽ{~d~qzth2926q@nT͚\s5q@<q8Y{}XpDh1v?p"0: q@$HxxxԃYp6|6Tv=Pq@@|vkwdz~@Z|ŚŚ459W=8_=`=q@0w{|H,[{qqpTऍ|q@Hpru8z9}c،=T@ ܥ1Xh=,q@Xp vvv(jzzx~|OpHf@؉>o2 r5 6 =q@,|_pq$~y҃ۈ٠P27q@$(0ry\ҀSmdˈ0T4q@(x@xoy(TIPh36,q@0$qr|$he@+3hq@@u8@q@(qnv$w4z0&z}\݁Lq@(HvP~DyP|}2q@4tuÅܨ`mw`l50q@8x\]z,\lʄgd9LhR24x=tq@$ru$|~~q@sܠwq7q@,vDW}|[DŊJ(q@,0uv xxiL̀쎅]@͕ 46<q@s 2Ta=q@(qs|}܂*h2H: q@,(Rth||\~ʍ` pQ>Xq@(vXxSmTOi\`H6q@pk}tq@X3$R=c=q@$8y, ؆D=I=p_>q@0$rJuz|`D䱗Ĩ40/9=q@(_sPwwxDcz@J\|!P5Hd=8q@,qw@z|}8PP=pq@q虍&d 2o=q@sH\t Twȋh=q@(xzlPhxMP]=q@8s$t@uxLXz\{D[|~l19:>8q@DqĜr js$em\TX\j@57T29h=q@,$ivP~ pt/63ܨ=$=q@4 r\rDwHytEЉH1H  q=q@(4 D$q ؄1X=4q@(dp~9ʕ#<3C4s=hq@HpLUtwT&z;T\8!"DP#hDϫ\2<3n=q@Tq@ϗL6m=q@(Hr2{(݃(2(q5\=q@P\qsy8$zD{l$|L}Tڄ ח쀜Ȥޡ:[=xq@(d)sDv`yhzHb6`7X`=q@,lLxx${|ȫ<ȫx=q@0XqX s$Ywx xxd}PV@֠[=d= q@<؎rxrs}ԏ~Tl7q@$r<Ċ`6do==q@,PRsLt̻tی`0W=q@0sP:vĉ|8~ ӍȚX٫#254Z=<q@$t4tz$2p3S=lq@Hr sX(tx$e=q@HswDz`$|D}4~RHT``6D^s=q@Hr<uثv(vw,x`{}3$ȫxΫT7=<q@0uu ɃËD@{;3r=xq@4ssuDw/zׂuh0L6m=q@4cqн{@}}% pxKfF=g=q@ ԑ|lJ8R4xo5p`=$ q@$`Crxh}A219c=T q@p!q@$w|$xd3|f="q@$ࡇ%TޗT  6th=H"q@0ppLq(st-t4v|PM~Ѓ02\="q@d`rPps`}vW="q@(&sdv2w|䰉tg56U="q@,pq/rw{(|-CTR4lj=#q@(Wql uĵX7*:e=f=H#q@x$:L6l=h#q@Hvp,y ̳ؑ[ K11l1\11/2t5p=D==#q@P,pp 9tVuu w4x@5yD=y({|؆\VxL0t=$q@,8rdsWxG|ކX&2Q>P$q@0ppu'w(l~3 =У4@=$q@ؼt8ydX7te=$q@X^qXx@<૫:=$q@ 0 E<| S4=%u%b$w,8%b$w4-T%b$w-p%L +(T$wk /? %b$w-%x.0.%|v(P;H.&x..$&%r3#N"@sw C8cS#ce N CM , ;k (C   S7^ s }s?=s?=s?=s?=s?=s?=ss?=s?=ss s?Y '|v˚8.(p AnObsoleteRuntimeManagerStripper,(|u$y;P_CW?Xz;\(|vh7>|;.(p1 runtime.im created at April 20, 2005 12:06:15 pm(w,/ was created at <3p> on <2p>.\*p<1s> created at <2p> <3p>*+/#*00*00*00*(x=00+(x>81P18+ {T+q@DS>8:t;D<D<||<8=D=P=\======S>+Pr +|w1/1+v0:,|v1C2<,{ T,z L2l2'sl,|2q2!}2,v0,},u,uCS,v@C2@-v@C3-v@C 3-v@C@3$.{ <.( D-}`3T.v0P;.{ .( D-}x3.v08.v0|;8/vH/vX/v0;/(p 33/v/v/p0uS0u0p0w330( (x(>1v0D1( (xT?>\1v01&'3341v0/1|΂#P4<( t42v0CX2Z4x2}42| w?z\>r42v02,:sG4 3,:s&,3,:s DL3,:s&l3C x5\>r3C x(5$3 runtime.im3p runtime.im3v3v3||K453 X54( &,) 4v0,)\4| w5$54v054v $4{ 4v06(5v45v@5|\N3 6,)D6d5v0\Rv65v76665v06v6b$w7,6|\7,)7P6v06( l&,)6||K76 76( v$6v0$7v@C8h7X<8`8x87v07?8887v0l!,9(8,:sF4H8|LD9`8 h9l8( X,)8v0,)8||K98 98( $8v0$89( (G$P9|z_:t (:t9v0d:9nv'|::9v0l!h:ГuC:: ;4:v0`8$Ąp:( qp$Ą:( nv8:v08:|LH;: l;;( Гu,);v0,)T;|X+;t ;x;v0<;|Q+ <,)D<;v0,):<( ༇t,<|xcp;<%r<P<v0<|<l0y;<<v00,Tq<v01Tools-Trippy provides a greatly enhanced inspector/object-exploration tool, called Trippy. In addition to the traditional inspector functionality, Trippy includes the following features. " Presents an inspected object from multiple perspectives, such as the "logical" view of an OrderedCollection as a sequence of elements, versus the "physical" view of it as a Smalltalk object with all its named and indexed variables; " Provides a view showing all of the object s methods, with selective inclusion of inherited methods. This allows to easily see all messages an object understands. In this view you can also edit and add methods, much like in any browser. " Navigation through the "neigborhood" of an object being inspected, such as other elements of a collection containing the object, or the hierarchy of visual components including the object. " Navigation paths through objects are remembered. "Next" and "previous" web browser-like buttons and a hierarchical visit history are available to quickly travel to any of the already visited objects. " Drag-and-drop copying and moving, to copy objects between variables, add objects to collections, rearrange elements in collections, and add objects to workspaces as local variables. " Most objects manipulations are undoable, with a multi-level undo. " The inspector includes a separate evaluation pane, the content of which is independent of the selection in the inspector and can be shared by all inspectors. " Multiple selection is available to easily view or change many fields or elements of an object at once. You can learn by exploring the inspector options, or read the Trippy Walkthrough on the Cincom Smalltalk Wiki. The original Inspector remains in the image. If, for some reason, you want to revert to using it as the default inspector, evaluate the expression: Tools.Trippy.Inspector useSimpleInspector: trueTools-Workspaces provide a workspace that organizes several workspaces inside a single window. Such multiple-page workspaces, or "workbooks", are the default kind of workspace opened by the Launcher. If you prefer the traditional single-page workspaces, you can use the "Workspace" section of the Settings tool to change this default. You can also "tear off" a page from the workbook into a single-page workspace. An inspector of workspace local variables (Trippy in disguise) is integrated into a workspace window and supports saving and loading objects in workspace variables as files using BOSS. Together with the ability to drag and drop objects between workspaces and inspectors open on any objects in the image, this allows copying objects between images. Workspaces protect against overwriting concurrent changes. When a workspace reads a file for editing, it remembers its modification timestamp. Before saving, a workspace makes sure that the timestamp of the file has not changed, warning you if it has. The Parcel Manager is a tool for exploring the available parcels (loadable components of VisualWorks) and loading them. To start it, use the System -> Parcel Manager item of the Visual Launcher menu, or press F3 while in the Launcher window. The Parcel Manager provides three ways of looking at parcels, corresponding to the three tabs on the left hand side of the window. " Suggestions is a list of parcels organized by category, such as  Developer Tools or  Graphics. A category may include both supported VisualWorks components, and third-party contributions (goodies). (To distinguish supported parcels from goodies, they are shown using different icons). " Directories shows the directories from the parcel search, organized hierarchically under three top-level items:  VisualWorks for supported VisualWorks components,  Goodies for third party contributions, and  Preview for VisualWorks component still being worked on. " Loaded shows parcels that are already loaded, again categorized. When a parcel category or directory is selected, its parcels are displayed in the list on the right. The list can show the parcels arranged in either alphabetical order, or as a tree revealing the prerequisite relationship between them. All lists support multiple selection, allowing the user to select multiple parcels from many categories or directories, to see their comments all at once.p OrderedCollection new add: #Information << #browser >> 'Information' -> #buildInformation; add: #DeploymentPrerequisites << #browser >> 'Deployment Prerequisites' -> #buildDeploymentPrerequisites; add: #DevelopmentPrerequisites << #browser >> 'Development Prerequisites' -> #buildDevelopmentPrerequisites; add: #WarningSuppressionAction << #browser >> 'Warning Suppression Action' -> #buildWarningSuppressionAction; add: #PrerequisiteVersionSelectionAction << #browser >> 'Prerequisite Version Selection Action' -> #buildPrerequisiteVersionSelectionAction; add: #PreReadAction << #browser >> 'Pre-read Action' -> #buildPreReadAction; add: #PreLoadAction << #browser >> 'Pre-load Action' -> #buildPreLoadAction; add: #PostLoadAction << #browser >> 'Post-load Action' -> #buildPostLoadAction; add: #PreUnloadAction << #browser >> 'Pre-unload Action' -> #buildPreUnloadAction; add: #PostUnloadAction << #browser >> 'Post-unload Action' -> #buildPostUnloadAction; add: #PreSaveAction << #browser >> 'Pre-save Action' -> #buildPreSaveAction; add: #OtherProperties << #browser >> 'Other Properties' -> #buildInspector; yourself Dictionary new at: #FormatCommentWithStatements put: 'Format comments beside the statement they occurred in. If this is unchecked, then comments will be put beside the node they occurred in the original source.'; at: #IndentsForKeywords put: 'When formatting a multi-line message, how many more times should we indent?'; at: #IndentString put: 'This is the string that is used for indenting lines.'; at: #LineUpBlockBrackets put: 'Should the block brackets [] be aligned when formatting a multi-line block?'; at: #MaxLineLength put: 'How long should a line be before the formatter breaks it into multiple lines. Comments are not affected.'; at: #MethodSignatureOnMultipleLines put: 'Should keyword method signatures be displayed on multiple lines?'; at: #MinimumNewLinesBetweenStatements put: 'How many new lines should be placed between the previous statement''s period and the next statement?'; at: #NewLineAfterCascade put: 'Should a new line be added between each cascaded message? If not, the next message will begin on the same line as the previous message.'; at: #NewLineBeforeFirstCascade put: 'When formatting a cascaded message, should a new line be added before the first message?'; at: #NewLineBeforeFirstKeyword put: 'When formatting a multi-line keyword message, should we add a new line before the first keyword?'; at: #NewLinesAfterMethodComment put: 'How many new lines should be added between a method comment and the start of the method?'; at: #NewLinesAfterMethodPattern put: 'How many new lines should be added after the method pattern and the method body?'; at: #NewLinesAfterTemporaries put: 'How many new lines should be added after formatting temporary variables (e.g., | a b c |)?'; at: #NumberOfArgumentsForMultiLine put: 'How many arguments are required to always format a message on multiple lines?'; at: #PeriodsAsTerminators put: 'Should we add a period after every statement? If this is unchecked, only the necessary periods are added.'; at: #PeriodsAtEndOfBlock put: 'Should we add a period after the last statement in a block?'; at: #PeriodsAtEndOfMethod put: 'Should we add a period after the last statement in a method?'; at: #RetainBlankLinesBetweenStatements put: 'Should blank lines between statements in the original source be retained.'; at: #StringFollowingReturn put: 'What string if any is displayed immediately following a return ^?'; at: #StringInsideBlocks put: 'What string if any is displayed inside the brackets of a block []?'; at: #StringInsideParentheses put: 'What string if any is displayed inside parentheses ()?'; at: #UseTraditionalBinaryPrecedenceForParentheses put: 'Should we parethesize expressions based on standard precendence of other languages? For example, should 3 + 4 * 2 be formatted as (3 + 4) * 2?'; yourself  Dictionary new at: #FormatCommentWithStatements put: 'Format comments beside their statements'; at: #IndentsForKeywords put: 'Indents for keywords'; at: #IndentString put: 'Indent string'; at: #LineUpBlockBrackets put: 'Line up block brackets []'; at: #MaxLineLength put: 'Max line length'; at: #MethodSignatureOnMultipleLines put: 'Method signature on multiple lines'; at: #MinimumNewLinesBetweenStatements put: 'Minimum new lines between statements'; at: #NewLineAfterCascade put: 'New line after cascade'; at: #NewLineBeforeFirstCascade put: 'New line before first cascade'; at: #NewLineBeforeFirstKeyword put: 'New line before first keyword'; at: #NewLinesAfterMethodComment put: 'New lines after method comment'; at: #NewLinesAfterMethodPattern put: 'New lines after method pattern'; at: #NewLinesAfterTemporaries put: 'New lines after temporaries'; at: #NumberOfArgumentsForMultiLine put: 'Number of arguments for multiline messages'; at: #PeriodsAtEndOfBlock put: 'Period at end of block'; at: #PeriodsAtEndOfMethod put: 'Period at end of method'; at: #RetainBlankLinesBetweenStatements put: 'Retain blank lines between statements'; at: #StringFollowingReturn put: 'String following return (^)'; at: #StringInsideBlocks put: 'String inside block brackets []'; at: #StringInsideParentheses put: 'String inside parentheses ()'; at: #UseTraditionalBinaryPrecedenceForParentheses put: 'Parenthesize expressions based on arithemetic order not left-to-right precendence'; yourself The "Probe on instance variable reference" panel enables a user to insert a probe where an instance variable is referenced in each selected method. Some of the probes send the "debugString" to the object on the Top of Stack. This object is either; the object just read from the variable, or the object to be written to the variable. The action performed by the probe is determined by the the type selection radio buttons. They are; Breakpoint Causes a breakpoint to occur at the variable reference point. Smart watch Records the following in the watch window; receiver's class, method selector, character position of probe, the result of the "debugString" message being sent to the object on the Top of Stack in the watch window. One watch window is shared by all the probes. Simple watch Records the result of the "debugString message being sent to the object on the Top of Stack in the watch window. One watch window is shared by all the probes. N Simple watches Same as the Simple watch, except that each probe has its own watch window. Expression watch Records the result of a user defined expression in the watch window. This expression is initialized to "^TopOFStack debugString". ---------------------- Other controls ------------------- Conditional This check box is selected, a probe editor will open after the Done button has been pressed. This allows the user to define an expression that will conditionally activate the probe. Likewise, the One should be aware that all the probes created by this panel will initially use this conditional expression. Later, if the conditional expression of a probe is modified, only that probe will receive the change. Window parameters This check box is used to request that a panel be opened to specify watch window parameters. Generate report This check box will cause a workspace to be opened containing a report of what instrumentation action was requested.The "Probe on message received" panel enables a user to insert a probe at the beginning of each method selected in the method list. The action performed by the probe is determined by the the type selection radio buttons. They are; Breakpoint Causes a breakpoint to occur when the message is received. Simple msg watch Records the receiver's class and method selector in the watch window when the message is received. Ivar watch Causes a representation of the object in the instance variable to be recorded in the watch window. The representation is obtained by sending the object a "debugString" message. In Object, this method is defined as ^self printString. Expression watch Records the result of a user defined expression in the watch window. ---------------------- Other controls ------------------- Conditional This check box is selected, a probe editor will open after the Done button has been pressed. This allows the user to define an expression that will conditionally activate the probe. Likewise, the One should be aware that all the probes created by this panel will initially use this conditional expression. Later, if the conditional expression of a probe is modified, only that probe will receive the change. Window parameters This check box is used to request that a panel be opened to specify watch window parameters. Generate report This check box will cause a workspace to be opened containing a report of what instrumentation action was requested.>#QDf5r5sEEf:wKxf= &',)OVEprSJIIIx,JyfF{S PH=  f!h0"iP$F$FKIE#jJ$ffH=  f!h8"iP#jI$fP$FPf%',&rF'H=  f!h"iP#jI$fP$FPfPPP((',)rF'S*+,!h"jP#ffP$FP-',.rF'S*/,!h"jP#ffP$FP0',1rF'S*2,!h"jP#ffPFP3',4rF'S56IJIIP7ffPP8',9D:,;',<=,>',?@, A Jg B26hJ=CiJkI"i=DikIEiP#jPFGf 4GHf28',I 4GJf 4fXCKf 4f2;',LMkHf?PFP N fJK==BOP',Q6hCiJ=DiP#jPFFGGHffPFPH= R f!hSITiP#jU$ffPFPV$S E$SE P II RWRXEe The stack inspector allows one to inspect the current statement's object stack. The inspector's fields are dynamically determined and appear in two forms. The first appears when the selected context is the top context and is about to send a message. The named fields identify the message arguments and the messge receiver. If you were about to send the #displayOn:at: message in the following statement; anImage displayOn: gc at: (45 @ 70). the stack inspector would show; arg2 = 45 @ 70 arg1 = aGraphicsContext rcvr = anImage If you select a context other than the top context and there are objects on the stack they will be identified as: "top", "-1", ..., "-n". "top" refers to the top of stack and the fields "-1", to "-n" refer to the top of stack -1 to -n. Additionally, if the top context is selected and it is about to store an object into a variable or return an object you will see just "top". Furthermore, if there objects that have been pushed on the stack are are intended for a subsequent message send you may see something like; arg2 arg1 rcvr -3 -4 Try stepping through the following and observe how the stack changes. self halt. (Array with: 2 with: 4) at: (1 * 2) put: 5 y(Text string: 'The ContextListPolicyEditor is used to create and modify the context list policy. To understand how this editor works it one should first understand how the context list policy works. Context list policy The basic concept is that the context list policy matches each context against a sequence of patterns. If a pattern match is found, the context is displayed in the color associated with the pattern. If no match is found then the context is filtered from the list. If there is more than one pattern that will match, it is the first one in the list that is used. More specifically however, the filtering process begins after the number of contexts specified by "Display all limit" have been collected. This means that the most recent message sends will always be displayed. If a context is before the Display All Limit and is not matched, it will be displayed in the normal default color for text. When matching a context the policy creates a string to represent the context using the following template: $P$package or parcel name$C$class name$S$selector For example, if you want to display every message send in one of the Collection packages the pattern would be. $P$*Collections* The "class name" is the absolute class name so it contains the namespace path from Smalltalk. In addition the policy has hooks to allow a pattern matcher other than the VW builtin string patterns to be used. This is done by specifying the "Conversion selector" and the "Match selector". For example, if the Regex11 parcel is loaded the "Conversion selector" would be #asRegex and the "Match selector" would be #matches:. A useful setup that would display all contexts but emphasize the more interesting ones would be; MyStuff - *$C$MyNamespace.* - ColorValue red AllElse - * - ColorValue darkGray ContextListPolicyEditor Patterns This is the list of patterns. Each pattern has a name which is used for two purposes. First, for the user to identify the pattern. Second, this is associates the pattern to its color. If there is more than one pattern with the same name then the contexts that match these patterns will be displayed using the color of the last duplicate name in the list. Reordering The list can be reordered by simply dragging the list item to the desired location. Menu commands New - This command will create a new pattern and insert it after the selected pattern. If no pattern is selected then it will be inserted at the beginning of the list. Remove - Removes the selected pattern from the list. Undo - This command will undo last command performed on the selected pattern. There is no limit to the undo buffer. Copy - This command makes a copy of the selected pattern in a buffer. Paste -This command will insert a copy of buffer after the selected pattern. Buttons and fields New See Menu commands - New. Remove See Menu commands - Remove. Name Entry field for the pattern name Pick color Opens a color picker for changing the color of the selected pattern. Pattern string The actual pattern string. Match selector This field specifies the selector to be sent to the converted string for matching. Conversion selector This field specifies the selector to send to the pattern string to compile into a pattern object. This is needed for regex patterns. Display all limit This field specifies the limit where all contexts are displayed.' runs: (Core.RunArray runs: #(186 19 816 22 3 10 3 8 440 7 287 23 10 361 10 87 14 1 3 167 6 48 4 114 4 67 5 73 18 2 3 28 6 31 4 36 10 73 14 30 14 86 19 137 17 66) values: #(nil #bold nil #italic nil #italic nil #italic nil #bold nil #bold #underline nil #underline nil #italic nil #(#underline #italic) nil #(#underline #italic) nil #(#underline #italic) nil #(#underline #italic) nil #(#underline #italic) nil #italic nil #underline nil #underline nil #underline nil #underline nil #underline nil #underline nil #underline nil #underline nil))) asValue@ The ContextListPolicyEditor is used to create and modify the context list policy. To understand how this editor works it one should first understand how the context list policy works. Context list policy The basic concept is that the context list policy matches each context against a sequence of patterns. If a pattern match is found, the context is displayed in the color associated with the pattern. If no match is found then the context is filtered from the list. If there is more than one pattern that will match, it is the first one in the list that is used. More specifically however, the filtering process begins after the number of contexts specified by "Display all limit" have been collected. This means that the most recent message sends will always be displayed. If a context is before the Display All Limit and is not matched, it will be displayed in the normal default color for text. When matching a context the policy creates a string to represent the context using the following template: $P$package or parcel name$C$class name$S$selector For example, if you want to display every message send in one of the Collection packages the pattern would be. $P$*Collections* The "class name" is the absolute class name so it contains the namespace path from Smalltalk. In addition the policy has hooks to allow a pattern matcher other than the VW builtin string patterns to be used. This is done by specifying the "Conversion selector" and the "Match selector". For example, if the Regex11 parcel is loaded the "Conversion selector" would be #asRegex and the "Match selector" would be #matches:. A useful setup that would display all contexts but emphasize the more interesting ones would be; MyStuff - *$C$MyNamespace.* - ColorValue red AllElse - * - ColorValue darkGray ContextListPolicyEditor Patterns This is the list of patterns. Each pattern has a name which is used for two purposes. First, for the user to identify the pattern. Second, this is associates the pattern to its color. If there is more than one pattern with the same name then the contexts that match these patterns will be displayed using the color of the last duplicate name in the list. Reordering The list can be reordered by simply dragging the list item to the desired location. Menu commands New - This command will create a new pattern and insert it after the selected pattern. If no pattern is selected then it will be inserted at the beginning of the list. Remove - Removes the selected pattern from the list. Undo - This command will undo last command performed on the selected pattern. There is no limit to the undo buffer. Copy - This command makes a copy of the selected pattern in a buffer. Paste -This command will insert a copy of buffer after the selected pattern. Buttons and fields New See Menu commands - New. Remove See Menu commands - Remove. Name Entry field for the pattern name Pick color Opens a color picker for changing the color of the selected pattern. Pattern string The actual pattern string. Match selector This field specifies the selector to be sent to the converted string for matching. Conversion selector This field specifies the selector to send to the pattern string to compile into a pattern object. This is needed for regex patterns. Display all limit This field specifies the limit where all contexts are displayed. Headless package Headless (OS.PortableFilename fromComponents: #('$(VISUALWORKS)' 'parcels' 'Headless.pcl')) WebImageDeployer new deployQuietlyrverEditor newServerClass value: WaveIPRequestBroker. serverEditor autoStart value: true. serverEditor acceptAndStartNewServer. serverEditor newServerClass value: WaveHTTPRequestBroker. serverEditor autoStart value: true. serverEditor acceptAndStartNewServer. g') #(#package 'WaveContentManagement') #(#package 'ASP') #(#package 'Servlet') #(#package 'JSP') #(#package 'WWTools')) WebToolkit (OS.PortableFilename fromComponents: #('$(VISUALWORKS)' 'web' 'WebToolkit.pcl')) RuntimePackager package RuntimePackager (OS.PortableFilename fromComponents: #('$(VISUALWORKS)' 'packaging' 'RuntimePackager.pcl')) Parcel loadParcelFrom: (Filename fromComponents: #('$(VISUALWORKS)' 'web' 'WebToolkit.pcl')). Parcel loadParcelFrom: (Filename fromComponents: #('$(VISUALWORKS)' 'packaging' 'RuntimePackager.pcl')). parcel-loaded> Wave-Server (OS.PortableFilename fromComponents: #('$(VISUALWORKS)' 'waveserver' 'Wave-Server.pcl')) WebToolkit bundle WebToolkit bundle postLoadBlock [ :pkg | ProcessEnvironment isDevelopingOverride: true. ] WebToolkit bundle version '7.3.1' WebToolkit bundle preUnloadBlock [:package | package isUpdating ifFalse: [ VisualWave.WebConfigurationManager disableEvents. VisualWave.WebConfigurationManager releaseLoggingChannel. VisualWave.WebConfigurationManager clearConfiguration ]. ] WebToolkit bundle comment 'This is the Web Toolkit, part of the VisualWorks Application Server which provides servlet, ASP, and JSP handling as well as content management and site administration features. For automatic translation of VisualWorks GUI applications into HTML interfaces, see the VisualWave parcel. For more information see the VisualWorks Web Application Developer''s Guide.' WebToolkit bundle bundleName 'WebToolkit' WebToolkit bundle parcelName 'WebToolkit' WebToolkit bundle notice 'Copyright © 2005 Cincom Systems, Inc. All Rights Reserved.' WebToolkit bundle developmentPrerequisites #(#(#any 'FTP' '') #(#any 'HTTP' '') #(#any 'Regex11' '') #(#any 'Wave-Server' '')) WebToolkit bundle prerequisiteParcels #(#('FTP' '') #('HTTP' '') #('Regex11' '') #('Wave-Server' '')) WWBaseStuff package Templating package WaveContentManagement package This is the abstract class for various stream encoders. All subclasses of this class have to redefine methods #next, #nextPut: and class method #encoding at least. The class variable EncodingDirectory contains the mapping from encoding symbol which is used many places like #Unicode in system to stream encoder class. This dictionary also has some default mapping which do not need stream encoder for instance #Ascii and #Binary, and has #Source and #default to stream encoder class mapping . You have to send the message #flushEncoderDiretory to StreamEncoder class after you install new stream encoder to your image. Instance Variables: encoder <CharacterEncoder | nil> decode/encode an Unicode character or nil if character encoder is not necessary. Not all stream encoders need character encoder. Class variable: EncoderDirectory <IdentityDictionary> maps encoding symbol like #Ascii to StreamEncoder class.  isNil ifTrue: [min <= aNumber] ifFalse: [aNumber between: min and: max] Tools.NumberSetting accessing fromXML: aNode self verifyStoredDataTag: aNode. ^Number readFrom: aNode children first text readStream isValueValid: anObject ^(anObject isKindOf: Number) and: [self valueInRange: anObject] max ^max max: anObject max := anObject min ^min min: anObject min := anObject toXML: anObject self validate: anObject. ^Element tag: self xmlTag elements: (Array with: (XML.Text text: anObject printString)) Tools.NumberSetting parameters xmlTag ^'number' Tools.NumberSetting user interface editorModuleClassIn: aPage ^NumberSettingModule hasModularEditor ^true Tools.NumberSetting class instance creation max: maxValue "Create the type of a numeric setting that can take on values less than or equal to the argument." ^self new max: maxValue min: minValue "Create the type of a numeric setting that can take on values greater than or equal to the argument." ^self new min: minValue min: minValue max: maxValue "Create the type of a numeric setting that can take on values between these two numbers (inclusively)." ^self new min: minValue; max: maxValue Tools.StringSetting accessing fromXML: aNode self verifyStoredDataTag: aNode. ^aNode children isEmpty ifTrue: [String new] ifFalse: [aNode children first text] isValueValid: anObject ^anObject isString toXML: anObject self validate: anObject. ^Element tag: self xmlTag elements: (Array with: (XML.Text text: anObject)) Tools.StringSetting parameters xmlTag ^'string' Tools.StringSetting testing isPassword ^meaning = #password isStringSetting ^true Tools.StringSetting user interface acceptBlockForStringRepresentation ^[:string | string] displayBlockForStringRepresentation ^[:string | string] editorModuleClassIn: aPage meaning isNil ifTrue: [^StringSettingModule]. #password = meaning ifTrue: [^StringSettingModule]. #nameOfFile = meaning ifTrue: [^FilenameSettingModule]. #nameOfDirectory = meaning ifTrue: [^DirectorySettingModule]. self error: (#InvalidStringSetting << #dialogs >> 'invalid string setting meaning') Start Logging at 2005-04-20 19:06:05.0000 24, regardless of this setting. The more work your processes are likely to do, the lower you''re likely to want this setting' MaximumMemoryToUse = 'Maximum Memory (Bytes)' MaximumMemoryToUseHelp = 'The maximum amount of memory the image should use while running.' MaximumStressLevel = 'Maximum Stress Level' MaximumStressLevelHelp = 'The percentage of the Maximum Memory Size setting that determines the maximum stress level.' MediumStressLevel = 'Medium Stress Level' MediumStressLevelHelp = 'The percentage of the Maximum Memory Size setting that determines the medium stress level.' MemorySettingsWarning = 'WARNING: ' MemorySizesAtStartup = 'Memory Sizes at Startup' MemorySizesWarning = 'The changes below will ONLY take effect when the image is saved and restarted. So, for example, saving these settings and loading them into a runtime image will have no effect. You MUST save the image or rebuild a runtime image' MessageName = 'Message name:' MinimumMemoryToUse = 'Minimum Memory (Bytes)' MinimumMemoryToUseHelp = 'The minimum amount of memory the image should occupy' MinimumStressLevel = 'Minimum Stress Level' MinimumStressLevelHelp = 'The percentage of the Maximum Memory Size setting that determines the minimum stress level.' MultipleDirectoriesUseSemicolon = '(For multiple directories, enter a list of names separated by semi-colons.)' NewPath = 'New Path' NewRegistry = 'New Registry' NoneYet = 'None Yet' Normal = 'Normal' OK = 'OK' OptionalMessage = 'Optional message:' Parameter = 'Parameter' Parcel = 'Parcel' ParcelList = 'Parcel List' ParcelSource = 'Parcel Source' Path = 'Path' PathInURL = 'Path in URL:' PathResolverEditor = 'PathResolverEditor' Paths = 'Paths' PollForInactiveSessions = 'Poll for inactive sessions' Port = 'Port:' PurgeCachedResources = 'Purge Cached Resources' PurgeCachedResourcesHelp = 'At what level of memory stress should we empty our caches of resources to conserve space.' RedirectionAnswer = 'Redirection Answer' Registry = 'Registry' RegistrySource = 'Registry Source' Remove = 'Remove' RequestAnswer = 'Request/Answer' Reset = 'Reset' ResetLog = 'Reset Log' resolver = '#resolver' resolverLabel = 'resolverLabel' ResolverSessions = 'Resolver Sessions' ResolverType = 'Resolver type' Save = 'Save' SaveAs = 'Save As...' Seconds = 'Seconds' SelectAParcel = 'Select a Parcel:' ServerAlertHandling = 'Alert Handling' ServerAlertMessages = 'Alert Messages' ServerAlerts = 'Server Alerts' ServerConsole = 'Server Console' ServerEditor = 'Server Editor' ServerMemoryPolicy = 'Server Memory Policy' ServerProcessPriority = 'Server Process Priority' ServerProcessPriorityHelpText = 'What priority should the server process get? This is an expert setting. The primary factor is the priority of the worker process relative to the server process, under heavy load conditions' serverString = 'serverString' ServerType = 'Server Type:' ServiceNotFoundErrorMessage = 'Message for Service Not Found Errors' ServiceNotFoundErrorMessageHelp = 'What message do we send to the web browser when there a service is not found.' Session = 'Session' SessionExpiredMessage = 'Message for Expired Session' SessionExpiredMessageHelp = 'What message do we send to the web browser when a session has expired.' SessionResolver = 'Session Resolver' SessionResolverEditor = 'SessionResolverEditor' SessionTimeoutSeconds = 'Session Timeout (seconds)' SetEncodingFromRequest = 'Set Session Charset From Initial Request' SetEncodingFromRequestHelp = 'Should we attempt to deduce the character encoding for a new session from the accept-charset of the request that initiates it? If this is false, then the default character encoding will be used' SetLocaleFromRequest = 'Set Session Locale From Initial Request' SetLocaleFromRequestHelp = 'Should we attempt to deduce the locPURPOSE OF THIS STEP This step provides an overview of the general process of packaging runtime images for release. It includes general usage information and an overview of the overall process. There are no actions to perform in this step. USAGE In packaging a runtime image, you will proceed through a series of steps to convert your development image into its stand-alone runtime form. A description of the step will appear much as this one does, showing you the purpose of the step, usage information about how to use windows associated with the step, and other necessary information. At each step, you may make choices about what function is to be performed. The following buttons control these actions: o DO THIS STEP performs the function of the step, o TAKE DEFAULTS elects to take system provided default actions, o << PREVIOUS returns you to the previous step in the sequence, and o NEXT >> advances you to the next step in the sequence. Some steps are optional. The description of the step will clearly state this fact when it applies. In that case, you may progress directly to the next step without pressing either DO THIS STEP or TAKE DEFAULTS. In some cases, one or more buttons might not apply to a step, and buttons will be disabled when applicable. For example, the DO THIS STEP button is disabled for this step because there is no associated action. The following menu items are provided in this window for performing common functions: File menu Load parameters - read values for parameters (see below) from a file. Save parameters - write values for parameters (see below) to a file. Open launcher - open the system launcher. Save image - save the image in its current state. Quit image - use the normal quit dialog to allow you to exit the image. Package Runtime Image - prepare the runtime image in one step Exit - exit this application (but does not exit the image as a whole). The parameters file is used to store the specifications the programmer has made when using Runtime Packager. It contains of the following specifications: o Common Options o Kept and deleted classes, methods, and globals o Memory parameters Actions menu Menu items correspond with the actions taken at each step. You can use these items to perform the step directly without going forward or backward to reach the desired step. Help menu Contents - shows a list of help topics to select from Help for current step - shows help window for current step About Runtime Packager - shows current version About Patches - shows Runtime Packager patches About Advanced Boolean Concepts - how to contact the authors OVERVIEW OF STEPS The following steps are presented in sequence through this user interface. In general, these steps should be performed in this sequence. If information supplied in a previous step is changed, you may need to perform later steps over again. For the most common cases, you will be notified when a step must be done over. The sequence of steps follows: 1. Overview - information only; no action is performed for this step. 2. Clean up image - check the image for extraneous global objects. 3. Set common options - specify parameters used in later steps. 4. Specify runtime classes and methods to keep - customize the items to be kept for runtime. 5. Scan for unreferenced items - scan the image for unreferenced classes, methods, and globals. 6. Review kept classes, methods, and globals - review the results of the previous scan. 7. Save runtime loadable parcels - save any parcels needed for the runtime image. 8. Test application - interactively detect missed references to application classes and methods. 9. Set runtime memory parameters - set sizes for different spaces on startup and set memory policy values. 10. Strip and save image - create a stripped image for stand-alone application execution. You can save the image at any time to preserve the progress you have made, but saving while you are testing your application is not recommended. You might find it useful to save the current parameters (see menus above) after steps 3, 4, 8, and 9. This will permit you to return quickly to the current status even if you start from a clean image. MEANING OF OK AND CANCEL BUTTONS Several windows have OK and CANCEL buttons. They operate the same in each case. The OK button saves all current changes and closes the window. If errors or inconsistencies are detected, you will be informed and have an opportunity to correct them before the window is closed. The CANCEL button closes the window without saving changes. Changes are not applied unless the OK button was pressed. REOPENING ALREADY OPEN WINDOWS If you return to a previous step for which a window is already open, doing the action of that step will cause the previous window to be raised to the foreground. If you had made changes to that window but not yet pressed OK, you will see the window with the changes in place. If the previous window was minimized, it will automatically be expanded. You are not required to close the windows that go with each step as you proceed through the sequence of steps, but leaving all windows open can be confusing and a source of errors in the final image. Only one instance of this main window is permitted at a time. If you attempt to open a new instance, the currently active instance will be brought to the foreground. PRINT HELP PAGES Help pages such as this one can be printed by pressing the PRINT button. Be sure to correctly specify the image settings for printing documents. If you find that PostScript is being printed rather than text, use the Setting option in the VisualWorks Launcher window to change the Printing settings for Document Printing from PostScript Printing to Document Printing.PURPOSE OF THIS STEP Parcels identified as loadable in the runtime image are saved to files in this step. The identification of which parcels are loadable and the file names under which they will be saved occurred in the Common Options step earlier. Changing which parcels are loadable would affect the outcome of the previous scan step. Parcels are saved in their entirety except for those where the "Strip unreferenced items and save" option was selected. For these parcels, only classes and methods found to be referenced in the previous scan step will be saved. The contents of the parcel in the current image are not changed. Parcels are saved without source. Care should be taken that a version of the parcel file (*.pcl) is not overwritten when a corresponding parcel sources file (*.pst) is present. If the overwrite occurs, the source file will be usable and the source for the parcel may be lost. USAGE Press DO THIS STEP. The names of parcels saved are written to the Transcript as the saves proceed. RESTRICTIONS Parcels being saved must be defined in the image and all classes and methods must be in the image as they are to be saved. Users of ENVY/Developer should be careful not to unload applications containing classes and methods included in parcels before the parcels are saved otherwise obsolete classes will remain in the parcel definition and invalid parcels will be created. PURPOSE OF THIS STEP In this step you see the detailed results of the previous step. The first time through, this might not be especially meaningful, but you probably want to make sure that your application was not somehow bypassed in the scan and thus declared deleted. If you are pursuing an aggressive strategy of removing all extraneous classes, you would want to check here to see that you have eliminated exactly what you intended. In this step you can also create a report file showing classes, methods, and globals deleted as well as those kept. Before creating the final stripped version of an application, you may want to create this report and save it for later support of the deployed application. USAGE The usage here is roughly the same as the usage for specifying the kept and deleted items earlier. You are presented with selection boxes that can be used to view categories, classes, and methods. In this step, there is no contingent category. Everything being deleted is shown as such. Classes loaded through Parcels at runtime are not included in the runtime image and are shown as deleted or kept depending on the selection for the Show Parcels As option. You can select classes to see which of their methods are being deleted. If you select a deleted class, its methods will be shown as deleted. You can use pop-up menus to browse or scan references to the methods shown. The extended references browser is especially useful in determining why a class or method is kept or deleted based on the results of the scan for referenced items. There are no decisions to make in this step. If you find that something needs to be changed, you must return to an earlier step to make the change. In all likelihood you will want to rerun the scan for referenced items after your change. RuntimeManagerStripper is shown as kept when, in fact, it will be eliminated in the final runtime image. This class is a special case due to the need to discard the stripper methods after the final image has been created, but not before. Similarly, copyright methods are preserved in the final image but may appear as deleted here. These are also treated as special cases to preserve copyright markings. Press the CLOSE button to close this window. If you want to write a report file, press the REPORT button. You will be prompted for the name of the file to which the report should be written. After the report is written, a file browser is opened on the report file created. PURPOSE OF THIS STEP In this step the image is scanned to detect classes, methods, and globals that should be kept in the runtime image. Conceptually, the scan is a straightforward process. Kept methods within kept classes are scanned for selectors representing message sends and references to classes and globals. As new methods, classes, and globals are detected, they are added to the list of kept items and, in turn, scanned for references to other items. Eventually the processes reaches the point at which no new references can be detected and the scan ends. The initial kept classes and methods are those indicated as such in the previous step plus the application startup class and method as well as the error notifier class. Deleted classes are bypassed in the scan for referenced items, as are deleted globals and methods. The following special class methods are used to allow classes to specify additional items to be kept: o dynamicallyReferencedClasses Answer a collection of classes or qualified class names that are to be kept in the runtime image. o dynamicallyReferencedSelectors Answer a collection of symbols naming methods that are to be kept in the runtime image. o dynamicallyReferencedGlobals Answer a collection of symbols or vairable bindings naming globals that are to be kept in the runtime image. o itemsReferencedBySelector: aSymbol Answer the collection of literals including symbols, variable bindings, and classes referenced in the instance method named by aSymbol. In the scan, these literals replace entirely those found in the method itself. o itemsReferencedByClassSelector: aSymbol Answer the collection of literals including symbols, variable bindings, and classes referenced in the class method named by aSymbol. In the scan, these literals replace entirely those found in the method itself. When these selectors are implemented as class methods, the answers provided by them are used during the scan to include classes, methods, and globals to be considered referenced and thus kept in the runtime image. If an improper answer is returned by these selectors, a dialog is used to alert you to the error. USAGE All you need to do is press the DO THIS STEP button. A window will open to show you progress reports. Scanning a large image might take some time. This could be a good opportunity for you to contemplate the meaning of life, the universe, and all that. The scan should be done well before you are. For more moderately sized images, only a few minutes should be needed, depending on the speed of your machine. For large images, a fast machine with adequate memory will make this and other steps proceed much more smoothly. When the scan is complete, you will be presented with a dialog box summarizing the results of the scan. You can see more detailed information by proceeding to the next step. If you choose to bypass this step, only classes, methods, and globals that you have explicitly indicated as deleted will be removed from the runtime image.05@j`6P(Խ\91<55'=Ңq(6Z(=x'=ܢd5x'=\͢bPIu<+hudr ʅWTswv,sЂa@ܘTĊ} cs,y<dτX4Q~hUy(~uPyP=ypz  $ɂhx@v(OwրthDczx̯rrHd~{Hh ~txPtwhɏXw8\@}p|Ȏ yTp0Lu(=l |,{LlPH,΍tAuƆ8|TiT^Pr؇Tpzt~`uht(q@{H4,| Lr!z5zȴhh|'{pd4ȋϊpostAssignerSourcePositioncurrentKey:removeElementListFor:equalFromPoint:equalFromFixedPoint:expandedTextoriginalString:emphasis:adviseManagerstoreObjectsstoreScopeZonesstorePackageClassesstoreMethodDictionarysstoreWellKnownObjectsstorePackageClassesInitializationObjectsstoreKnownLiteralswriteRemovalScriptOn:currentParcelemptyParcelmanagertraceWalkFrom:codeWriterTraceOnto:dڂstoreGeneralStructureOn:storeInitializationObjectsOn:storeBookkeepingInfoOn:readNewSubclassBookkeepingInfoOn:readInitializationObjectsOn:libraryFilesArraylibraryDirectoriesArrayincludeDirectoriesArrayBinaryStorageBytesLockDtstorePackageprocessClasses:extensions:excluding:nilTracedregistrynote:$&&l|*CodeWriteAnalysisTracerstoreClasses:extensions:excluding:analysisTracer:initializeRegistrystoreSelector:andMethod:underCategory:storeClassClassImportFor:storeSelector:andMethod:allocatestoreClasses:storeGeneralStructureFor:storeScopeLookup:storeClasses:extensions:storeGeneralAllocationFor:storeClassImportFor:storeObjectReference:storeMethodDictionaryFor:storeClassDefinitionFor:ObjectTracer'l'`'p܏CodeWriterobjectAt:from:objectAt:from:isBigEndian:doTraceOfCScalarType:readWellKnownObjectsreadScopeZonesreadScopeZoneFor:at:size:readPackageClassesInitializationObjectsreadPackageClassesreadObjectsreadKnownLiteralsgstoreIndexedObjectCollection:readObjectUsing:readIndexedObjectUsing:swap:private readingliteral readingutility readingbindingFor:in:readPackagecreateStreamFromFileNamed:readDependentClassesreadHeaderdoTraceOfCharacter:doTraceOfUndefinedObject:readFromFileNamed:readTwoByteSymbolreadByteStringreadByteArrayallocateStoragereadIndexedObjectCollectionreadLargeNegativeIntegerallocate:ofClass:readClassImportreadClassDefinitionreadTwoByteStringreadBytereadLargePositiveIntegerreadFloatreadIndexedObjectreadClassClassImportpackageEnvironmentreadExtensionMethodreadDoublereadMethodDictionaryFor:readFixedPointt$H<ݏprivate layoutsizeRegistryTo:classificationselementListFor:mclassListfillInObject:doTraceOfObject:doTraceOfFalse:readLongreadByteSymbolstoreIndexOf:doTraceOfCompiledCode:doTraceOfCompiledMethod:CodeReadersetCurrentClass:readByteSymbolCollectionreadByteStringCollectionsetSharedPools:setClassPool:doTraceOfBlockClosure:classifyNew:under:doTraceOfClassDescription:getMethodDictionarysetSuperclass:doTraceOfSmallInteger:readLengthsetOrganization:noteSelector:noteaddNewSelectorUnsafe:withMethod:category:private registry& ''ufilein fileoutdoTraceOfTrue:w]<<A<fastAdd:ifIncluded:traceFrom:}}LpostReadGeneralStructureOn:traceStoreSelectorFrom:storeGeneralAllocationOn:readGeneralStructureOn:hasUniqueInstancesallocateGeneralOn:CodeReaderStream8&8DpidoTraceOfVariableBinding:at:putWeakly:T%%ۋObjectRegistryinsertInRegistry:scopeZonessizeOfAllScopeZoneslayoutPackageClassesstoreDependentClasseslayoutArbObjectlayoutDependentClasseslayoutWellKnowObjectsplace:at:placeElementsFor:numberOfWellKnownObjectsstoreExtensionMethodslayoutScopeZonescreateNewMapFor:MessageFileParseroriginalString:binary storageUTF8StreamEncoderexpandMacrosWithArguments:languageIDexpandMacrosWith:with:with:with:expandMacrosexpandMacrosWithEmphasis:arguments:emphases:expandMacrosWith:with:with:useMessageCatalog:expandMacrosWith:with:expandMacrosWith:<<>>UTF_8UserMessageByteStreamEncoderUCS_2MacRomantestISO8859_1ASCII xPpprivate storageliteral storageutility storage|Dt8{xn,,xrPʑ'x'A8,z   qconvertToKey:resetCachesnewNodedo:at:MessageCatalogsplit:key:value:extra:at:path:recordEncoding:collate:with:updateDirectoriesupdateFilesForDirectory:catalogID:catalogIDlookUp:baseIndexnodesAt:܏t~|4+-pw8Ҁp4GÉx~|addCatalogID:insertInto:key:value:extra:at:path:example2:".W((|z sØØ}Instance creationdefaultString:defaultStringdirectoriesModeln|,p,zDtTnodeAt:keyAt:nodeskeyAt:put:nodeAt:put:setIndex:parseSourceOntoFile:edited:CatalogsDirectoriesfiles:DirectoriesModelzqparseKeywords:parseMessage:parseNext:setEncoding:setSize:relabelAsdefaultContainerClassarray16KindcontentsOf:at:put:contentsOf:at:array1616Kindarray32KindupdateKindsCachealign:on:name0y!8tʎPXtpstoreUnsignedShort:storeSmallInteger:storeShort:storeObjectPointer:slotsPerMemberprimContentsAt:pointerKind:datumKind:containerClass:type:primContentsAt:pointerKind:datumKind:put:processSelector:method:processClasses:excluding:processExtensionMethods:processOrganizationAndMethodsFor:excluding:newListprocessClass:excluding:memberNameAt:put:memberOffsetAt:put:memberTypeAt:put:memberKindAt:put:memberDatumClassAt:put:memberTypeAt:memberOffsetAt:contentsOf:at:put:pointerKind:refContentsOf:at:contentsOf:at:pointerKind:primIndexOf:slotsPerMember:memberNameAt:memberKindAt:memberDatumClassAt:addMemberNamed:member:at:addLastName:member:ȺwborderTopThickness@th|t 8qx@vHrxD=y|,ccopyToHeap16Encoding:copyToHeap:encoding:copyToHeapEncoding:gcCopyToHeap16Encoding:gcCopyToHeapEncoding:callbackProcessinitializeCallbackProcessFor:installCallbackProcessfinalizeCallbackProcessSignaldropEffectNormalmessageCatalogIDmetaInfoAt:DefaultEncodingssourceEncodingMenuisEditorcustomizeMenuBar:controllerFor:currentEncodingMenumenuBarPerformerencodingFor:textEncodingMenuavailableEncodingsFor:exitEditortoggleAutoLoadmenuBarPick:currentFileEncodingchangedEncodingselectionExistsIn:updateEncodingshowInternationalizedFeaturesoldFileEditorSpecfileEditorInterfacemessagesSpecmessagesModelmessagesHelpuiOptionsHelpuseEnhancedFileEditorfileEditorSpecfileTypeFor:filenameMappingsuiOptionsAcceptuiOptionsSpecshowInternationalizationshowInternationalizationEditingdummyuiOptionsResetencodingMenusavedTextoptionsMenuignoremessagesListextendsClass:addClassAndAllSelectors:definedAndExtendedClassesaddClasses:definedClassesExcludedSelectorsdefinedClassExcludedSelectors:markAsCleanmarkAsDirtymetaInfoFor:metaInfoAt:put:messagesListEditingvalidationBlock:changedBlock:SimpleListEditormessagesAcceptmessagesResetprocessingpwL5lsؘؘ4puiqueriesload/unloadlistcurrentNamevalidationBlockchangedBlockaddNamechangeNamecurrentNamedeleteNameactivateButtonsupdateCurrentNametabMeansNextFieldsaveThenQuitstoreByte:storeByteArray:storeCharacter:storeDouble:storeFloat:storeLargeNegativeInteger:storagestoreLength:storeLong:storeTaggedEncoding:storeLargePositiveInteger:traceFrom:doTraceOfAssociation:showDropFeedbackIn:allowScrolling:replaceParcel:createParcelNamed:broadcastParcelsnormalizedNameFor:parcelsloadParcelFrom:parcelNamed:parcelNamesdestroyParcelNamed:Parcelh˓ŘxŘ@`extensionMethodsclasseslistMenuremoveScriptdefinesSelector:forClass:removeSelector:forClass:extendscontainsSelectors:forClass:addSelector:forClass:definesOrExtendsClass:addSelectors:forClass:uiForRenameuiForEmptydefinedProtocolsFor:addClassesAndAllSelectors:definedSelectorsFor:andProtocol:removeClasses:removeSelectors:forClass:summarydefinedOrExtendedClassNamesFor:extendedClassesdefinedClassesupdateWindowLabelversion:parcelVersionparcelCommentdefinesClass:֘֘figure:shape:inactiveMask:n ŒŒvD=ychangeListMenuresetTextfieldMenuHolderresetFieldschangedSelectedFieldfieldListHolder}+YP\htextAcceptAllowed:ؘؘ٘٘~debuggerClasslistBrowserClasstextAccepted:contextChangedcheckEnablementchangedPC1T`lStrikeOutWrapperP4yinterestedInDropselectionMemoryadornmentgroupSizesitemsq{;`~configureScrollerButton:forModel:܏@ Ё\變\Јsr(&y҆ęrP},q\܅̲df~܏l變ݏD4s@ 89qsrؒP}nameKey:useSingleSelectionIndex:useExtendedSelectionIndex:useSweepSelectionIndex:drag and dropfindObjectInterestedInDropAt:forSource:ComboBoxListSpeclastSelectionIndex:dropDownListHeightFor:drop down creationcontinuousAcceptmultiCharSearch:multiCharSearchflushSearchStringsearchStringInEditornewListViewIn:selectionList:dropDownWindowBoundsFor:installListKbHookFor:ComboBoxListControllereditorControllerbuttonControllerpostOpenDropDownmakeFirstVisible:editorController:editorControllerbuttonController:buttonControllerpڅ~lH}ǡv\ap!*lkxk}-@evreadSelector:printSelector:ComboBoxListViewcomboBoxListViewClasscomboBoxListView:into:initForSource:readSelector:printSelector:continuousAcceptmultiCharSearchlastSelectionIndextextStylemaxLinesforceScrollBarlisteditorViewns̭tHz;ut{%lq~searchStringFrom:to:printSelectorreadSelectorcomboListforSource:readSelector:printSelector:matchedIndex:multiCharSearchcloseChannelcontinuousAccept6y*dLpLԨwSptDvR*%%ذhidden:hiddenfullMenuBarresourceselectorresourceOwnerclassNamenotDefinedname keysrawLabelvalueAt:ifAbsent:submenuHolderhighlightuseModifierKeysuseModifierKeys:retractAllSelectionsEmulatedSequenceControllerݢ?LLXL{toggleAt:compliantMultiSelectControllerClasssimpleMultiSelectControllerClass\!!4ܠX^pfilteredLabelrealLabelImageX8d80|initializeWithRawLabel:xtlbackgroundColordllccdataFormadHoccanvasComposerrawLabel:dataModelerdataBaseApadvancedResourceRetrievernameKeyprivileged-hiddendropTargetForSource:dropTarget:mouse accessingkeystate accessingdropTargetsourceDatadropSourceWidgetDragDropCallbacksD"8"LSyBq$rZ{>((Ⱥ88L|withDropSource:withData:withDropSource:DragDropContextcontextWindowdragdropSource:ctrlDown:shiftDown:mousePoint:dragEnter:dragLeave:dragOver:drop:sendDropAt:sendDragOverAt:sendDragLeaveAt:sendDragEnterAt:leaveCurrentWindowAt:fillInContextFor:doDragDropsourceData:startDragInNewWindow:at:setDropSource:sourceData:mouseMovedTo:in:dragDropContextcurrentObjectInterestedInDropcurrentWindowdropTargetsourceDatadropSourcedropEffectNonedropEffectCopydropEffectMovedropcontinueapiqueryContinueDrag:giveFeedback:DropSource,?!!X܃>," "%tvFyDƉDragDropManagerinitStandardDragCopyinitStandardDraginitDropNotOkStandardDragDropNotOKStandardDragCopystandardDragdropNotOkstandardDragCopybasicSizehasProperty:propertyAt:removeProperty:propertyAt:answerIfAbsent:properties%propertyAt:put:PropertyListDictionaryX&&qTx/$0 wantsToDragdragDropCallbacksdragDropCallbacks:selectOnDownWithDrag:queryContinueDragSelectorgiveFeedbackSelectorreceiverqueryContinueDragSelector:giveFeedbackSelector:p0""Txpfz\'tConfigurableDropSourcedrag dropc}|Ku~ycontextWidgetcontextApplicationcontextWindow:contextWidget:contextApplication:DragDropData>l0`0\wdefaultEffectAnswerdropSelectordragOverSelectordragLeaveSelectordragEnterSelectorreceiverdropSelector:dragOverSelector:dragLeaveSelector:dragEnterSelector:defaultEffectAnswer:ConfigurableDropTarget(($0ܣz\u70 getDefaultEffectAnswerDropTarget%?t(h(CdragInitiateSelectorwantsToDragSelectorreceiverdragInitiateSelector:wantsToDragFrom:dragInitiateIn:wantsToDragSelector:widgetWrapperWrapping:decorator:component:state:spec:colors:isOpaque:inBuilder:drop target accessingdropTargetOrNilInBuilder:dropSourceCallbacksOrNilInBuilder:dropSelectordragStartSelector:dragStartSelectordragOverSelectordragOkSelector:dragOkSelectordragExitSelector:dragExitSelectordragEnterSelectorsetMyProperties:removePropertyAt:getMyPropertiesproperties:7raiseErrorMessage:with:selectOnDownIfDragEnabled:selectOnDownIfDragEnableddrag drop accessing0{Ã(u88!Џv89Hh\?qPD@~88dȏ ,sparseGenericEntry:stack:modify:write:overlinepsJisRomanskipSeparators:Hxlusn{xЄe|wx}X,>L,>StringCollationPolicyinitializeXimtypesupdateStatusLineOn:forWindowExtent:statusLineHeightallowsStatusLinesetXICForWindow:to:createXICfor:unFocus:getXICFor:openXIM:private-XIMopenXIMgetPreferredXICStatusAreagetPreferredXICStatusArea:with:with:with:with:styleForXIMStyle:retrieveConversionprivate-stylesstatusPriorityFor:initializeX11InputManagersetXICStatusAreasetXICStatusArea:with:with:with:with:with:with:asStringEncoding:retrieveConversion:mapWindowXICprimSetLocale:private-localesdestroyXICprivate-proceduresdestroyXIC:mapWindowXIC:with:private-XICfocusOn:in:STXFontSetSTXEventSTXDisplaySTColorXIMPreeditNothingSTXICSTXIMXIMStatusNothingXIMPreeditPositionXIMPreeditCallbacksSTXWindowSTXIMStyleXIMStatusNoneXIMStatusAreaXIMPreeditAreaXIMPreeditNoneXIMStatusCallbacksspecifiesVerticalfontPolicyBlock:~q܏Իs$\tDt z)x~preeditPriorityFor:devicePaintFor:on:default:unmapXIC:setXICxy:with:with:setXIC:x:y:createICcreateXIC:with:with:with:with:with:with:with:with:with:with:with:XL̳}ۄ8:Lؙ@ؙTƈC~ 3b{td\sLzY~+ccustomizationPreferredStylenotificationneedsInputMethodlocalesPlatformManagerPreferOneConverterPerWindowpreferOneConverterPerWindow:setDefaultrootStylepreferredStyle:offTheSpotStyleshouldUpdateSpotonTheSpotStyleplatformHookupoverTheSpotStyleNullInputManagerDictionaryJ}ؙؙ,SX11InputManagerDictionaryInputManagerDictionaryNullInputManagersetStyleprocessHostEvent:releaseView:withEncoding:createFontSetfreeFontSetstreamgetXIMStylesupdateXICunmapXICprivate-viewMapInputManagerdefaultStatusLineHeightupdateView:type:focusView:setSpot:on:gc:releaseWindow:reinitializeresizedWindow:to:removeXIC:setLocale:updateXIC:with:with:with:with:with:with:with:with:retrieveConvertedText:X11InputManagerpreferredFontFamilycompoundTextEncodeOrderselectXIMStyles:getXIMStyles:initializeStylesetXICStatusArea:with:with:with:with:freeFontSet:with:freeFontSet:primSetLocalecloseXIMcloseXIM:unknownEvent:updateEvent:minimumWidth:height:maximumWidth:height:createFontSet:with:fontsprivate-XFontSetcreateFontSet:initializeWindowMapsetXICxyneedsInputMethod:preferredPixelSizeignoreSerifEncodingscurrencyPolicytimePolicycutPasteEncoding:H}rk ơhasControlaccessing-internationalizationstatusLineHeight:spotRectangleEncodeOrderremoveNode:sequence:at:encodeOrder:removeEncoding:encodeOrderremoveSequence:addSequence:encoding:LocaleEncodedStreamXؙי<({allowsStatusLine:setStatusLineHeight:Նy@tyՆlastWindowlastViewdefaultStatusLineHeightximStyleWithoutStatusLineximStyleWithStatusLinestylewindowMapdefaultFontSetximh{StateTableЀignoreSerifEncodings:defaultStreamEncoder:origin:width:height:left:top:width:height:preferredPixelSize:preferredEncodings:compressinggrowinguncompresscopyWithSize:䫎읅hanzi0hanzi1korean0korean1cutPasteEncodingnumberPolicy:collationPolicy:defaultPaperSizepreferredFontFamily:iso2iso3iso4iso5displayTwoByteString:from:to:at:raiseWith:errorPattern:collate:to:privateCopy$cv܏rrz>8=vargs:emphases:showBooleanFor:nextCharDo:else:nextCharprintFor:nextPutStringFor:processInputFieldshowMultipleFor:setDefaultEmphasis:outputinputargumentTypeMappingargsdefaultEmphasisargEmphases܏DtparseAFM:hexToken:parseAFMentry:stack:modify:nameToken:decimalToken:cleanUpEncodingszapf dingbatst`HAqsL>sĈNq}w}vh{Gn(ptvsbO{`\Г׋\ `tdqu$t04 xsaveSpaceunderlineThickness:setDefaultWidth:defaultWidthfullName:ascent:extractWidthFrom:setTableSizeToAtLeast:descent:underlinePosition:Dpy}AdobeStandardEncodingfontNamed:fromClass:l3tH$cyprimDisplayMappedTwoByteString:from:to:at:withMap:roundedDisplayTwoByteString:from:to:at:withMap:roundedDisplayTwoByteString:from:to:at:primDisplayTwoByteString:from:to:at:input managementprimListFontNamesoldAllocateFontNamed:chop:to:bytesFor:updateSpot:getSeparatorlongPolicylongSlashshortSlashshortBarretroflexHookpalatalizedHookhorncommaAboveturnedCommaAboveinvertedBrevecandrabindudoubleGravedoubleVerticalLineAboveverticalLineAbovehacekdoubleAcutediacriticalNamed:illegalCodeinitUpperToLowerinitLowerToUpperparseDirection1:stack:modify:parseDirection0:stack:modify:parseCharMetric:stack:modify:selectorvalidateStaticVariableName:confirm:warn:validateClassName:confirm:warn:variable namesstart-upiso1CompoundTextenuSystemReleaseDateasSortedStringsconvertSimpleStringForPlatform:localeFontslocaleLocaleMapLocaleDictionarylocale_earlyinitialHookupset:getLocale:availableLocalesinstallCLocalepreferredLocaleNameinternalSet:addLocale:platform:getLocaleNamelocaleMapmapLocaleName:DefaultDirectoryStringdefaultPaperSizepreferredPixelSizepreferredFontFamilypreferredEncodingsneedsInputMethodignoreSerifEncodingsdefaultStreamEncodercutPasteEncodingcompoundTextEncodeOrdertimePolicynumberPolicycurrencyPolicycollationPolicynamedefaultPaperSize:preferredEncodingscompoundTextEncodeOrder:defaultStreamEncodercollationPolicytimePolicy:currencyPolicy:numberPolicydefaultCurrencyPolicydefaultTimePolicydefaultNumberPolicydefaultCollationPolicycCollate:to:newCurrencyFor:usdependents,>CurrentLocale