From 73f557b7b909bd6a6d15625a8fdbb57bba7e8540 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Sun, 29 Jan 2012 15:31:55 -0500 Subject: draft progress --- sprites/allbg.png | Bin 3071 -> 2893 bytes sprites/allpipes.png | Bin 2946 -> 3304 bytes sprites/allpipes_big.png | Bin 0 -> 2981 bytes sprites/background.png | Bin 0 -> 5095 bytes sprites/grid.png | Bin 0 -> 4890 bytes sprites/splash_screen.png | Bin 0 -> 11133 bytes src/draft/allsewage.h | 288 +++++++++++++++ src/draft/cruft.pde | 46 +++ src/draft/draft.pde | 184 ++++++++++ src/draft/graphics.pde | 222 +++++++++++ src/draft/sprites.h | 795 ++++++++++++++++++++++++++++++++++++++++ src/sprite_test/sprite_test.pde | 133 ++++--- wxkeygrabber.py | 93 +++++ 13 files changed, 1714 insertions(+), 47 deletions(-) create mode 100644 sprites/allpipes_big.png create mode 100755 sprites/background.png create mode 100755 sprites/grid.png create mode 100755 sprites/splash_screen.png create mode 100644 src/draft/allsewage.h create mode 100644 src/draft/cruft.pde create mode 100644 src/draft/draft.pde create mode 100644 src/draft/graphics.pde create mode 100644 src/draft/sprites.h create mode 100755 wxkeygrabber.py diff --git a/sprites/allbg.png b/sprites/allbg.png index efe0896..5c96a66 100644 Binary files a/sprites/allbg.png and b/sprites/allbg.png differ diff --git a/sprites/allpipes.png b/sprites/allpipes.png index 46aaef2..d310d98 100644 Binary files a/sprites/allpipes.png and b/sprites/allpipes.png differ diff --git a/sprites/allpipes_big.png b/sprites/allpipes_big.png new file mode 100644 index 0000000..8abf442 Binary files /dev/null and b/sprites/allpipes_big.png differ diff --git a/sprites/background.png b/sprites/background.png new file mode 100755 index 0000000..c86cd1d Binary files /dev/null and b/sprites/background.png differ diff --git a/sprites/grid.png b/sprites/grid.png new file mode 100755 index 0000000..0f1eff6 Binary files /dev/null and b/sprites/grid.png differ diff --git a/sprites/splash_screen.png b/sprites/splash_screen.png new file mode 100755 index 0000000..49a27fd Binary files /dev/null and b/sprites/splash_screen.png differ diff --git a/src/draft/allsewage.h b/src/draft/allsewage.h new file mode 100644 index 0000000..0d92be2 --- /dev/null +++ b/src/draft/allsewage.h @@ -0,0 +1,288 @@ +static PROGMEM prog_uchar allsewage_pic[] = { + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, + +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, +}; +static PROGMEM prog_uchar allsewage_chr[] = { + +0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x51, 0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, +0xaa, 0xaa, 0xaa, 0xaa, 0x8a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x9a, 0xaa, 0xaa, 0xaa, 0xaa, +0xaa, 0xaa, 0xaa, 0xa2, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, +0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x9a, 0xaa, 0xaa, 0x2a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; +static PROGMEM prog_uchar allsewage_pal[] = { + +0xe2, 0x30, 0x87, 0x45, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x62, 0xe2, 0x30, 0x87, 0x45, 0x00, 0x00, +0x6d, 0x62, 0xe2, 0x30, 0x87, 0x45, 0x00, 0x00, 0x6d, 0x62, 0xe2, 0x30, 0x87, 0x45, 0x00, 0x00, +0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/src/draft/cruft.pde b/src/draft/cruft.pde new file mode 100644 index 0000000..c86a730 --- /dev/null +++ b/src/draft/cruft.pde @@ -0,0 +1,46 @@ + + +void static old_process_keypress() { + if(SerialUSB.available()) { + inchar = SerialUSB.read(); + while(SerialUSB.available()) { + inchar = SerialUSB.read(); + } + SerialUSB.println(inchar, 16); + switch(inchar) { + case 'w': + swimy -= SWIM_SPEED; + break; + case 's': + swimy += SWIM_SPEED; + break; + case 'a': + swimx -= SWIM_SPEED; + break; + case 'd': + swimx += SWIM_SPEED; + break; + case 'W': + swimy -= SWIM_SPEED; + jaws_closed = 20; + break; + case 'S': + swimy += SWIM_SPEED; + jaws_closed = 20; + break; + case 'A': + swimx -= SWIM_SPEED; + jaws_closed = 20; + break; + case 'D': + swimx += SWIM_SPEED; + jaws_closed = 20; + break; + case ' ': + jaws_closed = 20; + break; + default: + break; + } + } +} diff --git a/src/draft/draft.pde b/src/draft/draft.pde new file mode 100644 index 0000000..0852cb5 --- /dev/null +++ b/src/draft/draft.pde @@ -0,0 +1,184 @@ +#include +#include + +#include "allsewage.h" // http://gameduino.com/results/b2f4c588/ +#include "sprites.h" // http://gameduino.com/results/16fe50de/ + +#define SWIM_SPEED 1 + +#define WEAPON_GROUP 0 +#define TARGET_GROUP 1 + +#define NUM_TRASH 20 + +#define KEY_UP(x) ((x >> 7) & 0x01) +#define KEY_DOWN(x) ((x >> 6) & 0x01) +#define KEY_LEFT(x) ((x >> 5) & 0x01) +#define KEY_RIGHT(x) ((x >> 4) & 0x01) +#define KEY_C(x) ((x >> 3) & 0x01) +#define KEY_V(x) ((x >> 2) & 0x01) +#define KEY_SPACE(x) ((x >> 1) & 0x01) +#define KEY_ESCAPE(x) ((x >> 0) & 0x01) + +static boolean last_key_space = false; // last keypress a spacebar? +static unsigned int t = 0; // global game counter + +static uint16 swimx, swimy; // swimmer position +static int8 swimvx, swimvy; // velocity +static int8 weapon_sprid; +static uint8 jaws_closed; // swimmer weapon state + +static uint16 narcox, narcoy; +static int8 narcovx, narcovy; +static uint8 narco_sprid; +static boolean narco_sunk; +static uint8 enemy_sprid; + + +static unsigned int scrollx; // background scroll +static unsigned int scrolly; +static int8 scrollvx; // background scroll speed (128 is one pixel/frame) + +static uint16 trash_rate; +static unsigned char inchar; +static uint8 touching_weapon, touching_enemy; + +void static process_keypress() { + if(SerialUSB.available()) { + inchar = SerialUSB.read(); + while(SerialUSB.available()) { + inchar = SerialUSB.read(); + } + //SerialUSB.println(inchar, 2); + swimvx = 0; + swimvy = 0; + if (KEY_LEFT(inchar)) { swimvx -= SWIM_SPEED; } + if (KEY_RIGHT(inchar)) { swimvx += SWIM_SPEED; } + if (KEY_UP(inchar)) { swimvy -= SWIM_SPEED; } + if (KEY_DOWN(inchar)) { swimvy += SWIM_SPEED; } + if (KEY_SPACE(inchar) and !last_key_space) { jaws_closed = 20; } + if (!KEY_SPACE(inchar)) { jaws_closed = 0; } + last_key_space = KEY_SPACE(inchar); + if (KEY_ESCAPE(inchar)) { + clear_all_sprites(); + narco_sunk = false; + narcoy = 150; + } + } +} + +boolean static wait_screen() { + if(SerialUSB.available()) { + inchar = SerialUSB.read(); + while(SerialUSB.available()) { + inchar = SerialUSB.read(); + } + + if (KEY_SPACE(inchar)) { return true; } + if (KEY_ESCAPE(inchar)) { return true; } + return false; + } +} + +void setup() +{ + pinMode(BOARD_BUTTON_PIN, INPUT); + swimx = 20; + swimy = 20; + narcox = 180; + narcoy = 150; + narcovy = -1; + trash_rate = 100; + + delay(250); + GD.begin(); + + GD.wr(JK_MODE, 1); + + init_sprites(); // called twice + GD.waitvblank(); + init_splashpage(); + + while(!wait_screen()) { + delay(100); + } + clear_all_sprites(); + GD.waitvblank(); + init_background(); + init_sprites(); + init_trash(); + + add_trash(); + add_trash(); + add_trash(); +} + +void loop() +{ + GD.waitvblank(); + + // ------- do graphics drawing + + // check collisions + touching_weapon = GD.rd(COLLISION + weapon_sprid); + touching_enemy = GD.rd(COLLISION + enemy_sprid); + + // scroll background + GD.wr16(SCROLL_X, scrollx); + GD.__wstartspr(0); + //draw_standing_all(10,270); + draw_all_trash(); + if (t > 72 * 30) { + draw_narco(narcox, narcoy, narco_sunk); + if (narco_sunk) { + for (uint8 i = 0; i < 5; i++) { + draw_explosion(narcox+random(96)-8, narcoy+random(64)-8); + } + } + } + draw_swim(swimx,swimy, (jaws_closed == 0)); + GD.__end(); + + // -------- do logic stuff + scrollx += ((t % scrollvx) == 0); + //swimx = (swimx + 1) % 400; + if(jaws_closed > 0) { + jaws_closed -= 1; + } + + update_trash(); + cleanup_trash(); + + process_keypress(); + + if (jaws_closed > 15 and (touching_weapon == enemy_sprid || touching_enemy == weapon_sprid)) { + narco_sunk = true; + } + + if (jaws_closed > 15 and (touching_weapon != 255)) { + check_trash(touching_weapon); + } + + swimx = (swimx + swimvx); + swimy = (swimy + swimvy); + if (swimx > 380) swimx = 380; + if (swimx < 32) swimx = 32; + if (swimy > 250) swimy = 250; + if (swimy < 50) swimy = 50; + + if(!narco_sunk) { + if(narcoy > 170) { narcovy = -1; } + if(narcoy < 130) { narcovy = 1; } + } else { + narcovy = 1; + if(narcoy > 400) { narcovy = 0; } + } + if ((t % trash_rate) == 0 && (random(3) == 1)) { + add_trash(); + } + + scrollvx = get_stuck() + 2; + + narcoy += narcovy; + t += 1; +} diff --git a/src/draft/graphics.pde b/src/draft/graphics.pde new file mode 100644 index 0000000..b8af1b9 --- /dev/null +++ b/src/draft/graphics.pde @@ -0,0 +1,222 @@ + +//static extern enemy_sprid; + +// ================ INIT =================== +static void init_sprites() { + GD.copy(PALETTE16A, sprite_sprpal, sizeof(sprite_sprpal)); + GD.copy(RAM_SPRIMG, sprite_sprimg, sizeof(sprite_sprimg)); +} + +static void clear_all_sprites() { + for (int i = 0; i < 256; i++) { + GD.sprite(i, 400, 400, 0, 0, 0); + } +} + +static void init_splashpage() { + for (byte y = 0; y < 64; y++) + GD.copy(RAM_PIC + y * 64, allsewage_pic + y * 64, 64); + GD.copy(RAM_CHR, allsewage_chr, sizeof(allsewage_chr)); + GD.copy(RAM_PAL, allsewage_pal, sizeof(allsewage_pal)); + + GD.__wstartspr(0); + for (int rand_count = 0; rand_count < 20; rand_count += 1) { + draw_standing_all(random(400),random(300)); + } + GD.__end(); + +} + +static void init_background() { + for (byte y = 0; y < 64; y++) + GD.copy(RAM_PIC + y * 64, allsewage_pic + y * 64, 64); + GD.copy(RAM_CHR, allsewage_chr, sizeof(allsewage_chr)); + GD.copy(RAM_PAL, allsewage_pal, sizeof(allsewage_pal)); +} + +// ================ TRASH MANAGEMENT =================== + +#define DEAD_TRASH_SPRID 54 +#define NUM_TRASH 20 +#define STUCKX 100 + +struct trash_item { + int8 vx; + int16 x, y; + uint8 sprid, collid; + boolean stuck; +}; + +static trash_item trash_bag[NUM_TRASH]; +static uint8 trash_count, trash_stuck; + +static uint8 get_stuck() { + return trash_stuck; +} + + +static void init_trash() { + for (int i = 0; i < NUM_TRASH; i++) { + trash_bag[i].x = 400; + trash_bag[i].y = 400; + trash_bag[i].vx = 0; + trash_bag[i].sprid = 0xFF; + trash_bag[i].stuck = false; + trash_bag[i].collid = 0xFF; + } + trash_count = 0; + trash_stuck = 0; +} + +static void cleanup_trash() { + for (int i = 0; i < NUM_TRASH; i++) { + if(trash_bag[i].x < 0) { + trash_count -= 1; + trash_bag[i].x = 400; + trash_bag[i].y = 400; + trash_bag[i].vx = 0; + trash_bag[i].sprid = 0xFF; + trash_bag[i].stuck = false; + } + } +} + +static void add_trash() { + if (trash_count == NUM_TRASH) return; + int i; + for (i = 0; i < NUM_TRASH; i++) { + if(trash_bag[i].sprid == 0xFF) { + trash_bag[i].x = 400; + trash_bag[i].y = 25 + random(200); + trash_bag[i].vx = 3 + random(5); + trash_bag[i].sprid = 36; + trash_bag[i].collid = 255; + break; + } + } +} + +static void update_trash() { + for (int i = 0; i < NUM_TRASH; i++) { + if (trash_bag[i].sprid == 0xFF) continue; + if (trash_bag[i].stuck) continue; + trash_bag[i].x -= ((t % (2*scrollvx)) == 0); + if ((t % trash_bag[i].vx) == 0) { + trash_bag[i].x -= 1; + } + if (trash_bag[i].sprid != DEAD_TRASH_SPRID && trash_bag[i].x <= STUCKX) { + trash_bag[i].stuck = true; + trash_bag[i].x = STUCKX; + trash_stuck += 1; + } + } +} + +static void check_trash(int cid) { + for (int i = 0; i < NUM_TRASH; i++) { + if (cid == trash_bag[i].collid) { + trash_bag[i].sprid = DEAD_TRASH_SPRID; + if (trash_bag[i].stuck) { + trash_bag[i].stuck = false; + trash_stuck -= 1; + } + } + } +} + +// ================ DRAWING =================== +static void draw_all_trash() { + for (int i = 0; i < NUM_TRASH; i++) { + if (trash_bag[i].sprid == 0xFF) continue; + trash_bag[i].collid = GD.spr; + draw_sprite(trash_bag[i].x, + trash_bag[i].y, + trash_bag[i].sprid, + 0, + TARGET_GROUP); + } +} +static void draw_standing_all(int x, int y) { + draw_sprite(x , y , 36, 0, 1); + draw_sprite(x , y + 16, 45, 0, 0); +} + +static void draw_narco(int x, int y, boolean sunk) { + if(!sunk) { + draw_sprite(x , y + 00, 03, 0, 1); + draw_sprite(x + 16, y + 00, 04, 0, 1); + // periscope! + enemy_sprid = GD.spr; + draw_sprite(x + 32, y + 00, 05, 0, 1); + draw_sprite(x + 48, y + 00, 6, 0, 1); + draw_sprite(x + 64, y + 00, 7, 0, 1); + draw_sprite(x + 80, y + 00, 8, 0, 1); + draw_sprite(x , y + 16, 12, 0, 1); + draw_sprite(x + 16, y + 16, 13, 0, 1); + draw_sprite(x + 32, y + 16, 14, 0, 1); + draw_sprite(x + 48, y + 16, 15, 0, 1); + draw_sprite(x + 64, y + 16, 16, 0, 1); + draw_sprite(x + 80, y + 16, 17, 0, 1); + draw_sprite(x , y + 32, 21, 0, 1); + draw_sprite(x + 16, y + 32, 22, 0, 1); + draw_sprite(x + 32, y + 32, 23, 0, 1); + draw_sprite(x + 48, y + 32, 24, 0, 1); + draw_sprite(x + 64, y + 32, 25, 0, 1); + draw_sprite(x + 80, y + 32, 26, 0, 1); + draw_sprite(x , y + 48, 30, 0, 1); + draw_sprite(x + 16, y + 48, 31, 0, 1); + draw_sprite(x + 32, y + 48, 32, 0, 1); + draw_sprite(x + 48, y + 48, 33, 0, 1); + draw_sprite(x + 64, y + 48, 34, 0, 1); + draw_sprite(x + 80, y + 48, 35, 0, 1); + } else { + draw_sprite(x , y + 00, 39, 0, 1); + draw_sprite(x + 16, y + 00, 40, 0, 1); + draw_sprite(x + 32, y + 00, 41, 0, 1); + draw_sprite(x + 48, y + 00, 42, 0, 1); + draw_sprite(x + 64, y + 00, 43, 0, 1); + draw_sprite(x + 80, y + 00, 44, 0, 1); + draw_sprite(x , y + 16, 48, 0, 1); + draw_sprite(x + 16, y + 16, 49, 0, 1); + draw_sprite(x + 32, y + 16, 50, 0, 1); + draw_sprite(x + 48, y + 16, 51, 0, 1); + draw_sprite(x + 64, y + 16, 52, 0, 1); + draw_sprite(x + 80, y + 16, 53, 0, 1); + draw_sprite(x , y + 32, 57, 0, 1); + draw_sprite(x + 16, y + 32, 58, 0, 1); + draw_sprite(x + 32, y + 32, 59, 0, 1); + draw_sprite(x + 48, y + 32, 60, 0, 1); + draw_sprite(x + 64, y + 32, 61, 0, 1); + draw_sprite(x + 80, y + 32, 62, 0, 1); + draw_sprite(x , y + 48, 66, 0, 1); + draw_sprite(x + 16, y + 48, 67, 0, 1); + draw_sprite(x + 32, y + 48, 68, 0, 1); + draw_sprite(x + 48, y + 48, 69, 0, 1); + draw_sprite(x + 64, y + 48, 70, 0, 1); + draw_sprite(x + 80, y + 48, 71, 0, 1); + } +} + +static void draw_explosion(int x, int y) { + draw_sprite(x + 00, y + 00, 54, 0, 0); + draw_sprite(x + 16, y + 00, 55, 0, 0); + draw_sprite(x + 00, y + 16, 63, 0, 0); + draw_sprite(x + 16, y + 16, 64, 0, 0); +} + +static void draw_swim(int x, int y, boolean is_open) { + draw_sprite(x , y , 0, 0, 0); + draw_sprite(x + 16, y , 1, 0, 0); + draw_sprite(x , y + 16, 9, 0, 0); + draw_sprite(x + 16, y + 16, 10, 0, 0); + draw_sprite(x + 32, y + 16, 11, 0, 0); + if(is_open) { + weapon_sprid = GD.spr; + draw_sprite(x + 32, y , 2, 0, 0); + draw_sprite(400, 400, 20, 0, 0); + } else { + draw_sprite(400, 400, 2, 0, 0); + weapon_sprid = GD.spr; + draw_sprite(x + 32, y , 20, 0, 0); + } +} diff --git a/src/draft/sprites.h b/src/draft/sprites.h new file mode 100644 index 0000000..e5cbf9e --- /dev/null +++ b/src/draft/sprites.h @@ -0,0 +1,795 @@ +#define SPRITE_FRAMES 72 +static void draw_sprite(int x, int y, byte anim, byte rot, byte jk = 0) { + switch (anim) { + case 0: + GD.xsprite(x, y, -8, -8, 0, 4, rot, jk); + break; + case 1: + GD.xsprite(x, y, -8, -8, 0, 6, rot, jk); + break; + case 2: + GD.xsprite(x, y, -8, -8, 1, 4, rot, jk); + break; + case 4: + GD.xsprite(x, y, -8, -8, 1, 6, rot, jk); + break; + case 5: + GD.xsprite(x, y, -8, -8, 2, 4, rot, jk); + break; + case 6: + GD.xsprite(x, y, -8, -8, 2, 6, rot, jk); + break; + case 7: + GD.xsprite(x, y, -8, -8, 3, 4, rot, jk); + break; + case 8: + GD.xsprite(x, y, -8, -8, 3, 6, rot, jk); + break; + case 9: + GD.xsprite(x, y, -8, -8, 4, 4, rot, jk); + break; + case 10: + GD.xsprite(x, y, -8, -8, 4, 6, rot, jk); + break; + case 11: + GD.xsprite(x, y, -8, -8, 5, 4, rot, jk); + break; + case 12: + GD.xsprite(x, y, -8, -8, 5, 6, rot, jk); + break; + case 13: + GD.xsprite(x, y, -8, -8, 6, 4, rot, jk); + break; + case 14: + GD.xsprite(x, y, -8, -8, 6, 6, rot, jk); + break; + case 15: + GD.xsprite(x, y, -8, -8, 7, 4, rot, jk); + break; + case 16: + GD.xsprite(x, y, -8, -8, 7, 6, rot, jk); + break; + case 17: + GD.xsprite(x, y, -8, -8, 8, 4, rot, jk); + break; + case 18: + GD.xsprite(x, y, -8, -8, 8, 6, rot, jk); + break; + case 19: + GD.xsprite(x, y, -8, -8, 9, 4, rot, jk); + break; + case 20: + GD.xsprite(x, y, -8, -8, 9, 6, rot, jk); + break; + case 21: + GD.xsprite(x, y, -8, -8, 10, 4, rot, jk); + break; + case 22: + GD.xsprite(x, y, -8, -8, 10, 6, rot, jk); + break; + case 23: + GD.xsprite(x, y, -8, -8, 11, 4, rot, jk); + break; + case 24: + GD.xsprite(x, y, -8, -8, 11, 6, rot, jk); + break; + case 25: + GD.xsprite(x, y, -8, -8, 12, 4, rot, jk); + break; + case 26: + GD.xsprite(x, y, -8, -8, 12, 6, rot, jk); + break; + case 27: + GD.xsprite(x, y, -8, -8, 13, 4, rot, jk); + break; + case 28: + GD.xsprite(x, y, -8, -8, 13, 6, rot, jk); + break; + case 29: + GD.xsprite(x, y, -8, -8, 14, 4, rot, jk); + break; + case 30: + GD.xsprite(x, y, -8, -8, 14, 6, rot, jk); + break; + case 31: + GD.xsprite(x, y, -8, -8, 15, 4, rot, jk); + break; + case 32: + GD.xsprite(x, y, -8, -8, 15, 6, rot, jk); + break; + case 33: + GD.xsprite(x, y, -8, -8, 16, 4, rot, jk); + break; + case 34: + GD.xsprite(x, y, -8, -8, 16, 6, rot, jk); + break; + case 35: + GD.xsprite(x, y, -8, -8, 17, 4, rot, jk); + break; + case 36: + GD.xsprite(x, y, -8, -8, 17, 6, rot, jk); + break; + case 37: + GD.xsprite(x, y, -8, -8, 18, 4, rot, jk); + break; + case 38: + GD.xsprite(x, y, -8, -8, 18, 6, rot, jk); + break; + case 40: + GD.xsprite(x, y, -8, -8, 19, 4, rot, jk); + break; + case 41: + GD.xsprite(x, y, -8, -8, 19, 6, rot, jk); + break; + case 42: + GD.xsprite(x, y, -8, -8, 20, 4, rot, jk); + break; + case 43: + GD.xsprite(x, y, -8, -8, 20, 6, rot, jk); + break; + case 44: + GD.xsprite(x, y, -8, -8, 21, 4, rot, jk); + break; + case 45: + GD.xsprite(x, y, -8, -8, 21, 6, rot, jk); + break; + case 46: + GD.xsprite(x, y, -8, -8, 22, 4, rot, jk); + break; + case 47: + GD.xsprite(x, y, -8, -8, 22, 6, rot, jk); + break; + case 48: + GD.xsprite(x, y, -8, -8, 23, 4, rot, jk); + break; + case 49: + GD.xsprite(x, y, -8, -8, 23, 6, rot, jk); + break; + case 50: + GD.xsprite(x, y, -8, -8, 24, 4, rot, jk); + break; + case 51: + GD.xsprite(x, y, -8, -8, 24, 6, rot, jk); + break; + case 52: + GD.xsprite(x, y, -8, -8, 25, 4, rot, jk); + break; + case 53: + GD.xsprite(x, y, -8, -8, 25, 6, rot, jk); + break; + case 54: + GD.xsprite(x, y, -8, -8, 26, 4, rot, jk); + break; + case 55: + GD.xsprite(x, y, -8, -8, 26, 6, rot, jk); + break; + case 57: + GD.xsprite(x, y, -8, -8, 27, 4, rot, jk); + break; + case 58: + GD.xsprite(x, y, -8, -8, 27, 6, rot, jk); + break; + case 59: + GD.xsprite(x, y, -8, -8, 28, 4, rot, jk); + break; + case 60: + GD.xsprite(x, y, -8, -8, 28, 6, rot, jk); + break; + case 61: + GD.xsprite(x, y, -8, -8, 29, 4, rot, jk); + break; + case 62: + GD.xsprite(x, y, -8, -8, 29, 6, rot, jk); + break; + case 63: + GD.xsprite(x, y, -8, -8, 30, 4, rot, jk); + break; + case 64: + GD.xsprite(x, y, -8, -8, 30, 6, rot, jk); + break; + case 66: + GD.xsprite(x, y, -8, -8, 31, 4, rot, jk); + break; + case 67: + GD.xsprite(x, y, -8, -8, 31, 6, rot, jk); + break; + case 68: + GD.xsprite(x, y, -8, -8, 32, 4, rot, jk); + break; + case 69: + GD.xsprite(x, y, -8, -8, 32, 6, rot, jk); + break; + case 70: + GD.xsprite(x, y, -8, -8, 33, 4, rot, jk); + break; + case 71: + GD.xsprite(x, y, -8, -8, 33, 6, rot, jk); + break; + } +} + +static PROGMEM prog_uchar sprite_sprimg[] = { + +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0xef, 0x6f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0xaf, 0x3f, 0x3f, 0xaf, 0xef, 0x1f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xff, +0xff, 0xff, 0xef, 0x6f, 0xaf, 0x3f, 0x3f, 0xaf, 0xef, 0x5f, 0x5f, 0x5f, 0xef, 0xff, 0xff, 0xff, +0xff, 0xff, 0xef, 0x6f, 0xaf, 0x3f, 0x3f, 0xaf, 0xef, 0x5f, 0x5f, 0x5f, 0xef, 0xff, 0xff, 0xff, +0xef, 0xff, 0xef, 0x6f, 0x6f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xef, 0xff, 0xff, 0xfe, +0xef, 0xef, 0xff, 0xef, 0x6f, 0x6f, 0x3f, 0x3f, 0x6f, 0xef, 0xef, 0xef, 0xff, 0xff, 0xfe, 0xfa, +0xaf, 0xef, 0xef, 0xef, 0xef, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xef, 0xef, 0xff, 0xff, 0xff, 0xfe, +0xef, 0x6f, 0x6f, 0xaf, 0xef, 0x4f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, +0x6f, 0x6f, 0xaf, 0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x6f, 0xef, 0x4f, 0x4f, 0xef, 0xff, 0xff, 0xee, +0x6f, 0xaf, 0xef, 0x4f, 0x8f, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0x4f, 0xef, 0x7f, 0x3e, +0x6f, 0xaf, 0xef, 0x4f, 0x8f, 0xef, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0x8f, 0x4f, 0x4e, 0xe6, +0xaf, 0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0xcf, 0xef, 0x8f, 0x8e, 0xe6, +0xaf, 0xef, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0x8f, 0xef, 0x8f, 0xcf, 0xef, 0xff, 0xef, 0xee, 0xa6, +0xaf, 0xef, 0xef, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xef, 0xcf, 0xcf, 0xef, 0xff, 0xef, 0xae, 0xa6, + +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xf6, 0xf1, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf1, +0xff, 0xff, 0xff, 0xf6, 0xf1, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf1, 0xf6, 0xff, +0xff, 0xff, 0xfe, 0xfe, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf1, 0xf1, 0xf6, 0xff, 0xff, +0xff, 0xfe, 0xf5, 0xfe, 0xfe, 0xf1, 0xff, 0xff, 0xf1, 0xf1, 0xf1, 0xf1, 0xf6, 0xff, 0xff, 0xff, +0xfe, 0xf6, 0xf5, 0xf5, 0xfe, 0xfe, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf6, 0xff, 0xff, 0xef, 0xef, +0xf3, 0xfe, 0xf6, 0xf5, 0xf5, 0xfe, 0xfe, 0xf1, 0xf1, 0xf1, 0xf6, 0xff, 0xef, 0xef, 0xef, 0xef, +0xfe, 0xf1, 0xfe, 0xf6, 0xf5, 0xf5, 0xfe, 0xfe, 0xf1, 0xf6, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, +0xfa, 0xfe, 0xf1, 0xfe, 0xf6, 0xf5, 0xf5, 0xfe, 0xf6, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, +0xfa, 0xfa, 0xfe, 0xf1, 0xfe, 0xf6, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xef, 0xef, 0x0f, 0x1f, 0x1f, +0xfa, 0xfa, 0xfa, 0xfe, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0x0f, 0x0f, 0x1f, + +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, +0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf2, 0xfe, 0xf1, +0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xff, 0xfe, 0xf2, 0xfe, 0xf1, +0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xfe, 0xfe, 0xf9, 0xf9, +0xef, 0xef, 0xef, 0xef, 0x9f, 0x9f, 0x1f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, +0xff, 0xff, 0xff, 0xef, 0xef, 0x9f, 0x9f, 0x1f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x9f, 0x9f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x9f, 0x9f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x9f, 0x9f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x9f, 0x9f, 0x1f, 0x1f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, +0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x9e, 0x1e, 0x1e, 0xee, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, +0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xfe, 0xfe, +0x1e, 0x1e, 0x1e, 0x11, 0x11, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x11, 0x11, 0xe1, 0xe1, 0xe1, +0x1e, 0x1e, 0x1e, 0x1e, 0x6e, 0xee, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x11, 0x11, 0x11, 0x11, 0xe1, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xee, 0xee, 0xee, 0xee, 0xee, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x6e, 0x6e, 0x60, 0x61, 0x6e, 0x6e, 0xee, 0xee, 0xee, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, + +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xf6, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xf6, 0xf6, 0xfe, 0xfe, 0xae, 0xae, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +0xef, 0x4f, 0x8f, 0xef, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xef, 0xef, 0xff, 0xef, 0xaf, 0xae, 0xaa, +0x4f, 0x8f, 0x8f, 0x8f, 0xcf, 0xef, 0xef, 0x8f, 0x4f, 0xef, 0xef, 0xef, 0xaf, 0xaf, 0xef, 0xee, +0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xcf, 0xcf, 0xef, 0xef, 0xef, 0x3f, 0x3f, 0xef, 0xef, 0xfe, 0xf4, +0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xcf, 0xcf, 0xef, 0x3f, 0x3f, 0xef, 0xff, 0xfe, 0xf4, 0xf8, +0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0xcf, 0xef, 0xef, 0xef, 0xef, 0xfe, 0xfe, 0xf4, 0xf8, 0xf8, +0x8f, 0x8f, 0xef, 0xcf, 0x8f, 0xcf, 0xef, 0xaf, 0xae, 0xee, 0xfe, 0xf4, 0xf4, 0xf8, 0xf8, 0xf8, +0xef, 0xef, 0xcf, 0x8f, 0x8f, 0xef, 0xfe, 0xee, 0xee, 0xf4, 0xf4, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, +0xef, 0xcf, 0x8f, 0x8f, 0xee, 0xfe, 0xfe, 0xfe, 0xf4, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfe, 0xfe, +0xce, 0x8e, 0xee, 0xee, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xf8, 0xf8, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, +0xee, 0xee, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xfe, +0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xff, 0xff, +0xff, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xff, 0xff, +0xff, 0xff, 0xfe, 0xfa, 0xfe, 0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfa, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, + +0xef, 0xef, 0xef, 0x0f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0xee, 0xee, 0xee, 0xe0, 0xe0, 0xe0, +0xef, 0xef, 0x0f, 0x0f, 0x0f, 0x1f, 0xef, 0xef, 0xef, 0x0f, 0x1e, 0x1e, 0xee, 0xee, 0xe0, 0xee, +0xef, 0xef, 0x0f, 0x0f, 0x0f, 0xef, 0xef, 0xef, 0x0f, 0x0f, 0x0e, 0x1e, 0xee, 0xee, 0xee, 0xee, +0xef, 0xef, 0xef, 0x0f, 0xef, 0xef, 0xef, 0xef, 0x0e, 0x0e, 0x0e, 0x0e, 0xee, 0xee, 0xee, 0xee, +0xef, 0xef, 0xef, 0xef, 0xee, 0xee, 0xee, 0xee, 0xee, 0x0e, 0x0e, 0xe1, 0xe1, 0xe1, 0xe1, 0x1e, +0x1e, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x01, 0x01, +0x1e, 0x1e, 0x1e, 0xee, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x01, 0x01, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x01, 0x06, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0xe6, 0xe6, 0xe6, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0xe6, 0xe6, +0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, +0xee, 0xee, 0x6e, 0x61, 0x61, 0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xee, 0xee, +0xee, 0xee, 0xee, 0x68, 0x61, 0x61, 0x61, 0x61, 0x6e, 0x6e, 0x6e, 0xee, 0xee, 0xee, 0xee, 0xee, +0xee, 0xee, 0xee, 0xe8, 0x61, 0x61, 0x61, 0xe1, 0xe8, 0xe8, 0xee, 0xee, 0xee, 0xee, 0x1e, 0x1e, +0xee, 0xee, 0xe1, 0xe8, 0xe8, 0xe1, 0xe1, 0xe8, 0xe8, 0x11, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, + +0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, +0xee, 0xee, 0xe6, 0xe6, 0xee, 0xe6, 0xe6, 0xe6, 0xee, 0xee, 0xee, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, +0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xae, 0xae, 0xae, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, +0x6e, 0x6e, 0x6e, 0x6e, 0xae, 0xae, 0xae, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, +0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xa6, 0xa6, 0xe6, 0xe6, +0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xae, 0xa6, 0xa6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0xe6, +0x60, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xa6, 0xa6, 0xe6, +0x60, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xae, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xa6, 0xa6, +0x60, 0x6e, 0x6e, 0x6e, 0x6e, 0xae, 0xae, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xa6, +0x6e, 0x6e, 0x6e, 0xae, 0xae, 0xae, 0xae, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, +0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xe6, 0xe6, 0xe6, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, +0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, +0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, +0x1e, 0x1e, 0x1e, 0x1e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, +0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x61, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, +0x11, 0x11, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xa1, 0xa1, 0xa1, 0xa1, + +0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xfa, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xfe, 0xfe, 0xfe, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xfa, 0xfe, 0xf1, 0xf1, 0xfe, 0xff, +0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xf1, 0xf1, 0xfa, 0xfa, 0xfe, 0xff, +0xfe, 0xfe, 0xff, 0xff, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xf1, 0xf1, 0xf1, 0xfa, 0xfe, 0xfe, 0xff, +0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xf1, 0xf1, 0xf1, 0xfa, 0xfa, 0xfe, 0xfe, 0xef, +0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf1, 0xf1, 0xfa, 0xfa, 0xfa, 0xfe, 0xee, 0xaf, +0xfa, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xfa, 0xf1, 0xf1, 0xfa, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xef, +0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xfe, 0xfe, 0xf1, 0xf1, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xff, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xf1, 0xf1, 0xfa, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xef, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xf1, 0xfa, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xef, +0xf1, 0xfe, 0xfe, 0xfe, 0xfe, 0xfa, 0xf1, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xee, 0x6f, +0xf1, 0xfe, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xea, 0x6f, +0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xea, 0x6f, +0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xea, 0x6a, + +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xef, 0xff, 0xff, +0xff, 0xff, 0xff, 0xfe, 0xfe, 0xf6, 0xf3, 0xf3, 0xfa, 0xfa, 0xfa, 0x6a, 0xef, 0xef, 0x6f, 0xff, +0xff, 0xff, 0xff, 0xfe, 0xfa, 0xf3, 0xf3, 0xfa, 0xfe, 0x61, 0x61, 0xe1, 0xee, 0x6f, 0xff, 0xff, +0xff, 0xff, 0xfe, 0xf6, 0xfa, 0xf3, 0xf3, 0xfa, 0x6e, 0x15, 0xe5, 0xe5, 0x1e, 0x6f, 0xff, 0xff, +0xff, 0xff, 0xfe, 0xf6, 0xfa, 0xf3, 0x63, 0x6a, 0x1e, 0xe5, 0xe5, 0x15, 0x6e, 0xff, 0xff, 0xff, +0xfe, 0xff, 0xfe, 0xf6, 0x66, 0x63, 0x13, 0x1a, 0xea, 0xea, 0x1a, 0x1a, 0x6e, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xff, 0x6e, 0x16, 0x16, 0x13, 0xe3, 0xe6, 0x1e, 0x1e, 0x6e, 0xff, 0xff, 0xff, 0xff, +0xfa, 0xfe, 0xee, 0xee, 0x1e, 0x16, 0xe6, 0xe6, 0x16, 0x16, 0x1e, 0x6e, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xe6, 0x56, 0xea, 0xee, 0xe4, 0xee, 0x1e, 0x1e, 0x1e, 0x6e, 0xfe, 0xff, 0xff, 0xff, 0xff, +0xe6, 0x66, 0x5a, 0x5e, 0xe4, 0xe8, 0x18, 0x1e, 0x16, 0x1e, 0x64, 0xf4, 0xfe, 0xff, 0xff, 0xfe, +0x36, 0xea, 0x6e, 0x54, 0x58, 0xe8, 0xe8, 0x18, 0x1e, 0x68, 0xf8, 0xf8, 0xf4, 0xfe, 0xf7, 0xf3, +0xe6, 0x1a, 0xee, 0x64, 0x58, 0x5e, 0xe8, 0xe8, 0x1e, 0x68, 0xf8, 0xf8, 0xf8, 0xf4, 0xf4, 0xfe, +0xaa, 0xee, 0x14, 0xe8, 0x68, 0x5e, 0x58, 0xe8, 0x6e, 0xf8, 0xf8, 0xfc, 0xfe, 0xf8, 0xf8, 0xfe, +0xaa, 0xae, 0xee, 0x18, 0xe8, 0x64, 0xee, 0xe8, 0xfe, 0xf8, 0xfc, 0xfe, 0xff, 0xfe, 0xfe, 0xfa, +0xaa, 0xae, 0xae, 0xee, 0x18, 0xe8, 0xf4, 0xfe, 0xfe, 0xfc, 0xfc, 0xfe, 0xff, 0xfe, 0xfa, 0xfa, + +0xef, 0xef, 0x1f, 0x1f, 0x8f, 0x1f, 0x8f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0xee, +0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x8f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1e, 0x1e, +0xef, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1e, 0x1e, 0x1e, +0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0xef, 0xee, 0xee, 0xee, 0x8e, 0x11, 0x11, +0x1f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1e, 0x1e, 0xee, 0xee, 0xee, 0xe1, 0x81, 0x11, 0x11, +0x1f, 0x1f, 0x1f, 0x1f, 0xee, 0xee, 0xee, 0xee, 0x1e, 0xee, 0xe1, 0xe1, 0xe1, 0x81, 0x81, 0x11, +0x1f, 0x1f, 0x6e, 0x6e, 0x6e, 0x6e, 0xee, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x11, 0x11, 0x81, 0x11, +0x6f, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, 0xe1, 0xe1, 0xe1, 0xe1, 0x11, 0x11, 0x16, +0x6f, 0x6e, 0x61, 0x61, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, 0x61, 0xe1, 0xe1, 0xe6, 0xe6, 0x16, +0x6f, 0x6e, 0x61, 0x61, 0x66, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0xe6, 0xe6, 0xe6, 0xe6, +0x6f, 0x6e, 0x61, 0x61, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0xe6, 0xe6, +0x6e, 0x6e, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0xe6, +0x6e, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, +0x6e, 0x61, 0x61, 0x66, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0xe6, 0xe6, +0x6e, 0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xee, 0xee, 0xe6, + +0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x11, 0x11, 0x11, 0x11, 0x61, 0x61, 0x61, 0x61, 0x61, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, +0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, +0x61, 0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x61, 0x68, 0x68, 0x6e, 0x6e, 0x6e, 0x01, 0x01, 0x01, 0x06, 0x06, 0x66, 0x66, 0x66, 0x66, 0x66, +0x68, 0x68, 0x71, 0x7e, 0x0e, 0x0e, 0x01, 0x01, 0x01, 0x06, 0x06, 0x66, 0x66, 0x66, 0x66, 0x66, +0x68, 0x61, 0x7e, 0x7e, 0x7e, 0x01, 0x01, 0x01, 0x01, 0x06, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x61, 0x61, 0x6e, 0x7e, 0x7e, 0x01, 0x01, 0x01, 0x06, 0x06, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x61, 0x61, 0x6e, 0x6e, 0x7e, 0x71, 0x01, 0x01, 0x06, 0x06, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x61, 0x6e, 0x6e, 0x6e, 0x71, 0x71, 0x06, 0x06, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x71, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x66, 0x06, 0x66, 0x66, 0x66, 0x66, 0x66, 0x06, 0x06, +0x66, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x66, 0x06, 0x06, 0x06, 0x66, 0x06, 0x06, 0x06, 0x06, 0x06, +0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x01, 0x66, 0x06, 0x06, 0x66, 0x66, 0x06, 0x06, 0x06, 0x06, 0x06, +0x6e, 0x0e, 0x01, 0x01, 0x01, 0x06, 0x06, 0x66, 0x66, 0x66, 0x76, 0x76, 0x06, 0x06, 0x06, 0x06, +0x71, 0x01, 0x01, 0x01, 0x06, 0x06, 0x06, 0x66, 0x66, 0x66, 0x66, 0x76, 0x76, 0x06, 0x06, 0x07, + +0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xf6, 0xf6, 0xf6, 0xf6, 0xaa, +0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xea, 0xf6, 0xf6, 0xf6, 0xf6, 0xa6, 0xf6, 0xaa, +0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xf6, 0xf6, 0xa6, 0xf6, 0xa6, 0xf6, 0xf6, +0x66, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xf6, 0xa6, 0xf6, 0xa6, 0xf6, 0xf6, +0x66, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0x16, 0x16, 0xe6, 0xea, 0xf6, 0xa6, 0xa6, 0xf6, 0xa6, +0x66, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xa6, 0x16, 0xa6, 0xea, 0xa6, 0xa6, 0xf6, 0xf6, 0xa6, +0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0x16, 0x16, 0x16, 0xe6, 0xa6, 0xf6, 0xf6, 0xa6, +0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xa6, 0x16, 0x16, 0x16, 0xe6, 0xa6, 0xa6, 0xf6, +0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xa6, 0xa6, 0x16, 0x16, 0xa6, 0xe6, 0xf6, 0xf6, +0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0x16, 0x16, 0xe6, 0xe6, 0xf6, +0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0x16, 0x16, 0xe6, 0xa6, +0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0xa6, 0x16, 0x16, 0xe6, +0xa0, 0xa0, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0x16, 0xe6, +0xa0, 0xa0, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, +0xa0, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0xe6, 0xea, +0xa0, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xfa, + +0xef, 0x4f, 0x8f, 0xef, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xef, 0xef, 0xff, 0xef, 0xaf, 0xae, 0xaa, +0x4f, 0x8f, 0x8f, 0x8f, 0xcf, 0xef, 0xef, 0x8f, 0x4f, 0xef, 0xef, 0xef, 0xaf, 0xaf, 0xef, 0xee, +0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xcf, 0xcf, 0xef, 0xef, 0xef, 0x3f, 0x3f, 0xef, 0xef, 0xfe, 0xf4, +0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xcf, 0xcf, 0xef, 0x3f, 0x3f, 0xef, 0xff, 0xfe, 0xf4, 0xf8, +0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0xcf, 0xef, 0xef, 0xef, 0xef, 0xfe, 0xfe, 0xf4, 0xf8, 0xf8, +0x8f, 0x8f, 0xef, 0xcf, 0x8f, 0xcf, 0xef, 0xaf, 0xae, 0xee, 0xfe, 0xf4, 0xf4, 0xf8, 0xf8, 0xf8, +0xef, 0xef, 0xcf, 0x8f, 0x8f, 0xef, 0xfe, 0xee, 0xee, 0xf4, 0xf4, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, +0xef, 0xcf, 0x8f, 0x8f, 0xee, 0xfe, 0xfe, 0xfe, 0xf4, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfe, 0xfe, +0xce, 0x8e, 0xee, 0xee, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xf8, 0xf8, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, +0xee, 0xee, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xfe, +0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xff, 0xff, +0xff, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xff, 0xff, +0xff, 0xff, 0xfe, 0xfa, 0xfe, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfa, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + +0xee, 0x1e, 0xea, 0xea, 0xee, 0xce, 0xef, 0xef, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xef, 0xef, 0xef, +0xef, 0x1f, 0xee, 0xee, 0xef, 0xcf, 0xcf, 0xef, 0xef, 0xef, 0x6f, 0x6f, 0x6f, 0x6f, 0xaf, 0xef, +0xef, 0x1f, 0xef, 0xef, 0xef, 0xcf, 0xcf, 0xcf, 0xef, 0xef, 0xef, 0x6f, 0x6f, 0x6f, 0xaf, 0xaf, +0xef, 0xef, 0xef, 0xef, 0x2f, 0xef, 0xef, 0xcf, 0xcf, 0xcf, 0xef, 0xef, 0xef, 0x6f, 0xaf, 0xaf, +0xff, 0xef, 0xef, 0xef, 0x2f, 0x2f, 0xef, 0xef, 0xcf, 0xcf, 0xcf, 0xef, 0xef, 0xef, 0x6f, 0xaf, +0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0x2f, 0xef, 0xef, 0xef, 0xcf, 0xcf, 0xef, 0xef, 0xef, 0xaf, +0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0x2f, 0x2f, 0xef, 0xef, 0xcf, 0xcf, 0xcf, 0xef, 0xaf, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0x2f, 0x2f, 0x2f, 0xef, 0xef, 0xcf, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0x2f, 0x2f, 0xef, 0xef, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0x2f, 0x2f, 0x2f, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0x2f, 0x2f, 0x2f, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0x2f, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +0x1e, 0x1e, 0x16, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x71, +0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, +0x6a, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, 0x61, 0x66, 0x66, 0x66, +0x6a, 0x6a, 0x6a, 0x6a, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6a, 0x6a, 0x6a, 0x6a, 0x6e, 0x6e, 0x61, 0x61, 0x66, 0x66, 0x66, 0x6a, 0x66, 0x66, 0x66, 0x66, +0x6a, 0x6a, 0x6a, 0x6e, 0x6e, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6a, 0x6a, 0x6a, 0x66, +0x6a, 0x6a, 0x6a, 0x6e, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x6a, 0x6a, 0x6e, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x6a, 0x6a, 0x6e, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xa6, 0xa6, 0xa6, +0x6e, 0x6a, 0x6a, 0x6e, 0x61, 0x66, 0x66, 0x66, 0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, +0x6e, 0x6a, 0x6a, 0x6e, 0x61, 0xe6, 0xe6, 0xe6, 0xe6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, +0x6e, 0xea, 0xea, 0xee, 0xe1, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xf6, 0xf6, 0xf6, 0xf6, +0xee, 0xea, 0xea, 0xee, 0xe1, 0xe6, 0xe6, 0xf6, 0xfa, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, +0xee, 0xee, 0xee, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, + +0x07, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0xa7, 0xa7, 0xa0, +0x77, 0x67, 0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0xa7, 0xa7, 0xa7, 0xa7, +0x66, 0x67, 0x67, 0x60, 0x60, 0x60, 0x66, 0x66, 0x66, 0x66, 0x66, 0xa6, 0xa6, 0xa6, 0xa7, 0xa7, +0x66, 0x66, 0x67, 0x67, 0x60, 0x66, 0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, +0x66, 0x66, 0x66, 0xa7, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, +0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xea, 0xea, 0xea, +0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, +0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, +0xe6, 0xea, 0xea, 0xea, 0xea, 0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, +0xfa, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, +0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, +0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xea, 0xee, 0xee, 0xef, 0xef, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, +0xfa, 0xfa, 0xfa, 0xea, 0xea, 0xae, 0xae, 0xae, 0xaf, 0xaf, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, +0xfa, 0xfa, 0xfa, 0xea, 0xaa, 0x1e, 0x1e, 0x1f, 0x1f, 0x1f, 0xaf, 0xef, 0xff, 0xff, 0xff, 0xff, +0xfa, 0xfa, 0xee, 0x0e, 0xae, 0x5e, 0x5f, 0x5f, 0x5f, 0x5f, 0xaf, 0x0f, 0xef, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xee, 0x0e, 0xaf, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0xaf, 0x0f, 0xef, 0xff, 0xff, 0xff, +0xff, 0xff, 0xef, 0x0f, 0x6f, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0x6f, 0x0f, 0xef, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0x6f, 0xef, 0xef, 0xef, 0xef, 0xef, 0x6f, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0xef, 0x6f, 0xef, 0xef, 0xef, 0x6f, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0x4f, 0xef, 0x6f, 0x6f, 0x6f, 0xef, 0x4f, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x6f, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, 0xff, +0xff, 0xef, 0x4f, 0x8f, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, +0xff, 0xef, 0x4f, 0x8f, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, +0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xff, +0xef, 0x4f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x4f, 0xef, 0xff, + +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xfe, 0xfd, 0xf7, 0xf7, 0xfb, 0xfd, 0xfe, 0xfb, 0xff, +0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xff, 0xfd, 0xe7, 0xe3, 0xf3, 0xf7, 0xfa, 0xfa, 0xfa, 0xff, +0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xea, 0xea, 0xe3, 0xf3, 0xf7, 0xfd, 0xf6, 0xf1, 0xf1, 0xfa, +0xff, 0xfe, 0xee, 0xef, 0xff, 0xfe, 0xe6, 0xea, 0xf3, 0xf3, 0xe7, 0xee, 0xf9, 0xf5, 0xf5, 0xfa, +0xff, 0xff, 0xfe, 0xee, 0xee, 0xfe, 0xf6, 0xf6, 0xf3, 0xe3, 0xea, 0xfd, 0xf6, 0xf5, 0xf5, 0xfb, +0xff, 0xff, 0xfa, 0xea, 0xea, 0xfe, 0xfb, 0xf6, 0xe3, 0xe3, 0xf7, 0xfa, 0xfa, 0xfa, 0xfa, 0xfd, +0xff, 0xfe, 0xee, 0xee, 0xfe, 0xfe, 0xfe, 0xfb, 0xf6, 0xe3, 0xe3, 0xf6, 0xfb, 0xfe, 0xfe, 0xff, +0xff, 0xff, 0xef, 0xfe, 0xf6, 0xe6, 0xea, 0xee, 0xf4, 0xfe, 0xee, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, +0xff, 0xff, 0xfe, 0xf6, 0xe6, 0xea, 0xfe, 0xe4, 0xe8, 0xf8, 0xfe, 0xf6, 0xfe, 0xf4, 0xf4, 0xfe, +0xdf, 0x7f, 0xfe, 0xf6, 0xea, 0xfe, 0xf4, 0xf8, 0xe8, 0xf8, 0xf8, 0xfe, 0xf8, 0xf8, 0xf8, 0xf4, +0x4f, 0x4e, 0xe6, 0xf6, 0xfa, 0xfe, 0xf4, 0xf8, 0xfe, 0xf8, 0xf8, 0xfe, 0xf8, 0xf8, 0xf8, 0xf8, +0x8f, 0x8e, 0xe6, 0xea, 0xee, 0xf4, 0xf8, 0xf8, 0xfe, 0xf8, 0xf8, 0xfe, 0xf8, 0xf8, 0xfc, 0xfe, +0xef, 0xee, 0xe6, 0xea, 0x3e, 0xee, 0xe8, 0xf8, 0xf4, 0xfe, 0xf8, 0xfe, 0xf8, 0xfc, 0xfe, 0xff, +0xff, 0xfe, 0xe6, 0xea, 0x3e, 0x3e, 0xee, 0xf8, 0xf8, 0xf4, 0xfe, 0xfe, 0xfc, 0xfc, 0xfe, 0xff, + +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x2f, 0xef, 0x1f, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x2f, 0xef, 0x1f, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0x9f, 0x9f, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xee, 0xee, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xee, 0xee, 0xee, 0xee, +0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, 0xef, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0xef, 0x1f, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x6f, 0x6e, 0x6e, 0x60, 0x61, 0x61, +0xef, 0xef, 0xef, 0x0f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xee, 0xee, 0xee, 0xe0, 0x60, 0x61, + +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf1, 0xf1, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xfe, 0xfe, 0xf9, 0xf9, 0xf1, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xfe, 0xfe, 0xf9, 0xf9, 0xf1, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xf9, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xf9, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xf9, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf9, 0xf9, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xf9, 0xf1, 0xf1, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, +0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xf1, 0xf1, 0xfe, 0xfe, 0xfe, +0xe1, 0xe1, 0xe1, 0xf1, 0xf6, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xf1, 0xf1, 0xf1, 0xf1, 0xfe, +0x66, 0xe6, 0xe6, 0xe6, 0xe6, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, +0x66, 0x66, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xfe, 0xfe, 0xfe, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, + +0x4f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x4f, 0xef, +0x4f, 0x8f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x8f, 0x4f, 0xef, +0xef, 0xef, 0xef, 0xef, 0x4f, 0x4f, 0x8f, 0x8f, 0x8f, 0x4f, 0x4f, 0xef, 0xef, 0xef, 0xef, 0xef, +0x4f, 0x4f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x4f, 0x4f, 0xef, +0x4f, 0xef, 0xef, 0x4f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x4f, 0xef, 0xef, 0x4f, 0xef, +0xef, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xef, 0xff, +0xff, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, 0xff, +0xff, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0x4f, 0x8f, 0x8f, 0xef, 0x8f, 0x8f, 0x4f, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xfa, 0xfa, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +0xff, 0xfe, 0xf6, 0xfa, 0xea, 0xe6, 0xfe, 0xfe, 0xf8, 0xf8, 0xf4, 0xfe, 0xfe, 0xfe, 0xff, 0xff, +0xff, 0xfe, 0xfe, 0xfa, 0xfa, 0xfe, 0xf8, 0xfc, 0xfe, 0xfe, 0xf8, 0xf4, 0xfe, 0xfe, 0xfe, 0xff, +0xff, 0xff, 0xfe, 0xfa, 0xfa, 0xfe, 0xf8, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xf3, 0xf3, 0xfd, +0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xf8, 0xf8, 0xf8, 0xfc, 0xfc, 0xfd, 0xf3, 0xf3, 0xfd, 0xfe, +0xef, 0xef, 0xef, 0xff, 0xff, 0xfe, 0xfe, 0xf8, 0xf8, 0xfc, 0xfe, 0xfe, 0xfd, 0xfe, 0xfe, 0xfe, +0xef, 0x4f, 0xef, 0xef, 0xef, 0xff, 0xfe, 0xfe, 0xf8, 0xf8, 0xf8, 0xe4, 0xe4, 0xe4, 0xe4, 0xfe, +0xef, 0xef, 0x8f, 0x4f, 0x4f, 0xef, 0xef, 0xfe, 0xfe, 0xf8, 0xe8, 0xe8, 0xa8, 0xe8, 0xe4, 0xf4, +0x4f, 0x4f, 0xef, 0xef, 0x8f, 0x4f, 0x4f, 0xef, 0xee, 0xee, 0xac, 0xa8, 0xa8, 0xe8, 0xf8, 0xf4, +0x4f, 0x4f, 0x4f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xaf, 0xae, 0xee, 0xee, 0xec, 0xec, 0xf8, 0xf8, +0x8f, 0x8f, 0x8f, 0x4f, 0xef, 0x4f, 0x4f, 0x4f, 0xef, 0xef, 0xef, 0xef, 0xae, 0xee, 0xfe, 0xfc, +0xef, 0xcf, 0x8f, 0x8f, 0x8f, 0x8f, 0x8f, 0xef, 0xef, 0xef, 0xaf, 0xaf, 0xaf, 0xef, 0xfe, 0xfe, +0xef, 0xef, 0xef, 0xef, 0xcf, 0xef, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xef, 0xef, 0xef, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0x0f, 0x0f, 0x0f, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0x0f, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, +0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, +0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x6e, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6e, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6e, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x6f, 0x6f, 0x6f, 0x6f, 0x6e, +0xef, 0xef, 0xef, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x6e, +0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xee, +0xef, 0xef, 0xef, 0x8f, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xee, +0xef, 0xef, 0xef, 0x8f, 0x1f, 0x1f, 0x1f, 0x1f, 0x8f, 0x8f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xee, +0xef, 0xef, 0x1f, 0x8f, 0x8f, 0x1f, 0x1f, 0x8f, 0x8f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0xef, 0xee, + +0x6e, 0x6e, 0x6e, 0x60, 0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, +0xee, 0xee, 0x60, 0x60, 0xe0, 0x61, 0x6e, 0x6e, 0xee, 0xe0, 0xe1, 0xe1, 0xee, 0xee, 0xee, 0xee, +0xee, 0xee, 0xe0, 0xe0, 0xe0, 0xee, 0xee, 0xee, 0xe0, 0xe0, 0xe0, 0xe1, 0xee, 0xee, 0xee, 0xee, +0xee, 0xee, 0xee, 0xe0, 0xee, 0xee, 0xee, 0x6e, 0x60, 0x60, 0x60, 0x60, 0x6e, 0x6e, 0xee, 0xee, +0x1e, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x6e, 0x6e, 0x60, 0x60, 0x6e, 0x6e, 0x6e, 0xee, 0xe1, +0x11, 0x1e, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xee, 0xe0, 0x60, +0x01, 0x11, 0xe1, 0xee, 0xee, 0xee, 0xee, 0xee, 0x6e, 0x6e, 0x6e, 0xee, 0xee, 0xee, 0x60, 0x60, +0x06, 0x16, 0xe6, 0xee, 0xee, 0xe6, 0xe6, 0xe6, 0x6e, 0x6e, 0xee, 0xee, 0x6e, 0x6e, 0x60, 0x60, +0x06, 0xe6, 0xe6, 0xe6, 0xee, 0xe6, 0xe6, 0x66, 0x66, 0xe6, 0xe6, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, +0xe6, 0xe6, 0xe6, 0xe6, 0xee, 0xe6, 0xe6, 0x66, 0x66, 0xe6, 0xe6, 0x66, 0x66, 0x6e, 0x6e, 0x6e, +0xe6, 0xe6, 0xe6, 0xe6, 0xee, 0xee, 0xe6, 0x66, 0x66, 0x66, 0xe6, 0xe6, 0xe6, 0xe6, 0xee, 0xee, +0xe6, 0xe6, 0xe6, 0xe6, 0xee, 0xee, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, +0xee, 0xee, 0xe6, 0xee, 0xee, 0xee, 0xe6, 0xe6, 0xe6, 0xe6, 0x66, 0x16, 0x16, 0x16, 0x1e, 0xee, +0xee, 0xee, 0xee, 0xee, 0xe6, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x1e, 0x1e, 0x1e, 0x1e, 0xee, +0x1e, 0x1e, 0x1e, 0x1e, 0xe6, 0x16, 0x16, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x11, 0xe1, +0x1e, 0x1e, 0x1e, 0x1e, 0xee, 0xee, 0x1e, 0x1e, 0x1e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0xe1, + +0xfe, 0xfe, 0xfe, 0xae, 0xfe, 0xfe, 0xfe, 0xae, 0xae, 0xaf, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xae, 0xaf, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xae, 0xae, 0xae, 0xae, 0xaa, 0xfa, 0xfa, 0xfe, 0xfe, 0xae, 0xee, 0xee, 0xee, 0xfe, +0xf6, 0xf6, 0xf6, 0xf6, 0xfa, 0xfa, 0xfa, 0xaa, 0xfa, 0xfe, 0xae, 0xee, 0x1e, 0x1e, 0xee, 0xfe, +0xee, 0xfe, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xfa, 0xfa, 0xae, 0x1e, 0x1e, 0xaa, 0xaa, 0xee, 0xfe, +0xe6, 0xee, 0xfe, 0xf6, 0xa6, 0xa6, 0xa6, 0xaa, 0xaa, 0x1a, 0x1e, 0x1e, 0xaa, 0xea, 0xea, 0xfe, +0xe6, 0xe6, 0xee, 0xfe, 0xf6, 0xf6, 0xf6, 0xa6, 0x1a, 0x1a, 0x1a, 0xae, 0xae, 0xea, 0xea, 0xfe, +0xe6, 0xe6, 0xe6, 0xfe, 0xfe, 0xf6, 0xf6, 0xea, 0x1a, 0x1a, 0xaa, 0xae, 0xae, 0xee, 0xea, 0xfa, +0xa6, 0xe6, 0xe6, 0xe6, 0xfe, 0xfe, 0xae, 0x1a, 0x1a, 0xaa, 0xaa, 0xaa, 0xae, 0xee, 0xee, 0xfa, +0xe6, 0xe6, 0xe6, 0xea, 0xfa, 0xea, 0xee, 0x1e, 0x1a, 0xaa, 0xaa, 0xae, 0xee, 0xee, 0xee, 0xfe, +0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x1e, 0x1e, 0xae, 0xae, 0xae, 0xae, 0xee, 0xee, 0xee, 0xfe, +0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x1e, 0xae, 0xae, 0xae, 0xae, 0xee, 0xee, 0xee, 0xee, 0xfe, +0x11, 0xe1, 0xe1, 0xe1, 0xe1, 0xa1, 0x11, 0xa1, 0xa1, 0xa1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xf1, +0x11, 0xe1, 0xe1, 0xe1, 0xe1, 0xa1, 0xa1, 0xa1, 0xa1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xa1, 0xf1, +0xa1, 0xa1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xa1, 0xe1, 0xe6, 0xea, 0xea, 0xea, 0xfa, 0xaa, 0xfa, +0xa1, 0xa1, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xfa, 0xaa, 0xaa, + +0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xfe, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xfe, 0xfe, 0xf8, 0xf8, 0xf3, 0xf3, 0xf3, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xfe, 0xf8, 0xf8, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf8, 0xfe, 0xfe, 0xff, 0xff, +0xff, 0xff, 0xfe, 0xfe, 0xf8, 0xf3, 0xe3, 0xe0, 0xe0, 0xe0, 0xe3, 0xf8, 0xf8, 0xfe, 0xff, 0xff, +0xef, 0xff, 0xfe, 0xfe, 0xf8, 0xe3, 0x30, 0x30, 0x30, 0x30, 0x30, 0xee, 0xfe, 0xfe, 0xfe, 0xfe, +0xef, 0xef, 0xfe, 0xfe, 0xe8, 0x83, 0x30, 0x00, 0x00, 0x08, 0x08, 0x38, 0xe8, 0xf8, 0xf8, 0xf8, +0x8f, 0xef, 0xff, 0xfe, 0xe8, 0x88, 0x33, 0x03, 0x08, 0x08, 0x03, 0x33, 0x33, 0xe3, 0xf8, 0xf8, +0x8f, 0xef, 0xff, 0xfe, 0xee, 0x8e, 0x3e, 0x33, 0x38, 0x03, 0x03, 0x33, 0x33, 0xe3, 0xf3, 0xf3, +0x3f, 0x8f, 0xef, 0xef, 0x3f, 0x3e, 0x3e, 0x8e, 0x38, 0x33, 0x33, 0x33, 0x30, 0xe0, 0xf3, 0xf3, +0x0f, 0x0f, 0x3f, 0x8f, 0x8f, 0x8f, 0x3f, 0x3e, 0x83, 0x83, 0x83, 0x80, 0xe0, 0xe0, 0xf0, 0xf0, +0x0f, 0x0f, 0x0f, 0x3f, 0x3f, 0x8f, 0x8e, 0x38, 0x33, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, +0x0f, 0x0f, 0x0f, 0x0f, 0x3f, 0x3f, 0x3e, 0x83, 0x33, 0x83, 0x80, 0x80, 0xe0, 0xe0, 0xe0, 0xf0, +0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x3f, 0x3e, 0x83, 0x33, 0x33, 0x00, 0x00, 0x30, 0x80, 0xe0, 0xf0, +0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x3e, 0x88, 0xe3, 0x83, 0x30, 0x00, 0x30, 0x80, 0xe0, 0xf0, +0x0f, 0x0f, 0x0f, 0x0e, 0x08, 0x08, 0x33, 0x33, 0x38, 0xe3, 0x30, 0x30, 0x30, 0x80, 0xe0, 0xf0, + +0xef, 0xef, 0x1f, 0x1f, 0x8f, 0x1f, 0x8f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0xee, +0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x8f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1e, 0x1e, +0xef, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1e, 0x1e, 0x1e, +0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1f, 0x1f, 0x1f, 0xef, 0xee, 0xee, 0xee, 0x8e, 0x11, 0x11, +0x1f, 0x1f, 0x1f, 0xef, 0xef, 0xef, 0xef, 0x1e, 0x1e, 0xee, 0xee, 0xee, 0xe1, 0x81, 0x11, 0x11, +0x1f, 0x1f, 0x1f, 0xef, 0xee, 0xee, 0xee, 0xee, 0x1e, 0xee, 0xe1, 0xe1, 0xe1, 0x81, 0x81, 0x11, +0x1f, 0x1f, 0x6e, 0xee, 0x6e, 0x6e, 0xee, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x11, 0x11, 0x81, 0x11, +0x6f, 0x6e, 0x6e, 0xee, 0x6e, 0x61, 0x61, 0x61, 0x61, 0xe1, 0xe1, 0xe1, 0xe1, 0x11, 0x11, 0x16, +0x6f, 0x6e, 0x61, 0xe1, 0x6e, 0x6e, 0x61, 0x61, 0x61, 0x61, 0x61, 0xe1, 0xe1, 0xe6, 0xe6, 0x16, +0x6f, 0x6e, 0x61, 0xe1, 0xe6, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0xe6, 0xe6, 0xe6, 0xe6, +0x6f, 0x6e, 0x61, 0xe1, 0xe6, 0x66, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0xe6, 0xe6, 0xe6, 0xe6, +0xee, 0x6e, 0xe1, 0xe1, 0x66, 0x66, 0x66, 0xe6, 0xee, 0xee, 0xee, 0xe6, 0x6e, 0x6e, 0x6e, 0xee, +0xee, 0xe1, 0xe1, 0xe6, 0xe6, 0xe6, 0xe6, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, +0x6e, 0x61, 0x61, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, +0x6e, 0x61, 0x61, 0x66, 0x6e, 0x6e, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xe6, 0xe6, +0x6e, 0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x6e, 0x66, 0xee, 0xee, 0xe6, + +0x1e, 0x1e, 0x1e, 0x1e, 0xee, 0xee, 0x1e, 0x11, 0x11, 0x11, 0x11, 0x61, 0x61, 0x61, 0x61, 0xe1, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xee, 0xe1, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xe1, 0xb6, +0x61, 0x61, 0x6e, 0x6e, 0x6e, 0x6e, 0xe1, 0xe1, 0x61, 0x61, 0x61, 0xe6, 0xe6, 0xe6, 0xb6, 0xb6, +0x61, 0x61, 0x61, 0x6e, 0x6e, 0x6e, 0xe1, 0xe1, 0xb1, 0x66, 0xe6, 0xe6, 0xb6, 0xb6, 0xb6, 0x66, +0x61, 0x68, 0x68, 0x6e, 0x6e, 0x6e, 0x01, 0xe1, 0xb1, 0xb6, 0xe6, 0xb6, 0x66, 0x66, 0x66, 0x66, +0x68, 0x68, 0x71, 0x7e, 0x0e, 0x0e, 0x01, 0xe1, 0xe1, 0xb6, 0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, +0x68, 0x61, 0x7e, 0x7e, 0x7e, 0x01, 0x01, 0x01, 0xe1, 0xb6, 0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, +0x61, 0x61, 0x6e, 0x7e, 0x7e, 0x01, 0x01, 0x01, 0xe6, 0xb6, 0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, +0x61, 0x61, 0x6e, 0x6e, 0x7e, 0x71, 0x01, 0x01, 0xe6, 0xb6, 0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x61, 0x6e, 0x6e, 0x6e, 0x71, 0x71, 0x06, 0xe6, 0xe6, 0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x71, 0x66, 0x66, 0xe6, 0xb6, 0x66, 0x66, 0x66, 0x66, 0x66, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0x66, 0xe6, 0xe6, 0xe6, 0xe6, 0x66, 0x66, 0x06, 0x06, +0x66, 0x6e, 0x6e, 0x6e, 0x61, 0x61, 0xe6, 0xe6, 0xb6, 0xb6, 0xb6, 0xb6, 0xe6, 0xe6, 0x06, 0x06, +0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0xee, 0xe6, 0xb6, 0xb6, 0x66, 0x66, 0xb6, 0xb6, 0xe6, 0xe6, 0x06, +0x6e, 0x0e, 0x01, 0x01, 0xe1, 0xee, 0xb6, 0x66, 0x66, 0x66, 0x76, 0x76, 0xb6, 0xb6, 0xb6, 0xe6, +0x71, 0x01, 0x01, 0xe1, 0xe6, 0xbe, 0xbe, 0x66, 0x66, 0x66, 0x66, 0x76, 0x76, 0x06, 0xb6, 0xb7, + +0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xf6, 0xf6, 0xf6, 0xf6, 0xaa, +0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xea, 0xf6, 0xf6, 0xf6, 0xf6, 0xa6, 0xf6, 0xaa, +0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xf6, 0xf6, 0xa6, 0xf6, 0xa6, 0xf6, 0xf6, +0x66, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xf6, 0xa6, 0xf6, 0xa6, 0xf6, 0xf6, +0x66, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0x16, 0x16, 0xe6, 0xea, 0xf6, 0xa6, 0xa6, 0xf6, 0xa6, +0x66, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xa6, 0x16, 0xa6, 0xea, 0xa6, 0xa6, 0xf6, 0xf6, 0xa6, +0xe6, 0xb6, 0xb6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0x16, 0x16, 0x16, 0xe6, 0xa6, 0xf6, 0xfe, 0xae, +0xb6, 0xb6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xa6, 0x16, 0x16, 0x16, 0xe6, 0xae, 0xab, 0xfb, +0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xa6, 0xa6, 0x16, 0x1e, 0xae, 0xeb, 0xfb, 0xf6, +0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0x1e, 0x1b, 0xeb, 0xe6, 0xf6, +0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xa6, 0xae, 0xab, 0x1b, 0x16, 0xe6, 0xa6, +0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xa6, 0xae, 0xab, 0xa6, 0x16, 0x16, 0xe6, +0xa0, 0xa0, 0xa6, 0xae, 0xae, 0xae, 0xee, 0xee, 0xee, 0xae, 0xab, 0xab, 0xa6, 0xa6, 0x16, 0xe6, +0xa0, 0xa0, 0xae, 0xae, 0xae, 0xab, 0xeb, 0xeb, 0xeb, 0xeb, 0xab, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, +0xae, 0xae, 0xab, 0xab, 0xab, 0xab, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xa6, 0xa6, 0xa6, 0xe6, 0xea, +0xae, 0xab, 0xab, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xfa, + +0x0f, 0x0f, 0x0e, 0x08, 0x08, 0x08, 0x03, 0x33, 0x38, 0x33, 0x83, 0xe0, 0x80, 0xe0, 0xe0, 0xf0, +0x0f, 0x0f, 0x0e, 0x08, 0x08, 0x03, 0x03, 0x38, 0x38, 0x33, 0x83, 0xe3, 0xe0, 0xe0, 0xf0, 0xf0, +0x0f, 0x0f, 0x0e, 0x0e, 0x08, 0x03, 0x33, 0x38, 0x38, 0x33, 0x83, 0xe3, 0xe3, 0xf3, 0xf0, 0xf0, +0x3f, 0x0f, 0x0f, 0x0e, 0x38, 0x33, 0x33, 0x33, 0x38, 0x88, 0x83, 0xe3, 0xe3, 0xf3, 0xf3, 0xf3, +0x3f, 0x3f, 0x3e, 0x3e, 0x38, 0x83, 0x80, 0x80, 0x83, 0x88, 0xe8, 0xe3, 0xf3, 0xf3, 0xf8, 0xf8, +0x8f, 0x3e, 0x3e, 0x38, 0x83, 0x33, 0x30, 0x30, 0xe0, 0xe3, 0xe8, 0xe8, 0xe8, 0xf8, 0xfe, 0xfe, +0xef, 0xee, 0x88, 0x88, 0x83, 0x33, 0x80, 0x80, 0x80, 0x83, 0xe3, 0xe8, 0xe8, 0xfe, 0xfe, 0xf8, +0x8f, 0xee, 0xe8, 0x38, 0x38, 0x33, 0x33, 0x33, 0x30, 0x33, 0x83, 0x83, 0xe3, 0xee, 0xf3, 0xf8, +0x8f, 0xee, 0x8e, 0x88, 0x88, 0x38, 0x33, 0x03, 0x03, 0x33, 0x33, 0x83, 0x88, 0xe8, 0xf3, 0xf8, +0x3f, 0xee, 0x8e, 0x8e, 0x38, 0x38, 0x08, 0x08, 0x08, 0x03, 0x03, 0x38, 0x88, 0xe8, 0xfe, 0xfe, +0xef, 0xee, 0x8e, 0x8e, 0x3e, 0x3e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3e, 0x8e, 0xee, 0xfe, 0xfe, +0xef, 0xef, 0xef, 0x8e, 0x8e, 0x3e, 0x3e, 0x0e, 0x08, 0x08, 0x3e, 0x3e, 0x8e, 0xee, 0xfe, 0xff, +0xff, 0xef, 0xef, 0xef, 0x8e, 0xee, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x8e, 0xef, 0xff, 0xff, +0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0xef, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +0xee, 0xe1, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0xe6, 0xee, 0xe6, 0x1e, 0x1e, 0x1e, +0xee, 0xe1, 0xee, 0x6e, 0x6e, 0x6c, 0xec, 0xee, 0xee, 0xee, 0xe6, 0xee, 0x16, 0x16, 0x1a, 0x1e, +0xee, 0xe1, 0xee, 0xee, 0xee, 0xec, 0xec, 0xec, 0xee, 0xee, 0x1e, 0x1e, 0x16, 0x16, 0x6a, 0x6a, +0xae, 0xee, 0xee, 0xee, 0xe2, 0xee, 0xee, 0xec, 0x1c, 0x1c, 0x1e, 0x1e, 0x1e, 0x66, 0x6a, 0x6a, +0xaf, 0xae, 0xae, 0xae, 0xe2, 0xe2, 0xee, 0x1e, 0x1c, 0x6c, 0x6c, 0x6e, 0x6e, 0x6e, 0x66, 0x6a, +0xaf, 0xaf, 0xae, 0xae, 0xee, 0xee, 0x12, 0x1e, 0x6e, 0x6e, 0x6c, 0xac, 0x6e, 0x6e, 0x6e, 0x6a, +0xaf, 0xaf, 0xaf, 0xef, 0xee, 0x1e, 0x1e, 0x62, 0x62, 0x6e, 0x6e, 0x6c, 0xac, 0xac, 0xae, 0x6a, +0xaf, 0xaf, 0xaf, 0xef, 0x1f, 0x1f, 0x6e, 0x6e, 0x62, 0x62, 0x62, 0x6e, 0x6e, 0x6c, 0x6e, 0x6e, +0xef, 0xaf, 0xaf, 0xef, 0x1f, 0x6f, 0x6f, 0x6e, 0x6e, 0x6e, 0x62, 0x62, 0x6e, 0x6e, 0x6e, 0x6e, +0xef, 0xaf, 0xaf, 0xef, 0x1f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6e, 0x6e, 0x62, 0x62, 0x62, 0x6e, 0x6e, +0xef, 0xaf, 0xaf, 0xef, 0x1f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6e, 0x6e, 0x62, 0x62, 0x62, 0x6e, +0xef, 0xaf, 0xaf, 0xef, 0x1f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6e, 0x6e, 0x6e, 0x62, 0x6e, +0xef, 0xaf, 0xaf, 0xef, 0x1f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6e, 0x6e, 0x6e, 0x6e, +0xef, 0xaf, 0xaf, 0xef, 0x1f, 0x6f, 0x6f, 0x6f, 0xaf, 0xaf, 0xaf, 0xaf, 0xef, 0xef, 0xee, 0xee, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xee, +0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, + +0x71, 0x01, 0x01, 0xe6, 0xe6, 0xb6, 0x0e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x76, 0x76, 0x76, 0xb7, +0x76, 0x76, 0x06, 0xe6, 0xb6, 0xb6, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x76, 0x76, 0x76, 0x76, +0x66, 0x76, 0x76, 0xe6, 0xb6, 0x06, 0x66, 0x6e, 0x6e, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x76, 0x76, +0xe6, 0xe6, 0xe6, 0xe6, 0xb6, 0x66, 0x66, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, +0x66, 0xe6, 0xe6, 0xe6, 0xb6, 0x66, 0x66, 0x6e, 0x6b, 0x6b, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, +0x66, 0x66, 0xe6, 0xb6, 0xbe, 0x6e, 0x6e, 0x6b, 0x6b, 0x66, 0x66, 0x66, 0x66, 0xa6, 0xa6, 0xa6, +0x66, 0x66, 0xee, 0xbe, 0x6e, 0x6e, 0x6b, 0x6b, 0x66, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, +0x66, 0x6e, 0xee, 0xbe, 0xab, 0xab, 0xab, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, +0x66, 0xee, 0xee, 0xbb, 0xab, 0xa6, 0xa6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, +0xe6, 0xee, 0xee, 0xeb, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xea, 0xfa, +0xe6, 0xee, 0xee, 0xeb, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfe, +0xe6, 0xfe, 0xfe, 0xfb, 0xf6, 0xfe, 0xfe, 0xfe, 0xfe, 0xfa, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, +0xf6, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + +0xab, 0xae, 0xa6, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xf6, 0xe6, 0xe6, 0xe6, 0xe6, 0xea, 0xea, 0xfa, +0xab, 0xab, 0xae, 0xa6, 0xa6, 0xa6, 0xe6, 0xe6, 0xf6, 0xf6, 0xe6, 0xe6, 0xea, 0xfa, 0xfa, 0xfa, +0xa6, 0xab, 0xab, 0xae, 0xa6, 0xe6, 0xe6, 0xe6, 0xf6, 0xf6, 0xf6, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, +0xa6, 0xa6, 0xab, 0xab, 0xab, 0xee, 0xe6, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, +0xa6, 0xa6, 0xe6, 0xea, 0xeb, 0xeb, 0xfe, 0xfe, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, +0xea, 0xea, 0xea, 0xea, 0xfa, 0xfb, 0xfb, 0xfb, 0xfe, 0xfa, 0xfa, 0xfa, 0xfa, 0xfe, 0xfe, 0xfe, +0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfb, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, +0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +}; +static PROGMEM prog_uchar sprite_sprpal[] = { + +0xf0, 0x7f, 0x39, 0x67, 0x26, 0x1b, 0x49, 0x66, 0x8c, 0x7d, 0x93, 0x31, 0x8c, 0x31, 0x84, 0x31, +0xa6, 0x68, 0xcc, 0x18, 0xc6, 0x18, 0x84, 0x10, 0x04, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, +}; diff --git a/src/sprite_test/sprite_test.pde b/src/sprite_test/sprite_test.pde index 9768498..111c09e 100644 --- a/src/sprite_test/sprite_test.pde +++ b/src/sprite_test/sprite_test.pde @@ -6,11 +6,22 @@ #define JAWS_OPEN 0 #define JAWS_CLOSED 1 -#define SWIM_SPEED 4 -#define FLOW_SPEED +#define SWIM_SPEED 1 +#define FLOW_SPEED 2 + +#define KEY_UP(x) ((x >> 7) & 0x01) +#define KEY_DOWN(x) ((x >> 6) & 0x01) +#define KEY_LEFT(x) ((x >> 5) & 0x01) +#define KEY_RIGHT(x) ((x >> 4) & 0x01) +#define KEY_C(x) ((x >> 3) & 0x01) +#define KEY_V(x) ((x >> 2) & 0x01) +#define KEY_SPACE(x) ((x >> 1) & 0x01) +#define KEY_ESCAPE(x) ((x >> 0) & 0x01) +static boolean last_space = false; static unsigned int t = 0; static uint16 swimx, swimy; +static int8 swimvx, swimvy; static uint16 narcox, narcoy; static int8 narcovx, narcovy; static uint8 swim_jaws; @@ -103,6 +114,74 @@ static void draw_swim(int x, int y, boolean is_open) { } } +void static old_process_keypress() { + if(SerialUSB.available()) { + inchar = SerialUSB.read(); + while(SerialUSB.available()) { + inchar = SerialUSB.read(); + } + SerialUSB.println(inchar, 16); + switch(inchar) { + case 'w': + swimy -= SWIM_SPEED; + break; + case 's': + swimy += SWIM_SPEED; + break; + case 'a': + swimx -= SWIM_SPEED; + break; + case 'd': + swimx += SWIM_SPEED; + break; + case 'W': + swimy -= SWIM_SPEED; + swim_jaws = 20; + break; + case 'S': + swimy += SWIM_SPEED; + swim_jaws = 20; + break; + case 'A': + swimx -= SWIM_SPEED; + swim_jaws = 20; + break; + case 'D': + swimx += SWIM_SPEED; + swim_jaws = 20; + break; + case ' ': + swim_jaws = 20; + break; + default: + break; + } + } +} + +void static process_keypress() { + if(SerialUSB.available()) { + inchar = SerialUSB.read(); + while(SerialUSB.available()) { + inchar = SerialUSB.read(); + } + SerialUSB.println(inchar, 2); + swimvx = 0; + swimvy = 0; + if (KEY_LEFT(inchar)) { swimvx -= SWIM_SPEED; } + if (KEY_RIGHT(inchar)) { swimvx += SWIM_SPEED; } + if (KEY_UP(inchar)) { swimvy -= SWIM_SPEED; } + if (KEY_DOWN(inchar)) { swimvy += SWIM_SPEED; } + if (KEY_SPACE(inchar) and !last_space) { swim_jaws = 20; } + if (!KEY_SPACE(inchar)) { swim_jaws = 0; } + last_space = KEY_SPACE(inchar); + if (KEY_ESCAPE(inchar)) { + sunk_ship = false; + narcoy = 150; + } + } +} + void setup() { pinMode(BOARD_BUTTON_PIN, INPUT); @@ -161,49 +240,9 @@ void loop() swim_jaws -= 1; } - if(SerialUSB.available()) { - inchar = SerialUSB.read(); - while(SerialUSB.available()) { - inchar = SerialUSB.read(); - } - SerialUSB.println(inchar, 16); - switch(inchar) { - case 'w': - swimy -= SWIM_SPEED; - break; - case 's': - swimy += SWIM_SPEED; - break; - case 'a': - swimx -= SWIM_SPEED; - break; - case 'd': - swimx += SWIM_SPEED; - break; - case 'W': - swimy -= SWIM_SPEED; - swim_jaws = 20; - break; - case 'S': - swimy += SWIM_SPEED; - swim_jaws = 20; - break; - case 'A': - swimx -= SWIM_SPEED; - swim_jaws = 20; - break; - case 'D': - swimx += SWIM_SPEED; - swim_jaws = 20; - break; - case ' ': - swim_jaws = 20; - break; - default: - break; - } - } + process_keypress(); +/* if(touching_swimmer != 255) { SerialUSB.print("Enemy: "); SerialUSB.println(enemy_id, 10); @@ -221,12 +260,12 @@ void loop() SerialUSB.print("Touching enemy: "); SerialUSB.println(touching_enemy, 10); } - +*/ if (swim_jaws > 15 and (touching_swimmer == enemy_id || touching_enemy == swimmer_id)) { sunk_ship = true; } - swimx = (swimx % 400); - swimy = (swimy % 300); + swimx = ((swimx + swimvx) % 400); + swimy = ((swimy + swimvy) % 300); if(!sunk_ship) { if(narcoy > 170) { narcovy = -1; } diff --git a/wxkeygrabber.py b/wxkeygrabber.py new file mode 100755 index 0000000..c27c486 --- /dev/null +++ b/wxkeygrabber.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +import wx +import serial + +class MyForm(wx.Frame): + + def __init__(self): + wx.Frame.__init__(self, None, wx.ID_ANY, "Keygrabber") + + self.serial = serial.Serial('/dev/ttyACM0', 19200, timeout=1) + self.state = { + 'up': False, + 'down': False, + 'left': False, + 'right': False, + 'space': False, + 'c': False, + 'v': False, + 'escape': False, + } + + # Add a panel so it looks the correct on all platforms + panel = wx.Panel(self, wx.ID_ANY) + panel.Bind(wx.EVT_KEY_DOWN, self.onKeyDown) + panel.Bind(wx.EVT_KEY_UP, self.onKeyUp) + self.send_update() + + def onKeyDown(self, event): + keycode = event.GetKeyCode() + print keycode + if keycode == wx.WXK_RIGHT: + self.state['right'] = True + elif keycode == wx.WXK_LEFT: + self.state['left'] = True + elif keycode == wx.WXK_UP: + self.state['up'] = True + elif keycode == wx.WXK_DOWN: + self.state['down'] = True + elif keycode == wx.WXK_SPACE: + self.state['space'] = True + elif keycode == wx.WXK_ESCAPE: + self.state['escape'] = True + elif keycode == 67: # 'c' + self.state['c'] = True + elif keycode == 86: # 'v' + self.state['v'] = True + self.send_update() + event.Skip() + + def onKeyUp(self, event): + keycode = event.GetKeyCode() + print keycode + if keycode == wx.WXK_RIGHT: + self.state['right'] = False + elif keycode == wx.WXK_LEFT: + self.state['left'] = False + elif keycode == wx.WXK_UP: + self.state['up'] = False + elif keycode == wx.WXK_DOWN: + self.state['down'] = False + elif keycode == wx.WXK_SPACE: + self.state['space'] = False + elif keycode == wx.WXK_ESCAPE: + self.state['escape'] = False + elif keycode == 67: # 'c' + self.state['c'] = False + elif keycode == 86: # 'v' + self.state['v'] = False + self.send_update() + event.Skip() + + def send_update(self): + #print self.state + state_str = ''.join(map(str, map(int, [ + self.state['up'], + self.state['down'], + self.state['left'], + self.state['right'], + self.state['c'], + self.state['v'], + self.state['space'], + self.state['escape'], ]))) + print state_str + state_byte = chr(int(state_str, 2)) + self.serial.write(state_byte) + +# Run the program +if __name__ == "__main__": + app = wx.PySimpleApp() + frame = MyForm() + frame.Show() + app.MainLoop() -- cgit v1.2.3