packages/PackageSelector.st
changeset 1268 9dc8d1b8ce9b
parent 1227 ab88e78f027c
child 1279 95a37d60edd8
--- a/packages/PackageSelector.st	Fri May 09 14:24:21 2003 +0200
+++ b/packages/PackageSelector.st	Fri May 09 14:24:57 2003 +0200
@@ -9,6 +9,41 @@
 	category:'Package-Application'
 !
 
+AbstractPackageBrowser subclass:#BasicPackageSelector
+	instanceVariableNames:'selectionChangedBlock list'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:PackageSelector
+!
+
+AbstractPackageBrowser subclass:#HierarchicalPackageSelector
+	instanceVariableNames:'selectionChangedBlock tree packagesSelectedIndexHolder'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:PackageSelector
+!
+
+HierarchicalItem subclass:#CategoryItem
+	instanceVariableNames:'name packageManager'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:PackageSelector::HierarchicalPackageSelector
+!
+
+HierarchicalItem subclass:#PackageItem
+	instanceVariableNames:'package'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:PackageSelector::HierarchicalPackageSelector
+!
+
+HierarchicalItem subclass:#RootItem
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:PackageSelector::HierarchicalPackageSelector
+!
+
 
 !PackageSelector class methodsFor:'interface specs'!
 
@@ -42,6 +77,116 @@
         #component: 
        #(#SpecCollection
           #collection: #(
+           #(#SubCanvasSpec
+              #name: 'SelectorSubCanvas'
+              #layout: #(#LayoutFrame 0 0 0 0 0 1 0 1)
+              #hasHorizontalScrollBar: false
+              #hasVerticalScrollBar: false
+              #clientHolder: #applicationHolder
+            )
+           )
+         
+        )
+      )
+! !
+
+!PackageSelector class methodsFor:'plugIn spec'!
+
+aspectSelectors
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this. If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "Return a description of exported aspects;
+     these can be connected to aspects of an embedding application
+     (if this app is embedded in a subCanvas)."
+
+    ^ #(
+        #packagesSelectedHolder
+      ).
+
+! !
+
+!PackageSelector methodsFor:'aspects'!
+
+applicationHolder
+    "automatically generated by UIPainter ..."
+
+    |holder|
+    (holder := builder bindingAt:#applicationHolder) isNil ifTrue:[
+"/        builder aspectAt:#applicationHolder put:(holder :=  (BasicPackageSelector new) asValue).
+        builder aspectAt:#applicationHolder put:(holder :=  (HierarchicalPackageSelector new) asValue).
+    ].
+    ^ holder
+!
+
+declareDependents
+    self packageManager addDependent:self.
+!
+
+undeclareDependents
+    self packageManager removeDependent:self.
+! !
+
+!PackageSelector methodsFor:'change & update'!
+
+packagedManagerChangeAddPackage:aPackage
+    self applicationHolder value packagedManagerChangeAddPackage:aPackage.
+!
+
+packagedManagerChangeRemovePackage:aPackage 
+    self applicationHolder value packagedManagerChangeRemovePackage:aPackage 
+!
+
+update:something with:aParameter from:changedObject
+    something == #packagedChanged ifTrue:[
+        ^ super update:something with:aParameter from:changedObject
+    ].
+
+    something == #addPackage: ifTrue:[
+        ^ self packagedManagerChangeAddPackage:aParameter.
+    ].
+    something == #removePackage: ifTrue:[
+        ^ self packagedManagerChangeRemovePackage:aParameter.
+    ].
+
+    super update:something with:aParameter from:changedObject
+! !
+
+!PackageSelector::BasicPackageSelector class methodsFor:'interface specs'!
+
+windowSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:Packages::PackageSelector andSelector:#windowSpec
+     Packages::PackageSelector new openInterface:#windowSpec
+     Packages::PackageSelector open
+    "
+
+    <resource: #canvas>
+
+    ^ 
+     #(#FullSpec
+        #name: #windowSpec
+        #window: 
+       #(#WindowSpec
+          #label: 'Packages::PackageSelectorApplication'
+          #name: 'Packages::PackageSelectorApplication'
+          #min: #(#Point 10 10)
+          #max: #(#Point 1024 768)
+          #bounds: #(#Rectangle 29 59 329 359)
+          #menu: #mainMenu
+        )
+        #component: 
+       #(#SpecCollection
+          #collection: #(
            #(#SelectionInListModelViewSpec
               #name: 'SelectionInListModelView'
               #layout: #(#LayoutFrame 0 0 0 0 0 1 0 1)
@@ -60,7 +205,7 @@
       )
 ! !
 
-!PackageSelector class methodsFor:'plugIn spec'!
+!PackageSelector::BasicPackageSelector class methodsFor:'plugIn spec'!
 
 aspectSelectors
     "This resource specification was automatically generated
@@ -79,7 +224,7 @@
 
 ! !
 
-!PackageSelector methodsFor:'accessing'!
+!PackageSelector::BasicPackageSelector methodsFor:'accessing'!
 
 masterApplication:aMasterApplication
     "initialization"
@@ -113,7 +258,7 @@
     selectionChangedBlock := something.
 ! !
 
-!PackageSelector methodsFor:'aspects'!
+!PackageSelector::BasicPackageSelector methodsFor:'aspects'!
 
 list
 
@@ -124,7 +269,7 @@
     ^ list.
 ! !
 
-!PackageSelector methodsFor:'change & update'!
+!PackageSelector::BasicPackageSelector methodsFor:'change & update'!
 
 listUpdate:something with:aParameter 
 
@@ -145,10 +290,10 @@
     ].
 
 
-    self halt.
+    self breakPoint:''.
 ! !
 
-!PackageSelector methodsFor:'initialization'!
+!PackageSelector::BasicPackageSelector methodsFor:'initialization'!
 
 initialize
     | aPackageManager myList packageNames firstOrNil|
@@ -182,8 +327,1463 @@
     ^ super postBuildWith:aBuilder
 ! !
 
+!PackageSelector::HierarchicalPackageSelector class methodsFor:'image specs'!
+
+basePackageIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageSystem inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageSystem
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageSystem'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+BP$IBP$IBP$IBP$@BP$IBP$IBP$IBP$IBP$@A@@@BP$IBP$IBP$IBP$@A@HD@0@IBP$IBP$I@@$I@@H@@@DC@@$IBP@I@@ @@@PD@@@D@@$IBP@H@@ GA0@@
+@PLBA@@IBP@HB@ GA0\FA @@A@@IBP$I@@ GA0\FAPT@BP@IBP$I@@ GA0@@@@TEAP@IBP$I@@ GA0X@BP@EAPXF@@$IBP$@A0XF@@@@APXF@@$IBP$IBP@F
+APTEAPXF@@$IBP$IBP@FAPTEAPXFA0\@BP$IBP$I@@T@APXF@@\@BP$IBP$IBP$@BP@G@@$@BP$IBP$IBP$IBP$I@@$IBP$IBP$IBP@a') ; colorMapFromArray:#[0 0 0 255 128 0 255 168 88 192 192 0 255 255 0 160 160 160 195 195 195 220 220 220 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@A@@O@A>@''<W?#?>_?0?:G?0?_!!?<C? _?@?8A]@@ @b') ; yourself); yourself]
+!
+
+defaultPackageIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self defaultPackageIcon inspect
+     ImageEditor openOnClass:self andSelector:#defaultPackageIcon
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class defaultPackageIcon'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAPT@@@TEAP@EAPTEAPTEAP@@@0L@@@@C@@@EAPTE@@@C@0@@@PH@@@LC@@@E@@LC@@@A@PDB@ H@@@LC@@@@@@DA@PDA@ HB@ H@@@@E@@L@@@DA@PHB
+@ @@@@TEAP@C@0L@@@DB@@@B@ @EAPT@@0LC@0L@@@HB@ H@APTE@@LC@0LC@0HB@ HB@@TEAP@C@0LC@0LB@ HB@ @EAPT@@0LC@0LC@ HB@ H@APTE@@LC
+@0LC@0HB@ HB@@TEAP@B@0LC@0LB@ HB@@@EAPTE@@@B@0LC@ H@@@TEAPTEAPTE@@@B@0@@APTEAPTEAPTEAPTE@@@EAPTEAPTEAP@a') ; colorMapFromArray:#[0 0 0 128 170 0 192 220 0 230 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??G?<_?1??G?<_?0?<@?@@0@b') ; yourself); yourself]
+!
+
+loadedPackageIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self loadedPackageIcon inspect
+     ImageEditor openOnClass:self andSelector:#loadedPackageIcon
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class loadedPackageIcon'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAP@@@@@@@@@@APTEAPTE@@@@@@@@@@@@@@@EAPT@@@@@@@@@@0L@@@@@@@@E@@@@@@@C@0LC@0L@@@@@@@@@@@LC@0LC@0LC@0L@@@@E@@L@@@LC@0LC
+@0@@@@TEAP@C@0L@@@LC@@@B@ @EAPT@@0LC@0L@@@HB@ H@APTE@@LC@0LC@0HB@ HB@@TEAP@C@0LC@0LB@ HB@ @EAPT@@0LC@0LC@ HB@ H@APTE@@LC
+@0LC@0HB@ HB@@TEAP@B@0LC@0LB@ HB@@@EAPTE@@@B@0LC@ H@@@TEAPTEAPTE@@@B@0@@APTEAPTEAPTEAPTE@@@EAPTEAPTEAP@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@A @_ G?!!??G?<_?1??G?<_?1??G?<_?0?<@?@@0@b') ; yourself); yourself]
+!
+
+miniBasePackage
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniBasePackage inspect
+     ImageEditor openOnClass:self andSelector:#miniBasePackage
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniBasePackage'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAPT@@@TEAP@EAPTEAPTEAP@@@0L@@@@C@@@EAPTE@@@C@0@@@PH@@@LC@@@E@@LC@@@A@PDB@ H@@@LC@@@@@@DA@PDA@ HB@ H@@@@E@@L@@@DA@PHB
+@ @@@@TEAP@C@0L@@@DB@@@B@ @EAPT@@0LC@0L@A@PDA@PDA@PE@@LC@0LC@0PDA@@@A@PDAP@C@0LC@0LDA@@DA@@DA@T@@0LC@0LCA@@@@@@@@@PE@@LC
+@0LC@0P@@0LB@ @DAP@B@0LC@0LD@@LC@ H@A@TE@@@B@0LCA@@C@0HB@@PEAPTE@@@B@0PD@@@@@@PDAPTEAPTE@@@DA@PDA@PDA@@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??7??_?=??7??_?<??0??@?<b') ; yourself); yourself]
+!
+
+miniPackageApplications
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageApplications inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageApplications
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageApplications'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B (JB (@@@(JB @JB (JB (JB @@B@ @@@@H@@@JB (J@@@HB@@C@0PCB@ H@@@J@@ H@@LC@0LDA@PCB@ H@@@@@0@@@@@@@@@@@@P@@@@J@@ @A0HB@ \A
+A0@H@@(JB @H@@\IBP$IBP\@@@@JB (@B@@GBP$IBP$G@@\@B (J@@ @A0$IBP$IA0@G@@@JB @H@@\GA0\GA0\@A0T@B (@B@@@@@@@@@@@@@\F@@(J@@ H
+B@ @A0\GA0\GA @JB @DB@ H@@@FA XFA X@B (J@@@DB@ H@@@@@@@@@@(JB (J@@@DB@@@B (JB (JB (JB (J@@@JB (JB (JB @a') ; colorMapFromArray:#[0 0 0 88 88 88 0 0 255 128 128 0 192 192 0 128 128 128 160 160 160 195 195 195 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??G?>_?9??''?>_?8?? ?@@0@b') ; yourself); yourself]
+!
+
+miniPackageEditors
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageEditors inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageEditors
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageEditors'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+BP$IBP$@@@$I@@@IBP$IBP$IBP@@A0\@@@\G@@@IBP$I@@@GA0@@@PL@@@\G@@@I@@\G@@@A@PDC@0L@@@\G@@@@@@DA@PDA@0LC@0L@@@@I@@ @@@DA@PLC
+@0@@@@$IBP@HA0\@@@DC@@@C@0@IBP$@B@\GA0\@@@LC@0L@BP$I@@ GA0\GA0LC@0LC@@$IBP@HA0\G@@@@@@LC@0@IBP$@B@\@@@THB@T@@@L@@@$I@@@@
+AP HA XHB@T@@@H@@@THB@ FA  HAP@@A@H@@@@@AP HB@ E@@@D@ @@BP$IBP@@APT@@@ B@@@IBP$IBP$IBP@@BP@@@@$IBP$IBP@a') ; colorMapFromArray:#[0 0 0 128 128 0 255 168 88 192 192 0 255 220 168 195 195 195 192 192 255 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A&@_>G?>?????7?<_?1??G?<_?1??''???????C?0C\@b') ; yourself); yourself]
+!
+
+miniPackageFavourites
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageFavourites inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageFavourites
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageFavourites'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+BP$IBP$@@@$IBP@IBP$IBP$IBP@@B@ @@@@H@@@IBP$I@@@HB@@@A@X@@@ H@@@I@@ H@@@DA@PFA X@@@ H@@@@@@PDA@PDA XFA X@@@@I@@ @@@PDA@XF
+A @@@@$IBP@HB@ @@@PF@@@FA @IBP$@B@ HB@ @@@XFA X@BP$I@@ HB@ HB@X@@@XF@@@IBP@HB@ HB@ @APHA@@LB@@$@B@ HB@ @AP\E@@HC@0@I@@ H
+B@ H@@TGAPHC@0H@BP@FB@ HB@ @APLE@0L@BP$I@@@FB@ HA @E@0H@BP$IBP$I@@@FB@@@@@L@BP$IBP$IBP$I@@@IBP$@BP$IBP@a') ; colorMapFromArray:#[0 0 0 128 0 0 192 0 0 255 0 0 128 128 0 255 128 0 192 192 0 255 192 192 255 255 192 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??G?>_?=??7??_?8??@?8@1@b') ; yourself); yourself]
+!
+
+miniPackageGames
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageGames inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageGames
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageGames'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B (JB (@@@(JB @JB (JB (JB @@B@ @@@@H@@@JB (J@@@HB@@@@0P@B@ H@@@J@@ H@@@C@0LDA@@@B@ @B @@@@LC@0LCA@PDA@@@@@@J@@ @@@LC@0PD
+@@H@@@(JB @HB@ @@@LD@@@G@@PJB (@B@ HB@ @@@@@A0@DB (J@@ HB@ HB@PD@@\@A@(JB @HB@ HB@ D@@@G@@PJB (@B@ HB@ @@PD@A0@@B (J@@ H
+B@ H@@\IA @FA @@B @DB@ HB@@GA0\IA \E@@(J@@@DB@ H@@XGA0TEAP@JB (J@@@DB@@@@@XE@@@JB (JB (J@@@JB (@@@(JB @a') ; colorMapFromArray:#[0 0 0 192 0 0 255 0 0 128 128 0 192 192 0 128 128 128 160 160 160 195 195 195 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>??;??7?<_?1??G?<_?1??G??_?<??0?>@1 b') ; yourself); yourself]
+!
+
+miniPackageGraphics
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageGraphics inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageGraphics
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageGraphics'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+G1<_G1<@@A<_G0@_G1<_G1<_G0@@GQ4@@@@]@@@_G1<_@@@]GP@@DQP@GQ4]@@@_@A4]@@@QDQDTE@@@GQ4]@@@@@ADQDQDQEAPTE@@@@@@_@A4@@ADQDQPT
+E@@]@A<_G0@]GQ4@@ADT@@@TE@@_G1<@GQ4]GQ4@@@@@@@@@@@@_@A4]GQ4]@A AE!!XAFA @@@@@@@@@@@@JA@HGC!!DM@@@SD1LSD1L@B0TBB@<TD @@D!!HR
+D!!HR@@0F@0$PEQL@@@@@@@@@@@@[F!!$^GA4W@A<_@@@TGQ4@@@@@@@@@@@@_G1<_@@@TGP@@G1<_G1<_G1<_G1<_@@@_G1<_G1<_G0@a') ; colorMapFromArray:#[0 0 0 88 88 88 0 0 128 0 0 255 0 128 0 0 192 0 0 128 0 0 128 128 0 192 192 0 255 255 128 0 0 192 0 0 255 0 0 192 88 0 128 0 128 192 0 192 255 0 255 128 128 0 255 128 0 255 168 88 192 192 0 255 255 0 128 128 128 255 220 168 195 195 195 192 192 255 192 255 192 255 192 192 255 192 255 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??7????????????<??0?@@0@b') ; yourself); yourself]
+!
+
+miniPackageMultimedia
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageMultimedia inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageMultimedia
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageMultimedia'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+BP$IBP$@@@$IBP@IBP$IBP$IBP@@A0\@@@@G@@@IBP$I@@@GA0@@@PH@@@\G@@@I@@\G@@@A@PDB@ H@@@\G@@@@@@DA@PDA@ HB@ @@@@@I@@\@@@DA@PHB
+@@@B@@$IBP@GA0\@@@D@@@HB@ @IBP$@A0\GA0\@@ H@@@@@BP$I@@\GA0\GA0H@A@PD@@$IBP@GA0\GA0\@A PDA@ @BP$@A0\GA0\@A@PC@@LDA@@I@@\G
+A0\G@@PD@@\@A@P@BP@BA0\GA0@DA@L@APPD@@$I@@@BA0\G@@ DA@PE@@$IBP$I@@@BA0@@A@PD@@$IBP$IBP$I@@@IBP@@@@$IBP@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 160 160 160 195 195 195 192 192 255 192 255 255 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??G?<_?9??7??_?<?? ?<@3 b') ; yourself); yourself]
+!
+
+miniPackageNetwork
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageNetwork inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageNetwork
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageNetwork'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B (JB (@@@(JB @JB (JB (JB @@B@ @@@@H@@@JB (J@@@HB@@@@0P@@@ H@@@J@@ H@@@C@0LDA@P@@@ H@@@@@@LC@0LCA@PDA@P@@@@J@@ @@@LC@@@@
+@@PD@@(JB @HB@ @@@$IBP$@A@@JB (@B@ HB@@GA XG@@@@@@(J@@ HB@ @A0HB@@$IBP$@B @HB@ H@@$IBP@G@ HE@@(@B@ HB@ EAPT@A0DAAP@J@@ H
+B@ @A0\G@@$IBP@JB @DB@ H@@@@@@T@@@@E@@(J@@@DB@ HA@P@APTEAP@JB (J@@@DB@@@@@\GA0@JB (JB (J@@@JB (@@@@JB @a') ; colorMapFromArray:#[0 0 0 0 0 128 0 0 255 128 128 0 192 192 0 128 128 128 128 128 255 195 195 195 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??''??_?=??7?>_?<??0?>@10b') ; yourself); yourself]
+!
+
+miniPackageSettings
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageSettings inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageSettings
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageSettings'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B@ HB@ @@@ HB@@HB@ HB@ HB@@@A X@@@@F@@@HB@ H@@@FA @@@PH@@@XF@@@H@@XF@@@A@PDB@ H@@@XF@@@@@@DA@PDA@ HB@ H@@@@H@@X@@@DA@PHB
+@ @@@@ HB@@FA X@@@DB@@@@@ @HB@ @A XFA X@@@@@@@H@B@ H@@XFA XF@@P@A0T@A0@HB@@FA XFA X@APTEAP@HB@ @A XFA X@A0TC@@TE@@ H@@XF
+A XF@@TE@@HGAP@HB@@BA XFA X@APTGAP@HB@ H@@@BA X@A0@EAP@E@@ HB@ H@@@BA @@@@@H@@ HB@ HB@ H@@@HB@ HB@ HB@@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 128 128 128 160 160 160 195 195 195 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??G?>_?1??''?>_?0?? ?4@0@b') ; yourself); yourself]
+!
+
+miniPackageSystem
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageSystem inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageSystem
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageSystem'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+BP$IBP$IBP$IBP$@BP$IBP$IBP$IBP$IBP$@A@@@BP$IBP$IBP$IBP$@A@HD@0@IBP$IBP$I@@$I@@H@@@DC@@$IBP@I@@ @@@PD@@@D@@$IBP@H@@ GA0@@
+@PLBA@@IBP@HB@ GA0\FA @@A@@IBP$I@@ GA0\FAPT@BP@IBP$I@@ GA0@@@@TEAP@IBP$I@@ GA0X@BP@EAPXF@@$IBP$@A0XF@@@@APXF@@$IBP$IBP@F
+APTEAPXF@@$IBP$IBP@FAPTEAPXFA0\@BP$IBP$I@@T@APXF@@\@BP$IBP$IBP$@BP@G@@$@BP$IBP$IBP$IBP$I@@$IBP$IBP$IBP@a') ; colorMapFromArray:#[0 0 0 255 128 0 255 168 88 192 192 0 255 255 0 160 160 160 195 195 195 220 220 220 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@A@@O@A>@''<W?#?>_?0?:G?0?_!!?<C? _?@?8A]@@ @b') ; yourself); yourself]
+!
+
+miniPackageUtilities
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self miniPackageUtilities inspect
+     ImageEditor openOnClass:self andSelector:#miniPackageUtilities
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class miniPackageUtilities'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+BP$IBP$@@@$IBP@IBP$IBP$IBP@@A0\@@@@G@@@IBP$I@@@GA0@@@0T@@@\G@@@I@@\G@@@C@0LEAPT@@@\G@@@@@@LC@0LCAPTEAPT@@@@I@@\@@@LC@0L@
+@@@@@@$IBP@GA0\@@@L@@@@@AP@IBP$@A0\GA0\@A X@AP@B@@$I@@\GA0\@A XA@@TB@@H@BP@GA0\@A XAA@@@@ HB@@$@A0\GA0@A@@@D@@H@@@$I@@\G
+A0\G@@T@@@P@@@$IBP@EA0\GA0\@@ H@A@@IBP$I@@@EA0\@@ H@@@@D@@$IBP$I@@@E@@H@BP$I@@P@BP$IBP$I@@@@BP$IBP$@BP@a') ; colorMapFromArray:#[0 0 0 88 88 88 0 192 192 128 128 0 255 168 88 192 192 0 160 160 160 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??''??_?=??''?<_?0?? ?G@8Hb') ; yourself); yourself]
+!
+
+noramlPackage
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self noramlPackage inspect
+     ImageEditor openOnClass:self andSelector:#noramlPackage
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class noramlPackage'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAPTEAPTEAPTE@@@EAPTEAP@EAPTEAPTEAPTEAPTEAPTEAPTEAPTE@@@DA@@EAPT@A@@@APTEAPTEAPTEAPTEAPTEAPTE@@@DA@LCA@@E@@PCA@P@@@TE
+APTEAPTEAPTEAPTE@@@DA@LC@0LC@@@D@0LC@0PD@@@EAPTEAPTEAPTE@@@DA@LC@0LC@@@A@ @@@0LC@0LDA@@@APTEAPTE@@@DA@LC@0LC@@@A@PDA@ D@
+@@LC@0LCA@P@@@TE@@@DA@LC@0LC@@@A@PDA@PHA@ DB@@@C@0LC@0PD@@@E@@PC@0LC@@@A@PDA@PDA@PHA@ DB@P@@@0LC@0L@APTE@@PC@@@A@PDA@PDA
+@PDB@PHA@ DB@PH@@@LC@@TE@@@@@@@A@PDA@PDA@PDA@PDB@PHA@ DB@PHA@@@@@@@E@@@C@0@@@PDA@PDA@PDA@ DB@PHA@ DB@@@C@0@@APTEAP@@@0L@
+@@DA@PDA@PDA@ DB@PHA@@@C@0@@APTEAPTE@@P@@@LC@@@A@PDA@PHA@ DB@@@C@0@@@ @EAPTEAPT@A@LC@@@C@0@@@PDA@PHA@@@C@0@@@ HB@@TEAPTE
+AP@D@0LC@0@@@0L@@@DB@@@C@0@@@ HB@ H@APTEAPTE@@PC@0LC@0L@@@LC@@@C@0@@@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@@@C@ @@@ HB@ HB@ HB
+@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@PC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@0LC@ HB@ HB
+@ HB@ HB@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@PC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@0LC
+@ HB@ HB@ HB@ HB@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@HC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@P@EAPTEAPT@@@HB@0LC
+@0LC@0LC@ HB@ HB@ HB@PD@@@TEAPTEAPTE@@@B@ LC@0LC@0LB@ HB@ HB@PD@@@TEAPTEAPTEAPTEAP@@@ HC@0LC@0HB@ HB@PD@@@TEAPTEAPTEAPTE
+APTEAPT@@@HB@0LC@ HB@PD@@@TEAPTEAPTEAPTEAPTEAPTEAPTE@@@B@ LB@PD@@@TEAPTEAPTEAPTEAPTEAPTEAPTEAPTEAP@@@ D@@@TEAPTEAPTEAPTE
+APTEAPTEAPTEAPTEAPTEAPT@@@TEAPTEAPTEAPTEAPTEAP@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???8G???>A???? _???8G???>A??
+?? _???8G???>A???? G??? @_?? @A?? @@G? @@@_ @@@A @@b') ; yourself); yourself]
+!
+
+normalApplications
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalApplications inspect
+     ImageEditor openOnClass:self andSelector:#normalApplications
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalApplications'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B (JB (JB (JB (J@@@JB (JB @JB (JB (JB (JB (JB (JB (JB (J@@@IBP@JB (@BP@@B (JB (JB (JB (JB (JB (J@@@IBP HBP@J@@$HBP$@@@(J
+B (JB (JB (JB (J@@@IBP HB@ H@@@IB@ HB@$I@@@JB (JB (JB (J@@@IBP HB@ H@@@CA@@@B@ HB@ IBP@@B (JB (J@@@IBP HB@ H@@@C@0LCA@L@
+@@ HB@ HBP$@@@(J@@@IBP HB@ H@@@C@0LC@0PCA@LD@@@HB@ HB@$I@@@J@@$HB@ H@@@C@0LC@0LC@0PCA@LD@0@@B@ HB@ @B (J@@$H@@@C@0LC@0LC
+@0LD@0PCA@LD@0P@@@ H@@(J@@@@@@@C@0L@@@@@@@@@@@@@@@@@@@@D@0PC@@@@@@@J@@@HB@@@@0@GA0HB@ HB@ \G@P\G@@LD@@@HB@@@B (JB @@B@ @
+@@\G@ HB@ HBA0\AA0\@@@@HB@@@B (JB (J@@$@@@ @@PDA@PDA@PDA@PDA@P@HB@@@A@@JB (JB (@BP H@@@GBP$IBP$IBP$IBP$G@@@@@@@D@@(JB (J
+B @IB@ H@@\IBP$IBP$IBP$IBP\@AP\G@@P@B (JB (J@@$HB@ @A0$IBP$IBP$IBP$IA0@EA0\@A@@JB (JB (@BP HB@@GBP$IBP$IBP$IBP$G@@TEAP@D
+@@(JB (JB @IB@ H@@\IBP$IBP$IBP$IBP\@A $G@@@@@@@JB (J@@$HB@ @A0$IBP$IBP$IBP$IA0@FBP\@AP\G@@(JB (@BP HB@@GA0\GA0\GA0\GA0\G
+@@XIA0@EA0\@B (JB @IB@ H@@@@@@@@@@@@@@@@@@@@A $G@@TEAP@JB (J@@$HB@ HB@ H@@XFA XFA XFA XFBP\@A $G@@(JB (@BP HB@ HB@ @A0$I
+BP$IBP$IBP$IA0@FBP\@B (JB @IB@ HB@ HB@@GA0\GA0\GA0\GA0\G@@XIA0@JB (J@@PHB@ HB@ H@@@@@@@@@@@@@@@@@@@@A $G@@(JB (@@@PDB@ H
+B@ HB@ H@@XFA XFA XFA XFBP\@B (JB (J@@@DA@ HB@ HB@ @A0$IBP$IBP$IBP$IA0@JB (JB (JB @@A@PHB@ HB@@GA0\GA0\GA0\GA0\G@@(JB (J
+B (JB (@@@PDB@ H@@@@@@@@@@@@@@@@@@@@B (JB (JB (JB (J@@@DA@ D@0L@@@(JB (JB (JB (JB (JB (JB (JB (JB @@A@L@@@(JB (JB (JB (J
+B (JB (JB (JB (JB (JB (@@@(JB (JB (JB (JB (JB @a') ; colorMapFromArray:#[0 0 0 88 88 88 0 0 255 128 128 0 192 192 0 128 128 128 160 160 160 195 195 195 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???>G????!!????8_???>G????!!??
+??8_???>G????!!????8G???>@_??? A???8@G? @@@_ @@@A @@b') ; yourself); yourself]
+!
+
+normalEditors
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalEditors inspect
+     ImageEditor openOnClass:self andSelector:#normalEditors
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalEditors'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B0,KB0,KB0,KB0,K@@@KB0,KB0@KB0,KB0,KB0,KB0,KB0,KB0,KB0,K@@@JB @KB0,@B @@B0,KB0,KB0,KB0,KB0,KB0,K@@@JB $IB @K@@(IB (@@@,K
+B0,KB0,KB0,KB0,K@@@JB $IBP$I@@@JBP$IBP(J@@@KB0,KB0,KB0,K@@@JB $IBP$I@@@AA@@@BP$IBP$JB @@B0,KB0,K@@@JB $IBP$I@@@A@PDAA@D@
+@@$IBP$IB (@@@,K@@@JB $IBP$I@@@A@PDA@PPAA@DD@@@IBP$IBP(J@@@K@@(IBP$I@@@A@PDA@PDA@PPAA@DD@P@@BP$IBP$@B0,K@@(I@@@A@PDA@PDA
+@PDD@PPAA@DD@PP@@@$I@@,K@@@@@@@A@PDA@PDA@PDA@PDD@PPAA@DD@PPA@@@@@@@K@@@IBP@@@PDA@PDA@PDAA@DD@PPAA@DD@@@IBP@@B0,KB0@@BP$@
+@@DA@PDA@PDAA@DD@PPA@@@IBP@@B0,KB0,K@@(@@@$I@@@A@PDA@PPAA@DD@@@IBP@@A@@KB0,KB0,@B $I@@@IBP@@@PDA@PPA@@@IBP@@A@PD@@,KB0,K
+B0@JBP$IBP@@BP$@@@DD@@@IBP@@A@PDA@P@B0,KB0,K@@(IBP$IBP$@@@$I@@@IBP@@A@PDA@PDA@@KB0,KB0,@B $IBP$IBP$I@@@IA@@@A@PDA@PDA@PD
+@@,KB0,KB0@JBP$IBP$IBP$IBP$DA@PDA@PDA@PDA@P@B0,KB0,K@@(IBP$IBP$IBP$I@@@DA@PDA@PDA@PDA@@KB0,KB0,@B $IBP$IBP$I@@@FB @@A@PD
+A@PDA@PD@@,KB0,KB0@JBP$IBP$I@@@FB (JB X@@@PDA@PDA@P@B0,KB0,K@@(IBP$I@@@FB (JA0\JB (F@@@DA@PDA@@@@@,KB0,@B $I@@@FB (JA0(J
+B \GB (JA @@A@P@@@TE@@,KB0@J@@@FB (JB (GA0\JB \GB (JB X@@@TE@0L@B0,K@@@FB (JA0\GB (JB \JB (JB X@@@TEAPLC@ @K@@@FB (JB (J
+B \GA0(JB (JB X@@@TEAPLC@ @@B0@FB (JB (JB (JB (JA0(JB X@@@TEAPLC@ @@B0,KB0@@A (JB (JB (JB (JB X@@@TEAPLC@ @@B0,KB0,KB0,@
+@@XJB (JB (JB X@@@TEAPLC@ @@B0,KB0,KB0,KB0,K@@@FB (JB X@@@@HB@LC@ @@B0,KB0,KB0,KB0,KB0,KB0@@B X@@@,K@@(J@ @@B0,KB0,KB0,K
+B0,KB0,KB0,KB0,@@@,KB0,@@@@@B0,KB0,KB0,KB0,KB0@a') ; colorMapFromArray:#[0 0 0 128 128 0 255 128 0 255 168 88 192 192 0 255 220 168 195 195 195 192 192 255 192 255 255 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???8G???>A???? _???8G????!!??
+??<_????G????7????;????8_???8A???8@G??8@@_''8@@A!!8@@b') ; yourself); yourself]
+!
+
+normalInspectPackage
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalInspectPackage inspect
+     ImageEditor openOnClass:self andSelector:#normalInspectPackage
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalInspectPackage'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAPTEAPTEAPTE@@@EAPTEAP@EAPTEAPTEAPTEAPTEAPTEAPTEAPTE@@@DA@@EAPT@A@@@APTEAPTEAPTEAPTEAPTEAPTE@@@DA@LCA@@E@@PCA@P@@@TE
+APTEAPTEAPTEAPTE@@@DA@LC@0LC@@@D@0LC@0PD@@@EAPTEAPTEAPTE@@@DA@LC@0LC@@@A@ @@@0LC@0LDA@@@APTEAPTE@@@DA@LC@0LC@@@A@PDA@ D@
+@@LC@0LCA@P@@@TE@@@DA@LC@0LC@@@A@PDA@PHA@ DB@@@C@0LC@0PD@@@E@@PC@0LC@@@A@PDA@PDA@PHA@ DB@P@@@0LC@0L@APTE@@PC@@@A@PDA@PDA
+@PDB@PHA@ DB@PH@@@LC@@TE@@@@@@@A@PDA@PDA@PDA@PDB@PHA@ DB@PHA@@@@@@@E@@@C@0@@@PDA@PDA@PDA@ DB@PHA@ DB@@@C@0@@APTEAP@@@0L@
+@@DA@PDA@PDA@ DB@PHA@@@C@0@@APTEAPTE@@P@@@LC@@@A@PDA@PHA@ DB@@@C@0@@@ @EAPTEAPT@A@LC@@@C@0@@@PDA@PHA@@@C@0@@@ HB@@TEAPTE
+AP@D@0LC@0@@@0L@@@DB@@@C@0@@@ HB@ H@APTEAPTE@@PC@0LC@0L@@@LC@@@C@0@@@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@@@C@ @@@ HB@ HB@ HB
+@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@PC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@0LC@ HB@ HB
+@ HB@ HB@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@PC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@0LC
+@ HB@ HB@ HB@ HB@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@HC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@P@EAPTEAPT@@@HB@0LC
+@0LC@0LC@ HB@ HB@ HB@PD@@@TEAPTEAPTE@@@B@ LC@0LC@0LB@ HB@ HB@PD@@@TEAPTEAPTEAPTEAP@@@ HC@0LC@0HB@ HB@PD@@@TEAPTEAPTEAPTE
+APTEAPT@@@HB@0LC@ HB@PD@@@TEAPTEAPTEAPTEAPTEAPTEAPTE@@@B@ LB@PD@@@TEAPTEAPTEAPTEAPTEAPTEAPTEAPTEAP@@@ D@@@TEAPTEAPTEAPTE
+APTEAPTEAPTEAPTEAPTEAPT@@@TEAPTEAPTEAPTEAPTEAP@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???8G???>A???? _???8G???>A??
+?? _???8G???>A???? G??? @_?? @A?? @@G? @@@_ @@@A @@b') ; yourself); yourself]
+!
+
+normalPackage
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackage inspect
+     ImageEditor openOnClass:self andSelector:#normalPackage
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackage'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAPTEAPTEAPTE@@@EAPTEAP@EAPTEAPTEAPTEAPTEAPTEAPTEAPTE@@@DA@@EAPT@A@@@APTEAPTEAPTEAPTEAPTEAPTE@@@DA@LCA@@E@@PCA@P@@@TE
+APTEAPTEAPTEAPTE@@@DA@LC@0LC@@@D@0LC@0PD@@@EAPTEAPTEAPTE@@@DA@LC@0LC@@@A@ @@@0LC@0LDA@@@APTEAPTE@@@DA@LC@0LC@@@A@PDA@ D@
+@@LC@0LCA@P@@@TE@@@DA@LC@0LC@@@A@PDA@PHA@ DB@@@C@0LC@0PD@@@E@@PC@0LC@@@A@PDA@PDA@PHA@ DB@P@@@0LC@0L@APTE@@PC@@@A@PDA@PDA
+@PDB@PHA@ DB@PH@@@LC@@TE@@@@@@@A@PDA@PDA@PDA@PDB@PHA@ DB@PHA@@@@@@@E@@@C@0@@@PDA@PDA@PDA@ DB@PHA@ DB@@@C@0@@APTEAP@@@0L@
+@@DA@PDA@PDA@ DB@PHA@@@C@0@@APTEAPTE@@P@@@LC@@@A@PDA@PHA@ DB@@@C@0@@@ @EAPTEAPT@A@LC@@@C@0@@@PDA@PHA@@@C@0@@@ HB@@TEAPTE
+AP@D@0LC@0@@@0L@@@DB@@@C@0@@@ HB@ H@APTEAPTE@@PC@0LC@0L@@@LC@@@C@0@@@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@@@C@ @@@ HB@ HB@ HB
+@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@PC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@0LC@ HB@ HB
+@ HB@ HB@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@PC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@ @EAPTEAPT@A@LC@0LC@0LC@0LC
+@ HB@ HB@ HB@ HB@@TEAPTEAP@D@0LC@0LC@0LC@0LB@ HB@ HB@ HB@ H@APTEAPTE@@HC@0LC@0LC@0LC@0HB@ HB@ HB@ HB@P@EAPTEAPT@@@HB@0LC
+@0LC@0LC@ HB@ HB@ HB@PD@@@TEAPTEAPTE@@@B@ LC@0LC@0LB@ HB@ HB@PD@@@TEAPTEAPTEAPTEAP@@@ HC@0LC@0HB@ HB@PD@@@TEAPTEAPTEAPTE
+APTEAPT@@@HB@0LC@ HB@PD@@@TEAPTEAPTEAPTEAPTEAPTEAPTE@@@B@ LB@PD@@@TEAPTEAPTEAPTEAPTEAPTEAPTEAPTEAP@@@ D@@@TEAPTEAPTEAPTE
+APTEAPTEAPTEAPTEAPTEAPT@@@TEAPTEAPTEAPTEAPTEAP@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???8G???>A???? _???8G???>A??
+?? _???8G???>A???? G??? @_?? @A?? @@G? @@@_ @@@A @@b') ; yourself); yourself]
+!
+
+normalPackageFavourite
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackageFavourite inspect
+     ImageEditor openOnClass:self andSelector:#normalPackageFavourite
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackageFavourite'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B (JB (JB (JB (J@@@JB (JB @JB (JB (JB (JB (JB (JB (JB (J@@@IBP@JB (@BP@@B (JB (JB (JB (JB (JB (J@@@IBP HBP@J@@$HBP$@@@(J
+B (JB (JB (JB (J@@@IBP HB@ H@@@IB@ HB@$I@@@JB (JB (JB (J@@@IBP HB@ H@@@DA @@B@ HB@ IBP@@B (JB (J@@@IBP HB@ H@@@DA@PDA P@
+@@ HB@ HBP$@@@(J@@@IBP HB@ H@@@DA@PDA@XDA PF@@@HB@ HB@$I@@@J@@$HB@ H@@@DA@PDA@PDA@XDA PFA@@@B@ HB@ @B (J@@$H@@@DA@PDA@PD
+A@PFA@XDA PFA@X@@@ H@@(J@@@@@@@DA@PDA@PDA@PDA@PFA@XDA PFA@XD@@@@@@@J@@@HB@@@A@PDA@PDA@PDA PFA@XDA PF@@@HB@@@B (JB @@B@ @
+@@PDA@PDA@PDA PFA@XD@@@HB@@@B (JB (J@@$@@@ H@@@DA@PDA@XDA PF@@@HB@@@A @JB (JB (@BP H@@@HB@@@A@PDA@XD@@@HB@@@A XF@@(JB (J
+B @IB@ HB@@@B@ @@@PF@@@HB@@@A XFA X@B (JB (J@@$HB@ HB@ @@@ H@@@HB@@@A XFA XFA @JB (JB (@BP HB@ HB@ H@@@HA @@A XFA XFA XF
+@@(JB (JB @IB@ HB@ HB@ HB@ FA XFA XFA XFA X@B (JB (J@@$HB@ HB@ HB@ HB@XFA @@@@@FA X@@@@@B (JB (@BP HB@ HB@ HB@ HA X@@0TC
+AP@F@@LB@0H@B (JB @IB@ HB@ HB@ HB@ F@@TEA0TE@0H@@0HC@ H@B (J@@$HB@ HB@ HB@ HB@X@AP\EA0TE@@LC@0HC@ @JB (@BP HB@ HB@ HB@ H
+A @EA0\EAPLA@0LC@0HB@@(JB @IB@ HB@ HB@ HB@ F@@TGAPTC@0HC@0LB@0H@B (J@@XHB@ HB@ HB@ HB@XF@@LGAPTC@0LC@0LB@@(JB (@@@XFB@ H
+B@ HB@ HA X@APTE@0TC@0LB@0H@B (JB (J@@@FA  HB@ HB@ FA X@@0LE@0LC@ LB@@(JB (JB (JB @@A XHB@ HB@XFA X@APLE@0HC@ @JB (JB (J
+B (JB (@@@XFB@ HA XFA@P@@0LC@0H@B (JB (JB (JB (JB (J@@@FA  FA@P@@@(@@0LB@@(JB (JB (JB (JB (JB (JB @@A P@@@(JB (@@0@JB (J
+B (JB (JB (JB (JB (JB (@@@(JB (JB (@B (JB (JB @a') ; colorMapFromArray:#[0 0 0 128 0 0 192 0 0 255 0 0 128 128 0 255 128 0 192 192 0 255 192 192 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???8G????A????8_????G????1??
+??<_????G????!!????8G???<@_??>@A???@@G?/ @@_!!0@@A H@b') ; yourself); yourself]
+!
+
+normalPackageGames
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackageGames inspect
+     ImageEditor openOnClass:self andSelector:#normalPackageGames
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackageGames'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B0,KB0,KB0,KB0,K@@@KB0,KB0@KB0,KB0,KB0,KB0,KB0,KB0,KB0,K@@@JB @KB0,@B @@B0,KB0,KB0,KB0,KB0,KB0,K@@@JB $IB @K@@(IB (@@@,K
+B0,KB0,KB0,KB0,K@@@JB $IBP$I@@@JBP$IBP(J@@@KB0,KB0,KB0,K@@@JB $IBP$I@@@DAP@@BP$IBP$JB @@B0,KB0,K@@@JB $IBP$I@@@DA@PDAPP@
+@@$IBP$IB (@@@,K@@@JB $IBP$I@@@DA@PDA@TDAPPE@@@IBP$IBP(J@@@K@@(IBP$I@@@DA@PDA@PDA@TDAPPEA@@@BP$IBP$@B0,K@@(I@@@DA@PDA@PD
+A@PEA@TDAPPEA@T@@@$I@@,K@@@@@@@DA@PDA@PDA@PDA@PEA@TDAPPEA@TD@@@@@@@K@@@IBP@@A@PDA@PDA@PDAPPEA@TD@@@@A@@IBP@@B0,KB0@@BP$@
+@@PDA@PDA@PDAPPEA@@C@0L@BP@@B0,KB0,K@@(@@@$I@@@DA@PDA@TDAPPE@@@@@@@@AP@KB0,KB0,@B $I@@@IBP@@A@PDA@TD@@@@B  F@@TE@@,KB0,K
+B0@JBP$IBP@@BP$@@@PE@@@IBP@JB@X@APT@B0,KB0,K@@(IBP$IBP$@@@$I@@@IBP@@@@(HA @EAP@KB0,KB0,@B $IBP$IBP$I@@@IAP@@APT@B  F@@TE
+@@,KB0,KB0@JBP$IBP$IBP$IBP$EAPTEAP@JB@X@APT@B0,KB0,K@@(IBP$IBP$IBP$IBPTEAPT@@@(HA @EAP@KB0,KB0,@B $IBP$IBP$IBP$IAPT@@@\@
+B  F@@TE@@,KB0,KB0@JBP$IBP$IBP$IBP$@@@HBA0@JB@X@@@T@B0,KB0,K@@(IBP$IBP$IBP$I@@DB@0HG@@(HA @@@@@KB0,KB0,@B $IBP$IBP$IBP@H
+B (A@P\@B  F@@\G@@@KB0,KB0@JBP$IBP$IBP$I@@ HB@(JA0\@@@@GA0\GA0@KB0,K@@TIBP$IBP$IBP$@B@ HB@ JB \GA0\GA0 HA @KB0,@@@TEBP$I
+BP$IBP@GB@ HB@ HB (GA0 HA XF@@,KB0,K@@@EAP$IBP$IBP@GA0 HB@ HB@(HA XFA X@B0,KB0,KB0@@APTIBP$IBP@@A0\HB@ HB@XFA XFA @KB0,K
+B0,KB0,@@@TEBP$IAPT@@@\GB@ HA XFA X@B0,KB0,KB0,KB0,K@@@EAP$EA@P@@@@GA0 FA X@@@,KB0,KB0,KB0,KB0,KB0@@APP@@@,KB0@@A0X@@@,K
+B0,KB0,KB0,KB0,KB0,KB0,@@@,KB0,KB0,@@@,KB0,KB0@a') ; colorMapFromArray:#[0 0 0 128 0 0 192 0 0 255 0 0 128 128 0 192 192 0 128 128 128 160 160 160 195 195 195 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???8G???>A???? _???8G???>A??
+??0_???>G????1????<G????@_???0A???8@G??<@@_#<@@A L@b') ; yourself); yourself]
+!
+
+normalPackageGraphics
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackageGraphics inspect
+     ImageEditor openOnClass:self andSelector:#normalPackageGraphics
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackageGraphics'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+HB@ HB@ HB@ HB@ @@@ HB@ H@@ HB@ HB@ HB@ HB@ HB@ HB@ HB@ @@@_G0@ HB@@G0@@HB@ HB@ HB@ HB@ HB@ HB@ @@@_G18^G0@ @A<^G1<@@B@ 
+HB@ HB@ HB@ HB@ @@@_G18^G!!8^@@@_G!!8^G!!<_@@@ HB@ HB@ HB@ @@@_G18^G!!8^@@@QE@@@G!!8^G!!8_G0@@HB@ HB@ @@@_G18^G!!8^@@@QDQDQEAD@
+@A8^G!!8^G1<@@B@ @@@_G18^G!!8^@@@QDQDQDQPQEADT@@@^G!!8^G!!<_@@@ @A<^G!!8^@@@QDQDQDQDQDQPQEADTDP@@G!!8^G!!8@HB@ @A<^@@@QDQDQDQDQ
+DQDTDQPQEADTDQP@@A8^@B@ @@@@@@@QDQDQDQDQDQDQDQDTDQPQEADTDQPQ@@@@@@@ @@@^G @@DQDQDQDQDQDQEADTDQPQEADT@@@^G @@HB@ H@@@G!!8@
+@ADQDQDQDQDQEADTDQPQ@@@^G @@HB@ HB@ @A<@@A8^@@@QDQDQDQPQEADT@@@^G @@E@@ HB@ HB@@G18^@@@^G @@DQDQDQPQ@@@^G @@EAPT@B@ HB@ 
+H@@_G!!8^G @@G!!8@@ADT@@@^G @@EAPTEAP@HB@ HB@ @A<^G!!8^G!!8@@A8^@@@@@@@@@@@@@@@@@@@@@@@ HB@@G18^G!!8^G!!8^@@@^@A$Y@QXVE!!XV@Q$Y
+@Q$Y@B@ H@@_G!!8^G!!8^G!!8^G!!8@FQ$AE!!XVE!!XAFQ$AFQ$@HB@ @A<^G!!8^G!!8^G!!8^G @@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@^@@(JA@PB
+@ \GC 8QDP4M@@@XFA XFA XFA XFA XF@@@B (DA@HBA0\NC!!DQCP4@@ALSD1LSD1LSD1LSD1L^G @KB0TE@0LHB@<OEAPRD @@CP4MCP4MCP4MCP4MCQ8^
+FP@KAPTC@0 HC0<TEAHR@@@RD!!HRD!!HRD!!HRD!!HRG!!8@C@0FA!!\WBP$PDATUD1L@@@4MCP4MCP4MCP4MCP4M@@@LC@XFE1\IBQ@PEQTSD0@ @@@@@@@@@@@@
+@@@@@@@^@A0\F1,ZF!!<_GQ4^G!! X@B@ HB@ @@@TEA8^G!!8^G!!8@GA0[F1(ZG1<]GQ8^FA @HB@ HB@ H@@@EAP^G!!8^G @@@@@@@@@@@@@@@@@@@@@ HB@ 
+HB@ HB@@@APTG!!8^EAPTDQD@@B@ HB@ HB@ HB@ HB@ HB@ HB@ @@@TEA8TDQD@@B@ HB@ HB@ HB@ HB@ HB@ HB@ HB@ H@@@EAD@@B@ HB@ HB@ HB@ 
+HB@ HB@ HB@ HB@ HB@ HB@@@B@ HB@ HB@ HB@ HB@ H@@a') ; colorMapFromArray:#[0 0 0 88 88 88 0 0 128 0 0 255 0 128 0 0 192 0 0 128 0 0 128 128 0 192 192 0 255 255 128 0 0 192 0 0 255 0 0 192 88 0 128 0 128 192 0 192 255 0 255 128 128 0 255 128 0 255 168 88 192 192 0 255 255 0 128 128 128 128 128 255 255 220 168 195 195 195 192 192 255 192 255 192 255 192 192 255 192 255 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G????1????<_????G????7??????????????????
+?????????????7????<G????@_???0A?? @@G? @@@_ @@@A @@b') ; yourself); yourself]
+!
+
+normalPackageMutimedia
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackageMutimedia inspect
+     ImageEditor openOnClass:self andSelector:#normalPackageMutimedia
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackageMutimedia'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+DA@PDA@PDA@PDA@P@@@PDA@PD@@PDA@PDA@PDA@PDA@PDA@PDA@PDA@P@@@OC0@PDA@@C0@@DA@PDA@PDA@PDA@PDA@PDA@P@@@OC08NC0@P@@<NC0<@@A@P
+DA@PDA@PDA@PDA@P@@@OC08NC 8N@@@OC 8NC <O@@@PDA@PDA@PDA@P@@@OC08NC 8N@@@DAP@@C 8NC 8OC0@@DA@PDA@P@@@OC08NC 8N@@@DA@PDAPP@
+@@8NC 8NC0<@@A@P@@@OC08NC 8N@@@DA@PDA@TDAPPE@@@NC 8NC <O@@@P@@<NC 8N@@@DA@PDA@PDA@TDAPPEA@@@C 8NC 8@DA@P@@<N@@@DA@PDA@PD
+A@PEA@TDAPPEA@T@@@8N@A@P@@@@@@@DA@PDA@PDA@PDA@PEA@TDAPPEA@TD@@@@@@@P@@@NC @@A@PDA@PDA@PDAPPEA@TDAPPE@@@NC @@DA@PD@@@C 8@
+@@PDA@PDA@PDAPPEA@TD@@@NC @@DA@PDA@P@@<@@@8N@@@DA@PDA@TDAPPE@@@NC @@AP@PDA@PDA@@C08N@@@NC @@A@PDA@TD@@@NC @@APTE@A@PDA@P
+D@@OC 8NC @@C 8@@@PE@@@N@@@@@@@@APT@DA@PDA@P@@<NC 8NC 8@@@8N@@@N@@@HB@ HB@ @@@@PDA@PDA@@C08NC 8NC 8N@@@NAP@MB@ HB@ HB@ H
+@A@PDA@PD@@OC 8NC 8NC 8NC 8@B0LMB@ HB@ HB@<O@A@PDA@P@@<NC 8NC 8NC 8N@@DAB0LHB@ HB@ OC0<H@A@PDA@@C08NC 8NC 8NC 8@B@(AB0LH
+B@ HB@<OB@ @DA@PD@@OC 8NC 8NC 8N@@ HB@ AB0\FA \OB@ HB@ @DA@P@@<NC 8NC 8NC 8@B@ HB@ GA @@A \HB@ HB@@PDA@@C08NC 8NC 8NC @H
+B@ HB@X@APT@A  HB@ H@A@PD@@OC 8NC 8NC 8N@@ HB@ HA @EC @FB@ HB@ @DA@P@@TNC 8NC 8NC 8@B@ HB@ GA @@A \HB@ HB@@PDA@@@@TEC 8N
+C 8NC @HB@ HB@<GA XGBPHHB@ H@A@PDA@P@@@EAP8NC 8NC @HB@<OB@ HB@ CBPHKB@@PDA@PDA@PD@@@APTNC 8N@@ OC0<HB@ HB@ CBPHB@A@PDA@P
+DA@PDA@@@@TEC 8N@@<OB@ HB@ HB@0CBP@PDA@PDA@PDA@PDA@P@@@EAP8E@@ HB@ HB@ HB@0@DA@PDA@PDA@PDA@PDA@PD@@@APP@@@@HB@ HB@ @@A@P
+DA@PDA@PDA@PDA@PDA@PDA@@@A@PD@@@@@@@@A@PDA@PD@@a') ; colorMapFromArray:#[0 0 0 0 128 0 0 255 255 255 0 255 128 128 0 192 192 0 128 128 128 160 160 160 195 195 195 192 192 255 192 255 192 192 255 255 255 192 192 255 192 255 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???<G????!!????8_????G????1??
+??<_????G????1????<G???>@_??? A???0@G??8@@_?<@@A#<@b') ; yourself); yourself]
+!
+
+normalPackageNetwork
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackageNetwork inspect
+     ImageEditor openOnClass:self andSelector:#normalPackageNetwork
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackageNetwork'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+C@0LC@0LC@0LC@0L@@@LC@0LC@@LC@0LC@0LC@0LC@0LC@0LC@0LC@0L@@@KB0@LC@0@B0@@C@0LC@0LC@0LC@0LC@0LC@0L@@@KB0(JB0@L@@,JB0,@@@0L
+C@0LC@0LC@0LC@0L@@@KB0(JB (J@@@KB (JB ,K@@@LC@0LC@0LC@0L@@@KB0(JB (J@@@FA0@@B (JB (KB0@@C@0LC@0L@@@KB0(JB (J@@@FA XFA0X@
+@@(JB (JB0,@@@0L@@@KB0(JB (J@@@FA XFA \FA0XG@@@JB (JB ,K@@@L@@,JB (J@@@FA XFA XFA \FA0XGA @@B (JB (@C@0L@@,J@@@FA XFA XF
+A XGA \FA0XGA \@@@(J@@0L@@@@@@@FA XFA XFA XFA XGA \FA0XGA \F@@@@@@@L@@@JB @@A XFA XFA X@@@@@@@@@@@@G@@@JB @@C@0LC@@@B (@
+@@XFA XF@@$IBP$IBP$IBP@JB @@C@0LC@0L@@,@@@(J@@@FA @IBP$IBP$IBP$H@@@@A0@LC@0LC@0@B0(J@@@JB @@@@,KB0,KB0,KB@ @A0\G@@0LC@0L
+C@@KB (JB @@B (@BP HB@ HB@$HB@@GA0\@C@0LC@0L@@,JB (JB (@@@@I@ HB@ HBB0 @@@@@@@@@@@0LC@0@B0(JB (JB (J@@$AA@DB@PHK@@$IBP$I
+BP$I@@0LC@@KB (JB (JB (@BPDA@PDA@P@IBP$IBP$IBP @C@0L@@,JB (JB (JB @I@PDA@PD@B0,KB0,KB0,HB@@LC@0@B0(JB (JB (J@@,KB0,KB0@I
+B@ HB@ HBP H@@0LC@@KB (JB (JB (J@@@@@@@@@@$B@ HB@ HKB@ @C@0L@@,JB (JB (JB (@B@ HB@ @BPHD@ DB@P,HB@@LC@0@B0(JB (JB (J@@,K
+B0,KB0@I@PDA@PDAB0 H@@0LC@@KB (JB (JB (@BP$IBP$I@@$A@PDA@PDKB@@LC@0L@@\JB (JB (JB @I@0$@@@@@B0,KB0,KB0,@B@@LC@0@@@\GB (J
+B (J@@$IBP$IBP$@@@@@@@@@@@ I@@0LC@0L@@@GA0(JB (J@@@@@@@@@@@HB@ HB@ HBP @C@0LC@0LC@@@A0\JB (JB \GA0\@B0,KB0,KB0,HB@@LC@0L
+C@0LC@0@@@\GB (JA0\GA @IBP$IBP$IBP H@@0LC@0LC@0LC@0L@@@GA0(GA X@@@$EBP@@@@@IB@@LC@0LC@0LC@0LC@0LC@@@A0X@@@0@BP$IBP$IBP$@
+C@0LC@0LC@0LC@0LC@0LC@0@@@0LC@0@@@@@@@@@@@0LC@@a') ; colorMapFromArray:#[0 0 0 0 0 128 0 0 255 0 128 0 0 255 255 255 0 0 128 128 0 192 192 0 128 128 128 195 195 195 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G????!!????<_????G????1????<_????G????1??
+??<_???>G????1????<G????@_???0A???<@G??>@@_/?@@A!!? b') ; yourself); yourself]
+!
+
+normalPackageSettings
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackageSettings inspect
+     ImageEditor openOnClass:self andSelector:#normalPackageSettings
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackageSettings'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B@ HB@ HB@ HB@ H@@@HB@ HB@@HB@ HB@ HB@ HB@ HB@ HB@ HB@ H@@@GA0@HB@ @A0@@B@ HB@ HB@ HB@ HB@ HB@ H@@@GA0XFA0@H@@\FA0\@@@ H
+B@ HB@ HB@ HB@ H@@@GA0XFA XF@@@GA XFA \G@@@HB@ HB@ HB@ H@@@GA0XFA XF@@@A@ @@A XFA XGA0@@B@ HB@ H@@@GA0XFA XF@@@A@PDA@ D@
+@@XFA XFA0\@@@ H@@@GA0XFA XF@@@A@PDA@PHA@ DB@@@FA XFA \G@@@H@@\FA XF@@@A@PDA@PDA@PHA@ DB@P@@A XFA X@B@ H@@\F@@@A@PDA@PDA
+@PDB@PHA@ DB@PH@@@XF@@ H@@@@@@@A@PDA@PDA@PDA@PDB@PHA@ DB@PHA@@@@@@@H@@@FA @@@PDA@PDA@PDA@ DB@PHA@ DB@@@FA @@B@ HB@@@A X@
+@@DA@PDA@PDA@ DB@PHA@@@FA @@B@ HB@ H@@\@@@XF@@@A@PDA@PHA@ DB@@@FA @@@ @HB@ HB@ @A0XF@@@FA @@@PDA@PHA@@@FA @@@ HB@@ HB@ H
+B@@GA XFA @@A X@@@DA@@@FA @@@@HB@ H@B@ HB@ H@@\FA XFA X@@@XF@@@FA @@@@\D@@HB@ @HB@ HB@ @A0XFA XFA XF@@@F@ @@@ H@A0P@@ H@
+@@ HB@ HB@@GA XFA XFA XFA X@A@\@@@\EAPL@@@\D@@ HB@ H@@\FA XFA XFA XFA @CAP\GAPTEAP\GAPL@B@ HB@ @A0XFA XFA XFA XF@ @DAPTE
+APTEAPTC@@ HB@ HB@@GA XFA XFA XFA XB@@\EAPPCA@TEAPP@B@ HB@ H@@\FA XFA XFA XF@@@GAPTD@0@@A0TEAPP@@@ HB@ @A0XFA XFA XFA @G
+A0TEAPL@@ H@A0TEAP\D@@ HB@@GA XFA XFA XF@@LCAPTEA@@B@ @GAPTE@0L@B@ H@@HFA XFA XFA XF@@@DA@TEA0@@A0TEAPL@@@ HB@ @@@HBA XF
+A XFA XF@ @DAPTEA0\EAPTC@@ HB@ HB@ H@@@B@ XFA XFA XB@@\EAPTEAPTEAPL@B@ HB@ HB@ HB@@@@ HFA XFA @GAPLDAPTEAPTGAPL@B@ HB@ H
+B@ HB@ @@@HBA XF@@PC@@@GAPTC@@@D@0@HB@ HB@ HB@ HB@ H@@@B@ XB@@@@@@@G@0@HB@@@B@ HB@ HB@ HB@ HB@ HB@@@@ H@@@ H@@\C@@ HB@ H
+B@ HB@ HB@ HB@ HB@ HB@ @@@ HB@ H@@@HB@ HB@ HB@@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 128 128 128 160 160 160 195 195 195 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???<G????A???? _???8G????!!??
+??<_????G????!!???? G???8@_???@A???0@G?>X@@_'' @@A 0@b') ; yourself); yourself]
+!
+
+normalPackageSystem
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackageSystem inspect
+     ImageEditor openOnClass:self andSelector:#normalPackageSystem
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackageSystem'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+B@ HB@ HB@ HB@ H@@@HB@ HB@@HB@ HB@ HB@ HB@ HB@ HB@ HB@ H@@@GA0@HB@ @A0@@B@ HB@ HB@ HB@ HB@ HB@ H@@@GA0XFA0@H@@\FA0\@@@ H
+B@ HB@ HB@ HB@ H@@@GA0XFA XF@@@GA XFA \G@@@HB@ HB@ HB@ H@@@GA0XFA XF@@@BA@@@A XFA XGA0@@B@ HB@ H@@@GA0XFA XF@@@B@ HBA@H@
+@@XFA XFA0\@@@ H@@@GA0XFA XF@@@B@ HB@ PBA@HD@@@FA XFA \G@@@H@@\FA XF@@@B@ HB@ HB@ PBA@HD@ @@A XFA X@B@ H@@\F@@@B@ HB@ HB
+@ HD@ PBA@HD@ P@@@XF@@ H@@@@@@@B@ HB@ HB@ HB@ HD@ PBA@HD@ PB@@@@@@@H@@@FA @@@ HB@ HB@ HBA@HD@ @@@@@D@@@FA @@B@ HB@@@A X@
+@@HB@ HB@ HBA@H@@@@@@@@FA @@B@ HB@ H@@\@@@XF@@@B@ HB@ PBA@@G@@@G@@@@@ @HB@ HB@ @A0XF@@@FA @@@ HB@ P@@@@@@@@@@ HB@@ HB@ H
+B@@GA XFA @@A X@@@H@@@X@@@DC@0D@@ H@B@ HB@ H@@\FA XFA X@@@XF@@@@@@@@@0LC@0L@@ @HB@ HB@ @A0XFA XFA XF@@@F@ HB@@@@@PDC@0@B
+@@ HB@ HB@@GA XFA XFA XF@@@B@ H@@@@@@@@@@ H@@@ HB@ H@@\FA XFA XFA @G@@HB@@@@@@@@@@@B@ @G@@ HB@ @A0XFA XFA X@A0\@@@@@@@@G
+A0@@@@@@@@\G@@ HB@@GA XFA XFA @GA0\@@@@@@@\G@@@@@@@GA0\@B@ H@@\FA XFA XFA @@@@@@@@@@A0\@@@@@@@@@@@ HB@ @A0XFA XFA XFA XF
+@ @@@@@GA0@@@@@B@@ HB@ HB@@GA XFA XFA XFA XB@@@@AP\GAP@@@@H@B@ HB@ H@@PFA XFA XFA XFA H@@@\GA0\GA0@@@ @HB@ HB@ @@@PDA XF
+A XFA XF@ @GA0\GA0\GA0@@@@ HB@ HB@ H@@@DA@XFA XFA XB@@\GA0\GA0\G@@ HB@ HB@ HB@ HB@@@A@PFA XFA H@A0\GA0\GA0\@B@ HB@ HB@ H
+B@ HB@ @@@PDA XF@ H@@@\GA0\@@@ HB@ HB@ HB@ HB@ HB@ H@@@DA@XB@@LC@@@@@@LC@@ HB@ HB@ HB@ HB@ HB@ HB@@@A@@C@0L@B@ @@0LC@@ H
+B@ HB@ HB@ HB@ HB@ HB@ @B@@@@@ HB@ @@@@HB@ HB@@a') ; colorMapFromArray:#[0 0 0 192 88 0 128 128 0 255 128 0 192 192 0 128 128 128 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???8G???>A???? _???<G????!!????<_????G????!!??
+?? _???8G???>A???? G??? @_??8@A??<@@G?? @@_9<@@A\N@b') ; yourself); yourself]
+!
+
+normalPackageUtilities
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self normalPackageUtilities inspect
+     ImageEditor openOnClass:self andSelector:#normalPackageUtilities
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class normalPackageUtilities'
+        ifAbsentPut:[(Depth8Image new) width: 32; height: 32; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+C 8NC 8NC 8NC 8N@@@NC 8NC @NC 8NC 8NC 8NC 8NC 8NC 8NC 8N@@@MCP@NC 8@CP@@C 8NC 8NC 8NC 8NC 8NC 8N@@@MCP0LCP@N@@4LCP4@@@8N
+C 8NC 8NC 8NC 8N@@@MCP0LC@0L@@@MC@0LC@4M@@@NC 8NC 8NC 8N@@@MCP0LC@0L@@@CA @@C@0LC@0MCP@@C 8NC 8N@@@MCP0LC@0L@@@C@0LCA L@
+@@0LC@0LCP4@@@8N@@@MCP0LC@0L@@@C@0LC@0XCA LF@@@LC@0LC@4M@@@N@@4LC@0L@@@C@0LC@0LC@0XCA LF@0@@C@0LC@0@C 8N@@4L@@@C@0LC@0LC
+@0LF@0XCA LF@0X@@@0L@@8N@@@@@@@C@0LC@0LC@0LC@0LF@0XCA LF@0XC@@@@@@@N@@@LC@@@@0LC@0LC@0LCA LF@0XCA LF@@@LC@@@C 8NC @@C@0@
+@@LC@0LC@0LF@0@@@@@@@@@LC@@@C 8NC 8N@@4@@@0L@@@C@0LC@0L@A0DA@P@LC@@@A @NC 8NC 8@CP0L@@@LC@@@@0LC@@\GA0\G@@@@A XF@@8NC 8N
+C @MC@0LC@@@C@0@@@@GA0 A@PD@A XF@@@@@@8NC 8N@@4LC@0LC@0@@@0@A0\H@PDA@P@FA @KB @NC 8NC 8@CP0LC@0LC@0L@@\GB@DA@PDA@@X@B0(@
+C 8N@@8NC @MC@0LC@0LC@@GA0 A@PDA@P@FA @KB @NC @@C 8N@@4LC@0LC@0L@@\H@PDA@PD@A XF@@,JB0@@B @NC 8@CP0LC@0LC@0@B@DA@PDA@@$@
+A @KB HJB0,B@@8NC @MC@0LC@0LC@@A@PDA@P@DAP$@B0(BB HB@ @NC 8N@@4LC@0LC@0LC@@A@PD@A @D@@,J@ (B@@@@C 8NC 8@CP0LC@0LC@0LC@@A
+@@XFA @KB HJ@ @F@@8NC 8NC @MC@0LC@0LC@0LC@@FA X@B0(BB H@A X@C 8NC 8N@@XLC@0LC@0LC@0LC@XF@@,J@ (B@@$@A @NC 8NC 8@@@XFC@0L
+C@0LC@0LA @KB HJ@ @DAP$@@@8NC 8NC 8N@@@FA 0LC@0LC@0@B0(BB H@A @DAP$@C 8NC 8NC 8NC @@A XLC@0L@@,J@ (B@@X@@@@DAP$@C 8NC 8N
+C 8NC 8@@@XFC@@KB HJ@ @@@@8NC @DAP$@C 8NC 8NC 8NC 8N@@@F@@,BB H@@@8NC 8NC @DAP$@C 8NC 8NC 8NC 8NC @@@ HB@@8NC 8NC 8NC @D
+AP@NC 8NC 8NC 8NC 8NC 8@@@@NC 8NC 8NC 8NC @@C @a') ; colorMapFromArray:#[0 0 0 88 88 88 0 192 192 128 128 0 255 128 0 255 168 88 192 192 0 128 128 128 160 160 160 255 220 168 195 195 195 192 255 255 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 32; height: 32; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@0P@@@>O@@@?7<@@???0@????@????<?????7????8????<?????7????8_???8G???>A???? _???<G???>A????D_???3G????1????<_???>G????A??
+?? _???8G???>A???? G???8@_???@A??#8@G? _@@_ C0@A0@Xb') ; yourself); yourself]
+!
+
+notInstalledpackageIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self notInstalledpackageIcon inspect
+     ImageEditor openOnClass:self andSelector:#notInstalledpackageIcon
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class notInstalledpackageIcon'
+        ifAbsentPut:[(Depth2Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@ATET@AUEE@APQAP@TDQT@A]5_@@UUU\@O5?G@@E@M0C=_3\@?W<7@O5?M0C=_3\@?W<4@O5?M@C=_0@@@T@@@@a') ; colorMapFromArray:#[0 0 0 132 0 132 255 255 0 152 156 152]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A30O[A%LF?<O?0??G?<??3??O?<??3??O?8??C?8O?@b') ; yourself); yourself]
+!
+
+packageDirtyIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self packageDirtyIcon inspect
+     ImageEditor openOnClass:self andSelector:#packageDirtyIcon
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class packageDirtyIcon'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAPT@@@TEAP@EAPTEAPTEAP@@@0L@@@@C@@@EAPTE@@@C@0@@@PH@@@LC@@@E@@LC@@@A@PDB@ H@@@LC@@@@@@DA@PDA@ HB@ H@@@@E@@L@@@DA@PHB
+@ @@@@TEAP@C@0L@@@DB@@@B@ @EAPT@@0@C@@L@@@HB@@H@APTE@@LC@0LC@0H@@ H@@@TEAP@C@@L@@0@B@ @B@ @EAPT@@0LC@0LC@@HB@ @@APTE@@L@
+@0@C@@HB@@HB@@TEAP@B@0LC@0L@@ HB@@@EAPTE@@@B@0@C@ H@@@TEAPTEAPTE@@@B@0@@APTEAPTEAPTEAPTE@@@EAPTEAPTEAP@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 255 255 192 200 200 200 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??G?<_?1??G?<_?0?<@?@@0@b') ; yourself); yourself]
+!
+
+packageIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self packageIcon inspect
+     ImageEditor openOnClass:self andSelector:#packageIcon
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class packageIcon'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAPT@@@TEAP@EAPTEAPTEAP@@@0L@@@@C@@@EAPTE@@@C@0@@@PH@@@LC@@@E@@LC@@@A@PDB@ H@@@LC@@@@@@DA@PDA@ HB@ H@@@@E@@L@@@DA@PHB
+@ @@@@TEAP@C@0L@@@DB@@@B@ @EAPT@@0LC@0L@@@HB@ H@APTE@@LC@0LC@0HB@ HB@@TEAP@C@0LC@0LB@ HB@ @EAPT@@0LC@0LC@ HB@ H@APTE@@LC
+@0LC@0HB@ HB@@TEAP@B@0LC@0LB@ HB@@@EAPTE@@@B@0LC@ H@@@TEAPTEAPTE@@@B@0@@APTEAPTEAPTEAPTE@@@EAPTEAPTEAP@a') ; colorMapFromArray:#[0 0 0 128 128 0 192 192 0 255 255 192 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??G?<_?1??G?<_?0?<@?@@0@b') ; yourself); yourself]
+!
+
+packageOverriddenIcon
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self packageOverriddenIcon inspect
+     ImageEditor openOnClass:self andSelector:#packageOverriddenIcon
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:#'Packages::PackageSelector::HierarchicalPackageSelector class packageOverriddenIcon'
+        ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(nil )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+APTEAPT@@@TEAP@EAPTEAPTEAP@@@0L@@@@C@@@EAPTE@@@C@0@@@PH@@@LC@@@E@@LC@@@A@PDB@ H@@@LC@@@@@@DA@PDA@ HB@ H@@@@E@@L@@@DA@PHB
+@ @@@@TEAP@C@0L@@@DB@@@B@ @EAPT@@0LC@0L@@@HB@ H@APTE@@LC@0LC@0HB@ HB@@TEAP@C@0LC@0LB@ HB@ @EAPT@@0LC@0LC@ HB@ H@APTE@@LC
+@0LC@0HB@ HB@@TEAP@B@0LC@0LB@ HB@@@EAPTE@@@B@0LC@ H@@@TEAPTEAPTE@@@B@0@@APTEAPTEAPTEAPTE@@@EAPTEAPTEAP@a') ; colorMapFromArray:#[0 0 0 192 0 0 250 0 0 255 150 150 255 255 255 0 0 0]; mask:((ImageMask new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'A"@_>G?>?????7?<_?1??G?<_?1??G?<_?0?<@?@@0@b') ; yourself); yourself]
+! !
+
+!PackageSelector::HierarchicalPackageSelector class methodsFor:'interface specs'!
+
+windowSpec
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "
+     UIPainter new openOnClass:Packages::PackageSelector::HierarchicalPackageSelector andSelector:#windowSpec
+     Packages::PackageSelector::HierarchicalPackageSelector new openInterface:#windowSpec
+     Packages::PackageSelector::HierarchicalPackageSelector open
+    "
+
+    <resource: #canvas>
+
+    ^ 
+     #(#FullSpec
+        #name: #windowSpec
+        #window: 
+       #(#WindowSpec
+          #label: 'Packages::PackageSelectorApplication'
+          #name: 'Packages::PackageSelectorApplication'
+          #min: #(#Point 10 10)
+          #max: #(#Point 1024 768)
+          #bounds: #(#Rectangle 29 59 329 359)
+          #menu: #mainMenu
+        )
+        #component: 
+       #(#SpecCollection
+          #collection: #(
+           #(#HierarchicalListViewSpec
+              #name: 'SelectionInListModelView2'
+              #layout: #(#LayoutFrame 0 0 0 0 0 1 0 1)
+              #model: #packagesSelectedIndexHolder
+              #menu: #popUpMenu
+              #hasHorizontalScrollBar: true
+              #hasVerticalScrollBar: true
+              #listModel: #tree
+              #multipleSelectOk: true
+              #highlightMode: #line
+              #valueChangeSelector: #newSelectedIndexes:
+            )
+           )
+         
+        )
+      )
+! !
+
+!PackageSelector::HierarchicalPackageSelector class methodsFor:'menu specs'!
+
+popUpMenu
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+    "
+     MenuEditor new openOnClass:Packages::PackageSelector::HierarchicalPackageSelector andSelector:#popUpMenu
+     (Menu new fromLiteralArrayEncoding:(Packages::PackageSelector::HierarchicalPackageSelector popUpMenu)) startUp
+    "
+
+    <resource: #menu>
+
+    ^ 
+     #(#Menu
+        #(
+         #(#MenuItem
+            #label: 'New category'
+            #itemValue: #kjj
+            #translateLabel: true
+          )
+         #(#MenuItem
+            #label: 'Properties'
+            #itemValue: #showProperties
+            #translateLabel: true
+          )
+         #(#MenuItem
+            #label: 'Inspect'
+            #itemValue: #inspectPackage
+            #translateLabel: true
+          )
+         #(#MenuItem
+            #label: '-'
+          )
+         #(#MenuItem
+            #label: 'Save Package'
+            #itemValue: #savePackage
+            #translateLabel: true
+          )
+         #(#MenuItem
+            #label: 'Unload Package'
+            #itemValue: #unloadPackage
+            #translateLabel: true
+          )
+         #(#MenuItem
+            #label: 'Uninstall Package'
+            #itemValue: #uninstallPackage
+            #translateLabel: true
+          )
+         )
+        nil
+        nil
+      )
+! !
+
+!PackageSelector::HierarchicalPackageSelector class methodsFor:'plugIn spec'!
+
+aspectSelectors
+    "This resource specification was automatically generated
+     by the UIPainter of ST/X."
+
+    "Do not manually edit this. If it is corrupted,
+     the UIPainter may not be able to read the specification."
+
+    "Return a description of exported aspects;
+     these can be connected to aspects of an embedding application
+     (if this app is embedded in a subCanvas)."
+
+    ^ #(
+        #packagesSelectedHolder
+      ).
+
+! !
+
+!PackageSelector::HierarchicalPackageSelector methodsFor:'* As yet uncategorized *'!
+
+categoryItemNamed:aName 
+    tree root children do:[:anItem |
+        anItem isCategoryItem ifTrue:[
+            anItem label = aName ifTrue:[
+                ^ anItem
+            ].
+        ].
+    ].
+
+    ^ nil
+!
+
+packagedManagerChangeAddPackage:aPackage
+    | categoryItem |
+    categoryItem := (self categoryItemNamed:aPackage category) ifNil:[
+        categoryItem := tree root add: (CategoryItem name:aPackage category packageManager:self packageManager)
+    ].
+
+    categoryItem add:(categoryItem newItemPackageWithPackage:aPackage). 
+    ^ self
+!
+
+packagedManagerChangeRemovePackage:aPackage
+
+    tree copy do:[:anItem |
+        anItem isPackageItem ifTrue:[
+            anItem package == aPackage ifTrue:[
+                anItem remove.
+            ].
+        ].
+    ].
+! !
+
+!PackageSelector::HierarchicalPackageSelector methodsFor:'accessing'!
+
+masterApplication:aMasterApplication
+    "initialization"
+    | aPackageManager newRootItem tree categories |
+    super masterApplication:aMasterApplication.
+    tree := self tree.
+    tree showRoot:false.
+    aPackageManager := self packageManager.
+
+    newRootItem := RootItem new.
+    tree root:newRootItem.
+    categories := aPackageManager allPackageCategories collect:[:aCategory | 
+        self newItemPackageWithCategory:aCategory packageManager:aPackageManager
+    ].
+
+"/    packageItems := (aPackageManager packages collect:[:aPackage |  self newItemPackageWithPackage:aPackage]).
+    newRootItem addAll:categories.
+    newRootItem add:(self newItemPackageWithPackage:aPackageManager defaultPackage) .
+
+    newRootItem expand.
+    newRootItem sort.
+!
+
+selected
+    ^ self selectionHolder value
+!
+
+selectedPackage
+    ^ self packageManager packageNamed:self selection
+!
+
+selectionChangedBlock
+    "return the value of the instance variable 'selectionChangedBlock' (automatically generated)"
+
+    ^ selectionChangedBlock
+!
+
+selectionChangedBlock:something
+    "set the value of the instance variable 'selectionChangedBlock' (automatically generated)"
+
+    selectionChangedBlock := something.
+! !
+
+!PackageSelector::HierarchicalPackageSelector methodsFor:'actions'!
+
+inspectPackage
+    | packagesSelected selectedSinglePackage|
+    packagesSelected := self  packagesSelected.
+    (packagesSelected size > 1) ifTrue:[
+        self warn:'Only one package can be selected!!'.
+        ^ self
+    ].
+    (packagesSelected size = 0) ifTrue:[
+        self warn:'You need to select a package'.
+        ^ self
+    ].
+
+    selectedSinglePackage := packagesSelected first.
+    selectedSinglePackage inspect.
+!
+
+savePackage
+    "assumes that there is only one package is selected"
+    | filename repeat |
+    repeat := true.
+    [repeat] whileTrue:[
+        filename := FileDialog 
+                        requestFileName:'enter a fileName:'
+                        default:''
+                        version:nil
+                        ifFail:[nil]
+                        pattern:'*.*'
+                        fromDirectory:nil
+                        whenBoxCreatedEvaluate:nil.
+        (Switch new)
+            if:[filename isNil] then:[^ self "do nothing!!"];
+            if:[filename asFilename isDirectory] then:[
+                repeat := (self confirm:'Directory selected!! Do you want to try this again?')
+            ];
+            if:[filename asFilename exists] then:[
+                repeat := (self confirm:'This file already exists!! Do you want to override this file?') not
+            ];
+            otherwise:[repeat := false];
+            value
+
+    ].
+    self halt.
+    self packageManager savePackage:(self packagesSelected first) as:filename asFilename
+!
+
+showProperties
+
+    "size should only be one as this action should be disabled if there is more than
+    one package selected."
+
+    self showPropertiesOfPackage:self packagesSelected first    
+!
+
+showPropertiesOfPackage:aPackage
+
+    ((PackageProperties new) masterApplication:self)openAsSlave
+!
+
+uninstallPackage
+    "assumes that there is only one package is selected"
+    | aPackage |
+    aPackage := self packagesSelected first.
+    (self packageManager isBasePackage:aPackage) ifTrue:[
+        self warn:'Package is registered as a ''Base Package'' and cannot be uninstalled'.
+        ^ self
+    ].
+
+    (self confirm:'Are you sure you want to uninstall the package named: ', aPackage name, '?\\' withCRs
+                    , 'This will remove all classes currently under this package''s control!!') ifFalse:[
+        ^ self
+    ].
+
+    self packageManager uninstallPackage:aPackage
+!
+
+unloadPackage
+    "assumes that there is only one package is selected"
+    | aPackage |
+    aPackage := self packagesSelected first.
+    (self packageManager isBasePackage:aPackage) ifTrue:[
+        self warn:'Package is registered as a ''Base Package'' and cannot be unload'.
+        ^ self
+    ].
+
+    (self confirm:'Are you sure you want to unload the package named: ', aPackage name) ifFalse:[
+        ^ self
+    ].
+    self packageManager unloadPackage:aPackage
+! !
+
+!PackageSelector::HierarchicalPackageSelector methodsFor:'aspects'!
+
+packagesSelectedIndexHolder
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    packagesSelectedIndexHolder isNil ifTrue:[
+        packagesSelectedIndexHolder := ValueHolder new.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/       packagesSelectedIndexHolder addDependent:self.
+"/       packagesSelectedIndexHolder onChangeSend:#packagesSelectedIndexHolderChanged to:self.
+    ].
+    ^ packagesSelectedIndexHolder.
+!
+
+tree
+    "automatically generated by UIPainter ..."
+
+    "*** the code below creates a default model when invoked."
+    "*** (which may not be the one you wanted)"
+    "*** Please change as required and accept it in the browser."
+    "*** (and replace this comment by something more useful ;-)"
+
+    tree isNil ifTrue:[
+        tree := HierarchicalList new.
+        tree application:self.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/       tree addDependent:self.
+"/       tree onChangeSend:#treeChanged to:self.
+    ].
+    ^ tree.
+! !
+
+!PackageSelector::HierarchicalPackageSelector methodsFor:'change & update'!
+
+newSelectedIndexes:collectionOfIndexes
+    | newSelectionItems|
+    newSelectionItems := collectionOfIndexes collect:[:idx |
+        self tree at:idx
+    ].
+
+    self newSelectedItems:newSelectionItems
+!
+
+newSelectedItems:aCollectionOfPackageItems 
+    | packageNames packagesSelected |
+    packageNames := aCollectionOfPackageItems collect:[:anItem |
+        (anItem isRootItem) ifFalse:[
+            anItem isPackageItem ifTrue:[
+                anItem package name.        
+            ] ifFalse:[
+                nil.
+            ].
+        ] ifTrue:[
+            nil. "no package is selected."
+        ].
+    ].
+    packagesSelected := (self packagesNamed: packageNames).
+    (packagesSelected includes:nil) ifTrue:[| minimumIndex |
+        "error handling in a case that should not really happen"
+
+        self warn:'Error - Packages selected include a name which the package manager does not know!!'.
+        minimumIndex := self packagesSelectedIndexHolder value first.
+        self packagesSelectedIndexHolder value do:[:anIndex | | item |
+            minimumIndex := minimumIndex min:anIndex.
+            item := (tree at:anIndex).
+            (self packageManager includesPackage:item package) ifFalse:[  
+                item remove.
+            ].
+        ].
+
+        self packagesSelectedIndexHolder value:(Array with:((minimumIndex - 1) max:1)).
+    ].
+    self packagesSelectedHolder value:packagesSelected
+!
+
+update:something with:aParameter from:changedObject
+
+    self breakPoint:''.
+! !
+
+!PackageSelector::HierarchicalPackageSelector methodsFor:'factory'!
+
+newItemPackageWithCategory:name packageManager:manager 
+    ^ CategoryItem name:name packageManager:manager
+!
+
+newItemPackageWithPackage:aPackage 
+    ^ PackageItem package:aPackage
+! !
+
+!PackageSelector::HierarchicalPackageSelector::CategoryItem class methodsFor:'accessing'!
+
+iconFor:aCategoryItem
+    "roundabout ;-) "
+    ^ aCategoryItem model iconFor:aCategoryItem
+! !
+
+!PackageSelector::HierarchicalPackageSelector::CategoryItem class methodsFor:'instance creation'!
+
+name:aName packageManager:aPackageManager
+    ^(self new) 
+            name:aName;
+            packageManager:aPackageManager
+! !
+
+!PackageSelector::HierarchicalPackageSelector::CategoryItem methodsFor:'accessing'!
+
+children
+    children ifNil:[
+        children :=  self createPackageItemsFrom:(packageManager packagesAtCategoryName:self name).
+        self sort:[:x :y |
+            x label < y label
+        ].
+    ].
+    ^ children
+!
+
+icon
+    ^ self class iconFor:self.
+!
+
+label
+
+    ^ name
+!
+
+name
+    "return the value of the instance variable 'name' (automatically generated)"
+    ^ name
+!
+
+name:something
+    "set the value of the instance variable 'name' (automatically generated)"
+
+    name := something.
+!
+
+packageManager
+    "return the value of the instance variable 'packageManager' (automatically generated)"
+
+    ^ packageManager
+!
+
+packageManager:something
+    "set the value of the instance variable 'packageManager' (automatically generated)"
+
+    packageManager := something.
+! !
+
+!PackageSelector::HierarchicalPackageSelector::CategoryItem methodsFor:'factory'!
+
+createPackageItemsFrom:aCollectionOfPackages 
+    ^ aCollectionOfPackages collect:[:aPackage |
+        self newItemPackageWithPackage:aPackage 
+    ].
+
+
+
+
+
+!
+
+newItemPackageWithPackage:aPackage 
+    ^ ((Packages::PackageSelector::HierarchicalPackageSelector::PackageItem) parent:self)  package:aPackage 
+! !
+
+!PackageSelector::HierarchicalPackageSelector::CategoryItem methodsFor:'printing'!
+
+printOn:aStream
+    aStream nextPutAll:'CategoryItem named: ''',
+        self name, ''''.
+! !
+
+!PackageSelector::HierarchicalPackageSelector::CategoryItem methodsFor:'queries'!
+
+isCategoryItem
+    ^ true
+!
+
+isPackageItem
+    ^ false.
+! !
+
+!PackageSelector::HierarchicalPackageSelector::PackageItem class methodsFor:'accessing'!
+
+iconFor:aPackageItem
+    | package |
+    package := aPackageItem package.
+    (package name == #'__NoProject__') ifTrue:[
+        ^ self iconsClass defaultPackageIcon
+    ].
+
+    (aPackageItem packageManager isBasePackage:package) ifTrue:[
+        ^ self iconsClass basePackageIcon
+    ].
+
+    (package isInstalled not) ifTrue:[
+        ^ self iconsClass loadedPackageIcon
+    ].
+
+    ^ self iconsClass packageIcon
+! !
+
+!PackageSelector::HierarchicalPackageSelector::PackageItem class methodsFor:'constants'!
+
+iconsClass
+    ^ Packages::PackageSelector::HierarchicalPackageSelector
+! !
+
+!PackageSelector::HierarchicalPackageSelector::PackageItem class methodsFor:'instance creation'!
+
+package:something
+    ^ self basicNew package:something
+! !
+
+!PackageSelector::HierarchicalPackageSelector::PackageItem methodsFor:'* As yet uncategorized *'!
+
+isSelected
+    | packagesSelected |
+    packagesSelected := (self application packagesSelected).
+
+    packagesSelected ifNotNil:[
+        ^ packagesSelected includes:package
+    ].
+
+    ^ false.
+!
+
+packageManager
+    ^ PackageManager smalltalkPackageManager
+! !
+
+!PackageSelector::HierarchicalPackageSelector::PackageItem methodsFor:'accessing'!
+
+icon
+    ^ self class iconFor:self.
+!
+
+label
+    | emphasis |
+    emphasis := OrderedCollection new.
+    package isDirty ifTrue:[
+        emphasis add:#italic.
+    ].
+    package isOverridden ifTrue:[
+        self isSelected ifFalse:[
+            emphasis add:(#color->Color red darker )
+        ]
+    ].
+
+    ^ Text string:package name emphasis:emphasis asArray.
+"/    ^ package name
+!
+
+package
+    "return the value of the instance variable 'package' (automatically generated)"
+
+    ^ package
+!
+
+package:something
+    "set the value of the instance variable 'package' (automatically generated)"
+
+    package := something.
+! !
+
+!PackageSelector::HierarchicalPackageSelector::PackageItem methodsFor:'queries'!
+
+isCategoryItem
+    ^ false
+!
+
+isPackageItem
+    ^ true
+! !
+
+!PackageSelector::HierarchicalPackageSelector::RootItem methodsFor:'queries'!
+
+isCategoryItem
+    ^ false
+!
+
+isPackageItem
+    ^ false
+! !
+
+!PackageSelector::HierarchicalPackageSelector::RootItem methodsFor:'sorting'!
+
+sort
+    self sort:[:x :y|
+        (x isCategoryItem and:[y isCategoryItem]) ifTrue:[
+            x name < y name
+        ] ifFalse:[ y isCategoryItem
+        ].
+    ].
+! !
+
 !PackageSelector class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/packages/PackageSelector.st,v 1.1 2003-04-09 11:26:19 james Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/packages/PackageSelector.st,v 1.2 2003-05-09 12:22:42 james Exp $'
 ! !