summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2015-06-12 16:34:35 +1000
committerDamien Zammit <damien@zamaudio.com>2015-06-12 16:34:35 +1000
commit49dd5f4510083f2da37d5f5745a836de3134a914 (patch)
treeedc3337dda29227dba67a30a181226fb20d572a9
parentf6b6c58a8181488f135c66226d1f9b991de52e3d (diff)
Added insane toggle for high quality processing
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r--Makefile3
-rw-r--r--plugins/ZamTube/ZamTubeArtwork.cpp186
-rw-r--r--plugins/ZamTube/ZamTubeArtwork.hpp10
-rw-r--r--plugins/ZamTube/ZamTubePlugin.cpp22
-rw-r--r--plugins/ZamTube/ZamTubePlugin.hpp5
-rw-r--r--plugins/ZamTube/ZamTubeUI.cpp23
-rw-r--r--plugins/ZamTube/ZamTubeUI.hpp8
-rw-r--r--plugins/ZamTube/artwork/insaneoff.pngbin0 -> 1525 bytes
-rw-r--r--plugins/ZamTube/artwork/insaneon.pngbin0 -> 1299 bytes
-rw-r--r--plugins/ZamTube/artwork/zamtube.svg85
-rw-r--r--plugins/ZamTube/wdf.cpp133
-rw-r--r--plugins/ZamTube/wdf.h2
12 files changed, 455 insertions, 22 deletions
diff --git a/Makefile b/Makefile
index b48b037..5b560a7 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,8 @@ BINDIR ?= bin
NAME = zam-plugins
VERSION = $(shell cat .version)
-PLUGINS=ZamComp ZamCompX2 ZaMultiComp ZamTube ZamEQ2 ZamAutoSat ZamGEQ31 ZamGEQ31X2 ZaMultiCompX2 ZamPiano ZamSFZ ZamChild670
+PLUGINS=ZamComp ZamCompX2 ZaMultiComp ZamTube ZamEQ2 ZamAutoSat ZamGEQ31 ZamGEQ31X2 ZaMultiCompX2
+#ZamPiano ZamSFZ ZamChild670
all: libs $(PLUGINS) gen
diff --git a/plugins/ZamTube/ZamTubeArtwork.cpp b/plugins/ZamTube/ZamTubeArtwork.cpp
index c799d21..2a623d5 100644
--- a/plugins/ZamTube/ZamTubeArtwork.cpp
+++ b/plugins/ZamTube/ZamTubeArtwork.cpp
@@ -3,6 +3,182 @@
#include "ZamTubeArtwork.hpp"
static const unsigned char temp1[] = {
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 15, 0, 0, 0, 63, 0, 0, 0, 107, 0, 0, 0, 151, 0, 0, 0, 195, 0, 0, 0, 239, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 238, 0, 0, 0, 194, 0, 0, 0, 150,
+ 0, 0, 0, 107, 0, 0, 0, 63, 0, 0, 0, 15, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 8, 0, 0, 0, 122, 0, 0, 1, 244, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 12, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255,
+ 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255,
+ 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 39, 255, 0, 0, 38, 255, 0, 0, 11, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 1, 244, 0, 0, 0, 122, 0, 0, 0, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 85, 0, 0, 0, 223, 0, 0, 0, 255, 0, 0, 7, 254, 0, 0, 95, 255, 0, 0, 140, 255, 0, 0, 182, 255, 0, 0, 224, 255, 0, 0, 254, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 254, 255, 0, 0, 223, 255,
+ 0, 0, 180, 255, 0, 0, 138, 255, 0, 0, 90, 255, 0, 0, 5, 254, 0, 0, 0, 255, 0, 0, 0, 223, 0, 0, 0, 85, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 16, 0, 0, 0, 193, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 87, 255, 0, 0, 225, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 220, 255, 0, 0, 82, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 193, 0, 0, 0, 15, 255, 255, 255, 0,
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 2, 0, 0, 0, 181, 0, 0, 0, 255, 0, 0, 50, 255, 0, 0, 196, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 193, 255, 0, 0, 49, 255, 0, 0, 0, 255, 0, 0, 0, 179, 0, 0, 0, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 131, 0, 0, 0, 255, 0, 0, 44, 255, 0, 0, 243, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 243, 255, 0, 0, 43, 255, 0, 0, 0, 255,
+ 0, 0, 0, 126, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 80, 0, 0, 0, 254, 0, 0, 15, 254, 0, 0, 219, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 21, 21, 255, 255, 40, 40, 255, 255, 18, 18, 255, 255,
+ 15, 15, 255, 255, 40, 40, 255, 255, 34, 34, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 30, 30, 255, 255, 39, 39, 255, 255, 1, 1, 255, 255, 0, 0, 255, 255, 25, 25, 255, 255, 40, 40, 255, 255, 40, 40, 255, 255, 40, 40, 255, 255, 40, 40, 255, 255, 10, 10, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 11, 11, 255, 255, 40, 40, 255, 255,
+ 40, 40, 255, 255, 30, 30, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 19, 19, 255, 255, 40, 40, 255, 255, 30, 30, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 34, 34, 255, 255, 38, 38, 255, 255, 1, 1, 255, 255, 39, 39, 255, 255, 40, 40, 255, 255, 40, 40, 255, 255, 40, 40, 255, 255, 40, 40, 255, 255, 40, 40, 255, 255, 5, 5, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 219, 255, 0, 0, 15, 254, 0, 0, 0, 253, 0, 0, 0, 74, 255, 255, 255, 0, 0, 0, 0, 7, 0, 0, 1, 238, 0, 0, 2, 255, 0, 0, 183, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 152, 152, 255, 255, 255, 255, 255, 255, 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 253, 253, 255, 255, 44, 44, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 200, 200, 255, 255, 255, 255, 255, 255, 24, 24, 255, 255, 66, 66, 255, 255,
+ 245, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 200, 200, 255, 255, 15, 15, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 114, 114, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 237, 237, 255, 255, 3, 3, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 127, 127, 255, 255, 255, 255, 255, 255, 246, 246, 255, 255, 26, 26, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 224, 224, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 48, 48, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 180, 255, 0, 0, 2, 255, 0, 0, 1, 236, 0, 0, 0, 7, 0, 0, 0, 86, 0, 0, 0, 255, 0, 0, 94, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 152, 152, 255, 255, 255, 255, 255, 255,
+ 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 177, 177, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 200, 200, 255, 255, 255, 255, 255, 255, 24, 24, 255, 255, 227, 227, 255, 255, 255, 255, 255, 255, 167, 167, 255, 255, 112, 112, 255, 255, 113, 113, 255, 255, 232, 232, 255, 255, 255, 255, 255, 255, 118, 118, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 186, 186, 255, 255,
+ 255, 255, 255, 255, 199, 199, 255, 255, 255, 255, 255, 255, 58, 58, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 126, 126, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 153, 153, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 224, 224, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 143, 143, 255, 255, 136, 136, 255, 255, 136, 136, 255, 255, 136, 136, 255, 255,
+ 23, 23, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 87, 255, 0, 0, 0, 255, 0, 0, 0, 82, 0, 0, 0, 172, 0, 0, 0, 255, 0, 0, 188, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 152, 152, 255, 255, 255, 255, 255, 255, 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 58, 58, 255, 255, 0, 0, 255, 255, 200, 200, 255, 255, 255, 255, 255, 255, 24, 24, 255, 255,
+ 232, 232, 255, 255, 255, 255, 255, 255, 64, 64, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 113, 113, 255, 255, 168, 168, 255, 255, 77, 77, 255, 255, 0, 0, 255, 255, 9, 9, 255, 255, 247, 247, 255, 255, 219, 219, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 132, 132, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 125, 125, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 251, 255, 255,
+ 38, 38, 255, 255, 0, 0, 255, 255, 224, 224, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 186, 255, 0, 0, 0, 255, 0, 0, 0, 169, 0, 0, 0, 211, 0, 0, 0, 255, 0, 0, 243, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 152, 152, 255, 255,
+ 255, 255, 255, 255, 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 190, 190, 255, 255, 255, 255, 255, 255, 194, 194, 255, 255, 0, 0, 255, 255, 200, 200, 255, 255, 255, 255, 255, 255, 24, 24, 255, 255, 232, 232, 255, 255, 255, 255, 255, 255, 144, 144, 255, 255, 96, 96, 255, 255, 96, 96, 255, 255, 96, 96, 255, 255, 31, 31, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 73, 73, 255, 255,
+ 255, 255, 255, 255, 154, 154, 255, 255, 38, 38, 255, 255, 255, 255, 255, 255, 206, 206, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 124, 124, 255, 255, 255, 255, 255, 255, 189, 189, 255, 255, 255, 255, 255, 255, 170, 170, 255, 255, 0, 0, 255, 255, 224, 224, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 91, 91, 255, 255, 80, 80, 255, 255, 80, 80, 255, 255,
+ 63, 63, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 243, 255, 0, 0, 0, 255, 0, 0, 0, 208, 0, 0, 0, 243, 0, 0, 22, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 152, 152, 255, 255, 255, 255, 255, 255, 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 136, 136, 255, 255, 171, 171, 255, 255, 255, 255, 255, 255, 75, 75, 255, 255, 200, 200, 255, 255, 255, 255, 255, 255,
+ 24, 24, 255, 255, 160, 160, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 229, 255, 255, 41, 41, 255, 255, 0, 0, 255, 255, 144, 144, 255, 255, 255, 255, 255, 255, 90, 90, 255, 255, 0, 0, 255, 255, 228, 228, 255, 255, 254, 254, 255, 255, 25, 25, 255, 255, 0, 0, 255, 255, 124, 124, 255, 255, 255, 255, 255, 255, 112, 112, 255, 255,
+ 195, 195, 255, 255, 254, 254, 255, 255, 52, 52, 255, 255, 224, 224, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 208, 208, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 22, 255, 0, 0, 0, 237, 0, 0, 0, 242, 0, 0, 22, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 152, 152, 255, 255, 255, 255, 255, 255, 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 136, 136, 255, 255, 38, 38, 255, 255, 251, 251, 255, 255, 209, 209, 255, 255, 202, 202, 255, 255, 255, 255, 255, 255, 24, 24, 255, 255, 3, 3, 255, 255, 96, 96, 255, 255, 104, 104, 255, 255, 104, 104, 255, 255, 104, 104, 255, 255, 221, 221, 255, 255, 255, 255, 255, 255, 120, 120, 255, 255, 0, 0, 255, 255,
+ 216, 216, 255, 255, 255, 255, 255, 255, 141, 141, 255, 255, 120, 120, 255, 255, 214, 214, 255, 255, 255, 255, 255, 255, 98, 98, 255, 255, 0, 0, 255, 255, 123, 123, 255, 255, 255, 255, 255, 255, 112, 112, 255, 255, 58, 58, 255, 255, 255, 255, 255, 255, 187, 187, 255, 255, 224, 224, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 98, 98, 255, 255, 88, 88, 255, 255,
+ 88, 88, 255, 255, 69, 69, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 22, 255, 0, 0, 0, 236, 0, 0, 0, 211, 0, 0, 0, 255, 0, 0, 243, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 152, 152, 255, 255, 255, 255, 255, 255, 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 136, 136, 255, 255, 0, 0, 255, 255, 153, 153, 255, 255, 255, 255, 255, 255, 254, 254, 255, 255,
+ 255, 255, 255, 255, 24, 24, 255, 255, 138, 138, 255, 255, 144, 144, 255, 255, 25, 25, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 176, 176, 255, 255, 255, 255, 255, 255, 120, 120, 255, 255, 31, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 172, 172, 255, 255, 0, 0, 255, 255, 122, 122, 255, 255, 255, 255, 255, 255,
+ 112, 112, 255, 255, 0, 0, 255, 255, 177, 177, 255, 255, 255, 255, 255, 255, 254, 254, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 243, 255, 0, 0, 0, 255, 0, 0, 0, 207, 0, 0, 0, 171, 0, 0, 0, 255, 0, 0, 188, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 152, 152, 255, 255, 255, 255, 255, 255, 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 136, 136, 255, 255, 0, 0, 255, 255, 26, 26, 255, 255, 246, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 24, 24, 255, 255, 247, 247, 255, 255, 255, 255, 255, 255, 127, 127, 255, 255, 72, 72, 255, 255, 72, 72, 255, 255, 217, 217, 255, 255, 255, 255, 255, 255, 119, 119, 255, 255,
+ 103, 103, 255, 255, 255, 255, 255, 255, 165, 165, 255, 255, 56, 56, 255, 255, 56, 56, 255, 255, 81, 81, 255, 255, 255, 255, 255, 255, 241, 241, 255, 255, 5, 5, 255, 255, 121, 121, 255, 255, 255, 255, 255, 255, 112, 112, 255, 255, 0, 0, 255, 255, 43, 43, 255, 255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 98, 98, 255, 255,
+ 88, 88, 255, 255, 88, 88, 255, 255, 88, 88, 255, 255, 20, 20, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 186, 255, 0, 0, 0, 255, 0, 0, 0, 167, 0, 0, 0, 83, 0, 0, 0, 255, 0, 0, 95, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 152, 152, 255, 255, 255, 255, 255, 255, 128, 128, 255, 255, 104, 104, 255, 255, 255, 255, 255, 255, 136, 136, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 135, 135, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 24, 24, 255, 255, 112, 112, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 215, 255, 255, 24, 24, 255, 255, 174, 174, 255, 255, 255, 255, 255, 255, 74, 74, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 217, 217, 255, 255, 255, 255, 255, 255, 64, 64, 255, 255, 120, 120, 255, 255,
+ 255, 255, 255, 255, 112, 112, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 159, 159, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 64, 64, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 88, 255, 0, 0, 0, 255, 0, 0, 0, 79, 0, 0, 0, 6, 0, 0, 1, 236, 0, 0, 1, 255, 0, 0, 179, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 45, 45, 255, 255, 80, 80, 255, 255, 38, 38, 255, 255, 28, 28, 255, 255, 80, 80, 255, 255, 40, 40, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 14, 14, 255, 255, 80, 80, 255, 255, 79, 79, 255, 255, 5, 5, 255, 255, 0, 0, 255, 255, 62, 62, 255, 255, 80, 80, 255, 255, 80, 80, 255, 255, 80, 80, 255, 255, 80, 80, 255, 255, 22, 22, 255, 255,
+ 0, 0, 255, 255, 66, 66, 255, 255, 80, 80, 255, 255, 8, 8, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 51, 51, 255, 255, 80, 80, 255, 255, 34, 34, 255, 255, 34, 34, 255, 255, 80, 80, 255, 255, 33, 33, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 21, 21, 255, 255, 80, 80, 255, 255, 78, 78, 255, 255, 3, 3, 255, 255, 79, 79, 255, 255, 80, 80, 255, 255,
+ 80, 80, 255, 255, 80, 80, 255, 255, 80, 80, 255, 255, 80, 80, 255, 255, 18, 18, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 177, 255, 0, 0, 1, 255, 0, 0, 1, 234, 0, 0, 0, 6, 255, 255, 255, 0, 0, 0, 0, 74,
+ 0, 0, 0, 253, 0, 0, 14, 254, 0, 0, 218, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 217, 255, 0, 0, 13, 254, 0, 0, 0, 252, 0, 0, 0, 68, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 124, 0, 0, 0, 255, 0, 0, 42, 255, 0, 0, 243, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 243, 255, 0, 0, 42, 255, 0, 0, 0, 255, 0, 0, 0, 120, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
+ 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 175, 0, 0, 0, 255, 0, 0, 51, 255, 0, 0, 196, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 197, 255, 0, 0, 51, 255, 0, 0, 0, 255, 0, 0, 0, 173, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 13, 0, 0, 0, 185, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 85, 255, 0, 0, 222, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 223, 255, 0, 0, 87, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 185, 0, 0, 0, 13, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 77, 0, 0, 0, 218, 0, 0, 0, 255, 0, 0, 6, 254, 0, 0, 84, 255, 0, 0, 130, 255, 0, 0, 175, 255, 0, 0, 219, 255, 0, 0, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255,
+ 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 253, 255, 0, 0, 220, 255, 0, 0, 177, 255,
+ 0, 0, 135, 255, 0, 0, 89, 255, 0, 0, 7, 254, 0, 0, 0, 255, 0, 0, 0, 218, 0, 0, 0, 77, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 5, 0, 0, 0, 114, 0, 0, 1, 240, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 10, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255,
+ 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255,
+ 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 31, 255, 0, 0, 10, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 1, 240, 0, 0, 0, 114, 0, 0, 0, 5, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 14, 0, 0, 0, 62, 0, 0, 0, 104, 0, 0, 0, 147, 0, 0, 0, 189, 0, 0, 0, 232, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 231, 0, 0, 0, 188,
+ 0, 0, 0, 146, 0, 0, 0, 104, 0, 0, 0, 62, 0, 0, 0, 14, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,};
+const char* ZamTubeArtwork::insaneoffData = (const char*)temp1;
+
+static const unsigned char temp2[] = {
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 15, 0, 0, 0, 63, 0, 0, 0, 107, 0, 0, 0, 151, 0, 0, 0, 195, 0, 0, 0, 239, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 238, 0, 0, 0, 194, 0, 0, 0, 150,
+ 0, 0, 0, 107, 0, 0, 0, 63, 0, 0, 0, 15, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 8, 0, 0, 0, 122, 0, 1, 0, 244, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 12, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255,
+ 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255,
+ 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 38, 0, 255, 0, 11, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 1, 0, 244, 0, 0, 0, 122, 0, 0, 0, 8, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 85, 0, 0, 0, 223, 0, 0, 0, 255, 0, 7, 0, 254, 0, 95, 0, 255, 0, 140, 0, 255, 0, 182, 0, 255, 0, 224, 0, 255, 0, 254, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 254, 0, 255, 0, 223, 0, 255,
+ 0, 180, 0, 255, 0, 138, 0, 255, 0, 90, 0, 255, 0, 5, 0, 254, 0, 0, 0, 255, 0, 0, 0, 223, 0, 0, 0, 85, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 16, 0, 0, 0, 193, 0, 0, 0, 255, 0, 0, 0, 255, 0, 87, 0, 255, 0, 225, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 220, 0, 255, 0, 82, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 193, 0, 0, 0, 15, 255, 255, 255, 0,
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 2, 0, 0, 0, 181, 0, 0, 0, 255, 0, 50, 0, 255, 0, 196, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 193, 0, 255, 0, 49, 0, 255, 0, 0, 0, 255, 0, 0, 0, 179, 0, 0, 0, 1, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 131, 0, 0, 0, 255, 0, 44, 0, 255, 0, 243, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 243, 0, 255, 0, 43, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 126, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 80, 0, 0, 0, 254, 0, 15, 0, 254, 0, 219, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 219, 0, 255, 0, 15, 0, 254, 0, 0, 0, 253, 0, 0, 0, 74, 255, 255, 255, 0, 0, 0, 0, 7, 0, 1, 0, 238, 0, 2, 0, 255, 0, 183, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 248, 0, 255, 0, 72, 0, 255, 0, 72, 0, 255, 0, 248, 0, 255, 0, 98, 0, 255, 0, 71, 0, 255, 0, 159, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 214, 0, 255, 0, 71, 0, 255, 0, 140, 0, 255, 0, 255, 0, 255, 0, 183, 0, 255, 0, 71, 0, 255,
+ 0, 71, 0, 255, 0, 71, 0, 255, 0, 71, 0, 255, 0, 82, 0, 255, 0, 230, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 100, 0, 255, 0, 71, 0, 255, 0, 71, 0, 255, 0, 180, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 82, 0, 255, 0, 71, 0, 255, 0, 176, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 198, 0, 255,
+ 0, 71, 0, 255, 0, 156, 0, 255, 0, 160, 0, 255, 0, 71, 0, 255, 0, 71, 0, 255, 0, 71, 0, 255, 0, 71, 0, 255, 0, 71, 0, 255, 0, 121, 0, 255, 0, 243, 0, 255, 0, 72, 0, 255, 0, 72, 0, 255, 0, 234, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 180, 0, 255, 0, 2, 0, 255, 0, 1, 0, 236, 0, 0, 0, 7, 0, 0, 0, 86, 0, 0, 0, 255, 0, 94, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 244, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 243, 0, 255,
+ 0, 36, 0, 255, 0, 0, 0, 255, 0, 19, 0, 255, 0, 240, 0, 255, 0, 255, 0, 255, 0, 196, 0, 255, 0, 0, 0, 255, 0, 91, 0, 255, 0, 201, 0, 255, 0, 7, 0, 255, 0, 0, 0, 255, 0, 27, 0, 255, 0, 31, 0, 255, 0, 15, 0, 255, 0, 0, 0, 255, 0, 37, 0, 255, 0, 252, 0, 255, 0, 255, 0, 255, 0, 233, 0, 255, 0, 1, 0, 255, 0, 15, 0, 255,
+ 0, 0, 0, 255, 0, 81, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 13, 0, 255, 0, 0, 0, 255, 0, 33, 0, 255, 0, 249, 0, 255, 0, 255, 0, 255, 0, 173, 0, 255, 0, 0, 0, 255, 0, 114, 0, 255, 0, 120, 0, 255, 0, 0, 0, 255, 0, 3, 0, 255, 0, 7, 0, 255, 0, 7, 0, 255, 0, 7, 0, 255, 0, 73, 0, 255, 0, 234, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 221, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 87, 0, 255, 0, 0, 0, 255, 0, 0, 0, 82, 0, 0, 0, 172, 0, 0, 0, 255, 0, 188, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 244, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 243, 0, 255, 0, 36, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 121, 0, 255, 0, 255, 0, 255, 0, 196, 0, 255, 0, 0, 0, 255, 0, 91, 0, 255, 0, 159, 0, 255, 0, 0, 0, 255,
+ 0, 48, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 210, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 249, 0, 255, 0, 255, 0, 255, 0, 163, 0, 255, 0, 0, 0, 255, 0, 118, 0, 255, 0, 10, 0, 255, 0, 10, 0, 255, 0, 246, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 13, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 144, 0, 255, 0, 255, 0, 255,
+ 0, 173, 0, 255, 0, 0, 0, 255, 0, 114, 0, 255, 0, 120, 0, 255, 0, 0, 0, 255, 0, 103, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 234, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 221, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 186, 0, 255, 0, 0, 0, 255, 0, 0, 0, 169, 0, 0, 0, 211, 0, 0, 0, 255, 0, 243, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 244, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 243, 0, 255, 0, 36, 0, 255, 0, 0, 0, 255, 0, 20, 0, 255, 0, 10, 0, 255, 0, 229, 0, 255, 0, 196, 0, 255, 0, 0, 0, 255, 0, 91, 0, 255, 0, 159, 0, 255, 0, 0, 0, 255, 0, 52, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 254, 0, 255, 0, 231, 0, 255, 0, 233, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 93, 0, 255, 0, 0, 0, 255,
+ 0, 188, 0, 255, 0, 69, 0, 255, 0, 0, 0, 255, 0, 184, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 13, 0, 255, 0, 1, 0, 255, 0, 19, 0, 255, 0, 20, 0, 255, 0, 242, 0, 255, 0, 173, 0, 255, 0, 0, 0, 255, 0, 114, 0, 255, 0, 120, 0, 255, 0, 0, 0, 255, 0, 103, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 234, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 221, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 243, 0, 255, 0, 0, 0, 255, 0, 0, 0, 208, 0, 0, 0, 243, 0, 22, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 244, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 243, 0, 255, 0, 36, 0, 255, 0, 0, 0, 255, 0, 144, 0, 255, 0, 0, 0, 255, 0, 102, 0, 255, 0, 196, 0, 255, 0, 0, 0, 255, 0, 91, 0, 255, 0, 171, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 15, 0, 255, 0, 15, 0, 255, 0, 15, 0, 255, 0, 30, 0, 255, 0, 201, 0, 255, 0, 255, 0, 255, 0, 254, 0, 255, 0, 23, 0, 255, 0, 6, 0, 255, 0, 246, 0, 255, 0, 133, 0, 255, 0, 0, 0, 255, 0, 113, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 13, 0, 255, 0, 2, 0, 255, 0, 142, 0, 255, 0, 0, 0, 255,
+ 0, 125, 0, 255, 0, 173, 0, 255, 0, 0, 0, 255, 0, 114, 0, 255, 0, 120, 0, 255, 0, 0, 0, 255, 0, 12, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 180, 0, 255, 0, 234, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 221, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 22, 0, 255, 0, 0, 0, 237, 0, 0, 0, 242, 0, 22, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 244, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 243, 0, 255, 0, 36, 0, 255, 0, 0, 0, 255, 0, 233, 0, 255, 0, 47, 0, 255, 0, 4, 0, 255, 0, 157, 0, 255, 0, 0, 0, 255, 0, 91, 0, 255, 0, 255, 0, 255, 0, 121, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 39, 0, 255, 0, 25, 0, 255, 0, 0, 0, 255, 0, 11, 0, 255, 0, 251, 0, 255, 0, 207, 0, 255, 0, 0, 0, 255,
+ 0, 58, 0, 255, 0, 247, 0, 255, 0, 191, 0, 255, 0, 0, 0, 255, 0, 43, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 13, 0, 255, 0, 2, 0, 255, 0, 248, 0, 255, 0, 30, 0, 255, 0, 11, 0, 255, 0, 149, 0, 255, 0, 0, 0, 255, 0, 114, 0, 255, 0, 120, 0, 255, 0, 0, 0, 255, 0, 22, 0, 255, 0, 55, 0, 255, 0, 55, 0, 255, 0, 55, 0, 255,
+ 0, 189, 0, 255, 0, 234, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 221, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 22, 0, 255, 0, 0, 0, 236, 0, 0, 0, 211, 0, 0, 0, 255, 0, 243, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 244, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 243, 0, 255, 0, 36, 0, 255, 0, 0, 0, 255, 0, 235, 0, 255, 0, 183, 0, 255, 0, 0, 0, 255, 0, 28, 0, 255, 0, 0, 0, 255, 0, 91, 0, 255,
+ 0, 243, 0, 255, 0, 223, 0, 255, 0, 235, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 219, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 248, 0, 255, 0, 137, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 228, 0, 255, 0, 255, 0, 255, 0, 13, 0, 255, 0, 2, 0, 255, 0, 255, 0, 255,
+ 0, 160, 0, 255, 0, 0, 0, 255, 0, 28, 0, 255, 0, 0, 0, 255, 0, 114, 0, 255, 0, 120, 0, 255, 0, 0, 0, 255, 0, 103, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 236, 0, 255, 0, 15, 0, 255, 0, 15, 0, 255, 0, 224, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 243, 0, 255, 0, 0, 0, 255, 0, 0, 0, 207, 0, 0, 0, 171, 0, 0, 0, 255, 0, 188, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 244, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 243, 0, 255, 0, 36, 0, 255, 0, 0, 0, 255, 0, 235, 0, 255, 0, 255, 0, 255, 0, 64, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 91, 0, 255, 0, 143, 0, 255, 0, 0, 0, 255, 0, 64, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 215, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 248, 0, 255, 0, 66, 0, 255,
+ 0, 0, 0, 255, 0, 76, 0, 255, 0, 87, 0, 255, 0, 87, 0, 255, 0, 30, 0, 255, 0, 0, 0, 255, 0, 157, 0, 255, 0, 255, 0, 255, 0, 13, 0, 255, 0, 2, 0, 255, 0, 255, 0, 255, 0, 253, 0, 255, 0, 43, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 114, 0, 255, 0, 120, 0, 255, 0, 0, 0, 255, 0, 103, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 254, 0, 255, 0, 231, 0, 255, 0, 231, 0, 255, 0, 253, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 186, 0, 255, 0, 0, 0, 255, 0, 0, 0, 167, 0, 0, 0, 83, 0, 0, 0, 255, 0, 95, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 244, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 243, 0, 255, 0, 36, 0, 255, 0, 0, 0, 255, 0, 235, 0, 255, 0, 255, 0, 255, 0, 200, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 91, 0, 255, 0, 185, 0, 255, 0, 2, 0, 255, 0, 0, 0, 255, 0, 37, 0, 255, 0, 39, 0, 255, 0, 22, 0, 255, 0, 0, 0, 255, 0, 42, 0, 255, 0, 242, 0, 255, 0, 6, 0, 255, 0, 16, 0, 255, 0, 252, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 140, 0, 255, 0, 0, 0, 255, 0, 87, 0, 255, 0, 255, 0, 255, 0, 13, 0, 255, 0, 2, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 178, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 114, 0, 255, 0, 120, 0, 255, 0, 0, 0, 255, 0, 9, 0, 255, 0, 23, 0, 255, 0, 23, 0, 255, 0, 23, 0, 255, 0, 69, 0, 255, 0, 234, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 221, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 88, 0, 255, 0, 0, 0, 255, 0, 0, 0, 79, 0, 0, 0, 6, 0, 1, 0, 236, 0, 1, 0, 255, 0, 179, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 248, 0, 255, 0, 64, 0, 255, 0, 64, 0, 255, 0, 247, 0, 255, 0, 95, 0, 255, 0, 64, 0, 255, 0, 242, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 112, 0, 255, 0, 63, 0, 255, 0, 134, 0, 255, 0, 255, 0, 255, 0, 165, 0, 255, 0, 63, 0, 255, 0, 63, 0, 255, 0, 63, 0, 255, 0, 63, 0, 255, 0, 79, 0, 255, 0, 233, 0, 255, 0, 209, 0, 255,
+ 0, 63, 0, 255, 0, 119, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 219, 0, 255, 0, 63, 0, 255, 0, 83, 0, 255, 0, 255, 0, 255, 0, 77, 0, 255, 0, 67, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 95, 0, 255, 0, 63, 0, 255, 0, 151, 0, 255, 0, 156, 0, 255, 0, 63, 0, 255, 0, 63, 0, 255, 0, 63, 0, 255,
+ 0, 63, 0, 255, 0, 63, 0, 255, 0, 101, 0, 255, 0, 242, 0, 255, 0, 64, 0, 255, 0, 64, 0, 255, 0, 233, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 177, 0, 255, 0, 1, 0, 255, 0, 1, 0, 234, 0, 0, 0, 6, 255, 255, 255, 0, 0, 0, 0, 74,
+ 0, 0, 0, 253, 0, 14, 0, 254, 0, 218, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 217, 0, 255, 0, 13, 0, 254, 0, 0, 0, 252, 0, 0, 0, 68, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 124, 0, 0, 0, 255, 0, 42, 0, 255, 0, 243, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 243, 0, 255, 0, 42, 0, 255, 0, 0, 0, 255, 0, 0, 0, 120, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
+ 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 175, 0, 0, 0, 255, 0, 51, 0, 255, 0, 196, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 197, 0, 255, 0, 51, 0, 255, 0, 0, 0, 255, 0, 0, 0, 173, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 13, 0, 0, 0, 185, 0, 0, 0, 255, 0, 0, 0, 255, 0, 85, 0, 255, 0, 222, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 223, 0, 255, 0, 87, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 185, 0, 0, 0, 13, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 77, 0, 0, 0, 218, 0, 0, 0, 255, 0, 6, 0, 254, 0, 84, 0, 255, 0, 130, 0, 255, 0, 175, 0, 255, 0, 219, 0, 255, 0, 253, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
+ 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 253, 0, 255, 0, 220, 0, 255, 0, 177, 0, 255,
+ 0, 135, 0, 255, 0, 89, 0, 255, 0, 7, 0, 254, 0, 0, 0, 255, 0, 0, 0, 218, 0, 0, 0, 77, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 5, 0, 0, 0, 114, 0, 1, 0, 240, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 10, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255,
+ 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255,
+ 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 31, 0, 255, 0, 10, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 1, 0, 240, 0, 0, 0, 114, 0, 0, 0, 5, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
+ 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 14, 0, 0, 0, 62, 0, 0, 0, 104, 0, 0, 0, 147, 0, 0, 0, 189, 0, 0, 0, 232, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255,
+ 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 231, 0, 0, 0, 188,
+ 0, 0, 0, 146, 0, 0, 0, 104, 0, 0, 0, 62, 0, 0, 0, 14, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,};
+const char* ZamTubeArtwork::insaneonData = (const char*)temp2;
+
+static const unsigned char temp3[] = {
255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 2, 0, 0, 0, 66, 0, 0, 0, 146, 0, 0, 0, 206, 3, 3, 3, 237, 5, 5, 5, 243, 6, 6, 6, 246,
6, 6, 6, 249, 5, 5, 5, 249, 3, 3, 3, 230, 0, 0, 0, 193, 0, 0, 0, 140, 0, 0, 0, 77, 0, 0, 0, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 38, 0, 0, 0, 175, 5, 5, 5, 247, 14, 14, 14, 255, 20, 20, 20, 255, 25, 25, 25, 255, 29, 29, 29, 255, 31, 31, 31, 255, 33, 33, 33, 255,
@@ -88,9 +264,9 @@ static const unsigned char temp1[] = {
255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 4, 0, 0, 0, 82, 0, 0, 0, 148, 0, 0, 0, 200, 1, 1, 1, 228, 3, 3, 3, 242, 3, 3, 3, 241,
3, 3, 3, 236, 2, 2, 2, 232, 1, 1, 1, 226, 0, 0, 0, 202, 0, 0, 0, 141, 0, 0, 0, 60, 0, 0, 0, 2, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
};
-const char* ZamTubeArtwork::knobData = (const char*)temp1;
+const char* ZamTubeArtwork::knobData = (const char*)temp3;
-static const unsigned char temp2[] = {
+static const unsigned char temp4[] = {
0, 255, 255, 176, 0, 255, 255, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
0, 254, 255, 250, 0, 254, 255, 253, 0, 252, 255, 149, 0, 255, 255, 18, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
0, 253, 255, 251, 0, 129, 255, 255, 0, 210, 255, 247, 0, 251, 255, 244, 0, 255, 255, 110, 0, 255, 255, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
@@ -116,9 +292,9 @@ static const unsigned char temp2[] = {
2, 255, 255, 250, 2, 255, 255, 253, 7, 253, 255, 155, 0, 255, 255, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
0, 255, 255, 179, 0, 255, 255, 44, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0,
};
-const char* ZamTubeArtwork::notchData = (const char*)temp2;
+const char* ZamTubeArtwork::notchData = (const char*)temp4;
-static const unsigned char temp3[] = {
+static const unsigned char temp5[] = {
172, 172, 172, 175, 175, 175, 223, 223, 223, 221, 221, 221, 217, 217, 217, 215, 215, 215, 215, 215, 215, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
@@ -6840,5 +7016,5 @@ static const unsigned char temp3[] = {
217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 219, 219, 219, 222, 222, 222, 193, 193, 193,
};
-const char* ZamTubeArtwork::zamtubeData = (const char*)temp3;
+const char* ZamTubeArtwork::zamtubeData = (const char*)temp5;
diff --git a/plugins/ZamTube/ZamTubeArtwork.hpp b/plugins/ZamTube/ZamTubeArtwork.hpp
index c180c46..1c02d44 100644
--- a/plugins/ZamTube/ZamTubeArtwork.hpp
+++ b/plugins/ZamTube/ZamTubeArtwork.hpp
@@ -5,6 +5,16 @@
namespace ZamTubeArtwork
{
+ extern const char* insaneoffData;
+ const unsigned int insaneoffDataSize = 7104;
+ const unsigned int insaneoffWidth = 74;
+ const unsigned int insaneoffHeight = 24;
+
+ extern const char* insaneonData;
+ const unsigned int insaneonDataSize = 7104;
+ const unsigned int insaneonWidth = 74;
+ const unsigned int insaneonHeight = 24;
+
extern const char* knobData;
const unsigned int knobDataSize = 7056;
const unsigned int knobWidth = 42;
diff --git a/plugins/ZamTube/ZamTubePlugin.cpp b/plugins/ZamTube/ZamTubePlugin.cpp
index b76e637..5280f7b 100644
--- a/plugins/ZamTube/ZamTubePlugin.cpp
+++ b/plugins/ZamTube/ZamTubePlugin.cpp
@@ -96,6 +96,15 @@ void ZamTubePlugin::d_initParameter(uint32_t index, Parameter& parameter)
parameter.ranges.min = -15.0f;
parameter.ranges.max = 15.0f;
break;
+ case paramInsane:
+ parameter.hints = kParameterIsAutomable | kParameterIsBoolean;
+ parameter.name = "Quality Insane";
+ parameter.symbol = "insane";
+ parameter.unit = " ";
+ parameter.ranges.def = 0.0f;
+ parameter.ranges.min = 0.0f;
+ parameter.ranges.max = 1.0f;
+ break;
}
}
@@ -132,6 +141,9 @@ float ZamTubePlugin::d_getParameterValue(uint32_t index) const
case paramGain:
return mastergain;
break;
+ case paramInsane:
+ return insane;
+ break;
default:
return 0.0f;
}
@@ -159,6 +171,9 @@ void ZamTubePlugin::d_setParameterValue(uint32_t index, float value)
case paramGain:
mastergain = value;
break;
+ case paramInsane:
+ insane = value;
+ break;
}
}
@@ -174,6 +189,7 @@ void ZamTubePlugin::d_setProgram(uint32_t index)
treble = 0.0f;
tonestack = 0.0f;
mastergain = 0.0f;
+ insane = 0.0f;
/* Default variable values */
@@ -997,7 +1013,11 @@ void ZamTubePlugin::d_run(const float** inputs, float** outputs, uint32_t frames
vp0 = e;
vp1 = 0.0;
- v.vp = sanitize_denormal(v.zeroffp(vp0,vp1,TOLERANCE));
+ if (insane > 0.5f) {
+ v.vp = sanitize_denormal(v.zeroffp_insane(vp0,vp1,TOLERANCE));
+ } else {
+ v.vp = sanitize_denormal(v.zeroffp(vp0,vp1,TOLERANCE));
+ }
//v.vp = v.secantfp(&vp0,&vp1);
v.vk = sanitize_denormal(v.ffk());
diff --git a/plugins/ZamTube/ZamTubePlugin.hpp b/plugins/ZamTube/ZamTubePlugin.hpp
index bb47d8e..4a23b59 100644
--- a/plugins/ZamTube/ZamTubePlugin.hpp
+++ b/plugins/ZamTube/ZamTubePlugin.hpp
@@ -111,6 +111,7 @@ public:
paramTreble,
paramToneStack,
paramGain,
+ paramInsane,
paramCount
};
@@ -137,7 +138,7 @@ protected:
uint32_t d_getVersion() const noexcept override
{
- return 0x1000;
+ return 0x1500;
}
int64_t d_getUniqueId() const noexcept override
@@ -184,7 +185,7 @@ protected:
// -------------------------------------------------------------------
private:
- float tubedrive,bass,middle,treble,tonestack,mastergain; //parameters
+ float tubedrive,bass,middle,treble,tonestack,mastergain,insane; //parameters
};
// -----------------------------------------------------------------------
diff --git a/plugins/ZamTube/ZamTubeUI.cpp b/plugins/ZamTube/ZamTubeUI.cpp
index 4b0da58..f999e66 100644
--- a/plugins/ZamTube/ZamTubeUI.cpp
+++ b/plugins/ZamTube/ZamTubeUI.cpp
@@ -43,6 +43,11 @@ ZamTubeUI::ZamTubeUI()
// notch slider
Image notchImage(ZamTubeArtwork::notchData, ZamTubeArtwork::notchWidth, ZamTubeArtwork::notchHeight);
+ // toggle
+ Image insaneImageOn(ZamTubeArtwork::insaneonData, ZamTubeArtwork::insaneonWidth, ZamTubeArtwork::insaneonHeight);
+ Image insaneImageOff(ZamTubeArtwork::insaneoffData, ZamTubeArtwork::insaneoffWidth, ZamTubeArtwork::insaneoffHeight);
+
+
// knobs
fKnobTube = new ImageKnob(this, knobImage);
fKnobTube->setAbsolutePos(177, 76);
@@ -95,6 +100,12 @@ ZamTubeUI::ZamTubeUI()
fSliderNotch->setValue(0.f);
fSliderNotch->setCallback(this);
+ Point<int> insaneStart(165,140);
+
+ fToggleInsane = new ImageToggle(this, insaneImageOff, insaneImageOn);
+ fToggleInsane->setAbsolutePos(insaneStart);
+ fToggleInsane->setCallback(this);
+
// set default values
d_programChanged(0);
}
@@ -121,6 +132,9 @@ void ZamTubeUI::d_parameterChanged(uint32_t index, float value)
case ZamTubePlugin::paramGain:
fKnobGain->setValue(value);
break;
+ case ZamTubePlugin::paramInsane:
+ fToggleInsane->setValue(value);
+ break;
}
}
@@ -135,6 +149,7 @@ void ZamTubeUI::d_programChanged(uint32_t index)
fKnobMids->setValue(0.5f);
fKnobTreb->setValue(0.0f);
fKnobGain->setValue(0.0f);
+ fToggleInsane->setValue(0.0f);
fSliderNotch->setValue(0.0f);
}
@@ -198,6 +213,14 @@ void ZamTubeUI::imageSliderValueChanged(ImageSlider*, float value)
d_setParameterValue(ZamTubePlugin::paramToneStack, value);
}
+void ZamTubeUI::imageToggleClicked(ImageToggle* toggle, int)
+{
+ float v = toggle->getValue();
+ if (toggle == fToggleInsane) {
+ d_setParameterValue(ZamTubePlugin::paramInsane, v);
+ }
+}
+
void ZamTubeUI::onDisplay()
{
fImgBackground.draw();
diff --git a/plugins/ZamTube/ZamTubeUI.hpp b/plugins/ZamTube/ZamTubeUI.hpp
index 7eaff89..f76eb4e 100644
--- a/plugins/ZamTube/ZamTubeUI.hpp
+++ b/plugins/ZamTube/ZamTubeUI.hpp
@@ -22,12 +22,14 @@
#include "ImageKnob.hpp"
#include "ImageSlider.hpp"
+#include "ImageToggle.hpp"
#include "ZamTubeArtwork.hpp"
using DGL::Image;
using DGL::ImageKnob;
using DGL::ImageSlider;
+using DGL::ImageToggle;
START_NAMESPACE_DISTRHO
@@ -35,7 +37,8 @@ START_NAMESPACE_DISTRHO
class ZamTubeUI : public UI,
public ImageKnob::Callback,
- public ImageSlider::Callback
+ public ImageSlider::Callback,
+ public ImageToggle::Callback
{
public:
ZamTubeUI();
@@ -57,12 +60,15 @@ protected:
void imageSliderDragStarted(ImageSlider* slider) override;
void imageSliderDragFinished(ImageSlider* slider) override;
void imageSliderValueChanged(ImageSlider* slider, float value) override;
+
+ void imageToggleClicked(ImageToggle* toggle, int value) override;
void onDisplay() override;
private:
Image fImgBackground;
ScopedPointer<ImageSlider> fSliderNotch;
+ ScopedPointer<ImageToggle> fToggleInsane;
ScopedPointer<ImageKnob> fKnobTube, fKnobBass, fKnobMids, fKnobTreb, fKnobGain;
};
diff --git a/plugins/ZamTube/artwork/insaneoff.png b/plugins/ZamTube/artwork/insaneoff.png
new file mode 100644
index 0000000..2875429
--- /dev/null
+++ b/plugins/ZamTube/artwork/insaneoff.png
Binary files differ
diff --git a/plugins/ZamTube/artwork/insaneon.png b/plugins/ZamTube/artwork/insaneon.png
new file mode 100644
index 0000000..0a87d20
--- /dev/null
+++ b/plugins/ZamTube/artwork/insaneon.png
Binary files differ
diff --git a/plugins/ZamTube/artwork/zamtube.svg b/plugins/ZamTube/artwork/zamtube.svg
index 1402647..8983306 100644
--- a/plugins/ZamTube/artwork/zamtube.svg
+++ b/plugins/ZamTube/artwork/zamtube.svg
@@ -15,7 +15,7 @@
height="336"
id="svg2"
version="1.1"
- inkscape:version="0.48.3.1 r9886"
+ inkscape:version="0.48.5 r10040"
sodipodi:docname="zamtube.svg"
inkscape:export-filename="/home/damien/git/audio/zam-plugins-DPF/plugins/ZamTube/artwork/zamtube2.png"
inkscape:export-xdpi="649.28571"
@@ -4646,8 +4646,8 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.28"
- inkscape:cx="292.81224"
- inkscape:cy="195.34795"
+ inkscape:cx="294.37474"
+ inkscape:cy="101.59795"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
@@ -4656,10 +4656,10 @@
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
- inkscape:window-width="1508"
+ inkscape:window-width="1280"
inkscape:window-height="765"
- inkscape:window-x="305"
- inkscape:window-y="104"
+ inkscape:window-x="-72"
+ inkscape:window-y="31"
inkscape:window-maximized="0" />
<metadata
id="metadata7">
@@ -4669,7 +4669,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
+ <dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@@ -4983,7 +4983,7 @@
sodipodi:role="line"
id="tspan2632"
x="-719.17664"
- y="-122.87212"> </tspan></text>
+ y="-122.87212" /></text>
</g>
</g>
<text
@@ -6158,5 +6158,74 @@
d="m 289.26738,1330.859 10.08636,0"
id="path5008"
inkscape:connector-curvature="0" />
+ <rect
+ style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3660"
+ width="77.34375"
+ height="24.024965"
+ x="86.431686"
+ y="1395.2423"
+ ry="14.062501"
+ rx="14.062501"
+ inkscape:export-filename="/home/damien/git/zam-plugins/plugins/ZamTube/artwork/insaneon.png"
+ inkscape:export-xdpi="84.32"
+ inkscape:export-ydpi="84.32" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Amperzand;-inkscape-font-specification:Amperzand"
+ x="100.40044"
+ y="1412.286"
+ id="text4430"
+ sodipodi:linespacing="125%"
+ inkscape:export-filename="/home/damien/git/zam-plugins/plugins/ZamTube/artwork/insaneon.png"
+ inkscape:export-xdpi="84.32"
+ inkscape:export-ydpi="84.32"><tspan
+ sodipodi:role="line"
+ id="tspan4432"
+ x="100.40044"
+ y="1412.286"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Allstar4;-inkscape-font-specification:Allstar4">INSANE!</tspan></text>
+ <rect
+ rx="14.062501"
+ ry="14.062501"
+ y="1396.0236"
+ x="179.40044"
+ height="24.024965"
+ width="77.34375"
+ id="rect4434"
+ style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ inkscape:export-filename="/home/damien/git/zam-plugins/plugins/ZamTube/artwork/insaneoff.png"
+ inkscape:export-xdpi="84.32"
+ inkscape:export-ydpi="84.32" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4441"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Allstar4;-inkscape-font-specification:Allstar4"
+ d="m 195.06157,1402.4696 1.98926,0 0.12988,0.1299 0,9.9941 -0.12988,0.1299 -1.98926,0 -0.12988,-0.1299 0,-9.9941 0.12988,-0.1299" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4443"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Allstar4;-inkscape-font-specification:Allstar4"
+ d="m 200.70805,1402.4696 c 0.10938,0 1.28743,2.2171 3.53418,6.6514 l 0.0684,0.068 0.0684,0 0,-0.068 -0.007,-6.5147 0.0752,-0.1367 1.80469,0 0.13672,0.1367 0,9.9805 -0.13672,0.1367 -2.22168,0 c -0.41472,-0.6198 -1.59278,-2.8597 -3.53418,-6.7197 l -0.0684,0 0,6.583 -0.13672,0.1367 -1.73633,0 -0.19824,-0.1572 -0.007,-10.0283 0.0684,-0.068 2.29004,0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4445"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Allstar4;-inkscape-font-specification:Allstar4"
+ d="m 208.89751,1402.4696 5.09277,0 1.3877,1.3877 0,1.5244 -0.12989,0.1299 -2.05078,0 -0.13672,-0.1299 0,-0.7314 -0.45801,-0.458 -2.38574,0 -0.46484,0.3964 0,1.7159 0.33496,0.2666 3.83496,0 c 0.25065,0 0.736,0.442 1.45606,1.3261 l 0,3.3702 -1.45606,1.456 -5.09277,0 -1.45606,-1.456 0,-1.5176 0.12989,-0.1367 2.05078,0 0.13672,0.1367 0,0.7929 0.458,0.4581 2.51563,0 0.39648,-0.4581 0,-1.7226 -0.32812,-0.3281 -4.03321,0 -1.25781,-1.2578 0,-3.3086 1.45606,-1.4561" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4447"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Allstar4;-inkscape-font-specification:Allstar4"
+ d="m 222.09087,1402.4696 c 0.14127,0 1.11197,3.3952 2.91211,10.1856 l -0.0684,0.068 -2.14649,0 c -0.12305,-0.073 -0.35547,-0.834 -0.69726,-2.2832 l -3.32227,0 c -0.30534,1.5221 -0.5127,2.2832 -0.62207,2.2832 l -1.94141,0 -0.13671,-0.1367 2.76855,-10.0488 0.0684,-0.068 3.18555,0 m -1.66114,1.4561 -1.17578,4.7099 2.42676,0 -1.18262,-4.7099 -0.0684,0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4449"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Allstar4;-inkscape-font-specification:Allstar4"
+ d="m 228.4893,1402.4696 c 0.10938,0 1.28743,2.2171 3.53418,6.6514 l 0.0684,0.068 0.0684,0 0,-0.068 -0.007,-6.5147 0.0752,-0.1367 1.80469,0 0.13672,0.1367 0,9.9805 -0.13672,0.1367 -2.22168,0 c -0.41472,-0.6198 -1.59278,-2.8597 -3.53418,-6.7197 l -0.0684,0 0,6.583 -0.13672,0.1367 -1.73633,0 -0.19824,-0.1572 -0.007,-10.0283 0.0684,-0.068 2.29004,0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4451"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Allstar4;-inkscape-font-specification:Allstar4"
+ d="m 235.29106,1402.4696 6.44629,0 0.13672,0.1367 0,1.5244 -0.13672,0.1436 -4.2998,0 0,2.3516 3.88281,0 0.13672,0.1367 0,1.5244 -0.13672,0.1435 -3.88281,0 0,2.4883 4.36816,0 0.13672,0.1436 0,1.5244 -0.13672,0.1367 -6.51465,0 -0.13672,-0.1367 0,-9.9805 0.13672,-0.1367" />
</g>
</svg>
diff --git a/plugins/ZamTube/wdf.cpp b/plugins/ZamTube/wdf.cpp
index 329d128..d2e2f9f 100644
--- a/plugins/ZamTube/wdf.cpp
+++ b/plugins/ZamTube/wdf.cpp
@@ -250,10 +250,11 @@ T Triode::ffp(T VP) {
double A = VP/mu+vg;
return (P.WD+P.PortRes*((g*(coeff[0]+coeff[1]*A+coeff[2]*A*A))+(G.WD-vg)/G.PortRes)-VP);
+}
- printf("%f\n", VP/mu+vg);
- return (P.WD+P.PortRes*((g*_pow(_log(1.0+_exp(c*(VP/mu+vg)))/c,gamma))+(G.WD-vg)/G.PortRes)-VP);
-} // ^
+T Triode::ffp_insane(T VP) {
+ return (P.WD+P.PortRes*((g*pow(log(1.0+exp(c*(VP/mu+vg)))/c,gamma))+(G.WD-vg)/G.PortRes)-VP);
+}
T Triode::fpdash(T VP) {
T a1 = exp(c*(vg+VP/mu));
@@ -402,6 +403,131 @@ T Triode::r8_sign ( T x )
return value;
}
+T Triode::zeroffp_insane ( T a, T b, T t )
+{
+ T c;
+ T d;
+ T e;
+ T fa;
+ T fb;
+ T fc;
+ T m;
+ T macheps;
+ T p;
+ T q;
+ T r;
+ T s;
+ T sa;
+ T sb;
+ T tol;
+//
+// Make local copies of A and B.
+//
+ sa = a;
+ sb = b;
+ fa = ffp_insane ( sa );
+ fb = ffp_insane ( sb );
+
+ c = sa;
+ fc = fa;
+ e = sb - sa;
+ d = e;
+
+ macheps = r8_epsilon;
+
+ for ( ; ; )
+ {
+ if ( abs ( fc ) < abs ( fb ) )
+ {
+ sa = sb;
+ sb = c;
+ c = sa;
+ fa = fb;
+ fb = fc;
+ fc = fa;
+ }
+
+ tol = 2.0 * macheps * abs ( sb ) + t;
+ m = 0.5 * ( c - sb );
+
+ if ( abs ( m ) <= tol || fb == 0.0 )
+ {
+ break;
+ }
+
+ if ( abs ( e ) < tol || abs ( fa ) <= abs ( fb ) )
+ {
+ e = m;
+ d = e;
+ }
+ else
+ {
+ s = fb / fa;
+
+ if ( sa == c )
+ {
+ p = 2.0 * m * s;
+ q = 1.0 - s;
+ }
+ else
+ {
+ q = fa / fc;
+ r = fb / fc;
+ p = s * ( 2.0 * m * q * ( q - r ) - ( sb - sa ) * ( r - 1.0 ) );
+ q = ( q - 1.0 ) * ( r - 1.0 ) * ( s - 1.0 );
+ }
+
+ if ( 0.0 < p )
+ {
+ q = - q;
+ }
+ else
+ {
+ p = - p;
+ }
+
+ s = e;
+ e = d;
+
+ if ( 2.0 * p < 3.0 * m * q - abs ( tol * q ) &&
+ p < abs ( 0.5 * s * q ) )
+ {
+ d = p / q;
+ }
+ else
+ {
+ e = m;
+ d = e;
+ }
+ }
+ sa = sb;
+ fa = fb;
+
+ if ( tol < abs ( d ) )
+ {
+ sb = sb + d;
+ }
+ else if ( 0.0 < m )
+ {
+ sb = sb + tol;
+ }
+ else
+ {
+ sb = sb - tol;
+ }
+
+ fb = ffp ( sb );
+
+ if ( ( 0.0 < fb && 0.0 < fc ) || ( fb <= 0.0 && fc <= 0.0 ) )
+ {
+ c = sa;
+ fc = fa;
+ e = sb - sa;
+ d = e;
+ }
+ }
+ return sb;
+}
T Triode::zeroffp ( T a, T b, T t )
{
@@ -654,4 +780,3 @@ T Triode::zeroffg ( T a, T b, T t )
}
return sb;
}
-
diff --git a/plugins/ZamTube/wdf.h b/plugins/ZamTube/wdf.h
index bcfb5c9..a315f97 100644
--- a/plugins/ZamTube/wdf.h
+++ b/plugins/ZamTube/wdf.h
@@ -78,6 +78,7 @@ public:
T ffg(T VG);
T fgdash(T VG);
T ffp(T VP);
+ T ffp_insane(T VP);
T fpdash(T VP);
T ffk();
T secantfg(T *i1, T *i2);
@@ -93,6 +94,7 @@ public:
T r8_max ( T x, T y );
T r8_sign ( T x );
T zeroffp ( T a, T b, T t );
+ T zeroffp_insane ( T a, T b, T t );
T zeroffg ( T a, T b, T t );
};