#!/bin/sh # MetaCard 2.4 stack # The following is not ASCII text, # so now would be a good time to q out of more exec mc $0 "$@" Mi revStackDock2 l< cConsNoCompilesForArchive6cConsNoSetPropsForSave4cConsLastHandlerName cLinkStacks@Connect /Users/sarah/Documents/Rev eFreezer/Utils/efConnectTester.rev e.freezers /Users/sarah/Documents/e-freezer data/e.freezers.rev eF Emails /Users/sarah/Documents/Mac e-freezer v2/Make Emails.rev eF Maint /Users/sarah/Documents/e-freezer data/eFreezerMaintenance.rev efSetup /Users/sarah/Documents/Rev eFreezer/Apps/efSetup.rev Errors /Users/sarah/Documents/Rev eFreezer/Utils/ErrorCodes.rev FTP /Users/sarah/Documents/Rev eFreezer/Utils/efFTPmaster.rev Maxi /Users/sarah/Documents/Rev eFreezer/ Maxi/efSplash.rev RevZilla /Users/sarah/Documents/Rev Stacks/RevZilla204.revcConsNoCompilesForSave2 cTargetBtneF combocConsNoSetPropsForArchive4cConsLastHandlerScroll0  ULucida Grande ULucida Grande UusesystemfontcConsNoSetPropsForArchive2CompilesForSave1CompilesForArchive4SetPropsForSave2 cConsLastprop varCheckingfalseHandlerScroll0 HandlerNameuRIPcreatorSarah Reichelt copyright#Sarah Reichelt, TrozWare, 2003-2005homehttp://www.troz.net/Rev/updateInfoUrl.http://www.troz.net/Rev/plugins/RipUpdates.txt downloadUrl-http://www.troz.net/Rev/plugins/StackDock.rev description3Plugin for saving commonly used stacks in a "dock".date2005,9,4version1.1 cREVLoadInfoloadstartup cREVGeneral scriptChecksumُ B~ debugObjects handlerList breakPointsscriptSelection char 1 to 0 bookmarks prevHandler deleteLinks tempScriptscript

StackDockCard P.--> all handlers local rightClicker, preOpenDone = false on preOpenStack put true into preOpenDone modeless this stack loadLinks pass preOpenStack end preOpenStack on saveLinks put getPrefsFileName() into tPrefsFile put the cLinkStacks of this stack into tLinks put tLinks into URL ("file:" & tPrefsFile) save this stack end saveLinks on loadLinks put getPrefsFileName() into tPrefsFile put URL ("file:" & tPrefsFile) into tLinks set the cLinkStacks of this stack to tLinks showLinks end loadLinks function getPrefsFileName put the effective fileName of this stack into tPrefsFolder set the itemDel to "/" put "StackDock prefs" into last item of tPrefsFolder if there is not a folder tPrefsFolder then create folder tPrefsFolder put tPrefsFolder & "/StackDockPrefs.txt" into tPrefsFile -- if prefs file doesn't exist, look for an old one & copy that across if there is not a file tPath then if the platform = "Win32" then put specialFolderPath(26) into tOldPrefsFolder else put specialFolderPath("Preferences") into tOldPrefsFolder end if if there is a folder tOldPrefsFolder then put tPrefsFolder & "StackDock.prefs" into tOldPath if there is a file tOldPath then put URL ("file:" & tOldPath) into tOldPrefs put tOldPrefs into URL ("file:" & tPrefsFile) delete file tOldPath end if end if end if return tPrefsFile end getPrefsFileName on moveStack checkLocation the topLeft of this stack save this stack pass moveStack end moveStack on deleteLinks repeat with x = the number of btns in this stack down to 3 delete btn x end repeat saveLinks end deleteLinks on showLinks lock screen lock messages deleteLinks put the cLinkStacks of this stack into tLinks put the topLeft of this stack into tL filter tLinks without empty sort lines of tLinks put cr & "About..." & tab & "about" after tLinks set the itemDel to tab put 22 into tTop put 0 into tLineNum repeat for each line L in tLinks add 1 to tLineNum put item 1 of L into tName put item 2 of L into tFile if there is not a file tFile and tFile <> "about" then put empty into line tLineNum of tLinks next repeat end if create invisible btn tName set the width of btn tName to 60 set the height of btn tName to 22 set the style of btn tName to "rectangle" set the topLeft of btn tName to "0," & tTop -- topLeft is actually leftTop set the cFileLink of btn tName to tFile add 22 to tTop show btn tName set the height of this stack to tTop end repeat -- remove any dead links delete last line of tLinks -- About... filter tLinks with "?*" set the cLinkStacks of this stack to tLinks -- check that the stack is fully visible checkLocation tL save this stack end showLinks on mouseDown pBtn -- check that it is in the correct mode if preOpenDone <> true then preOpenStack if pBtn = 3 and the target contains "button" then put true into rightClicker if "Add,About..." contains the short name of the target is false then set the cTargetBtn of this stack to the short name of the target popup btn "Popup" end if else put false into rightClicker end if pass mouseDown end mouseDown on mouseUp if rightClicker <> true then if the target contains "button" then switch the short name of the target case "Add" addLink break case "About..." if the optionKey is down then preOpenStack else answer information fld "Info" with "Check for Updates" or "OK" if it is "Check for Updates" then send checkForUpdates to img "altPlug.png" end if break default put the cFileLink of the target into tFile if there is a file tFile then open tFile end switch end if end if put false into rightClicker pass mouseUp end mouseUp on addLink answer information "Choose a file or add an open stack?" with "Cancel" or "Choose file" or "Open stack" if it is "Cancel" then exit to top if it is "Choose file" then answer file "Choose a file to add to the stack dock:" put it into tFile if tFile is empty then exit addLink set the itemDel to "/" put the last item of tFile into tName if char -4 to -1 of tname = ".rev" then delete char -4 to -1 of tName ask "Enter a name for this link:" with tName put it into tName if tName is empty then exit addLink put the cLinkStacks of this stack into tLinks put cr & tName & tab & tFile after tLinks filter tLinks with "?*" set the cLinkStacks of this stack to tLinks showLinks saveLinks else go to stack "StackDockChoose" as modal saveLinks end if end addLink on checkLocation pTL put item 1 of pTL into tLeft put item 2 of pTL into tTop put the width of this stack into tW put the height of this stack into tH -- make sure the stack isn't outside the screen area put the windowBoundingRect into winRect if tLeft < 0 then put 0 into tLeft if tTop < item 2 of winRect then put item 2 of winRect into tTop put tLeft + tW into tRight put tTop + tH into tBottom if tRight > item 3 of winRect then put item 3 of winRect - tW into tLeft if tBottom > item 4 of winRect then put item 4 of winRect - tH into tTop -- if near an edge, snap to that edge if tLeft < 10 then put 0 into tLeft if tLeft + tW > item 3 of the screenRect - 10 then put item 3 of the screenRect - tW into tLeft -- if no variations or conflicts, just use the previous topLeft set the topLeft of this stack to tLeft & comma & tTop end checkLocation on altShowMe end altShowMe <cConsLastHandlerNamemouseUpcConsLastHandlerScroll1830 cConsLastprop varCheckingfalseHandlerScroll2053 ScriptChunkchar 1475 to 1474 of field 93 HandlerNamegetPrefsFileName functioneditorscript cREVGeneralscriptChecksumcYwɧ~T^{ bookmarks handlerListTpreOpenStack moveStack deleteLinks showLinks mouseDown mouseUp addLink checkLocation breakPointsscriptSelectionchar 3204 to 3203 prevHandleraddLink tempScriptscript.

local rightClicker, preOpenDone = false

on preOpenStack

put true into preOpenDone

modeless this stack

showLinks

end preOpenStack

on moveStack

checkLocation the topLeft of this stack

save this stack

end moveStack

on deleteLinks

repeat with x = the number of btns in this stack down to 3

delete btn x

end repeat

end deleteLinks

on showLinks

lock screen

lock messages

deleteLinks

put the cLinkStacks of this stack into tLinks

put the topLeft of this stack into tL

filter tLinks with "?*"

sort lines of tLinks

put cr & "About..." & tab & "about" after tLinks

set the itemDel to tab

put 22 into tTop

put 0 into tLineNum

repeat for each line L in tLinks

add 1 to tLineNum

put item 1 of L into tName

put item 2 of L into tFile

if there is not a file tFile and tFile <> "about" then

put empty into line tLineNum of tLinks

next repeat

end if

create invisible btn tName

set the width of btn tName to 60

set the height of btn tName to 22

set the style of btn tName to "rectangle"

set the topLeft of btn tName to "0," & tTop -- topLeft is actually leftTop

set the cFileLink of btn tName to tFile

add 22 to tTop

show btn tName

set the height of this stack to tTop

end repeat

-- remove any dead links

delete last line of tLinks -- About...

filter tLinks with "?*"

set the cLinkStacks of this stack to tLinks

-- check that the stack is fully visible

checkLocation tL

save this stack

end showLinks

on mouseDown pBtn

-- check that it is in the correct mode

if preOpenDone <> true then preOpenStack

if pBtn = 3 and the target contains "button" then

put true into rightClicker

if "Add,About..." contains the short name of the target is false then

set the cTargetBtn of this stack to the short name of the target

popup btn "Popup"

end if

end if

end mouseDown

on mouseUp

if rightClicker <> true then

if the target contains "button" then

switch the short name of the target

case "Add"

addLink

break

case "About..."

if the optionKey is down then

preOpenStack

else

answer information fld "Info"

end if

break

default

put the cFileLink of the target into tFile

if there is a file tFile then open tFile

end switch

end if

end if

put false into rightClicker

end mouseUp

on addLink

answer information "Choose a file or add an open stack?" with "Cancel" or "Choose file" or "Open stack"

if it is "Cancel" then exit to top

if it is "Choose file" then

answer file "Choose a file to add to the stack dock:"

put it into tFile

if tFile is empty then exit addLink

set the itemDel to "/"

put the last item of tFile into tName

ask "Enter a name for this link:" with tName

put it into tName

if tName is empty then exit addLink

put the cLinkStacks of this stack into tLinks

put cr & tName & tab & tFile after tLinks

filter tLinks with "?*"

set the cLinkStacks of this stack to tLinks

showLinks

else

go to stack "StackDockChoose"

end if

end addLink

on checkLocation pTL

put item 1 of pTL into tLeft

put item 2 of pTL into tTop

put the width of this stack into tW

put the height of this stack into tH

-- make sure the stack isn't outside the screen area

put the windowBoundingRect into winRect

if tLeft < 0 then put 0 into tLeft

if tTop < item 2 of winRect then put item 2 of winRect into tTop

put tLeft + tW into tRight

put tTop + tH into tBottom

if tRight > item 3 of winRect then put item 3 of winRect - tW into tLeft

if tBottom > item 4 of winRect then put item 4 of winRect - tH into tTop

-- if near an edge, snap to that edge

if tLeft < 10 then put 0 into tLeft

if tLeft + tW > item 3 of the screenRect - 10

then put item 3 of the screenRect - tW into tLeft

-- if no variations or conflicts, just use the previous topLeft

set the topLeft of this stack to tLeft & comma & tTop

end checkLocation

:M`MaMbMcMdMeMfMgMhMiAddeg<cConsLastHandlerNamecConsLastHandlerScroll0 Add link... cREVGeneralscriptChecksumُ B~ bookmarks revUniqueID 1057729098007 handlerListmouseUpscriptSelection char 1 to 0 prevHandlermouseUp tempScriptscript

Popup Uw--> all handlers on menuPick pPick switch pPick case "Edit" editLink break case "Delete" deleteLink break end switch end menuPick on editLink put the cTargetBtn of this stack into tBtn put the cFileLink of btn tBtn into tFile ask "Enter new name for this button:" with tBtn put it into tNewName if tNewName is empty then exit editLink answer information "Do you want to select a new file?" with "No" or "New file" if it = "No" then put tFile into tNewFile else answer file "Select a new file for this link:" with tNewFile put it into tNewFile if tNewFile is empty then exit editLink end if put the cLinkStacks of this stack into tLinks get lineOffset(tBtn & tab & tFile, tLinks) if it > 0 then put tNewName & tab & tNewFile into line it of tLinks else put cr & tNewName & tab & tNewFile after tLinks end if filter tLinks with "?*" set the cLinkStacks of this stack to tLinks showLinks end editLink on deleteLink put the cTargetBtn of this stack into tBtn put the cFileLink of btn tBtn into tFile put the cLinkStacks of this stack into tLinks get lineOffset(tBtn & tab & tFile, tLinks) if it > 0 then delete line it of tLinks filter tLinks with "?*" set the cLinkStacks of this stack to tLinks showLinks end deleteLink RcConsLastHandlerNameeditLinkcConsLastHandlerScroll378 Edit Delete cREVGeneral scriptChecksum)Ͷ7[tSG breakPoints handlerListmenuPick editLink deleteLinkscriptSelectionchar 998 to 997 bookmarks revUniqueID 1057733702163 prevHandler deleteLink tempScriptscript 9

on menuPick pPick

switch pPick

case "Edit"

editLink

break

case "Delete"

deleteLink

break

end switch

end menuPick

on editLink

put the cTargetBtn of this stack into tBtn

put the cFileLink of btn tBtn into tFile

ask "Enter new name for this button:" with tBtn

put it into tNewName

if tNewName is empty then exit editLink

answer file "Select a new file for this link:" with tNewFile

put it into tNewFile

if tNewFile is empty then exit editLink

put the cLinkStacks of this stack into tLinks

get lineOffset(tBtn & tab & tFile, tLinks)

if it > 0 then

put tNewName & tab & tNewFile into line it of tLinks

else

put cr & tNewName & tab & tNewFile after tLinks

end if

filter tLinks with "?*"

set the cLinkStacks of this stack to tLinks

showLinks

end editLink

on deleteLink

put the cTargetBtn of this stack into tBtn

put the cFileLink of btn tBtn into tFile

put the cLinkStacks of this stack into tLinks

get lineOffset(tBtn & tab & tFile, tLinks)

if it > 0 then delete line it of tLinks

filter tLinks with "?*"

set the cLinkStacks of this stack to tLinks

showLinks

end deleteLink

Info`@>$cConsLastHandlerNamecConsLastHandlerScroll0 cConsLastproptext varCheckingfalseeditorprops cREVGeneral revUniqueID 1058512206680 breakPoints  +A dock for holding frequently used stacks. Click 'Add link...' and select a new stack to add to the list, either from a list of open stacks, or by choosing it from a file dialog 6Right-click on a link button to edit it or delete it.  Sarah Reichelt, 2003-2006  : altPlug.pngP --> all handlers on checkForUpdates put the altVers of me into theCurrentVersion answer info "

StackDock v." & theCurrentVersion & "

" & cr & \ "

Sarah Reichelt, TrozWare, 2006

" & cr & \ cr & "

Would you like to check for an update?

" with "No" or "Check" if it is "No" then exit to top saveLinks set the cursor to watch put the altOpenVisible of me into theOpenVisible put the altOpenMode of me into theOpenMode put the altUpdateURL of me into theURL set the itemDel to "/" put item 3 of theURL into theHostName set the itemDel to comma put haveIPconnect() into isConnected if isConnected is false then exit to top end if put URL theURL into theUpdateInfo replace numToChar(13) with cr in theUpdateInfo if line 1 of theUpdateInfo is not "" then answer warning "The update information for this gadget is not AltPlugin compatible." exit to top end if put getTagData("version",theUpdateInfo) into theVersion put getTagData("UpdateURL",theUpdateInfo) into theGadgetURL if theVersion is theCurrentVersion then answer info "You are using the current version!" with "Download Again" or "Cancel" put it into theAnswer else answer info "There is a new version available. Would you like to update?" with "Update" or "Cancel" put it into theAnswer end if if theAnswer contains "Update" or theAnswer contains "Download" then set the cursor to watch put the effective filename of this stack into theFilePath put the short name of this stack into theStackName put "Ready to install new version." send "installReplacement theGadgetURL,theFilePath" to me in 500 millisecs end if end checkForUpdates function haveIPconnect put URL "http://www.troz.net/test.txt" into tCheckConnect put tCheckConnect = 1 into haveIPconnection if haveIPConnection is false then beep answer warning "Either the server is down or you have no connection to the internet." end if return haveIPconnection end haveIPconnect function getTagData theTagName,theTagData put "<" & theTagName & ">" into theOpenTag put "" into theCloseTag filter theTagData with theOpenTag & "*" put line 1 of theTagData into theTagData replace theOpenTag with "" in theTagData replace theCloseTag with "" in theTagData put URLdecode(theTagData) into theTagData return theTagData end getTagData on installReplacement theGadgetURL,theFilePath set the cursor to watch set the itemDel to "/" put the last item of theGadgetURL into theFileName put theFileName into the last item of theFilePath set the itemDel to comma put the filetype into theFiletype set the filetype to "revoRSTK" put "Downloading new version..." put URL theGadgetURL into tNewFile put the result into theResult if the result is not empty then put "Download error: " & theResult else if tNewFile is empty then put "Download error: no data received." else put "Saving new version..." put tNewFile into URL ("binfile:" & theFilePath) set the filetype to theFileType set the defaultStack to the short name of this stack revert put "Update of plugin" && theFileName && "now complete!" end if end installReplacement  altOpenVisibletruealtVers1.2cConsLastHandlerNamecheckForUpdatesaltPlugFileName StackDock.rev altOnClickMe altShowMe altUpdateURL-http://www.troz.net/Rev/plugins/StackDock.txtcConsLastHandlerScroll37XPNG  IHDR szz pHYs  gAMA cHRMn rIo!1OIDATxD91ǻ@iG! i\yizZ T,$ޞƫ_*  ܚm@zp6?#08x=e@lAH0 ?@eǮ 8TB]) ?1 C\`G@} ,(5 JC+DI F.NLh e+1###ÿ/çOΝ;k++vh!b1,d8'Od;a~:۷oݻ` v6ae &F4Â#@[ @VSSàp!E\l9b6 &OT l9L=8TΰtR%%%];w`;+<@L8Gq0:f1رЄ ?2HKK3\AFFa֭pG- %$$ tXv{5ß? @u@u/^`z*؁D:{l ,,T803@1Ab1rhIJ!;  o0q@ ~>~qqqp;;;C^^Cl9(< P,)`dEFo?3>Вda XC.d@:8? 00,\wT#kdmvvE | e> >; X-lPc8xCw-AXblt`{7m`]a9@a'>x r0@1Z-PXxAL&CyO~0\vߟ?2p@;;3}`x$ȒAQI \؀,YG* QkĂ8U& ÅnfGBҗ!`Q(Q,Fa`Xm+4Hk}NquI )1! Gau #; V13 YZ@P`̷ȾFhwbxN++7\؂Yj) O2Cf@ GP{(T...XgиuCUUY@,ll(M$XXZX2zҥK)lEEE;;;h'e:ĂڥBP'%'A;l@tP+ZVCjq1# r,(XD--> all handlers

on checkForUpdates

put the altVers of me into theCurrentVersion

answer info "<p><b><font size=+1>StackDock v." & theCurrentVersion & "</font></b></p>" & cr & \

"<p>© Sarah Reichelt, TrozWare, 2005</p>" & cr & \

cr & "<br><p>Would you like to check for an update?</p>" with "No" or "Check"

if it is "No" then exit to top

saveLinks

set the cursor to watch

put the altOpenVisible of me into theOpenVisible

put the altOpenMode of me into theOpenMode

put the altUpdateURL of me into theURL

set the itemDel to "/"

put item 3 of theURL into theHostName

set the itemDel to comma

put haveIPconnect() into isConnected

if isConnected is false then

exit to top

end if

put URL theURL into theUpdateInfo

replace numToChar(13) with cr in theUpdateInfo

if line 1 of theUpdateInfo is not "<!--AltPlugin-->" then

answer warning "The update information for this gadget is not AltPlugin compatible."

exit to top

end if

put getTagData("version",theUpdateInfo) into theVersion

put getTagData("UpdateURL",theUpdateInfo) into theGadgetURL

if theVersion is theCurrentVersion then

answer info "You are using the current version!" with "Download Again" or "Cancel"

put it into theAnswer

else

answer info "There is a new version available. Would you like to update?" with "Update" or "Cancel"

put it into theAnswer

end if

if theAnswer contains "Update" or theAnswer contains "Download" then

set the cursor to watch

put the effective filename of this stack into theFilePath

put the short name of this stack into theStackName

put "Ready to install new version."

send "installReplacement theGadgetURL,theFilePath" to me in 500 millisecs

end if

end checkForUpdates

function haveIPconnect

put URL "http://www.troz.net/test.txt" into tCheckConnect

put tCheckConnect = 1 into haveIPconnection

if haveIPConnection is false then

beep

answer warning "Either the server is down or you have no connection to the internet."

end if

return haveIPconnection

end haveIPconnect

function getTagData theTagName,theTagData

put "<" & theTagName & ">" into theOpenTag

put "</" & theTagName & ">" into theCloseTag

filter theTagData with theOpenTag & "*"

put line 1 of theTagData into theTagData

replace theOpenTag with "" in theTagData

replace theCloseTag with "" in theTagData

put URLdecode(theTagData) into theTagData

return theTagData

end getTagData

on installReplacement theGadgetURL,theFilePath

set the cursor to watch

set the itemDel to "/"

put the last item of theGadgetURL into theFileName

put theFileName into the last item of theFilePath

set the itemDel to comma

put the filetype into theFiletype

set the filetype to "revoRSTK"

put "Downloading new version..."

put URL theGadgetURL into tNewFile

put the result into theResult

if the result is not empty then

put "Download error: " & theResult

else if tNewFile is empty then

put "Download error: no data received."

else

put "Saving new version..."

put tNewFile into URL ("binfile:" & theFilePath)

set the filetype to theFileType

set the defaultStack to the short name of this stack

revert

put "Update of plugin" && theFileName && "now complete!"

end if

end installReplacement

M`Connectg< cFileLink=/Users/sarah/Documents/Rev eFreezer/Utils/efConnectTester.rev Ma e.freezersg,< cFileLink4/Users/sarah/Documents/e-freezer data/e.freezers.rev Mb eF EmailsgB< cFileLink7/Users/sarah/Documents/Mac e-freezer v2/Make Emails.rev Mc eF MaintgX< cFileLink=/Users/sarah/Documents/e-freezer data/eFreezerMaintenance.rev MdefSetupgn< cFileLink4/Users/sarah/Documents/Rev eFreezer/Apps/efSetup.rev MeErrorsg< cFileLink8/Users/sarah/Documents/Rev eFreezer/Utils/ErrorCodes.rev MfFTPg< cFileLink9/Users/sarah/Documents/Rev eFreezer/Utils/efFTPmaster.rev MgMaxig< cFileLink6/Users/sarah/Documents/Rev eFreezer/ Maxi/efSplash.rev Mh RevZillag< cFileLink1/Users/sarah/Documents/Rev Stacks/RevZilla204.rev Mi About...g< cFileLinkabout cREVGeneral breakPoints cConsLastpropHandlerScroll0 varCheckingfalse HandlerName StackDockChoose2 SZcConsLastHandlerNamecConsLastHandlerScroll0Choose a stack file... WLucida Grande P3--> all handlers on preOpenStack set the loc of this stack to the screenLoc fillStackMenu pass preOpenStack end preOpenStack on fillStackMenu put the openStacks into tList filter tList without "rev*" put empty into tMains put empty into tFiles set the itemDel to "/" repeat for each line L in tList if the fileName of stack L is not empty then if char 1 to 3 of item -1 of the fileName of stack L <> "rev" then put L & cr after tMains end if end if end repeat delete last char of tMains if tMains is empty then put "(No open stacks" into tMains put tMains into btn "Stacklist" set the menuHistory of btn "Stacklist" to 1 set the label of btn "Stacklist" to "Select a stack..." end fillStackMenu ZcConsLastHandlerName fillStackMenucConsLastHandlerScroll0 cREVGeneral breakPoints StackList eX cConsLastHandlerNamecConsLastHandlerScroll0Select a stack...(No open stacks cREVGeneral revUniqueID 1124317324895  Label Field  ZcConsLastHandlerNamecConsLastHandlerScroll0 cREVGeneral revUniqueID 1124317331009 Select a stack:CancelES--> all handlers on mouseUp save this stack close this stack end mouseUp 8PcConsLastHandlerNamemouseUpcConsLastHandlerScroll0 cREVGeneral revUniqueID 1124317333873 AddEz--> all handlers on mouseUp put the selectedText of btn "Stacklist" into tName if there is not a stack tName then beep exit to top end if put the fileName of stack tName into tFile ask "Enter a name for this link:" with tName put it into tName if tName is empty then exit to top put the cLinkStacks of stack "revStackDock" into tLinks put cr & tName & tab & tFile after tLinks filter tLinks with "?*" set the cLinkStacks of stack"revStackDock" to tLinks save this stack close this stack send "showLinks" to cd 1 of stack "revStackDock" end mouseUp 8PcConsLastHandlerNamemouseUpcConsLastHandlerScroll0 cREVGeneral revUniqueID 1124317337071 breakPoints