Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
libvncserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
rasky
libvncserver
Commits
336d7dad
Commit
336d7dad
authored
Jan 14, 2005
by
dscho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix most TODOs; recorder.pl now actually records something; add nacro.pm to package
parent
2d03c071
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
533 additions
and
59 deletions
+533
-59
Makefile.am
VisualNaCro/Makefile.am
+5
-5
default8x16.h
VisualNaCro/default8x16.h
+261
-0
nacro.c
VisualNaCro/nacro.c
+137
-22
nacro.h
VisualNaCro/nacro.h
+18
-18
recorder.pl
VisualNaCro/recorder.pl
+112
-14
No files found.
VisualNaCro/Makefile.am
View file @
336d7dad
...
...
@@ -10,7 +10,7 @@ nacro_CFLAGS= @LIBVNCSERVERCFLAGS@
SWIGOPT
=
EXTRA_DIST
=
autogen.sh
$(INTERFACE)
$(SRCS)
$(ISRCS)
recorder.pl
EXTRA_DIST
=
autogen.sh
$(INTERFACE)
$(SRCS)
$(ISRCS)
nacro.pm
recorder.pl
all
:
$(LIBPREFIX)$(TARGET)$(SO)
...
...
@@ -39,11 +39,11 @@ PERL5_CCFLAGS = @PERL5CCFLAGS@
$(ISRCS)
:
$(INTERFACE)
$(SWIG)
-perl5
$(SWIGOPT)
$(INTERFACE)
$(OBJS)
:
$(SRCS)
$(CC)
-c
-Dbool
=
char
$(CCSHARED)
$(CFLAGS)
-o
$@
$
^
$(LIBVNCSERVERCFLAGS)
$(INCLUDES)
-I
$(PERL5_INCLUDE)
$(OBJS)
:
$(SRCS)
$(INTERFACE)
$(CC)
-c
-Dbool
=
char
$(CCSHARED)
$(CFLAGS)
-o
$@
$
<
$(LIBVNCSERVERCFLAGS)
$(INCLUDES)
-I
$(PERL5_INCLUDE)
$(IOBJS)
:
$(ISRCS)
$(CC)
-c
-Dbool
=
char
$(CCSHARED)
$(CFLAGS)
-o
$@
$
^
$(INCLUDES)
$(PERL5_CCFLAGS)
-I
$(PERL5_INCLUDE)
$(IOBJS)
:
$(ISRCS)
$(INTERFACE)
$(CC)
-c
-Dbool
=
char
$(CCSHARED)
$(CFLAGS)
-o
$@
$
<
$(INCLUDES)
$(PERL5_CCFLAGS)
-I
$(PERL5_INCLUDE)
$(LIBPREFIX)$(TARGET)$(SO)
:
$(OBJS) $(IOBJS)
$(LDSHARED)
$(OBJS)
$(IOBJS)
$(PERL5_DLNK)
$(LIBS)
-o
$(LIBPREFIX)$(TARGET)$(SO)
...
...
VisualNaCro/default8x16.h
0 → 100644
View file @
336d7dad
unsigned
char
default8x16FontData
[
4096
+
1
]
=
{
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7e
,
0x81
,
0xa5
,
0x81
,
0x81
,
0xbd
,
0x99
,
0x81
,
0x81
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7e
,
0xff
,
0xdb
,
0xff
,
0xff
,
0xc3
,
0xe7
,
0xff
,
0xff
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x6c
,
0xfe
,
0xfe
,
0xfe
,
0xfe
,
0x7c
,
0x38
,
0x10
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x38
,
0x7c
,
0xfe
,
0x7c
,
0x38
,
0x10
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x3c
,
0x3c
,
0xe7
,
0xe7
,
0xe7
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x3c
,
0x7e
,
0xff
,
0xff
,
0x7e
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x3c
,
0x3c
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xe7
,
0xc3
,
0xc3
,
0xe7
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x66
,
0x42
,
0x42
,
0x66
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xc3
,
0x99
,
0xbd
,
0xbd
,
0x99
,
0xc3
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0x00
,
0x00
,
0x1e
,
0x0e
,
0x1a
,
0x32
,
0x78
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x78
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x66
,
0x66
,
0x66
,
0x66
,
0x3c
,
0x18
,
0x7e
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3f
,
0x33
,
0x3f
,
0x30
,
0x30
,
0x30
,
0x30
,
0x70
,
0xf0
,
0xe0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7f
,
0x63
,
0x7f
,
0x63
,
0x63
,
0x63
,
0x63
,
0x67
,
0xe7
,
0xe6
,
0xc0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0xdb
,
0x3c
,
0xe7
,
0x3c
,
0xdb
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x80
,
0xc0
,
0xe0
,
0xf0
,
0xf8
,
0xfe
,
0xf8
,
0xf0
,
0xe0
,
0xc0
,
0x80
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0x06
,
0x0e
,
0x1e
,
0x3e
,
0xfe
,
0x3e
,
0x1e
,
0x0e
,
0x06
,
0x02
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x3c
,
0x7e
,
0x18
,
0x18
,
0x18
,
0x7e
,
0x3c
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x00
,
0x66
,
0x66
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7f
,
0xdb
,
0xdb
,
0xdb
,
0x7b
,
0x1b
,
0x1b
,
0x1b
,
0x1b
,
0x1b
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0x60
,
0x38
,
0x6c
,
0xc6
,
0xc6
,
0x6c
,
0x38
,
0x0c
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0xfe
,
0xfe
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x3c
,
0x7e
,
0x18
,
0x18
,
0x18
,
0x7e
,
0x3c
,
0x18
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x3c
,
0x7e
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x7e
,
0x3c
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x0c
,
0xfe
,
0x0c
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x30
,
0x60
,
0xfe
,
0x60
,
0x30
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc0
,
0xc0
,
0xc0
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x24
,
0x66
,
0xff
,
0x66
,
0x24
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x38
,
0x38
,
0x7c
,
0x7c
,
0xfe
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0xfe
,
0x7c
,
0x7c
,
0x38
,
0x38
,
0x10
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x3c
,
0x3c
,
0x3c
,
0x18
,
0x18
,
0x18
,
0x00
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x66
,
0x66
,
0x66
,
0x24
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x6c
,
0x6c
,
0xfe
,
0x6c
,
0x6c
,
0x6c
,
0xfe
,
0x6c
,
0x6c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x7c
,
0xc6
,
0xc2
,
0xc0
,
0x7c
,
0x06
,
0x06
,
0x86
,
0xc6
,
0x7c
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc2
,
0xc6
,
0x0c
,
0x18
,
0x30
,
0x60
,
0xc6
,
0x86
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0x6c
,
0x38
,
0x76
,
0xdc
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x30
,
0x30
,
0x30
,
0x60
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0c
,
0x18
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x18
,
0x0c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x30
,
0x18
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x18
,
0x30
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x66
,
0x3c
,
0xff
,
0x3c
,
0x66
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x7e
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x18
,
0x30
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0x06
,
0x0c
,
0x18
,
0x30
,
0x60
,
0xc0
,
0x80
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xce
,
0xde
,
0xf6
,
0xe6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x38
,
0x78
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0x06
,
0x0c
,
0x18
,
0x30
,
0x60
,
0xc0
,
0xc6
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0x06
,
0x06
,
0x3c
,
0x06
,
0x06
,
0x06
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0c
,
0x1c
,
0x3c
,
0x6c
,
0xcc
,
0xfe
,
0x0c
,
0x0c
,
0x0c
,
0x1e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0xc0
,
0xc0
,
0xc0
,
0xfc
,
0x06
,
0x06
,
0x06
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x60
,
0xc0
,
0xc0
,
0xfc
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0xc6
,
0x06
,
0x06
,
0x0c
,
0x18
,
0x30
,
0x30
,
0x30
,
0x30
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0x7e
,
0x06
,
0x06
,
0x06
,
0x0c
,
0x78
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x30
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x06
,
0x0c
,
0x18
,
0x30
,
0x60
,
0x30
,
0x18
,
0x0c
,
0x06
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7e
,
0x00
,
0x00
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x60
,
0x30
,
0x18
,
0x0c
,
0x06
,
0x0c
,
0x18
,
0x30
,
0x60
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0x0c
,
0x18
,
0x18
,
0x18
,
0x00
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xde
,
0xde
,
0xde
,
0xdc
,
0xc0
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x38
,
0x6c
,
0xc6
,
0xc6
,
0xfe
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfc
,
0x66
,
0x66
,
0x66
,
0x7c
,
0x66
,
0x66
,
0x66
,
0x66
,
0xfc
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x66
,
0xc2
,
0xc0
,
0xc0
,
0xc0
,
0xc0
,
0xc2
,
0x66
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xf8
,
0x6c
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x6c
,
0xf8
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0x66
,
0x62
,
0x68
,
0x78
,
0x68
,
0x60
,
0x62
,
0x66
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0x66
,
0x62
,
0x68
,
0x78
,
0x68
,
0x60
,
0x60
,
0x60
,
0xf0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x66
,
0xc2
,
0xc0
,
0xc0
,
0xde
,
0xc6
,
0xc6
,
0x66
,
0x3a
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xfe
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x1e
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0xcc
,
0xcc
,
0xcc
,
0x78
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xe6
,
0x66
,
0x66
,
0x6c
,
0x78
,
0x78
,
0x6c
,
0x66
,
0x66
,
0xe6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xf0
,
0x60
,
0x60
,
0x60
,
0x60
,
0x60
,
0x60
,
0x62
,
0x66
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0xe7
,
0xff
,
0xff
,
0xdb
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0xe6
,
0xf6
,
0xfe
,
0xde
,
0xce
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfc
,
0x66
,
0x66
,
0x66
,
0x7c
,
0x60
,
0x60
,
0x60
,
0x60
,
0xf0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xd6
,
0xde
,
0x7c
,
0x0c
,
0x0e
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfc
,
0x66
,
0x66
,
0x66
,
0x7c
,
0x6c
,
0x66
,
0x66
,
0x66
,
0xe6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0x60
,
0x38
,
0x0c
,
0x06
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0xdb
,
0x99
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0x66
,
0x3c
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0xdb
,
0xdb
,
0xff
,
0x66
,
0x66
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0xc3
,
0x66
,
0x3c
,
0x18
,
0x18
,
0x3c
,
0x66
,
0xc3
,
0xc3
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0xc3
,
0xc3
,
0x66
,
0x3c
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0xc3
,
0x86
,
0x0c
,
0x18
,
0x30
,
0x60
,
0xc1
,
0xc3
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x80
,
0xc0
,
0xe0
,
0x70
,
0x38
,
0x1c
,
0x0e
,
0x06
,
0x02
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x38
,
0x6c
,
0xc6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0x00
,
0x00
,
0x30
,
0x30
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x78
,
0x0c
,
0x7c
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xe0
,
0x60
,
0x60
,
0x78
,
0x6c
,
0x66
,
0x66
,
0x66
,
0x66
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc0
,
0xc0
,
0xc0
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x1c
,
0x0c
,
0x0c
,
0x3c
,
0x6c
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xfe
,
0xc0
,
0xc0
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0x64
,
0x60
,
0xf0
,
0x60
,
0x60
,
0x60
,
0x60
,
0xf0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x76
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x7c
,
0x0c
,
0xcc
,
0x78
,
0x00
,
0x00
,
0x00
,
0xe0
,
0x60
,
0x60
,
0x6c
,
0x76
,
0x66
,
0x66
,
0x66
,
0x66
,
0xe6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x00
,
0x38
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x06
,
0x06
,
0x00
,
0x0e
,
0x06
,
0x06
,
0x06
,
0x06
,
0x06
,
0x06
,
0x66
,
0x66
,
0x3c
,
0x00
,
0x00
,
0x00
,
0xe0
,
0x60
,
0x60
,
0x66
,
0x6c
,
0x78
,
0x78
,
0x6c
,
0x66
,
0xe6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xe6
,
0xff
,
0xdb
,
0xdb
,
0xdb
,
0xdb
,
0xdb
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xdc
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xdc
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x7c
,
0x60
,
0x60
,
0xf0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x76
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x7c
,
0x0c
,
0x0c
,
0x1e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xdc
,
0x76
,
0x66
,
0x60
,
0x60
,
0x60
,
0xf0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0x60
,
0x38
,
0x0c
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x30
,
0x30
,
0xfc
,
0x30
,
0x30
,
0x30
,
0x30
,
0x36
,
0x1c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0xc3
,
0xc3
,
0xc3
,
0x66
,
0x3c
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0xc3
,
0xc3
,
0xdb
,
0xdb
,
0xff
,
0x66
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0x66
,
0x3c
,
0x18
,
0x3c
,
0x66
,
0xc3
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7e
,
0x06
,
0x0c
,
0xf8
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0xcc
,
0x18
,
0x30
,
0x60
,
0xc6
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0e
,
0x18
,
0x18
,
0x18
,
0x70
,
0x18
,
0x18
,
0x18
,
0x18
,
0x0e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x18
,
0x18
,
0x00
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x70
,
0x18
,
0x18
,
0x18
,
0x0e
,
0x18
,
0x18
,
0x18
,
0x18
,
0x70
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x76
,
0xdc
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x38
,
0x6c
,
0xc6
,
0xc6
,
0xc6
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x66
,
0xc2
,
0xc0
,
0xc0
,
0xc0
,
0xc2
,
0x66
,
0x3c
,
0x0c
,
0x06
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0xcc
,
0x00
,
0x00
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0c
,
0x18
,
0x30
,
0x00
,
0x7c
,
0xc6
,
0xfe
,
0xc0
,
0xc0
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x38
,
0x6c
,
0x00
,
0x78
,
0x0c
,
0x7c
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xcc
,
0x00
,
0x00
,
0x78
,
0x0c
,
0x7c
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x60
,
0x30
,
0x18
,
0x00
,
0x78
,
0x0c
,
0x7c
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0x38
,
0x00
,
0x78
,
0x0c
,
0x7c
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x66
,
0x60
,
0x60
,
0x66
,
0x3c
,
0x0c
,
0x06
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x38
,
0x6c
,
0x00
,
0x7c
,
0xc6
,
0xfe
,
0xc0
,
0xc0
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xfe
,
0xc0
,
0xc0
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x60
,
0x30
,
0x18
,
0x00
,
0x7c
,
0xc6
,
0xfe
,
0xc0
,
0xc0
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x66
,
0x00
,
0x00
,
0x38
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x3c
,
0x66
,
0x00
,
0x38
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x60
,
0x30
,
0x18
,
0x00
,
0x38
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0x00
,
0x10
,
0x38
,
0x6c
,
0xc6
,
0xc6
,
0xfe
,
0xc6
,
0xc6
,
0xc6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0x38
,
0x00
,
0x38
,
0x6c
,
0xc6
,
0xc6
,
0xfe
,
0xc6
,
0xc6
,
0xc6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x30
,
0x60
,
0x00
,
0xfe
,
0x66
,
0x60
,
0x7c
,
0x60
,
0x60
,
0x66
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x6e
,
0x3b
,
0x1b
,
0x7e
,
0xd8
,
0xdc
,
0x77
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3e
,
0x6c
,
0xcc
,
0xcc
,
0xfe
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xce
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x10
,
0x38
,
0x6c
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x60
,
0x30
,
0x18
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x30
,
0x78
,
0xcc
,
0x00
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x60
,
0x30
,
0x18
,
0x00
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0x00
,
0x00
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7e
,
0x06
,
0x0c
,
0x78
,
0x00
,
0x00
,
0xc6
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc6
,
0x00
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x7e
,
0xc3
,
0xc0
,
0xc0
,
0xc0
,
0xc3
,
0x7e
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0x64
,
0x60
,
0xf0
,
0x60
,
0x60
,
0x60
,
0x60
,
0xe6
,
0xfc
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc3
,
0x66
,
0x3c
,
0x18
,
0xff
,
0x18
,
0xff
,
0x18
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfc
,
0x66
,
0x66
,
0x7c
,
0x62
,
0x66
,
0x6f
,
0x66
,
0x66
,
0x66
,
0xf3
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0e
,
0x1b
,
0x18
,
0x18
,
0x18
,
0x7e
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xd8
,
0x70
,
0x00
,
0x00
,
0x00
,
0x18
,
0x30
,
0x60
,
0x00
,
0x78
,
0x0c
,
0x7c
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0c
,
0x18
,
0x30
,
0x00
,
0x38
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x30
,
0x60
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x30
,
0x60
,
0x00
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0xcc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x76
,
0xdc
,
0x00
,
0xdc
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x00
,
0x00
,
0x00
,
0x00
,
0x76
,
0xdc
,
0x00
,
0xc6
,
0xe6
,
0xf6
,
0xfe
,
0xde
,
0xce
,
0xc6
,
0xc6
,
0xc6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3c
,
0x6c
,
0x6c
,
0x3e
,
0x00
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0x6c
,
0x38
,
0x00
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x30
,
0x30
,
0x00
,
0x30
,
0x30
,
0x60
,
0xc0
,
0xc6
,
0xc6
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0xc0
,
0xc0
,
0xc0
,
0xc0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0x06
,
0x06
,
0x06
,
0x06
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xc0
,
0xc0
,
0xc2
,
0xc6
,
0xcc
,
0x18
,
0x30
,
0x60
,
0xce
,
0x9b
,
0x06
,
0x0c
,
0x1f
,
0x00
,
0x00
,
0x00
,
0xc0
,
0xc0
,
0xc2
,
0xc6
,
0xcc
,
0x18
,
0x30
,
0x66
,
0xce
,
0x96
,
0x3e
,
0x06
,
0x06
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x00
,
0x18
,
0x18
,
0x18
,
0x3c
,
0x3c
,
0x3c
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x36
,
0x6c
,
0xd8
,
0x6c
,
0x36
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xd8
,
0x6c
,
0x36
,
0x6c
,
0xd8
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x11
,
0x44
,
0x11
,
0x44
,
0x11
,
0x44
,
0x11
,
0x44
,
0x11
,
0x44
,
0x11
,
0x44
,
0x11
,
0x44
,
0x11
,
0x44
,
0x55
,
0xaa
,
0x55
,
0xaa
,
0x55
,
0xaa
,
0x55
,
0xaa
,
0x55
,
0xaa
,
0x55
,
0xaa
,
0x55
,
0xaa
,
0x55
,
0xaa
,
0xdd
,
0x77
,
0xdd
,
0x77
,
0xdd
,
0x77
,
0xdd
,
0x77
,
0xdd
,
0x77
,
0xdd
,
0x77
,
0xdd
,
0x77
,
0xdd
,
0x77
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xf8
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xf8
,
0x18
,
0xf8
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0xf6
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xf8
,
0x18
,
0xf8
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0xf6
,
0x06
,
0xf6
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0x06
,
0xf6
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0xf6
,
0x06
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xf8
,
0x18
,
0xf8
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xf8
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x1f
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x1f
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xff
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x1f
,
0x18
,
0x1f
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x37
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x37
,
0x30
,
0x3f
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3f
,
0x30
,
0x37
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0xf7
,
0x00
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0x00
,
0xf7
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x37
,
0x30
,
0x37
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0x00
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0xf7
,
0x00
,
0xf7
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xff
,
0x00
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0x00
,
0xff
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x3f
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x1f
,
0x18
,
0x1f
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x1f
,
0x18
,
0x1f
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x3f
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0xff
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x36
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xff
,
0x18
,
0xff
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xf8
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x1f
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0xf0
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0x0f
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x76
,
0xdc
,
0xd8
,
0xd8
,
0xd8
,
0xdc
,
0x76
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x78
,
0xcc
,
0xcc
,
0xcc
,
0xd8
,
0xcc
,
0xc6
,
0xc6
,
0xc6
,
0xcc
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0xc6
,
0xc6
,
0xc0
,
0xc0
,
0xc0
,
0xc0
,
0xc0
,
0xc0
,
0xc0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0x6c
,
0x6c
,
0x6c
,
0x6c
,
0x6c
,
0x6c
,
0x6c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0xc6
,
0x60
,
0x30
,
0x18
,
0x30
,
0x60
,
0xc6
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7e
,
0xd8
,
0xd8
,
0xd8
,
0xd8
,
0xd8
,
0x70
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x66
,
0x66
,
0x66
,
0x66
,
0x66
,
0x7c
,
0x60
,
0x60
,
0xc0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x76
,
0xdc
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7e
,
0x18
,
0x3c
,
0x66
,
0x66
,
0x66
,
0x3c
,
0x18
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0xc6
,
0xc6
,
0xfe
,
0xc6
,
0xc6
,
0x6c
,
0x38
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0xc6
,
0xc6
,
0xc6
,
0x6c
,
0x6c
,
0x6c
,
0x6c
,
0xee
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x1e
,
0x30
,
0x18
,
0x0c
,
0x3e
,
0x66
,
0x66
,
0x66
,
0x66
,
0x3c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7e
,
0xdb
,
0xdb
,
0xdb
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x03
,
0x06
,
0x7e
,
0xdb
,
0xdb
,
0xf3
,
0x7e
,
0x60
,
0xc0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x1c
,
0x30
,
0x60
,
0x60
,
0x7c
,
0x60
,
0x60
,
0x60
,
0x30
,
0x1c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0xc6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xfe
,
0x00
,
0x00
,
0xfe
,
0x00
,
0x00
,
0xfe
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x7e
,
0x18
,
0x18
,
0x00
,
0x00
,
0xff
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x30
,
0x18
,
0x0c
,
0x06
,
0x0c
,
0x18
,
0x30
,
0x00
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0c
,
0x18
,
0x30
,
0x60
,
0x30
,
0x18
,
0x0c
,
0x00
,
0x7e
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0e
,
0x1b
,
0x1b
,
0x1b
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0x18
,
0xd8
,
0xd8
,
0xd8
,
0x70
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x00
,
0x7e
,
0x00
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x76
,
0xdc
,
0x00
,
0x76
,
0xdc
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x38
,
0x6c
,
0x6c
,
0x38
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x18
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x0f
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0x0c
,
0xec
,
0x6c
,
0x6c
,
0x3c
,
0x1c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0xd8
,
0x6c
,
0x6c
,
0x6c
,
0x6c
,
0x6c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x70
,
0xd8
,
0x30
,
0x60
,
0xc8
,
0xf8
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x7c
,
0x7c
,
0x7c
,
0x7c
,
0x7c
,
0x7c
,
0x7c
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
};
int
default8x16FontMetaData
[
256
*
5
+
1
]
=
{
0
,
8
,
16
,
0
,
0
,
16
,
8
,
16
,
0
,
0
,
32
,
8
,
16
,
0
,
0
,
48
,
8
,
16
,
0
,
0
,
64
,
8
,
16
,
0
,
0
,
80
,
8
,
16
,
0
,
0
,
96
,
8
,
16
,
0
,
0
,
112
,
8
,
16
,
0
,
0
,
128
,
8
,
16
,
0
,
0
,
144
,
8
,
16
,
0
,
0
,
160
,
8
,
16
,
0
,
0
,
176
,
8
,
16
,
0
,
0
,
192
,
8
,
16
,
0
,
0
,
208
,
8
,
16
,
0
,
0
,
224
,
8
,
16
,
0
,
0
,
240
,
8
,
16
,
0
,
0
,
256
,
8
,
16
,
0
,
0
,
272
,
8
,
16
,
0
,
0
,
288
,
8
,
16
,
0
,
0
,
304
,
8
,
16
,
0
,
0
,
320
,
8
,
16
,
0
,
0
,
336
,
8
,
16
,
0
,
0
,
352
,
8
,
16
,
0
,
0
,
368
,
8
,
16
,
0
,
0
,
384
,
8
,
16
,
0
,
0
,
400
,
8
,
16
,
0
,
0
,
416
,
8
,
16
,
0
,
0
,
432
,
8
,
16
,
0
,
0
,
448
,
8
,
16
,
0
,
0
,
464
,
8
,
16
,
0
,
0
,
480
,
8
,
16
,
0
,
0
,
496
,
8
,
16
,
0
,
0
,
512
,
8
,
16
,
0
,
0
,
528
,
8
,
16
,
0
,
0
,
544
,
8
,
16
,
0
,
0
,
560
,
8
,
16
,
0
,
0
,
576
,
8
,
16
,
0
,
0
,
592
,
8
,
16
,
0
,
0
,
608
,
8
,
16
,
0
,
0
,
624
,
8
,
16
,
0
,
0
,
640
,
8
,
16
,
0
,
0
,
656
,
8
,
16
,
0
,
0
,
672
,
8
,
16
,
0
,
0
,
688
,
8
,
16
,
0
,
0
,
704
,
8
,
16
,
0
,
0
,
720
,
8
,
16
,
0
,
0
,
736
,
8
,
16
,
0
,
0
,
752
,
8
,
16
,
0
,
0
,
768
,
8
,
16
,
0
,
0
,
784
,
8
,
16
,
0
,
0
,
800
,
8
,
16
,
0
,
0
,
816
,
8
,
16
,
0
,
0
,
832
,
8
,
16
,
0
,
0
,
848
,
8
,
16
,
0
,
0
,
864
,
8
,
16
,
0
,
0
,
880
,
8
,
16
,
0
,
0
,
896
,
8
,
16
,
0
,
0
,
912
,
8
,
16
,
0
,
0
,
928
,
8
,
16
,
0
,
0
,
944
,
8
,
16
,
0
,
0
,
960
,
8
,
16
,
0
,
0
,
976
,
8
,
16
,
0
,
0
,
992
,
8
,
16
,
0
,
0
,
1008
,
8
,
16
,
0
,
0
,
1024
,
8
,
16
,
0
,
0
,
1040
,
8
,
16
,
0
,
0
,
1056
,
8
,
16
,
0
,
0
,
1072
,
8
,
16
,
0
,
0
,
1088
,
8
,
16
,
0
,
0
,
1104
,
8
,
16
,
0
,
0
,
1120
,
8
,
16
,
0
,
0
,
1136
,
8
,
16
,
0
,
0
,
1152
,
8
,
16
,
0
,
0
,
1168
,
8
,
16
,
0
,
0
,
1184
,
8
,
16
,
0
,
0
,
1200
,
8
,
16
,
0
,
0
,
1216
,
8
,
16
,
0
,
0
,
1232
,
8
,
16
,
0
,
0
,
1248
,
8
,
16
,
0
,
0
,
1264
,
8
,
16
,
0
,
0
,
1280
,
8
,
16
,
0
,
0
,
1296
,
8
,
16
,
0
,
0
,
1312
,
8
,
16
,
0
,
0
,
1328
,
8
,
16
,
0
,
0
,
1344
,
8
,
16
,
0
,
0
,
1360
,
8
,
16
,
0
,
0
,
1376
,
8
,
16
,
0
,
0
,
1392
,
8
,
16
,
0
,
0
,
1408
,
8
,
16
,
0
,
0
,
1424
,
8
,
16
,
0
,
0
,
1440
,
8
,
16
,
0
,
0
,
1456
,
8
,
16
,
0
,
0
,
1472
,
8
,
16
,
0
,
0
,
1488
,
8
,
16
,
0
,
0
,
1504
,
8
,
16
,
0
,
0
,
1520
,
8
,
16
,
0
,
0
,
1536
,
8
,
16
,
0
,
0
,
1552
,
8
,
16
,
0
,
0
,
1568
,
8
,
16
,
0
,
0
,
1584
,
8
,
16
,
0
,
0
,
1600
,
8
,
16
,
0
,
0
,
1616
,
8
,
16
,
0
,
0
,
1632
,
8
,
16
,
0
,
0
,
1648
,
8
,
16
,
0
,
0
,
1664
,
8
,
16
,
0
,
0
,
1680
,
8
,
16
,
0
,
0
,
1696
,
8
,
16
,
0
,
0
,
1712
,
8
,
16
,
0
,
0
,
1728
,
8
,
16
,
0
,
0
,
1744
,
8
,
16
,
0
,
0
,
1760
,
8
,
16
,
0
,
0
,
1776
,
8
,
16
,
0
,
0
,
1792
,
8
,
16
,
0
,
0
,
1808
,
8
,
16
,
0
,
0
,
1824
,
8
,
16
,
0
,
0
,
1840
,
8
,
16
,
0
,
0
,
1856
,
8
,
16
,
0
,
0
,
1872
,
8
,
16
,
0
,
0
,
1888
,
8
,
16
,
0
,
0
,
1904
,
8
,
16
,
0
,
0
,
1920
,
8
,
16
,
0
,
0
,
1936
,
8
,
16
,
0
,
0
,
1952
,
8
,
16
,
0
,
0
,
1968
,
8
,
16
,
0
,
0
,
1984
,
8
,
16
,
0
,
0
,
2000
,
8
,
16
,
0
,
0
,
2016
,
8
,
16
,
0
,
0
,
2032
,
8
,
16
,
0
,
0
,
2048
,
8
,
16
,
0
,
0
,
2064
,
8
,
16
,
0
,
0
,
2080
,
8
,
16
,
0
,
0
,
2096
,
8
,
16
,
0
,
0
,
2112
,
8
,
16
,
0
,
0
,
2128
,
8
,
16
,
0
,
0
,
2144
,
8
,
16
,
0
,
0
,
2160
,
8
,
16
,
0
,
0
,
2176
,
8
,
16
,
0
,
0
,
2192
,
8
,
16
,
0
,
0
,
2208
,
8
,
16
,
0
,
0
,
2224
,
8
,
16
,
0
,
0
,
2240
,
8
,
16
,
0
,
0
,
2256
,
8
,
16
,
0
,
0
,
2272
,
8
,
16
,
0
,
0
,
2288
,
8
,
16
,
0
,
0
,
2304
,
8
,
16
,
0
,
0
,
2320
,
8
,
16
,
0
,
0
,
2336
,
8
,
16
,
0
,
0
,
2352
,
8
,
16
,
0
,
0
,
2368
,
8
,
16
,
0
,
0
,
2384
,
8
,
16
,
0
,
0
,
2400
,
8
,
16
,
0
,
0
,
2416
,
8
,
16
,
0
,
0
,
2432
,
8
,
16
,
0
,
0
,
2448
,
8
,
16
,
0
,
0
,
2464
,
8
,
16
,
0
,
0
,
2480
,
8
,
16
,
0
,
0
,
2496
,
8
,
16
,
0
,
0
,
2512
,
8
,
16
,
0
,
0
,
2528
,
8
,
16
,
0
,
0
,
2544
,
8
,
16
,
0
,
0
,
2560
,
8
,
16
,
0
,
0
,
2576
,
8
,
16
,
0
,
0
,
2592
,
8
,
16
,
0
,
0
,
2608
,
8
,
16
,
0
,
0
,
2624
,
8
,
16
,
0
,
0
,
2640
,
8
,
16
,
0
,
0
,
2656
,
8
,
16
,
0
,
0
,
2672
,
8
,
16
,
0
,
0
,
2688
,
8
,
16
,
0
,
0
,
2704
,
8
,
16
,
0
,
0
,
2720
,
8
,
16
,
0
,
0
,
2736
,
8
,
16
,
0
,
0
,
2752
,
8
,
16
,
0
,
0
,
2768
,
8
,
16
,
0
,
0
,
2784
,
8
,
16
,
0
,
0
,
2800
,
8
,
16
,
0
,
0
,
2816
,
8
,
16
,
0
,
0
,
2832
,
8
,
16
,
0
,
0
,
2848
,
8
,
16
,
0
,
0
,
2864
,
8
,
16
,
0
,
0
,
2880
,
8
,
16
,
0
,
0
,
2896
,
8
,
16
,
0
,
0
,
2912
,
8
,
16
,
0
,
0
,
2928
,
8
,
16
,
0
,
0
,
2944
,
8
,
16
,
0
,
0
,
2960
,
8
,
16
,
0
,
0
,
2976
,
8
,
16
,
0
,
0
,
2992
,
8
,
16
,
0
,
0
,
3008
,
8
,
16
,
0
,
0
,
3024
,
8
,
16
,
0
,
0
,
3040
,
8
,
16
,
0
,
0
,
3056
,
8
,
16
,
0
,
0
,
3072
,
8
,
16
,
0
,
0
,
3088
,
8
,
16
,
0
,
0
,
3104
,
8
,
16
,
0
,
0
,
3120
,
8
,
16
,
0
,
0
,
3136
,
8
,
16
,
0
,
0
,
3152
,
8
,
16
,
0
,
0
,
3168
,
8
,
16
,
0
,
0
,
3184
,
8
,
16
,
0
,
0
,
3200
,
8
,
16
,
0
,
0
,
3216
,
8
,
16
,
0
,
0
,
3232
,
8
,
16
,
0
,
0
,
3248
,
8
,
16
,
0
,
0
,
3264
,
8
,
16
,
0
,
0
,
3280
,
8
,
16
,
0
,
0
,
3296
,
8
,
16
,
0
,
0
,
3312
,
8
,
16
,
0
,
0
,
3328
,
8
,
16
,
0
,
0
,
3344
,
8
,
16
,
0
,
0
,
3360
,
8
,
16
,
0
,
0
,
3376
,
8
,
16
,
0
,
0
,
3392
,
8
,
16
,
0
,
0
,
3408
,
8
,
16
,
0
,
0
,
3424
,
8
,
16
,
0
,
0
,
3440
,
8
,
16
,
0
,
0
,
3456
,
8
,
16
,
0
,
0
,
3472
,
8
,
16
,
0
,
0
,
3488
,
8
,
16
,
0
,
0
,
3504
,
8
,
16
,
0
,
0
,
3520
,
8
,
16
,
0
,
0
,
3536
,
8
,
16
,
0
,
0
,
3552
,
8
,
16
,
0
,
0
,
3568
,
8
,
16
,
0
,
0
,
3584
,
8
,
16
,
0
,
0
,
3600
,
8
,
16
,
0
,
0
,
3616
,
8
,
16
,
0
,
0
,
3632
,
8
,
16
,
0
,
0
,
3648
,
8
,
16
,
0
,
0
,
3664
,
8
,
16
,
0
,
0
,
3680
,
8
,
16
,
0
,
0
,
3696
,
8
,
16
,
0
,
0
,
3712
,
8
,
16
,
0
,
0
,
3728
,
8
,
16
,
0
,
0
,
3744
,
8
,
16
,
0
,
0
,
3760
,
8
,
16
,
0
,
0
,
3776
,
8
,
16
,
0
,
0
,
3792
,
8
,
16
,
0
,
0
,
3808
,
8
,
16
,
0
,
0
,
3824
,
8
,
16
,
0
,
0
,
3840
,
8
,
16
,
0
,
0
,
3856
,
8
,
16
,
0
,
0
,
3872
,
8
,
16
,
0
,
0
,
3888
,
8
,
16
,
0
,
0
,
3904
,
8
,
16
,
0
,
0
,
3920
,
8
,
16
,
0
,
0
,
3936
,
8
,
16
,
0
,
0
,
3952
,
8
,
16
,
0
,
0
,
3968
,
8
,
16
,
0
,
0
,
3984
,
8
,
16
,
0
,
0
,
4000
,
8
,
16
,
0
,
0
,
4016
,
8
,
16
,
0
,
0
,
4032
,
8
,
16
,
0
,
0
,
4048
,
8
,
16
,
0
,
0
,
4064
,
8
,
16
,
0
,
0
,
4080
,
8
,
16
,
0
,
0
,};
rfbFontData
default8x16Font
=
{
default8x16FontData
,
default8x16FontMetaData
};
VisualNaCro/nacro.c
View file @
336d7dad
...
...
@@ -110,16 +110,50 @@ rfbBool malloc_frame_buffer(rfbClient* cl)
}
}
bool_t
do_visual_grep
(
private_resource_t
*
res
,
int
x
,
int
y
,
int
w
,
int
h
)
{
rfbClient
*
cl
;
image_t
*
image
;
int
x_start
,
y_start
,
x_end
=
x
+
w
-
1
,
y_end
=
y
+
h
-
1
;
bool_t
found
=
0
;
if
(
res
==
0
||
(
cl
=
res
->
client
)
==
0
||
(
image
=
res
->
grep_image
)
==
0
)
return
0
;
x_start
=
x
-
image
->
width
;
y_start
=
y
-
image
->
height
;
if
(
x_start
<
0
)
x_start
=
0
;
if
(
y_start
<
0
)
y_start
=
0
;
if
(
x_end
+
image
->
width
>
cl
->
width
)
x_end
=
cl
->
width
-
image
->
width
;
if
(
y_end
+
image
->
height
>
cl
->
height
)
y_end
=
cl
->
height
-
image
->
height
;
/* find image and set x_origin,y_origin if found */
for
(
y
=
y_start
;
y
<
y_end
;
y
++
)
for
(
x
=
x_start
;
x
<
x_end
;
x
++
)
{
bool_t
matching
=
1
;
int
i
,
j
;
for
(
j
=
0
;
matching
&&
j
<
image
->
height
;
j
++
)
for
(
i
=
0
;
matching
&&
i
<
image
->
width
;
i
++
)
if
(
memcmp
(
cl
->
frameBuffer
+
4
*
(
x
+
i
+
cl
->
width
*
(
y
+
j
)),
image
->
buffer
+
4
*
(
i
+
image
->
width
*
j
),
3
))
matching
=
0
;
if
(
matching
)
{
private_resource_t
*
res
=
(
private_resource_t
*
)
cl
->
clientData
;
res
->
x_origin
=
x
;
res
->
y_origin
=
y
;
return
-
1
;
}
}
return
0
;
}
void
got_frame_buffer
(
rfbClient
*
cl
,
int
x
,
int
y
,
int
w
,
int
h
)
{
private_resource_t
*
res
=
(
private_resource_t
*
)
cl
->
clientData
;
assert
(
res
->
server
);
if
(
res
->
grep_image
)
{
/* TODO: find image and set x_origin,y_origin if found */
}
else
{
res
->
state
=
RESULT_SCREEN
;
if
(
res
->
grep_image
&&
do_visual_grep
(
res
,
x
,
y
,
w
,
h
))
{
res
->
result
|=
RESULT_FOUNDIMAGE
;
}
if
(
res
->
server
)
{
rfbMarkRectAsModified
(
res
->
server
,
x
,
y
,
x
+
w
,
y
+
h
);
...
...
@@ -180,7 +214,8 @@ bool_t savepnm(resource_t resource,const char* filename,int x1,int y1,int x2,int
uint32_t
*
buffer
;
FILE
*
f
;
assert
(
res
->
client
);
if
(
res
==
0
||
res
->
client
==
0
)
return
0
;
assert
(
res
->
client
->
format
.
depth
==
24
);
w
=
res
->
client
->
width
;
...
...
@@ -228,7 +263,7 @@ image_t* loadpnm(const char* filename)
}
}
while
(
buffer
[
0
]
==
'#'
);
if
(
!
fgets
(
buffer
,
1024
,
f
)
||
sscanf
(
buffer
,
"%d %d"
,
&
w
,
&
h
)
!=
2
if
(
sscanf
(
buffer
,
"%d %d"
,
&
w
,
&
h
)
!=
2
||
!
fgets
(
buffer
,
1024
,
f
)
||
strcmp
(
"255
\n
"
,
buffer
))
{
fclose
(
f
);
return
0
;
...
...
@@ -246,7 +281,8 @@ image_t* loadpnm(const char* filename)
for
(
j
=
0
;
j
<
h
;
j
++
)
for
(
i
=
0
;
i
<
w
;
i
++
)
if
(
fread
(
image
->
buffer
+
4
*
(
i
+
w
*
j
),
3
,
1
,
f
)
!=
3
)
{
if
(
fread
(
image
->
buffer
+
4
*
(
i
+
w
*
j
),
3
,
1
,
f
)
!=
1
)
{
fprintf
(
stderr
,
"Could not read 3 bytes at %d,%d
\n
"
,
i
,
j
);
fclose
(
f
);
free
(
image
->
buffer
);
free
(
image
);
...
...
@@ -291,9 +327,9 @@ result_t private_process(resource_t resource,timeout_t timeout_in_seconds,result
rfbBool
loop
;
do
{
loop
=
rfbProcessEvents
(
res
->
server
,
res
->
server
->
deferUpdateTime
);
}
while
(
loop
&&
res
->
result
&
return_mask
==
0
);
}
while
(
loop
&&
(
res
->
result
&
return_mask
)
==
0
);
if
(
res
->
result
&
return_mask
!=
0
)
if
(
(
res
->
result
&
return_mask
)
!=
0
)
return
res
->
result
;
memcpy
((
char
*
)
&
fds
,(
const
char
*
)
&
(
res
->
server
->
allFds
),
sizeof
(
fd_set
));
...
...
@@ -321,14 +357,16 @@ result_t private_process(resource_t resource,timeout_t timeout_in_seconds,result
if
(
count
>
0
)
{
if
(
FD_ISSET
(
res
->
client
->
sock
,
&
fds
))
{
if
(
!
HandleRFBServerMessage
(
res
->
client
))
if
(
!
HandleRFBServerMessage
(
res
->
client
))
{
closevnc
(
resource
);
return
0
;
if
(
res
->
result
&
return_mask
!=
0
)
}
if
((
res
->
result
&
return_mask
)
!=
0
)
return
res
->
result
;
}
}
else
{
res
->
result
|=
RESULT_TIMEOUT
;
return
RESULT_TIMEOUT
;
return
res
->
result
;
}
}
while
(
1
);
...
...
@@ -355,10 +393,81 @@ result_t waitforupdate(resource_t res,timeout_t timeout)
return
private_process
(
res
,
timeout
,
RESULT_SCREEN
|
RESULT_TIMEOUT
);
}
result_t
visualgrep
(
resource_t
res
,
const
char
*
filename
,
timeout_t
timeout
)
result_t
visualgrep
(
resource_t
resource
,
const
char
*
filename
,
timeout_t
timeout
)
{
private_resource_t
*
res
=
get_resource
(
resource
);
image_t
*
image
;
result_t
result
;
if
(
res
==
0
||
res
->
client
==
0
)
return
0
;
/* load filename and set res->grep_image to this image */
image
=
loadpnm
(
filename
);
if
(
image
==
0
)
return
0
;
if
(
res
->
grep_image
)
free_image
(
res
->
grep_image
);
res
->
grep_image
=
image
;
if
(
do_visual_grep
(
res
,
0
,
0
,
res
->
client
->
width
,
res
->
client
->
height
))
return
RESULT_FOUNDIMAGE
;
result
=
private_process
(
resource
,
timeout
,
RESULT_FOUNDIMAGE
|
RESULT_TIMEOUT
);
/* free image */
if
(
res
->
grep_image
)
{
free_image
(
res
->
grep_image
);
res
->
grep_image
=
0
;
}
return
result
;
}
/* auxiliary function for alert */
#include "default8x16.h"
void
center_text
(
rfbScreenInfo
*
screen
,
const
char
*
message
,
int
*
x
,
int
*
y
,
int
*
w
,
int
*
h
)
{
/* TODO: load filename and set res->grep_image to this image */
return
private_process
(
res
,
timeout
,
RESULT_FOUNDIMAGE
|
RESULT_TIMEOUT
);
rfbFontData
*
font
=&
default8x16Font
;
const
char
*
pointer
;
int
j
,
x1
,
y1
,
x2
,
y2
,
line_count
=
0
;
if
(
message
==
0
||
screen
==
0
)
return
;
rfbWholeFontBBox
(
font
,
&
x1
,
&
y1
,
&
x2
,
&
y2
);
for
(
line_count
=
1
,
pointer
=
message
;
*
pointer
;
pointer
++
)
if
(
*
pointer
==
'\n'
)
line_count
++
;
*
h
=
(
y2
-
y1
)
*
line_count
;
assert
(
*
h
>
0
);
if
(
*
h
>
screen
->
height
)
*
h
=
screen
->
height
;
*
x
=
0
;
*
w
=
screen
->
width
;
*
y
=
(
screen
->
height
-*
h
)
/
2
;
rfbFillRect
(
screen
,
*
x
,
*
y
,
*
x
+*
w
,
*
y
+*
h
,
0xff0000
);
for
(
pointer
=
message
,
j
=
0
;
j
<
line_count
;
j
++
)
{
const
char
*
eol
;
int
x_cur
,
y_cur
=*
y
-
y1
+
j
*
(
y2
-
y1
),
width
;
for
(
width
=
0
,
eol
=
pointer
;
*
eol
&&
*
eol
!=
'\n'
;
eol
++
)
width
+=
rfbWidthOfChar
(
font
,
*
eol
);
if
(
width
>
screen
->
width
)
width
=
screen
->
width
;
x_cur
=
(
screen
->
width
-
width
)
/
2
;
for
(;
pointer
!=
eol
;
pointer
++
)
x_cur
+=
rfbDrawCharWithClip
(
screen
,
font
,
x_cur
,
y_cur
,
*
pointer
,
0
,
0
,
screen
->
width
,
screen
->
height
,
0xffffffff
,
0xffffffff
);
pointer
++
;
}
rfbMarkRectAsModified
(
screen
,
*
x
,
*
y
,
*
x
+*
w
,
*
y
+*
h
);
}
/* this is an overlay which is shown for a certain time */
...
...
@@ -368,7 +477,7 @@ result_t alert(resource_t resource,const char* message,timeout_t timeout)
private_resource_t
*
res
=
get_resource
(
resource
);
char
*
fake_frame_buffer
;
char
*
backup
;
int
w
,
h
;
int
x
,
y
,
w
,
h
;
result_t
result
;
if
(
res
->
server
==
0
)
...
...
@@ -381,15 +490,17 @@ result_t alert(resource_t resource,const char* message,timeout_t timeout)
if
(
!
fake_frame_buffer
)
return
-
1
;
memcpy
(
fake_frame_buffer
,
res
->
server
->
frameBuffer
,
w
*
4
*
h
);
/* TODO: draw message */
backup
=
res
->
server
->
frameBuffer
;
res
->
server
->
frameBuffer
=
fake_frame_buffer
;
center_text
(
res
->
server
,
message
,
&
x
,
&
y
,
&
w
,
&
h
);
fprintf
(
stderr
,
"%s
\n
"
,
message
);
result
=
private_process
(
resource
,
timeout
,
-
1
);
result
=
waitforinput
(
resource
,
timeout
);
res
->
server
->
frameBuffer
=
backup
;
/* TODO: rfbMarkRectAsModified() */
free
(
fake_frame_buffer
);
rfbMarkRectAsModified
(
res
->
server
,
x
,
y
,
x
+
w
,
y
+
h
);
return
result
;
}
...
...
@@ -430,24 +541,28 @@ buttons_t getbuttons(resource_t res)
bool_t
sendkey
(
resource_t
res
,
keysym_t
keysym
,
bool_t
keydown
)
{
private_resource_t
*
r
=
get_resource
(
res
);
if
(
r
==
0
)
return
0
;
return
SendKeyEvent
(
r
->
client
,
keysym
,
keydown
);
}
bool_t
sendmouse
(
resource_t
res
,
coordinate_t
x
,
coordinate_t
y
,
buttons_t
buttons
)
{
private_resource_t
*
r
=
get_resource
(
res
);
if
(
r
==
0
)
return
0
;
return
SendPointerEvent
(
r
->
client
,
x
,
y
,
buttons
);
}
/* for visual grepping */
coordinate_t
get
originx
(
resource_t
res
)
coordinate_t
get
xorigin
(
resource_t
res
)
{
private_resource_t
*
r
=
get_resource
(
res
);
return
r
->
x_origin
;
}
coordinate_t
get
originy
(
resource_t
res
)
coordinate_t
get
yorigin
(
resource_t
res
)
{
private_resource_t
*
r
=
get_resource
(
res
);
return
r
->
y_origin
;
...
...
VisualNaCro/nacro.h
View file @
336d7dad
...
...
@@ -12,7 +12,7 @@
typedef
int
bool_t
;
/* a keysym: identical with ASCII for values between 0-127 */
typedef
unsigned
char
keysym_t
;
typedef
int
keysym_t
;
/* this can be negative, because of a new origin set via visual grep */
typedef
int
coordinate_t
;
...
...
@@ -27,31 +27,31 @@ typedef int resource_t;
typedef
double
timeout_t
;
/* the return values of process() and friends */
typedef
enum
{
RESULT_TIMEOUT
=
1
,
RESULT_KEY
=
2
,
RESULT_MOUSE
=
4
,
RESULT_SCREEN
=
8
,
RESULT_FOUNDIMAGE
=
16
}
result_t
;
typedef
int
result_t
;
/*
* %constant int RESULT_TIMEOUT=1;
%constant int RESULT_KEY=2;
%constant int RESULT_MOUSE=4;
%constant int RESULT_SCREEN=8;
%constant int RESULT_FOUNDIMAGE=16;
*/
%
}
#endif // SWIG
typedef
int
bool_t
;
typedef
unsigned
char
keysym_t
;
typedef
int
keysym_t
;
typedef
int
coordinate_t
;
typedef
unsigned
char
buttons_t
;
typedef
int
resource_t
;
typedef
double
timeout_t
;
typedef
enum
{
RESULT_TIMEOUT
=
1
,
RESULT_KEY
=
2
,
RESULT_MOUSE
=
4
,
RESULT_SCREEN
=
8
,
RESULT_FOUNDIMAGE
=
16
}
result_t
;
typedef
int
result_t
;
#define RESULT_TIMEOUT 1
#define RESULT_KEY 2
#define RESULT_MOUSE 4
#define RESULT_SCREEN 8
#define RESULT_FOUNDIMAGE 16
/* init/shutdown */
...
...
@@ -89,8 +89,8 @@ bool_t sendmouse(resource_t res,coordinate_t x,coordinate_t y,buttons_t buttons)
/* for visual grepping */
coordinate_t
get
originx
(
resource_t
res
);
coordinate_t
get
originy
(
resource_t
res
);
coordinate_t
get
xorigin
(
resource_t
res
);
coordinate_t
get
yorigin
(
resource_t
res
);
bool_t
savepnm
(
resource_t
res
,
const
char
*
filename
,
coordinate_t
x1
,
coordinate_t
y1
,
coordinate_t
x2
,
coordinate_t
y2
);
...
...
VisualNaCro/recorder.pl
View file @
336d7dad
...
...
@@ -2,26 +2,124 @@
use
nacro
;
$vnc
=
nacro::
initvnc
(
"localhost"
,
5900
,
5923
);
# TODO: take options
print
$vnc
;
$output
=
"my_script"
;
$server
=
"localhost"
;
$port
=
5900
;
$listen_port
=
5923
;
# give it a chance to get a first screen update
# start connection
$vnc
=
nacro::
initvnc
(
$server
,
$port
,
$listen_port
);
print
nacro::
waitforupdate
(
$vnc
,
.4
);
if
(
$vnc
<
0
)
{
print
STDERR
"Could not initialize $server:$port\n"
;
exit
1
;
}
print
STDERR
"Now\n"
;
# TODO: timing
print
nacro::
sendmouse
(
$vnc
,
90
,
250
,
0
);
open
OUT
,
">$output.pl"
;
print
OUT
"#!/usr/bin/perl\n"
;
print
OUT
"\n"
;
print
OUT
"use nacro;\n"
;
print
OUT
"\n"
;
print
OUT
"\$x_origin=0; \$y_origin=0;\n"
;
print
OUT
"\$vnc=nacro::initvnc(\"$server\",$port,$listen_port);\n"
;
print
nacro::
sendkey
(
$vnc
,
ord
(
'a'
),
-
1
);
print
nacro::
sendkey
(
$vnc
,
ord
(
'a'
),
0
);
$mode
=
"passthru"
;
$image_counter
=
1
;
$magickey
=
0
;
$x_origin
=
0
;
$y_origin
=
0
;
print
nacro::
sendmouse
(
$vnc
,
100
,
10
,
0
);
while
(
1
)
{
$result
=
nacro::
waitforinput
(
$vnc
,
999999
);
if
(
$result
==
0
)
{
# server went away
close
OUT
;
exit
0
;
}
print
nacro::
savepnm
(
$vnc
,
"hallo.pnm"
,
50
,
50
,
300
,
200
);
nacro::
process
(
$vnc
,
3
);
print
"\n"
;
if
(
$mode
eq
"passthru"
)
{
if
(
$result
&
$
nacro::
RESULT_KEY
)
{
$keysym
=
nacro::
getkeysym
(
$vnc
);
$keydown
=
nacro::
getkeydown
(
$vnc
);
if
(
nacro::
sendkey
(
$vnc
,
$keysym
,
$keydown
))
{
print
OUT
"nacro::sendkey(\$vnc,$keysym,$keydown);\n"
;
}
if
(
$keysym
==
0xffe3
||
$keysym
==
0xffe4
)
{
# Control pressed
$magickey
++
;
if
(
$magickey
>
3
&&
!
$keydown
)
{
$magickey
=
0
;
$mode
=
"menu"
;
$dragging
=
0
;
nacro::
alert
(
$vnc
,
"VisualNaCro: press 'q' to quit\nor mark reference rectangle by dragging"
,
10
);
}
}
else
{
$magickey
=
0
;
}
}
if
(
$result
&
$
nacro::
RESULT_MOUSE
)
{
$x
=
nacro::
getx
(
$vnc
);
$y
=
nacro::
gety
(
$vnc
);
$buttons
=
nacro::
getbuttons
(
$vnc
);
if
(
nacro::
sendmouse
(
$vnc
,
$x
,
$y
,
$buttons
))
{
$x
-=
$x_origin
;
$y
-=
$y_origin
;
print
OUT
"nacro::sendmouse(\$vnc,\$x_origin"
.
(
$x
>=
0
?
"+"
:
""
)
.
"$x,\$y_origin"
.
(
$y
>=
0
?
"+"
:
""
)
.
"$y,$buttons);\n"
;
}
}
}
else
{
if
(
$result
&
$
nacro::
RESULT_KEY
)
{
$keysym
=
nacro::
getkeysym
(
$vnc
);
$keydown
=
nacro::
getkeydown
(
$vnc
);
if
(
$keysym
==
ord
(
'q'
))
{
# shutdown
close
OUT
;
nacro::
closevnc
(
$vnc
);
exit
0
;
}
nacro::
alert
(
$vnc
,
"Unknown key"
,
10
);
$mode
=
"passthru"
;
}
if
(
$result
&
$
nacro::
RESULT_MOUSE
)
{
$x
=
nacro::
getx
(
$vnc
);
$y
=
nacro::
gety
(
$vnc
);
$buttons
=
nacro::
getbuttons
(
$vnc
);
if
(
!
$dragging
&&
((
$buttons
&
1
)
==
1
))
{
print
STDERR
"start draggin: $x $y\n"
;
$start_x
=
$x
;
$start_y
=
$y
;
$dragging
=
1
;
}
elsif
(
$dragging
&&
((
$buttons
&
1
)
==
0
))
{
print
STDERR
"stop draggin: $x $y\n"
;
if
(
$start_x
==
$x
&&
$start_y
==
$y
)
{
print
OUT
"\$x_origin=0; \$y_origin=0;\n"
;
}
else
{
if
(
$start_x
>
$x
)
{
$dummy
=
$x
;
$x
=
$start_x
;
$start_x
=
$dummy
;
}
if
(
$start_y
>
$y
)
{
$dummy
=
$y
;
$y
=
$start_y
;
$start_y
=
$dummy
;
}
$pnm
=
$output
.
$image_counter
.
".pnm"
;
$image_counter
++
;
if
(
!
nacro::
savepnm
(
$vnc
,
$pnm
,
$start_x
,
$start_y
,
$x
,
$y
))
{
nacro::
alert
(
$vnc
,
"Saving $pnm failed!"
,
10
);
}
else
{
$x_origin
=
$start_x
;
$y_origin
=
$start_y
;
nacro::
alert
(
$vnc
,
"Got new origin: $x_origin $y_origin"
,
10
);
print
OUT
"if(nacro::visualgrep(\$vnc,\"$pnm\",999999)) {\n"
.
"\t\$x_origin=nacro::getxorigin(\$vnc);\n"
.
"\t\$y_origin=nacro::getyorigin(\$vnc);\n}\n"
;
}
}
$mode
=
"passthru"
;
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment