Etoys: ScratchConnect-Richo.1.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Etoys: ScratchConnect-Richo.1.mcz

commits-2
Spam detection software, running on the system "europa.mgmt.inetu.net", has
identified this incoming email as possible spam.  The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email.  If you have any questions, see
the administrator of that system for details.

Content preview:  Ricardo Moran uploaded a new version of ScratchConnect to
  project Etoys: http://source.squeak.org/etoys/ScratchConnect-Richo.1.mcz ====================
   Summary ==================== Name: ScratchConnect-Richo.1 Author: Richo Time:
   10 March 2012, 4:57:23 pm UUID: 5bb2492a-00af-5946-bfd6-9dc7e0b34033 Ancestors:
   [...]

Content analysis details:   (6.9 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
 3.5 BAYES_99               BODY: Bayesian spam probability is 99 to 100%
                            [score: 1.0000]
 0.0 MISSING_MID            Missing Message-Id: header
 1.2 INVALID_DATE           Invalid Date: header (not RFC 2822)
 1.0 DATE_IN_PAST_12_24     Date: is 12 to 24 hours before Received: date
 0.8 SARE_BAYES_5x8         BODY: Bayes poison 5x8
 1.7 TVD_FUZZY_SYMBOL       BODY: TVD_FUZZY_SYMBOL
 3.8 TVD_STOCK1             BODY: TVD_STOCK1
 0.1 RDNS_NONE              Delivered to trusted network by a host with no rDNS
-5.2 AWL                    AWL: From: address is in the auto white-list



Ricardo Moran uploaded a new version of ScratchConnect to project Etoys:
http://source.squeak.org/etoys/ScratchConnect-Richo.1.mcz

==================== Summary ====================

Name: ScratchConnect-Richo.1
Author: Richo
Time: 10 March 2012, 4:57:23 pm
UUID: 5bb2492a-00af-5946-bfd6-9dc7e0b34033
Ancestors:

* Added ScratchConnect from Koji Yokokawa, with a minor change from Scott Wallace: all methods from ScratchClientPlayer moved to Player.

==================== Snapshot ====================

SystemOrganization addCategory: #'ScratchConnect-Etoys'!

----- Method: Player>>broadcast: (in category '*scratchconnect') -----
broadcast: aString
        self costume broadcast: aString!

----- Method: Player>>getScratchHost (in category '*scratchconnect') -----
getScratchHost
        ^ self getValueFromCostume: #scratchHost!

----- Method: Player>>getScratchPort (in category '*scratchconnect') -----
getScratchPort
        ^ self getValueFromCostume: #scratchPort!

----- Method: Player>>getScratchSocketConnectionState (in category '*scratchconnect') -----
getScratchSocketConnectionState
        ^ self getValueFromCostume: #isConnectedToScratch!

----- Method: Player>>receiveMessages (in category '*scratchconnect') -----
receiveMessages
        self costume receiveMessages!

----- Method: Player>>sendSensorUpdateNamed:value: (in category '*scratchconnect') -----
sendSensorUpdateNamed: aName value: aValue
        self costume sendSensorUpdateNamed: aName value: aValue!

----- Method: Player>>sendValues (in category '*scratchconnect') -----
sendValues
        | updateParameters |
        updateParameters := Dictionary new.
        self slotNames
                do: [:slt | updateParameters
                                at: slt
                                put: (self
                                                perform: (Utilities getterSelectorFor: slt))].
        self costume sendSensorUpdate: updateParameters!

----- Method: Player>>sensorUpdate: (in category '*scratchconnect') -----
sensorUpdate: aString
        self costume sendScratchCommand: 'sensor-update'
                        , (aString convertToEncoding: 'UTF8')!

----- Method: Player>>setScratchHost: (in category '*scratchconnect') -----
setScratchHost: aString
        self setCostumeSlot: #scratchHost: toValue: aString!

----- Method: Player>>setScratchPort: (in category '*scratchconnect') -----
setScratchPort: anInteger
        self setCostumeSlot: #scratchPort: toValue: anInteger!

----- Method: Player>>setScratchSocketConnectionState: (in category '*scratchconnect') -----
setScratchSocketConnectionState: aBoolean
        self setCostumeSlot: #isConnectedToScratch: toValue: aBoolean!

----- Method: Player>>updateLight: (in category '*scratchconnect') -----
updateLight: aNumber
        self sendSensorUpdateNamed: 'light' value: aNumber!

----- Method: Player>>updateResistanceA: (in category '*scratchconnect') -----
updateResistanceA: aNumber
        self sendSensorUpdateNamed: 'resistance-A' value: aNumber!

----- Method: Player>>updateResistanceB: (in category '*scratchconnect') -----
updateResistanceB: aNumber
        self sendSensorUpdateNamed: 'resistance-B' value: aNumber!

----- Method: Player>>updateResistanceC: (in category '*scratchconnect') -----
updateResistanceC: aNumber
        self sendSensorUpdateNamed: 'resistance-C' value: aNumber!

----- Method: Player>>updateResistanceD: (in category '*scratchconnect') -----
updateResistanceD: aNumber
        self sendSensorUpdateNamed: 'resistance-D' value: aNumber!

----- Method: Player>>updateSlider: (in category '*scratchconnect') -----
updateSlider: aNumber
        self sendSensorUpdateNamed: 'slider' value: aNumber!

----- Method: Player>>updateSound: (in category '*scratchconnect') -----
updateSound: aNumber
        self sendSensorUpdateNamed: 'sound' value: aNumber!

Morph subclass: #ScratchClientMorph
        instanceVariableNames: 'connectionIndicatorPane connectionIndicator indicators scratchHost scratchPort scratchSocket isVerbose isDebugMode'
        classVariableNames: ''
        poolDictionaries: ''
        category: 'ScratchConnect-Etoys'!

----- Method: ScratchClientMorph class>>additionsToViewerCategoryScratchCommand (in category 'scripting') -----
additionsToViewerCategoryScratchCommand
        "Answer furser viewer additons relating to the Scratch Networking Protocol; these
        appear in
        the 'scratch' category"

        ^ #('scratch command'
                #(
                        #(#command #sendValues 'send my variables to Scratch except scratchVariables.')
                        #(#command #broadcast: 'send a message to Scratch' #String)
                        #(#command #receiveMessages 'receive messages from Scratch')
                        #(#command #updateSlider: 'sensor-update "slider" to Scratch' #Number)
                        #(#command #updateLight: 'sensor-update "light" to Scratch' #Number)
                        #(#command #updateSound: 'sensor-update "sound" to Scratch' #Number)
                        #(#command #updateResistanceA: 'sensor-update "resistance-A" to Scratch' #Number)
                        #(#command #updateResistanceB: 'sensor-update "resistance-B" to Scratch' #Number)
                        #(#command #updateResistanceC: 'sensor-update "resistance-C" to Scratch' #Number)
                        #(#command #updateResistanceD: 'sensor-update "resistance-D" to Scratch' #Number)
                        #(#command #sensorUpdate: 'sensor-update ["name" value] to Scratch' #String)
                )
        )!

----- Method: ScratchClientMorph class>>additionsToViewerCategoryScratchNetworkingConfiguration (in category 'scripting') -----
additionsToViewerCategoryScratchNetworkingConfiguration
        "Answer furser viewer additons relating to the Scratch Networking Protocol; these
        appear in
        the 'scratch configuration' category"
        ^ #('scratch configuration'
                #(
                        #(#slot #isConnected 'State of the socket to the Scratch' #Boolean #readWrite #Player #getScratchSocketConnectionState #Player #setScratchSocketConnectionState:)
                        #(#slot #host 'Host name of the Scratch' #String #readWrite #Player #getScratchHost #Player #setScratchHost: unused unused)
                        #(#slot #port 'Port number of the Scratch' #Integer #readWrite #Player #getScratchPort #Player #setScratchPort: unused unused)
                )
        )!

----- Method: ScratchClientMorph class>>chatForm (in category 'resources') -----
chatForm
^ (Form
        extent: 69@53
        depth: 32
        fromArray: #( 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50331520 3237533002 2163726152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1157159495 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 0 83869504 83869504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83869504 2247612745 4294497866 4294498378 4294497866 2163726152 0 0 0 0 0 0 0 0 0 0 0 2163726156 3287864648 1241045321 100650035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1241043529 3287865419 4294497866 4294498378 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 0 2147079500 4294498378 4294497866 3321485384 1274600007 117429589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117429589 1274597191 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2247612745 0 0 0 0 0 0 0 0 0 0 0 2163726156 4294497866 4294498378 4294497866 4294498378 3338261832 1308153673 134208329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251648841 3338261835 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 3355040072 1358551369 150986560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1358551369 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 0 0 2147080524 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 3371816263 334681937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184536141 2449004618 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 0 0 2147079500 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2499336008 368302921 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 368302921 3388463179 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 0 0 3422017611 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2532889929 418698570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218092885 1475990345 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 218092864 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2583222601 452319310 0 0 0 0 0 0 0 0 452319310 452319310 452319310 452319310 452319310 452319310 452319310 452319310 452319310 452319310 452319310 0 0 0 0 0 234870862 3438859851 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2616775752 502717519 502717519 502717519 2616776785 2616776785 2616776785 2616776785 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2616776785 2616776785 2616776785 2616776785 1559746632 3455637067 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2147080520 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498379 4294498382 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498380 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2147080520 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2163726152 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294498381 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497869 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2449004618 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498381 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497867 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 1408882506 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 2147079500 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498379 4294498383 4294498384 4294498384 4294498384 4294498384 4294433373 4294433899 4294433899 4294433899 4294433899 4294433373 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433373 4294433899 4294304403 4294174906 4293516976 4293516976 4294174906 4294304403 4294433899 4294433373 4294498384 4294498383 4294498381 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 2147080524 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498383 4294498384 4294498384 4294498384 4294433374 4294304404 4294174908 4294044886 4293980400 4290624957 4290624957 4293980400 4294044886 4294174908 4294304404 4294433374 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433374 4294304404 4294044886 4293980400 4293980400 4293980400 4287401100 4287401100 4293980400 4293980400 4293980400 4294044886 4294304404 4294433374 4294498384 4294498384 4294498383 4294498379 4294497867 4294498378 4294497866 0 0 0 0 0 0 0 0 0 2147079500 4294498378 4294497866 4294498378 4294497866 4294498378 4294498381 4294498383 4294498384 4294498384 4294498384 4294304406 4294044887 4293980400 4293980400 4293980400 4293256677 4286085240 4286085240 4293256677 4293980400 4293980400 4293980400 4294044887 4294304406 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433902 4294044887 4293980400 4293980400 4293980400 4293980400 4291282887 4286085240 4286085240 4291282887 4293980400 4293980400 4293980400 4293980400 4294044887 4294433902 4294498384 4294498384 4294498384 4294498384 4294498383 4294498379 418698581 0 0 0 0 0 0 0 0 2163726156 4294497866 4294498378 4294497866 4294498381 4294498383 4294498384 4294498384 4294498384 4294433376 4294109631 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4294109631 4294433376 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294239127 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4289243304 4286085240 4286085240 4289243304 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239127 4294498384 4294498384 4294498384 4294498384 4294498384 3640186960 435541586 0 0 0 0 0 0 0 2147079500 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294044888 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4287269514 4286085240 4286085240 4287269514 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044888 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433376 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433376 4294498384 4294498384 4294498384 4294498384 4294498384 3656964176 452319310 0 0 0 0 0 469162316 3673741390 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294239130 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239130 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294045145 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045145 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3673741392 469162316 0 0 0 0 2633554000 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433634 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433634 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294239132 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239132 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2633554000 0 0 0 519558477 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294045146 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293059298 4286085240 4286085240 4286085240 4286085240 4293059298 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045146 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4291085508 4286085240 4286085240 4286085240 4286085240 4291085508 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 519558477 0 0 2667173969 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433635 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433635 4294498384 4294498384 4294498384 4294498384 4294304139 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294304139 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2667173969 0 553113424 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294239392 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239392 4294498384 4294498384 4294498384 4294498384 4294174644 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294174644 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 553113424 2163726160 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294045149 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045149 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2163726160 2734282832 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2734282832 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294044887 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044887 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3606632528 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294174383 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294174383 4294498384 4294498384 4294498384 4294498384 4294239392 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239392 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3606632528 2163726160 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294303878 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294303878 4294498384 4294498384 4294498384 4294498384 4294433374 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433374 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2163726160 1442437201 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4291348680 4286085240 4286085240 4286085240 4286085240 4291348680 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294044885 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293322470 4286085240 4286085240 4286085240 4286085240 4293322470 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044885 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1442437201 0 3556300880 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304401 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294304401 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433373 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433373 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3556300880 0 0 1392105297 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294044884 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044884 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294304400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1392105297 0 0 0 3522746449 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433371 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433371 4291409247 4287268210 4287268210 4287268210 4287268210 4287268210 4287268210 4291409247 4294498384 4294044883 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4287532686 4286085240 4286085240 4287532686 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044883 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3522746449 0 0 0 0 1358551376 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304141 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4289506476 4286085240 4286085240 4289506476 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294304141 4294433902 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4294498384 4294433370 4294174644 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4294174644 4294433370 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1358551376 0 0 0 0 0 1593301327 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433635 4294110161 4293980400 4293980400 4293980400 4293980400 4291546059 4286085240 4286085240 4291546059 4293980400 4293980400 4293980400 4293980400 4294110161 4294433635 4294304141 4293980134 4289572269 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4289572269 4294174645 4294498384 4294498384 4294304139 4294110161 4293980400 4293980400 4293980400 4293519849 4286085240 4286085240 4293519849 4293980400 4293980400 4293980400 4294110161 4294304139 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1593301327 0 0 0 0 0 0 0 1559746640 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498649 4294304138 4294110161 4293980400 4293980400 4293980400 4287664272 4287664272 4293980400 4293980400 4293980400 4294110161 4294304138 4294498649 4294368623 4293980400 4293980400 4293519849 4286085240 4286085240 4286085240 4286085240 4286085240 4287664272 4293519849 4293980400 4294045150 4294368623 4294498384 4294498649 4294304138 4294174641 4294110161 4293980400 4291151301 4291151301 4293980400 4294110161 4294174641 4294304138 4294498649 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1559746640 0 0 0 0 0 0 0 0 0 1509545808 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498648 4294433376 4294303880 4294174384 4293779626 4293779626 4294174384 4294303880 4294433376 4294498648 4294498384 4294304400 4293980136 4293980400 4293980400 4293980400 4289638062 4286085240 4286085240 4286085240 4286085240 4293585642 4293980400 4293980400 4293980400 4293980136 4294174904 4294368624 4294498384 4294498384 4294498648 4294433376 4294433376 4294433376 4294433376 4294498648 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1509545808 0 0 0 0 0 0 0 0 0 0 0 1475991887 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294174905 4293980400 4293980400 4293980400 4293980400 4293980400 4293585642 4286085240 4286085240 4286085240 4289638062 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980137 4294304402 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1475991887 0 0 0 0 0 0 0 0 0 0 0 0 0 368302933 3388463184 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304403 4294045411 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4288716960 4286085240 4286085240 4286085240 4286414205 4292335575 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045411 4294304403 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3388463184 368302933 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2005107062 3232735592 4290883425 4290883425 4290883425 4290883425 4290883425 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294368626 4294174908 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4288651167 4286085240 4286085240 4287795858 4286085240 4286085240 4286348412 4292269782 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045412 4294304405 4294498384 4294498384 4294498384 4292658009 4290883425 4290883425 4290883425 4290883425 4290883425 4290883425 2311435105 184536141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4294498384 4294498384 4294498384 4294498384 4294498384 4294368627 4294174910 4293980139 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290493371 4286085240 4286085240 4287795858 4293717228 4291480266 4286085240 4286085240 4286348412 4290493371 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045414 4294239126 4294239126 4290291812 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 2138601592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2373416823 2373416823 2373416823 2373416823 2373416823 2373416823 3332215916 4294498384 4294498384 4294368628 4294239128 4294109631 4293980140 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4292203989 4286545791 4286085240 4286085240 4286085240 4293783021 4293980400 4293980400 4289835441 4286085240 4286085240 4286085240 4286545791 4290427578 4292203989 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4291808970 4289638062 3332086683 2373416823 2373416823 2373416823 2373416823 1182300280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 980907895 3128654711 4286479478 4290229935 4293980140 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4288387995 4286282619 4286085240 4286085240 4286085240 4286085240 4288387995 4293980400 4293980400 4286282619 4286085240 4286085240 4286085240 4286085240 4286085240 4286282619 4288387995 4292203989 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4292203989 4290361785 2243738812 117440511 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1014462327 3061348472 4202199160 4286085240 3279452280 2293544116 2297491696 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290164406 4286085240 4286085240 4286085240 4289769648 4287927444 4286085240 4286085240 4292138196 4288322202 4286085240 4286085240 4289769648 4291743438 4289769648 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 2297491696 3282215586 4286085240 4202199160 4118313080 2004383864 1014462327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2088204151 4218976376 4286085240 3262675064 1182300280 75530368 0 0 134217727 1190195440 2247160048 3270636017 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4287993237 4293783021 4293980400 4293848814 4286085240 4286085240 4286216826 4286085240 4286085240 4287993237 4293980400 4293980400 4293980400 4293783021 4289835441 4289835441 4291940817 4293980400 3270636017 2247160048 1190195440 134217727 0 75530368 1182300280 2239330681 4286085240 4286085240 4218976376 2088204151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1115191416 2205776249 1148745848 41975936 0 0 0 0 0 0 0 50331647 100663295 100663295 2213539823 2213539823 2213408237 2213342444 4293914607 4293980400 4293980400 4293980400 4291875024 4286085240 4286085240 4286085240 4286085240 4293914607 4293980400 4293980400 2213539823 2213539823 2213539823 2213539823 100663295 100663295 50331647 0 0 0 0 0 0 0 90596966 1148745848 2205776249 1115191416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50331647 50331647 50331647 50331647 50331647 1115191416 4286085240 4286085240 1115191416 50331647 50331647 50331647 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
        offset: 0@0)!

----- Method: ScratchClientMorph class>>descriptionForPartsBin (in category 'parts bin') -----
descriptionForPartsBin
        ^ self
                partName: 'Scratch Client'
                categories: #('Scratch' )
                documentation: 'Scratch Networking Protocol Client'!

----- Method: ScratchClientMorph class>>sleepForm (in category 'resources') -----
sleepForm
^ (Form
        extent: 69@52
        depth: 32
        fromArray: #( 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50331520 3237533002 2163726152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1157159495 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 0 83869504 83869504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83869504 2264389960 4294497866 4294498378 4294497866 2163726152 0 0 0 0 0 0 0 0 0 0 0 2163726156 3304641864 1241045321 100650035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1241043529 3304642635 4294497866 4294498378 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 3321485384 1274600007 117429589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117429589 1274597191 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2264389960 0 0 0 0 0 0 0 0 0 0 0 2147080524 4294497866 4294498378 4294497866 4294498378 3338261832 1324931144 134208329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 268426564 3338261835 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 0 0 2147079500 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 3355040072 1358551369 150986560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1358551369 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 0 0 2163726156 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 3371816263 334681937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184536141 2465782089 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2499336008 385080401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 385080401 3405240394 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 0 0 3422017611 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2549667145 418698570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218092885 1475990345 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 218092864 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2583222601 469162316 0 0 0 0 0 0 0 0 469162316 469162316 469162316 469162316 469162316 469162316 469162316 469162316 469162316 469162316 469162316 0 0 0 0 0 234870862 3438859851 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2147080520 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2616775752 502717519 502717519 502717519 2616776785 2616776785 2616776785 2616776785 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2616776785 2616776785 2616776785 2616776785 1559746632 3455637067 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2163726152 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498379 4294498382 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498380 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2147080520 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294498381 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497869 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2465782089 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498381 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497867 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 1425659977 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498379 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294498381 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 2147080524 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294498379 4294497867 4294498378 4294497866 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 4294498378 4294497866 4294498378 4294498381 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294498379 418698581 0 0 0 0 0 0 0 0 2147080524 4294497866 4294498378 4294497866 4294498381 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3640186960 435541586 0 0 0 0 0 0 0 2147079500 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3656964176 469162316 0 0 0 0 0 485940050 3690518862 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3690518864 485940050 0 0 0 0 2650396752 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2650396752 0 0 0 519558477 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 519558477 0 0 2683951440 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2683951440 0 569890893 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 569890893 2147080528 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2147080528 2751060048 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2751060048 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4292000860 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4291146336 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4287794032 4291146336 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4290291812 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4290291812 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4288714347 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3606632528 4294498384 4294498384 4294498384 4294498384 4294498384 4293709652 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4292986711 4293709652 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3606632528 2163726160 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2163726160 1425659983 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1425659983 0 3539523664 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3539523664 0 0 1375328591 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1375328591 0 0 0 3505969232 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4291343455 4287202675 4287202675 4287202675 4287202675 4287202675 4287202675 4291343455 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3505969232 0 0 0 0 1341773905 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294368622 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1341773905 0 0 0 0 0 1559746640 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304142 4293980135 4289572269 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4289572269 4294174646 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1559746640 0 0 0 0 0 0 0 1526323023 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294368624 4293980400 4293980400 4293585642 4286085240 4286085240 4286085240 4286085240 4286085240 4287664272 4293585642 4293980400 4294045151 4294368624 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1526323023 0 0 0 0 0 0 0 0 0 1475991887 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304402 4293980136 4293980400 4293980400 4293980400 4289638062 4286085240 4286085240 4286085240 4286085240 4293585642 4293980400 4293980400 4293980400 4293980136 4294174905 4294368625 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1475991887 0 0 0 0 0 0 0 0 0 0 0 1442437201 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294174907 4293980400 4293980400 4293980400 4293980400 4293980400 4293651435 4289374890 4289374890 4289374890 4291348680 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980137 4294304403 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1442437201 0 0 0 0 0 0 0 0 0 0 0 0 0 334681937 3371816784 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304405 4294045412 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045412 4294304405 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3371816784 334681937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2021818485 3232604008 4290817634 4290817634 4290817634 4290817634 4290817634 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294368627 4294174910 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045413 4294239126 4294498384 4294498384 4294498384 4292658009 4290817634 4290817634 4290817634 4290817634 4290817634 4290817634 2294526048 167764821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4294498384 4294498384 4294498384 4294498384 4294498384 4294368628 4294109631 4293980139 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980135 4294239128 4294239128 4290291812 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 2138601592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2323150968 2323150968 2323150968 2323150968 2323150968 2323150968 3315504235 4294498384 4294498384 4294368629 4294239129 4294109633 4293980140 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4291874764 4289703855 3315441053 2323150968 2323150968 2323150968 2323150968 1165391478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1014462327 3145431415 4286413942 4290229680 4293980397 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4292138196 4290295992 2226764217 100663295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1031371129 3111680120 4218976376 4286085240 3262675064 2260055477 2263937264 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 2263937264 3265306784 4286085240 4218976376 4168644728 2037938296 1031371129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2105047160 4252530808 4286085240 3245897848 1148745848 41975936 0 0 100663295 1156641008 2213539823 3253793008 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 3253793008 2213539823 1156641008 100663295 0 41975936 1148745848 2205776249 4286085240 4286085240 4252530808 2105047160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1081636984 2172221817 1115191416 16777216 0 0 0 0 0 0 0 33554431 50331647 50331647 2179985391 2179985391 2179985391 2179985391 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 2179985391 2179985391 2179985391 2179985391 50331647 50331647 33554431 0 0 0 0 0 0 0 41975936 1115191416 2172221817 1081636984 0 0 0 0 0 0 0 0 0 0 0)
        offset: 0@0)!

----- Method: ScratchClientMorph class>>wakeForm (in category 'resources') -----
wakeForm
^ (Form
        extent: 69@52
        depth: 32
        fromArray: #( 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50331520 3237533002 2163726152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1157159495 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 0 83869504 83869504 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83869504 2264389960 4294497866 4294498378 4294497866 2163726152 0 0 0 0 0 0 0 0 0 0 0 2163726156 3304641864 1241045321 100650035 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1241043529 3304642635 4294497866 4294498378 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 3321485384 1274600007 117429589 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117429589 1274597191 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2264389960 0 0 0 0 0 0 0 0 0 0 0 2147080524 4294497866 4294498378 4294497866 4294498378 3338261832 1324931144 134208329 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 268426564 3338261835 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 0 0 2147079500 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 3355040072 1358551369 150986560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1358551369 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 0 0 2163726156 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 3371816263 334681937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184536141 2465782089 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2499336008 385080401 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 385080401 3405240394 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 0 0 3422017611 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2549667145 418698570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218092885 1475990345 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 218092864 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2583222601 469162316 0 0 0 0 0 0 0 0 469162316 469162316 469162316 469162316 469162316 469162316 469162316 469162316 469162316 469162316 469162316 0 0 0 0 0 234870862 3438859851 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2147080520 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2616775752 502717519 502717519 502717519 2616776785 2616776785 2616776785 2616776785 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2616776785 2616776785 2616776785 2616776785 1559746632 3455637067 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2163726152 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498379 4294498382 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498380 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2163726152 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 2147080520 0 0 0 0 0 0 0 0 0 0 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294498381 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497869 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 2465782089 0 0 0 0 0 0 0 0 0 0 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498381 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497867 4294498379 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 1425659977 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498383 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498379 4294498383 4294498384 4294498384 4294498384 4294498384 4294433374 4294433899 4294433899 4294433899 4294433899 4294433374 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433374 4294433899 4294304403 4294174907 4293451440 4293451440 4294174907 4294304403 4294433899 4294433374 4294498384 4294498383 4294498381 4294497867 4294498378 4294497866 4294498378 4294497866 4294498378 0 0 0 0 0 0 0 0 0 2147080524 4294497866 4294498378 4294497866 4294498378 4294497866 4294498378 4294497866 4294498383 4294498384 4294498384 4294498384 4294433374 4294304405 4294174908 4294044886 4293980400 4290624957 4290624957 4293980400 4294044886 4294174908 4294304405 4294433374 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433374 4294304405 4294044886 4293980400 4293980400 4293980400 4287335307 4287335307 4293980400 4293980400 4293980400 4294044886 4294304405 4294433374 4294498384 4294498384 4294498383 4294498379 4294497867 4294498378 4294497866 0 0 0 0 0 0 0 0 0 2163725132 4294498378 4294497866 4294498378 4294497866 4294498378 4294498381 4294498383 4294498384 4294498384 4294498384 4294239126 4294044887 4293980400 4293980400 4293980400 4293256677 4286085240 4286085240 4293256677 4293980400 4293980400 4293980400 4294044887 4294239126 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294368622 4294044887 4293980400 4293980400 4293980400 4293980400 4291282887 4286085240 4286085240 4291282887 4293980400 4293980400 4293980400 4293980400 4294044887 4294368622 4294498384 4294498384 4294498384 4294498384 4294498383 4294498379 418698581 0 0 0 0 0 0 0 0 2147080524 4294497866 4294498378 4294497866 4294498381 4294498383 4294498384 4294498384 4294498384 4294433376 4294109631 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4294109631 4294433376 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294239128 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4289243304 4286085240 4286085240 4289243304 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239128 4294498384 4294498384 4294498384 4294498384 4294498384 3640186960 435541586 0 0 0 0 0 0 0 2147079500 4294498378 4294497867 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294044888 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4287269514 4286085240 4286085240 4287269514 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044888 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433633 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433633 4294498384 4294498384 4294498384 4294498384 4294498384 3656964176 469162316 0 0 0 0 0 485940050 3690518862 4294498383 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294239131 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239131 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294045145 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045145 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3690518864 485940050 0 0 0 0 2650396752 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433634 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433634 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294239132 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239132 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2650396752 0 0 0 519558477 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294045147 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293059298 4286085240 4286085240 4286085240 4286085240 4293059298 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045147 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4291085508 4286085240 4286085240 4286085240 4286085240 4291085508 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 519558477 0 0 2683951440 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433636 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433636 4294498384 4294498384 4294498384 4294498384 4294304139 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294304139 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2683951440 0 569890893 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294239392 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239392 4294498384 4294498384 4294498384 4294498384 4294174645 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294174645 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 569890893 2147080528 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294045149 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045149 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2147080528 2751060048 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2751060048 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294044887 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044887 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3606632528 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294174382 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294174382 4294498384 4294498384 4294498384 4294498384 4294239392 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294239392 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3606632528 2163726160 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294303877 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294303877 4294498384 4294498384 4294498384 4294498384 4294433374 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433374 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 2163726160 1425659983 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4291414473 4286085240 4286085240 4286085240 4286085240 4291414473 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294044885 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293322470 4286085240 4286085240 4286085240 4286085240 4293322470 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044885 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1425659983 0 3539523664 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294304400 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433372 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433372 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3539523664 0 0 1375328591 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294044883 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044883 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304142 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294304142 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1375328591 0 0 0 3505969232 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433371 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4286085240 4286085240 4286085240 4286085240 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294433371 4291343455 4287202675 4287202675 4287202675 4287202675 4287202675 4287202675 4291343455 4294498384 4294044882 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4287532686 4286085240 4286085240 4287532686 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294044882 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3505969232 0 0 0 0 1341773905 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304139 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4289572269 4286085240 4286085240 4289572269 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294304139 4294368622 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4294498384 4294498650 4294174643 4293980400 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 4294174643 4294498650 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1341773905 0 0 0 0 0 1559746640 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294433634 4294110161 4293980400 4293980400 4293980400 4293980400 4291546059 4286085240 4286085240 4291546059 4293980400 4293980400 4293980400 4293980400 4294110161 4294433634 4294304142 4293980135 4289572269 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4289572269 4294174646 4294498384 4294498384 4294304138 4294110161 4293980400 4293980400 4293980400 4293519849 4286085240 4286085240 4293519849 4293980400 4293980400 4293980400 4294110161 4294304138 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1559746640 0 0 0 0 0 0 0 1526323023 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498648 4294303880 4294110160 4293980400 4293980400 4293980400 4287664272 4287664272 4293980400 4293980400 4293980400 4294110160 4294303880 4294498648 4294368624 4293980400 4293980400 4293585642 4286085240 4286085240 4286085240 4286085240 4286085240 4287664272 4293585642 4293980400 4294045151 4294368624 4294498384 4294498648 4294303880 4294174384 4294110160 4293980400 4291217094 4291217094 4293980400 4294110160 4294174384 4294303880 4294498648 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1526323023 0 0 0 0 0 0 0 0 0 1475991887 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498648 4294433375 4294303879 4294174382 4293845161 4293845161 4294174382 4294303879 4294433375 4294498648 4294498384 4294304402 4293980136 4293980400 4293980400 4293980400 4289638062 4286085240 4286085240 4286085240 4286085240 4293585642 4293980400 4293980400 4293980400 4293980136 4294174905 4294368625 4294498384 4294498384 4294498648 4294433375 4294433375 4294433375 4294433375 4294498648 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1475991887 0 0 0 0 0 0 0 0 0 0 0 1442437201 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294174907 4293980400 4293980400 4293980400 4293980400 4293980400 4293651435 4286085240 4286085240 4286085240 4289703855 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980137 4294304403 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 1442437201 0 0 0 0 0 0 0 0 0 0 0 0 0 334681937 3371816784 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294304405 4294045412 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4288651167 4286085240 4286085240 4286085240 4286414205 4292269782 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045412 4294304405 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 3371816784 334681937 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2021818485 3232604008 4290817634 4290817634 4290817634 4290817634 4290817634 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294498384 4294368627 4294174910 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4288585374 4286085240 4286085240 4287795858 4286085240 4286085240 4286348412 4292269782 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4294045413 4294239126 4294498384 4294498384 4294498384 4292658009 4290817634 4290817634 4290817634 4290817634 4290817634 4290817634 2294526048 167764821 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 4294498384 4294498384 4294498384 4294498384 4294498384 4294368628 4294109631 4293980139 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290427578 4286085240 4286085240 4287861651 4293783021 4291546059 4286085240 4286085240 4286282619 4290427578 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980135 4294239128 4294239128 4290291812 4286085240 4286085240 4286085240 4286085240 4286085240 4286085240 2138601592 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2323150968 2323150968 2323150968 2323150968 2323150968 2323150968 3315504235 4294498384 4294498384 4294368629 4294239129 4294109633 4293980140 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4292203989 4286479998 4286085240 4286085240 4286085240 4293783021 4293980400 4293980400 4291677645 4286085240 4286085240 4286085240 4286479998 4290361785 4292203989 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4291874764 4289703855 3315441053 2323150968 2323150968 2323150968 2323150968 1165391478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1014462327 3145431415 4286413942 4290229680 4293980397 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4288322202 4286216826 4286085240 4286085240 4287927444 4291743438 4293980400 4293980400 4293980400 4293980400 4291743438 4287927444 4286085240 4286085240 4286085240 4286216826 4288322202 4292138196 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4292138196 4290295992 2226764217 100663295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1031371129 3111680120 4218976376 4286085240 3262675064 2260055477 2263937264 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4290164406 4286085240 4286085240 4286085240 4291809231 4293848814 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293848814 4291809231 4289835441 4286085240 4286085240 4286085240 4290032820 4293980400 4293980400 4293980400 4293980400 4293980400 2263937264 3265306784 4286085240 4218976376 4168644728 2037938296 1031371129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2105047160 4252530808 4286085240 3245897848 1148745848 41975936 0 0 100663295 1156641008 2213539823 3253793008 4293980400 4293980400 4293980400 4293980400 4290032820 4286085240 4287993237 4293848814 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293848814 4289901234 4289901234 4291940817 4293980400 3253793008 2213539823 1156641008 100663295 0 41975936 1148745848 2205776249 4286085240 4286085240 4252530808 2105047160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1081636984 2172221817 1115191416 16777216 0 0 0 0 0 0 0 33554431 50331647 50331647 2179985391 2179985391 2179985391 2179853805 4293914607 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 4293980400 2179985391 2179985391 2179985391 2179985391 50331647 50331647 33554431 0 0 0 0 0 0 0 41975936 1115191416 2172221817 1081636984 0 0 0 0 0 0 0 0 0 0 0)
        offset: 0@0)!

----- Method: ScratchClientMorph>>addCustomMenuItems:hand: (in category 'menus') -----
addCustomMenuItems: aCustomMenu hand: aHandMorph
        "Add custom menu items to the menu"
        super addCustomMenuItems: aCustomMenu hand: aHandMorph.
        aCustomMenu
                addUpdating: #verboseString
                target: self
                action: #toggleVerbose.
        aCustomMenu
                addUpdating: #debugModeString
                target: self
                action: #toggleDebugMode!

----- Method: ScratchClientMorph>>addDebugLog: (in category 'monitoring') -----
addDebugLog: aString
        | logs |
        self isDebugMode
                ifFalse: [^ self].
        logs := self logStream.
        logs nextPutAll: '['.
        logs nextPutAll: self externalName.
        logs nextPutAll: ' | '.
        TimeStamp now printHMSOn: logs.
        logs nextPutAll: '] '.
        logs nextPutAll: aString;
                 cr;
                 flush!

----- Method: ScratchClientMorph>>addLog: (in category 'monitoring') -----
addLog: aString
        | logs |
        logs := self logStream.
        logs nextPutAll: '['.
        logs nextPutAll: self externalName.
        logs nextPutAll: ' | '.
        TimeStamp now printHMSOn: logs.
        logs show: '] '.
        logs show: aString;
                 cr;
                 flush!

----- Method: ScratchClientMorph>>beQuiet (in category 'monitoring') -----
beQuiet
        self isVerbose: false!

----- Method: ScratchClientMorph>>beVerbose (in category 'monitoring') -----
beVerbose
        self isVerbose: true!

----- Method: ScratchClientMorph>>broadcast: (in category 'scratch') -----
broadcast: aString
        | sendString |
        aString isEmptyOrNil
                ifTrue: [^ self].
        sendString := aString asString copyReplaceAll: '"' with: '""'.
        self sendScratchCommand: 'broadcast "' , sendString , '" '!

----- Method: ScratchClientMorph>>chatIndicator (in category 'accessing') -----
chatIndicator
        ^ self indicators
                at: #chat
                ifAbsentPut: [SketchMorph withForm: self class chatForm]!

----- Method: ScratchClientMorph>>closeConnectionToScratch (in category 'private') -----
closeConnectionToScratch
        scratchSocket
                ifNil: [^ self].
        scratchSocket close.
        scratchSocket := nil.
        self addLog: 'close connection: ' , self scratchHost , ':' , self scratchPort printString.
        self sayBalloon: 'close connection: ' , self scratchHost , ':' , self scratchPort printString.
        self updateIndicator!

----- Method: ScratchClientMorph>>connectionIndicator (in category 'accessing') -----
connectionIndicator
        ^connectionIndicator!

----- Method: ScratchClientMorph>>connectionIndicator: (in category 'accessing') -----
connectionIndicator: anObject
        connectionIndicator := anObject!

----- Method: ScratchClientMorph>>connectionIndicatorPane (in category 'accessing') -----
connectionIndicatorPane
        ^connectionIndicatorPane!

----- Method: ScratchClientMorph>>connectionIndicatorPane: (in category 'accessing') -----
connectionIndicatorPane: anObject
        connectionIndicatorPane := anObject!

----- Method: ScratchClientMorph>>debugModeOff (in category 'monitoring') -----
debugModeOff
        self isDebugMode: false!

----- Method: ScratchClientMorph>>debugModeOn (in category 'monitoring') -----
debugModeOn
        self isDebugMode: true!

----- Method: ScratchClientMorph>>debugModeString (in category 'menu') -----
debugModeString
        "Answer a string telling the status of my
        debugMode. "
        ^ (self isDebugMode == true
                ifTrue: ['<yes>']
                ifFalse: ['<no>'])
                , 'debug mode' translated!

----- Method: ScratchClientMorph>>doubleClick: (in category 'event handling') -----
doubleClick: evt
        self isConnectedToScratch: self isConnectedToScratch not!

----- Method: ScratchClientMorph>>editChatIndicator (in category 'monitoring') -----
editChatIndicator
        self chatIndicator editDrawing!

----- Method: ScratchClientMorph>>editSleepIndicator (in category 'monitoring') -----
editSleepIndicator
        self sleepIndicator editDrawing!

----- Method: ScratchClientMorph>>editWakeIndicator (in category 'monitoring') -----
editWakeIndicator
        self wakeIndicator editDrawing!

----- Method: ScratchClientMorph>>handlesMouseDown: (in category 'event handling') -----
handlesMouseDown: evt
        ^ true!

----- Method: ScratchClientMorph>>indicateConnection: (in category 'monitoring') -----
indicateConnection: newIndicator
        self connectionIndicator = newIndicator
                ifTrue: [^ self].
        self connectionIndicatorPane addMorph: newIndicator after: self connectionIndicator.
        self connectionIndicator
                ifNotNil: [self connectionIndicatorPane removeMorph: self connectionIndicator topRendererOrSelf].
        self connectionIndicator: newIndicator.
        self refreshWorld!

----- Method: ScratchClientMorph>>indicators (in category 'accessing') -----
indicators
        ^indicators!

----- Method: ScratchClientMorph>>indicators: (in category 'accessing') -----
indicators: anObject
        indicators := anObject!

----- Method: ScratchClientMorph>>initialize (in category 'initialization') -----
initialize
        super initialize.
        self setupPreferences.
        self scratchHost: '127.0.0.1'.
        self scratchPort: 42001.
        self initializeIndicators.
        self setupSubmorphs.
        self updateIndicator.
        self beVerbose.
        self debugModeOff!

----- Method: ScratchClientMorph>>initializeIndicators (in category 'initialization') -----
initializeIndicators
        indicators := Dictionary new!

----- Method: ScratchClientMorph>>isConnectedToScratch (in category 'scratch') -----
isConnectedToScratch
        ^ self scratchSocket isNil not
                and: [self scratchSocket isConnected]!

----- Method: ScratchClientMorph>>isConnectedToScratch: (in category 'scratch') -----
isConnectedToScratch: aBoolean
        [aBoolean == true
                ifTrue: [self openConnectionToScratch]
                ifFalse: [self closeConnectionToScratch]]
                on: Error
                do: [:err |
                        "The primitive would be failed."
                        self isVerbose
                                ifTrue: [self beep: 'scratch'].
                        self sayBalloon: 'Couldn''t connect !!? [' , self scratchHost , ':' , self scratchPort printString , ']'.
                        err return: nil]!

----- Method: ScratchClientMorph>>isDebugMode (in category 'accessing') -----
isDebugMode
        ^ isDebugMode ~~ false!

----- Method: ScratchClientMorph>>isDebugMode: (in category 'accessing') -----
isDebugMode: anObject
        isDebugMode := anObject!

----- Method: ScratchClientMorph>>isVerbose (in category 'accessing') -----
isVerbose
        ^ isVerbose == true!

----- Method: ScratchClientMorph>>isVerbose: (in category 'accessing') -----
isVerbose: anObject
        isVerbose := anObject!

----- Method: ScratchClientMorph>>logStream (in category 'monitoring') -----
logStream
        ^ Transcript!

----- Method: ScratchClientMorph>>mouseDown: (in category 'event handling') -----
mouseDown: evt
        "Do nothing upon mouse-down except inform the hand to watch for a double-click; wait until an ensuing click:, doubleClick:, or drag: message gets dispatched"

        evt hand waitForClicksOrDrag: self event: evt!

----- Method: ScratchClientMorph>>openConnectionToScratch (in category 'private') -----
openConnectionToScratch
        self isConnectedToScratch
                ifTrue: [^ self].
        (self scratchHost isNil
                        or: [self scratchPort isNil])
                ifTrue: [^ self].
        scratchSocket
                ifNotNil: [[scratchSocket close]
                                ensure: [scratchSocket := nil]].
        scratchSocket := SocketStream openConnectionToHostNamed: self scratchHost port: self scratchPort.
        scratchSocket binary.
        scratchSocket buffered: false.
        self updateIndicator.
        self isConnectedToScratch
                ifTrue: [self addLog: 'open connection: ' , self scratchHost , ':' , self scratchPort printString.
                        self sayBalloon: 'open connection: ' , self scratchHost , ':' , self scratchPort printString.
                        self isVerbose
                                ifTrue: [self beep: 'meow']]!

----- Method: ScratchClientMorph>>parseBroadcastMessage: (in category 'scratch') -----
parseBroadcastMessage: messageStream
        "return bradcast event name parsed from
        messageStream"
        "broadcast <string>
       
        Words and strings are encoded in UTF-8. (Note:
        ASCII is a subset of UTF-8).
        "
        | broadcastEvent |
        messageStream upTo: $".
        broadcastEvent := messageStream upTo: $".
        ^ broadcastEvent!

----- Method: ScratchClientMorph>>parseSensorUpdateMessage: (in category 'scratch') -----
parseSensorUpdateMessage: messageStream
        "return name->value dictionary parsed from
        message. "
        "Most message types contain human-readable
        strings made up of the following elements:
       
        - unquoted single-word strings (cat, mouse-x)
        - quoted strings (embedded quotation marks are
        doubled) - numbers (1, -1, 3.14, -1.2, .1, -.2)
        - booleans (true or false)
       
        Words and strings are encoded in UTF-8. (Note:
        ASCII is a subset of UTF-8).
       
        Here are the two most useful message types:
       
        broadcast <string>
        sensor-update <var-name_1> <new-value_1> ...
       
        A sensor update message includes one or more
        (variable name, value) pairs. Variable names
        are strings. Values can be either numbers or
        quoted strings
        "
        | sensorUpdates |
        sensorUpdates := Dictionary new.
        [messageStream atEnd]
                whileFalse: [| varName varValue |
                        messageStream upTo: $".
                        varName := messageStream upTo: $".
                        messageStream next.
                        (messageStream peekFor: $")
                                ifTrue: [varValue := messageStream upTo: $".
                                        varValue := varValue convertFromEncoding: 'UTF8'.
                                        messageStream next]
                                ifFalse: [varValue := messageStream upTo: Character space.
                                        varValue := varValue asNumber].
                        sensorUpdates
                                at: (varName convertFromEncoding: 'UTF8')
                                put: varValue].
        ^ sensorUpdates!

----- Method: ScratchClientMorph>>receiveMessages (in category 'scratch') -----
receiveMessages
        "receive and read the messages from Scratch"
        "Most message types contain human-readable
        strings made up of the following elements:
       
        - unquoted single-word strings (cat, mouse-x)
        - quoted strings (embedded quotation marks are
        doubled) - numbers (1, -1, 3.14, -1.2, .1, -.2)
        - booleans (true or false)
       
        Words and strings are encoded in UTF-8. (Note:
        ASCII is a subset of UTF-8).
       
        Here are the two most useful message types:
       
        broadcast <string>
        sensor-update <var-name_1> <new-value_1> ...
       
        A sensor update message includes one or more
        (variable name, value) pairs. Variable names
        are strings. Values can be either numbers or
        quoted strings
        "
        | sensorUpdates |
        self isConnectedToScratch
                ifFalse: [^ self].
        sensorUpdates := Dictionary new.
        [self scratchSocket isDataAvailable]
                whileTrue: [| dataSize data dataStream command |
                        dataSize := self scratchSocket nextInt32.
                        data := self scratchSocket next: dataSize.
                        self addDebugLog: 'reveived:  '''
                                        , (data asString convertFromEncoding: 'UTF8') , ''''.
                        dataStream := data asString readStream.
                        command := dataStream upTo: Character space.
                        command = 'sensor-update'
                                ifTrue: [sensorUpdates
                                                addAll: (self parseSensorUpdateMessage: dataStream)].
                        command = 'broadcast'
                                ifTrue: [| eventName |
                                        "broadcast it after updated sensors"
                                        sensorUpdates
                                                keysAndValuesDo: [:key :value | self receivedValueNamed: key value: value].
                                        sensorUpdates := Dictionary new.
                                        eventName := self parseBroadcastMessage: dataStream.
                                        self receivedBroadcast: eventName]].
        sensorUpdates
                keysAndValuesDo: [:key :value | self receivedValueNamed: key value: value]!

----- Method: ScratchClientMorph>>receivedBroadcast: (in category 'scratch') -----
receivedBroadcast: messageName
        | eventName |
        eventName := messageName asSymbol.
        (ScriptingSystem userCustomEventNames includes: eventName)
                ifFalse: [ScriptingSystem addUserCustomEventNamed: eventName help: 'broadcast from Scratch'].
        self triggerCustomEvent: eventName!

----- Method: ScratchClientMorph>>receivedValueNamed:value: (in category 'scratch') -----
receivedValueNamed: varName value: varValue
        | myPlayer varSymbol setterSelector eventName |
        varSymbol := (varName asIdentifier: false) asSymbol.
        varSymbol = 'a' asSymbol
                ifTrue: [self addLog: 'WARNING: invalid variable name: ' , varName.
                        self sayBalloon: 'WARNING: invalid variable name: ' , varName.
                        ^ self].
        myPlayer := self player.
        myPlayer assureUniClass.
        myPlayer slotInfo
                at: varSymbol
                put: (SlotInformation new initialize
                                type: (varValue isNumber
                                                ifTrue: [#Number]
                                                ifFalse: [#String])).
        (myPlayer class instVarNames includes: varSymbol)
                ifFalse: [myPlayer addInstanceVarNamed: varSymbol withValue: varValue.
                        myPlayer compileInstVarAccessorsFor: varSymbol].
        setterSelector := Utilities setterSelectorFor: varSymbol.
        (myPlayer class allSubInstances
                reject: [:e | e isSequentialStub])
                do: [:anInstance | anInstance perform: setterSelector with: varValue].
        "myPlayer updateAllViewersAndForceToShow:
        ScriptingSystem
        nameForInstanceVariablesCategory. "
        eventName := varSymbol.
        (ScriptingSystem userCustomEventNames includes: eventName)
                ifFalse: [ScriptingSystem addUserCustomEventNamed: eventName help: '"' , varSymbol asString , '" was changed by Scratch'].
        self triggerCustomEvent: eventName!

----- Method: ScratchClientMorph>>sayBalloon: (in category 'monitoring') -----
sayBalloon: aString
        self isVerbose
                ifFalse: [^ self].
        self showBalloon: aString!

----- Method: ScratchClientMorph>>sayLogs: (in category 'monitoring') -----
sayLogs: aString
        | lines words |
        self isVerbose
                ifFalse: [^ self].
        lines := OrderedCollection new.
        self balloonText
                ifNil: [self setBalloonText: ''].
        self balloonText
                linesDo: [:ln | lines add: ln].
        lines := lines
                                last: (3 min: lines size).
        words := WriteStream
                                on: (String new: 100).
        lines
                do: [:ln |
                        words nextPutAll: ln.
                        words cr].
        words nextPutAll: aString.
        self setBalloonText: words contents.
        self showBalloon: self balloonText!

----- Method: ScratchClientMorph>>scratchHost (in category 'accessing') -----
scratchHost
        ^scratchHost!

----- Method: ScratchClientMorph>>scratchHost: (in category 'accessing') -----
scratchHost: anObject
        scratchHost := anObject!

----- Method: ScratchClientMorph>>scratchPort (in category 'accessing') -----
scratchPort
        ^scratchPort!

----- Method: ScratchClientMorph>>scratchPort: (in category 'accessing') -----
scratchPort: anObject
        scratchPort := anObject!

----- Method: ScratchClientMorph>>scratchSocket (in category 'accessing') -----
scratchSocket
        ^scratchSocket!

----- Method: ScratchClientMorph>>scratchSocket: (in category 'accessing') -----
scratchSocket: anObject
        scratchSocket := anObject!

----- Method: ScratchClientMorph>>sendScratchCommand: (in category 'private') -----
sendScratchCommand: aString
        | str |
        self isConnectedToScratch
                ifFalse: [self updateIndicator.
                        ^ self].
        str := WriteStream
                                on: (ByteArray new: aString size + 4).
        str nextInt32Put: aString size.
        str nextPutAll: aString asByteArray.
        [self scratchSocket nextPutAll: str contents]
                on: NetworkError
                do: [:ex |
                        self addLog: 'Network Error: ' , ex messageText.
                        self sayBalloon: 'Network Error: ' , ex messageText.
                        ^ self].
        self indicateConnection: self chatIndicator.
        self addDebugLog: 'sent: ''' , aString , ''''!

----- Method: ScratchClientMorph>>sendSensorUpdate: (in category 'scratch') -----
sendSensorUpdate: aDictionary
        | updateParameters |
        updateParameters := WriteStream
                                on: (String new: 128).
        aDictionary
                keysAndValuesDo: [:key :value |
                        updateParameters nextPutAll: ' "'.
                        updateParameters nextPutAll: key asString.
                        updateParameters nextPutAll: '" '.
                        updateParameters nextPutAll: value asString].
        self sendScratchCommand: 'sensor-update'
                        , (updateParameters contents convertToEncoding: 'UTF8')!

----- Method: ScratchClientMorph>>sendSensorUpdateNamed:value: (in category 'scratch') -----
sendSensorUpdateNamed: aName value: aValue
        | sendValue |
        aValue isNumber
                ifTrue: [sendValue := aValue printString]
                ifFalse: [sendValue := '"' , aValue printString , '"'].
        self sendScratchCommand: 'sensor-update'
                        , (' "' , aName , '" ' , sendValue convertToEncoding: 'UTF8')!

----- Method: ScratchClientMorph>>setupPreferences (in category 'initialization') -----
setupPreferences
        "Setup Prefereces to work it properly."
        Preferences setPreference: #allowEtoyUserCustomEvents toValue: true!

----- Method: ScratchClientMorph>>setupSubmorphs (in category 'initialization') -----
setupSubmorphs
        self layoutPolicy: nil.
        self color: Color transparent;
                 borderWidth: 0.
        self hResizing: #shrinkWrap.
        self vResizing: #shrinkWrap.
        connectionIndicatorPane := AlignmentMorph new.
        connectionIndicatorPane color: Color transparent;
                 borderWidth: 0.
        connectionIndicatorPane hResizing: #shrinkWrap.
        connectionIndicatorPane vResizing: #shrinkWrap.
        connectionIndicatorPane topLeft: self topLeft.
        connectionIndicatorPane lock: true.
        self addMorphBack: connectionIndicatorPane!

----- Method: ScratchClientMorph>>sleepIndicator (in category 'accessing') -----
sleepIndicator
        ^ self indicators
                at: #sleep
                ifAbsentPut: [SketchMorph withForm: self class sleepForm]!

----- Method: ScratchClientMorph>>startDrag: (in category 'event handling') -----
startDrag: evt
        "We'll get a mouseDown first, some mouseMoves, and a mouseUp event
        last "
        evt hand grabMorph: self!

----- Method: ScratchClientMorph>>step (in category 'stepping and presenter') -----
step
        self isConnectedToScratch
                ifTrue: [self receiveMessages].
        self updateIndicator.
        super step!

----- Method: ScratchClientMorph>>stepTime (in category 'testing') -----
stepTime
        ^ 0!

----- Method: ScratchClientMorph>>toggleDebugMode (in category 'menu') -----
toggleDebugMode
        self isDebugMode: self isDebugMode not!

----- Method: ScratchClientMorph>>toggleVerbose (in category 'menu') -----
toggleVerbose
        self isVerbose: self isVerbose not!

----- Method: ScratchClientMorph>>updateIndicator (in category 'monitoring') -----
updateIndicator
        self isConnectedToScratch
                ifTrue:
                        [self connectionIndicator = self wakeIndicator
                                ifFalse: [self indicateConnection: self wakeIndicator]]
                ifFalse:
                        [self connectionIndicator = self sleepIndicator
                                ifFalse: [self indicateConnection: self sleepIndicator]]!

----- Method: ScratchClientMorph>>verboseString (in category 'menu') -----
verboseString
        "Answer a string telling the status of my
        verbose."
        ^ (self isVerbose == true
                ifTrue: ['<yes>']
                ifFalse: ['<no>'])
                , 'verbose' translated!

----- Method: ScratchClientMorph>>wakeIndicator (in category 'accessing') -----
wakeIndicator
        ^ self indicators
                at: #wake
                ifAbsentPut: [SketchMorph withForm: self class wakeForm]!


_______________________________________________
etoys-dev mailing list
[hidden email]
http://lists.squeakland.org/mailman/listinfo/etoys-dev