How to manage WindowedScreen+GUI Gadgets together

Share your advanced PureBasic knowledge/code with the community.
Little John
Addict
Addict
Posts: 4777
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Re: How to manage WindowedScreen+GUI Gadgets together

Post by Little John »

Reviving this thread ...
Thanks for this cool code, netmaestro!
netmaestro wrote:(fully cross-platform)
Using PB 4.20, the code runs fine for me on Windows XP.
On Ubuntu 8.04, the constants for the colors are not defined. I inserted their definitions at the beginning of the code, assigning the values which they have on Windows:

Code: Select all

; Colors (for Linux)
#Black = 0
#Gray = 8421504
#Red = 255
#White = 16777215
#Yellow = 65535
These color values might not be the proper ones for Linux, but at least the code should run, no?
Unfortunately, the program crashed at the very beginning on the line

Code: Select all

Global img1 = GrabImage(img0, #PB_Any, 0,42,15,28)
with the error message
[ERROR] #Image object not initialized.
I don't have a clue what's happening here.

Regards, Little John
Little John
Addict
Addict
Posts: 4777
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Post by Little John »

Now I realized, that the picture in the DataSection is in Windows image format, which can't be handled by CatchImage() on Linux. I converted the picture to PNG format, and adapted the code accordingly. I also added the missing color constants for Linux. The new code (see below) still runs fine on Windows XP. On Ubuntu 8.04, the picture now is displayed. It is in one window, and the button is in another(!) window. When I move the mouse, the program freezes! Maybe someone can fix the code, to make this valuable demo program actually cross-platform?

Regards, Little John

Code: Select all

;****************************************************************
; Program:         WindowedScreen + GUI Eventhandling Demo
; Author:          netmaestro
; Date:            March 22, 2007
; License:         Free, unrestricted, credit appreciated
;                  but not required
;****************************************************************

; changed by LJ on 8.7.2008, trying to make it run on Linux

CompilerIf #PB_Compiler_OS = #PB_OS_Linux
   #Black  = 0
   #Gray   = $808080
   #Red    = $FF
   #White  = $FFFFFF
   #Yellow = $FFFF
CompilerEndIf

UsePNGImageDecoder()
Global img0 = CatchImage(#PB_Any, ?Picture, 1561)
If img0 = 0
   Debug "CatchImage() failed."
   End
EndIf

Global redArrow.l = GrabImage(img0, #PB_Any, 0,42,15,28)
StartDrawing(ImageOutput(img0))
  Box(0,42,15,28,#Black)
StopDrawing()

#LeftOffset = 20
#TopOffset  = 20
#ScreenW    = 440
#ScreenH    = 440

OpenWindow(0,0,0,800,480,"Screen Mouse Capture/Release Demo",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ButtonGadget(1,570,420,120,24,"Push Me!")
InitSprite(): InitMouse()
OpenWindowedScreen(WindowID(0),20,20,440,440,0,0,0)

CreateSprite(0,32,32)
StartDrawing(SpriteOutput(0))
  DrawImage(ImageID(redArrow),0,0)
StopDrawing()


Procedure DoScreenDisplay(inscreen)
  ClearScreen(0)
  ;
  ; Display your screen stuff
  StartDrawing(ScreenOutput())
    DrawImage(ImageID(img0),170,300)
    DrawText(120,200,"Screen is not capturing mouse      ",#Gray, #Black)
    DrawText(180,230,"( 000, 000 )", #Gray, #Black)   
  StopDrawing() 
  ;
  If inscreen  ; manage mouse events only if mouse is inside screen
    WindowEvent()
    ExamineMouse()
    StartDrawing(ScreenOutput())
      DrawText(120,200,"  Screen is capturing mouse      ",#Yellow, #Black)
      DrawText(180,230,"( "+RSet(Str(MouseX()),3,"0")+", "+RSet(Str(MouseY()),3,"0")+" )",#White,#Black)

      If MouseButton(#PB_MouseButton_Left)
        FillArea(186,316,0,#Red)
      EndIf
 
      If MouseButton(#PB_MouseButton_Middle)
        FillArea(202,311,0,#Red)
      EndIf
      If MouseButton(#PB_MouseButton_Right)
        FillArea(216,306,0,#Red)
      EndIf
    StopDrawing()
    DisplayTransparentSprite(0,MouseX(),MouseY())
  EndIf
  FlipBuffers()
EndProcedure


Repeat
  ev = WaitWindowEvent()
  If inscreen
    If MouseX()>#ScreenW-2 Or MouseY()>#ScreenH-2 Or MouseX()<1 Or MouseY()<1
      ReleaseMouse(1)
      inscreen = #False
    EndIf 
  Else
    ;
    ;************************************
    ;    Handle #PB_Event_Gadget Here
    ;************************************
    ;
    If ev = #PB_Event_Gadget
      If EventGadget() = 1
        MessageRequester("","You pressed the button!")
      EndIf
    EndIf
    ;
    mx = WindowMouseX(0):my = WindowMouseY(0)
    If mx < #ScreenW+#LeftOffset And mx > #LeftOffset And my > #TopOffset And my < #TopOffset+#ScreenH
      ReleaseMouse(0)
      MouseLocate(mx-#LeftOffset,my-#TopOffset)
      inscreen = #True
    EndIf
  EndIf
  DoScreenDisplay(inscreen)
Until ev = #PB_Event_CloseWindow


DataSection
   Picture:
   Data.b $89,$50,$4E,$47,$0D,$0A,$1A,$0A,$00,$00,$00,$0D,$49,$48,$44,$52,$00,$00,$00,$64
   Data.b $00,$00,$00,$44,$08,$02,$00,$00,$00,$F8,$2C,$07,$35,$00,$00,$05,$E0,$49,$44,$41
   Data.b $54,$78,$DA,$ED,$9C,$BF,$71,$E3,$3C,$10,$C5,$35,$E3,$C4,$89,$53,$37,$E0,$0E,$DC
   Data.b $83,$FA,$70,$29,$8E,$5D,$86,$9B,$70,$09,$EE,$C0,$15,$28,$74,$70,$89,$E6,$02,$07
   Data.b $B8,$DF,$E8,$9D,$F7,$96,$20,$05,$82,$20,$48,$90,$9E,$DB,$E0,$1B,$9F,$3E,$52,$5C
   Data.b $3E,$BC,$FD,$8B,$85,$0E,$87,$A6,$F2,$F8,$F8,$F8,$7C,$91,$87,$87,$87,$C3,$7F,$19
   Data.b $94,$9B,$9B,$9B,$E3,$F1,$F8,$F6,$F6,$76,$3E,$9F,$BF,$2E,$C2,$1F,$AF,$AF,$AF,$7C
   Data.b $B8,$69,$BD,$6F,$2F,$B2,$1A,$46,$30,$E8,$E9,$E9,$E9,$FD,$FD,$3D,$5C,$91,$D3,$E9
   Data.b $F4,$F2,$F2,$B2,$51,$D4,$50,$0B,$ED,$EF,$EF,$EF,$57,$78,$56,$02,$A3,$41,$D4,$36
   Data.b $C7,$35,$B4,$61,$25,$F1,$1A,$B8,$0F,$56,$7E,$B9,$07,$7D,$7C,$7C,$60,$6E,$61,$BA
   Data.b $70,$23,$1A,$A2,$5E,$7B,$B0,$50,$E2,$E5,$5B,$A0,$58,$45,$47,$CB,$32,$40,$8D,$F3
   Data.b $45,$22,$D4,$0A,$20,$E3,$4B,$F0,$71,$68,$D8,$98,$6B,$D8,$20,$4A,$08,$2F,$28,$36
   Data.b $1F,$32,$BE,$E7,$F3,$F3,$73,$D0,$B2,$EC,$1A,$DE,$BC,$8C,$68,$FA,$1E,$F4,$6C,$1C
   Data.b $9E,$D0,$20,$82,$6C,$AA,$61,$2A,$C0,$A5,$5F,$15,$8C,$3C,$AC,$A3,$D7,$F7,$29,$06
   Data.b $61,$DB,$9B,$24,$14,$33,$C8,$94,$FE,$3C,$5D,$84,$0F,$B1,$D6,$44,$10,$E0,$FA,$49
   Data.b $CE,$3B,$82,$2C,$07,$35,$AE,$67,$25,$FC,$2D,$40,$06,$C5,$78,$6E,$4B,$96,$29,$BA
   Data.b $9B,$23,$F3,$74,$EB,$AB,$C5,$0B,$84,$79,$12,$79,$34,$DE,$3F,$4D,$25,$74,$F0,$D7
   Data.b $28,$4D,$03,$B2,$96,$11,$40,$90,$19,$CB,$F8,$6F,$FF,$9A,$62,$A7,$13,$51,$46,$7F
   Data.b $F0,$C2,$51,$92,$A1,$9C,$2B,$72,$85,$D7,$1E,$0A,$A6,$2D,$29,$86,$DC,$DD,$DD,$81
   Data.b $9A,$16,$0D,$EC,$58,$61,$5E,$83,$77,$F0,$16,$31,$9F,$5C,$1E,$38,$E0,$28,$73,$85
   Data.b $BA,$1D,$F5,$D0,$B3,$B1,$3B,$13,$F9,$C5,$79,$D3,$CC,$47,$37,$65,$09,$33,$C1,$02
   Data.b $29,$CF,$0E,$79,$A5,$02,$C4,$E1,$E0,$6A,$65,$C9,$21,$F2,$A3,$5F,$DF,$32,$EA,$74
   Data.b $B8,$78,$30,$69,$C8,$C9,$3C,$07,$1F,$5A,$8C,$FB,$AA,$5E,$2C,$7F,$55,$F5,$4A,$91
   Data.b $9F,$CE,$0C,$8E,$11,$95,$60,$44,$59,$CA,$9A,$A0,$D8,$E2,$30,$59,$94,$29,$D0,$CF
   Data.b $73,$24,$91,$79,$0E,$52,$29,$2C,$20,$E8,$B0,$54,$FF,$87,$75,$AE,$A2,$A2,$C7,$82
   Data.b $E5,$35,$92,$42,$25,$1F,$1C,$C8,$E0,$A6,$26,$68,$65,$AE,$70,$91,$22,$A9,$C0,$A1
   Data.b $26,$58,$E6,$33,$4F,$A5,$BB,$55,$CA,$9D,$32,$81,$BC,$04,$F7,$9A,$1D,$88,$25,$B4
   Data.b $F4,$09,$94,$DC,$D9,$CA,$30,$79,$4D,$AA,$E1,$85,$BD,$54,$A4,$95,$1A,$52,$DE,$C0
   Data.b $2B,$3A,$EF,$62,$AD,$D0,$A1,$4E,$94,$24,$9D,$AB,$62,$86,$51,$11,$27,$2A,$B5,$62
   Data.b $D3,$A0,$D4,$CC,$F5,$CB,$58,$80,$1F,$F5,$A1,$DA,$BE,$64,$53,$30,$19,$C5,$60,$C6
   Data.b $AC,$66,$27,$8C,$F0,$49,$B9,$5E,$38,$33,$5A,$79,$36,$29,$FC,$6D,$10,$A3,$BE,$CB
   Data.b $2F,$EF,$A7,$FB,$2A,$2F,$4A,$32,$AF,$F5,$F3,$22,$A4,$2A,$06,$D3,$D5,$5C,$7E,$21
   Data.b $5E,$F0,$A8,$4F,$87,$88,$6B,$7D,$F3,$B4,$FC,$A0,$AC,$D0,$D9,$2B,$5E,$64,$BA,$D6
   Data.b $57,$E8,$A3,$E6,$33,$00,$5F,$36,$0B,$4D,$E5,$FD,$3B,$15,$18,$50,$92,$B5,$82,$97
   Data.b $9A,$7C,$6A,$7E,$FA,$46,$82,$ED,$86,$46,$66,$2B,$10,$77,$67,$80,$FD,$E8,$54,$92
   Data.b $52,$28,$D5,$36,$C8,$06,$2B,$EA,$A8,$8F,$BE,$5F,$1B,$9C,$8B,$17,$06,$FC,$DC,$13
   Data.b $10,$81,$47,$11,$22,$BE,$51,$D7,$3C,$E1,$AC,$22,$D8,$CD,$34,$7B,$24,$FB,$50,$43
   Data.b $79,$50,$FA,$4D,$4B,$20,$E3,$7A,$CA,$88,$5D,$BB,$AD,$72,$7E,$69,$C3,$E2,$F9,$BA
   Data.b $44,$EE,$CC,$3A,$21,$DC,$38,$BF,$5F,$BA,$33,$BC,$6C,$4F,$3F,$2D,$1E,$32,$B5,$CF
   Data.b $35,$3C,$F4,$03,$28,$C6,$EB,$E4,$DA,$A3,$C5,$C4,$1C,$F1,$29,$BE,$76,$F7,$B8,$BD
   Data.b $62,$4D,$DE,$90,$5F,$59,$5D,$C3,$41,$1F,$9F,$90,$A8,$F5,$AE,$CA,$1E,$93,$DC,$7B
   Data.b $88,$84,$07,$59,$78,$8D,$BA,$AD,$04,$C5,$94,$D0,$6A,$32,$67,$EF,$51,$92,$B4,$69
   Data.b $3C,$BF,$9F,$64,$89,$3E,$56,$FA,$D4,$1F,$B8,$89,$92,$2B,$34,$8E,$DB,$F7,$73,$6C
   Data.b $53,$3A,$5F,$B4,$11,$EB,$D9,$24,$17,$B6,$6B,$97,$8F,$33,$C9,$2A,$1E,$C9,$B9,$34
   Data.b $23,$5B,$6C,$92,$B6,$5F,$00,$8E,$3F,$9C,$5C,$B6,$89,$5F,$E0,$C2,$BC,$49,$62,$F9
   Data.b $72,$F9,$3B,$4D,$23,$A2,$6D,$84,$AC,$19,$C1,$A9,$56,$19,$45,$49,$4D,$2F,$ED,$31
   Data.b $44,$E6,$5A,$62,$34,$DA,$EC,$CB,$EC,$1C,$F1,$9B,$86,$72,$F9,$80,$BE,$C7,$16,$45
   Data.b $E1,$CE,$63,$41,$A0,$34,$74,$B4,$A5,$CE,$37,$EC,$0E,$AF,$F2,$6D,$DA,$02,$C7,$EF
   Data.b $43,$24,$E6,$C9,$ED,$FB,$4A,$29,$E6,$EE,$69,$6B,$AC,$32,$1F,$2F,$DF,$E3,$E7,$6F
   Data.b $6E,$DF,$51,$4A,$51,$61,$00,$60,$2A,$C5,$3C,$5E,$6A,$7E,$57,$9C,$85,$5B,$03,$AC
   Data.b $50,$63,$40,$30,$DF,$F1,$5B,$88,$D4,$FE,$B0,$C6,$E5,$B7,$1F,$0D,$FF,$EE,$FB,$87
   Data.b $1A,$78,$4D,$CA,$F8,$FD,$6C,$B2,$52,$B0,$5A,$D3,$3B,$0B,$C9,$BF,$39,$84,$50,$0F
   Data.b $2F,$3F,$4F,$3F,$8A,$97,$25,$5C,$C2,$6B,$B3,$5D,$9D,$4E,$2F,$30,$54,$C5,$CB,$AC
   Data.b $32,$B3,$7D,$68,$CD,$6F,$CD,$DC,$6F,$6D,$1F,$5B,$C7,$60,$FE,$4D,$A8,$86,$05,$F0
   Data.b $3A,$7C,$1F,$BC,$1C,$85,$CC,$A7,$60,$5B,$2B,$21,$35,$82,$DF,$99,$B5,$0C,$8B,$E1
   Data.b $A5,$A2,$72,$14,$32,$9F,$82,$09,$AF,$2D,$34,$F2,$B1,$3E,$C5,$A2,$CE,$AC,$78,$58
   Data.b $12,$AF,$CC,$3A,$DC,$27,$10,$4A,$F1,$DB,$96,$90,$3A,$B7,$A7,$12,$BA,$D3,$2C,$0D
   Data.b $CB,$E3,$65,$8E,$3F,$B3,$AB,$A3,$C3,$AC,$AD,$90,$62,$E5,$D0,$87,$D5,$02,$32,$FE
   Data.b $E8,$94,$D0,$61,$15,$BC,$BC,$55,$E6,$74,$75,$F8,$27,$78,$AD,$DC,$95,$D6,$88,$99
   Data.b $38,$25,$A4,$90,$CE,$18,$57,$58,$11,$2F,$3B,$26,$7D,$CD,$2A,$2D,$41,$55,$C9,$CD
   Data.b $AA,$AE,$53,$42,$EA,$71,$3A,$BF,$2D,$EB,$93,$3E,$71,$95,$13,$D6,$C5,$4B,$AD,$9E
   Data.b $84,$E3,$F7,$23,$3A,$2A,$89,$96,$4E,$F1,$75,$E2,$87,$47,$EB,$D7,$00,$78,$9C,$75
   Data.b $C9,$63,$D5,$43,$0B,$BC,$FC,$59,$BD,$74,$8A,$8F,$6D,$AA,$EF,$58,$DD,$24,$15,$EF
   Data.b $94,$DF,$C9,$03,$C8,$AF,$4B,$01,$3E,$1C,$38,$00,$14,$DA,$E1,$15,$0D,$ED,$24,$BA
   Data.b $86,$F2,$1D,$B5,$BC,$98,$A8,$A4,$D5,$D2,$53,$0C,$26,$E3,$D4,$F0,$51,$A9,$95,$D1
   Data.b $99,$94,$5B,$F8,$A1,$79,$DE,$47,$53,$B3,$2A,$0F,$A6,$B6,$0F,$75,$B8,$43,$BB,$99
   Data.b $DA,$33,$D7,$37,$D8,$E7,$26,$A9,$6E,$4C,$04,$D0,$FA,$60,$C9,$8B,$C9,$D6,$FA,$90
   Data.b $F9,$01,$31,$B3,$14,$F1,$E2,$78,$11,$DD,$F5,$36,$24,$BA,$D2,$4E,$2E,$DB,$95,$F2
   Data.b $4D,$AC,$84,$B9,$27,$93,$91,$2D,$E8,$08,$9D,$26,$60,$F9,$1E,$FF,$35,$AF,$6F,$07
   Data.b $1E,$25,$C6,$08,$3B,$C2,$7D,$DB,$95,$C7,$8B,$08,$20,$20,$96,$13,$D4,$69,$86,$88
   Data.b $4A,$23,$A6,$D7,$07,$EB,$B0,$01,$B0,$FC,$36,$D2,$35,$C7,$6F,$23,$AF,$D1,$29,$C8
   Data.b $B3,$13,$70,$14,$77,$BC,$0D,$72,$E3,$20,$46,$F6,$1B,$20,$59,$CA,$FD,$1A,$E3,$5A
   Data.b $2B,$8A,$A5,$3B,$3C,$70,$4D,$B6,$06,$6B,$4E,$5D,$E1,$93,$F7,$8B,$F0,$7F,$55,$09
   Data.b $27,$BE,$0A,$98,$66,$1D,$7B,$6D,$0E,$56,$66,$C6,$3F,$53,$58,$8F,$0A,$A7,$83,$37
   Data.b $02,$96,$6F,$F5,$14,$8C,$10,$2C,$0E,$93,$C9,$EF,$2D,$E1,$65,$45,$52,$19,$6A,$F6
   Data.b $1B,$28,$60,$44,$1C,$A8,$FF,$FB,$44,$9B,$22,$97,$37,$CC,$C1,$29,$82,$C1,$DF,$EB
   Data.b $B0,$18,$B7,$14,$46,$89,$28,$B9,$35,$C1,$8E,$1E,$BE,$E5,$D8,$15,$7D,$58,$1D,$A0
   Data.b $3F,$EC,$A4,$57,$7A,$D1,$8B,$7E,$02,$00,$00,$00,$00,$49,$45,$4E,$44,$AE,$42,$60
   Data.b $82
EndDataSection
Torp
User
User
Posts: 82
Joined: Fri Apr 01, 2005 11:29 am

Re: How to manage WindowedScreen+GUI Gadgets together

Post by Torp »

Hello,

This trick does not seem to be compatible with the use of menus. Unable to access the "Menu2", because the mouse is instantly captured by the screen and I could not find a solution to avoid this ...

If anyone has an idea, I'm interested :wink:

Bye

Code: Select all

*unpacked = AllocateMemory(6984)  
	UnpackMemory(?PicPak, *unpacked)  
	Global img0 = CatchImage(#PB_Any, *unpacked, 6984)  
	Global img1 = GrabImage(img0, #PB_Any, 0,42,15,28)  
	StartDrawing(ImageOutput(img0))  
	Box(0,42,15,28,#Black)  
	StopDrawing()  
	FreeMemory(*unpacked)  
	 
	#LeftOffset = 20  
	#TopOffset  = 20  
	#ScreenW    = 440  
	#ScreenH    = 440  
	 
	OpenWindow(0,0,0,800,500,"Screen Mouse Capture/Release Demo",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
	If CreateMenu(0,WindowID(0))
          MenuTitle("Test")
          MenuItem(0,"Menu1")
          MenuItem(1,"Menu2")
	EndIf
	ButtonGadget(1,570,420,120,24,"Push Me!")  
	InitSprite():InitMouse()  
	OpenWindowedScreen(WindowID(0),20,20,440,440,0,0,0)  
	 
	CreateSprite(0,32,32)  
	StartDrawing(SpriteOutput(0))  
	DrawImage(ImageID(img1),0,0)  
	StopDrawing()  
	 
	Procedure DoScreenDisplay(inscreen)  
	ClearScreen(0)  
	;  
	; Display your screen stuff  
	StartDrawing(ScreenOutput())  
	DrawImage(ImageID(img0),170,300)  
	DrawText(120,200,"Screen is not capturing mouse ",#Gray, #Black)  
	DrawText(180,230,"( 000, 000 )", #Gray, #Black)     
	StopDrawing()   
	;  
	If inscreen  ; manage mouse events only if mouse is inside screen  
	WindowEvent() 
	ExamineMouse()  
	StartDrawing(ScreenOutput())  
	DrawText(120,200," Screen is capturing mouse ",#Yellow, #Black)  
	DrawText(180,230,"( "+RSet(Str(MouseX()),3,"0")+", "+RSet(Str(MouseY()),3,"0")+" )",#White,#Black)  
	 
	If MouseButton(#PB_MouseButton_Left)  
	FillArea(186,316,0,#Red)  
	EndIf  
	 
	If MouseButton(#PB_MouseButton_Middle)  
	FillArea(202,311,0,#Red)  
	EndIf  
	If MouseButton(#PB_MouseButton_Right)  
	FillArea(216,306,0,#Red)  
	EndIf  
	StopDrawing()  
	DisplayTransparentSprite(0,MouseX(),MouseY())  
	EndIf  
	FlipBuffers()  
	EndProcedure  
	 
	Repeat  
	ev = WaitWindowEvent()  
	If inscreen  
	If MouseX()>#ScreenW-2 Or MouseY()>#ScreenH-2 Or MouseX()<1 Or MouseY()<1  
	ReleaseMouse(1)  
	inscreen = #False  
	EndIf   
	Else  
	;  
	;************************************  
	; Handle #PB_Event_Gadget Here  
	;************************************  
	;  
	If ev = #PB_Event_Gadget  
	If EventGadget() = 1  
	MessageRequester("","You pressed the button!")  
	EndIf  
	EndIf
	
	If ev = #PB_Event_Menu
		Select EventMenu()
			Case 0 : Debug "Menu1"
			Case 1 : Debug "Menu2"
		EndSelect
	EndIf
	; 
	mx = WindowMouseX(0):my = WindowMouseY(0)  
	If mx < #ScreenW+#LeftOffset And mx > #LeftOffset And my > #TopOffset And my < #TopOffset+#ScreenH  
	ReleaseMouse(0)  
	MouseLocate(mx-#LeftOffset,my-#TopOffset)  
	inscreen = #True  
	EndIf  
	EndIf  
	DoScreenDisplay(inscreen)  
	Until ev = #PB_Event_CloseWindow  
	 
	DataSection  
	PicPak:  
	Data.b $4A,$43,$48,$1B,$00,$00,$16,$6A,$D7,$16,$B4,$A9,$D0,$20,$6D,$14,$D9,$88,$12,$CA  
	Data.b $08,$B0,$4A,$44,$25,$B2,$0C,$10,$46,$02,$11,$D2,$28,$79,$12,$02,$5B,$28,$09,$80  
	Data.b $29,$02,$E2,$1F,$01,$FF,$09,$BE,$74,$5F,$A5,$E0,$52,$77,$95,$DC,$4A,$A6,$51,$F2  
	Data.b $28,$09,$FE,$83,$84,$14,$68,$7F,$84,$00,$47,$A0,$FA,$11,$22,$1F,$81,$D8,$11,$C8  
	Data.b $7A,$04,$6E,$47,$A0,$E3,$04,$12,$1D,$81,$C0,$11,$48,$71,$81,$C0,$46,$20,$66,$04  
	Data.b $2A,$1A,$A0,$91,$11,$48,$18,$81,$2C,$46,$00,$30,$02,$6A,$0F,$68,$60,$84,$51,$80  
	Data.b $7D,$DC,$57,$80,$F9,$82,$08,$69,$EC,$C8,$46,$0E,$20,$C2,$EC,$5D,$CC,$E3,$68,$1F  
	Data.b $99,$45,$16,$2F,$66,$E4,$20,$A9,$68,$00,$BC,$58,$00,$0E,$A0,$37,$9A,$61,$47,$EE  
	Data.b $C8,$4C,$2D,$0A,$43,$A3,$56,$D1,$03,$6C,$77,$6C,$DC,$67,$3E,$CC,$32,$FA,$23,$46  
	Data.b $0B,$30,$91,$AA,$C8,$AC,$80,$59,$BC,$C8,$68,$9B,$99,$75,$91,$3E,$32,$1B,$AE,$83  
	Data.b $C2,$D8,$A2,$64,$22,$45,$2F,$06,$00,$31,$F3,$6C,$24,$12,$8E,$19,$B9,$6D,$C6,$CC  
	Data.b $17,$B6,$32,$D4,$29,$EE,$10,$25,$62,$5C,$30,$2C,$80,$86,$79,$28,$39,$94,$5C,$24  
	Data.b $25,$30,$52,$9A,$14,$69,$B3,$32,$A1,$32,$8A,$CD,$2E,$32,$18,$14,$15,$33,$46,$A8  
	Data.b $78,$78,$E8,$B8,$31,$23,$58,$1F,$18,$03,$0D,$19,$3A,$8C,$7E,$3C,$33,$88,$11,$8B  
	Data.b $CC,$3A,$01,$80,$50,$47,$0C,$AA,$D8,$3A,$48,$9C,$60,$44,$E8,$E0,$3E,$9D,$02,$6C  
	Data.b $12,$09,$D3,$23,$C1,$01,$25,$91,$36,$29,$4C,$F3,$12,$28,$5F,$14,$B1,$C8,$52,$27  
	Data.b $14,$27,$44,$9A,$41,$49,$03,$6A,$F3,$F4,$36,$2B,$C0,$5A,$0B,$34,$33,$C5,$A6,$35  
	Data.b $5B,$26,$69,$46,$93,$19,$41,$B1,$53,$FC,$12,$31,$2E,$6B,$5A,$05,$98,$25,$61,$82  
	Data.b $B7,$49,$A1,$2A,$23,$11,$BA,$C6,$CC,$83,$B4,$D8,$29,$4D,$A8,$49,$90,$70,$F3,$12  
	Data.b $33,$2A,$86,$A2,$34,$67,$CC,$68,$9C,$E4,$98,$59,$66,$93,$79,$D9,$C9,$D5,$A4,$44  
	Data.b $E9,$64,$60,$95,$CB,$A6,$C0,$20,$C9,$1D,$5E,$52,$60,$52,$3C,$8F,$CC,$30,$E7,$B7  
	Data.b $E8,$75,$D9,$69,$AC,$0B,$03,$CC,$22,$B9,$EA,$92,$12,$E8,$94,$D4,$04,$5B,$73,$FE  
	Data.b $63,$E6,$3B,$35,$C9,$61,$25,$12,$D3,$A2,$3E,$FA,$07,$58,$00,$86,$92,$54,$B0,$2C  
	Data.b $4F,$64,$B0,$39,$4F,$BA,$49,$C0,$26,$B1,$02,$8C,$82,$59,$47,$BA,$2C,$AF,$32,$DB  
	Data.b $A4,$8C,$B3,$2A,$D6,$62,$4D,$C7,$20,$63,$B7,$FC,$A2,$47,$94,$44,$D9,$00,$84,$32  
	Data.b $32,$D3,$92,$C7,$CC,$FB,$C7,$4B,$4C,$29,$12,$B3,$AC,$23,$44,$66,$97,$13,$54,$D6  
	Data.b $C4,$54,$C8,$CD,$71,$C3,$0B,$B0,$0A,$63,$2A,$29,$1D,$AD,$2B,$36,$67,$F2,$2B,$B1  
	Data.b $C2,$F4,$2E,$93,$41,$D2,$32,$B3,$34,$4A,$AA,$73,$D2,$BB,$76,$8A,$FB,$81,$23,$C7  
	Data.b $C7,$4C,$2E,$99,$90,$D0,$68,$5F,$80,$55,$CD,$E2,$95,$F9,$9D,$68,$A5,$69,$30,$86  
	Data.b $DD,$1C,$09,$80,$6B,$C2,$13,$2A,$32,$28,$68,$6D,$2B,$BF,$CE,$A8,$D8,$A5,$3D,$66  
	Data.b $17,$4C,$C5,$49,$B2,$51,$53,$26,$DF,$09,$4A,$1A,$AD,$45,$01,$56,$B9,$6C,$D1,$27  
	Data.b $26,$D7,$78,$61,$6E,$7A,$2B,$76,$61,$47,$99,$55,$28,$37,$55,$B1,$F1,$15,$49,$49  
	Data.b $17,$1C,$C8,$AC,$22,$99,$CC,$4B,$93,$AF,$4A,$2F,$38,$DF,$CC,$2C,$17,$CD,$30,$3B  
	Data.b $ED,$8A,$BB,$F0,$31,$E9,$3D,$66,$99,$16,$99,$34,$99,$F9,$51,$FA,$3A,$74,$60,$5E  
	Data.b $DA,$E9,$D1,$EF,$31,$BB,$BF,$7F,$6F,$F3,$32,$15,$03,$10,$8B,$8D,$84,$D6,$46,$F9  
	Data.b $2D,$66,$CF,$4E,$19,$82,$83,$B6,$4C,$45,$58,$3F,$66,$8C,$D8,$9C,$22,$01,$B8,$58  
	Data.b $00,$7E,$1E,$52,$94,$85,$FB,$31,$C3,$38,$B2,$BC,$15,$8A,$0C,$85,$B2,$7A,$0C,$21  
	Data.b $71,$A7,$5A,$D7,$B1,$55,$E1,$85,$42,$2D,$0A,$1B,$2F,$94,$24,$F4,$7E,$CC,$65,$6D  
	Data.b $2C,$7A,$3B,$55,$48,$07,$EF,$C7,$0C,$83,$F5,$38,$47,$43,$02,$AD,$E6,$A8,$CC,$12  
	Data.b $59,$A4,$A3,$91,$F2,$5E,$68,$25,$F1,$31,$26,$86,$A0,$ED,$CA,$9D,$C2,$0C,$3F,$AE  
	Data.b $22,$A8,$C3,$7B,$A4,$E8,$2E,$82,$B2,$14,$D3,$8A,$BE,$5C,$38,$0E,$8E,$FA,$E2,$90  
	Data.b $CA,$B5,$20,$17,$07,$D7,$CC,$AC,$AA,$D8,$A4,$E6,$29,$6F,$3B,$18,$3C,$4C,$31,$2B  
	Data.b $4C,$82,$8F,$51,$D0,$FE,$31,$D1,$6A,$92,$08,$B4,$7C,$0F,$06,$27,$9D,$20,$E4,$FC  
	Data.b $CB,$D8,$3B,$A4,$12,$0D,$07,$2E,$92,$40,$85,$39,$EB,$B0,$7D,$8D,$19,$61,$B0,$4D  
	Data.b $15,$22,$9F,$C0,$DE,$1A,$EA,$42,$68,$26,$AA,$D0,$FF,$47,$33,$45,$BF,$C6,$48,$69  
	Data.b $08,$09,$94,$30,$94,$85,$A3,$A1,$FD,$2D,$5C,$FE,$BE,$D5,$9A,$80,$A0,$B0,$1C,$5A  
	Data.b $96,$25,$A3,$DF,$85,$EA,$0D,$32,$F8,$31,$7F,$4F,$D1,$84,$D0,$39,$0E,$69,$AB,$C7  
	Data.b $2C,$90,$77,$AF,$47,$44,$BF,$42,$45,$3A,$B8,$30,$AB,$1F,$0C,$B4,$EF,$CC,$BD,$66  
	Data.b $E8,$5A,$F4,$BB,$A0,$16,$40,$43,$3B,$38,$F5,$CD,$54,$92,$FB,$9E,$07,$18,$88,$84  
	Data.b $81,$D4,$C5,$66,$47,$6E,$57,$8D,$85,$DE,$C0,$14,$5F,$05,$53,$DC,$6C,$F6,$7E,$90  
	Data.b $D4,$B9,$0F,$59,$7E,$67,$C0,$93,$04,$5A,$CC,$C4,$E4,$A8,$31,$43,$B4,$CA,$47,$8A  
	Data.b $12,$BB,$59,$97,$55,$E8,$B9,$86,$3F,$5E,$83,$54,$D9,$71,$77,$38,$57,$8C,$DA,$14  
	Data.b $20,$A2,$6B,$85,$81,$5C,$FB,$04,$0F,$FD,$C7,$43,$FB,$66,$91,$9F,$81,$2E,$02,$6D  
	Data.b $18,$0A,$D6,$35,$A3,$E4,$A4,$19,$6A,$D0,$40,$6A,$2A,$4C,$CA,$9A,$AE,$C4,$66,$0B  
	Data.b $44,$F4,$10,$51,$31,$AC,$04,$3B,$1E,$6A,$91,$AE,$9D,$F2,$F9,$02,$E0,$AB,$45,$20  
	Data.b $08,$15,$62,$0D,$AA,$0B,$4D,$91,$6E,$8E,$B9,$D8,$AC,$E8,$2E,$13,$BF,$22,$45,$16  
	Data.b $CD,$D1,$EF,$10,$41,$AA,$4F,$82,$62,$61,$F0,$90,$69,$90,$45,$FA,$CD,$4E,$1C,$AD  
	Data.b $12,$B3,$29,$CA,$44,$AE,$D0,$4F,$9B,$F2,$94,$B2,$16,$2E,$15,$51,$20,$A4,$68,$65  
	Data.b $51,$83,$A2,$57,$62,$A6,$54,$BC,$60,$5D,$F5,$70,$51,$89,$8E,$B5,$C4,$71,$64,$80  
	Data.b $00,$3C,$52,$A4,$E8,$A2,$13,$AE,$1E,$F9,$2A,$57,$F9,$22,$E0,$12,$A9,$18,$B7,$20  
	Data.b $D0,$6F,$0E,$19,$C2,$04,$36,$43,$73,$B4,$44,$AE,$EC,$2A,$1C,$17,$19,$43,$8E,$F2  
	Data.b $5D,$A8,$0B,$B3,$40,$7A,$0D,$00,$88,$84,$AA,$00,$E3,$9A,$16,$E3,$72,$D3,$1F,$E9  
	Data.b $58,$A8,$A3,$42,$B8,$18,$12,$D2,$8B,$C9,$F8,$7A,$A5,$CE,$E5,$2E,$4D,$A4,$A4,$C4  
	Data.b $A4,$0E,$81,$CE,$22,$71,$72,$D2,$91,$4E,$EA,$8E,$0D,$F3,$2E,$93,$42,$3B,$8B,$E4  
	Data.b $B7,$F2,$CA,$48,$AE,$61,$CE,$93,$BB,$CC,$DB,$BC,$C4,$E4,$01,$2C,$7B,$12,$C3,$A4  
	Data.b $84,$F4,$12,$FE,$4C,$E8,$46,$57,$A2,$77,$59,$09,$69,$67,$75,$01,$F6,$89,$5A,$47  
	Data.b $9F,$E5,$51,$52,$24,$00,$DE,$D9,$5D,$98,$B3,$68,$52,$F4,$48,$C4,$EA,$00,$00,$00  
	Data.b $00,$80  
	EndDataSection
Post Reply