shithub: ft²

Download patch

ref: 4778ea265ca3705e312d6928f346c3f2e7986542
parent: 8458e4fecf79c0f754b18641537ff4c984981e51
parent: 92084cd0d35baae2154e9d8ea64dd50cf6152dd4
parent: c76bf4cb46d92930413d34ee8b47dc2d0c2b856c
author: qwx <qwx@sciops.net>
date: Sat Dec 28 22:42:01 EST 2024

sync with upstream, remove pragma once patching

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,9 +39,11 @@
 if(UNIX)
     if(APPLE)
         find_library(COREAUDIO CoreAudio REQUIRED)
+        find_library(COREFOUNDATION CoreFoundation REQUIRED)
         find_library(COREMIDI CoreMIDI REQUIRED)
+        find_library(ICONV iconv REQUIRED)
         target_link_libraries(ft2-clone
-            PRIVATE ${COREAUDIO} ${COREMIDI})
+            PRIVATE ${COREAUDIO} ${COREMIDI} ${COREFOUNDATION} ${ICONV})
         target_compile_definitions(ft2-clone
             PRIVATE __MACOSX_CORE__)
     else()
--- a/HOW-TO-COMPILE.txt
+++ b/HOW-TO-COMPILE.txt
@@ -1,11 +1,10 @@
 ---- Guide on how to compile the FT2 clone for Windows/macOS/Linux ---
+  LINUX NOTE: The program source code is NOT big-endian compatible!
 
-LINUX NOTE: This code is NOT big-endian compatible!
-
 Compiled Windows/macOS binaries are always available at 16-bits.org/ft2.php
 
 
-== COMPILING ON LINUX (little-endian only!) ==
+== COMPILING ON LINUX ==
  1. Install the following packages:
     Ubuntu/Debian and similar: build-essential libsdl2-dev
     Fedora: gcc gcc-c++ alsa-lib-devel SDL2-devel
@@ -25,7 +24,7 @@
                all... I have no idea why, it works really well on Windows/maCOS.
 
 == COMPILING ON WINDOWS 7 SP1 OR NEWER ==
- 1. Download Visual Studio Community 2019 (it's free)
+ 1. Download Visual Studio Community 2019 (it's free) EDIT: Hard to find now!
  2. Start the installer and select the "Desktop development with C++" package
  3. Install and wait for it to finish...
  4. Open "ft2-clone\vs2019_project\ft2-clone.sln"
--- a/LICENSES.txt
+++ b/LICENSES.txt
@@ -9,9 +9,9 @@
 rtmidi:
 src\rtmidi\LICENSE.txt
 
-Graphics, except a few bitmaps: by Magnus H�gdahl
+Graphics, except a few bitmaps: by Magnus H�gdahl
 (CC BY-NC-SA 4.0):
 src\gfxdata\bmp\LICENSE.txt
 
 SDL2:
-vs2019_project\ft2-clone\sdl\LICENSE.txt
\ No newline at end of file
+vs2019_project\ft2-clone\sdl\LICENSE.txt
--- a/README.md
+++ b/README.md
@@ -14,8 +14,8 @@
 If these don't work for you, you'll have to compile the code manually.
 
 # Improvements over original DOS version
-- The channel resampler/mixer uses floating-point arithmetics for less errors, and has extra interpolation options (4-point cubic spline, 8-point/16-point windowed-sinc)
-- The sample loader supports FLAC/AIFF samples and more WAV types than original FT2. It will also attempt to tune the sample (finetune and rel. note) to its playback frequency on load.
+- The channel resampler/mixer uses floating-point arithmetics for less errors, and has extra interpolation options (4-point/6-point cubic Hermite spline, 8-point/16-point windowed-sinc)
+- The sample loader supports FLAC/AIFF/BRR (SNES) samples and more WAV types than original FT2. It will also attempt to tune the sample (finetune and rel. note) to its playback frequency on load.
 - It contains a new "Trim" feature, which will remove unused stuff to potentially make the module smaller
 - Drag n' drop of modules/samples
 - The waveform display in the sample editor shows peak based data when zoomed out
@@ -22,6 +22,7 @@
 - Text boxes has a text marking option, where you can cut/copy/paste
 - MOD/STM/S3M import has been slightly improved (S3M import is still not ideal, as it's not compatible with XM)
 - Supports loading DIGI Booster (non-Pro) modules
+- Supports loading Impulse Tracker modules (Awful support! Don't use this for playback)
 - It supports loading XMs with stereo samples, uneven amount of channels, more than 32 channels, more than 16 samples per instrument, more than 128 patterns etc. The unsupported data will be mixed to mono/truncated.
 - It has some small additions to make life easier (C4/middle-C Hz display in Instr. Ed., envelope point coordinate display, etc).
 
--- /dev/null
+++ b/make-plan9.rc
@@ -1,0 +1,23 @@
+#!/bin/rc
+rfork ne
+
+fn pragma_pack {
+	sed 's/#pragma[ 	]+pack[ 	(]*(push|1)[ 	)]*/#pragma pack on/g
+s/#pragma[ 	]+pack[ 	(]*(pop|0)[ 	)]*/#pragma pack off/g
+s/#ifdef[ 	]+_MSC_VER/#if defined(_MSC_VER) || defined(__plan9__)/g' $1
+}
+
+for(f in src/*.[ch] src/*/*.[ch]){
+	grep -s '^#pragma[ 	]+pack' $f && ! grep -s '^#pragma pack off' $f && {
+		pragma_pack $f >$f.p
+		mv $f.p $f
+	}
+}
+
+{ test -d npe -o -d /sys/include/npe || {
+	hget https://git.sr.ht/~ft/npe/archive/master.tar.gz | tar xz &&
+	cd npe-master &&
+	mk install &&
+	cd .. &&
+	mv npe-master npe
+} } && mk -f mkfile.plan9 $*
--- /dev/null
+++ b/midi.c
@@ -1,0 +1,103 @@
+#include <stdio.h>
+#include <thread.h>
+#include "ft2_header.h"
+#include "ft2_edit.h"
+#include "ft2_config.h"
+#include "ft2_gui.h"
+#include "ft2_midi.h"
+#include "ft2_audio.h"
+#include "ft2_mouse.h"
+#include "ft2_pattern_ed.h"
+#include "ft2_structs.h"
+#include "rtmidi/rtmidi_c.h"
+
+static struct RtMidiWrapper notrt;
+static RtMidiCCallback callback;
+static int mpfd = -1;
+
+unsigned int
+rtmidi_get_port_count(RtMidiPtr)
+{
+	if(access("/srv/midi", AREAD) < 0){
+		notrt.ok = false;
+		return 0;
+	}
+	notrt.ok = true;
+	return 1;
+}
+
+char *
+rtmidi_get_port_name(RtMidiPtr, unsigned int)
+{
+	char *s;
+
+	if((s = strdup("/srv/midi")) == nil)
+		sysfatal("strdup: %r");
+	return s;
+}
+
+void
+rtmidi_in_cancel_callback(RtMidiInPtr)
+{
+}
+
+void rtmidi_close_port(RtMidiPtr)
+{
+	close(mpfd);
+	mpfd = -1;
+	callback = nil;
+	notrt.ok = false;
+}
+
+void rtmidi_in_free(RtMidiInPtr)
+{
+}
+
+RtMidiInPtr
+rtmidi_in_create_default(void)
+{
+	notrt.ok = true;
+	return &notrt;
+}
+
+void
+midiproc(void *)
+{
+	int fd, n, k;
+	uchar buf[1024];
+
+	while((n = read(mpfd, buf, sizeof buf)) > 0){
+		if(n & 3)
+			fprint(2, "midiproc: malformed message size %d\n", n);
+		for(k=0; k<n; k+=4)
+			if(callback != nil)
+				callback(.0, buf+k+1, 3, nil);
+			else
+				fprint(2, "midiproc: discarding message\n");
+	}
+	fprint(2, "midiproc is off this merry-go-round: %r\n");
+	mpfd = -1;
+}
+
+void
+rtmidi_open_port(RtMidiPtr, unsigned int, char *)
+{
+	notrt.ok = true;
+	if((mpfd = open("/srv/midi", OREAD)) < 0){
+		notrt.ok = false;
+		return;
+	}
+	if(procrfork(midiproc, nil, mainstacksize, RFFDG) < 0)
+		sysfatal("proccreate: %r");
+}
+
+void
+rtmidi_in_set_callback(RtMidiInPtr, RtMidiCCallback fn, void *)
+{
+	callback = fn;
+}
+
+void
+rtmidi_in_ignore_types(RtMidiInPtr, bool, bool, bool)
+{
+}
--- /dev/null
+++ b/mkfile
@@ -1,0 +1,4 @@
+default:V: all
+
+%:V:
+	./make-plan9.rc $stem
--- /dev/null
+++ b/mkfile.plan9
@@ -1,0 +1,139 @@
+</$objtype/mkfile
+
+BIN=/$objtype/bin/audio
+TARG=ft2
+CFLAGS=$CFLAGS -p -Isrc -Isrc/rtmidi -I/sys/include/npe -D__plan9__ -DHAS_MIDI
+
+HFILES=\
+	src/ft2_about.h\
+	src/ft2_audio.h\
+	src/ft2_audioselector.h\
+	src/ft2_bmp.h\
+	src/ft2_checkboxes.h\
+	src/ft2_config.h\
+	src/ft2_cpu.h\
+	src/ft2_diskop.h\
+	src/ft2_edit.h\
+	src/ft2_events.h\
+	src/ft2_gfxdata.h\
+	src/ft2_gui.h\
+	src/ft2_header.h\
+	src/ft2_help.h\
+	src/ft2_hpc.h\
+	src/ft2_inst_ed.h\
+	src/ft2_keyboard.h\
+	src/ft2_midi.h\
+	src/ft2_module_loader.h\
+	src/ft2_module_saver.h\
+	src/ft2_mouse.h\
+	src/ft2_nibbles.h\
+	src/ft2_palette.h\
+	src/ft2_pattern_draw.h\
+	src/ft2_pattern_ed.h\
+	src/ft2_pushbuttons.h\
+	src/ft2_radiobuttons.h\
+	src/ft2_replayer.h\
+	src/ft2_sample_ed.h\
+	src/ft2_sample_ed_features.h\
+	src/ft2_sample_loader.h\
+	src/ft2_sample_saver.h\
+	src/ft2_sampling.h\
+	src/ft2_scrollbars.h\
+	src/ft2_structs.h\
+	src/ft2_sysreqs.h\
+	src/ft2_tables.h\
+	src/ft2_textboxes.h\
+	src/ft2_trim.h\
+	src/ft2_unicode.h\
+	src/ft2_video.h\
+	src/ft2_wav_renderer.h\
+	src/helpdata/ft2_help_data.h\
+	src/mixer/ft2_cubic_spline.h\
+	src/mixer/ft2_mix.h\
+	src/mixer/ft2_mix_macros.h\
+	src/mixer/ft2_silence_mix.h\
+	src/mixer/ft2_windowed_sinc.h\
+	src/scopes/ft2_scope_macros.h\
+	src/scopes/ft2_scopedraw.h\
+	src/scopes/ft2_scopes.h\
+
+OFILES=\
+	src/ft2_about.$O\
+	src/ft2_audio.$O\
+	src/ft2_audioselector.$O\
+	src/ft2_bmp.$O\
+	src/ft2_checkboxes.$O\
+	src/ft2_config.$O\
+	src/ft2_diskop.$O\
+	src/ft2_edit.$O\
+	src/ft2_events.$O\
+	src/ft2_gui.$O\
+	src/ft2_help.$O\
+	src/ft2_hpc.$O\
+	src/ft2_inst_ed.$O\
+	src/ft2_keyboard.$O\
+	src/ft2_main.$O\
+	src/ft2_midi.$O\
+	src/ft2_module_loader.$O\
+	src/ft2_module_saver.$O\
+	src/ft2_mouse.$O\
+	src/ft2_nibbles.$O\
+	src/ft2_palette.$O\
+	src/ft2_pattern_draw.$O\
+	src/ft2_pattern_ed.$O\
+	src/ft2_pushbuttons.$O\
+	src/ft2_radiobuttons.$O\
+	src/ft2_replayer.$O\
+	src/ft2_sample_ed.$O\
+	src/ft2_sample_ed_features.$O\
+	src/ft2_sample_loader.$O\
+	src/ft2_sample_saver.$O\
+	src/ft2_sampling.$O\
+	src/ft2_scrollbars.$O\
+	src/ft2_structs.$O\
+	src/ft2_sysreqs.$O\
+	src/ft2_tables.$O\
+	src/ft2_textboxes.$O\
+	src/ft2_trim.$O\
+	src/ft2_unicode.$O\
+	src/ft2_video.$O\
+	src/ft2_wav_renderer.$O\
+	src/gfxdata/ft2_bmp_fonts.$O\
+	src/gfxdata/ft2_bmp_gui.$O\
+	src/gfxdata/ft2_bmp_instr.$O\
+	src/gfxdata/ft2_bmp_logo.$O\
+	src/gfxdata/ft2_bmp_looppins.$O\
+	src/gfxdata/ft2_bmp_midi.$O\
+	src/gfxdata/ft2_bmp_mouse.$O\
+	src/gfxdata/ft2_bmp_nibbles.$O\
+	src/gfxdata/ft2_bmp_scopes.$O\
+	src/mixer/ft2_cubic_spline.$O\
+	src/mixer/ft2_mix.$O\
+	src/mixer/ft2_silence_mix.$O\
+	src/mixer/ft2_windowed_sinc.$O\
+	src/modloaders/ft2_load_bem.$O\
+	src/modloaders/ft2_load_digi.$O\
+	src/modloaders/ft2_load_it.$O\
+	src/modloaders/ft2_load_mod.$O\
+	src/modloaders/ft2_load_s3m.$O\
+	src/modloaders/ft2_load_stk.$O\
+	src/modloaders/ft2_load_stm.$O\
+	src/modloaders/ft2_load_xm.$O\
+	src/scopes/ft2_scopedraw.$O\
+	src/scopes/ft2_scopes.$O\
+	src/smploaders/ft2_load_aiff.$O\
+	src/smploaders/ft2_load_brr.$O\
+	src/smploaders/ft2_load_flac.$O\
+	src/smploaders/ft2_load_iff.$O\
+	src/smploaders/ft2_load_raw.$O\
+	src/smploaders/ft2_load_wav.$O\
+	midi.$O\
+
+default:V: all
+
+CLEANFILES=$OFILES
+
+</sys/src/cmd/mkone
+
+%.$O: %.c
+	$CC $CFLAGS -o $target $stem.c
--- a/release/linux/.gitignore
+++ b/release/linux/.gitignore
@@ -1,4 +1,4 @@
 # Ignore everything in this directory
 *
 # Except this file
-!.gitignore
\ No newline at end of file
+!.gitignore
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Headers
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Headers
@@ -1,5 +1,2 @@
-XSym
-0024
-86c63de7bd8775780ac77380b5c049c4
 Versions/Current/Headers
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
\ No newline at end of file
+\ No newline at end of file
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Resources
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Resources
@@ -1,5 +1,2 @@
-XSym
-0026
-e58c4cf10cc7c8ef7d7167ccb641aeb4
 Versions/Current/Resources
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
\ No newline at end of file
+\ No newline at end of file
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/SDL2
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/SDL2
@@ -1,5 +1,2 @@
-XSym
-0021
-6bc79b0d5e45f140eca9088dadc6bbd0
 Versions/Current/SDL2
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
\ No newline at end of file
+\ No newline at end of file
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_audio.h
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_audio.h
@@ -594,7 +594,7 @@
  *   frames_ (with stereo output, two samples--left and right--would make a
  *   single sample frame). This number should be a power of two, and may be
  *   adjusted by the audio driver to a value more suitable for the hardware.
- *   Good values seem to range between 512 and 8096 inclusive, depending on
+ *   Good values seem to range between 512 and 4096 inclusive, depending on
  *   the application and CPU speed. Smaller values reduce latency, but can
  *   lead to underflow if the application is doing heavy processing and cannot
  *   fill the audio buffer in time. Note that the number of sample frames is
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h
@@ -53,9 +53,11 @@
 #ifndef __MMX__
 #define __MMX__
 #endif
+/*
 #ifndef __3dNOW__
 #define __3dNOW__
 #endif
+*/
 #endif
 #ifndef __SSE__
 #define __SSE__
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_hints.h
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_hints.h
@@ -1912,6 +1912,7 @@
  * Since it's driver-specific, it's only supported where possible and
  * implemented. Currently supported the following drivers:
  *
+ * - Wayland (wayland)
  * - KMSDRM (kmsdrm)
  * - Raspberry Pi (raspberrypi)
  */
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_revision.h
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_revision.h
@@ -1,7 +1,6 @@
-/* Generated by updaterev.sh, do not edit */
 #ifdef SDL_VENDOR_INFO
-#define SDL_REVISION "SDL-release-2.30.6-0-gba2f78a00 (" SDL_VENDOR_INFO ")"
+#define SDL_REVISION SDL_VENDOR_INFO
 #else
-#define SDL_REVISION "SDL-release-2.30.6-0-gba2f78a00"
+#define SDL_REVISION ""
 #endif
 #define SDL_REVISION_NUMBER 0
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_stdinc.h
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_stdinc.h
@@ -255,9 +255,9 @@
 #ifndef SDL_PRIs64
 #if defined(__WIN32__) || defined(__GDK__)
 #define SDL_PRIs64 "I64d"
-#elif defined(PRIs64)
-#define SDL_PRIs64 PRIs64
-#elif defined(__LP64__) && !defined(__APPLE__)
+#elif defined(PRId64)
+#define SDL_PRIs64 PRId64
+#elif defined(__LP64__) && !defined(__APPLE__) && !defined(__EMSCRIPTEN__)
 #define SDL_PRIs64 "ld"
 #else
 #define SDL_PRIs64 "lld"
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_version.h
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_version.h
@@ -59,7 +59,7 @@
 */
 #define SDL_MAJOR_VERSION   2
 #define SDL_MINOR_VERSION   30
-#define SDL_PATCHLEVEL      6
+#define SDL_PATCHLEVEL      10
 
 /**
  * Macro to determine SDL version program was compiled against.
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_vulkan.h
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Headers/SDL_vulkan.h
@@ -52,6 +52,10 @@
 VK_DEFINE_HANDLE(VkInstance)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
 
+/* Make sure to undef to avoid issues in case of later vulkan include */
+#undef VK_DEFINE_HANDLE
+#undef VK_DEFINE_NON_DISPATCHABLE_HANDLE
+
 #endif /* !NO_SDL_VULKAN_TYPEDEFS */
 
 typedef VkInstance SDL_vulkanInstance;
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Resources/Info.plist
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/Resources/Info.plist
@@ -3,7 +3,7 @@
 <plist version="1.0">
 <dict>
 	<key>BuildMachineOSBuild</key>
-	<string>23F79</string>
+	<string>23H222</string>
 	<key>CFBundleDevelopmentRegion</key>
 	<string>English</string>
 	<key>CFBundleExecutable</key>
@@ -19,7 +19,7 @@
 	<key>CFBundlePackageType</key>
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.30.6</string>
+	<string>2.30.10</string>
 	<key>CFBundleSignature</key>
 	<string>SDLX</string>
 	<key>CFBundleSupportedPlatforms</key>
@@ -27,7 +27,7 @@
 		<string>MacOSX</string>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>2.30.6</string>
+	<string>2.30.10</string>
 	<key>DTCompiler</key>
 	<string>com.apple.compilers.llvm.clang.1_0</string>
 	<key>DTPlatformBuild</key>
binary files a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/SDL2 b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/SDL2 differ
--- /dev/null
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/A/_CodeSignature/CodeResources
@@ -1,0 +1,933 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>files</key>
+	<dict>
+		<key>Resources/CMake/sdl2-config-version.cmake</key>
+		<data>
+		GOmfPsl6+zUzjRroR1OeRUu1Do0=
+		</data>
+		<key>Resources/CMake/sdl2-config.cmake</key>
+		<data>
+		HFjU0snuPDDpVpeJJsOGAfWEqrU=
+		</data>
+		<key>Resources/Info.plist</key>
+		<data>
+		psBFNKMxE1lQbuBYANGXFzReZ9g=
+		</data>
+		<key>Resources/License.txt</key>
+		<data>
+		A8VTYHTg+gsOssUp337xdGbdHW0=
+		</data>
+		<key>Resources/ReadMe.txt</key>
+		<data>
+		04Gl3MPa3Etx4qtkaftLHaPqBVU=
+		</data>
+		<key>Resources/default.metallib</key>
+		<data>
+		BO5njZwigEYbd1h6TX/xkchzM2o=
+		</data>
+	</dict>
+	<key>files2</key>
+	<dict>
+		<key>Headers/SDL.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Lfl2hNX45Yauw4rksgqb/XdphDk=
+			</data>
+			<key>hash2</key>
+			<data>
+			5ZHTKNpFq6FjJ9eAzN+z9MzYhRUuH9A2ld+654PJGxA=
+			</data>
+		</dict>
+		<key>Headers/SDL_assert.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			pYW903dbT5whp+Qrix78+qX0jwE=
+			</data>
+			<key>hash2</key>
+			<data>
+			8rHzmD0mEbISieyXtdyAKk4sVsPwozGVXxO+fPUcwh4=
+			</data>
+		</dict>
+		<key>Headers/SDL_atomic.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			kmlvyb/D7tTnqB5/SPn+uzEVwWo=
+			</data>
+			<key>hash2</key>
+			<data>
+			jKCpopkvsvgFD4Kw3f33cJ/NnrINF539gONibFVIB9Q=
+			</data>
+		</dict>
+		<key>Headers/SDL_audio.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			wqkK8HYwYj1T7tvf9G86kUsQfXc=
+			</data>
+			<key>hash2</key>
+			<data>
+			ZECjsTuBMJKkK+yrAqHruMAJ1Dnk0CN4Uj7isjWLvAU=
+			</data>
+		</dict>
+		<key>Headers/SDL_bits.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			vq8tkT27C0LpOpam3jt6SPKcF38=
+			</data>
+			<key>hash2</key>
+			<data>
+			ThaIbzANB0DHeg/muc+XlpzRJ/gquRny6eg+T3/AZRo=
+			</data>
+		</dict>
+		<key>Headers/SDL_blendmode.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			UJ3UsJ8PkmGKXFMsWbGjktY/McY=
+			</data>
+			<key>hash2</key>
+			<data>
+			4fn7qawnnPu+HK3N6XAbRESMCm0k6OKgh/swb9XhboI=
+			</data>
+		</dict>
+		<key>Headers/SDL_clipboard.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			RnO4GfCniF8MlqHGKKb46VIosQc=
+			</data>
+			<key>hash2</key>
+			<data>
+			Wz9oWs2a8ZN4QUrt0nEcldfa+eZpXfIcDToxBX1KzfI=
+			</data>
+		</dict>
+		<key>Headers/SDL_config.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			ER627OINXZReUtB0UvhF/JFlrFk=
+			</data>
+			<key>hash2</key>
+			<data>
+			1anVcKcfwQrtjHH7cteXCA5OCcOgmB7EFfDnCb+gSZk=
+			</data>
+		</dict>
+		<key>Headers/SDL_config_macosx.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			oU+969jqvMDgqHV1WA4yZm1gr9k=
+			</data>
+			<key>hash2</key>
+			<data>
+			c9+monw3gWrEZOhytKTuc1hSbhEo+HiCBZ4jJOpjg+M=
+			</data>
+		</dict>
+		<key>Headers/SDL_copying.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			eMSBsshKdTT5uzXvgxE8eZJnqU0=
+			</data>
+			<key>hash2</key>
+			<data>
+			8rjaG1pCV5vum9i9zkW6VPXHWLgTjYk+LetUSsfhdho=
+			</data>
+		</dict>
+		<key>Headers/SDL_cpuinfo.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			RzJruo8ktMeBPUMnBCmlnP88g10=
+			</data>
+			<key>hash2</key>
+			<data>
+			SHQnpBJWO9cChWzih9hY5Kcg46q2pfBqbxrhQ8L/IsI=
+			</data>
+		</dict>
+		<key>Headers/SDL_endian.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			a0rFYa+ZaAeCp1OLc1MUigSxv3I=
+			</data>
+			<key>hash2</key>
+			<data>
+			KzsbIelOUqvXltchBHLBt2FYxr6ECXOXllAo8I4cgJQ=
+			</data>
+		</dict>
+		<key>Headers/SDL_error.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			6FbRl5QI1EDOgcFrO88vwobsvgk=
+			</data>
+			<key>hash2</key>
+			<data>
+			UK6Fy7gMMKetaQ8oLxZ5/YjRDBnehbSYWdS5NU+0bT8=
+			</data>
+		</dict>
+		<key>Headers/SDL_events.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			DjRO2l0fKHz9CqTSSEjZmJfk9EQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			D9kT1tG6R/HNm/q288zZFC6ukV75D69FcWgwYsnc8fc=
+			</data>
+		</dict>
+		<key>Headers/SDL_filesystem.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			V8DtkwjBL6IAXnY3x3Y3GBN5V/g=
+			</data>
+			<key>hash2</key>
+			<data>
+			0dS4S8y/h4M5KPReX8OBpo3gpKeCLfH7QvK3hnL0Z3Y=
+			</data>
+		</dict>
+		<key>Headers/SDL_gamecontroller.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			JpK2cxtJKHW3otMI+J0LB9HKV0I=
+			</data>
+			<key>hash2</key>
+			<data>
+			05DHXySUkbPAFsZ06PH81S+gw42DJijM4g5o8b7GhdI=
+			</data>
+		</dict>
+		<key>Headers/SDL_gesture.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			jU1rTN3CXe1BxlIBiYoxftM6MYY=
+			</data>
+			<key>hash2</key>
+			<data>
+			mgTChHVZZGYvTqJ1zFxt+PZbfvlOAXp1UoiPQtFcsVQ=
+			</data>
+		</dict>
+		<key>Headers/SDL_guid.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			L3CGapDqXLCS7ZfawgCKGbSjFQQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			qUA3cQGQCyMg0ipdfCbjASvzYDj0Zx7H5ffPcvWfwVw=
+			</data>
+		</dict>
+		<key>Headers/SDL_haptic.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			701dA7tkS7/YfKQufm9k5x1xP8Q=
+			</data>
+			<key>hash2</key>
+			<data>
+			ItVljPsplw8TGMOYCO77lZsUfVph375JnUCb+ne/SwY=
+			</data>
+		</dict>
+		<key>Headers/SDL_hidapi.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			0fdfgesRdg1vKFY634kkFiZ98Ng=
+			</data>
+			<key>hash2</key>
+			<data>
+			ePZqkV6EC8UOvqW8YdC6QIqQj1WT+hV8A+iuyMBkTEM=
+			</data>
+		</dict>
+		<key>Headers/SDL_hints.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			enJz/y9Kq25SdPiDoBP7yR86jo4=
+			</data>
+			<key>hash2</key>
+			<data>
+			gxFXZAIhlPaEbPerAgtEJYDawHaM5Y3B1Ns/t6Hr49A=
+			</data>
+		</dict>
+		<key>Headers/SDL_joystick.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			4eEXgUywylmhoIROKbFvo6QNEBc=
+			</data>
+			<key>hash2</key>
+			<data>
+			rdkA+JE+3rkS7e6NHALOLiT5fVjruYpmaEY1q5fD3v0=
+			</data>
+		</dict>
+		<key>Headers/SDL_keyboard.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			O8EeqERllEiSUVekqaGWTi+08SE=
+			</data>
+			<key>hash2</key>
+			<data>
+			YY8QUjagHNuyjj7+A2likirYjtVGBLRrLaiL3XFF6pI=
+			</data>
+		</dict>
+		<key>Headers/SDL_keycode.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			4M4+qKPCh8Nt9KMtKXhGfEHHGfA=
+			</data>
+			<key>hash2</key>
+			<data>
+			RMfX8LUIJxh/jsaJU/xByIJkjv0Ad106DFZHsZv8pbM=
+			</data>
+		</dict>
+		<key>Headers/SDL_loadso.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Asx7u68oasK39D4GZW1/srAylls=
+			</data>
+			<key>hash2</key>
+			<data>
+			RiRV45B7euwlx+hcq4qKfEFmHNSH1mkstcUpTVvYSSs=
+			</data>
+		</dict>
+		<key>Headers/SDL_locale.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			nRgzIlI3HM0T/WNjLJJEi38OPMo=
+			</data>
+			<key>hash2</key>
+			<data>
+			EMRbgbDbQ+odh3x2XBIyspvdqB2kra0FOf74BrGKgPY=
+			</data>
+		</dict>
+		<key>Headers/SDL_log.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			tAwHSPVWPAZGWPtCSUlHq3JdvyA=
+			</data>
+			<key>hash2</key>
+			<data>
+			VMaId0hYgkcr2YDH2N33c0i38gPrs9+L/ANMpAiny9g=
+			</data>
+		</dict>
+		<key>Headers/SDL_main.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			lykTlv+S6hpMWHZrRgY1mlpO2Wg=
+			</data>
+			<key>hash2</key>
+			<data>
+			LxrUoSwibHgYszYJXkUxZNBHRVOQWyteyv+bar2Dq5Y=
+			</data>
+		</dict>
+		<key>Headers/SDL_messagebox.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			9nzIVO7dY406xCHa2KEIJcO1+j4=
+			</data>
+			<key>hash2</key>
+			<data>
+			YU77COq8qX9fvy6hzGxakm44tOIAv/7OsoAKTdF6Az8=
+			</data>
+		</dict>
+		<key>Headers/SDL_metal.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			l3WpnmYNTFJDOc4VfGpqDOzca2A=
+			</data>
+			<key>hash2</key>
+			<data>
+			23emwjTJmRlFUl0ONQTFOXiwp5rZigMgRoNpVs+/3+8=
+			</data>
+		</dict>
+		<key>Headers/SDL_misc.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			jRjlVh5Vv0djqm/W/za7thtYCqA=
+			</data>
+			<key>hash2</key>
+			<data>
+			ccGvw3H5qbNv1VNvV/f6zgzu62kpdXFy+r3mqfrVeBQ=
+			</data>
+		</dict>
+		<key>Headers/SDL_mouse.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			Gm6qznp86I5NOFZmRjhrT++5TBk=
+			</data>
+			<key>hash2</key>
+			<data>
+			gwvY1lfpF7M2HbTITBi8QZI+tbgVNvI9O1NxtoxBoRc=
+			</data>
+		</dict>
+		<key>Headers/SDL_mutex.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			9vbOLsFVFElR47I5TtXjf4pedQo=
+			</data>
+			<key>hash2</key>
+			<data>
+			ffswmnD3jDjyU8iH7L06flM6p819OSNl8NEcZ4kHjoA=
+			</data>
+		</dict>
+		<key>Headers/SDL_name.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			cnC/QF1H86przORFvDObebgj5EA=
+			</data>
+			<key>hash2</key>
+			<data>
+			9fbQrzTVlIE/DhtOXfxt0UmZ0XXGnb8fBspcvPpqzcg=
+			</data>
+		</dict>
+		<key>Headers/SDL_opengl.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			fQnZ5+4QU4D2hdgVZbuajaBHPcs=
+			</data>
+			<key>hash2</key>
+			<data>
+			2Ctx+UxI6AbjN3VC0IHf0VO8wTUUi3B3sEMe/Kw7JUo=
+			</data>
+		</dict>
+		<key>Headers/SDL_opengl_glext.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			eOvalGUielSzNuOWWDLYkwqpYrg=
+			</data>
+			<key>hash2</key>
+			<data>
+			GrsoiRybBmG2/zdJ3iZx2l/hK+tbyxgzsta99ciezfg=
+			</data>
+		</dict>
+		<key>Headers/SDL_opengles.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			qc/icyfTwVqep3xCBWgeJfq0XXU=
+			</data>
+			<key>hash2</key>
+			<data>
+			lxKvbpPsHmGoSaeXFm2q1chRJyxVms+CzAJvRtK637k=
+			</data>
+		</dict>
+		<key>Headers/SDL_opengles2.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			jPiOGyiIm0zNA2ktCXPlPZSRNOA=
+			</data>
+			<key>hash2</key>
+			<data>
+			gz/JKk8t4jDIXWlHuYzPYJMnYJoVRKMaEGKxYB69dHA=
+			</data>
+		</dict>
+		<key>Headers/SDL_opengles2_gl2.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			GbD4M9ZIR9sxgLX4G8T/ojLVQJk=
+			</data>
+			<key>hash2</key>
+			<data>
+			1uxEsdc/OvzjogrGl223+z2sZWxRkPC1Y+TOkNeaFao=
+			</data>
+		</dict>
+		<key>Headers/SDL_opengles2_gl2ext.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			frTvd+EfShO/uonAvnnsnPkqc80=
+			</data>
+			<key>hash2</key>
+			<data>
+			T8WwA03N6cElki4+cNAUiaazNQdoVu5mApThpjBaNxk=
+			</data>
+		</dict>
+		<key>Headers/SDL_opengles2_gl2platform.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			JO1DB28zz7TCz/P5YCSvV1PaqWg=
+			</data>
+			<key>hash2</key>
+			<data>
+			R3m+mZrNGQRFgjjwnIaYO3lgrEDmEuBdstuX22FfHg8=
+			</data>
+		</dict>
+		<key>Headers/SDL_opengles2_khrplatform.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			mBjqEs+5bGC9u1ED2M93VNzONPQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			ex4Bqqetj2/DS1x733nr9RibsJ4sTS55/F01BiPRHoM=
+			</data>
+		</dict>
+		<key>Headers/SDL_pixels.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			MYcJ6ZiKAY8zdgCwA/FlUbT5a/4=
+			</data>
+			<key>hash2</key>
+			<data>
+			k/Hwy+Me3zpo9gYWt1cxsQAkMKtg8FS2oZLB5H1IHms=
+			</data>
+		</dict>
+		<key>Headers/SDL_platform.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			bH/oQ0Uds7ktuIR3ri3CrKrbiHk=
+			</data>
+			<key>hash2</key>
+			<data>
+			5JZ09EpO7JI8dmIr//wuD70hXoeE4B8sWn3H8iavLF8=
+			</data>
+		</dict>
+		<key>Headers/SDL_power.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			alQ7owSLOu8oi+p5TCVtXLfg49U=
+			</data>
+			<key>hash2</key>
+			<data>
+			/a3V+xg47qsi9m/jjhPv4j5epEExGUpm65R9DBKOgdU=
+			</data>
+		</dict>
+		<key>Headers/SDL_quit.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			HBhMaa9dpoxys7lX8bShTrrw26c=
+			</data>
+			<key>hash2</key>
+			<data>
+			Zy837L/c8/F/z/t7UE/2IKDrEYSf+/9IM+y/rifeK9Q=
+			</data>
+		</dict>
+		<key>Headers/SDL_rect.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			TMAFS6Xx6FfFUZosiA08UZGMO7Y=
+			</data>
+			<key>hash2</key>
+			<data>
+			B6FuiG3NCFAQRp2UVMcmgSowkeZ1hP5VCdzArvGYEjk=
+			</data>
+		</dict>
+		<key>Headers/SDL_render.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			kUCWkbsEF23oO4MCCs2EbwDQusI=
+			</data>
+			<key>hash2</key>
+			<data>
+			FRXH4yrITpDqn2IBdQ2Lbx7Jn6o0UuPRsjd4OWj78yI=
+			</data>
+		</dict>
+		<key>Headers/SDL_revision.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			wlRT2sTA0dP97Vvcah+M13dM6Ng=
+			</data>
+			<key>hash2</key>
+			<data>
+			Dn4kx2zaANESjNuADThOyPh3QukKZMRvUrIcDo8vIR4=
+			</data>
+		</dict>
+		<key>Headers/SDL_rwops.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			X/FUhtgu4xCdkYBGb+ldcBcGZsY=
+			</data>
+			<key>hash2</key>
+			<data>
+			a2EUuuUAqW0fvq6RZT8pXnh5L/5v0fQWSLdrujvKMqA=
+			</data>
+		</dict>
+		<key>Headers/SDL_scancode.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			KoO35m+cbDILMQvS85Ns37rEDjY=
+			</data>
+			<key>hash2</key>
+			<data>
+			i/34qMDYybTiAylZuNfCadHerKiHZ06/kBn6i/txqLk=
+			</data>
+		</dict>
+		<key>Headers/SDL_sensor.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			dt0dQe91kXtmVwHldbMs3pSqKuE=
+			</data>
+			<key>hash2</key>
+			<data>
+			+J/fkDU0AnB1KtUPYvFD3BIcHr0mXLJoyHvrtofnlRs=
+			</data>
+		</dict>
+		<key>Headers/SDL_shape.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			kpJhZUECgTha8Y9BJVRTLbsu6p8=
+			</data>
+			<key>hash2</key>
+			<data>
+			DsOpuFRKUgZwW8zSjrvgzY5QiVnH4qzikkNFfE4R784=
+			</data>
+		</dict>
+		<key>Headers/SDL_stdinc.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			DdRe/lNH6geRuVqhs5huipbzLj8=
+			</data>
+			<key>hash2</key>
+			<data>
+			mMaKFT0Acqvtg4K6gEpb8NUklIR8L00B8JxlSl/z8Oc=
+			</data>
+		</dict>
+		<key>Headers/SDL_surface.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			WtK2vSy/4+ez9IC9XEutgDDYqEQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			1j47d6UhPnUkiWpFDu/JiESXUSIoJc9usypSBXhkSXk=
+			</data>
+		</dict>
+		<key>Headers/SDL_system.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			2hXj/s+4iotUYQ/qacOSBEGZOwg=
+			</data>
+			<key>hash2</key>
+			<data>
+			1UwQf2RE20ecBIH+hfGWJftxYFTVSAzailQDO2A4TNg=
+			</data>
+		</dict>
+		<key>Headers/SDL_syswm.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			3bhBPpfxPHznhnK4qD/z3JMAH6M=
+			</data>
+			<key>hash2</key>
+			<data>
+			MPw8TZLw/QvquHCjlJlNDPjjt8f1IlMKzMfWgn1EF3U=
+			</data>
+		</dict>
+		<key>Headers/SDL_thread.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			1EtqS0N8COfcjGjv8z6z+LQAX3U=
+			</data>
+			<key>hash2</key>
+			<data>
+			l8BOBXAsdov/Q/EbiOiV79CL9dMEnX4y5a/ET0zjVcM=
+			</data>
+		</dict>
+		<key>Headers/SDL_timer.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			HA8k26mZn4Ws75q3lUPqNM195Ms=
+			</data>
+			<key>hash2</key>
+			<data>
+			F20rU5/Zn2KplGmTtClppmMyMWHLeVaEONbGDAwZ5CI=
+			</data>
+		</dict>
+		<key>Headers/SDL_touch.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			MIP5UyBQZhIYlI9EqCgc5hJdhlI=
+			</data>
+			<key>hash2</key>
+			<data>
+			D0XePcMfVFz1/CDx1TMFLtaZ1jo7wIcXt5wvjqVuipU=
+			</data>
+		</dict>
+		<key>Headers/SDL_types.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			xbfdEra92WqYikDB55Po6KyR06E=
+			</data>
+			<key>hash2</key>
+			<data>
+			1Zr6IHz0DVKoehzBggWv99qlrZ5SWYkYxt7cVypGIH4=
+			</data>
+		</dict>
+		<key>Headers/SDL_version.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			V1WhIT6vXhEOcfu+cDo+LwvkvRE=
+			</data>
+			<key>hash2</key>
+			<data>
+			TaCZnrgTfgRARYIobSD3i3KArXOQUxuYjG/sFBoYo0k=
+			</data>
+		</dict>
+		<key>Headers/SDL_video.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			YH5SyVC9XgoGpFkq3vCcdbQd0uI=
+			</data>
+			<key>hash2</key>
+			<data>
+			Z5MS/bT5DfdUhSXGNao0cZWNyObx6ruc+zTPuGbg1s4=
+			</data>
+		</dict>
+		<key>Headers/SDL_vulkan.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			bsq9F6bHSfRUZWqi6pyhcJfFdv8=
+			</data>
+			<key>hash2</key>
+			<data>
+			orVndhc5fB+XucpAcaS8hFxijBDU2oR4F1jhbc7Ju1k=
+			</data>
+		</dict>
+		<key>Headers/begin_code.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			I6nkG0qY9s2AvaEtVSrocQiX4tQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			8uTiBDsf/cQ5+5utD1yCakQ8kX788aZUQFgKId33VjA=
+			</data>
+		</dict>
+		<key>Headers/close_code.h</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			U4gdDidHLAHPBhe/aWRbzA1M9BQ=
+			</data>
+			<key>hash2</key>
+			<data>
+			ZczKDtPfhp/KAaAzO6wpeeU4I1z0Pn+FiHTmWV14GlM=
+			</data>
+		</dict>
+		<key>Resources/CMake/sdl2-config-version.cmake</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			GOmfPsl6+zUzjRroR1OeRUu1Do0=
+			</data>
+			<key>hash2</key>
+			<data>
+			YeQ8SoXGqMam3mk/39htvQ5fF5Twd16X5JPfl7/hSuk=
+			</data>
+		</dict>
+		<key>Resources/CMake/sdl2-config.cmake</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			HFjU0snuPDDpVpeJJsOGAfWEqrU=
+			</data>
+			<key>hash2</key>
+			<data>
+			3CcBgLSrIjtN3CnKminQz7NzcDt2kcMM2AW/PSX3/0Q=
+			</data>
+		</dict>
+		<key>Resources/Info.plist</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			psBFNKMxE1lQbuBYANGXFzReZ9g=
+			</data>
+			<key>hash2</key>
+			<data>
+			4xu3tgP1KITWbi4Aj0nk5zBH4+4IL2X4goDmHNl+IGA=
+			</data>
+		</dict>
+		<key>Resources/License.txt</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			A8VTYHTg+gsOssUp337xdGbdHW0=
+			</data>
+			<key>hash2</key>
+			<data>
+			UN4cvaEc5FbrLcR2jBIsS5miYCucbhF1iAKC2EMtJhM=
+			</data>
+		</dict>
+		<key>Resources/ReadMe.txt</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			04Gl3MPa3Etx4qtkaftLHaPqBVU=
+			</data>
+			<key>hash2</key>
+			<data>
+			OjTqSEaeNJpJyrrZIzKimvTn011CW6ucNulPPxUwgL0=
+			</data>
+		</dict>
+		<key>Resources/default.metallib</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			BO5njZwigEYbd1h6TX/xkchzM2o=
+			</data>
+			<key>hash2</key>
+			<data>
+			Fe5XhVrmpOq2Hqk5Jy7Yhqd+IXcB/PDUI58bHeKR4Cg=
+			</data>
+		</dict>
+	</dict>
+	<key>rules</key>
+	<dict>
+		<key>^Resources/</key>
+		<true/>
+		<key>^Resources/.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^Resources/.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Resources/Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^version.plist$</key>
+		<true/>
+	</dict>
+	<key>rules2</key>
+	<dict>
+		<key>.*\.dSYM($|/)</key>
+		<dict>
+			<key>weight</key>
+			<real>11</real>
+		</dict>
+		<key>^(.*/)?\.DS_Store$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>2000</real>
+		</dict>
+		<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
+		<dict>
+			<key>nested</key>
+			<true/>
+			<key>weight</key>
+			<real>10</real>
+		</dict>
+		<key>^.*</key>
+		<true/>
+		<key>^Info\.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^PkgInfo$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^Resources/</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^Resources/.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^Resources/.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Resources/Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^[^/]+$</key>
+		<dict>
+			<key>nested</key>
+			<true/>
+			<key>weight</key>
+			<real>10</real>
+		</dict>
+		<key>^embedded\.provisionprofile$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^version\.plist$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+	</dict>
+</dict>
+</plist>
--- a/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/Current
+++ b/release/macos/ft2-clone-macos.app/Contents/Frameworks/SDL2.framework/Versions/Current
@@ -1,5 +1,2 @@
-XSym
-0001
-7fc56270e7a70fa81a5935b72eacbe29
 A
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
\ No newline at end of file
+\ No newline at end of file
binary files a/release/win32/SDL2.dll b/release/win32/SDL2.dll differ
binary files a/release/win64/SDL2.dll b/release/win64/SDL2.dll differ
--- a/src/ft2_about.c
+++ b/src/ft2_about.c
@@ -7,12 +7,12 @@
 #include "ft2_structs.h"
 #include "ft2_gfxdata.h"
 #include "ft2_pattern_ed.h" // exitPatternEditorExtended()
+#include "ft2_config.h"
 
-#define LOGO_ALPHA_PERCENTAGE 70
-#define STAR_ALPHA_PERCENTAGE 91
-#define STARSHINE_ALPHA_PERCENTAGE 20
+#define NUM_STARS 1500 /* for new about screen only */
+#define LOGO_ALPHA_PERCENTAGE 72
+#define STARSHINE_ALPHA_PERCENTAGE 25
 #define SINUS_PHASES 1024
-#define NUM_STARS 2000
 #define ABOUT_SCREEN_X 3
 #define ABOUT_SCREEN_Y 3
 #define ABOUT_SCREEN_W 626
@@ -22,6 +22,21 @@
 
 typedef struct
 {
+	int16_t x, y, z;
+} oldVector_t;
+
+typedef struct
+{
+	uint16_t x, y, z;
+} oldRotate_t;
+
+typedef struct
+{
+	oldVector_t x, y, z;
+} oldMatrix_t;
+
+typedef struct
+{
 	float x, y, z;
 } vector_t;
 
@@ -30,17 +45,107 @@
 	vector_t x, y, z;
 } matrix_t;
 
+static const uint16_t sinusTables[256 * 5] =
+{
+	0x0000,0x00C9,0x0192,0x025B,0x0324,0x03ED,0x04B6,0x057F,0x0648,0x0711,0x07D9,0x08A2,0x096A,0x0A33,0x0AFB,0x0BC3,
+	0x0C8C,0x0D54,0x0E1C,0x0EE3,0x0FAB,0x1072,0x113A,0x1201,0x12C8,0x138F,0x1455,0x151C,0x15E2,0x16A8,0x176D,0x1833,
+	0x18F8,0x19BD,0x1A82,0x1B47,0x1C0B,0x1CCF,0x1D93,0x1E56,0x1F19,0x1FDC,0x209F,0x2161,0x2223,0x22E5,0x23A6,0x2467,
+	0x2527,0x25E8,0x26A8,0x2767,0x2826,0x28E5,0x29A3,0x2A61,0x2B1F,0x2BDC,0x2C98,0x2D55,0x2E10,0x2ECC,0x2F87,0x3041,
+	0x30FB,0x31B5,0x326E,0x3326,0x33DE,0x3496,0x354D,0x3603,0x36B9,0x376F,0x3824,0x38D8,0x398C,0x3A3F,0x3AF2,0x3BA4,
+	0x3C56,0x3D07,0x3DB7,0x3E67,0x3F16,0x3FC5,0x4073,0x4120,0x41CD,0x4279,0x4325,0x43D0,0x447A,0x4523,0x45CC,0x4674,
+	0x471C,0x47C3,0x4869,0x490E,0x49B3,0x4A57,0x4AFA,0x4B9D,0x4C3F,0x4CE0,0x4D80,0x4E20,0x4EBF,0x4F5D,0x4FFA,0x5097,
+	0x5133,0x51CE,0x5268,0x5301,0x539A,0x5432,0x54C9,0x555F,0x55F4,0x5689,0x571D,0x57AF,0x5841,0x58D3,0x5963,0x59F2,
+	0x5A81,0x5B0F,0x5B9C,0x5C28,0x5CB3,0x5D3D,0x5DC6,0x5E4F,0x5ED6,0x5F5D,0x5FE2,0x6067,0x60EB,0x616E,0x61EF,0x6270,
+	0x62F0,0x6370,0x63EE,0x646B,0x64E7,0x6562,0x65DC,0x6656,0x66CE,0x6745,0x67BB,0x6831,0x68A5,0x6918,0x698A,0x69FC,
+	0x6A6C,0x6ADB,0x6B49,0x6BB6,0x6C22,0x6C8E,0x6CF8,0x6D60,0x6DC8,0x6E2F,0x6E95,0x6EFA,0x6F5D,0x6FC0,0x7021,0x7082,
+	0x70E1,0x713F,0x719C,0x71F8,0x7253,0x72AD,0x7306,0x735E,0x73B4,0x740A,0x745E,0x74B1,0x7503,0x7554,0x75A4,0x75F2,
+	0x7640,0x768C,0x76D7,0x7722,0x776A,0x77B2,0x77F9,0x783E,0x7883,0x78C6,0x7908,0x7949,0x7988,0x79C7,0x7A04,0x7A40,
+	0x7A7B,0x7AB5,0x7AED,0x7B25,0x7B5B,0x7B90,0x7BC4,0x7BF7,0x7C28,0x7C58,0x7C87,0x7CB5,0x7CE2,0x7D0D,0x7D38,0x7D61,
+	0x7D88,0x7DAF,0x7DD4,0x7DF9,0x7E1C,0x7E3D,0x7E5E,0x7E7D,0x7E9B,0x7EB8,0x7ED4,0x7EEE,0x7F08,0x7F20,0x7F36,0x7F4C,
+	0x7F60,0x7F73,0x7F85,0x7F96,0x7FA5,0x7FB3,0x7FC0,0x7FCC,0x7FD7,0x7FE0,0x7FE8,0x7FEF,0x7FF4,0x7FF8,0x7FFC,0x7FFD,
+	0x7FFE,0x7FFD,0x7FFC,0x7FF8,0x7FF4,0x7FEF,0x7FE8,0x7FE0,0x7FD7,0x7FCC,0x7FC0,0x7FB3,0x7FA5,0x7F96,0x7F85,0x7F73,
+	0x7F60,0x7F4C,0x7F36,0x7F20,0x7F08,0x7EEE,0x7ED4,0x7EB8,0x7E9B,0x7E7D,0x7E5E,0x7E3D,0x7E1C,0x7DF9,0x7DD4,0x7DAF,
+	0x7D88,0x7D61,0x7D38,0x7D0D,0x7CE2,0x7CB5,0x7C87,0x7C58,0x7C28,0x7BF7,0x7BC4,0x7B90,0x7B5B,0x7B25,0x7AED,0x7AB5,
+	0x7A7B,0x7A40,0x7A04,0x79C7,0x7988,0x7949,0x7908,0x78C6,0x7883,0x783E,0x77F9,0x77B2,0x776A,0x7722,0x76D7,0x768C,
+	0x7640,0x75F2,0x75A4,0x7554,0x7503,0x74B1,0x745E,0x740A,0x73B4,0x735E,0x7306,0x72AD,0x7253,0x71F8,0x719C,0x713F,
+	0x70E1,0x7082,0x7021,0x6FC0,0x6F5D,0x6EFA,0x6E95,0x6E2F,0x6DC8,0x6D60,0x6CF8,0x6C8E,0x6C22,0x6BB6,0x6B49,0x6ADB,
+	0x6A6C,0x69FC,0x698A,0x6918,0x68A5,0x6831,0x67BB,0x6745,0x66CE,0x6656,0x65DC,0x6562,0x64E7,0x646B,0x63EE,0x6370,
+	0x62F0,0x6270,0x61EF,0x616E,0x60EB,0x6067,0x5FE2,0x5F5D,0x5ED6,0x5E4F,0x5DC6,0x5D3D,0x5CB3,0x5C28,0x5B9C,0x5B0F,
+	0x5A81,0x59F2,0x5963,0x58D3,0x5841,0x57AF,0x571D,0x5689,0x55F4,0x555F,0x54C9,0x5432,0x539A,0x5301,0x5268,0x51CE,
+	0x5133,0x5097,0x4FFA,0x4F5D,0x4EBF,0x4E20,0x4D80,0x4CE0,0x4C3F,0x4B9D,0x4AFA,0x4A57,0x49B3,0x490E,0x4869,0x47C3,
+	0x471C,0x4674,0x45CC,0x4523,0x447A,0x43D0,0x4325,0x4279,0x41CD,0x4120,0x4073,0x3FC5,0x3F16,0x3E67,0x3DB7,0x3D07,
+	0x3C56,0x3BA4,0x3AF2,0x3A3F,0x398C,0x38D8,0x3824,0x376F,0x36B9,0x3603,0x354D,0x3496,0x33DE,0x3326,0x326E,0x31B5,
+	0x30FB,0x3041,0x2F87,0x2ECC,0x2E10,0x2D55,0x2C98,0x2BDC,0x2B1F,0x2A61,0x29A3,0x28E5,0x2826,0x2767,0x26A8,0x25E8,
+	0x2527,0x2467,0x23A6,0x22E5,0x2223,0x2161,0x209F,0x1FDC,0x1F19,0x1E56,0x1D93,0x1CCF,0x1C0B,0x1B47,0x1A82,0x19BD,
+	0x18F8,0x1833,0x176D,0x16A8,0x15E2,0x151C,0x1455,0x138F,0x12C8,0x1201,0x113A,0x1072,0x0FAB,0x0EE3,0x0E1C,0x0D54,
+	0x0C8C,0x0BC3,0x0AFB,0x0A33,0x096A,0x08A2,0x07D9,0x0711,0x0648,0x057F,0x04B6,0x03ED,0x0324,0x025B,0x0192,0x00C9,
+	0x0000,0xFF37,0xFE6E,0xFDA5,0xFCDC,0xFC13,0xFB4A,0xFA81,0xF9B8,0xF8EF,0xF827,0xF75E,0xF696,0xF5CD,0xF505,0xF43D,
+	0xF374,0xF2AC,0xF1E4,0xF11D,0xF055,0xEF8E,0xEEC6,0xEDFF,0xED38,0xEC71,0xEBAB,0xEAE4,0xEA1E,0xE958,0xE893,0xE7CD,
+	0xE708,0xE643,0xE57E,0xE4B9,0xE3F5,0xE331,0xE26D,0xE1AA,0xE0E7,0xE024,0xDF61,0xDE9F,0xDDDD,0xDD1B,0xDC5A,0xDB99,
+	0xDAD9,0xDA18,0xD958,0xD899,0xD7DA,0xD71B,0xD65D,0xD59F,0xD4E1,0xD424,0xD368,0xD2AB,0xD1F0,0xD134,0xD079,0xCFBF,
+	0xCF05,0xCE4B,0xCD92,0xCCDA,0xCC22,0xCB6A,0xCAB3,0xC9FD,0xC947,0xC891,0xC7DC,0xC728,0xC674,0xC5C1,0xC50E,0xC45C,
+	0xC3AA,0xC2F9,0xC249,0xC199,0xC0EA,0xC03B,0xBF8D,0xBEE0,0xBE33,0xBD87,0xBCDB,0xBC30,0xBB86,0xBADD,0xBA34,0xB98C,
+	0xB8E4,0xB83D,0xB797,0xB6F2,0xB64D,0xB5A9,0xB506,0xB463,0xB3C1,0xB320,0xB280,0xB1E0,0xB141,0xB0A3,0xB006,0xAF69,
+	0xAECD,0xAE32,0xAD98,0xACFF,0xAC66,0xABCE,0xAB37,0xAAA1,0xAA0C,0xA977,0xA8E3,0xA851,0xA7BF,0xA72D,0xA69D,0xA60E,
+	0xA57F,0xA4F1,0xA464,0xA3D8,0xA34D,0xA2C3,0xA23A,0xA1B1,0xA12A,0xA0A3,0xA01E,0x9F99,0x9F15,0x9E92,0x9E11,0x9D90,
+	0x9D10,0x9C90,0x9C12,0x9B95,0x9B19,0x9A9E,0x9A24,0x99AA,0x9932,0x98BB,0x9845,0x97CF,0x975B,0x96E8,0x9676,0x9604,
+	0x9594,0x9525,0x94B7,0x944A,0x93DE,0x9372,0x9308,0x92A0,0x9238,0x91D1,0x916B,0x9106,0x90A3,0x9040,0x8FDF,0x8F7E,
+	0x8F1F,0x8EC1,0x8E64,0x8E08,0x8DAD,0x8D53,0x8CFA,0x8CA2,0x8C4C,0x8BF6,0x8BA2,0x8B4F,0x8AFD,0x8AAC,0x8A5C,0x8A0E,
+	0x89C0,0x8974,0x8929,0x88DE,0x8896,0x884E,0x8807,0x87C2,0x877D,0x873A,0x86F8,0x86B7,0x8678,0x8639,0x85FC,0x85C0,
+	0x8585,0x854B,0x8513,0x84DB,0x84A5,0x8470,0x843C,0x8409,0x83D8,0x83A8,0x8379,0x834B,0x831E,0x82F3,0x82C8,0x829F,
+	0x8278,0x8251,0x822C,0x8207,0x81E4,0x81C3,0x81A2,0x8183,0x8165,0x8148,0x812C,0x8112,0x80F8,0x80E0,0x80CA,0x80B4,
+	0x80A0,0x808D,0x807B,0x806A,0x805B,0x804D,0x8040,0x8034,0x8029,0x8020,0x8018,0x8011,0x800C,0x8008,0x8004,0x8003,
+	0x8002,0x8003,0x8004,0x8008,0x800C,0x8011,0x8018,0x8020,0x8029,0x8034,0x8040,0x804D,0x805B,0x806A,0x807B,0x808D,
+	0x80A0,0x80B4,0x80CA,0x80E0,0x80F8,0x8112,0x812C,0x8148,0x8165,0x8183,0x81A2,0x81C3,0x81E4,0x8207,0x822C,0x8251,
+	0x8278,0x829F,0x82C8,0x82F3,0x831E,0x834B,0x8379,0x83A8,0x83D8,0x8409,0x843C,0x8470,0x84A5,0x84DB,0x8513,0x854B,
+	0x8585,0x85C0,0x85FC,0x8639,0x8678,0x86B7,0x86F8,0x873A,0x877D,0x87C2,0x8807,0x884E,0x8896,0x88DE,0x8929,0x8974,
+	0x89C0,0x8A0E,0x8A5C,0x8AAC,0x8AFD,0x8B4F,0x8BA2,0x8BF6,0x8C4C,0x8CA2,0x8CFA,0x8D53,0x8DAD,0x8E08,0x8E64,0x8EC1,
+	0x8F1F,0x8F7E,0x8FDF,0x9040,0x90A3,0x9106,0x916B,0x91D1,0x9238,0x92A0,0x9308,0x9372,0x93DE,0x944A,0x94B7,0x9525,
+	0x9594,0x9604,0x9676,0x96E8,0x975B,0x97CF,0x9845,0x98BB,0x9932,0x99AA,0x9A24,0x9A9E,0x9B19,0x9B95,0x9C12,0x9C90,
+	0x9D10,0x9D90,0x9E11,0x9E92,0x9F15,0x9F99,0xA01E,0xA0A3,0xA12A,0xA1B1,0xA23A,0xA2C3,0xA34D,0xA3D8,0xA464,0xA4F1,
+	0xA57F,0xA60E,0xA69D,0xA72D,0xA7BF,0xA851,0xA8E3,0xA977,0xAA0C,0xAAA1,0xAB37,0xABCE,0xAC66,0xACFF,0xAD98,0xAE32,
+	0xAECD,0xAF69,0xB006,0xB0A3,0xB141,0xB1E0,0xB280,0xB320,0xB3C1,0xB463,0xB506,0xB5A9,0xB64D,0xB6F2,0xB797,0xB83D,
+	0xB8E4,0xB98C,0xBA34,0xBADD,0xBB86,0xBC30,0xBCDB,0xBD87,0xBE33,0xBEE0,0xBF8D,0xC03B,0xC0EA,0xC199,0xC249,0xC2F9,
+	0xC3AA,0xC45C,0xC50E,0xC5C1,0xC674,0xC728,0xC7DC,0xC891,0xC947,0xC9FD,0xCAB3,0xCB6A,0xCC22,0xCCDA,0xCD92,0xCE4B,
+	0xCF05,0xCFBF,0xD079,0xD134,0xD1F0,0xD2AB,0xD368,0xD424,0xD4E1,0xD59F,0xD65D,0xD71B,0xD7DA,0xD899,0xD958,0xDA18,
+	0xDAD9,0xDB99,0xDC5A,0xDD1B,0xDDDD,0xDE9F,0xDF61,0xE024,0xE0E7,0xE1AA,0xE26D,0xE331,0xE3F5,0xE4B9,0xE57E,0xE643,
+	0xE708,0xE7CD,0xE893,0xE958,0xEA1E,0xEAE4,0xEBAB,0xEC71,0xED38,0xEDFF,0xEEC6,0xEF8E,0xF055,0xF11D,0xF1E4,0xF2AC,
+	0xF374,0xF43D,0xF505,0xF5CD,0xF696,0xF75E,0xF827,0xF8EF,0xF9B8,0xFA81,0xFB4A,0xFC13,0xFCDC,0xFDA5,0xFE6E,0xFF37,
+	0x0000,0x00C9,0x0192,0x025B,0x0324,0x03ED,0x04B6,0x057F,0x0648,0x0711,0x07D9,0x08A2,0x096A,0x0A33,0x0AFB,0x0BC3,
+	0x0C8C,0x0D54,0x0E1C,0x0EE3,0x0FAB,0x1072,0x113A,0x1201,0x12C8,0x138F,0x1455,0x151C,0x15E2,0x16A8,0x176D,0x1833,
+	0x18F8,0x19BD,0x1A82,0x1B47,0x1C0B,0x1CCF,0x1D93,0x1E56,0x1F19,0x1FDC,0x209F,0x2161,0x2223,0x22E5,0x23A6,0x2467,
+	0x2527,0x25E8,0x26A8,0x2767,0x2826,0x28E5,0x29A3,0x2A61,0x2B1F,0x2BDC,0x2C98,0x2D55,0x2E10,0x2ECC,0x2F87,0x3041,
+	0x30FB,0x31B5,0x326E,0x3326,0x33DE,0x3496,0x354D,0x3603,0x36B9,0x376F,0x3824,0x38D8,0x398C,0x3A3F,0x3AF2,0x3BA4,
+	0x3C56,0x3D07,0x3DB7,0x3E67,0x3F16,0x3FC5,0x4073,0x4120,0x41CD,0x4279,0x4325,0x43D0,0x447A,0x4523,0x45CC,0x4674,
+	0x471C,0x47C3,0x4869,0x490E,0x49B3,0x4A57,0x4AFA,0x4B9D,0x4C3F,0x4CE0,0x4D80,0x4E20,0x4EBF,0x4F5D,0x4FFA,0x5097,
+	0x5133,0x51CE,0x5268,0x5301,0x539A,0x5432,0x54C9,0x555F,0x55F4,0x5689,0x571D,0x57AF,0x5841,0x58D3,0x5963,0x59F2,
+	0x5A81,0x5B0F,0x5B9C,0x5C28,0x5CB3,0x5D3D,0x5DC6,0x5E4F,0x5ED6,0x5F5D,0x5FE2,0x6067,0x60EB,0x616E,0x61EF,0x6270,
+	0x62F0,0x6370,0x63EE,0x646B,0x64E7,0x6562,0x65DC,0x6656,0x66CE,0x6745,0x67BB,0x6831,0x68A5,0x6918,0x698A,0x69FC,
+	0x6A6C,0x6ADB,0x6B49,0x6BB6,0x6C22,0x6C8E,0x6CF8,0x6D60,0x6DC8,0x6E2F,0x6E95,0x6EFA,0x6F5D,0x6FC0,0x7021,0x7082,
+	0x70E1,0x713F,0x719C,0x71F8,0x7253,0x72AD,0x7306,0x735E,0x73B4,0x740A,0x745E,0x74B1,0x7503,0x7554,0x75A4,0x75F2,
+	0x7640,0x768C,0x76D7,0x7722,0x776A,0x77B2,0x77F9,0x783E,0x7883,0x78C6,0x7908,0x7949,0x7988,0x79C7,0x7A04,0x7A40,
+	0x7A7B,0x7AB5,0x7AED,0x7B25,0x7B5B,0x7B90,0x7BC4,0x7BF7,0x7C28,0x7C58,0x7C87,0x7CB5,0x7CE2,0x7D0D,0x7D38,0x7D61,
+	0x7D88,0x7DAF,0x7DD4,0x7DF9,0x7E1C,0x7E3D,0x7E5E,0x7E7D,0x7E9B,0x7EB8,0x7ED4,0x7EEE,0x7F08,0x7F20,0x7F36,0x7F4C,
+	0x7F60,0x7F73,0x7F85,0x7F96,0x7FA5,0x7FB3,0x7FC0,0x7FCC,0x7FD7,0x7FE0,0x7FE8,0x7FEF,0x7FF4,0x7FF8,0x7FFC,0x7FFD
+};
+
+static const uint8_t starColConv[24] = { 2,2,2,2,2,2,2,2, 2,2,2,1,1,1,3,3, 3,3,3,3,3,3,3,3 };
+static const int16_t *sin32767 = (const int16_t *)sinusTables, *cos32767 = (const int16_t *)&sinusTables[256];
 static char *customText0 = "Original FT2 by Magnus \"Vogue\" H\224gdahl & Fredrik \"Mr.H\" Huss";
-static char *customText1 = "Clone by Olav \"8bitbubsy\" S\025rensen";
+static char *customText1 = "Clone by Olav \"8bitbubsy\" S\233rensen";
 static char *customText2 = "https://16-bits.org";
 static char customText3[256];
 static int16_t customText0X, customText0Y, customText1Y, customText2Y;
 static int16_t customText3Y, customText1X, customText2X, customText3X;
-static int16_t sin16[SINUS_PHASES];
-static uint16_t logoAlpha16, starShineAlpha16, starAlpha16;
+static int16_t sin16[SINUS_PHASES], hastighet;
+static int32_t lastStarScreenPos[1000];
+static uint16_t logoAlpha16, starShineAlpha16;
 static uint32_t randSeed, sinp1, sinp2;
-static vector_t starPoints[NUM_STARS], rotation;
-static matrix_t matrix;
+static oldVector_t starcrd[1000];
+static oldRotate_t star_a;
+static oldMatrix_t starmat;
+static vector_t starPoints[NUM_STARS], starRotation;
+static matrix_t starMatrix;
 
 void seedAboutScreenRandom(uint32_t newseed)
 {
@@ -47,7 +152,7 @@
 	randSeed = newseed;
 }
 
-static int32_t random32(void)
+static inline int32_t random32(void)
 {
 	randSeed *= 134775813;
 	randSeed += 1;
@@ -54,54 +159,20 @@
 	return randSeed;
 }
 
-static void rotateMatrix(void)
+static inline int32_t pascalRandom32(int32_t l) // Turbo Pascal Random() implementation
 {
-#define MY_2PI_FLOAT 6.2831853071796f
+	int32_t r;
 
-	const float xsin = sinf(rotation.x * MY_2PI_FLOAT);
-	const float xcos = cosf(rotation.x * MY_2PI_FLOAT);
+	randSeed *= 134775813;
+	randSeed += 1;
 
-	const float ysin = sinf(rotation.y * MY_2PI_FLOAT);
-	const float ycos = cosf(rotation.y * MY_2PI_FLOAT);
-
-	const float zsin = sinf(rotation.z * MY_2PI_FLOAT);
-	const float zcos = cosf(rotation.z * MY_2PI_FLOAT);
-
-	// x
-	matrix.x.x = (xcos * zcos) + (zsin * xsin * ysin);
-	matrix.y.x = xsin * ycos;
-	matrix.z.x = (zcos * xsin * ysin) - (xcos * zsin);
-
-	// y
-	matrix.x.y = (zsin * xcos * ysin) - (xsin * zcos);
-	matrix.y.y = xcos * ycos;
-	matrix.z.y = (xsin * zsin) + (zcos * xcos * ysin);
-
-	// z
-	matrix.x.z = ycos * zsin;
-	matrix.y.z = -ysin;
-	matrix.z.z = ycos * zcos;
+	r = ((int64_t)randSeed * l) >> 32;
+	return r;
 }
 
-void initAboutScreen(void)
+static inline int32_t sqr(int32_t x)
 {
-	vector_t *s = starPoints;
-	for (int32_t i = 0; i < NUM_STARS; i++, s++)
-	{
-		s->x = (float)(random32() * (1.0 / (UINT32_MAX+1.0)));
-		s->y = (float)(random32() * (1.0 / (UINT32_MAX+1.0)));
-		s->z = (float)(random32() * (1.0 / (UINT32_MAX+1.0)));
-	}
-
-	// pre-calc sinus table
-	for (int32_t i = 0; i < SINUS_PHASES; i++)
-		sin16[i] = (int16_t)round(32767.0 * sin(i * M_PI * 2.0 / SINUS_PHASES));
-
-	sinp1 = 0;
-	sinp2 = SINUS_PHASES/4; // cosine offset
-	logoAlpha16 = (65535 * LOGO_ALPHA_PERCENTAGE) / 100;
-	starShineAlpha16 = (65535 * STARSHINE_ALPHA_PERCENTAGE) / 100;
-	starAlpha16 = (65535 * STAR_ALPHA_PERCENTAGE) / 100;
+	return x * x;
 }
 
 static uint32_t blendPixels(uint32_t pixelA, uint32_t pixelB, uint16_t alpha)
@@ -127,110 +198,227 @@
 	*p = RGB32(r, g, b);
 }
 
-static void starfield(void)
+static void fixaMatris(oldRotate_t a, oldMatrix_t *mat)
 {
-	vector_t *star = starPoints;
-	for (int16_t i = 0; i < NUM_STARS; i++, star++)
+	const int16_t sa = sin32767[a.x >> 6];
+	const int16_t ca = cos32767[a.x >> 6];
+	const int16_t sb = sin32767[a.y >> 6];
+	const int16_t cb = cos32767[a.y >> 6];
+	const int16_t sc = sin32767[a.z >> 6];
+	const int16_t cc = cos32767[a.z >> 6];
+
+	mat->x.x = ((ca * cc) >> 16) + (((sc * ((sa * sb) >> 16)) >> 16) << 1);
+	mat->y.x = (sa * cb) >> 16;
+	mat->z.x = (((cc * ((sa * sb) >> 16)) >> 16) << 1) - ((ca * sc) >> 16);
+
+	mat->x.y = (((sc * ((ca * sb) >> 16)) >> 16) << 1) - ((sa * cc) >> 16);
+	mat->y.y = (ca * cb) >> 16;
+	mat->z.y = ((sa * sc) >> 16) + (((cc * ((ca * sb) >> 16)) >> 16) << 1);
+
+	mat->x.z = (cb * sc) >> 16;
+	mat->y.z = 0 - (sb >> 1);
+	mat->z.z = (cb * cc) >> 16;
+}
+
+static void newStarfield(void)
+{
+	if (config.useNewAboutScreen)
 	{
-		star->z += 0.0001f;
-		if (star->z >= 0.5f)
-			star->z -= 1.0f;
+		vector_t *star = starPoints;
+		for (int16_t i = 0; i < NUM_STARS; i++, star++)
+		{
+			star->z += 0.0001f;
+			if (star->z >= 0.5f)
+				star->z -= 1.0f;
 
-		const float z = (matrix.x.z * star->x) + (matrix.y.z * star->y) + (matrix.z.z * star->z) + 0.5f;
-		if (z <= 0.0f)
-			continue;
+			const float z = (starMatrix.x.z * star->x) + (starMatrix.y.z * star->y) + (starMatrix.z.z * star->z) + 0.5f;
+			if (z <= 0.0f)
+				continue;
 
-		float y = (((matrix.x.y * star->x) + (matrix.y.y * star->y) + (matrix.z.y * star->z)) / z) * 400.0f;
-		const int32_t outY = (ABOUT_SCREEN_Y+(ABOUT_SCREEN_H/2)) + (int32_t)y;
-		if (outY < ABOUT_SCREEN_Y || outY >= ABOUT_SCREEN_Y+ABOUT_SCREEN_H)
-			continue;
+			float y = (((starMatrix.x.y * star->x) + (starMatrix.y.y * star->y) + (starMatrix.z.y * star->z)) / z) * 400.0f;
+			const int32_t outY = (ABOUT_SCREEN_Y+(ABOUT_SCREEN_H/2)) + (int32_t)y;
+			if (outY < ABOUT_SCREEN_Y || outY >= ABOUT_SCREEN_Y+ABOUT_SCREEN_H)
+				continue;
 
-		float x = (((matrix.x.x * star->x) + (matrix.y.x * star->y) + (matrix.z.x * star->z)) / z) * 400.0f;
-		const int32_t outX = (ABOUT_SCREEN_X+(ABOUT_SCREEN_W/2)) + (int32_t)x;
-		if (outX < ABOUT_SCREEN_X || outX >= ABOUT_SCREEN_X+ABOUT_SCREEN_W)
-			continue;
+			float x = (((starMatrix.x.x * star->x) + (starMatrix.y.x * star->y) + (starMatrix.z.x * star->z)) / z) * 400.0f;
+			const int32_t outX = (ABOUT_SCREEN_X+(ABOUT_SCREEN_W/2)) + (int32_t)x;
+			if (outX < ABOUT_SCREEN_X || outX >= ABOUT_SCREEN_X+ABOUT_SCREEN_W)
+				continue;
 
-		int32_t intensity255 = (int32_t)(z * 256.0f);
-		if (intensity255 > 255)
-			intensity255 = 255;
-		intensity255 ^= 255;
+			int32_t intensity255 = (int32_t)(z * 256.0f);
+			if (intensity255 > 255)
+				intensity255 = 255;
+			intensity255 ^= 255;
 
-		// add a tint of blue to the star pixel
+			// add a tint of blue to the star pixel
 
-		int32_t r = intensity255 - 79;
-		if (r < 0)
-			r = 0;
+			int32_t r = intensity255 - 79;
+			if (r < 0)
+				r = 0;
 
-		int32_t g = intensity255 - 38;
-		if (g < 0)
-			g = 0;
+			int32_t g = intensity255 - 38;
+			if (g < 0)
+				g = 0;
 
-		int32_t b = intensity255 + 64;
-		if (b > 255)
-			b = 255;
+			int32_t b = intensity255 + 64;
+			if (b > 255)
+				b = 255;
 
-		// plot and blend sides of star (basic shine effect)
+			// plot and blend sides of star (basic shine effect)
 
-		if (outX-1 >= ABOUT_SCREEN_X)
-			blendPixelsXY(outX-1, outY, r, g, b, starShineAlpha16);
+			if (outX-1 >= ABOUT_SCREEN_X)
+				blendPixelsXY(outX-1, outY, r, g, b, starShineAlpha16);
 
-		if (outX+1 < ABOUT_SCREEN_X+ABOUT_SCREEN_W)
-			blendPixelsXY(outX+1, outY, r, g, b, starShineAlpha16);
+			if (outX+1 < ABOUT_SCREEN_X+ABOUT_SCREEN_W)
+				blendPixelsXY(outX+1, outY, r, g, b, starShineAlpha16);
 
-		if (outY-1 >= ABOUT_SCREEN_Y)
-			blendPixelsXY(outX, outY-1, r, g, b, starShineAlpha16);
+			if (outY-1 >= ABOUT_SCREEN_Y)
+				blendPixelsXY(outX, outY-1, r, g, b, starShineAlpha16);
 
-		if (outY+1 < ABOUT_SCREEN_Y+ABOUT_SCREEN_H)
-			blendPixelsXY(outX, outY+1, r, g, b, starShineAlpha16);
+			if (outY+1 < ABOUT_SCREEN_Y+ABOUT_SCREEN_H)
+				blendPixelsXY(outX, outY+1, r, g, b, starShineAlpha16);
 
-		// plot center pixel
-		blendPixelsXY(outX, outY, r, g, b, starAlpha16);
+			// plot center pixel
+			video.frameBuffer[(outY * SCREEN_W) + outX] = RGB32(r, g, b);
+		}
 	}
 }
 
-void renderAboutScreenFrame(void)
+static void realStars(void)
 {
-	// remember the days when you couldn't afford to do this per frame?
-	clearRect(ABOUT_SCREEN_X, ABOUT_SCREEN_Y, ABOUT_SCREEN_W, ABOUT_SCREEN_H);
+	uint8_t col;
+	int16_t z, xx, xy, xz, yx, yy, yz, zx, zy, zz;
+	int32_t x, y, screenBufferPos;
 
-	// 3D starfield
-	rotateMatrix();
-	rotation.x -= 0.0003f;
-	rotation.y -= 0.0002f;
-	rotation.z += 0.0001f;
-	starfield();
+	xx = starmat.x.x; xy = starmat.x.y; xz = starmat.x.z;
+	yx = starmat.y.x; yy = starmat.y.y; yz = starmat.y.z;
+	zx = starmat.z.x; zy = starmat.z.y; zz = starmat.z.z;
 
-	// waving FT2 logo
-
-	uint32_t *dstPtr = video.frameBuffer + (ABOUT_SCREEN_Y * SCREEN_W) + ABOUT_SCREEN_X;
-	for (int32_t y = 0; y < ABOUT_SCREEN_H; y++, dstPtr += SCREEN_W)
+	oldVector_t *star = starcrd;
+	for (int32_t i = 0; i < 1000; i++, star++)
 	{
-		for (int32_t x = 0; x < ABOUT_SCREEN_W; x++)
+		// erase last star pixel
+		screenBufferPos = lastStarScreenPos[i];
+		if (screenBufferPos >= 0)
 		{
-			int32_t srcX = (x - ((ABOUT_SCREEN_W-ABOUT_LOGO_W)/2))    + (sin16[(sinp1+x)     & (SINUS_PHASES-1)] >> 10);
-			int32_t srcY = (y - ((ABOUT_SCREEN_H-ABOUT_LOGO_H)/2)+20) + (sin16[(sinp2+y+x+x) & (SINUS_PHASES-1)] >> 11);
+			video.frameBuffer[screenBufferPos] = video.palette[PAL_BCKGRND];
+			lastStarScreenPos[i] = -1;
+		}
 
-			if ((uint32_t)srcX < ABOUT_LOGO_W && (uint32_t)srcY < ABOUT_LOGO_H)
+		star->z += hastighet; // this intentionally overflows int16_t
+
+		z = (((xz * star->x) >> 16) + ((yz * star->y) >> 16) + ((zz * star->z) >> 16)) + 9000;
+		if (z <= 100) continue;
+		
+		y = ((xy * star->x) >> 16) + ((yy * star->y) >> 16) + ((zy * star->z) >> 16);
+		y = (int16_t)((y << 7) / z) + 84;
+		if ((uint16_t)y > 173-6) continue;
+
+		x = ((xx * star->x) >> 16) + ((yx * star->y) >> 16) + ((zx * star->z) >> 16);
+		x = (int16_t)((((x >> 2) + x) << 7) / z) + (320-8);
+		if ((uint16_t)x >= 640-16)
+			continue;
+
+		// render star pixel only if the pixel under it is the background color
+		screenBufferPos = ((y + 4) * SCREEN_W) + (x + 4);
+		if ((video.frameBuffer[screenBufferPos] >> 24) == PAL_BCKGRND)
+		{
+			col = ((uint8_t)~(z >> 8) >> 3) - (22 - 8);
+			if (col < 24)
 			{
-				const uint32_t logoPixel = bmp.ft2AboutLogo[(srcY * ABOUT_LOGO_W) + srcX];
-				if (logoPixel != 0x00FF00) // transparency
-					dstPtr[x] = blendPixels(dstPtr[x], logoPixel, logoAlpha16);
+				video.frameBuffer[screenBufferPos] = video.palette[starColConv[col]];
+				lastStarScreenPos[i] = screenBufferPos;
 			}
 		}
 	}
+}
 
-	sinp1 = (sinp1 + 2) & (SINUS_PHASES-1);
-	sinp2 = (sinp2 + 3) & (SINUS_PHASES-1);
+static void rotateStarfieldMatrix(void)
+{
+#define F_2PI (float)(2.0 * PI)
 
-	// static texts
-	textOut(customText0X, customText0Y, PAL_FORGRND, customText0);
-	textOut(customText1X, customText1Y, PAL_FORGRND, customText1);
-	textOut(customText2X, customText2Y, PAL_FORGRND, customText2);
-	textOut(customText3X, customText3Y, PAL_FORGRND, customText3);
+	const float rx2p = starRotation.x * F_2PI;
+	const float xsin = sinf(rx2p);
+	const float xcos = cosf(rx2p);
 
-	showPushButton(PB_EXIT_ABOUT); // yes, we have to redraw the exit button per frame :)
+	const float ry2p = starRotation.y * F_2PI;
+	const float ysin = sinf(ry2p);
+	const float ycos = cosf(ry2p);
+
+	const float rz2p = starRotation.z * F_2PI;
+	const float zsin = sinf(rz2p);
+	const float zcos = cosf(rz2p);
+
+	// x
+	starMatrix.x.x = (xcos * zcos) + (zsin * xsin * ysin);
+	starMatrix.y.x = xsin * ycos;
+	starMatrix.z.x = (zcos * xsin * ysin) - (xcos * zsin);
+
+	// y
+	starMatrix.x.y = (zsin * xcos * ysin) - (xsin * zcos);
+	starMatrix.y.y = xcos * ycos;
+	starMatrix.z.y = (xsin * zsin) + (zcos * xcos * ysin);
+
+	// z
+	starMatrix.x.z = ycos * zsin;
+	starMatrix.y.z = 0.0f - ysin;
+	starMatrix.z.z = ycos * zcos;
 }
 
+void renderAboutScreenFrame(void)
+{
+	if (config.useNewAboutScreen)
+	{
+		clearRect(ABOUT_SCREEN_X, ABOUT_SCREEN_Y, ABOUT_SCREEN_W, ABOUT_SCREEN_H);
+
+		// 3D starfield
+		newStarfield();
+		starRotation.x -= 0.0003f;
+		starRotation.y -= 0.0002f;
+		starRotation.z += 0.0001f;
+		rotateStarfieldMatrix();
+
+		// waving FT2 logo
+	
+		uint32_t *dstPtr = video.frameBuffer + (ABOUT_SCREEN_Y * SCREEN_W) + ABOUT_SCREEN_X;
+		for (int32_t y = 0; y < ABOUT_SCREEN_H; y++, dstPtr += SCREEN_W)
+		{
+			for (int32_t x = 0; x < ABOUT_SCREEN_W; x++)
+			{
+				int32_t srcX = (x - ((ABOUT_SCREEN_W-ABOUT_LOGO_W)/2))    + (sin16[(sinp1+x)     & (SINUS_PHASES-1)] >> 10);
+				int32_t srcY = (y - ((ABOUT_SCREEN_H-ABOUT_LOGO_H)/2)+20) + (sin16[(sinp2+y+x+x) & (SINUS_PHASES-1)] >> 11);
+
+				if ((uint32_t)srcX < ABOUT_LOGO_W && (uint32_t)srcY < ABOUT_LOGO_H)
+				{
+					const uint32_t logoPixel = bmp.ft2AboutLogo[(srcY * ABOUT_LOGO_W) + srcX];
+					if (logoPixel != 0x00FF00) // transparency
+						dstPtr[x] = blendPixels(dstPtr[x], logoPixel, logoAlpha16);
+				}
+			}
+		}
+
+		sinp1 = (sinp1 + 2) & (SINUS_PHASES-1);
+		sinp2 = (sinp2 + 3) & (SINUS_PHASES-1);
+
+		// render static texts
+		textOut(customText0X, customText0Y, PAL_FORGRND, customText0);
+		textOut(customText1X, customText1Y, PAL_FORGRND, customText1);
+		textOut(customText2X, customText2Y, PAL_FORGRND, customText2);
+		textOut(customText3X, customText3Y, PAL_FORGRND, customText3);
+	}
+	else // old FT2 about screen
+	{
+		star_a.x += 3*64;
+		star_a.y += 2*64;
+		star_a.z -= 1*64;
+
+		fixaMatris(star_a, &starmat);
+		realStars();
+	}
+
+	showPushButton(PB_EXIT_ABOUT); // yes, we also have to redraw the exit button per frame :)
+}
+
 void showAboutScreen(void) // called once when about screen is opened
 {
 	if (ui.extendedPatternEditor)
@@ -243,15 +431,111 @@
 
 	showPushButton(PB_EXIT_ABOUT);
 
-	sprintf(customText3, "v%s (%s)", PROG_VER_STR, __DATE__);
-	customText0X = (SCREEN_W    - textWidth(customText0)) / 2;
-	customText1X = (SCREEN_W    - textWidth(customText1)) / 2;
-	customText2X = (SCREEN_W-8) - textWidth(customText2);
-	customText3X = (SCREEN_W-8) - textWidth(customText3);
-	customText0Y = 157-28;
-	customText1Y = 157-12;
-	customText2Y = 157-12;
-	customText3Y = 157;
+	if (config.useNewAboutScreen)
+	{
+		vector_t *s = starPoints;
+		for (int32_t i = 0; i < NUM_STARS; i++, s++)
+		{
+			s->x = (float)(random32() * (1.0 / (UINT32_MAX+1.0)));
+			s->y = (float)(random32() * (1.0 / (UINT32_MAX+1.0)));
+			s->z = (float)(random32() * (1.0 / (UINT32_MAX+1.0)));
+		}
+
+		// pre-calc sinus table
+		for (int32_t i = 0; i < SINUS_PHASES; i++)
+			sin16[i] = (int16_t)round(32767.0 * sin(i * PI * 2.0 / SINUS_PHASES));
+
+		sinp1 = 0;
+		sinp2 = SINUS_PHASES/4; // cosine offset
+		logoAlpha16 = (65535 * LOGO_ALPHA_PERCENTAGE) / 100;
+		starShineAlpha16 = (65535 * STARSHINE_ALPHA_PERCENTAGE) / 100;
+
+		sprintf(customText3, "v%s (%s)", PROG_VER_STR, __DATE__);
+		customText0X = (SCREEN_W    - textWidth(customText0)) / 2;
+		customText1X = (SCREEN_W    - textWidth(customText1)) / 2;
+		customText2X = (SCREEN_W-8) - textWidth(customText2);
+		customText3X = (SCREEN_W-8) - textWidth(customText3);
+		customText0Y = 157-28;
+		customText1Y = 157-12;
+		customText2Y = 157-12;
+		customText3Y = 157;
+	}
+	else
+	{
+		oldVector_t *s = starcrd;
+
+		const uint8_t type = (uint8_t)pascalRandom32(4);
+		switch (type)
+		{
+			case 0:
+			{
+				hastighet = 309;
+				for (int32_t i = 0; i < 1000; i++, s++)
+				{
+					s->z = (int16_t)pascalRandom32(0xFFFF) - 0x8000;
+					s->y = (int16_t)pascalRandom32(0xFFFF) - 0x8000;
+					s->x = (int16_t)pascalRandom32(0xFFFF) - 0x8000;
+				}
+			}
+			break;
+
+			case 1:
+			{
+				hastighet = 0;
+				for (int32_t i = 0; i < 1000; i++, s++)
+				{
+					if (i < 1000/4)
+					{
+						s->z = (int16_t)pascalRandom32(0xFFFF) - 0x8000;
+						s->y = (int16_t)pascalRandom32(0xFFFF) - 0x8000;
+						s->x = (int16_t)pascalRandom32(0xFFFF) - 0x8000;
+					}
+					else
+					{
+						int32_t r = pascalRandom32(30000);
+						int32_t n = pascalRandom32(5);
+						int32_t w = ((2 * pascalRandom32(2)) - 1) * sqr(pascalRandom32(1000));
+						double ww = (((M_PI * 2.0) / 5.0) * n) + (r / 12000.0) + (w / 3000000.0);
+						int32_t h = ((sqr(r) / 30000) * (pascalRandom32(10000) - 5000)) / 12000;
+
+						s->x = (int16_t)trunc(r * cos(ww));
+						s->y = (int16_t)trunc(r * sin(ww));
+						s->z = (int16_t)h;
+					}
+				}
+			}
+			break;
+
+			case 2:
+			case 3:
+			{
+				hastighet = 0;
+				for (int32_t i = 0; i < 1000; i++, s++)
+				{
+					int32_t r = (int32_t)round(sqrt(pascalRandom32(500) * 500));
+					int32_t w = pascalRandom32(3000);
+					int32_t h = cos32767[(((w * 8) + r) / 16) & 1023] / 4;;
+
+					s->z = (int16_t)((cos32767[w & 1023] * (w + r)) / 3500);
+					s->y = (int16_t)((sin32767[w & 1023] * (w + r)) / 3500);
+					s->x = (int16_t)((h * r) / 500);
+				}
+			}
+			break;
+
+			default:
+				break;
+		}
+
+		star_a.x = 0;
+		star_a.y = 748;
+		star_a.z = 200;
+
+		for (int32_t i = 0; i < 1000; i++)
+			lastStarScreenPos[i] = -1;
+
+		blit(91, 31, bmp.ft2OldAboutLogo, 449, 111);
+	}
 
 	ui.aboutScreenShown = true;
 }
--- a/src/ft2_about.h
+++ b/src/ft2_about.h
@@ -1,10 +1,12 @@
-#pragma once
+#ifndef _ft2_about_h_
+#define _ft2_about_h_
 
 #include <stdint.h>
 
-void initAboutScreen(void);
 void renderAboutScreenFrame(void);
 void seedAboutScreenRandom(uint32_t newseed);
 void showAboutScreen(void);
 void hideAboutScreen(void);
 void exitAboutScreen(void);
+
+#endif
--- a/src/ft2_audio.c
+++ b/src/ft2_audio.c
@@ -5,6 +5,7 @@
 
 #include <stdio.h>
 #include <stdint.h>
+#include <math.h>
 #include "ft2_header.h"
 #include "ft2_config.h"
 #include "scopes/ft2_scopes.h"
@@ -14,6 +15,7 @@
 #include "ft2_wav_renderer.h"
 #include "ft2_tables.h"
 #include "ft2_structs.h"
+#include "ft2_audioselector.h"
 #include "mixer/ft2_mix.h"
 #include "mixer/ft2_silence_mix.h"
 
@@ -36,17 +38,6 @@
 pattSync_t pattSync;
 volatile bool pattQueueClearing, chQueueClearing;
 
-void resetCachedMixerVars(void)
-{
-	channel_t *ch = channel;
-	for (int32_t i = 0; i < MAX_CHANNELS; i++, ch++)
-		ch->oldFinalPeriod = -1;
-
-	voice_t *v = voice;
-	for (int32_t i = 0; i < MAX_CHANNELS*2; i++, v++)
-		v->oldDelta = 0;
-}
-
 void stopVoice(int32_t i)
 {
 	voice_t *v;
@@ -177,6 +168,7 @@
 
 	audio.samplesPerTickInt = audio.samplesPerTickIntTab[i];
 	audio.samplesPerTickFrac = audio.samplesPerTickFracTab[i];
+	audio.fSamplesPerTickIntMul = (float)(1.0 / (double)audio.samplesPerTickInt);
 
 	// for audio/video sync timestamp
 	tickTimeLenInt = audio.tickTimeIntTab[i];
@@ -261,11 +253,9 @@
 			const float fVolumeRDiff = 0.0f - f->fCurrVolumeR;
 
 			f->volumeRampLength = audio.quickVolRampSamples; // 5ms
-			const float fVolumeRampLength = (float)(int32_t)f->volumeRampLength;
+			f->fVolumeLDelta = fVolumeLDiff * audio.fQuickVolRampSamplesMul;
+			f->fVolumeRDelta = fVolumeRDiff * audio.fQuickVolRampSamplesMul;
 
-			f->fVolumeLDelta = fVolumeLDiff / fVolumeRampLength;
-			f->fVolumeRDelta = fVolumeRDiff / fVolumeRampLength;
-
 			f->isFadeOutVoice = true;
 		}
 
@@ -282,12 +272,20 @@
 		const float fVolumeLDiff = v->fTargetVolumeL - v->fCurrVolumeL;
 		const float fVolumeRDiff = v->fTargetVolumeR - v->fCurrVolumeR;
 
-		// IS_QuickVol = 5ms, otherwise the duration of a tick
-		v->volumeRampLength = (status & IS_QuickVol) ? audio.quickVolRampSamples : audio.samplesPerTickInt;
-		const float fVolumeRampLength = (float)(int32_t)v->volumeRampLength;
+		float fRampLengthMul;
+		if (status & IS_QuickVol) // duration of 5ms
+		{
+			v->volumeRampLength = audio.quickVolRampSamples;
+			fRampLengthMul = audio.fQuickVolRampSamplesMul;
+		}
+		else // duration of a tick
+		{
+			v->volumeRampLength = audio.samplesPerTickInt;
+			fRampLengthMul = audio.fSamplesPerTickIntMul;
+		}
 
-		v->fVolumeLDelta = fVolumeLDiff / fVolumeRampLength;
-		v->fVolumeRDelta = fVolumeRDiff / fVolumeRampLength;
+		v->fVolumeLDelta = fVolumeLDiff * fRampLengthMul;
+		v->fVolumeRDelta = fVolumeRDiff * fRampLengthMul;
 	}
 }
 
@@ -324,7 +322,7 @@
 		v->leftEdgeTaps8 = s->leftEdgeTapSamples8 + MAX_LEFT_TAPS;
 	}
 
-	v->hasLooped = false; // for sinc interpolation special case
+	v->hasLooped = false; // for cubic/sinc interpolation special case
 	v->samplingBackwards = false;
 	v->loopType = loopType;
 	v->sampleEnd = (loopType == LOOP_OFF) ? length : loopEnd;
@@ -340,7 +338,7 @@
 		return;
 	}
 
-	v->mixFuncOffset = ((int32_t)sample16Bit * 15) + (audio.interpolationType * 3) + loopType;
+	v->mixFuncOffset = ((int32_t)sample16Bit * 18) + (audio.interpolationType * 3) + loopType;
 	v->active = true;
 }
 
@@ -372,8 +370,8 @@
 		{
 			v->fVolume = ch->fFinalVol;
 
-			// set scope volume
-			const int32_t scopeVolume = (int32_t)((SCOPE_HEIGHT * ch->fFinalVol) + 0.5f); // rounded
+			// set scope volume (scaled)
+			const int32_t scopeVolume = (int32_t)((ch->fFinalVol * (SCOPE_HEIGHT*(1<<2))) + 0.5f); // rounded
 			v->scopeVolume = (uint8_t)scopeVolume;
 		}
 
@@ -385,32 +383,25 @@
 
 		if (status & IS_Period)
 		{
-			// use cached values when possible
-			if (ch->finalPeriod != ch->oldFinalPeriod)
-			{
-				ch->oldFinalPeriod = ch->finalPeriod;
+			const double dVoiceHz = dPeriod2Hz(ch->finalPeriod);
 
-				const double dHz = dPeriod2Hz(ch->finalPeriod);
+			// set voice delta
+			v->delta = (int64_t)((dVoiceHz * audio.dHz2MixDeltaMul) + 0.5); // Hz -> fixed-point delta (rounded)
 
-				// set voice delta
-				const uint64_t delta = v->oldDelta = (int64_t)((dHz * audio.dHz2MixDeltaMul) + 0.5); // Hz -> fixed-point delta (rounded)
+			// set scope delta
+			const double dHz2ScopeDeltaMul = SCOPE_FRAC_SCALE / (double)SCOPE_HZ;
+			v->scopeDelta = (int64_t)((dVoiceHz * dHz2ScopeDeltaMul) + 0.5); // Hz -> fixed-point delta (rounded)
 
-				if (audio.sincInterpolation) // decide which sinc LUT to use according to the resampling ratio
-				{
-					if (delta <= sincDownsample1Ratio)
-						v->fSincLUT = fKaiserSinc;
-					else if (delta <= sincDownsample2Ratio)
-						v->fSincLUT = fDownSample1;
-					else
-						v->fSincLUT = fDownSample2;
-				}
-
-				// set scope delta
-				const double dHz2ScopeDeltaMul = SCOPE_FRAC_SCALE / (double)SCOPE_HZ;
-				v->scopeDelta = (int64_t)((dHz * dHz2ScopeDeltaMul) + 0.5); // Hz -> fixed-point delta (rounded)
+			if (audio.sincInterpolation)
+			{
+				// decide which sinc LUT to use according to the resampling ratio
+				if (v->delta <= sincDownsample1Ratio)
+					v->fSincLUT = fKaiserSinc;
+				else if (v->delta <= sincDownsample2Ratio)
+					v->fSincLUT = fDownSample1;
+				else
+					v->fSincLUT = fDownSample2;
 			}
-
-			v->delta = v->oldDelta;
 		}
 
 		if (status & IS_Trigger)
@@ -423,8 +414,6 @@
 	int16_t *streamPtr16 = (int16_t *)stream;
 	for (uint32_t i = 0; i < sampleBlockLength; i++)
 	{
-		// TODO: This could use dithering (a proper implementation, that is...)
-
 		int32_t L = (int32_t)(audio.fMixBufferL[i] * fAudioNormalizeMul);
 		int32_t R = (int32_t)(audio.fMixBufferR[i] * fAudioNormalizeMul);
 
@@ -435,8 +424,7 @@
 		*streamPtr16++ = (int16_t)R;
 
 		// clear what we read from the mixing buffer
-		audio.fMixBufferL[i] = 0.0f;
-		audio.fMixBufferR[i] = 0.0f;
+		audio.fMixBufferL[i] = audio.fMixBufferR[i] = 0.0f;
 	}
 }
 
@@ -452,8 +440,7 @@
 		*fStreamPtr32++ = CLAMP(fR, -1.0f, 1.0f);
 
 		// clear what we read from the mixing buffer
-		audio.fMixBufferL[i] = 0.0f;
-		audio.fMixBufferR[i] = 0.0f;
+		audio.fMixBufferL[i] = audio.fMixBufferR[i] = 0.0f;
 	}
 }
 
@@ -462,6 +449,8 @@
 	voice_t *v = voice; // normal voices
 	voice_t *r = &voice[MAX_CHANNELS]; // volume ramp fadeout-voices
 
+	const int32_t mixOffsetBias = 3 * NUM_INTERPOLATORS * 2; // 3 = loop types (off/fwd/bidi), 2 = bit depths (8-bit/16-bit)
+
 	for (int32_t i = 0; i < song.numChannels; i++, v++, r++)
 	{
 		if (v->active)
@@ -470,11 +459,11 @@
 			if (!volRampFlag && v->fCurrVolumeL == 0.0f && v->fCurrVolumeR == 0.0f)
 				silenceMixRoutine(v, samplesToMix);
 			else
-				mixFuncTab[((int32_t)volRampFlag * (3*5*2)) + v->mixFuncOffset](v, bufferPosition, samplesToMix);
+				mixFuncTab[((int32_t)volRampFlag * mixOffsetBias) + v->mixFuncOffset](v, bufferPosition, samplesToMix);
 		}
 
 		if (r->active) // volume ramp fadeout-voice
-			mixFuncTab[(3*5*2) + r->mixFuncOffset](r, bufferPosition, samplesToMix);
+			mixFuncTab[mixOffsetBias + r->mixFuncOffset](r, bufferPosition, samplesToMix);
 	}
 }
 
@@ -952,13 +941,28 @@
 	want.callback = audioCallback;
 	want.samples  = configAudioBufSize;
 
-	audio.dev = SDL_OpenAudioDevice(audio.currOutputDevice, 0, &want, &have, SDL_AUDIO_ALLOW_ANY_CHANGE);
+	char *device = audio.currOutputDevice;
+	if (device != NULL && strcmp(device, DEFAULT_AUDIO_DEV_STR) == 0)
+		device = NULL; // force default device
+
+	audio.dev = SDL_OpenAudioDevice(device, 0, &want, &have, SDL_AUDIO_ALLOW_FREQUENCY_CHANGE);
 	if (audio.dev == 0)
 	{
-		if (showErrorMsg)
-			showErrorMsgBox("Couldn't open audio device:\n\"%s\"\n\nDo you have an audio device enabled and plugged in?", SDL_GetError());
+		audio.dev = SDL_OpenAudioDevice(NULL, 0, &want, &have, SDL_AUDIO_ALLOW_FREQUENCY_CHANGE);
+		if (audio.currOutputDevice != NULL)
+		{
+			free(audio.currOutputDevice);
+			audio.currOutputDevice = NULL;
+		}
+		audio.currOutputDevice = strdup(DEFAULT_AUDIO_DEV_STR);
 
-		return false;
+		if (audio.dev == 0)
+		{
+			if (showErrorMsg)
+				showErrorMsgBox("Couldn't open audio device:\n\"%s\"\n\nDo you have an audio device enabled and plugged in?", SDL_GetError());
+
+			return false;
+		}
 	}
 
 	// test if the received audio format is compatible
@@ -982,6 +986,7 @@
 		return false;
 	}
 
+	/*
 	if (have.freq != 44100 && have.freq != 48000 && have.freq != 96000)
 	{
 		if (showErrorMsg)
@@ -990,6 +995,7 @@
 		closeAudio();
 		return false;
 	}
+	*/
 
 	if (!setupAudioBuffers())
 	{
--- a/src/ft2_audio.h
+++ b/src/ft2_audio.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_audio_h_
+#define _ft2_audio_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -49,7 +50,7 @@
 
 	uint64_t tickTime64, tickTime64Frac;
 
-	float *fMixBufferL, *fMixBufferR;
+	float *fMixBufferL, *fMixBufferR, fQuickVolRampSamplesMul, fSamplesPerTickIntMul;
 	double dHz2MixDeltaMul;
 
 	SDL_AudioDeviceID dev;
@@ -64,7 +65,7 @@
 	uint8_t mixFuncOffset, panning, loopType, scopeVolume;
 	int32_t position, sampleEnd, loopStart, loopLength, oldPeriod;
 	uint32_t volumeRampLength;
-	uint64_t positionFrac, delta, oldDelta, scopeDelta;
+	uint64_t positionFrac, delta, scopeDelta;
 
 	// if (loopEnabled && hasLooped && samplingPos <= loopStart+MAX_LEFT_TAPS) readFixedTapsFromThisPointer();
 	const int8_t *leftEdgeTaps8;
@@ -74,9 +75,9 @@
 	float fVolume, fCurrVolumeL, fCurrVolumeR, fVolumeLDelta, fVolumeRDelta, fTargetVolumeL, fTargetVolumeR;
 } voice_t;
 
-#ifdef _MSC_VER
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct pattSyncData_t // used for audio/video sync queue (pack to save RAM)
 {
@@ -87,8 +88,8 @@
 __attribute__ ((packed))
 #endif
 pattSyncData_t;
-#ifdef _MSC_VER
-#pragma pack(pop)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack off
 #endif
 
 typedef struct pattSync_t
@@ -109,7 +110,6 @@
 	chSyncData_t data[SYNC_QUEUE_LEN+1];
 } chSync_t;
 
-void resetCachedMixerVars(void);
 int32_t pattQueueReadSize(void);
 int32_t pattQueueWriteSize(void);
 bool pattQueuePush(pattSyncData_t t);
@@ -157,3 +157,5 @@
 extern pattSync_t pattSync;
 
 extern volatile bool pattQueueClearing, chQueueClearing;
+
+#endif
--- a/src/ft2_audioselector.c
+++ b/src/ft2_audioselector.c
@@ -26,19 +26,6 @@
 #pragma warning(disable: 4996)
 #endif
 
-static char *getReasonableAudioDevice(int32_t iscapture) // can and will return NULL
-{
-	int32_t numAudioDevs = SDL_GetNumAudioDevices(iscapture);
-	if (numAudioDevs == 0 || numAudioDevs > 1)
-		return NULL; // we don't know which audio output device is the default device
-
-	const char *devName = SDL_GetAudioDeviceName(0, iscapture);
-	if (devName == NULL)
-		return NULL;
-
-	return strdup(devName);
-}
-
 char *getAudioOutputDeviceFromConfig(void)
 {
 	bool audioDeviceRead = false;
@@ -74,7 +61,7 @@
 		if (devString != NULL)
 			free(devString);
 
-		devString = getReasonableAudioDevice(OUTPUT_DEVICE);
+		devString = strdup(DEFAULT_AUDIO_DEV_STR);
 	}
 
 	// SDL_OpenAudioDevice() doesn't seem to like an empty audio device string
@@ -123,7 +110,7 @@
 		if (devString != NULL)
 			free(devString);
 
-		devString = getReasonableAudioDevice(INPUT_DEVICE);
+		devString = strdup(DEFAULT_AUDIO_DEV_STR);
 	}
 
 	// SDL_OpenAudioDevice() doesn't seem to like an empty audio device string
@@ -183,8 +170,12 @@
 				if (strcmp(audio.currOutputDevice, audio.outputDeviceNames[deviceEntry]) == 0)
 					fillRect(114, y, AUDIO_SELECTORS_BOX_WIDTH, 10, PAL_BOXSLCT); // selection background color
 			}
+			else if (i == 0) // default audio device (always on top)
+			{
+				fillRect(114, y, AUDIO_SELECTORS_BOX_WIDTH, 10, PAL_BOXSLCT); // selection background color
+			}
 
-			char *tmpString = utf8ToCp437(audio.outputDeviceNames[deviceEntry], true);
+			char *tmpString = utf8ToCp850(audio.outputDeviceNames[deviceEntry], true);
 			if (tmpString != NULL)
 			{
 				textOutClipX(114, y, PAL_FORGRND, tmpString, 114 + AUDIO_SELECTORS_BOX_WIDTH);
@@ -219,8 +210,12 @@
 				if (strcmp(audio.currInputDevice, audio.inputDeviceNames[deviceEntry]) == 0)
 					fillRect(114, y, AUDIO_SELECTORS_BOX_WIDTH, 10, PAL_BOXSLCT); // selection background color
 			}
+			else if (i == 0) // default audio device (always on top)
+			{
+				fillRect(114, y, AUDIO_SELECTORS_BOX_WIDTH, 10, PAL_BOXSLCT); // selection background color
+			}
 
-			char *tmpString = utf8ToCp437(audio.inputDeviceNames[deviceEntry], true);
+			char *tmpString = utf8ToCp850(audio.inputDeviceNames[deviceEntry], true);
 			if (tmpString != NULL)
 			{
 				textOutClipX(114, y, PAL_FORGRND, tmpString, 114 + AUDIO_SELECTORS_BOX_WIDTH);
@@ -406,13 +401,15 @@
 
 	// GET AUDIO OUTPUT DEVICES
 
-	audio.outputDeviceNum = SDL_GetNumAudioDevices(false);
+	audio.outputDeviceNum = 1 + SDL_GetNumAudioDevices(false);
 	if (audio.outputDeviceNum > MAX_AUDIO_DEVICES)
 		audio.outputDeviceNum = MAX_AUDIO_DEVICES;
 
-	for (int32_t i = 0; i < audio.outputDeviceNum; i++)
+	audio.outputDeviceNames[0] = strdup(DEFAULT_AUDIO_DEV_STR);
+
+	for (int32_t i = 1; i < audio.outputDeviceNum; i++)
 	{
-		const char *deviceName = SDL_GetAudioDeviceName(i, false);
+		const char *deviceName = SDL_GetAudioDeviceName(i-1, false);
 		if (deviceName == NULL)
 		{
 			audio.outputDeviceNum--; // hide device
@@ -431,13 +428,15 @@
 
 	// GET AUDIO INPUT DEVICES
 
-	audio.inputDeviceNum = SDL_GetNumAudioDevices(true);
+	audio.inputDeviceNum = 1 + SDL_GetNumAudioDevices(true);
 	if (audio.inputDeviceNum > MAX_AUDIO_DEVICES)
 		audio.inputDeviceNum = MAX_AUDIO_DEVICES;
 
-	for (int32_t i = 0; i < audio.inputDeviceNum; i++)
+	audio.inputDeviceNames[0] = strdup(DEFAULT_AUDIO_DEV_STR);
+
+	for (int32_t i = 1; i < audio.inputDeviceNum; i++)
 	{
-		const char *deviceName = SDL_GetAudioDeviceName(i, true);
+		const char *deviceName = SDL_GetAudioDeviceName(i-1, true);
 		if (deviceName == NULL)
 		{
 			audio.inputDeviceNum--; // hide device
--- a/src/ft2_audioselector.h
+++ b/src/ft2_audioselector.h
@@ -1,7 +1,9 @@
-#pragma once
+#ifndef _ft2_audioselector_h_
+#define _ft2_audioselector_h_
 
 #include <stdint.h>
 
+#define DEFAULT_AUDIO_DEV_STR "(Default Audio Device)"
 #define AUDIO_SELECTORS_BOX_WIDTH 247
 
 void setToDefaultAudioOutputDevice(void);
@@ -19,3 +21,5 @@
 void sbAudInputSetPos(uint32_t pos);
 void freeAudioDeviceLists(void);
 void freeAudioDeviceSelectorBuffers(void);
+
+#endif
--- a/src/ft2_bmp.c
+++ b/src/ft2_bmp.c
@@ -50,7 +50,7 @@
 static const uint32_t bmpCustomPalette[NUM_CUSTOM_PALS] =
 { // 0xC0FFEE = spacers
 	0x000000, 0x5397FF, 0x000067, 0x4BFFFF, 0xAB7787,
-	0xFFFFFF, 0x7F7F7F, 0xC0FFEE, 0x733747, 0xF7CBDB,
+	0xFFFFFF, 0x7F7F7F, 0xABCDEF, 0x733747, 0xF7CBDB,
 	0x434343, 0xD3D3D3, 0xFFFF00, 0xC0FFEE, 0xC0FFEE,
 	0xC0FFEE, 0xFF0000 // last value = loop pin line
 };
@@ -70,7 +70,9 @@
 {
 	memset(&bmp, 0, sizeof (bmp));
 
+	bmp.ft2OldAboutLogo = loadBMPTo4BitPal(ft2OldAboutLogoBMP);
 	bmp.ft2AboutLogo = loadBMPTo32Bit(ft2AboutLogoBMP);
+	bmp.buttonGfx = loadBMPTo1Bit(buttonGfxBMP);
 	bmp.font1 = loadBMPTo1Bit(font1BMP);
 	bmp.font2 = loadBMPTo1Bit(font2BMP);
 	bmp.font3 = loadBMPTo1Bit(font3BMP);
@@ -95,7 +97,7 @@
 	bmp.radiobuttonGfx = loadBMPTo4BitPal(radiobuttonGfxBMP);
 	bmp.checkboxGfx = loadBMPTo4BitPal(checkboxGfxBMP);
 
-	if (bmp.ft2AboutLogo == NULL || bmp.font1 == NULL || bmp.font2 == NULL ||
+	if (bmp.ft2OldAboutLogo == NULL || bmp.ft2AboutLogo == NULL || bmp.buttonGfx == NULL || bmp.font1 == NULL || bmp.font2 == NULL ||
 		bmp.font3 == NULL || bmp.font4 == NULL || bmp.font6 == NULL || bmp.font7 == NULL ||
 		bmp.font8 == NULL || bmp.ft2LogoBadges == NULL || bmp.ft2ByBadges == NULL ||
 		bmp.midiLogo == NULL || bmp.nibblesLogo == NULL || bmp.nibblesStages == NULL ||
@@ -113,7 +115,9 @@
 
 void freeBMPs(void)
 {
+	if (bmp.ft2OldAboutLogo != NULL) { free(bmp.ft2OldAboutLogo); bmp.ft2OldAboutLogo = NULL; }
 	if (bmp.ft2AboutLogo != NULL) { free(bmp.ft2AboutLogo); bmp.ft2AboutLogo = NULL; }
+	if (bmp.buttonGfx != NULL) { free(bmp.buttonGfx); bmp.buttonGfx = NULL; }
 	if (bmp.font1 != NULL) { free(bmp.font1); bmp.font1 = NULL; }
 	if (bmp.font2 != NULL) { free(bmp.font2); bmp.font2 = NULL; }
 	if (bmp.font3 != NULL) { free(bmp.font3); bmp.font3 = NULL; }
--- a/src/ft2_bmp.h
+++ b/src/ft2_bmp.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_bmp_h_
+#define _ft2_bmp_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -5,9 +6,9 @@
 
 typedef struct bmp_t
 {
-	uint8_t *font1, *font2, *font3, *font4, *font6, *font7, *font8;
+	uint8_t *buttonGfx, *font1, *font2, *font3, *font4, *font6, *font7, *font8;
 	uint8_t *ft2LogoBadges, *ft2ByBadges, *radiobuttonGfx, *checkboxGfx;
-	uint8_t *midiLogo, *nibblesLogo, *nibblesStages, *loopPins;
+	uint8_t *midiLogo, *nibblesLogo, *nibblesStages, *loopPins, *ft2OldAboutLogo;
 	uint8_t *mouseCursors, *mouseCursorBusyClock, *mouseCursorBusyGlass;
 	uint8_t *whitePianoKeys, *blackPianoKeys, *vibratoWaveforms, *scopeRec, *scopeMute;
 	uint32_t *ft2AboutLogo;
@@ -17,3 +18,5 @@
 
 bool loadBMPs(void);
 void freeBMPs(void);
+
+#endif
--- a/src/ft2_checkboxes.c
+++ b/src/ft2_checkboxes.c
@@ -82,7 +82,7 @@
 	// ------ CONFIG CHECKBOXES ------
 	//x,   y,   w,   h,  funcOnUp
 	{   3,  91,  77, 12, cbToggleAutoSaveConfig },
-	{ 508, 158, 107, 12, cbConfigVolRamp },
+	{ 512, 158, 107, 12, cbConfigVolRamp },
 	{ 113,  14, 108, 12, cbConfigPattStretch },
 	{ 113,  27, 117, 12, cbConfigHexCount },
 	{ 113,  40,  81, 12, cbConfigAccidential },
@@ -104,7 +104,7 @@
 	{ 212, 108, 143, 12, cbRecKeyOff },
 	{ 212, 121,  89, 12, cbQuantization },
 	{ 212, 134, 180, 25, cbChangePattLenInsDel },
-	{ 212, 159, 187, 12, cbMIDIAllowPC },
+	{ 212, 159, 182, 12, cbUseOldAboutScreen },
 	{ 411,  93,  83, 12, cbMIDIEnable },
 	{ 530, 106,  29, 12, cbMIDIRecAllChn },
 	{ 411, 119, 121, 12, cbMIDIRecTransp },
--- a/src/ft2_checkboxes.h
+++ b/src/ft2_checkboxes.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_checkboxes_h_
+#define _ft2_checkboxes_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -79,7 +80,7 @@
 	CB_CONF_REC_KEYOFF,
 	CB_CONF_QUANTIZATION,
 	CB_CONF_CHANGE_PATTLEN_INS_DEL,
-	CB_CONF_MIDI_ALLOW_PC,
+	CB_CONF_USE_OLD_ABOUT_SCREEN,
 	CB_CONF_MIDI_ENABLE,
 	CB_CONF_MIDI_REC_ALL,
 	CB_CONF_MIDI_REC_TRANS,
@@ -120,3 +121,5 @@
 void handleCheckBoxesWhileMouseDown(void);
 bool testCheckBoxMouseDown(void);
 void testCheckBoxMouseRelease(void);
+
+#endif
--- a/src/ft2_config.c
+++ b/src/ft2_config.c
@@ -139,7 +139,7 @@
 	config.recMIDIVolSens = CLAMP(config.recMIDIVolSens, 0, 200);
 	config.recMIDIChn  = CLAMP(config.recMIDIChn, 1, 16);
 
-	if (config.interpolation > 4)
+	if (config.interpolation >= NUM_INTERPOLATORS)
 		config.interpolation = INTERPOLATION_SINC8; // default (sinc, 8 point)
 
 	if (config.recTrueInsert > 1)
@@ -835,8 +835,10 @@
 		tmpID = RB_CONFIG_AUDIO_INTRP_LINEAR;
 	else if (config.interpolation == INTERPOLATION_SINC16)
 		tmpID = RB_CONFIG_AUDIO_INTRP_SINC16;
-	else if (config.interpolation == INTERPOLATION_CUBIC)
-		tmpID = RB_CONFIG_AUDIO_INTRP_CUBIC;
+	else if (config.interpolation == INTERPOLATION_CUBIC4)
+		tmpID = RB_CONFIG_AUDIO_INTRP_CUBIC4;
+	else if (config.interpolation == INTERPOLATION_CUBIC6)
+		tmpID = RB_CONFIG_AUDIO_INTRP_CUBIC6;
 	else
 		tmpID = RB_CONFIG_AUDIO_INTRP_SINC8; // default case
 
@@ -1021,7 +1023,7 @@
 	checkBoxes[CB_CONF_REC_KEYOFF].checked = config.recRelease;
 	checkBoxes[CB_CONF_QUANTIZATION].checked = config.recQuant;
 	checkBoxes[CB_CONF_CHANGE_PATTLEN_INS_DEL].checked = config.recTrueInsert;
-	checkBoxes[CB_CONF_MIDI_ALLOW_PC].checked = config.recMIDIAllowPC;
+	checkBoxes[CB_CONF_USE_OLD_ABOUT_SCREEN].checked = !config.useNewAboutScreen;
 #ifdef HAS_MIDI
 	checkBoxes[CB_CONF_MIDI_ENABLE].checked = midi.enable;
 #else
@@ -1046,7 +1048,7 @@
 	showCheckBox(CB_CONF_REC_KEYOFF);
 	showCheckBox(CB_CONF_QUANTIZATION);
 	showCheckBox(CB_CONF_CHANGE_PATTLEN_INS_DEL);
-	showCheckBox(CB_CONF_MIDI_ALLOW_PC);
+	showCheckBox(CB_CONF_USE_OLD_ABOUT_SCREEN);
 	showCheckBox(CB_CONF_MIDI_ENABLE);
 	showCheckBox(CB_CONF_MIDI_REC_ALL);
 	showCheckBox(CB_CONF_MIDI_REC_TRANS);
@@ -1126,13 +1128,13 @@
 			drawFramework(110,   0, 276, 87, FRAMEWORK_TYPE1);
 			drawFramework(110,  87, 276, 86, FRAMEWORK_TYPE1);
 
-			drawFramework(386,   0, 119, 58, FRAMEWORK_TYPE1);
-			drawFramework(386,  58, 119, 44, FRAMEWORK_TYPE1);
-			drawFramework(386, 102, 119, 71, FRAMEWORK_TYPE1);
+			drawFramework(386,   0, 123, 58, FRAMEWORK_TYPE1);
+			drawFramework(386,  58, 123, 29, FRAMEWORK_TYPE1);
+			drawFramework(386,  87, 123, 86, FRAMEWORK_TYPE1);
 
-			drawFramework(505,   0, 127, 58, FRAMEWORK_TYPE1);
-			drawFramework(505, 102, 127, 71, FRAMEWORK_TYPE1);
-			drawFramework(505,  58, 127, 44, FRAMEWORK_TYPE1);
+			drawFramework(509,   0, 123, 58, FRAMEWORK_TYPE1);
+			drawFramework(509, 102, 123, 71, FRAMEWORK_TYPE1);
+			drawFramework(509,  58, 123, 44, FRAMEWORK_TYPE1);
 
 			drawFramework(112,  16, AUDIO_SELECTORS_BOX_WIDTH+4, 69, FRAMEWORK_TYPE2);
 			drawFramework(112, 103, AUDIO_SELECTORS_BOX_WIDTH+4, 47, FRAMEWORK_TYPE2);
@@ -1161,33 +1163,34 @@
 			textOutShadow(336, 157, PAL_FORGRND, PAL_DSKTOP2, "96.0kHz");
 
 			textOutShadow(390,   3, PAL_FORGRND, PAL_DSKTOP2, "Audio buffer size:");
-			textOutShadow(406,  17, PAL_FORGRND, PAL_DSKTOP2, "Small");
-			textOutShadow(406,  31, PAL_FORGRND, PAL_DSKTOP2, "Medium (default)");
-			textOutShadow(406,  45, PAL_FORGRND, PAL_DSKTOP2, "Large");
+			textOutShadow(405,  17, PAL_FORGRND, PAL_DSKTOP2, "Small");
+			textOutShadow(405,  31, PAL_FORGRND, PAL_DSKTOP2, "Medium (default)");
+			textOutShadow(405,  45, PAL_FORGRND, PAL_DSKTOP2, "Large");
 
 			textOutShadow(390,  61, PAL_FORGRND, PAL_DSKTOP2, "Audio bit depth:");
-			textOutShadow(406,  75, PAL_FORGRND, PAL_DSKTOP2, "16-bit");
-			textOutShadow(406,  89, PAL_FORGRND, PAL_DSKTOP2, "32-bit (float)");
+			textOutShadow(405,  74, PAL_FORGRND, PAL_DSKTOP2, "16-bit");
+			textOutShadow(468,  74, PAL_FORGRND, PAL_DSKTOP2, "32-bit");
 
-			textOutShadow(406, 105, PAL_FORGRND, PAL_DSKTOP2, "No interpolation");
-			textOutShadow(406, 119, PAL_FORGRND, PAL_DSKTOP2, "Linear (FT2)");
-			textOutShadow(406, 133, PAL_FORGRND, PAL_DSKTOP2, "Cubic spline");
-			textOutShadow(406, 147, PAL_FORGRND, PAL_DSKTOP2, "Sinc (8 point)");
-			textOutShadow(406, 161, PAL_FORGRND, PAL_DSKTOP2, "Sinc (16 point)");
+			textOutShadow(405,  91, PAL_FORGRND, PAL_DSKTOP2, "No interpolation");
+			textOutShadow(405, 105, PAL_FORGRND, PAL_DSKTOP2, "Linear (FT2)");
+			textOutShadow(405, 119, PAL_FORGRND, PAL_DSKTOP2, "Cubic (4 point)");
+			textOutShadow(405, 133, PAL_FORGRND, PAL_DSKTOP2, "Cubic (6 point)");
+			textOutShadow(405, 147, PAL_FORGRND, PAL_DSKTOP2, "Sinc (8 point)");
+			textOutShadow(405, 161, PAL_FORGRND, PAL_DSKTOP2, "Sinc (16 point)");
 
-			textOutShadow(509,   3, PAL_FORGRND, PAL_DSKTOP2, "Audio output rate:");
-			textOutShadow(525,  17, PAL_FORGRND, PAL_DSKTOP2, "44100Hz");
-			textOutShadow(525,  31, PAL_FORGRND, PAL_DSKTOP2, "48000Hz");
-			textOutShadow(525,  45, PAL_FORGRND, PAL_DSKTOP2, "96000Hz");
+			textOutShadow(513,   3, PAL_FORGRND, PAL_DSKTOP2, "Audio output rate:");
+			textOutShadow(528,  17, PAL_FORGRND, PAL_DSKTOP2, "44100Hz");
+			textOutShadow(528,  31, PAL_FORGRND, PAL_DSKTOP2, "48000Hz");
+			textOutShadow(528,  45, PAL_FORGRND, PAL_DSKTOP2, "96000Hz");
 
-			textOutShadow(509,  61, PAL_FORGRND, PAL_DSKTOP2, "Frequency slides:");
-			textOutShadow(525,  75, PAL_FORGRND, PAL_DSKTOP2, "Amiga");
-			textOutShadow(525,  89, PAL_FORGRND, PAL_DSKTOP2, "Linear (default)");
+			textOutShadow(513,  61, PAL_FORGRND, PAL_DSKTOP2, "Frequency slides:");
+			textOutShadow(528,  75, PAL_FORGRND, PAL_DSKTOP2, "Amiga");
+			textOutShadow(528,  89, PAL_FORGRND, PAL_DSKTOP2, "Linear (default)");
 
-			textOutShadow(509, 105, PAL_FORGRND, PAL_DSKTOP2, "Amplification:");
+			textOutShadow(513, 105, PAL_FORGRND, PAL_DSKTOP2, "Amplification:");
 			charOutShadow(621, 105, PAL_FORGRND, PAL_DSKTOP2, 'x');
-			textOutShadow(509, 133, PAL_FORGRND, PAL_DSKTOP2, "Master volume:");
-			textOutShadow(525, 160, PAL_FORGRND, PAL_DSKTOP2, "Volume ramping");
+			textOutShadow(513, 133, PAL_FORGRND, PAL_DSKTOP2, "Master volume:");
+			textOutShadow(529, 160, PAL_FORGRND, PAL_DSKTOP2, "Volume ramping");
 
 			setConfigAudioRadioButtonStates();
 			setConfigAudioCheckButtonStates();
@@ -1337,7 +1340,7 @@
 			textOutShadow(338, 123, PAL_FORGRND, PAL_DSKTOP2, "1/");
 			textOutShadow(228, 136, PAL_FORGRND, PAL_DSKTOP2, "Change pattern length when");
 			textOutShadow(228, 147, PAL_FORGRND, PAL_DSKTOP2, "inserting/deleting line.");
-			textOutShadow(228, 161, PAL_FORGRND, PAL_DSKTOP2, "Allow MIDI-in program change");
+			textOutShadow(228, 161, PAL_FORGRND, PAL_DSKTOP2, "Original FT2 \"about screen\"");
 
 			textOutShadow(428,  95, PAL_FORGRND, PAL_DSKTOP2, "Enable MIDI");
 			textOutShadow(412, 108, PAL_FORGRND, PAL_DSKTOP2, "Record MIDI chn.");
@@ -1492,7 +1495,7 @@
 	hideCheckBox(CB_CONF_REC_KEYOFF);
 	hideCheckBox(CB_CONF_QUANTIZATION);
 	hideCheckBox(CB_CONF_CHANGE_PATTLEN_INS_DEL);
-	hideCheckBox(CB_CONF_MIDI_ALLOW_PC);
+	hideCheckBox(CB_CONF_USE_OLD_ABOUT_SCREEN);
 	hideCheckBox(CB_CONF_MIDI_ENABLE);
 	hideCheckBox(CB_CONF_MIDI_REC_ALL);
 	hideCheckBox(CB_CONF_MIDI_REC_TRANS);
@@ -1624,15 +1627,21 @@
 	audioSetInterpolationType(config.interpolation);
 	checkRadioButton(RB_CONFIG_AUDIO_INTRP_LINEAR);
 }
+void rbConfigAudioIntrpCubic4(void)
+{
+	config.interpolation = INTERPOLATION_CUBIC4;
+	audioSetInterpolationType(config.interpolation);
+	checkRadioButton(RB_CONFIG_AUDIO_INTRP_CUBIC4);
+}
 
-void rbConfigAudioIntrpCubic(void)
+void rbConfigAudioIntrpCubic6(void)
 {
-	config.interpolation = INTERPOLATION_CUBIC;
+	config.interpolation = INTERPOLATION_CUBIC6;
 	audioSetInterpolationType(config.interpolation);
-	checkRadioButton(RB_CONFIG_AUDIO_INTRP_CUBIC);
+	checkRadioButton(RB_CONFIG_AUDIO_INTRP_CUBIC6);
 }
 
-void rbConfigAudioIntrp8PointSinc(void)
+void rbConfigAudioIntrpSinc8(void)
 {
 	config.interpolation = INTERPOLATION_SINC8;
 	audioSetInterpolationType(config.interpolation);
@@ -1639,7 +1648,7 @@
 	checkRadioButton(RB_CONFIG_AUDIO_INTRP_SINC8);
 }
 
-void rbConfigAudioIntrp16PointSinc(void)
+void rbConfigAudioIntrpSinc16(void)
 {
 	config.interpolation = INTERPOLATION_SINC16;
 	audioSetInterpolationType(config.interpolation);
@@ -2069,9 +2078,9 @@
 	config.recTrueInsert ^= 1;
 }
 
-void cbMIDIAllowPC(void)
+void cbUseOldAboutScreen(void)
 {
-	config.recMIDIAllowPC ^= 1;
+	config.useNewAboutScreen ^= 1;
 }
 
 void cbMIDIEnable(void)
--- a/src/ft2_config.h
+++ b/src/ft2_config.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_config_h_
+#define _ft2_config_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -20,14 +21,6 @@
 	CONFIG_HIDE_ERRORS = 0,
 	CONFIG_SHOW_ERRORS = 1,
 
-	// don't change the order of these! (yes, it looks off)
-	INTERPOLATION_DISABLED = 0,
-	INTERPOLATION_SINC8 = 1,
-	INTERPOLATION_LINEAR = 2,
-	INTERPOLATION_SINC16 = 3,
-	INTERPOLATION_CUBIC = 4,
-	// ------
-
 	MOUSE_IDLE_SHAPE_NICE = 0,
 	MOUSE_IDLE_SHAPE_UGLY = 1,
 	MOUSE_IDLE_SHAPE_AWFUL = 2,
@@ -55,22 +48,14 @@
 	PAL_JUNGLE = 5,
 	PAL_LITHE_DARK = 6,
 	PAL_ROSE = 7,
-	PAL_DARK_MODE = 8,
+	PAL_DARK_MODE = 8, // default
 	PAL_VIOLENT = 9,
-	PAL_WHY_COLORS = 10, // default
+	PAL_WHY_COLORS = 10,
 	PAL_USER_DEFINED = 11,
 
 	FILESORT_EXT = 0,
 	FILESORT_NAME = 1,
 
-	ONE_PLAYER = 0,
-	TWO_PLAYERS = 1,
-
-	DIFFICULTY_NOVICE = 0,
-	DIFFICULTY_AVERAGE = 1,
-	DIFFICULTY_PRO = 2,
-	DIFFICULTY_MANIAC = 3,
-
 	DONT_SHOW_IMPORT_WARNING_FLAG = 64,
 	DONT_SHOW_NOT_YET_APPLIED_WARNING_FLAG = 32,
 
@@ -101,9 +86,9 @@
 	START_IN_FULLSCR = 128,
 };
 
-#ifdef _MSC_VER
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct highScoreType_t
 {
@@ -140,7 +125,7 @@
 	int16_t recMIDITranspVal;
 	uint8_t recMIDIVelocity, recMIDIAftert;
 	int16_t recMIDIVolSens;
-	uint8_t recMIDIAllowPC, smpCutToBuffer, ptnCutToBuffer, killNotesOnStopPlay;
+	uint8_t useNewAboutScreen, smpCutToBuffer, ptnCutToBuffer, killNotesOnStopPlay;
 	uint8_t specialFlags; // was lo-byte of "ptnDefaultLen" (never used in FT2)
 	uint8_t windowFlags; // was hi-byte of "ptnDefaultLen" (never used in FT2)
 	uint8_t modulesPathLen;
@@ -178,8 +163,8 @@
 #endif
 config_t;
 
-#ifdef _MSC_VER
-#pragma pack(pop)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack off
 #endif
 
 void resetConfig(void);
@@ -221,9 +206,10 @@
 void rbConfigAudio32BitFloat(void);
 void rbConfigAudioIntrpDisabled(void);
 void rbConfigAudioIntrpLinear(void);
-void rbConfigAudioIntrpCubic(void);
-void rbConfigAudioIntrp8PointSinc(void);
-void rbConfigAudioIntrp16PointSinc(void);
+void rbConfigAudioIntrpCubic4(void);
+void rbConfigAudioIntrpCubic6(void);
+void rbConfigAudioIntrpSinc8(void);
+void rbConfigAudioIntrpSinc16(void);
 void rbConfigAudio44kHz(void);
 void rbConfigAudio48kHz(void);
 void rbConfigAudio96kHz(void);
@@ -277,7 +263,7 @@
 void cbRecKeyOff(void);
 void cbQuantization(void);
 void cbChangePattLenInsDel(void);
-void cbMIDIAllowPC(void);
+void cbUseOldAboutScreen(void);
 void cbMIDIEnable(void);
 void cbMIDIRecTransp(void);
 void cbMIDIRecAllChn(void);
@@ -292,3 +278,5 @@
 void sbMIDISens(uint32_t pos);
 
 extern config_t config;
+
+#endif
--- /dev/null
+++ b/src/ft2_cpu.h
@@ -1,0 +1,35 @@
+#ifndef _ft2_cpu_h_
+#define _ft2_cpu_h_
+
+#include <stdint.h>
+
+#ifdef _WIN32
+
+#ifdef _WIN64
+#define CPU_64BIT 1
+#else
+#define CPU_64BIT 0
+#endif
+
+#else
+#include <limits.h>
+
+#if __WORDSIZE == 64
+#define CPU_64BIT 1
+#else
+#define CPU_64BIT 0
+#endif
+
+#endif
+
+#if CPU_64BIT
+#define CPU_BITS 64
+#define uintCPUWord_t uint64_t
+#define intCPUWord_t int64_t
+#else
+#define CPU_BITS 32
+#define uintCPUWord_t uint32_t
+#define intCPUWord_t int32_t
+#endif
+
+#endif
--- a/src/ft2_diskop.c
+++ b/src/ft2_diskop.c
@@ -148,7 +148,7 @@
 	if (modTmpFName == NULL)
 		return;
 
-	modTmpFNameUTF8 = cp437ToUtf8(modTmpFName);
+	modTmpFNameUTF8 = cp850ToUtf8(modTmpFName);
 }
 
 // drive buttons for Windows
@@ -388,7 +388,7 @@
 
 bool fileExistsAnsi(char *str)
 {
-	UNICHAR *strU = cp437ToUnichar(str);
+	UNICHAR *strU = cp850ToUnichar(str);
 	if (strU == NULL)
 		return false;
 
@@ -412,7 +412,7 @@
 
 static bool makeDirAnsi(char *str)
 {
-	UNICHAR *strU = cp437ToUnichar(str);
+	UNICHAR *strU = cp850ToUnichar(str);
 	if (strU == NULL)
 		return false;
 
@@ -424,7 +424,7 @@
 
 static bool renameAnsi(UNICHAR *oldNameU, char *newName)
 {
-	UNICHAR *newNameU = cp437ToUnichar(newName);
+	UNICHAR *newNameU = cp850ToUnichar(newName);
 	if (newNameU == NULL)
 		return false;
 
@@ -487,7 +487,7 @@
 
 bool fileExistsAnsi(char *str)
 {
-	UNICHAR *strU = cp437ToUnichar(str);
+	UNICHAR *strU = cp850ToUnichar(str);
 	if (strU == NULL)
 		return false;
 
@@ -545,7 +545,7 @@
 
 static bool makeDirAnsi(char *str)
 {
-	UNICHAR *strU = cp437ToUnichar(str);
+	UNICHAR *strU = cp850ToUnichar(str);
 	if (strU == NULL)
 		return false;
 
@@ -560,7 +560,7 @@
 	int32_t retVal;
 	UNICHAR *newNameU;
 
-	newNameU = cp437ToUnichar(newName);
+	newNameU = cp850ToUnichar(newName);
 	if (newNameU == NULL)
 		return false;
 
@@ -638,7 +638,7 @@
 
 void diskOpSetFilename(uint8_t type, UNICHAR *pathU)
 {
-	char *ansiPath = unicharToCp437(pathU, true);
+	char *ansiPath = unicharToCp850(pathU, true);
 	if (ansiPath == NULL)
 		return;
 
@@ -916,7 +916,7 @@
 					return;
 			}
 
-			fileNameU = cp437ToUnichar(FReq_FileName);
+			fileNameU = cp850ToUnichar(FReq_FileName);
 			if (fileNameU == NULL)
 			{
 				okBox(0, "System message", "General I/O error during saving! Is the file in use?", NULL);
@@ -940,7 +940,7 @@
 					return;
 			}
 
-			fileNameU = cp437ToUnichar(FReq_FileName);
+			fileNameU = cp850ToUnichar(FReq_FileName);
 			if (fileNameU == NULL)
 			{
 				okBox(0, "System message", "General I/O error during saving! Is the file in use?", NULL);
@@ -969,7 +969,7 @@
 					return;
 			}
 
-			fileNameU = cp437ToUnichar(FReq_FileName);
+			fileNameU = cp850ToUnichar(FReq_FileName);
 			if (fileNameU == NULL)
 			{
 				okBox(0, "System message", "General I/O error during saving! Is the file in use?", NULL);
@@ -993,7 +993,7 @@
 					return;
 			}
 
-			fileNameU = cp437ToUnichar(FReq_FileName);
+			fileNameU = cp850ToUnichar(FReq_FileName);
 			if (fileNameU == NULL)
 			{
 				okBox(0, "System message", "General I/O error during saving! Is the file in use?", NULL);
@@ -1016,7 +1016,7 @@
 					return;
 			}
 
-			fileNameU = cp437ToUnichar(FReq_FileName);
+			fileNameU = cp850ToUnichar(FReq_FileName);
 			if (fileNameU == NULL)
 			{
 				okBox(0, "System message", "General I/O error during saving! Is the file in use?", NULL);
@@ -1073,7 +1073,7 @@
 		{
 			if (!dirEntry->isDir || UNICHAR_STRCMP(dirEntry->nameU, PARENT_DIR_STR)) // don't handle ".." dir
 			{
-				nameTmp = unicharToCp437(dirEntry->nameU, true);
+				nameTmp = unicharToCp850(dirEntry->nameU, true);
 				if (nameTmp == NULL)
 					break;
 
@@ -1114,7 +1114,7 @@
 		{
 			if (dirEntry->isDir || UNICHAR_STRCMP(dirEntry->nameU, PARENT_DIR_STR)) // don't handle ".." dir
 			{
-				nameTmp = unicharToCp437(dirEntry->nameU, true);
+				nameTmp = unicharToCp850(dirEntry->nameU, true);
 				if (nameTmp == NULL)
 					break;
 
@@ -1267,7 +1267,7 @@
 	if (nameU == NULL)
 		return true;
 
-	char *name = unicharToCp437(nameU, false);
+	char *name = unicharToCp850(nameU, false);
 	if (name == NULL)
 		return true;
 	
@@ -1568,14 +1568,15 @@
 {
 	DirRec *dirEntry = &FReq_Buffer[rad];
 
-	char *name = unicharToCp437(dirEntry->nameU, true);
-	if (name == NULL)
-		return NULL;
+	//char *name = unicharToCp850(dirEntry->nameU, true);
+	//if (name == NULL)
+	//	return NULL;
+	char *name = dirEntry->nameU;
 
 	const int32_t nameLen = (int32_t)strlen(name);
 	if (nameLen == 0)
 	{
-		free(name);
+		//free(name);
 		return NULL;
 	}
 
@@ -1582,7 +1583,7 @@
 	char *p = (char *)malloc(nameLen+1+1);
 	if (p == NULL)
 	{
-		free(name);
+		//free(name);
 		return NULL;
 	}
 
@@ -1597,7 +1598,7 @@
 
 		strcpy(&p[1], name);
 
-		free(name);
+		//free(name);
 		return p;
 	}
 	else
@@ -1609,7 +1610,7 @@
 		{
 			// sort by filename
 			strcpy(p, name);
-			free(name);
+			//free(name);
 			return p;
 		}
 		else
@@ -1619,7 +1620,7 @@
 			if (extLen <= 1)
 			{
 				strcpy(p, name);
-				free(name);
+				//free(name);
 				return p;
 			}
 
@@ -1628,12 +1629,27 @@
 			memcpy(&p[extLen-1], name, i);
 			p[nameLen-1] = '\0';
 
-			free(name);
+			//free(name);
 			return p;
 		}
 	}
 }
 
+static int dcmp(void *a, void *b)
+{
+	DirRec *d, *e;
+	char *n, *m;
+
+	// FIXME: reimplement dcmp with the stuff the rest does
+	d = a;
+	e = b;
+	//n = d->nameU;//unicharToCp437(d->nameU, true);
+	//m = e->nameU;//unicharToCp437(e->nameU, true);
+	n = ach(d - FReq_Buffer);
+	m = ach(e - FReq_Buffer);
+	return _stricmp(n, m);
+}
+
 static void sortDirectory(void)
 {
 	bool didSwap;
@@ -1640,6 +1656,8 @@
 
 	if (FReq_FileCount < 2)
 		return; // no need to sort
+	qsort(FReq_Buffer, FReq_FileCount, sizeof *FReq_Buffer, dcmp);
+	return;
 
 	uint32_t offset = FReq_FileCount >> 1;
 	while (offset > 0)
@@ -1750,7 +1768,7 @@
 	if (pathLen == 0)
 		return;
 
-	char *asciiPath = unicharToCp437(FReq_CurPathU, true);
+	char *asciiPath = unicharToCp850(FReq_CurPathU, true);
 	if (asciiPath == NULL)
 	{
 		okBox(0, "System message", "Not enough memory!", NULL);
@@ -1834,7 +1852,7 @@
 			continue;
 
 		// convert unichar name to codepage 437
-		char *readName = unicharToCp437(FReq_Buffer[bufEntry].nameU, true);
+		char *readName = unicharToCp850(FReq_Buffer[bufEntry].nameU, true);
 		if (readName == NULL)
 			continue;
 
--- a/src/ft2_diskop.h
+++ b/src/ft2_diskop.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_diskop_h_
+#define _ft2_diskop_h_
 
 #include <stdint.h>
 #include "ft2_unicode.h"
@@ -84,3 +85,5 @@
 void trimEntryName(char *name, bool isDir);
 void createFileOverwriteText(char *filename, char *buffer);
 bool fileExistsAnsi(char *str);
+
+#endif
--- a/src/ft2_edit.h
+++ b/src/ft2_edit.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_edit_h_
+#define _ft2_edit_h_
 
 #include <stdint.h>
 #include <SDL2/SDL.h>
@@ -76,3 +77,5 @@
 void remapTrack(void);
 void remapPattern(void);
 void remapSong(void);
+
+#endif
--- a/src/ft2_events.c
+++ b/src/ft2_events.c
@@ -284,7 +284,7 @@
 
 			if (i != BACKUP_FILES_TO_TRY)
 			{
-				UNICHAR *fileNameU = cp437ToUnichar(fileName);
+				UNICHAR *fileNameU = cp850ToUnichar(fileName);
 				if (fileNameU != NULL)
 				{
 					saveXM(fileNameU);
@@ -326,7 +326,7 @@
 
 			if (i != BACKUP_FILES_TO_TRY)
 			{
-				UNICHAR *fileNameU = cp437ToUnichar(fileName);
+				UNICHAR *fileNameU = cp850ToUnichar(fileName);
 				if (fileNameU != NULL)
 				{
 					saveXM(fileNameU);
@@ -433,7 +433,7 @@
 					continue;
 				}
 
-				char *inputText = utf8ToCp437(event.text.text, false);
+				char *inputText = utf8ToCp850(event.text.text, false);
 				if (inputText != NULL)
 				{
 					if (inputText[0] != '\0')
--- a/src/ft2_events.h
+++ b/src/ft2_events.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_events_h_
+#define _ft2_events_h_
 
 #include <SDL2/SDL.h>
 #include <stdint.h>
@@ -20,4 +21,6 @@
 #ifdef _WIN32
 bool handleSingleInstancing(int32_t argc, char **argv);
 void closeSingleInstancing(void);
+#endif
+
 #endif
--- a/src/ft2_gfxdata.h
+++ b/src/ft2_gfxdata.h
@@ -1,17 +1,20 @@
-#pragma once
+#ifndef _ft2_gfxdata_h_
+#define _ft2_gfxdata_h_
 
 #include <stdint.h>
 
 // ft2_bmp_fonts.c
-extern const uint8_t font1BMP[3712];
+extern const uint8_t buttonGfxBMP[416];
+extern const uint8_t font1BMP[3272];
 extern const uint8_t font2BMP[10060];
 extern const uint8_t font3BMP[584];
 extern const uint8_t font4BMP[13604];
 extern const uint8_t font6BMP[532];
 extern const uint8_t font7BMP[472];
-extern const uint8_t font8BMP[368];
+extern const uint8_t font8BMP[368]; // small font for piano key and Nibbles (snake food number)
 
 // ft2_bmp_logo.c
+extern const uint8_t ft2OldAboutLogoBMP[16112];
 extern const uint8_t ft2AboutLogoBMP[23172];
 extern const uint8_t ft2ByBadgesBMP[1916];
 extern const uint8_t ft2LogoBadgesBMP[6260];
@@ -43,3 +46,5 @@
 // ft2_bmp_gui.c
 extern const uint8_t checkboxGfxBMP[776];
 extern const uint8_t radiobuttonGfxBMP[404];
+
+#endif
--- a/src/ft2_gui.c
+++ b/src/ft2_gui.c
@@ -349,6 +349,9 @@
 {
 	assert(xPos < SCREEN_W && yPos < SCREEN_H);
 
+	if ((uint8_t)chr > 127+31)
+		chr = ' ';
+
 	chr &= 0x7F; // this is important to get the nordic glyphs in the font
 	if (chr == ' ')
 		return;
@@ -374,6 +377,9 @@
 {
 	assert(xPos < SCREEN_W && yPos < SCREEN_H);
 
+	if ((uint8_t)chr > 127+31)
+		chr = ' ';
+
 	chr &= 0x7F; // this is important to get the nordic glyphs in the font
 	if (chr == ' ')
 		return;
@@ -408,6 +414,9 @@
 {
 	assert(xPos < SCREEN_W && yPos < SCREEN_H);
 
+	if ((uint8_t)chr > 127+31)
+		chr = ' ';
+
 	chr &= 0x7F; // this is important to get the nordic glyphs in the font
 	if (chr == ' ')
 		return;
@@ -442,6 +451,9 @@
 	if (xPos > clipX)
 		return;
 
+	if ((uint8_t)chr > 127+31)
+		chr = ' ';
+
 	chr &= 0x7F; // this is important to get the nordic glyphs in the font
 	if (chr == ' ')
 		return;
@@ -471,6 +483,9 @@
 {
 	assert(xPos < SCREEN_W && yPos < SCREEN_H);
 
+	if ((uint8_t)chr > 127+31)
+		chr = ' ';
+
 	chr &= 0x7F; // this is important to get the nordic glyphs in the font
 	if (chr == ' ')
 		return;
@@ -495,6 +510,9 @@
 static void bigCharOutShadow(uint16_t xPos, uint16_t yPos, uint8_t paletteIndex, uint8_t shadowPaletteIndex, char chr)
 {
 	assert(xPos < SCREEN_W && yPos < SCREEN_H);
+
+	if ((uint8_t)chr > 127+31)
+		chr = ' ';
 
 	chr &= 0x7F; // this is important to get the nordic glyphs in the font
 	if (chr == ' ')
--- a/src/ft2_gui.h
+++ b/src/ft2_gui.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_gui_h_
+#define _ft2_gui_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -31,6 +32,9 @@
 #define FONT7_CHAR_W 6
 #define FONT7_CHAR_H 7
 #define FONT7_WIDTH 140
+#define FONT8_WIDTH 80
+#define FONT8_CHAR_W 5
+#define FONT8_CHAR_H 7
 
 enum
 {
@@ -117,3 +121,5 @@
 void hideTopScreen(void);
 void showTopScreen(bool restoreScreens);
 void showBottomScreen(void);
+
+#endif
--- a/src/ft2_header.h
+++ b/src/ft2_header.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_header_h_
+#define _ft2_header_h_
 
 #include <SDL2/SDL.h>
 #include <stdint.h>
@@ -12,7 +13,7 @@
 #endif
 #include "ft2_replayer.h"
 
-#define PROG_VER_STR "1.86"
+#define PROG_VER_STR "1.94"
 
 // do NOT change these! It will only mess things up...
 
@@ -24,12 +25,6 @@
 // 70Hz (FT2 vblank) delta -> 60Hz vblank delta (rounded)
 #define SCALE_VBLANK_DELTA(x) (int32_t)(((x) * ((double)VBLANK_HZ / FT2_VBLANK_HZ)) + 0.5)
 
-/* Scopes must be clocked slightly higher than the nominal vblank rate
-** to prevent update/draw racing issues. Setting it too high will
-** cause more issues!
-*/
-#define SCOPE_HZ 64
-
 /* Amount of extra bytes to allocate for every instrument sample,
 ** this is used for a hack for resampling interpolation to be
 ** branchless in the inner channel mixer loop.
@@ -47,6 +42,10 @@
 #define PATH_MAX MAX_PATH
 #endif
 
+#ifndef PI
+#define PI 3.14159265358979323846264338327950288
+#endif
+
 #define SGN(x) (((x) >= 0) ? 1 : -1)
 #define ABS(a) (((a) < 0) ? -(a) : (a))
 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
@@ -97,3 +96,5 @@
 {
 	int8_t *origPtr, *ptr;
 } smpPtr_t;
+
+#endif
--- a/src/ft2_help.h
+++ b/src/ft2_help.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_help_h_
+#define _ft2_help_h_
 
 #include <stdint.h>
 
@@ -20,3 +21,5 @@
 void rbHelpHowToUseFT2(void);
 void rbHelpFAQ(void);
 void rbHelpKnownBugs(void);
+
+#endif
--- a/src/ft2_hpc.h
+++ b/src/ft2_hpc.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_hpc_h_
+#define _ft2_hpc_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -23,3 +24,5 @@
 void hpc_SetDurationInMs(hpc_t *hpc, double dMs); // dMs = minimum 0.2442002442 ms
 void hpc_ResetCounters(hpc_t *hpc);
 void hpc_Wait(hpc_t *hpc);
+
+#endif
--- a/src/ft2_inst_ed.c
+++ b/src/ft2_inst_ed.c
@@ -23,9 +23,9 @@
 #include "ft2_structs.h"
 #include "ft2_bmp.h"
 
-#ifdef _MSC_VER
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct patHdr_t
 {
@@ -55,13 +55,13 @@
 	uint8_t fractions;
 	int32_t sampleLength, loopStart, loopEnd;
 	uint16_t sampleRate;
-	int32_t lowFrq, highFreq, rootFrq;
-	int16_t finetune;
-	uint8_t panning, envRate[6], envOfs[6], tremSweep, tremRate;
+	int32_t lowFreq, highFreq, rootFreq;
+	int16_t tune; // -512 to +512, EXCLUDING 0 cause it is a multiplier. 512 is one octave off, and 1 is a neutral value
+	uint8_t balance, envRate[6], envOfs[6], tremSweep, tremRate;
 	uint8_t tremDepth, vibSweep, vibRate, vibDepth, flags;
-	int16_t junk1;
-	uint16_t junk2;
-	char junk3[36];
+	int16_t scaleFreq;
+	uint16_t scaleFactor;
+	char reserved[36];
 }
 #ifdef __GNUC__
 __attribute__ ((packed))
@@ -475,19 +475,34 @@
 
 void drawC4Rate(void)
 {
-	fillRect(465, 299, 71, 8, PAL_DESKTOP);
+	fillRect(472, 299, 64, 8, PAL_DESKTOP);
 
-	int32_t C4Hz = 0;
+	double dC4Hz = 0.0;
 	if (editor.curInstr != 0)
 	{
 		instr_t *ins = instr[editor.curInstr];
 		if (ins != NULL)
-			C4Hz = (int32_t)(getSampleC4Rate(&ins->smp[editor.curSmp]) + 0.5); // rounded
+			dC4Hz = getSampleC4Rate(&ins->smp[editor.curSmp]);
 	}
 
-	char str[64];
-	sprintf(str, "%dHz", C4Hz);
-	textOut(465, 299, PAL_FORGRND, str);
+	if (dC4Hz <= 0.0) // can happen in several cases
+	{
+		textOut(472, 299, PAL_FORGRND, "0Hz");
+		return;
+	}
+
+	// display rate with as many digits as we can fit
+	char str[32];
+	if (dC4Hz < 1000.0)
+		sprintf(str, "%.3fHz", dC4Hz);
+	else if (dC4Hz < 10000.0)
+		sprintf(str, "%.2fHz", dC4Hz);
+	else if (dC4Hz < 100000.0)
+		sprintf(str, "%.1fHz", dC4Hz);
+	else
+		sprintf(str, "%dHz", (int32_t)(dC4Hz + 0.5)); // rounded
+
+	textOut(472, 299, PAL_FORGRND, str);
 }
 
 static void drawFineTune(void)
@@ -1567,15 +1582,15 @@
 	const uint32_t fg = video.palette[fgPalette];
 	const uint32_t bg = video.palette[bgPalette];
 	uint32_t *dstPtr = &video.frameBuffer[(yPos * SCREEN_W) + xPos];
-	const uint8_t *srcPtr = &bmp.font8[val * 5];
+	const uint8_t *srcPtr = &bmp.font8[val * FONT8_CHAR_W];
 
-	for (int32_t y = 0; y < 7; y++)
+	for (int32_t y = 0; y < FONT8_CHAR_H; y++)
 	{
-		for (int32_t x = 0; x < 5; x++)
+		for (int32_t x = 0; x < FONT8_CHAR_W; x++)
 			dstPtr[x] = srcPtr[x] ? fg : bg;
 
 		dstPtr += SCREEN_W;
-		srcPtr += 80;
+		srcPtr += FONT8_WIDTH;
 	}
 }
 
@@ -2302,7 +2317,7 @@
 	textOutShadow(442, 236, PAL_FORGRND, PAL_DSKTOP2, "Vib.speed");
 	textOutShadow(442, 250, PAL_FORGRND, PAL_DSKTOP2, "Vib.depth");
 	textOutShadow(442, 264, PAL_FORGRND, PAL_DSKTOP2, "Vib.sweep");
-	textOutShadow(442, 299, PAL_FORGRND, PAL_DSKTOP2, "C4=");
+	textOutShadow(442, 299, PAL_FORGRND, PAL_DSKTOP2, "C-4=");
 	textOutShadow(537, 299, PAL_FORGRND, PAL_DSKTOP2, "Rel. note");
 
 	showScrollBar(SB_INST_VOL);
@@ -3092,12 +3107,10 @@
 	SDL_DetachThread(thread);
 }
 
-static int16_t getPATNote(int32_t freq)
+static int16_t getPATNote(uint32_t freq)
 {
-	const double dNote = (log2(freq / 440000.0) * 12.0) + 57.0;
-	const int32_t note = (const int32_t)(dNote + 0.5); // rounded
-
-	return (int16_t)note;
+	const double dNote = (log2((freq / 1000.0) / 440.0) * 12.0) + 9.0;
+	return (int16_t)round(NOTE_C4 + dNote);
 }
 
 static int32_t SDLCALL loadInstrThread(void *ptr)
@@ -3314,8 +3327,8 @@
 		{
 			// PAT - Gravis Ultrasound patch
 
-			if (pat_h.numSamples == 0)
-				pat_h.numSamples = 1; // to some patch makers, 0 means 1
+			if (pat_h.numSamples == 0) // 0 samples really means 1 (for quirky .PAT files)
+				pat_h.numSamples = 1;
 
 			if (pat_h.layers > 1 || pat_h.numSamples > MAX_SMP_PER_INST)
 			{
@@ -3375,8 +3388,8 @@
 				if (i == 0)
 				{
 					ins->autoVibSweep = patWave_h.vibSweep;
-					ins->autoVibRate = (patWave_h.vibRate + 2) >> 2; // rounded
-					ins->autoVibDepth = (patWave_h.vibDepth + 1) >> 1; // rounded
+					ins->autoVibRate = (patWave_h.vibRate + 1) >> 2;
+					ins->autoVibDepth = (patWave_h.vibDepth+1) >> 1;
 				}
 
 				s = &instr[editor.curInstr]->smp[i];
@@ -3392,7 +3405,7 @@
 						s->flags |= LOOP_FWD;
 				}
 
-				s->panning = ((patWave_h.panning << 4) & 0xF0) | (patWave_h.panning & 0xF);
+				s->panning = ((patWave_h.balance << 4) & 0xF0) | (patWave_h.balance & 0xF); // 0..15 -> 0..255
 				s->loopStart = patWave_h.loopStart;
 				s->loopLength = patWave_h.loopEnd - patWave_h.loopStart;
 
@@ -3402,13 +3415,17 @@
 					s->loopLength >>= 1;
 				}
 
-				const double dFreq = (1.0 + (patWave_h.finetune / 512.0)) * patWave_h.sampleRate;
-				tuneSample(s, (int32_t)(dFreq + 0.5), audio.linearPeriodsFlag);
+				double dC4Freq = patWave_h.sampleRate;
+				if (patWave_h.scaleFactor > 0)
+				{
+					const double dMidiC4Freq = 261.6255653005986347; // 440*2^(-9/12)
+					const double dRatio = dMidiC4Freq / (patWave_h.rootFreq / 1000.0);
+					dC4Freq *= dRatio;
+				}
 
-				a = getPATNote(patWave_h.rootFrq) - (12 * 3);
-				s->relativeNote -= (uint8_t)a;
+				setSampleC4Hz(s, dC4Freq);
 
-				a = getPATNote(patWave_h.lowFrq);
+				a = getPATNote(patWave_h.lowFreq);
 				b = getPATNote(patWave_h.highFreq);
 
 				a = CLAMP(a, 0, 95);
--- a/src/ft2_inst_ed.h
+++ b/src/ft2_inst_ed.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_inst_ed_h_
+#define _ft2_inst_ed_h_
 
 #include <stdint.h>
 #include "ft2_header.h"
@@ -104,3 +105,5 @@
 void showInstEditorExt(void);
 void hideInstEditorExt(void);
 void toggleInstEditorExt(void);
+
+#endif
--- a/src/ft2_keyboard.c
+++ b/src/ft2_keyboard.c
@@ -352,6 +352,27 @@
 		}
 		return;
 
+		case SDL_SCANCODE_VOLUMEUP:
+			if (config.masterVol <= 256-16)
+				config.masterVol += 16;
+			else
+				config.masterVol = 256;
+
+			setAudioAmp(config.boostLevel, config.masterVol, !!(config.specialFlags & BITDEPTH_32));
+			if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO)
+				showConfigScreen();
+			break;
+		case SDL_SCANCODE_VOLUMEDOWN:
+			if (config.masterVol >= 16)
+				config.masterVol -= 16;
+			else
+				config.masterVol = 0;
+
+			setAudioAmp(config.boostLevel, config.masterVol, !!(config.specialFlags & BITDEPTH_32));
+			if (ui.configScreenShown && editor.currConfigScreen == CONFIG_SCREEN_AUDIO)
+				showConfigScreen();
+			break;
+
 		default: break;
 	}
 
--- a/src/ft2_keyboard.h
+++ b/src/ft2_keyboard.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_keyboard_h_
+#define _ft2_keyboard_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -18,3 +19,5 @@
 void keyUpHandler(SDL_Scancode scancode, SDL_Keycode keycode);
 void keyDownHandler(SDL_Scancode scancode, SDL_Keycode keycode, bool keyWasRepeated);
 void readKeyModifiers(void);
+
+#endif
--- a/src/ft2_main.c
+++ b/src/ft2_main.c
@@ -23,6 +23,7 @@
 #include "ft2_sample_ed.h"
 #include "ft2_diskop.h"
 #include "scopes/ft2_scopes.h"
+#include "scopes/ft2_scopedraw.h"
 #include "ft2_about.h"
 #include "ft2_pattern_ed.h"
 #include "ft2_module_loader.h"
@@ -89,12 +90,13 @@
 	}
 #endif
 
-	// ALT+F4 is used in FT2, but is "close program" in some cases...
+	// ALT+F4 is used in FT2, but is "close program" in Windows...
 #if SDL_MINOR_VERSION >= 24 || (SDL_MINOR_VERSION == 0 && SDL_PATCHLEVEL >= 4)
 	SDL_SetHint("SDL_WINDOWS_NO_CLOSE_ON_ALT_F4", "1");
 #endif
 
 #ifdef _WIN32
+
 #ifndef _MSC_VER
 	SetProcessDPIAware();
 #endif
@@ -146,7 +148,7 @@
 #ifdef __APPLE__
 	osxSetDirToProgramDirFromArgs(argv);
 #endif
-	if (!setupExecutablePath() || !loadBMPs() || !calcCubicSplineTable() || !calcWindowedSincTables())
+	if (!setupExecutablePath() || !loadBMPs() || !calcCubicSplineTables() || !calcWindowedSincTables())
 	{
 		cleanUpAndExit();
 		return 1;
@@ -205,7 +207,6 @@
 		return 1;
 	}
 
-	initAboutScreen();
 	pauseAudio();
 	resumeAudio();
 	rescanAudioDevices();
@@ -367,6 +368,7 @@
 	freeTextBoxes();
 	freeMouseCursors();
 	freeBMPs();
+	freeScopeIntrpLUT();
 
 	if (editor.audioDevConfigFileLocationU != NULL)
 	{
--- a/src/ft2_midi.c
+++ b/src/ft2_midi.c
@@ -279,8 +279,10 @@
 {
 	uint32_t i;
 
-	if (midiInDev == NULL || editor.midiConfigFileLocationU == NULL)
+	if (midiInDev == NULL || editor.midiConfigFileLocationU == NULL) {
 		goto setDefMidiInputDev;
+		//midi.inputDeviceName = NULL;
+	}
 
 	const uint32_t numDevices = getNumMidiInDevices();
 	if (numDevices == 0)
@@ -426,7 +428,7 @@
 					fillRect(114, y, 365, 10, PAL_BOXSLCT); // selection background color
 			}
 
-			char *tmpString = utf8ToCp437(midi.inputDeviceNames[deviceEntry], true);
+			char *tmpString = utf8ToCp850(midi.inputDeviceNames[deviceEntry], true);
 			if (tmpString != NULL)
 			{
 				textOutClipX(114, y, PAL_FORGRND, tmpString, 479);
@@ -487,7 +489,12 @@
 	closeMidiInDevice();
 	freeMidiIn();
 	initMidiIn();
-	openMidiInDevice(midi.inputDevice);
+	if(!openMidiInDevice(midi.inputDevice)){
+		free(midi.inputDeviceName);
+		midi.inputDeviceName = NULL;
+		midi.inputDevice = -1;
+		return false;
+	}
 
 	drawMidiInputList();
 	return true;
--- a/src/ft2_module_loader.c
+++ b/src/ft2_module_loader.c
@@ -26,9 +26,10 @@
 #include "ft2_structs.h"
 #include "ft2_sysreqs.h"
 
-bool detectBEM(FILE* f);
-bool loadBEM(FILE* f, uint32_t filesize);
+bool detectBEM(FILE *f);
+bool loadBEM(FILE *f, uint32_t filesize);
 
+bool loadIT(FILE *f, uint32_t filesize);
 bool loadDIGI(FILE *f, uint32_t filesize);
 bool loadMOD(FILE *f, uint32_t filesize);
 bool loadS3M(FILE *f, uint32_t filesize);
@@ -45,7 +46,8 @@
 	FORMAT_S3M = 4,
 	FORMAT_STM = 5,
 	FORMAT_DIGI = 6,
-	FORMAT_BEM = 7
+	FORMAT_BEM = 7,
+	FORMAT_IT = 8
 };
 
 // file extensions accepted by Disk Op. in module mode
@@ -52,7 +54,7 @@
 char *supportedModExtensions[] =
 {
 	"xm", "ft", "nst", "stk", "mod", "s3m", "stm", "fst",
-	"digi", "bem",
+	"digi", "bem", "it",
 
 	// IMPORTANT: Remember comma after last entry above
 	"END_OF_LIST" // do NOT move, remove or edit this line!
@@ -134,12 +136,9 @@
 		return FORMAT_MOD;
 	}
 
-	/* Check if the file is a .it module (Impulse Tracker, not supported).
-	** Some people may attempt to load .IT files in the FT2 clone, so
-	** reject them here instead of accidentally loading them as .STK
-	*/
-	if (!memcmp("IMPM", D, 4) && D[0x16] == 0)
-		return FORMAT_UNKNOWN;
+	// Impulse Tracker and compatible trackers
+	if (!memcmp("IMPM", D, 4) && D[0x1D] == 0)
+		return FORMAT_IT;
 
 	/* Fasttracker II XM and compatible trackers.
 	** Note: This test can falsely be true for STK modules (and non-supported files) where the
@@ -202,6 +201,7 @@
 		case FORMAT_POSSIBLY_STK: moduleLoaded = loadSTK(f, filesize); break;
 		case FORMAT_DIGI: moduleLoaded = loadDIGI(f, filesize); break;
 		case FORMAT_BEM: moduleLoaded = loadBEM(f, filesize); break;
+		case FORMAT_IT: moduleLoaded = loadIT(f, filesize); break;
 
 		default:
 			loaderMsgBox("This file is not a supported module!");
@@ -608,7 +608,7 @@
 	*/
 	if (modFormat == FORMAT_POSSIBLY_STK)
 	{
-		char *path = unicharToCp437(pathU, false);
+		char *path = unicharToCp850(pathU, false);
 		if (path == NULL)
 			return false;
 
--- a/src/ft2_module_loader.h
+++ b/src/ft2_module_loader.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_module_loader_h_
+#define _ft2_module_loader_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -23,3 +24,5 @@
 extern note_t *patternTmp[MAX_PATTERNS];
 extern instr_t *instrTmp[1+256];
 extern song_t songTmp;
+
+#endif
--- a/src/ft2_module_saver.h
+++ b/src/ft2_module_saver.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_module_saver_h_
+#define _ft2_module_saver_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -6,3 +7,5 @@
 
 void saveMusic(UNICHAR *filenameU);
 bool saveXM(UNICHAR *filenameU);
+
+#endif
--- a/src/ft2_mouse.h
+++ b/src/ft2_mouse.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_mouse_h_
+#define _ft2_mouse_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -52,3 +53,5 @@
 void handleLastGUIObjectDown(void);
 void readMouseXY(void);
 void resetMouseBusyAnimation(void);
+
+#endif
--- a/src/ft2_nibbles.c
+++ b/src/ft2_nibbles.c
@@ -44,7 +44,6 @@
 static const char nibblesCheatCode1[] = "skip", nibblesCheatCode2[] = "triton";
 static char nibblesCheatBuffer[16];
 
-static const char convHexTable2[10] = { 7, 8, 9, 10, 11, 12, 13, 16, 17, 18 };
 static const uint8_t NI_Speeds[4] = { 12, 8, 6, 4 };
 static bool NI_EternalLives;
 static uint8_t NI_CheatIndex, NI_CurSpeed, NI_CurTick60Hz, NI_CurSpeed60Hz, NI_Screen[51][23], NI_Level;
@@ -101,6 +100,24 @@
 // ------------------------------------------------------------------------
 // ------------------------------------------------------------------------
 
+static void drawNibblesFoodNumber(int32_t xOut, int32_t yOut, int32_t number)
+{
+	if (number > 9)
+		return;
+
+	uint32_t *dstPtr = &video.frameBuffer[(yOut * SCREEN_W) + xOut];
+	uint8_t *srcPtr = &bmp.font8[number * FONT8_CHAR_W];
+
+	for (int32_t y = 0; y < FONT8_CHAR_H; y++, srcPtr += FONT8_WIDTH, dstPtr += SCREEN_W)
+	{
+		for (int32_t x = 0; x < FONT8_CHAR_W; x++)
+		{
+			if (srcPtr[x] != 0)
+				dstPtr[x] = video.palette[PAL_FORGRND];
+		}
+	}
+}
+
 static void redrawNibblesScreen(void)
 {
 	if (!editor.NI_Play)
@@ -128,7 +145,7 @@
 			}
 			else
 			{
-				charOut(xs + 2, ys, PAL_FORGRND, convHexTable2[NI_Number]);
+				drawNibblesFoodNumber(xs+2, ys, NI_Number);
 			}
 		}
 	}
@@ -340,8 +357,8 @@
 {
 	while (true)
 	{
-		const int16_t x = rand() % 51;
-		const int16_t y = rand() % 23;
+		int16_t x = rand() % 51;
+		int16_t y = rand() % 23;
 
 		bool blockIsSuitable;
 
@@ -370,7 +387,8 @@
 				fillRect(xs, ys, 8, 7, PAL_BCKGRND);
 			}
 
-			charOut((x * 8) + 154, (y * 7) + 7, PAL_FORGRND, convHexTable2[NI_Number]);
+			drawNibblesFoodNumber((x * 8) + 154, (y * 7) + 7, NI_Number);
+
 			break;
 		}
 	}
@@ -780,7 +798,7 @@
 		case 0: radioButtons[RB_NIBBLES_NOVICE].state  = RADIOBUTTON_CHECKED; break;
 		case 1: radioButtons[RB_NIBBLES_AVERAGE].state = RADIOBUTTON_CHECKED; break;
 		case 2: radioButtons[RB_NIBBLES_PRO].state     = RADIOBUTTON_CHECKED; break;
-		case 3: radioButtons[RB_NIBBLES_MANIAC].state  = RADIOBUTTON_CHECKED; break;
+		case 3: radioButtons[RB_NIBBLES_TRITON].state  = RADIOBUTTON_CHECKED; break;
 	}
 	showRadioButtonGroup(RB_GROUP_NIBBLES_DIFFICULTY);
 }
@@ -830,7 +848,7 @@
 	assert(config.NI_Speed < 4);
 	NI_CurSpeed = NI_Speeds[config.NI_Speed];
 
-	// adjust for 70Hz -> 60Hz frames
+	// adjust for 70Hz -> 60Hz frames (this is not exact, but we don't want fractional numbers aka. frame skipping)
 	NI_CurSpeed60Hz = (uint8_t)SCALE_VBLANK_DELTA(NI_CurSpeed);
 	NI_CurTick60Hz = (uint8_t)SCALE_VBLANK_DELTA(NI_Speeds[2]);
 
@@ -910,7 +928,7 @@
 void nibblesSetTriton(void)
 {
 	config.NI_Speed = 3;
-	checkRadioButton(RB_NIBBLES_MANIAC);
+	checkRadioButton(RB_NIBBLES_TRITON);
 }
 
 // CHECK BOXES
--- a/src/ft2_nibbles.h
+++ b/src/ft2_nibbles.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_nibbles_h_
+#define _ft2_nibbles_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -24,3 +25,5 @@
 void nibblesToggleGrid(void);
 void nibblesToggleWrap(void);
 bool testNibblesCheatCodes(SDL_Keycode keycode);
+
+#endif
--- a/src/ft2_palette.c
+++ b/src/ft2_palette.c
@@ -28,7 +28,7 @@
 
 void setPal16(pal16 *p, bool redrawScreen)
 {
-#define LOOP_PIN_COL_SUB 110
+#define LOOP_PIN_COL_SUB 96
 #define TEXT_MARK_COLOR 0x0078D7
 #define BOX_SELECT_COLOR 0x7F7F7F
 
--- a/src/ft2_palette.h
+++ b/src/ft2_palette.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_palette_h_
+#define _ft2_palette_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -44,9 +45,9 @@
 	PAL_NUM
 };
 
-#ifdef _MSC_VER
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct pal16_t
 {
@@ -56,8 +57,8 @@
 __attribute__ ((packed))
 #endif
 pal16;
-#ifdef _MSC_VER
-#pragma pack(pop)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack off
 #endif
 
 void setCustomPalColor(uint32_t color);
@@ -99,3 +100,5 @@
 void rbConfigPalUserDefined(void);
 
 extern uint8_t cfg_ColorNum;
+
+#endif
--- a/src/ft2_pattern_draw.h
+++ b/src/ft2_pattern_draw.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_pattern_draw_h_
+#define _ft2_pattern_draw_h_
 
 #include <stdint.h>
 
@@ -6,3 +7,5 @@
 void drawPatternBorders(void);
 void writePattern(int32_t currRow, int32_t currPattern);
 void pattTwoHexOut(uint32_t xPos, uint32_t yPos, uint8_t val, uint32_t color);
+
+#endif
--- a/src/ft2_pattern_ed.h
+++ b/src/ft2_pattern_ed.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_pattern_ed_h_
+#define _ft2_pattern_ed_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -172,3 +173,5 @@
 void sbSmpBankPos(uint32_t pos);
 void pbToggleLogo(void);
 void pbToggleBadge(void);
+
+#endif
--- a/src/ft2_pushbuttons.c
+++ b/src/ft2_pushbuttons.c
@@ -29,7 +29,10 @@
 #include "ft2_sample_ed_features.h"
 #include "ft2_palette.h"
 #include "ft2_structs.h"
+#include "ft2_bmp.h"
 
+#define BUTTON_GFX_BMP_WIDTH 90
+
 pushButton_t pushButtons[NUM_PUSHBUTTONS] =
 {
 	// ------ RESERVED PUSHBUTTONS ------
@@ -317,9 +320,9 @@
 	{ 365,  72, 18, 13, 1, 4, ARROW_DOWN_STRING,  NULL,    scrollAudOutputDevListDown, NULL },
 	{ 365, 103, 18, 13, 1, 4, ARROW_UP_STRING,    NULL,    scrollAudInputDevListUp,    NULL },
 	{ 365, 137, 18, 13, 1, 4, ARROW_DOWN_STRING,  NULL,    scrollAudInputDevListDown,  NULL },
-	{ 508, 117, 21, 13, 1, 4, ARROW_LEFT_STRING,  NULL,    configAmpDown,              NULL },
+	{ 512, 117, 21, 13, 1, 4, ARROW_LEFT_STRING,  NULL,    configAmpDown,              NULL },
 	{ 608, 117, 21, 13, 1, 4, ARROW_RIGHT_STRING, NULL,    configAmpUp,                NULL },
-	{ 508, 143, 21, 13, 1, 0, ARROW_LEFT_STRING,  NULL,    configMasterVolDown,        NULL },
+	{ 512, 143, 21, 13, 1, 0, ARROW_LEFT_STRING,  NULL,    configMasterVolDown,        NULL },
 	{ 608, 143, 21, 13, 1, 0, ARROW_RIGHT_STRING, NULL,    configMasterVolUp,          NULL },
 
 	// ------ CONFIG LAYOUT PUSHBUTTONS ------
@@ -352,32 +355,32 @@
 #endif
 
 	// ------ DISK OP. PUSHBUTTONS ------
-	//x,   y,   w,  h,  p, d, text #1,           text #2, funcOnDown,       funcOnUp
-	{  70,   2, 58, 16, 0, 0, "Save",            NULL,    NULL,             pbDiskOpSave },
-	{  70,  19, 58, 16, 0, 0, "Delete",          NULL,    NULL,             pbDiskOpDelete },
-	{  70,  36, 58, 16, 0, 0, "Rename",          NULL,    NULL,             pbDiskOpRename },
-	{  70,  53, 58, 16, 0, 0, "Make dir.",       NULL,    NULL,             pbDiskOpMakeDir },
-	{  70,  70, 58, 16, 0, 0, "Refresh",         NULL,    NULL,             pbDiskOpRefresh },
-	{  70,  87, 58, 16, 0, 0, "Set path",        NULL,    NULL,             pbDiskOpSetPath },
-	{  70, 104, 58, 16, 0, 0, "Show all",        NULL,    NULL,             pbDiskOpShowAll },
-	{  70, 121, 58, 19, 0, 0, "Exit",            NULL,    NULL,             pbDiskOpExit },
+	//x,   y,   w,  h,  p, d, text #1,              text #2, funcOnDown,      funcOnUp
+	{  70,   2, 58, 16, 0, 0, "Save",               NULL,    NULL,            pbDiskOpSave },
+	{  70,  19, 58, 16, 0, 0, "Delete",             NULL,    NULL,            pbDiskOpDelete },
+	{  70,  36, 58, 16, 0, 0, "Rename",             NULL,    NULL,            pbDiskOpRename },
+	{  70,  53, 58, 16, 0, 0, "Make dir.",          NULL,    NULL,            pbDiskOpMakeDir },
+	{  70,  70, 58, 16, 0, 0, "Refresh",            NULL,    NULL,            pbDiskOpRefresh },
+	{  70,  87, 58, 16, 0, 0, "Set path",           NULL,    NULL,            pbDiskOpSetPath },
+	{  70, 104, 58, 16, 0, 0, "Show all",           NULL,    NULL,            pbDiskOpShowAll },
+	{  70, 121, 58, 19, 0, 0, "Exit",               NULL,    NULL,            pbDiskOpExit },
 #ifdef _WIN32 // partition letters
-	{ 134,   2, 31, 13, 0, 0, ".\001",           NULL,    NULL,             pbDiskOpParent },
-	{ 134,  16, 31, 12, 0, 0, "\\",              NULL,    NULL,             pbDiskOpRoot },
-	{ 134,  29, 31, 13, 0, 0, NULL,              NULL,    NULL,             pbDiskOpDrive1 },
-	{ 134,  43, 31, 13, 0, 0, NULL,              NULL,    NULL,             pbDiskOpDrive2 },
-	{ 134,  57, 31, 13, 0, 0, NULL,              NULL,    NULL,             pbDiskOpDrive3 },
-	{ 134,  71, 31, 13, 0, 0, NULL,              NULL,    NULL,             pbDiskOpDrive4 },
-	{ 134,  85, 31, 13, 0, 0, NULL,              NULL,    NULL,             pbDiskOpDrive5 },
-	{ 134,  99, 31, 13, 0, 0, NULL,              NULL,    NULL,             pbDiskOpDrive6 },
-	{ 134, 113, 31, 13, 0, 0, NULL,              NULL,    NULL,             pbDiskOpDrive7 },
-	{ 134, 127, 31, 13, 0, 0, NULL,              NULL,    NULL,             pbDiskOpDrive8 },
+	{ 134,   2, 31, 13, 0, 0, DISKOP_PARENT_STRING, NULL,    NULL,            pbDiskOpParent },
+	{ 134,  16, 31, 12, 0, 0, "\\",                 NULL,    NULL,            pbDiskOpRoot },
+	{ 134,  29, 31, 13, 0, 0, NULL,                 NULL,    NULL,            pbDiskOpDrive1 },
+	{ 134,  43, 31, 13, 0, 0, NULL,                 NULL,    NULL,            pbDiskOpDrive2 },
+	{ 134,  57, 31, 13, 0, 0, NULL,                 NULL,    NULL,            pbDiskOpDrive3 },
+	{ 134,  71, 31, 13, 0, 0, NULL,                 NULL,    NULL,            pbDiskOpDrive4 },
+	{ 134,  85, 31, 13, 0, 0, NULL,                 NULL,    NULL,            pbDiskOpDrive5 },
+	{ 134,  99, 31, 13, 0, 0, NULL,                 NULL,    NULL,            pbDiskOpDrive6 },
+	{ 134, 113, 31, 13, 0, 0, NULL,                 NULL,    NULL,            pbDiskOpDrive7 },
+	{ 134, 127, 31, 13, 0, 0, NULL,                 NULL,    NULL,            pbDiskOpDrive8 },
 #else
-	{ 134,   2, 31, 13, 0, 0, "../",             NULL,    NULL,             pbDiskOpParent },
-	{ 134,  16, 31, 12, 0, 0, "/",               NULL,    NULL,             pbDiskOpRoot },
+	{ 134,   2, 31, 13, 0, 0, "../",               NULL,    NULL,             pbDiskOpParent },
+	{ 134,  16, 31, 12, 0, 0, "/",                 NULL,    NULL,             pbDiskOpRoot },
 #endif
-	{ 335,   2, 18, 13, 1, 3, ARROW_UP_STRING,   NULL,    pbDiskOpListUp,   NULL },
-	{ 335, 158, 18, 13, 1, 3, ARROW_DOWN_STRING, NULL,    pbDiskOpListDown, NULL },
+	{ 335,   2, 18, 13, 1, 3, ARROW_UP_STRING,     NULL,    pbDiskOpListUp,   NULL },
+	{ 335, 158, 18, 13, 1, 3, ARROW_DOWN_STRING,   NULL,    pbDiskOpListDown, NULL },
 
 	// ------ WAV RENDERER PUSHBUTTONS ------
 	//x,   y,   w,  h,  p, d, text #1,           text #2, funcOnDown,         funcOnUp
@@ -450,30 +453,70 @@
 	// render button text(s)
 	if (b->caption != NULL && *b->caption != '\0')
 	{
-		// button text #2
-		if (b->caption2 != NULL && *b->caption2 != '\0')
+		// custom button graphics
+		if ((uint8_t)b->caption[0] < 32 && b->caption[1] == '\0')
 		{
-			textW = textWidth(b->caption2);
+			uint8_t *src8 = &bmp.buttonGfx[(b->caption[0]-1) * 8];
+			const char ch = b->caption[0];
+
+			textW = 8;
+			if (ch == ARROW_UP_GFX_CHAR || ch == ARROW_DOWN_GFX_CHAR)
+				textW = 6;
+			else if (ch == ARROW_LEFT_GFX_CHAR || ch == ARROW_RIGHT_GFX_CHAR)
+				textW = 7;
+			else if (ch >= SMALL_1_GFX_CHAR && ch <= SMALL_6_GFX_CHAR)
+				textW = 5;
+			else if (ch == DISKOP_PARENT_GFX_CHAR)
+				textW = 10;
+
 			textX = x + ((w - textW) / 2);
-			textY = y + 6 + ((h - (FONT1_CHAR_H - 2)) / 2);
+			textY = y + ((h - 8) / 2);
 
 			if (state == PUSHBUTTON_PRESSED)
-				textOut(textX + 1, textY + 1, PAL_BTNTEXT, b->caption2);
-			else
-				textOut(textX, textY, PAL_BTNTEXT, b->caption2);
+			{
+				textX++;
+				textY++;
+			}
 
-			y -= 5; // if two text lines, bias y position of first (upper) text
+			// blit graphics
+
+			uint32_t *dst32 = &video.frameBuffer[(textY * SCREEN_W) + textX];
+			for (y = 0; y < 8; y++, src8 += BUTTON_GFX_BMP_WIDTH, dst32 += SCREEN_W)
+			{
+				for (x = 0; x < textW; x++)
+				{
+					if (src8[x] != 0)
+						dst32[x] = video.palette[PAL_BTNTEXT];
+				}
+			}
 		}
+		else // normal text
+		{
+			// button text #2 (if present)
+			if (b->caption2 != NULL && *b->caption2 != '\0')
+			{
+				textW = textWidth(b->caption2);
+				textX = x + ((w - textW) / 2);
+				textY = y + 6 + ((h - (FONT1_CHAR_H - 2)) / 2);
 
-		// button text #1
-		textW = textWidth(b->caption);
-		textX = x + ((w - textW) / 2);
-		textY = y + ((h - (FONT1_CHAR_H - 2)) / 2);
+				if (state == PUSHBUTTON_PRESSED)
+					textOut(textX + 1, textY + 1, PAL_BTNTEXT, b->caption2);
+				else
+					textOut(textX, textY, PAL_BTNTEXT, b->caption2);
 
-		if (state == PUSHBUTTON_PRESSED)
-			textOut(textX + 1, textY + 1, PAL_BTNTEXT, b->caption);
-		else
-			textOut(textX, textY, PAL_BTNTEXT, b->caption);
+				y -= 5; // if two text lines, bias y position of first (upper) text
+			}
+
+			// button text #1
+			textW = textWidth(b->caption);
+			textX = x + ((w - textW) / 2);
+			textY = y + ((h - (FONT1_CHAR_H - 2)) / 2);
+
+			if (state == PUSHBUTTON_PRESSED)
+				textOut(textX + 1, textY + 1, PAL_BTNTEXT, b->caption);
+			else
+				textOut(textX, textY, PAL_BTNTEXT, b->caption);
+		}
 	}
 }
 
--- a/src/ft2_pushbuttons.h
+++ b/src/ft2_pushbuttons.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_pushbuttons_h_
+#define _ft2_pushbuttons_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -343,18 +344,43 @@
 // amount of frames to wait
 #define BUTTON_DOWN_DELAY 25
 
-// font #1/#2 special characters (used for buttons)
-#define ARROW_UP_STRING "\x05"
-#define ARROW_DOWN_STRING "\x03"
-#define ARROW_LEFT_STRING "\x1E"
-#define ARROW_RIGHT_STRING "\x1F"
-#define SMALL_1_STRING "\x08"
-#define SMALL_2_STRING "\x09"
-#define SMALL_3_STRING "\x0A"
-#define SMALL_4_STRING "\x0B"
-#define SMALL_5_STRING "\x0C"
-#define SMALL_6_STRING "\x0D"
+// special characters (used for buttons)
 
+#define ARROW_UP_GFX_CHAR 0x01
+#define ARROW_UP_STRING "\x01"
+
+#define ARROW_DOWN_GFX_CHAR 0x02
+#define ARROW_DOWN_STRING "\x02"
+
+#define ARROW_LEFT_GFX_CHAR 0x03
+#define ARROW_LEFT_STRING "\x03"
+
+#define ARROW_RIGHT_GFX_CHAR 0x04
+#define ARROW_RIGHT_STRING "\x04"
+
+#define SMALL_1_GFX_CHAR 0x05
+#define SMALL_1_STRING "\x05"
+
+#define SMALL_2_GFX_CHAR 0x06
+#define SMALL_2_STRING "\x06"
+
+#define SMALL_3_GFX_CHAR 0x07
+#define SMALL_3_STRING "\x07"
+
+#define SMALL_4_GFX_CHAR 0x08
+#define SMALL_4_STRING "\x08"
+
+#define SMALL_5_GFX_CHAR 0x09
+#define SMALL_5_STRING "\x09"
+
+#define SMALL_6_GFX_CHAR 0x0A
+#define SMALL_6_STRING "\x0A"
+
+#define DISKOP_PARENT_GFX_CHAR 0x0B
+#define DISKOP_PARENT_STRING "\x0B"
+
+
+
 typedef struct pushButton_t // DO NOT TOUCH!
 {
 	uint16_t x, y, w, h;
@@ -374,3 +400,5 @@
 void handlePushButtonsWhileMouseDown(void);
 bool testPushButtonMouseDown(void);
 int16_t testPushButtonMouseRelease(bool runCallback);
+
+#endif
--- a/src/ft2_radiobuttons.c
+++ b/src/ft2_radiobuttons.c
@@ -75,28 +75,29 @@
 
 	// audio buffer size
 	//x,   y,  w,   group,                           funcOnUp
-	{ 390, 16,  46, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffSmall  },
-	{ 390, 30, 113, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffMedium },
-	{ 390, 44,  50, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffLarge },
+	{ 390, 16,  45, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffSmall  },
+	{ 390, 30, 112, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffMedium },
+	{ 390, 44,  49, RB_GROUP_CONFIG_SOUND_BUFF_SIZE, rbConfigAudioBuffLarge },
 
 	// audio bit depth
 	//x,   y,  w,  group,                           funcOnUp
-	{ 390, 74, 52, RB_GROUP_CONFIG_AUDIO_BIT_DEPTH, rbConfigAudio16Bit },
-	{ 390, 88, 93, RB_GROUP_CONFIG_AUDIO_BIT_DEPTH, rbConfigAudio32BitFloat },
+	{ 390, 73, 51, RB_GROUP_CONFIG_AUDIO_BIT_DEPTH, rbConfigAudio16Bit },
+	{ 453, 73, 51, RB_GROUP_CONFIG_AUDIO_BIT_DEPTH, rbConfigAudio32BitFloat },
 
 	// audio interpolation
 	//x,   y,   w,   group,                               funcOnUp
-	{ 390, 104, 109, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpDisabled },
-	{ 390, 118,  91, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpLinear },
-	{ 390, 132,  86, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpCubic },
-	{ 390, 146,  95, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrp8PointSinc },
-	{ 390, 160, 102, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrp16PointSinc },
+	{ 390,  90, 108, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpDisabled },
+	{ 390, 104,  90, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpLinear },
+	{ 390, 118, 101, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpCubic4 },
+	{ 390, 132, 101, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpCubic6 },
+	{ 390, 146,  94, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpSinc8 },
+	{ 390, 160, 101, RB_GROUP_CONFIG_AUDIO_INTERPOLATION, rbConfigAudioIntrpSinc16 },
 
 	// audio output frequency
 	//x,   y,  w,  group,                      funcOnUp
-	{ 509, 16, 66, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio44kHz },
-	{ 509, 30, 66, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio48kHz },
-	{ 509, 44, 66, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio96kHz },
+	{ 513, 16, 65, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio44kHz },
+	{ 513, 30, 65, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio48kHz },
+	{ 513, 44, 65, RB_GROUP_CONFIG_AUDIO_FREQ, rbConfigAudio96kHz },
 
 	// audio input frequency
 	//x,   y,   w,  group,                            funcOnUp
@@ -106,8 +107,8 @@
 
 	// frequency slides
 	//x,   y,  w,   group,                       funcOnUp
-	{ 509, 74,  50, RB_GROUP_CONFIG_FREQ_SLIDES, rbConfigFreqSlidesAmiga  },
-	{ 509, 88, 108, RB_GROUP_CONFIG_FREQ_SLIDES, rbConfigFreqSlidesLinear },
+	{ 513, 74,  49, RB_GROUP_CONFIG_FREQ_SLIDES, rbConfigFreqSlidesAmiga  },
+	{ 513, 88, 107, RB_GROUP_CONFIG_FREQ_SLIDES, rbConfigFreqSlidesLinear },
 
 	// ------ CONFIG LAYOUT ------
 
--- a/src/ft2_radiobuttons.h
+++ b/src/ft2_radiobuttons.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_radiobuttons_h_
+#define _ft2_radiobuttons_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -19,7 +20,7 @@
 	RB_NIBBLES_NOVICE,
 	RB_NIBBLES_AVERAGE,
 	RB_NIBBLES_PRO,
-	RB_NIBBLES_MANIAC,
+	RB_NIBBLES_TRITON,
 
 	// SAMPLER
 	RB_SAMPLE_NO_LOOP,
@@ -57,7 +58,8 @@
 	// AUDIO INTERPOLATION
 	RB_CONFIG_AUDIO_INTRP_DISABLED,
 	RB_CONFIG_AUDIO_INTRP_LINEAR,
-	RB_CONFIG_AUDIO_INTRP_CUBIC,
+	RB_CONFIG_AUDIO_INTRP_CUBIC4,
+	RB_CONFIG_AUDIO_INTRP_CUBIC6,
 	RB_CONFIG_AUDIO_INTRP_SINC8,
 	RB_CONFIG_AUDIO_INTRP_SINC16,
 
@@ -230,3 +232,5 @@
 void handleRadioButtonsWhileMouseDown(void);
 bool testRadioButtonMouseDown(void);
 void testRadioButtonMouseRelease(void);
+
+#endif
--- a/src/ft2_replayer.c
+++ b/src/ft2_replayer.c
@@ -139,73 +139,23 @@
 	editor.updateWindowTitle = true;
 }
 
-// used on external sample load and during sample loading (on some module formats)
-void tuneSample(sample_t *s, const int32_t midCFreq, bool linearPeriodsFlag)
+void setSampleC4Hz(sample_t *s, double dC4Hz)
 {
-	#define MIN_PERIOD (0)
-	#define MAX_PERIOD (((10*12*16)-1)-1) /* -1 (because of bugged amigaPeriods table values) */
+	/* Sets a sample's relative note and finetune according to input C-4 rate.
+	**
+	** Note:
+	** This algorithm uses only 5 finetune bits (like FT2 internally),
+	** so that the resulting finetune is the same when loading it in a
+	** tracker that does support the full 8 finetune bits.
+	*/
 
-	double (*dGetHzFromPeriod)(int32_t) = linearPeriodsFlag ? dLinearPeriod2Hz : dAmigaPeriod2Hz;
-	const uint16_t *periodTab = linearPeriodsFlag ? linearPeriods : amigaPeriods;
+	const double dC4PeriodOffset = (NOTE_C4 * 16) + 16;
+	int32_t period = (int32_t)round(dC4PeriodOffset + (log2(dC4Hz / C4_FREQ) * 12.0 * 16.0));
 
-	if (midCFreq <= 0 || periodTab == NULL)
-	{
-		s->finetune = s->relativeNote = 0;
-		return;
-	}
+	// Hi-limit is A#9 at highest finetune. B-9 is bugged in FT2, don't include it.
+	period = CLAMP(period, 0, (12 * 16 * 10) - 1);
 
-	// handle frequency boundaries first...
-
-	if (midCFreq <= (int32_t)dGetHzFromPeriod(periodTab[MIN_PERIOD]))
-	{
-		s->finetune = -128;
-		s->relativeNote = -48;
-		return;
-	}
-
-	if (midCFreq >= (int32_t)dGetHzFromPeriod(periodTab[MAX_PERIOD]))
-	{
-		s->finetune = 127;
-		s->relativeNote = 71;
-		return;
-	}
-
-	// check if midCFreq is matching any of the non-finetuned note frequencies (C-0..B-9)
-
-	for (int8_t i = 0; i < 10*12; i++)
-	{
-		if (midCFreq == (int32_t)dGetHzFromPeriod(periodTab[16 + (i<<4)]))
-		{
-			s->finetune = 0;
-			s->relativeNote = i - NOTE_C4;
-			return;
-		}
-	}
-
-	// find closest frequency in period table
-
-	int32_t period = MAX_PERIOD;
-	for (; period >= MIN_PERIOD; period--)
-	{
-		const int32_t curr = (int32_t)dGetHzFromPeriod(periodTab[period]);
-		if (midCFreq == curr)
-			break;
-
-		if (midCFreq > curr)
-		{
-			const int32_t next = (int32_t)dGetHzFromPeriod(periodTab[period+1]);
-			const int32_t errorCurr = ABS(curr-midCFreq);
-			const int32_t errorNext = ABS(next-midCFreq);
-
-			if (errorCurr <= errorNext)
-				break; // current is the closest
-
-			period++;
-			break; // current+1 is the closest
-		}
-	}
-
-	s->finetune = ((period & 31) - 16) << 3;
+	s->finetune = ((period & 31) - 16) << 3; // 0..31 -> -128..120
 	s->relativeNote = (int8_t)(((period & ~31) >> 4) - NOTE_C4);
 }
 
@@ -452,7 +402,8 @@
 		return;
 
 	audio.dHz2MixDeltaMul = (double)MIXER_FRAC_SCALE / audioFreq;
-	audio.quickVolRampSamples = (uint32_t)round(audioFreq / (double)FT2_QUICKRAMP_SAMPLES);
+	audio.quickVolRampSamples = (uint32_t)round(audioFreq / (1000.0 / FT2_QUICK_VOLRAMP_MILLISECONDS));
+	audio.fQuickVolRampSamplesMul = (float)(1.0 / audio.quickVolRampSamples);
 
 	for (int32_t bpm = MIN_BPM; bpm <= MAX_BPM; bpm++)
 	{
@@ -477,7 +428,7 @@
 }
 
 // for piano in Instr. Ed. (values outside 0..95 can happen)
-int32_t getPianoKey(uint16_t period, int8_t finetune, int8_t relativeNote) 
+int32_t getPianoKey(uint16_t period, int8_t finetune, int8_t relativeNote)
 {
 	assert(note2Period != NULL);
 	if (period > note2Period[0])
@@ -2838,7 +2789,7 @@
 		instr[131] = NULL;
 	}
 
-	freeCubicSplineTable();
+	freeCubicSplineTables();
 	freeWindowedSincTables();
 }
 
@@ -3180,7 +3131,6 @@
 	editor.curPlaySmp = 255;
 
 	stopAllScopes();
-	resetCachedMixerVars();
 
 	// wait for scope thread to finish, making sure pointers aren't illegal
 	while (editor.scopeThreadBusy);
--- a/src/ft2_replayer.h
+++ b/src/ft2_replayer.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_replayer_h_
+#define _ft2_replayer_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -47,7 +48,7 @@
 #define C4_FREQ 8363
 #define NOTE_C4 (4*12)
 #define NOTE_OFF 97
-#define MAX_NOTES (10*12*16+16)
+#define MAX_NOTES ((10*12*16)+16)
 #define MAX_PATTERNS 256
 #define MAX_PATT_LEN 256
 #define MAX_INST 128
@@ -57,7 +58,7 @@
 #define INSTR_HEADER_SIZE 263
 #define INSTR_XI_HEADER_SIZE 298
 #define MAX_SAMPLE_LEN 0x3FFFFFFF
-#define FT2_QUICKRAMP_SAMPLES 200
+#define FT2_QUICK_VOLRAMP_MILLISECONDS 5
 #define PROG_NAME_STR "Fasttracker II clone"
 
 enum // sample flags
@@ -88,9 +89,9 @@
 ** absolutely know what you are doing!
 */
 
-#ifdef _MSC_VER
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct xmHdr_t
 {
@@ -194,9 +195,8 @@
 
 typedef struct syncedChannel_t // used for audio/video sync queue (pack to save RAM)
 {
-	uint8_t status, pianoNoteNum, smpNum, instrNum;
+	uint8_t status, pianoNoteNum, smpNum, instrNum, scopeVolume;
 	int32_t smpStartPos;
-	uint8_t scopeVolume;
 	uint64_t scopeDelta;
 }
 #ifdef __GNUC__
@@ -204,8 +204,8 @@
 #endif
 syncedChannel_t;
 
-#ifdef _MSC_VER
-#pragma pack(pop)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack off
 #endif
 
 typedef struct sample_t
@@ -256,7 +256,7 @@
 	uint16_t volEnvTick, panEnvTick, autoVibAmp, autoVibSweep;
 	uint16_t midiVibDepth;
 	int32_t fadeoutVol, fadeoutSpeed;
-	int32_t oldFinalPeriod, smpStartPos;
+	int32_t smpStartPos;
 
 	float fFinalVol, fVolEnvDelta, fPanEnvDelta, fVolEnvValue, fPanEnvValue;
 
@@ -287,10 +287,7 @@
 void fixInstrAndSampleNames(int16_t insNum);
 
 void calcReplayerVars(int32_t rate);
-
-// used on external sample load and during sample loading in some module formats
-void tuneSample(sample_t *s, const int32_t midCFreq, bool linearPeriodsFlag);
-
+void setSampleC4Hz(sample_t *s, double dC4Hz);
 void calcReplayerLogTab(void); // for linear period -> hz calculation
 
 double dLinearPeriod2Hz(int32_t period);
@@ -356,3 +353,5 @@
 extern song_t song;
 extern instr_t *instr[128+4];
 extern note_t *pattern[MAX_PATTERNS];
+
+#endif
--- a/src/ft2_sample_ed.c
+++ b/src/ft2_sample_ed.c
@@ -1862,7 +1862,7 @@
 		default: case SMP_SAVE_MODE_WAV: changeFilenameExt(smpEd_SysReqText, ".wav", sizeof (smpEd_SysReqText) - 1); break;
 	}
 
-	UNICHAR *filenameU = cp437ToUnichar(smpEd_SysReqText);
+	UNICHAR *filenameU = cp850ToUnichar(smpEd_SysReqText);
 	if (filenameU == NULL)
 	{
 		okBox(0, "System message", "Not enough memory!", NULL);
@@ -3068,7 +3068,7 @@
 
 	if (editor.curInstr == ins && editor.curSmp == smp)
 	{
-		const int32_t smpPos = getSamplePosition(editor.curSmpChannel);
+		const int32_t smpPos = getSamplePositionFromScopes(editor.curSmpChannel);
 		if (smpPos != -1)
 		{
 			// convert sample position to screen position
--- a/src/ft2_sample_ed.h
+++ b/src/ft2_sample_ed.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_sample_ed_h_
+#define _ft2_sample_ed_h_
 
 #include <stdint.h>
 #include "ft2_header.h"
@@ -88,3 +89,5 @@
 void sampleLine(int32_t x1, int32_t x2, int32_t y1, int32_t y2);
 
 extern int32_t smpEd_Rx1, smpEd_Rx2;
+
+#endif
--- a/src/ft2_sample_ed_features.c
+++ b/src/ft2_sample_ed_features.c
@@ -90,7 +90,7 @@
 	sample_t *s = &instr[editor.curInstr]->smp[editor.curSmp];
 	bool sample16Bit = !!(s->flags & SAMPLE_16BIT);
 
-	const double dRatio = exp2((int32_t)smpEd_RelReSmp / 12.0);
+	const double dRatio = pow(2.0, (int32_t)smpEd_RelReSmp * (1.0 / 12.0));
 
 	double dNewLen = s->length * dRatio;
 	if (dNewLen > (double)MAX_SAMPLE_LEN)
@@ -207,7 +207,7 @@
 
 	sample_t *s = &instr[editor.curInstr]->smp[editor.curSmp];
 
-	double dLenMul = exp2(smpEd_RelReSmp * (1.0 / 12.0));
+	double dLenMul = pow(2.0, smpEd_RelReSmp * (1.0 / 12.0));
 
 	double dNewLen = s->length * dLenMul;
 	if (dNewLen > (double)MAX_SAMPLE_LEN)
--- a/src/ft2_sample_ed_features.h
+++ b/src/ft2_sample_ed_features.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_sample_ed_features_h_
+#define _ft2_sample_ed_features_h_
 
 #include <stdint.h>
 
@@ -7,3 +8,5 @@
 void pbSampleMix(void);
 void pbSampleVolume(void);
 void handleEchoToolPanic(void);
+
+#endif
--- a/src/ft2_sample_loader.c
+++ b/src/ft2_sample_loader.c
@@ -20,6 +20,9 @@
 bool loadFLAC(FILE *f, uint32_t filesize);
 #endif
 
+bool detectBRR(FILE *f);
+bool loadBRR(FILE *f, uint32_t filesize);
+
 bool loadAIFF(FILE *f, uint32_t filesize);
 bool loadIFF(FILE *f, uint32_t filesize);
 bool loadRAW(FILE *f, uint32_t filesize);
@@ -31,7 +34,8 @@
 	FORMAT_IFF = 1,
 	FORMAT_WAV = 2,
 	FORMAT_AIFF = 3,
-	FORMAT_FLAC = 4
+	FORMAT_FLAC = 4,
+	FORMAT_BRR = 5
 };
 
 // file extensions accepted by Disk Op. in sample mode
@@ -38,7 +42,7 @@
 char *supportedSmpExtensions[] =
 {
 	"iff", "raw", "wav", "snd", "smp", "sam", "aif", "pat",
-	"aiff","flac", // IMPORTANT: Remember comma after last entry!!!
+	"aiff","flac","brr", // IMPORTANT: Remember comma after last entry!!!
 
 	"END_OF_LIST" // do NOT move, remove or edit this line!
 };
@@ -78,6 +82,9 @@
 	if (!memcmp("FORM", &D[0], 4) && (!memcmp("AIFF", &D[8], 4) || !memcmp("AIFC", &D[8], 4)))
 		return FORMAT_AIFF;
 
+	if (detectBRR(f))
+		return FORMAT_BRR;
+
 	return FORMAT_UNKNOWN;
 }
 
@@ -125,6 +132,7 @@
 		case FORMAT_IFF: sampleLoaded = loadIFF(f, filesize); break;
 		case FORMAT_WAV: sampleLoaded = loadWAV(f, filesize); break;
 		case FORMAT_AIFF: sampleLoaded = loadAIFF(f, filesize); break;
+		case FORMAT_BRR: sampleLoaded = loadBRR(f, filesize); break;
 		default: sampleLoaded = loadRAW(f, filesize); break;
 	}
 	fclose(f);
@@ -136,7 +144,7 @@
 
 	if (!smpFilenameSet) // if we didn't set a custom sample name in the loader, set it to its filename
 	{
-		char *tmpFilename = unicharToCp437(editor.tmpFilenameU, true);
+		char *tmpFilename = unicharToCp850(editor.tmpFilenameU, true);
 		if (tmpFilename != NULL)
 		{
 			int32_t i = (int32_t)strlen(tmpFilename);
--- a/src/ft2_sample_loader.h
+++ b/src/ft2_sample_loader.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_sample_loader_h_
+#define _ft2_sample_loader_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -28,3 +29,5 @@
 
 // file extensions accepted by Disk Op. in sample mode
 extern char *supportedSmpExtensions[];
+
+#endif
--- a/src/ft2_sample_saver.h
+++ b/src/ft2_sample_saver.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_sample_saver_h_
+#define _ft2_sample_saver_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -11,3 +12,5 @@
 };
 
 void saveSample(UNICHAR *filenameU, bool saveAsRange);
+
+#endif
--- a/src/ft2_sampling.c
+++ b/src/ft2_sampling.c
@@ -383,7 +383,7 @@
 
 	smpL = &instr[editor.curInstr]->smp[editor.curSmp];
 	freeSample(editor.curInstr, editor.curSmp); // also sets pan to 128 and vol to 64
-	tuneSample(smpL, samplingRate, audio.linearPeriodsFlag);
+	setSampleC4Hz(smpL, samplingRate);
 	smpL->flags |= SAMPLE_16BIT;
 
 	if (sampleInStereo)
@@ -390,7 +390,7 @@
 	{
 		smpR = &instr[editor.curInstr]->smp[editor.curSmp+1];
 		freeSample(editor.curInstr, editor.curSmp+1); // also sets pan to 128 and vol to 64
-		tuneSample(smpR, samplingRate, audio.linearPeriodsFlag);
+		setSampleC4Hz(smpR, samplingRate);
 		smpR->flags |= SAMPLE_16BIT;
 
 		strcpy(smpL->name, "Left sample");
--- a/src/ft2_sampling.h
+++ b/src/ft2_sampling.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_sampling_h_
+#define _ft2_sampling_h_
 
 enum
 {
@@ -10,3 +11,5 @@
 void startSampling(void);
 void stopSampling(void);
 void handleSamplingUpdates(void);
+
+#endif
--- a/src/ft2_scrollbars.c
+++ b/src/ft2_scrollbars.c
@@ -87,8 +87,8 @@
 	//x,   y,   w,  h,  type,                 style                         funcOnDown
 	{ 365,  29, 18, 43, SCROLLBAR_VERTICAL,   SCROLLBAR_DYNAMIC_THUMB_SIZE, sbAudOutputSetPos },
 	{ 365, 116, 18, 21, SCROLLBAR_VERTICAL,   SCROLLBAR_DYNAMIC_THUMB_SIZE, sbAudInputSetPos },
-	{ 529, 117, 79, 13, SCROLLBAR_HORIZONTAL, SCROLLBAR_FIXED_THUMB_SIZE,   sbAmp },
-	{ 529, 143, 79, 13, SCROLLBAR_HORIZONTAL, SCROLLBAR_FIXED_THUMB_SIZE,   sbMasterVol },
+	{ 533, 117, 75, 13, SCROLLBAR_HORIZONTAL, SCROLLBAR_FIXED_THUMB_SIZE,   sbAmp },
+	{ 533, 143, 75, 13, SCROLLBAR_HORIZONTAL, SCROLLBAR_FIXED_THUMB_SIZE,   sbMasterVol },
 
 	// ------ CONFIG LAYOUT SCROLLBARS ------
 	//x,   y,  w,  h,  type,                 style                       funcOnDown
@@ -252,7 +252,7 @@
 		}
 
 		// prevent scrollbar thumb coords from being outside of the scrollbar area
-		thumbX = CLAMP(thumbX, scrollBar->x, scrollEnd-1);
+		thumbX = CLAMP((int)thumbX, (int)scrollBar->x, (int)scrollEnd-1);
 		if (thumbX+thumbW > scrollEnd)
 			thumbW = scrollEnd - thumbX;
 	}
@@ -294,7 +294,7 @@
 		}
 
 		// prevent scrollbar thumb coords from being outside of the scrollbar area
-		thumbY = CLAMP(thumbY, scrollBar->y, scrollEnd - 1);
+		thumbY = CLAMP((int)thumbY, (int)scrollBar->y, (int)scrollEnd - 1);
 		if (thumbY+thumbH > scrollEnd)
 			thumbH = scrollEnd - thumbY;
 	}
@@ -519,7 +519,7 @@
 
 					scrollPos = mouse.x - scrollBias - scrollBar->x;
 					assert(scrollBar->w > 0);
-					scrollPos = CLAMP(scrollPos, 0, scrollBar->w);
+					scrollPos = CLAMP((int)scrollPos, 0, (int)scrollBar->w);
 
 					if (scrollBar->thumbType == SCROLLBAR_FIXED_THUMB_SIZE)
 						length = scrollBar->w - scrollBar->thumbW;
@@ -556,7 +556,7 @@
 					scrollPos = mouse.y - scrollBias - scrollBar->y;
 
 					assert(scrollBar->h > 0);
-					scrollPos = CLAMP(scrollPos, 0, scrollBar->h);
+					scrollPos = CLAMP((int)scrollPos, 0, (int)scrollBar->h);
 
 					length = scrollBar->h + (scrollBar->originalThumbSize - scrollBar->thumbH);
 					if (length < 1)
--- a/src/ft2_scrollbars.h
+++ b/src/ft2_scrollbars.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_scrollbars_h_
+#define _ft2_scrollbars_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -93,3 +94,5 @@
 void testScrollBarMouseRelease(void);
 void handleScrollBarsWhileMouseDown(void);
 void initializeScrollBars(void);
+
+#endif
--- a/src/ft2_structs.h
+++ b/src/ft2_structs.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_structs_h_
+#define _ft2_structs_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -81,3 +82,5 @@
 extern editor_t editor;
 extern ui_t ui;
 extern cursor_t cursor;
+
+#endif
--- a/src/ft2_sysreqs.c
+++ b/src/ft2_sysreqs.c
@@ -519,7 +519,7 @@
 						continue;
 					}
 
-					char *inputText = utf8ToCp437(inputEvent.text.text, false);
+					char *inputText = utf8ToCp850(inputEvent.text.text, false);
 					if (inputText != NULL)
 					{
 						if (inputText[0] != '\0')
--- a/src/ft2_sysreqs.h
+++ b/src/ft2_sysreqs.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_sysreqs_h_
+#define _ft2_sysreqs_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -35,3 +36,5 @@
 extern void (*loaderMsgBox)(const char *, ...);
 extern int16_t (*loaderSysReq)(int16_t, const char *, const char *, void (*)(void));
 // ---------------
+
+#endif
--- a/src/ft2_tables.c
+++ b/src/ft2_tables.c
@@ -369,7 +369,7 @@
 const uint8_t font1Widths[128] = // normal font
 {
 	8,8,4,6,7,6,7,6,6,6,6,6,6,6,8,8,
-	6,6,6,7,7,7,7,7,7,8,7,8,8,8,8,8,
+	6,9,8,8,7,7,7,7,7,8,7,7,8,8,8,8,
 	4,3,8,8,8,8,8,4,5,5,8,7,4,7,3,8,
 	7,7,7,7,7,7,7,7,7,7,3,8,8,8,8,8,
 	8,8,8,8,8,8,8,8,8,3,8,8,8,9,9,8,
--- a/src/ft2_tables.h
+++ b/src/ft2_tables.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_tables_h_
+#define _ft2_tables_h_
 
 #include <stdint.h>
 #include "ft2_palette.h" // pal16 typedef
@@ -50,3 +51,5 @@
 extern const uint8_t defConfigData[CONFIG_FILE_SIZE];
 
 extern const uint64_t musicTimeTab52[(MAX_BPM-MIN_BPM)+1];
+
+#endif
--- a/src/ft2_textboxes.c
+++ b/src/ft2_textboxes.c
@@ -233,7 +233,7 @@
 	const char oldChar = t->textPtr[end];
 	t->textPtr[end] = '\0';
 
-	char *utf8Text = cp437ToUtf8(&t->textPtr[start]);
+	char *utf8Text = cp850ToUtf8(&t->textPtr[start]);
 	if (utf8Text != NULL)
 	{
 		SDL_SetClipboardText(utf8Text);
@@ -280,7 +280,7 @@
  
 	char *copiedTextUtf8 = SDL_GetClipboardText();
 
-	char *copiedText = utf8ToCp437(copiedTextUtf8, true);
+	char *copiedText = utf8ToCp850(copiedTextUtf8, true);
 	if (copiedText == NULL)
 		return;
 
@@ -1117,8 +1117,12 @@
 		return;
 
 	const int8_t ch = (const int8_t)textChar;
-	if (ch < 32 && ch != -124 && ch != -108 && ch != -122 && ch != -114 && ch != -103 && ch != -113)
-		return; // allow certain codepage 437 nordic characters
+	if (ch < 32 &&
+		ch != -124 && ch != -108 && ch != -122 && ch != -114 && ch != -103 &&
+		ch != -113 && ch != -101 && ch != -99 && ch != -111 && ch != -110)
+	{
+		return; // only allow certain codepage 850 nordic characters
+	}
 
 	if (textIsMarked())
 	{
--- a/src/ft2_textboxes.h
+++ b/src/ft2_textboxes.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_textboxes_h_
+#define _ft2_textboxes_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -76,3 +77,5 @@
 void handleTextEditInputChar(char textChar);
 void handleTextBoxWhileMouseDown(void);
 void freeTextBoxes(void);
+
+#endif
--- a/src/ft2_trim.h
+++ b/src/ft2_trim.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_trim_h_
+#define _ft2_trim_h_
 
 void drawTrimScreen(void);
 void hideTrimScreen(void);
@@ -15,3 +16,5 @@
 void cbTrimSmpsTo8Bit(void);
 void pbTrimCalc(void);
 void pbTrimDoTrim(void);
+
+#endif
--- a/src/ft2_unicode.c
+++ b/src/ft2_unicode.c
@@ -18,7 +18,7 @@
 #ifdef _WIN32
 
 // Windows routines
-char *cp437ToUtf8(char *src)
+char *cp850ToUtf8(char *src)
 {
 	int32_t retVal;
 
@@ -29,7 +29,7 @@
 	if (srcLen <= 0)
 		return NULL;
 
-	int32_t reqSize = MultiByteToWideChar(437, 0, src, srcLen, 0, 0);
+	int32_t reqSize = MultiByteToWideChar(850, 0, src, srcLen, 0, 0);
 	if (reqSize <= 0)
 		return NULL;
 
@@ -39,7 +39,7 @@
 
 	w[reqSize] = 0;
 
-	retVal = MultiByteToWideChar(437, 0, src, srcLen, w, reqSize);
+	retVal = MultiByteToWideChar(850, 0, src, srcLen, w, reqSize);
 	if (!retVal)
 	{
 		free(w);
@@ -78,7 +78,7 @@
 	return x;
 }
 
-UNICHAR *cp437ToUnichar(char *src)
+UNICHAR *cp850ToUnichar(char *src)
 {
 	if (src == NULL)
 		return NULL;
@@ -87,7 +87,7 @@
 	if (srcLen <= 0)
 		return NULL;
 
-	int32_t reqSize = MultiByteToWideChar(437, 0, src, srcLen, 0, 0);
+	int32_t reqSize = MultiByteToWideChar(850, 0, src, srcLen, 0, 0);
 	if (reqSize <= 0)
 		return NULL;
 
@@ -97,7 +97,7 @@
 
 	w[reqSize] = 0;
 
-	int32_t retVal = MultiByteToWideChar(437, 0, src, srcLen, w, reqSize);
+	int32_t retVal = MultiByteToWideChar(850, 0, src, srcLen, w, reqSize);
 	if (!retVal)
 	{
 		free(w);
@@ -107,7 +107,7 @@
 	return w;
 }
 
-char *utf8ToCp437(char *src, bool removeIllegalChars)
+char *utf8ToCp850(char *src, bool removeIllegalChars)
 {
 	if (src == NULL)
 		return NULL;
@@ -140,7 +140,7 @@
 		return NULL;
 	}
 
-	reqSize = WideCharToMultiByte(437, 0, w, srcLen, 0, 0, 0, 0);
+	reqSize = WideCharToMultiByte(850, 0, w, srcLen, 0, 0, 0, 0);
 	if (reqSize <= 0)
 	{
 		free(w);
@@ -156,7 +156,7 @@
 
 	x[reqSize] = '\0';
 
-	retVal = WideCharToMultiByte(437, 0, w, srcLen, x, reqSize, 0, 0);
+	retVal = WideCharToMultiByte(850, 0, w, srcLen, x, reqSize, 0, 0);
 	free(w);
 
 	if (!retVal)
@@ -171,8 +171,9 @@
 		for (int32_t i = 0; i < reqSize; i++)
 		{
 			const int8_t ch = (const int8_t)x[i];
-			if (ch < 32 && ch != 0 && ch != -124 && ch != -108 &&
-			    ch != -122 && ch != -114 && ch != -103 && ch != -113)
+			if (ch != '\0' && ch < 32 &&
+			    ch != -124 && ch != -108 && ch != -122 && ch != -114 && ch != -103 &&
+			    ch != -113 && ch != -101 && ch != -99 && ch != -111 && ch != -110)
 			{
 				x[i] = ' '; // character not allowed, turn it into space
 			}
@@ -182,7 +183,7 @@
 	return x;
 }
 
-char *unicharToCp437(UNICHAR *src, bool removeIllegalChars)
+char *unicharToCp850(UNICHAR *src, bool removeIllegalChars)
 {
 	if (src == NULL)
 		return NULL;
@@ -191,7 +192,7 @@
 	if (srcLen <= 0)
 		return NULL;
 
-	int32_t reqSize = WideCharToMultiByte(437, 0, src, srcLen, 0, 0, 0, 0);
+	int32_t reqSize = WideCharToMultiByte(850, 0, src, srcLen, 0, 0, 0, 0);
 	if (reqSize <= 0)
 		return NULL;
 
@@ -201,7 +202,7 @@
 
 	x[reqSize] = '\0';
 
-	int32_t retVal = WideCharToMultiByte(437, 0, src, srcLen, x, reqSize, 0, 0);
+	int32_t retVal = WideCharToMultiByte(850, 0, src, srcLen, x, reqSize, 0, 0);
 	if (!retVal)
 	{
 		free(x);
@@ -214,8 +215,9 @@
 		for (int32_t i = 0; i < reqSize; i++)
 		{
 			const int8_t ch = (const int8_t)x[i];
-			if (ch < 32 && ch != 0 && ch != -124 && ch != -108 &&
-				ch != -122 && ch != -114 && ch != -103 && ch != -113)
+			if (ch != '\0' && ch < 32 &&
+			    ch != -124 && ch != -108 && ch != -122 && ch != -114 && ch != -103 &&
+			    ch != -113 && ch != -101 && ch != -99 && ch != -111 && ch != -110)
 			{
 				x[i] = ' '; // character not allowed, turn it into space
 			}
@@ -228,7 +230,7 @@
 #else
 
 // non-Windows routines
-char *cp437ToUtf8(char *src)
+char *cp850ToUtf8(char *src)
 {
 	if (src == NULL)
 		return NULL;
@@ -237,13 +239,13 @@
 	if (srcLen <= 0)
 		return NULL;
 
-	iconv_t cd = iconv_open("UTF-8", "437");
+	iconv_t cd = iconv_open("UTF-8", "850");
 	if (cd == (iconv_t)-1)
 		return NULL;
 
-	size_t outLen = srcLen * 2; // should be sufficient
+	size_t outLen = srcLen * 4; // should be sufficient
 
-	char *outBuf = (char *)malloc((outLen + 1) * sizeof (char));
+	char *outBuf = (char *)calloc(outLen + 1, sizeof (char));
 	if (outBuf == NULL)
 		return NULL;
 
@@ -270,7 +272,7 @@
 	return outBuf;
 }
 
-char *utf8ToCp437(char *src, bool removeIllegalChars)
+char *utf8ToCp850(char *src, bool removeIllegalChars)
 {
 	if (src == NULL)
 		return NULL;
@@ -280,18 +282,18 @@
 		return NULL;
 
 #ifdef __APPLE__
-	iconv_t cd = iconv_open("437//TRANSLIT//IGNORE", "UTF-8-MAC");
+	iconv_t cd = iconv_open("850//TRANSLIT//IGNORE", "UTF-8-MAC");
 #elif defined(__NetBSD__) || defined(__sun) || defined(sun)
-	iconv_t cd = iconv_open("437", "UTF-8");
+	iconv_t cd = iconv_open("850", "UTF-8");
 #else
-	iconv_t cd = iconv_open("437//TRANSLIT//IGNORE", "UTF-8");
+	iconv_t cd = iconv_open("850//TRANSLIT//IGNORE", "UTF-8");
 #endif
 	if (cd == (iconv_t)-1)
 		return NULL;
 
-	size_t outLen = srcLen * 2; // should be sufficient
+	size_t outLen = srcLen * 4; // should be sufficient
 
-	char *outBuf = (char *)malloc((outLen + 1) * sizeof (char));
+	char *outBuf = (char *)calloc(outLen + 1, sizeof (char));
 	if (outBuf == NULL)
 		return NULL;
 
@@ -321,8 +323,9 @@
 		for (size_t i = 0; i < outLen; i++)
 		{
 			const int8_t ch = (const int8_t)outBuf[i];
-			if (ch < 32 && ch != 0 && ch != -124 && ch != -108 &&
-				ch != -122 && ch != -114 && ch != -103 && ch != -113)
+			if (ch != '\0' && ch < 32 &&
+			    ch != -124 && ch != -108 && ch != -122 && ch != -114 && ch != -103 &&
+			    ch != -113 && ch != -101 && ch != -99 && ch != -111 && ch != -110)
 			{
 				outBuf[i] = ' '; // character not allowed, turn it into space
 			}
--- a/src/ft2_unicode.h
+++ b/src/ft2_unicode.h
@@ -42,12 +42,12 @@
 #define UNICHAR_STRLEN(a) strlen(a)
 #endif
 
-char *cp437ToUtf8(char *src);
-char *utf8ToCp437(char *src, bool removeIllegalChars);
+char *cp850ToUtf8(char *src);
+char *utf8ToCp850(char *src, bool removeIllegalChars);
 #ifdef _WIN32
-UNICHAR *cp437ToUnichar(char *src);
-char *unicharToCp437(UNICHAR *src, bool removeIllegalChars);
+UNICHAR *cp850ToUnichar(char *src);
+char *unicharToCp850(UNICHAR *src, bool removeIllegalChars);
 #else
-#define cp437ToUnichar(a) cp437ToUtf8(a)
-#define unicharToCp437(a, b) utf8ToCp437(a, b)
+#define cp850ToUnichar(a) cp850ToUtf8(a)
+#define unicharToCp850(a, b) utf8ToCp850(a, b)
 #endif
--- a/src/ft2_video.c
+++ b/src/ft2_video.c
@@ -382,6 +382,11 @@
 
 	memset(sprites, 0, sizeof (sprites));
 
+	// hide sprites
+	s = sprites;
+	for (int32_t i = 0; i < SPRITE_NUM; i++, s++)
+		s->x = s->y = INT16_MAX;
+
 	s = &sprites[SPRITE_MOUSE_POINTER];
 	s->data = bmp.mouseCursors;
 	s->w = MOUSE_CURSOR_W;
--- a/src/ft2_video.h
+++ b/src/ft2_video.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_video_h_
+#define _ft2_video_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -73,3 +74,5 @@
 void setWindowSizeFromConfig(bool updateRenderer);
 bool recreateTexture(void);
 void toggleFullscreen(void);
+
+#endif
--- a/src/ft2_wav_renderer.h
+++ b/src/ft2_wav_renderer.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_wav_renderer_h_
+#define _ft2_wav_renderer_h_
 
 #include <stdint.h>
 #include "ft2_header.h"
@@ -27,3 +28,5 @@
 void resetWavRenderer(void);
 void rbWavRenderBitDepth16(void);
 void rbWavRenderBitDepth32(void);
+
+#endif
binary files /dev/null b/src/gfxdata/bmp/buttonGfx.bmp differ
binary files a/src/gfxdata/bmp/font1.bmp b/src/gfxdata/bmp/font1.bmp differ
binary files /dev/null b/src/gfxdata/bmp/ft2OldAboutLogo.bmp differ
--- a/src/gfxdata/ft2_bmp_fonts.c
+++ b/src/gfxdata/ft2_bmp_fonts.c
@@ -1,164 +1,168 @@
 #include <stdint.h>
 
-const uint8_t font1BMP[3712] = // normal font
+const uint8_t buttonGfxBMP[416] = // custom button graphics
 {
-	0x42,0x4D,0x80,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x0A,0x00,
-	0x00,0x00,0x01,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x42,0x0E,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x02,0x00,
-	0x00,0x00,0x02,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFE,0x11,0xFE,0x11,0xF4,0x11,0x02,0x00,0x02,0x00,
-	0x3C,0x11,0x00,0x0E,0x00,0x11,0x11,0x11,0x00,0x00,0x01,0x00,0x12,0x11,0x02,0x00,0x02,0x01,0x2C,0x11,0x02,0x00,0x0A,0x11,
-	0x02,0x00,0x3A,0x11,0x00,0x06,0x00,0x00,0x01,0x00,0x32,0x11,0x00,0x00,0xA8,0x11,0x02,0x01,0xB6,0x11,0x02,0x00,0x76,0x11,
-	0x02,0x00,0xFE,0x11,0x18,0x11,0x02,0x00,0x02,0x00,0x3C,0x11,0x02,0x00,0x0A,0x11,0x02,0x00,0x14,0x11,0x02,0x00,0x2C,0x11,
-	0x02,0x00,0x0A,0x11,0x02,0x00,0x3E,0x11,0x02,0x00,0x0C,0x11,0x02,0x00,0x0C,0x11,0x02,0x00,0x16,0x11,0x00,0x00,0x08,0x11,
-	0x00,0x08,0x00,0x11,0x11,0x01,0x0A,0x11,0x00,0x1C,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x11,0x00,0x11,0x11,0x10,0x00,0x00,
-	0x3A,0x11,0x00,0x10,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x18,0x11,0x00,0x3A,0x10,0x00,0x00,0x11,0x10,0x00,0x01,0x11,
-	0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x00,0x00,0x0A,0x11,
-	0x00,0x20,0x00,0x01,0x11,0x00,0x01,0x11,0x11,0x10,0x11,0x11,0x11,0x10,0x11,0x11,0x11,0x10,0x0C,0x11,0x02,0x00,0x18,0x11,
-	0x00,0x16,0x00,0x11,0x11,0x01,0x11,0x10,0x01,0x10,0x00,0x10,0x01,0x00,0x0A,0x11,0x00,0x08,0x00,0x11,0x11,0x00,0x16,0x11,
-	0x02,0x10,0x02,0x01,0x0C,0x11,0x00,0x5E,0x00,0x11,0x11,0x11,0x01,0x11,0x11,0x11,0x10,0x00,0x01,0x11,0x00,0x00,0x00,0x11,
-	0x00,0x00,0x00,0x11,0x10,0x00,0x01,0x11,0x11,0x11,0x00,0x11,0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x11,0x11,0x00,0x11,0x11,
-	0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x00,0x0A,0x11,0x02,0x10,0x02,0x01,0x08,0x11,0x02,0x00,0x0A,0x11,0x00,0xEC,0x10,0x01,
-	0x11,0x11,0x11,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x00,0x11,0x10,0x01,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x00,0x00,
-	0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x11,0x11,0x11,0x10,0x00,0x00,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x10,0x00,
-	0x00,0x11,0x00,0x11,0x10,0x01,0x00,0x00,0x00,0x01,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x10,0x00,0x00,0x11,0x00,0x11,
-	0x11,0x11,0x10,0x00,0x00,0x01,0x00,0x11,0x10,0x01,0x10,0x00,0x00,0x11,0x11,0x10,0x01,0x11,0x10,0x00,0x00,0x11,0x11,0x10,
-	0x11,0x11,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x11,0x10,0x01,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x0A,0x11,0x00,0x18,
-	0x01,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x01,0x0A,0x11,0x00,0x42,0x10,0x00,0x00,0x11,0x00,0x00,0x01,0x11,
-	0x10,0x00,0x01,0x11,0x10,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x10,0x00,0x00,0x11,0x00,0x11,0x00,0x11,
-	0x00,0x00,0x08,0x11,0x00,0x68,0x00,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x00,0x00,0x11,0x00,
-	0x11,0x10,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x10,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x00,0x01,0x11,0x10,0x00,0x11,
-	0x11,0x10,0x00,0x00,0x11,0x11,0x10,0x11,0x11,0x10,0x08,0x00,0x00,0x2A,0x11,0x10,0x01,0x10,0x00,0x00,0x11,0x00,0x00,0x00,
-	0x11,0x10,0x01,0x11,0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x00,0x14,0x11,0x00,0x00,0x08,0x11,0x00,0x08,0x00,0x11,0x10,0x01,
-	0x08,0x11,0x00,0xE6,0x10,0x00,0x01,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x00,0x11,0x00,0x11,0x10,0x00,0x11,0x11,
-	0x00,0x00,0x11,0x11,0x00,0x00,0x01,0x11,0x10,0x00,0x11,0x11,0x11,0x10,0x01,0x11,0x10,0x00,0x11,0x11,0x10,0x00,0x11,0x11,
-	0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x10,0x01,
-	0x00,0x11,0x00,0x11,0x00,0x01,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,
-	0x00,0x11,0x11,0x11,0x01,0x11,0x10,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x00,
-	0x1A,0x11,0x00,0x1E,0x10,0x01,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x00,0x00,0x0A,0x11,0x00,0x24,
-	0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x11,0x01,0x11,0x11,0x00,0x11,0x11,0x10,0x01,0x0C,0x11,0x00,0x76,0x00,0x11,
-	0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x11,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,
-	0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x10,0x01,0x00,0x0C,0x11,0x02,0x00,0x0C,0x11,0x00,0xDA,0x01,0x11,0x11,0x01,0x00,0x11,
-	0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,
-	0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,
-	0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,0x00,0x11,
-	0x10,0x01,0x11,0x10,0x01,0x11,0x00,0x11,0x10,0x01,0x11,0x00,0x01,0x11,0x00,0x01,0x10,0x00,0x00,0x11,0x11,0x00,0x11,0x10,
-	0x01,0x11,0x00,0x11,0x11,0x11,0x00,0x00,0x0A,0x11,0x00,0x10,0x10,0x01,0x11,0x00,0x11,0x11,0x00,0x00,0x14,0x11,0x00,0x42,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x08,0x11,0x00,0x40,0x00,0x11,0x11,0x00,0x10,0x01,0x11,0x00,0x11,0x11,
-	0x11,0x00,0x10,0x01,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x0A,0x11,
-	0x00,0x50,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x01,0x11,0x00,0x10,0x01,0x00,0x10,0x01,0x00,0x11,
-	0x00,0x11,0x00,0x11,0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x14,0x11,0x00,0x00,0x0C,0x11,
-	0x00,0xF2,0x00,0x11,0x01,0x01,0x11,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x00,0x11,0x00,0x11,
-	0x00,0x10,0x01,0x11,0x10,0x01,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x00,0x10,0x01,0x11,
-	0x00,0x10,0x01,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x01,0x11,0x11,0x00,0x10,0x01,0x11,0x00,0x10,0x01,0x11,
-	0x00,0x01,0x10,0x01,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,
-	0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x10,0x11,0x11,0x01,0x11,0x00,0x01,0x11,0x10,0x00,0x00,0x11,0x10,0x00,0x00,0x01,
-	0x00,0x00,0x00,0x00,0x0A,0x11,0x02,0x00,0x0E,0x11,0x00,0x1E,0x00,0x00,0x00,0x01,0x11,0x11,0x10,0x01,0x10,0x01,0x11,0x11,
-	0x00,0x10,0x00,0x00,0x0A,0x11,0x02,0x00,0x08,0x11,0x00,0x12,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x00,0x1C,0x11,
-	0x00,0x1C,0x10,0x01,0x11,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x10,0x01,0x08,0x11,0x00,0x36,0x00,0x11,0x11,0x11,
-	0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x00,
-	0x10,0x11,0x00,0x68,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x11,0x10,0x01,0x11,0x11,0x00,0x11,0x11,0x01,0x10,0x01,0x01,0x00,
-	0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,
-	0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x0A,0x11,0x00,0x64,0x10,0x01,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,
-	0x11,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x11,0x11,
-	0x10,0x01,0x11,0x10,0x01,0x11,0x00,0x11,0x10,0x01,0x10,0x01,0x00,0x11,0x0A,0x00,0x00,0x18,0x11,0x11,0x00,0x11,0x10,0x01,
-	0x11,0x10,0x01,0x11,0x11,0x00,0x0A,0x11,0x00,0x10,0x00,0x11,0x11,0x00,0x11,0x11,0x00,0x00,0x14,0x11,0x00,0x42,0x00,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x08,0x11,0x00,0x9A,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x11,0x11,0x11,0x00,
-	0x10,0x01,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x10,
-	0x00,0x01,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x00,0x10,0x01,0x00,0x11,0x00,0x01,0x11,0x00,
-	0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x10,0x01,0x11,0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x00,0x14,0x11,0x00,0x00,0x0A,0x11,
-	0x00,0x08,0x10,0x01,0x11,0x10,0x08,0x11,0x00,0xB8,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x11,0x00,0x11,0x11,0x10,0x00,0x00,
-	0x11,0x00,0x10,0x01,0x11,0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x01,
-	0x11,0x00,0x10,0x01,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x10,0x01,0x11,0x11,0x00,0x10,0x01,0x11,0x11,0x10,0x01,
-	0x11,0x00,0x10,0x10,0x01,0x10,0x00,0x01,0x11,0x00,0x10,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,
-	0x11,0x00,0x11,0x10,0x01,0x00,0x08,0x11,0x00,0x26,0x01,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
-	0x01,0x00,0x00,0x00,0x01,0x00,0x08,0x11,0x02,0x00,0x0E,0x11,0x00,0x20,0x10,0x01,0x00,0x11,0x11,0x11,0x10,0x01,0x11,0x00,
-	0x11,0x11,0x10,0x00,0x10,0x01,0x08,0x11,0x02,0x00,0x08,0x11,0x00,0x14,0x00,0x11,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,
-	0x0A,0x11,0x00,0x06,0x00,0x00,0x00,0x00,0x0C,0x11,0x00,0x1A,0x00,0x11,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x11,
-	0x00,0x00,0x08,0x11,0x00,0x32,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,
-	0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x00,0x12,0x11,0x02,0x10,0x02,0x01,0x10,0x11,0x00,0x56,0x00,0x11,0x11,0x10,0x01,0x11,
-	0x01,0x01,0x11,0x01,0x00,0x00,0x00,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,
-	0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x00,0x0A,0x11,0x00,0x86,0x10,0x01,0x00,0x10,0x01,0x11,
-	0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x10,0x01,0x00,0x00,0x00,0x11,0x00,0x11,0x10,0x01,
-	0x00,0x11,0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x10,0x01,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x10,0x01,0x00,
-	0x10,0x01,0x10,0x01,0x11,0x10,0x01,0x11,0x11,0x00,0x11,0x11,0x00,0x00,0x08,0x11,0x00,0x12,0x10,0x01,0x11,0x11,0x00,0x11,
-	0x11,0x00,0x00,0x00,0x14,0x11,0x00,0x42,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x08,0x11,0x00,0x90,0x00,0x11,
-	0x11,0x00,0x10,0x01,0x11,0x00,0x11,0x11,0x11,0x00,0x10,0x01,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,
-	0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x10,
-	0x01,0x00,0x10,0x01,0x00,0x10,0x01,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x10,0x01,0x11,0x00,0x11,0x11,0x11,0x00,0x08,0x11,
-	0x02,0x00,0x14,0x11,0x00,0x00,0x0A,0x11,0x00,0x12,0x00,0x11,0x11,0x01,0x01,0x11,0x11,0x11,0x00,0x00,0x0C,0x11,0x00,0x06,
-	0x00,0x00,0x00,0x00,0x0A,0x11,0x00,0x68,0x00,0x10,0x01,0x11,0x10,0x01,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x11,
-	0x00,0x00,0x01,0x11,0x11,0x10,0x01,0x11,0x00,0x10,0x01,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x00,0x11,0x11,
-	0x10,0x00,0x11,0x11,0x10,0x00,0x01,0x11,0x00,0x10,0x10,0x01,0x08,0x11,0x00,0x56,0x10,0x00,0x01,0x11,0x00,0x11,0x11,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x00,0x11,0x11,0x00,0x11,0x10,0x01,0x00,0x00,0x11,0x11,0x11,0x10,0x11,0x11,0x10,0x00,0x00,0x11,
-	0x11,0x00,0x01,0x11,0x10,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x0A,0x11,0x02,0x00,0x0E,0x11,0x00,0x1E,0x10,0x01,0x00,0x11,
-	0x10,0x00,0x00,0x11,0x11,0x10,0x01,0x11,0x11,0x00,0x01,0x00,0x0A,0x11,0x02,0x00,0x08,0x11,0x00,0x12,0x00,0x11,0x11,0x11,
-	0x00,0x11,0x11,0x11,0x00,0x00,0x1E,0x11,0x00,0xD0,0x10,0x01,0x11,0x00,0x11,0x00,0x11,0x11,0x00,0x11,0x11,0x11,0x10,0x01,
-	0x11,0x11,0x00,0x01,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x11,0x10,0x01,0x11,0x10,0x00,0x01,
-	0x11,0x10,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x11,0x10,0x01,
-	0x11,0x11,0x11,0x00,0x11,0x01,0x01,0x11,0x01,0x00,0x11,0x10,0x01,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x10,
-	0x01,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x00,0x10,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x0A,0x11,0x00,0x86,0x10,0x01,
-	0x00,0x00,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,
-	0x00,0x11,0x10,0x01,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x11,0x10,0x01,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,
-	0x00,0x11,0x11,0x00,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x01,0x11,0x00,0x00,0x08,0x11,0x00,0x12,0x00,0x11,
-	0x11,0x11,0x00,0x11,0x11,0x00,0x00,0x00,0x14,0x11,0x00,0x42,0x10,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x10,0x00,0x01,0x11,
-	0x10,0x00,0x00,0x11,0x10,0x00,0x01,0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x00,0x00,0x01,0x11,0x00,0x00,0x08,0x11,
-	0x00,0x9A,0x00,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x11,0x10,0x00,0x01,
-	0x11,0x00,0x00,0x01,0x11,0x10,0x00,0x00,0x11,0x10,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x00,0x00,0x11,0x11,0x00,0x11,0x00,
-	0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x00,0x00,0x11,0x10,0x01,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x10,0x01,0x11,
-	0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x00,0x14,0x11,0x00,0x00,0x08,0x11,0x02,0x10,0x02,0x01,0x0E,0x11,0x00,0xE4,0x00,0x11,
-	0x11,0x00,0x11,0x00,0x11,0x10,0x00,0x01,0x11,0x11,0x00,0x11,0x11,0x00,0x10,0x01,0x11,0x10,0x01,0x11,0x11,0x11,0x10,0x01,
-	0x11,0x11,0x10,0x01,0x11,0x00,0x10,0x01,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,
-	0x11,0x11,0x10,0x01,0x11,0x00,0x10,0x01,0x11,0x00,0x10,0x01,0x11,0x00,0x11,0x00,0x01,0x00,0x11,0x00,0x11,0x11,0x11,0x10,
-	0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x10,0x11,0x01,
-	0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x0A,0x11,0x00,0x1A,0x00,0x11,0x11,0x11,
-	0x01,0x10,0x11,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x0A,0x11,0x00,0x16,0x00,0x11,0x10,0x01,0x00,0x11,0x00,0x11,0x11,0x11,
-	0x00,0x00,0x08,0x11,0x00,0x12,0x00,0x11,0x11,0x10,0x11,0x01,0x11,0x11,0x00,0x00,0x20,0x11,0x00,0x10,0x00,0x11,0x00,0x11,
-	0x00,0x11,0x11,0x00,0x08,0x11,0x00,0x1E,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x00,
-	0x0A,0x11,0x00,0x2A,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x10,
-	0x01,0x00,0x0C,0x11,0x02,0x00,0x08,0x11,0x00,0x4E,0x10,0x01,0x01,0x10,0x01,0x01,0x10,0x01,0x00,0x11,0x00,0x11,0x00,0x11,
-	0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,
-	0x00,0x00,0x0A,0x11,0x00,0x14,0x10,0x01,0x00,0x10,0x01,0x11,0x00,0x11,0x11,0x11,0x0C,0x00,0x00,0x26,0x11,0x00,0x00,0x11,
-	0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x00,0x08,0x11,0x00,0x52,0x10,0x01,0x11,0x00,
-	0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x00,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x11,0x11,0x00,0x11,0x00,
-	0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x00,0x11,0x11,0x00,0x00,0x00,0x0C,0x11,0x02,0x10,0x02,0x01,0x0C,0x11,0x02,0x00,
-	0x12,0x11,0x02,0x00,0x0A,0x11,0x02,0x00,0x0E,0x11,0x02,0x00,0x16,0x11,0x00,0x0A,0x00,0x11,0x11,0x11,0x00,0x00,0x3E,0x11,
-	0x02,0x00,0x36,0x11,0x00,0x14,0x10,0x01,0x11,0x11,0x00,0x11,0x11,0x11,0x10,0x01,0x14,0x11,0x00,0x00,0x08,0x11,0x02,0x00,
-	0x10,0x11,0x02,0x00,0x0E,0x11,0x02,0x00,0x0C,0x11,0x00,0x32,0x00,0x10,0x01,0x11,0x00,0x01,0x11,0x11,0x00,0x10,0x01,0x11,
-	0x00,0x10,0x01,0x11,0x00,0x10,0x01,0x11,0x00,0x11,0x11,0x11,0x00,0x00,0x08,0x11,0x00,0x2E,0x10,0x11,0x11,0x11,0x10,0x11,
-	0x11,0x11,0x10,0x01,0x11,0x00,0x10,0x01,0x11,0x00,0x10,0x01,0x11,0x00,0x11,0x00,0x01,0x00,0x10,0x11,0x00,0x4C,0x00,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x10,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x10,0x11,0x10,0x11,0x11,0x10,
-	0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x11,0x11,0x11,0x10,0x0C,0x11,0x00,0x44,0x00,0x11,0x11,0x11,0x00,0x10,0x01,0x11,
-	0x10,0x01,0x00,0x11,0x10,0x00,0x00,0x01,0x00,0x11,0x10,0x01,0x10,0x01,0x00,0x11,0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x11,
-	0x10,0x01,0x30,0x11,0x00,0x52,0x10,0x01,0x00,0x11,0x00,0x11,0x10,0x00,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,
-	0x16,0x11,0x02,0x00,0x0A,0x11,0x00,0x5A,0x10,0x01,0x11,0x11,0x00,0x11,0x10,0x01,0x01,0x11,0x11,0x01,0x11,0x00,0x01,0x11,
-	0x00,0x11,0x00,0x11,0x00,0x11,0x10,0x01,0x00,0x10,0x01,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x10,0x01,
-	0x00,0x11,0x10,0x01,0x00,0x00,0x0A,0x11,0x00,0x8E,0x10,0x01,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x01,0x10,0x00,
-	0x00,0x01,0x11,0x00,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,
-	0x11,0x10,0x01,0x11,0x00,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,
-	0x11,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x00,0x08,0x11,0x00,0x0A,0x00,0x11,0x11,0x00,0x00,0x00,0x0C,0x11,0x02,0x00,
-	0x0E,0x11,0x02,0x00,0x12,0x11,0x02,0x00,0x0A,0x11,0x02,0x00,0x0E,0x11,0x00,0x0A,0x00,0x11,0x11,0x11,0x00,0x00,0x08,0x11,
-	0x00,0x10,0x00,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x3E,0x11,0x02,0x00,0x36,0x11,0x00,0x14,0x10,0x01,0x11,0x11,0x00,0x11,
-	0x11,0x11,0x10,0x01,0x14,0x11,0x00,0x00,0x08,0x11,0x02,0x01,0x2E,0x11,0x00,0x66,0x10,0x00,0x11,0x11,0x10,0x01,0x11,0x11,
-	0x10,0x00,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x10,0x01,0x11,0x00,0x00,0x01,0x11,0x10,0x00,0x01,0x11,0x10,0x01,0x00,0x11,
-	0x11,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x10,0x00,0x11,0x11,0x10,0x00,0x01,0x11,0x10,0x00,0x00,0x00,0x12,0x11,0x00,0x30,
-	0x10,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x10,0x01,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x01,
-	0x28,0x11,0x00,0x0E,0x00,0x11,0x11,0x11,0x00,0x10,0x01,0x00,0x0C,0x11,0x00,0x28,0x10,0x01,0x11,0x00,0x11,0x11,0x01,0x11,
-	0x00,0x01,0x11,0x10,0x01,0x11,0x11,0x11,0x00,0x11,0x11,0x00,0x34,0x11,0x00,0x50,0x01,0x10,0x00,0x01,0x11,0x11,0x00,0x11,
-	0x11,0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x10,0x00,0x01,0x11,0x00,0x00,0x00,
-	0x11,0x10,0x00,0x01,0x11,0x10,0x00,0x00,0x2A,0x11,0x00,0x52,0x10,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x11,0x10,0x11,0x11,
-	0x00,0x00,0x01,0x11,0x10,0x00,0x00,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x11,
-	0x00,0x11,0x10,0x01,0x00,0x00,0x0A,0x11,0x00,0x4C,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x11,0x00,0x11,0x11,0x00,
-	0x00,0x11,0x11,0x00,0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x11,
-	0x0A,0x00,0x00,0x24,0x11,0x10,0x01,0x00,0x11,0x10,0x01,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x08,0x00,
-	0x00,0x1E,0x01,0x00,0x00,0x11,0x11,0x01,0x11,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x00,0x0C,0x11,0x02,0x00,0x0E,0x11,
-	0x02,0x00,0x12,0x11,0x02,0x00,0x0A,0x11,0x02,0x10,0x02,0x00,0x0C,0x11,0x02,0x00,0x16,0x11,0x00,0x0A,0x00,0x11,0x11,0x11,
-	0x00,0x00,0x78,0x11,0x02,0x00,0x0C,0x11,0x02,0x00,0x16,0x11,0x00,0x01,0x00,0x00
+	0x42,0x4D,0xA0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x5A,0x00,0x00,0x00,0x08,0x00,
+	0x00,0x00,0x01,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x62,0x01,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x02,0x00,
+	0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x1C,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x00,
+	0x00,0x01,0x00,0x00,0x00,0x01,0x34,0x00,0x00,0x0A,0x11,0x01,0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x5A,0x00,0x11,0x00,0x00,
+	0x01,0x11,0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x01,0x11,0x00,0x00,
+	0x00,0x01,0x10,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x00,0x00,0x11,0x01,0x10,0x00,0x11,0x00,0x00,0x00,0x00,0x4E,0x00,0x11,
+	0x00,0x00,0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x11,0x11,0x11,0x00,0x01,0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x01,
+	0x10,0x00,0x00,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x08,0x00,0x02,0x01,0x02,0x10,0x00,0x00,0x00,0x4E,
+	0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x11,0x11,0x11,0x10,0x11,0x11,0x11,0x10,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,
+	0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x08,0x00,0x02,0x11,0x00,0x00,0x00,0x58,
+	0x11,0x11,0x11,0x00,0x00,0x11,0x00,0x00,0x01,0x11,0x11,0x10,0x11,0x11,0x11,0x00,0x01,0x10,0x00,0x00,0x00,0x11,0x00,0x00,
+	0x00,0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x00,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x4C,
+	0x01,0x11,0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,
+	0x00,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x08,0x00,0x02,0x11,0x00,0x00,0x00,0x4A,0x00,0x11,
+	0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x01,0x10,0x00,0x11,0x01,
+	0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x08,0x00,0x02,0x01,0x02,0x10,0x00,0x00,0x00,0x02,0x21,0x00,
+	0x00,0x34,0x11,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x10,0x00,0x01,0x10,0x11,0x00,0x01,0x11,0x11,0x00,0x00,0x11,0x11,
+	0x00,0x00,0x00,0x10,0x00,0x01,0x00,0x00
 };
 
+const uint8_t font1BMP[3272] = // normal font
+{
+	0x42,0x4D,0xC8,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x0A,0x00,
+	0x00,0x00,0x01,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x8A,0x0C,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x02,0x00,
+	0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x02,0xFF,0x00,0x00,0x02,0xFF,0x00,0x00,0x02,
+	0xF2,0x00,0x02,0x11,0x02,0x11,0x3C,0x00,0x00,0x0E,0x11,0x00,0x00,0x00,0x11,0x11,0x10,0x00,0x12,0x00,0x02,0x11,0x02,0x10,
+	0x2C,0x00,0x02,0x11,0x0A,0x00,0x02,0x11,0x3A,0x00,0x00,0x06,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x02,0xD8,0x00,0x02,0x10,
+	0x86,0x00,0x02,0x11,0x76,0x00,0x02,0x11,0xFE,0x00,0x18,0x00,0x02,0x11,0x02,0x11,0x3C,0x00,0x02,0x11,0x0A,0x00,0x02,0x11,
+	0x14,0x00,0x02,0x11,0x2C,0x00,0x02,0x11,0x0A,0x00,0x02,0x11,0x3E,0x00,0x02,0x11,0x0C,0x00,0x02,0x11,0x0C,0x00,0x02,0x11,
+	0x00,0x00,0x00,0x02,0x21,0x00,0x00,0x06,0x11,0x11,0x10,0x00,0x0A,0x00,0x00,0x06,0x11,0x11,0x10,0x00,0x38,0x00,0x00,0x10,
+	0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x0A,0x00,0x00,0x0E,0x11,0x10,0x11,0x11,0x10,0x11,0x11,0x00,0x0A,0x00,0x02,0x11,
+	0x02,0x11,0x24,0x00,0x00,0x06,0x11,0x11,0x10,0x00,0x0A,0x00,0x02,0x11,0x02,0x11,0x0C,0x00,0x00,0x06,0x11,0x11,0x10,0x00,
+	0x18,0x00,0x02,0x01,0x02,0x10,0x16,0x00,0x00,0x16,0x01,0x10,0x00,0x01,0x00,0x00,0x11,0x00,0x11,0x10,0x11,0x00,0x0A,0x00,
+	0x00,0x0A,0x01,0x10,0x00,0x01,0x10,0x00,0x16,0x00,0x02,0x11,0x0C,0x00,0x00,0x0A,0x01,0x10,0x00,0x00,0x01,0x00,0x08,0x00,
+	0x00,0x4C,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x11,0x11,
+	0x00,0x00,0x11,0x11,0x00,0x00,0x01,0x10,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x0C,0x00,0x02,0x11,0x08,0x00,0x02,0x01,
+	0x02,0x10,0x0A,0x00,0x00,0xEC,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x11,0x11,0x10,0x01,0x10,0x00,0x11,0x01,0x11,0x11,
+	0x10,0x00,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x01,0x10,0x00,0x00,0x00,0x11,0x11,0x10,0x01,0x10,0x00,
+	0x11,0x01,0x10,0x00,0x00,0x00,0x11,0x11,0x10,0x01,0x10,0x00,0x11,0x01,0x11,0x11,0x11,0x01,0x10,0x00,0x01,0x11,0x10,0x00,
+	0x01,0x10,0x11,0x11,0x10,0x01,0x10,0x00,0x00,0x00,0x11,0x11,0x11,0x01,0x10,0x00,0x11,0x00,0x11,0x11,0x10,0x00,0x00,0x11,
+	0x00,0x00,0x11,0x11,0x10,0x00,0x00,0x10,0x00,0x01,0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x10,0x00,0x11,0x00,0x01,0x11,0x11,
+	0x11,0x01,0x11,0x10,0x08,0x00,0x00,0x18,0x01,0x01,0x11,0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x11,0x11,0x0C,0x00,0x00,0xB0,
+	0x11,0x11,0x10,0x01,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x11,0x11,0x10,0x01,0x10,0x00,0x00,0x00,
+	0x11,0x11,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x00,0x01,
+	0x10,0x00,0x01,0x11,0x10,0x01,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x01,0x10,0x00,0x00,0x01,
+	0x11,0x11,0x00,0x00,0x11,0x10,0x00,0x00,0x11,0x11,0x10,0x00,0x00,0x10,0x00,0x00,0x08,0x11,0x00,0x2A,0x10,0x00,0x11,0x00,
+	0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x02,0x20,0x00,
+	0x00,0x06,0x11,0x00,0x11,0x00,0x0A,0x00,0x00,0x06,0x11,0x00,0x11,0x00,0x3A,0x00,0x00,0x10,0x11,0x00,0x01,0x10,0x11,0x00,
+	0x01,0x10,0x08,0x00,0x00,0x0E,0x11,0x01,0x11,0x00,0x11,0x01,0x10,0x00,0x0A,0x00,0x00,0x06,0x11,0x00,0x11,0x00,0x22,0x00,
+	0x00,0x08,0x11,0x00,0x01,0x10,0x08,0x00,0x00,0x06,0x11,0x10,0x11,0x00,0x0A,0x00,0x00,0x08,0x11,0x10,0x01,0x10,0x28,0x00,
+	0x00,0x1E,0x01,0x10,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x11,0x00,0x0A,0x00,0x00,0x24,0x01,0x10,
+	0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x11,0x00,0x00,0x01,0x10,0x0C,0x00,0x00,0x76,0x11,0x00,0x00,0x00,
+	0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x00,0x11,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,
+	0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x11,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,
+	0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x0C,0x00,0x02,0x11,0x0C,0x00,0x00,0xDA,0x10,0x00,0x00,0x10,0x11,0x00,0x01,0x10,
+	0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x01,0x10,
+	0x11,0x00,0x01,0x10,0x11,0x00,0x00,0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x11,
+	0x11,0x00,0x00,0x11,0x11,0x00,0x01,0x10,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,
+	0x00,0x01,0x10,0x00,0x11,0x00,0x01,0x10,0x00,0x11,0x10,0x00,0x11,0x10,0x01,0x11,0x11,0x00,0x00,0x11,0x00,0x01,0x10,0x00,
+	0x11,0x00,0x00,0x00,0x11,0x00,0x0A,0x00,0x00,0x10,0x01,0x10,0x00,0x11,0x00,0x00,0x11,0x11,0x14,0x00,0x00,0x42,0x11,0x00,
+	0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,
+	0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x08,0x00,0x00,0x40,0x11,0x00,0x00,0x11,0x01,0x10,0x00,0x11,0x00,0x00,0x00,0x11,
+	0x01,0x10,0x11,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x0A,0x00,0x00,0x50,
+	0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x00,0x11,0x10,0x00,0x11,0x01,0x10,0x11,0x01,0x10,0x11,0x00,0x11,0x00,
+	0x11,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x02,0x20,0x00,0x00,0x06,
+	0x11,0x00,0x11,0x00,0x0A,0x00,0x00,0x06,0x11,0x00,0x11,0x00,0x3A,0x00,0x00,0x10,0x11,0x11,0x11,0x10,0x11,0x11,0x11,0x10,
+	0x08,0x00,0x00,0x0E,0x11,0x01,0x11,0x11,0x11,0x01,0x10,0x00,0x0A,0x00,0x00,0x06,0x11,0x00,0x11,0x00,0x22,0x00,0x00,0x08,
+	0x11,0x00,0x01,0x10,0x08,0x00,0x00,0x06,0x11,0x00,0x11,0x00,0x0A,0x00,0x00,0x08,0x11,0x10,0x01,0x10,0x18,0x00,0x02,0x11,
+	0x0E,0x00,0x00,0x1E,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x10,0x01,0x10,0x00,0x00,0x11,0x01,0x11,0x00,0x0A,0x00,0x02,0x11,
+	0x08,0x00,0x00,0x12,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x1C,0x00,0x00,0x1C,0x01,0x10,0x00,0x00,0x11,0x00,
+	0x11,0x00,0x00,0x11,0x00,0x00,0x01,0x10,0x08,0x00,0x00,0x36,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,
+	0x11,0x00,0x00,0x11,0x00,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x10,0x00,0x00,0x68,0x11,0x00,0x00,0x01,
+	0x11,0x11,0x00,0x00,0x01,0x10,0x00,0x00,0x11,0x00,0x00,0x10,0x01,0x10,0x10,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,
+	0x00,0x00,0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,
+	0x0A,0x00,0x00,0x64,0x01,0x10,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x00,
+	0x01,0x10,0x11,0x00,0x00,0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x00,0x11,0x00,
+	0x01,0x10,0x01,0x10,0x11,0x00,0x0A,0x11,0x00,0x18,0x00,0x00,0x11,0x00,0x01,0x10,0x00,0x01,0x10,0x00,0x00,0x11,0x0A,0x00,
+	0x00,0x10,0x11,0x00,0x00,0x11,0x00,0x00,0x11,0x11,0x14,0x00,0x00,0x42,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,
+	0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x11,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,
+	0x08,0x00,0x00,0x9A,0x11,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x01,0x10,0x11,0x11,0x00,0x11,0x00,0x11,
+	0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x01,0x11,0x10,0x00,0x11,0x00,0x00,0x00,0x11,
+	0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x11,0x01,0x10,0x11,0x00,0x11,0x10,0x00,0x11,0x00,0x11,0x00,0x00,0x11,0x00,0x00,0x01,
+	0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x02,0x21,0x00,0x00,0x06,0x11,0x11,0x10,0x00,0x0A,0x00,
+	0x00,0x06,0x11,0x11,0x10,0x00,0x38,0x00,0x00,0x10,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x08,0x00,0x00,0x0E,0x01,0x10,
+	0x11,0x01,0x11,0x11,0x11,0x00,0x0C,0x00,0x02,0x11,0x02,0x11,0x22,0x00,0x00,0x08,0x01,0x10,0x00,0x11,0x08,0x00,0x00,0x08,
+	0x01,0x10,0x11,0x10,0x08,0x00,0x00,0x08,0x01,0x10,0x10,0x11,0x18,0x00,0x02,0x01,0x02,0x10,0x0E,0x00,0x00,0x1E,0x11,0x01,
+	0x10,0x00,0x00,0x00,0x11,0x00,0x01,0x10,0x00,0x00,0x11,0x10,0x11,0x00,0x08,0x00,0x00,0x20,0x01,0x10,0x00,0x00,0x00,0x01,
+	0x10,0x00,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x08,0x00,0x00,0x08,0x01,0x11,0x11,0x10,0x0A,0x00,0x00,0x56,0x01,0x10,
+	0x00,0x01,0x10,0x01,0x10,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x01,
+	0x10,0x01,0x10,0x01,0x10,0x00,0x01,0x10,0x00,0x01,0x10,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x12,0x00,0x02,0x11,0x10,0x00,
+	0x00,0x58,0x01,0x10,0x00,0x00,0x11,0x00,0x01,0x01,0x00,0x01,0x01,0x11,0x11,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x00,
+	0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x0A,0x00,
+	0x00,0x86,0x11,0x01,0x10,0x11,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x01,0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x01,
+	0x11,0x11,0x10,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x11,0x00,0x01,0x10,0x00,0x11,0x01,
+	0x10,0x00,0x11,0x01,0x10,0x11,0x01,0x10,0x11,0x00,0x11,0x00,0x00,0x11,0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x00,0x08,0x00,
+	0x00,0x12,0x11,0x00,0x00,0x01,0x10,0x00,0x01,0x11,0x10,0x00,0x12,0x00,0x00,0xE6,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,
+	0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x00,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,
+	0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x11,0x01,0x11,0x10,0x01,0x10,
+	0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,
+	0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x11,0x01,0x10,0x11,0x01,0x10,0x11,0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x00,0x11,0x00,
+	0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x02,0x71,0x00,0x00,0x0E,0x11,0x01,0x10,0x00,
+	0x11,0x01,0x10,0x00,0x0A,0x00,0x00,0x0E,0x11,0x11,0x11,0x00,0x10,0x11,0x10,0x00,0x30,0x00,0x00,0x08,0x01,0x10,0x00,0x11,
+	0x0A,0x00,0x02,0x11,0x02,0x11,0x0A,0x00,0x00,0x08,0x01,0x10,0x10,0x11,0x18,0x00,0x02,0x01,0x02,0x10,0x0E,0x00,0x00,0x1C,
+	0x11,0x01,0x10,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x00,0x00,0x01,0x11,0x0A,0x00,0x00,0x1E,0x01,0x10,0x00,0x00,0x00,0x01,
+	0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x1E,0x00,0x00,0xD0,0x11,0x00,0x01,0x10,0x01,0x10,0x00,0x01,0x10,0x00,
+	0x00,0x00,0x11,0x00,0x00,0x01,0x11,0x00,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x00,0x00,0x11,0x00,
+	0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x01,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x11,0x11,0x10,
+	0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x01,0x01,0x00,0x01,0x01,0x10,0x00,0x11,0x01,0x11,0x11,0x10,0x01,0x10,0x00,0x00,
+	0x01,0x10,0x00,0x11,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x10,0x11,0x11,0x01,0x11,0x11,0x11,0x01,0x10,0x0A,0x00,
+	0x00,0xA0,0x11,0x01,0x11,0x10,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x11,0x01,0x11,0x10,0x11,0x01,0x11,0x10,0x00,0x11,0x01,
+	0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x10,0x00,0x00,0x11,0x00,0x01,0x10,0x00,0x11,0x01,
+	0x10,0x00,0x11,0x01,0x10,0x00,0x01,0x10,0x01,0x11,0x10,0x00,0x01,0x11,0x10,0x00,0x00,0x11,0x00,0x01,0x10,0x00,0x00,0x00,
+	0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x01,0x11,0x10,0x14,0x00,0x00,0xE2,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x00,0x11,0x11,
+	0x00,0x00,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x10,0x00,0x00,0x11,0x11,0x10,0x01,0x11,0x11,0x00,0x01,0x10,0x00,
+	0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x00,0x01,0x11,0x11,0x11,0x01,0x11,0x11,0x00,0x00,0x11,0x11,
+	0x00,0x01,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x11,0x10,0x00,0x00,0x11,0x11,0x10,0x01,0x11,0x10,0x00,0x01,0x10,0x01,
+	0x10,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x01,0x11,0x10,0x00,0x11,0x01,0x10,0x01,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x00,
+	0x00,0x01,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x02,0x20,0x00,0x00,0x06,0x11,0x00,0x11,0x00,0x0C,0x00,0x02,0x11,
+	0x3E,0x00,0x00,0x0C,0x11,0x10,0x00,0x00,0x11,0x10,0x12,0x00,0x00,0x06,0x01,0x01,0x10,0x00,0x0A,0x00,0x00,0x06,0x11,0x00,
+	0x11,0x00,0x22,0x00,0x00,0x08,0x11,0x00,0x01,0x10,0x0C,0x00,0x02,0x01,0x0A,0x00,0x00,0x08,0x11,0x00,0x11,0x10,0x18,0x00,
+	0x00,0x1A,0x11,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x11,0x11,0x11,0x10,0x11,0x00,0x0A,0x00,0x00,0x16,0x11,0x00,0x01,0x10,
+	0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x08,0x00,0x00,0x12,0x11,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x11,0x00,0x20,0x00,
+	0x00,0x10,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x11,0x08,0x00,0x00,0x1E,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x00,
+	0x11,0x00,0x00,0x00,0x11,0x00,0x0A,0x00,0x00,0x2A,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,
+	0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x0C,0x00,0x02,0x11,0x08,0x00,0x00,0x4E,0x01,0x10,0x10,0x01,0x10,0x10,0x01,0x10,
+	0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x11,0x00,
+	0x00,0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x0A,0x00,0x00,0x14,0x01,0x10,0x11,0x01,0x10,0x00,0x11,0x00,0x00,0x00,0x0C,0x11,
+	0x00,0x26,0x00,0x11,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,0x00,0x08,0x00,
+	0x00,0x52,0x01,0x10,0x00,0x11,0x00,0x01,0x10,0x11,0x00,0x01,0x10,0x11,0x00,0x00,0x11,0x01,0x10,0x01,0x10,0x01,0x10,0x01,
+	0x10,0x00,0x00,0x11,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x11,0x11,0x00,0x0C,0x00,0x02,0x01,
+	0x02,0x10,0x0C,0x00,0x02,0x11,0x12,0x00,0x02,0x11,0x0A,0x00,0x02,0x11,0x0E,0x00,0x02,0x11,0x16,0x00,0x00,0x0A,0x11,0x00,
+	0x00,0x00,0x11,0x00,0x3E,0x00,0x02,0x11,0x36,0x00,0x00,0x14,0x01,0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x00,
+	0x00,0x02,0x73,0x00,0x00,0x0A,0x10,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x02,0x11,0x02,0x11,0x34,0x00,0x00,0x06,0x11,0x11,
+	0x10,0x00,0x18,0x00,0x00,0x08,0x01,0x10,0x01,0x11,0x18,0x00,0x00,0x44,0x01,0x10,0x00,0x00,0x01,0x10,0x11,0x00,0x00,0x11,
+	0x01,0x10,0x00,0x11,0x11,0x11,0x01,0x10,0x00,0x11,0x00,0x11,0x01,0x10,0x00,0x11,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x11,
+	0x32,0x00,0x00,0x52,0x11,0x01,0x10,0x01,0x10,0x00,0x11,0x10,0x00,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,
+	0x10,0x01,0x10,0x00,0x00,0x01,0x10,0x01,0x10,0x00,0x00,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x14,0x00,
+	0x02,0x01,0x02,0x10,0x0A,0x00,0x00,0x5A,0x11,0x00,0x00,0x01,0x10,0x00,0x11,0x01,0x00,0x00,0x01,0x00,0x01,0x11,0x00,0x01,
+	0x10,0x01,0x10,0x01,0x10,0x00,0x11,0x01,0x10,0x11,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x11,0x01,
+	0x10,0x00,0x11,0x01,0x10,0x00,0x0A,0x00,0x00,0xA0,0x11,0x01,0x10,0x01,0x10,0x01,0x10,0x00,0x00,0x01,0x11,0x00,0x11,0x11,
+	0x11,0x00,0x01,0x11,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x00,
+	0x00,0x11,0x00,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x10,
+	0x00,0x00,0x11,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x01,0x11,0x10,0x0A,0x00,0x02,0x01,0x02,0x10,
+	0x0C,0x00,0x02,0x01,0x02,0x10,0x10,0x00,0x02,0x01,0x02,0x10,0x08,0x00,0x02,0x01,0x02,0x10,0x0C,0x00,0x00,0x24,0x01,0x10,
+	0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x3C,0x00,0x02,0x01,0x02,0x10,0x36,0x00,
+	0x00,0x12,0x11,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x02,0x71,0x00,0x00,0x0C,0x11,0x01,0x10,0x00,
+	0x01,0x11,0x14,0x00,0x00,0x06,0x01,0x11,0x11,0x00,0x30,0x00,0x00,0x08,0x01,0x10,0x00,0x11,0x1A,0x00,0x00,0x06,0x11,0x11,
+	0x10,0x00,0x18,0x00,0x00,0x0E,0x01,0x10,0x00,0x00,0x01,0x10,0x11,0x00,0x0E,0x00,0x00,0x28,0x11,0x00,0x01,0x10,0x00,0x01,
+	0x00,0x01,0x11,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x32,0x00,0x00,0x52,0x01,0x00,0x11,0x11,0x00,0x00,
+	0x01,0x10,0x00,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x01,0x10,0x01,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,
+	0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x2A,0x00,0x00,0x52,0x11,0x11,0x10,0x00,0x11,0x11,0x10,0x00,
+	0x00,0x10,0x00,0x01,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x01,0x11,0x10,0x00,0x01,0x11,0x11,0x11,0x01,0x11,0x11,0x11,0x00,
+	0x11,0x11,0x10,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x0A,0x00,0x00,0x4C,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x00,0x01,
+	0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x10,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x00,
+	0x11,0x11,0x10,0x01,0x08,0x11,0x00,0x26,0x10,0x00,0x11,0x01,0x10,0x00,0x11,0x01,0x10,0x00,0x01,0x11,0x10,0x00,0x01,0x11,
+	0x10,0x00,0x01,0x00,0x08,0x11,0x00,0x1E,0x01,0x11,0x10,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x10,0x00,0x01,0x11,0x10,0x00,
+	0x0A,0x00,0x02,0x01,0x02,0x10,0x0C,0x00,0x02,0x01,0x02,0x10,0x10,0x00,0x02,0x01,0x02,0x10,0x0A,0x00,0x02,0x11,0x02,0x10,
+	0x0A,0x00,0x02,0x01,0x02,0x10,0x14,0x00,0x00,0x0C,0x01,0x10,0x00,0x00,0x01,0x10,0x76,0x00,0x02,0x01,0x02,0x10,0x0A,0x00,
+	0x02,0x01,0x02,0x10,0x00,0x01,0x00,0x00
+};
+
 const uint8_t font2BMP[10060] = // big font
 {
 	0x42,0x4D,0x4C,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x14,0x00,
@@ -1234,7 +1238,7 @@
 	0x10,0x11,0x11,0x10,0x01,0x11,0x00,0x01,0x11,0x00,0x11,0x11,0x00,0x01,0x00,0x00
 };
 
-const uint8_t font8BMP[368] = // small font for piano key
+const uint8_t font8BMP[368] = // small font for piano key and Nibbles (snake food number)
 {
 	0x42,0x4D,0x70,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x07,0x00,
 	0x00,0x00,0x01,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x32,0x01,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x02,0x00,
--- a/src/gfxdata/ft2_bmp_logo.c
+++ b/src/gfxdata/ft2_bmp_logo.c
@@ -1,5 +1,681 @@
 #include <stdint.h>
 
+const uint8_t ft2OldAboutLogoBMP[16112] =
+{
+	0x42,0x4D,0xF0,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x4E,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0xC1,0x01,0x00,0x00,0x6F,0x00,
+	0x00,0x00,0x01,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0xA2,0x3E,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x06,0x00,
+	0x00,0x00,0x06,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xD3,0xD3,0xD3,0x00,0x7F,0x7F,
+	0x7F,0x00,0x43,0x43,0x43,0x00,0xD2,0x22,0x00,0x06,0x21,0x11,0x11,0x00,0x16,0x22,0x00,0x06,0x21,0x11,0x11,0x00,0xCC,0x22,
+	0x02,0x2F,0x00,0x00,0xD6,0x22,0x02,0x21,0x02,0x12,0x18,0x22,0x02,0x21,0x02,0x12,0xCA,0x22,0x02,0x20,0x00,0x00,0xD6,0x22,
+	0x02,0x21,0x02,0x12,0x18,0x22,0x02,0x21,0x02,0x12,0xCA,0x22,0x02,0x2F,0x00,0x00,0x96,0x22,0x00,0x44,0x21,0x12,0x22,0x22,
+	0x22,0x11,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x11,0x22,0x11,0x11,0x22,0x11,0x11,0x22,0x11,0x22,0x11,0x22,0x22,0x22,0x11,
+	0x11,0x12,0x22,0x11,0x11,0x12,0x08,0x22,0x00,0x52,0x21,0x22,0x22,0x21,0x11,0x12,0x22,0x11,0x11,0x12,0x21,0x11,0x11,0x22,
+	0x11,0x11,0x22,0x22,0x22,0x21,0x11,0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,
+	0x22,0x22,0x11,0x00,0x8C,0x22,0x02,0x20,0x00,0x00,0x96,0x22,0x00,0x44,0x21,0x11,0x22,0x22,0x21,0x11,0x12,0x11,0x22,0x22,
+	0x11,0x21,0x12,0x22,0x21,0x12,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x22,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,
+	0x08,0x22,0x00,0x52,0x11,0x12,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x11,
+	0x22,0x11,0x11,0x22,0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x22,0x22,0x11,0x00,0x8C,0x22,
+	0x02,0x2F,0x00,0x00,0x96,0x22,0x00,0x6A,0x21,0x11,0x12,0x22,0x11,0x21,0x12,0x11,0x22,0x22,0x11,0x21,0x12,0x22,0x21,0x12,
+	0x22,0x21,0x12,0x22,0x22,0x11,0x22,0x11,0x22,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x22,0x21,0x12,0x11,
+	0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x00,0x08,0x22,0x00,0x1C,0x11,0x22,0x21,0x12,0x22,0x22,
+	0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x11,0x08,0x22,0x00,0x08,0x11,0x22,0x22,0x11,0x8C,0x22,0x02,0x20,0x00,0x00,0x96,0x22,
+	0x00,0x6A,0x21,0x12,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x21,0x12,0x22,0x21,0x12,0x22,0x21,0x12,0x22,0x22,0x11,
+	0x22,0x11,0x22,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x22,0x11,0x22,0x21,0x12,0x11,0x22,0x11,0x21,0x12,
+	0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x00,0x08,0x22,0x00,0x1C,0x11,0x22,0x11,0x12,0x22,0x22,0x22,0x21,0x12,0x22,0x22,0x21,
+	0x12,0x11,0x08,0x22,0x00,0x08,0x11,0x22,0x22,0x11,0x8C,0x22,0x02,0x2F,0x00,0x00,0x96,0x22,0x00,0x8E,0x21,0x12,0x21,0x11,
+	0x22,0x21,0x12,0x11,0x22,0x22,0x11,0x21,0x12,0x22,0x21,0x12,0x22,0x21,0x11,0x11,0x12,0x11,0x22,0x11,0x22,0x22,0x22,0x11,
+	0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,
+	0x11,0x11,0x12,0x22,0x22,0x21,0x11,0x12,0x11,0x22,0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x11,0x00,0x08,0x22,0x00,0x08,
+	0x11,0x22,0x22,0x11,0x8C,0x22,0x02,0x20,0x00,0x00,0x96,0x22,0x00,0x78,0x21,0x12,0x22,0x12,0x22,0x21,0x12,0x11,0x22,0x22,
+	0x11,0x21,0x12,0x22,0x21,0x12,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x22,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,
+	0x22,0x22,0x21,0x12,0x22,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x22,
+	0x11,0x11,0x08,0x22,0x00,0x0E,0x21,0x12,0x22,0x22,0x21,0x12,0x11,0x00,0x08,0x22,0x00,0x08,0x11,0x22,0x22,0x11,0x8C,0x22,
+	0x02,0x2F,0x00,0x00,0x96,0x22,0x00,0x96,0x21,0x12,0x22,0x22,0x22,0x21,0x12,0x21,0x11,0x12,0x11,0x21,0x11,0x11,0x21,0x11,
+	0x11,0x22,0x11,0x11,0x22,0x11,0x11,0x12,0x22,0x22,0x22,0x11,0x11,0x12,0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x21,
+	0x12,0x21,0x11,0x12,0x22,0x11,0x11,0x12,0x11,0x22,0x11,0x22,0x11,0x11,0x22,0x22,0x22,0x21,0x12,0x21,0x12,0x22,0x22,0x22,
+	0x21,0x12,0x21,0x22,0x21,0x12,0x21,0x11,0x12,0x22,0x22,0x00,0x08,0x11,0x8C,0x22,0x02,0x20,0x00,0x00,0x96,0x22,0x00,0x0E,
+	0x21,0x12,0x22,0x22,0x22,0x21,0x12,0x00,0x08,0x22,0x00,0x0A,0x21,0x12,0x22,0x21,0x12,0x00,0x16,0x22,0x02,0x11,0x10,0x22,
+	0x00,0x0A,0x21,0x12,0x22,0x21,0x12,0x00,0x20,0x22,0x00,0x1A,0x21,0x12,0x21,0x12,0x22,0x22,0x22,0x21,0x12,0x11,0x12,0x21,
+	0x12,0x00,0x0A,0x22,0x00,0x08,0x11,0x22,0x22,0x11,0x8C,0x22,0x02,0x2F,0x00,0x00,0x96,0x22,0x00,0x20,0x21,0x12,0x22,0x22,
+	0x22,0x21,0x12,0x22,0x22,0x22,0x11,0x21,0x12,0x22,0x21,0x12,0x16,0x22,0x02,0x11,0x10,0x22,0x00,0x0A,0x21,0x12,0x22,0x21,
+	0x12,0x00,0x22,0x22,0x02,0x11,0x02,0x11,0x08,0x22,0x00,0x0C,0x21,0x11,0x12,0x11,0x21,0x12,0x0A,0x22,0x00,0x08,0x11,0x22,
+	0x22,0x11,0x8C,0x22,0x02,0x20,0x00,0x00,0x96,0x22,0x00,0x0E,0x21,0x12,0x22,0x22,0x22,0x21,0x12,0x00,0x28,0x22,0x02,0x11,
+	0x10,0x22,0x00,0x0A,0x21,0x12,0x22,0x21,0x12,0x00,0x2E,0x22,0x00,0x0C,0x21,0x11,0x22,0x21,0x11,0x12,0x0A,0x22,0x00,0x08,
+	0x11,0x22,0x22,0x11,0x8C,0x22,0x02,0x2F,0x00,0x00,0x96,0x22,0x00,0x0E,0x21,0x12,0x22,0x22,0x22,0x21,0x12,0x00,0x3A,0x22,
+	0x00,0x0A,0x21,0x12,0x22,0x21,0x12,0x00,0x2E,0x22,0x00,0x0C,0x21,0x12,0x22,0x22,0x11,0x12,0x0A,0x22,0x00,0x08,0x11,0x22,
+	0x22,0x11,0x8C,0x22,0x02,0x20,0x00,0x00,0x58,0x22,0x00,0x0C,0x11,0x22,0x22,0x21,0x11,0x11,0x0A,0x22,0x00,0x06,0x21,0x11,
+	0x11,0x00,0x3C,0x22,0x02,0x21,0x02,0x12,0x86,0x22,0x00,0x06,0x21,0x11,0x11,0x00,0x80,0x22,0x02,0x2F,0x00,0x00,0x3A,0x22,
+	0x00,0x08,0x43,0x11,0x11,0x34,0x16,0x22,0x02,0x11,0x08,0x22,0x02,0x21,0x02,0x12,0x0C,0x22,0x02,0x21,0x02,0x12,0x3A,0x22,
+	0x02,0x21,0x02,0x12,0x8A,0x22,0x02,0x21,0x02,0x12,0x7E,0x22,0x02,0x20,0x00,0x00,0x38,0x22,0x00,0x0C,0x21,0x14,0x22,0x22,
+	0x41,0x12,0x14,0x22,0x02,0x11,0x08,0x22,0x02,0x21,0x02,0x12,0x0C,0x22,0x02,0x21,0x02,0x12,0x3A,0x22,0x02,0x21,0x02,0x12,
+	0x64,0x22,0x02,0x11,0x24,0x22,0x02,0x21,0x02,0x12,0x7E,0x22,0x02,0x2F,0x00,0x00,0x38,0x22,0x02,0x14,0x08,0x22,0x00,0x40,
+	0x41,0x22,0x22,0x22,0x11,0x11,0x12,0x22,0x11,0x11,0x22,0x11,0x11,0x12,0x22,0x11,0x11,0x12,0x11,0x22,0x22,0x11,0x22,0x11,
+	0x11,0x12,0x11,0x22,0x11,0x22,0x11,0x11,0x0A,0x22,0x00,0xFE,0x11,0x21,0x12,0x22,0x21,0x12,0x21,0x11,0x12,0x21,0x11,0x12,
+	0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x11,0x11,0x22,0x11,0x22,0x22,0x21,0x11,0x12,0x22,0x11,0x11,0x12,0x21,0x11,0x11,0x22,
+	0x11,0x11,0x22,0x21,0x11,0x12,0x11,0x22,0x11,0x11,0x22,0x11,0x22,0x11,0x22,0x11,0x11,0x22,0x22,0x22,0x21,0x12,0x22,0x22,
+	0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x11,0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x11,0x11,0x21,0x12,0x11,0x22,0x22,0x22,0x11,
+	0x22,0x22,0x11,0x22,0x11,0x11,0x12,0x11,0x22,0x11,0x22,0x11,0x11,0x22,0x11,0x11,0x22,0x22,0x22,0x21,0x12,0x22,0x22,0x11,
+	0x11,0x22,0x21,0x11,0x12,0x22,0x11,0x11,0x22,0x11,0x22,0x22,0x22,0x21,0x22,0x22,0x21,0x11,0x12,0x00,0x00,0x0A,0x22,0x11,
+	0x11,0x12,0x11,0x00,0x2C,0x22,0x02,0x20,0x00,0x00,0x36,0x22,0x02,0x24,0x02,0x12,0x08,0x22,0x00,0x3E,0x21,0x42,0x22,0x21,
+	0x12,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,
+	0x11,0x21,0x12,0x00,0x0C,0x22,0x00,0xFE,0x11,0x21,0x12,0x22,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,
+	0x22,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,
+	0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x22,
+	0x21,0x12,0x22,0x11,0x22,0x22,0x21,0x12,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x11,0x22,0x22,0x22,0x11,0x22,0x22,0x11,0x21,
+	0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x22,0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x21,0x12,0x21,0x12,0x11,0x22,
+	0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x22,0x11,0x12,0x22,0x11,0x22,0x11,0x00,0x00,0x0A,0x21,0x12,0x21,0x12,0x11,0x00,
+	0x2C,0x22,0x02,0x2F,0x00,0x00,0x36,0x22,0x00,0x4A,0x23,0x42,0x22,0x11,0x11,0x22,0x24,0x32,0x22,0x21,0x12,0x22,0x22,0x21,
+	0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x00,
+	0x0C,0x22,0x00,0x88,0x11,0x21,0x12,0x22,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x12,
+	0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x22,0x22,0x11,0x22,0x22,0x11,0x21,
+	0x12,0x21,0x12,0x11,0x22,0x11,0x22,0x22,0x11,0x22,0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x11,
+	0x0C,0x22,0x00,0x72,0x11,0x22,0x11,0x21,0x12,0x11,0x22,0x22,0x22,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,
+	0x21,0x12,0x22,0x22,0x22,0x11,0x22,0x22,0x22,0x21,0x12,0x22,0x21,0x12,0x22,0x22,0x22,0x21,0x12,0x21,0x12,0x22,0x22,0x11,
+	0x22,0x22,0x21,0x12,0x11,0x22,0x11,0x22,0x22,0x21,0x12,0x21,0x12,0x00,0x2E,0x22,0x02,0x20,0x00,0x00,0x36,0x22,0x00,0x4A,
+	0x21,0x22,0x21,0x12,0x21,0x12,0x22,0x12,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,
+	0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x00,0x0C,0x22,0x00,0x88,0x11,0x21,0x12,0x22,0x21,0x12,
+	0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,
+	0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x22,0x22,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x22,0x21,0x12,0x22,
+	0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x11,0x0C,0x22,0x00,0x72,0x11,0x22,0x11,0x21,0x12,0x11,
+	0x22,0x22,0x22,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x22,0x22,0x21,
+	0x12,0x22,0x21,0x12,0x22,0x22,0x22,0x11,0x22,0x21,0x12,0x22,0x22,0x11,0x22,0x22,0x11,0x22,0x21,0x12,0x11,0x22,0x22,0x21,
+	0x12,0x21,0x12,0x00,0x2E,0x22,0x02,0x2F,0x00,0x00,0x36,0x22,0x00,0x4A,0x21,0x22,0x21,0x12,0x22,0x22,0x22,0x12,0x22,0x21,
+	0x12,0x22,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,
+	0x11,0x21,0x12,0x00,0x0C,0x22,0x00,0x68,0x11,0x21,0x12,0x22,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,
+	0x22,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x22,0x22,0x11,
+	0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x22,0x11,0x08,0x22,0x00,0x18,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x22,
+	0x21,0x12,0x22,0x11,0x0C,0x22,0x00,0x32,0x11,0x22,0x11,0x21,0x12,0x11,0x22,0x22,0x22,0x11,0x22,0x22,0x11,0x21,0x12,0x21,
+	0x12,0x11,0x22,0x11,0x21,0x12,0x22,0x22,0x11,0x00,0x08,0x22,0x00,0x38,0x21,0x12,0x22,0x21,0x11,0x11,0x12,0x21,0x12,0x22,
+	0x21,0x11,0x11,0x12,0x11,0x22,0x22,0x11,0x22,0x21,0x12,0x11,0x11,0x11,0x21,0x12,0x21,0x12,0x2E,0x22,0x02,0x20,0x00,0x00,
+	0x36,0x22,0x00,0x4A,0x21,0x22,0x21,0x12,0x22,0x22,0x22,0x12,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x11,
+	0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x00,0x0C,0x22,0x00,0x8A,0x11,0x21,
+	0x12,0x22,0x21,0x12,0x11,0x22,0x22,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,
+	0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,
+	0x21,0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x21,0x11,0x11,0x12,0x21,0x11,0x11,0x12,0x22,0x21,0x12,0x00,0x0A,0x22,0x00,0x72,
+	0x11,0x22,0x11,0x21,0x12,0x11,0x22,0x22,0x22,0x11,0x22,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x22,0x21,
+	0x12,0x21,0x12,0x22,0x22,0x21,0x12,0x22,0x21,0x12,0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x11,0x22,0x22,0x11,0x22,
+	0x21,0x12,0x11,0x22,0x11,0x21,0x12,0x21,0x12,0x00,0x2E,0x22,0x02,0x2F,0x00,0x00,0x36,0x22,0x00,0x4C,0x21,0x22,0x21,0x12,
+	0x21,0x12,0x22,0x12,0x22,0x21,0x12,0x22,0x22,0x22,0x11,0x11,0x22,0x11,0x11,0x12,0x21,0x12,0x21,0x12,0x21,0x11,0x12,0x11,
+	0x22,0x11,0x11,0x12,0x11,0x11,0x12,0x21,0x11,0x11,0x0A,0x22,0x00,0x8A,0x11,0x22,0x11,0x11,0x21,0x12,0x11,0x11,0x12,0x21,
+	0x11,0x12,0x21,0x11,0x11,0x22,0x22,0x22,0x21,0x11,0x11,0x22,0x21,0x11,0x12,0x21,0x11,0x12,0x22,0x11,0x11,0x12,0x11,0x22,
+	0x11,0x22,0x11,0x11,0x22,0x11,0x11,0x12,0x11,0x22,0x11,0x11,0x22,0x11,0x11,0x12,0x22,0x11,0x11,0x22,0x22,0x22,0x21,0x12,
+	0x11,0x22,0x21,0x12,0x11,0x22,0x21,0x12,0x22,0x22,0x11,0x00,0x0A,0x22,0x00,0x34,0x21,0x11,0x11,0x21,0x12,0x11,0x22,0x22,
+	0x22,0x21,0x11,0x12,0x11,0x22,0x11,0x11,0x12,0x11,0x11,0x12,0x21,0x11,0x11,0x22,0x11,0x11,0x08,0x22,0x00,0x36,0x11,0x11,
+	0x22,0x11,0x11,0x22,0x21,0x11,0x12,0x22,0x11,0x11,0x22,0x21,0x11,0x12,0x11,0x22,0x21,0x12,0x21,0x11,0x12,0x22,0x11,0x11,
+	0x12,0x00,0x2E,0x22,0x02,0x20,0x00,0x00,0x36,0x22,0x00,0x16,0x23,0x42,0x22,0x11,0x11,0x22,0x24,0x32,0x22,0x21,0x12,0x00,
+	0x2A,0x22,0x00,0x0A,0x11,0x22,0x22,0x21,0x12,0x00,0x0C,0x22,0x02,0x11,0x0A,0x22,0x02,0x11,0x2E,0x22,0x02,0x21,0x02,0x12,
+	0x0E,0x22,0x02,0x11,0x20,0x22,0x00,0x1C,0x21,0x12,0x11,0x22,0x21,0x12,0x11,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x0E,0x22,
+	0x00,0x06,0x21,0x12,0x11,0x00,0x16,0x22,0x00,0x0A,0x11,0x22,0x22,0x21,0x12,0x00,0x42,0x22,0x02,0x21,0x02,0x12,0x2E,0x22,
+	0x02,0x2F,0x00,0x00,0x36,0x22,0x02,0x24,0x02,0x12,0x08,0x22,0x00,0x0A,0x21,0x42,0x22,0x21,0x12,0x00,0x20,0x22,0x02,0x11,
+	0x08,0x22,0x00,0x0A,0x11,0x22,0x22,0x21,0x12,0x00,0x0C,0x22,0x00,0x0E,0x11,0x22,0x22,0x22,0x21,0x12,0x11,0x00,0x2E,0x22,
+	0x02,0x21,0x02,0x12,0x0E,0x22,0x00,0x08,0x11,0x22,0x22,0x11,0x1A,0x22,0x00,0x1C,0x21,0x12,0x11,0x22,0x21,0x12,0x11,0x22,
+	0x21,0x12,0x22,0x22,0x21,0x12,0x0E,0x22,0x00,0x06,0x21,0x12,0x11,0x00,0x0C,0x22,0x02,0x11,0x08,0x22,0x00,0x0A,0x11,0x22,
+	0x22,0x21,0x12,0x00,0x42,0x22,0x02,0x21,0x02,0x12,0x2E,0x22,0x02,0x20,0x00,0x00,0x38,0x22,0x02,0x14,0x08,0x22,0x00,0x0E,
+	0x41,0x22,0x22,0x21,0x12,0x22,0x11,0x00,0x26,0x22,0x02,0x11,0x14,0x22,0x02,0x11,0x3A,0x22,0x02,0x21,0x02,0x12,0x30,0x22,
+	0x00,0x1C,0x21,0x12,0x11,0x22,0x21,0x12,0x11,0x22,0x21,0x12,0x22,0x22,0x21,0x12,0x0E,0x22,0x00,0x06,0x21,0x12,0x11,0x00,
+	0x16,0x22,0x02,0x11,0x4A,0x22,0x02,0x21,0x02,0x12,0x2E,0x22,0x02,0x2F,0x00,0x00,0x38,0x22,0x00,0x18,0x21,0x14,0x22,0x22,
+	0x41,0x12,0x22,0x22,0x22,0x11,0x11,0x12,0x38,0x22,0x0A,0x11,0x6A,0x22,0x00,0x1C,0x21,0x12,0x21,0x11,0x11,0x12,0x21,0x11,
+	0x11,0x12,0x11,0x11,0x11,0x12,0xA8,0x22,0x02,0x20,0x00,0x00,0x3A,0x22,0x00,0x08,0x43,0x11,0x11,0x34,0xFE,0x22,0x80,0x22,
+	0x02,0x2F,0x00,0x00,0xFE,0x22,0xC2,0x22,0x02,0x20,0x00,0x00,0xFE,0x22,0xC2,0x22,0x02,0x2F,0x00,0x00,0xFE,0x22,0xC2,0x22,
+	0x02,0x20,0x00,0x00,0xFE,0x22,0xC2,0x22,0x02,0x2F,0x00,0x00,0xCC,0x22,0x02,0x50,0xF2,0x22,0x02,0x20,0x00,0x00,0x3A,0x22,
+	0x00,0x0A,0x25,0x55,0x55,0x00,0x02,0x00,0x08,0x22,0x00,0x06,0x25,0x54,0x52,0x00,0x14,0x22,0x00,0x06,0x55,0x45,0x52,0x00,
+	0x14,0x22,0x00,0x08,0x25,0x45,0x55,0x50,0x10,0x22,0x00,0x08,0x25,0x45,0x55,0x00,0x2A,0x22,0x00,0x08,0x55,0x55,0x00,0x02,
+	0x0A,0x22,0x00,0x06,0x55,0x55,0x00,0x00,0x12,0x22,0x00,0x0A,0x05,0x54,0x55,0x55,0x02,0x00,0x3E,0x22,0x00,0x08,0x55,0x55,
+	0x55,0x00,0x7C,0x22,0x02,0x2F,0x00,0x00,0x00,0x08,0x22,0x22,0x22,0x25,0x1A,0x55,0x18,0x22,0x00,0x0A,0x55,0x54,0x55,0x55,
+	0x05,0x00,0x08,0x22,0x00,0x22,0x55,0x45,0x55,0x52,0x22,0x22,0x22,0x25,0x55,0x02,0x22,0x25,0x54,0x54,0x55,0x55,0x50,0x00,
+	0x10,0x22,0x00,0x0C,0x25,0x54,0x55,0x55,0x50,0x52,0x0C,0x22,0x00,0x12,0x25,0x54,0x55,0x55,0x50,0x52,0x22,0x22,0x25,0x00,
+	0x12,0x55,0x0E,0x22,0x00,0x1C,0x24,0x54,0x55,0x55,0x05,0x02,0x22,0x22,0x22,0x54,0x54,0x55,0x50,0x52,0x0E,0x22,0x00,0x0E,
+	0x05,0x54,0x55,0x55,0x55,0x00,0x02,0x00,0x08,0x22,0x12,0x55,0x02,0x52,0x02,0x22,0x12,0x55,0x0A,0x22,0x00,0x0C,0x55,0x54,
+	0x54,0x55,0x50,0x55,0x0C,0x22,0x02,0x25,0x10,0x55,0x02,0x52,0x1C,0x22,0x02,0x25,0x18,0x55,0x02,0x52,0x02,0x25,0x1A,0x55,
+	0x00,0x08,0x22,0x22,0x22,0x20,0x00,0x00,0x00,0x1A,0x22,0x22,0x22,0x25,0x54,0x54,0x55,0x45,0x45,0x54,0x55,0x45,0x54,0x00,
+	0x08,0x45,0x02,0x52,0x16,0x22,0x00,0x36,0x44,0x55,0x55,0x55,0x00,0x50,0x22,0x22,0x25,0x44,0x55,0x50,0x50,0x02,0x22,0x22,
+	0x25,0x00,0x00,0x05,0x54,0x55,0x45,0x55,0x50,0x50,0x50,0x00,0x0E,0x22,0x00,0x0C,0x25,0x44,0x45,0x55,0x05,0x00,0x0C,0x22,
+	0x00,0x24,0x55,0x44,0x45,0x55,0x00,0x05,0x22,0x22,0x25,0x55,0x45,0x55,0x45,0x45,0x45,0x55,0x45,0x45,0x0E,0x22,0x00,0x1C,
+	0x54,0x45,0x55,0x55,0x00,0x05,0x22,0x22,0x25,0x54,0x45,0x55,0x50,0x00,0x0C,0x22,0x00,0x10,0x25,0x44,0x44,0x45,0x45,0x55,
+	0x50,0x50,0x08,0x22,0x00,0x06,0x54,0x54,0x54,0x00,0x08,0x55,0x00,0x1A,0x45,0x55,0x52,0x25,0x55,0x54,0x54,0x54,0x55,0x45,
+	0x54,0x55,0x50,0x00,0x08,0x22,0x00,0x10,0x24,0x44,0x45,0x55,0x45,0x50,0x00,0x52,0x0A,0x22,0x00,0x08,0x45,0x45,0x55,0x54,
+	0x08,0x55,0x02,0x54,0x02,0x52,0x1C,0x22,0x00,0x14,0x54,0x55,0x45,0x55,0x45,0x55,0x54,0x55,0x55,0x45,0x08,0x55,0x02,0x25,
+	0x0A,0x55,0x00,0x18,0x45,0x54,0x55,0x55,0x45,0x55,0x45,0x45,0x22,0x22,0x22,0x2F,0x00,0x00,0x00,0x24,0x22,0x22,0x22,0x55,
+	0x45,0x55,0x54,0x54,0x55,0x45,0x44,0x55,0x45,0x55,0x54,0x54,0x55,0x52,0x14,0x22,0x00,0x3A,0x25,0x45,0x45,0x55,0x55,0x05,
+	0x00,0x52,0x22,0x24,0x45,0x55,0x05,0x50,0x05,0x22,0x22,0x25,0x05,0x05,0x05,0x55,0x44,0x45,0x55,0x55,0x50,0x05,0x00,0x00,
+	0x0C,0x22,0x00,0x0E,0x54,0x54,0x55,0x55,0x50,0x05,0x52,0x00,0x0A,0x22,0x00,0x24,0x54,0x45,0x55,0x55,0x50,0x55,0x02,0x22,
+	0x25,0x54,0x55,0x54,0x54,0x55,0x55,0x54,0x55,0x55,0x0C,0x22,0x00,0x20,0x25,0x45,0x45,0x45,0x50,0x50,0x50,0x02,0x22,0x24,
+	0x44,0x45,0x55,0x00,0x55,0x02,0x08,0x22,0x02,0x20,0x08,0x54,0x00,0x16,0x55,0x55,0x05,0x00,0x52,0x22,0x22,0x25,0x55,0x55,
+	0x55,0x00,0x08,0x54,0x00,0x0C,0x55,0x54,0x55,0x22,0x45,0x45,0x0A,0x55,0x00,0x1C,0x54,0x55,0x22,0x22,0x22,0x25,0x44,0x54,
+	0x54,0x44,0x55,0x55,0x05,0x55,0x0A,0x22,0x00,0x14,0x45,0x55,0x55,0x45,0x54,0x55,0x54,0x55,0x45,0x52,0x1C,0x22,0x00,0x30,
+	0x55,0x55,0x55,0x54,0x55,0x54,0x55,0x55,0x54,0x55,0x54,0x54,0x54,0x55,0x55,0x45,0x54,0x54,0x55,0x45,0x55,0x55,0x55,0x45,
+	0x08,0x55,0x00,0x08,0x52,0x22,0x22,0x20,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x54,0x54,0x54,0x55,0x54,0x55,0x55,0x55,0x44,
+	0x54,0x54,0x55,0x54,0x55,0x00,0x16,0x22,0x00,0x3C,0x25,0x45,0x55,0x55,0x05,0x50,0x50,0x05,0x22,0x25,0x44,0x55,0x50,0x05,
+	0x50,0x50,0x22,0x55,0x50,0x05,0x55,0x44,0x54,0x54,0x55,0x05,0x05,0x05,0x00,0x52,0x0A,0x22,0x00,0x0E,0x54,0x45,0x45,0x55,
+	0x50,0x00,0x50,0x00,0x0A,0x22,0x00,0x1A,0x54,0x44,0x45,0x55,0x50,0x00,0x50,0x22,0x25,0x55,0x45,0x55,0x55,0x00,0x0A,0x45,
+	0x0C,0x22,0x00,0x08,0x24,0x44,0x45,0x55,0x08,0x50,0x00,0x10,0x22,0x24,0x45,0x44,0x55,0x50,0x00,0x50,0x08,0x22,0x00,0x1E,
+	0x05,0x54,0x44,0x45,0x45,0x45,0x55,0x05,0x05,0x05,0x22,0x22,0x22,0x54,0x54,0x00,0x0A,0x55,0x00,0x0E,0x54,0x55,0x55,0x22,
+	0x55,0x54,0x55,0x00,0x08,0x45,0x00,0x1E,0x55,0x55,0x22,0x22,0x22,0x25,0x44,0x44,0x45,0x54,0x55,0x55,0x00,0x05,0x02,0x00,
+	0x08,0x22,0x00,0x14,0x54,0x54,0x55,0x55,0x55,0x54,0x55,0x45,0x55,0x45,0x1C,0x22,0x02,0x54,0x02,0x54,0x08,0x55,0x02,0x45,
+	0x02,0x45,0x0C,0x55,0x02,0x05,0x08,0x55,0x00,0x1A,0x54,0x55,0x45,0x55,0x55,0x54,0x54,0x55,0x55,0x52,0x22,0x22,0x2F,0x00,
+	0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x55,0x45,0x45,0x54,0x45,0x45,0x44,0x54,0x55,0x55,0x45,0x55,0x45,0x40,0x00,0x16,0x22,
+	0x00,0x3C,0x24,0x54,0x55,0x55,0x55,0x00,0x05,0x05,0x22,0x54,0x45,0x55,0x55,0x05,0x00,0x05,0x50,0x55,0x00,0x50,0x55,0x45,
+	0x45,0x45,0x55,0x55,0x05,0x00,0x05,0x00,0x08,0x22,0x00,0x36,0x25,0x54,0x54,0x45,0x55,0x05,0x05,0x00,0x52,0x22,0x22,0x22,
+	0x25,0x44,0x54,0x55,0x55,0x00,0x05,0x00,0x52,0x25,0x54,0x55,0x45,0x54,0x54,0x00,0x08,0x55,0x0C,0x22,0x00,0x4A,0x54,0x44,
+	0x45,0x55,0x55,0x00,0x05,0x00,0x02,0x54,0x54,0x45,0x55,0x05,0x05,0x00,0x22,0x22,0x22,0x20,0x04,0x44,0x44,0x54,0x54,0x55,
+	0x55,0x50,0x50,0x05,0x22,0x22,0x22,0x55,0x55,0x54,0x55,0x00,0x08,0x45,0x00,0x0C,0x55,0x55,0x22,0x55,0x45,0x54,0x0C,0x55,
+	0x00,0x1A,0x22,0x22,0x22,0x55,0x44,0x44,0x54,0x44,0x55,0x55,0x05,0x55,0x52,0x00,0x08,0x22,0x00,0x14,0x45,0x55,0x55,0x54,
+	0x55,0x45,0x55,0x55,0x54,0x55,0x1C,0x22,0x00,0x26,0x24,0x55,0x55,0x55,0x45,0x55,0x55,0x55,0x54,0x54,0x55,0x55,0x55,0x45,
+	0x55,0x54,0x55,0x55,0x45,0x00,0x08,0x55,0x00,0x12,0x54,0x55,0x55,0x55,0x45,0x55,0x22,0x22,0x2B,0x00,0x00,0x00,0x00,0x22,
+	0x22,0x22,0x25,0x55,0x55,0x44,0x55,0x55,0x45,0x55,0x45,0x45,0x45,0x54,0x54,0x55,0x55,0x00,0x16,0x22,0x00,0x3E,0x55,0x45,
+	0x45,0x55,0x00,0x50,0x05,0x00,0x52,0x54,0x54,0x55,0x50,0x50,0x50,0x00,0x00,0x50,0x50,0x55,0x55,0x44,0x54,0x54,0x55,0x55,
+	0x00,0x50,0x50,0x50,0x02,0x00,0x08,0x22,0x00,0x3C,0x44,0x45,0x55,0x55,0x00,0x50,0x50,0x05,0x22,0x22,0x22,0x25,0x44,0x45,
+	0x45,0x55,0x50,0x50,0x50,0x00,0x24,0x55,0x45,0x54,0x55,0x55,0x45,0x45,0x45,0x40,0x0C,0x22,0x00,0x84,0x55,0x45,0x44,0x55,
+	0x55,0x05,0x00,0x50,0x52,0x54,0x44,0x54,0x55,0x00,0x50,0x50,0x02,0x22,0x22,0x20,0x55,0x44,0x44,0x44,0x54,0x55,0x55,0x05,
+	0x05,0x00,0x52,0x22,0x22,0x55,0x45,0x55,0x45,0x55,0x55,0x55,0x54,0x55,0x45,0x22,0x55,0x55,0x55,0x45,0x54,0x55,0x54,0x54,
+	0x55,0x22,0x22,0x20,0x55,0x45,0x44,0x45,0x45,0x45,0x55,0x00,0x05,0x05,0x08,0x22,0x00,0x14,0x54,0x55,0x54,0x55,0x45,0x55,
+	0x45,0x55,0x55,0x55,0x1C,0x22,0x00,0x0C,0x25,0x45,0x54,0x55,0x54,0x54,0x08,0x55,0x00,0x1E,0x54,0x54,0x55,0x55,0x50,0x55,
+	0x54,0x55,0x54,0x55,0x54,0x55,0x45,0x55,0x45,0x00,0x08,0x55,0x00,0x06,0x22,0x22,0x2F,0x00,0x00,0x00,0x00,0x22,0x22,0x22,
+	0x25,0x44,0x54,0x55,0x55,0x44,0x55,0x54,0x45,0x54,0x55,0x45,0x45,0x54,0x52,0x00,0x16,0x22,0x00,0x82,0x54,0x45,0x55,0x55,
+	0x55,0x05,0x50,0x05,0x05,0x45,0x45,0x55,0x05,0x00,0x05,0x05,0x05,0x55,0x00,0x50,0x54,0x45,0x44,0x55,0x55,0x50,0x05,0x05,
+	0x00,0x50,0x02,0x22,0x22,0x22,0x25,0x45,0x45,0x45,0x55,0x05,0x00,0x50,0x50,0x22,0x22,0x22,0x25,0x45,0x45,0x45,0x55,0x00,
+	0x50,0x05,0x05,0x25,0x54,0x55,0x45,0x54,0x54,0x54,0x55,0x55,0x55,0x00,0x0C,0x22,0x00,0x36,0x54,0x44,0x45,0x55,0x50,0x50,
+	0x55,0x05,0x00,0x54,0x45,0x45,0x55,0x55,0x05,0x00,0x52,0x22,0x22,0x00,0x54,0x44,0x45,0x44,0x54,0x55,0x55,0x00,0x08,0x50,
+	0x00,0x46,0x22,0x22,0x54,0x55,0x54,0x55,0x54,0x54,0x54,0x55,0x54,0x55,0x22,0x54,0x54,0x54,0x55,0x45,0x55,0x45,0x55,0x54,
+	0x22,0x22,0x05,0x05,0x54,0x44,0x54,0x54,0x55,0x55,0x50,0x55,0x55,0x00,0x08,0x22,0x00,0x14,0x05,0x55,0x45,0x55,0x55,0x54,
+	0x55,0x45,0x55,0x45,0x1C,0x22,0x02,0x25,0x02,0x45,0x0A,0x55,0x00,0x06,0x45,0x55,0x54,0x00,0x08,0x55,0x00,0x0E,0x50,0x55,
+	0x45,0x55,0x55,0x55,0x45,0x00,0x0A,0x55,0x00,0x0C,0x45,0x54,0x55,0x52,0x22,0x27,0x00,0x00,0x00,0x22,0x22,0x22,0x55,0x55,
+	0x45,0x45,0x45,0x55,0x44,0x55,0x54,0x55,0x45,0x45,0x54,0x55,0x42,0x00,0x16,0x22,0x00,0x82,0x45,0x45,0x55,0x55,0x05,0x00,
+	0x05,0x05,0x05,0x45,0x55,0x55,0x50,0x55,0x05,0x00,0x50,0x50,0x50,0x55,0x55,0x44,0x54,0x45,0x55,0x55,0x00,0x50,0x50,0x05,
+	0x05,0x22,0x22,0x22,0x25,0x44,0x54,0x55,0x55,0x50,0x50,0x00,0x55,0x22,0x22,0x22,0x24,0x44,0x54,0x55,0x50,0x50,0x05,0x00,
+	0x50,0x55,0x55,0x45,0x54,0x55,0x55,0x55,0x45,0x45,0x55,0x00,0x0C,0x22,0x00,0x58,0x54,0x44,0x54,0x55,0x55,0x00,0x05,0x00,
+	0x50,0x54,0x44,0x44,0x55,0x05,0x00,0x50,0x02,0x22,0x22,0x05,0x55,0x45,0x44,0x54,0x45,0x45,0x55,0x50,0x55,0x05,0x05,0x22,
+	0x22,0x55,0x45,0x55,0x45,0x55,0x55,0x55,0x45,0x55,0x55,0x22,0x0A,0x55,0x00,0x40,0x45,0x55,0x45,0x55,0x22,0x25,0x00,0x55,
+	0x54,0x44,0x44,0x45,0x45,0x55,0x50,0x05,0x55,0x52,0x22,0x22,0x22,0x54,0x55,0x54,0x54,0x55,0x55,0x55,0x54,0x55,0x54,0x52,
+	0x1A,0x22,0x00,0x40,0x25,0x45,0x45,0x54,0x54,0x55,0x55,0x55,0x45,0x55,0x45,0x55,0x54,0x55,0x45,0x05,0x55,0x55,0x45,0x55,
+	0x55,0x54,0x55,0x54,0x55,0x45,0x55,0x55,0x55,0x52,0x22,0x2F,0x00,0x00,0x00,0x22,0x22,0x22,0x55,0x54,0x45,0x54,0x54,0x54,
+	0x45,0x55,0x45,0x45,0x45,0x55,0x45,0x54,0x52,0x00,0x14,0x22,0x00,0x78,0x25,0x54,0x54,0x55,0x50,0x55,0x00,0x55,0x00,0x05,
+	0x54,0x44,0x55,0x00,0x50,0x00,0x05,0x05,0x50,0x05,0x05,0x54,0x45,0x45,0x55,0x55,0x55,0x05,0x00,0x50,0x50,0x50,0x22,0x22,
+	0x22,0x24,0x54,0x54,0x55,0x55,0x00,0x05,0x05,0x00,0x02,0x22,0x22,0x25,0x45,0x44,0x55,0x55,0x50,0x50,0x55,0x00,0x54,0x54,
+	0x55,0x45,0x08,0x54,0x02,0x55,0x02,0x55,0x0C,0x22,0x00,0xA2,0x54,0x45,0x44,0x55,0x55,0x00,0x50,0x05,0x05,0x55,0x45,0x45,
+	0x55,0x55,0x55,0x05,0x52,0x22,0x20,0x00,0x54,0x44,0x44,0x44,0x54,0x55,0x55,0x50,0x50,0x50,0x05,0x02,0x22,0x55,0x55,0x54,
+	0x55,0x55,0x45,0x54,0x55,0x54,0x54,0x22,0x55,0x54,0x55,0x45,0x54,0x55,0x54,0x55,0x55,0x22,0x00,0x05,0x05,0x44,0x44,0x54,
+	0x54,0x54,0x55,0x50,0x50,0x55,0x02,0x22,0x22,0x22,0x25,0x54,0x55,0x55,0x54,0x55,0x54,0x55,0x55,0x55,0x52,0x00,0x1C,0x22,
+	0x02,0x54,0x08,0x55,0x02,0x45,0x02,0x54,0x08,0x55,0x00,0x18,0x45,0x54,0x55,0x05,0x55,0x45,0x55,0x55,0x54,0x55,0x55,0x45,
+	0x08,0x55,0x00,0x08,0x45,0x52,0x22,0x27,0x00,0x00,0x00,0x18,0x22,0x22,0x54,0x55,0x54,0x55,0x54,0x55,0x54,0x54,0x55,0x45,
+	0x08,0x54,0x02,0x52,0x14,0x22,0x00,0x84,0x25,0x45,0x45,0x55,0x55,0x00,0x50,0x00,0x50,0x55,0x45,0x55,0x55,0x50,0x05,0x05,
+	0x00,0x55,0x05,0x05,0x05,0x54,0x54,0x44,0x55,0x55,0x55,0x50,0x50,0x00,0x50,0x05,0x02,0x22,0x22,0x24,0x44,0x45,0x55,0x55,
+	0x55,0x00,0x50,0x50,0x52,0x22,0x22,0x24,0x44,0x54,0x55,0x50,0x50,0x00,0x00,0x50,0x55,0x55,0x45,0x45,0x55,0x55,0x45,0x55,
+	0x45,0x55,0x0C,0x22,0x00,0x08,0x54,0x44,0x55,0x45,0x08,0x50,0x00,0x92,0x00,0x54,0x44,0x54,0x55,0x05,0x55,0x00,0x02,0x22,
+	0x25,0x00,0x55,0x44,0x44,0x54,0x54,0x45,0x55,0x50,0x55,0x55,0x00,0x55,0x22,0x55,0x45,0x55,0x45,0x45,0x54,0x55,0x45,0x55,
+	0x55,0x52,0x55,0x55,0x45,0x54,0x55,0x54,0x55,0x54,0x54,0x52,0x50,0x50,0x05,0x54,0x44,0x44,0x45,0x45,0x55,0x50,0x50,0x55,
+	0x52,0x22,0x22,0x22,0x25,0x55,0x45,0x55,0x55,0x54,0x55,0x54,0x54,0x55,0x52,0x00,0x1C,0x22,0x00,0x06,0x54,0x55,0x45,0x00,
+	0x0A,0x55,0x00,0x2E,0x45,0x45,0x45,0x55,0x55,0x55,0x50,0x45,0x54,0x55,0x45,0x55,0x45,0x55,0x55,0x54,0x55,0x54,0x55,0x55,
+	0x55,0x22,0x2F,0x00,0x00,0x00,0x02,0x22,0x02,0x25,0x0A,0x45,0x00,0x14,0x55,0x45,0x45,0x54,0x55,0x44,0x55,0x45,0x55,0x52,
+	0x14,0x22,0x00,0x0A,0x24,0x54,0x55,0x55,0x55,0x00,0x08,0x05,0x00,0x0A,0x55,0x45,0x45,0x55,0x00,0x00,0x0C,0x50,0x00,0x08,
+	0x55,0x45,0x45,0x45,0x08,0x55,0x00,0x4C,0x05,0x05,0x00,0x50,0x52,0x22,0x22,0x25,0x54,0x54,0x55,0x55,0x55,0x05,0x05,0x05,
+	0x02,0x22,0x22,0x55,0x45,0x45,0x45,0x55,0x00,0x55,0x05,0x05,0x54,0x54,0x55,0x55,0x54,0x54,0x55,0x54,0x54,0x55,0x0C,0x22,
+	0x00,0x48,0x44,0x45,0x44,0x55,0x55,0x50,0x05,0x00,0x50,0x54,0x44,0x54,0x55,0x55,0x55,0x05,0x52,0x22,0x20,0x05,0x54,0x44,
+	0x45,0x44,0x44,0x55,0x55,0x50,0x50,0x55,0x05,0x00,0x22,0x55,0x55,0x54,0x0A,0x55,0x00,0x50,0x45,0x45,0x52,0x55,0x45,0x55,
+	0x55,0x55,0x45,0x55,0x45,0x55,0x50,0x00,0x50,0x55,0x54,0x44,0x44,0x45,0x45,0x55,0x55,0x05,0x50,0x55,0x22,0x22,0x22,0x25,
+	0x45,0x55,0x54,0x55,0x45,0x55,0x45,0x55,0x54,0x52,0x1C,0x22,0x00,0x1C,0x54,0x54,0x55,0x54,0x54,0x55,0x45,0x45,0x55,0x55,
+	0x55,0x54,0x55,0x45,0x10,0x55,0x00,0x12,0x54,0x55,0x55,0x45,0x55,0x54,0x55,0x22,0x2B,0x00,0x00,0x00,0x00,0x08,0x22,0x24,
+	0x55,0x45,0x08,0x54,0x00,0x12,0x55,0x44,0x55,0x45,0x55,0x45,0x54,0x44,0x02,0x00,0x14,0x22,0x00,0x84,0x55,0x45,0x45,0x55,
+	0x50,0x50,0x00,0x50,0x50,0x54,0x54,0x55,0x55,0x00,0x05,0x00,0x05,0x55,0x00,0x50,0x55,0x44,0x44,0x54,0x55,0x55,0x55,0x45,
+	0x50,0x50,0x50,0x05,0x00,0x22,0x22,0x54,0x44,0x55,0x45,0x55,0x55,0x50,0x50,0x05,0x02,0x22,0x22,0x54,0x44,0x45,0x55,0x55,
+	0x50,0x00,0x50,0x50,0x55,0x55,0x45,0x54,0x55,0x55,0x45,0x55,0x55,0x55,0x0C,0x22,0x00,0x48,0x54,0x44,0x54,0x55,0x50,0x05,
+	0x00,0x50,0x05,0x55,0x44,0x45,0x55,0x05,0x55,0x50,0x02,0x22,0x25,0x00,0x55,0x44,0x44,0x54,0x55,0x45,0x55,0x50,0x55,0x55,
+	0x50,0x50,0x22,0x55,0x45,0x55,0x0A,0x45,0x00,0x46,0x55,0x55,0x50,0x55,0x54,0x54,0x54,0x55,0x54,0x55,0x54,0x55,0x55,0x00,
+	0x00,0x05,0x54,0x54,0x45,0x44,0x54,0x55,0x55,0x00,0x55,0x50,0x22,0x22,0x22,0x25,0x54,0x54,0x55,0x55,0x54,0x00,0x08,0x55,
+	0x02,0x45,0x1C,0x22,0x02,0x24,0x0C,0x55,0x02,0x54,0x0C,0x55,0x00,0x14,0x50,0x54,0x55,0x45,0x55,0x54,0x55,0x45,0x55,0x45,
+	0x0A,0x55,0x02,0x52,0x02,0x2F,0x00,0x00,0x00,0x22,0x22,0x55,0x54,0x55,0x45,0x54,0x55,0x45,0x54,0x55,0x54,0x54,0x54,0x55,
+	0x45,0x45,0x52,0x00,0x14,0x22,0x00,0x30,0x54,0x44,0x55,0x55,0x55,0x00,0x50,0x50,0x00,0x54,0x45,0x55,0x55,0x50,0x50,0x05,
+	0x50,0x55,0x05,0x05,0x55,0x45,0x45,0x44,0x0A,0x55,0x00,0x12,0x00,0x50,0x50,0x05,0x22,0x22,0x54,0x54,0x54,0x00,0x08,0x55,
+	0x00,0x30,0x00,0x50,0x22,0x22,0x22,0x54,0x45,0x45,0x55,0x55,0x00,0x50,0x50,0x00,0x54,0x54,0x55,0x45,0x54,0x54,0x55,0x45,
+	0x54,0x55,0x0C,0x22,0x00,0x48,0x44,0x45,0x45,0x45,0x55,0x55,0x05,0x00,0x50,0x54,0x44,0x54,0x55,0x55,0x55,0x50,0x52,0x22,
+	0x00,0x05,0x04,0x44,0x54,0x44,0x44,0x54,0x55,0x50,0x50,0x55,0x55,0x05,0x02,0x55,0x55,0x54,0x0A,0x55,0x00,0x50,0x54,0x55,
+	0x55,0x05,0x55,0x55,0x55,0x54,0x55,0x55,0x45,0x54,0x50,0x55,0x05,0x05,0x54,0x44,0x54,0x45,0x45,0x54,0x50,0x50,0x55,0x55,
+	0x22,0x22,0x22,0x25,0x45,0x55,0x55,0x54,0x55,0x55,0x54,0x55,0x45,0x55,0x1C,0x22,0x00,0x1C,0x25,0x45,0x45,0x45,0x55,0x45,
+	0x55,0x55,0x55,0x45,0x45,0x55,0x45,0x45,0x08,0x55,0x02,0x45,0x02,0x45,0x0A,0x55,0x00,0x0C,0x54,0x54,0x55,0x45,0x52,0x2A,
+	0x00,0x00,0x02,0x22,0x08,0x54,0x02,0x55,0x08,0x45,0x00,0x0E,0x55,0x45,0x54,0x45,0x54,0x54,0x55,0x00,0x14,0x22,0x00,0x0A,
+	0x54,0x55,0x45,0x55,0x55,0x00,0x08,0x05,0x00,0x1C,0x54,0x54,0x55,0x55,0x55,0x05,0x00,0x05,0x55,0x00,0x50,0x55,0x44,0x54,
+	0x08,0x55,0x00,0x16,0x54,0x55,0x50,0x00,0x50,0x50,0x02,0x22,0x44,0x45,0x45,0x00,0x08,0x55,0x00,0x10,0x50,0x05,0x22,0x22,
+	0x22,0x54,0x44,0x54,0x08,0x55,0x00,0x18,0x05,0x05,0x55,0x45,0x45,0x54,0x55,0x45,0x45,0x54,0x55,0x55,0x0C,0x22,0x00,0x18,
+	0x54,0x44,0x45,0x55,0x55,0x05,0x05,0x50,0x05,0x54,0x44,0x45,0x08,0x55,0x00,0x84,0x02,0x22,0x55,0x05,0x55,0x44,0x45,0x45,
+	0x44,0x55,0x55,0x50,0x55,0x55,0x55,0x00,0x52,0x55,0x45,0x55,0x45,0x45,0x54,0x54,0x55,0x55,0x45,0x50,0x55,0x54,0x55,0x45,
+	0x55,0x45,0x55,0x55,0x55,0x50,0x00,0x50,0x50,0x54,0x44,0x44,0x44,0x54,0x55,0x55,0x05,0x05,0x55,0x22,0x22,0x22,0x20,0x45,
+	0x45,0x54,0x55,0x45,0x54,0x55,0x45,0x54,0x55,0x52,0x1A,0x22,0x00,0x16,0x24,0x45,0x55,0x54,0x55,0x54,0x54,0x55,0x55,0x55,
+	0x54,0x00,0x0A,0x55,0x02,0x45,0x08,0x55,0x00,0x08,0x45,0x54,0x55,0x45,0x0A,0x55,0x02,0x2F,0x00,0x00,0x00,0x22,0x22,0x54,
+	0x55,0x45,0x45,0x54,0x54,0x55,0x45,0x54,0x54,0x55,0x45,0x55,0x45,0x44,0x45,0x00,0x12,0x22,0x00,0x32,0x25,0x44,0x54,0x55,
+	0x55,0x55,0x50,0x05,0x00,0x55,0x45,0x45,0x55,0x55,0x55,0x05,0x00,0x55,0x55,0x50,0x55,0x54,0x45,0x44,0x54,0x00,0x0A,0x55,
+	0x00,0x12,0x50,0x55,0x05,0x00,0x02,0x22,0x54,0x54,0x45,0x00,0x08,0x55,0x00,0x10,0x50,0x50,0x22,0x22,0x22,0x44,0x54,0x54,
+	0x08,0x55,0x00,0x18,0x00,0x50,0x54,0x55,0x54,0x54,0x54,0x55,0x54,0x54,0x54,0x55,0x0C,0x22,0x00,0x90,0x44,0x44,0x54,0x55,
+	0x50,0x55,0x50,0x00,0x50,0x54,0x54,0x45,0x45,0x05,0x55,0x55,0x02,0x22,0x00,0x00,0x54,0x44,0x44,0x44,0x45,0x54,0x55,0x05,
+	0x50,0x55,0x55,0x55,0x02,0x55,0x55,0x54,0x55,0x55,0x45,0x55,0x54,0x54,0x55,0x55,0x05,0x45,0x54,0x55,0x54,0x55,0x54,0x54,
+	0x54,0x55,0x05,0x00,0x50,0x55,0x44,0x45,0x45,0x44,0x55,0x55,0x50,0x50,0x55,0x22,0x22,0x22,0x05,0x54,0x12,0x55,0x02,0x02,
+	0x1A,0x22,0x02,0x54,0x02,0x45,0x0C,0x55,0x02,0x45,0x08,0x55,0x00,0x06,0x54,0x55,0x05,0x00,0x08,0x55,0x02,0x45,0x0C,0x55,
+	0x00,0x08,0x54,0x55,0x55,0x27,0x00,0x00,0x00,0x18,0x25,0x55,0x45,0x55,0x45,0x55,0x55,0x45,0x54,0x55,0x45,0x45,0x08,0x54,
+	0x02,0x55,0x12,0x22,0x00,0x2E,0x25,0x54,0x55,0x45,0x55,0x55,0x50,0x00,0x50,0x04,0x54,0x54,0x55,0x55,0x55,0x00,0x50,0x05,
+	0x55,0x05,0x05,0x54,0x54,0x00,0x0A,0x55,0x00,0x4E,0x45,0x45,0x50,0x05,0x00,0x50,0x52,0x22,0x45,0x45,0x45,0x55,0x55,0x55,
+	0x45,0x55,0x05,0x22,0x22,0x22,0x44,0x44,0x55,0x45,0x05,0x55,0x55,0x50,0x55,0x55,0x45,0x55,0x55,0x55,0x45,0x55,0x55,0x55,
+	0x40,0x00,0x0A,0x22,0x00,0x66,0x25,0x54,0x45,0x45,0x45,0x55,0x05,0x55,0x05,0x05,0x54,0x45,0x45,0x55,0x50,0x55,0x45,0x52,
+	0x22,0x50,0x50,0x54,0x44,0x54,0x54,0x44,0x55,0x45,0x50,0x55,0x55,0x55,0x50,0x02,0x24,0x55,0x55,0x45,0x55,0x54,0x55,0x55,
+	0x55,0x45,0x50,0x55,0x55,0x55,0x45,0x55,0x45,0x00,0x08,0x55,0x00,0x38,0x50,0x50,0x05,0x54,0x44,0x44,0x44,0x54,0x55,0x55,
+	0x50,0x55,0x55,0x52,0x22,0x22,0x50,0x55,0x45,0x45,0x45,0x54,0x54,0x55,0x45,0x45,0x45,0x52,0x1A,0x22,0x02,0x44,0x0A,0x54,
+	0x00,0x32,0x55,0x45,0x54,0x54,0x54,0x55,0x45,0x55,0x45,0x55,0x55,0x45,0x45,0x45,0x54,0x55,0x45,0x54,0x55,0x45,0x54,0x55,
+	0x54,0x55,0x2F,0x00,0x00,0x00,0x02,0x25,0x08,0x45,0x00,0x18,0x44,0x44,0x45,0x44,0x54,0x45,0x45,0x44,0x55,0x45,0x44,0x45,
+	0x12,0x22,0x00,0x06,0x25,0x44,0x54,0x00,0x0A,0x55,0x00,0x08,0x00,0x55,0x54,0x45,0x08,0x55,0x00,0x12,0x05,0x05,0x45,0x50,
+	0x55,0x45,0x44,0x44,0x44,0x00,0x08,0x55,0x00,0x2C,0x45,0x55,0x50,0x05,0x05,0x02,0x25,0x44,0x44,0x54,0x55,0x55,0x54,0x54,
+	0x50,0x50,0x22,0x22,0x25,0x54,0x45,0x44,0x0A,0x55,0x02,0x05,0x12,0x54,0x02,0x55,0x0C,0x22,0x00,0x64,0x44,0x44,0x44,0x55,
+	0x50,0x55,0x55,0x05,0x00,0x54,0x44,0x45,0x45,0x55,0x55,0x55,0x52,0x22,0x05,0x05,0x54,0x54,0x44,0x44,0x54,0x54,0x55,0x55,
+	0x00,0x55,0x55,0x55,0x52,0x24,0x54,0x54,0x55,0x45,0x45,0x54,0x54,0x54,0x55,0x55,0x05,0x54,0x54,0x55,0x54,0x55,0x08,0x45,
+	0x00,0x38,0x05,0x00,0x55,0x55,0x45,0x44,0x45,0x45,0x45,0x55,0x50,0x00,0x55,0x52,0x22,0x20,0x00,0x54,0x55,0x55,0x55,0x45,
+	0x55,0x54,0x55,0x55,0x55,0x52,0x18,0x22,0x00,0x06,0x25,0x44,0x44,0x00,0x1A,0x55,0x02,0x50,0x1C,0x55,0x02,0x27,0x00,0x00,
+	0x00,0x08,0x55,0x54,0x55,0x54,0x12,0x55,0x00,0x0A,0x45,0x44,0x54,0x55,0x52,0x00,0x0A,0x22,0x00,0x4E,0x55,0x22,0x22,0x54,
+	0x44,0x44,0x45,0x55,0x55,0x55,0x00,0x50,0x54,0x44,0x44,0x45,0x55,0x54,0x55,0x05,0x54,0x45,0x55,0x55,0x44,0x54,0x44,0x44,
+	0x44,0x55,0x55,0x55,0x54,0x55,0x50,0x00,0x50,0x02,0x25,0x00,0x08,0x44,0x00,0x10,0x55,0x55,0x55,0x45,0x05,0x22,0x22,0x25,
+	0x08,0x44,0x00,0x0A,0x45,0x55,0x54,0x55,0x05,0x00,0x12,0x55,0x02,0x50,0x0A,0x22,0x00,0x14,0x25,0x54,0x44,0x44,0x44,0x45,
+	0x05,0x55,0x50,0x50,0x08,0x44,0x00,0x0E,0x55,0x55,0x55,0x52,0x22,0x05,0x05,0x00,0x0E,0x44,0x02,0x45,0x08,0x55,0x02,0x02,
+	0x02,0x25,0x14,0x55,0x02,0x05,0x12,0x55,0x00,0x06,0x00,0x50,0x55,0x00,0x0A,0x44,0x00,0x14,0x43,0x44,0x45,0x55,0x55,0x52,
+	0x22,0x25,0x00,0x54,0x12,0x55,0x02,0x52,0x18,0x22,0x00,0x06,0x25,0x44,0x44,0x00,0x38,0x55,0x02,0x5F,0x00,0x00,0x1C,0x44,
+	0x00,0x08,0x45,0x44,0x50,0x02,0x0A,0x22,0x00,0x3C,0x55,0x02,0x22,0x54,0x43,0x43,0x43,0x44,0x45,0x55,0x55,0x05,0x54,0x34,
+	0x34,0x34,0x44,0x55,0x45,0x50,0x04,0x45,0x55,0x54,0x44,0x43,0x44,0x34,0x34,0x34,0x08,0x45,0x00,0x34,0x55,0x05,0x00,0x52,
+	0x25,0x44,0x43,0x43,0x43,0x44,0x55,0x54,0x55,0x50,0x22,0x22,0x25,0x44,0x43,0x43,0x43,0x44,0x45,0x45,0x55,0x55,0x12,0x44,
+	0x02,0x40,0x0C,0x22,0x00,0x2E,0x44,0x44,0x34,0x34,0x34,0x44,0x55,0x55,0x05,0x54,0x44,0x34,0x34,0x34,0x44,0x54,0x52,0x22,
+	0x50,0x05,0x44,0x44,0x44,0x00,0x0A,0x43,0x00,0x0C,0x44,0x55,0x55,0x55,0x02,0x25,0x0C,0x44,0x00,0x0A,0x54,0x44,0x44,0x55,
+	0x05,0x00,0x10,0x44,0x00,0x26,0x45,0x05,0x05,0x55,0x54,0x44,0x44,0x43,0x43,0x34,0x43,0x43,0x45,0x05,0x52,0x22,0x20,0x05,
+	0x05,0x00,0x12,0x44,0x02,0x42,0x18,0x22,0x02,0x24,0x02,0x45,0x1C,0x44,0x02,0x45,0x02,0x54,0x1A,0x44,0x02,0x53,0x00,0x00,
+	0x00,0x06,0x54,0x34,0x43,0x00,0x0E,0x34,0x00,0x10,0x33,0x43,0x34,0x34,0x44,0x45,0x50,0x52,0x08,0x22,0x00,0x08,0x25,0x50,
+	0x50,0x22,0x0A,0x43,0x00,0x08,0x44,0x45,0x55,0x00,0x0A,0x43,0x00,0x5C,0x45,0x54,0x55,0x04,0x44,0x55,0x44,0x43,0x43,0x34,
+	0x34,0x34,0x43,0x44,0x55,0x54,0x54,0x55,0x50,0x50,0x02,0x24,0x43,0x43,0x43,0x44,0x34,0x34,0x45,0x45,0x50,0x22,0x22,0x25,
+	0x43,0x43,0x44,0x34,0x34,0x34,0x54,0x55,0x54,0x43,0x43,0x43,0x0C,0x34,0x02,0x42,0x0A,0x22,0x02,0x25,0x02,0x44,0x0A,0x34,
+	0x00,0x08,0x45,0x55,0x00,0x44,0x08,0x43,0x00,0x12,0x44,0x55,0x52,0x22,0x05,0x55,0x44,0x44,0x44,0x00,0x0C,0x34,0x00,0x0A,
+	0x44,0x55,0x45,0x52,0x24,0x00,0x0A,0x34,0x00,0x0C,0x33,0x33,0x43,0x33,0x45,0x05,0x0A,0x43,0x00,0x2E,0x44,0x34,0x43,0x44,
+	0x50,0x55,0x44,0x44,0x44,0x43,0x43,0x44,0x33,0x43,0x43,0x43,0x45,0x55,0x22,0x20,0x50,0x55,0x43,0x00,0x0A,0x34,0x00,0x08,
+	0x33,0x43,0x34,0x42,0x18,0x22,0x00,0x06,0x54,0x44,0x44,0x00,0x0C,0x43,0x00,0x12,0x34,0x34,0x34,0x33,0x43,0x33,0x43,0x45,
+	0x04,0x00,0x08,0x34,0x00,0x06,0x33,0x44,0x34,0x00,0x0C,0x43,0x02,0x4F,0x00,0x00,0x00,0x0A,0x25,0x55,0x44,0x43,0x44,0x00,
+	0x0C,0x34,0x00,0x0E,0x43,0x44,0x44,0x44,0x55,0x55,0x05,0x00,0x08,0x22,0x00,0x1C,0x25,0x55,0x00,0x02,0x34,0x34,0x34,0x43,
+	0x43,0x43,0x44,0x55,0x55,0x44,0x0A,0x34,0x00,0x5A,0x44,0x55,0x50,0x43,0x43,0x44,0x34,0x34,0x45,0x44,0x44,0x33,0x43,0x44,
+	0x45,0x44,0x55,0x00,0x05,0x02,0x54,0x34,0x34,0x34,0x33,0x34,0x34,0x45,0x45,0x40,0x22,0x22,0x24,0x34,0x34,0x33,0x43,0x43,
+	0x43,0x44,0x54,0x55,0x54,0x34,0x34,0x00,0x0A,0x43,0x02,0x44,0x02,0x52,0x0A,0x22,0x02,0x25,0x02,0x44,0x0C,0x34,0x00,0x06,
+	0x45,0x55,0x44,0x00,0x0A,0x34,0x00,0x0E,0x44,0x55,0x22,0x55,0x55,0x44,0x44,0x00,0x08,0x43,0x00,0x12,0x44,0x34,0x34,0x34,
+	0x45,0x55,0x50,0x25,0x54,0x00,0x0A,0x34,0x00,0x0C,0x44,0x44,0x45,0x50,0x55,0x44,0x08,0x34,0x00,0x10,0x43,0x34,0x34,0x45,
+	0x00,0x55,0x44,0x44,0x08,0x43,0x0A,0x34,0x00,0x0C,0x50,0x22,0x25,0x50,0x05,0x44,0x0A,0x43,0x00,0x08,0x44,0x43,0x45,0x52,
+	0x18,0x22,0x02,0x54,0x08,0x44,0x00,0x36,0x34,0x34,0x34,0x33,0x43,0x43,0x43,0x44,0x34,0x45,0x55,0x50,0x54,0x44,0x44,0x34,
+	0x33,0x44,0x33,0x43,0x33,0x43,0x43,0x44,0x45,0x55,0x27,0x00,0x00,0x00,0x00,0x08,0x22,0x22,0x22,0x24,0x0C,0x34,0x00,0x20,
+	0x33,0x44,0x45,0x44,0x44,0x45,0x05,0x00,0x52,0x22,0x22,0x22,0x55,0x55,0x55,0x05,0x0E,0x43,0x02,0x44,0x02,0x55,0x0C,0x43,
+	0x00,0x46,0x44,0x55,0x55,0x44,0x34,0x34,0x43,0x45,0x22,0x22,0x55,0x44,0x34,0x34,0x44,0x55,0x45,0x50,0x50,0x22,0x54,0x34,
+	0x34,0x34,0x44,0x34,0x43,0x44,0x45,0x55,0x22,0x22,0x24,0x34,0x34,0x00,0x08,0x43,0x00,0x18,0x34,0x45,0x50,0x22,0x44,0x33,
+	0x43,0x43,0x43,0x44,0x34,0x45,0x0C,0x22,0x02,0x25,0x0C,0x43,0x00,0x06,0x44,0x35,0x55,0x00,0x0C,0x43,0x00,0x0C,0x44,0x52,
+	0x22,0x05,0x54,0x44,0x0A,0x43,0x0A,0x34,0x00,0x0A,0x54,0x50,0x22,0x05,0x53,0x00,0x08,0x43,0x00,0x0C,0x33,0x34,0x05,0x05,
+	0x54,0x44,0x08,0x43,0x00,0x10,0x44,0x34,0x45,0x00,0x55,0x54,0x44,0x44,0x12,0x34,0x00,0x0C,0x45,0x22,0x20,0x55,0x05,0x54,
+	0x0A,0x43,0x02,0x33,0x02,0x45,0x1A,0x22,0x00,0x0C,0x25,0x44,0x45,0x44,0x44,0x44,0x0E,0x43,0x00,0x28,0x34,0x40,0x05,0x50,
+	0x05,0x55,0x44,0x44,0x34,0x43,0x34,0x43,0x34,0x43,0x34,0x34,0x52,0x22,0x22,0x2F,0x00,0x00,0x08,0x22,0x02,0x54,0x0C,0x34,
+	0x00,0x1E,0x44,0x44,0x45,0x44,0x55,0x50,0x05,0x02,0x22,0x22,0x22,0x54,0x55,0x55,0x55,0x00,0x10,0x34,0x02,0x45,0x02,0x34,
+	0x0A,0x43,0x00,0x5A,0x44,0x44,0x50,0x53,0x43,0x43,0x34,0x22,0x22,0x22,0x55,0x54,0x34,0x34,0x34,0x54,0x44,0x05,0x00,0x22,
+	0x54,0x34,0x34,0x34,0x33,0x43,0x43,0x43,0x45,0x42,0x22,0x22,0x54,0x44,0x34,0x33,0x43,0x43,0x44,0x44,0x44,0x55,0x22,0x24,
+	0x34,0x00,0x08,0x43,0x02,0x34,0x02,0x54,0x0C,0x22,0x02,0x25,0x0E,0x43,0x02,0x34,0x02,0x45,0x0E,0x34,0x00,0x0A,0x55,0x22,
+	0x55,0x44,0x44,0x00,0x0A,0x43,0x02,0x44,0x08,0x34,0x00,0x0A,0x45,0x55,0x22,0x55,0x54,0x00,0x08,0x43,0x00,0x22,0x44,0x40,
+	0x50,0x05,0x54,0x44,0x34,0x34,0x34,0x33,0x43,0x34,0x55,0x05,0x55,0x44,0x44,0x00,0x14,0x43,0x00,0x1A,0x45,0x22,0x25,0x55,
+	0x50,0x44,0x34,0x34,0x34,0x33,0x43,0x44,0x52,0x00,0x1A,0x22,0x02,0x25,0x08,0x44,0x02,0x54,0x02,0x44,0x08,0x34,0x00,0x2C,
+	0x33,0x43,0x45,0x50,0x50,0x00,0x50,0x54,0x44,0x44,0x44,0x33,0x43,0x33,0x44,0x33,0x44,0x42,0x22,0x22,0x22,0x23,0x00,0x00,
+	0x08,0x22,0x02,0x25,0x0C,0x43,0x00,0x1E,0x44,0x45,0x44,0x54,0x50,0x05,0x00,0x52,0x22,0x22,0x22,0x55,0x54,0x55,0x55,0x00,
+	0x10,0x43,0x02,0x44,0x0C,0x43,0x00,0x66,0x44,0x44,0x55,0x03,0x43,0x44,0x42,0x22,0x22,0x55,0x55,0x05,0x43,0x43,0x43,0x45,
+	0x54,0x50,0x50,0x22,0x44,0x34,0x34,0x34,0x43,0x44,0x45,0x54,0x44,0x52,0x22,0x22,0x53,0x34,0x34,0x43,0x43,0x44,0x45,0x54,
+	0x44,0x52,0x22,0x25,0x33,0x43,0x43,0x43,0x44,0x44,0x54,0x00,0x0C,0x22,0x02,0x24,0x0C,0x43,0x00,0x06,0x44,0x43,0x44,0x00,
+	0x0A,0x43,0x00,0x0C,0x44,0x54,0x42,0x20,0x55,0x44,0x0C,0x43,0x02,0x33,0x08,0x43,0x00,0x0A,0x44,0x50,0x22,0x05,0x54,0x00,
+	0x08,0x43,0x00,0x22,0x33,0x55,0x05,0x05,0x44,0x44,0x34,0x34,0x33,0x44,0x34,0x45,0x05,0x00,0x54,0x44,0x44,0x00,0x08,0x43,
+	0x02,0x44,0x0C,0x34,0x00,0x0A,0x22,0x25,0x45,0x05,0x54,0x00,0x0A,0x43,0x02,0x35,0x1C,0x22,0x02,0x24,0x02,0x45,0x0A,0x44,
+	0x02,0x34,0x02,0x33,0x08,0x43,0x00,0x1E,0x50,0x05,0x05,0x00,0x55,0x54,0x44,0x44,0x43,0x43,0x44,0x43,0x34,0x43,0x34,0x00,
+	0x08,0x22,0x02,0x2F,0x00,0x00,0x0A,0x22,0x02,0x54,0x0C,0x34,0x00,0x1E,0x44,0x44,0x44,0x55,0x50,0x05,0x50,0x22,0x22,0x22,
+	0x54,0x44,0x54,0x50,0x44,0x00,0x0C,0x34,0x02,0x33,0x02,0x43,0x0C,0x34,0x00,0x5A,0x54,0x44,0x50,0x54,0x43,0x43,0x52,0x22,
+	0x22,0x25,0x40,0x55,0x44,0x43,0x43,0x44,0x44,0x55,0x05,0x22,0x54,0x34,0x34,0x34,0x33,0x44,0x55,0x55,0x43,0x52,0x22,0x22,
+	0x54,0x44,0x34,0x33,0x43,0x44,0x45,0x05,0x44,0x42,0x22,0x22,0x44,0x00,0x08,0x43,0x02,0x44,0x02,0x45,0x0C,0x22,0x02,0x25,
+	0x02,0x33,0x0C,0x43,0x02,0x33,0x0C,0x43,0x00,0x0C,0x42,0x25,0x42,0x20,0x54,0x44,0x0C,0x34,0x00,0x3E,0x44,0x44,0x54,0x43,
+	0x43,0x44,0x55,0x22,0x04,0x54,0x34,0x34,0x43,0x43,0x44,0x05,0x00,0x55,0x44,0x43,0x43,0x43,0x44,0x43,0x34,0x50,0x50,0x05,
+	0x45,0x44,0x44,0x00,0x08,0x34,0x00,0x18,0x33,0x43,0x44,0x45,0x44,0x34,0x34,0x22,0x54,0x45,0x55,0x44,0x0A,0x43,0x02,0x42,
+	0x1C,0x22,0x00,0x12,0x54,0x44,0x44,0x45,0x44,0x44,0x43,0x43,0x44,0x00,0x08,0x34,0x00,0x1E,0x00,0x50,0x50,0x05,0x55,0x44,
+	0x44,0x44,0x43,0x43,0x43,0x33,0x44,0x33,0x42,0x00,0x08,0x22,0x02,0x2B,0x00,0x00,0x0A,0x22,0x02,0x24,0x0A,0x43,0x00,0x20,
+	0x44,0x45,0x45,0x45,0x50,0x05,0x00,0x05,0x22,0x22,0x25,0x45,0x44,0x45,0x50,0x53,0x0A,0x43,0x00,0x06,0x44,0x55,0x44,0x00,
+	0x0C,0x34,0x00,0x58,0x45,0x54,0x55,0x04,0x43,0x44,0x22,0x22,0x22,0x55,0x55,0x54,0x44,0x43,0x43,0x44,0x44,0x55,0x00,0x22,
+	0x44,0x34,0x34,0x34,0x43,0x44,0x44,0x55,0x54,0x42,0x22,0x22,0x53,0x34,0x34,0x43,0x43,0x44,0x55,0x05,0x04,0x42,0x22,0x22,
+	0x0A,0x43,0x02,0x44,0x02,0x45,0x0C,0x22,0x02,0x24,0x0A,0x43,0x00,0x06,0x44,0x55,0x54,0x00,0x0C,0x34,0x00,0x0C,0x52,0x22,
+	0x22,0x25,0x54,0x44,0x0A,0x34,0x00,0x16,0x33,0x45,0x22,0x22,0x22,0x44,0x34,0x45,0x22,0x55,0x54,0x00,0x08,0x43,0x00,0x20,
+	0x34,0x00,0x50,0x54,0x44,0x43,0x43,0x43,0x33,0x44,0x35,0x20,0x05,0x05,0x44,0x44,0x0A,0x34,0x00,0x18,0x43,0x45,0x50,0x05,
+	0x05,0x53,0x43,0x52,0x55,0x44,0x05,0x44,0x0A,0x34,0x02,0x52,0x1C,0x22,0x02,0x54,0x0A,0x44,0x02,0x43,0x02,0x43,0x08,0x34,
+	0x00,0x20,0x45,0x00,0x00,0x50,0x50,0x55,0x44,0x44,0x44,0x34,0x34,0x34,0x43,0x33,0x44,0x52,0x08,0x22,0x02,0x2F,0x00,0x00,
+	0x0A,0x22,0x02,0x25,0x0C,0x34,0x00,0x06,0x44,0x44,0x44,0x00,0x08,0x50,0x00,0x10,0x52,0x22,0x24,0x54,0x45,0x45,0x50,0x54,
+	0x0A,0x34,0x00,0x0A,0x44,0x55,0x05,0x43,0x44,0x00,0x08,0x34,0x00,0x44,0x44,0x54,0x55,0x05,0x43,0x44,0x22,0x22,0x22,0x54,
+	0x55,0x54,0x54,0x33,0x43,0x43,0x45,0x44,0x00,0x22,0x54,0x34,0x34,0x34,0x33,0x44,0x45,0x40,0x05,0x52,0x22,0x22,0x54,0x44,
+	0x08,0x34,0x00,0x0E,0x45,0x50,0x05,0x52,0x22,0x22,0x53,0x00,0x08,0x43,0x02,0x45,0x02,0x54,0x0C,0x22,0x02,0x25,0x0A,0x34,
+	0x00,0x08,0x45,0x50,0x55,0x53,0x0A,0x34,0x00,0x0A,0x52,0x22,0x22,0x20,0x54,0x00,0x0C,0x43,0x02,0x45,0x08,0x22,0x00,0x34,
+	0x25,0x43,0x45,0x22,0x54,0x54,0x33,0x43,0x43,0x43,0x44,0x05,0x05,0x54,0x44,0x43,0x43,0x43,0x44,0x43,0x42,0x20,0x50,0x55,
+	0x44,0x44,0x0A,0x43,0x00,0x18,0x34,0x50,0x50,0x50,0x00,0x25,0x34,0x42,0x54,0x45,0x55,0x44,0x08,0x43,0x02,0x44,0x02,0x52,
+	0x1A,0x22,0x00,0x06,0x25,0x44,0x45,0x00,0x0A,0x44,0x02,0x33,0x08,0x43,0x00,0x1E,0x50,0x05,0x05,0x05,0x00,0x44,0x44,0x54,
+	0x44,0x34,0x34,0x34,0x33,0x44,0x44,0x00,0x0A,0x22,0x02,0x2B,0x00,0x00,0x0C,0x22,0x02,0x53,0x0A,0x43,0x00,0x7C,0x44,0x54,
+	0x54,0x55,0x05,0x00,0x50,0x00,0x22,0x25,0x44,0x44,0x55,0x05,0x05,0x34,0x34,0x34,0x43,0x43,0x45,0x55,0x50,0x55,0x33,0x43,
+	0x43,0x43,0x44,0x45,0x44,0x50,0x55,0x43,0x45,0x22,0x22,0x25,0x45,0x55,0x44,0x44,0x44,0x34,0x34,0x34,0x55,0x52,0x22,0x54,
+	0x34,0x34,0x34,0x43,0x44,0x45,0x55,0x00,0x22,0x22,0x22,0x54,0x08,0x34,0x00,0x10,0x44,0x45,0x50,0x50,0x22,0x22,0x22,0x54,
+	0x0A,0x34,0x02,0x55,0x02,0x02,0x0A,0x22,0x02,0x25,0x0A,0x43,0x00,0x08,0x40,0x00,0x05,0x05,0x0A,0x43,0x00,0x0A,0x52,0x22,
+	0x22,0x25,0x54,0x00,0x0C,0x43,0x00,0x16,0x42,0x22,0x22,0x22,0x50,0x22,0x54,0x35,0x22,0x54,0x44,0x00,0x08,0x43,0x00,0x08,
+	0x44,0x50,0x05,0x44,0x08,0x43,0x00,0x0E,0x33,0x44,0x22,0x25,0x05,0x54,0x44,0x00,0x0A,0x43,0x00,0x1A,0x44,0x40,0x50,0x05,
+	0x05,0x50,0x02,0x43,0x42,0x44,0x44,0x54,0x44,0x00,0x0A,0x34,0x1C,0x22,0x00,0x0E,0x25,0x44,0x44,0x45,0x44,0x54,0x44,0x00,
+	0x0C,0x34,0x00,0x1E,0x50,0x50,0x50,0x05,0x55,0x54,0x44,0x44,0x44,0x34,0x34,0x34,0x43,0x33,0x42,0x00,0x0A,0x22,0x02,0x2F,
+	0x00,0x00,0x0C,0x22,0x02,0x24,0x0A,0x43,0x00,0x20,0x44,0x44,0x44,0x55,0x00,0x05,0x00,0x55,0x22,0x54,0x45,0x45,0x40,0x50,
+	0x55,0x44,0x08,0x34,0x00,0x0A,0x44,0x45,0x50,0x05,0x34,0x00,0x08,0x43,0x00,0x2A,0x44,0x44,0x55,0x50,0x44,0x45,0x22,0x22,
+	0x25,0x54,0x54,0x44,0x44,0x43,0x34,0x34,0x34,0x44,0x52,0x22,0x54,0x00,0x0A,0x34,0x00,0x0E,0x54,0x45,0x05,0x22,0x22,0x22,
+	0x54,0x00,0x0A,0x34,0x00,0x0E,0x45,0x50,0x02,0x22,0x22,0x22,0x54,0x00,0x08,0x34,0x00,0x06,0x35,0x45,0x52,0x00,0x0A,0x22,
+	0x02,0x25,0x02,0x34,0x08,0x43,0x00,0x08,0x55,0x50,0x50,0x55,0x08,0x34,0x00,0x0C,0x43,0x02,0x22,0x22,0x20,0x44,0x0C,0x34,
+	0x00,0x16,0x22,0x22,0x22,0x55,0x00,0x52,0x25,0x45,0x22,0x54,0x44,0x00,0x08,0x34,0x00,0x08,0x35,0x00,0x55,0x44,0x08,0x43,
+	0x00,0x0E,0x44,0x45,0x22,0x20,0x05,0x55,0x44,0x00,0x0A,0x34,0x02,0x44,0x08,0x50,0x00,0x10,0x00,0x02,0x54,0x35,0x55,0x45,
+	0x45,0x44,0x08,0x34,0x02,0x35,0x1C,0x22,0x02,0x24,0x0C,0x44,0x08,0x43,0x00,0x14,0x34,0x35,0x00,0x00,0x00,0x50,0x05,0x44,
+	0x44,0x44,0x08,0x34,0x00,0x06,0x33,0x44,0x52,0x00,0x0A,0x22,0x02,0x27,0x00,0x00,0x0C,0x22,0x02,0x25,0x0C,0x34,0x00,0x1E,
+	0x45,0x44,0x55,0x55,0x00,0x50,0x00,0x52,0x55,0x44,0x44,0x55,0x00,0x05,0x53,0x00,0x08,0x43,0x00,0x3C,0x44,0x45,0x55,0x00,
+	0x43,0x44,0x34,0x34,0x34,0x44,0x54,0x40,0x05,0x53,0x45,0x22,0x22,0x24,0x45,0x45,0x45,0x44,0x34,0x43,0x43,0x44,0x45,0x52,
+	0x22,0x04,0x08,0x43,0x00,0x10,0x44,0x45,0x45,0x50,0x52,0x22,0x22,0x24,0x08,0x43,0x00,0x10,0x44,0x44,0x55,0x02,0x22,0x22,
+	0x22,0x54,0x0A,0x34,0x02,0x45,0x02,0x05,0x0C,0x22,0x08,0x43,0x00,0x0A,0x44,0x45,0x05,0x00,0x05,0x00,0x08,0x43,0x00,0x0A,
+	0x34,0x52,0x22,0x22,0x25,0x00,0x0C,0x43,0x00,0x18,0x42,0x22,0x22,0x20,0x00,0x50,0x02,0x22,0x52,0x22,0x45,0x44,0x08,0x34,
+	0x00,0x08,0x35,0x50,0x55,0x44,0x08,0x34,0x00,0x0E,0x33,0x52,0x22,0x20,0x55,0x44,0x44,0x00,0x08,0x34,0x00,0x14,0x33,0x45,
+	0x05,0x00,0x50,0x05,0x05,0x02,0x24,0x45,0x08,0x44,0x08,0x34,0x02,0x35,0x1C,0x22,0x00,0x06,0x54,0x54,0x45,0x00,0x08,0x44,
+	0x08,0x34,0x00,0x14,0x33,0x45,0x00,0x55,0x05,0x05,0x55,0x44,0x44,0x44,0x0A,0x43,0x02,0x34,0x0C,0x22,0x02,0x2F,0x00,0x00,
+	0x0E,0x22,0x02,0x44,0x0A,0x34,0x00,0x1E,0x44,0x44,0x45,0x50,0x05,0x50,0x05,0x05,0x54,0x44,0x54,0x55,0x00,0x50,0x05,0x00,
+	0x08,0x43,0x00,0x0C,0x44,0x54,0x55,0x05,0x54,0x33,0x08,0x34,0x00,0x2A,0x44,0x55,0x50,0x54,0x40,0x22,0x22,0x54,0x54,0x54,
+	0x44,0x44,0x44,0x33,0x43,0x43,0x44,0x52,0x22,0x55,0x33,0x00,0x08,0x43,0x00,0x0E,0x44,0x55,0x00,0x02,0x22,0x22,0x24,0x00,
+	0x0A,0x34,0x00,0x0E,0x44,0x50,0x00,0x22,0x22,0x22,0x54,0x00,0x08,0x43,0x00,0x06,0x44,0x55,0x50,0x00,0x0C,0x22,0x02,0x53,
+	0x08,0x43,0x00,0x08,0x45,0x50,0x50,0x55,0x08,0x43,0x00,0x0C,0x44,0x52,0x22,0x22,0x25,0x44,0x0A,0x43,0x00,0x18,0x52,0x22,
+	0x22,0x05,0x05,0x00,0x50,0x22,0x22,0x22,0x54,0x44,0x08,0x34,0x00,0x06,0x45,0x00,0x54,0x00,0x0A,0x43,0x00,0x0C,0x34,0x22,
+	0x22,0x25,0x05,0x44,0x0A,0x43,0x00,0x1A,0x44,0x50,0x50,0x05,0x00,0x50,0x55,0x52,0x24,0x45,0x55,0x44,0x54,0x00,0x0A,0x43,
+	0x02,0x42,0x1C,0x22,0x02,0x54,0x0A,0x44,0x0A,0x43,0x00,0x20,0x44,0x40,0x00,0x50,0x00,0x50,0x54,0x44,0x44,0x44,0x34,0x34,
+	0x33,0x43,0x43,0x45,0x0C,0x22,0x02,0x20,0x00,0x00,0x0E,0x22,0x02,0x54,0x0A,0x43,0x00,0x20,0x44,0x54,0x45,0x55,0x00,0x05,
+	0x00,0x55,0x45,0x44,0x44,0x50,0x55,0x05,0x00,0x44,0x08,0x34,0x00,0x3A,0x45,0x45,0x50,0x04,0x44,0x34,0x34,0x34,0x44,0x44,
+	0x45,0x05,0x04,0x45,0x22,0x22,0x54,0x44,0x45,0x44,0x43,0x34,0x43,0x43,0x44,0x44,0x22,0x22,0x05,0x00,0x08,0x43,0x00,0x10,
+	0x44,0x44,0x45,0x55,0x02,0x22,0x22,0x25,0x0A,0x34,0x00,0x0E,0x45,0x45,0x00,0x22,0x22,0x22,0x24,0x00,0x0A,0x34,0x00,0x22,
+	0x44,0x00,0x22,0x22,0x20,0x50,0x22,0x22,0x23,0x43,0x43,0x43,0x44,0x44,0x50,0x05,0x05,0x00,0x08,0x43,0x00,0x0A,0x34,0x52,
+	0x22,0x22,0x25,0x00,0x0A,0x43,0x00,0x40,0x44,0x52,0x22,0x25,0x00,0x50,0x50,0x05,0x22,0x22,0x22,0x54,0x44,0x34,0x34,0x34,
+	0x33,0x45,0x50,0x44,0x43,0x43,0x43,0x44,0x34,0x42,0x22,0x22,0x22,0x55,0x44,0x44,0x08,0x34,0x00,0x1A,0x35,0x05,0x05,0x00,
+	0x50,0x55,0x55,0x52,0x22,0x25,0x54,0x44,0x44,0x00,0x0A,0x43,0x02,0x52,0x1A,0x22,0x02,0x25,0x08,0x44,0x02,0x54,0x02,0x44,
+	0x0A,0x43,0x00,0x12,0x34,0x00,0x05,0x05,0x00,0x55,0x54,0x44,0x44,0x00,0x0C,0x43,0x02,0x42,0x0C,0x22,0x02,0x2F,0x00,0x00,
+	0x0E,0x22,0x02,0x24,0x02,0x33,0x08,0x43,0x00,0x32,0x44,0x44,0x54,0x50,0x00,0x50,0x50,0x55,0x54,0x44,0x54,0x55,0x50,0x00,
+	0x00,0x24,0x43,0x43,0x44,0x34,0x44,0x45,0x50,0x55,0x43,0x00,0x08,0x34,0x00,0x28,0x54,0x45,0x50,0x05,0x50,0x02,0x22,0x54,
+	0x54,0x54,0x43,0x43,0x44,0x34,0x34,0x33,0x44,0x22,0x22,0x50,0x0A,0x43,0x00,0x26,0x44,0x45,0x50,0x00,0x22,0x22,0x25,0x43,
+	0x43,0x43,0x34,0x34,0x54,0x40,0x05,0x22,0x22,0x22,0x24,0x00,0x08,0x43,0x00,0x14,0x44,0x45,0x05,0x22,0x20,0x05,0x00,0x52,
+	0x22,0x25,0x08,0x43,0x00,0x08,0x45,0x50,0x50,0x05,0x08,0x43,0x00,0x0A,0x44,0x52,0x22,0x22,0x25,0x00,0x0A,0x43,0x00,0x1A,
+	0x44,0x22,0x22,0x50,0x05,0x05,0x00,0x50,0x22,0x22,0x22,0x44,0x44,0x00,0x08,0x34,0x00,0x1C,0x45,0x05,0x44,0x34,0x34,0x34,
+	0x33,0x44,0x52,0x22,0x22,0x22,0x54,0x44,0x0A,0x43,0x00,0x1A,0x45,0x50,0x05,0x05,0x05,0x55,0x54,0x52,0x22,0x50,0x54,0x45,
+	0x44,0x00,0x0A,0x34,0x02,0x52,0x1A,0x22,0x00,0x0E,0x25,0x44,0x44,0x54,0x44,0x44,0x44,0x00,0x0A,0x34,0x00,0x20,0x44,0x00,
+	0x50,0x00,0x50,0x55,0x54,0x44,0x44,0x44,0x34,0x34,0x43,0x43,0x44,0x52,0x0C,0x22,0x02,0x20,0x00,0x00,0x10,0x22,0x02,0x44,
+	0x0A,0x34,0x00,0x62,0x44,0x44,0x55,0x05,0x00,0x50,0x55,0x45,0x44,0x44,0x50,0x05,0x05,0x05,0x22,0x53,0x43,0x34,0x34,0x44,
+	0x54,0x55,0x05,0x44,0x34,0x34,0x34,0x33,0x45,0x45,0x05,0x50,0x50,0x52,0x22,0x54,0x44,0x44,0x43,0x43,0x34,0x34,0x34,0x43,
+	0x44,0x22,0x22,0x05,0x44,0x00,0x08,0x34,0x00,0x26,0x44,0x54,0x55,0x00,0x22,0x22,0x22,0x43,0x43,0x44,0x34,0x33,0x45,0x45,
+	0x00,0x22,0x22,0x22,0x24,0x00,0x0A,0x34,0x00,0x34,0x44,0x50,0x25,0x00,0x50,0x50,0x05,0x22,0x22,0x53,0x43,0x43,0x43,0x44,
+	0x55,0x05,0x05,0x44,0x34,0x34,0x34,0x33,0x52,0x22,0x22,0x25,0x0A,0x43,0x00,0x18,0x45,0x22,0x22,0x05,0x05,0x00,0x50,0x05,
+	0x22,0x22,0x22,0x44,0x0A,0x43,0x02,0x40,0x02,0x55,0x08,0x34,0x02,0x43,0x02,0x34,0x08,0x22,0x00,0x28,0x54,0x44,0x43,0x44,
+	0x34,0x34,0x34,0x50,0x05,0x00,0x05,0x55,0x55,0x55,0x52,0x25,0x05,0x04,0x44,0x44,0x08,0x43,0x02,0x44,0x02,0x52,0x1A,0x22,
+	0x00,0x0E,0x24,0x54,0x44,0x44,0x54,0x44,0x44,0x00,0x08,0x34,0x00,0x20,0x33,0x45,0x00,0x05,0x50,0x05,0x54,0x44,0x54,0x44,
+	0x34,0x34,0x33,0x43,0x43,0x34,0x0E,0x22,0x02,0x2F,0x00,0x00,0x10,0x22,0x02,0x43,0x0A,0x34,0x00,0x30,0x44,0x45,0x45,0x50,
+	0x05,0x00,0x54,0x44,0x45,0x44,0x55,0x50,0x50,0x50,0x22,0x25,0x43,0x44,0x34,0x34,0x44,0x55,0x05,0x44,0x08,0x34,0x00,0x2A,
+	0x44,0x44,0x55,0x00,0x05,0x02,0x22,0x45,0x44,0x43,0x43,0x43,0x44,0x34,0x34,0x34,0x35,0x22,0x20,0x50,0x53,0x00,0x08,0x43,
+	0x00,0x26,0x45,0x44,0x50,0x05,0x22,0x22,0x22,0x43,0x43,0x43,0x34,0x34,0x44,0x55,0x00,0x02,0x22,0x22,0x25,0x00,0x0A,0x43,
+	0x00,0x14,0x45,0x50,0x50,0x05,0x00,0x05,0x50,0x02,0x22,0x44,0x08,0x34,0x00,0x08,0x55,0x50,0x05,0x43,0x08,0x34,0x00,0x08,
+	0x52,0x22,0x22,0x24,0x0A,0x43,0x00,0x1A,0x42,0x22,0x22,0x05,0x00,0x00,0x50,0x50,0x22,0x22,0x22,0x44,0x44,0x00,0x08,0x34,
+	0x00,0x10,0x45,0x54,0x44,0x34,0x34,0x34,0x33,0x42,0x08,0x22,0x00,0x28,0x54,0x44,0x34,0x33,0x43,0x43,0x44,0x50,0x50,0x50,
+	0x55,0x55,0x45,0x45,0x42,0x00,0x00,0x55,0x44,0x44,0x0A,0x34,0x02,0x55,0x1A,0x22,0x00,0x06,0x54,0x44,0x54,0x00,0x08,0x44,
+	0x0A,0x34,0x00,0x1E,0x40,0x50,0x50,0x00,0x55,0x55,0x44,0x44,0x43,0x43,0x43,0x34,0x43,0x43,0x42,0x00,0x0E,0x22,0x02,0x20,
+	0x00,0x00,0x10,0x22,0x02,0x24,0x0A,0x43,0x00,0x30,0x44,0x44,0x55,0x55,0x05,0x05,0x54,0x44,0x44,0x54,0x45,0x05,0x00,0x50,
+	0x22,0x22,0x54,0x34,0x34,0x34,0x44,0x55,0x50,0x53,0x08,0x43,0x00,0x16,0x44,0x54,0x50,0x50,0x00,0x52,0x25,0x44,0x44,0x43,
+	0x44,0x00,0x0A,0x34,0x00,0x0A,0x35,0x22,0x55,0x05,0x04,0x00,0x0A,0x34,0x00,0x24,0x54,0x55,0x50,0x02,0x22,0x22,0x53,0x43,
+	0x44,0x43,0x43,0x44,0x45,0x05,0x02,0x22,0x22,0x25,0x08,0x43,0x00,0x26,0x44,0x44,0x50,0x50,0x50,0x55,0x00,0x05,0x02,0x22,
+	0x54,0x44,0x34,0x43,0x44,0x45,0x50,0x55,0x44,0x00,0x08,0x34,0x00,0x08,0x52,0x22,0x22,0x25,0x0A,0x34,0x00,0x18,0x42,0x22,
+	0x22,0x00,0x50,0x55,0x50,0x50,0x22,0x22,0x22,0x54,0x0A,0x43,0x00,0x10,0x45,0x44,0x33,0x43,0x43,0x43,0x44,0x52,0x08,0x22,
+	0x00,0x28,0x54,0x44,0x34,0x43,0x43,0x43,0x45,0x05,0x00,0x55,0x55,0x45,0x54,0x55,0x55,0x05,0x05,0x04,0x44,0x44,0x08,0x34,
+	0x02,0x45,0x02,0x05,0x1A,0x22,0x02,0x54,0x0A,0x44,0x0C,0x43,0x00,0x0A,0x50,0x00,0x55,0x00,0x05,0x00,0x08,0x44,0x00,0x0C,
+	0x34,0x34,0x43,0x34,0x34,0x42,0x0E,0x22,0x02,0x2F,0x00,0x00,0x10,0x22,0x02,0x25,0x0C,0x34,0x00,0x2E,0x45,0x45,0x50,0x00,
+	0x50,0x54,0x44,0x45,0x44,0x45,0x50,0x05,0x00,0x52,0x22,0x22,0x54,0x34,0x34,0x34,0x44,0x55,0x54,0x00,0x08,0x43,0x00,0x10,
+	0x44,0x44,0x55,0x05,0x05,0x02,0x25,0x44,0x10,0x43,0x00,0x0A,0x45,0x25,0x00,0x00,0x04,0x00,0x08,0x43,0x00,0x26,0x44,0x44,
+	0x50,0x00,0x02,0x22,0x22,0x53,0x43,0x43,0x34,0x34,0x44,0x55,0x50,0x00,0x22,0x22,0x25,0x00,0x0A,0x34,0x00,0x22,0x45,0x55,
+	0x00,0x50,0x50,0x00,0x50,0x52,0x22,0x54,0x44,0x34,0x34,0x34,0x45,0x55,0x05,0x00,0x0A,0x43,0x00,0x08,0x52,0x22,0x22,0x24,
+	0x0A,0x43,0x00,0x1A,0x52,0x22,0x22,0x05,0x05,0x55,0x55,0x05,0x22,0x22,0x22,0x44,0x44,0x00,0x08,0x34,0x00,0x0E,0x44,0x43,
+	0x44,0x34,0x43,0x43,0x44,0x00,0x0A,0x22,0x02,0x54,0x02,0x44,0x08,0x34,0x00,0x1C,0x45,0x50,0x05,0x55,0x45,0x55,0x45,0x55,
+	0x45,0x50,0x05,0x05,0x54,0x44,0x08,0x34,0x02,0x45,0x02,0x05,0x18,0x22,0x02,0x25,0x08,0x44,0x02,0x54,0x02,0x44,0x0C,0x34,
+	0x00,0x1E,0x00,0x05,0x00,0x05,0x55,0x44,0x45,0x44,0x34,0x34,0x34,0x33,0x44,0x34,0x52,0x00,0x0E,0x22,0x02,0x27,0x00,0x00,
+	0x10,0x22,0x02,0x25,0x0A,0x43,0x00,0x32,0x44,0x44,0x44,0x55,0x00,0x05,0x05,0x34,0x44,0x45,0x45,0x50,0x50,0x50,0x02,0x22,
+	0x22,0x25,0x53,0x43,0x44,0x44,0x55,0x54,0x44,0x00,0x08,0x34,0x00,0x0E,0x45,0x55,0x00,0x50,0x52,0x24,0x44,0x00,0x10,0x34,
+	0x00,0x0A,0x40,0x00,0x50,0x55,0x04,0x00,0x08,0x43,0x00,0x26,0x44,0x45,0x45,0x50,0x05,0x00,0x50,0x03,0x43,0x44,0x33,0x43,
+	0x44,0x45,0x05,0x05,0x05,0x22,0x22,0x00,0x08,0x34,0x00,0x26,0x33,0x44,0x50,0x50,0x00,0x05,0x05,0x00,0x02,0x22,0x44,0x45,
+	0x43,0x43,0x43,0x44,0x55,0x05,0x44,0x00,0x08,0x34,0x00,0x08,0x52,0x22,0x22,0x24,0x08,0x43,0x00,0x1A,0x44,0x02,0x22,0x22,
+	0x50,0x05,0x54,0x55,0x00,0x22,0x22,0x22,0x54,0x00,0x08,0x34,0x00,0x10,0x33,0x43,0x43,0x34,0x43,0x43,0x44,0x42,0x0A,0x22,
+	0x02,0x54,0x0A,0x43,0x00,0x1A,0x40,0x55,0x55,0x55,0x54,0x55,0x54,0x55,0x55,0x05,0x00,0x55,0x44,0x00,0x0A,0x43,0x02,0x40,
+	0x02,0x55,0x18,0x22,0x00,0x0E,0x25,0x44,0x44,0x54,0x44,0x44,0x44,0x00,0x0A,0x43,0x00,0x12,0x45,0x00,0x05,0x05,0x00,0x55,
+	0x44,0x44,0x44,0x00,0x08,0x43,0x02,0x34,0x02,0x34,0x10,0x22,0x02,0x2F,0x00,0x00,0x12,0x22,0x00,0x3C,0x54,0x34,0x34,0x34,
+	0x33,0x43,0x44,0x44,0x50,0x05,0x50,0x05,0x34,0x54,0x54,0x44,0x55,0x00,0x50,0x05,0x22,0x22,0x22,0x24,0x44,0x43,0x34,0x45,
+	0x55,0x43,0x08,0x34,0x00,0x0C,0x44,0x45,0x05,0x50,0x22,0x24,0x12,0x43,0x00,0x0A,0x45,0x05,0x05,0x00,0x05,0x00,0x0A,0x43,
+	0x00,0x26,0x54,0x45,0x00,0x50,0x05,0x00,0x54,0x43,0x43,0x34,0x43,0x44,0x54,0x50,0x50,0x00,0x05,0x52,0x44,0x00,0x08,0x34,
+	0x00,0x24,0x45,0x55,0x00,0x55,0x05,0x00,0x50,0x52,0x22,0x54,0x54,0x45,0x43,0x43,0x43,0x45,0x55,0x43,0x08,0x34,0x00,0x08,
+	0x52,0x22,0x22,0x25,0x08,0x43,0x00,0x1C,0x44,0x52,0x22,0x05,0x00,0x55,0x44,0x55,0x55,0x22,0x22,0x20,0x54,0x44,0x08,0x34,
+	0x00,0x0E,0x43,0x43,0x44,0x33,0x43,0x43,0x50,0x00,0x0A,0x22,0x00,0x26,0x54,0x44,0x34,0x34,0x34,0x43,0x55,0x55,0x45,0x55,
+	0x45,0x55,0x45,0x54,0x55,0x50,0x05,0x05,0x44,0x00,0x0A,0x43,0x00,0x06,0x50,0x05,0x02,0x00,0x16,0x22,0x00,0x0E,0x55,0x45,
+	0x44,0x44,0x54,0x44,0x44,0x00,0x08,0x34,0x00,0x12,0x33,0x45,0x00,0x50,0x50,0x05,0x54,0x45,0x44,0x00,0x0C,0x43,0x02,0x42,
+	0x10,0x22,0x02,0x2B,0x00,0x00,0x12,0x22,0x00,0x50,0x24,0x34,0x34,0x43,0x44,0x34,0x44,0x54,0x45,0x00,0x05,0x05,0x43,0x44,
+	0x45,0x45,0x45,0x50,0x05,0x05,0x22,0x22,0x22,0x54,0x44,0x44,0x34,0x34,0x55,0x44,0x34,0x43,0x43,0x43,0x45,0x45,0x00,0x05,
+	0x22,0x54,0x12,0x34,0x08,0x50,0x02,0x55,0x02,0x44,0x08,0x34,0x02,0x45,0x02,0x45,0x08,0x50,0x00,0x1A,0x54,0x43,0x43,0x43,
+	0x34,0x34,0x55,0x50,0x50,0x50,0x00,0x05,0x44,0x00,0x08,0x43,0x00,0x34,0x44,0x50,0x50,0x00,0x50,0x50,0x05,0x02,0x22,0x44,
+	0x45,0x45,0x54,0x34,0x34,0x44,0x55,0x44,0x34,0x34,0x43,0x43,0x52,0x22,0x22,0x24,0x08,0x43,0x00,0x1A,0x44,0x05,0x05,0x00,
+	0x50,0x55,0x44,0x55,0x55,0x22,0x22,0x25,0x54,0x00,0x08,0x34,0x00,0x12,0x33,0x43,0x43,0x34,0x43,0x34,0x35,0x55,0x52,0x00,
+	0x08,0x22,0x02,0x54,0x08,0x43,0x00,0x1C,0x44,0x55,0x55,0x55,0x45,0x54,0x55,0x55,0x55,0x45,0x05,0x00,0x05,0x44,0x0A,0x34,
+	0x00,0x06,0x50,0x50,0x52,0x00,0x16,0x22,0x02,0x54,0x0A,0x44,0x0A,0x43,0x00,0x14,0x44,0x50,0x00,0x05,0x05,0x05,0x54,0x44,
+	0x44,0x44,0x0A,0x34,0x02,0x42,0x10,0x22,0x02,0x2F,0x00,0x00,0x12,0x22,0x00,0x3C,0x25,0x44,0x34,0x33,0x43,0x34,0x34,0x44,
+	0x55,0x05,0x05,0x05,0x44,0x34,0x54,0x44,0x45,0x50,0x05,0x05,0x52,0x22,0x22,0x55,0x45,0x54,0x43,0x44,0x34,0x54,0x08,0x34,
+	0x00,0x0A,0x44,0x45,0x05,0x50,0x22,0x00,0x12,0x43,0x00,0x0C,0x44,0x05,0x00,0x50,0x50,0x00,0x08,0x43,0x00,0x28,0x44,0x44,
+	0x45,0x50,0x05,0x00,0x05,0x05,0x34,0x34,0x43,0x43,0x44,0x44,0x50,0x05,0x05,0x50,0x50,0x53,0x08,0x34,0x00,0x34,0x45,0x50,
+	0x50,0x05,0x05,0x00,0x50,0x02,0x22,0x54,0x44,0x55,0x55,0x54,0x44,0x34,0x44,0x43,0x43,0x43,0x34,0x34,0x52,0x22,0x22,0x24,
+	0x08,0x43,0x00,0x1C,0x45,0x00,0x50,0x05,0x05,0x54,0x44,0x55,0x55,0x22,0x22,0x20,0x54,0x44,0x08,0x34,0x00,0x10,0x54,0x34,
+	0x43,0x34,0x43,0x45,0x55,0x05,0x08,0x22,0x02,0x24,0x0A,0x34,0x00,0x2A,0x55,0x45,0x44,0x54,0x45,0x44,0x44,0x44,0x54,0x55,
+	0x05,0x55,0x44,0x44,0x34,0x34,0x34,0x35,0x05,0x00,0x52,0x00,0x16,0x22,0x00,0x06,0x54,0x44,0x45,0x00,0x08,0x44,0x08,0x34,
+	0x00,0x12,0x44,0x50,0x00,0x55,0x00,0x55,0x44,0x44,0x44,0x00,0x0A,0x43,0x02,0x44,0x12,0x22,0x02,0x2B,0x00,0x00,0x14,0x22,
+	0x00,0x3A,0x44,0x34,0x44,0x34,0x43,0x43,0x44,0x45,0x00,0x50,0x55,0x44,0x44,0x45,0x45,0x45,0x55,0x00,0x55,0x42,0x22,0x22,
+	0x44,0x54,0x54,0x54,0x43,0x43,0x33,0x00,0x08,0x43,0x00,0x0C,0x34,0x54,0x50,0x05,0x22,0x44,0x10,0x34,0x00,0x78,0x35,0x00,
+	0x55,0x50,0x05,0x50,0x44,0x34,0x34,0x34,0x33,0x45,0x45,0x55,0x00,0x50,0x50,0x55,0x43,0x43,0x43,0x44,0x34,0x54,0x55,0x00,
+	0x00,0x05,0x05,0x54,0x34,0x34,0x34,0x33,0x44,0x50,0x05,0x50,0x05,0x50,0x50,0x02,0x22,0x44,0x54,0x45,0x55,0x45,0x54,0x33,
+	0x34,0x43,0x43,0x44,0x34,0x34,0x52,0x22,0x22,0x25,0x08,0x34,0x00,0x1A,0x35,0x50,0x05,0x05,0x05,0x54,0x44,0x55,0x55,0x22,
+	0x22,0x25,0x54,0x00,0x0A,0x34,0x00,0x10,0x24,0x33,0x44,0x33,0x44,0x55,0x55,0x00,0x08,0x22,0x02,0x24,0x0A,0x43,0x00,0x1A,
+	0x33,0x33,0x43,0x34,0x43,0x44,0x34,0x34,0x34,0x50,0x00,0x55,0x44,0x00,0x08,0x34,0x00,0x08,0x35,0x00,0x50,0x52,0x16,0x22,
+	0x00,0x0C,0x55,0x44,0x44,0x44,0x54,0x44,0x08,0x43,0x00,0x14,0x33,0x34,0x00,0x50,0x00,0x50,0x55,0x44,0x44,0x44,0x0A,0x34,
+	0x02,0x35,0x12,0x22,0x02,0x2F,0x00,0x00,0x14,0x22,0x00,0x3A,0x53,0x43,0x33,0x44,0x33,0x43,0x45,0x45,0x05,0x05,0x54,0x43,
+	0x34,0x44,0x44,0x44,0x55,0x55,0x45,0x45,0x22,0x25,0x45,0x45,0x55,0x54,0x45,0x44,0x44,0x00,0x08,0x43,0x00,0x0C,0x44,0x44,
+	0x50,0x50,0x25,0x43,0x10,0x34,0x00,0x0E,0x50,0x05,0x55,0x50,0x50,0x02,0x54,0x00,0x08,0x34,0x00,0x0E,0x44,0x44,0x50,0x05,
+	0x05,0x00,0x05,0x00,0x0A,0x43,0x00,0x0E,0x44,0x50,0x05,0x05,0x05,0x00,0x54,0x00,0x08,0x34,0x00,0x24,0x45,0x50,0x50,0x00,
+	0x55,0x50,0x05,0x02,0x22,0x54,0x44,0x55,0x55,0x55,0x05,0x54,0x44,0x33,0x08,0x43,0x00,0x08,0x52,0x22,0x22,0x25,0x08,0x43,
+	0x00,0x1A,0x45,0x00,0x50,0x50,0x05,0x44,0x45,0x45,0x55,0x52,0x22,0x20,0x54,0x00,0x08,0x43,0x00,0x12,0x44,0x25,0x44,0x43,
+	0x34,0x44,0x55,0x55,0x55,0x00,0x08,0x22,0x02,0x24,0x0A,0x43,0x00,0x0A,0x44,0x44,0x43,0x44,0x33,0x00,0x08,0x43,0x00,0x06,
+	0x00,0x50,0x54,0x00,0x0A,0x43,0x00,0x08,0x45,0x05,0x00,0x50,0x16,0x22,0x02,0x54,0x0A,0x44,0x08,0x34,0x00,0x14,0x44,0x40,
+	0x00,0x05,0x05,0x05,0x54,0x44,0x44,0x44,0x0A,0x43,0x02,0x45,0x12,0x22,0x02,0x20,0x00,0x00,0x14,0x22,0x00,0x3A,0x24,0x44,
+	0x43,0x34,0x43,0x44,0x34,0x45,0x05,0x55,0x54,0x44,0x34,0x44,0x44,0x54,0x54,0x55,0x54,0x55,0x22,0x25,0x44,0x44,0x45,0x55,
+	0x45,0x55,0x44,0x00,0x0A,0x34,0x00,0x0A,0x45,0x50,0x05,0x25,0x44,0x00,0x0E,0x34,0x00,0x10,0x45,0x05,0x00,0x54,0x55,0x05,
+	0x02,0x23,0x08,0x43,0x00,0x0E,0x44,0x54,0x55,0x00,0x50,0x55,0x05,0x00,0x08,0x43,0x00,0x3C,0x44,0x44,0x55,0x00,0x50,0x50,
+	0x50,0x04,0x34,0x34,0x34,0x33,0x44,0x55,0x05,0x05,0x55,0x55,0x00,0x52,0x22,0x44,0x44,0x44,0x55,0x45,0x50,0x05,0x44,0x44,
+	0x08,0x34,0x00,0x08,0x52,0x22,0x22,0x25,0x08,0x43,0x00,0x34,0x45,0x05,0x00,0x05,0x05,0x44,0x44,0x55,0x55,0x52,0x22,0x20,
+	0x54,0x43,0x44,0x34,0x34,0x35,0x22,0x43,0x44,0x33,0x45,0x45,0x50,0x00,0x08,0x22,0x02,0x24,0x08,0x43,0x00,0x0A,0x44,0x44,
+	0x44,0x54,0x44,0x00,0x08,0x43,0x00,0x0A,0x45,0x50,0x05,0x54,0x44,0x00,0x08,0x34,0x00,0x08,0x40,0x50,0x55,0x05,0x14,0x22,
+	0x00,0x2A,0x25,0x54,0x45,0x44,0x54,0x44,0x44,0x34,0x34,0x34,0x33,0x33,0x40,0x05,0x00,0x05,0x05,0x54,0x44,0x44,0x44,0x00,
+	0x0A,0x34,0x02,0x52,0x12,0x22,0x02,0x2F,0x00,0x00,0x16,0x22,0x00,0x3A,0x43,0x33,0x44,0x33,0x43,0x34,0x45,0x55,0x55,0x44,
+	0x43,0x43,0x44,0x45,0x44,0x44,0x54,0x44,0x45,0x22,0x24,0x43,0x43,0x44,0x44,0x45,0x50,0x05,0x44,0x00,0x08,0x34,0x00,0x08,
+	0x44,0x45,0x52,0x25,0x0E,0x43,0x00,0x12,0x44,0x50,0x05,0x05,0x45,0x45,0x00,0x52,0x24,0x00,0x08,0x43,0x00,0x10,0x44,0x44,
+	0x50,0x05,0x00,0x50,0x00,0x44,0x08,0x43,0x00,0x0E,0x44,0x50,0x50,0x50,0x05,0x00,0x54,0x00,0x08,0x34,0x00,0x22,0x44,0x50,
+	0x00,0x55,0x54,0x55,0x55,0x02,0x22,0x44,0x43,0x43,0x44,0x55,0x00,0x50,0x50,0x00,0x0A,0x43,0x00,0x3C,0x52,0x22,0x22,0x25,
+	0x43,0x44,0x34,0x34,0x45,0x50,0x05,0x50,0x55,0x44,0x44,0x45,0x55,0x52,0x22,0x25,0x54,0x34,0x33,0x43,0x43,0x45,0x22,0x54,
+	0x43,0x34,0x08,0x55,0x08,0x22,0x00,0x14,0x24,0x34,0x34,0x34,0x33,0x55,0x05,0x00,0x55,0x44,0x08,0x43,0x00,0x08,0x45,0x05,
+	0x55,0x54,0x0A,0x43,0x00,0x08,0x50,0x50,0x55,0x55,0x14,0x22,0x02,0x25,0x02,0x54,0x08,0x44,0x08,0x43,0x00,0x14,0x44,0x44,
+	0x00,0x50,0x05,0x50,0x05,0x44,0x44,0x44,0x0A,0x43,0x02,0x44,0x14,0x22,0x02,0x2A,0x00,0x00,0x16,0x22,0x00,0x1C,0x54,0x43,
+	0x34,0x43,0x34,0x44,0x45,0x55,0x45,0x44,0x43,0x43,0x44,0x44,0x0A,0x45,0x00,0x14,0x22,0x54,0x34,0x34,0x34,0x44,0x44,0x50,
+	0x50,0x53,0x08,0x43,0x00,0x08,0x44,0x55,0x02,0x25,0x0C,0x43,0x00,0x14,0x44,0x55,0x05,0x00,0x55,0x45,0x45,0x50,0x02,0x25,
+	0x0A,0x34,0x00,0x0E,0x54,0x55,0x00,0x50,0x05,0x05,0x53,0x00,0x08,0x34,0x00,0x0E,0x44,0x40,0x05,0x05,0x00,0x50,0x04,0x00,
+	0x08,0x43,0x00,0x12,0x44,0x55,0x05,0x05,0x45,0x55,0x50,0x02,0x25,0x00,0x08,0x43,0x00,0x0A,0x45,0x50,0x50,0x05,0x44,0x00,
+	0x08,0x34,0x00,0x44,0x52,0x22,0x22,0x22,0x44,0x33,0x43,0x43,0x45,0x05,0x00,0x05,0x04,0x44,0x44,0x44,0x45,0x52,0x22,0x20,
+	0x54,0x34,0x43,0x43,0x43,0x45,0x22,0x55,0x44,0x44,0x54,0x55,0x55,0x05,0x08,0x22,0x00,0x24,0x25,0x43,0x43,0x43,0x44,0x55,
+	0x00,0x50,0x05,0x44,0x44,0x34,0x34,0x34,0x45,0x00,0x05,0x44,0x08,0x43,0x00,0x0A,0x44,0x50,0x55,0x45,0x55,0x00,0x14,0x22,
+	0x02,0x25,0x0A,0x44,0x08,0x43,0x00,0x14,0x33,0x34,0x00,0x05,0x00,0x05,0x55,0x44,0x44,0x44,0x0A,0x34,0x02,0x35,0x14,0x22,
+	0x02,0x2F,0x00,0x00,0x16,0x22,0x00,0x2A,0x54,0x33,0x44,0x34,0x44,0x33,0x45,0x45,0x44,0x44,0x34,0x34,0x34,0x54,0x54,0x44,
+	0x44,0x44,0x52,0x22,0x54,0x00,0x08,0x34,0x00,0x08,0x45,0x55,0x05,0x04,0x08,0x43,0x00,0x0A,0x44,0x45,0x52,0x22,0x44,0x00,
+	0x0A,0x34,0x00,0x14,0x45,0x05,0x00,0x05,0x54,0x54,0x45,0x05,0x02,0x22,0x0A,0x34,0x02,0x44,0x0A,0x50,0x00,0x18,0x43,0x44,
+	0x34,0x34,0x34,0x44,0x50,0x50,0x00,0x50,0x50,0x04,0x0A,0x34,0x00,0x22,0x40,0x50,0x54,0x44,0x55,0x55,0x52,0x25,0x44,0x34,
+	0x34,0x34,0x35,0x05,0x00,0x05,0x53,0x00,0x08,0x43,0x00,0x3C,0x52,0x22,0x22,0x22,0x43,0x34,0x43,0x43,0x45,0x05,0x00,0x50,
+	0x54,0x44,0x43,0x43,0x44,0x52,0x22,0x25,0x54,0x43,0x34,0x34,0x34,0x32,0x22,0x00,0x43,0x44,0x08,0x55,0x08,0x22,0x00,0x24,
+	0x25,0x34,0x34,0x34,0x43,0x50,0x05,0x00,0x55,0x44,0x43,0x34,0x34,0x34,0x50,0x00,0x55,0x44,0x08,0x43,0x00,0x0A,0x44,0x50,
+	0x55,0x54,0x55,0x00,0x14,0x22,0x00,0x28,0x55,0x44,0x54,0x44,0x54,0x44,0x34,0x34,0x33,0x43,0x44,0x45,0x00,0x50,0x05,0x05,
+	0x55,0x44,0x44,0x44,0x0A,0x43,0x02,0x42,0x14,0x22,0x02,0x23,0x00,0x00,0x16,0x22,0x00,0x2A,0x25,0x43,0x34,0x33,0x34,0x43,
+	0x44,0x44,0x44,0x33,0x43,0x43,0x43,0x44,0x45,0x45,0x45,0x44,0x52,0x22,0x54,0x00,0x0A,0x34,0x00,0x06,0x50,0x05,0x05,0x00,
+	0x08,0x43,0x00,0x28,0x44,0x44,0x52,0x22,0x53,0x43,0x43,0x43,0x44,0x44,0x50,0x50,0x55,0x55,0x44,0x44,0x44,0x00,0x52,0x22,
+	0x08,0x43,0x00,0x40,0x44,0x44,0x50,0x05,0x00,0x55,0x55,0x53,0x34,0x34,0x34,0x33,0x44,0x55,0x05,0x50,0x05,0x00,0x55,0x33,
+	0x43,0x43,0x43,0x44,0x55,0x05,0x45,0x45,0x54,0x55,0x22,0x25,0x08,0x34,0x00,0x0A,0x44,0x00,0x50,0x50,0x44,0x00,0x08,0x34,
+	0x00,0x70,0x52,0x22,0x22,0x22,0x54,0x33,0x43,0x43,0x44,0x05,0x05,0x00,0x54,0x44,0x34,0x34,0x34,0x42,0x22,0x20,0x53,0x44,
+	0x34,0x34,0x34,0x42,0x22,0x50,0x54,0x34,0x54,0x54,0x55,0x50,0x02,0x22,0x22,0x22,0x25,0x43,0x43,0x43,0x44,0x55,0x00,0x50,
+	0x54,0x44,0x44,0x34,0x34,0x34,0x50,0x50,0x54,0x54,0x0A,0x34,0x00,0x08,0x05,0x54,0x44,0x55,0x14,0x22,0x00,0x0C,0x55,0x44,
+	0x44,0x54,0x44,0x44,0x08,0x43,0x00,0x12,0x33,0x40,0x05,0x05,0x00,0x55,0x54,0x45,0x44,0x00,0x0A,0x43,0x02,0x44,0x02,0x52,
+	0x14,0x22,0x02,0x2F,0x00,0x00,0x18,0x22,0x00,0x28,0x43,0x44,0x34,0x44,0x33,0x43,0x43,0x43,0x44,0x44,0x34,0x34,0x44,0x54,
+	0x44,0x44,0x44,0x02,0x22,0x24,0x08,0x43,0x00,0x0A,0x45,0x50,0x50,0x05,0x44,0x00,0x08,0x34,0x00,0x28,0x45,0x52,0x22,0x54,
+	0x34,0x34,0x34,0x33,0x45,0x00,0x50,0x00,0x54,0x54,0x44,0x45,0x05,0x22,0x25,0x44,0x08,0x43,0x00,0x26,0x44,0x50,0x50,0x05,
+	0x55,0x05,0x53,0x44,0x34,0x34,0x34,0x44,0x50,0x50,0x00,0x05,0x00,0x05,0x44,0x00,0x08,0x34,0x00,0x10,0x45,0x55,0x54,0x44,
+	0x55,0x55,0x22,0x25,0x08,0x43,0x00,0x0A,0x35,0x05,0x05,0x05,0x43,0x00,0x08,0x34,0x00,0x1A,0x52,0x22,0x22,0x22,0x54,0x34,
+	0x43,0x43,0x45,0x00,0x50,0x05,0x54,0x00,0x08,0x34,0x00,0x08,0x42,0x22,0x25,0x54,0x08,0x43,0x00,0x1C,0x42,0x22,0x00,0x54,
+	0x43,0x45,0x55,0x55,0x05,0x02,0x22,0x22,0x22,0x25,0x08,0x34,0x00,0x18,0x50,0x05,0x05,0x55,0x44,0x43,0x34,0x34,0x45,0x05,
+	0x05,0x55,0x0A,0x43,0x00,0x0C,0x44,0x55,0x44,0x44,0x45,0x52,0x10,0x22,0x02,0x25,0x02,0x54,0x0A,0x44,0x00,0x14,0x34,0x34,
+	0x43,0x43,0x44,0x50,0x00,0x50,0x05,0x05,0x08,0x44,0x0A,0x34,0x16,0x22,0x02,0x2B,0x00,0x00,0x18,0x22,0x00,0x08,0x54,0x33,
+	0x43,0x34,0x08,0x43,0x00,0x0A,0x33,0x33,0x43,0x43,0x34,0x00,0x08,0x45,0x00,0x06,0x52,0x22,0x25,0x00,0x08,0x43,0x00,0x0A,
+	0x34,0x55,0x05,0x05,0x44,0x00,0x08,0x34,0x00,0x26,0x44,0x22,0x22,0x24,0x34,0x34,0x34,0x44,0x45,0x50,0x05,0x55,0x54,0x44,
+	0x34,0x44,0x00,0x22,0x25,0x00,0x08,0x43,0x00,0x26,0x44,0x45,0x55,0x05,0x55,0x55,0x55,0x54,0x34,0x34,0x34,0x33,0x44,0x50,
+	0x05,0x05,0x55,0x50,0x55,0x00,0x0A,0x34,0x00,0x22,0x45,0x54,0x44,0x34,0x34,0x44,0x22,0x25,0x43,0x43,0x43,0x44,0x35,0x50,
+	0x05,0x05,0x44,0x00,0x08,0x34,0x00,0x1A,0x52,0x22,0x22,0x22,0x24,0x33,0x43,0x43,0x44,0x50,0x05,0x05,0x44,0x00,0x08,0x43,
+	0x00,0x08,0x42,0x22,0x25,0x44,0x08,0x34,0x00,0x3E,0x42,0x22,0x50,0x05,0x44,0x34,0x55,0x55,0x50,0x52,0x22,0x22,0x22,0x25,
+	0x43,0x43,0x43,0x44,0x50,0x50,0x05,0x44,0x43,0x44,0x34,0x33,0x40,0x00,0x55,0x44,0x44,0x00,0x0A,0x34,0x00,0x0A,0x54,0x44,
+	0x43,0x43,0x42,0x00,0x10,0x22,0x00,0x0C,0x25,0x54,0x44,0x45,0x44,0x44,0x0A,0x43,0x00,0x12,0x34,0x00,0x50,0x05,0x05,0x55,
+	0x44,0x44,0x44,0x00,0x0A,0x34,0x02,0x45,0x16,0x22,0x02,0x2F,0x00,0x00,0x18,0x22,0x00,0x18,0x24,0x34,0x43,0x44,0x34,0x34,
+	0x34,0x44,0x44,0x44,0x43,0x43,0x08,0x44,0x00,0x1A,0x45,0x22,0x22,0x22,0x44,0x34,0x34,0x34,0x44,0x45,0x05,0x00,0x53,0x00,
+	0x08,0x43,0x00,0x28,0x44,0x22,0x22,0x25,0x44,0x34,0x34,0x34,0x55,0x00,0x50,0x55,0x44,0x44,0x44,0x45,0x55,0x22,0x25,0x44,
+	0x08,0x43,0x00,0x0E,0x44,0x50,0x05,0x55,0x45,0x05,0x44,0x00,0x08,0x34,0x00,0x10,0x44,0x50,0x50,0x55,0x54,0x00,0x05,0x44,
+	0x0A,0x34,0x00,0x0E,0x54,0x43,0x43,0x43,0x45,0x22,0x22,0x00,0x08,0x43,0x00,0x08,0x45,0x00,0x50,0x55,0x0A,0x43,0x00,0x1A,
+	0x52,0x22,0x22,0x22,0x25,0x44,0x43,0x43,0x44,0x50,0x50,0x55,0x44,0x00,0x08,0x34,0x00,0x24,0x42,0x22,0x50,0x53,0x43,0x43,
+	0x43,0x44,0x42,0x22,0x00,0x55,0x43,0x44,0x54,0x55,0x55,0x02,0x08,0x22,0x00,0x20,0x44,0x34,0x34,0x34,0x05,0x00,0x55,0x54,
+	0x44,0x43,0x43,0x44,0x20,0x05,0x55,0x44,0x08,0x43,0x00,0x0E,0x44,0x34,0x54,0x44,0x43,0x43,0x45,0x00,0x10,0x22,0x00,0x0C,
+	0x55,0x44,0x45,0x44,0x44,0x44,0x0A,0x34,0x00,0x12,0x45,0x00,0x00,0x55,0x00,0x54,0x45,0x44,0x44,0x00,0x0A,0x43,0x02,0x42,
+	0x16,0x22,0x02,0x2B,0x00,0x00,0x18,0x22,0x00,0x0C,0x25,0x43,0x43,0x34,0x33,0x43,0x08,0x44,0x00,0x26,0x34,0x34,0x34,0x44,
+	0x45,0x45,0x45,0x22,0x22,0x22,0x24,0x34,0x34,0x33,0x44,0x55,0x50,0x55,0x54,0x00,0x08,0x34,0x00,0x28,0x44,0x22,0x22,0x22,
+	0x44,0x34,0x34,0x44,0x45,0x50,0x55,0x54,0x54,0x44,0x34,0x45,0x50,0x22,0x55,0x44,0x08,0x34,0x00,0x0E,0x35,0x55,0x55,0x54,
+	0x55,0x55,0x55,0x00,0x08,0x43,0x00,0x1A,0x34,0x55,0x05,0x55,0x45,0x50,0x55,0x34,0x34,0x43,0x43,0x43,0x44,0x00,0x08,0x34,
+	0x00,0x16,0x44,0x22,0x22,0x53,0x43,0x43,0x43,0x40,0x50,0x55,0x44,0x00,0x08,0x43,0x02,0x44,0x0A,0x22,0x00,0x20,0x43,0x43,
+	0x43,0x44,0x50,0x50,0x05,0x44,0x34,0x34,0x34,0x33,0x52,0x22,0x50,0x44,0x08,0x34,0x00,0x14,0x52,0x22,0x05,0x54,0x44,0x34,
+	0x45,0x55,0x55,0x02,0x08,0x22,0x00,0x2A,0x53,0x43,0x43,0x44,0x50,0x50,0x54,0x44,0x43,0x43,0x43,0x45,0x25,0x55,0x54,0x44,
+	0x43,0x43,0x43,0x44,0x33,0x00,0x0A,0x43,0x02,0x45,0x0E,0x22,0x02,0x25,0x02,0x55,0x0A,0x44,0x0A,0x43,0x00,0x10,0x40,0x05,
+	0x00,0x00,0x55,0x54,0x44,0x44,0x0A,0x43,0x02,0x44,0x02,0x52,0x16,0x22,0x02,0x2F,0x00,0x00,0x1A,0x22,0x00,0x38,0x54,0x43,
+	0x44,0x34,0x43,0x43,0x44,0x44,0x55,0x54,0x43,0x43,0x44,0x54,0x44,0x40,0x22,0x22,0x22,0x54,0x44,0x34,0x34,0x44,0x45,0x55,
+	0x54,0x54,0x08,0x34,0x00,0x28,0x35,0x22,0x22,0x22,0x54,0x43,0x43,0x44,0x45,0x55,0x55,0x54,0x44,0x43,0x43,0x44,0x55,0x22,
+	0x54,0x54,0x08,0x43,0x00,0x0E,0x44,0x55,0x55,0x54,0x55,0x05,0x44,0x00,0x08,0x43,0x00,0x10,0x44,0x55,0x55,0x54,0x55,0x50,
+	0x05,0x44,0x08,0x34,0x0A,0x43,0x00,0x18,0x44,0x22,0x22,0x54,0x34,0x34,0x34,0x55,0x50,0x55,0x54,0x44,0x08,0x34,0x0A,0x22,
+	0x00,0x10,0x54,0x43,0x43,0x44,0x45,0x50,0x54,0x44,0x08,0x34,0x00,0x06,0x52,0x25,0x55,0x00,0x0A,0x43,0x00,0x14,0x52,0x22,
+	0x05,0x55,0x43,0x43,0x45,0x55,0x55,0x02,0x08,0x22,0x00,0x20,0x24,0x34,0x34,0x34,0x55,0x05,0x54,0x44,0x34,0x34,0x34,0x42,
+	0x22,0x55,0x44,0x44,0x08,0x43,0x02,0x34,0x0A,0x43,0x02,0x45,0x0E,0x22,0x00,0x0E,0x25,0x44,0x45,0x44,0x44,0x54,0x44,0x00,
+	0x08,0x34,0x00,0x12,0x33,0x50,0x50,0x05,0x05,0x05,0x54,0x44,0x44,0x00,0x0A,0x34,0x02,0x35,0x18,0x22,0x02,0x2B,0x00,0x00,
+	0x1A,0x22,0x00,0x38,0x54,0x44,0x34,0x33,0x43,0x44,0x45,0x45,0x45,0x54,0x44,0x34,0x44,0x45,0x45,0x55,0x22,0x22,0x00,0x54,
+	0x44,0x43,0x43,0x44,0x45,0x55,0x55,0x44,0x08,0x43,0x00,0x28,0x45,0x22,0x22,0x22,0x25,0x43,0x44,0x34,0x55,0x55,0x54,0x45,
+	0x44,0x44,0x34,0x44,0x55,0x22,0x55,0x44,0x0A,0x34,0x00,0x0E,0x55,0x45,0x45,0x45,0x55,0x54,0x44,0x00,0x08,0x34,0x00,0x0C,
+	0x55,0x54,0x55,0x45,0x05,0x54,0x0A,0x43,0x00,0x2A,0x53,0x43,0x43,0x34,0x34,0x34,0x22,0x22,0x25,0x43,0x43,0x44,0x45,0x55,
+	0x54,0x44,0x34,0x43,0x43,0x43,0x44,0x00,0x0A,0x22,0x00,0x10,0x25,0x34,0x34,0x34,0x55,0x05,0x54,0x44,0x08,0x34,0x00,0x06,
+	0x22,0x25,0x55,0x00,0x08,0x43,0x00,0x16,0x44,0x52,0x22,0x55,0x44,0x44,0x34,0x34,0x55,0x55,0x52,0x00,0x08,0x22,0x00,0x2C,
+	0x24,0x43,0x43,0x44,0x55,0x05,0x54,0x44,0x34,0x34,0x35,0x22,0x22,0x54,0x44,0x44,0x43,0x43,0x43,0x44,0x35,0x44,0x08,0x34,
+	0x02,0x42,0x0E,0x22,0x00,0x0E,0x54,0x44,0x44,0x45,0x44,0x44,0x44,0x00,0x08,0x34,0x00,0x12,0x44,0x50,0x05,0x00,0x50,0x55,
+	0x44,0x44,0x44,0x00,0x0A,0x43,0x02,0x45,0x18,0x22,0x02,0x2F,0x00,0x00,0x1A,0x22,0x00,0x38,0x25,0x44,0x44,0x44,0x43,0x43,
+	0x44,0x44,0x44,0x45,0x55,0x44,0x34,0x44,0x44,0x52,0x22,0x20,0x05,0x54,0x54,0x44,0x34,0x34,0x45,0x55,0x54,0x54,0x08,0x34,
+	0x02,0x32,0x08,0x22,0x00,0x20,0x54,0x33,0x44,0x44,0x55,0x55,0x54,0x44,0x43,0x43,0x44,0x45,0x22,0x54,0x44,0x44,0x08,0x34,
+	0x00,0x0E,0x44,0x44,0x44,0x45,0x54,0x44,0x43,0x00,0x08,0x34,0x08,0x44,0x00,0x06,0x50,0x54,0x44,0x00,0x08,0x34,0x00,0x2A,
+	0x45,0x34,0x34,0x44,0x34,0x34,0x22,0x22,0x22,0x44,0x34,0x34,0x55,0x55,0x55,0x44,0x44,0x33,0x43,0x43,0x45,0x00,0x0C,0x22,
+	0x00,0x0C,0x44,0x34,0x34,0x45,0x55,0x54,0x08,0x43,0x00,0x0A,0x45,0x22,0x24,0x54,0x44,0x00,0x08,0x34,0x00,0x14,0x52,0x22,
+	0x25,0x44,0x44,0x44,0x34,0x45,0x55,0x02,0x0A,0x22,0x00,0x28,0x43,0x43,0x43,0x40,0x55,0x44,0x43,0x43,0x43,0x52,0x22,0x22,
+	0x44,0x44,0x44,0x34,0x34,0x43,0x43,0x45,0x08,0x43,0x02,0x44,0x02,0x42,0x0E,0x22,0x02,0x44,0x02,0x45,0x08,0x44,0x0A,0x43,
+	0x00,0x12,0x34,0x00,0x50,0x05,0x00,0x54,0x44,0x54,0x44,0x00,0x0A,0x34,0x02,0x42,0x18,0x22,0x02,0x2B,0x00,0x00,0x1C,0x22,
+	0x08,0x44,0x00,0x2E,0x34,0x34,0x45,0x55,0x55,0x55,0x54,0x44,0x44,0x45,0x52,0x25,0x05,0x04,0x54,0x44,0x44,0x43,0x44,0x44,
+	0x45,0x54,0x44,0x00,0x08,0x34,0x02,0x42,0x08,0x22,0x00,0x1E,0x25,0x43,0x43,0x44,0x55,0x44,0x44,0x44,0x34,0x34,0x34,0x52,
+	0x22,0x43,0x43,0x00,0x0E,0x34,0x00,0x0A,0x43,0x44,0x54,0x34,0x34,0x00,0x08,0x43,0x00,0x0C,0x34,0x34,0x43,0x44,0x55,0x44,
+	0x0A,0x43,0x00,0x2A,0x40,0x44,0x33,0x34,0x34,0x44,0x22,0x22,0x22,0x25,0x43,0x43,0x45,0x55,0x44,0x44,0x34,0x43,0x43,0x43,
+	0x52,0x00,0x0C,0x22,0x00,0x1C,0x24,0x43,0x43,0x44,0x55,0x44,0x43,0x43,0x43,0x44,0x52,0x22,0x54,0x45,0x08,0x43,0x00,0x16,
+	0x44,0x52,0x22,0x24,0x54,0x44,0x34,0x34,0x34,0x55,0x52,0x00,0x0A,0x22,0x00,0x1C,0x53,0x43,0x44,0x45,0x54,0x44,0x43,0x43,
+	0x44,0x22,0x22,0x22,0x54,0x44,0x0A,0x43,0x00,0x0E,0x42,0x53,0x43,0x43,0x43,0x34,0x52,0x00,0x0C,0x22,0x00,0x0E,0x54,0x45,
+	0x44,0x45,0x44,0x44,0x44,0x00,0x08,0x43,0x00,0x14,0x44,0x45,0x50,0x05,0x50,0x55,0x54,0x44,0x44,0x44,0x0A,0x34,0x1A,0x22,
+	0x02,0x2F,0x00,0x00,0x1C,0x22,0x02,0x54,0x0A,0x44,0x00,0x34,0x55,0x55,0x55,0x50,0x05,0x43,0x44,0x54,0x52,0x50,0x05,0x54,
+	0x54,0x45,0x45,0x44,0x43,0x33,0x44,0x44,0x34,0x44,0x34,0x34,0x34,0x52,0x0A,0x22,0x00,0x0C,0x24,0x33,0x43,0x44,0x44,0x44,
+	0x08,0x34,0x00,0x0A,0x42,0x22,0x54,0x43,0x44,0x00,0x0C,0x34,0x00,0x1E,0x33,0x44,0x54,0x34,0x34,0x33,0x43,0x43,0x43,0x44,
+	0x34,0x34,0x34,0x55,0x44,0x00,0x0A,0x34,0x00,0x0C,0x45,0x24,0x34,0x44,0x34,0x34,0x08,0x22,0x00,0x14,0x54,0x33,0x43,0x44,
+	0x44,0x43,0x43,0x34,0x34,0x34,0x10,0x22,0x00,0x08,0x44,0x43,0x43,0x44,0x08,0x43,0x00,0x1C,0x45,0x25,0x54,0x45,0x44,0x34,
+	0x34,0x43,0x43,0x44,0x22,0x22,0x25,0x44,0x08,0x34,0x02,0x44,0x02,0x52,0x0A,0x22,0x00,0x1C,0x25,0x43,0x43,0x44,0x54,0x44,
+	0x34,0x34,0x52,0x22,0x22,0x22,0x54,0x44,0x0A,0x43,0x00,0x0C,0x52,0x24,0x34,0x43,0x43,0x45,0x08,0x22,0x02,0x25,0x02,0x55,
+	0x0C,0x44,0x02,0x54,0x02,0x44,0x08,0x34,0x00,0x12,0x33,0x40,0x00,0x50,0x00,0x05,0x44,0x54,0x44,0x00,0x0A,0x34,0x02,0x35,
+	0x1A,0x22,0x02,0x20,0x00,0x00,0x1C,0x22,0x02,0x25,0x0A,0x44,0x00,0x32,0x45,0x55,0x50,0x55,0x00,0x54,0x34,0x45,0x55,0x05,
+	0x05,0x45,0x45,0x44,0x44,0x44,0x54,0x44,0x34,0x34,0x33,0x34,0x34,0x34,0x45,0x00,0x0E,0x22,0x02,0x54,0x08,0x34,0x00,0x12,
+	0x33,0x45,0x55,0x34,0x52,0x22,0x22,0x53,0x34,0x00,0x0C,0x43,0x00,0x0A,0x44,0x34,0x22,0x54,0x34,0x00,0x08,0x43,0x00,0x0A,
+	0x34,0x34,0x33,0x44,0x55,0x00,0x0C,0x34,0x00,0x0C,0x42,0x25,0x43,0x34,0x34,0x45,0x0A,0x22,0x00,0x12,0x54,0x34,0x33,0x43,
+	0x43,0x44,0x34,0x34,0x52,0x00,0x10,0x22,0x02,0x25,0x02,0x44,0x0A,0x34,0x00,0x1C,0x35,0x52,0x25,0x44,0x44,0x54,0x43,0x43,
+	0x34,0x34,0x34,0x22,0x22,0x24,0x0C,0x43,0x02,0x45,0x0C,0x22,0x00,0x0E,0x54,0x34,0x33,0x44,0x34,0x34,0x42,0x00,0x08,0x22,
+	0x02,0x54,0x0C,0x34,0x00,0x0C,0x52,0x25,0x33,0x43,0x43,0x42,0x08,0x22,0x02,0x25,0x02,0x45,0x08,0x44,0x00,0x08,0x54,0x44,
+	0x44,0x44,0x08,0x34,0x00,0x12,0x44,0x55,0x05,0x05,0x05,0x55,0x44,0x44,0x44,0x00,0x0A,0x43,0x02,0x42,0x1A,0x22,0x02,0x2F,
+	0x00,0x00,0x1C,0x22,0x02,0x25,0x0A,0x44,0x00,0x32,0x55,0x50,0x05,0x00,0x05,0x04,0x44,0x44,0x50,0x50,0x55,0x45,0x44,0x44,
+	0x45,0x45,0x44,0x05,0x44,0x43,0x44,0x44,0x43,0x44,0x52,0x00,0x10,0x22,0x00,0x42,0x54,0x34,0x34,0x43,0x45,0x22,0x22,0x54,
+	0x52,0x22,0x22,0x25,0x44,0x33,0x43,0x43,0x43,0x44,0x44,0x44,0x45,0x22,0x25,0x44,0x33,0x43,0x43,0x43,0x44,0x44,0x45,0x54,
+	0x25,0x00,0x0C,0x54,0x00,0x0C,0x52,0x22,0x25,0x44,0x34,0x42,0x0C,0x22,0x00,0x0E,0x54,0x44,0x34,0x34,0x43,0x34,0x42,0x00,
+	0x14,0x22,0x00,0x28,0x25,0x44,0x34,0x43,0x43,0x44,0x22,0x22,0x25,0x54,0x44,0x44,0x43,0x43,0x44,0x34,0x35,0x22,0x22,0x25,
+	0x0C,0x54,0x02,0x52,0x0E,0x22,0x00,0x0A,0x44,0x34,0x43,0x43,0x55,0x00,0x0A,0x22,0x02,0x55,0x0C,0x45,0x00,0x0A,0x22,0x22,
+	0x54,0x43,0x44,0x00,0x0A,0x22,0x00,0x08,0x25,0x45,0x44,0x54,0x0C,0x44,0x0A,0x34,0x00,0x10,0x50,0x05,0x00,0x50,0x55,0x44,
+	0x44,0x44,0x0A,0x34,0x02,0x52,0x1A,0x22,0x02,0x27,0x00,0x00,0x1E,0x22,0x0A,0x44,0x00,0x14,0x45,0x05,0x00,0x50,0x50,0x00,
+	0x44,0x45,0x50,0x05,0x08,0x54,0x00,0x10,0x44,0x44,0x45,0x52,0x22,0x22,0x55,0x55,0x1A,0x22,0x02,0x55,0x0A,0x22,0x00,0x20,
+	0x52,0x22,0x22,0x22,0x24,0x43,0x43,0x34,0x34,0x34,0x54,0x55,0x22,0x22,0x22,0x24,0x08,0x43,0x00,0x06,0x44,0x54,0x52,0x00,
+	0x16,0x22,0x02,0x25,0x14,0x22,0x02,0x25,0x02,0x55,0x1E,0x22,0x02,0x25,0x02,0x52,0x08,0x22,0x00,0x12,0x25,0x44,0x45,0x45,
+	0x43,0x43,0x34,0x34,0x35,0x00,0x24,0x22,0x02,0x25,0x02,0x52,0x22,0x22,0x02,0x52,0x0C,0x22,0x00,0x12,0x25,0x45,0x44,0x44,
+	0x44,0x54,0x44,0x44,0x44,0x00,0x0A,0x34,0x00,0x12,0x45,0x05,0x00,0x50,0x55,0x54,0x44,0x44,0x44,0x00,0x0A,0x34,0x1C,0x22,
+	0x02,0x2F,0x00,0x00,0x1E,0x22,0x02,0x54,0x0A,0x44,0x00,0x20,0x05,0x05,0x05,0x00,0x50,0x54,0x45,0x50,0x55,0x45,0x44,0x44,
+	0x44,0x54,0x54,0x55,0x3A,0x22,0x00,0x0E,0x44,0x34,0x43,0x43,0x45,0x44,0x45,0x00,0x08,0x22,0x02,0x44,0x08,0x34,0x02,0x45,
+	0x02,0x52,0x5A,0x22,0x00,0x12,0x25,0x45,0x44,0x44,0x33,0x43,0x43,0x43,0x45,0x00,0x58,0x22,0x00,0x06,0x25,0x54,0x45,0x00,
+	0x08,0x44,0x00,0x06,0x45,0x44,0x44,0x00,0x08,0x34,0x00,0x10,0x45,0x55,0x00,0x50,0x05,0x54,0x45,0x44,0x0A,0x43,0x02,0x45,
+	0x1C,0x22,0x02,0x20,0x00,0x00,0x1E,0x22,0x02,0x25,0x0A,0x44,0x00,0x20,0x50,0x05,0x00,0x50,0x05,0x55,0x35,0x05,0x55,0x44,
+	0x44,0x45,0x44,0x44,0x44,0x45,0x3A,0x22,0x00,0x0E,0x25,0x33,0x43,0x43,0x34,0x54,0x52,0x00,0x08,0x22,0x00,0x0C,0x25,0x34,
+	0x34,0x34,0x44,0x44,0x5C,0x22,0x00,0x12,0x25,0x44,0x45,0x44,0x43,0x43,0x44,0x34,0x35,0x00,0x5A,0x22,0x02,0x45,0x08,0x44,
+	0x00,0x06,0x54,0x44,0x44,0x00,0x08,0x34,0x00,0x1E,0x33,0x50,0x00,0x55,0x05,0x55,0x44,0x44,0x44,0x43,0x43,0x44,0x34,0x34,
+	0x42,0x00,0x1C,0x22,0x02,0x2F,0x00,0x00,0x1E,0x22,0x02,0x25,0x0A,0x44,0x00,0x12,0x45,0x50,0x05,0x00,0x50,0x00,0x05,0x55,
+	0x54,0x00,0x08,0x44,0x00,0x06,0x54,0x54,0x52,0x00,0x3C,0x22,0x00,0x0C,0x54,0x43,0x43,0x44,0x45,0x42,0x0A,0x22,0x00,0x0A,
+	0x54,0x34,0x34,0x34,0x45,0x00,0x5C,0x22,0x00,0x08,0x25,0x54,0x44,0x44,0x08,0x43,0x02,0x45,0x5A,0x22,0x00,0x06,0x54,0x54,
+	0x54,0x00,0x08,0x44,0x0A,0x43,0x00,0x10,0x44,0x05,0x05,0x00,0x05,0x55,0x44,0x44,0x0A,0x43,0x02,0x44,0x02,0x52,0x1C,0x22,
+	0x02,0x23,0x00,0x00,0x20,0x22,0x02,0x54,0x08,0x44,0x00,0x14,0x45,0x05,0x00,0x55,0x05,0x05,0x05,0x54,0x45,0x45,0x08,0x44,
+	0x02,0x55,0x02,0x52,0x3C,0x22,0x00,0x0C,0x25,0x44,0x34,0x34,0x44,0x52,0x0A,0x22,0x00,0x0A,0x25,0x34,0x34,0x34,0x44,0x00,
+	0x5C,0x22,0x00,0x08,0x25,0x45,0x44,0x44,0x08,0x34,0x02,0x42,0x5A,0x22,0x00,0x06,0x55,0x44,0x45,0x00,0x0A,0x44,0x08,0x34,
+	0x00,0x12,0x35,0x00,0x50,0x50,0x55,0x44,0x54,0x44,0x44,0x00,0x0A,0x34,0x1E,0x22,0x02,0x2F,0x00,0x00,0x20,0x22,0x02,0x24,
+	0x08,0x44,0x00,0x1E,0x45,0x50,0x55,0x00,0x00,0x50,0x55,0x54,0x54,0x44,0x43,0x44,0x54,0x45,0x55,0x00,0x40,0x22,0x00,0x0A,
+	0x54,0x34,0x34,0x44,0x52,0x00,0x0C,0x22,0x00,0x08,0x54,0x34,0x34,0x45,0x5C,0x22,0x00,0x08,0x25,0x54,0x44,0x44,0x08,0x43,
+	0x02,0x42,0x5A,0x22,0x00,0x0E,0x24,0x54,0x54,0x44,0x44,0x45,0x44,0x00,0x0A,0x43,0x00,0x10,0x45,0x05,0x05,0x00,0x55,0x54,
+	0x44,0x44,0x0A,0x43,0x02,0x45,0x1E,0x22,0x02,0x20,0x00,0x00,0x20,0x22,0x02,0x25,0x0A,0x44,0x00,0x1C,0x50,0x00,0x50,0x50,
+	0x05,0x54,0x54,0x45,0x45,0x44,0x34,0x45,0x55,0x55,0x40,0x22,0x00,0x0A,0x25,0x44,0x33,0x45,0x52,0x00,0x0C,0x22,0x00,0x08,
+	0x25,0x43,0x43,0x45,0x5C,0x22,0x00,0x08,0x25,0x54,0x44,0x44,0x08,0x34,0x02,0x42,0x5A,0x22,0x02,0x54,0x02,0x54,0x0A,0x44,
+	0x0A,0x34,0x00,0x10,0x50,0x05,0x00,0x55,0x54,0x44,0x44,0x44,0x0A,0x43,0x02,0x52,0x1E,0x22,0x02,0x2F,0x00,0x00,0x22,0x22,
+	0x0A,0x44,0x00,0x1C,0x45,0x05,0x05,0x00,0x55,0x45,0x44,0x54,0x44,0x44,0x44,0x45,0x55,0x52,0x42,0x22,0x00,0x08,0x53,0x44,
+	0x44,0x52,0x0E,0x22,0x00,0x06,0x44,0x43,0x45,0x00,0x5E,0x22,0x00,0x10,0x44,0x44,0x53,0x43,0x44,0x34,0x34,0x42,0x5A,0x22,
+	0x00,0x0C,0x25,0x44,0x45,0x44,0x44,0x44,0x0A,0x43,0x00,0x0A,0x44,0x50,0x50,0x05,0x55,0x00,0x08,0x44,0x0A,0x34,0x02,0x52,
+	0x1E,0x22,0x02,0x20,0x00,0x00,0x20,0x22,0x02,0x25,0x0A,0x44,0x00,0x1C,0x45,0x50,0x50,0x55,0x55,0x54,0x54,0x45,0x45,0x44,
+	0x44,0x55,0x50,0x52,0x42,0x22,0x00,0x06,0x25,0x33,0x44,0x00,0x10,0x22,0x00,0x06,0x24,0x44,0x45,0x00,0x5E,0x22,0x00,0x06,
+	0x54,0x44,0x44,0x00,0x08,0x34,0x02,0x52,0x5A,0x22,0x02,0x25,0x02,0x55,0x0A,0x44,0x0A,0x34,0x00,0x08,0x00,0x05,0x05,0x55,
+	0x08,0x44,0x08,0x34,0x02,0x35,0x02,0x52,0x1E,0x22,0x02,0x2F,0x00,0x00,0x20,0x22,0x02,0x25,0x02,0x45,0x0A,0x44,0x00,0x1A,
+	0x50,0x00,0x05,0x55,0x44,0x44,0x54,0x44,0x44,0x44,0x45,0x05,0x02,0x00,0x44,0x22,0x02,0x54,0x02,0x44,0x12,0x22,0x02,0x43,
+	0x02,0x45,0x5E,0x22,0x00,0x06,0x44,0x54,0x44,0x00,0x08,0x34,0x02,0x52,0x5A,0x22,0x00,0x0C,0x25,0x44,0x45,0x44,0x44,0x44,
+	0x0A,0x43,0x00,0x10,0x45,0x50,0x00,0x55,0x54,0x44,0x44,0x44,0x0A,0x43,0x02,0x45,0x02,0x02,0x1E,0x22,0x02,0x20,0x00,0x00,
+	0x20,0x22,0x02,0x24,0x0C,0x44,0x00,0x1A,0x55,0x05,0x55,0x44,0x54,0x45,0x45,0x45,0x44,0x44,0x45,0x00,0x52,0x00,0x44,0x22,
+	0x02,0x24,0x02,0x44,0x12,0x22,0x02,0x54,0x02,0x32,0x5E,0x22,0x00,0x06,0x54,0x44,0x44,0x00,0x08,0x34,0x5E,0x22,0x02,0x45,
+	0x08,0x44,0x0A,0x34,0x00,0x10,0x40,0x05,0x05,0x55,0x45,0x44,0x44,0x44,0x0A,0x34,0x02,0x40,0x02,0x50,0x1E,0x22,0x02,0x2F,
+	0x00,0x00,0x20,0x22,0x02,0x54,0x02,0x54,0x0A,0x44,0x00,0x0C,0x45,0x55,0x45,0x45,0x45,0x54,0x0A,0x44,0x02,0x05,0x02,0x02,
+	0x46,0x22,0x02,0x44,0x12,0x22,0x02,0x25,0x02,0x42,0x5E,0x22,0x00,0x0E,0x54,0x44,0x43,0x43,0x43,0x44,0x34,0x00,0x5E,0x22,
+	0x00,0x22,0x54,0x45,0x44,0x44,0x44,0x43,0x44,0x34,0x34,0x34,0x45,0x05,0x05,0x54,0x44,0x44,0x44,0x00,0x0C,0x43,0x02,0x55,
+	0x02,0x00,0x1E,0x22,0x02,0x2B,0x00,0x00,0x20,0x22,0x02,0x54,0x02,0x45,0x0A,0x44,0x00,0x0C,0x45,0x54,0x54,0x54,0x44,0x45,
+	0x0A,0x44,0x02,0x50,0x02,0x52,0xBC,0x22,0x00,0x0E,0x54,0x44,0x34,0x34,0x34,0x33,0x44,0x00,0x5E,0x22,0x00,0x08,0x55,0x44,
+	0x54,0x44,0x0C,0x34,0x00,0x0E,0x55,0x55,0x00,0x55,0x54,0x44,0x44,0x00,0x0A,0x43,0x00,0x08,0x44,0x55,0x55,0x02,0x1C,0x22,
+	0x02,0x2F,0x00,0x00,0x20,0x22,0x02,0x54,0x02,0x54,0x20,0x44,0x02,0x40,0x02,0x02,0xBC,0x22,0x00,0x0E,0x54,0x44,0x44,0x34,
+	0x34,0x34,0x44,0x00,0x5E,0x22,0x00,0x08,0x54,0x45,0x44,0x44,0x0C,0x43,0x00,0x0C,0x45,0x55,0x55,0x54,0x44,0x44,0x0E,0x43,
+	0x00,0x06,0x55,0x55,0x02,0x00,0x1C,0x22,0x02,0x20,0x00,0x00,0x1E,0x22,0x02,0x25,0x24,0x44,0x02,0x45,0xBE,0x22,0x02,0x44,
+	0x0A,0x43,0x02,0x44,0x5E,0x22,0x00,0x06,0x24,0x44,0x44,0x00,0x0E,0x34,0x00,0x0C,0x44,0x44,0x55,0x54,0x44,0x44,0x0E,0x34,
+	0x00,0x06,0x44,0x44,0x52,0x00,0x1C,0x22,0x02,0x2F,0x00,0x00,0x20,0x22,0x26,0x44,0xBE,0x22,0x02,0x44,0x0A,0x34,0x02,0x35,
+	0x5E,0x22,0x00,0x0A,0x24,0x43,0x43,0x43,0x44,0x00,0x0E,0x34,0x02,0x42,0x02,0x54,0x08,0x43,0x02,0x44,0x0C,0x34,0x02,0x52,
+	0x1C,0x22,0x02,0x20,0x00,0x00,0x22,0x22,0x00,0x22,0x52,0x22,0x52,0x25,0x22,0x52,0x22,0x25,0x22,0x25,0x22,0x22,0x52,0x22,
+	0x52,0x22,0x25,0x00,0xC0,0x22,0x0C,0x25,0x62,0x22,0x0E,0x52,0x08,0x25,0x00,0x06,0x22,0x25,0x22,0x00,0x0A,0x52,0x08,0x25,
+	0x20,0x22,0x02,0x2F,0x00,0x01,0x00,0x00
+};
+
 const uint8_t ft2AboutLogoBMP[23172] =
 {
 	0x42,0x4D,0x84,0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,0x03,0x00,0x00,0x28,0x00,0x00,0x00,0xC1,0x01,0x00,0x00,0x4B,0x00,
--- a/src/helpdata/FT2.HLP
+++ b/src/helpdata/FT2.HLP
@@ -9,7 +9,7 @@
 >- 12-Point Volume- & Panning Envelope.
 >- Multisamples, up to 16 samples/instrument.
 >- 128 instruments.
->- "Unlimited" sample length. (1GB per sample in this clone)
+>- "Unlimited" sample length.
 >- 8 octaves.
 >- Variable pattern length.
 >- Built in sampler/sample editor.
@@ -34,6 +34,10 @@
 >- Scream Tracker 2 modules. (STM)
 >- DIGI Booster (non-Pro) modules. (DIGI)
 
+@X040@C001Abysmal (super broken) module support:
+>@X060@C002
+>- Impulse Tracker
+
 @X040@C001Samples:
 >@X060@C002
 >- Gravis Ultrasound Patches, PAT.
@@ -41,6 +45,7 @@
 >- WAV files.
 >- Amiga IFF.
 >- Apple AIFF.
+>- Super Nintendo BRR files.
 
 @X040@C001FT2 introduces several new file formats:
 >@X060@C002
@@ -792,10 +797,11 @@
 >
 >@X040@C001Imprecise BPM (FT2):
 >@X060@C002
-The BPM precision in original FT2 is not exact. Tick this box to use
-the same (poor) BPM precision that original FT2 uses. It will be
-a fraction off, but the WAV output will be the same length as from FT2.
-This settings only affects WAV export, and not tracker playback.
+The song BPM precision in original FT2 is not exact. Tick this box
+to use the same imprecise BPM as original FT2. It will be a fraction
+off, but the WAV output will have the same length as the output
+from FT2. This setting only affects WAV export, and not tracker
+playback.
 
 @X020@C001Configuration:
 >
@@ -809,13 +815,22 @@
 >@X040@C001Interpolation:
 >@X060@C002
 Selects what type of resampling interpolation to use.
-If you want to have an authentic FT2 sound, select "linear".
-If you want a good trade-off between quality and muddiness for more lo-fi samples,
-select "Cubic spline".
-However, if you mainly use hi-fi samples (or play XMs with hi-fi samples), then pick
-any of the two sinc options for the most clear sound. Keep in mind that these will
-make XMs with lo-fi samples sound very muddy, though! 
-Tip: Play around with the different options...
+>
+>For an authentic FT2 sound, select "Linear (FT2)". This is a quite bad interpolator,
+so be prepared for low fidelity.
+>
+>For a good trade-off between quality and "fun listening" for lo-fi samples,
+you may select "Cubic (4 point)". Or select "Cubic (6 point)" if you want just
+a tad bit more treble, but with slightly more filtered lo-fi samples as a trade-off.
+>
+>If you mainly use hi-fi samples (or play XMs with hi-fi samples), then pick
+any of the two "Sinc" options for the most clear sound. Keep in mind that these will
+make XMs with lo-fi samples sound very muddy, though!
+>
+>Sinc (16 point) is the best option in terms of clarity, as long as you use high-quality
+samples (sampled at 44.1kHz, for example).
+>
+>Tip: Play around with the different options...
 
 >@X040@C001Volume ramping:
 >@X060@C002
--- a/src/helpdata/ft2_help_data.h
+++ b/src/helpdata/ft2_help_data.h
@@ -3,9 +3,9 @@
 
 #include <stdint.h>
 
-#define HELP_DATA_LEN 28091
+#define HELP_DATA_LEN 28502
 
-const uint8_t helpData[28091] =
+const uint8_t helpData[28502] =
 {
 	0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
@@ -38,2316 +38,2351 @@
 	0x70,0x20,0x74,0x6F,0x20,0x31,0x36,0x20,0x73,0x61,0x6D,0x70,
 	0x6C,0x65,0x73,0x2F,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
 	0x6E,0x74,0x2E,0x13,0x3E,0x2D,0x20,0x31,0x32,0x38,0x20,0x69,
-	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x2E,0x3C,
+	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x2E,0x1D,
 	0x3E,0x2D,0x20,0x22,0x55,0x6E,0x6C,0x69,0x6D,0x69,0x74,0x65,
 	0x64,0x22,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x6C,0x65,
-	0x6E,0x67,0x74,0x68,0x2E,0x20,0x28,0x31,0x47,0x42,0x20,0x70,
-	0x65,0x72,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x69,0x6E,
-	0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x29,
-	0x0D,0x3E,0x2D,0x20,0x38,0x20,0x6F,0x63,0x74,0x61,0x76,0x65,
-	0x73,0x2E,0x1B,0x3E,0x2D,0x20,0x56,0x61,0x72,0x69,0x61,0x62,
-	0x6C,0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,
-	0x65,0x6E,0x67,0x74,0x68,0x2E,0x22,0x3E,0x2D,0x20,0x42,0x75,
-	0x69,0x6C,0x74,0x20,0x69,0x6E,0x20,0x73,0x61,0x6D,0x70,0x6C,
-	0x65,0x72,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x65,0x64,
-	0x69,0x74,0x6F,0x72,0x2E,0x16,0x3E,0x2D,0x20,0x55,0x70,0x20,
-	0x74,0x6F,0x20,0x32,0x35,0x36,0x20,0x70,0x61,0x74,0x74,0x65,
-	0x72,0x6E,0x73,0x2E,0x19,0x3E,0x2D,0x20,0x53,0x6F,0x6E,0x67,
-	0x20,0x6C,0x65,0x6E,0x67,0x74,0x68,0x20,0x75,0x70,0x20,0x74,
-	0x6F,0x20,0x32,0x35,0x36,0x2E,0x25,0x3E,0x2D,0x20,0x4E,0x65,
-	0x77,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2F,0x70,0x61,0x6E,
-	0x6E,0x69,0x6E,0x67,0x2F,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,
-	0x20,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x2E,0x0F,0x3E,0x2D,0x20,
-	0x53,0x6F,0x6E,0x67,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x2E,
-	0x19,0x3E,0x2D,0x20,0x46,0x75,0x6C,0x6C,0x20,0x73,0x63,0x72,
-	0x65,0x65,0x6E,0x20,0x65,0x64,0x69,0x74,0x20,0x6D,0x6F,0x64,
-	0x65,0x2E,0x1F,0x3E,0x2D,0x20,0x49,0x6D,0x70,0x72,0x6F,0x76,
-	0x65,0x64,0x20,0x65,0x64,0x69,0x74,0x69,0x6E,0x67,0x20,0x66,
-	0x61,0x63,0x69,0x6C,0x69,0x74,0x69,0x65,0x73,0x2E,0x00,0x3C,
-	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x68,
-	0x65,0x20,0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x20,
-	0x73,0x75,0x70,0x70,0x6F,0x72,0x74,0x73,0x20,0x74,0x68,0x65,
-	0x20,0x66,0x6F,0x6C,0x6C,0x6F,0x77,0x69,0x6E,0x67,0x20,0x66,
-	0x69,0x6C,0x65,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x73,0x3A,
-	0x00,0x12,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x4D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,
-	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x32,0x3E,0x2D,0x20,
-	0x53,0x74,0x61,0x6E,0x64,0x61,0x72,0x64,0x20,0x6D,0x6F,0x64,
-	0x75,0x6C,0x65,0x73,0x20,0x28,0x31,0x35,0x2F,0x33,0x31,0x20,
-	0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x29,0x2E,0x20,0x28,0x4D,
-	0x4F,0x44,0x2C,0x4E,0x53,0x54,0x2C,0x53,0x54,0x4B,0x29,0x23,
-	0x3E,0x2D,0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61,0x63,0x6B,
-	0x65,0x72,0x20,0x49,0x49,0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,
-	0x73,0x2E,0x20,0x28,0x58,0x4D,0x2C,0x4D,0x4F,0x44,0x29,0x21,
-	0x3E,0x2D,0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61,0x63,0x6B,
-	0x65,0x72,0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x2E,0x20,
-	0x28,0x4D,0x4F,0x44,0x2F,0x46,0x53,0x54,0x29,0x00,0x32,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x45,0x78,0x70,
-	0x65,0x72,0x69,0x6D,0x65,0x6E,0x74,0x61,0x6C,0x20,0x28,0x69,
-	0x6D,0x70,0x65,0x72,0x66,0x65,0x63,0x74,0x29,0x20,0x6D,0x6F,
-	0x64,0x75,0x6C,0x65,0x20,0x73,0x75,0x70,0x70,0x6F,0x72,0x74,
+	0x6E,0x67,0x74,0x68,0x2E,0x0D,0x3E,0x2D,0x20,0x38,0x20,0x6F,
+	0x63,0x74,0x61,0x76,0x65,0x73,0x2E,0x1B,0x3E,0x2D,0x20,0x56,
+	0x61,0x72,0x69,0x61,0x62,0x6C,0x65,0x20,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x20,0x6C,0x65,0x6E,0x67,0x74,0x68,0x2E,0x22,
+	0x3E,0x2D,0x20,0x42,0x75,0x69,0x6C,0x74,0x20,0x69,0x6E,0x20,
+	0x73,0x61,0x6D,0x70,0x6C,0x65,0x72,0x2F,0x73,0x61,0x6D,0x70,
+	0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x2E,0x16,0x3E,
+	0x2D,0x20,0x55,0x70,0x20,0x74,0x6F,0x20,0x32,0x35,0x36,0x20,
+	0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x73,0x2E,0x19,0x3E,0x2D,
+	0x20,0x53,0x6F,0x6E,0x67,0x20,0x6C,0x65,0x6E,0x67,0x74,0x68,
+	0x20,0x75,0x70,0x20,0x74,0x6F,0x20,0x32,0x35,0x36,0x2E,0x25,
+	0x3E,0x2D,0x20,0x4E,0x65,0x77,0x20,0x76,0x6F,0x6C,0x75,0x6D,
+	0x65,0x2F,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x2F,0x76,0x69,
+	0x62,0x72,0x61,0x74,0x6F,0x20,0x63,0x6F,0x6C,0x75,0x6D,0x6E,
+	0x2E,0x0F,0x3E,0x2D,0x20,0x53,0x6F,0x6E,0x67,0x20,0x65,0x64,
+	0x69,0x74,0x6F,0x72,0x2E,0x19,0x3E,0x2D,0x20,0x46,0x75,0x6C,
+	0x6C,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x65,0x64,0x69,
+	0x74,0x20,0x6D,0x6F,0x64,0x65,0x2E,0x1F,0x3E,0x2D,0x20,0x49,
+	0x6D,0x70,0x72,0x6F,0x76,0x65,0x64,0x20,0x65,0x64,0x69,0x74,
+	0x69,0x6E,0x67,0x20,0x66,0x61,0x63,0x69,0x6C,0x69,0x74,0x69,
+	0x65,0x73,0x2E,0x00,0x3C,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x54,0x68,0x65,0x20,0x46,0x54,0x32,0x20,0x63,
+	0x6C,0x6F,0x6E,0x65,0x20,0x73,0x75,0x70,0x70,0x6F,0x72,0x74,
+	0x73,0x20,0x74,0x68,0x65,0x20,0x66,0x6F,0x6C,0x6C,0x6F,0x77,
+	0x69,0x6E,0x67,0x20,0x66,0x69,0x6C,0x65,0x20,0x66,0x6F,0x72,
+	0x6D,0x61,0x74,0x73,0x3A,0x00,0x12,0x40,0x58,0x30,0x34,0x30,
+	0x40,0x43,0x30,0x30,0x31,0x4D,0x6F,0x64,0x75,0x6C,0x65,0x73,
 	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x22,0x3E,0x2D,0x20,0x53,0x63,0x72,0x65,0x61,0x6D,0x20,
-	0x54,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x33,0x20,0x6D,0x6F,
-	0x64,0x75,0x6C,0x65,0x73,0x2E,0x20,0x28,0x53,0x33,0x4D,0x29,
-	0x22,0x3E,0x2D,0x20,0x53,0x63,0x72,0x65,0x61,0x6D,0x20,0x54,
-	0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x32,0x20,0x6D,0x6F,0x64,
-	0x75,0x6C,0x65,0x73,0x2E,0x20,0x28,0x53,0x54,0x4D,0x29,0x29,
-	0x3E,0x2D,0x20,0x44,0x49,0x47,0x49,0x20,0x42,0x6F,0x6F,0x73,
-	0x74,0x65,0x72,0x20,0x28,0x6E,0x6F,0x6E,0x2D,0x50,0x72,0x6F,
-	0x29,0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x2E,0x20,0x28,
-	0x44,0x49,0x47,0x49,0x29,0x00,0x12,0x40,0x58,0x30,0x34,0x30,
-	0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,0x65,0x73,
-	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x22,0x3E,0x2D,0x20,0x47,0x72,0x61,0x76,0x69,0x73,0x20,
-	0x55,0x6C,0x74,0x72,0x61,0x73,0x6F,0x75,0x6E,0x64,0x20,0x50,
-	0x61,0x74,0x63,0x68,0x65,0x73,0x2C,0x20,0x50,0x41,0x54,0x2E,
-	0x33,0x3E,0x2D,0x20,0x53,0x4D,0x50,0x2F,0x53,0x41,0x4D,0x2F,
-	0x52,0x41,0x57,0x2F,0x53,0x4E,0x44,0x20,0x64,0x61,0x74,0x61,
-	0x20,0x66,0x69,0x6C,0x65,0x73,0x2C,0x20,0x73,0x69,0x67,0x6E,
-	0x65,0x64,0x20,0x61,0x6E,0x64,0x20,0x75,0x6E,0x73,0x69,0x67,
-	0x6E,0x65,0x64,0x2E,0x0D,0x3E,0x2D,0x20,0x57,0x41,0x56,0x20,
-	0x66,0x69,0x6C,0x65,0x73,0x2E,0x0D,0x3E,0x2D,0x20,0x41,0x6D,
-	0x69,0x67,0x61,0x20,0x49,0x46,0x46,0x2E,0x0E,0x3E,0x2D,0x20,
-	0x41,0x70,0x70,0x6C,0x65,0x20,0x41,0x49,0x46,0x46,0x2E,0x00,
-	0x32,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,
-	0x54,0x32,0x20,0x69,0x6E,0x74,0x72,0x6F,0x64,0x75,0x63,0x65,
-	0x73,0x20,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x6E,0x65,
-	0x77,0x20,0x66,0x69,0x6C,0x65,0x20,0x66,0x6F,0x72,0x6D,0x61,
-	0x74,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x1C,0x3E,0x2D,0x20,0x58,0x4D,0x20,0x20,0x40,
+	0x32,0x32,0x3E,0x2D,0x20,0x53,0x74,0x61,0x6E,0x64,0x61,0x72,
+	0x64,0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x20,0x28,0x31,
+	0x35,0x2F,0x33,0x31,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,
+	0x29,0x2E,0x20,0x28,0x4D,0x4F,0x44,0x2C,0x4E,0x53,0x54,0x2C,
+	0x53,0x54,0x4B,0x29,0x23,0x3E,0x2D,0x20,0x46,0x61,0x73,0x74,
+	0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x49,0x49,0x20,0x6D,
+	0x6F,0x64,0x75,0x6C,0x65,0x73,0x2E,0x20,0x28,0x58,0x4D,0x2C,
+	0x4D,0x4F,0x44,0x29,0x21,0x3E,0x2D,0x20,0x46,0x61,0x73,0x74,
+	0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x6D,0x6F,0x64,0x75,
+	0x6C,0x65,0x73,0x2E,0x20,0x28,0x4D,0x4F,0x44,0x2F,0x46,0x53,
+	0x54,0x29,0x00,0x32,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x45,0x78,0x70,0x65,0x72,0x69,0x6D,0x65,0x6E,0x74,
+	0x61,0x6C,0x20,0x28,0x69,0x6D,0x70,0x65,0x72,0x66,0x65,0x63,
+	0x74,0x29,0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x20,0x73,0x75,
+	0x70,0x70,0x6F,0x72,0x74,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
+	0x30,0x40,0x43,0x30,0x30,0x32,0x22,0x3E,0x2D,0x20,0x53,0x63,
+	0x72,0x65,0x61,0x6D,0x20,0x54,0x72,0x61,0x63,0x6B,0x65,0x72,
+	0x20,0x33,0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x2E,0x20,
+	0x28,0x53,0x33,0x4D,0x29,0x22,0x3E,0x2D,0x20,0x53,0x63,0x72,
+	0x65,0x61,0x6D,0x20,0x54,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,
+	0x32,0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x73,0x2E,0x20,0x28,
+	0x53,0x54,0x4D,0x29,0x29,0x3E,0x2D,0x20,0x44,0x49,0x47,0x49,
+	0x20,0x42,0x6F,0x6F,0x73,0x74,0x65,0x72,0x20,0x28,0x6E,0x6F,
+	0x6E,0x2D,0x50,0x72,0x6F,0x29,0x20,0x6D,0x6F,0x64,0x75,0x6C,
+	0x65,0x73,0x2E,0x20,0x28,0x44,0x49,0x47,0x49,0x29,0x00,0x30,
+	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x62,
+	0x79,0x73,0x6D,0x61,0x6C,0x20,0x28,0x73,0x75,0x70,0x65,0x72,
+	0x20,0x62,0x72,0x6F,0x6B,0x65,0x6E,0x29,0x20,0x6D,0x6F,0x64,
+	0x75,0x6C,0x65,0x20,0x73,0x75,0x70,0x70,0x6F,0x72,0x74,0x3A,
+	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
+	0x12,0x3E,0x2D,0x20,0x49,0x6D,0x70,0x75,0x6C,0x73,0x65,0x20,
+	0x54,0x72,0x61,0x63,0x6B,0x65,0x72,0x00,0x12,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,
+	0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x22,0x3E,0x2D,0x20,0x47,0x72,0x61,0x76,0x69,
+	0x73,0x20,0x55,0x6C,0x74,0x72,0x61,0x73,0x6F,0x75,0x6E,0x64,
+	0x20,0x50,0x61,0x74,0x63,0x68,0x65,0x73,0x2C,0x20,0x50,0x41,
+	0x54,0x2E,0x33,0x3E,0x2D,0x20,0x53,0x4D,0x50,0x2F,0x53,0x41,
+	0x4D,0x2F,0x52,0x41,0x57,0x2F,0x53,0x4E,0x44,0x20,0x64,0x61,
+	0x74,0x61,0x20,0x66,0x69,0x6C,0x65,0x73,0x2C,0x20,0x73,0x69,
+	0x67,0x6E,0x65,0x64,0x20,0x61,0x6E,0x64,0x20,0x75,0x6E,0x73,
+	0x69,0x67,0x6E,0x65,0x64,0x2E,0x0D,0x3E,0x2D,0x20,0x57,0x41,
+	0x56,0x20,0x66,0x69,0x6C,0x65,0x73,0x2E,0x0D,0x3E,0x2D,0x20,
+	0x41,0x6D,0x69,0x67,0x61,0x20,0x49,0x46,0x46,0x2E,0x0E,0x3E,
+	0x2D,0x20,0x41,0x70,0x70,0x6C,0x65,0x20,0x41,0x49,0x46,0x46,
+	0x2E,0x1C,0x3E,0x2D,0x20,0x53,0x75,0x70,0x65,0x72,0x20,0x4E,
+	0x69,0x6E,0x74,0x65,0x6E,0x64,0x6F,0x20,0x42,0x52,0x52,0x20,
+	0x66,0x69,0x6C,0x65,0x73,0x2E,0x00,0x32,0x40,0x58,0x30,0x34,
+	0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x54,0x32,0x20,0x69,0x6E,
+	0x74,0x72,0x6F,0x64,0x75,0x63,0x65,0x73,0x20,0x73,0x65,0x76,
+	0x65,0x72,0x61,0x6C,0x20,0x6E,0x65,0x77,0x20,0x66,0x69,0x6C,
+	0x65,0x20,0x66,0x6F,0x72,0x6D,0x61,0x74,0x73,0x3A,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1C,0x3E,
+	0x2D,0x20,0x58,0x4D,0x20,0x20,0x40,0x54,0x31,0x31,0x30,0x45,
+	0x78,0x74,0x65,0x6E,0x64,0x65,0x64,0x20,0x6D,0x6F,0x64,0x75,
+	0x6C,0x65,0x2E,0x20,0x3E,0x2D,0x20,0x58,0x49,0x20,0x20,0x40,
 	0x54,0x31,0x31,0x30,0x45,0x78,0x74,0x65,0x6E,0x64,0x65,0x64,
-	0x20,0x6D,0x6F,0x64,0x75,0x6C,0x65,0x2E,0x20,0x3E,0x2D,0x20,
-	0x58,0x49,0x20,0x20,0x40,0x54,0x31,0x31,0x30,0x45,0x78,0x74,
-	0x65,0x6E,0x64,0x65,0x64,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,
-	0x6D,0x65,0x6E,0x74,0x2E,0x1D,0x3E,0x2D,0x20,0x58,0x50,0x20,
-	0x20,0x40,0x54,0x31,0x31,0x30,0x45,0x78,0x74,0x65,0x6E,0x64,
-	0x65,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x1B,
-	0x3E,0x2D,0x20,0x58,0x54,0x20,0x20,0x40,0x54,0x31,0x31,0x30,
-	0x45,0x78,0x74,0x65,0x6E,0x64,0x65,0x64,0x20,0x74,0x72,0x61,
-	0x63,0x6B,0x2E,0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,
+	0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,
+	0x1D,0x3E,0x2D,0x20,0x58,0x50,0x20,0x20,0x40,0x54,0x31,0x31,
+	0x30,0x45,0x78,0x74,0x65,0x6E,0x64,0x65,0x64,0x20,0x70,0x61,
+	0x74,0x74,0x65,0x72,0x6E,0x2E,0x1B,0x3E,0x2D,0x20,0x58,0x54,
+	0x20,0x20,0x40,0x54,0x31,0x31,0x30,0x45,0x78,0x74,0x65,0x6E,
+	0x64,0x65,0x64,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x00,0x03,
+	0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x09,0x40,0x4C,0x45,0x66,0x66,
-	0x65,0x63,0x74,0x73,0x00,0x18,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x53,0x68,0x6F,0x72,0x74,0x20,0x73,0x75,
-	0x6D,0x6D,0x61,0x72,0x79,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x0B,0x3E,0x30,0x20,0x41,0x72,
-	0x70,0x65,0x67,0x67,0x69,0x6F,0x10,0x3E,0x31,0x20,0x50,0x6F,
-	0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x12,
-	0x3E,0x32,0x20,0x50,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,
-	0x6F,0x20,0x64,0x6F,0x77,0x6E,0x12,0x3E,0x33,0x20,0x54,0x6F,
+	0x2A,0x09,0x40,0x4C,0x45,0x66,0x66,0x65,0x63,0x74,0x73,0x00,
+	0x18,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,
+	0x68,0x6F,0x72,0x74,0x20,0x73,0x75,0x6D,0x6D,0x61,0x72,0x79,
+	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
+	0x32,0x0B,0x3E,0x30,0x20,0x41,0x72,0x70,0x65,0x67,0x67,0x69,
+	0x6F,0x10,0x3E,0x31,0x20,0x50,0x6F,0x72,0x74,0x61,0x6D,0x65,
+	0x6E,0x74,0x6F,0x20,0x75,0x70,0x12,0x3E,0x32,0x20,0x50,0x6F,
+	0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x64,0x6F,0x77,
+	0x6E,0x12,0x3E,0x33,0x20,0x54,0x6F,0x6E,0x65,0x20,0x70,0x6F,
+	0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x0A,0x3E,0x34,0x20,
+	0x56,0x69,0x62,0x72,0x61,0x74,0x6F,0x1C,0x3E,0x35,0x20,0x50,
+	0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x2B,0x20,
+	0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,
+	0x19,0x3E,0x36,0x20,0x56,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,
+	0x2B,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,
+	0x64,0x65,0x0A,0x3E,0x37,0x20,0x54,0x72,0x65,0x6D,0x6F,0x6C,
+	0x6F,0x17,0x3E,0x38,0x20,0x53,0x65,0x74,0x20,0x70,0x61,0x6E,
+	0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,
+	0x6E,0x10,0x3E,0x39,0x20,0x53,0x61,0x6D,0x70,0x6C,0x65,0x20,
+	0x6F,0x66,0x66,0x73,0x65,0x74,0x0F,0x3E,0x41,0x20,0x56,0x6F,
+	0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x10,0x3E,
+	0x42,0x20,0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x6A,
+	0x75,0x6D,0x70,0x0D,0x3E,0x43,0x20,0x53,0x65,0x74,0x20,0x76,
+	0x6F,0x6C,0x75,0x6D,0x65,0x10,0x3E,0x44,0x20,0x50,0x61,0x74,
+	0x74,0x65,0x72,0x6E,0x20,0x62,0x72,0x65,0x61,0x6B,0x04,0x3E,
+	0x45,0x20,0x2B,0x23,0x3E,0x40,0x58,0x30,0x38,0x30,0x30,0x20,
+	0x46,0x69,0x6C,0x74,0x65,0x72,0x20,0x6F,0x6E,0x2F,0x6F,0x66,
+	0x66,0x20,0x28,0x41,0x6D,0x69,0x67,0x61,0x20,0x6F,0x6E,0x6C,
+	0x79,0x21,0x29,0x15,0x3E,0x31,0x20,0x46,0x69,0x6E,0x65,0x20,
+	0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,
+	0x70,0x17,0x3E,0x32,0x20,0x46,0x69,0x6E,0x65,0x20,0x70,0x6F,
+	0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x64,0x6F,0x77,
+	0x6E,0x18,0x3E,0x33,0x20,0x53,0x65,0x74,0x20,0x67,0x6C,0x69,
+	0x73,0x73,0x61,0x6E,0x64,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,
+	0x6F,0x6C,0x16,0x3E,0x34,0x20,0x53,0x65,0x74,0x20,0x76,0x69,
+	0x62,0x72,0x61,0x74,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,
+	0x6C,0x10,0x3E,0x35,0x20,0x53,0x65,0x74,0x20,0x66,0x69,0x6E,
+	0x65,0x2D,0x74,0x75,0x6E,0x65,0x0C,0x3E,0x36,0x20,0x4A,0x75,
+	0x6D,0x70,0x20,0x6C,0x6F,0x6F,0x70,0x16,0x3E,0x37,0x20,0x53,
+	0x65,0x74,0x20,0x74,0x72,0x65,0x6D,0x6F,0x6C,0x6F,0x20,0x63,
+	0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x09,0x3E,0x38,0x20,0x55,0x6E,
+	0x75,0x73,0x65,0x64,0x0E,0x3E,0x39,0x20,0x52,0x65,0x74,0x72,
+	0x69,0x67,0x20,0x6E,0x6F,0x74,0x65,0x17,0x3E,0x41,0x20,0x46,
+	0x69,0x6E,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,
+	0x6C,0x69,0x64,0x65,0x20,0x75,0x70,0x19,0x3E,0x42,0x20,0x46,
+	0x69,0x6E,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,
+	0x6C,0x69,0x64,0x65,0x20,0x64,0x6F,0x77,0x6E,0x0B,0x3E,0x43,
+	0x20,0x4E,0x6F,0x74,0x65,0x20,0x63,0x75,0x74,0x0D,0x3E,0x44,
+	0x20,0x4E,0x6F,0x74,0x65,0x20,0x64,0x65,0x6C,0x61,0x79,0x10,
+	0x3E,0x45,0x20,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x64,
+	0x65,0x6C,0x61,0x79,0x1D,0x3E,0x46,0x20,0x46,0x75,0x6E,0x6B,
+	0x20,0x69,0x74,0x21,0x20,0x28,0x4E,0x6F,0x74,0x20,0x69,0x6D,
+	0x70,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x65,0x64,0x29,0x06,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x0B,0x46,0x20,0x53,0x65,0x74,0x20,
+	0x73,0x70,0x65,0x65,0x64,0x14,0x3E,0x47,0x20,0x53,0x65,0x74,
+	0x20,0x67,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,
+	0x6D,0x65,0x16,0x3E,0x48,0x20,0x47,0x6C,0x6F,0x62,0x61,0x6C,
+	0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,
+	0x65,0x0A,0x3E,0x4B,0x20,0x4B,0x65,0x79,0x20,0x6F,0x66,0x66,
+	0x18,0x3E,0x4C,0x20,0x53,0x65,0x74,0x20,0x65,0x6E,0x76,0x65,
+	0x6C,0x6F,0x70,0x65,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,
+	0x6E,0x10,0x3E,0x50,0x20,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,
+	0x20,0x73,0x6C,0x69,0x64,0x65,0x14,0x3E,0x52,0x20,0x4D,0x75,
+	0x6C,0x74,0x69,0x20,0x72,0x65,0x74,0x72,0x69,0x67,0x20,0x6E,
+	0x6F,0x74,0x65,0x09,0x3E,0x54,0x20,0x54,0x72,0x65,0x6D,0x6F,
+	0x72,0x04,0x3E,0x58,0x20,0x2B,0x20,0x3E,0x40,0x58,0x30,0x38,
+	0x30,0x31,0x20,0x45,0x78,0x74,0x72,0x61,0x20,0x66,0x69,0x6E,
+	0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,
+	0x20,0x75,0x70,0x1D,0x3E,0x32,0x20,0x45,0x78,0x74,0x72,0x61,
+	0x20,0x66,0x69,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,
+	0x65,0x6E,0x74,0x6F,0x20,0x64,0x6F,0x77,0x6E,0x00,0x18,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,
+	0x75,0x6D,0x65,0x20,0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x3A,0x0B,
+	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x17,
+	0x30,0x30,0x2E,0x2E,0x34,0x30,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x53,0x65,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x01,
+	0x3E,0x1A,0x3E,0x2D,0x20,0x40,0x54,0x31,0x36,0x30,0x56,0x6F,
+	0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x64,
+	0x6F,0x77,0x6E,0x2E,0x18,0x3E,0x2B,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,
+	0x65,0x20,0x75,0x70,0x2E,0x35,0x3E,0x44,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x46,0x69,0x6E,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,
+	0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x64,0x6F,0x77,0x6E,
+	0x2E,0x20,0x28,0x49,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x64,
+	0x20,0x62,0x79,0x20,0x73,0x79,0x6D,0x62,0x6F,0x6C,0x29,0x33,
+	0x3E,0x55,0x20,0x40,0x54,0x31,0x36,0x30,0x46,0x69,0x6E,0x65,
+	0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,
+	0x65,0x20,0x75,0x70,0x2E,0x20,0x28,0x49,0x6E,0x64,0x69,0x63,
+	0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x79,0x6D,0x62,
+	0x6F,0x6C,0x29,0x1A,0x3E,0x53,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x53,0x65,0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,
+	0x73,0x70,0x65,0x65,0x64,0x2E,0x10,0x3E,0x56,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x56,0x69,0x62,0x72,0x61,0x74,0x6F,0x2E,0x1D,
+	0x3E,0x50,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x74,0x20,
+	0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,
+	0x74,0x69,0x6F,0x6E,0x2E,0x32,0x3E,0x52,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x73,0x6C,
+	0x69,0x64,0x65,0x20,0x72,0x69,0x67,0x68,0x74,0x2E,0x20,0x28,
+	0x49,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x62,0x79,
+	0x20,0x73,0x79,0x6D,0x62,0x6F,0x6C,0x29,0x31,0x3E,0x4C,0x20,
+	0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,
+	0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x6C,0x65,0x66,0x74,0x2E,
+	0x20,0x28,0x49,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,
+	0x62,0x79,0x20,0x73,0x79,0x6D,0x62,0x6F,0x6C,0x29,0x18,0x3E,
+	0x4D,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x6F,0x6E,0x65,0x20,
+	0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x2E,0x00,
+	0x00,0x1B,0x40,0x4C,0x40,0x58,0x30,0x30,0x30,0x44,0x65,0x74,
+	0x61,0x69,0x6C,0x65,0x64,0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,
+	0x61,0x74,0x69,0x6F,0x6E,0x00,0x12,0x40,0x58,0x30,0x34,0x30,
+	0x40,0x43,0x30,0x30,0x31,0x41,0x72,0x70,0x65,0x67,0x67,0x69,
+	0x6F,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
+	0x32,0x27,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x30,0x20,
+	0x2B,0x20,0x31,0x73,0x74,0x20,0x68,0x61,0x6C,0x66,0x74,0x6F,
+	0x6E,0x65,0x20,0x2B,0x20,0x32,0x6E,0x64,0x20,0x68,0x61,0x6C,
+	0x66,0x74,0x6F,0x6E,0x65,0x00,0x0D,0x45,0x78,0x2E,0x3A,0x20,
+	0x43,0x2D,0x31,0x20,0x20,0x30,0x33,0x37,0x00,0x16,0x3E,0x31,
+	0x30,0x20,0x50,0x6C,0x61,0x79,0x73,0x20,0x43,0x2D,0x31,0x20,
+	0x74,0x69,0x63,0x6B,0x20,0x23,0x31,0x2E,0x26,0x3E,0x32,0x30,
+	0x20,0x50,0x6C,0x61,0x79,0x73,0x20,0x43,0x2D,0x31,0x20,0x2B,
+	0x20,0x33,0x20,0x4E,0x6F,0x74,0x65,0x73,0x20,0x3D,0x20,0x44,
+	0x23,0x31,0x20,0x74,0x69,0x63,0x6B,0x20,0x23,0x32,0x2E,0x26,
+	0x3E,0x33,0x30,0x20,0x50,0x6C,0x61,0x79,0x73,0x20,0x43,0x2D,
+	0x31,0x20,0x2B,0x20,0x37,0x20,0x4E,0x6F,0x74,0x65,0x73,0x20,
+	0x3D,0x20,0x47,0x2D,0x31,0x20,0x74,0x69,0x63,0x6B,0x20,0x23,
+	0x33,0x2E,0x0B,0x3E,0x34,0x30,0x20,0x47,0x6F,0x74,0x6F,0x20,
+	0x31,0x30,0x00,0x1C,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x50,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,
+	0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x18,0x53,0x79,0x6E,
+	0x74,0x61,0x78,0x3A,0x20,0x28,0x31,0x20,0x6F,0x72,0x20,0x32,
+	0x29,0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x40,0x50,
+	0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x69,0x73,
+	0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6F,0x20,0x73,0x6C,0x69,
+	0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,
+	0x65,0x20,0x70,0x69,0x74,0x63,0x68,0x20,0x75,0x70,0x20,0x6F,
+	0x72,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x20,0x54,0x68,0x69,0x73,
+	0x20,0x69,0x73,0x43,0x64,0x6F,0x6E,0x65,0x20,0x75,0x73,0x69,
+	0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x70,0x65,0x72,0x69,0x6F,
+	0x64,0x20,0x76,0x61,0x6C,0x75,0x65,0x2E,0x20,0x49,0x66,0x20,
+	0x41,0x6D,0x69,0x67,0x61,0x20,0x66,0x72,0x65,0x71,0x75,0x65,
+	0x6E,0x63,0x79,0x20,0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x69,
+	0x73,0x20,0x75,0x73,0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x40,
+	0x73,0x6C,0x69,0x64,0x69,0x6E,0x67,0x20,0x77,0x69,0x6C,0x6C,
+	0x20,0x62,0x65,0x20,0x6E,0x6F,0x6E,0x2D,0x6C,0x69,0x6E,0x65,
+	0x61,0x72,0x20,0x28,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x65,
+	0x64,0x20,0x64,0x65,0x70,0x65,0x6E,0x64,0x73,0x20,0x6F,0x6E,
+	0x20,0x74,0x68,0x65,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,
+	0x63,0x79,0x29,0x2E,0x00,0x19,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x54,0x6F,0x6E,0x65,0x20,0x70,0x6F,0x72,
+	0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,
+	0x61,0x78,0x3A,0x20,0x33,0x20,0x2B,0x20,0x53,0x70,0x65,0x65,
+	0x64,0x00,0x40,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,
+	0x61,0x6E,0x64,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,
+	0x74,0x6F,0x67,0x65,0x74,0x68,0x65,0x72,0x20,0x77,0x69,0x74,
+	0x68,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,0x2C,0x20,0x61,0x6E,
+	0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,0x6C,0x69,0x64,0x65,
+	0x20,0x74,0x6F,0x20,0x69,0x74,0x73,0x43,0x66,0x72,0x65,0x71,
+	0x75,0x65,0x6E,0x63,0x79,0x2E,0x20,0x49,0x66,0x20,0x67,0x6C,
+	0x69,0x73,0x73,0x61,0x6E,0x64,0x6F,0x20,0x28,0x45,0x33,0x29,
+	0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x2C,0x20,0x74,0x68,
+	0x65,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,
+	0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x72,0x6F,0x75,0x6E,
+	0x64,0x65,0x64,0x18,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x6E,
+	0x65,0x61,0x72,0x65,0x73,0x74,0x20,0x68,0x61,0x6C,0x66,0x74,
+	0x6F,0x6E,0x65,0x2E,0x00,0x11,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x56,0x69,0x62,0x72,0x61,0x74,0x6F,0x0B,
+	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x18,
+	0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x34,0x20,0x2B,0x20,
+	0x52,0x61,0x74,0x65,0x20,0x2B,0x20,0x44,0x65,0x70,0x74,0x68,
+	0x00,0x3E,0x41,0x64,0x64,0x73,0x20,0x76,0x69,0x62,0x72,0x61,
+	0x74,0x6F,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63,0x68,
+	0x61,0x6E,0x6E,0x65,0x6C,0x20,0x77,0x69,0x74,0x68,0x20,0x61,
+	0x20,0x72,0x61,0x74,0x65,0x20,0x61,0x6E,0x64,0x20,0x73,0x70,
+	0x65,0x65,0x64,0x2E,0x20,0x53,0x65,0x74,0x20,0x76,0x69,0x62,
+	0x72,0x61,0x74,0x6F,0x3C,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,
+	0x20,0x28,0x45,0x34,0x29,0x20,0x63,0x61,0x6E,0x20,0x62,0x65,
+	0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6F,0x20,0x63,0x68,0x61,
+	0x6E,0x67,0x65,0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72,
+	0x61,0x74,0x6F,0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,
+	0x20,0x28,0x73,0x65,0x65,0x07,0x62,0x65,0x6C,0x6F,0x77,0x29,
+	0x2E,0x00,0x28,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x54,0x6F,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,
+	0x65,0x6E,0x74,0x6F,0x20,0x2B,0x20,0x76,0x6F,0x6C,0x75,0x6D,
+	0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,
+	0x61,0x78,0x3A,0x20,0x35,0x20,0x2B,0x20,0x53,0x70,0x65,0x65,
+	0x64,0x00,0x40,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,
+	0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x65,0x78,0x65,
+	0x63,0x75,0x74,0x65,0x20,0x62,0x6F,0x74,0x68,0x20,0x74,0x6F,
 	0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,
-	0x6F,0x0A,0x3E,0x34,0x20,0x56,0x69,0x62,0x72,0x61,0x74,0x6F,
-	0x1C,0x3E,0x35,0x20,0x50,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,
-	0x74,0x6F,0x20,0x2B,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,
-	0x73,0x6C,0x69,0x64,0x65,0x19,0x3E,0x36,0x20,0x56,0x69,0x62,
-	0x72,0x61,0x74,0x6F,0x20,0x2B,0x20,0x56,0x6F,0x6C,0x75,0x6D,
-	0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x0A,0x3E,0x37,0x20,0x54,
-	0x72,0x65,0x6D,0x6F,0x6C,0x6F,0x17,0x3E,0x38,0x20,0x53,0x65,
-	0x74,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,
-	0x73,0x69,0x74,0x69,0x6F,0x6E,0x10,0x3E,0x39,0x20,0x53,0x61,
-	0x6D,0x70,0x6C,0x65,0x20,0x6F,0x66,0x66,0x73,0x65,0x74,0x0F,
-	0x3E,0x41,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,
-	0x69,0x64,0x65,0x10,0x3E,0x42,0x20,0x50,0x6F,0x73,0x69,0x74,
-	0x69,0x6F,0x6E,0x20,0x6A,0x75,0x6D,0x70,0x0D,0x3E,0x43,0x20,
-	0x53,0x65,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x10,0x3E,
-	0x44,0x20,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x62,0x72,
-	0x65,0x61,0x6B,0x04,0x3E,0x45,0x20,0x2B,0x23,0x3E,0x40,0x58,
-	0x30,0x38,0x30,0x30,0x20,0x46,0x69,0x6C,0x74,0x65,0x72,0x20,
-	0x6F,0x6E,0x2F,0x6F,0x66,0x66,0x20,0x28,0x41,0x6D,0x69,0x67,
-	0x61,0x20,0x6F,0x6E,0x6C,0x79,0x21,0x29,0x15,0x3E,0x31,0x20,
-	0x46,0x69,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,
-	0x6E,0x74,0x6F,0x20,0x75,0x70,0x17,0x3E,0x32,0x20,0x46,0x69,
-	0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,
-	0x6F,0x20,0x64,0x6F,0x77,0x6E,0x18,0x3E,0x33,0x20,0x53,0x65,
-	0x74,0x20,0x67,0x6C,0x69,0x73,0x73,0x61,0x6E,0x64,0x6F,0x20,
-	0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x16,0x3E,0x34,0x20,0x53,
-	0x65,0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x63,
-	0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x10,0x3E,0x35,0x20,0x53,0x65,
-	0x74,0x20,0x66,0x69,0x6E,0x65,0x2D,0x74,0x75,0x6E,0x65,0x0C,
-	0x3E,0x36,0x20,0x4A,0x75,0x6D,0x70,0x20,0x6C,0x6F,0x6F,0x70,
-	0x16,0x3E,0x37,0x20,0x53,0x65,0x74,0x20,0x74,0x72,0x65,0x6D,
-	0x6F,0x6C,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x09,
-	0x3E,0x38,0x20,0x55,0x6E,0x75,0x73,0x65,0x64,0x0E,0x3E,0x39,
-	0x20,0x52,0x65,0x74,0x72,0x69,0x67,0x20,0x6E,0x6F,0x74,0x65,
-	0x17,0x3E,0x41,0x20,0x46,0x69,0x6E,0x65,0x20,0x76,0x6F,0x6C,
-	0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x75,0x70,
-	0x19,0x3E,0x42,0x20,0x46,0x69,0x6E,0x65,0x20,0x76,0x6F,0x6C,
-	0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x64,0x6F,
-	0x77,0x6E,0x0B,0x3E,0x43,0x20,0x4E,0x6F,0x74,0x65,0x20,0x63,
-	0x75,0x74,0x0D,0x3E,0x44,0x20,0x4E,0x6F,0x74,0x65,0x20,0x64,
-	0x65,0x6C,0x61,0x79,0x10,0x3E,0x45,0x20,0x50,0x61,0x74,0x74,
-	0x65,0x72,0x6E,0x20,0x64,0x65,0x6C,0x61,0x79,0x1D,0x3E,0x46,
-	0x20,0x46,0x75,0x6E,0x6B,0x20,0x69,0x74,0x21,0x20,0x28,0x4E,
-	0x6F,0x74,0x20,0x69,0x6D,0x70,0x6C,0x65,0x6D,0x65,0x6E,0x74,
-	0x65,0x64,0x29,0x06,0x3E,0x40,0x58,0x30,0x36,0x30,0x0B,0x46,
-	0x20,0x53,0x65,0x74,0x20,0x73,0x70,0x65,0x65,0x64,0x14,0x3E,
-	0x47,0x20,0x53,0x65,0x74,0x20,0x67,0x6C,0x6F,0x62,0x61,0x6C,
-	0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x16,0x3E,0x48,0x20,0x47,
-	0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,
-	0x20,0x73,0x6C,0x69,0x64,0x65,0x0A,0x3E,0x4B,0x20,0x4B,0x65,
-	0x79,0x20,0x6F,0x66,0x66,0x18,0x3E,0x4C,0x20,0x53,0x65,0x74,
-	0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x70,0x6F,
-	0x73,0x69,0x74,0x69,0x6F,0x6E,0x10,0x3E,0x50,0x20,0x50,0x61,
-	0x6E,0x6E,0x69,0x6E,0x67,0x20,0x73,0x6C,0x69,0x64,0x65,0x14,
-	0x3E,0x52,0x20,0x4D,0x75,0x6C,0x74,0x69,0x20,0x72,0x65,0x74,
-	0x72,0x69,0x67,0x20,0x6E,0x6F,0x74,0x65,0x09,0x3E,0x54,0x20,
-	0x54,0x72,0x65,0x6D,0x6F,0x72,0x04,0x3E,0x58,0x20,0x2B,0x20,
-	0x3E,0x40,0x58,0x30,0x38,0x30,0x31,0x20,0x45,0x78,0x74,0x72,
-	0x61,0x20,0x66,0x69,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,
-	0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x1D,0x3E,0x32,0x20,
-	0x45,0x78,0x74,0x72,0x61,0x20,0x66,0x69,0x6E,0x65,0x20,0x70,
-	0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x64,0x6F,
-	0x77,0x6E,0x00,0x18,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
-	0x30,0x31,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x63,0x6F,0x6C,
-	0x75,0x6D,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x17,0x30,0x30,0x2E,0x2E,0x34,0x30,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x74,0x20,0x76,0x6F,0x6C,
-	0x75,0x6D,0x65,0x2E,0x01,0x3E,0x1A,0x3E,0x2D,0x20,0x40,0x54,
-	0x31,0x36,0x30,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,
-	0x69,0x64,0x65,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x18,0x3E,0x2B,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x56,0x6F,0x6C,0x75,0x6D,0x65,
-	0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x75,0x70,0x2E,0x35,0x3E,
-	0x44,0x20,0x40,0x54,0x31,0x36,0x30,0x46,0x69,0x6E,0x65,0x20,
+	0x6F,0x20,0x61,0x6E,0x64,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,
+	0x20,0x73,0x6C,0x69,0x64,0x65,0x2E,0x27,0x54,0x68,0x65,0x20,
+	0x73,0x70,0x65,0x65,0x64,0x20,0x69,0x73,0x20,0x75,0x73,0x65,
+	0x64,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,
+	0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2E,0x00,
+	0x20,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,
+	0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x2B,0x20,0x76,0x6F,0x6C,
+	0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x0B,0x3E,0x40,
+	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,
+	0x6E,0x74,0x61,0x78,0x3A,0x20,0x36,0x20,0x2B,0x20,0x53,0x70,
+	0x65,0x65,0x64,0x00,0x3C,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,
+	0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x65,
+	0x78,0x65,0x63,0x75,0x74,0x65,0x20,0x62,0x6F,0x74,0x68,0x20,
+	0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x61,0x6E,0x64,0x20,
 	0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,
-	0x20,0x64,0x6F,0x77,0x6E,0x2E,0x20,0x28,0x49,0x6E,0x64,0x69,
-	0x63,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x79,0x6D,
-	0x62,0x6F,0x6C,0x29,0x33,0x3E,0x55,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x46,0x69,0x6E,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,
-	0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x75,0x70,0x2E,0x20,0x28,
-	0x49,0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x62,0x79,
-	0x20,0x73,0x79,0x6D,0x62,0x6F,0x6C,0x29,0x1A,0x3E,0x53,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x74,0x20,0x76,0x69,0x62,
-	0x72,0x61,0x74,0x6F,0x20,0x73,0x70,0x65,0x65,0x64,0x2E,0x10,
-	0x3E,0x56,0x20,0x40,0x54,0x31,0x36,0x30,0x56,0x69,0x62,0x72,
-	0x61,0x74,0x6F,0x2E,0x1D,0x3E,0x50,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x53,0x65,0x74,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,
-	0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x32,0x3E,
-	0x52,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x6E,0x6E,0x69,
-	0x6E,0x67,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x72,0x69,0x67,
-	0x68,0x74,0x2E,0x20,0x28,0x49,0x6E,0x64,0x69,0x63,0x61,0x74,
-	0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x79,0x6D,0x62,0x6F,0x6C,
-	0x29,0x31,0x3E,0x4C,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,
-	0x6E,0x6E,0x69,0x6E,0x67,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,
-	0x6C,0x65,0x66,0x74,0x2E,0x20,0x28,0x49,0x6E,0x64,0x69,0x63,
-	0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x79,0x6D,0x62,
-	0x6F,0x6C,0x29,0x18,0x3E,0x4D,0x20,0x40,0x54,0x31,0x36,0x30,
-	0x54,0x6F,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,
-	0x6E,0x74,0x6F,0x2E,0x00,0x00,0x1B,0x40,0x4C,0x40,0x58,0x30,
-	0x30,0x30,0x44,0x65,0x74,0x61,0x69,0x6C,0x65,0x64,0x20,0x69,
-	0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,0x00,0x12,
-	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x72,
-	0x70,0x65,0x67,0x67,0x69,0x6F,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x27,0x53,0x79,0x6E,0x74,0x61,
-	0x78,0x3A,0x20,0x30,0x20,0x2B,0x20,0x31,0x73,0x74,0x20,0x68,
-	0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65,0x20,0x2B,0x20,0x32,0x6E,
-	0x64,0x20,0x68,0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65,0x00,0x0D,
-	0x45,0x78,0x2E,0x3A,0x20,0x43,0x2D,0x31,0x20,0x20,0x30,0x33,
-	0x37,0x00,0x16,0x3E,0x31,0x30,0x20,0x50,0x6C,0x61,0x79,0x73,
-	0x20,0x43,0x2D,0x31,0x20,0x74,0x69,0x63,0x6B,0x20,0x23,0x31,
-	0x2E,0x26,0x3E,0x32,0x30,0x20,0x50,0x6C,0x61,0x79,0x73,0x20,
-	0x43,0x2D,0x31,0x20,0x2B,0x20,0x33,0x20,0x4E,0x6F,0x74,0x65,
-	0x73,0x20,0x3D,0x20,0x44,0x23,0x31,0x20,0x74,0x69,0x63,0x6B,
-	0x20,0x23,0x32,0x2E,0x26,0x3E,0x33,0x30,0x20,0x50,0x6C,0x61,
-	0x79,0x73,0x20,0x43,0x2D,0x31,0x20,0x2B,0x20,0x37,0x20,0x4E,
-	0x6F,0x74,0x65,0x73,0x20,0x3D,0x20,0x47,0x2D,0x31,0x20,0x74,
-	0x69,0x63,0x6B,0x20,0x23,0x33,0x2E,0x0B,0x3E,0x34,0x30,0x20,
-	0x47,0x6F,0x74,0x6F,0x20,0x31,0x30,0x00,0x1C,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x6F,0x72,0x74,0x61,
-	0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,
-	0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x18,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x28,0x31,
-	0x20,0x6F,0x72,0x20,0x32,0x29,0x20,0x2B,0x20,0x53,0x70,0x65,
-	0x65,0x64,0x00,0x40,0x50,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,
-	0x74,0x6F,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x74,
-	0x6F,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,
-	0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x69,0x74,0x63,0x68,
-	0x20,0x75,0x70,0x20,0x6F,0x72,0x20,0x64,0x6F,0x77,0x6E,0x2E,
-	0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x43,0x64,0x6F,0x6E,
-	0x65,0x20,0x75,0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,
-	0x70,0x65,0x72,0x69,0x6F,0x64,0x20,0x76,0x61,0x6C,0x75,0x65,
-	0x2E,0x20,0x49,0x66,0x20,0x41,0x6D,0x69,0x67,0x61,0x20,0x66,
-	0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x73,0x6C,0x69,
-	0x64,0x65,0x73,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x2C,
-	0x20,0x74,0x68,0x65,0x40,0x73,0x6C,0x69,0x64,0x69,0x6E,0x67,
-	0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x6E,0x6F,0x6E,
-	0x2D,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x28,0x74,0x68,0x65,
-	0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x64,0x65,0x70,0x65,0x6E,
-	0x64,0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x66,0x72,
-	0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x29,0x2E,0x00,0x19,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x6F,0x6E,
-	0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,
+	0x2E,0x20,0x54,0x68,0x65,0x23,0x73,0x70,0x65,0x65,0x64,0x20,
+	0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,
+	0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,
+	0x6C,0x69,0x64,0x65,0x2E,0x00,0x11,0x40,0x58,0x30,0x34,0x30,
+	0x40,0x43,0x30,0x30,0x31,0x54,0x72,0x65,0x6D,0x6F,0x6C,0x6F,
 	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x33,0x20,0x2B,
-	0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x40,0x54,0x68,0x69,0x73,
-	0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x69,0x73,0x20,
-	0x75,0x73,0x65,0x64,0x20,0x74,0x6F,0x67,0x65,0x74,0x68,0x65,
-	0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x6E,0x6F,0x74,
-	0x65,0x2C,0x20,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,
-	0x73,0x6C,0x69,0x64,0x65,0x20,0x74,0x6F,0x20,0x69,0x74,0x73,
-	0x43,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x2E,0x20,
-	0x49,0x66,0x20,0x67,0x6C,0x69,0x73,0x73,0x61,0x6E,0x64,0x6F,
-	0x20,0x28,0x45,0x33,0x29,0x20,0x69,0x73,0x20,0x75,0x73,0x65,
-	0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x66,0x72,0x65,0x71,0x75,
-	0x65,0x6E,0x63,0x79,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,
-	0x20,0x72,0x6F,0x75,0x6E,0x64,0x65,0x64,0x18,0x74,0x6F,0x20,
-	0x74,0x68,0x65,0x20,0x6E,0x65,0x61,0x72,0x65,0x73,0x74,0x20,
-	0x68,0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65,0x2E,0x00,0x11,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x62,
-	0x72,0x61,0x74,0x6F,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x18,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,
-	0x20,0x34,0x20,0x2B,0x20,0x52,0x61,0x74,0x65,0x20,0x2B,0x20,
-	0x44,0x65,0x70,0x74,0x68,0x00,0x3E,0x41,0x64,0x64,0x73,0x20,
-	0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x74,0x6F,0x20,0x74,
-	0x68,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x77,
-	0x69,0x74,0x68,0x20,0x61,0x20,0x72,0x61,0x74,0x65,0x20,0x61,
-	0x6E,0x64,0x20,0x73,0x70,0x65,0x65,0x64,0x2E,0x20,0x53,0x65,
-	0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x3C,0x63,0x6F,
-	0x6E,0x74,0x72,0x6F,0x6C,0x20,0x28,0x45,0x34,0x29,0x20,0x63,
-	0x61,0x6E,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,
-	0x6F,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65,
-	0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x77,0x61,0x76,
-	0x65,0x66,0x6F,0x72,0x6D,0x20,0x28,0x73,0x65,0x65,0x07,0x62,
-	0x65,0x6C,0x6F,0x77,0x29,0x2E,0x00,0x28,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x6F,0x6E,0x65,0x20,0x70,
-	0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x2B,0x20,
-	0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x35,0x20,0x2B,
-	0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x40,0x54,0x68,0x69,0x73,
-	0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,
-	0x6C,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x65,0x20,0x62,0x6F,
-	0x74,0x68,0x20,0x74,0x6F,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,
-	0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x61,0x6E,0x64,0x20,0x76,
-	0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2E,
-	0x27,0x54,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x69,
-	0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x74,
-	0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,
-	0x69,0x64,0x65,0x2E,0x00,0x20,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x56,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,
-	0x2B,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,
-	0x64,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
-	0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x36,
-	0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x3C,0x54,0x68,
-	0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,
-	0x69,0x6C,0x6C,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x65,0x20,
-	0x62,0x6F,0x74,0x68,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,
-	0x20,0x61,0x6E,0x64,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,
-	0x73,0x6C,0x69,0x64,0x65,0x2E,0x20,0x54,0x68,0x65,0x23,0x73,
-	0x70,0x65,0x65,0x64,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,
-	0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,
-	0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2E,0x00,0x11,
-	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x72,
-	0x65,0x6D,0x6F,0x6C,0x6F,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
-	0x40,0x43,0x30,0x30,0x32,0x18,0x53,0x79,0x6E,0x74,0x61,0x78,
-	0x3A,0x20,0x37,0x20,0x2B,0x20,0x52,0x61,0x74,0x65,0x20,0x2B,
-	0x20,0x44,0x65,0x70,0x74,0x68,0x00,0x41,0x54,0x72,0x65,0x6D,
-	0x6F,0x6C,0x6F,0x20,0x61,0x64,0x64,0x73,0x20,0x76,0x69,0x62,
-	0x72,0x61,0x74,0x6F,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,
-	0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75,
-	0x6D,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x73,0x79,0x6E,0x74,
-	0x61,0x78,0x20,0x69,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6C,
-	0x79,0x1B,0x61,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,
-	0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x63,0x6F,0x6D,
-	0x6D,0x61,0x6E,0x64,0x2E,0x00,0x1E,0x40,0x58,0x30,0x34,0x30,
-	0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x70,0x61,0x6E,
-	0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,
-	0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x14,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x38,0x20,
-	0x2B,0x20,0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x00,0x3E,
-	0x53,0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x6E,
-	0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,
-	0x6E,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x63,0x68,
-	0x61,0x6E,0x6E,0x65,0x6C,0x2E,0x20,0x24,0x30,0x30,0x20,0x69,
-	0x73,0x20,0x74,0x68,0x65,0x20,0x6C,0x65,0x66,0x74,0x6D,0x6F,
-	0x73,0x74,0x3F,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,
-	0x61,0x6E,0x64,0x20,0x24,0x46,0x46,0x20,0x74,0x68,0x65,0x20,
-	0x72,0x69,0x67,0x68,0x74,0x6D,0x6F,0x73,0x74,0x2E,0x20,0x4E,
-	0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x73,0x6F,0x6D,
-	0x65,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x63,0x61,0x72,0x64,
-	0x73,0x20,0x28,0x65,0x78,0x2E,0x30,0x47,0x55,0x53,0x29,0x20,
-	0x63,0x61,0x6E,0x27,0x74,0x20,0x75,0x73,0x65,0x20,0x61,0x73,
-	0x20,0x6D,0x61,0x6E,0x79,0x20,0x61,0x73,0x20,0x32,0x35,0x36,
-	0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,
-	0x69,0x74,0x69,0x6F,0x6E,0x73,0x2E,0x00,0x17,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,
-	0x65,0x20,0x6F,0x66,0x66,0x73,0x65,0x74,0x0B,0x3E,0x40,0x58,
-	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,
-	0x74,0x61,0x78,0x3A,0x20,0x39,0x20,0x2B,0x20,0x4F,0x66,0x66,
-	0x73,0x65,0x74,0x00,0x41,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,
-	0x6D,0x6D,0x61,0x6E,0x64,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,
-	0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6F,0x67,
-	0x65,0x74,0x68,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x61,
-	0x20,0x6E,0x6F,0x74,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x73,
-	0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x6C,0x6C,0x2D,0x62,
-	0x65,0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x66,0x72,0x6F,
-	0x6D,0x20,0x28,0x4F,0x66,0x66,0x73,0x65,0x74,0x2A,0x24,0x31,
-	0x30,0x30,0x29,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x20,
-	0x6F,0x66,0x20,0x7A,0x65,0x72,0x6F,0x2E,0x00,0x16,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,0x75,
-	0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x0B,0x3E,0x40,0x58,
-	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x21,0x53,0x79,0x6E,
-	0x74,0x61,0x78,0x3A,0x20,0x41,0x20,0x2B,0x20,0x55,0x70,0x20,
-	0x73,0x70,0x65,0x65,0x64,0x20,0x2B,0x20,0x44,0x6F,0x77,0x6E,
-	0x20,0x73,0x70,0x65,0x65,0x64,0x00,0x3D,0x53,0x6C,0x69,0x64,
-	0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,
-	0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x75,0x70,
-	0x20,0x6F,0x72,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x20,0x45,0x69,
-	0x74,0x68,0x65,0x72,0x20,0x75,0x70,0x20,0x73,0x70,0x65,0x65,
-	0x64,0x20,0x6F,0x72,0x20,0x64,0x6F,0x77,0x6E,0x15,0x73,0x70,
-	0x65,0x65,0x64,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,
-	0x65,0x20,0x7A,0x65,0x72,0x6F,0x2E,0x00,0x17,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x6F,0x73,0x69,0x74,
-	0x69,0x6F,0x6E,0x20,0x6A,0x75,0x6D,0x70,0x0B,0x3E,0x40,0x58,
+	0x18,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x37,0x20,0x2B,
+	0x20,0x52,0x61,0x74,0x65,0x20,0x2B,0x20,0x44,0x65,0x70,0x74,
+	0x68,0x00,0x41,0x54,0x72,0x65,0x6D,0x6F,0x6C,0x6F,0x20,0x61,
+	0x64,0x64,0x73,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,
+	0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,
+	0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20,0x54,
+	0x68,0x65,0x20,0x73,0x79,0x6E,0x74,0x61,0x78,0x20,0x69,0x73,
+	0x20,0x65,0x78,0x61,0x63,0x74,0x6C,0x79,0x1B,0x61,0x73,0x20,
+	0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72,
+	0x61,0x74,0x6F,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2E,
+	0x00,0x1E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
+	0x53,0x65,0x74,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,
+	0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x0B,0x3E,0x40,0x58,
 	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x14,0x53,0x79,0x6E,
-	0x74,0x61,0x78,0x3A,0x20,0x42,0x20,0x2B,0x20,0x50,0x6F,0x73,
-	0x69,0x74,0x69,0x6F,0x6E,0x00,0x41,0x54,0x68,0x69,0x73,0x20,
-	0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,
-	0x20,0x6A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,
-	0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x6F,
-	0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,
-	0x61,0x6E,0x64,0x20,0x70,0x6C,0x61,0x79,0x20,0x74,0x68,0x65,
-	0x1B,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x66,0x72,0x6F,
-	0x6D,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6E,0x6E,
-	0x69,0x6E,0x67,0x2E,0x00,0x14,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x76,0x6F,0x6C,0x75,
-	0x6D,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
-	0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x43,
-	0x20,0x2B,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x00,0x3E,0x53,
-	0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,
-	0x65,0x6E,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20,
-	0x54,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,
-	0x68,0x6F,0x75,0x6C,0x64,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,
-	0x20,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61,
-	0x6E,0x04,0x24,0x34,0x30,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72,
-	0x6E,0x20,0x62,0x72,0x65,0x61,0x6B,0x0B,0x3E,0x40,0x58,0x30,
-	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1C,0x53,0x79,0x6E,0x74,
-	0x61,0x78,0x3A,0x20,0x44,0x20,0x2B,0x20,0x50,0x61,0x74,0x74,
-	0x65,0x72,0x6E,0x2D,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,
-	0x00,0x3C,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,
-	0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6A,0x75,0x6D,0x70,
-	0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x6E,0x65,0x78,0x74,
-	0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x61,0x6E,0x64,
-	0x20,0x70,0x6C,0x61,0x79,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,
-	0x68,0x65,0x13,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,
-	0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x00,0x22,
-	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,
-	0x74,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x20,0x28,0x41,0x6D,
-	0x69,0x67,0x61,0x20,0x6F,0x6E,0x6C,0x79,0x21,0x29,0x0B,0x3E,
-	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x13,0x53,
-	0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x30,0x20,0x2B,0x20,
-	0x53,0x74,0x61,0x74,0x75,0x73,0x00,0x38,0x55,0x73,0x65,0x20,
-	0x45,0x30,0x30,0x20,0x61,0x6E,0x64,0x20,0x79,0x6F,0x75,0x72,
-	0x20,0x74,0x75,0x6E,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,
-	0x6F,0x75,0x6E,0x64,0x20,0x72,0x65,0x61,0x6C,0x6C,0x79,0x20,
-	0x62,0x61,0x64,0x20,0x6F,0x6E,0x20,0x61,0x6E,0x20,0x41,0x6D,
-	0x69,0x67,0x61,0x21,0x00,0x21,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x46,0x69,0x6E,0x65,0x20,0x70,0x6F,0x72,
-	0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,
-	0x6F,0x77,0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x19,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,
-	0x45,0x28,0x31,0x20,0x6F,0x72,0x20,0x32,0x29,0x20,0x2B,0x20,
-	0x53,0x70,0x65,0x65,0x64,0x00,0x3F,0x54,0x68,0x69,0x73,0x20,
-	0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B,
-	0x73,0x20,0x61,0x73,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,
-	0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x2C,
-	0x20,0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x6F,0x6E,0x6C,0x79,
-	0x20,0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x75,0x70,0x05,0x6F,
-	0x6E,0x63,0x65,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x67,0x6C,0x69,0x73,
-	0x73,0x61,0x6E,0x64,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,
-	0x6C,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x13,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x33,
-	0x20,0x2B,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x00,0x41,0x49,
-	0x66,0x20,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x69,0x73,0x20,
-	0x3D,0x31,0x2C,0x20,0x74,0x68,0x65,0x20,0x66,0x72,0x65,0x71,
-	0x75,0x65,0x6E,0x63,0x79,0x20,0x77,0x68,0x65,0x6E,0x20,0x75,
-	0x73,0x69,0x6E,0x67,0x20,0x74,0x6F,0x6E,0x65,0x20,0x70,0x6F,
-	0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x77,0x69,0x6C,
-	0x6C,0x20,0x62,0x65,0x20,0x72,0x6F,0x75,0x6E,0x64,0x65,0x64,
-	0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x6E,0x65,0x61,0x72,
-	0x65,0x73,0x74,0x20,0x68,0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65,
-	0x2E,0x00,0x1D,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
-	0x31,0x53,0x65,0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,
-	0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x0B,0x3E,0x40,0x58,
-	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,
-	0x74,0x61,0x78,0x3A,0x20,0x45,0x34,0x20,0x2B,0x20,0x54,0x79,
-	0x70,0x65,0x00,0x2B,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,
-	0x6D,0x61,0x6E,0x64,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,
-	0x73,0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72,0x61,0x74,
-	0x6F,0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x2E,0x00,
-	0x33,0x54,0x79,0x70,0x65,0x3A,0x20,0x30,0x20,0x3D,0x20,0x53,
-	0x69,0x6E,0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x20,
-	0x3D,0x20,0x52,0x61,0x6D,0x70,0x20,0x64,0x6F,0x77,0x6E,0x20,
-	0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x20,0x3D,0x20,0x53,0x71,
-	0x75,0x61,0x72,0x65,0x00,0x43,0x49,0x66,0x20,0x79,0x6F,0x75,
-	0x20,0x61,0x64,0x64,0x20,0x34,0x20,0x74,0x6F,0x20,0x74,0x68,
-	0x65,0x20,0x74,0x79,0x70,0x65,0x2C,0x20,0x74,0x68,0x65,0x20,
-	0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x20,0x77,0x69,0x6C,
-	0x6C,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,0x72,0x65,0x74,
-	0x72,0x69,0x67,0x67,0x65,0x64,0x20,0x77,0x68,0x65,0x6E,0x20,
-	0x61,0x19,0x6E,0x65,0x77,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,
-	0x6D,0x65,0x6E,0x74,0x20,0x69,0x73,0x20,0x70,0x6C,0x61,0x79,
-	0x65,0x64,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
-	0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x66,0x69,0x6E,0x65,0x2D,
-	0x74,0x75,0x6E,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,
-	0x20,0x45,0x35,0x20,0x2B,0x20,0x54,0x75,0x6E,0x65,0x00,0x3F,
+	0x74,0x61,0x78,0x3A,0x20,0x38,0x20,0x2B,0x20,0x50,0x6F,0x73,
+	0x69,0x74,0x69,0x6F,0x6E,0x00,0x3E,0x53,0x65,0x74,0x73,0x20,
+	0x74,0x68,0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,
+	0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x66,0x6F,0x72,
+	0x20,0x74,0x68,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,
+	0x2E,0x20,0x24,0x30,0x30,0x20,0x69,0x73,0x20,0x74,0x68,0x65,
+	0x20,0x6C,0x65,0x66,0x74,0x6D,0x6F,0x73,0x74,0x3F,0x70,0x6F,
+	0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x61,0x6E,0x64,0x20,0x24,
+	0x46,0x46,0x20,0x74,0x68,0x65,0x20,0x72,0x69,0x67,0x68,0x74,
+	0x6D,0x6F,0x73,0x74,0x2E,0x20,0x4E,0x6F,0x74,0x65,0x20,0x74,
+	0x68,0x61,0x74,0x20,0x73,0x6F,0x6D,0x65,0x20,0x73,0x6F,0x75,
+	0x6E,0x64,0x20,0x63,0x61,0x72,0x64,0x73,0x20,0x28,0x65,0x78,
+	0x2E,0x30,0x47,0x55,0x53,0x29,0x20,0x63,0x61,0x6E,0x27,0x74,
+	0x20,0x75,0x73,0x65,0x20,0x61,0x73,0x20,0x6D,0x61,0x6E,0x79,
+	0x20,0x61,0x73,0x20,0x32,0x35,0x36,0x20,0x70,0x61,0x6E,0x6E,
+	0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,
+	0x73,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,0x65,0x20,0x6F,0x66,0x66,
+	0x73,0x65,0x74,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,
+	0x39,0x20,0x2B,0x20,0x4F,0x66,0x66,0x73,0x65,0x74,0x00,0x41,
 	0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,
 	0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x20,0x75,
 	0x73,0x65,0x64,0x20,0x74,0x6F,0x67,0x65,0x74,0x68,0x65,0x72,
 	0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,
-	0x2E,0x20,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x63,0x61,
-	0x75,0x73,0x65,0x44,0x61,0x6E,0x6F,0x74,0x68,0x65,0x72,0x20,
-	0x66,0x69,0x6E,0x65,0x2D,0x74,0x75,0x6E,0x65,0x20,0x76,0x61,
-	0x6C,0x75,0x65,0x20,0x74,0x6F,0x20,0x62,0x65,0x20,0x75,0x73,
-	0x65,0x64,0x2E,0x20,0x49,0x74,0x20,0x73,0x65,0x65,0x6D,0x73,
-	0x20,0x71,0x75,0x69,0x74,0x65,0x20,0x75,0x6E,0x75,0x73,0x61,
-	0x62,0x6C,0x65,0x20,0x74,0x6F,0x20,0x6D,0x65,0x2E,0x2E,0x2E,
-	0x00,0x16,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x6F,0x6F,0x70,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x36,0x20,
-	0x2B,0x20,0x43,0x6F,0x75,0x6E,0x74,0x00,0x45,0x49,0x66,0x20,
-	0x63,0x6F,0x75,0x6E,0x74,0x20,0x69,0x73,0x20,0x7A,0x65,0x72,
-	0x6F,0x2C,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6E,
-	0x6E,0x69,0x6E,0x67,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,
-	0x6C,0x6F,0x6F,0x70,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,
-	0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x2E,0x20,
-	0x57,0x68,0x65,0x6E,0x20,0x61,0x40,0x6E,0x6F,0x6E,0x2D,0x7A,
-	0x65,0x72,0x6F,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x69,0x73,
-	0x20,0x75,0x73,0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x70,
-	0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x77,0x69,0x6C,0x6C,0x20,
-	0x62,0x65,0x20,0x6C,0x6F,0x6F,0x70,0x65,0x64,0x20,0x66,0x72,
-	0x6F,0x6D,0x20,0x74,0x68,0x65,0x20,0x6C,0x6F,0x6F,0x70,0x06,
-	0x73,0x74,0x61,0x72,0x74,0x2E,0x00,0x1D,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x74,0x72,
-	0x65,0x6D,0x6F,0x6C,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,
-	0x6C,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x37,
-	0x20,0x2B,0x20,0x54,0x79,0x70,0x65,0x00,0x3A,0x54,0x68,0x69,
-	0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,
-	0x72,0x6B,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6C,0x79,0x20,
-	0x61,0x73,0x20,0x73,0x65,0x74,0x20,0x76,0x69,0x62,0x72,0x61,
-	0x74,0x6F,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x2C,0x20,
-	0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x29,0x74,0x72,0x65,0x6D,
-	0x6F,0x6C,0x6F,0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,
-	0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61,
-	0x6E,0x67,0x65,0x64,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,
-	0x2E,0x00,0x15,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
-	0x31,0x52,0x65,0x74,0x72,0x69,0x67,0x20,0x6E,0x6F,0x74,0x65,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x15,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x39,0x20,
-	0x2B,0x20,0x49,0x6E,0x74,0x65,0x72,0x76,0x61,0x6C,0x00,0x2D,
-	0x52,0x65,0x74,0x72,0x69,0x67,0x73,0x20,0x74,0x68,0x65,0x20,
-	0x6E,0x6F,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,
-	0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,
-	0x69,0x6E,0x74,0x65,0x72,0x76,0x61,0x6C,0x2E,0x00,0x23,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x69,0x6E,
-	0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,
-	0x64,0x65,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E,
+	0x2E,0x20,0x54,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,
+	0x20,0x77,0x69,0x6C,0x6C,0x2D,0x62,0x65,0x20,0x70,0x6C,0x61,
+	0x79,0x65,0x64,0x20,0x66,0x72,0x6F,0x6D,0x20,0x28,0x4F,0x66,
+	0x66,0x73,0x65,0x74,0x2A,0x24,0x31,0x30,0x30,0x29,0x20,0x69,
+	0x6E,0x73,0x74,0x65,0x61,0x64,0x20,0x6F,0x66,0x20,0x7A,0x65,
+	0x72,0x6F,0x2E,0x00,0x16,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,
+	0x69,0x64,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x21,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,
+	0x41,0x20,0x2B,0x20,0x55,0x70,0x20,0x73,0x70,0x65,0x65,0x64,
+	0x20,0x2B,0x20,0x44,0x6F,0x77,0x6E,0x20,0x73,0x70,0x65,0x65,
+	0x64,0x00,0x3D,0x53,0x6C,0x69,0x64,0x65,0x73,0x20,0x74,0x68,
+	0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x76,0x6F,
+	0x6C,0x75,0x6D,0x65,0x20,0x75,0x70,0x20,0x6F,0x72,0x20,0x64,
+	0x6F,0x77,0x6E,0x2E,0x20,0x45,0x69,0x74,0x68,0x65,0x72,0x20,
+	0x75,0x70,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x6F,0x72,0x20,
+	0x64,0x6F,0x77,0x6E,0x15,0x73,0x70,0x65,0x65,0x64,0x20,0x73,
+	0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x20,0x7A,0x65,0x72,
+	0x6F,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x6A,
+	0x75,0x6D,0x70,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x14,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,
+	0x42,0x20,0x2B,0x20,0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,
+	0x00,0x41,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,
+	0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6A,0x75,0x6D,0x70,
+	0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6C,0x65,
+	0x63,0x74,0x65,0x64,0x20,0x73,0x6F,0x6E,0x67,0x20,0x70,0x6F,
+	0x73,0x69,0x74,0x69,0x6F,0x6E,0x20,0x61,0x6E,0x64,0x20,0x70,
+	0x6C,0x61,0x79,0x20,0x74,0x68,0x65,0x1B,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68,0x65,
+	0x20,0x62,0x65,0x67,0x69,0x6E,0x6E,0x69,0x6E,0x67,0x2E,0x00,
+	0x14,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,
+	0x65,0x74,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x0B,0x3E,0x40,
+	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,
+	0x6E,0x74,0x61,0x78,0x3A,0x20,0x43,0x20,0x2B,0x20,0x56,0x6F,
+	0x6C,0x75,0x6D,0x65,0x00,0x3E,0x53,0x65,0x74,0x73,0x20,0x74,
+	0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x76,
+	0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x76,
+	0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,
+	0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,0x67,0x72,0x65,0x61,
+	0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x6E,0x04,0x24,0x34,0x30,
+	0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x62,0x72,0x65,
+	0x61,0x6B,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
+	0x30,0x32,0x1C,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x44,
+	0x20,0x2B,0x20,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x2D,0x70,
+	0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x00,0x3C,0x54,0x68,0x69,
+	0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,
+	0x6C,0x6C,0x20,0x6A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x74,
+	0x68,0x65,0x20,0x6E,0x65,0x78,0x74,0x20,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x20,0x61,0x6E,0x64,0x20,0x70,0x6C,0x61,0x79,
+	0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68,0x65,0x13,0x73,0x70,
+	0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x70,0x6F,0x73,0x69,
+	0x74,0x69,0x6F,0x6E,0x2E,0x00,0x22,0x40,0x58,0x30,0x34,0x30,
+	0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x66,0x69,0x6C,
+	0x74,0x65,0x72,0x20,0x28,0x41,0x6D,0x69,0x67,0x61,0x20,0x6F,
+	0x6E,0x6C,0x79,0x21,0x29,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
+	0x40,0x43,0x30,0x30,0x32,0x13,0x53,0x79,0x6E,0x74,0x61,0x78,
+	0x3A,0x20,0x45,0x30,0x20,0x2B,0x20,0x53,0x74,0x61,0x74,0x75,
+	0x73,0x00,0x38,0x55,0x73,0x65,0x20,0x45,0x30,0x30,0x20,0x61,
+	0x6E,0x64,0x20,0x79,0x6F,0x75,0x72,0x20,0x74,0x75,0x6E,0x65,
+	0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,
+	0x72,0x65,0x61,0x6C,0x6C,0x79,0x20,0x62,0x61,0x64,0x20,0x6F,
+	0x6E,0x20,0x61,0x6E,0x20,0x41,0x6D,0x69,0x67,0x61,0x21,0x00,
+	0x21,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,
+	0x69,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,
+	0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E,
 	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x19,0x53,
-	0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x28,0x41,0x20,0x6F,
-	0x72,0x20,0x42,0x29,0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64,
-	0x00,0x44,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,
+	0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x28,0x31,0x20,0x6F,
+	0x72,0x20,0x32,0x29,0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64,
+	0x00,0x3F,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,
 	0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x61,0x73,0x20,
-	0x74,0x68,0x65,0x20,0x75,0x73,0x75,0x61,0x6C,0x20,0x76,0x6F,
-	0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2C,0x20,
-	0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,
-	0x6F,0x6E,0x6C,0x79,0x20,0x73,0x6C,0x69,0x64,0x65,0x05,0x6F,
-	0x6E,0x63,0x65,0x2E,0x00,0x12,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x4E,0x6F,0x74,0x65,0x20,0x63,0x75,0x74,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x43,0x20,
-	0x2B,0x20,0x54,0x69,0x63,0x6B,0x00,0x43,0x43,0x75,0x74,0x73,
-	0x20,0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x61,0x74,
-	0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,
-	0x65,0x64,0x20,0x74,0x69,0x63,0x6B,0x2E,0x20,0x4E,0x6F,0x74,
-	0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x77,0x69,
-	0x6C,0x6C,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x73,0x65,0x74,0x20,
-	0x74,0x68,0x65,0x34,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x74,
-	0x6F,0x20,0x7A,0x65,0x72,0x6F,0x2C,0x20,0x61,0x6E,0x64,0x20,
-	0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,
-	0x69,0x6C,0x6C,0x20,0x73,0x74,0x69,0x6C,0x6C,0x20,0x62,0x65,
-	0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x2E,0x00,0x14,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4E,0x6F,0x74,0x65,
-	0x20,0x64,0x65,0x6C,0x61,0x79,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,
-	0x78,0x3A,0x20,0x45,0x44,0x20,0x2B,0x20,0x54,0x69,0x63,0x6B,
-	0x73,0x00,0x3E,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,
-	0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x65,0x6C,
-	0x61,0x79,0x20,0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,
-	0x74,0x68,0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64,
-	0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x74,
-	0x69,0x63,0x6B,0x73,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,
-	0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,
-	0x20,0x64,0x65,0x6C,0x61,0x79,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,
-	0x78,0x3A,0x20,0x45,0x45,0x20,0x2B,0x20,0x4E,0x6F,0x74,0x65,
-	0x73,0x00,0x41,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,
-	0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x65,0x6C,
-	0x61,0x79,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x74,0x65,
-	0x72,0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6C,0x65,0x63,
-	0x74,0x65,0x64,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,
-	0x66,0x20,0x6E,0x6F,0x74,0x65,0x73,0x2E,0x00,0x13,0x40,0x58,
+	0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,
+	0x70,0x2F,0x64,0x6F,0x77,0x6E,0x2C,0x20,0x62,0x75,0x74,0x20,
+	0x69,0x74,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x73,0x6C,0x69,0x64,
+	0x65,0x73,0x20,0x75,0x70,0x05,0x6F,0x6E,0x63,0x65,0x2E,0x00,
+	0x1F,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,
+	0x65,0x74,0x20,0x67,0x6C,0x69,0x73,0x73,0x61,0x6E,0x64,0x6F,
+	0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x13,0x53,0x79,0x6E,
+	0x74,0x61,0x78,0x3A,0x20,0x45,0x33,0x20,0x2B,0x20,0x53,0x74,
+	0x61,0x74,0x75,0x73,0x00,0x41,0x49,0x66,0x20,0x53,0x74,0x61,
+	0x74,0x75,0x73,0x20,0x69,0x73,0x20,0x3D,0x31,0x2C,0x20,0x74,
+	0x68,0x65,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,
+	0x20,0x77,0x68,0x65,0x6E,0x20,0x75,0x73,0x69,0x6E,0x67,0x20,
+	0x74,0x6F,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,
+	0x6E,0x74,0x6F,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,
+	0x72,0x6F,0x75,0x6E,0x64,0x65,0x64,0x20,0x74,0x6F,0x20,0x74,
+	0x68,0x65,0x20,0x6E,0x65,0x61,0x72,0x65,0x73,0x74,0x20,0x68,
+	0x61,0x6C,0x66,0x74,0x6F,0x6E,0x65,0x2E,0x00,0x1D,0x40,0x58,
 	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,
-	0x73,0x70,0x65,0x65,0x64,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
-	0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,
-	0x3A,0x20,0x46,0x20,0x2B,0x20,0x56,0x61,0x6C,0x75,0x65,0x00,
-	0x42,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,
-	0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,0x65,0x74,0x20,0x74,
-	0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x6F,0x72,0x20,
-	0x42,0x50,0x4D,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x6F,0x66,
-	0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x6E,0x67,0x2E,0x20,0x49,
-	0x66,0x20,0x76,0x61,0x6C,0x75,0x65,0x3F,0x69,0x73,0x20,0x6C,
-	0x65,0x73,0x73,0x20,0x74,0x68,0x61,0x6E,0x20,0x24,0x32,0x30,
-	0x2C,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x20,
-	0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6E,
-	0x67,0x65,0x64,0x2E,0x20,0x4F,0x74,0x68,0x65,0x72,0x77,0x69,
-	0x73,0x65,0x2C,0x20,0x74,0x68,0x65,0x20,0x42,0x50,0x4D,0x16,
-	0x76,0x61,0x6C,0x75,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,
-	0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x2E,0x00,0x1B,
+	0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x63,0x6F,0x6E,0x74,
+	0x72,0x6F,0x6C,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,
+	0x45,0x34,0x20,0x2B,0x20,0x54,0x79,0x70,0x65,0x00,0x2B,0x54,
+	0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,
+	0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73,0x20,0x74,0x68,0x65,
+	0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x77,0x61,0x76,
+	0x65,0x66,0x6F,0x72,0x6D,0x2E,0x00,0x33,0x54,0x79,0x70,0x65,
+	0x3A,0x20,0x30,0x20,0x3D,0x20,0x53,0x69,0x6E,0x65,0x20,0x20,
+	0x20,0x20,0x20,0x20,0x20,0x31,0x20,0x3D,0x20,0x52,0x61,0x6D,
+	0x70,0x20,0x64,0x6F,0x77,0x6E,0x20,0x20,0x20,0x20,0x20,0x20,
+	0x20,0x32,0x20,0x3D,0x20,0x53,0x71,0x75,0x61,0x72,0x65,0x00,
+	0x43,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x61,0x64,0x64,0x20,
+	0x34,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x74,0x79,0x70,
+	0x65,0x2C,0x20,0x74,0x68,0x65,0x20,0x77,0x61,0x76,0x65,0x66,
+	0x6F,0x72,0x6D,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6E,0x6F,0x74,
+	0x20,0x62,0x65,0x20,0x72,0x65,0x74,0x72,0x69,0x67,0x67,0x65,
+	0x64,0x20,0x77,0x68,0x65,0x6E,0x20,0x61,0x19,0x6E,0x65,0x77,
+	0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,
+	0x69,0x73,0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x2E,0x00,0x17,
 	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,
-	0x74,0x20,0x67,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,
-	0x75,0x6D,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,
-	0x47,0x20,0x2B,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x00,0x42,
-	0x53,0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x67,0x6C,0x6F,
-	0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20,
-	0x54,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,
-	0x68,0x6F,0x75,0x6C,0x64,0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,
-	0x20,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61,
-	0x6E,0x20,0x24,0x34,0x30,0x2E,0x00,0x1D,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x47,0x6C,0x6F,0x62,0x61,0x6C,
-	0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,
-	0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x21,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x48,0x20,
-	0x2B,0x20,0x55,0x70,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x2B,
-	0x20,0x44,0x6F,0x77,0x6E,0x20,0x73,0x70,0x65,0x65,0x64,0x00,
-	0x3D,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,
-	0x64,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x65,0x78,0x61,0x63,
-	0x74,0x6C,0x79,0x20,0x61,0x73,0x20,0x76,0x6F,0x6C,0x75,0x6D,
-	0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x2C,0x20,0x62,0x75,0x74,
-	0x20,0x69,0x74,0x20,0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x74,
-	0x68,0x65,0x16,0x67,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,
-	0x6C,0x75,0x6D,0x65,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,
-	0x2E,0x00,0x11,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
-	0x31,0x4B,0x65,0x79,0x20,0x6F,0x66,0x66,0x0B,0x3E,0x40,0x58,
-	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x10,0x53,0x79,0x6E,
-	0x74,0x61,0x78,0x3A,0x20,0x4B,0x20,0x2B,0x20,0x54,0x69,0x63,
-	0x6B,0x00,0x3C,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,
-	0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x74,0x72,0x69,
-	0x67,0x67,0x65,0x72,0x20,0x61,0x20,0x22,0x4B,0x65,0x79,0x20,
-	0x6F,0x66,0x66,0x22,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,
+	0x74,0x20,0x66,0x69,0x6E,0x65,0x2D,0x74,0x75,0x6E,0x65,0x0B,
+	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,
+	0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x35,0x20,0x2B,
+	0x20,0x54,0x75,0x6E,0x65,0x00,0x3F,0x54,0x68,0x69,0x73,0x20,
+	0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x73,0x68,0x6F,0x75,
+	0x6C,0x64,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,
+	0x6F,0x67,0x65,0x74,0x68,0x65,0x72,0x20,0x77,0x69,0x74,0x68,
+	0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,0x2E,0x20,0x49,0x74,0x20,
+	0x77,0x69,0x6C,0x6C,0x20,0x63,0x61,0x75,0x73,0x65,0x44,0x61,
+	0x6E,0x6F,0x74,0x68,0x65,0x72,0x20,0x66,0x69,0x6E,0x65,0x2D,
+	0x74,0x75,0x6E,0x65,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x74,
+	0x6F,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x2E,0x20,0x49,
+	0x74,0x20,0x73,0x65,0x65,0x6D,0x73,0x20,0x71,0x75,0x69,0x74,
+	0x65,0x20,0x75,0x6E,0x75,0x73,0x61,0x62,0x6C,0x65,0x20,0x74,
+	0x6F,0x20,0x6D,0x65,0x2E,0x2E,0x2E,0x00,0x16,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,
+	0x72,0x6E,0x20,0x6C,0x6F,0x6F,0x70,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,0x79,0x6E,0x74,
+	0x61,0x78,0x3A,0x20,0x45,0x36,0x20,0x2B,0x20,0x43,0x6F,0x75,
+	0x6E,0x74,0x00,0x45,0x49,0x66,0x20,0x63,0x6F,0x75,0x6E,0x74,
+	0x20,0x69,0x73,0x20,0x7A,0x65,0x72,0x6F,0x2C,0x20,0x74,0x68,
+	0x65,0x20,0x62,0x65,0x67,0x69,0x6E,0x6E,0x69,0x6E,0x67,0x20,
+	0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x6C,0x6F,0x6F,0x70,0x20,
+	0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x73,0x70,0x65,0x63,
+	0x69,0x66,0x69,0x65,0x64,0x2E,0x20,0x57,0x68,0x65,0x6E,0x20,
+	0x61,0x40,0x6E,0x6F,0x6E,0x2D,0x7A,0x65,0x72,0x6F,0x20,0x76,
+	0x61,0x6C,0x75,0x65,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,
+	0x2C,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,
+	0x6E,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x6C,0x6F,
+	0x6F,0x70,0x65,0x64,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68,
+	0x65,0x20,0x6C,0x6F,0x6F,0x70,0x06,0x73,0x74,0x61,0x72,0x74,
+	0x2E,0x00,0x1D,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x53,0x65,0x74,0x20,0x74,0x72,0x65,0x6D,0x6F,0x6C,0x6F,
+	0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,
+	0x74,0x61,0x78,0x3A,0x20,0x45,0x37,0x20,0x2B,0x20,0x54,0x79,
+	0x70,0x65,0x00,0x3A,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,
+	0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x65,
+	0x78,0x61,0x63,0x74,0x6C,0x79,0x20,0x61,0x73,0x20,0x73,0x65,
+	0x74,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x63,0x6F,
+	0x6E,0x74,0x72,0x6F,0x6C,0x2C,0x20,0x62,0x75,0x74,0x20,0x74,
+	0x68,0x65,0x29,0x74,0x72,0x65,0x6D,0x6F,0x6C,0x6F,0x20,0x77,
+	0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x20,0x77,0x69,0x6C,0x6C,
+	0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x20,
+	0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x2E,0x00,0x15,0x40,0x58,
+	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x52,0x65,0x74,0x72,
+	0x69,0x67,0x20,0x6E,0x6F,0x74,0x65,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x15,0x53,0x79,0x6E,0x74,
+	0x61,0x78,0x3A,0x20,0x45,0x39,0x20,0x2B,0x20,0x49,0x6E,0x74,
+	0x65,0x72,0x76,0x61,0x6C,0x00,0x2D,0x52,0x65,0x74,0x72,0x69,
+	0x67,0x73,0x20,0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,
+	0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,
+	0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x69,0x6E,0x74,0x65,0x72,
+	0x76,0x61,0x6C,0x2E,0x00,0x23,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x46,0x69,0x6E,0x65,0x20,0x76,0x6F,0x6C,
+	0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x20,0x75,0x70,
+	0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
+	0x40,0x43,0x30,0x30,0x32,0x19,0x53,0x79,0x6E,0x74,0x61,0x78,
+	0x3A,0x20,0x45,0x28,0x41,0x20,0x6F,0x72,0x20,0x42,0x29,0x20,
+	0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x44,0x54,0x68,0x69,
+	0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,
+	0x72,0x6B,0x73,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x75,
+	0x73,0x75,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,
+	0x73,0x6C,0x69,0x64,0x65,0x2C,0x20,0x62,0x75,0x74,0x20,0x69,
+	0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6F,0x6E,0x6C,0x79,0x20,
+	0x73,0x6C,0x69,0x64,0x65,0x05,0x6F,0x6E,0x63,0x65,0x2E,0x00,
+	0x12,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4E,
+	0x6F,0x74,0x65,0x20,0x63,0x75,0x74,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x11,0x53,0x79,0x6E,0x74,
+	0x61,0x78,0x3A,0x20,0x45,0x43,0x20,0x2B,0x20,0x54,0x69,0x63,
+	0x6B,0x00,0x43,0x43,0x75,0x74,0x73,0x20,0x74,0x68,0x65,0x20,
+	0x6E,0x6F,0x74,0x65,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,
 	0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x74,0x69,
-	0x63,0x6B,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
-	0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x65,0x6E,0x76,0x65,0x6C,
-	0x6F,0x70,0x65,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,
+	0x63,0x6B,0x2E,0x20,0x4E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,
+	0x74,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6F,0x6E,
+	0x6C,0x79,0x20,0x73,0x65,0x74,0x20,0x74,0x68,0x65,0x34,0x76,
+	0x6F,0x6C,0x75,0x6D,0x65,0x20,0x74,0x6F,0x20,0x7A,0x65,0x72,
+	0x6F,0x2C,0x20,0x61,0x6E,0x64,0x20,0x74,0x68,0x65,0x20,0x73,
+	0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,
+	0x74,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x70,0x6C,0x61,0x79,
+	0x65,0x64,0x2E,0x00,0x14,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x4E,0x6F,0x74,0x65,0x20,0x64,0x65,0x6C,0x61,
+	0x79,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
+	0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x44,
+	0x20,0x2B,0x20,0x54,0x69,0x63,0x6B,0x73,0x00,0x3E,0x54,0x68,
+	0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,
+	0x69,0x6C,0x6C,0x20,0x64,0x65,0x6C,0x61,0x79,0x20,0x74,0x68,
+	0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x73,
+	0x65,0x6C,0x65,0x63,0x74,0x65,0x64,0x20,0x6E,0x75,0x6D,0x62,
+	0x65,0x72,0x20,0x6F,0x66,0x20,0x74,0x69,0x63,0x6B,0x73,0x2E,
+	0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
+	0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x64,0x65,0x6C,0x61,
+	0x79,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
+	0x32,0x12,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x45,0x45,
+	0x20,0x2B,0x20,0x4E,0x6F,0x74,0x65,0x73,0x00,0x41,0x54,0x68,
+	0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,
+	0x69,0x6C,0x6C,0x20,0x64,0x65,0x6C,0x61,0x79,0x20,0x74,0x68,
+	0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x74,0x68,
+	0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64,0x20,0x6E,
+	0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x6E,0x6F,0x74,
+	0x65,0x73,0x2E,0x00,0x13,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x73,0x70,0x65,0x65,0x64,
 	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x14,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x4C,0x20,0x2B,
-	0x20,0x50,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x00,0x3E,0x43,
-	0x68,0x61,0x6E,0x67,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x65,
-	0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x70,0x6F,0x73,0x69,
-	0x74,0x69,0x6F,0x6E,0x2E,0x20,0x4D,0x61,0x67,0x6E,0x75,0x73,
-	0x20,0x74,0x6F,0x6C,0x64,0x20,0x6D,0x65,0x20,0x74,0x68,0x61,
-	0x74,0x20,0x69,0x74,0x20,0x77,0x6F,0x75,0x6C,0x64,0x20,0x62,
-	0x65,0x0C,0x76,0x65,0x72,0x79,0x20,0x75,0x73,0x61,0x62,0x6C,
-	0x65,0x2E,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
-	0x30,0x31,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x73,0x6C,
-	0x69,0x64,0x65,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x24,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,
-	0x50,0x20,0x2B,0x20,0x52,0x69,0x67,0x68,0x74,0x20,0x73,0x70,
-	0x65,0x65,0x64,0x20,0x2B,0x20,0x4C,0x65,0x66,0x74,0x20,0x73,
-	0x70,0x65,0x65,0x64,0x00,0x42,0x54,0x68,0x69,0x73,0x20,0x63,
-	0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x73,0x6C,0x69,0x64,0x65,
-	0x73,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,
-	0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x20,
-	0x49,0x74,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x6C,0x69,0x6B,
-	0x65,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,
-	0x3C,0x73,0x6C,0x69,0x64,0x65,0x2E,0x20,0x4E,0x6F,0x74,0x65,
-	0x20,0x74,0x68,0x61,0x74,0x20,0x73,0x6F,0x6D,0x65,0x20,0x73,
-	0x6F,0x75,0x6E,0x64,0x20,0x63,0x61,0x72,0x64,0x73,0x20,0x6D,
-	0x61,0x79,0x20,0x6E,0x6F,0x74,0x20,0x68,0x61,0x6E,0x64,0x6C,
-	0x65,0x20,0x32,0x35,0x36,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,
-	0x67,0x0A,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x73,0x2E,
-	0x00,0x16,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x4D,0x75,0x6C,0x74,0x69,0x20,0x72,0x65,0x74,0x72,0x69,0x67,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x24,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x52,0x20,0x2B,
-	0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x63,0x68,0x61,0x6E,
-	0x67,0x65,0x20,0x2B,0x20,0x49,0x6E,0x74,0x65,0x72,0x76,0x61,
-	0x6C,0x00,0x32,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,
-	0x6E,0x20,0x65,0x78,0x74,0x65,0x6E,0x64,0x65,0x64,0x20,0x76,
-	0x65,0x72,0x73,0x69,0x6F,0x6E,0x20,0x6F,0x66,0x20,0x74,0x68,
-	0x65,0x20,0x72,0x65,0x74,0x72,0x69,0x67,0x20,0x63,0x6F,0x6D,
-	0x6D,0x61,0x6E,0x64,0x2E,0x00,0x0E,0x56,0x6F,0x6C,0x75,0x6D,
-	0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x3A,0x1F,0x3E,0x40,
-	0x58,0x31,0x30,0x30,0x30,0x20,0x3D,0x20,0x4E,0x6F,0x6E,0x65,
-	0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x38,0x20,0x3D,0x20,0x55,
-	0x6E,0x75,0x73,0x65,0x64,0x16,0x3E,0x31,0x20,0x3D,0x20,0x2D,
-	0x31,0x20,0x20,0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x39,0x20,
-	0x3D,0x20,0x2B,0x31,0x16,0x3E,0x32,0x20,0x3D,0x20,0x2D,0x32,
-	0x20,0x20,0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x41,0x20,0x3D,
-	0x20,0x2B,0x32,0x16,0x3E,0x33,0x20,0x3D,0x20,0x2D,0x34,0x20,
-	0x20,0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x42,0x20,0x3D,0x20,
-	0x2B,0x34,0x16,0x3E,0x34,0x20,0x3D,0x20,0x2D,0x38,0x20,0x20,
-	0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x43,0x20,0x3D,0x20,0x2B,
-	0x38,0x17,0x3E,0x35,0x20,0x3D,0x20,0x2D,0x31,0x36,0x20,0x20,
-	0x20,0x40,0x54,0x33,0x30,0x30,0x44,0x20,0x3D,0x20,0x2B,0x31,
-	0x36,0x18,0x3E,0x36,0x20,0x3D,0x20,0x2A,0x32,0x2F,0x33,0x20,
-	0x20,0x40,0x54,0x33,0x30,0x30,0x45,0x20,0x3D,0x20,0x2A,0x33,
-	0x2F,0x32,0x16,0x3E,0x37,0x20,0x3D,0x20,0x2A,0x31,0x2F,0x32,
-	0x20,0x20,0x40,0x54,0x33,0x30,0x30,0x46,0x20,0x3D,0x20,0x2A,
-	0x32,0x00,0x10,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
-	0x31,0x54,0x72,0x65,0x6D,0x6F,0x72,0x0B,0x3E,0x40,0x58,0x30,
-	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1E,0x53,0x79,0x6E,0x74,
-	0x61,0x78,0x3A,0x20,0x54,0x20,0x2B,0x20,0x4F,0x6E,0x20,0x74,
-	0x69,0x6D,0x65,0x20,0x2B,0x20,0x4F,0x66,0x66,0x20,0x74,0x69,
-	0x6D,0x65,0x00,0x3E,0x54,0x68,0x69,0x73,0x20,0x77,0x65,0x69,
-	0x72,0x64,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,
-	0x69,0x6C,0x6C,0x20,0x73,0x65,0x74,0x20,0x74,0x68,0x65,0x20,
-	0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x74,0x6F,0x20,0x7A,0x65,
-	0x72,0x6F,0x20,0x64,0x75,0x72,0x69,0x6E,0x67,0x20,0x6F,0x66,
-	0x66,0x20,0x74,0x69,0x6D,0x65,0x36,0x6E,0x75,0x6D,0x62,0x65,
-	0x72,0x20,0x6F,0x66,0x20,0x74,0x69,0x63,0x6B,0x73,0x2E,0x20,
-	0x49,0x74,0x20,0x69,0x73,0x20,0x69,0x6E,0x63,0x6C,0x75,0x64,
-	0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x53,0x54,0x4D,0x20,0x63,
-	0x6F,0x6D,0x70,0x61,0x74,0x69,0x62,0x69,0x6C,0x69,0x74,0x79,
-	0x2E,0x00,0x27,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
-	0x31,0x45,0x78,0x74,0x72,0x61,0x20,0x66,0x69,0x6E,0x65,0x20,
-	0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,
-	0x70,0x2F,0x64,0x6F,0x77,0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x19,0x53,0x79,0x6E,0x74,0x61,
-	0x78,0x3A,0x20,0x58,0x28,0x31,0x20,0x6F,0x72,0x20,0x32,0x29,
-	0x20,0x2B,0x20,0x53,0x70,0x65,0x65,0x64,0x00,0x3C,0x54,0x68,
+	0x11,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x46,0x20,0x2B,
+	0x20,0x56,0x61,0x6C,0x75,0x65,0x00,0x42,0x54,0x68,0x69,0x73,
+	0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,
+	0x6C,0x20,0x73,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x70,
+	0x65,0x65,0x64,0x20,0x6F,0x72,0x20,0x42,0x50,0x4D,0x20,0x76,
+	0x61,0x6C,0x75,0x65,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,
+	0x73,0x6F,0x6E,0x67,0x2E,0x20,0x49,0x66,0x20,0x76,0x61,0x6C,
+	0x75,0x65,0x3F,0x69,0x73,0x20,0x6C,0x65,0x73,0x73,0x20,0x74,
+	0x68,0x61,0x6E,0x20,0x24,0x32,0x30,0x2C,0x20,0x74,0x68,0x65,
+	0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,
+	0x62,0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x2E,0x20,
+	0x4F,0x74,0x68,0x65,0x72,0x77,0x69,0x73,0x65,0x2C,0x20,0x74,
+	0x68,0x65,0x20,0x42,0x50,0x4D,0x16,0x76,0x61,0x6C,0x75,0x65,
+	0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61,
+	0x6E,0x67,0x65,0x64,0x2E,0x00,0x1B,0x40,0x58,0x30,0x34,0x30,
+	0x40,0x43,0x30,0x30,0x31,0x53,0x65,0x74,0x20,0x67,0x6C,0x6F,
+	0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x12,0x53,
+	0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x47,0x20,0x2B,0x20,0x76,
+	0x6F,0x6C,0x75,0x6D,0x65,0x00,0x42,0x53,0x65,0x74,0x73,0x20,
+	0x74,0x68,0x65,0x20,0x67,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,
+	0x6F,0x6C,0x75,0x6D,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x76,
+	0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,
+	0x20,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,0x67,0x72,0x65,0x61,
+	0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x6E,0x20,0x24,0x34,0x30,
+	0x2E,0x00,0x1D,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x47,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,
+	0x6D,0x65,0x20,0x73,0x6C,0x69,0x64,0x65,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x21,0x53,0x79,0x6E,
+	0x74,0x61,0x78,0x3A,0x20,0x48,0x20,0x2B,0x20,0x55,0x70,0x20,
+	0x73,0x70,0x65,0x65,0x64,0x20,0x2B,0x20,0x44,0x6F,0x77,0x6E,
+	0x20,0x73,0x70,0x65,0x65,0x64,0x00,0x3D,0x54,0x68,0x69,0x73,
+	0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,0x72,
+	0x6B,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6C,0x79,0x20,0x61,
+	0x73,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x73,0x6C,0x69,
+	0x64,0x65,0x2C,0x20,0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x73,
+	0x6C,0x69,0x64,0x65,0x73,0x20,0x74,0x68,0x65,0x16,0x67,0x6C,
+	0x6F,0x62,0x61,0x6C,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,
+	0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x2E,0x00,0x11,0x40,0x58,
+	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4B,0x65,0x79,0x20,
+	0x6F,0x66,0x66,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x10,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,
+	0x4B,0x20,0x2B,0x20,0x54,0x69,0x63,0x6B,0x00,0x3C,0x54,0x68,
 	0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,
-	0x6F,0x72,0x6B,0x73,0x20,0x61,0x73,0x20,0x66,0x69,0x6E,0x65,
-	0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,
-	0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x2C,0x20,0x62,0x75,0x74,
-	0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x65,0x64,0x18,0x77,
-	0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x64,0x69,0x76,0x69,0x64,
-	0x65,0x64,0x20,0x62,0x79,0x20,0x66,0x6F,0x75,0x72,0x2E,0x00,
-	0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+	0x69,0x6C,0x6C,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x20,
+	0x61,0x20,0x22,0x4B,0x65,0x79,0x20,0x6F,0x66,0x66,0x22,0x20,
+	0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x69,
+	0x66,0x69,0x65,0x64,0x20,0x74,0x69,0x63,0x6B,0x2E,0x00,0x1F,
+	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x65,
+	0x74,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x70,
+	0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x14,0x53,0x79,0x6E,0x74,
+	0x61,0x78,0x3A,0x20,0x4C,0x20,0x2B,0x20,0x50,0x6F,0x73,0x69,
+	0x74,0x69,0x6F,0x6E,0x00,0x3E,0x43,0x68,0x61,0x6E,0x67,0x65,
+	0x73,0x20,0x74,0x68,0x65,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,
+	0x70,0x65,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,
+	0x20,0x4D,0x61,0x67,0x6E,0x75,0x73,0x20,0x74,0x6F,0x6C,0x64,
+	0x20,0x6D,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,
+	0x77,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x0C,0x76,0x65,0x72,
+	0x79,0x20,0x75,0x73,0x61,0x62,0x6C,0x65,0x2E,0x00,0x17,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x6E,
+	0x6E,0x69,0x6E,0x67,0x20,0x73,0x6C,0x69,0x64,0x65,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x24,0x53,
+	0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x50,0x20,0x2B,0x20,0x52,
+	0x69,0x67,0x68,0x74,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x2B,
+	0x20,0x4C,0x65,0x66,0x74,0x20,0x73,0x70,0x65,0x65,0x64,0x00,
+	0x42,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,
+	0x64,0x20,0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x74,0x68,0x65,
+	0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x70,0x6F,0x73,
+	0x69,0x74,0x69,0x6F,0x6E,0x2E,0x20,0x49,0x74,0x20,0x77,0x6F,
+	0x72,0x6B,0x73,0x20,0x6C,0x69,0x6B,0x65,0x20,0x74,0x68,0x65,
+	0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x3C,0x73,0x6C,0x69,0x64,
+	0x65,0x2E,0x20,0x4E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,
+	0x20,0x73,0x6F,0x6D,0x65,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,
+	0x63,0x61,0x72,0x64,0x73,0x20,0x6D,0x61,0x79,0x20,0x6E,0x6F,
+	0x74,0x20,0x68,0x61,0x6E,0x64,0x6C,0x65,0x20,0x32,0x35,0x36,
+	0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x0A,0x70,0x6F,0x73,
+	0x69,0x74,0x69,0x6F,0x6E,0x73,0x2E,0x00,0x16,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x75,0x6C,0x74,0x69,
+	0x20,0x72,0x65,0x74,0x72,0x69,0x67,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x24,0x53,0x79,0x6E,0x74,
+	0x61,0x78,0x3A,0x20,0x52,0x20,0x2B,0x20,0x56,0x6F,0x6C,0x75,
+	0x6D,0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x2B,0x20,
+	0x49,0x6E,0x74,0x65,0x72,0x76,0x61,0x6C,0x00,0x32,0x54,0x68,
+	0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x6E,0x20,0x65,0x78,0x74,
+	0x65,0x6E,0x64,0x65,0x64,0x20,0x76,0x65,0x72,0x73,0x69,0x6F,
+	0x6E,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x74,
+	0x72,0x69,0x67,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2E,
+	0x00,0x0E,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x63,0x68,0x61,
+	0x6E,0x67,0x65,0x3A,0x1F,0x3E,0x40,0x58,0x31,0x30,0x30,0x30,
+	0x20,0x3D,0x20,0x4E,0x6F,0x6E,0x65,0x20,0x20,0x40,0x54,0x33,
+	0x30,0x30,0x38,0x20,0x3D,0x20,0x55,0x6E,0x75,0x73,0x65,0x64,
+	0x16,0x3E,0x31,0x20,0x3D,0x20,0x2D,0x31,0x20,0x20,0x20,0x20,
+	0x40,0x54,0x33,0x30,0x30,0x39,0x20,0x3D,0x20,0x2B,0x31,0x16,
+	0x3E,0x32,0x20,0x3D,0x20,0x2D,0x32,0x20,0x20,0x20,0x20,0x40,
+	0x54,0x33,0x30,0x30,0x41,0x20,0x3D,0x20,0x2B,0x32,0x16,0x3E,
+	0x33,0x20,0x3D,0x20,0x2D,0x34,0x20,0x20,0x20,0x20,0x40,0x54,
+	0x33,0x30,0x30,0x42,0x20,0x3D,0x20,0x2B,0x34,0x16,0x3E,0x34,
+	0x20,0x3D,0x20,0x2D,0x38,0x20,0x20,0x20,0x20,0x40,0x54,0x33,
+	0x30,0x30,0x43,0x20,0x3D,0x20,0x2B,0x38,0x17,0x3E,0x35,0x20,
+	0x3D,0x20,0x2D,0x31,0x36,0x20,0x20,0x20,0x40,0x54,0x33,0x30,
+	0x30,0x44,0x20,0x3D,0x20,0x2B,0x31,0x36,0x18,0x3E,0x36,0x20,
+	0x3D,0x20,0x2A,0x32,0x2F,0x33,0x20,0x20,0x40,0x54,0x33,0x30,
+	0x30,0x45,0x20,0x3D,0x20,0x2A,0x33,0x2F,0x32,0x16,0x3E,0x37,
+	0x20,0x3D,0x20,0x2A,0x31,0x2F,0x32,0x20,0x20,0x40,0x54,0x33,
+	0x30,0x30,0x46,0x20,0x3D,0x20,0x2A,0x32,0x00,0x10,0x40,0x58,
+	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x72,0x65,0x6D,
+	0x6F,0x72,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
+	0x30,0x32,0x1E,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x54,
+	0x20,0x2B,0x20,0x4F,0x6E,0x20,0x74,0x69,0x6D,0x65,0x20,0x2B,
+	0x20,0x4F,0x66,0x66,0x20,0x74,0x69,0x6D,0x65,0x00,0x3E,0x54,
+	0x68,0x69,0x73,0x20,0x77,0x65,0x69,0x72,0x64,0x20,0x63,0x6F,
+	0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,
+	0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,
+	0x65,0x20,0x74,0x6F,0x20,0x7A,0x65,0x72,0x6F,0x20,0x64,0x75,
+	0x72,0x69,0x6E,0x67,0x20,0x6F,0x66,0x66,0x20,0x74,0x69,0x6D,
+	0x65,0x36,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,
+	0x74,0x69,0x63,0x6B,0x73,0x2E,0x20,0x49,0x74,0x20,0x69,0x73,
+	0x20,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x64,0x20,0x66,0x6F,
+	0x72,0x20,0x53,0x54,0x4D,0x20,0x63,0x6F,0x6D,0x70,0x61,0x74,
+	0x69,0x62,0x69,0x6C,0x69,0x74,0x79,0x2E,0x00,0x27,0x40,0x58,
+	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x45,0x78,0x74,0x72,
+	0x61,0x20,0x66,0x69,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,
+	0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,
+	0x6E,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
+	0x32,0x19,0x53,0x79,0x6E,0x74,0x61,0x78,0x3A,0x20,0x58,0x28,
+	0x31,0x20,0x6F,0x72,0x20,0x32,0x29,0x20,0x2B,0x20,0x53,0x70,
+	0x65,0x65,0x64,0x00,0x3C,0x54,0x68,0x69,0x73,0x20,0x63,0x6F,
+	0x6D,0x6D,0x61,0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,
+	0x61,0x73,0x20,0x66,0x69,0x6E,0x65,0x20,0x70,0x6F,0x72,0x74,
+	0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F,
+	0x77,0x6E,0x2C,0x20,0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x20,
+	0x73,0x70,0x65,0x65,0x64,0x18,0x77,0x69,0x6C,0x6C,0x20,0x62,
+	0x65,0x20,0x64,0x69,0x76,0x69,0x64,0x65,0x64,0x20,0x62,0x79,
+	0x20,0x66,0x6F,0x75,0x72,0x2E,0x00,0x03,0x45,0x4E,0x44,0x4C,
+	0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,
+	0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x0D,0x40,0x4C,0x4B,0x65,0x79,0x62,0x69,0x6E,0x64,
-	0x69,0x6E,0x67,0x73,0x0B,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x4A,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,
-	0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x6E,0x20,0x61,0x6D,0x62,
-	0x69,0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x63,0x72,0x65,
-	0x61,0x74,0x65,0x20,0x6D,0x75,0x73,0x69,0x63,0x20,0x65,0x66,
-	0x66,0x69,0x63,0x69,0x65,0x6E,0x74,0x6C,0x79,0x20,0x77,0x65,
-	0x20,0x73,0x74,0x72,0x6F,0x6E,0x67,0x6C,0x79,0x20,0x72,0x65,
-	0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x64,0x44,0x74,0x68,0x61,0x74,
-	0x20,0x79,0x6F,0x75,0x20,0x6C,0x65,0x61,0x72,0x6E,0x20,0x41,
-	0x4C,0x4C,0x20,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x62,0x6F,
-	0x61,0x72,0x64,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,
-	0x73,0x2E,0x20,0x4D,0x61,0x6E,0x79,0x20,0x6F,0x66,0x20,0x74,
-	0x68,0x65,0x6D,0x20,0x61,0x72,0x65,0x20,0x74,0x68,0x65,0x20,
-	0x73,0x61,0x6D,0x65,0x45,0x66,0x72,0x6F,0x6D,0x20,0x46,0x61,
-	0x73,0x74,0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x31,0x20,
-	0x61,0x6E,0x64,0x20,0x50,0x72,0x6F,0x54,0x72,0x61,0x63,0x6B,
-	0x65,0x72,0x20,0x74,0x6F,0x20,0x65,0x6E,0x73,0x75,0x72,0x65,
-	0x20,0x74,0x68,0x61,0x74,0x20,0x79,0x6F,0x75,0x20,0x66,0x65,
-	0x65,0x6C,0x20,0x63,0x6F,0x6D,0x66,0x6F,0x72,0x74,0x61,0x62,
-	0x6C,0x65,0x2E,0x75,0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x69,
-	0x73,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x66,0x72,
-	0x6F,0x6D,0x20,0x74,0x68,0x65,0x20,0x76,0x65,0x72,0x79,0x20,
-	0x66,0x69,0x72,0x73,0x74,0x20,0x6D,0x69,0x6E,0x75,0x74,0x65,
-	0x2E,0x01,0x3E,0x2B,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x4E,0x6F,0x74,0x65,0x20,0x66,0x6F,0x72,0x20,
-	0x4D,0x61,0x63,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,
-	0x73,0x20,0x6F,0x6E,0x20,0x4D,0x61,0x63,0x4F,0x53,0x3A,0x2F,
-	0x3E,0x40,0x43,0x30,0x30,0x32,0x2D,0x20,0x54,0x68,0x65,0x20,
-	0x6C,0x65,0x66,0x74,0x20,0x4F,0x70,0x74,0x69,0x6F,0x6E,0x20,
-	0x6B,0x65,0x79,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6C,
-	0x65,0x66,0x74,0x20,0x41,0x6C,0x74,0x20,0x6B,0x65,0x79,0x3B,
-	0x3E,0x2D,0x20,0x54,0x68,0x65,0x20,0x6C,0x65,0x66,0x74,0x20,
-	0x43,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x6B,0x65,0x79,0x20,
-	0x63,0x61,0x6E,0x20,0x61,0x6C,0x73,0x6F,0x20,0x62,0x65,0x20,
-	0x75,0x73,0x65,0x64,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,
-	0x20,0x6F,0x66,0x20,0x41,0x6C,0x74,0x20,0x66,0x6F,0x72,0x3A,
-	0x3E,0x40,0x58,0x30,0x33,0x31,0x22,0x73,0x65,0x6C,0x65,0x63,
-	0x74,0x20,0x61,0x6C,0x6C,0x22,0x2F,0x63,0x75,0x74,0x2F,0x63,
-	0x6F,0x70,0x79,0x2F,0x70,0x61,0x73,0x74,0x65,0x20,0x66,0x6F,
-	0x72,0x20,0x74,0x65,0x78,0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C,
-	0x65,0x20,0x65,0x64,0x69,0x74,0x69,0x6E,0x67,0x2E,0x0B,0x3E,
-	0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x26,0x3E,
-	0x59,0x6F,0x75,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,
-	0x65,0x20,0x61,0x77,0x61,0x72,0x65,0x20,0x6F,0x66,0x20,0x74,
-	0x68,0x65,0x20,0x66,0x61,0x63,0x74,0x20,0x74,0x68,0x61,0x74,
-	0x3A,0x01,0x3E,0x48,0x3E,0x40,0x43,0x30,0x30,0x32,0x54,0x68,
-	0x69,0x73,0x20,0x68,0x65,0x6C,0x70,0x20,0x74,0x65,0x78,0x74,
-	0x20,0x69,0x73,0x20,0x77,0x72,0x69,0x74,0x74,0x65,0x6E,0x20,
-	0x75,0x73,0x69,0x6E,0x67,0x20,0x61,0x20,0x53,0x77,0x65,0x64,
-	0x69,0x73,0x68,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,
-	0x2E,0x20,0x54,0x68,0x65,0x72,0x65,0x66,0x6F,0x72,0x65,0x20,
-	0x73,0x6F,0x6D,0x65,0x2F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,
-	0x63,0x65,0x73,0x20,0x74,0x6F,0x20,0x6E,0x6F,0x6E,0x2D,0x6F,
-	0x72,0x64,0x69,0x6E,0x61,0x72,0x79,0x20,0x6B,0x65,0x79,0x73,
-	0x20,0x6D,0x69,0x67,0x68,0x74,0x20,0x62,0x65,0x20,0x77,0x72,
-	0x6F,0x6E,0x67,0x2E,0x0F,0x53,0x68,0x20,0x3D,0x20,0x73,0x68,
-	0x69,0x66,0x74,0x20,0x6B,0x65,0x79,0x2E,0x01,0x3E,0x10,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x75,0x64,
-	0x69,0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x32,0x3E,0x43,0x74,0x72,0x6C,0x20,0x26,0x20,
-	0x6E,0x75,0x6D,0x70,0x61,0x64,0x2B,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x6D,0x61,
-	0x73,0x74,0x65,0x72,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,
-	0x62,0x79,0x20,0x31,0x36,0x2E,0x32,0x3E,0x43,0x74,0x72,0x6C,
-	0x20,0x26,0x20,0x6E,0x75,0x6D,0x70,0x61,0x64,0x2D,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x44,0x65,0x63,0x72,0x65,0x61,0x73,0x65,
-	0x20,0x6D,0x61,0x73,0x74,0x65,0x72,0x20,0x76,0x6F,0x6C,0x75,
-	0x6D,0x65,0x20,0x62,0x79,0x20,0x31,0x36,0x2E,0x00,0x10,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x64,
-	0x65,0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x25,0x41,0x6C,0x74,0x2B,0x45,0x6E,0x74,0x65,
-	0x72,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x6F,0x67,0x67,0x6C,
-	0x65,0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,
-	0x20,0x6D,0x6F,0x64,0x65,0x01,0x3E,0x2C,0x3E,0x28,0x4F,0x72,
-	0x20,0x22,0x4C,0x65,0x66,0x74,0x20,0x43,0x74,0x72,0x6C,0x20,
-	0x2B,0x20,0x4C,0x65,0x66,0x74,0x20,0x43,0x6F,0x6D,0x6D,0x61,
-	0x6E,0x64,0x20,0x2B,0x20,0x46,0x22,0x20,0x6F,0x6E,0x20,0x4D,
-	0x61,0x63,0x73,0x29,0x00,0x17,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x43,0x75,0x72,0x73,0x6F,0x72,0x20,0x6D,
-	0x6F,0x76,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
-	0x40,0x43,0x30,0x30,0x32,0x1D,0x46,0x39,0x2E,0x2E,0x46,0x31,
-	0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,
-	0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x32,
-	0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x39,0x2E,0x2E,0x46,0x31,
-	0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x74,0x74,0x65,
-	0x72,0x6E,0x2D,0x70,0x6C,0x61,0x79,0x20,0x66,0x72,0x6F,0x6D,
-	0x20,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32,0x20,0x6C,0x69,0x6E,
-	0x65,0x2E,0x2F,0x3E,0x53,0x68,0x2B,0x46,0x39,0x2E,0x2E,0x46,
-	0x31,0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x74,0x6F,0x72,
-	0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x6C,0x69,
-	0x6E,0x65,0x20,0x69,0x6E,0x20,0x46,0x39,0x2E,0x2E,0x46,0x31,
-	0x32,0x2E,0x24,0x3E,0x50,0x61,0x67,0x65,0x55,0x70,0x20,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x31,0x36,
-	0x2D,0x6C,0x69,0x6E,0x65,0x73,0x20,0x75,0x70,0x77,0x61,0x72,
-	0x64,0x73,0x2E,0x27,0x3E,0x50,0x61,0x67,0x65,0x44,0x6F,0x77,
-	0x6E,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,
-	0x31,0x36,0x2D,0x6C,0x69,0x6E,0x65,0x73,0x20,0x64,0x6F,0x77,
-	0x6E,0x77,0x61,0x72,0x64,0x73,0x2E,0x1B,0x3E,0x48,0x6F,0x6D,
-	0x65,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,
-	0x20,0x74,0x6F,0x20,0x6C,0x69,0x6E,0x65,0x20,0x30,0x2E,0x1D,
-	0x3E,0x45,0x6E,0x64,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,
-	0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x6C,0x61,0x73,0x74,0x20,
-	0x6C,0x69,0x6E,0x65,0x2E,0x1E,0x3E,0x54,0x61,0x62,0x20,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x74,0x6F,
-	0x20,0x6E,0x65,0x78,0x74,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,
-	0x33,0x3E,0x41,0x6C,0x74,0x2B,0x51,0x2E,0x2E,0x49,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,
-	0x74,0x72,0x61,0x63,0x6B,0x20,0x28,0x30,0x2E,0x2E,0x37,0x29,
-	0x20,0x4D,0x4F,0x44,0x20,0x4E,0x2D,0x43,0x68,0x61,0x6E,0x6E,
-	0x65,0x6C,0x73,0x2E,0x34,0x3E,0x41,0x6C,0x74,0x2B,0x41,0x2E,
-	0x2E,0x4B,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,
-	0x20,0x74,0x6F,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x28,0x38,
-	0x2E,0x2E,0x31,0x35,0x29,0x20,0x4D,0x4F,0x44,0x20,0x4E,0x2D,
-	0x43,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73,0x2E,0x00,0x19,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x75,0x74,
-	0x2F,0x43,0x6F,0x70,0x79,0x2F,0x50,0x61,0x73,0x74,0x65,0x3A,
+	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0D,0x40,0x4C,
+	0x4B,0x65,0x79,0x62,0x69,0x6E,0x64,0x69,0x6E,0x67,0x73,0x0B,
+	0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x32,0x4A,
+	0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x68,0x61,0x76,0x65,
+	0x20,0x61,0x6E,0x20,0x61,0x6D,0x62,0x69,0x74,0x69,0x6F,0x6E,
+	0x20,0x74,0x6F,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x6D,
+	0x75,0x73,0x69,0x63,0x20,0x65,0x66,0x66,0x69,0x63,0x69,0x65,
+	0x6E,0x74,0x6C,0x79,0x20,0x77,0x65,0x20,0x73,0x74,0x72,0x6F,
+	0x6E,0x67,0x6C,0x79,0x20,0x72,0x65,0x63,0x6F,0x6D,0x6D,0x65,
+	0x6E,0x64,0x44,0x74,0x68,0x61,0x74,0x20,0x79,0x6F,0x75,0x20,
+	0x6C,0x65,0x61,0x72,0x6E,0x20,0x41,0x4C,0x4C,0x20,0x74,0x68,
+	0x65,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x20,0x66,
+	0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x2E,0x20,0x4D,0x61,
+	0x6E,0x79,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x6D,0x20,0x61,
+	0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x45,
+	0x66,0x72,0x6F,0x6D,0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61,
+	0x63,0x6B,0x65,0x72,0x20,0x31,0x20,0x61,0x6E,0x64,0x20,0x50,
+	0x72,0x6F,0x54,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x74,0x6F,
+	0x20,0x65,0x6E,0x73,0x75,0x72,0x65,0x20,0x74,0x68,0x61,0x74,
+	0x20,0x79,0x6F,0x75,0x20,0x66,0x65,0x65,0x6C,0x20,0x63,0x6F,
+	0x6D,0x66,0x6F,0x72,0x74,0x61,0x62,0x6C,0x65,0x2E,0x75,0x73,
+	0x69,0x6E,0x67,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x72,0x6F,
+	0x67,0x72,0x61,0x6D,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68,
+	0x65,0x20,0x76,0x65,0x72,0x79,0x20,0x66,0x69,0x72,0x73,0x74,
+	0x20,0x6D,0x69,0x6E,0x75,0x74,0x65,0x2E,0x01,0x3E,0x2B,0x3E,
+	0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x32,0x4E,0x6F,
+	0x74,0x65,0x20,0x66,0x6F,0x72,0x20,0x4D,0x61,0x63,0x20,0x6B,
+	0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x73,0x20,0x6F,0x6E,0x20,
+	0x4D,0x61,0x63,0x4F,0x53,0x3A,0x2F,0x3E,0x40,0x43,0x30,0x30,
+	0x32,0x2D,0x20,0x54,0x68,0x65,0x20,0x6C,0x65,0x66,0x74,0x20,
+	0x4F,0x70,0x74,0x69,0x6F,0x6E,0x20,0x6B,0x65,0x79,0x20,0x69,
+	0x73,0x20,0x74,0x68,0x65,0x20,0x6C,0x65,0x66,0x74,0x20,0x41,
+	0x6C,0x74,0x20,0x6B,0x65,0x79,0x3B,0x3E,0x2D,0x20,0x54,0x68,
+	0x65,0x20,0x6C,0x65,0x66,0x74,0x20,0x43,0x6F,0x6D,0x6D,0x61,
+	0x6E,0x64,0x20,0x6B,0x65,0x79,0x20,0x63,0x61,0x6E,0x20,0x61,
+	0x6C,0x73,0x6F,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,
+	0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x20,0x6F,0x66,0x20,0x41,
+	0x6C,0x74,0x20,0x66,0x6F,0x72,0x3A,0x3E,0x40,0x58,0x30,0x33,
+	0x31,0x22,0x73,0x65,0x6C,0x65,0x63,0x74,0x20,0x61,0x6C,0x6C,
+	0x22,0x2F,0x63,0x75,0x74,0x2F,0x63,0x6F,0x70,0x79,0x2F,0x70,
+	0x61,0x73,0x74,0x65,0x20,0x66,0x6F,0x72,0x20,0x74,0x65,0x78,
+	0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x65,0x64,0x69,
+	0x74,0x69,0x6E,0x67,0x2E,0x0B,0x3E,0x40,0x58,0x30,0x32,0x30,
+	0x40,0x43,0x30,0x30,0x31,0x26,0x3E,0x59,0x6F,0x75,0x20,0x73,
+	0x68,0x6F,0x75,0x6C,0x64,0x20,0x62,0x65,0x20,0x61,0x77,0x61,
+	0x72,0x65,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x66,0x61,
+	0x63,0x74,0x20,0x74,0x68,0x61,0x74,0x3A,0x01,0x3E,0x48,0x3E,
+	0x40,0x43,0x30,0x30,0x32,0x54,0x68,0x69,0x73,0x20,0x68,0x65,
+	0x6C,0x70,0x20,0x74,0x65,0x78,0x74,0x20,0x69,0x73,0x20,0x77,
+	0x72,0x69,0x74,0x74,0x65,0x6E,0x20,0x75,0x73,0x69,0x6E,0x67,
+	0x20,0x61,0x20,0x53,0x77,0x65,0x64,0x69,0x73,0x68,0x20,0x6B,
+	0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x2E,0x20,0x54,0x68,0x65,
+	0x72,0x65,0x66,0x6F,0x72,0x65,0x20,0x73,0x6F,0x6D,0x65,0x2F,
+	0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x20,0x74,
+	0x6F,0x20,0x6E,0x6F,0x6E,0x2D,0x6F,0x72,0x64,0x69,0x6E,0x61,
+	0x72,0x79,0x20,0x6B,0x65,0x79,0x73,0x20,0x6D,0x69,0x67,0x68,
+	0x74,0x20,0x62,0x65,0x20,0x77,0x72,0x6F,0x6E,0x67,0x2E,0x0F,
+	0x53,0x68,0x20,0x3D,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x6B,
+	0x65,0x79,0x2E,0x01,0x3E,0x10,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x41,0x75,0x64,0x69,0x6F,0x3A,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x32,0x3E,
+	0x43,0x74,0x72,0x6C,0x20,0x26,0x20,0x6E,0x75,0x6D,0x70,0x61,
+	0x64,0x2B,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x63,0x72,
+	0x65,0x61,0x73,0x65,0x20,0x6D,0x61,0x73,0x74,0x65,0x72,0x20,
+	0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x62,0x79,0x20,0x31,0x36,
+	0x2E,0x32,0x3E,0x43,0x74,0x72,0x6C,0x20,0x26,0x20,0x6E,0x75,
+	0x6D,0x70,0x61,0x64,0x2D,0x20,0x40,0x54,0x31,0x36,0x30,0x44,
+	0x65,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x6D,0x61,0x73,0x74,
+	0x65,0x72,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x62,0x79,
+	0x20,0x31,0x36,0x2E,0x00,0x10,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x56,0x69,0x64,0x65,0x6F,0x3A,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x25,0x41,
+	0x6C,0x74,0x2B,0x45,0x6E,0x74,0x65,0x72,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x54,0x6F,0x67,0x67,0x6C,0x65,0x20,0x66,0x75,0x6C,
+	0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,
+	0x01,0x3E,0x2C,0x3E,0x28,0x4F,0x72,0x20,0x22,0x4C,0x65,0x66,
+	0x74,0x20,0x43,0x74,0x72,0x6C,0x20,0x2B,0x20,0x4C,0x65,0x66,
+	0x74,0x20,0x43,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,0x2B,0x20,
+	0x46,0x22,0x20,0x6F,0x6E,0x20,0x4D,0x61,0x63,0x73,0x29,0x00,
+	0x17,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,
+	0x75,0x72,0x73,0x6F,0x72,0x20,0x6D,0x6F,0x76,0x65,0x73,0x3A,
 	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x34,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x20,0x40,0x54,0x31,
-	0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x6E,0x6F,0x74,
-	0x65,0x20,0x6F,0x72,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,
-	0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x61,0x74,0x20,0x63,0x75,
-	0x72,0x73,0x6F,0x72,0x2E,0x39,0x3E,0x53,0x68,0x2B,0x44,0x65,
+	0x1D,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x69,0x6E,0x20,0x70,0x61,
+	0x74,0x74,0x65,0x72,0x6E,0x2E,0x32,0x3E,0x43,0x74,0x72,0x6C,
+	0x2B,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x2D,0x70,0x6C,
+	0x61,0x79,0x20,0x66,0x72,0x6F,0x6D,0x20,0x46,0x39,0x2E,0x2E,
+	0x46,0x31,0x32,0x20,0x6C,0x69,0x6E,0x65,0x2E,0x2F,0x3E,0x53,
+	0x68,0x2B,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x53,0x74,0x6F,0x72,0x65,0x20,0x63,0x75,0x72,
+	0x72,0x65,0x6E,0x74,0x20,0x6C,0x69,0x6E,0x65,0x20,0x69,0x6E,
+	0x20,0x46,0x39,0x2E,0x2E,0x46,0x31,0x32,0x2E,0x24,0x3E,0x50,
+	0x61,0x67,0x65,0x55,0x70,0x20,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x4A,0x75,0x6D,0x70,0x20,0x31,0x36,0x2D,0x6C,0x69,0x6E,0x65,
+	0x73,0x20,0x75,0x70,0x77,0x61,0x72,0x64,0x73,0x2E,0x27,0x3E,
+	0x50,0x61,0x67,0x65,0x44,0x6F,0x77,0x6E,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x31,0x36,0x2D,0x6C,0x69,
+	0x6E,0x65,0x73,0x20,0x64,0x6F,0x77,0x6E,0x77,0x61,0x72,0x64,
+	0x73,0x2E,0x1B,0x3E,0x48,0x6F,0x6D,0x65,0x20,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x6C,
+	0x69,0x6E,0x65,0x20,0x30,0x2E,0x1D,0x3E,0x45,0x6E,0x64,0x20,
+	0x20,0x40,0x54,0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x74,
+	0x6F,0x20,0x6C,0x61,0x73,0x74,0x20,0x6C,0x69,0x6E,0x65,0x2E,
+	0x1E,0x3E,0x54,0x61,0x62,0x20,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x4A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x6E,0x65,0x78,0x74,
+	0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x33,0x3E,0x41,0x6C,0x74,
+	0x2B,0x51,0x2E,0x2E,0x49,0x20,0x40,0x54,0x31,0x36,0x30,0x4A,
+	0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x74,0x72,0x61,0x63,0x6B,
+	0x20,0x28,0x30,0x2E,0x2E,0x37,0x29,0x20,0x4D,0x4F,0x44,0x20,
+	0x4E,0x2D,0x43,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73,0x2E,0x34,
+	0x3E,0x41,0x6C,0x74,0x2B,0x41,0x2E,0x2E,0x4B,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x4A,0x75,0x6D,0x70,0x20,0x74,0x6F,0x20,0x74,
+	0x72,0x61,0x63,0x6B,0x20,0x28,0x38,0x2E,0x2E,0x31,0x35,0x29,
+	0x20,0x4D,0x4F,0x44,0x20,0x4E,0x2D,0x43,0x68,0x61,0x6E,0x6E,
+	0x65,0x6C,0x73,0x2E,0x00,0x19,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x43,0x75,0x74,0x2F,0x43,0x6F,0x70,0x79,
+	0x2F,0x50,0x61,0x73,0x74,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x34,0x44,0x65,0x6C,0x65,
+	0x74,0x65,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x6C,
+	0x65,0x74,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x6F,0x72,0x20,
+	0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x63,0x6F,0x6C,0x75,0x6D,
+	0x6E,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,
+	0x39,0x3E,0x53,0x68,0x2B,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,
+	0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,
+	0x6E,0x6F,0x74,0x65,0x2C,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,
+	0x20,0x61,0x6E,0x64,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,
+	0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x35,0x3E,
+	0x43,0x74,0x72,0x6C,0x2B,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,
+	0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,
+	0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x61,0x6E,0x64,0x20,0x65,
+	0x66,0x66,0x65,0x63,0x74,0x20,0x61,0x74,0x20,0x63,0x75,0x72,
+	0x73,0x6F,0x72,0x2E,0x29,0x3E,0x41,0x6C,0x74,0x2B,0x44,0x65,
 	0x6C,0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,
-	0x6C,0x65,0x74,0x65,0x20,0x6E,0x6F,0x74,0x65,0x2C,0x20,0x76,
-	0x6F,0x6C,0x75,0x6D,0x65,0x20,0x61,0x6E,0x64,0x20,0x65,0x66,
-	0x66,0x65,0x63,0x74,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,
-	0x6F,0x72,0x2E,0x35,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x44,0x65,
-	0x6C,0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,
-	0x6C,0x65,0x74,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,
-	0x61,0x6E,0x64,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x61,
-	0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x29,0x3E,0x41,
-	0x6C,0x74,0x2B,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x40,0x54,
-	0x31,0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x65,0x66,
-	0x66,0x65,0x63,0x74,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,
-	0x6F,0x72,0x2E,0x01,0x3E,0x24,0x3E,0x49,0x6E,0x73,0x65,0x72,
-	0x74,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x65,
-	0x72,0x74,0x20,0x6E,0x6F,0x74,0x65,0x20,0x61,0x74,0x20,0x63,
-	0x75,0x72,0x73,0x6F,0x72,0x2E,0x27,0x3E,0x53,0x68,0x2B,0x49,
-	0x6E,0x73,0x65,0x72,0x74,0x20,0x20,0x40,0x54,0x31,0x36,0x30,
-	0x49,0x6E,0x73,0x65,0x72,0x74,0x20,0x6C,0x69,0x6E,0x65,0x20,
+	0x6C,0x65,0x74,0x65,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,
 	0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x01,0x3E,
-	0x3E,0x3E,0x40,0x58,0x30,0x31,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x41,0x6C,0x74,0x65,0x72,0x6E,0x61,0x74,0x69,0x76,0x65,0x20,
-	0x6B,0x65,0x79,0x73,0x20,0x28,0x4D,0x61,0x63,0x20,0x6F,0x72,
-	0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x73,0x20,0x77,
-	0x69,0x74,0x68,0x6F,0x75,0x74,0x20,0x49,0x6E,0x73,0x65,0x72,
-	0x74,0x29,0x3A,0x33,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x43,0x74,0x72,0x6C,0x2B,0x52,0x65,0x74,0x75,
-	0x72,0x6E,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,
-	0x65,0x72,0x74,0x20,0x6E,0x6F,0x74,0x65,0x20,0x61,0x74,0x20,
-	0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x2C,0x3E,0x43,0x74,0x72,
-	0x6C,0x2B,0x53,0x68,0x2B,0x52,0x65,0x74,0x75,0x72,0x6E,0x20,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x65,0x72,0x74,
-	0x20,0x6C,0x69,0x6E,0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72,
-	0x73,0x6F,0x72,0x2E,0x01,0x3E,0x25,0x3E,0x42,0x61,0x63,0x6B,
+	0x24,0x3E,0x49,0x6E,0x73,0x65,0x72,0x74,0x20,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x49,0x6E,0x73,0x65,0x72,0x74,0x20,0x6E,0x6F,
+	0x74,0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,
+	0x2E,0x27,0x3E,0x53,0x68,0x2B,0x49,0x6E,0x73,0x65,0x72,0x74,
+	0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x65,0x72,
+	0x74,0x20,0x6C,0x69,0x6E,0x65,0x20,0x61,0x74,0x20,0x63,0x75,
+	0x72,0x73,0x6F,0x72,0x2E,0x01,0x3E,0x3E,0x3E,0x40,0x58,0x30,
+	0x31,0x30,0x40,0x43,0x30,0x30,0x32,0x41,0x6C,0x74,0x65,0x72,
+	0x6E,0x61,0x74,0x69,0x76,0x65,0x20,0x6B,0x65,0x79,0x73,0x20,
+	0x28,0x4D,0x61,0x63,0x20,0x6F,0x72,0x20,0x6B,0x65,0x79,0x62,
+	0x6F,0x61,0x72,0x64,0x73,0x20,0x77,0x69,0x74,0x68,0x6F,0x75,
+	0x74,0x20,0x49,0x6E,0x73,0x65,0x72,0x74,0x29,0x3A,0x33,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x43,0x74,
+	0x72,0x6C,0x2B,0x52,0x65,0x74,0x75,0x72,0x6E,0x20,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x65,0x72,0x74,0x20,0x6E,
+	0x6F,0x74,0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,
+	0x72,0x2E,0x2C,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x53,0x68,0x2B,
+	0x52,0x65,0x74,0x75,0x72,0x6E,0x20,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x49,0x6E,0x73,0x65,0x72,0x74,0x20,0x6C,0x69,0x6E,0x65,
+	0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x01,
+	0x3E,0x25,0x3E,0x42,0x61,0x63,0x6B,0x73,0x70,0x61,0x63,0x65,
+	0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,
+	0x20,0x70,0x72,0x65,0x76,0x69,0x6F,0x75,0x73,0x20,0x6E,0x6F,
+	0x74,0x65,0x2E,0x28,0x3E,0x53,0x68,0x2B,0x42,0x61,0x63,0x6B,
 	0x73,0x70,0x61,0x63,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x44,
 	0x65,0x6C,0x65,0x74,0x65,0x20,0x70,0x72,0x65,0x76,0x69,0x6F,
-	0x75,0x73,0x20,0x6E,0x6F,0x74,0x65,0x2E,0x28,0x3E,0x53,0x68,
-	0x2B,0x42,0x61,0x63,0x6B,0x73,0x70,0x61,0x63,0x65,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x70,
-	0x72,0x65,0x76,0x69,0x6F,0x75,0x73,0x20,0x6C,0x69,0x6E,0x65,
-	0x2E,0x1C,0x3E,0x41,0x6C,0x74,0x2B,0x43,0x75,0x72,0x73,0x6F,
-	0x72,0x20,0x40,0x54,0x31,0x36,0x30,0x4D,0x61,0x72,0x6B,0x20,
-	0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x16,0x3E,0x53,0x68,0x2B,0x46,
-	0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75,0x74,0x20,0x74,
-	0x72,0x61,0x63,0x6B,0x2E,0x17,0x3E,0x53,0x68,0x2B,0x46,0x34,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70,0x79,0x20,0x74,
-	0x72,0x61,0x63,0x6B,0x2E,0x18,0x3E,0x53,0x68,0x2B,0x46,0x35,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74,0x65,0x20,
-	0x74,0x72,0x61,0x63,0x6B,0x2E,0x1A,0x3E,0x43,0x74,0x72,0x6C,
-	0x2B,0x46,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75,0x74,
-	0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x1B,0x3E,0x43,
-	0x74,0x72,0x6C,0x2B,0x46,0x34,0x20,0x40,0x54,0x31,0x36,0x30,
-	0x43,0x6F,0x70,0x79,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,
-	0x2E,0x1C,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x35,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74,0x65,0x20,0x70,0x61,
-	0x74,0x74,0x65,0x72,0x6E,0x2E,0x17,0x3E,0x41,0x6C,0x74,0x2B,
-	0x46,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75,0x74,0x20,
-	0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x18,0x3E,0x41,0x6C,0x74,0x2B,
-	0x46,0x34,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70,0x79,
-	0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x19,0x3E,0x41,0x6C,0x74,
-	0x2B,0x46,0x35,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,
-	0x74,0x65,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x20,0x3E,0x41,
-	0x6C,0x74,0x2B,0x43,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x4D,
-	0x61,0x72,0x6B,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,
-	0x74,0x72,0x61,0x63,0x6B,0x2E,0x00,0x18,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x69,0x73,0x63,0x65,0x6C,
-	0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x3A,0x0B,0x3E,0x40,0x58,
-	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1C,0x52,0x69,0x67,
-	0x68,0x74,0x20,0x63,0x74,0x72,0x6C,0x2E,0x20,0x20,0x40,0x54,
-	0x31,0x36,0x30,0x50,0x6C,0x61,0x79,0x20,0x73,0x6F,0x6E,0x67,
-	0x2E,0x20,0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x61,0x6C,0x74,
-	0x20,0x20,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x6C,0x61,
-	0x79,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x22,0x3E,
-	0x52,0x69,0x67,0x68,0x74,0x20,0x73,0x68,0x69,0x66,0x74,0x20,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x52,0x65,0x63,0x6F,0x72,0x64,
-	0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x19,0x3E,0x53,
-	0x70,0x61,0x63,0x65,0x20,0x20,0x20,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x53,0x74,0x6F,0x70,0x2F,0x45,0x64,0x69,0x74,0x2E,0x1B,
-	0x3E,0x46,0x31,0x2E,0x2E,0x46,0x37,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x6F,0x63,0x74,0x61,
-	0x76,0x65,0x2E,0x27,0x3E,0x4B,0x65,0x79,0x20,0x62,0x65,0x6C,
-	0x6F,0x77,0x20,0x45,0x73,0x63,0x20,0x40,0x54,0x31,0x36,0x30,
-	0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x63,0x75,0x72,
-	0x73,0x6F,0x72,0x61,0x64,0x64,0x2E,0x22,0x3E,0x53,0x68,0x2B,
-	0x28,0x31,0x2F,0x32,0x29,0x20,0x40,0x54,0x31,0x36,0x30,0x44,
-	0x65,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x63,0x75,0x72,0x73,
-	0x6F,0x72,0x61,0x64,0x64,0x2E,0x29,0x3E,0x43,0x61,0x70,0x73,
-	0x4C,0x6F,0x63,0x6B,0x20,0x6F,0x72,0x20,0x3C,0x3E,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x45,0x6E,0x74,0x65,0x72,0x20,0x4B,0x65,
-	0x79,0x6F,0x66,0x66,0x2D,0x22,0x6E,0x6F,0x74,0x65,0x22,0x2E,
-	0x25,0x3E,0x53,0x68,0x2B,0x4C,0x65,0x66,0x74,0x20,0x40,0x54,
-	0x31,0x36,0x30,0x49,0x6E,0x63,0x72,0x65,0x61,0x73,0x65,0x20,
-	0x73,0x6F,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,
-	0x6E,0x2E,0x26,0x3E,0x53,0x68,0x2B,0x52,0x69,0x67,0x68,0x74,
+	0x75,0x73,0x20,0x6C,0x69,0x6E,0x65,0x2E,0x1C,0x3E,0x41,0x6C,
+	0x74,0x2B,0x43,0x75,0x72,0x73,0x6F,0x72,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x4D,0x61,0x72,0x6B,0x20,0x62,0x6C,0x6F,0x63,0x6B,
+	0x2E,0x16,0x3E,0x53,0x68,0x2B,0x46,0x33,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x43,0x75,0x74,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,
+	0x17,0x3E,0x53,0x68,0x2B,0x46,0x34,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x43,0x6F,0x70,0x79,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,
+	0x18,0x3E,0x53,0x68,0x2B,0x46,0x35,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x50,0x61,0x73,0x74,0x65,0x20,0x74,0x72,0x61,0x63,0x6B,
+	0x2E,0x1A,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x33,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x43,0x75,0x74,0x20,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x2E,0x1B,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,
+	0x34,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70,0x79,0x20,
+	0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x1C,0x3E,0x43,0x74,
+	0x72,0x6C,0x2B,0x46,0x35,0x20,0x40,0x54,0x31,0x36,0x30,0x50,
+	0x61,0x73,0x74,0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,
+	0x2E,0x17,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x33,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x43,0x75,0x74,0x20,0x62,0x6C,0x6F,0x63,0x6B,
+	0x2E,0x18,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x34,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x43,0x6F,0x70,0x79,0x20,0x62,0x6C,0x6F,0x63,
+	0x6B,0x2E,0x19,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x35,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74,0x65,0x20,0x62,0x6C,
+	0x6F,0x63,0x6B,0x2E,0x20,0x3E,0x41,0x6C,0x74,0x2B,0x43,0x20,
+	0x20,0x40,0x54,0x31,0x36,0x30,0x4D,0x61,0x72,0x6B,0x20,0x63,
+	0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x74,0x72,0x61,0x63,0x6B,
+	0x2E,0x00,0x18,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,
+	0x75,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x1C,0x52,0x69,0x67,0x68,0x74,0x20,0x63,0x74,
+	0x72,0x6C,0x2E,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x6C,
+	0x61,0x79,0x20,0x73,0x6F,0x6E,0x67,0x2E,0x20,0x3E,0x52,0x69,
+	0x67,0x68,0x74,0x20,0x61,0x6C,0x74,0x20,0x20,0x20,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x50,0x6C,0x61,0x79,0x20,0x70,0x61,0x74,
+	0x74,0x65,0x72,0x6E,0x2E,0x22,0x3E,0x52,0x69,0x67,0x68,0x74,
+	0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x52,0x65,0x63,0x6F,0x72,0x64,0x20,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x2E,0x19,0x3E,0x53,0x70,0x61,0x63,0x65,0x20,
+	0x20,0x20,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x74,0x6F,0x70,
+	0x2F,0x45,0x64,0x69,0x74,0x2E,0x1B,0x3E,0x46,0x31,0x2E,0x2E,
+	0x46,0x37,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,
+	0x63,0x74,0x20,0x6F,0x63,0x74,0x61,0x76,0x65,0x2E,0x27,0x3E,
+	0x4B,0x65,0x79,0x20,0x62,0x65,0x6C,0x6F,0x77,0x20,0x45,0x73,
+	0x63,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x63,0x72,0x65,
+	0x61,0x73,0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x61,0x64,
+	0x64,0x2E,0x22,0x3E,0x53,0x68,0x2B,0x28,0x31,0x2F,0x32,0x29,
 	0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x65,0x63,0x72,0x65,0x61,
-	0x73,0x65,0x20,0x73,0x6F,0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,
-	0x74,0x69,0x6F,0x6E,0x2E,0x28,0x3E,0x43,0x74,0x72,0x6C,0x2B,
+	0x73,0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x61,0x64,0x64,
+	0x2E,0x29,0x3E,0x43,0x61,0x70,0x73,0x4C,0x6F,0x63,0x6B,0x20,
+	0x6F,0x72,0x20,0x3C,0x3E,0x20,0x40,0x54,0x31,0x36,0x30,0x45,
+	0x6E,0x74,0x65,0x72,0x20,0x4B,0x65,0x79,0x6F,0x66,0x66,0x2D,
+	0x22,0x6E,0x6F,0x74,0x65,0x22,0x2E,0x25,0x3E,0x53,0x68,0x2B,
 	0x4C,0x65,0x66,0x74,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,
-	0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x70,0x61,0x74,0x74,0x65,
-	0x72,0x6E,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x2E,0x29,0x3E,
-	0x43,0x74,0x72,0x6C,0x2B,0x52,0x69,0x67,0x68,0x74,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x44,0x65,0x63,0x72,0x65,0x61,0x73,0x65,
-	0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6E,0x75,0x6D,
-	0x62,0x65,0x72,0x2E,0x00,0x2C,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,
-	0x6E,0x65,0x6F,0x75,0x73,0x20,0x28,0x6F,0x6E,0x20,0x61,0x20,
-	0x4D,0x61,0x63,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,
-	0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
-	0x30,0x32,0x1E,0x52,0x69,0x67,0x68,0x74,0x20,0x63,0x6F,0x6D,
-	0x6D,0x61,0x6E,0x64,0x20,0x20,0x40,0x54,0x32,0x34,0x30,0x50,
-	0x6C,0x61,0x79,0x20,0x73,0x6F,0x6E,0x67,0x2E,0x25,0x3E,0x52,
-	0x69,0x67,0x68,0x74,0x20,0x61,0x6C,0x74,0x2F,0x6F,0x70,0x74,
-	0x69,0x6F,0x6E,0x20,0x20,0x40,0x54,0x32,0x34,0x30,0x50,0x6C,
-	0x61,0x79,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x22,
-	0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x73,0x68,0x69,0x66,0x74,
-	0x20,0x20,0x40,0x54,0x32,0x34,0x30,0x52,0x65,0x63,0x6F,0x72,
-	0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x00,0x1B,
-	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x57,0x69,
-	0x6E,0x64,0x6F,0x77,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x69,
-	0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x05,0x43,0x74,0x72,0x6C,0x2B,0x16,0x3E,0x41,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x41,0x64,0x76,0x61,0x6E,0x63,
-	0x65,0x64,0x20,0x65,0x64,0x69,0x74,0x2E,0x0E,0x3E,0x42,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x41,0x62,0x6F,0x75,0x74,0x2E,0x16,
-	0x3E,0x43,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,
-	0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2E,0x18,0x3E,
-	0x44,0x20,0x40,0x54,0x31,0x36,0x30,0x44,0x69,0x73,0x6B,0x20,
-	0x6F,0x70,0x65,0x72,0x61,0x74,0x69,0x6F,0x6E,0x73,0x2E,0x20,
-	0x3E,0x45,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x61,0x6D,0x70,
-	0x6C,0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x20,0x65,0x78,
-	0x74,0x65,0x6E,0x73,0x69,0x6F,0x6E,0x2E,0x0D,0x3E,0x48,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x48,0x65,0x6C,0x70,0x2E,0x1A,0x3E,
-	0x49,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x74,0x72,
-	0x75,0x6D,0x65,0x6E,0x74,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,
-	0x2E,0x2B,0x3E,0x4D,0x20,0x40,0x54,0x31,0x36,0x30,0x49,0x6E,
-	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x65,0x64,0x69,
-	0x74,0x6F,0x72,0x20,0x65,0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,
-	0x6E,0x2E,0x20,0x28,0x4D,0x49,0x44,0x49,0x29,0x10,0x3E,0x4E,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x4E,0x69,0x62,0x62,0x6C,0x65,
-	0x73,0x2E,0x10,0x3E,0x50,0x20,0x40,0x54,0x31,0x36,0x30,0x50,
-	0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x0D,0x3E,0x52,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x54,0x72,0x69,0x6D,0x2E,0x16,0x3E,0x53,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x61,0x6D,0x70,0x6C,0x65,
-	0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x2E,0x12,0x3E,0x54,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,
-	0x73,0x65,0x2E,0x23,0x3E,0x58,0x20,0x40,0x54,0x31,0x36,0x30,
-	0x4D,0x61,0x69,0x6E,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,0x2E,
-	0x20,0x28,0x61,0x6C,0x6D,0x6F,0x73,0x74,0x20,0x61,0x6C,0x74,
-	0x2B,0x58,0x29,0x27,0x3E,0x5A,0x20,0x40,0x54,0x31,0x36,0x30,
-	0x46,0x75,0x6C,0x6C,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,
-	0x65,0x64,0x69,0x74,0x2E,0x20,0x28,0x5A,0x20,0x66,0x6F,0x72,
-	0x20,0x73,0x69,0x5A,0x65,0x3F,0x29,0x19,0x3E,0x31,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,
-	0x61,0x74,0x69,0x6F,0x6E,0x20,0x23,0x31,0x2E,0x19,0x3E,0x32,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,0x69,0x67,
-	0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x23,0x32,0x2E,0x19,
-	0x3E,0x33,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,
-	0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x23,0x33,
-	0x2E,0x19,0x3E,0x34,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,
-	0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,
-	0x23,0x34,0x2E,0x00,0x2D,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
-	0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
-	0x74,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x20,0x28,0x4E,0x75,
-	0x6D,0x65,0x72,0x69,0x63,0x20,0x6B,0x65,0x79,0x70,0x61,0x64,
-	0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
-	0x30,0x32,0x28,0x54,0x6F,0x70,0x20,0x34,0x20,0x6B,0x65,0x79,
-	0x73,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,
-	0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,
-	0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x32,0x3E,0x27,0x2B,0x27,
-	0x20,0x2B,0x54,0x6F,0x70,0x20,0x34,0x20,0x6B,0x65,0x79,0x73,
+	0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x73,0x6F,0x6E,0x67,0x20,
+	0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,0x26,0x3E,0x53,
+	0x68,0x2B,0x52,0x69,0x67,0x68,0x74,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x44,0x65,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x73,0x6F,
+	0x6E,0x67,0x20,0x70,0x6F,0x73,0x69,0x74,0x69,0x6F,0x6E,0x2E,
+	0x28,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x4C,0x65,0x66,0x74,0x20,
+	0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x63,0x72,0x65,0x61,0x73,
+	0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6E,0x75,
+	0x6D,0x62,0x65,0x72,0x2E,0x29,0x3E,0x43,0x74,0x72,0x6C,0x2B,
+	0x52,0x69,0x67,0x68,0x74,0x20,0x40,0x54,0x31,0x36,0x30,0x44,
+	0x65,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x2E,0x00,
+	0x2C,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,
+	0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,
+	0x20,0x28,0x6F,0x6E,0x20,0x61,0x20,0x4D,0x61,0x63,0x20,0x6B,
+	0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x29,0x3A,0x0B,0x3E,0x40,
+	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1E,0x52,0x69,
+	0x67,0x68,0x74,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x20,
+	0x20,0x40,0x54,0x32,0x34,0x30,0x50,0x6C,0x61,0x79,0x20,0x73,
+	0x6F,0x6E,0x67,0x2E,0x25,0x3E,0x52,0x69,0x67,0x68,0x74,0x20,
+	0x61,0x6C,0x74,0x2F,0x6F,0x70,0x74,0x69,0x6F,0x6E,0x20,0x20,
+	0x40,0x54,0x32,0x34,0x30,0x50,0x6C,0x61,0x79,0x20,0x70,0x61,
+	0x74,0x74,0x65,0x72,0x6E,0x2E,0x22,0x3E,0x52,0x69,0x67,0x68,
+	0x74,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x20,0x40,0x54,0x32,
+	0x34,0x30,0x52,0x65,0x63,0x6F,0x72,0x64,0x20,0x70,0x61,0x74,
+	0x74,0x65,0x72,0x6E,0x2E,0x00,0x1B,0x40,0x58,0x30,0x34,0x30,
+	0x40,0x43,0x30,0x30,0x31,0x57,0x69,0x6E,0x64,0x6F,0x77,0x20,
+	0x73,0x77,0x69,0x74,0x63,0x68,0x69,0x6E,0x67,0x3A,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x05,0x43,
+	0x74,0x72,0x6C,0x2B,0x16,0x3E,0x41,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x41,0x64,0x76,0x61,0x6E,0x63,0x65,0x64,0x20,0x65,0x64,
+	0x69,0x74,0x2E,0x0E,0x3E,0x42,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x41,0x62,0x6F,0x75,0x74,0x2E,0x16,0x3E,0x43,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,
+	0x74,0x69,0x6F,0x6E,0x2E,0x18,0x3E,0x44,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x44,0x69,0x73,0x6B,0x20,0x6F,0x70,0x65,0x72,0x61,
+	0x74,0x69,0x6F,0x6E,0x73,0x2E,0x20,0x3E,0x45,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x53,0x61,0x6D,0x70,0x6C,0x65,0x20,0x65,0x64,
+	0x69,0x74,0x6F,0x72,0x20,0x65,0x78,0x74,0x65,0x6E,0x73,0x69,
+	0x6F,0x6E,0x2E,0x0D,0x3E,0x48,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x48,0x65,0x6C,0x70,0x2E,0x1A,0x3E,0x49,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,
+	0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x2E,0x2B,0x3E,0x4D,0x20,
+	0x40,0x54,0x31,0x36,0x30,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,
+	0x65,0x6E,0x74,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x20,0x65,
+	0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,0x6E,0x2E,0x20,0x28,0x4D,
+	0x49,0x44,0x49,0x29,0x10,0x3E,0x4E,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x4E,0x69,0x62,0x62,0x6C,0x65,0x73,0x2E,0x10,0x3E,0x50,
+	0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x74,0x74,0x65,0x72,
+	0x6E,0x2E,0x0D,0x3E,0x52,0x20,0x40,0x54,0x31,0x36,0x30,0x54,
+	0x72,0x69,0x6D,0x2E,0x16,0x3E,0x53,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x53,0x61,0x6D,0x70,0x6C,0x65,0x20,0x65,0x64,0x69,0x74,
+	0x6F,0x72,0x2E,0x12,0x3E,0x54,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x2E,0x23,0x3E,
+	0x58,0x20,0x40,0x54,0x31,0x36,0x30,0x4D,0x61,0x69,0x6E,0x20,
+	0x73,0x63,0x72,0x65,0x65,0x6E,0x2E,0x20,0x28,0x61,0x6C,0x6D,
+	0x6F,0x73,0x74,0x20,0x61,0x6C,0x74,0x2B,0x58,0x29,0x27,0x3E,
+	0x5A,0x20,0x40,0x54,0x31,0x36,0x30,0x46,0x75,0x6C,0x6C,0x20,
+	0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x65,0x64,0x69,0x74,0x2E,
+	0x20,0x28,0x5A,0x20,0x66,0x6F,0x72,0x20,0x73,0x69,0x5A,0x65,
+	0x3F,0x29,0x19,0x3E,0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x43,
+	0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,
+	0x20,0x23,0x31,0x2E,0x19,0x3E,0x32,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,
+	0x6F,0x6E,0x20,0x23,0x32,0x2E,0x19,0x3E,0x33,0x20,0x40,0x54,
+	0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,
+	0x74,0x69,0x6F,0x6E,0x20,0x23,0x33,0x2E,0x19,0x3E,0x34,0x20,
+	0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,
+	0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x23,0x34,0x2E,0x00,0x2D,
+	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6E,
+	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x73,0x65,0x6C,
+	0x65,0x63,0x74,0x20,0x28,0x4E,0x75,0x6D,0x65,0x72,0x69,0x63,
+	0x20,0x6B,0x65,0x79,0x70,0x61,0x64,0x29,0x3A,0x0B,0x3E,0x40,
+	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x28,0x54,0x6F,
+	0x70,0x20,0x34,0x20,0x6B,0x65,0x79,0x73,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x69,0x6E,0x73,
+	0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x62,0x6C,0x6F,0x63,
+	0x6B,0x2E,0x32,0x3E,0x27,0x2B,0x27,0x20,0x2B,0x54,0x6F,0x70,
+	0x20,0x34,0x20,0x6B,0x65,0x79,0x73,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x69,0x6E,0x73,0x74,
+	0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x62,0x6C,0x6F,0x63,0x6B,
+	0x20,0x2B,0x20,0x34,0x2E,0x23,0x3E,0x45,0x6E,0x74,0x65,0x72,
 	0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,
 	0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,
-	0x62,0x6C,0x6F,0x63,0x6B,0x20,0x2B,0x20,0x34,0x2E,0x23,0x3E,
-	0x45,0x6E,0x74,0x65,0x72,0x20,0x40,0x54,0x31,0x36,0x30,0x53,
+	0x62,0x61,0x6E,0x6B,0x2E,0x1D,0x3E,0x30,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x6E,0x6F,0x20,
+	0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x26,
+	0x3E,0x31,0x2E,0x2E,0x38,0x20,0x40,0x54,0x31,0x36,0x30,0x53,
 	0x65,0x6C,0x65,0x63,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,
-	0x6D,0x65,0x6E,0x74,0x20,0x62,0x61,0x6E,0x6B,0x2E,0x1D,0x3E,
-	0x30,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,
-	0x74,0x20,0x6E,0x6F,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,
-	0x65,0x6E,0x74,0x2E,0x26,0x3E,0x31,0x2E,0x2E,0x38,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x69,
-	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,
-	0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x19,0x3E,0x2C,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x43,0x6C,0x65,0x61,0x72,0x20,0x69,0x6E,
-	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x18,0x3E,0x53,
-	0x68,0x2B,0x2C,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6C,0x65,
-	0x61,0x72,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x27,0x3E,
-	0x53,0x68,0x2B,0x55,0x70,0x20,0x40,0x54,0x31,0x36,0x30,0x53,
-	0x65,0x6C,0x65,0x63,0x74,0x20,0x70,0x72,0x65,0x76,0x69,0x6F,
-	0x75,0x73,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
-	0x74,0x2E,0x25,0x3E,0x53,0x68,0x2B,0x44,0x6F,0x77,0x6E,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,0x20,
-	0x6E,0x65,0x78,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,
-	0x65,0x6E,0x74,0x2E,0x00,0x1F,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x43,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2F,
-	0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x6D,0x61,0x63,0x72,0x6F,
+	0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,
+	0x6B,0x2E,0x19,0x3E,0x2C,0x20,0x40,0x54,0x31,0x36,0x30,0x43,
+	0x6C,0x65,0x61,0x72,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,
+	0x65,0x6E,0x74,0x2E,0x18,0x3E,0x53,0x68,0x2B,0x2C,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x43,0x6C,0x65,0x61,0x72,0x20,0x73,0x61,
+	0x6D,0x70,0x6C,0x65,0x2E,0x27,0x3E,0x53,0x68,0x2B,0x55,0x70,
+	0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x65,0x6C,0x65,0x63,0x74,
+	0x20,0x70,0x72,0x65,0x76,0x69,0x6F,0x75,0x73,0x20,0x69,0x6E,
+	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x25,0x3E,0x53,
+	0x68,0x2B,0x44,0x6F,0x77,0x6E,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x53,0x65,0x6C,0x65,0x63,0x74,0x20,0x6E,0x65,0x78,0x74,0x20,
+	0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x00,
+	0x1F,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,
+	0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2F,0x56,0x6F,0x6C,0x75,0x6D,
+	0x65,0x20,0x6D,0x61,0x63,0x72,0x6F,0x3A,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x2D,0x41,0x6C,0x74,
+	0x2B,0x31,0x2E,0x2E,0x30,0x20,0x40,0x54,0x31,0x36,0x30,0x57,
+	0x72,0x69,0x74,0x65,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,
+	0x2F,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x61,0x74,0x20,0x63,
+	0x75,0x72,0x73,0x6F,0x72,0x2E,0x30,0x3E,0x53,0x68,0x2B,0x41,
+	0x6C,0x74,0x2B,0x31,0x2E,0x2E,0x30,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x52,0x65,0x61,0x64,0x20,0x63,0x6F,0x6D,0x6D,0x61,0x6E,
+	0x64,0x2F,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x61,0x74,0x20,
+	0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x00,0x1C,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x63,0x61,0x6C,0x65,
+	0x2D,0x66,0x61,0x64,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,
 	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x2D,0x41,0x6C,0x74,0x2B,0x31,0x2E,0x2E,0x30,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x57,0x72,0x69,0x74,0x65,0x20,0x63,0x6F,
-	0x6D,0x6D,0x61,0x6E,0x64,0x2F,0x76,0x6F,0x6C,0x75,0x6D,0x65,
-	0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,0x30,
-	0x3E,0x53,0x68,0x2B,0x41,0x6C,0x74,0x2B,0x31,0x2E,0x2E,0x30,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x52,0x65,0x61,0x64,0x20,0x63,
-	0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x2F,0x76,0x6F,0x6C,0x75,0x6D,
-	0x65,0x20,0x61,0x74,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x2E,
-	0x00,0x1C,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
+	0x32,0x25,0x53,0x68,0x2B,0x56,0x20,0x40,0x54,0x31,0x36,0x30,
 	0x53,0x63,0x61,0x6C,0x65,0x2D,0x66,0x61,0x64,0x65,0x20,0x76,
-	0x6F,0x6C,0x75,0x6D,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x25,0x53,0x68,0x2B,0x56,0x20,
+	0x6F,0x6C,0x75,0x6D,0x65,0x20,0x69,0x6E,0x20,0x74,0x72,0x61,
+	0x63,0x6B,0x2E,0x2A,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x56,0x20,
 	0x40,0x54,0x31,0x36,0x30,0x53,0x63,0x61,0x6C,0x65,0x2D,0x66,
 	0x61,0x64,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x69,
-	0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x2E,0x2A,0x3E,0x43,0x74,
-	0x72,0x6C,0x2B,0x56,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x63,
-	0x61,0x6C,0x65,0x2D,0x66,0x61,0x64,0x65,0x20,0x76,0x6F,0x6C,
-	0x75,0x6D,0x65,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,
-	0x72,0x6E,0x2E,0x27,0x3E,0x41,0x6C,0x74,0x2B,0x56,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x53,0x63,0x61,0x6C,0x65,0x2D,0x66,0x61,
-	0x64,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x69,0x6E,
-	0x20,0x62,0x6C,0x6F,0x63,0x6B,0x2E,0x00,0x14,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x72,0x61,0x6E,0x73,
-	0x70,0x6F,0x73,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
-	0x40,0x43,0x30,0x30,0x32,0x36,0x53,0x68,0x2B,0x46,0x37,0x20,
-	0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,
-	0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,
-	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,
-	0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x64,0x6F,0x77,0x6E,0x2E,
-	0x35,0x3E,0x53,0x68,0x2B,0x46,0x38,0x20,0x40,0x54,0x31,0x36,
+	0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x27,0x3E,
+	0x41,0x6C,0x74,0x2B,0x56,0x20,0x40,0x54,0x31,0x36,0x30,0x53,
+	0x63,0x61,0x6C,0x65,0x2D,0x66,0x61,0x64,0x65,0x20,0x76,0x6F,
+	0x6C,0x75,0x6D,0x65,0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,
+	0x6B,0x2E,0x00,0x14,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x3A,
+	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
+	0x36,0x53,0x68,0x2B,0x46,0x37,0x20,0x40,0x54,0x31,0x36,0x30,
+	0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,
+	0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,
+	0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x74,0x72,0x61,0x63,
+	0x6B,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x35,0x3E,0x53,0x68,0x2B,
+	0x46,0x38,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,
+	0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,
+	0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,
+	0x20,0x69,0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x75,0x70,
+	0x2E,0x3B,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x37,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,
+	0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,
+	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,
+	0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x64,0x6F,0x77,0x6E,
+	0x2E,0x39,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x38,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,
+	0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,
+	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,
+	0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x75,0x70,0x2E,0x38,
+	0x3E,0x41,0x6C,0x74,0x2B,0x46,0x37,0x20,0x40,0x54,0x31,0x36,
 	0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,
 	0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,
-	0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x74,0x72,0x61,
-	0x63,0x6B,0x20,0x75,0x70,0x2E,0x3B,0x3E,0x43,0x74,0x72,0x6C,
-	0x2B,0x46,0x37,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,
-	0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,
-	0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
-	0x74,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,
-	0x20,0x64,0x6F,0x77,0x6E,0x2E,0x39,0x3E,0x43,0x74,0x72,0x6C,
-	0x2B,0x46,0x38,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,
-	0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,
-	0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
-	0x74,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,
-	0x20,0x75,0x70,0x2E,0x38,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x37,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,
-	0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,
-	0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,
-	0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x64,0x6F,0x77,0x6E,
-	0x2E,0x36,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x38,0x20,0x40,0x54,
-	0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,
-	0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,
-	0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x62,
-	0x6C,0x6F,0x63,0x6B,0x20,0x75,0x70,0x2E,0x34,0x3E,0x53,0x68,
-	0x2B,0x46,0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,
+	0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,
+	0x63,0x6B,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x36,0x3E,0x41,0x6C,
+	0x74,0x2B,0x46,0x38,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,
+	0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x63,0x75,0x72,0x72,
+	0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
+	0x6E,0x74,0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,
+	0x75,0x70,0x2E,0x34,0x3E,0x53,0x68,0x2B,0x46,0x31,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,
+	0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,
+	0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x74,0x72,0x61,
+	0x63,0x6B,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x32,0x3E,0x53,0x68,
+	0x2B,0x46,0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,
 	0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,
 	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,
-	0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x64,0x6F,0x77,0x6E,
-	0x2E,0x32,0x3E,0x53,0x68,0x2B,0x46,0x32,0x20,0x40,0x54,0x31,
+	0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,0x20,0x75,0x70,0x2E,0x38,
+	0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x31,0x20,0x40,0x54,0x31,
 	0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,
 	0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
-	0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x74,0x72,0x61,0x63,0x6B,
-	0x20,0x75,0x70,0x2E,0x38,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,
-	0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,
-	0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,
-	0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,
-	0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x64,0x6F,0x77,0x6E,
-	0x2E,0x36,0x3E,0x43,0x74,0x72,0x6C,0x2B,0x46,0x32,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,
-	0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,
-	0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,
-	0x74,0x65,0x72,0x6E,0x20,0x75,0x70,0x2E,0x35,0x3E,0x41,0x6C,
-	0x74,0x2B,0x46,0x31,0x20,0x40,0x54,0x31,0x36,0x30,0x54,0x72,
-	0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,
-	0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,
-	0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x64,0x6F,0x77,
-	0x6E,0x2E,0x33,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x32,0x20,0x40,
-	0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,
-	0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,
-	0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,
-	0x63,0x6B,0x20,0x75,0x70,0x2E,0x01,0x3E,0x18,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,
-	0x65,0x20,0x65,0x64,0x69,0x74,0x6F,0x72,0x3A,0x0B,0x3E,0x40,
-	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1A,0x41,0x6C,
-	0x74,0x2F,0x43,0x74,0x72,0x6C,0x2B,0x41,0x20,0x40,0x54,0x31,
-	0x36,0x30,0x52,0x61,0x6E,0x67,0x65,0x20,0x61,0x6C,0x6C,0x2E,
-	0x17,0x3E,0x41,0x6C,0x74,0x2B,0x53,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x53,0x68,0x6F,0x77,0x20,0x72,0x61,0x6E,0x67,0x65,0x2E,
-	0x15,0x3E,0x41,0x6C,0x74,0x2B,0x5A,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x5A,0x6F,0x6F,0x6D,0x20,0x6F,0x75,0x74,0x2E,0x1A,0x3E,
-	0x41,0x6C,0x74,0x2B,0x58,0x20,0x6F,0x72,0x20,0x44,0x65,0x6C,
-	0x65,0x74,0x65,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x75,0x74,
-	0x2E,0x16,0x3E,0x41,0x6C,0x74,0x2F,0x43,0x74,0x72,0x6C,0x2B,
-	0x43,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x6F,0x70,0x79,0x2E,
-	0x17,0x3E,0x41,0x6C,0x74,0x2F,0x43,0x74,0x72,0x6C,0x2B,0x56,
-	0x20,0x40,0x54,0x31,0x36,0x30,0x50,0x61,0x73,0x74,0x65,0x2E,
-	0x11,0x3E,0x41,0x6C,0x74,0x2B,0x52,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x43,0x72,0x6F,0x70,0x2E,0x41,0x3E,0x4D,0x6F,0x75,0x73,
-	0x65,0x20,0x77,0x68,0x65,0x65,0x6C,0x20,0x40,0x54,0x31,0x36,
-	0x30,0x5A,0x6F,0x6F,0x6D,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,
-	0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x6E,0x2F,0x6F,0x75,0x74,
-	0x20,0x28,0x73,0x68,0x69,0x66,0x74,0x2B,0x77,0x68,0x65,0x65,
-	0x6C,0x20,0x3D,0x20,0x73,0x63,0x72,0x6F,0x6C,0x6C,0x29,0x2E,
-	0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,
+	0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,
+	0x72,0x6E,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x36,0x3E,0x43,0x74,
+	0x72,0x6C,0x2B,0x46,0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x54,
+	0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,
+	0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,
+	0x20,0x69,0x6E,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,
+	0x75,0x70,0x2E,0x35,0x3E,0x41,0x6C,0x74,0x2B,0x46,0x31,0x20,
+	0x40,0x54,0x31,0x36,0x30,0x54,0x72,0x61,0x6E,0x73,0x70,0x6F,
+	0x73,0x65,0x20,0x61,0x6C,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,
+	0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x69,0x6E,0x20,0x62,0x6C,
+	0x6F,0x63,0x6B,0x20,0x64,0x6F,0x77,0x6E,0x2E,0x33,0x3E,0x41,
+	0x6C,0x74,0x2B,0x46,0x32,0x20,0x40,0x54,0x31,0x36,0x30,0x54,
+	0x72,0x61,0x6E,0x73,0x70,0x6F,0x73,0x65,0x20,0x61,0x6C,0x6C,
+	0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,
+	0x20,0x69,0x6E,0x20,0x62,0x6C,0x6F,0x63,0x6B,0x20,0x75,0x70,
+	0x2E,0x01,0x3E,0x18,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,0x65,0x20,0x65,0x64,0x69,
+	0x74,0x6F,0x72,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
+	0x43,0x30,0x30,0x32,0x1A,0x41,0x6C,0x74,0x2F,0x43,0x74,0x72,
+	0x6C,0x2B,0x41,0x20,0x40,0x54,0x31,0x36,0x30,0x52,0x61,0x6E,
+	0x67,0x65,0x20,0x61,0x6C,0x6C,0x2E,0x17,0x3E,0x41,0x6C,0x74,
+	0x2B,0x53,0x20,0x40,0x54,0x31,0x36,0x30,0x53,0x68,0x6F,0x77,
+	0x20,0x72,0x61,0x6E,0x67,0x65,0x2E,0x15,0x3E,0x41,0x6C,0x74,
+	0x2B,0x5A,0x20,0x40,0x54,0x31,0x36,0x30,0x5A,0x6F,0x6F,0x6D,
+	0x20,0x6F,0x75,0x74,0x2E,0x1A,0x3E,0x41,0x6C,0x74,0x2B,0x58,
+	0x20,0x6F,0x72,0x20,0x44,0x65,0x6C,0x65,0x74,0x65,0x20,0x40,
+	0x54,0x31,0x36,0x30,0x43,0x75,0x74,0x2E,0x16,0x3E,0x41,0x6C,
+	0x74,0x2F,0x43,0x74,0x72,0x6C,0x2B,0x43,0x20,0x40,0x54,0x31,
+	0x36,0x30,0x43,0x6F,0x70,0x79,0x2E,0x17,0x3E,0x41,0x6C,0x74,
+	0x2F,0x43,0x74,0x72,0x6C,0x2B,0x56,0x20,0x40,0x54,0x31,0x36,
+	0x30,0x50,0x61,0x73,0x74,0x65,0x2E,0x11,0x3E,0x41,0x6C,0x74,
+	0x2B,0x52,0x20,0x40,0x54,0x31,0x36,0x30,0x43,0x72,0x6F,0x70,
+	0x2E,0x41,0x3E,0x4D,0x6F,0x75,0x73,0x65,0x20,0x77,0x68,0x65,
+	0x65,0x6C,0x20,0x40,0x54,0x31,0x36,0x30,0x5A,0x6F,0x6F,0x6D,
+	0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,0x61,0x74,0x61,
+	0x20,0x69,0x6E,0x2F,0x6F,0x75,0x74,0x20,0x28,0x73,0x68,0x69,
+	0x66,0x74,0x2B,0x77,0x68,0x65,0x65,0x6C,0x20,0x3D,0x20,0x73,
+	0x63,0x72,0x6F,0x6C,0x6C,0x29,0x2E,0x00,0x03,0x45,0x4E,0x44,
+	0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,
+	0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x1B,0x40,0x4C,0x48,0x6F,0x77,0x20,0x74,0x6F,
-	0x20,0x75,0x73,0x65,0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61,
-	0x63,0x6B,0x65,0x72,0x20,0x49,0x49,0x0B,0x3E,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E,0x41,0x6C,0x6C,
-	0x20,0x22,0x6E,0x6F,0x74,0x2D,0x74,0x6F,0x6F,0x2D,0x74,0x72,
-	0x69,0x76,0x69,0x61,0x6C,0x22,0x20,0x66,0x75,0x6E,0x63,0x74,
-	0x69,0x6F,0x6E,0x73,0x20,0x61,0x72,0x65,0x20,0x70,0x72,0x65,
-	0x73,0x65,0x6E,0x74,0x65,0x64,0x20,0x62,0x65,0x6C,0x6F,0x77,
-	0x20,0x28,0x6F,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x69,0x6E,
-	0x22,0x77,0x69,0x6E,0x64,0x6F,0x77,0x73,0x29,0x20,0x77,0x69,
-	0x74,0x68,0x20,0x61,0x20,0x73,0x68,0x6F,0x72,0x74,0x20,0x64,
-	0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6F,0x6E,0x2E,0x00,
-	0x17,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x4D,0x61,0x69,0x6E,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,0x3A,
-	0x01,0x3E,0x22,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
-	0x30,0x31,0x42,0x50,0x4D,0x20,0x28,0x42,0x65,0x61,0x74,0x73,
-	0x20,0x70,0x65,0x72,0x20,0x6D,0x69,0x6E,0x75,0x74,0x65,0x29,
+	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x1B,0x40,
+	0x4C,0x48,0x6F,0x77,0x20,0x74,0x6F,0x20,0x75,0x73,0x65,0x20,
+	0x46,0x61,0x73,0x74,0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,
+	0x49,0x49,0x0B,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x32,0x40,0x3E,0x41,0x6C,0x6C,0x20,0x22,0x6E,0x6F,0x74,
+	0x2D,0x74,0x6F,0x6F,0x2D,0x74,0x72,0x69,0x76,0x69,0x61,0x6C,
+	0x22,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x20,
+	0x61,0x72,0x65,0x20,0x70,0x72,0x65,0x73,0x65,0x6E,0x74,0x65,
+	0x64,0x20,0x62,0x65,0x6C,0x6F,0x77,0x20,0x28,0x6F,0x72,0x64,
+	0x65,0x72,0x65,0x64,0x20,0x69,0x6E,0x22,0x77,0x69,0x6E,0x64,
+	0x6F,0x77,0x73,0x29,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,
+	0x73,0x68,0x6F,0x72,0x74,0x20,0x64,0x65,0x73,0x63,0x72,0x69,
+	0x70,0x74,0x69,0x6F,0x6E,0x2E,0x00,0x17,0x3E,0x40,0x58,0x30,
+	0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x61,0x69,0x6E,0x20,
+	0x73,0x63,0x72,0x65,0x65,0x6E,0x3A,0x01,0x3E,0x22,0x3E,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x42,0x50,0x4D,
+	0x20,0x28,0x42,0x65,0x61,0x74,0x73,0x20,0x70,0x65,0x72,0x20,
+	0x6D,0x69,0x6E,0x75,0x74,0x65,0x29,0x3A,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x54,0x68,0x65,
+	0x20,0x42,0x50,0x4D,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,
+	0x20,0x64,0x65,0x66,0x69,0x6E,0x65,0x73,0x20,0x68,0x6F,0x77,
+	0x20,0x66,0x61,0x73,0x74,0x20,0x28,0x74,0x69,0x63,0x6B,0x73,
+	0x2F,0x73,0x65,0x63,0x6F,0x6E,0x64,0x29,0x20,0x74,0x68,0x65,
+	0x20,0x6D,0x75,0x73,0x69,0x63,0x20,0x70,0x6C,0x61,0x79,0x65,
+	0x72,0x1C,0x77,0x69,0x6C,0x6C,0x20,0x72,0x75,0x6E,0x2E,0x20,
+	0x31,0x32,0x35,0x20,0x42,0x50,0x4D,0x20,0x3C,0x2D,0x3E,0x20,
+	0x35,0x30,0x20,0x48,0x7A,0x2E,0x28,0x3E,0x4E,0x75,0x6D,0x62,
+	0x65,0x72,0x20,0x6F,0x66,0x20,0x70,0x6C,0x61,0x79,0x65,0x72,
+	0x20,0x74,0x69,0x63,0x6B,0x73,0x2F,0x73,0x65,0x63,0x6F,0x6E,
+	0x64,0x20,0x3D,0x20,0x42,0x50,0x4D,0x2A,0x32,0x2F,0x35,0x00,
+	0x16,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
+	0x53,0x70,0x64,0x2C,0x20,0x53,0x70,0x65,0x65,0x64,0x3A,0x0B,
+	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x2C,
+	0x53,0x70,0x65,0x65,0x64,0x20,0x3D,0x20,0x6E,0x75,0x6D,0x62,
+	0x65,0x72,0x20,0x6F,0x66,0x20,0x70,0x6C,0x61,0x79,0x65,0x72,
+	0x20,0x74,0x69,0x63,0x6B,0x73,0x2F,0x70,0x61,0x74,0x74,0x65,
+	0x72,0x6E,0x20,0x6C,0x69,0x6E,0x65,0x2E,0x00,0x0F,0x3E,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x64,0x64,
 	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x40,0x54,0x68,0x65,0x20,0x42,0x50,0x4D,0x20,0x73,0x65,
-	0x74,0x74,0x69,0x6E,0x67,0x20,0x64,0x65,0x66,0x69,0x6E,0x65,
-	0x73,0x20,0x68,0x6F,0x77,0x20,0x66,0x61,0x73,0x74,0x20,0x28,
-	0x74,0x69,0x63,0x6B,0x73,0x2F,0x73,0x65,0x63,0x6F,0x6E,0x64,
-	0x29,0x20,0x74,0x68,0x65,0x20,0x6D,0x75,0x73,0x69,0x63,0x20,
-	0x70,0x6C,0x61,0x79,0x65,0x72,0x1C,0x77,0x69,0x6C,0x6C,0x20,
-	0x72,0x75,0x6E,0x2E,0x20,0x31,0x32,0x35,0x20,0x42,0x50,0x4D,
-	0x20,0x3C,0x2D,0x3E,0x20,0x35,0x30,0x20,0x48,0x7A,0x2E,0x28,
-	0x3E,0x4E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x70,
-	0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B,0x73,0x2F,
-	0x73,0x65,0x63,0x6F,0x6E,0x64,0x20,0x3D,0x20,0x42,0x50,0x4D,
-	0x2A,0x32,0x2F,0x35,0x00,0x16,0x3E,0x40,0x58,0x30,0x34,0x30,
-	0x40,0x43,0x30,0x30,0x31,0x53,0x70,0x64,0x2C,0x20,0x53,0x70,
-	0x65,0x65,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x2C,0x53,0x70,0x65,0x65,0x64,0x20,0x3D,
-	0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x70,
-	0x6C,0x61,0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B,0x73,0x2F,
-	0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x69,0x6E,0x65,
-	0x2E,0x00,0x0F,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
-	0x30,0x31,0x41,0x64,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x3E,0x22,0x41,0x64,0x64,0x22,
-	0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6E,0x75,0x6D,0x62,
-	0x65,0x72,0x20,0x6F,0x66,0x20,0x70,0x61,0x74,0x74,0x65,0x72,
-	0x6E,0x20,0x6C,0x69,0x6E,0x65,0x73,0x20,0x74,0x68,0x65,0x20,
-	0x63,0x75,0x72,0x73,0x6F,0x72,0x20,0x6A,0x75,0x6D,0x70,0x73,
-	0x20,0x77,0x68,0x65,0x6E,0x20,0x79,0x6F,0x75,0x0C,0x65,0x64,
-	0x69,0x74,0x20,0x61,0x20,0x6E,0x6F,0x74,0x65,0x2E,0x00,0x0F,
-	0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,
-	0x74,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x1B,0x54,0x68,0x65,0x20,0x63,0x75,0x72,0x72,
-	0x65,0x6E,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,
-	0x6E,0x75,0x6D,0x62,0x65,0x72,0x2E,0x00,0x0E,0x3E,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4C,0x6E,0x3A,0x0B,
-	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x43,
-	0x54,0x68,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,
-	0x66,0x20,0x6C,0x69,0x6E,0x65,0x73,0x20,0x66,0x6F,0x72,0x20,
-	0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,
-	0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x20,0x55,0x70,0x20,
-	0x74,0x6F,0x20,0x24,0x31,0x30,0x30,0x20,0x6C,0x69,0x6E,0x65,
-	0x73,0x2E,0x20,0x4E,0x6F,0x74,0x65,0x40,0x74,0x68,0x61,0x74,
-	0x20,0x46,0x54,0x32,0x20,0x77,0x6F,0x6E,0x27,0x74,0x20,0x77,
-	0x61,0x72,0x6E,0x20,0x79,0x6F,0x75,0x20,0x69,0x66,0x20,0x79,
-	0x6F,0x75,0x20,0x64,0x65,0x63,0x72,0x65,0x61,0x73,0x65,0x20,
-	0x74,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75,0x65,0x2E,0x20,
-	0x54,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x73,0x20,0x61,0x74,
-	0x37,0x74,0x68,0x65,0x20,0x62,0x6F,0x74,0x74,0x6F,0x6D,0x20,
-	0x6C,0x69,0x6E,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,
-	0x20,0x74,0x68,0x72,0x6F,0x77,0x6E,0x20,0x6F,0x75,0x74,0x20,
-	0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x62,0x69,0x6E,0x61,0x72,
-	0x79,0x20,0x73,0x70,0x61,0x63,0x65,0x2E,0x00,0x10,0x3E,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x45,0x78,0x70,
-	0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
-	0x30,0x32,0x44,0x45,0x78,0x70,0x61,0x6E,0x64,0x20,0x70,0x61,
-	0x74,0x74,0x65,0x72,0x6E,0x2E,0x20,0x49,0x6E,0x73,0x65,0x72,
-	0x74,0x73,0x20,0x61,0x20,0x62,0x6C,0x61,0x6E,0x6B,0x20,0x6C,
-	0x69,0x6E,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x65,0x61,
-	0x63,0x68,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,
-	0x69,0x6E,0x65,0x2E,0x20,0x55,0x73,0x65,0x66,0x75,0x6C,0x3C,
-	0x69,0x66,0x20,0x79,0x6F,0x75,0x20,0x77,0x61,0x6E,0x74,0x20,
-	0x74,0x6F,0x20,0x63,0x6F,0x6E,0x76,0x65,0x72,0x74,0x20,0x61,
-	0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x74,0x68,0x61,
-	0x74,0x20,0x72,0x75,0x6E,0x73,0x20,0x69,0x6E,0x20,0x73,0x70,
-	0x65,0x65,0x64,0x20,0x32,0x2A,0x78,0x20,0x74,0x6F,0x20,0x61,
-	0x1D,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x74,0x68,0x61,
-	0x74,0x20,0x72,0x75,0x6E,0x73,0x20,0x69,0x6E,0x20,0x73,0x70,
-	0x65,0x65,0x64,0x20,0x78,0x2E,0x00,0x10,0x3E,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x68,0x6E,0x6B,0x3A,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x2E,0x53,0x68,0x72,0x69,0x6E,0x6B,0x20,0x70,0x61,0x74,0x74,
-	0x65,0x72,0x6E,0x2E,0x20,0x44,0x65,0x6C,0x65,0x74,0x65,0x73,
-	0x20,0x61,0x6C,0x6C,0x20,0x6F,0x64,0x64,0x20,0x70,0x61,0x74,
-	0x74,0x65,0x72,0x6E,0x20,0x6C,0x69,0x6E,0x65,0x73,0x2E,0x00,
-	0x2A,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x54,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
-	0x6E,0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x73,0x65,
-	0x6C,0x65,0x63,0x74,0x6F,0x72,0x3A,0x0B,0x3E,0x40,0x58,0x30,
-	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3A,0x54,0x68,0x65,0x20,
-	0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x74,
-	0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x61,0x20,0x6D,0x61,
-	0x72,0x6B,0x20,0x6F,0x6E,0x20,0x69,0x74,0x27,0x73,0x20,0x6E,
-	0x61,0x6D,0x65,0x20,0x73,0x74,0x72,0x69,0x6E,0x67,0x2C,0x20,
-	0x69,0x73,0x20,0x74,0x68,0x65,0x17,0x64,0x65,0x73,0x74,0x69,
-	0x6E,0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x6E,0x73,0x74,0x72,
-	0x75,0x6D,0x65,0x6E,0x74,0x2E,0x3D,0x3E,0x54,0x68,0x65,0x20,
-	0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x74,
-	0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x61,0x20,0x6D,0x61,
-	0x72,0x6B,0x20,0x6F,0x6E,0x20,0x69,0x74,0x27,0x73,0x20,0x6E,
-	0x75,0x6D,0x62,0x65,0x72,0x2C,0x20,0x69,0x73,0x20,0x74,0x68,
-	0x65,0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x0B,0x69,0x6E,0x73,
-	0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x1F,0x3E,0x54,0x68,
-	0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x67,0x6F,0x65,0x73,0x20,
-	0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,
-	0x6C,0x65,0x73,0x2E,0x42,0x3E,0x59,0x6F,0x75,0x20,0x63,0x68,
-	0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65,0x20,0x6E,0x61,0x6D,
-	0x65,0x20,0x6F,0x6E,0x20,0x61,0x6E,0x20,0x69,0x6E,0x73,0x74,
-	0x72,0x75,0x6D,0x65,0x6E,0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C,
-	0x65,0x20,0x62,0x79,0x20,0x63,0x6C,0x69,0x63,0x6B,0x69,0x6E,
-	0x67,0x20,0x74,0x68,0x65,0x20,0x72,0x69,0x67,0x68,0x74,0x07,
-	0x62,0x75,0x74,0x74,0x6F,0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,
-	0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x63,0x6F,0x70,
-	0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x22,0x3E,0x4C,0x65,0x66,0x74,0x20,0x62,0x75,
-	0x74,0x74,0x6F,0x6E,0x3A,0x20,0x54,0x75,0x72,0x6E,0x20,0x63,
-	0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x6F,0x6E,0x2F,0x6F,0x66,
-	0x66,0x2E,0x35,0x3E,0x52,0x69,0x67,0x68,0x74,0x20,0x62,0x75,
-	0x74,0x74,0x6F,0x6E,0x3A,0x20,0x54,0x75,0x72,0x6E,0x20,0x63,
-	0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x6D,0x75,0x6C,0x74,0x69,
-	0x2D,0x72,0x65,0x63,0x6F,0x72,0x64,0x2F,0x65,0x64,0x69,0x74,
-	0x20,0x6F,0x6E,0x2F,0x6F,0x66,0x66,0x2E,0x42,0x3E,0x4C,0x65,
-	0x66,0x74,0x2B,0x72,0x69,0x67,0x68,0x74,0x20,0x62,0x75,0x74,
-	0x74,0x6F,0x6E,0x3A,0x20,0x54,0x75,0x72,0x6E,0x20,0x61,0x6C,
-	0x6C,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73,0x20,0x6F,
-	0x66,0x66,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x74,0x68,
-	0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x65,0x64,0x20,0x6F,
-	0x6E,0x65,0x2E,0x00,0x1C,0x40,0x58,0x30,0x32,0x30,0x40,0x43,
-	0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
-	0x74,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x3A,0x01,0x3E,0x22,
-	0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x57,
-	0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x61,0x6E,0x20,0x69,0x6E,
-	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x3F,0x3A,0x0B,0x3E,
-	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1E,0x41,
-	0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61,0x63,0x6B,0x65,0x72,
-	0x20,0x32,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
-	0x74,0x20,0x69,0x73,0x3A,0x15,0x3E,0x20,0x20,0x20,0x31,0x20,
-	0x56,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x65,0x6E,0x76,0x65,0x6C,
-	0x6F,0x70,0x65,0x16,0x3E,0x20,0x20,0x20,0x31,0x20,0x50,0x61,
-	0x6E,0x6E,0x69,0x6E,0x67,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,
-	0x70,0x65,0x1D,0x3E,0x20,0x20,0x20,0x31,0x20,0x41,0x75,0x74,
-	0x6F,0x2D,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x64,0x65,
-	0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,0x13,0x3E,0x20,0x20,
-	0x20,0x31,0x2E,0x2E,0x31,0x36,0x20,0x73,0x61,0x6D,0x70,0x6C,
-	0x65,0x28,0x73,0x29,0x1F,0x3E,0x20,0x20,0x20,0x31,0x20,0x4B,
-	0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x20,0x73,0x70,0x6C,0x69,
-	0x74,0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,
-	0x15,0x3E,0x20,0x20,0x20,0x31,0x20,0x4D,0x49,0x44,0x49,0x20,
-	0x64,0x65,0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,0x00,0x1B,
-	0x3E,0x41,0x20,0x46,0x61,0x73,0x74,0x74,0x72,0x61,0x63,0x6B,
-	0x65,0x72,0x20,0x32,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,
-	0x69,0x73,0x3A,0x28,0x3E,0x20,0x20,0x20,0x31,0x20,0x56,0x6F,
-	0x6C,0x75,0x6D,0x65,0x2F,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,
-	0x2F,0x46,0x69,0x6E,0x65,0x74,0x75,0x6E,0x65,0x20,0x64,0x65,
-	0x66,0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,0x13,0x3E,0x20,0x20,
-	0x20,0x31,0x20,0x52,0x65,0x6C,0x61,0x74,0x69,0x76,0x65,0x20,
-	0x6E,0x6F,0x74,0x65,0x0E,0x3E,0x20,0x20,0x20,0x31,0x20,0x57,
-	0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x00,0x1F,0x3E,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x68,0x65,0x20,
-	0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x65,0x6E,0x76,0x65,0x6C,
-	0x6F,0x70,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x40,0x3E,0x41,0x6E,0x20,0x69,0x6E,0x73,
-	0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x27,0x73,0x20,0x76,0x6F,
-	0x6C,0x75,0x6D,0x65,0x20,0x69,0x73,0x20,0x64,0x65,0x66,0x69,
-	0x6E,0x65,0x64,0x20,0x62,0x79,0x20,0x69,0x74,0x73,0x20,0x65,
-	0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x63,0x75,0x72,0x76,
-	0x65,0x2E,0x20,0x49,0x66,0x20,0x74,0x68,0x65,0x3E,0x69,0x6E,
-	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x68,0x61,0x73,
-	0x20,0x61,0x20,0x73,0x75,0x73,0x74,0x61,0x69,0x6E,0x20,0x70,
-	0x6F,0x69,0x6E,0x74,0x2C,0x20,0x74,0x68,0x65,0x20,0x65,0x6E,
-	0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,
-	0x73,0x74,0x6F,0x70,0x20,0x61,0x74,0x20,0x74,0x68,0x61,0x74,
-	0x42,0x70,0x6F,0x69,0x6E,0x74,0x20,0x75,0x6E,0x74,0x69,0x6C,
-	0x20,0x61,0x20,0x6B,0x65,0x79,0x2D,0x6F,0x66,0x66,0x20,0x6E,
-	0x6F,0x74,0x65,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6E,
-	0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x2E,0x20,0x57,0x68,0x65,
-	0x6E,0x20,0x61,0x20,0x6B,0x65,0x79,0x2D,0x6F,0x66,0x66,0x20,
-	0x6E,0x6F,0x74,0x65,0x20,0x69,0x73,0x1D,0x70,0x6C,0x61,0x79,
-	0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x22,0x66,0x61,0x64,
-	0x65,0x6F,0x75,0x74,0x22,0x20,0x62,0x65,0x67,0x69,0x6E,0x73,
-	0x2E,0x44,0x3E,0x4F,0x6E,0x65,0x20,0x70,0x69,0x78,0x65,0x6C,
-	0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x65,0x6E,0x76,0x65,
-	0x6C,0x6F,0x70,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x20,
-	0x63,0x6F,0x72,0x72,0x65,0x73,0x70,0x6F,0x6E,0x64,0x73,0x20,
-	0x74,0x6F,0x20,0x6F,0x6E,0x65,0x20,0x70,0x6C,0x61,0x79,0x65,
-	0x72,0x2D,0x74,0x69,0x63,0x6B,0x2E,0x20,0x49,0x66,0x3C,0x74,
-	0x68,0x65,0x20,0x42,0x50,0x4D,0x20,0x69,0x73,0x20,0x31,0x32,
-	0x35,0x2C,0x20,0x79,0x6F,0x75,0x27,0x6C,0x6C,0x20,0x63,0x6F,
-	0x6E,0x73,0x75,0x6D,0x65,0x20,0x35,0x30,0x20,0x70,0x69,0x78,
-	0x65,0x6C,0x2F,0x73,0x65,0x63,0x6F,0x6E,0x64,0x2E,0x20,0x54,
-	0x68,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x27,0x73,0x1A,
-	0x22,0x73,0x69,0x7A,0x65,0x22,0x20,0x69,0x73,0x20,0x61,0x62,
-	0x6F,0x75,0x74,0x20,0x36,0x20,0x73,0x65,0x63,0x6F,0x6E,0x64,
-	0x73,0x2E,0x3E,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x70,
-	0x72,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x69,0x67,
-	0x68,0x74,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x62,0x75,0x74,
-	0x74,0x6F,0x6E,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x70,
-	0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x20,0x62,0x75,0x74,
-	0x74,0x6F,0x6E,0x73,0x2C,0x3F,0x79,0x6F,0x75,0x27,0x6C,0x6C,
-	0x20,0x73,0x74,0x6F,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x63,
-	0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x65,0x6E,0x76,0x65,0x6C,
-	0x6F,0x70,0x65,0x20,0x69,0x6E,0x74,0x6F,0x20,0x74,0x68,0x61,
-	0x74,0x20,0x70,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x20,
-	0x63,0x65,0x6C,0x6C,0x2E,0x20,0x54,0x68,0x65,0x30,0x70,0x72,
-	0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x73,0x20,0x61,0x72,0x65,
-	0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,
-	0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,
-	0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x2E,0x43,0x3E,
-	0x50,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x20,0x6E,0x75,
-	0x6D,0x62,0x65,0x72,0x20,0x31,0x20,0x69,0x73,0x20,0x74,0x68,
-	0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x20,0x65,0x6E,
-	0x76,0x65,0x6C,0x6F,0x70,0x65,0x2E,0x20,0x54,0x68,0x69,0x73,
-	0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x74,0x68,0x61,0x74,0x20,
-	0x69,0x66,0x20,0x79,0x6F,0x75,0x42,0x6C,0x6F,0x61,0x64,0x20,
-	0x61,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2C,0x20,0x69,0x74,
-	0x20,0x77,0x69,0x6C,0x6C,0x20,0x67,0x65,0x74,0x20,0x61,0x6C,
-	0x6C,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x69,
-	0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,
-	0x72,0x6F,0x6D,0x20,0x70,0x72,0x65,0x64,0x65,0x66,0x69,0x6E,
-	0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x31,0x2C,0x20,
-	0x69,0x6E,0x63,0x6C,0x75,0x64,0x69,0x6E,0x67,0x20,0x74,0x68,
-	0x65,0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x2E,0x42,0x3E,
-	0x4E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x66,
-	0x20,0x79,0x6F,0x75,0x20,0x74,0x75,0x72,0x6E,0x20,0x74,0x68,
-	0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x2D,0x65,0x6E,0x76,
-	0x65,0x6C,0x6F,0x70,0x65,0x20,0x6F,0x66,0x66,0x2C,0x20,0x79,
-	0x6F,0x75,0x20,0x64,0x6F,0x6E,0x27,0x74,0x20,0x74,0x75,0x72,
-	0x6E,0x20,0x74,0x68,0x65,0x0C,0x76,0x69,0x62,0x72,0x61,0x74,
-	0x6F,0x20,0x6F,0x66,0x66,0x2E,0x00,0x20,0x3E,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x68,0x65,0x20,0x70,
-	0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x65,0x6E,0x76,0x65,0x6C,
-	0x6F,0x70,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x40,0x3E,0x53,0x61,0x6D,0x65,0x20,0x61,
-	0x73,0x20,0x61,0x62,0x6F,0x76,0x65,0x2C,0x20,0x65,0x78,0x63,
-	0x65,0x70,0x74,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68,0x61,
-	0x74,0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,0x72,0x61,0x74,
-	0x6F,0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x63,0x6F,0x6E,
-	0x6E,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x6F,0x15,0x74,0x68,
-	0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x20,0x65,0x6E,
-	0x76,0x65,0x6C,0x6F,0x70,0x65,0x2E,0x00,0x1B,0x3E,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x75,0x6E,0x65,
-	0x20,0x28,0x66,0x69,0x6E,0x65,0x74,0x75,0x6E,0x65,0x29,0x3A,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x3E,0x3E,0x54,0x68,0x65,0x20,0x66,0x69,0x6E,0x65,0x74,0x75,
-	0x6E,0x65,0x20,0x72,0x65,0x73,0x6F,0x6C,0x75,0x74,0x69,0x6F,
-	0x6E,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6E,0x20,0x63,
-	0x68,0x61,0x6E,0x67,0x65,0x64,0x20,0x66,0x72,0x6F,0x6D,0x20,
-	0x61,0x20,0x73,0x69,0x67,0x6E,0x65,0x64,0x20,0x6E,0x69,0x62,
-	0x62,0x6C,0x65,0x27,0x28,0x2D,0x38,0x2E,0x2E,0x2B,0x37,0x29,
-	0x20,0x74,0x6F,0x20,0x61,0x20,0x73,0x69,0x67,0x6E,0x65,0x64,
-	0x20,0x62,0x79,0x74,0x65,0x20,0x28,0x2D,0x31,0x32,0x38,0x2E,
-	0x2E,0x2B,0x31,0x32,0x37,0x29,0x2E,0x46,0x3E,0x4E,0x4F,0x54,
-	0x45,0x3A,0x20,0x54,0x68,0x65,0x20,0x6C,0x61,0x73,0x74,0x20,
-	0x33,0x20,0x62,0x69,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x64,
-	0x69,0x73,0x63,0x61,0x72,0x64,0x65,0x64,0x20,0x64,0x75,0x72,
-	0x69,0x6E,0x67,0x20,0x70,0x6C,0x61,0x79,0x62,0x61,0x63,0x6B,
-	0x2C,0x20,0x73,0x6F,0x20,0x74,0x68,0x65,0x20,0x74,0x72,0x75,
-	0x65,0x20,0x73,0x74,0x65,0x70,0x17,0x73,0x69,0x7A,0x65,0x20,
-	0x69,0x73,0x20,0x38,0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,
-	0x20,0x6F,0x66,0x20,0x31,0x2E,0x00,0x13,0x3E,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x61,0x64,0x65,0x6F,
-	0x75,0x74,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x1B,0x3E,0x54,0x68,0x69,0x73,0x20,0x69,0x73,
-	0x20,0x74,0x68,0x65,0x20,0x66,0x61,0x64,0x65,0x6F,0x75,0x74,
-	0x20,0x73,0x70,0x65,0x65,0x64,0x2E,0x00,0x19,0x3E,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x69,0x62,0x72,
-	0x61,0x74,0x6F,0x20,0x73,0x77,0x65,0x65,0x70,0x3A,0x0B,0x3E,
-	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3E,0x3E,
+	0x32,0x3E,0x22,0x41,0x64,0x64,0x22,0x20,0x69,0x73,0x20,0x74,
+	0x68,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,
+	0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x69,0x6E,
+	0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x73,0x6F,
+	0x72,0x20,0x6A,0x75,0x6D,0x70,0x73,0x20,0x77,0x68,0x65,0x6E,
+	0x20,0x79,0x6F,0x75,0x0C,0x65,0x64,0x69,0x74,0x20,0x61,0x20,
+	0x6E,0x6F,0x74,0x65,0x2E,0x00,0x0F,0x3E,0x40,0x58,0x30,0x34,
+	0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x74,0x6E,0x3A,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1B,0x54,
+	0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x70,
+	0x61,0x74,0x74,0x65,0x72,0x6E,0x20,0x6E,0x75,0x6D,0x62,0x65,
+	0x72,0x2E,0x00,0x0E,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x4C,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
+	0x30,0x40,0x43,0x30,0x30,0x32,0x43,0x54,0x68,0x65,0x20,0x6E,
+	0x75,0x6D,0x62,0x65,0x72,0x20,0x6F,0x66,0x20,0x6C,0x69,0x6E,
+	0x65,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x63,
+	0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x70,0x61,0x74,0x74,0x65,
+	0x72,0x6E,0x2E,0x20,0x55,0x70,0x20,0x74,0x6F,0x20,0x24,0x31,
+	0x30,0x30,0x20,0x6C,0x69,0x6E,0x65,0x73,0x2E,0x20,0x4E,0x6F,
+	0x74,0x65,0x40,0x74,0x68,0x61,0x74,0x20,0x46,0x54,0x32,0x20,
+	0x77,0x6F,0x6E,0x27,0x74,0x20,0x77,0x61,0x72,0x6E,0x20,0x79,
+	0x6F,0x75,0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x20,0x64,0x65,
+	0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x20,
+	0x76,0x61,0x6C,0x75,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x6E,
+	0x6F,0x74,0x65,0x73,0x20,0x61,0x74,0x37,0x74,0x68,0x65,0x20,
+	0x62,0x6F,0x74,0x74,0x6F,0x6D,0x20,0x6C,0x69,0x6E,0x65,0x20,
+	0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x74,0x68,0x72,0x6F,
+	0x77,0x6E,0x20,0x6F,0x75,0x74,0x20,0x74,0x6F,0x20,0x74,0x68,
+	0x65,0x20,0x62,0x69,0x6E,0x61,0x72,0x79,0x20,0x73,0x70,0x61,
+	0x63,0x65,0x2E,0x00,0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x45,0x78,0x70,0x64,0x3A,0x0B,0x3E,0x40,
+	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x44,0x45,0x78,
+	0x70,0x61,0x6E,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,
+	0x2E,0x20,0x49,0x6E,0x73,0x65,0x72,0x74,0x73,0x20,0x61,0x20,
+	0x62,0x6C,0x61,0x6E,0x6B,0x20,0x6C,0x69,0x6E,0x65,0x20,0x61,
+	0x66,0x74,0x65,0x72,0x20,0x65,0x61,0x63,0x68,0x20,0x70,0x61,
+	0x74,0x74,0x65,0x72,0x6E,0x20,0x6C,0x69,0x6E,0x65,0x2E,0x20,
+	0x55,0x73,0x65,0x66,0x75,0x6C,0x3C,0x69,0x66,0x20,0x79,0x6F,
+	0x75,0x20,0x77,0x61,0x6E,0x74,0x20,0x74,0x6F,0x20,0x63,0x6F,
+	0x6E,0x76,0x65,0x72,0x74,0x20,0x61,0x20,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x75,0x6E,
+	0x73,0x20,0x69,0x6E,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x32,
+	0x2A,0x78,0x20,0x74,0x6F,0x20,0x61,0x1D,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x75,0x6E,
+	0x73,0x20,0x69,0x6E,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x78,
+	0x2E,0x00,0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x53,0x68,0x6E,0x6B,0x3A,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x2E,0x53,0x68,0x72,0x69,
+	0x6E,0x6B,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x2E,0x20,
+	0x44,0x65,0x6C,0x65,0x74,0x65,0x73,0x20,0x61,0x6C,0x6C,0x20,
+	0x6F,0x64,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x20,
+	0x6C,0x69,0x6E,0x65,0x73,0x2E,0x00,0x2A,0x3E,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x68,0x65,0x20,0x69,
+	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2F,0x73,0x61,
+	0x6D,0x70,0x6C,0x65,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x6F,
+	0x72,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
+	0x30,0x32,0x3A,0x54,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,
+	0x75,0x6D,0x65,0x6E,0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x68,
+	0x61,0x73,0x20,0x61,0x20,0x6D,0x61,0x72,0x6B,0x20,0x6F,0x6E,
+	0x20,0x69,0x74,0x27,0x73,0x20,0x6E,0x61,0x6D,0x65,0x20,0x73,
+	0x74,0x72,0x69,0x6E,0x67,0x2C,0x20,0x69,0x73,0x20,0x74,0x68,
+	0x65,0x17,0x64,0x65,0x73,0x74,0x69,0x6E,0x61,0x74,0x69,0x6F,
+	0x6E,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,
+	0x2E,0x3D,0x3E,0x54,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,
+	0x75,0x6D,0x65,0x6E,0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x68,
+	0x61,0x73,0x20,0x61,0x20,0x6D,0x61,0x72,0x6B,0x20,0x6F,0x6E,
+	0x20,0x69,0x74,0x27,0x73,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,
+	0x2C,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x75,
+	0x72,0x63,0x65,0x0B,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
+	0x6E,0x74,0x2E,0x1F,0x3E,0x54,0x68,0x65,0x20,0x73,0x61,0x6D,
+	0x65,0x20,0x67,0x6F,0x65,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,
+	0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x2E,0x42,
+	0x3E,0x59,0x6F,0x75,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,
+	0x74,0x68,0x65,0x20,0x6E,0x61,0x6D,0x65,0x20,0x6F,0x6E,0x20,
+	0x61,0x6E,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
+	0x74,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x62,0x79,0x20,
+	0x63,0x6C,0x69,0x63,0x6B,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,
+	0x20,0x72,0x69,0x67,0x68,0x74,0x07,0x62,0x75,0x74,0x74,0x6F,
+	0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x32,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x53,0x63,0x6F,0x70,0x65,0x73,0x3A,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x22,0x3E,
+	0x4C,0x65,0x66,0x74,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3A,
+	0x20,0x54,0x75,0x72,0x6E,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,
+	0x6C,0x20,0x6F,0x6E,0x2F,0x6F,0x66,0x66,0x2E,0x35,0x3E,0x52,
+	0x69,0x67,0x68,0x74,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3A,
+	0x20,0x54,0x75,0x72,0x6E,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,
+	0x6C,0x20,0x6D,0x75,0x6C,0x74,0x69,0x2D,0x72,0x65,0x63,0x6F,
+	0x72,0x64,0x2F,0x65,0x64,0x69,0x74,0x20,0x6F,0x6E,0x2F,0x6F,
+	0x66,0x66,0x2E,0x42,0x3E,0x4C,0x65,0x66,0x74,0x2B,0x72,0x69,
+	0x67,0x68,0x74,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x3A,0x20,
+	0x54,0x75,0x72,0x6E,0x20,0x61,0x6C,0x6C,0x20,0x63,0x68,0x61,
+	0x6E,0x6E,0x65,0x6C,0x73,0x20,0x6F,0x66,0x66,0x20,0x65,0x78,
+	0x63,0x65,0x70,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6C,
+	0x65,0x63,0x74,0x65,0x64,0x20,0x6F,0x6E,0x65,0x2E,0x00,0x1C,
+	0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6E,
+	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x45,0x64,0x69,
+	0x74,0x6F,0x72,0x3A,0x01,0x3E,0x22,0x3E,0x40,0x58,0x30,0x34,
+	0x30,0x40,0x43,0x30,0x30,0x31,0x57,0x68,0x61,0x74,0x20,0x69,
+	0x73,0x20,0x61,0x6E,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,
+	0x65,0x6E,0x74,0x3F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
+	0x40,0x43,0x30,0x30,0x32,0x1E,0x41,0x20,0x46,0x61,0x73,0x74,
+	0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x32,0x20,0x69,0x6E,
+	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x73,0x3A,
+	0x15,0x3E,0x20,0x20,0x20,0x31,0x20,0x56,0x6F,0x6C,0x75,0x6D,
+	0x65,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x16,0x3E,
+	0x20,0x20,0x20,0x31,0x20,0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,
+	0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x1D,0x3E,0x20,
+	0x20,0x20,0x31,0x20,0x41,0x75,0x74,0x6F,0x2D,0x76,0x69,0x62,
+	0x72,0x61,0x74,0x6F,0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74,
+	0x69,0x6F,0x6E,0x13,0x3E,0x20,0x20,0x20,0x31,0x2E,0x2E,0x31,
+	0x36,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x28,0x73,0x29,0x1F,
+	0x3E,0x20,0x20,0x20,0x31,0x20,0x4B,0x65,0x79,0x62,0x6F,0x61,
+	0x72,0x64,0x20,0x73,0x70,0x6C,0x69,0x74,0x20,0x64,0x65,0x66,
+	0x69,0x6E,0x69,0x74,0x69,0x6F,0x6E,0x15,0x3E,0x20,0x20,0x20,
+	0x31,0x20,0x4D,0x49,0x44,0x49,0x20,0x64,0x65,0x66,0x69,0x6E,
+	0x69,0x74,0x69,0x6F,0x6E,0x00,0x1B,0x3E,0x41,0x20,0x46,0x61,
+	0x73,0x74,0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,0x32,0x20,
+	0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x69,0x73,0x3A,0x28,0x3E,
+	0x20,0x20,0x20,0x31,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x2F,
+	0x50,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x2F,0x46,0x69,0x6E,0x65,
+	0x74,0x75,0x6E,0x65,0x20,0x64,0x65,0x66,0x69,0x6E,0x69,0x74,
+	0x69,0x6F,0x6E,0x13,0x3E,0x20,0x20,0x20,0x31,0x20,0x52,0x65,
+	0x6C,0x61,0x74,0x69,0x76,0x65,0x20,0x6E,0x6F,0x74,0x65,0x0E,
+	0x3E,0x20,0x20,0x20,0x31,0x20,0x57,0x61,0x76,0x65,0x66,0x6F,
+	0x72,0x6D,0x00,0x1F,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x54,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,
+	0x65,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x3A,0x0B,
+	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,
+	0x3E,0x41,0x6E,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
+	0x6E,0x74,0x27,0x73,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,
+	0x69,0x73,0x20,0x64,0x65,0x66,0x69,0x6E,0x65,0x64,0x20,0x62,
+	0x79,0x20,0x69,0x74,0x73,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,
+	0x70,0x65,0x20,0x63,0x75,0x72,0x76,0x65,0x2E,0x20,0x49,0x66,
+	0x20,0x74,0x68,0x65,0x3E,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,
+	0x65,0x6E,0x74,0x20,0x68,0x61,0x73,0x20,0x61,0x20,0x73,0x75,
+	0x73,0x74,0x61,0x69,0x6E,0x20,0x70,0x6F,0x69,0x6E,0x74,0x2C,
+	0x20,0x74,0x68,0x65,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,
+	0x65,0x20,0x77,0x69,0x6C,0x6C,0x20,0x73,0x74,0x6F,0x70,0x20,
+	0x61,0x74,0x20,0x74,0x68,0x61,0x74,0x42,0x70,0x6F,0x69,0x6E,
+	0x74,0x20,0x75,0x6E,0x74,0x69,0x6C,0x20,0x61,0x20,0x6B,0x65,
+	0x79,0x2D,0x6F,0x66,0x66,0x20,0x6E,0x6F,0x74,0x65,0x20,0x68,
+	0x61,0x73,0x20,0x62,0x65,0x65,0x6E,0x20,0x70,0x6C,0x61,0x79,
+	0x65,0x64,0x2E,0x20,0x57,0x68,0x65,0x6E,0x20,0x61,0x20,0x6B,
+	0x65,0x79,0x2D,0x6F,0x66,0x66,0x20,0x6E,0x6F,0x74,0x65,0x20,
+	0x69,0x73,0x1D,0x70,0x6C,0x61,0x79,0x65,0x64,0x2C,0x20,0x74,
+	0x68,0x65,0x20,0x22,0x66,0x61,0x64,0x65,0x6F,0x75,0x74,0x22,
+	0x20,0x62,0x65,0x67,0x69,0x6E,0x73,0x2E,0x44,0x3E,0x4F,0x6E,
+	0x65,0x20,0x70,0x69,0x78,0x65,0x6C,0x20,0x69,0x6E,0x20,0x74,
+	0x68,0x65,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,
+	0x77,0x69,0x6E,0x64,0x6F,0x77,0x20,0x63,0x6F,0x72,0x72,0x65,
+	0x73,0x70,0x6F,0x6E,0x64,0x73,0x20,0x74,0x6F,0x20,0x6F,0x6E,
+	0x65,0x20,0x70,0x6C,0x61,0x79,0x65,0x72,0x2D,0x74,0x69,0x63,
+	0x6B,0x2E,0x20,0x49,0x66,0x3C,0x74,0x68,0x65,0x20,0x42,0x50,
+	0x4D,0x20,0x69,0x73,0x20,0x31,0x32,0x35,0x2C,0x20,0x79,0x6F,
+	0x75,0x27,0x6C,0x6C,0x20,0x63,0x6F,0x6E,0x73,0x75,0x6D,0x65,
+	0x20,0x35,0x30,0x20,0x70,0x69,0x78,0x65,0x6C,0x2F,0x73,0x65,
+	0x63,0x6F,0x6E,0x64,0x2E,0x20,0x54,0x68,0x65,0x20,0x77,0x69,
+	0x6E,0x64,0x6F,0x77,0x27,0x73,0x1A,0x22,0x73,0x69,0x7A,0x65,
+	0x22,0x20,0x69,0x73,0x20,0x61,0x62,0x6F,0x75,0x74,0x20,0x36,
+	0x20,0x73,0x65,0x63,0x6F,0x6E,0x64,0x73,0x2E,0x3E,0x3E,0x49,
+	0x66,0x20,0x79,0x6F,0x75,0x20,0x70,0x72,0x65,0x73,0x73,0x20,
+	0x74,0x68,0x65,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x6D,0x6F,
+	0x75,0x73,0x65,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x20,0x61,
+	0x74,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x65,0x64,0x65,0x66,
+	0x69,0x6E,0x65,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x73,0x2C,
+	0x3F,0x79,0x6F,0x75,0x27,0x6C,0x6C,0x20,0x73,0x74,0x6F,0x72,
+	0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,
+	0x74,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x20,0x69,
+	0x6E,0x74,0x6F,0x20,0x74,0x68,0x61,0x74,0x20,0x70,0x72,0x65,
+	0x64,0x65,0x66,0x69,0x6E,0x65,0x20,0x63,0x65,0x6C,0x6C,0x2E,
+	0x20,0x54,0x68,0x65,0x30,0x70,0x72,0x65,0x64,0x65,0x66,0x69,
+	0x6E,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x73,0x74,0x6F,0x72,
+	0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,
+	0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,
+	0x66,0x69,0x6C,0x65,0x2E,0x43,0x3E,0x50,0x72,0x65,0x64,0x65,
+	0x66,0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,
+	0x31,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x66,
+	0x61,0x75,0x6C,0x74,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,
+	0x65,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x6D,0x65,0x61,0x6E,
+	0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x66,0x20,0x79,0x6F,
+	0x75,0x42,0x6C,0x6F,0x61,0x64,0x20,0x61,0x20,0x73,0x61,0x6D,
+	0x70,0x6C,0x65,0x2C,0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,
+	0x20,0x67,0x65,0x74,0x20,0x61,0x6C,0x6C,0x20,0x65,0x6E,0x76,
+	0x65,0x6C,0x6F,0x70,0x65,0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,
+	0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x72,0x6F,0x6D,0x20,0x70,
+	0x72,0x65,0x64,0x65,0x66,0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,
+	0x62,0x65,0x72,0x20,0x31,0x2C,0x20,0x69,0x6E,0x63,0x6C,0x75,
+	0x64,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x76,0x69,0x62,
+	0x72,0x61,0x74,0x6F,0x2E,0x42,0x3E,0x4E,0x6F,0x74,0x65,0x20,
+	0x74,0x68,0x61,0x74,0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x20,
+	0x74,0x75,0x72,0x6E,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,
+	0x75,0x6D,0x65,0x2D,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,
+	0x20,0x6F,0x66,0x66,0x2C,0x20,0x79,0x6F,0x75,0x20,0x64,0x6F,
+	0x6E,0x27,0x74,0x20,0x74,0x75,0x72,0x6E,0x20,0x74,0x68,0x65,
+	0x0C,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x6F,0x66,0x66,
+	0x2E,0x00,0x20,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x54,0x68,0x65,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,
+	0x67,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,0x65,0x3A,0x0B,
+	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,
+	0x3E,0x53,0x61,0x6D,0x65,0x20,0x61,0x73,0x20,0x61,0x62,0x6F,
+	0x76,0x65,0x2C,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x66,
+	0x72,0x6F,0x6D,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,
+	0x20,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x69,0x73,0x20,
+	0x6E,0x6F,0x74,0x20,0x63,0x6F,0x6E,0x6E,0x65,0x63,0x74,0x65,
+	0x64,0x20,0x74,0x6F,0x15,0x74,0x68,0x65,0x20,0x70,0x61,0x6E,
+	0x6E,0x69,0x6E,0x67,0x20,0x65,0x6E,0x76,0x65,0x6C,0x6F,0x70,
+	0x65,0x2E,0x00,0x1B,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x54,0x75,0x6E,0x65,0x20,0x28,0x66,0x69,0x6E,
+	0x65,0x74,0x75,0x6E,0x65,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3E,0x3E,0x54,0x68,0x65,
+	0x20,0x66,0x69,0x6E,0x65,0x74,0x75,0x6E,0x65,0x20,0x72,0x65,
+	0x73,0x6F,0x6C,0x75,0x74,0x69,0x6F,0x6E,0x20,0x68,0x61,0x73,
+	0x20,0x62,0x65,0x65,0x6E,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,
+	0x64,0x20,0x66,0x72,0x6F,0x6D,0x20,0x61,0x20,0x73,0x69,0x67,
+	0x6E,0x65,0x64,0x20,0x6E,0x69,0x62,0x62,0x6C,0x65,0x27,0x28,
+	0x2D,0x38,0x2E,0x2E,0x2B,0x37,0x29,0x20,0x74,0x6F,0x20,0x61,
+	0x20,0x73,0x69,0x67,0x6E,0x65,0x64,0x20,0x62,0x79,0x74,0x65,
+	0x20,0x28,0x2D,0x31,0x32,0x38,0x2E,0x2E,0x2B,0x31,0x32,0x37,
+	0x29,0x2E,0x46,0x3E,0x4E,0x4F,0x54,0x45,0x3A,0x20,0x54,0x68,
+	0x65,0x20,0x6C,0x61,0x73,0x74,0x20,0x33,0x20,0x62,0x69,0x74,
+	0x73,0x20,0x61,0x72,0x65,0x20,0x64,0x69,0x73,0x63,0x61,0x72,
+	0x64,0x65,0x64,0x20,0x64,0x75,0x72,0x69,0x6E,0x67,0x20,0x70,
+	0x6C,0x61,0x79,0x62,0x61,0x63,0x6B,0x2C,0x20,0x73,0x6F,0x20,
+	0x74,0x68,0x65,0x20,0x74,0x72,0x75,0x65,0x20,0x73,0x74,0x65,
+	0x70,0x17,0x73,0x69,0x7A,0x65,0x20,0x69,0x73,0x20,0x38,0x20,
+	0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x20,0x6F,0x66,0x20,0x31,
+	0x2E,0x00,0x13,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x46,0x61,0x64,0x65,0x6F,0x75,0x74,0x3A,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x1B,0x3E,
 	0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,
-	0x74,0x69,0x6D,0x65,0x20,0x28,0x69,0x6E,0x20,0x70,0x6C,0x61,
-	0x79,0x65,0x72,0x20,0x74,0x69,0x63,0x6B,0x73,0x29,0x20,0x74,
-	0x68,0x61,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x79,0x70,
-	0x61,0x73,0x73,0x20,0x75,0x6E,0x74,0x69,0x6C,0x20,0x74,0x68,
-	0x65,0x2D,0x61,0x75,0x74,0x6F,0x2D,0x76,0x69,0x62,0x72,0x61,
-	0x74,0x6F,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x61,0x63,
-	0x68,0x20,0x69,0x74,0x27,0x73,0x20,0x66,0x69,0x6E,0x61,0x6C,
-	0x20,0x61,0x6D,0x70,0x6C,0x69,0x74,0x75,0x64,0x65,0x2E,0x00,
-	0x1E,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x54,0x68,0x65,0x20,0x70,0x69,0x61,0x6E,0x6F,0x20,0x6B,0x65,
-	0x79,0x62,0x6F,0x61,0x72,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,
-	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3F,0x3E,0x54,0x68,0x65,
-	0x20,0x70,0x69,0x61,0x6E,0x6F,0x20,0x6B,0x65,0x79,0x62,0x6F,
-	0x61,0x72,0x64,0x20,0x64,0x65,0x66,0x69,0x6E,0x65,0x73,0x20,
-	0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x20,0x73,0x70,0x6C,0x69,
-	0x74,0x20,0x66,0x6F,0x72,0x20,0x61,0x6E,0x20,0x69,0x6E,0x73,
-	0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x20,0x54,0x6F,0x3F,
-	0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x65,0x20,0x6B,
-	0x65,0x79,0x20,0x73,0x70,0x6C,0x69,0x74,0x2C,0x20,0x63,0x68,
-	0x6F,0x6F,0x73,0x65,0x20,0x61,0x20,0x73,0x61,0x6D,0x70,0x6C,
-	0x65,0x20,0x77,0x69,0x74,0x68,0x69,0x6E,0x20,0x74,0x68,0x65,
-	0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,
-	0x61,0x6E,0x64,0x1C,0x74,0x68,0x65,0x6E,0x20,0x22,0x64,0x72,
-	0x61,0x77,0x22,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x6B,
-	0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x2E,0x42,0x3E,0x54,0x68,
-	0x65,0x20,0x6E,0x6F,0x74,0x65,0x73,0x20,0x70,0x6C,0x61,0x79,
-	0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,
-	0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,
-	0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x61,0x72,0x65,0x20,0x69,
-	0x6E,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x6F,0x6E,0x20,
-	0x74,0x68,0x65,0x09,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,
-	0x2E,0x00,0x1A,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
-	0x30,0x31,0x49,0x6D,0x70,0x6F,0x72,0x74,0x61,0x6E,0x74,0x20,
-	0x6E,0x6F,0x74,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
-	0x40,0x43,0x30,0x30,0x32,0x44,0x3E,0x54,0x68,0x65,0x20,0x76,
-	0x6F,0x6C,0x75,0x6D,0x65,0x2C,0x20,0x70,0x61,0x6E,0x6E,0x69,
-	0x6E,0x67,0x2C,0x20,0x66,0x69,0x6E,0x65,0x74,0x75,0x6E,0x65,
-	0x20,0x61,0x6E,0x64,0x20,0x72,0x65,0x6C,0x61,0x74,0x69,0x76,
-	0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x69,0x73,0x20,0x64,0x65,
-	0x66,0x69,0x6E,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x45,0x41,
-	0x43,0x48,0x41,0x53,0x41,0x4D,0x50,0x4C,0x45,0x20,0x69,0x6E,
+	0x66,0x61,0x64,0x65,0x6F,0x75,0x74,0x20,0x73,0x70,0x65,0x65,
+	0x64,0x2E,0x00,0x19,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x56,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x73,
+	0x77,0x65,0x65,0x70,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
+	0x40,0x43,0x30,0x30,0x32,0x3E,0x3E,0x54,0x68,0x69,0x73,0x20,
+	0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x74,0x69,0x6D,0x65,0x20,
+	0x28,0x69,0x6E,0x20,0x70,0x6C,0x61,0x79,0x65,0x72,0x20,0x74,
+	0x69,0x63,0x6B,0x73,0x29,0x20,0x74,0x68,0x61,0x74,0x20,0x77,
+	0x69,0x6C,0x6C,0x20,0x62,0x79,0x70,0x61,0x73,0x73,0x20,0x75,
+	0x6E,0x74,0x69,0x6C,0x20,0x74,0x68,0x65,0x2D,0x61,0x75,0x74,
+	0x6F,0x2D,0x76,0x69,0x62,0x72,0x61,0x74,0x6F,0x20,0x77,0x69,
+	0x6C,0x6C,0x20,0x72,0x65,0x61,0x63,0x68,0x20,0x69,0x74,0x27,
+	0x73,0x20,0x66,0x69,0x6E,0x61,0x6C,0x20,0x61,0x6D,0x70,0x6C,
+	0x69,0x74,0x75,0x64,0x65,0x2E,0x00,0x1E,0x3E,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x54,0x68,0x65,0x20,0x70,
+	0x69,0x61,0x6E,0x6F,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,
+	0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
+	0x30,0x32,0x3F,0x3E,0x54,0x68,0x65,0x20,0x70,0x69,0x61,0x6E,
+	0x6F,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x20,0x64,
+	0x65,0x66,0x69,0x6E,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x6B,
+	0x65,0x79,0x20,0x73,0x70,0x6C,0x69,0x74,0x20,0x66,0x6F,0x72,
 	0x20,0x61,0x6E,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
-	0x6E,0x74,0x2E,0x20,0x41,0x6C,0x6C,0x20,0x6F,0x74,0x68,0x65,
-	0x72,0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,
-	0x6E,0x20,0x69,0x73,0x20,0x64,0x65,0x66,0x69,0x6E,0x65,0x64,
-	0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x12,0x65,0x6E,0x74,
-	0x69,0x72,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
-	0x6E,0x74,0x2E,0x00,0x31,0x40,0x58,0x30,0x32,0x30,0x40,0x43,
-	0x30,0x30,0x31,0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
-	0x74,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x20,0x45,0x78,0x74,
-	0x65,0x6E,0x73,0x69,0x6F,0x6E,0x3A,0x20,0x28,0x49,0x2E,0x45,
-	0x2E,0x45,0x78,0x74,0x2E,0x29,0x01,0x3E,0x10,0x3E,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x49,0x44,0x49,
-	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x28,0x3E,0x27,0x70,0x2E,0x27,0x20,0x73,0x74,0x61,0x6E,
-	0x64,0x73,0x20,0x66,0x6F,0x72,0x20,0x22,0x70,0x72,0x6F,0x67,
-	0x72,0x61,0x6D,0x22,0x20,0x28,0x69,0x6E,0x73,0x74,0x72,0x75,
-	0x6D,0x65,0x6E,0x74,0x29,0x2E,0x40,0x3E,0x53,0x65,0x76,0x65,
-	0x72,0x61,0x6C,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,
-	0x6E,0x74,0x73,0x20,0x63,0x61,0x6E,0x20,0x68,0x61,0x76,0x65,
-	0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x74,0x72,
-	0x61,0x6E,0x73,0x6D,0x69,0x74,0x20,0x63,0x68,0x61,0x6E,0x6E,
-	0x65,0x6C,0x20,0x62,0x75,0x74,0x20,0x77,0x69,0x74,0x68,0x33,
-	0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x70,0x72,
-	0x6F,0x67,0x72,0x61,0x6D,0x73,0x2E,0x20,0x46,0x54,0x32,0x20,
-	0x63,0x68,0x61,0x6E,0x67,0x65,0x73,0x20,0x74,0x68,0x65,0x20,
-	0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x73,0x20,0x6F,0x6E,0x20,
-	0x74,0x68,0x65,0x43,0x4D,0x49,0x44,0x49,0x2D,0x63,0x68,0x61,
-	0x6E,0x6E,0x65,0x6C,0x73,0x20,0x69,0x6E,0x73,0x74,0x61,0x6E,
-	0x74,0x6C,0x79,0x20,0x64,0x75,0x72,0x69,0x6E,0x67,0x20,0x70,
-	0x6C,0x61,0x79,0x20,0x69,0x66,0x20,0x64,0x69,0x66,0x66,0x65,
+	0x6E,0x74,0x2E,0x20,0x54,0x6F,0x3F,0x63,0x68,0x61,0x6E,0x67,
+	0x65,0x20,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x20,0x73,0x70,
+	0x6C,0x69,0x74,0x2C,0x20,0x63,0x68,0x6F,0x6F,0x73,0x65,0x20,
+	0x61,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x74,
+	0x68,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x69,0x6E,0x73,0x74,
+	0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x61,0x6E,0x64,0x1C,0x74,
+	0x68,0x65,0x6E,0x20,0x22,0x64,0x72,0x61,0x77,0x22,0x20,0x6F,
+	0x6E,0x20,0x74,0x68,0x65,0x20,0x6B,0x65,0x79,0x62,0x6F,0x61,
+	0x72,0x64,0x2E,0x42,0x3E,0x54,0x68,0x65,0x20,0x6E,0x6F,0x74,
+	0x65,0x73,0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x77,0x69,
+	0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,
+	0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
+	0x74,0x20,0x61,0x72,0x65,0x20,0x69,0x6E,0x64,0x69,0x63,0x61,
+	0x74,0x65,0x64,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x09,0x6B,
+	0x65,0x79,0x62,0x6F,0x61,0x72,0x64,0x2E,0x00,0x1A,0x3E,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6D,0x70,
+	0x6F,0x72,0x74,0x61,0x6E,0x74,0x20,0x6E,0x6F,0x74,0x65,0x3A,
+	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
+	0x44,0x3E,0x54,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,
+	0x2C,0x20,0x70,0x61,0x6E,0x6E,0x69,0x6E,0x67,0x2C,0x20,0x66,
+	0x69,0x6E,0x65,0x74,0x75,0x6E,0x65,0x20,0x61,0x6E,0x64,0x20,
+	0x72,0x65,0x6C,0x61,0x74,0x69,0x76,0x65,0x20,0x6E,0x6F,0x74,
+	0x65,0x20,0x69,0x73,0x20,0x64,0x65,0x66,0x69,0x6E,0x65,0x64,
+	0x20,0x66,0x6F,0x72,0x20,0x45,0x41,0x43,0x48,0x41,0x53,0x41,
+	0x4D,0x50,0x4C,0x45,0x20,0x69,0x6E,0x20,0x61,0x6E,0x20,0x69,
+	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x20,0x41,
+	0x6C,0x6C,0x20,0x6F,0x74,0x68,0x65,0x72,0x20,0x69,0x6E,0x66,
+	0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x73,0x20,
+	0x64,0x65,0x66,0x69,0x6E,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,
+	0x74,0x68,0x65,0x12,0x65,0x6E,0x74,0x69,0x72,0x65,0x20,0x69,
+	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x2E,0x00,0x31,
+	0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6E,
+	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x45,0x64,0x69,
+	0x74,0x6F,0x72,0x20,0x45,0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,
+	0x6E,0x3A,0x20,0x28,0x49,0x2E,0x45,0x2E,0x45,0x78,0x74,0x2E,
+	0x29,0x01,0x3E,0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x4D,0x49,0x44,0x49,0x3A,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x28,0x3E,0x27,0x70,
+	0x2E,0x27,0x20,0x73,0x74,0x61,0x6E,0x64,0x73,0x20,0x66,0x6F,
+	0x72,0x20,0x22,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x22,0x20,
+	0x28,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x29,
+	0x2E,0x40,0x3E,0x53,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x69,
+	0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x73,0x20,0x63,
+	0x61,0x6E,0x20,0x68,0x61,0x76,0x65,0x20,0x74,0x68,0x65,0x20,
+	0x73,0x61,0x6D,0x65,0x20,0x74,0x72,0x61,0x6E,0x73,0x6D,0x69,
+	0x74,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x62,0x75,
+	0x74,0x20,0x77,0x69,0x74,0x68,0x33,0x64,0x69,0x66,0x66,0x65,
 	0x72,0x65,0x6E,0x74,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,
-	0x73,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x65,0x64,0x2E,0x3E,
-	0x44,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x70,0x72,
-	0x6F,0x67,0x72,0x61,0x6D,0x73,0x20,0x63,0x61,0x6E,0x6E,0x6F,
-	0x74,0x20,0x62,0x65,0x20,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,
-	0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,
-	0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x61,0x74,0x20,0x74,
-	0x68,0x65,0x11,0x73,0x61,0x6D,0x65,0x20,0x74,0x69,0x6D,0x65,
-	0x20,0x74,0x68,0x6F,0x75,0x67,0x68,0x2E,0x44,0x3E,0x49,0x66,
-	0x20,0x79,0x6F,0x75,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x20,
-	0x74,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75,0x65,0x2C,0x20,
-	0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,
-	0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x77,0x69,0x6C,0x6C,0x20,
-	0x62,0x65,0x20,0x74,0x72,0x61,0x6E,0x73,0x6D,0x69,0x74,0x74,
-	0x65,0x64,0x20,0x74,0x6F,0x1C,0x74,0x68,0x65,0x20,0x73,0x79,
-	0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x20,0x69,0x6D,
-	0x6D,0x65,0x64,0x69,0x61,0x74,0x65,0x6C,0x79,0x2E,0x3E,0x3E,
-	0x53,0x6F,0x6D,0x65,0x20,0x73,0x79,0x6E,0x74,0x68,0x65,0x73,
-	0x69,0x7A,0x65,0x72,0x73,0x20,0x74,0x72,0x61,0x6E,0x73,0x6D,
-	0x69,0x74,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x63,
-	0x68,0x61,0x6E,0x67,0x65,0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,
-	0x61,0x74,0x69,0x6F,0x6E,0x2E,0x20,0x49,0x66,0x20,0x74,0x68,
-	0x65,0x43,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,
-	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,
-	0x46,0x54,0x32,0x20,0x69,0x73,0x20,0x61,0x20,0x4D,0x49,0x44,
-	0x49,0x2D,0x69,0x6E,0x73,0x74,0x72,0x2E,0x20,0x77,0x69,0x74,
-	0x68,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x63,
-	0x68,0x61,0x6E,0x6E,0x65,0x6C,0x20,0x61,0x73,0x3F,0x74,0x68,
-	0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x70,
+	0x73,0x2E,0x20,0x46,0x54,0x32,0x20,0x63,0x68,0x61,0x6E,0x67,
+	0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,
+	0x61,0x6D,0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x43,0x4D,
+	0x49,0x44,0x49,0x2D,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x73,
+	0x20,0x69,0x6E,0x73,0x74,0x61,0x6E,0x74,0x6C,0x79,0x20,0x64,
+	0x75,0x72,0x69,0x6E,0x67,0x20,0x70,0x6C,0x61,0x79,0x20,0x69,
+	0x66,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20,
+	0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x73,0x20,0x61,0x72,0x65,
+	0x20,0x75,0x73,0x65,0x64,0x2E,0x3E,0x44,0x69,0x66,0x66,0x65,
+	0x72,0x65,0x6E,0x74,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,
+	0x73,0x20,0x63,0x61,0x6E,0x6E,0x6F,0x74,0x20,0x62,0x65,0x20,
+	0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x61,0x74,0x20,0x74,0x68,
+	0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,
+	0x65,0x6C,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x11,0x73,0x61,
+	0x6D,0x65,0x20,0x74,0x69,0x6D,0x65,0x20,0x74,0x68,0x6F,0x75,
+	0x67,0x68,0x2E,0x44,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,
+	0x63,0x68,0x61,0x6E,0x67,0x65,0x20,0x74,0x68,0x69,0x73,0x20,
+	0x76,0x61,0x6C,0x75,0x65,0x2C,0x20,0x74,0x68,0x65,0x20,0x70,
+	0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x6E,0x75,0x6D,0x62,0x65,
+	0x72,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x74,0x72,
+	0x61,0x6E,0x73,0x6D,0x69,0x74,0x74,0x65,0x64,0x20,0x74,0x6F,
+	0x1C,0x74,0x68,0x65,0x20,0x73,0x79,0x6E,0x74,0x68,0x65,0x73,
+	0x69,0x7A,0x65,0x72,0x20,0x69,0x6D,0x6D,0x65,0x64,0x69,0x61,
+	0x74,0x65,0x6C,0x79,0x2E,0x3E,0x3E,0x53,0x6F,0x6D,0x65,0x20,
+	0x73,0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x73,
+	0x20,0x74,0x72,0x61,0x6E,0x73,0x6D,0x69,0x74,0x20,0x70,0x72,
+	0x6F,0x67,0x72,0x61,0x6D,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,
+	0x20,0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,
+	0x2E,0x20,0x49,0x66,0x20,0x74,0x68,0x65,0x43,0x63,0x75,0x72,
+	0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,
+	0x65,0x6E,0x74,0x20,0x69,0x6E,0x20,0x46,0x54,0x32,0x20,0x69,
+	0x73,0x20,0x61,0x20,0x4D,0x49,0x44,0x49,0x2D,0x69,0x6E,0x73,
+	0x74,0x72,0x2E,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,
+	0x20,0x73,0x61,0x6D,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,
+	0x6C,0x20,0x61,0x73,0x3F,0x74,0x68,0x65,0x20,0x72,0x65,0x63,
+	0x65,0x69,0x76,0x65,0x64,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,
+	0x6D,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x2C,0x20,0x69,0x74,
+	0x27,0x73,0x20,0x4D,0x49,0x44,0x49,0x2D,0x70,0x72,0x6F,0x67,
+	0x72,0x61,0x6D,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,
+	0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x2E,0x40,0x3E,0x49,0x66,
+	0x20,0x79,0x6F,0x75,0x72,0x20,0x73,0x79,0x6E,0x74,0x68,0x65,
+	0x73,0x69,0x7A,0x65,0x72,0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,
+	0x74,0x20,0x74,0x72,0x61,0x6E,0x73,0x6D,0x69,0x74,0x20,0x70,
 	0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x63,0x68,0x61,0x6E,0x67,
-	0x65,0x2C,0x20,0x69,0x74,0x27,0x73,0x20,0x4D,0x49,0x44,0x49,
-	0x2D,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x77,0x69,0x6C,
-	0x6C,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,
-	0x2E,0x40,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x72,0x20,0x73,
-	0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x20,0x64,
-	0x6F,0x65,0x73,0x6E,0x27,0x74,0x20,0x74,0x72,0x61,0x6E,0x73,
-	0x6D,0x69,0x74,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,
-	0x63,0x68,0x61,0x6E,0x67,0x65,0x2C,0x20,0x74,0x68,0x65,0x72,
-	0x65,0x27,0x73,0x20,0x6E,0x6F,0x3E,0x70,0x6F,0x69,0x6E,0x74,
-	0x20,0x69,0x6E,0x20,0x63,0x68,0x61,0x6E,0x67,0x69,0x6E,0x67,
-	0x20,0x69,0x74,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x73,
-	0x79,0x6E,0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x2C,0x20,
-	0x64,0x6F,0x20,0x69,0x74,0x20,0x69,0x6E,0x20,0x46,0x54,0x32,
-	0x20,0x69,0x6E,0x73,0x74,0x65,0x61,0x64,0x2E,0x00,0x18,0x3E,
-	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x42,0x65,
-	0x6E,0x64,0x65,0x72,0x20,0x72,0x61,0x6E,0x67,0x65,0x3A,0x0B,
-	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x38,
-	0x3E,0x54,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,
-	0x64,0x65,0x66,0x69,0x6E,0x65,0x73,0x20,0x68,0x6F,0x77,0x20,
-	0x6D,0x61,0x6E,0x79,0x20,0x6E,0x6F,0x74,0x65,0x73,0x20,0x74,
-	0x68,0x65,0x20,0x69,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,
-	0x74,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x37,0x73,0x79,0x6E,
-	0x74,0x68,0x65,0x73,0x69,0x7A,0x65,0x72,0x20,0x63,0x61,0x6E,
-	0x20,0x62,0x65,0x20,0x70,0x69,0x74,0x63,0x68,0x62,0x65,0x6E,
-	0x64,0x65,0x64,0x2E,0x20,0x46,0x54,0x32,0x20,0x75,0x73,0x65,
-	0x73,0x20,0x74,0x68,0x69,0x73,0x20,0x76,0x61,0x6C,0x75,0x65,
-	0x20,0x66,0x6F,0x72,0x37,0x74,0x72,0x61,0x6E,0x73,0x6D,0x69,
-	0x74,0x74,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x70,0x6F,
-	0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,
-	0x64,0x6F,0x77,0x6E,0x20,0x61,0x6E,0x64,0x20,0x74,0x6F,0x6E,
-	0x65,0x2D,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,
-	0x13,0x63,0x6F,0x6D,0x6D,0x61,0x6E,0x64,0x73,0x20,0x63,0x6F,
-	0x72,0x72,0x65,0x63,0x74,0x6C,0x79,0x2E,0x46,0x3E,0x54,0x68,
-	0x65,0x20,0x4D,0x49,0x44,0x49,0x2D,0x70,0x69,0x74,0x63,0x68,
-	0x62,0x65,0x6E,0x64,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,0x63,
-	0x6F,0x72,0x72,0x65,0x63,0x74,0x6C,0x79,0x20,0x6F,0x6E,0x6C,
-	0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6C,0x69,0x6E,0x65,0x61,
-	0x72,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,
-	0x73,0x6C,0x69,0x64,0x65,0x73,0x2E,0x00,0x18,0x40,0x58,0x30,
-	0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,
-	0x65,0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x3A,0x01,0x3E,0x2B,
-	0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,
-	0x6C,0x61,0x79,0x20,0x28,0x57,0x61,0x76,0x65,0x66,0x6F,0x72,
-	0x6D,0x2C,0x20,0x72,0x61,0x6E,0x67,0x65,0x2C,0x20,0x64,0x69,
-	0x73,0x70,0x6C,0x61,0x79,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,
-	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x42,0x3E,0x50,0x6C,0x61,
-	0x79,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,
-	0x6E,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,
-	0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,
-	0x64,0x69,0x73,0x70,0x6C,0x61,0x79,0x65,0x64,0x20,0x61,0x62,
-	0x6F,0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x22,0x73,0x74,0x6F,
-	0x70,0x22,0x3D,0x62,0x75,0x74,0x74,0x6F,0x6E,0x2E,0x20,0x4E,
-	0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x65,0x73,
-	0x70,0x65,0x63,0x74,0x20,0x69,0x73,0x20,0x74,0x61,0x6B,0x65,
-	0x6E,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x72,
-	0x74,0x69,0x63,0x75,0x6C,0x61,0x72,0x20,0x73,0x61,0x6D,0x70,
-	0x6C,0x65,0x27,0x73,0x0E,0x72,0x65,0x6C,0x61,0x74,0x69,0x76,
-	0x65,0x20,0x6E,0x6F,0x74,0x65,0x2E,0x00,0x16,0x3E,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x76,0x65,
-	0x20,0x72,0x61,0x6E,0x67,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,
-	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3C,0x3E,0x53,0x74,0x6F,
-	0x72,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,
-	0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,
-	0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,
-	0x6E,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,0x69,
-	0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x2E,0x00,0x11,0x3E,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x73,
-	0x74,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x40,0x3E,0x54,0x68,0x65,0x20,0x73,0x61,0x6D,
-	0x70,0x6C,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x6E,0x20,
-	0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x20,0x62,0x75,0x66,
-	0x66,0x65,0x72,0x20,0x69,0x73,0x20,0x73,0x74,0x6F,0x72,0x65,
-	0x64,0x20,0x49,0x4E,0x54,0x4F,0x20,0x74,0x68,0x65,0x20,0x73,
-	0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x06,0x72,0x61,0x6E,
-	0x67,0x65,0x2E,0x00,0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x43,0x72,0x6F,0x70,0x3A,0x0B,0x3E,0x40,
-	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3E,0x3E,0x43,
-	0x75,0x74,0x73,0x20,0x65,0x76,0x65,0x72,0x79,0x74,0x68,0x69,
-	0x6E,0x67,0x20,0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x72,
-	0x61,0x6E,0x67,0x65,0x2E,0x20,0x4E,0x6F,0x74,0x68,0x69,0x6E,
-	0x67,0x20,0x69,0x73,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,
-	0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,
-	0x19,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x62,0x79,0x20,0x74,
-	0x68,0x69,0x73,0x20,0x6F,0x70,0x65,0x72,0x61,0x74,0x69,0x6F,
-	0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
-	0x30,0x30,0x31,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x3A,0x0B,0x3E,
-	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x17,0x3E,
-	0x4F,0x70,0x65,0x72,0x61,0x74,0x65,0x73,0x20,0x6F,0x6E,0x20,
-	0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x2E,0x00,0x12,
-	0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x58,
-	0x2D,0x46,0x61,0x64,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x44,0x3E,0x54,0x68,0x69,0x73,
-	0x20,0x69,0x73,0x20,0x61,0x20,0x74,0x6F,0x6F,0x6C,0x20,0x66,
-	0x6F,0x72,0x20,0x6D,0x61,0x6B,0x69,0x6E,0x67,0x20,0x73,0x6D,
-	0x6F,0x6F,0x74,0x68,0x20,0x6C,0x6F,0x6F,0x70,0x73,0x2E,0x20,
-	0x53,0x70,0x65,0x63,0x69,0x66,0x79,0x20,0x61,0x20,0x72,0x61,
-	0x6E,0x67,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x63,0x6F,0x76,
-	0x65,0x72,0x73,0x41,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,
-	0x74,0x20,0x6C,0x6F,0x6F,0x70,0x20,0x70,0x6F,0x69,0x6E,0x74,
-	0x2E,0x20,0x4D,0x61,0x6B,0x65,0x20,0x73,0x75,0x72,0x65,0x20,
-	0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,
-	0x73,0x20,0x61,0x73,0x20,0x6D,0x75,0x63,0x68,0x20,0x73,0x70,
-	0x61,0x63,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x41,0x74,0x68,
-	0x65,0x20,0x73,0x65,0x63,0x6F,0x6E,0x64,0x20,0x6C,0x6F,0x6F,
-	0x70,0x20,0x70,0x6F,0x69,0x6E,0x74,0x20,0x61,0x73,0x20,0x74,
-	0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x62,0x79,0x70,
-	0x61,0x73,0x73,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x66,0x69,
-	0x72,0x73,0x74,0x20,0x6C,0x6F,0x6F,0x70,0x20,0x70,0x6F,0x69,
-	0x6E,0x74,0x2E,0x1F,0x50,0x72,0x65,0x73,0x73,0x20,0x74,0x68,
-	0x65,0x20,0x58,0x2D,0x66,0x61,0x64,0x65,0x20,0x62,0x75,0x74,
-	0x74,0x6F,0x6E,0x2E,0x20,0x45,0x6E,0x6A,0x6F,0x79,0x21,0x00,
-	0x18,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x38,0x2D,0x42,0x69,0x74,0x2F,0x31,0x36,0x2D,0x62,0x69,0x74,
-	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x42,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x6C,0x6F,
-	0x61,0x64,0x20,0x61,0x20,0x31,0x36,0x2D,0x62,0x69,0x74,0x20,
-	0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x74,0x68,0x6F,
-	0x75,0x74,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x2C,0x20,0x46,
-	0x54,0x32,0x20,0x61,0x73,0x73,0x75,0x6D,0x65,0x73,0x20,0x74,
-	0x68,0x61,0x74,0x20,0x69,0x74,0x27,0x73,0x3E,0x61,0x6E,0x20,
-	0x38,0x2D,0x62,0x69,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,
-	0x2E,0x20,0x57,0x68,0x65,0x6E,0x20,0x70,0x72,0x65,0x73,0x73,
-	0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x31,0x36,0x2D,0x62,
-	0x69,0x74,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x2C,0x20,0x64,
-	0x6F,0x20,0x6E,0x6F,0x74,0x20,0x70,0x72,0x65,0x73,0x73,0x23,
-	0x22,0x63,0x6F,0x6E,0x76,0x65,0x72,0x74,0x22,0x20,0x77,0x68,
-	0x65,0x6E,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x71,0x75,0x65,
-	0x73,0x74,0x20,0x69,0x73,0x20,0x6D,0x61,0x64,0x65,0x2E,0x00,
-	0x14,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x4D,0x69,0x6E,0x69,0x6D,0x69,0x7A,0x65,0x3A,0x0B,0x3E,0x40,
-	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x44,0x3E,0x54,
-	0x68,0x69,0x73,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,
-	0x20,0x63,0x75,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x70,0x61,
-	0x72,0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x61,
-	0x6D,0x70,0x6C,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,
-	0x20,0x62,0x65,0x79,0x6F,0x6E,0x64,0x20,0x74,0x68,0x65,0x20,
-	0x73,0x65,0x63,0x6F,0x6E,0x64,0x0B,0x6C,0x6F,0x6F,0x70,0x20,
-	0x70,0x6F,0x69,0x6E,0x74,0x2E,0x00,0x2D,0x40,0x58,0x30,0x32,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,0x65,
-	0x20,0x45,0x64,0x69,0x74,0x6F,0x72,0x20,0x45,0x78,0x74,0x65,
-	0x6E,0x73,0x69,0x6F,0x6E,0x3A,0x20,0x28,0x53,0x2E,0x45,0x2E,
-	0x45,0x78,0x74,0x2E,0x29,0x01,0x3E,0x27,0x3E,0x40,0x58,0x30,
-	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x70,0x79,0x2F,
-	0x58,0x63,0x68,0x67,0x20,0x53,0x61,0x6D,0x70,0x6C,0x65,0x2F,
-	0x49,0x6E,0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x3A,0x0B,
-	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3C,
-	0x3E,0x54,0x68,0x65,0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x20,
-	0x69,0x73,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,
-	0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C,0x69,0x6E,0x65,
-	0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x69,0x6E,0x67,0x20,0x63,
-	0x6F,0x6C,0x75,0x6D,0x6E,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,
-	0x40,0x69,0x6E,0x73,0x74,0x72,0x2E,0x2F,0x73,0x61,0x6D,0x70,
-	0x6C,0x65,0x20,0x6C,0x69,0x73,0x74,0x73,0x20,0x69,0x6E,0x20,
-	0x74,0x68,0x65,0x20,0x75,0x70,0x70,0x65,0x72,0x2D,0x72,0x69,
-	0x67,0x68,0x74,0x20,0x63,0x6F,0x72,0x6E,0x65,0x72,0x20,0x6F,
-	0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,
-	0x2E,0x20,0x54,0x68,0x65,0x29,0x64,0x65,0x73,0x74,0x69,0x6E,
-	0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x73,0x20,0x74,0x68,0x65,
-	0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,
-	0x74,0x72,0x2E,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x00,
-	0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x42,0x61,0x63,0x6B,0x77,0x61,0x72,0x64,0x73,0x3A,0x0B,0x3E,
+	0x65,0x2C,0x20,0x74,0x68,0x65,0x72,0x65,0x27,0x73,0x20,0x6E,
+	0x6F,0x3E,0x70,0x6F,0x69,0x6E,0x74,0x20,0x69,0x6E,0x20,0x63,
+	0x68,0x61,0x6E,0x67,0x69,0x6E,0x67,0x20,0x69,0x74,0x20,0x6F,
+	0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x79,0x6E,0x74,0x68,0x65,
+	0x73,0x69,0x7A,0x65,0x72,0x2C,0x20,0x64,0x6F,0x20,0x69,0x74,
+	0x20,0x69,0x6E,0x20,0x46,0x54,0x32,0x20,0x69,0x6E,0x73,0x74,
+	0x65,0x61,0x64,0x2E,0x00,0x18,0x3E,0x40,0x58,0x30,0x34,0x30,
+	0x40,0x43,0x30,0x30,0x31,0x42,0x65,0x6E,0x64,0x65,0x72,0x20,
+	0x72,0x61,0x6E,0x67,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
+	0x30,0x40,0x43,0x30,0x30,0x32,0x38,0x3E,0x54,0x68,0x69,0x73,
+	0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x64,0x65,0x66,0x69,0x6E,
+	0x65,0x73,0x20,0x68,0x6F,0x77,0x20,0x6D,0x61,0x6E,0x79,0x20,
+	0x6E,0x6F,0x74,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x69,0x6E,
+	0x73,0x74,0x72,0x75,0x6D,0x65,0x6E,0x74,0x20,0x6F,0x6E,0x20,
+	0x74,0x68,0x65,0x37,0x73,0x79,0x6E,0x74,0x68,0x65,0x73,0x69,
+	0x7A,0x65,0x72,0x20,0x63,0x61,0x6E,0x20,0x62,0x65,0x20,0x70,
+	0x69,0x74,0x63,0x68,0x62,0x65,0x6E,0x64,0x65,0x64,0x2E,0x20,
+	0x46,0x54,0x32,0x20,0x75,0x73,0x65,0x73,0x20,0x74,0x68,0x69,
+	0x73,0x20,0x76,0x61,0x6C,0x75,0x65,0x20,0x66,0x6F,0x72,0x37,
+	0x74,0x72,0x61,0x6E,0x73,0x6D,0x69,0x74,0x74,0x69,0x6E,0x67,
+	0x20,0x74,0x68,0x65,0x20,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,
+	0x6E,0x74,0x6F,0x20,0x75,0x70,0x2F,0x64,0x6F,0x77,0x6E,0x20,
+	0x61,0x6E,0x64,0x20,0x74,0x6F,0x6E,0x65,0x2D,0x70,0x6F,0x72,
+	0x74,0x61,0x6D,0x65,0x6E,0x74,0x6F,0x13,0x63,0x6F,0x6D,0x6D,
+	0x61,0x6E,0x64,0x73,0x20,0x63,0x6F,0x72,0x72,0x65,0x63,0x74,
+	0x6C,0x79,0x2E,0x46,0x3E,0x54,0x68,0x65,0x20,0x4D,0x49,0x44,
+	0x49,0x2D,0x70,0x69,0x74,0x63,0x68,0x62,0x65,0x6E,0x64,0x20,
+	0x77,0x6F,0x72,0x6B,0x73,0x20,0x63,0x6F,0x72,0x72,0x65,0x63,
+	0x74,0x6C,0x79,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x77,0x69,0x74,
+	0x68,0x20,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x66,0x72,0x65,
+	0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x73,0x6C,0x69,0x64,0x65,
+	0x73,0x2E,0x00,0x18,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x53,0x61,0x6D,0x70,0x6C,0x65,0x20,0x45,0x64,0x69,
+	0x74,0x6F,0x72,0x3A,0x01,0x3E,0x2B,0x3E,0x40,0x58,0x30,0x34,
+	0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x6C,0x61,0x79,0x20,0x28,
+	0x57,0x61,0x76,0x65,0x66,0x6F,0x72,0x6D,0x2C,0x20,0x72,0x61,
+	0x6E,0x67,0x65,0x2C,0x20,0x64,0x69,0x73,0x70,0x6C,0x61,0x79,
+	0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
+	0x30,0x32,0x42,0x3E,0x50,0x6C,0x61,0x79,0x73,0x20,0x74,0x68,
+	0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x73,0x61,
+	0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,
+	0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x64,0x69,0x73,0x70,0x6C,
+	0x61,0x79,0x65,0x64,0x20,0x61,0x62,0x6F,0x76,0x65,0x20,0x74,
+	0x68,0x65,0x20,0x22,0x73,0x74,0x6F,0x70,0x22,0x3D,0x62,0x75,
+	0x74,0x74,0x6F,0x6E,0x2E,0x20,0x4E,0x6F,0x74,0x65,0x20,0x74,
+	0x68,0x61,0x74,0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x20,
+	0x69,0x73,0x20,0x74,0x61,0x6B,0x65,0x6E,0x20,0x74,0x6F,0x20,
+	0x74,0x68,0x65,0x20,0x70,0x61,0x72,0x74,0x69,0x63,0x75,0x6C,
+	0x61,0x72,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x27,0x73,0x0E,
+	0x72,0x65,0x6C,0x61,0x74,0x69,0x76,0x65,0x20,0x6E,0x6F,0x74,
+	0x65,0x2E,0x00,0x16,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x53,0x61,0x76,0x65,0x20,0x72,0x61,0x6E,0x67,
+	0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
+	0x30,0x32,0x3C,0x3E,0x53,0x74,0x6F,0x72,0x65,0x73,0x20,0x74,
+	0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x73,0x70,0x65,
+	0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,
+	0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x73,0x61,
+	0x6D,0x70,0x6C,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,
+	0x72,0x79,0x2E,0x00,0x11,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x50,0x61,0x73,0x74,0x65,0x3A,0x0B,0x3E,
 	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x3E,
-	0x4F,0x70,0x65,0x72,0x61,0x74,0x65,0x73,0x20,0x6F,0x6E,0x20,
-	0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x28,0x6F,
-	0x72,0x20,0x74,0x68,0x65,0x20,0x77,0x68,0x6F,0x6C,0x65,0x20,
-	0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x69,0x66,0x20,0x6E,0x6F,
-	0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x69,0x73,0x20,0x73,0x65,
-	0x74,0x29,0x2E,0x00,0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x53,0x69,0x67,0x6E,0x3A,0x0B,0x3E,0x40,
-	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x22,0x3E,0x43,
-	0x6F,0x6E,0x76,0x65,0x72,0x74,0x73,0x20,0x62,0x65,0x74,0x77,
-	0x65,0x65,0x6E,0x20,0x73,0x69,0x67,0x6E,0x65,0x64,0x2F,0x75,
-	0x6E,0x73,0x69,0x67,0x6E,0x65,0x64,0x2E,0x00,0x1F,0x3E,0x40,
-	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x42,0x2E,0x20,
-	0x73,0x77,0x61,0x70,0x20,0x28,0x62,0x79,0x74,0x65,0x20,0x73,
-	0x77,0x61,0x70,0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
-	0x40,0x43,0x30,0x30,0x32,0x3F,0x53,0x77,0x61,0x70,0x73,0x20,
-	0x74,0x68,0x65,0x20,0x62,0x79,0x74,0x65,0x20,0x6F,0x72,0x64,
-	0x65,0x72,0x20,0x74,0x6F,0x2F,0x66,0x72,0x6F,0x6D,0x20,0x49,
-	0x6E,0x74,0x65,0x6C,0x20,0x66,0x72,0x6F,0x6D,0x2F,0x74,0x6F,
-	0x20,0x4D,0x6F,0x74,0x6F,0x72,0x6F,0x6C,0x61,0x20,0x73,0x74,
-	0x61,0x6E,0x64,0x61,0x72,0x64,0x20,0x6F,0x6E,0x12,0x74,0x68,
-	0x65,0x20,0x65,0x6E,0x74,0x69,0x72,0x65,0x20,0x73,0x61,0x6D,
-	0x70,0x6C,0x65,0x2E,0x44,0x59,0x6F,0x75,0x27,0x6C,0x6C,0x20,
-	0x6E,0x65,0x65,0x64,0x20,0x74,0x68,0x69,0x73,0x20,0x66,0x75,
-	0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x69,0x66,0x20,0x79,0x6F,
-	0x75,0x20,0x69,0x6D,0x70,0x6F,0x72,0x74,0x20,0x31,0x36,0x2D,
-	0x62,0x69,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x20,
-	0x77,0x69,0x74,0x68,0x20,0x4D,0x6F,0x74,0x6F,0x72,0x6F,0x6C,
-	0x61,0x2D,0x62,0x79,0x74,0x65,0x2D,0x6F,0x72,0x64,0x65,0x72,
-	0x69,0x6E,0x67,0x20,0x28,0x66,0x2E,0x65,0x78,0x2E,0x20,0x4B,
-	0x75,0x72,0x7A,0x77,0x65,0x69,0x6C,0x20,0x4B,0x32,0x30,0x30,
-	0x30,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x2E,0x29,0x00,
-	0x10,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x45,0x63,0x68,0x6F,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
-	0x40,0x43,0x30,0x30,0x32,0x1E,0x4F,0x70,0x65,0x72,0x61,0x74,
-	0x65,0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x65,0x6E,
-	0x74,0x69,0x72,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,
-	0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
-	0x31,0x46,0x69,0x78,0x20,0x44,0x43,0x3A,0x0B,0x3E,0x40,0x58,
-	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3D,0x41,0x74,0x74,
-	0x65,0x6D,0x70,0x74,0x73,0x20,0x74,0x6F,0x20,0x63,0x65,0x6E,
-	0x74,0x65,0x72,0x20,0x61,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,
-	0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x75,0x6E,
-	0x77,0x61,0x6E,0x74,0x65,0x64,0x20,0x44,0x43,0x20,0x6F,0x66,
-	0x66,0x73,0x65,0x74,0x2F,0x62,0x69,0x61,0x73,0x2E,0x43,0x50,
-	0x6C,0x65,0x61,0x73,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x74,
-	0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x69,0x73,0x20,0x75,0x73,
-	0x69,0x6E,0x67,0x20,0x61,0x20,0x63,0x72,0x75,0x64,0x65,0x20,
-	0x61,0x6C,0x67,0x6F,0x72,0x69,0x74,0x68,0x6D,0x2C,0x20,0x73,
-	0x6F,0x20,0x69,0x74,0x20,0x63,0x61,0x6E,0x20,0x73,0x6F,0x6D,
-	0x65,0x74,0x69,0x6D,0x65,0x73,0x22,0x66,0x61,0x69,0x6C,0x20,
-	0x64,0x65,0x70,0x65,0x6E,0x64,0x69,0x6E,0x67,0x20,0x6F,0x6E,
+	0x54,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,
+	0x61,0x74,0x61,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,
+	0x6F,0x70,0x79,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x69,
+	0x73,0x20,0x73,0x74,0x6F,0x72,0x65,0x64,0x20,0x49,0x4E,0x54,
+	0x4F,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,
+	0x69,0x65,0x64,0x06,0x72,0x61,0x6E,0x67,0x65,0x2E,0x00,0x10,
+	0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x43,
+	0x72,0x6F,0x70,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
+	0x43,0x30,0x30,0x32,0x3E,0x3E,0x43,0x75,0x74,0x73,0x20,0x65,
+	0x76,0x65,0x72,0x79,0x74,0x68,0x69,0x6E,0x67,0x20,0x62,0x75,
+	0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6E,0x67,0x65,0x2E,
+	0x20,0x4E,0x6F,0x74,0x68,0x69,0x6E,0x67,0x20,0x69,0x73,0x20,
+	0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,
+	0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x19,0x62,0x75,0x66,0x66,
+	0x65,0x72,0x20,0x62,0x79,0x20,0x74,0x68,0x69,0x73,0x20,0x6F,
+	0x70,0x65,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2E,0x00,0x12,0x3E,
+	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,
+	0x6C,0x75,0x6D,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
+	0x40,0x43,0x30,0x30,0x32,0x17,0x3E,0x4F,0x70,0x65,0x72,0x61,
+	0x74,0x65,0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x72,
+	0x61,0x6E,0x67,0x65,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,
+	0x30,0x40,0x43,0x30,0x30,0x31,0x58,0x2D,0x46,0x61,0x64,0x65,
+	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
+	0x32,0x44,0x3E,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,
+	0x20,0x74,0x6F,0x6F,0x6C,0x20,0x66,0x6F,0x72,0x20,0x6D,0x61,
+	0x6B,0x69,0x6E,0x67,0x20,0x73,0x6D,0x6F,0x6F,0x74,0x68,0x20,
+	0x6C,0x6F,0x6F,0x70,0x73,0x2E,0x20,0x53,0x70,0x65,0x63,0x69,
+	0x66,0x79,0x20,0x61,0x20,0x72,0x61,0x6E,0x67,0x65,0x20,0x74,
+	0x68,0x61,0x74,0x20,0x63,0x6F,0x76,0x65,0x72,0x73,0x41,0x74,
+	0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6C,0x6F,0x6F,
+	0x70,0x20,0x70,0x6F,0x69,0x6E,0x74,0x2E,0x20,0x4D,0x61,0x6B,
+	0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x68,0x61,0x74,0x20,
+	0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x61,0x73,0x20,
+	0x6D,0x75,0x63,0x68,0x20,0x73,0x70,0x61,0x63,0x65,0x20,0x61,
+	0x66,0x74,0x65,0x72,0x41,0x74,0x68,0x65,0x20,0x73,0x65,0x63,
+	0x6F,0x6E,0x64,0x20,0x6C,0x6F,0x6F,0x70,0x20,0x70,0x6F,0x69,
+	0x6E,0x74,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x61,
+	0x6E,0x67,0x65,0x20,0x62,0x79,0x70,0x61,0x73,0x73,0x65,0x73,
+	0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6C,
+	0x6F,0x6F,0x70,0x20,0x70,0x6F,0x69,0x6E,0x74,0x2E,0x1F,0x50,
+	0x72,0x65,0x73,0x73,0x20,0x74,0x68,0x65,0x20,0x58,0x2D,0x66,
+	0x61,0x64,0x65,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x2E,0x20,
+	0x45,0x6E,0x6A,0x6F,0x79,0x21,0x00,0x18,0x3E,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x38,0x2D,0x42,0x69,0x74,
+	0x2F,0x31,0x36,0x2D,0x62,0x69,0x74,0x3A,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x42,0x3E,0x49,0x66,
+	0x20,0x79,0x6F,0x75,0x20,0x6C,0x6F,0x61,0x64,0x20,0x61,0x20,
+	0x31,0x36,0x2D,0x62,0x69,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,
+	0x65,0x20,0x77,0x69,0x74,0x68,0x6F,0x75,0x74,0x20,0x68,0x65,
+	0x61,0x64,0x65,0x72,0x2C,0x20,0x46,0x54,0x32,0x20,0x61,0x73,
+	0x73,0x75,0x6D,0x65,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x69,
+	0x74,0x27,0x73,0x3E,0x61,0x6E,0x20,0x38,0x2D,0x62,0x69,0x74,
+	0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x20,0x57,0x68,0x65,
+	0x6E,0x20,0x70,0x72,0x65,0x73,0x73,0x69,0x6E,0x67,0x20,0x74,
+	0x68,0x65,0x20,0x31,0x36,0x2D,0x62,0x69,0x74,0x20,0x62,0x75,
+	0x74,0x74,0x6F,0x6E,0x2C,0x20,0x64,0x6F,0x20,0x6E,0x6F,0x74,
+	0x20,0x70,0x72,0x65,0x73,0x73,0x23,0x22,0x63,0x6F,0x6E,0x76,
+	0x65,0x72,0x74,0x22,0x20,0x77,0x68,0x65,0x6E,0x20,0x74,0x68,
+	0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x69,0x73,
+	0x20,0x6D,0x61,0x64,0x65,0x2E,0x00,0x14,0x3E,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x69,0x6E,0x69,0x6D,
+	0x69,0x7A,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
+	0x43,0x30,0x30,0x32,0x44,0x3E,0x54,0x68,0x69,0x73,0x20,0x66,
+	0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x20,0x63,0x75,0x74,0x73,
+	0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x72,0x74,0x20,0x6F,0x66,
 	0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,
-	0x64,0x61,0x74,0x61,0x2E,0x00,0x14,0x3E,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x52,0x65,0x73,0x61,0x6D,0x70,
-	0x6C,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x3C,0x4F,0x70,0x65,0x72,0x61,0x74,0x65,0x73,
-	0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x65,0x6E,0x74,0x69,
-	0x72,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x20,0x54,
-	0x68,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x27,0x73,0x20,
-	0x72,0x65,0x6C,0x61,0x74,0x69,0x76,0x65,0x20,0x6E,0x6F,0x74,
-	0x65,0x20,0x69,0x73,0x2C,0x63,0x68,0x61,0x6E,0x67,0x65,0x64,
-	0x20,0x77,0x69,0x74,0x68,0x20,0x72,0x65,0x73,0x70,0x65,0x63,
-	0x74,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,
-	0x61,0x6D,0x70,0x6C,0x69,0x6E,0x67,0x20,0x72,0x61,0x74,0x65,
-	0x2E,0x00,0x16,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
-	0x30,0x31,0x4D,0x69,0x78,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,
+	0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x62,0x65,0x79,0x6F,
+	0x6E,0x64,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x63,0x6F,0x6E,
+	0x64,0x0B,0x6C,0x6F,0x6F,0x70,0x20,0x70,0x6F,0x69,0x6E,0x74,
+	0x2E,0x00,0x2D,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x53,0x61,0x6D,0x70,0x6C,0x65,0x20,0x45,0x64,0x69,0x74,
+	0x6F,0x72,0x20,0x45,0x78,0x74,0x65,0x6E,0x73,0x69,0x6F,0x6E,
+	0x3A,0x20,0x28,0x53,0x2E,0x45,0x2E,0x45,0x78,0x74,0x2E,0x29,
+	0x01,0x3E,0x27,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x43,0x6F,0x70,0x79,0x2F,0x58,0x63,0x68,0x67,0x20,
+	0x53,0x61,0x6D,0x70,0x6C,0x65,0x2F,0x49,0x6E,0x73,0x74,0x72,
+	0x75,0x6D,0x65,0x6E,0x74,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
+	0x30,0x40,0x43,0x30,0x30,0x32,0x3C,0x3E,0x54,0x68,0x65,0x20,
+	0x73,0x6F,0x75,0x72,0x63,0x65,0x20,0x69,0x73,0x20,0x73,0x70,
+	0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,
+	0x68,0x65,0x20,0x6C,0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,0x62,
+	0x65,0x72,0x69,0x6E,0x67,0x20,0x63,0x6F,0x6C,0x75,0x6D,0x6E,
+	0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x40,0x69,0x6E,0x73,0x74,
+	0x72,0x2E,0x2F,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x6C,0x69,
+	0x73,0x74,0x73,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x75,
+	0x70,0x70,0x65,0x72,0x2D,0x72,0x69,0x67,0x68,0x74,0x20,0x63,
+	0x6F,0x72,0x6E,0x65,0x72,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,
+	0x20,0x73,0x63,0x72,0x65,0x65,0x6E,0x2E,0x20,0x54,0x68,0x65,
+	0x29,0x64,0x65,0x73,0x74,0x69,0x6E,0x61,0x74,0x69,0x6F,0x6E,
+	0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,
+	0x65,0x6E,0x74,0x20,0x69,0x6E,0x73,0x74,0x72,0x2E,0x2F,0x73,
+	0x61,0x6D,0x70,0x6C,0x65,0x2E,0x00,0x15,0x3E,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x42,0x61,0x63,0x6B,0x77,
+	0x61,0x72,0x64,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,
+	0x40,0x43,0x30,0x30,0x32,0x40,0x3E,0x4F,0x70,0x65,0x72,0x61,
+	0x74,0x65,0x73,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,0x72,
+	0x61,0x6E,0x67,0x65,0x20,0x28,0x6F,0x72,0x20,0x74,0x68,0x65,
+	0x20,0x77,0x68,0x6F,0x6C,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,
+	0x65,0x20,0x69,0x66,0x20,0x6E,0x6F,0x20,0x72,0x61,0x6E,0x67,
+	0x65,0x20,0x69,0x73,0x20,0x73,0x65,0x74,0x29,0x2E,0x00,0x10,
+	0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,
+	0x69,0x67,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
+	0x43,0x30,0x30,0x32,0x22,0x3E,0x43,0x6F,0x6E,0x76,0x65,0x72,
+	0x74,0x73,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6E,0x20,0x73,
+	0x69,0x67,0x6E,0x65,0x64,0x2F,0x75,0x6E,0x73,0x69,0x67,0x6E,
+	0x65,0x64,0x2E,0x00,0x1F,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x42,0x2E,0x20,0x73,0x77,0x61,0x70,0x20,
+	0x28,0x62,0x79,0x74,0x65,0x20,0x73,0x77,0x61,0x70,0x29,0x3A,
+	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
+	0x3F,0x53,0x77,0x61,0x70,0x73,0x20,0x74,0x68,0x65,0x20,0x62,
+	0x79,0x74,0x65,0x20,0x6F,0x72,0x64,0x65,0x72,0x20,0x74,0x6F,
+	0x2F,0x66,0x72,0x6F,0x6D,0x20,0x49,0x6E,0x74,0x65,0x6C,0x20,
+	0x66,0x72,0x6F,0x6D,0x2F,0x74,0x6F,0x20,0x4D,0x6F,0x74,0x6F,
+	0x72,0x6F,0x6C,0x61,0x20,0x73,0x74,0x61,0x6E,0x64,0x61,0x72,
+	0x64,0x20,0x6F,0x6E,0x12,0x74,0x68,0x65,0x20,0x65,0x6E,0x74,
+	0x69,0x72,0x65,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x44,
+	0x59,0x6F,0x75,0x27,0x6C,0x6C,0x20,0x6E,0x65,0x65,0x64,0x20,
+	0x74,0x68,0x69,0x73,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,
+	0x6E,0x20,0x69,0x66,0x20,0x79,0x6F,0x75,0x20,0x69,0x6D,0x70,
+	0x6F,0x72,0x74,0x20,0x31,0x36,0x2D,0x62,0x69,0x74,0x20,0x73,
+	0x61,0x6D,0x70,0x6C,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,
+	0x4D,0x6F,0x74,0x6F,0x72,0x6F,0x6C,0x61,0x2D,0x62,0x79,0x74,
+	0x65,0x2D,0x6F,0x72,0x64,0x65,0x72,0x69,0x6E,0x67,0x20,0x28,
+	0x66,0x2E,0x65,0x78,0x2E,0x20,0x4B,0x75,0x72,0x7A,0x77,0x65,
+	0x69,0x6C,0x20,0x4B,0x32,0x30,0x30,0x30,0x20,0x73,0x61,0x6D,
+	0x70,0x6C,0x65,0x73,0x2E,0x29,0x00,0x10,0x3E,0x40,0x58,0x30,
+	0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x45,0x63,0x68,0x6F,0x3A,
+	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
+	0x1E,0x4F,0x70,0x65,0x72,0x61,0x74,0x65,0x73,0x20,0x6F,0x6E,
+	0x20,0x74,0x68,0x65,0x20,0x65,0x6E,0x74,0x69,0x72,0x65,0x20,
+	0x73,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x00,0x12,0x3E,0x40,0x58,
+	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,0x69,0x78,0x20,
+	0x44,0x43,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x3D,0x41,0x74,0x74,0x65,0x6D,0x70,0x74,0x73,
+	0x20,0x74,0x6F,0x20,0x63,0x65,0x6E,0x74,0x65,0x72,0x20,0x61,
+	0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x74,0x68,0x61,0x74,
+	0x20,0x68,0x61,0x73,0x20,0x75,0x6E,0x77,0x61,0x6E,0x74,0x65,
+	0x64,0x20,0x44,0x43,0x20,0x6F,0x66,0x66,0x73,0x65,0x74,0x2F,
+	0x62,0x69,0x61,0x73,0x2E,0x43,0x50,0x6C,0x65,0x61,0x73,0x65,
+	0x20,0x6E,0x6F,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,
+	0x74,0x20,0x69,0x73,0x20,0x75,0x73,0x69,0x6E,0x67,0x20,0x61,
+	0x20,0x63,0x72,0x75,0x64,0x65,0x20,0x61,0x6C,0x67,0x6F,0x72,
+	0x69,0x74,0x68,0x6D,0x2C,0x20,0x73,0x6F,0x20,0x69,0x74,0x20,
+	0x63,0x61,0x6E,0x20,0x73,0x6F,0x6D,0x65,0x74,0x69,0x6D,0x65,
+	0x73,0x22,0x66,0x61,0x69,0x6C,0x20,0x64,0x65,0x70,0x65,0x6E,
+	0x64,0x69,0x6E,0x67,0x20,0x6F,0x6E,0x20,0x74,0x68,0x65,0x20,
+	0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,0x61,0x74,0x61,0x2E,
+	0x00,0x14,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x52,0x65,0x73,0x61,0x6D,0x70,0x6C,0x65,0x3A,0x0B,0x3E,
+	0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3C,0x4F,
+	0x70,0x65,0x72,0x61,0x74,0x65,0x73,0x20,0x6F,0x6E,0x20,0x74,
+	0x68,0x65,0x20,0x65,0x6E,0x74,0x69,0x72,0x65,0x20,0x73,0x61,
+	0x6D,0x70,0x6C,0x65,0x2E,0x20,0x54,0x68,0x65,0x20,0x73,0x61,
+	0x6D,0x70,0x6C,0x65,0x27,0x73,0x20,0x72,0x65,0x6C,0x61,0x74,
+	0x69,0x76,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x69,0x73,0x2C,
+	0x63,0x68,0x61,0x6E,0x67,0x65,0x64,0x20,0x77,0x69,0x74,0x68,
+	0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x20,0x74,0x6F,0x20,
+	0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x61,0x6D,0x70,0x6C,0x69,
+	0x6E,0x67,0x20,0x72,0x61,0x74,0x65,0x2E,0x00,0x16,0x3E,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x4D,0x69,0x78,
+	0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x3A,0x0B,0x3E,0x40,0x58,
+	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x35,0x3E,0x4D,0x69,
+	0x78,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x75,0x72,
+	0x63,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,
+	0x64,0x65,0x73,0x74,0x69,0x6E,0x61,0x74,0x69,0x6F,0x6E,0x20,
+	0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x75,0x72,0x63,
+	0x65,0x2E,0x00,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x44,0x72,0x61,0x77,0x20,0x6D,0x6F,0x64,0x65,
 	0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,
-	0x32,0x35,0x3E,0x4D,0x69,0x78,0x65,0x73,0x20,0x74,0x68,0x65,
-	0x20,0x73,0x6F,0x75,0x72,0x63,0x65,0x20,0x77,0x69,0x74,0x68,
-	0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x73,0x74,0x69,0x6E,0x61,
-	0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,
-	0x73,0x6F,0x75,0x72,0x63,0x65,0x2E,0x00,0x15,0x3E,0x40,0x58,
-	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x44,0x72,0x61,0x77,
-	0x20,0x6D,0x6F,0x64,0x65,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x40,0x42,0x79,0x20,0x70,0x72,
-	0x65,0x73,0x73,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,0x72,
-	0x69,0x67,0x68,0x74,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x62,
-	0x75,0x74,0x74,0x6F,0x6E,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,
-	0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x77,0x69,0x6E,0x64,
-	0x6F,0x77,0x2C,0x20,0x79,0x6F,0x75,0x20,0x63,0x61,0x6E,0x1D,
-	0x64,0x72,0x61,0x77,0x20,0x79,0x6F,0x75,0x72,0x20,0x77,0x61,
-	0x76,0x65,0x66,0x6F,0x72,0x6D,0x73,0x20,0x6D,0x61,0x6E,0x75,
-	0x61,0x6C,0x6C,0x79,0x2E,0x00,0x15,0x40,0x58,0x30,0x32,0x30,
-	0x40,0x43,0x30,0x30,0x31,0x57,0x41,0x56,0x20,0x65,0x78,0x70,
-	0x6F,0x72,0x74,0x3A,0x01,0x3E,0x1F,0x3E,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x49,0x6D,0x70,0x72,0x65,0x63,
-	0x69,0x73,0x65,0x20,0x42,0x50,0x4D,0x20,0x28,0x46,0x54,0x32,
-	0x29,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
-	0x30,0x32,0x44,0x54,0x68,0x65,0x20,0x42,0x50,0x4D,0x20,0x70,
+	0x32,0x40,0x42,0x79,0x20,0x70,0x72,0x65,0x73,0x73,0x69,0x6E,
+	0x67,0x20,0x74,0x68,0x65,0x20,0x72,0x69,0x67,0x68,0x74,0x20,
+	0x6D,0x6F,0x75,0x73,0x65,0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,
+	0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x70,
+	0x6C,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x2C,0x20,0x79,
+	0x6F,0x75,0x20,0x63,0x61,0x6E,0x1D,0x64,0x72,0x61,0x77,0x20,
+	0x79,0x6F,0x75,0x72,0x20,0x77,0x61,0x76,0x65,0x66,0x6F,0x72,
+	0x6D,0x73,0x20,0x6D,0x61,0x6E,0x75,0x61,0x6C,0x6C,0x79,0x2E,
+	0x00,0x15,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,
+	0x57,0x41,0x56,0x20,0x65,0x78,0x70,0x6F,0x72,0x74,0x3A,0x01,
+	0x3E,0x1F,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x49,0x6D,0x70,0x72,0x65,0x63,0x69,0x73,0x65,0x20,0x42,
+	0x50,0x4D,0x20,0x28,0x46,0x54,0x32,0x29,0x3A,0x0B,0x3E,0x40,
+	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x42,0x54,0x68,
+	0x65,0x20,0x73,0x6F,0x6E,0x67,0x20,0x42,0x50,0x4D,0x20,0x70,
 	0x72,0x65,0x63,0x69,0x73,0x69,0x6F,0x6E,0x20,0x69,0x6E,0x20,
 	0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,0x46,0x54,0x32,
 	0x20,0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x65,0x78,0x61,0x63,
 	0x74,0x2E,0x20,0x54,0x69,0x63,0x6B,0x20,0x74,0x68,0x69,0x73,
-	0x20,0x62,0x6F,0x78,0x20,0x74,0x6F,0x20,0x75,0x73,0x65,0x40,
-	0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x28,0x70,0x6F,
-	0x6F,0x72,0x29,0x20,0x42,0x50,0x4D,0x20,0x70,0x72,0x65,0x63,
-	0x69,0x73,0x69,0x6F,0x6E,0x20,0x74,0x68,0x61,0x74,0x20,0x6F,
-	0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,0x46,0x54,0x32,0x20,
-	0x75,0x73,0x65,0x73,0x2E,0x20,0x49,0x74,0x20,0x77,0x69,0x6C,
-	0x6C,0x20,0x62,0x65,0x47,0x61,0x20,0x66,0x72,0x61,0x63,0x74,
-	0x69,0x6F,0x6E,0x20,0x6F,0x66,0x66,0x2C,0x20,0x62,0x75,0x74,
-	0x20,0x74,0x68,0x65,0x20,0x57,0x41,0x56,0x20,0x6F,0x75,0x74,
-	0x70,0x75,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,
+	0x20,0x62,0x6F,0x78,0x44,0x74,0x6F,0x20,0x75,0x73,0x65,0x20,
+	0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x69,0x6D,0x70,
+	0x72,0x65,0x63,0x69,0x73,0x65,0x20,0x42,0x50,0x4D,0x20,0x61,
+	0x73,0x20,0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,0x46,
+	0x54,0x32,0x2E,0x20,0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,
+	0x62,0x65,0x20,0x61,0x20,0x66,0x72,0x61,0x63,0x74,0x69,0x6F,
+	0x6E,0x3F,0x6F,0x66,0x66,0x2C,0x20,0x62,0x75,0x74,0x20,0x74,
+	0x68,0x65,0x20,0x57,0x41,0x56,0x20,0x6F,0x75,0x74,0x70,0x75,
+	0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x68,0x61,0x76,0x65,0x20,
 	0x74,0x68,0x65,0x20,0x73,0x61,0x6D,0x65,0x20,0x6C,0x65,0x6E,
-	0x67,0x74,0x68,0x20,0x61,0x73,0x20,0x66,0x72,0x6F,0x6D,0x20,
-	0x46,0x54,0x32,0x2E,0x40,0x54,0x68,0x69,0x73,0x20,0x73,0x65,
-	0x74,0x74,0x69,0x6E,0x67,0x73,0x20,0x6F,0x6E,0x6C,0x79,0x20,
-	0x61,0x66,0x66,0x65,0x63,0x74,0x73,0x20,0x57,0x41,0x56,0x20,
-	0x65,0x78,0x70,0x6F,0x72,0x74,0x2C,0x20,0x61,0x6E,0x64,0x20,
-	0x6E,0x6F,0x74,0x20,0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x20,
-	0x70,0x6C,0x61,0x79,0x62,0x61,0x63,0x6B,0x2E,0x00,0x18,0x40,
-	0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,
-	0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x3A,0x01,
-	0x3E,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
-	0x31,0x41,0x75,0x74,0x6F,0x20,0x73,0x61,0x76,0x65,0x3A,0x0B,
-	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x43,
-	0x49,0x66,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x6F,0x20,
-	0x73,0x61,0x76,0x65,0x20,0x69,0x73,0x20,0x6F,0x6E,0x2C,0x20,
-	0x46,0x54,0x32,0x20,0x77,0x69,0x6C,0x6C,0x20,0x75,0x70,0x64,
-	0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,
-	0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,
-	0x6C,0x65,0x20,0x77,0x68,0x65,0x6E,0x15,0x79,0x6F,0x75,0x20,
-	0x65,0x78,0x69,0x74,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,
-	0x67,0x72,0x61,0x6D,0x2E,0x00,0x1F,0x40,0x58,0x30,0x32,0x30,
-	0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,
-	0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x41,0x75,0x64,0x69,
-	0x6F,0x3A,0x01,0x3E,0x19,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
-	0x43,0x30,0x30,0x31,0x49,0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,
-	0x61,0x74,0x69,0x6F,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
-	0x30,0x40,0x43,0x30,0x30,0x32,0x35,0x53,0x65,0x6C,0x65,0x63,
-	0x74,0x73,0x20,0x77,0x68,0x61,0x74,0x20,0x74,0x79,0x70,0x65,
-	0x20,0x6F,0x66,0x20,0x72,0x65,0x73,0x61,0x6D,0x70,0x6C,0x69,
-	0x6E,0x67,0x20,0x69,0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,
-	0x74,0x69,0x6F,0x6E,0x20,0x74,0x6F,0x20,0x75,0x73,0x65,0x2E,
-	0x3C,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x77,0x61,0x6E,0x74,
-	0x20,0x74,0x6F,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x6E,0x20,
-	0x61,0x75,0x74,0x68,0x65,0x6E,0x74,0x69,0x63,0x20,0x46,0x54,
-	0x32,0x20,0x73,0x6F,0x75,0x6E,0x64,0x2C,0x20,0x73,0x65,0x6C,
-	0x65,0x63,0x74,0x20,0x22,0x6C,0x69,0x6E,0x65,0x61,0x72,0x22,
-	0x2E,0x52,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x77,0x61,0x6E,
-	0x74,0x20,0x61,0x20,0x67,0x6F,0x6F,0x64,0x20,0x74,0x72,0x61,
-	0x64,0x65,0x2D,0x6F,0x66,0x66,0x20,0x62,0x65,0x74,0x77,0x65,
-	0x65,0x6E,0x20,0x71,0x75,0x61,0x6C,0x69,0x74,0x79,0x20,0x61,
-	0x6E,0x64,0x20,0x6D,0x75,0x64,0x64,0x69,0x6E,0x65,0x73,0x73,
-	0x20,0x66,0x6F,0x72,0x20,0x6D,0x6F,0x72,0x65,0x20,0x6C,0x6F,
-	0x2D,0x66,0x69,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x2C,
-	0x16,0x73,0x65,0x6C,0x65,0x63,0x74,0x20,0x22,0x43,0x75,0x62,
-	0x69,0x63,0x20,0x73,0x70,0x6C,0x69,0x6E,0x65,0x22,0x2E,0x54,
-	0x48,0x6F,0x77,0x65,0x76,0x65,0x72,0x2C,0x20,0x69,0x66,0x20,
-	0x79,0x6F,0x75,0x20,0x6D,0x61,0x69,0x6E,0x6C,0x79,0x20,0x75,
-	0x73,0x65,0x20,0x68,0x69,0x2D,0x66,0x69,0x20,0x73,0x61,0x6D,
-	0x70,0x6C,0x65,0x73,0x20,0x28,0x6F,0x72,0x20,0x70,0x6C,0x61,
-	0x79,0x20,0x58,0x4D,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x68,
-	0x69,0x2D,0x66,0x69,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,
-	0x29,0x2C,0x20,0x74,0x68,0x65,0x6E,0x20,0x70,0x69,0x63,0x6B,
-	0x52,0x61,0x6E,0x79,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,
-	0x74,0x77,0x6F,0x20,0x73,0x69,0x6E,0x63,0x20,0x6F,0x70,0x74,
-	0x69,0x6F,0x6E,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,
-	0x20,0x6D,0x6F,0x73,0x74,0x20,0x63,0x6C,0x65,0x61,0x72,0x20,
-	0x73,0x6F,0x75,0x6E,0x64,0x2E,0x20,0x4B,0x65,0x65,0x70,0x20,
-	0x69,0x6E,0x20,0x6D,0x69,0x6E,0x64,0x20,0x74,0x68,0x61,0x74,
-	0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x77,0x69,0x6C,0x6C,0x36,
-	0x6D,0x61,0x6B,0x65,0x20,0x58,0x4D,0x73,0x20,0x77,0x69,0x74,
-	0x68,0x20,0x6C,0x6F,0x2D,0x66,0x69,0x20,0x73,0x61,0x6D,0x70,
-	0x6C,0x65,0x73,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x76,0x65,
-	0x72,0x79,0x20,0x6D,0x75,0x64,0x64,0x79,0x2C,0x20,0x74,0x68,
-	0x6F,0x75,0x67,0x68,0x21,0x20,0x2E,0x54,0x69,0x70,0x3A,0x20,
-	0x50,0x6C,0x61,0x79,0x20,0x61,0x72,0x6F,0x75,0x6E,0x64,0x20,
-	0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x66,
-	0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x6F,0x70,0x74,0x69,0x6F,
-	0x6E,0x73,0x2E,0x2E,0x2E,0x00,0x1A,0x3E,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,0x75,0x6D,0x65,
-	0x20,0x72,0x61,0x6D,0x70,0x69,0x6E,0x67,0x3A,0x0B,0x3E,0x40,
-	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x3B,0x45,0x6E,
-	0x61,0x62,0x6C,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x61,0x6E,
-	0x74,0x69,0x2D,0x63,0x6C,0x69,0x63,0x6B,0x20,0x73,0x79,0x73,
-	0x74,0x65,0x6D,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x61,
-	0x75,0x64,0x69,0x6F,0x20,0x6D,0x69,0x78,0x65,0x72,0x20,0x28,
-	0x46,0x54,0x32,0x2E,0x30,0x38,0x2B,0x29,0x2E,0x3B,0x50,0x6C,
-	0x65,0x61,0x73,0x65,0x20,0x6E,0x6F,0x74,0x65,0x20,0x74,0x68,
-	0x61,0x74,0x20,0x6F,0x72,0x69,0x67,0x69,0x6E,0x61,0x6C,0x20,
-	0x46,0x54,0x32,0x20,0x63,0x61,0x6E,0x27,0x74,0x20,0x6C,0x6F,
-	0x61,0x64,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6F,0x6E,0x66,
-	0x69,0x67,0x20,0x65,0x6E,0x74,0x72,0x79,0x2C,0x0B,0x63,0x6C,
-	0x6F,0x6E,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x2E,0x00,0x19,0x3E,
-	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x6D,
-	0x70,0x6C,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x3A,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x46,0x41,0x6D,0x70,0x6C,0x69,0x66,0x69,0x65,0x73,0x20,0x74,
-	0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,0x20,0x77,0x68,
-	0x65,0x6E,0x20,0x6D,0x69,0x78,0x69,0x6E,0x67,0x2E,0x20,0x49,
-	0x66,0x20,0x79,0x6F,0x75,0x20,0x73,0x65,0x74,0x20,0x74,0x68,
-	0x69,0x73,0x20,0x6F,0x6E,0x65,0x20,0x74,0x6F,0x6F,0x20,0x68,
-	0x69,0x67,0x68,0x2C,0x20,0x79,0x6F,0x75,0x27,0x6C,0x6C,0x3A,
-	0x67,0x65,0x74,0x20,0x64,0x69,0x73,0x74,0x6F,0x72,0x74,0x69,
-	0x6F,0x6E,0x2E,0x20,0x33,0x32,0x58,0x20,0x65,0x71,0x75,0x61,
-	0x6C,0x73,0x20,0x66,0x75,0x6C,0x6C,0x20,0x61,0x6D,0x70,0x6C,
-	0x69,0x74,0x75,0x64,0x65,0x20,0x66,0x6F,0x72,0x20,0x6F,0x6E,
-	0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,0x2E,0x00,0x1C,
-	0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x46,
-	0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,0x73,0x6C,0x69,
-	0x64,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x39,0x4C,0x69,0x6E,0x65,0x61,0x72,0x20,
-	0x6D,0x6F,0x64,0x65,0x20,0x6D,0x61,0x6B,0x65,0x73,0x20,0x61,
-	0x6C,0x6C,0x20,0x70,0x69,0x74,0x63,0x68,0x20,0x73,0x6C,0x69,
-	0x64,0x65,0x73,0x20,0x72,0x75,0x6E,0x20,0x69,0x6E,0x20,0x63,
-	0x6F,0x6E,0x73,0x74,0x61,0x6E,0x74,0x20,0x73,0x70,0x65,0x65,
-	0x64,0x2C,0x38,0x69,0x6E,0x64,0x65,0x70,0x65,0x6E,0x64,0x65,
-	0x6E,0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x75,
-	0x72,0x72,0x65,0x6E,0x74,0x20,0x66,0x72,0x65,0x71,0x75,0x65,
-	0x6E,0x63,0x79,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,
-	0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x74,0x68,0x69,0x73,0x40,
-	0x6F,0x6E,0x65,0x2C,0x20,0x6F,0x6E,0x20,0x61,0x20,0x66,0x69,
-	0x6E,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x6F,0x6E,0x67,0x2C,
-	0x20,0x69,0x74,0x20,0x6D,0x69,0x67,0x68,0x74,0x20,0x73,0x6F,
-	0x75,0x6E,0x64,0x20,0x73,0x74,0x72,0x61,0x6E,0x67,0x65,0x20,
-	0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x6F,0x6E,0x67,0x20,
-	0x75,0x73,0x65,0x73,0x0D,0x70,0x6F,0x72,0x74,0x61,0x6D,0x65,
-	0x6E,0x74,0x6F,0x65,0x73,0x2E,0x00,0x20,0x40,0x58,0x30,0x32,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,0x66,0x69,0x67,
-	0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x4C,0x61,0x79,
-	0x6F,0x75,0x74,0x3A,0x01,0x3E,0x29,0x3E,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,0x74,0x65,0x72,
-	0x6E,0x20,0x6C,0x61,0x79,0x6F,0x75,0x74,0x2C,0x20,0x68,0x65,
-	0x78,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x69,0x6E,0x67,0x3A,
-	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x41,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x75,0x73,0x65,0x20,
-	0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x73,0x20,0x74,0x68,0x61,
-	0x74,0x20,0x61,0x72,0x65,0x20,0x6C,0x6F,0x6E,0x67,0x65,0x72,
-	0x20,0x74,0x68,0x61,0x6E,0x20,0x39,0x39,0x20,0x6C,0x69,0x6E,
-	0x65,0x73,0x2C,0x20,0x79,0x6F,0x75,0x20,0x73,0x68,0x6F,0x75,
-	0x6C,0x64,0x20,0x75,0x73,0x65,0x45,0x68,0x65,0x78,0x20,0x63,
-	0x6F,0x75,0x6E,0x74,0x69,0x6E,0x67,0x20,0x73,0x69,0x6E,0x63,
-	0x65,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,0x72,0x65,0x20,
-	0x6F,0x6E,0x6C,0x79,0x20,0x32,0x20,0x64,0x69,0x67,0x69,0x74,
-	0x73,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x6C,0x69,0x6E,
-	0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,0x63,0x6F,0x6C,
-	0x75,0x6D,0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,0x30,0x34,0x30,
-	0x40,0x43,0x30,0x30,0x31,0x53,0x63,0x6F,0x70,0x65,0x73,0x3A,
+	0x67,0x74,0x68,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x6F,
+	0x75,0x74,0x70,0x75,0x74,0x3F,0x66,0x72,0x6F,0x6D,0x20,0x46,
+	0x54,0x32,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x73,0x65,0x74,
+	0x74,0x69,0x6E,0x67,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x61,0x66,
+	0x66,0x65,0x63,0x74,0x73,0x20,0x57,0x41,0x56,0x20,0x65,0x78,
+	0x70,0x6F,0x72,0x74,0x2C,0x20,0x61,0x6E,0x64,0x20,0x6E,0x6F,
+	0x74,0x20,0x74,0x72,0x61,0x63,0x6B,0x65,0x72,0x09,0x70,0x6C,
+	0x61,0x79,0x62,0x61,0x63,0x6B,0x2E,0x00,0x18,0x40,0x58,0x30,
+	0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,0x66,0x69,
+	0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x3A,0x01,0x3E,0x15,
+	0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x41,
+	0x75,0x74,0x6F,0x20,0x73,0x61,0x76,0x65,0x3A,0x0B,0x3E,0x40,
+	0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x43,0x49,0x66,
+	0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x6F,0x20,0x73,0x61,
+	0x76,0x65,0x20,0x69,0x73,0x20,0x6F,0x6E,0x2C,0x20,0x46,0x54,
+	0x32,0x20,0x77,0x69,0x6C,0x6C,0x20,0x75,0x70,0x64,0x61,0x74,
+	0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,
+	0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,
+	0x20,0x77,0x68,0x65,0x6E,0x15,0x79,0x6F,0x75,0x20,0x65,0x78,
+	0x69,0x74,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,
+	0x61,0x6D,0x2E,0x00,0x1F,0x40,0x58,0x30,0x32,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,
+	0x74,0x69,0x6F,0x6E,0x2C,0x20,0x41,0x75,0x64,0x69,0x6F,0x3A,
+	0x01,0x3E,0x19,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x49,0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,0x74,
+	0x69,0x6F,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
+	0x43,0x30,0x30,0x32,0x35,0x53,0x65,0x6C,0x65,0x63,0x74,0x73,
+	0x20,0x77,0x68,0x61,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x6F,
+	0x66,0x20,0x72,0x65,0x73,0x61,0x6D,0x70,0x6C,0x69,0x6E,0x67,
+	0x20,0x69,0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,0x74,0x69,
+	0x6F,0x6E,0x20,0x74,0x6F,0x20,0x75,0x73,0x65,0x2E,0x01,0x3E,
+	0x55,0x3E,0x46,0x6F,0x72,0x20,0x61,0x6E,0x20,0x61,0x75,0x74,
+	0x68,0x65,0x6E,0x74,0x69,0x63,0x20,0x46,0x54,0x32,0x20,0x73,
+	0x6F,0x75,0x6E,0x64,0x2C,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,
+	0x20,0x22,0x4C,0x69,0x6E,0x65,0x61,0x72,0x20,0x28,0x46,0x54,
+	0x32,0x29,0x22,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,
+	0x20,0x61,0x20,0x71,0x75,0x69,0x74,0x65,0x20,0x62,0x61,0x64,
+	0x20,0x69,0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,0x74,0x6F,
+	0x72,0x2C,0x20,0x73,0x6F,0x20,0x62,0x65,0x20,0x70,0x72,0x65,
+	0x70,0x61,0x72,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x6C,0x6F,
+	0x77,0x20,0x66,0x69,0x64,0x65,0x6C,0x69,0x74,0x79,0x2E,0x01,
+	0x3E,0x4C,0x3E,0x46,0x6F,0x72,0x20,0x61,0x20,0x67,0x6F,0x6F,
+	0x64,0x20,0x74,0x72,0x61,0x64,0x65,0x2D,0x6F,0x66,0x66,0x20,
+	0x62,0x65,0x74,0x77,0x65,0x65,0x6E,0x20,0x71,0x75,0x61,0x6C,
+	0x69,0x74,0x79,0x20,0x61,0x6E,0x64,0x20,0x22,0x66,0x75,0x6E,
+	0x20,0x6C,0x69,0x73,0x74,0x65,0x6E,0x69,0x6E,0x67,0x22,0x20,
+	0x66,0x6F,0x72,0x20,0x6C,0x6F,0x2D,0x66,0x69,0x20,0x73,0x61,
+	0x6D,0x70,0x6C,0x65,0x73,0x2C,0x4E,0x79,0x6F,0x75,0x20,0x6D,
+	0x61,0x79,0x20,0x73,0x65,0x6C,0x65,0x63,0x74,0x20,0x22,0x43,
+	0x75,0x62,0x69,0x63,0x20,0x28,0x34,0x20,0x70,0x6F,0x69,0x6E,
+	0x74,0x29,0x22,0x2E,0x20,0x4F,0x72,0x20,0x73,0x65,0x6C,0x65,
+	0x63,0x74,0x20,0x22,0x43,0x75,0x62,0x69,0x63,0x20,0x28,0x36,
+	0x20,0x70,0x6F,0x69,0x6E,0x74,0x29,0x22,0x20,0x69,0x66,0x20,
+	0x79,0x6F,0x75,0x20,0x77,0x61,0x6E,0x74,0x20,0x6A,0x75,0x73,
+	0x74,0x54,0x61,0x20,0x74,0x61,0x64,0x20,0x62,0x69,0x74,0x20,
+	0x6D,0x6F,0x72,0x65,0x20,0x74,0x72,0x65,0x62,0x6C,0x65,0x2C,
+	0x20,0x62,0x75,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x6C,
+	0x69,0x67,0x68,0x74,0x6C,0x79,0x20,0x6D,0x6F,0x72,0x65,0x20,
+	0x66,0x69,0x6C,0x74,0x65,0x72,0x65,0x64,0x20,0x6C,0x6F,0x2D,
+	0x66,0x69,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x20,0x61,
+	0x73,0x20,0x61,0x20,0x74,0x72,0x61,0x64,0x65,0x2D,0x6F,0x66,
+	0x66,0x2E,0x01,0x3E,0x4C,0x3E,0x49,0x66,0x20,0x79,0x6F,0x75,
+	0x20,0x6D,0x61,0x69,0x6E,0x6C,0x79,0x20,0x75,0x73,0x65,0x20,
+	0x68,0x69,0x2D,0x66,0x69,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,
+	0x73,0x20,0x28,0x6F,0x72,0x20,0x70,0x6C,0x61,0x79,0x20,0x58,
+	0x4D,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x68,0x69,0x2D,0x66,
+	0x69,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x29,0x2C,0x20,
+	0x74,0x68,0x65,0x6E,0x20,0x70,0x69,0x63,0x6B,0x54,0x61,0x6E,
+	0x79,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x77,0x6F,
+	0x20,0x22,0x53,0x69,0x6E,0x63,0x22,0x20,0x6F,0x70,0x74,0x69,
+	0x6F,0x6E,0x73,0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,
+	0x6D,0x6F,0x73,0x74,0x20,0x63,0x6C,0x65,0x61,0x72,0x20,0x73,
+	0x6F,0x75,0x6E,0x64,0x2E,0x20,0x4B,0x65,0x65,0x70,0x20,0x69,
+	0x6E,0x20,0x6D,0x69,0x6E,0x64,0x20,0x74,0x68,0x61,0x74,0x20,
+	0x74,0x68,0x65,0x73,0x65,0x20,0x77,0x69,0x6C,0x6C,0x35,0x6D,
+	0x61,0x6B,0x65,0x20,0x58,0x4D,0x73,0x20,0x77,0x69,0x74,0x68,
+	0x20,0x6C,0x6F,0x2D,0x66,0x69,0x20,0x73,0x61,0x6D,0x70,0x6C,
+	0x65,0x73,0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x76,0x65,0x72,
+	0x79,0x20,0x6D,0x75,0x64,0x64,0x79,0x2C,0x20,0x74,0x68,0x6F,
+	0x75,0x67,0x68,0x21,0x01,0x3E,0x58,0x3E,0x53,0x69,0x6E,0x63,
+	0x20,0x28,0x31,0x36,0x20,0x70,0x6F,0x69,0x6E,0x74,0x29,0x20,
+	0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x73,0x74,0x20,
+	0x6F,0x70,0x74,0x69,0x6F,0x6E,0x20,0x69,0x6E,0x20,0x74,0x65,
+	0x72,0x6D,0x73,0x20,0x6F,0x66,0x20,0x63,0x6C,0x61,0x72,0x69,
+	0x74,0x79,0x2C,0x20,0x61,0x73,0x20,0x6C,0x6F,0x6E,0x67,0x20,
+	0x61,0x73,0x20,0x79,0x6F,0x75,0x20,0x75,0x73,0x65,0x20,0x68,
+	0x69,0x67,0x68,0x2D,0x71,0x75,0x61,0x6C,0x69,0x74,0x79,0x2A,
+	0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x20,0x28,0x73,0x61,0x6D,
+	0x70,0x6C,0x65,0x64,0x20,0x61,0x74,0x20,0x34,0x34,0x2E,0x31,
+	0x6B,0x48,0x7A,0x2C,0x20,0x66,0x6F,0x72,0x20,0x65,0x78,0x61,
+	0x6D,0x70,0x6C,0x65,0x29,0x2E,0x01,0x3E,0x2F,0x3E,0x54,0x69,
+	0x70,0x3A,0x20,0x50,0x6C,0x61,0x79,0x20,0x61,0x72,0x6F,0x75,
+	0x6E,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,
+	0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x6F,0x70,
+	0x74,0x69,0x6F,0x6E,0x73,0x2E,0x2E,0x2E,0x00,0x1A,0x3E,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x6F,0x6C,
+	0x75,0x6D,0x65,0x20,0x72,0x61,0x6D,0x70,0x69,0x6E,0x67,0x3A,
 	0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,
-	0x43,0x22,0x53,0x74,0x64,0x2E,0x22,0x20,0x28,0x73,0x74,0x61,
-	0x6E,0x64,0x61,0x72,0x64,0x29,0x20,0x77,0x69,0x6C,0x6C,0x20,
-	0x73,0x68,0x6F,0x77,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6D,
-	0x70,0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,0x73,0x20,0x61,
-	0x73,0x20,0x70,0x69,0x78,0x65,0x6C,0x73,0x20,0x28,0x6C,0x69,
-	0x6B,0x65,0x20,0x46,0x54,0x32,0x29,0x2E,0x3D,0x22,0x4C,0x69,
-	0x6E,0x65,0x64,0x22,0x20,0x77,0x69,0x6C,0x6C,0x20,0x64,0x72,
-	0x61,0x77,0x20,0x69,0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,
-	0x74,0x65,0x64,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x73,0x20,
-	0x28,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x69,0x6E,0x74,0x65,
-	0x72,0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E,0x2E,0x00,0x27,
-	0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,
-	0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,
-	0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,
-	0x75,0x73,0x3A,0x01,0x3E,0x15,0x3E,0x40,0x58,0x30,0x34,0x30,
-	0x40,0x43,0x30,0x30,0x31,0x56,0x53,0x79,0x6E,0x63,0x20,0x6F,
-	0x66,0x66,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
-	0x30,0x30,0x32,0x3F,0x54,0x65,0x6C,0x6C,0x73,0x20,0x74,0x68,
-	0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x74,0x6F,
-	0x20,0x6E,0x6F,0x74,0x20,0x75,0x73,0x65,0x20,0x56,0x53,0x79,
-	0x6E,0x63,0x20,0x66,0x6F,0x72,0x20,0x76,0x69,0x64,0x65,0x6F,
-	0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,0x6F,
-	0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x40,0x72,0x65,0x66,0x72,
-	0x65,0x73,0x68,0x20,0x72,0x61,0x74,0x65,0x20,0x69,0x73,0x20,
-	0x6E,0x6F,0x74,0x20,0x36,0x30,0x48,0x7A,0x20,0x28,0x6F,0x72,
-	0x20,0x35,0x39,0x48,0x7A,0x29,0x2C,0x20,0x74,0x68,0x65,0x6E,
-	0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x69,0x73,0x20,0x61,0x6C,
-	0x77,0x61,0x79,0x73,0x20,0x6F,0x66,0x66,0x20,0x66,0x6F,0x72,
-	0x45,0x74,0x68,0x69,0x73,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,
-	0x6D,0x2E,0x20,0x4E,0x6F,0x74,0x20,0x68,0x61,0x76,0x69,0x6E,
-	0x67,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x77,0x69,0x6C,0x6C,
-	0x20,0x72,0x65,0x73,0x75,0x6C,0x74,0x20,0x69,0x6E,0x20,0x6C,
-	0x65,0x73,0x73,0x20,0x69,0x6E,0x70,0x75,0x74,0x2F,0x76,0x69,
-	0x64,0x65,0x6F,0x20,0x64,0x65,0x6C,0x61,0x79,0x2C,0x1E,0x62,
-	0x75,0x74,0x20,0x61,0x6C,0x73,0x6F,0x20,0x70,0x6F,0x74,0x65,
-	0x6E,0x74,0x69,0x61,0x6C,0x20,0x73,0x74,0x75,0x74,0x74,0x65,
-	0x72,0x69,0x6E,0x67,0x2E,0x00,0x15,0x3E,0x40,0x58,0x30,0x34,
-	0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x74,0x72,0x65,0x74,0x63,
-	0x68,0x65,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x37,0x4D,0x61,0x6B,0x65,0x73,0x20,0x66,
-	0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,
-	0x64,0x65,0x20,0x63,0x6F,0x6D,0x70,0x6C,0x65,0x74,0x65,0x6C,
-	0x79,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x20,0x6F,0x75,
-	0x74,0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x2E,
-	0x50,0x54,0x68,0x69,0x73,0x20,0x63,0x61,0x6E,0x20,0x61,0x6E,
-	0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x73,0x75,0x6C,
-	0x74,0x20,0x69,0x6E,0x20,0x75,0x6E,0x65,0x76,0x65,0x6E,0x20,
-	0x70,0x69,0x78,0x65,0x6C,0x20,0x73,0x69,0x7A,0x65,0x73,0x2C,
-	0x20,0x6D,0x61,0x6B,0x69,0x6E,0x67,0x20,0x74,0x68,0x65,0x20,
-	0x69,0x6D,0x61,0x67,0x65,0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x71,
-	0x75,0x69,0x74,0x65,0x20,0x62,0x61,0x64,0x2E,0x52,0x54,0x68,
-	0x65,0x20,0x22,0x50,0x69,0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,
-	0x74,0x65,0x72,0x22,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,0x67,
-	0x20,0x63,0x61,0x6E,0x20,0x68,0x65,0x6C,0x70,0x20,0x77,0x69,
-	0x74,0x68,0x20,0x74,0x68,0x69,0x73,0x2C,0x20,0x62,0x75,0x74,
-	0x20,0x69,0x74,0x20,0x6D,0x61,0x6B,0x65,0x73,0x20,0x74,0x68,
-	0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x6C,0x6F,0x6F,0x6B,
-	0x20,0x62,0x6C,0x75,0x72,0x72,0x79,0x2E,0x01,0x20,0x18,0x3E,
-	0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x69,
-	0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x3A,0x0B,
-	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x52,
-	0x41,0x70,0x70,0x6C,0x69,0x65,0x73,0x20,0x61,0x6E,0x20,0x61,
-	0x6E,0x74,0x69,0x2D,0x61,0x6C,0x69,0x61,0x73,0x69,0x6E,0x67,
-	0x20,0x73,0x75,0x62,0x70,0x69,0x78,0x65,0x6C,0x20,0x66,0x69,
-	0x6C,0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,
-	0x20,0x75,0x73,0x65,0x64,0x20,0x77,0x68,0x65,0x6E,0x20,0x74,
-	0x68,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x20,0x69,0x73,
-	0x20,0x75,0x70,0x73,0x63,0x61,0x6C,0x65,0x64,0x2E,0x3B,0x50,
-	0x6C,0x65,0x61,0x73,0x65,0x20,0x6B,0x65,0x65,0x70,0x20,0x69,
-	0x6E,0x20,0x6D,0x69,0x6E,0x64,0x20,0x74,0x68,0x61,0x74,0x20,
-	0x74,0x68,0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x6D,0x61,
-	0x6B,0x65,0x20,0x70,0x69,0x78,0x65,0x6C,0x73,0x20,0x6C,0x6F,
-	0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72,0x72,0x79,0x2E,0x00,0x23,
-	0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x41,0x64,
-	0x76,0x61,0x6E,0x63,0x65,0x64,0x20,0x65,0x64,0x69,0x74,0x20,
-	0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x3A,0x20,0x01,
-	0x3E,0x1E,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
-	0x31,0x43,0x6F,0x70,0x79,0x2F,0x50,0x61,0x73,0x74,0x65,0x20,
-	0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,
-	0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x37,0x54,0x68,0x65,
-	0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,0x20,0x69,0x73,0x20,
-	0x75,0x73,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,0x63,0x6F,0x70,
-	0x79,0x69,0x6E,0x67,0x2F,0x70,0x61,0x73,0x74,0x69,0x6E,0x67,
-	0x20,0x6F,0x6E,0x6C,0x79,0x20,0x70,0x61,0x72,0x74,0x73,0x20,
-	0x6F,0x66,0x20,0x61,0x46,0x22,0x6E,0x6F,0x74,0x65,0x2D,0x63,
-	0x65,0x6C,0x6C,0x22,0x2E,0x20,0x54,0x68,0x65,0x20,0x64,0x69,
-	0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x70,0x61,0x72,0x74,
-	0x73,0x20,0x6F,0x66,0x20,0x61,0x20,0x22,0x6E,0x6F,0x74,0x65,
-	0x2D,0x63,0x65,0x6C,0x6C,0x22,0x20,0x69,0x73,0x20,0x4E,0x6F,
-	0x74,0x65,0x2C,0x20,0x49,0x6E,0x73,0x74,0x72,0x2E,0x20,0x6E,
-	0x72,0x2E,0x2C,0x20,0x56,0x6F,0x6C,0x75,0x6D,0x65,0x2C,0x20,
-	0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x6E,0x72,0x20,0x26,0x20,
-	0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x64,0x61,0x74,0x61,0x2E,
-	0x34,0x3E,0x41,0x73,0x20,0x79,0x6F,0x75,0x20,0x63,0x61,0x6E,
-	0x20,0x73,0x65,0x65,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,
-	0x77,0x69,0x6E,0x64,0x6F,0x77,0x20,0x74,0x68,0x65,0x72,0x65,
-	0x20,0x61,0x72,0x65,0x20,0x33,0x20,0x63,0x6F,0x6C,0x75,0x6D,
-	0x6E,0x73,0x20,0x6F,0x66,0x3D,0x22,0x65,0x6E,0x61,0x62,0x6C,
-	0x65,0x2F,0x64,0x69,0x73,0x61,0x62,0x6C,0x65,0x20,0x62,0x75,
-	0x74,0x74,0x6F,0x6E,0x73,0x22,0x20,0x77,0x68,0x69,0x63,0x68,
-	0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x6C,0x65,0x74,
-	0x74,0x65,0x72,0x73,0x20,0x43,0x2C,0x50,0x20,0x26,0x20,0x54,
-	0x20,0x61,0x62,0x6F,0x76,0x65,0x2E,0x45,0x3E,0x43,0x20,0x6D,
-	0x65,0x61,0x6E,0x73,0x20,0x63,0x6F,0x70,0x79,0x2C,0x20,0x69,
-	0x74,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73,0x20,0x77,
-	0x68,0x69,0x63,0x68,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x74,
-	0x68,0x61,0x74,0x20,0x67,0x6F,0x65,0x73,0x20,0x69,0x6E,0x74,
-	0x6F,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x62,0x75,
-	0x66,0x66,0x65,0x72,0x2E,0x3E,0x3E,0x50,0x20,0x6D,0x65,0x61,
-	0x6E,0x73,0x20,0x70,0x61,0x73,0x74,0x65,0x20,0x61,0x6E,0x64,
-	0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73,0x20,0x77,0x68,
-	0x69,0x63,0x68,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x74,0x68,
-	0x61,0x74,0x20,0x67,0x6F,0x65,0x73,0x20,0x6F,0x75,0x74,0x20,
-	0x66,0x72,0x6F,0x6D,0x20,0x74,0x68,0x65,0x0B,0x63,0x6F,0x70,
-	0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x45,0x3E,0x54,0x20,
-	0x6D,0x65,0x61,0x6E,0x73,0x20,0x74,0x72,0x61,0x6E,0x73,0x70,
-	0x61,0x72,0x65,0x6E,0x63,0x79,0x2E,0x20,0x49,0x66,0x20,0x69,
-	0x74,0x27,0x73,0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,0x64,0x2C,
-	0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x73,0x74,0x69,0x6E,0x67,
-	0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,0x74,0x20,0x6F,0x76,0x65,
-	0x72,0x77,0x72,0x69,0x74,0x65,0x3D,0x64,0x61,0x74,0x61,0x20,
-	0x77,0x69,0x74,0x68,0x20,0x6E,0x69,0x6C,0x2D,0x69,0x6E,0x66,
-	0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,0x6F,0x6E,
-	0x6C,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x6E,0x6F,
-	0x74,0x65,0x20,0x6F,0x72,0x20,0x61,0x20,0x6E,0x75,0x6D,0x62,
-	0x65,0x72,0x20,0x3C,0x3E,0x20,0x30,0x2E,0x01,0x3E,0x40,0x3E,
-	0x54,0x68,0x65,0x20,0x63,0x75,0x74,0x20,0x66,0x75,0x6E,0x63,
-	0x74,0x69,0x6F,0x6E,0x73,0x20,0x77,0x6F,0x72,0x6B,0x73,0x20,
-	0x6C,0x69,0x6B,0x65,0x20,0x70,0x61,0x73,0x74,0x69,0x6E,0x67,
-	0x20,0x77,0x69,0x74,0x68,0x20,0x7A,0x65,0x72,0x6F,0x2D,0x64,
-	0x61,0x74,0x61,0x2E,0x20,0x54,0x68,0x69,0x73,0x20,0x6D,0x65,
-	0x61,0x6E,0x73,0x3B,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,
-	0x20,0x63,0x75,0x74,0x74,0x69,0x6E,0x67,0x20,0x69,0x73,0x20,
-	0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x6C,0x65,0x64,0x20,0x77,
-	0x69,0x74,0x68,0x20,0x50,0x2D,0x63,0x6F,0x6C,0x75,0x6D,0x6E,
-	0x20,0x28,0x6F,0x72,0x20,0x54,0x2D,0x63,0x6F,0x6C,0x75,0x6D,
-	0x6E,0x29,0x2E,0x3C,0x3E,0x57,0x68,0x65,0x6E,0x20,0x79,0x6F,
-	0x75,0x20,0x63,0x6F,0x70,0x79,0x20,0x64,0x61,0x74,0x61,0x20,
-	0x77,0x69,0x74,0x68,0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,
-	0x2C,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x73,0x61,0x62,0x6C,
-	0x65,0x64,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x61,0x72,0x65,
-	0x20,0x6E,0x6F,0x74,0x43,0x63,0x6C,0x65,0x61,0x72,0x65,0x64,
-	0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,
-	0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x20,0x28,0x4D,0x61,0x6B,
-	0x69,0x6E,0x67,0x20,0x69,0x74,0x20,0x70,0x6F,0x73,0x73,0x69,
-	0x62,0x6C,0x65,0x20,0x74,0x6F,0x20,0x63,0x6F,0x6C,0x6C,0x65,
-	0x63,0x74,0x20,0x64,0x61,0x74,0x61,0x20,0x66,0x72,0x6F,0x6D,
-	0x27,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x6C,0x6F,0x63,
-	0x61,0x74,0x69,0x6F,0x6E,0x73,0x20,0x69,0x6E,0x74,0x6F,0x20,
-	0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66,
-	0x65,0x72,0x2E,0x29,0x00,0x03,0x45,0x4E,0x44,0x4C,0x3B,0x2A,
+	0x3B,0x45,0x6E,0x61,0x62,0x6C,0x65,0x73,0x20,0x74,0x68,0x65,
+	0x20,0x61,0x6E,0x74,0x69,0x2D,0x63,0x6C,0x69,0x63,0x6B,0x20,
+	0x73,0x79,0x73,0x74,0x65,0x6D,0x20,0x69,0x6E,0x20,0x74,0x68,
+	0x65,0x20,0x61,0x75,0x64,0x69,0x6F,0x20,0x6D,0x69,0x78,0x65,
+	0x72,0x20,0x28,0x46,0x54,0x32,0x2E,0x30,0x38,0x2B,0x29,0x2E,
+	0x3B,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x6E,0x6F,0x74,0x65,
+	0x20,0x74,0x68,0x61,0x74,0x20,0x6F,0x72,0x69,0x67,0x69,0x6E,
+	0x61,0x6C,0x20,0x46,0x54,0x32,0x20,0x63,0x61,0x6E,0x27,0x74,
+	0x20,0x6C,0x6F,0x61,0x64,0x20,0x74,0x68,0x69,0x73,0x20,0x63,
+	0x6F,0x6E,0x66,0x69,0x67,0x20,0x65,0x6E,0x74,0x72,0x79,0x2C,
+	0x0B,0x63,0x6C,0x6F,0x6E,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x2E,
+	0x00,0x19,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x41,0x6D,0x70,0x6C,0x69,0x66,0x69,0x63,0x61,0x74,0x69,
+	0x6F,0x6E,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x46,0x41,0x6D,0x70,0x6C,0x69,0x66,0x69,0x65,
+	0x73,0x20,0x74,0x68,0x65,0x20,0x76,0x6F,0x6C,0x75,0x6D,0x65,
+	0x20,0x77,0x68,0x65,0x6E,0x20,0x6D,0x69,0x78,0x69,0x6E,0x67,
+	0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x73,0x65,0x74,
+	0x20,0x74,0x68,0x69,0x73,0x20,0x6F,0x6E,0x65,0x20,0x74,0x6F,
+	0x6F,0x20,0x68,0x69,0x67,0x68,0x2C,0x20,0x79,0x6F,0x75,0x27,
+	0x6C,0x6C,0x3A,0x67,0x65,0x74,0x20,0x64,0x69,0x73,0x74,0x6F,
+	0x72,0x74,0x69,0x6F,0x6E,0x2E,0x20,0x33,0x32,0x58,0x20,0x65,
+	0x71,0x75,0x61,0x6C,0x73,0x20,0x66,0x75,0x6C,0x6C,0x20,0x61,
+	0x6D,0x70,0x6C,0x69,0x74,0x75,0x64,0x65,0x20,0x66,0x6F,0x72,
+	0x20,0x6F,0x6E,0x65,0x20,0x63,0x68,0x61,0x6E,0x6E,0x65,0x6C,
+	0x2E,0x00,0x1C,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,
+	0x30,0x31,0x46,0x72,0x65,0x71,0x75,0x65,0x6E,0x63,0x79,0x20,
+	0x73,0x6C,0x69,0x64,0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x39,0x4C,0x69,0x6E,0x65,
+	0x61,0x72,0x20,0x6D,0x6F,0x64,0x65,0x20,0x6D,0x61,0x6B,0x65,
+	0x73,0x20,0x61,0x6C,0x6C,0x20,0x70,0x69,0x74,0x63,0x68,0x20,
+	0x73,0x6C,0x69,0x64,0x65,0x73,0x20,0x72,0x75,0x6E,0x20,0x69,
+	0x6E,0x20,0x63,0x6F,0x6E,0x73,0x74,0x61,0x6E,0x74,0x20,0x73,
+	0x70,0x65,0x65,0x64,0x2C,0x38,0x69,0x6E,0x64,0x65,0x70,0x65,
+	0x6E,0x64,0x65,0x6E,0x74,0x20,0x6F,0x66,0x20,0x74,0x68,0x65,
+	0x20,0x63,0x75,0x72,0x72,0x65,0x6E,0x74,0x20,0x66,0x72,0x65,
+	0x71,0x75,0x65,0x6E,0x63,0x79,0x2E,0x20,0x49,0x66,0x20,0x79,
+	0x6F,0x75,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x74,0x68,
+	0x69,0x73,0x40,0x6F,0x6E,0x65,0x2C,0x20,0x6F,0x6E,0x20,0x61,
+	0x20,0x66,0x69,0x6E,0x69,0x73,0x68,0x65,0x64,0x20,0x73,0x6F,
+	0x6E,0x67,0x2C,0x20,0x69,0x74,0x20,0x6D,0x69,0x67,0x68,0x74,
+	0x20,0x73,0x6F,0x75,0x6E,0x64,0x20,0x73,0x74,0x72,0x61,0x6E,
+	0x67,0x65,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x6F,
+	0x6E,0x67,0x20,0x75,0x73,0x65,0x73,0x0D,0x70,0x6F,0x72,0x74,
+	0x61,0x6D,0x65,0x6E,0x74,0x6F,0x65,0x73,0x2E,0x00,0x20,0x40,
+	0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,0x31,0x43,0x6F,0x6E,
+	0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6F,0x6E,0x2C,0x20,
+	0x4C,0x61,0x79,0x6F,0x75,0x74,0x3A,0x01,0x3E,0x29,0x3E,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x50,0x61,0x74,
+	0x74,0x65,0x72,0x6E,0x20,0x6C,0x61,0x79,0x6F,0x75,0x74,0x2C,
+	0x20,0x68,0x65,0x78,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x69,
+	0x6E,0x67,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x41,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x75,
+	0x73,0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,0x73,0x20,
+	0x74,0x68,0x61,0x74,0x20,0x61,0x72,0x65,0x20,0x6C,0x6F,0x6E,
+	0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6E,0x20,0x39,0x39,0x20,
+	0x6C,0x69,0x6E,0x65,0x73,0x2C,0x20,0x79,0x6F,0x75,0x20,0x73,
+	0x68,0x6F,0x75,0x6C,0x64,0x20,0x75,0x73,0x65,0x45,0x68,0x65,
+	0x78,0x20,0x63,0x6F,0x75,0x6E,0x74,0x69,0x6E,0x67,0x20,0x73,
+	0x69,0x6E,0x63,0x65,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,
+	0x72,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x32,0x20,0x64,0x69,
+	0x67,0x69,0x74,0x73,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,
+	0x6C,0x69,0x6E,0x65,0x20,0x6E,0x75,0x6D,0x62,0x65,0x72,0x20,
+	0x63,0x6F,0x6C,0x75,0x6D,0x6E,0x2E,0x00,0x12,0x3E,0x40,0x58,
+	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x63,0x6F,0x70,
+	0x65,0x73,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,
+	0x30,0x30,0x32,0x43,0x22,0x53,0x74,0x64,0x2E,0x22,0x20,0x28,
+	0x73,0x74,0x61,0x6E,0x64,0x61,0x72,0x64,0x29,0x20,0x77,0x69,
+	0x6C,0x6C,0x20,0x73,0x68,0x6F,0x77,0x20,0x74,0x68,0x65,0x20,
+	0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,
+	0x73,0x20,0x61,0x73,0x20,0x70,0x69,0x78,0x65,0x6C,0x73,0x20,
+	0x28,0x6C,0x69,0x6B,0x65,0x20,0x46,0x54,0x32,0x29,0x2E,0x3D,
+	0x22,0x4C,0x69,0x6E,0x65,0x64,0x22,0x20,0x77,0x69,0x6C,0x6C,
+	0x20,0x64,0x72,0x61,0x77,0x20,0x69,0x6E,0x74,0x65,0x72,0x70,
+	0x6F,0x6C,0x61,0x74,0x65,0x64,0x20,0x73,0x61,0x6D,0x70,0x6C,
+	0x65,0x73,0x20,0x28,0x6C,0x69,0x6E,0x65,0x61,0x72,0x20,0x69,
+	0x6E,0x74,0x65,0x72,0x70,0x6F,0x6C,0x61,0x74,0x69,0x6F,0x6E,
+	0x2E,0x00,0x27,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x43,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,
+	0x6F,0x6E,0x2C,0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,
+	0x6E,0x65,0x6F,0x75,0x73,0x3A,0x01,0x3E,0x15,0x3E,0x40,0x58,
+	0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x56,0x53,0x79,0x6E,
+	0x63,0x20,0x6F,0x66,0x66,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,
+	0x30,0x40,0x43,0x30,0x30,0x32,0x3F,0x54,0x65,0x6C,0x6C,0x73,
+	0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,
+	0x20,0x74,0x6F,0x20,0x6E,0x6F,0x74,0x20,0x75,0x73,0x65,0x20,
+	0x56,0x53,0x79,0x6E,0x63,0x20,0x66,0x6F,0x72,0x20,0x76,0x69,
+	0x64,0x65,0x6F,0x2E,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x72,
+	0x20,0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x40,0x72,
+	0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x72,0x61,0x74,0x65,0x20,
+	0x69,0x73,0x20,0x6E,0x6F,0x74,0x20,0x36,0x30,0x48,0x7A,0x20,
+	0x28,0x6F,0x72,0x20,0x35,0x39,0x48,0x7A,0x29,0x2C,0x20,0x74,
+	0x68,0x65,0x6E,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x69,0x73,
+	0x20,0x61,0x6C,0x77,0x61,0x79,0x73,0x20,0x6F,0x66,0x66,0x20,
+	0x66,0x6F,0x72,0x45,0x74,0x68,0x69,0x73,0x20,0x70,0x72,0x6F,
+	0x67,0x72,0x61,0x6D,0x2E,0x20,0x4E,0x6F,0x74,0x20,0x68,0x61,
+	0x76,0x69,0x6E,0x67,0x20,0x56,0x53,0x79,0x6E,0x63,0x20,0x77,
+	0x69,0x6C,0x6C,0x20,0x72,0x65,0x73,0x75,0x6C,0x74,0x20,0x69,
+	0x6E,0x20,0x6C,0x65,0x73,0x73,0x20,0x69,0x6E,0x70,0x75,0x74,
+	0x2F,0x76,0x69,0x64,0x65,0x6F,0x20,0x64,0x65,0x6C,0x61,0x79,
+	0x2C,0x1E,0x62,0x75,0x74,0x20,0x61,0x6C,0x73,0x6F,0x20,0x70,
+	0x6F,0x74,0x65,0x6E,0x74,0x69,0x61,0x6C,0x20,0x73,0x74,0x75,
+	0x74,0x74,0x65,0x72,0x69,0x6E,0x67,0x2E,0x00,0x15,0x3E,0x40,
+	0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,0x31,0x53,0x74,0x72,
+	0x65,0x74,0x63,0x68,0x65,0x64,0x3A,0x0B,0x3E,0x40,0x58,0x30,
+	0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x37,0x4D,0x61,0x6B,0x65,
+	0x73,0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,
+	0x20,0x6D,0x6F,0x64,0x65,0x20,0x63,0x6F,0x6D,0x70,0x6C,0x65,
+	0x74,0x65,0x6C,0x79,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,
+	0x20,0x6F,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61,
+	0x67,0x65,0x2E,0x50,0x54,0x68,0x69,0x73,0x20,0x63,0x61,0x6E,
+	0x20,0x61,0x6E,0x64,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,
+	0x73,0x75,0x6C,0x74,0x20,0x69,0x6E,0x20,0x75,0x6E,0x65,0x76,
+	0x65,0x6E,0x20,0x70,0x69,0x78,0x65,0x6C,0x20,0x73,0x69,0x7A,
+	0x65,0x73,0x2C,0x20,0x6D,0x61,0x6B,0x69,0x6E,0x67,0x20,0x74,
+	0x68,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x6C,0x6F,0x6F,
+	0x6B,0x20,0x71,0x75,0x69,0x74,0x65,0x20,0x62,0x61,0x64,0x2E,
+	0x52,0x54,0x68,0x65,0x20,0x22,0x50,0x69,0x78,0x65,0x6C,0x20,
+	0x66,0x69,0x6C,0x74,0x65,0x72,0x22,0x20,0x73,0x65,0x74,0x74,
+	0x69,0x6E,0x67,0x20,0x63,0x61,0x6E,0x20,0x68,0x65,0x6C,0x70,
+	0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x69,0x73,0x2C,0x20,
+	0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x6D,0x61,0x6B,0x65,0x73,
+	0x20,0x74,0x68,0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x6C,
+	0x6F,0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72,0x72,0x79,0x2E,0x01,
+	0x20,0x18,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x50,0x69,0x78,0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,
+	0x72,0x3A,0x0B,0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,
+	0x30,0x32,0x52,0x41,0x70,0x70,0x6C,0x69,0x65,0x73,0x20,0x61,
+	0x6E,0x20,0x61,0x6E,0x74,0x69,0x2D,0x61,0x6C,0x69,0x61,0x73,
+	0x69,0x6E,0x67,0x20,0x73,0x75,0x62,0x70,0x69,0x78,0x65,0x6C,
+	0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x74,
+	0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x77,0x68,0x65,
+	0x6E,0x20,0x74,0x68,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,
+	0x20,0x69,0x73,0x20,0x75,0x70,0x73,0x63,0x61,0x6C,0x65,0x64,
+	0x2E,0x3B,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x6B,0x65,0x65,
+	0x70,0x20,0x69,0x6E,0x20,0x6D,0x69,0x6E,0x64,0x20,0x74,0x68,
+	0x61,0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,
+	0x20,0x6D,0x61,0x6B,0x65,0x20,0x70,0x69,0x78,0x65,0x6C,0x73,
+	0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x62,0x6C,0x75,0x72,0x72,0x79,
+	0x2E,0x00,0x23,0x40,0x58,0x30,0x32,0x30,0x40,0x43,0x30,0x30,
+	0x31,0x41,0x64,0x76,0x61,0x6E,0x63,0x65,0x64,0x20,0x65,0x64,
+	0x69,0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,
+	0x3A,0x20,0x01,0x3E,0x1E,0x3E,0x40,0x58,0x30,0x34,0x30,0x40,
+	0x43,0x30,0x30,0x31,0x43,0x6F,0x70,0x79,0x2F,0x50,0x61,0x73,
+	0x74,0x65,0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,0x3A,0x0B,
+	0x3E,0x40,0x58,0x30,0x36,0x30,0x40,0x43,0x30,0x30,0x32,0x37,
+	0x54,0x68,0x65,0x20,0x6D,0x61,0x73,0x6B,0x69,0x6E,0x67,0x20,
+	0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6F,0x72,0x20,
+	0x63,0x6F,0x70,0x79,0x69,0x6E,0x67,0x2F,0x70,0x61,0x73,0x74,
+	0x69,0x6E,0x67,0x20,0x6F,0x6E,0x6C,0x79,0x20,0x70,0x61,0x72,
+	0x74,0x73,0x20,0x6F,0x66,0x20,0x61,0x46,0x22,0x6E,0x6F,0x74,
+	0x65,0x2D,0x63,0x65,0x6C,0x6C,0x22,0x2E,0x20,0x54,0x68,0x65,
+	0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6E,0x74,0x20,0x70,
+	0x61,0x72,0x74,0x73,0x20,0x6F,0x66,0x20,0x61,0x20,0x22,0x6E,
+	0x6F,0x74,0x65,0x2D,0x63,0x65,0x6C,0x6C,0x22,0x20,0x69,0x73,
+	0x20,0x4E,0x6F,0x74,0x65,0x2C,0x20,0x49,0x6E,0x73,0x74,0x72,
+	0x2E,0x20,0x6E,0x72,0x2E,0x2C,0x20,0x56,0x6F,0x6C,0x75,0x6D,
+	0x65,0x2C,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x6E,0x72,
+	0x20,0x26,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x64,0x61,
+	0x74,0x61,0x2E,0x34,0x3E,0x41,0x73,0x20,0x79,0x6F,0x75,0x20,
+	0x63,0x61,0x6E,0x20,0x73,0x65,0x65,0x20,0x69,0x6E,0x20,0x74,
+	0x68,0x65,0x20,0x77,0x69,0x6E,0x64,0x6F,0x77,0x20,0x74,0x68,
+	0x65,0x72,0x65,0x20,0x61,0x72,0x65,0x20,0x33,0x20,0x63,0x6F,
+	0x6C,0x75,0x6D,0x6E,0x73,0x20,0x6F,0x66,0x3D,0x22,0x65,0x6E,
+	0x61,0x62,0x6C,0x65,0x2F,0x64,0x69,0x73,0x61,0x62,0x6C,0x65,
+	0x20,0x62,0x75,0x74,0x74,0x6F,0x6E,0x73,0x22,0x20,0x77,0x68,
+	0x69,0x63,0x68,0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,
+	0x6C,0x65,0x74,0x74,0x65,0x72,0x73,0x20,0x43,0x2C,0x50,0x20,
+	0x26,0x20,0x54,0x20,0x61,0x62,0x6F,0x76,0x65,0x2E,0x45,0x3E,
+	0x43,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x63,0x6F,0x70,0x79,
+	0x2C,0x20,0x69,0x74,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,
+	0x73,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x70,0x61,0x72,0x74,
+	0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x67,0x6F,0x65,0x73,0x20,
+	0x69,0x6E,0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,
+	0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x3E,0x3E,0x50,0x20,
+	0x6D,0x65,0x61,0x6E,0x73,0x20,0x70,0x61,0x73,0x74,0x65,0x20,
+	0x61,0x6E,0x64,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x73,
+	0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x70,0x61,0x72,0x74,0x73,
+	0x20,0x74,0x68,0x61,0x74,0x20,0x67,0x6F,0x65,0x73,0x20,0x6F,
+	0x75,0x74,0x20,0x66,0x72,0x6F,0x6D,0x20,0x74,0x68,0x65,0x0B,
+	0x63,0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x45,
+	0x3E,0x54,0x20,0x6D,0x65,0x61,0x6E,0x73,0x20,0x74,0x72,0x61,
+	0x6E,0x73,0x70,0x61,0x72,0x65,0x6E,0x63,0x79,0x2E,0x20,0x49,
+	0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x65,0x6E,0x61,0x62,0x6C,
+	0x65,0x64,0x2C,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x73,0x74,
+	0x69,0x6E,0x67,0x20,0x64,0x6F,0x65,0x73,0x6E,0x27,0x74,0x20,
+	0x6F,0x76,0x65,0x72,0x77,0x72,0x69,0x74,0x65,0x3D,0x64,0x61,
+	0x74,0x61,0x20,0x77,0x69,0x74,0x68,0x20,0x6E,0x69,0x6C,0x2D,
+	0x69,0x6E,0x66,0x6F,0x72,0x6D,0x61,0x74,0x69,0x6F,0x6E,0x2C,
+	0x20,0x6F,0x6E,0x6C,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x61,
+	0x20,0x6E,0x6F,0x74,0x65,0x20,0x6F,0x72,0x20,0x61,0x20,0x6E,
+	0x75,0x6D,0x62,0x65,0x72,0x20,0x3C,0x3E,0x20,0x30,0x2E,0x01,
+	0x3E,0x40,0x3E,0x54,0x68,0x65,0x20,0x63,0x75,0x74,0x20,0x66,
+	0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x73,0x20,0x77,0x6F,0x72,
+	0x6B,0x73,0x20,0x6C,0x69,0x6B,0x65,0x20,0x70,0x61,0x73,0x74,
+	0x69,0x6E,0x67,0x20,0x77,0x69,0x74,0x68,0x20,0x7A,0x65,0x72,
+	0x6F,0x2D,0x64,0x61,0x74,0x61,0x2E,0x20,0x54,0x68,0x69,0x73,
+	0x20,0x6D,0x65,0x61,0x6E,0x73,0x3B,0x74,0x68,0x61,0x74,0x20,
+	0x74,0x68,0x65,0x20,0x63,0x75,0x74,0x74,0x69,0x6E,0x67,0x20,
+	0x69,0x73,0x20,0x63,0x6F,0x6E,0x74,0x72,0x6F,0x6C,0x6C,0x65,
+	0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x50,0x2D,0x63,0x6F,0x6C,
+	0x75,0x6D,0x6E,0x20,0x28,0x6F,0x72,0x20,0x54,0x2D,0x63,0x6F,
+	0x6C,0x75,0x6D,0x6E,0x29,0x2E,0x3C,0x3E,0x57,0x68,0x65,0x6E,
+	0x20,0x79,0x6F,0x75,0x20,0x63,0x6F,0x70,0x79,0x20,0x64,0x61,
+	0x74,0x61,0x20,0x77,0x69,0x74,0x68,0x20,0x6D,0x61,0x73,0x6B,
+	0x69,0x6E,0x67,0x2C,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x73,
+	0x61,0x62,0x6C,0x65,0x64,0x20,0x70,0x61,0x72,0x74,0x73,0x20,
+	0x61,0x72,0x65,0x20,0x6E,0x6F,0x74,0x43,0x63,0x6C,0x65,0x61,
+	0x72,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,
+	0x6F,0x70,0x79,0x62,0x75,0x66,0x66,0x65,0x72,0x2E,0x20,0x28,
+	0x4D,0x61,0x6B,0x69,0x6E,0x67,0x20,0x69,0x74,0x20,0x70,0x6F,
+	0x73,0x73,0x69,0x62,0x6C,0x65,0x20,0x74,0x6F,0x20,0x63,0x6F,
+	0x6C,0x6C,0x65,0x63,0x74,0x20,0x64,0x61,0x74,0x61,0x20,0x66,
+	0x72,0x6F,0x6D,0x27,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,
+	0x6C,0x6F,0x63,0x61,0x74,0x69,0x6F,0x6E,0x73,0x20,0x69,0x6E,
+	0x74,0x6F,0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x70,0x79,0x62,
+	0x75,0x66,0x66,0x65,0x72,0x2E,0x29,0x00,0x03,0x45,0x4E,0x44,
+	0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+	0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0E,0x40,0x4C,0x50,0x72,
-	0x6F,0x62,0x6C,0x65,0x6D,0x73,0x2F,0x46,0x41,0x51,0x06,0x3E,
-	0x40,0x58,0x30,0x32,0x30,0x2A,0x3E,0x40,0x43,0x30,0x30,0x31,
-	0x51,0x3A,0x20,0x48,0x6F,0x77,0x20,0x63,0x61,0x6E,0x20,0x49,
-	0x20,0x74,0x6F,0x67,0x67,0x6C,0x65,0x20,0x66,0x75,0x6C,0x6C,
-	0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,0x3F,
-	0x37,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x50,0x72,
-	0x65,0x73,0x73,0x20,0x41,0x6C,0x74,0x2B,0x45,0x6E,0x74,0x65,
-	0x72,0x20,0x28,0x43,0x74,0x72,0x6C,0x2B,0x43,0x6D,0x64,0x2B,
-	0x46,0x20,0x61,0x6C,0x73,0x6F,0x20,0x77,0x6F,0x72,0x6B,0x73,
-	0x20,0x6F,0x6E,0x20,0x4D,0x61,0x63,0x29,0x06,0x3E,0x40,0x58,
-	0x30,0x32,0x30,0x45,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,
-	0x20,0x48,0x6F,0x77,0x20,0x63,0x61,0x6E,0x20,0x49,0x20,0x6D,
-	0x61,0x6B,0x65,0x20,0x66,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,
-	0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,0x73,0x74,0x72,0x65,
-	0x74,0x63,0x68,0x20,0x6F,0x75,0x74,0x20,0x74,0x68,0x65,0x20,
-	0x77,0x68,0x6F,0x6C,0x65,0x20,0x73,0x63,0x72,0x65,0x65,0x6E,
-	0x3F,0x37,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x45,
-	0x6E,0x61,0x62,0x6C,0x65,0x20,0x22,0x53,0x74,0x72,0x65,0x74,
-	0x63,0x68,0x65,0x64,0x22,0x20,0x69,0x6E,0x20,0x43,0x6F,0x6E,
-	0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,0x4D,0x69,0x73,0x63,0x65,
-	0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x2E,0x4E,0x3E,0x40,
-	0x58,0x30,0x33,0x35,0x54,0x68,0x69,0x73,0x20,0x77,0x69,0x6C,
-	0x6C,0x20,0x72,0x65,0x73,0x75,0x6C,0x74,0x20,0x69,0x6E,0x20,
-	0x75,0x6E,0x65,0x76,0x65,0x6E,0x20,0x70,0x69,0x78,0x65,0x6C,
-	0x20,0x77,0x69,0x64,0x74,0x68,0x73,0x2E,0x20,0x49,0x66,0x20,
-	0x79,0x6F,0x75,0x20,0x77,0x61,0x6E,0x74,0x20,0x74,0x6F,0x20,
-	0x66,0x69,0x78,0x20,0x74,0x68,0x69,0x73,0x2C,0x20,0x65,0x6E,
-	0x61,0x62,0x6C,0x65,0x3D,0x22,0x50,0x69,0x78,0x65,0x6C,0x20,
-	0x66,0x69,0x6C,0x74,0x65,0x72,0x22,0x20,0x28,0x74,0x68,0x6F,
-	0x75,0x67,0x68,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x69,0x6C,
-	0x6C,0x20,0x6D,0x61,0x6B,0x65,0x20,0x74,0x68,0x65,0x20,0x69,
-	0x6D,0x61,0x67,0x65,0x20,0x6C,0x6F,0x6F,0x6B,0x20,0x62,0x6C,
-	0x75,0x72,0x72,0x79,0x29,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,
-	0x30,0x27,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x49,
-	0x20,0x63,0x61,0x6E,0x27,0x74,0x20,0x75,0x73,0x65,0x20,0x41,
-	0x6C,0x74,0x2B,0x46,0x34,0x20,0x61,0x6E,0x64,0x20,0x41,0x6C,
-	0x74,0x2B,0x46,0x35,0x21,0x4E,0x3E,0x40,0x43,0x30,0x30,0x32,
-	0x41,0x3A,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x73,0x3A,0x20,
-	0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x68,0x61,0x76,0x65,0x20,
-	0x47,0x65,0x46,0x6F,0x72,0x63,0x65,0x20,0x45,0x78,0x70,0x65,
-	0x72,0x69,0x65,0x6E,0x63,0x65,0x20,0x69,0x6E,0x73,0x74,0x61,
-	0x6C,0x6C,0x65,0x64,0x2C,0x20,0x79,0x6F,0x75,0x20,0x6E,0x65,
-	0x65,0x64,0x20,0x74,0x6F,0x20,0x63,0x68,0x61,0x6E,0x67,0x65,
-	0x2B,0x3E,0x40,0x58,0x30,0x33,0x35,0x74,0x68,0x65,0x20,0x6B,
-	0x65,0x79,0x62,0x69,0x6E,0x64,0x69,0x6E,0x67,0x73,0x20,0x69,
-	0x6E,0x20,0x69,0x74,0x73,0x20,0x73,0x65,0x74,0x74,0x69,0x6E,
-	0x67,0x73,0x20,0x70,0x61,0x67,0x65,0x2E,0x57,0x3E,0x6D,0x61,
-	0x63,0x4F,0x53,0x2F,0x4F,0x53,0x20,0x58,0x3A,0x20,0x43,0x68,
-	0x61,0x6E,0x67,0x65,0x20,0x41,0x6C,0x74,0x2B,0x46,0x34,0x2F,
-	0x41,0x6C,0x74,0x2B,0x46,0x35,0x20,0x6B,0x65,0x79,0x73,0x20,
-	0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x4F,0x53,0x20,0x74,0x6F,
-	0x20,0x73,0x6F,0x6D,0x65,0x74,0x68,0x69,0x6E,0x67,0x20,0x65,
-	0x6C,0x73,0x65,0x2E,0x20,0x41,0x6C,0x73,0x6F,0x20,0x66,0x6F,
-	0x72,0x20,0x47,0x4E,0x55,0x2F,0x4C,0x69,0x6E,0x75,0x78,0x2E,
-	0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x2B,0x3E,0x40,0x43,0x30,
-	0x30,0x31,0x51,0x3A,0x20,0x54,0x68,0x65,0x20,0x6D,0x6F,0x75,
-	0x73,0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,0x20,0x69,0x73,
-	0x20,0x64,0x65,0x6C,0x61,0x79,0x65,0x64,0x2F,0x6C,0x61,0x67,
-	0x67,0x79,0x21,0x44,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,
-	0x20,0x4D,0x61,0x6B,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x22,
-	0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x6D,0x6F,0x75,
-	0x73,0x65,0x22,0x20,0x69,0x73,0x20,0x64,0x69,0x73,0x61,0x62,
-	0x6C,0x65,0x64,0x20,0x69,0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,
-	0x67,0x20,0x2D,0x3E,0x20,0x4C,0x61,0x79,0x6F,0x75,0x74,0x2E,
-	0x4B,0x3E,0x40,0x58,0x30,0x33,0x35,0x41,0x6C,0x74,0x65,0x72,
-	0x6E,0x61,0x74,0x69,0x76,0x65,0x6C,0x79,0x2C,0x20,0x79,0x6F,
-	0x75,0x20,0x63,0x61,0x6E,0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,
-	0x20,0x22,0x56,0x53,0x79,0x6E,0x63,0x20,0x6F,0x66,0x66,0x22,
-	0x20,0x69,0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,
-	0x3E,0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,
-	0x6F,0x75,0x73,0x2E,0x46,0x3E,0x54,0x68,0x69,0x73,0x20,0x68,
-	0x6F,0x77,0x65,0x76,0x65,0x72,0x2C,0x20,0x77,0x69,0x6C,0x6C,
-	0x20,0x69,0x6E,0x74,0x72,0x6F,0x64,0x75,0x63,0x65,0x20,0x73,
-	0x74,0x75,0x74,0x74,0x65,0x72,0x69,0x6E,0x67,0x20,0x62,0x65,
-	0x63,0x61,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x72,0x65,
-	0x6E,0x64,0x65,0x72,0x69,0x6E,0x67,0x20,0x72,0x61,0x74,0x65,
-	0x20,0x69,0x73,0x22,0x3E,0x6E,0x6F,0x74,0x20,0x65,0x78,0x61,
-	0x63,0x74,0x20,0x74,0x6F,0x20,0x79,0x6F,0x75,0x72,0x20,0x6D,
-	0x6F,0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x20,0x72,0x61,0x74,
-	0x65,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x33,0x3E,0x40,
-	0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x57,0x69,0x6C,0x6C,0x20,
-	0x79,0x6F,0x75,0x20,0x69,0x6D,0x70,0x6C,0x65,0x6D,0x65,0x6E,
-	0x74,0x20,0x4D,0x49,0x44,0x49,0x20,0x6F,0x75,0x74,0x20,0x66,
-	0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x61,0x6C,0x69,0x74,0x79,
-	0x3F,0x4D,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x4E,
-	0x6F,0x2C,0x20,0x73,0x6F,0x72,0x72,0x79,0x2E,0x20,0x54,0x68,
-	0x69,0x73,0x20,0x69,0x73,0x20,0x76,0x65,0x72,0x79,0x20,0x64,
-	0x69,0x66,0x66,0x69,0x63,0x75,0x6C,0x74,0x20,0x74,0x6F,0x20,
-	0x69,0x6D,0x70,0x6C,0x65,0x6D,0x65,0x6E,0x74,0x20,0x63,0x6F,
-	0x72,0x72,0x65,0x63,0x74,0x6C,0x79,0x20,0x77,0x68,0x65,0x6E,
-	0x20,0x68,0x61,0x76,0x69,0x6E,0x67,0x3C,0x3E,0x40,0x58,0x30,
-	0x33,0x35,0x68,0x69,0x67,0x68,0x65,0x72,0x20,0x61,0x75,0x64,
-	0x69,0x6F,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x73,0x69,
-	0x7A,0x65,0x73,0x20,0x28,0x62,0x75,0x66,0x66,0x65,0x72,0x65,
-	0x64,0x20,0x72,0x65,0x70,0x6C,0x61,0x79,0x65,0x72,0x20,0x74,
-	0x69,0x63,0x6B,0x73,0x29,0x2E,0x2E,0x2E,0x06,0x3E,0x40,0x58,
-	0x30,0x32,0x30,0x30,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,
-	0x20,0x57,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x74,0x68,
-	0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,
-	0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x20,0x73,0x74,0x6F,
-	0x72,0x65,0x64,0x3F,0x3F,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,
-	0x3A,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x73,0x3A,0x20,0x5C,
-	0x55,0x73,0x65,0x72,0x73,0x5C,0x55,0x53,0x45,0x52,0x5C,0x41,
-	0x70,0x70,0x44,0x61,0x74,0x61,0x5C,0x52,0x6F,0x61,0x6D,0x69,
-	0x6E,0x67,0x5C,0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,
-	0x5C,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x45,0x3E,0x40,0x58,
-	0x30,0x33,0x35,0x4F,0x53,0x20,0x58,0x3A,0x20,0x2F,0x55,0x73,
-	0x65,0x72,0x73,0x2F,0x55,0x53,0x45,0x52,0x2F,0x4C,0x69,0x62,
-	0x72,0x61,0x72,0x79,0x2F,0x41,0x70,0x70,0x6C,0x69,0x63,0x61,
-	0x74,0x69,0x6F,0x6E,0x20,0x53,0x75,0x70,0x70,0x6F,0x72,0x74,
-	0x2F,0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x2F,0x46,
-	0x54,0x32,0x2E,0x43,0x46,0x47,0x2F,0x47,0x4E,0x55,0x2F,0x4C,
-	0x69,0x6E,0x75,0x78,0x3A,0x20,0x2F,0x68,0x6F,0x6D,0x65,0x2F,
-	0x55,0x53,0x45,0x52,0x2F,0x2E,0x63,0x6F,0x6E,0x66,0x69,0x67,
-	0x2F,0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,0x65,0x2F,0x46,
-	0x54,0x32,0x2E,0x43,0x46,0x47,0x01,0x3E,0x48,0x49,0x74,0x20,
-	0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x73,0x74,0x6F,0x72,
-	0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x70,0x72,
-	0x6F,0x67,0x72,0x61,0x6D,0x20,0x64,0x69,0x72,0x65,0x63,0x74,
-	0x6F,0x72,0x79,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x70,
-	0x61,0x74,0x68,0x20,0x63,0x6F,0x75,0x6C,0x64,0x6E,0x27,0x74,
-	0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x2E,0x4D,0x49,0x66,
-	0x20,0x79,0x6F,0x75,0x20,0x70,0x75,0x74,0x20,0x74,0x68,0x65,
-	0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,
-	0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x20,0x69,0x6E,0x20,0x74,
-	0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x64,
-	0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x2C,0x20,0x69,0x74,
-	0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x61,0x64,0x20,0x74,
-	0x68,0x61,0x74,0x4A,0x6F,0x6E,0x65,0x20,0x61,0x6E,0x64,0x20,
-	0x6E,0x6F,0x74,0x20,0x61,0x74,0x74,0x65,0x6D,0x70,0x74,0x20,
-	0x74,0x6F,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x6F,
-	0x6E,0x66,0x69,0x67,0x20,0x64,0x69,0x72,0x73,0x20,0x66,0x6F,
-	0x72,0x20,0x74,0x68,0x65,0x20,0x4F,0x53,0x20,0x75,0x73,0x65,
-	0x72,0x2E,0x20,0x28,0x70,0x6F,0x72,0x74,0x61,0x62,0x6C,0x65,
-	0x20,0x6D,0x6F,0x64,0x65,0x29,0x06,0x3E,0x40,0x58,0x30,0x32,
-	0x30,0x42,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x43,
-	0x61,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6C,0x6F,0x6E,0x65,
-	0x20,0x72,0x65,0x61,0x64,0x20,0x46,0x54,0x32,0x2E,0x43,0x46,
-	0x47,0x20,0x66,0x72,0x6F,0x6D,0x20,0x72,0x65,0x61,0x6C,0x20,
-	0x46,0x54,0x32,0x2C,0x20,0x61,0x6E,0x64,0x20,0x76,0x69,0x63,
-	0x65,0x20,0x76,0x65,0x72,0x73,0x61,0x3F,0x4C,0x3E,0x40,0x43,
-	0x30,0x30,0x32,0x41,0x3A,0x20,0x59,0x65,0x73,0x2C,0x20,0x69,
-	0x74,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,0x77,0x6F,0x72,
-	0x6B,0x20,0x6A,0x75,0x73,0x74,0x20,0x66,0x69,0x6E,0x65,0x2E,
-	0x20,0x50,0x75,0x74,0x20,0x69,0x74,0x20,0x69,0x6E,0x20,0x74,
-	0x68,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,
-	0x20,0x73,0x68,0x6F,0x77,0x6E,0x20,0x61,0x62,0x6F,0x76,0x65,
-	0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x51,0x3E,0x40,0x43,
-	0x30,0x30,0x31,0x51,0x3A,0x20,0x53,0x6D,0x70,0x2E,0x20,0x45,
-	0x64,0x2E,0x3A,0x20,0x57,0x68,0x69,0x6C,0x65,0x20,0x7A,0x6F,
-	0x6F,0x6D,0x65,0x64,0x20,0x69,0x6E,0x2C,0x20,0x49,0x20,0x73,
-	0x6F,0x6D,0x65,0x74,0x69,0x6D,0x65,0x73,0x20,0x63,0x61,0x6E,
-	0x27,0x74,0x20,0x6D,0x61,0x72,0x6B,0x20,0x74,0x68,0x65,0x20,
-	0x6C,0x61,0x73,0x74,0x20,0x73,0x61,0x6D,0x70,0x6C,0x65,0x20,
-	0x70,0x6F,0x69,0x6E,0x74,0x21,0x47,0x3E,0x40,0x43,0x30,0x30,
-	0x32,0x41,0x3A,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,
-	0x6E,0x6F,0x72,0x6D,0x61,0x6C,0x2E,0x20,0x54,0x68,0x69,0x73,
-	0x20,0x69,0x73,0x20,0x61,0x20,0x6C,0x69,0x6D,0x69,0x74,0x61,
-	0x74,0x69,0x6F,0x6E,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,
-	0x6E,0x61,0x74,0x75,0x72,0x65,0x20,0x6F,0x66,0x20,0x73,0x63,
-	0x61,0x6C,0x69,0x6E,0x67,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,
-	0x30,0x17,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x49,
-	0x20,0x66,0x6F,0x75,0x6E,0x64,0x20,0x61,0x20,0x62,0x75,0x67,
-	0x21,0x4C,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x50,
-	0x6C,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6E,0x64,0x20,0x6D,
-	0x65,0x20,0x61,0x20,0x6D,0x61,0x69,0x6C,0x20,0x28,0x66,0x6F,
-	0x75,0x6E,0x64,0x20,0x61,0x74,0x20,0x31,0x36,0x2D,0x62,0x69,
-	0x74,0x73,0x2E,0x6F,0x72,0x67,0x29,0x20,0x61,0x6E,0x64,0x20,
-	0x74,0x72,0x79,0x20,0x74,0x6F,0x20,0x65,0x78,0x70,0x6C,0x61,
-	0x69,0x6E,0x20,0x69,0x74,0x2E,0x00,0x03,0x45,0x4E,0x44,0x4C,
-	0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0E,0x40,
+	0x4C,0x50,0x72,0x6F,0x62,0x6C,0x65,0x6D,0x73,0x2F,0x46,0x41,
+	0x51,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x2A,0x3E,0x40,0x43,
+	0x30,0x30,0x31,0x51,0x3A,0x20,0x48,0x6F,0x77,0x20,0x63,0x61,
+	0x6E,0x20,0x49,0x20,0x74,0x6F,0x67,0x67,0x6C,0x65,0x20,0x66,
+	0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,
+	0x64,0x65,0x3F,0x37,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,
+	0x20,0x50,0x72,0x65,0x73,0x73,0x20,0x41,0x6C,0x74,0x2B,0x45,
+	0x6E,0x74,0x65,0x72,0x20,0x28,0x43,0x74,0x72,0x6C,0x2B,0x43,
+	0x6D,0x64,0x2B,0x46,0x20,0x61,0x6C,0x73,0x6F,0x20,0x77,0x6F,
+	0x72,0x6B,0x73,0x20,0x6F,0x6E,0x20,0x4D,0x61,0x63,0x29,0x06,
+	0x3E,0x40,0x58,0x30,0x32,0x30,0x45,0x3E,0x40,0x43,0x30,0x30,
+	0x31,0x51,0x3A,0x20,0x48,0x6F,0x77,0x20,0x63,0x61,0x6E,0x20,
+	0x49,0x20,0x6D,0x61,0x6B,0x65,0x20,0x66,0x75,0x6C,0x6C,0x73,
+	0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,0x73,
+	0x74,0x72,0x65,0x74,0x63,0x68,0x20,0x6F,0x75,0x74,0x20,0x74,
+	0x68,0x65,0x20,0x77,0x68,0x6F,0x6C,0x65,0x20,0x73,0x63,0x72,
+	0x65,0x65,0x6E,0x3F,0x37,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,
+	0x3A,0x20,0x45,0x6E,0x61,0x62,0x6C,0x65,0x20,0x22,0x53,0x74,
+	0x72,0x65,0x74,0x63,0x68,0x65,0x64,0x22,0x20,0x69,0x6E,0x20,
+	0x43,0x6F,0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,0x4D,0x69,
+	0x73,0x63,0x65,0x6C,0x6C,0x61,0x6E,0x65,0x6F,0x75,0x73,0x2E,
+	0x4E,0x3E,0x40,0x58,0x30,0x33,0x35,0x54,0x68,0x69,0x73,0x20,
+	0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x73,0x75,0x6C,0x74,0x20,
+	0x69,0x6E,0x20,0x75,0x6E,0x65,0x76,0x65,0x6E,0x20,0x70,0x69,
+	0x78,0x65,0x6C,0x20,0x77,0x69,0x64,0x74,0x68,0x73,0x2E,0x20,
+	0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x77,0x61,0x6E,0x74,0x20,
+	0x74,0x6F,0x20,0x66,0x69,0x78,0x20,0x74,0x68,0x69,0x73,0x2C,
+	0x20,0x65,0x6E,0x61,0x62,0x6C,0x65,0x3D,0x22,0x50,0x69,0x78,
+	0x65,0x6C,0x20,0x66,0x69,0x6C,0x74,0x65,0x72,0x22,0x20,0x28,
+	0x74,0x68,0x6F,0x75,0x67,0x68,0x20,0x74,0x68,0x69,0x73,0x20,
+	0x77,0x69,0x6C,0x6C,0x20,0x6D,0x61,0x6B,0x65,0x20,0x74,0x68,
+	0x65,0x20,0x69,0x6D,0x61,0x67,0x65,0x20,0x6C,0x6F,0x6F,0x6B,
+	0x20,0x62,0x6C,0x75,0x72,0x72,0x79,0x29,0x2E,0x06,0x3E,0x40,
+	0x58,0x30,0x32,0x30,0x27,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,
+	0x3A,0x20,0x49,0x20,0x63,0x61,0x6E,0x27,0x74,0x20,0x75,0x73,
+	0x65,0x20,0x41,0x6C,0x74,0x2B,0x46,0x34,0x20,0x61,0x6E,0x64,
+	0x20,0x41,0x6C,0x74,0x2B,0x46,0x35,0x21,0x4E,0x3E,0x40,0x43,
+	0x30,0x30,0x32,0x41,0x3A,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,
+	0x73,0x3A,0x20,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x68,0x61,
+	0x76,0x65,0x20,0x47,0x65,0x46,0x6F,0x72,0x63,0x65,0x20,0x45,
+	0x78,0x70,0x65,0x72,0x69,0x65,0x6E,0x63,0x65,0x20,0x69,0x6E,
+	0x73,0x74,0x61,0x6C,0x6C,0x65,0x64,0x2C,0x20,0x79,0x6F,0x75,
+	0x20,0x6E,0x65,0x65,0x64,0x20,0x74,0x6F,0x20,0x63,0x68,0x61,
+	0x6E,0x67,0x65,0x2B,0x3E,0x40,0x58,0x30,0x33,0x35,0x74,0x68,
+	0x65,0x20,0x6B,0x65,0x79,0x62,0x69,0x6E,0x64,0x69,0x6E,0x67,
+	0x73,0x20,0x69,0x6E,0x20,0x69,0x74,0x73,0x20,0x73,0x65,0x74,
+	0x74,0x69,0x6E,0x67,0x73,0x20,0x70,0x61,0x67,0x65,0x2E,0x57,
+	0x3E,0x6D,0x61,0x63,0x4F,0x53,0x2F,0x4F,0x53,0x20,0x58,0x3A,
+	0x20,0x43,0x68,0x61,0x6E,0x67,0x65,0x20,0x41,0x6C,0x74,0x2B,
+	0x46,0x34,0x2F,0x41,0x6C,0x74,0x2B,0x46,0x35,0x20,0x6B,0x65,
+	0x79,0x73,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x4F,0x53,
+	0x20,0x74,0x6F,0x20,0x73,0x6F,0x6D,0x65,0x74,0x68,0x69,0x6E,
+	0x67,0x20,0x65,0x6C,0x73,0x65,0x2E,0x20,0x41,0x6C,0x73,0x6F,
+	0x20,0x66,0x6F,0x72,0x20,0x47,0x4E,0x55,0x2F,0x4C,0x69,0x6E,
+	0x75,0x78,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x2B,0x3E,
+	0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x54,0x68,0x65,0x20,
+	0x6D,0x6F,0x75,0x73,0x65,0x20,0x63,0x75,0x72,0x73,0x6F,0x72,
+	0x20,0x69,0x73,0x20,0x64,0x65,0x6C,0x61,0x79,0x65,0x64,0x2F,
+	0x6C,0x61,0x67,0x67,0x79,0x21,0x44,0x3E,0x40,0x43,0x30,0x30,
+	0x32,0x41,0x3A,0x20,0x4D,0x61,0x6B,0x65,0x20,0x73,0x75,0x72,
+	0x65,0x20,0x22,0x53,0x6F,0x66,0x74,0x77,0x61,0x72,0x65,0x20,
+	0x6D,0x6F,0x75,0x73,0x65,0x22,0x20,0x69,0x73,0x20,0x64,0x69,
+	0x73,0x61,0x62,0x6C,0x65,0x64,0x20,0x69,0x6E,0x20,0x43,0x6F,
+	0x6E,0x66,0x69,0x67,0x20,0x2D,0x3E,0x20,0x4C,0x61,0x79,0x6F,
+	0x75,0x74,0x2E,0x4B,0x3E,0x40,0x58,0x30,0x33,0x35,0x41,0x6C,
+	0x74,0x65,0x72,0x6E,0x61,0x74,0x69,0x76,0x65,0x6C,0x79,0x2C,
+	0x20,0x79,0x6F,0x75,0x20,0x63,0x61,0x6E,0x20,0x65,0x6E,0x61,
+	0x62,0x6C,0x65,0x20,0x22,0x56,0x53,0x79,0x6E,0x63,0x20,0x6F,
+	0x66,0x66,0x22,0x20,0x69,0x6E,0x20,0x43,0x6F,0x6E,0x66,0x69,
+	0x67,0x20,0x2D,0x3E,0x20,0x4D,0x69,0x73,0x63,0x65,0x6C,0x6C,
+	0x61,0x6E,0x65,0x6F,0x75,0x73,0x2E,0x46,0x3E,0x54,0x68,0x69,
+	0x73,0x20,0x68,0x6F,0x77,0x65,0x76,0x65,0x72,0x2C,0x20,0x77,
+	0x69,0x6C,0x6C,0x20,0x69,0x6E,0x74,0x72,0x6F,0x64,0x75,0x63,
+	0x65,0x20,0x73,0x74,0x75,0x74,0x74,0x65,0x72,0x69,0x6E,0x67,
+	0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x74,0x68,0x65,
+	0x20,0x72,0x65,0x6E,0x64,0x65,0x72,0x69,0x6E,0x67,0x20,0x72,
+	0x61,0x74,0x65,0x20,0x69,0x73,0x22,0x3E,0x6E,0x6F,0x74,0x20,
+	0x65,0x78,0x61,0x63,0x74,0x20,0x74,0x6F,0x20,0x79,0x6F,0x75,
+	0x72,0x20,0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72,0x27,0x73,0x20,
+	0x72,0x61,0x74,0x65,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,
+	0x33,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x57,0x69,
+	0x6C,0x6C,0x20,0x79,0x6F,0x75,0x20,0x69,0x6D,0x70,0x6C,0x65,
+	0x6D,0x65,0x6E,0x74,0x20,0x4D,0x49,0x44,0x49,0x20,0x6F,0x75,
+	0x74,0x20,0x66,0x75,0x6E,0x63,0x74,0x69,0x6F,0x6E,0x61,0x6C,
+	0x69,0x74,0x79,0x3F,0x4D,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,
+	0x3A,0x20,0x4E,0x6F,0x2C,0x20,0x73,0x6F,0x72,0x72,0x79,0x2E,
+	0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x76,0x65,0x72,
+	0x79,0x20,0x64,0x69,0x66,0x66,0x69,0x63,0x75,0x6C,0x74,0x20,
+	0x74,0x6F,0x20,0x69,0x6D,0x70,0x6C,0x65,0x6D,0x65,0x6E,0x74,
+	0x20,0x63,0x6F,0x72,0x72,0x65,0x63,0x74,0x6C,0x79,0x20,0x77,
+	0x68,0x65,0x6E,0x20,0x68,0x61,0x76,0x69,0x6E,0x67,0x3C,0x3E,
+	0x40,0x58,0x30,0x33,0x35,0x68,0x69,0x67,0x68,0x65,0x72,0x20,
+	0x61,0x75,0x64,0x69,0x6F,0x20,0x62,0x75,0x66,0x66,0x65,0x72,
+	0x20,0x73,0x69,0x7A,0x65,0x73,0x20,0x28,0x62,0x75,0x66,0x66,
+	0x65,0x72,0x65,0x64,0x20,0x72,0x65,0x70,0x6C,0x61,0x79,0x65,
+	0x72,0x20,0x74,0x69,0x63,0x6B,0x73,0x29,0x2E,0x2E,0x2E,0x06,
+	0x3E,0x40,0x58,0x30,0x32,0x30,0x30,0x3E,0x40,0x43,0x30,0x30,
+	0x31,0x51,0x3A,0x20,0x57,0x68,0x65,0x72,0x65,0x20,0x69,0x73,
+	0x20,0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x75,
+	0x72,0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x20,
+	0x73,0x74,0x6F,0x72,0x65,0x64,0x3F,0x3F,0x3E,0x40,0x43,0x30,
+	0x30,0x32,0x41,0x3A,0x20,0x57,0x69,0x6E,0x64,0x6F,0x77,0x73,
+	0x3A,0x20,0x5C,0x55,0x73,0x65,0x72,0x73,0x5C,0x55,0x53,0x45,
+	0x52,0x5C,0x41,0x70,0x70,0x44,0x61,0x74,0x61,0x5C,0x52,0x6F,
+	0x61,0x6D,0x69,0x6E,0x67,0x5C,0x46,0x54,0x32,0x20,0x63,0x6C,
+	0x6F,0x6E,0x65,0x5C,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x45,
+	0x3E,0x40,0x58,0x30,0x33,0x35,0x4F,0x53,0x20,0x58,0x3A,0x20,
+	0x2F,0x55,0x73,0x65,0x72,0x73,0x2F,0x55,0x53,0x45,0x52,0x2F,
+	0x4C,0x69,0x62,0x72,0x61,0x72,0x79,0x2F,0x41,0x70,0x70,0x6C,
+	0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x53,0x75,0x70,0x70,
+	0x6F,0x72,0x74,0x2F,0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,
+	0x65,0x2F,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x2F,0x47,0x4E,
+	0x55,0x2F,0x4C,0x69,0x6E,0x75,0x78,0x3A,0x20,0x2F,0x68,0x6F,
+	0x6D,0x65,0x2F,0x55,0x53,0x45,0x52,0x2F,0x2E,0x63,0x6F,0x6E,
+	0x66,0x69,0x67,0x2F,0x46,0x54,0x32,0x20,0x63,0x6C,0x6F,0x6E,
+	0x65,0x2F,0x46,0x54,0x32,0x2E,0x43,0x46,0x47,0x01,0x3E,0x48,
+	0x49,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x62,0x65,0x20,0x73,
+	0x74,0x6F,0x72,0x65,0x64,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,
+	0x20,0x70,0x72,0x6F,0x67,0x72,0x61,0x6D,0x20,0x64,0x69,0x72,
+	0x65,0x63,0x74,0x6F,0x72,0x79,0x20,0x69,0x66,0x20,0x74,0x68,
+	0x65,0x20,0x70,0x61,0x74,0x68,0x20,0x63,0x6F,0x75,0x6C,0x64,
+	0x6E,0x27,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x2E,
+	0x4D,0x49,0x66,0x20,0x79,0x6F,0x75,0x20,0x70,0x75,0x74,0x20,
+	0x74,0x68,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x75,0x72,
+	0x61,0x74,0x69,0x6F,0x6E,0x20,0x66,0x69,0x6C,0x65,0x20,0x69,
+	0x6E,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6F,0x67,0x72,0x61,
+	0x6D,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6F,0x72,0x79,0x2C,
+	0x20,0x69,0x74,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x61,
+	0x64,0x20,0x74,0x68,0x61,0x74,0x4A,0x6F,0x6E,0x65,0x20,0x61,
+	0x6E,0x64,0x20,0x6E,0x6F,0x74,0x20,0x61,0x74,0x74,0x65,0x6D,
+	0x70,0x74,0x20,0x74,0x6F,0x20,0x63,0x72,0x65,0x61,0x74,0x65,
+	0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x20,0x64,0x69,0x72,0x73,
+	0x20,0x66,0x6F,0x72,0x20,0x74,0x68,0x65,0x20,0x4F,0x53,0x20,
+	0x75,0x73,0x65,0x72,0x2E,0x20,0x28,0x70,0x6F,0x72,0x74,0x61,
+	0x62,0x6C,0x65,0x20,0x6D,0x6F,0x64,0x65,0x29,0x06,0x3E,0x40,
+	0x58,0x30,0x32,0x30,0x42,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,
+	0x3A,0x20,0x43,0x61,0x6E,0x20,0x74,0x68,0x65,0x20,0x63,0x6C,
+	0x6F,0x6E,0x65,0x20,0x72,0x65,0x61,0x64,0x20,0x46,0x54,0x32,
+	0x2E,0x43,0x46,0x47,0x20,0x66,0x72,0x6F,0x6D,0x20,0x72,0x65,
+	0x61,0x6C,0x20,0x46,0x54,0x32,0x2C,0x20,0x61,0x6E,0x64,0x20,
+	0x76,0x69,0x63,0x65,0x20,0x76,0x65,0x72,0x73,0x61,0x3F,0x4C,
+	0x3E,0x40,0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x59,0x65,0x73,
+	0x2C,0x20,0x69,0x74,0x20,0x73,0x68,0x6F,0x75,0x6C,0x64,0x20,
+	0x77,0x6F,0x72,0x6B,0x20,0x6A,0x75,0x73,0x74,0x20,0x66,0x69,
+	0x6E,0x65,0x2E,0x20,0x50,0x75,0x74,0x20,0x69,0x74,0x20,0x69,
+	0x6E,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,
+	0x6F,0x72,0x79,0x20,0x73,0x68,0x6F,0x77,0x6E,0x20,0x61,0x62,
+	0x6F,0x76,0x65,0x2E,0x06,0x3E,0x40,0x58,0x30,0x32,0x30,0x51,
+	0x3E,0x40,0x43,0x30,0x30,0x31,0x51,0x3A,0x20,0x53,0x6D,0x70,
+	0x2E,0x20,0x45,0x64,0x2E,0x3A,0x20,0x57,0x68,0x69,0x6C,0x65,
+	0x20,0x7A,0x6F,0x6F,0x6D,0x65,0x64,0x20,0x69,0x6E,0x2C,0x20,
+	0x49,0x20,0x73,0x6F,0x6D,0x65,0x74,0x69,0x6D,0x65,0x73,0x20,
+	0x63,0x61,0x6E,0x27,0x74,0x20,0x6D,0x61,0x72,0x6B,0x20,0x74,
+	0x68,0x65,0x20,0x6C,0x61,0x73,0x74,0x20,0x73,0x61,0x6D,0x70,
+	0x6C,0x65,0x20,0x70,0x6F,0x69,0x6E,0x74,0x21,0x47,0x3E,0x40,
+	0x43,0x30,0x30,0x32,0x41,0x3A,0x20,0x54,0x68,0x69,0x73,0x20,
+	0x69,0x73,0x20,0x6E,0x6F,0x72,0x6D,0x61,0x6C,0x2E,0x20,0x54,
+	0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x6C,0x69,0x6D,
+	0x69,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x69,0x6E,0x20,0x74,
+	0x68,0x65,0x20,0x6E,0x61,0x74,0x75,0x72,0x65,0x20,0x6F,0x66,
+	0x20,0x73,0x63,0x61,0x6C,0x69,0x6E,0x67,0x2E,0x06,0x3E,0x40,
+	0x58,0x30,0x32,0x30,0x17,0x3E,0x40,0x43,0x30,0x30,0x31,0x51,
+	0x3A,0x20,0x49,0x20,0x66,0x6F,0x75,0x6E,0x64,0x20,0x61,0x20,
+	0x62,0x75,0x67,0x21,0x4C,0x3E,0x40,0x43,0x30,0x30,0x32,0x41,
+	0x3A,0x20,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x73,0x65,0x6E,
+	0x64,0x20,0x6D,0x65,0x20,0x61,0x20,0x6D,0x61,0x69,0x6C,0x20,
+	0x28,0x66,0x6F,0x75,0x6E,0x64,0x20,0x61,0x74,0x20,0x31,0x36,
+	0x2D,0x62,0x69,0x74,0x73,0x2E,0x6F,0x72,0x67,0x29,0x20,0x61,
+	0x6E,0x64,0x20,0x74,0x72,0x79,0x20,0x74,0x6F,0x20,0x65,0x78,
+	0x70,0x6C,0x61,0x69,0x6E,0x20,0x69,0x74,0x2E,0x00,0x03,0x45,
+	0x4E,0x44,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x4C,0x3B,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
 	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
-	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x0C,0x40,0x4C,
-	0x4B,0x6E,0x6F,0x77,0x6E,0x20,0x62,0x75,0x67,0x73,0x01,0x3E,
-	0x31,0x3E,0x40,0x58,0x30,0x31,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x57,0x41,0x56,0x20,0x65,0x78,0x70,0x6F,0x72,0x74,0x69,0x6E,
-	0x67,0x20,0x28,0x72,0x65,0x6E,0x64,0x65,0x72,0x69,0x6E,0x67,
-	0x20,0x73,0x6F,0x6E,0x67,0x20,0x74,0x6F,0x20,0x57,0x41,0x56,
-	0x29,0x3A,0x01,0x3E,0x55,0x3E,0x40,0x58,0x30,0x31,0x30,0x40,
-	0x43,0x30,0x30,0x32,0x2D,0x20,0x53,0x6F,0x6E,0x67,0x73,0x20,
-	0x74,0x68,0x61,0x74,0x20,0x6A,0x75,0x6D,0x70,0x20,0x62,0x61,
-	0x63,0x6B,0x20,0x74,0x6F,0x20,0x61,0x20,0x70,0x72,0x65,0x76,
-	0x69,0x6F,0x75,0x73,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6E,
-	0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x6E,0x64,0x65,0x72,
-	0x20,0x66,0x6F,0x72,0x65,0x76,0x65,0x72,0x20,0x61,0x6E,0x64,
-	0x20,0x65,0x76,0x65,0x72,0x2C,0x4D,0x3E,0x40,0x58,0x30,0x32,
-	0x31,0x61,0x6E,0x64,0x20,0x79,0x6F,0x75,0x20,0x6E,0x65,0x65,
-	0x64,0x20,0x74,0x6F,0x20,0x70,0x72,0x65,0x73,0x73,0x20,0x61,
-	0x20,0x6B,0x65,0x79,0x20,0x6F,0x72,0x20,0x63,0x6C,0x69,0x63,
-	0x6B,0x20,0x74,0x68,0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,
-	0x74,0x6F,0x20,0x61,0x62,0x6F,0x72,0x74,0x20,0x74,0x68,0x65,
-	0x20,0x72,0x65,0x6E,0x64,0x65,0x72,0x20,0x77,0x68,0x65,0x6E,
-	0x15,0x3E,0x40,0x58,0x30,0x32,0x31,0x79,0x6F,0x75,0x20,0x77,
-	0x61,0x6E,0x74,0x20,0x69,0x74,0x20,0x74,0x6F,0x2E,0x01,0x3E,
-	0x11,0x3E,0x40,0x58,0x30,0x31,0x30,0x40,0x43,0x30,0x30,0x31,
-	0x56,0x69,0x64,0x65,0x6F,0x3A,0x06,0x3E,0x40,0x43,0x30,0x30,
-	0x32,0x4C,0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,0x20,0x46,0x75,
-	0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,0x6F,0x64,
-	0x65,0x20,0x63,0x61,0x6E,0x20,0x68,0x61,0x76,0x65,0x20,0x69,
-	0x73,0x73,0x75,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x74,
-	0x68,0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,0x70,0x69,0x78,
-	0x65,0x6C,0x20,0x6D,0x61,0x70,0x70,0x69,0x6E,0x67,0x20,0x6F,
-	0x6E,0x20,0x73,0x6F,0x6D,0x65,0x14,0x3E,0x40,0x58,0x30,0x32,
-	0x31,0x4C,0x69,0x6E,0x75,0x78,0x20,0x73,0x79,0x73,0x74,0x65,
-	0x6D,0x73,0x2E,0x4A,0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,0x20,
-	0x46,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,0x6D,
-	0x6F,0x64,0x65,0x20,0x63,0x61,0x6E,0x20,0x68,0x61,0x76,0x65,
-	0x20,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,0x70,0x72,0x6F,
-	0x62,0x6C,0x65,0x6D,0x73,0x20,0x6F,0x6E,0x20,0x6D,0x75,0x6C,
-	0x74,0x69,0x2D,0x6D,0x6F,0x6E,0x69,0x74,0x6F,0x72,0x20,0x73,
-	0x79,0x73,0x74,0x65,0x6D,0x73,0x00,0x03,0x45,0x4E,0x44
+	0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+	0x0C,0x40,0x4C,0x4B,0x6E,0x6F,0x77,0x6E,0x20,0x62,0x75,0x67,
+	0x73,0x01,0x3E,0x31,0x3E,0x40,0x58,0x30,0x31,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x57,0x41,0x56,0x20,0x65,0x78,0x70,0x6F,0x72,
+	0x74,0x69,0x6E,0x67,0x20,0x28,0x72,0x65,0x6E,0x64,0x65,0x72,
+	0x69,0x6E,0x67,0x20,0x73,0x6F,0x6E,0x67,0x20,0x74,0x6F,0x20,
+	0x57,0x41,0x56,0x29,0x3A,0x01,0x3E,0x55,0x3E,0x40,0x58,0x30,
+	0x31,0x30,0x40,0x43,0x30,0x30,0x32,0x2D,0x20,0x53,0x6F,0x6E,
+	0x67,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x6A,0x75,0x6D,0x70,
+	0x20,0x62,0x61,0x63,0x6B,0x20,0x74,0x6F,0x20,0x61,0x20,0x70,
+	0x72,0x65,0x76,0x69,0x6F,0x75,0x73,0x20,0x70,0x61,0x74,0x74,
+	0x65,0x72,0x6E,0x20,0x77,0x69,0x6C,0x6C,0x20,0x72,0x65,0x6E,
+	0x64,0x65,0x72,0x20,0x66,0x6F,0x72,0x65,0x76,0x65,0x72,0x20,
+	0x61,0x6E,0x64,0x20,0x65,0x76,0x65,0x72,0x2C,0x4D,0x3E,0x40,
+	0x58,0x30,0x32,0x31,0x61,0x6E,0x64,0x20,0x79,0x6F,0x75,0x20,
+	0x6E,0x65,0x65,0x64,0x20,0x74,0x6F,0x20,0x70,0x72,0x65,0x73,
+	0x73,0x20,0x61,0x20,0x6B,0x65,0x79,0x20,0x6F,0x72,0x20,0x63,
+	0x6C,0x69,0x63,0x6B,0x20,0x74,0x68,0x65,0x20,0x6D,0x6F,0x75,
+	0x73,0x65,0x20,0x74,0x6F,0x20,0x61,0x62,0x6F,0x72,0x74,0x20,
+	0x74,0x68,0x65,0x20,0x72,0x65,0x6E,0x64,0x65,0x72,0x20,0x77,
+	0x68,0x65,0x6E,0x15,0x3E,0x40,0x58,0x30,0x32,0x31,0x79,0x6F,
+	0x75,0x20,0x77,0x61,0x6E,0x74,0x20,0x69,0x74,0x20,0x74,0x6F,
+	0x2E,0x01,0x3E,0x11,0x3E,0x40,0x58,0x30,0x31,0x30,0x40,0x43,
+	0x30,0x30,0x31,0x56,0x69,0x64,0x65,0x6F,0x3A,0x06,0x3E,0x40,
+	0x43,0x30,0x30,0x32,0x4C,0x3E,0x40,0x58,0x30,0x31,0x30,0x2D,
+	0x20,0x46,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,0x6E,0x20,
+	0x6D,0x6F,0x64,0x65,0x20,0x63,0x61,0x6E,0x20,0x68,0x61,0x76,
+	0x65,0x20,0x69,0x73,0x73,0x75,0x65,0x73,0x20,0x77,0x69,0x74,
+	0x68,0x20,0x74,0x68,0x65,0x20,0x6D,0x6F,0x75,0x73,0x65,0x20,
+	0x70,0x69,0x78,0x65,0x6C,0x20,0x6D,0x61,0x70,0x70,0x69,0x6E,
+	0x67,0x20,0x6F,0x6E,0x20,0x73,0x6F,0x6D,0x65,0x14,0x3E,0x40,
+	0x58,0x30,0x32,0x31,0x4C,0x69,0x6E,0x75,0x78,0x20,0x73,0x79,
+	0x73,0x74,0x65,0x6D,0x73,0x2E,0x4A,0x3E,0x40,0x58,0x30,0x31,
+	0x30,0x2D,0x20,0x46,0x75,0x6C,0x6C,0x73,0x63,0x72,0x65,0x65,
+	0x6E,0x20,0x6D,0x6F,0x64,0x65,0x20,0x63,0x61,0x6E,0x20,0x68,
+	0x61,0x76,0x65,0x20,0x73,0x65,0x76,0x65,0x72,0x61,0x6C,0x20,
+	0x70,0x72,0x6F,0x62,0x6C,0x65,0x6D,0x73,0x20,0x6F,0x6E,0x20,
+	0x6D,0x75,0x6C,0x74,0x69,0x2D,0x6D,0x6F,0x6E,0x69,0x74,0x6F,
+	0x72,0x20,0x73,0x79,0x73,0x74,0x65,0x6D,0x73,0x00,0x03,0x45,
+	0x4E,0x44
 };
 
 #endif
--- /dev/null
+++ b/src/mixer/ft2_center_mix.h
@@ -1,0 +1,79 @@
+#ifndef _ft2_center_mix_h_
+#define _ft2_center_mix_h_
+
+#include <stdint.h>
+#include "../ft2_audio.h"
+
+// no volume ramping
+
+// 8-bit
+void centerMix8bNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bNoLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bNoLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bBidiLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+
+// 16-bit
+void centerMix16bNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bNoLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bNoLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bBidiLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+
+// volume ramping
+
+// 8-bit
+void centerMix8bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampNoLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampNoLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix8bRampBidiLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+
+// 16bit
+void centerMix16bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampBidiLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampNoLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampBidiLoopS8Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampNoLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampBidiLoopLIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampNoLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampBidiLoopS16Intrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampNoLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+void centerMix16bRampBidiLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples);
+
+#endif
--- a/src/mixer/ft2_cubic_spline.c
+++ b/src/mixer/ft2_cubic_spline.c
@@ -1,3 +1,7 @@
+/*
+** Cubic Hermite spline (Catmull-Rom) interpolation LUT generator
+*/
+
 #include <stdint.h>
 #include <stdbool.h>
 #include <stdlib.h>
@@ -4,38 +8,77 @@
 #include "ft2_cubic_spline.h"
 #include "../ft2_video.h" // showErrorMsgBox()
 
-float *fCubicSplineLUT = NULL; // globalized
+float *f4PointCubicSplineLUT = NULL, *f6PointCubicSplineLUT = NULL; // globalized
 
-bool calcCubicSplineTable(void)
+bool calcCubicSplineTables(void)
 {
-	fCubicSplineLUT = (float *)malloc(CUBIC_SPLINE_TAPS*CUBIC_SPLINE_PHASES * sizeof (float));
-	if (fCubicSplineLUT == NULL)
+	float *fPtr;
+
+	f4PointCubicSplineLUT = (float *)malloc(4 * CUBIC4P_SPLINE_PHASES * sizeof (float));
+	f6PointCubicSplineLUT = (float *)malloc(6 * CUBIC6P_SPLINE_PHASES * sizeof (float));
+
+	if (f4PointCubicSplineLUT == NULL || f6PointCubicSplineLUT == NULL)
 	{
 		showErrorMsgBox("Not enough memory!");
 		return false;
 	}
 
-	float *fPtr = fCubicSplineLUT;
-	for (int32_t i = 0; i < CUBIC_SPLINE_PHASES; i++)
+	// 4-point Cubic Hermite (Catmull-Rom)
+	fPtr = f4PointCubicSplineLUT;
+	for (int32_t i = 0; i < CUBIC4P_SPLINE_PHASES; i++)
 	{
-		const double x1 = i * (1.0 / CUBIC_SPLINE_PHASES);
+		const double x1 = i * (1.0 / CUBIC4P_SPLINE_PHASES);
 		const double x2 = x1 * x1; // x^2
 		const double x3 = x2 * x1; // x^3
 
-		*fPtr++ = (float)(-0.5 * x3 + 1.0 * x2 - 0.5 * x1);
-		*fPtr++ = (float)( 1.5 * x3 - 2.5 * x2 + 1.0);
-		*fPtr++ = (float)(-1.5 * x3 + 2.0 * x2 + 0.5 * x1);
-		*fPtr++ = (float)( 0.5 * x3 - 0.5 * x2);
+		double t1 = (-(1.0/2.0) * x3) + ( (    1.0) * x2) + (-(1.0/2.0) * x1);
+		double t2 = ( (3.0/2.0) * x3) + (-(5.0/2.0) * x2) + 1.0;
+		double t3 = (-(3.0/2.0) * x3) + ( (    2.0) * x2) + ( (1.0/2.0) * x1);
+		double t4 = ( (1.0/2.0) * x3) + (-(1.0/2.0) * x2);
+
+		*fPtr++ = (float)t1;
+		*fPtr++ = (float)t2;
+		*fPtr++ = (float)t3;
+		*fPtr++ = (float)t4;
 	}
 
+	// 6-point Cubic Hermite (Catmull-Rom)
+	fPtr = f6PointCubicSplineLUT;
+	for (int32_t i = 0; i < CUBIC6P_SPLINE_PHASES; i++)
+	{
+		const double x1 = i * (1.0 / CUBIC6P_SPLINE_PHASES);
+		const double x2 = x1 * x1; // x^2
+		const double x3 = x2 * x1; // x^3
+
+		double t1 = ( (1.0/12.0) * x3) + (-(1.0/ 6.0) * x2) + ( (1.0/12.0) * x1);
+		double t2 = (-(7.0/12.0) * x3) + ( (5.0/ 4.0) * x2) + (-(2.0/ 3.0) * x1);
+		double t3 = ( (4.0/ 3.0) * x3) + (-(7.0/ 3.0) * x2) + 1.0;
+		double t4 = (-(4.0/ 3.0) * x3) + ( (5.0/ 3.0) * x2) + ( (2.0/ 3.0) * x1);
+		double t5 = ( (7.0/12.0) * x3) + (-(1.0/ 2.0) * x2) + (-(1.0/12.0) * x1);
+		double t6 = (-(1.0/12.0) * x3) + ( (1.0/12.0) * x2);
+
+		*fPtr++ = (float)t1;
+		*fPtr++ = (float)t2;
+		*fPtr++ = (float)t3;
+		*fPtr++ = (float)t4;
+		*fPtr++ = (float)t5;
+		*fPtr++ = (float)t6;
+	}
+
 	return true;
 }
 
-void freeCubicSplineTable(void)
+void freeCubicSplineTables(void)
 {
-	if (fCubicSplineLUT != NULL)
+	if (f4PointCubicSplineLUT != NULL)
 	{
-		free(fCubicSplineLUT);
-		fCubicSplineLUT = NULL;
+		free(f4PointCubicSplineLUT);
+		f4PointCubicSplineLUT = NULL;
+	}
+
+	if (f6PointCubicSplineLUT != NULL)
+	{
+		free(f6PointCubicSplineLUT);
+		f6PointCubicSplineLUT = NULL;
 	}
 }
--- a/src/mixer/ft2_cubic_spline.h
+++ b/src/mixer/ft2_cubic_spline.h
@@ -4,18 +4,16 @@
 #include <stdbool.h>
 #include "ft2_mix.h" // MIXER_FRAC_BITS
 
-#define CUBIC_SPLINE_TAPS 4
-#define CUBIC_SPLINE_WIDTH_BITS 2 // log2(CUBIC_SPLINE_TAPS)
+#define CUBIC4P_SPLINE_PHASES 8192
+#define CUBIC4P_SPLINE_PHASES_BITS 13 // log2(CUBIC4P_SPLINE_PHASES)
+#define CUBIC4P_SPLINE_FSHIFT (MIXER_FRAC_BITS-(CUBIC4P_SPLINE_PHASES_BITS+2))
+#define CUBIC4P_SPLINE_FMASK ((4*CUBIC4P_SPLINE_PHASES)-4)
 
-// 8192 is a good compromise
-#define CUBIC_SPLINE_PHASES 8192
-#define CUBIC_SPLINE_PHASES_BITS 13 // log2(CUBIC_SPLINE_PHASES)
+#define CUBIC6P_SPLINE_PHASES 8192
+#define CUBIC6P_SPLINE_PHASES_BITS 13 // log2(CUBIC6P_SPLINE_PHASES)
+#define CUBIC6P_SPLINE_FSHIFT (MIXER_FRAC_BITS-CUBIC6P_SPLINE_PHASES_BITS)
 
-// do not change these!
-#define CUBIC_SPLINE_FSHIFT (MIXER_FRAC_BITS-(CUBIC_SPLINE_PHASES_BITS+CUBIC_SPLINE_WIDTH_BITS))
-#define CUBIC_SPLINE_FMASK ((CUBIC_SPLINE_TAPS*CUBIC_SPLINE_PHASES)-CUBIC_SPLINE_TAPS)
+extern float *f4PointCubicSplineLUT, *f6PointCubicSplineLUT;
 
-extern float *fCubicSplineLUT;
-
-bool calcCubicSplineTable(void);
-void freeCubicSplineTable(void);
+bool calcCubicSplineTables(void);
+void freeCubicSplineTables(void);
--- a/src/mixer/ft2_mix.c
+++ b/src/mixer/ft2_mix.c
@@ -1,5 +1,6 @@
 #include <stdint.h>
 #include <stdbool.h>
+#include "../ft2_header.h" // CLAMP16()
 #include "ft2_mix.h"
 #include "ft2_mix_macros.h"
 
@@ -8,14 +9,13 @@
 **       (Note: Mixing macros can be found in ft2_mix_macros.h)
 **
 ** Specifications:
-** - Interpolation: None, 2-tap linear, 4-tap cubic spline, 8-tap windowed-sinc, 16-tap windowed-sinc
+** - Interpolation: None, 2-tap linear, 4-tap/6-tap cubic Hermite, 8-tap/16-tap windowed-sinc
 ** - FT2-styled linear volume ramping (can be turned off)
 ** - 32.32 fixed-point precision for resampling delta/position
 ** - 32-bit floating-point precision for mixing and interpolation
 **
 ** This file has separate routines for EVERY possible sampling variation:
-** Interpolation none/sinc/linear/cubic, volumeramp on/off, 8-bit, 16-bit, no loop, loop, bidi.
-** (48 mixing routines in total)
+** Interpolation type, volume ramp on/off, 8-bit/16-bit sample, loop type.
 **
 ** Every voice has a function pointer set to the according mixing routine on
 ** sample trigger (from replayer, but set in audio thread), using a function
@@ -641,7 +641,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix8bNoLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix8bNoLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int8_t *base, *smpPtr;
 	float fSample, *fMixBufferL, *fMixBufferR;
@@ -661,19 +661,19 @@
 
 		for (i = 0; i < (samplesToMix & 3); i++)
 		{
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			INC_POS
 		}
 		samplesToMix >>= 2;
 		for (i = 0; i < samplesToMix; i++)
 		{
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			INC_POS
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			INC_POS
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			INC_POS
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			INC_POS
 		}
 
@@ -683,7 +683,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix8bLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix8bLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int8_t *base, *smpPtr;
 	int8_t *smpTapPtr;
@@ -707,19 +707,19 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
 			}
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
 			}
 		}
@@ -727,19 +727,19 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS
 			}
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS
 			}
 		}
@@ -750,7 +750,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix8bBidiLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix8bBidiLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int8_t *base, *revBase, *smpPtr;
 	int8_t *smpTapPtr;
@@ -775,19 +775,19 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
 			}
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
 			}
 		}
@@ -795,19 +795,19 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS_BIDI
 			}
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				INC_POS_BIDI
 			}
 		}
@@ -819,6 +819,185 @@
 	SET_BACK_MIXER_POS
 }
 
+static void mix8bNoLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int8_t *base, *smpPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac;
+
+	GET_VOL
+	GET_MIXER_VARS
+	SET_BASE8
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		samplesLeft -= samplesToMix;
+
+		for (i = 0; i < (samplesToMix & 3); i++)
+		{
+			RENDER_8BIT_SMP_C6PINTRP
+			INC_POS
+		}
+		samplesToMix >>= 2;
+		for (i = 0; i < samplesToMix; i++)
+		{
+			RENDER_8BIT_SMP_C6PINTRP
+			INC_POS
+			RENDER_8BIT_SMP_C6PINTRP
+			INC_POS
+			RENDER_8BIT_SMP_C6PINTRP
+			INC_POS
+			RENDER_8BIT_SMP_C6PINTRP
+			INC_POS
+		}
+
+		HANDLE_SAMPLE_END
+	}
+
+	SET_BACK_MIXER_POS
+}
+
+static void mix8bLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int8_t *base, *smpPtr;
+	int8_t *smpTapPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac;
+
+	GET_VOL
+	GET_MIXER_VARS
+	SET_BASE8
+	PREPARE_TAP_FIX8
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		samplesLeft -= samplesToMix;
+
+		if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+			}
+		}
+		else
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS
+			}
+		}
+
+		WRAP_LOOP
+	}
+
+	SET_BACK_MIXER_POS
+}
+
+static void mix8bBidiLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int8_t *base, *revBase, *smpPtr;
+	int8_t *smpTapPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac, tmpDelta;
+
+	GET_VOL
+	GET_MIXER_VARS
+	SET_BASE8_BIDI
+	PREPARE_TAP_FIX8
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		samplesLeft -= samplesToMix;
+
+		START_BIDI
+		if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+			}
+		}
+		else
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+			}
+		}
+		END_BIDI
+
+		WRAP_BIDI_LOOP
+	}
+
+	SET_BACK_MIXER_POS
+}
+
+
 static void mix8bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int8_t *base, *smpPtr;
@@ -1547,7 +1726,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix8bRampNoLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix8bRampNoLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int8_t *base, *smpPtr;
 	float fSample, *fMixBufferL, *fMixBufferR;
@@ -1569,7 +1748,7 @@
 
 		for (i = 0; i < (samplesToMix & 3); i++)
 		{
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
 		}
@@ -1576,16 +1755,16 @@
 		samplesToMix >>= 2;
 		for (i = 0; i < samplesToMix; i++)
 		{
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
-			RENDER_8BIT_SMP_CINTRP
+			RENDER_8BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
 		}
@@ -1597,7 +1776,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix8bRampLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix8bRampLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int8_t *base, *smpPtr;
 	int8_t *smpTapPtr;
@@ -1623,7 +1802,7 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
 			}
@@ -1630,16 +1809,16 @@
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
 			}
@@ -1648,7 +1827,7 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
 			}
@@ -1655,16 +1834,16 @@
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
 			}
@@ -1677,7 +1856,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix8bRampBidiLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix8bRampBidiLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int8_t *base, *revBase, *smpPtr;
 	int8_t *smpTapPtr;
@@ -1704,7 +1883,7 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
 			}
@@ -1711,16 +1890,16 @@
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP_TAP_FIX
+				RENDER_8BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
 			}
@@ -1729,7 +1908,7 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
 			}
@@ -1736,16 +1915,16 @@
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_8BIT_SMP_CINTRP
+				RENDER_8BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
 			}
@@ -1759,6 +1938,218 @@
 	SET_BACK_MIXER_POS
 }
 
+static void mix8bRampNoLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int8_t *base, *smpPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac;
+
+	GET_VOL_RAMP
+	GET_MIXER_VARS_RAMP
+	SET_BASE8
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		LIMIT_MIX_NUM_RAMP
+		samplesLeft -= samplesToMix;
+
+		for (i = 0; i < (samplesToMix & 3); i++)
+		{
+			RENDER_8BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+		}
+		samplesToMix >>= 2;
+		for (i = 0; i < samplesToMix; i++)
+		{
+			RENDER_8BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+			RENDER_8BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+			RENDER_8BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+			RENDER_8BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+		}
+
+		HANDLE_SAMPLE_END
+	}
+
+	SET_VOL_BACK
+	SET_BACK_MIXER_POS
+}
+
+static void mix8bRampLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int8_t *base, *smpPtr;
+	int8_t *smpTapPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac;
+
+	GET_VOL_RAMP
+	GET_MIXER_VARS_RAMP
+	SET_BASE8
+	PREPARE_TAP_FIX8
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		LIMIT_MIX_NUM_RAMP
+		samplesLeft -= samplesToMix;
+		
+		if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+			}
+		}
+		else
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+			}
+		}
+
+		WRAP_LOOP
+	}
+
+	SET_VOL_BACK
+	SET_BACK_MIXER_POS
+}
+
+static void mix8bRampBidiLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int8_t *base, *revBase, *smpPtr;
+	int8_t *smpTapPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac, tmpDelta;
+
+	GET_VOL_RAMP
+	GET_MIXER_VARS_RAMP
+	SET_BASE8_BIDI
+	PREPARE_TAP_FIX8
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		LIMIT_MIX_NUM_RAMP
+		samplesLeft -= samplesToMix;
+
+		START_BIDI
+		if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+			}
+		}
+		else
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_8BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+			}
+		}
+		END_BIDI
+
+		WRAP_BIDI_LOOP
+	}
+	
+	SET_VOL_BACK
+	SET_BACK_MIXER_POS
+}
+
 /* ----------------------------------------------------------------------- */
 /*                          16-BIT MIXING ROUTINES                         */
 /* ----------------------------------------------------------------------- */
@@ -2375,7 +2766,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix16bNoLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix16bNoLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int16_t *base, *smpPtr;
 	float fSample, *fMixBufferL, *fMixBufferR;
@@ -2395,19 +2786,19 @@
 
 		for (i = 0; i < (samplesToMix & 3); i++)
 		{
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			INC_POS
 		}
 		samplesToMix >>= 2;
 		for (i = 0; i < samplesToMix; i++)
 		{
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			INC_POS
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			INC_POS
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			INC_POS
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			INC_POS
 		}
 
@@ -2417,7 +2808,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix16bLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix16bLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int16_t *base, *smpPtr;
 	int16_t *smpTapPtr;
@@ -2441,19 +2832,19 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
 			}
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS
 			}
 		}
@@ -2461,19 +2852,19 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS
 			}
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS
 			}
 		}
@@ -2484,7 +2875,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix16bBidiLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix16bBidiLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int16_t *base, *revBase, *smpPtr;
 	int16_t *smpTapPtr;
@@ -2509,19 +2900,19 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
 			}
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				INC_POS_BIDI
 			}
 		}
@@ -2529,19 +2920,19 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS_BIDI
 			}
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				INC_POS_BIDI
 			}
 		}
@@ -2553,6 +2944,184 @@
 	SET_BACK_MIXER_POS
 }
 
+static void mix16bNoLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int16_t *base, *smpPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac;
+
+	GET_VOL
+	GET_MIXER_VARS
+	SET_BASE16
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		samplesLeft -= samplesToMix;
+
+		for (i = 0; i < (samplesToMix & 3); i++)
+		{
+			RENDER_16BIT_SMP_C6PINTRP
+			INC_POS
+		}
+		samplesToMix >>= 2;
+		for (i = 0; i < samplesToMix; i++)
+		{
+			RENDER_16BIT_SMP_C6PINTRP
+			INC_POS
+			RENDER_16BIT_SMP_C6PINTRP
+			INC_POS
+			RENDER_16BIT_SMP_C6PINTRP
+			INC_POS
+			RENDER_16BIT_SMP_C6PINTRP
+			INC_POS
+		}
+
+		HANDLE_SAMPLE_END
+	}
+
+	SET_BACK_MIXER_POS
+}
+
+static void mix16bLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int16_t *base, *smpPtr;
+	int16_t *smpTapPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac;
+
+	GET_VOL
+	GET_MIXER_VARS
+	SET_BASE16
+	PREPARE_TAP_FIX16
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		samplesLeft -= samplesToMix;
+
+		if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS
+			}
+		}
+		else
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS
+			}
+		}
+
+		WRAP_LOOP
+	}
+
+	SET_BACK_MIXER_POS
+}
+
+static void mix16bBidiLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int16_t *base, *revBase, *smpPtr;
+	int16_t *smpTapPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac, tmpDelta;
+
+	GET_VOL
+	GET_MIXER_VARS
+	SET_BASE16_BIDI
+	PREPARE_TAP_FIX16
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		samplesLeft -= samplesToMix;
+
+		START_BIDI
+		if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				INC_POS_BIDI
+			}
+		}
+		else
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP
+				INC_POS_BIDI
+			}
+		}
+		END_BIDI
+
+		WRAP_BIDI_LOOP
+	}
+
+	SET_BACK_MIXER_POS
+}
+
 static void mix16bRampNoLoop(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int16_t *base, *smpPtr;
@@ -3281,7 +3850,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix16bRampNoLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix16bRampNoLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int16_t *base, *smpPtr;
 	float fSample, *fMixBufferL, *fMixBufferR;
@@ -3303,7 +3872,7 @@
 
 		for (i = 0; i < (samplesToMix & 3); i++)
 		{
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
 		}
@@ -3310,16 +3879,16 @@
 		samplesToMix >>= 2;
 		for (i = 0; i < samplesToMix; i++)
 		{
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
-			RENDER_16BIT_SMP_CINTRP
+			RENDER_16BIT_SMP_C4PINTRP
 			VOLUME_RAMPING
 			INC_POS
 		}
@@ -3331,7 +3900,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix16bRampLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix16bRampLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int16_t *base, *smpPtr;
 	int16_t *smpTapPtr;
@@ -3357,7 +3926,7 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
 			}
@@ -3364,16 +3933,16 @@
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS
 			}
@@ -3382,7 +3951,7 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
 			}
@@ -3389,16 +3958,16 @@
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS
 			}
@@ -3411,7 +3980,7 @@
 	SET_BACK_MIXER_POS
 }
 
-static void mix16bRampBidiLoopCIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+static void mix16bRampBidiLoopC4PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
 {
 	const int16_t *base, *revBase, *smpPtr;
 	int16_t *smpTapPtr;
@@ -3438,7 +4007,7 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
 			}
@@ -3445,16 +4014,16 @@
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP_TAP_FIX
+				RENDER_16BIT_SMP_C4PINTRP_TAP_FIX
 				VOLUME_RAMPING
 				INC_POS_BIDI
 			}
@@ -3463,7 +4032,7 @@
 		{
 			for (i = 0; i < (samplesToMix & 3); i++)
 			{
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
 			}
@@ -3470,16 +4039,16 @@
 			samplesToMix >>= 2;
 			for (i = 0; i < samplesToMix; i++)
 			{
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
-				RENDER_16BIT_SMP_CINTRP
+				RENDER_16BIT_SMP_C4PINTRP
 				VOLUME_RAMPING
 				INC_POS_BIDI
 			}
@@ -3493,6 +4062,219 @@
 	SET_BACK_MIXER_POS
 }
 
+static void mix16bRampNoLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int16_t *base, *smpPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac;
+
+	GET_VOL_RAMP
+	GET_MIXER_VARS_RAMP
+	SET_BASE16
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		LIMIT_MIX_NUM_RAMP
+		samplesLeft -= samplesToMix;
+
+		for (i = 0; i < (samplesToMix & 3); i++)
+		{
+			RENDER_16BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+		}
+		samplesToMix >>= 2;
+		for (i = 0; i < samplesToMix; i++)
+		{
+			RENDER_16BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+			RENDER_16BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+			RENDER_16BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+			RENDER_16BIT_SMP_C6PINTRP
+			VOLUME_RAMPING
+			INC_POS
+		}
+
+		HANDLE_SAMPLE_END
+	}
+
+	SET_VOL_BACK
+	SET_BACK_MIXER_POS
+}
+
+static void mix16bRampLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int16_t *base, *smpPtr;
+	int16_t *smpTapPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac;
+
+	GET_VOL_RAMP
+	GET_MIXER_VARS_RAMP
+	SET_BASE16
+	PREPARE_TAP_FIX16
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		LIMIT_MIX_NUM_RAMP
+		samplesLeft -= samplesToMix;
+
+		if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS
+			}
+		}
+		else
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS
+			}
+		}
+
+		WRAP_LOOP
+	}
+
+	SET_VOL_BACK
+	SET_BACK_MIXER_POS
+}
+
+static void mix16bRampBidiLoopC6PIntrp(voice_t *v, uint32_t bufferPos, uint32_t numSamples)
+{
+	const int16_t *base, *revBase, *smpPtr;
+	int16_t *smpTapPtr;
+	float fSample, *fMixBufferL, *fMixBufferR;
+	int32_t position;
+	float fVolumeLDelta, fVolumeRDelta, fVolumeL, fVolumeR;
+	uint32_t i, samplesToMix, samplesLeft;
+	uint64_t positionFrac, tmpDelta;
+
+	GET_VOL_RAMP
+	GET_MIXER_VARS_RAMP
+	SET_BASE16_BIDI
+	PREPARE_TAP_FIX16
+
+	samplesLeft = numSamples;
+	while (samplesLeft > 0)
+	{
+		LIMIT_MIX_NUM
+		LIMIT_MIX_NUM_RAMP
+		samplesLeft -= samplesToMix;
+
+		START_BIDI
+		if (v->hasLooped) // the negative interpolation taps need a special case after the sample has looped once
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP_TAP_FIX
+				VOLUME_RAMPING
+				INC_POS_BIDI
+			}
+		}
+		else
+		{
+			for (i = 0; i < (samplesToMix & 3); i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+			}
+			samplesToMix >>= 2;
+			for (i = 0; i < samplesToMix; i++)
+			{
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+				RENDER_16BIT_SMP_C6PINTRP
+				VOLUME_RAMPING
+				INC_POS_BIDI
+			}
+		}
+
+		END_BIDI
+
+		WRAP_BIDI_LOOP
+	}
+
+	SET_VOL_BACK
+	SET_BACK_MIXER_POS
+}
+
 // -----------------------------------------------------------------------
 
 const mixFunc mixFuncTab[] =
@@ -3512,9 +4294,12 @@
 	(mixFunc)mix8bNoLoopS16Intrp,
 	(mixFunc)mix8bLoopS16Intrp,
 	(mixFunc)mix8bBidiLoopS16Intrp,
-	(mixFunc)mix8bNoLoopCIntrp,
-	(mixFunc)mix8bLoopCIntrp,
-	(mixFunc)mix8bBidiLoopCIntrp,
+	(mixFunc)mix8bNoLoopC4PIntrp,
+	(mixFunc)mix8bLoopC4PIntrp,
+	(mixFunc)mix8bBidiLoopC4PIntrp,
+	(mixFunc)mix8bNoLoopC6PIntrp,
+	(mixFunc)mix8bLoopC6PIntrp,
+	(mixFunc)mix8bBidiLoopC6PIntrp,
 
 	// 16-bit
 	(mixFunc)mix16bNoLoop,
@@ -3529,9 +4314,12 @@
 	(mixFunc)mix16bNoLoopS16Intrp,
 	(mixFunc)mix16bLoopS16Intrp,
 	(mixFunc)mix16bBidiLoopS16Intrp,
-	(mixFunc)mix16bNoLoopCIntrp,
-	(mixFunc)mix16bLoopCIntrp,
-	(mixFunc)mix16bBidiLoopCIntrp,
+	(mixFunc)mix16bNoLoopC4PIntrp,
+	(mixFunc)mix16bLoopC4PIntrp,
+	(mixFunc)mix16bBidiLoopC4PIntrp,
+	(mixFunc)mix16bNoLoopC6PIntrp,
+	(mixFunc)mix16bLoopC6PIntrp,
+	(mixFunc)mix16bBidiLoopC6PIntrp,
 
 	// volume ramping
 
@@ -3548,9 +4336,12 @@
 	(mixFunc)mix8bRampNoLoopS16Intrp,
 	(mixFunc)mix8bRampLoopS16Intrp,
 	(mixFunc)mix8bRampBidiLoopS16Intrp,
-	(mixFunc)mix8bRampNoLoopCIntrp,
-	(mixFunc)mix8bRampLoopCIntrp,
-	(mixFunc)mix8bRampBidiLoopCIntrp,
+	(mixFunc)mix8bRampNoLoopC4PIntrp,
+	(mixFunc)mix8bRampLoopC4PIntrp,
+	(mixFunc)mix8bRampBidiLoopC4PIntrp,
+	(mixFunc)mix8bRampNoLoopC6PIntrp,
+	(mixFunc)mix8bRampLoopC6PIntrp,
+	(mixFunc)mix8bRampBidiLoopC6PIntrp,
 
 	// 16-bit
 	(mixFunc)mix16bRampNoLoop,
@@ -3565,7 +4356,10 @@
 	(mixFunc)mix16bRampNoLoopS16Intrp,
 	(mixFunc)mix16bRampLoopS16Intrp,
 	(mixFunc)mix16bRampBidiLoopS16Intrp,
-	(mixFunc)mix16bRampNoLoopCIntrp,
-	(mixFunc)mix16bRampLoopCIntrp,
-	(mixFunc)mix16bRampBidiLoopCIntrp
+	(mixFunc)mix16bRampNoLoopC4PIntrp,
+	(mixFunc)mix16bRampLoopC4PIntrp,
+	(mixFunc)mix16bRampBidiLoopC4PIntrp,
+	(mixFunc)mix16bRampNoLoopC6PIntrp,
+	(mixFunc)mix16bRampLoopC6PIntrp,
+	(mixFunc)mix16bRampBidiLoopC6PIntrp
 };
--- a/src/mixer/ft2_mix.h
+++ b/src/mixer/ft2_mix.h
@@ -1,8 +1,24 @@
-#pragma once
+#ifndef _ft2_mix_h_
+#define _ft2_mix_h_
 
 #include <stdint.h>
 
+enum
+{
+	// don't change the order of these! (yes, it looks weird)
+	INTERPOLATION_DISABLED = 0,
+	INTERPOLATION_SINC8    = 1,
+	INTERPOLATION_LINEAR   = 2,
+	INTERPOLATION_SINC16   = 3,
+	INTERPOLATION_CUBIC4   = 4,
+	INTERPOLATION_CUBIC6   = 5,
+	// ------
+
+	NUM_INTERPOLATORS,
+};
+
 #define MAX_TAPS 16
+
 #define MAX_LEFT_TAPS ((MAX_TAPS/2)-1)
 #define MAX_RIGHT_TAPS (MAX_TAPS/2)
 
@@ -15,3 +31,5 @@
 typedef void (*mixFunc)(void *, uint32_t, uint32_t);
 
 extern const mixFunc mixFuncTab[]; // ft2_mix.c
+
+#endif
--- a/src/mixer/ft2_mix_macros.h
+++ b/src/mixer/ft2_mix_macros.h
@@ -1,6 +1,8 @@
-#pragma once
+#ifndef _ft2_mix_macros_h_
+#define _ft2_mix_macros_h_
 
 #include "../ft2_audio.h"
+#include "ft2_cubic_spline.h"
 #include "ft2_windowed_sinc.h"
 
 /* ----------------------------------------------------------------------- */
@@ -79,7 +81,7 @@
 	fVolumeR += fVolumeRDelta;
 
 /* ----------------------------------------------------------------------- */
-/*                            NO INTERPOLATION                             */
+/*                  NO INTERPOLATION (NEAREST NEIGHBOR)                    */
 /* ----------------------------------------------------------------------- */
 
 #define RENDER_8BIT_SMP \
@@ -130,9 +132,9 @@
 ** There is also a second special case for the left edge (negative taps) after the sample has looped once.
 */
 
-#define CUBIC_SPLINE_INTERPOLATION(s, f, scale) \
+#define CUBIC4P_SPLINE_INTERPOLATION(s, f, scale) \
 { \
-	const float *t = fCubicSplineLUT + (((uint32_t)(f) >> CUBIC_SPLINE_FSHIFT) & CUBIC_SPLINE_FMASK); \
+	const float *t = f4PointCubicSplineLUT + (((uint32_t)(f) >> CUBIC4P_SPLINE_FSHIFT) & CUBIC4P_SPLINE_FMASK); \
 	fSample = ((s[-1] * t[0]) + \
 	           ( s[0] * t[1]) + \
 	           ( s[1] * t[2]) + \
@@ -139,33 +141,66 @@
 	           ( s[2] * t[3])) * (1.0f / scale); \
 }
 
-#define RENDER_8BIT_SMP_CINTRP \
-	CUBIC_SPLINE_INTERPOLATION(smpPtr, positionFrac, 128) \
+#define CUBIC6P_SPLINE_INTERPOLATION(s, f, scale) \
+{ \
+	const float *t = f6PointCubicSplineLUT + (((uint32_t)(f) >> CUBIC6P_SPLINE_FSHIFT) * 6); \
+	fSample = ((s[-2] * t[0]) + \
+	           (s[-1] * t[1]) + \
+	           ( s[0] * t[2]) + \
+	           ( s[1] * t[3]) + \
+	           ( s[2] * t[4]) + \
+	           ( s[3] * t[5])) * (1.0f / scale); \
+}
+
+#define RENDER_8BIT_SMP_C4PINTRP \
+	CUBIC4P_SPLINE_INTERPOLATION(smpPtr, positionFrac, 128) \
 	*fMixBufferL++ += fSample * fVolumeL; \
 	*fMixBufferR++ += fSample * fVolumeR;
 
-#define RENDER_16BIT_SMP_CINTRP \
-	CUBIC_SPLINE_INTERPOLATION(smpPtr, positionFrac, 32768) \
+#define RENDER_16BIT_SMP_C4PINTRP \
+	CUBIC4P_SPLINE_INTERPOLATION(smpPtr, positionFrac, 32768) \
 	*fMixBufferL++ += fSample * fVolumeL; \
 	*fMixBufferR++ += fSample * fVolumeR;
 
+#define RENDER_8BIT_SMP_C6PINTRP \
+	CUBIC6P_SPLINE_INTERPOLATION(smpPtr, positionFrac, 128) \
+	*fMixBufferL++ += fSample * fVolumeL; \
+	*fMixBufferR++ += fSample * fVolumeR;
 
+#define RENDER_16BIT_SMP_C6PINTRP \
+	CUBIC6P_SPLINE_INTERPOLATION(smpPtr, positionFrac, 32768) \
+	*fMixBufferL++ += fSample * fVolumeL; \
+	*fMixBufferR++ += fSample * fVolumeR;
+
 /* Special left-edge case mixers to get proper tap data after one loop cycle.
 ** These are only used on looped samples.
 */
 
-#define RENDER_8BIT_SMP_CINTRP_TAP_FIX  \
+#define RENDER_8BIT_SMP_C4PINTRP_TAP_FIX  \
 	smpTapPtr = (smpPtr <= leftEdgePtr) ? (int8_t *)&v->leftEdgeTaps8[(int32_t)(smpPtr-loopStartPtr)] : (int8_t *)smpPtr; \
-	CUBIC_SPLINE_INTERPOLATION(smpTapPtr, positionFrac, 128) \
+	CUBIC4P_SPLINE_INTERPOLATION(smpTapPtr, positionFrac, 128) \
 	*fMixBufferL++ += fSample * fVolumeL; \
 	*fMixBufferR++ += fSample * fVolumeR;
 
-#define RENDER_16BIT_SMP_CINTRP_TAP_FIX \
+#define RENDER_16BIT_SMP_C4PINTRP_TAP_FIX \
 	smpTapPtr = (smpPtr <= leftEdgePtr) ? (int16_t *)&v->leftEdgeTaps16[(int32_t)(smpPtr-loopStartPtr)] : (int16_t *)smpPtr; \
-	CUBIC_SPLINE_INTERPOLATION(smpTapPtr, positionFrac, 32768) \
+	CUBIC4P_SPLINE_INTERPOLATION(smpTapPtr, positionFrac, 32768) \
 	*fMixBufferL++ += fSample * fVolumeL; \
 	*fMixBufferR++ += fSample * fVolumeR;
 
+#define RENDER_8BIT_SMP_C6PINTRP_TAP_FIX  \
+	smpTapPtr = (smpPtr <= leftEdgePtr) ? (int8_t *)&v->leftEdgeTaps8[(int32_t)(smpPtr-loopStartPtr)] : (int8_t *)smpPtr; \
+	CUBIC6P_SPLINE_INTERPOLATION(smpTapPtr, positionFrac, 128) \
+	*fMixBufferL++ += fSample * fVolumeL; \
+	*fMixBufferR++ += fSample * fVolumeR;
+
+#define RENDER_16BIT_SMP_C6PINTRP_TAP_FIX \
+	smpTapPtr = (smpPtr <= leftEdgePtr) ? (int16_t *)&v->leftEdgeTaps16[(int32_t)(smpPtr-loopStartPtr)] : (int16_t *)smpPtr; \
+	CUBIC6P_SPLINE_INTERPOLATION(smpTapPtr, positionFrac, 32768) \
+	*fMixBufferL++ += fSample * fVolumeL; \
+	*fMixBufferR++ += fSample * fVolumeR;
+
+
 /* ----------------------------------------------------------------------- */
 /*                       WINDOWED-SINC INTERPOLATION                       */
 /* ----------------------------------------------------------------------- */
@@ -195,23 +230,45 @@
 #define WINDOWED_SINC16_INTERPOLATION(s, f, scale) \
 { \
 	const float *t = v->fSincLUT + (((uint32_t)(f) >> SINC16_FSHIFT) & SINC16_FMASK); \
-	fSample = (( s[-7] * t[0]) + \
-	           ( s[-6] * t[1]) + \
-	           ( s[-5] * t[2]) + \
-	           ( s[-4] * t[3]) + \
-	           ( s[-3] * t[4]) + \
-	           ( s[-2] * t[5]) + \
-	           ( s[-1] * t[6]) + \
-	           (  s[0] * t[7]) + \
-	           (  s[1] * t[8]) + \
-	           (  s[2] * t[9]) + \
-	           (  s[3] * t[10]) + \
-	           (  s[4] * t[11]) + \
-	           (  s[5] * t[12]) + \
-	           (  s[6] * t[13]) + \
-	           (  s[7] * t[14]) + \
-	           (  s[8] * t[15])) * (1.0f / scale); \
+	fSample = ((s[-7] * t[0]) + \
+	           (s[-6] * t[1]) + \
+	           (s[-5] * t[2]) + \
+	           (s[-4] * t[3]) + \
+	           (s[-3] * t[4]) + \
+	           (s[-2] * t[5]) + \
+	           (s[-1] * t[6]) + \
+	           ( s[0] * t[7]) + \
+	           ( s[1] * t[8]) + \
+	           ( s[2] * t[9]) + \
+	           ( s[3] * t[10]) + \
+	           ( s[4] * t[11]) + \
+	           ( s[5] * t[12]) + \
+	           ( s[6] * t[13]) + \
+	           ( s[7] * t[14]) + \
+	           ( s[8] * t[15])) * (1.0f / scale); \
 }
+#else
+#define WINDOWED_SINC16_INTERPOLATION(s, f, scale) \
+{ \
+	const float *t = v->fSincLUT + (((uint32_t)(f) << -SINC16_FSHIFT) & SINC16_FMASK); \
+	fSample = ((s[-7] * t[0]) + \
+	           (s[-6] * t[1]) + \
+	           (s[-5] * t[2]) + \
+	           (s[-4] * t[3]) + \
+	           (s[-3] * t[4]) + \
+	           (s[-2] * t[5]) + \
+	           (s[-1] * t[6]) + \
+	           ( s[0] * t[7]) + \
+	           ( s[1] * t[8]) + \
+	           ( s[2] * t[9]) + \
+	           ( s[3] * t[10]) + \
+	           ( s[4] * t[11]) + \
+	           ( s[5] * t[12]) + \
+	           ( s[6] * t[13]) + \
+	           ( s[7] * t[14]) + \
+	           ( s[8] * t[15])) * (1.0f / scale); \
+}
+#endif
 
 #define RENDER_8BIT_SMP_S8INTRP \
 	WINDOWED_SINC8_INTERPOLATION(smpPtr, positionFrac, 128) \
@@ -314,6 +371,24 @@
 		v->volumeRampLength -= samplesToMix; \
 	}
 
+#define LIMIT_MIX_NUM_MONO_RAMP \
+	if (v->volumeRampLength == 0) \
+	{ \
+		fVolumeLDelta = 0.0f; \
+		if (v->isFadeOutVoice) \
+		{ \
+			v->active = false; /* volume ramp fadeout-voice is done, shut it down */ \
+			return; \
+		} \
+	} \
+	else \
+	{ \
+		if (samplesToMix > v->volumeRampLength) \
+			samplesToMix = v->volumeRampLength; \
+		\
+		v->volumeRampLength -= samplesToMix; \
+	}
+
 #define HANDLE_SAMPLE_END \
 	position = (int32_t)(smpPtr - base); \
 	if (position >= v->sampleEnd) \
@@ -359,3 +434,4 @@
 	{ \
 		position = (int32_t)(smpPtr - base); \
 	}
+
--- a/src/mixer/ft2_silence_mix.c
+++ b/src/mixer/ft2_silence_mix.c
@@ -1,3 +1,4 @@
+#include <assert.h>
 #include <stdint.h>
 #include "../ft2_audio.h"
 
@@ -39,6 +40,8 @@
 	{
 		if (v->loopLength >= 2)
 		{
+			// wrap as forward loop (position is inverted if sampling backwards, when needed)
+
 			const uint32_t overflow = position - v->sampleEnd;
 			const uint32_t cycles = overflow / v->loopLength;
 			const uint32_t phase = overflow % v->loopLength;
--- a/src/mixer/ft2_silence_mix.h
+++ b/src/mixer/ft2_silence_mix.h
@@ -1,6 +1,9 @@
-#pragma once
+#ifndef _ft2_silence_mix_h_
+#define _ft2_silence_mix_h_
 
 #include <stdint.h>
 #include "../ft2_audio.h"
 
 void silenceMixRoutine(voice_t *v, int32_t numSamples);
+
+#endif
--- a/src/mixer/ft2_windowed_sinc.c
+++ b/src/mixer/ft2_windowed_sinc.c
@@ -1,5 +1,8 @@
-/* The code in this file is based on code from the OpenMPT project,
-** which shares the same coding license as this project.
+/*
+** Windowed-sinc (Kaiser window) w/ low-pass interpolation LUT generator
+**
+** This was originally based on OpenMPT's source code,
+** but it has been heavily modified.
 */
 
 #include <stdint.h>
@@ -6,11 +9,10 @@
 #include <stdbool.h>
 #include <stdlib.h>
 #include <math.h>
-#include "ft2_windowed_sinc.h"
+#include "ft2_windowed_sinc.h" // SINCx_TAPS, SINCx_PHASES
+#include "../ft2_header.h" // PI
 #include "../ft2_video.h" // showErrorMsgBox()
 
-#define MY_PI 3.14159265358979323846264338327950288
-
 // globalized
 float *fKaiserSinc_8 = NULL, *fDownSample1_8 = NULL, *fDownSample2_8 = NULL;
 float *fKaiserSinc_16 = NULL, *fDownSample1_16 = NULL, *fDownSample2_16 = NULL;
@@ -38,36 +40,38 @@
 	return s;
 }
 
-static void getSinc(uint32_t numTaps, float *fLUTPtr, const double beta, const double cutoff)
+static void generateSincLUT(float *fOutput, uint32_t filterWidth, uint32_t numPhases, const double beta, const double lpCutoff)
 {
 	const double I0Beta = besselI0(beta);
-	const double kPi = MY_PI * cutoff;
-	const double xMul = 1.0 / ((numTaps / 2) * (numTaps / 2));
+	const double kPi = PI * lpCutoff;
+	const double iMul = 1.0 / numPhases;
+	const double xMul = 1.0 / ((filterWidth / 2) * (filterWidth / 2));
 
-	const uint32_t length = numTaps * SINC_PHASES;
-	const uint32_t tapBits = (uint32_t)log2(numTaps);
-	const uint32_t tapsMinus1 = numTaps - 1;
-	const int32_t midPoint = (numTaps / 2) * SINC_PHASES;
+	const uint32_t length = filterWidth * numPhases;
+	const uint32_t tapBits = (uint32_t)log2(filterWidth);
+	const uint32_t phasesBits = (uint32_t)log2(numPhases);
+	const uint32_t tapsMinus1 = filterWidth - 1;
+	const int32_t midPoint = (filterWidth / 2) * numPhases;
 
 	for (uint32_t i = 0; i < length; i++)
 	{
-		const int32_t ix = ((tapsMinus1 - (i & tapsMinus1)) << SINC_PHASES_BITS) + (i >> tapBits);
+		const int32_t ix = ((tapsMinus1 - (i & tapsMinus1)) << phasesBits) + (i >> tapBits);
 
 		double dSinc = 1.0;
 		if (ix != midPoint)
 		{
-			const double x = (ix - midPoint) * (1.0 / SINC_PHASES);
+			const double x = (ix - midPoint) * iMul;
 			const double xPi = x * kPi;
 
-			// sinc with Kaiser window
+			// Kaiser window
 			dSinc = (sin(xPi) * besselI0(beta * sqrt(1.0 - (x * x * xMul)))) / (I0Beta * xPi);
 		}
 
-		fLUTPtr[i] = (float)(dSinc * cutoff);
+		fOutput[i] = (float)(dSinc * lpCutoff);
 	}
 }
 
-static double dBToKaiserBeta(double dB)
+static double decibelsToKaiserBeta(double dB)
 {
 	if (dB < 21.0)
 		return 0.0;
@@ -77,16 +81,20 @@
 		return 0.1102 * (dB - 8.7);
 }
 
+static double rippleToDecibels(double ripple)
+{
+	return 20.0 * log10(ripple);
+}
+
 bool calcWindowedSincTables(void)
 {
-	fKaiserSinc_8  = (float *)malloc(SINC1_TAPS*SINC_PHASES * sizeof (float));
-	fDownSample1_8 = (float *)malloc(SINC1_TAPS*SINC_PHASES * sizeof (float));
-	fDownSample2_8 = (float *)malloc(SINC1_TAPS*SINC_PHASES * sizeof (float));
+	fKaiserSinc_8   = (float *)malloc(SINC1_TAPS*SINC1_PHASES * sizeof (float));
+	fDownSample1_8  = (float *)malloc(SINC1_TAPS*SINC1_PHASES * sizeof (float));
+	fDownSample2_8  = (float *)malloc(SINC1_TAPS*SINC1_PHASES * sizeof (float));
+	fKaiserSinc_16  = (float *)malloc(SINC2_TAPS*SINC2_PHASES * sizeof (float));
+	fDownSample1_16 = (float *)malloc(SINC2_TAPS*SINC2_PHASES * sizeof (float));
+	fDownSample2_16 = (float *)malloc(SINC2_TAPS*SINC2_PHASES * sizeof (float));
 
-	fKaiserSinc_16  = (float *)malloc(SINC2_TAPS*SINC_PHASES * sizeof (float));
-	fDownSample1_16 = (float *)malloc(SINC2_TAPS*SINC_PHASES * sizeof (float));
-	fDownSample2_16 = (float *)malloc(SINC2_TAPS*SINC_PHASES * sizeof (float));
-
 	if (fKaiserSinc_8  == NULL || fDownSample1_8  == NULL || fDownSample2_8  == NULL ||
 		fKaiserSinc_16 == NULL || fDownSample1_16 == NULL || fDownSample2_16 == NULL)
 	{
@@ -94,23 +102,47 @@
 		return false;
 	}
 
-	sincDownsample1Ratio = (uint64_t)(1.1875 * MIXER_FRAC_SCALE);
-	sincDownsample2Ratio = (uint64_t)(1.5    * MIXER_FRAC_SCALE);
+	// resampling ratios for picking suitable downsample LUT
+	const double ratio1 = 1.1875; // fKaiserSinc if <=
+	const double ratio2 = 1.5; // fDownSample1 if <=, fDownSample2 if >
 
-	// sidelobe attenuation (Kaiser beta)
-	const double b0 = dBToKaiserBeta(96.15645);
-	const double b1 = dBToKaiserBeta(85.83249);
-	const double b2 = dBToKaiserBeta(72.22088);
+	sincDownsample1Ratio = (uint64_t)(ratio1 * MIXER_FRAC_SCALE);
+	sincDownsample2Ratio = (uint64_t)(ratio2 * MIXER_FRAC_SCALE);
 
+	/* Max ripple (to be converted into Kaiser beta parameter)
+	**
+	** NOTE:
+	**  These may not be the correct values. Proper calculation
+	**  is needed, but is beyond my knowledge.
+	*/
+	const double maxRipple1 = 1 << 16;
+	const double maxRipple2 = 1 << 14;
+	const double maxRipple3 = 1 << 12;
+
+	// convert max ripple into sidelode attenuation (dB)
+	double db1 = rippleToDecibels(maxRipple1);
+	double db2 = rippleToDecibels(maxRipple2);
+	double db3 = rippleToDecibels(maxRipple3);
+
+	// convert sidelobe attenuation (dB) into Kaiser beta
+	const double b1 = decibelsToKaiserBeta(db1);
+	const double b2 = decibelsToKaiserBeta(db2);
+	const double b3 = decibelsToKaiserBeta(db3);
+
+	// low-pass cutoffs (could maybe use some further tweaking)
+	const double c1 = 1.000;
+	const double c2 = 0.500;
+	const double c3 = 0.425;
+
 	// 8 point
-	getSinc(SINC1_TAPS, fKaiserSinc_8,  b0, 1.0);
-	getSinc(SINC1_TAPS, fDownSample1_8, b1, 0.5);
-	getSinc(SINC1_TAPS, fDownSample2_8, b2, 0.425);
+	generateSincLUT(fKaiserSinc_8,   SINC1_TAPS, SINC1_PHASES, b1, c1);
+	generateSincLUT(fDownSample1_8,  SINC1_TAPS, SINC1_PHASES, b2, c2);
+	generateSincLUT(fDownSample2_8,  SINC1_TAPS, SINC1_PHASES, b3, c3);
 
 	// 16 point
-	getSinc(SINC2_TAPS, fKaiserSinc_16,  b0, 1.0);
-	getSinc(SINC2_TAPS, fDownSample1_16, b1, 0.5);
-	getSinc(SINC2_TAPS, fDownSample2_16, b2, 0.425);
+	generateSincLUT(fKaiserSinc_16,  SINC2_TAPS, SINC2_PHASES, b1, c1);
+	generateSincLUT(fDownSample1_16, SINC2_TAPS, SINC2_PHASES, b2, c2);
+	generateSincLUT(fDownSample2_16, SINC2_TAPS, SINC2_PHASES, b3, c3);
 
 	return true;
 }
--- a/src/mixer/ft2_windowed_sinc.h
+++ b/src/mixer/ft2_windowed_sinc.h
@@ -1,24 +1,23 @@
-#pragma once
+#ifndef _ft2_windowed_sinc_h_
+#define _ft2_windowed_sinc_h_
 
 #include <stdint.h>
 #include <stdbool.h>
 #include "ft2_mix.h" // MIXER_FRAC_BITS
 
-// 8192 is a good compromise
-#define SINC_PHASES 8192
-#define SINC_PHASES_BITS 13 // log2(SINC_PHASES)
-
-// do not change these!
-
 #define SINC1_TAPS 8
 #define SINC8_WIDTH_BITS 3 // log2(SINC1_TAPS)
-#define SINC8_FSHIFT (MIXER_FRAC_BITS-(SINC_PHASES_BITS+SINC8_WIDTH_BITS))
-#define SINC8_FMASK ((SINC1_TAPS*SINC_PHASES)-SINC1_TAPS)
+#define SINC1_PHASES 8192
+#define SINC1_PHASES_BITS 13 // log2(SINC1_PHASES)
+#define SINC8_FSHIFT (MIXER_FRAC_BITS-(SINC1_PHASES_BITS+SINC8_WIDTH_BITS))
+#define SINC8_FMASK ((SINC1_TAPS*SINC1_PHASES)-SINC1_TAPS)
 
 #define SINC2_TAPS 16
 #define SINC16_WIDTH_BITS 4 // log2(SINC2_TAPS)
-#define SINC16_FSHIFT (MIXER_FRAC_BITS-(SINC_PHASES_BITS+SINC16_WIDTH_BITS))
-#define SINC16_FMASK ((SINC2_TAPS*SINC_PHASES)-SINC2_TAPS)
+#define SINC2_PHASES 8192
+#define SINC2_PHASES_BITS 13 // log2(SINC2_PHASES)
+#define SINC16_FSHIFT (MIXER_FRAC_BITS-(SINC2_PHASES_BITS+SINC16_WIDTH_BITS))
+#define SINC16_FMASK ((SINC2_TAPS*SINC2_PHASES)-SINC2_TAPS)
 
 extern float *fKaiserSinc_8, *fDownSample1_8, *fDownSample2_8;
 extern float *fKaiserSinc_16, *fDownSample1_16, *fDownSample2_16;
@@ -28,3 +27,5 @@
 
 bool calcWindowedSincTables(void);
 void freeWindowedSincTables(void);
+
+#endif
--- a/src/modloaders/ft2_load_digi.c
+++ b/src/modloaders/ft2_load_digi.c
@@ -13,9 +13,9 @@
 #include "../ft2_tables.h"
 #include "../ft2_sysreqs.h"
 
-#ifdef _MSC_VER  // please don't mess with this struct!
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__)  // please don't mess with this struct!
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct digiHdr_t
 {
@@ -40,8 +40,8 @@
 __attribute__ ((packed))
 #endif
 digiHdr_t;
-#ifdef _MSC_VER
-#pragma pack(pop)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack off
 #endif
 
 static void readPatternNote(FILE *f, note_t *p);
--- /dev/null
+++ b/src/modloaders/ft2_load_it.c
@@ -1,0 +1,1557 @@
+/* (Lossy) Impulse Tracker module loader.
+**
+** It makes little sense to convert this format to XM, as it results
+** in severe conversion losses. The reason I wrote this loader anyway,
+** is so that you can import IT files to extract samples, pattern data
+** and so on.
+**
+** Note: Data sanitation is done in the last stage
+** of module loading, so you don't need to do that here.
+*/
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include "../ft2_header.h"
+#include "../ft2_module_loader.h"
+#include "../ft2_sample_ed.h"
+#include "../ft2_sysreqs.h"
+
+#ifdef _MSC_VER
+#pragma pack(push)
+#pragma pack(1)
+#endif
+typedef struct itHdr_t
+{
+	char ID[4], songName[26];
+	uint16_t rowHighlight, ordNum, insNum, smpNum, patNum, cwtv, cmwt, flags, special;
+	uint8_t globalVol, mixingVol, speed, BPM, panSep, pitchWheelDepth;
+	uint16_t msgLen;
+	uint32_t msgOffs, reserved;
+	uint8_t initialPans[64], initialVols[64];
+}
+#ifdef __GNUC__
+__attribute__ ((packed))
+#endif
+itHdr_t;
+
+typedef struct envNode_t
+{
+	int8_t magnitude;
+	uint16_t tick;
+}
+#ifdef __GNUC__
+__attribute__ ((packed))
+#endif
+envNode_t;
+
+typedef struct env_t
+{
+	uint8_t flags, num, loopBegin, loopEnd, sustainLoopBegin, sustainLoopEnd;
+	envNode_t nodePoints[25];
+	uint8_t reserved;
+}
+#ifdef __GNUC__
+__attribute__ ((packed))
+#endif
+env_t;
+
+typedef struct itInsHdr_t
+{
+	char ID[4], dosFilename[12+1];
+	uint8_t NNA, DCT, DCA;
+	uint16_t fadeOut;
+	uint8_t pitchPanSep, pitchPanCenter, globVol, defPan, randVol, randPan;
+	uint16_t trackerVer;
+	uint8_t numSamples, res1;
+	char instrumentName[26];
+	uint8_t filterCutoff, filterResonance, midiChn, midiProg;
+	uint16_t midiBank;
+	uint16_t smpNoteTable[120];
+	env_t volEnv, panEnv, pitchEnv;
+}
+#ifdef __GNUC__
+__attribute__ ((packed))
+#endif
+itInsHdr_t;
+
+typedef struct itOldInsHdr_t
+{
+	char ID[4], dosFilename[12+1];
+	uint8_t volEnvFlags, volEnvLoopBegin, volEnvLoopEnd, volEnvSusLoopBegin, volEnvSusLoopEnd;
+	uint16_t res1, fadeOut;
+	uint8_t NNA, DNC;
+	uint16_t trackerVer;
+	uint8_t numSamples, res2;
+	char instrumentName[26];
+	uint8_t res3[6];
+	uint16_t smpNoteTable[120];
+	uint8_t volEnv[200];
+	uint16_t volEnvPoints[25];
+}
+#ifdef __GNUC__
+__attribute__ ((packed))
+#endif
+itOldInsHdr_t;
+
+typedef struct itSmpHdr_t
+{
+	char ID[4], dosFilename[12+1];
+	uint8_t globVol, flags, vol;
+	char sampleName[26];
+	uint8_t cvt, defPan;
+	uint32_t length, loopBegin, loopEnd, c5Speed, sustainLoopBegin, sustainLoopEnd, offsetInFile;
+	uint8_t autoVibratoSpeed, autoVibratoDepth, autoVibratoRate, autoVibratoWaveform;
+}
+#ifdef __GNUC__
+__attribute__ ((packed))
+#endif
+itSmpHdr_t;
+
+#ifdef _MSC_VER
+#pragma pack(pop)
+#endif
+
+static uint8_t decompBuffer[65536];
+static uint8_t volPortaConv[9] = { 1, 4, 8, 16, 32, 64, 96, 128, 255 };
+
+static bool loadCompressed16BitSample(FILE *f, sample_t *s, bool deltaEncoded);
+static bool loadCompressed8BitSample(FILE *f, sample_t *s, bool deltaEncoded);
+static void setAutoVibrato(instr_t *ins, itSmpHdr_t *itSmp);
+static bool loadSample(FILE *f, sample_t *s, itSmpHdr_t *itSmp);
+
+bool loadIT(FILE *f, uint32_t filesize)
+{
+	uint32_t insOffs[256], smpOffs[256], patOffs[256];
+	itSmpHdr_t *itSmp, smpHdrs[256];
+	itHdr_t itHdr;
+
+	if (filesize < sizeof (itHdr))
+	{
+		loaderMsgBox("This IT module is not supported or is corrupt!");
+		goto error;
+	}
+
+	fread(&itHdr, sizeof (itHdr), 1, f);
+
+	if (itHdr.ordNum > 257 || itHdr.insNum > 256 || itHdr.smpNum > 256 || itHdr.patNum > 256)
+	{
+		loaderMsgBox("This IT module is not supported or is corrupt!");
+		goto error;
+	}
+
+	tmpLinearPeriodsFlag = !!(itHdr.flags & 8);
+
+	songTmp.pattNum = itHdr.patNum;
+	songTmp.speed = itHdr.speed;
+	songTmp.BPM = itHdr.BPM;
+
+	memcpy(songTmp.name, itHdr.songName, 20);
+	songTmp.name[20] = '\0';
+
+	bool oldFormat = (itHdr.cmwt < 0x200);
+	bool songUsesInstruments = !!(itHdr.flags & 4);
+	bool oldEffects = !!(itHdr.flags & 16);
+	bool compatGxx = !!(itHdr.flags & 32);
+
+	// read order list
+	for (int32_t i = 0; i < MAX_ORDERS; i++)
+	{
+		const uint8_t patt = (uint8_t)fgetc(f);
+		if (patt == 254) // separator ("+++"), skip it
+			continue;
+
+		if (patt == 255) // end of pattern list
+			break;
+
+		songTmp.orders[songTmp.songLength] = patt;
+
+		songTmp.songLength++;
+		if (songTmp.songLength == MAX_ORDERS-1)
+			break;
+	}
+
+	// read file pointers
+	fseek(f, sizeof (itHdr) + itHdr.ordNum, SEEK_SET);
+	fread(insOffs, 4, itHdr.insNum, f);
+	fread(smpOffs, 4, itHdr.smpNum, f);
+	fread(patOffs, 4, itHdr.patNum, f);
+
+	for (int32_t i = 0; i < itHdr.smpNum; i++)
+	{
+		fseek(f, smpOffs[i], SEEK_SET);
+		fread(&smpHdrs[i], sizeof (itSmpHdr_t), 1, f);
+	}
+
+	if (!songUsesInstruments) // read samples (as instruments)
+	{
+		int32_t numIns = MIN(itHdr.smpNum, MAX_INST);
+
+		itSmp = smpHdrs;
+		for (int16_t i = 0; i < numIns; i++, itSmp++)
+		{
+			if (!allocateTmpInstr(1 + i))
+			{
+				loaderMsgBox("Not enough memory!");
+				return false;
+			}
+
+			instr_t *ins = instrTmp[1+i];
+			sample_t *s = &ins->smp[0];
+
+			memcpy(songTmp.instrName[1+i], itSmp->sampleName, 22);
+			songTmp.instrName[1+i][22] = '\0';
+
+			ins->numSamples = (itSmp->length > 0) ? 1 : 0;
+			if (ins->numSamples > 0)
+			{
+				setAutoVibrato(ins, itSmp);
+
+				if (!loadSample(f, s, itSmp))
+				{
+					loaderMsgBox("Not enough memory!");
+					goto error;
+				}
+			}
+		}
+	}
+	else if (oldFormat) // read instruments (old format version)
+	{
+		itOldInsHdr_t itIns;
+
+		int32_t numIns = MIN(itHdr.insNum, MAX_INST);
+		for (int16_t i = 0; i < numIns; i++)
+		{
+			fseek(f, insOffs[i], SEEK_SET);
+			fread(&itIns, sizeof (itIns), 1, f);
+
+			if (!allocateTmpInstr(1 + i))
+			{
+				loaderMsgBox("Not enough memory!");
+				return false;
+			}
+
+			instr_t *ins = instrTmp[1+i];
+
+			memcpy(songTmp.instrName[1+i], itIns.instrumentName, 22);
+			songTmp.instrName[1+i][22] = '\0';
+
+			ins->fadeout = itIns.fadeOut * 64; // 0..64 -> 0..4096
+			if (ins->fadeout > 4095)
+				ins->fadeout = 4095;
+
+			// find out what samples to load into this XM instrument header
+
+			int16_t numSamples = 0;
+			uint8_t sampleList[MAX_SMP_PER_INST];
+
+			bool sampleAdded[256];
+			memset(sampleList, 0, sizeof (sampleList));
+			memset(sampleAdded, 0, sizeof (sampleAdded));
+
+			for (int32_t j = 0; j < 96; j++)
+			{
+				uint8_t sample = itIns.smpNoteTable[12+j] >> 8;
+				if (sample > 0 && !sampleAdded[sample-1] && numSamples < MAX_SMP_PER_INST)
+				{
+					sampleAdded[sample-1] = true;
+					sampleList[numSamples] = sample-1;
+					numSamples++;
+				}
+			}
+
+			/* If instrument only has one sample, copy over the sample's
+			** auto-vibrato parameters to this instrument.
+			*/
+			bool singleSample = true;
+			if (numSamples > 1)
+			{
+				uint8_t firstSample = sampleList[0];
+				for (int32_t j = 1; j < numSamples; j++)
+				{
+					if (sampleList[j] != firstSample)
+					{
+						singleSample = false;
+						break;
+					}
+				}
+			}
+
+			if (singleSample)
+				setAutoVibrato(ins, &smpHdrs[sampleList[0]]);
+
+			// create new note-to-sample table
+			for (int32_t j = 0; j < 8*12; j++)
+			{
+				uint8_t inSmp = itIns.smpNoteTable[(1 * 12) + j] >> 8;
+
+				uint8_t outSmp = 0;
+				if (inSmp > 0)
+				{
+					inSmp--;
+					for (; outSmp < numSamples; outSmp++)
+					{
+						if (inSmp == sampleList[outSmp])
+							break;
+					}
+
+					if (outSmp >= numSamples)
+						outSmp = 0;
+				}
+
+				ins->note2SampleLUT[j] = outSmp;
+			}
+
+			// load volume envelope
+			if (itIns.volEnvFlags & 1)
+			{
+				bool volEnvLoopOn = !!(itIns.volEnvFlags & 2);
+				bool volEnvSusOn = !!(itIns.volEnvFlags & 4);
+
+				ins->volEnvFlags |= ENV_ENABLED;
+				if (volEnvLoopOn) ins->volEnvFlags |= ENV_LOOP;
+				if (volEnvSusOn) ins->volEnvFlags |= ENV_SUSTAIN;
+				
+				ins->volEnvLoopStart = MIN(itIns.volEnvLoopBegin, 11);
+				ins->volEnvLoopEnd = MIN(itIns.volEnvLoopEnd, 11);
+				ins->volEnvSustain = MIN(itIns.volEnvSusLoopEnd, 11);
+
+				// hack: if sus loop only, set as normal loop + set sustain point
+				if (!volEnvLoopOn && volEnvSusOn)
+				{
+					ins->volEnvLoopStart = MIN(itIns.volEnvSusLoopBegin, 11);
+					ins->volEnvLoopEnd = MIN(itIns.volEnvSusLoopEnd, 11);
+					ins->volEnvSustain = MIN(itIns.volEnvSusLoopEnd, 11);
+					ins->volEnvFlags |= ENV_LOOP + ENV_SUSTAIN;
+				}
+
+				int32_t j = 0;
+				for (; j < 12; j++)
+				{
+					if (itIns.volEnvPoints[j] >> 8 == 0xFF)
+						break; // end of volume envelope
+
+					ins->volEnvPoints[j][0] = itIns.volEnvPoints[j] & 0xFF;
+					ins->volEnvPoints[j][1] = itIns.volEnvPoints[j] >> 8;
+				}
+				ins->volEnvLength = (uint8_t)j;
+
+				// increase loop end point tick by one to better match IT style env looping
+				if (ins->volEnvFlags & ENV_LOOP)
+					ins->volEnvPoints[ins->volEnvLoopEnd][0]++;
+			}
+
+			ins->numSamples = numSamples;
+			if (ins->numSamples > 0)
+			{
+				sample_t *s = ins->smp;
+				for (int32_t j = 0; j < ins->numSamples; j++, s++)
+				{
+					if (!loadSample(f, s, &smpHdrs[sampleList[j]]))
+					{
+						loaderMsgBox("Not enough memory!");
+						goto error;
+					}
+				}
+			}
+		}
+	}
+	else // read instruments (later format version)
+	{
+		itInsHdr_t itIns;
+
+		int32_t numIns = MIN(itHdr.insNum, MAX_INST);
+		for (int16_t i = 0; i < numIns; i++)
+		{
+			fseek(f, insOffs[i], SEEK_SET);
+			fread(&itIns, sizeof (itIns), 1, f);
+
+			if (!allocateTmpInstr(1 + i))
+			{
+				loaderMsgBox("Not enough memory!");
+				return false;
+			}
+
+			instr_t *ins = instrTmp[1+i];
+
+			memcpy(songTmp.instrName[1+i], itIns.instrumentName, 22);
+			songTmp.instrName[1+i][22] = '\0';
+
+			ins->fadeout = itIns.fadeOut * 32; // 0..128 -> 0..4096
+			if (ins->fadeout > 4095)
+				ins->fadeout = 4095;
+
+			// find out what samples to load into this XM instrument header
+
+			int16_t numSamples = 0;
+			uint8_t sampleList[MAX_SMP_PER_INST];
+
+			bool sampleAdded[256];
+			memset(sampleList, 0, sizeof (sampleList));
+			memset(sampleAdded, 0, sizeof (sampleAdded));
+
+			for (int32_t j = 0; j < 96; j++)
+			{
+				uint8_t sample = itIns.smpNoteTable[12+j] >> 8;
+				if (sample > 0 && !sampleAdded[sample-1] && numSamples < MAX_SMP_PER_INST)
+				{
+					sampleAdded[sample-1] = true;
+					sampleList[numSamples] = sample-1;
+					numSamples++;
+				}
+			}
+
+			/* If instrument only has one sample, copy over the sample's
+			** auto-vibrato parameters to this instrument.
+			*/
+			bool singleSample = true;
+			if (numSamples > 1)
+			{
+				uint8_t firstSample = sampleList[0];
+				for (int32_t j = 1; j < numSamples; j++)
+				{
+					if (sampleList[j] != firstSample)
+					{
+						singleSample = false;
+						break;
+					}
+				}
+			}
+
+			if (singleSample)
+				setAutoVibrato(ins, &smpHdrs[sampleList[0]]);
+
+			// create new note-to-sample table
+			for (int32_t j = 0; j < 8*12; j++)
+			{
+				uint8_t inSmp = itIns.smpNoteTable[(1 * 12) + j] >> 8;
+
+				uint8_t outSmp = 0;
+				if (inSmp > 0)
+				{
+					inSmp--;
+					for (; outSmp < numSamples; outSmp++)
+					{
+						if (inSmp == sampleList[outSmp])
+							break;
+					}
+
+					if (outSmp >= numSamples)
+						outSmp = 0;
+				}
+
+				ins->note2SampleLUT[j] = outSmp;
+			}
+
+			// load volume envelope
+			env_t *volEnv = &itIns.volEnv;
+			bool volEnvEnabled = !!(volEnv->flags & 1);
+			if (volEnvEnabled && volEnv->num > 0)
+			{
+				bool volEnvLoopOn = !!(volEnv->flags & 2);
+				bool volEnvSusOn = !!(volEnv->flags & 4);
+
+				ins->volEnvFlags |= ENV_ENABLED;
+				if (volEnvLoopOn) ins->volEnvFlags |= ENV_LOOP;
+				if (volEnvSusOn) ins->volEnvFlags |= ENV_SUSTAIN;
+				
+				ins->volEnvLength = MIN(volEnv->num, 12);
+				ins->volEnvLoopStart = MIN(volEnv->loopBegin, 11);
+				ins->volEnvLoopEnd = MIN(volEnv->loopEnd, 11);
+				ins->volEnvSustain = MIN(volEnv->sustainLoopEnd, 11);
+
+				// hack: if sus loop only, set as normal loop + set sustain point
+				if (!volEnvLoopOn && volEnvSusOn)
+				{
+					ins->volEnvLoopStart = MIN(volEnv->sustainLoopBegin, 11);
+					ins->volEnvLoopEnd = MIN(volEnv->sustainLoopEnd, 11);
+					ins->volEnvSustain = MIN(volEnv->sustainLoopEnd, 11);
+					ins->volEnvFlags |= ENV_LOOP + ENV_SUSTAIN;
+				}
+
+				for (int32_t j = 0; j < ins->volEnvLength; j++)
+				{
+					ins->volEnvPoints[j][0] = volEnv->nodePoints[j].tick;
+					ins->volEnvPoints[j][1] = volEnv->nodePoints[j].magnitude;
+				}
+
+				// increase loop end point tick by one to better match IT style env looping
+				if (ins->volEnvFlags & ENV_LOOP)
+					ins->volEnvPoints[ins->volEnvLoopEnd][0]++;
+			}
+
+			// load pan envelope
+			env_t *panEnv = &itIns.panEnv;
+			bool panEnvEnabled = !!(panEnv->flags & 1);
+			if (panEnvEnabled && panEnv->num > 0)
+			{
+				bool panEnvLoopOn = !!(panEnv->flags & 2);
+				bool panEnvSusOn = !!(panEnv->flags & 4);
+
+				ins->panEnvFlags |= ENV_ENABLED;
+				if (panEnvLoopOn) ins->panEnvFlags |= ENV_LOOP;
+				if (panEnvSusOn) ins->panEnvFlags |= ENV_SUSTAIN;
+				
+				ins->panEnvLength = MIN(panEnv->num, 12);
+				ins->panEnvLoopStart = MIN(panEnv->loopBegin, 11);
+				ins->panEnvLoopEnd = MIN(panEnv->loopEnd, 11);
+				ins->panEnvSustain = MIN(panEnv->sustainLoopEnd, 11);
+
+				// hack: if sus loop only, set as normal loop + set sustain point
+				if (!panEnvLoopOn && panEnvSusOn)
+				{
+					ins->panEnvLoopStart = MIN(panEnv->sustainLoopBegin, 11);
+					ins->panEnvLoopEnd = MIN(panEnv->sustainLoopEnd, 11);
+					ins->panEnvSustain = MIN(panEnv->sustainLoopEnd, 11);
+					ins->panEnvFlags |= ENV_LOOP + ENV_SUSTAIN;
+				}
+
+				for (int32_t j = 0; j < ins->panEnvLength; j++)
+				{
+					ins->panEnvPoints[j][0] = panEnv->nodePoints[j].tick;
+					ins->panEnvPoints[j][1] = panEnv->nodePoints[j].magnitude + 32;
+				}
+
+				// increase loop end point tick by one to better match IT style env looping
+				if (ins->panEnvFlags & ENV_LOOP)
+					ins->panEnvPoints[ins->panEnvLoopEnd][0] = panEnv->nodePoints[ins->panEnvLoopEnd].tick + 1;
+			}
+
+			ins->numSamples = numSamples;
+			if (ins->numSamples > 0)
+			{
+				sample_t *s = ins->smp;
+				for (int32_t j = 0; j < ins->numSamples; j++, s++)
+				{
+					if (!loadSample(f, s, &smpHdrs[sampleList[j]]))
+					{
+						loaderMsgBox("Not enough memory!");
+						goto error;
+					}
+				}
+			}
+		}
+	}
+
+	// load pattern data
+
+	uint32_t numChannels = 0;
+	for (int32_t i = 0; i < songTmp.pattNum; i++)
+	{
+		if (patOffs[i] == 0)
+			continue;
+	
+		fseek(f, patOffs[i], SEEK_SET);
+
+		uint16_t length, numRows;
+		fread(&length, 2, 1, f);
+		fread(&numRows, 2, 1, f);
+		fseek(f, 4, SEEK_CUR);
+
+		numRows = MIN(numRows, MAX_PATT_LEN);
+		if (numRows == 0)
+			continue;
+
+		if (!allocateTmpPatt(i, numRows))
+		{
+			loaderMsgBox("Not enough memory!");
+			goto error;
+		}
+
+		uint8_t lastMask[64];
+		memset(lastMask, 0, sizeof (lastMask));
+
+		note_t lastNote[64];
+		memset(lastNote, 0, sizeof (lastNote));
+
+		note_t *patt = patternTmp[i];
+
+		int32_t bytesRead = 0;
+		int32_t row = 0;
+		while (bytesRead < length && row < numRows)
+		{
+			uint8_t byte = (uint8_t)fgetc(f);
+			bytesRead++;
+
+			if (byte == 0)
+			{
+				row++;
+				continue;
+			}
+
+			const uint8_t ch = (byte - 1) & 63;
+			if (ch > numChannels)
+				numChannels = ch;
+
+			note_t emptyNote;
+			note_t *p = (ch >= MAX_CHANNELS) ? &emptyNote : &patt[(row * MAX_CHANNELS) + ch];
+
+			if (byte & 128)
+			{
+				lastMask[ch] = (uint8_t)fgetc(f);
+				bytesRead++;
+			}
+
+			if (lastMask[ch] & 16)
+				p->note = lastNote[ch].note;
+
+			if (lastMask[ch] & 32)
+				p->instr = lastNote[ch].instr;
+
+			if (lastMask[ch] & 64)
+				p->vol = lastNote[ch].vol;
+
+			if (lastMask[ch] & 128)
+			{
+				p->efx = lastNote[ch].efx;
+				p->efxData = lastNote[ch].efxData;
+			}
+
+			if (lastMask[ch] & 1)
+			{
+				uint8_t note = (uint8_t)fgetc(f);
+				bytesRead++;
+
+				if (note < 120)
+				{
+					note++;
+					if (note < 12 || note >= 96+12)
+						note = 0;
+					else
+						note -= 12;
+				}
+				else if (note != 254)
+				{
+					note = NOTE_OFF;
+				}
+
+				if (note > NOTE_OFF && note != 254)
+					note = 0; // remove note
+
+				// 254 (note cut) is handled later!
+
+				p->note = lastNote[ch].note = note;
+			}
+
+			if (lastMask[ch] & 2)
+			{
+				uint8_t ins = (uint8_t)fgetc(f);
+				bytesRead++;
+
+				if (ins > MAX_INST)
+					ins = 0;
+
+				p->instr = lastNote[ch].instr = ins;
+			}
+
+			if (lastMask[ch] & 4)
+			{
+				p->vol = lastNote[ch].vol = 1 + (uint8_t)fgetc(f);
+				bytesRead++;
+			}
+
+			if (lastMask[ch] & 8)
+			{
+				p->efx = lastNote[ch].efx = (uint8_t)fgetc(f);
+				bytesRead++;;
+
+				p->efxData = lastNote[ch].efxData = (uint8_t)fgetc(f);
+				bytesRead++;
+			}
+		}
+	}
+	numChannels++;
+
+	songTmp.numChannels = MIN((numChannels + 1) & ~1, MAX_CHANNELS);
+
+	// convert pattern data
+
+	uint8_t lastInstr[MAX_CHANNELS], lastGInstr[MAX_CHANNELS];
+	uint8_t lastDxy[MAX_CHANNELS], lastExy[MAX_CHANNELS], lastFxy[MAX_CHANNELS];
+	uint8_t lastJxy[MAX_CHANNELS], lastKxy[MAX_CHANNELS], lastLxy[MAX_CHANNELS];
+	uint8_t lastOxx[MAX_CHANNELS];
+
+	memset(lastInstr, 0, sizeof (lastInstr));
+	memset(lastGInstr, 0, sizeof (lastGInstr));
+	memset(lastDxy, 0, sizeof (lastDxy));
+	memset(lastExy, 0, sizeof (lastExy));
+	memset(lastFxy, 0, sizeof (lastFxy));
+	memset(lastJxy, 0, sizeof (lastJxy));
+	memset(lastKxy, 0, sizeof (lastKxy));
+	memset(lastLxy, 0, sizeof (lastLxy));
+	memset(lastOxx, 0, sizeof (lastOxx));
+
+	for (int32_t i = 0; i < songTmp.pattNum; i++)
+	{
+		note_t *p = patternTmp[i];
+		if (p == NULL)
+			continue;
+
+		for (int32_t j = 0; j < patternNumRowsTmp[i]; j++)
+		{
+			for (int32_t ch = 0; ch < songTmp.numChannels; ch++, p++)
+			{
+				if (p->instr > 0)
+					lastInstr[ch] = p->instr;
+
+				// effect
+				if (p->efx != 0)
+				{
+					const uint8_t itEfx = 'A' + (p->efx - 1);
+					switch (itEfx)
+					{
+						case 'A': // set speed
+						{
+							if (p->efxData == 0) // A00 is ignored in IT
+							{
+								p->efx = p->efxData = 0;
+							}
+							else
+							{
+								p->efx = 0xF;
+								if (p->efxData > 31)
+									p->efxData = 31;
+							}
+						}
+						break;
+
+						case 'B': p->efx = 0xB; break; // position jump
+						case 'C': p->efx = 0xD; break; // pattern break
+
+						case 'D': // volume slide
+						{
+							if (p->efxData == 0)
+							{
+								bool lastWasFineSlide = (lastDxy[ch] & 0x0F) == 0x0F || (lastDxy[ch] >> 4) == 0x0F;
+								if (lastWasFineSlide)
+									p->efxData = lastDxy[ch];
+							}
+							else
+							{
+								lastDxy[ch] = p->efxData;
+							}
+
+							if ((p->efxData & 0x0F) == 0x0F && (p->efxData >> 4) > 0)
+							{
+								p->efx = 0xE;
+								p->efxData = 0xA0 + (p->efxData >> 4);
+							}
+							else if ((p->efxData >> 4) == 0x0F && (p->efxData & 0x0F) > 0)
+							{
+								p->efx = 0xE;
+								p->efxData = 0xB0 + (p->efxData & 0x0F);
+							}
+							else
+							{
+								p->efx = 0xA;
+							}
+						}
+						break;
+
+						case 'E': // portamento down
+						{
+							if (p->efxData == 0)
+							{
+								bool lastWasFineSlide = (lastExy[ch] & 0x0F) == 0x0F || (lastExy[ch] >> 4) == 0x0F;
+								bool lastWasExtraFineSlide = (lastExy[ch] & 0x0F) == 0x0E || (lastExy[ch] >> 4) == 0x0E;
+
+								if (lastWasFineSlide || lastWasExtraFineSlide)
+									p->efxData = lastExy[ch];
+							}
+							else
+							{
+								lastExy[ch] = p->efxData;
+							}
+
+							if (p->efxData < 224)
+							{
+								p->efx = 0x2;
+							}
+							else if ((p->efxData >> 4) == 0x0E)
+							{
+								p->efx = 16 + ('X' - 'G');
+								p->efxData = 0x20 + (p->efxData & 0x0F);
+							}
+							else if ((p->efxData >> 4) == 0x0F)
+							{
+								p->efx = 0xE;
+								p->efxData = 0x20 + (p->efxData & 0x0F);
+							}
+						}
+						break;
+
+						case 'F': // portamento up
+						{
+							if (p->efxData == 0)
+							{
+								bool lastWasFineSlide = (lastFxy[ch] & 0x0F) == 0x0F || (lastFxy[ch] >> 4) == 0x0F;
+								bool lastWasExtraFineSlide = (lastFxy[ch] & 0x0F) == 0x0E || (lastFxy[ch] >> 4) == 0x0E;
+
+								if (lastWasFineSlide || lastWasExtraFineSlide)
+									p->efxData = lastFxy[ch];
+							}
+							else
+							{
+								lastFxy[ch] = p->efxData;
+							}
+
+							if (p->efxData < 224)
+							{
+								p->efx = 0x1;
+							}
+							else if ((p->efxData >> 4) == 0x0E)
+							{
+								p->efx = 16 + ('X' - 'G');
+								p->efxData = 0x10 + (p->efxData & 0x0F);
+							}
+							else if ((p->efxData >> 4) == 0x0F)
+							{
+								p->efx = 0xE;
+								p->efxData = 0x10 + (p->efxData & 0x0F);
+							}
+						}
+						break;
+
+						case 'G': // tone portamento
+						{
+							p->efx = 3;
+
+							// remove illegal slides (this is not quite right, but good enough)
+							if (!compatGxx && p->instr != 0 && p->instr != lastGInstr[ch])
+								p->efx = p->efxData = 0;
+						}
+						break;
+
+						case 'H': // vibrato
+						{
+							p->efx = 4;
+							if (!oldEffects && p->efxData > 0)
+								p->efxData = (p->efxData & 0xF0) | ((p->efxData & 0x0F) >> 1);
+						}
+						break;
+
+						case 'I': // tremor
+						{
+							p->efx = 16 + ('T' - 'G');
+
+							int8_t onTime = p->efxData >> 4;
+							if (onTime > 0) // closer to IT2 (but still off)
+								onTime--;
+
+							int8_t offTime = p->efxData & 0x0F;
+							if (offTime > 0) // ---
+								offTime--;
+
+							p->efxData = (onTime << 4) | offTime;
+						}
+						break;
+
+						case 'J': // arpeggio
+						{
+							p->efx = 0;
+
+							if (p->efxData != 0)
+								p->efxData = lastJxy[ch] = (p->efxData >> 4) | (p->efxData << 4); // swap order (FT2 = reversed)
+							else
+								p->efxData = lastJxy[ch];
+						}
+						break;
+
+						case 'K': // volume slide + vibrato
+						{
+							if (p->efxData == 0)
+							{
+								bool lastWasFineSlide = (lastKxy[ch] & 0x0F) == 0x0F || (lastKxy[ch] >> 4) == 0x0F;
+								if (lastWasFineSlide)
+									p->efxData = lastKxy[ch];
+							}
+							else
+							{
+								lastKxy[ch] = p->efxData;
+							}
+
+							if ((p->efxData & 0x0F) == 0x0F && (p->efxData >> 4) > 0)
+							{
+								if (p->vol == 0)
+									p->vol = 1+203; // IT2 vibrato of param 0 (to be converted)
+
+								p->efx = 0xE;
+								p->efxData = 0xA0 + (p->efxData >> 4);
+							}
+							else if ((p->efxData >> 4) == 0x0F && (p->efxData & 0x0F) > 0)
+							{
+								if (p->vol == 0)
+									p->vol = 1+203; // IT2 vibrato of param 0 (to be converted)
+
+								p->efx = 0xE;
+								p->efxData = 0xB0 + (p->efxData & 0x0F);
+							}
+							else
+							{
+								p->efx = 0x6;
+							}
+						}
+						break;
+
+						case 'L': // volume slide + tone portamento
+						{
+							if (p->efxData == 0)
+							{
+								bool lastWasFineSlide = (lastLxy[ch] & 0x0F) == 0x0F || (lastLxy[ch] >> 4) == 0x0F;
+								if (lastWasFineSlide)
+									p->efxData = lastLxy[ch];
+							}
+							else
+							{
+								lastLxy[ch] = p->efxData;
+							}
+
+							if ((p->efxData & 0x0F) == 0x0F && (p->efxData >> 4) > 0)
+							{
+								if (p->vol == 0)
+									p->vol = 1+193; // IT2 tone portamento of param 0 (to be converted)
+
+								p->efx = 0xE;
+								p->efxData = 0xA0 + (p->efxData >> 4);
+							}
+							else if ((p->efxData >> 4) == 0x0F && (p->efxData & 0x0F) > 0)
+							{
+								if (p->vol == 0)
+									p->vol = 1+193; // IT2 tone portamento of param 0 (to be converted)
+
+								p->efx = 0xE;
+								p->efxData = 0xB0 + (p->efxData & 0x0F);
+							}
+							else
+							{
+								p->efx = 0x5;
+							}
+						}
+						break;
+
+						case 'O': // set sample offset
+						{
+							p->efx = 0x9;
+
+							if (p->efxData > 0)
+								lastOxx[ch] = p->efxData;
+
+							// handle cases where the sample offset is after the end of the sample
+							if (lastInstr[ch] > 0 && lastOxx[ch] > 0 && p->note > 0 && p->note <= 96)
+							{
+								instr_t *ins = instrTmp[lastInstr[ch]];
+								if (ins != NULL)
+								{
+									const uint8_t sample = ins->note2SampleLUT[p->note-1];
+									if (sample < MAX_SMP_PER_INST)
+									{
+										sample_t *s = &ins->smp[sample];
+										if (s->length > 0)
+										{
+											const bool loopEnabled = (GET_LOOPTYPE(s->flags) != LOOP_DISABLED);
+											const uint32_t sampleEnd = loopEnabled ? s->loopStart+s->loopLength : s->length;
+
+											if (lastOxx[ch]*256UL >= sampleEnd)
+											{
+												if (oldEffects)
+												{
+													if (loopEnabled)
+														p->efxData = (uint8_t)(sampleEnd >> 8);
+												}
+												else
+												{
+													p->efx = p->efxData = 0;
+												}
+											}
+										}
+									}
+								}
+							}
+						}
+						break;
+
+						case 'P': // panning slide
+						{
+							p->efx = 16 + ('P' - 'G');
+
+							if ((p->efxData >> 4) == 0)
+							{
+								uint8_t param = (((p->efxData & 0x0F) * 255) + 32) / 64;
+								if (param > 15)
+									param = 15;
+
+								p->efxData = param << 4;
+							}
+							else if ((p->efxData & 0x0F) == 0)
+							{
+								uint8_t param = (((p->efxData >> 4) * 255) + 32) / 64;
+								if (param > 15)
+									param = 15;
+
+								p->efxData = param;
+							}
+						}
+						break;
+
+						case 'Q': // note retrigger
+						{
+							p->efx = 16 + ('R' - 'G');
+
+							if ((p->efxData & 0xF0) == 0x00)
+								p->efxData |= 0x80;
+						}
+						break;
+
+						case 'R': // tremolo
+						{
+							p->efx = 7;
+							p->efxData = (p->efxData & 0xF0) | ((p->efxData & 0x0F) >> 1);
+						}
+						break;
+
+						case 'S': // special effects
+						{
+							switch (p->efxData >> 4)
+							{
+								case 0x1: p->efx = 0xE3; break; // set glissando control
+
+								case 0x3: // set vibrato waveform
+								{
+									if ((p->efxData & 0x0F) > 2)
+										p->efx = p->efxData = 0;
+									else
+										p->efx = 0xE4;
+								}
+								break;
+
+								case 0x4: // set tremolo waveform
+								{
+									if ((p->efxData & 0x0F) > 2)
+										p->efx = p->efxData = 0;
+									else
+										p->efx = 0xE7;
+								}
+								break;
+
+								case 0x8:
+									p->efx = 0x08;
+									p->efxData = (p->efxData << 4) | (p->efxData & 0x0F);
+								break;
+
+								case 0xB: p->efx = 0xE6; break; // pattern loop
+								case 0xC: p->efx = 0xEC; break; // note cut
+								case 0xD: p->efx = 0xED; break; // note delay
+								case 0xE: p->efx = 0xEE; break; // pattern delay
+
+								default:
+									p->efx = p->efxData = 0;
+								break;
+							}
+						}
+						break;
+
+						case 'T': // set tempo (BPM)
+						{
+							p->efx = 0xF;
+							if (p->efxData < 32)
+								p->efx = p->efxData = 0; // tempo slide is not supported
+						}
+						break;
+
+						case 'V': // set global volume
+						{
+							p->efx = 16 + ('G' - 'G');
+							p->efxData >>= 1; // IT2 g.vol. ranges 0..128, FT2 g.vol. ranges 0..64
+
+							if (p->efxData > 64)
+								p->efxData = 64;
+						}
+						break;
+
+						case 'W': // global volume slide
+						{
+							p->efx = 16 + ('H' - 'G');
+
+							// IT2 g.vol. ranges 0..128, FT2 g.vol. ranges 0..64
+							if (p->efxData >> 4 == 0)
+							{
+								uint8_t param = p->efxData & 0x0F;
+								if (param > 1)
+									p->efxData = param >> 1;
+							}
+							else if ((p->efxData & 0x0F) == 0)
+							{
+								uint8_t param = p->efxData >> 4;
+								if (param > 1)
+									p->efxData = (param >> 1) << 4;
+							}
+						}
+						break;
+
+						case 'X': p->efx = 8; break; // set 8-bit panning
+
+						default:
+							p->efx = p->efxData = 0;
+						break;
+					}
+				}
+				else
+				{
+					p->efxData = 0;
+				}
+
+				if (p->instr != 0 && p->efx != 0x3)
+					lastGInstr[ch] = p->instr;
+
+				// volume column
+				if (p->vol > 0)
+				{
+					p->vol--;
+					if (p->vol <= 64) // set volume
+					{
+						p->vol += 0x10;
+					}
+					else if (p->vol <= 74) // fine volume slide up
+					{
+						p->vol = 0x90 + (p->vol - 65);
+					}
+					else if (p->vol <= 84) // fine volume slide down
+					{
+						p->vol = 0x80 + (p->vol - 75);
+					}
+					else if (p->vol <= 94) // volume slide up
+					{
+						p->vol = 0x70 + (p->vol - 85);
+					}
+					else if (p->vol <= 104) // volume slide down
+					{
+						p->vol = 0x60 + (p->vol - 95);
+					}
+					else if (p->vol <= 114) // pitch slide down
+					{
+						uint8_t param = p->vol - 105;
+						p->vol = 0;
+
+						if (p->efx == 0 && p->efxData == 0)
+						{
+							p->efx = 2;
+							p->efxData = param * 4;
+						}
+					}
+					else if (p->vol <= 124) // pitch slide up
+					{
+						uint8_t param = p->vol - 115;
+						p->vol = 0;
+
+						if (p->efx == 0 && p->efxData == 0)
+						{
+							p->efx = 1;
+							p->efxData = param * 4;
+						}
+					}
+					else if (p->vol <= 192) // set panning
+					{
+						p->vol = 0xC0 + (((p->vol - 128) * 15) / 64);
+					}
+					else if (p->vol >= 193 && p->vol <= 202) // portamento
+					{
+						uint8_t param = p->vol - 193;
+					
+						if (p->efx == 0 && p->efxData == 0)
+						{
+							p->vol = 0;
+
+							p->efx = 3;
+							p->efxData = (param == 0) ? 0 : volPortaConv[param-1];
+						}
+						else
+						{
+							p->vol = 0xF0 + param;
+						}
+					}
+					else if (p->vol <= 212) // vibrato
+					{
+						p->vol = 0xB0 + (p->vol - 203);
+					}
+				}
+
+				// note
+				if (p->note == 254) // note cut
+				{
+					p->note = 0;
+					if (p->efx == 0 && p->efxData == 0)
+					{
+						// EC0 (instant note cut)
+						p->efx = 0xE;
+						p->efxData = 0xC0;
+					}
+					else if (p->vol == 0)
+					{
+						// volume command vol 0
+						p->vol = 0x10;
+					}
+				}
+			}
+
+			p += MAX_CHANNELS - songTmp.numChannels;
+		}
+	}
+
+	// removing this message is considered a criminal act!!!
+	loaderMsgBox("Loading of this format has severe issues. Don't use this for listening to .ITs!");
+
+	return true;
+
+error:
+	return false;
+}
+
+static void decompress16BitData(int16_t *dst, const uint8_t *src, uint32_t blockLength)
+{
+	uint8_t byte8, bitDepth, bitDepthInv, bitsRead;
+	uint16_t bytes16, lastVal;
+	uint32_t bytes32;
+
+	lastVal = 0;
+	bitDepth = 17;
+	bitDepthInv = bitsRead = 0;
+
+	blockLength >>= 1;
+	while (blockLength != 0)
+	{
+		bytes32 = (*(uint32_t *)src) >> bitsRead;
+
+		bitsRead += bitDepth;
+		src += bitsRead >> 3;
+		bitsRead &= 7;
+
+		if (bitDepth <= 6)
+		{
+			bytes32 <<= bitDepthInv & 0x1F;
+
+			bytes16 = (uint16_t)bytes32;
+			if (bytes16 != 0x8000)
+			{
+				lastVal += (int16_t)bytes16 >> (bitDepthInv & 0x1F); // arithmetic shift
+				*dst++ = lastVal;
+				blockLength--;
+			}
+			else
+			{
+				byte8 = ((bytes32 >> 16) & 0xF) + 1;
+				if (byte8 >= bitDepth)
+					byte8++;
+				bitDepth = byte8;
+
+				bitDepthInv = 16;
+				if (bitDepthInv < bitDepth)
+					bitDepthInv++;
+				bitDepthInv -= bitDepth;
+
+				bitsRead += 4;
+			}
+
+			continue;
+		}
+
+		bytes16 = (uint16_t)bytes32;
+
+		if (bitDepth <= 16)
+		{
+			uint16_t tmp16 = 0xFFFF >> (bitDepthInv & 0x1F);
+			bytes16 &= tmp16;
+			tmp16 = (tmp16 >> 1) - 8;
+
+			if (bytes16 > tmp16+16 || bytes16 <= tmp16)
+			{
+				bytes16 <<= bitDepthInv & 0x1F;
+				bytes16 = (int16_t)bytes16 >> (bitDepthInv & 0x1F); // arithmetic shift
+				lastVal += bytes16;
+				*dst++ = lastVal;
+				blockLength--;
+				continue;
+			}
+
+			byte8 = (uint8_t)(bytes16 - tmp16);
+			if (byte8 >= bitDepth)
+				byte8++;
+			bitDepth = byte8;
+
+			bitDepthInv = 16;
+			if (bitDepthInv < bitDepth)
+				bitDepthInv++;
+			bitDepthInv -= bitDepth;
+			continue;
+		}
+
+		if (bytes32 & 0x10000)
+		{
+			bitDepth = (uint8_t)(bytes16 + 1);
+			bitDepthInv = 16 - bitDepth;
+		}
+		else
+		{
+			lastVal += bytes16;
+			*dst++ = lastVal;
+			blockLength--;
+		}
+	}
+}
+
+static void decompress8BitData(int8_t *dst, const uint8_t *src, uint32_t blockLength)
+{
+	uint8_t lastVal, byte8, bitDepth, bitDepthInv, bitsRead;
+	uint16_t bytes16;
+
+	lastVal = 0;
+	bitDepth = 9;
+	bitDepthInv = bitsRead = 0;
+
+	while (blockLength != 0)
+	{
+		bytes16 = (*(uint16_t *)src) >> bitsRead;
+
+		bitsRead += bitDepth;
+		src += (bitsRead >> 3);
+		bitsRead &= 7;
+
+		byte8 = bytes16 & 0xFF;
+
+		if (bitDepth <= 6)
+		{
+			bytes16 <<= (bitDepthInv & 0x1F);
+			byte8 = bytes16 & 0xFF;
+
+			if (byte8 != 0x80)
+			{
+				lastVal += (int8_t)byte8 >> (bitDepthInv & 0x1F); // arithmetic shift
+				*dst++ = lastVal;
+				blockLength--;
+				continue;
+			}
+
+			byte8 = (bytes16 >> 8) & 7;
+			bitsRead += 3;
+			src += (bitsRead >> 3);
+			bitsRead &= 7;
+		}
+		else
+		{
+			if (bitDepth == 8)
+			{
+				if (byte8 < 0x7C || byte8 > 0x83)
+				{
+					lastVal += byte8;
+					*dst++ = lastVal;
+					blockLength--;
+					continue;
+				}
+				byte8 -= 0x7C;
+			}
+			else if (bitDepth < 8)
+			{
+				byte8 <<= 1;
+				if (byte8 < 0x78 || byte8 > 0x86)
+				{
+					lastVal += (int8_t)byte8 >> (bitDepthInv & 0x1F); // arithmetic shift
+					*dst++ = lastVal;
+					blockLength--;
+					continue;
+				}
+				byte8 = (byte8 >> 1) - 0x3C;
+			}
+			else
+			{
+				bytes16 &= 0x1FF;
+				if ((bytes16 & 0x100) == 0)
+				{
+					lastVal += byte8;
+					*dst++ = lastVal;
+					blockLength--;
+					continue;
+				}
+			}
+		}
+
+		byte8++;
+		if (byte8 >= bitDepth)
+			byte8++;
+		bitDepth = byte8;
+
+		bitDepthInv = 8;
+		if (bitDepthInv < bitDepth)
+			bitDepthInv++;
+		bitDepthInv -= bitDepth;
+	}
+}
+
+static bool loadCompressed16BitSample(FILE *f, sample_t *s, bool deltaEncoded)
+{
+	int8_t *dstPtr = (int8_t *)s->dataPtr;
+
+	uint32_t i = s->length * 2;
+	while (i > 0)
+	{
+		uint32_t bytesToUnpack = 32768;
+		if (bytesToUnpack > i)
+			bytesToUnpack = i;
+
+		uint16_t packedLen;
+		fread(&packedLen, sizeof (uint16_t), 1, f);
+		fread(decompBuffer, 1, packedLen, f);
+
+		decompress16BitData((int16_t *)dstPtr, decompBuffer, bytesToUnpack);
+
+		if (deltaEncoded) // convert from delta values to PCM
+		{
+			int16_t *ptr16 = (int16_t *)dstPtr;
+			int16_t lastSmp16 = 0; // yes, reset this every block!
+
+			const uint32_t length = bytesToUnpack >> 1;
+			for (uint32_t j = 0; j < length; j++)
+			{
+				lastSmp16 += ptr16[j];
+				ptr16[j] = lastSmp16;
+			}
+		}
+
+		dstPtr += bytesToUnpack;
+		i -= bytesToUnpack;
+	}
+
+	return true;
+}
+
+static bool loadCompressed8BitSample(FILE *f, sample_t *s, bool deltaEncoded)
+{
+	int8_t *dstPtr = (int8_t *)s->dataPtr;
+
+	uint32_t i = s->length;
+	while (i > 0)
+	{
+		uint32_t bytesToUnpack = 32768;
+		if (bytesToUnpack > i)
+			bytesToUnpack = i;
+
+		uint16_t packedLen;
+		fread(&packedLen, sizeof (uint16_t), 1, f);
+		fread(decompBuffer, 1, packedLen, f);
+
+		decompress8BitData(dstPtr, decompBuffer, bytesToUnpack);
+
+		if (deltaEncoded) // convert from delta values to PCM
+		{
+			int8_t lastSmp8 = 0; // yes, reset this every block!
+			for (uint32_t j = 0; j < bytesToUnpack; j++)
+			{
+				lastSmp8 += dstPtr[j];
+				dstPtr[j] = lastSmp8;
+			}
+		}
+
+		dstPtr += bytesToUnpack;
+		i -= bytesToUnpack;
+	}
+
+	return true;
+}
+
+static void setAutoVibrato(instr_t *ins, itSmpHdr_t *itSmp)
+{
+	ins->autoVibType = itSmp->autoVibratoWaveform;
+	if (ins->autoVibType > 3 || itSmp->autoVibratoRate == 0)
+	{
+		// turn off auto-vibrato
+		ins->autoVibDepth = ins->autoVibRate = ins->autoVibSweep = ins->autoVibType = 0;
+		return;
+	}
+
+	ins->autoVibRate = itSmp->autoVibratoSpeed;
+	if (ins->autoVibRate > 63)
+		ins->autoVibRate = 63;
+
+	int32_t autoVibSweep = ((itSmp->autoVibratoDepth * 256) + 128) / itSmp->autoVibratoRate;
+	if (autoVibSweep > 255)
+		autoVibSweep = 255;
+	ins->autoVibSweep = (uint8_t)autoVibSweep;
+
+	ins->autoVibDepth = itSmp->autoVibratoDepth;
+	if (ins->autoVibDepth > 15)
+		ins->autoVibDepth = 15;
+}
+
+static bool loadSample(FILE *f, sample_t *s, itSmpHdr_t *itSmp)
+{
+	bool sampleIs16Bit = !!(itSmp->flags & 2);
+	bool compressed = !!(itSmp->flags & 8);
+	bool hasLoop = !!(itSmp->flags & 16);
+	bool bidiLoop = !!(itSmp->flags & 64);
+	bool signedSamples = !!(itSmp->cvt & 1);
+	bool deltaEncoded = !!(itSmp->cvt & 4);
+
+	if (sampleIs16Bit)
+		s->flags |= SAMPLE_16BIT;
+
+	if (hasLoop)
+		s->flags |= bidiLoop ? LOOP_BIDI : LOOP_FWD;
+
+	s->length = itSmp->length;
+	s->loopStart = itSmp->loopBegin;
+	s->loopLength = itSmp->loopEnd - itSmp->loopBegin;
+	s->volume = itSmp->vol;
+
+	s->panning = 128;
+	if (itSmp->defPan & 128) // use panning?
+	{
+		int32_t pan = (itSmp->defPan & 127) * 4; // 0..64 -> 0..256
+		if (pan > 255)
+			pan = 255;
+
+		s->panning = (uint8_t)pan;
+	}
+
+	memcpy(s->name, itSmp->sampleName, 22);
+	s->name[22] = '\0';
+
+	setSampleC4Hz(s, itSmp->c5Speed);
+
+	if (s->length <= 0 || itSmp->offsetInFile == 0)
+		return true; // empty sample, skip data loading
+
+	if (!allocateSmpData(s, s->length, sampleIs16Bit))
+		return false;
+
+	// begin sample loading
+
+	fseek(f, itSmp->offsetInFile, SEEK_SET);
+
+	if (compressed)
+	{
+		if (sampleIs16Bit)
+			loadCompressed16BitSample(f, s, deltaEncoded);
+		else
+			loadCompressed8BitSample(f, s, deltaEncoded);
+	}
+	else
+	{
+		fread(s->dataPtr, 1+(size_t)sampleIs16Bit, s->length, f);
+
+		if (!signedSamples)
+		{
+			if (sampleIs16Bit)
+			{
+				int16_t *ptr16 = (int16_t *)s->dataPtr;
+				for (int32_t i = 0; i < s->length; i++)
+					ptr16[i] ^= 0x8000;
+			}
+			else
+			{
+				int8_t *ptr8 = (int8_t *)s->dataPtr;
+				for (int32_t i = 0; i < s->length; i++)
+					ptr8[i] ^= 0x80;
+			}
+		}
+	}
+
+	return true;
+}
--- a/src/modloaders/ft2_load_s3m.c
+++ b/src/modloaders/ft2_load_s3m.c
@@ -13,9 +13,9 @@
 #include "../ft2_tables.h"
 #include "../ft2_sysreqs.h"
 
-#ifdef _MSC_VER // please don't mess with these structs!
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__) // please don't mess with these structs!
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct s3mSmpHdr_t
 {
@@ -47,8 +47,8 @@
 __attribute__ ((packed))
 #endif
 s3mHdr_t;
-#ifdef _MSC_VER
-#pragma pack(pop)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack off
 #endif
 
 static uint8_t pattBuff[12288];
@@ -283,10 +283,9 @@
 							case 1: // A
 							{
 								tmpNote.efx = 0xF;
-								if (tmpNote.efxData == 0)
+								if (tmpNote.efxData == 0) // A00 does nothing in ST3
 								{
-									tmpNote.efx = 0;
-									tmpNote.efxData = 0;
+									tmpNote.efx = tmpNote.efxData = 0;
 								}
 								else if (tmpNote.efxData > 0x1F)
 								{
@@ -331,7 +330,7 @@
 
 									tmpNote.efxData &= 0x0F;
 
-									if (tmpNote.efx == 0x05)
+									if (tmpNote.efx == 5)
 										tmpNote.efxData |= 0x20;
 									else
 										tmpNote.efxData |= 0x10;
@@ -353,7 +352,7 @@
 
 							case 7: // G
 							{
-								tmpNote.efx = 0x03;
+								tmpNote.efx = 3;
 
 								// fix illegal slides (to new instruments)
 								if (tmpNote.instr != 0 && tmpNote.instr != s3mLastGInstr[ii])
@@ -383,7 +382,7 @@
 								}
 								else
 								{
-									tmpNote.efx = 0x6;
+									tmpNote.efx = 6;
 									if (tmpNote.efxData & 0x0F) // on D/K, last nybble has first priority in ST3
 										tmpNote.efxData &= 0x0F;
 								}
@@ -390,8 +389,8 @@
 							}
 							break;
 
-							case 8: tmpNote.efx = 0x04; break; // H
-							case 9: tmpNote.efx = 0x1D; break; // I
+							case 8:  tmpNote.efx = 0x04; break; // H
+							case 9:  tmpNote.efx = 0x1D; break; // I
 							case 10: tmpNote.efx = 0x00; break; // J
 							case 12: tmpNote.efx = 0x05; break; // L
 							case 15: tmpNote.efx = 0x09; break; // O
@@ -408,7 +407,11 @@
 								else if (tmp == 0x2) tmpNote.efxData |= 0x50;
 								else if (tmp == 0x3) tmpNote.efxData |= 0x40;
 								else if (tmp == 0x4) tmpNote.efxData |= 0x70;
-								// ignore S8x becuase it's not compatible with FT2 panning
+								else if (tmp == 0x8)
+								{
+									tmpNote.efx = 8;
+									tmpNote.efxData = ((tmpNote.efxData & 0x0F) << 4) | (tmpNote.efxData & 0x0F);
+								}
 								else if (tmp == 0xB) tmpNote.efxData |= 0x60;
 								else if (tmp == 0xC) // Note Cut
 								{
@@ -416,8 +419,7 @@
 									if (tmpNote.efxData == 0xC0)
 									{
 										// EC0 does nothing in ST3 but cuts voice in FT2, remove effect
-										tmpNote.efx = 0;
-										tmpNote.efxData = 0;
+										tmpNote.efx = tmpNote.efxData = 0;
 									}
 								}
 								else if (tmp == 0xD) // Note Delay
@@ -426,8 +428,7 @@
 									if (tmpNote.note == 0 || tmpNote.note == NOTE_OFF)
 									{
 										// EDx without a note does nothing in ST3 but retrigs in FT2, remove effect
-										tmpNote.efx = 0;
-										tmpNote.efxData = 0;
+										tmpNote.efx = tmpNote.efxData = 0;
 									}
 									else if (tmpNote.efxData == 0xD0)
 									{
@@ -443,8 +444,7 @@
 								else if (tmp == 0xF) tmpNote.efxData |= 0xF0;
 								else
 								{
-									tmpNote.efx = 0;
-									tmpNote.efxData = 0;
+									tmpNote.efx = tmpNote.efxData = 0;
 								}
 							}
 							break;
@@ -451,7 +451,7 @@
 
 							case 20: // T
 							{
-								tmpNote.efx = 0x0F;
+								tmpNote.efx = 0xF;
 								if (tmpNote.efxData < 0x21) // Txx with a value lower than 33 (0x21) does nothing in ST3, remove effect
 								{
 									tmpNote.efx = 0;
@@ -462,26 +462,39 @@
 
 							case 22: // V
 							{
-								tmpNote.efx = 0x10;
-								if (tmpNote.efxData > 0x40)
+								if (tmpNote.efxData > 0x40) // Vxx > 0x40 does nothing in ST3
+									tmpNote.efx = tmpNote.efxData = 0;
+								else
+									tmpNote.efx = 0x10;
+							}
+							break;
+
+							case 24: // X (set 7-bit panning + surround)
+							{
+								if (tmpNote.efxData > 0x80)
 								{
-									// Vxx > 0x40 does nothing in ST3
-									tmpNote.efx = 0;
-									tmpNote.efxData = 0;
+									tmpNote.efx = tmpNote.efxData = 0;
 								}
+								else
+								{
+									tmpNote.efx = 8;
+
+									int32_t pan = tmpNote.efxData * 2;
+									if (pan > 255)
+										pan = 255;
+
+									tmpNote.efxData = (uint8_t)pan;
+								}
 							}
 							break;
 
 							default:
-							{
-								tmpNote.efx = 0;
-								tmpNote.efxData = 0;
-							}
+								tmpNote.efx = tmpNote.efxData = 0;
 							break;
 						}
 					}
 
-					if (tmpNote.instr != 0 && tmpNote.efx != 0x3)
+					if (tmpNote.instr != 0 && tmpNote.efx != 3)
 						s3mLastGInstr[ii] = tmpNote.instr;
 
 					patternTmp[i][(kk * MAX_CHANNELS) + ii] = tmpNote;
@@ -563,7 +576,7 @@
 				s->loopStart = smpHdr.loopStart;
 				s->loopLength = smpHdr.loopEnd - smpHdr.loopStart;
 
-				tuneSample(s, smpHdr.midCFreq, tmpLinearPeriodsFlag);
+				setSampleC4Hz(s, smpHdr.midCFreq);
 
 				if (sample16Bit)
 				{
--- a/src/modloaders/ft2_load_stk.c
+++ b/src/modloaders/ft2_load_stk.c
@@ -13,9 +13,9 @@
 #include "../ft2_tables.h"
 #include "../ft2_sysreqs.h"
 
-#ifdef _MSC_VER  // please don't mess with this struct!
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__)  // please don't mess with this struct!
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct stkHdr_t
 {
@@ -27,8 +27,8 @@
 __attribute__ ((packed))
 #endif
 stkHdr_t;
-#ifdef _MSC_VER
-#pragma pack(pop)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack off
 #endif
 
 bool loadSTK(FILE *f, uint32_t filesize)
--- a/src/modloaders/ft2_load_stm.c
+++ b/src/modloaders/ft2_load_stm.c
@@ -13,9 +13,9 @@
 #include "../ft2_tables.h"
 #include "../ft2_sysreqs.h"
 
-#ifdef _MSC_VER // please don't mess with these structs!
-#pragma pack(push)
-#pragma pack(1)
+#if defined(_MSC_VER) || defined(__plan9__) // please don't mess with these structs!
+#pragma pack on
+#pragma pack on
 #endif
 typedef struct stmSmpHdr_t
 {
@@ -45,8 +45,8 @@
 __attribute__ ((packed))
 #endif
 stmHdr_t;
-#ifdef _MSC_VER
-#pragma pack(pop)
+#if defined(_MSC_VER) || defined(__plan9__)
+#pragma pack off
 #endif
 
 static const uint8_t stmEfx[16] = { 0, 0, 11, 0, 10, 2, 1, 3, 4, 7, 0, 5, 6, 0, 0, 0 };
@@ -212,7 +212,7 @@
 			s->loopLength = hdr.smp[i].loopEnd - hdr.smp[i].loopStart;
 
 			memcpy(s->name, hdr.smp[i].name, 12);
-			tuneSample(s, hdr.smp[i].midCFreq, tmpLinearPeriodsFlag);
+			setSampleC4Hz(s, hdr.smp[i].midCFreq);
 
 			if (s->loopStart < s->length && hdr.smp[i].loopEnd > s->loopStart && hdr.smp[i].loopEnd != 0xFFFF)
 			{
--- a/src/scopes/ft2_scope_macros.h
+++ b/src/scopes/ft2_scope_macros.h
@@ -1,6 +1,8 @@
-#pragma once
+#ifndef _ft2_scope_macros_h_
+#define _ft2_scope_macros_h_
 
 #include <stdint.h>
+#include "../ft2_header.h"
 #include "ft2_scopes.h"
 
 /* ----------------------------------------------------------------------- */
@@ -7,134 +9,160 @@
 /*                          SCOPE DRAWING MACROS                           */
 /* ----------------------------------------------------------------------- */
 
-#define SCOPE_REGS_NO_LOOP \
-	const int32_t volume = s->volume; \
-	const int32_t sampleEnd = s->sampleEnd; \
-	const uint32_t delta = s->drawDelta; \
+#define SCOPE_INIT \
 	const uint32_t color = video.palette[PAL_PATTEXT]; \
-	const uint32_t width = x + w; \
+	uint32_t width = x + w; \
 	int32_t sample; \
 	int32_t position = s->position; \
-	uint32_t positionFrac = 0;
+	uint64_t positionFrac = 0;
 
-#define SCOPE_REGS_LOOP \
-	const int32_t volume = s->volume; \
-	const int32_t sampleEnd = s->sampleEnd; \
-	const int32_t loopStart = s->loopStart; \
-	const int32_t loopLength = s->loopLength; \
-	const uint32_t delta = s->drawDelta; \
+#define SCOPE_INIT_BIDI \
 	const uint32_t color = video.palette[PAL_PATTEXT]; \
-	const uint32_t width = x + w; \
+	uint32_t width = x + w; \
 	int32_t sample; \
-	int32_t position = s->position; \
-	uint32_t positionFrac = 0;
+	int32_t actualPos, position = s->position; \
+	uint64_t positionFrac = 0; \
+	bool samplingBackwards = s->samplingBackwards;
 
-#define SCOPE_REGS_PINGPONG \
-	const int32_t volume = s->volume; \
-	const int32_t sampleEnd = s->sampleEnd; \
-	const int32_t loopStart = s->loopStart; \
-	const int32_t loopLength = s->loopLength; \
-	const uint32_t delta = s->drawDelta; \
-	const uint32_t color = video.palette[PAL_PATTEXT]; \
-	const uint32_t width = x + w; \
-	int32_t sample; \
-	int32_t position = s->position; \
-	uint32_t positionFrac = 0; \
-	int32_t direction = s->direction;
+#define LINED_SCOPE_INIT \
+	SCOPE_INIT \
+	int32_t smpY1, smpY2; \
+	width--;
 
-#define LINED_SCOPE_REGS_NO_LOOP \
-	const int32_t volume = s->volume; \
-	const int32_t sampleEnd = s->sampleEnd; \
-	const uint32_t delta = (uint32_t)(s->delta >> (SCOPE_FRAC_BITS-10)); \
-	const uint32_t width = (x + w) - 1; \
-	int32_t sample, sample2; \
-	int32_t y1, y2; \
-	int32_t position = s->position; \
-	uint32_t positionFrac = 0;
+#define LINED_SCOPE_INIT_BIDI \
+	SCOPE_INIT_BIDI \
+	int32_t smpY1, smpY2; \
+	width--;
 
-#define LINED_SCOPE_REGS_LOOP \
-	const int32_t volume = s->volume; \
-	const int32_t sampleEnd = s->sampleEnd; \
-	const int32_t loopStart = s->loopStart; \
-	const int32_t loopLength = s->loopLength; \
-	const uint32_t delta = (uint32_t)(s->delta >> (SCOPE_FRAC_BITS-10)); \
-	const uint32_t width = (x + w) - 1; \
-	int32_t sample, sample2; \
-	int32_t y1, y2; \
-	int32_t position = s->position; \
-	uint32_t positionFrac = 0;
+/* Note: Sample data already has fixed tap samples at the end of the sample,
+** so that out-of-bounds reads get the correct interpolation tap data.
+*/
 
-#define LINED_SCOPE_REGS_PINGPONG \
-	const int32_t volume = s->volume; \
-	const int32_t sampleEnd = s->sampleEnd; \
-	const int32_t loopStart = s->loopStart; \
-	const int32_t loopLength = s->loopLength; \
-	const uint32_t delta = (uint32_t)(s->delta >> (SCOPE_FRAC_BITS-10)); \
-	const uint32_t width = (x + w) - 1; \
-	int32_t sample, sample2; \
-	int32_t y1, y2; \
-	int32_t position = s->position; \
-	uint32_t positionFrac = 0; \
-	int32_t direction = s->direction;
+#define NEAREST_NEIGHGBOR8 \
+{ \
+	sample = s8[0] << 8; \
+} \
 
-/* Note: Sample data already has a fixed tap samples at the end of the sample,
-** so that an out-of-bounds read is OK and reads the correct interpolation tap.
-*/
+#define LINEAR_INTERPOLATION8(frac) \
+{ \
+	const int32_t f = (frac) >> (SCOPE_FRAC_BITS-15); \
+	sample = (s8[0] << 8) + ((((s8[1] - s8[0]) << 8) * f) >> 15); \
+} \
 
-#define COLLECT_LERP_SAMPLES8 \
-		sample = s->base8[position+0] << 8; \
-		sample2 = s->base8[position+1] << 8;
+#define NEAREST_NEIGHGBOR16 \
+{ \
+	sample = s16[0]; \
+} \
 
-#define COLLECT_LERP_SAMPLES16 \
-		sample = s->base16[position+0]; \
-		sample2 = s->base16[position+1];
+#define LINEAR_INTERPOLATION16(frac) \
+{ \
+	const int32_t f = (frac) >> (SCOPE_FRAC_BITS-15); \
+	sample = s16[0] + (((s16[1] - s16[0]) * f) >> 15); \
+} \
 
-#define DO_LERP \
-		const int32_t frac = (uint32_t)positionFrac >> 1; /* 0..32767 */ \
-		sample2 -= sample; \
-		sample2 = (sample2 * frac) >> 15; \
-		sample += sample2; \
+#define CUBIC_SMP8(frac) \
+	const int16_t *t = scopeIntrpLUT + (((frac) >> (SCOPE_FRAC_BITS-SCOPE_INTRP_PHASES_BITS)) * SCOPE_INTRP_TAPS); \
+	\
+	sample = ((s8[-2] * t[0]) + \
+	          (s8[-1] * t[1]) + \
+	          ( s8[0] * t[2]) + \
+	          ( s8[1] * t[3]) + \
+	          ( s8[2] * t[4]) + \
+	          ( s8[3] * t[5])) >> (SCOPE_INTRP_SCALE_BITS-8);
 
-#define DO_LERP_BIDI \
-		int32_t frac = (uint32_t)positionFrac >> 1; /* 0..32767 */ \
-		if (direction == -1) frac ^= 32767; /* negate frac */ \
-		sample2 -= sample; \
-		sample2 = (sample2 * frac) >> 15; \
-		sample += sample2;
+#define CUBIC_SMP16(frac) \
+	const int16_t *t = scopeIntrpLUT + (((frac) >> (SCOPE_FRAC_BITS-SCOPE_INTRP_PHASES_BITS)) * SCOPE_INTRP_TAPS); \
+	\
+	sample = ((s16[-2] * t[0]) + \
+	          (s16[-1] * t[1]) + \
+	          ( s16[0] * t[2]) + \
+	          ( s16[1] * t[3]) + \
+	          ( s16[2] * t[4]) + \
+	          ( s16[3] * t[5])) >> SCOPE_INTRP_SCALE_BITS;
 
-#define GET_LERP_SMP8 \
-		COLLECT_LERP_SAMPLES8 \
-		DO_LERP
+#define CUBIC_INTERPOLATION8(frac) \
+{ \
+	CUBIC_SMP8(frac) \
+} \
 
-#define GET_LERP_SMP16 \
-		COLLECT_LERP_SAMPLES16 \
-		DO_LERP
+#define CUBIC_INTERPOLATION16(frac) \
+{ \
+	CUBIC_SMP16(frac) \
+} \
 
-#define GET_LERP_SMP8_BIDI \
-		COLLECT_LERP_SAMPLES8 \
-		DO_LERP_BIDI
+#define CUBIC_INTERPOLATION8_LOOP(pos, frac) \
+{ \
+	if (s->hasLooped && pos <= s->loopStart+MAX_LEFT_TAPS) \
+		s8 = s->leftEdgeTaps8 + (pos - s->loopStart); \
+	\
+	CUBIC_SMP8(frac) \
+} \
 
-#define GET_LERP_SMP16_BIDI  \
-		COLLECT_LERP_SAMPLES16 \
-		DO_LERP_BIDI
+#define CUBIC_INTERPOLATION16_LOOP(pos, frac) \
+{ \
+	if (s->hasLooped && pos <= s->loopStart+MAX_LEFT_TAPS) \
+		s16 = s->leftEdgeTaps16 + (pos - s->loopStart); \
+	\
+	CUBIC_SMP16(frac) \
+} \
 
+#define INTERPOLATE_SMP8(pos, frac) \
+	const int8_t *s8 = s->base8 + pos; \
+	if (config.interpolation == INTERPOLATION_DISABLED) \
+		NEAREST_NEIGHGBOR8 \
+	else if (config.interpolation == INTERPOLATION_LINEAR) \
+		LINEAR_INTERPOLATION8(frac) \
+	else \
+		CUBIC_INTERPOLATION8(frac) \
+	sample = (sample * s->volume) >> (16+2);
+
+#define INTERPOLATE_SMP16(pos, frac) \
+	const int16_t *s16 = s->base16 + pos; \
+	if (config.interpolation == INTERPOLATION_DISABLED) \
+		NEAREST_NEIGHGBOR16 \
+	else if (config.interpolation == INTERPOLATION_LINEAR) \
+		LINEAR_INTERPOLATION16(frac) \
+	else \
+		CUBIC_INTERPOLATION16(frac) \
+	sample = (sample * s->volume) >> (16+2);
+
+#define INTERPOLATE_SMP8_LOOP(pos, frac) \
+	const int8_t *s8 = s->base8 + pos; \
+	if (config.interpolation == INTERPOLATION_DISABLED) \
+		NEAREST_NEIGHGBOR8 \
+	else if (config.interpolation == INTERPOLATION_LINEAR) \
+		LINEAR_INTERPOLATION8(frac) \
+	else \
+		CUBIC_INTERPOLATION8_LOOP(pos, frac) \
+	sample = (sample * s->volume) >> (16+2);
+
+#define INTERPOLATE_SMP16_LOOP(pos, frac) \
+	const int16_t *s16 = s->base16 + pos; \
+	if (config.interpolation == INTERPOLATION_DISABLED) \
+		NEAREST_NEIGHGBOR16 \
+	else if (config.interpolation == INTERPOLATION_LINEAR) \
+		LINEAR_INTERPOLATION16(frac) \
+	else \
+		CUBIC_INTERPOLATION16_LOOP(pos, frac) \
+	sample = (sample * s->volume) >> (16+2);
+
 #define SCOPE_GET_SMP8 \
 	if (s->active) \
-		sample = (s->base8[position] * volume) >> 8; \
+		sample = (s->base8[position] * s->volume) >> (8+2); \
 	else \
 		sample = 0;
 
 #define SCOPE_GET_SMP16 \
 	if (s->active) \
-		sample = (s->base16[position] * volume) >> 16; \
+		sample = (s->base16[position] * s->volume) >> (16+2); \
 	else \
 		sample = 0;
 
-#define SCOPE_GET_LERP_SMP8 \
+#define SCOPE_GET_SMP8_BIDI \
 	if (s->active) \
 	{ \
-		GET_LERP_SMP8 \
-		sample = (sample * volume) >> 16; \
+		GET_BIDI_POSITION \
+		sample = (s->base8[actualPos] * s->volume) >> (8+2); \
 	} \
 	else \
 	{ \
@@ -141,11 +169,11 @@
 		sample = 0; \
 	}
 
-#define SCOPE_GET_LERP_SMP16 \
+#define SCOPE_GET_SMP16_BIDI \
 	if (s->active) \
 	{ \
-		GET_LERP_SMP16 \
-		sample = (sample * volume) >> 16; \
+		GET_BIDI_POSITION \
+		sample = (s->base16[actualPos] * s->volume) >> (16+2); \
 	} \
 	else \
 	{ \
@@ -152,11 +180,10 @@
 		sample = 0; \
 	}
 
-#define SCOPE_GET_LERP_SMP8_BIDI \
+#define SCOPE_GET_INTERPOLATED_SMP8 \
 	if (s->active) \
 	{ \
-		GET_LERP_SMP8_BIDI \
-		sample = (sample * volume) >> 16; \
+		INTERPOLATE_SMP8(position, (uint32_t)positionFrac) \
 	} \
 	else \
 	{ \
@@ -163,11 +190,10 @@
 		sample = 0; \
 	}
 
-#define SCOPE_GET_LERP_SMP16_BIDI \
+#define SCOPE_GET_INTERPOLATED_SMP16 \
 	if (s->active) \
 	{ \
-		GET_LERP_SMP16_BIDI \
-		sample = (sample * volume) >> 16; \
+		INTERPOLATE_SMP16(position, (uint32_t)positionFrac) \
 	} \
 	else \
 	{ \
@@ -174,73 +200,130 @@
 		sample = 0; \
 	}
 
-#define SCOPE_UPDATE_DRAWPOS \
-	positionFrac += delta; \
-	position += positionFrac >> 16; \
-	positionFrac &= 0xFFFF;
+#define SCOPE_GET_INTERPOLATED_SMP8_LOOP \
+	if (s->active) \
+	{ \
+		INTERPOLATE_SMP8_LOOP(position, (uint32_t)positionFrac) \
+	} \
+	else \
+	{ \
+		sample = 0; \
+	}
 
-#define SCOPE_UPDATE_DRAWPOS_PINGPONG \
-	positionFrac += delta; \
-	position += (int32_t)(positionFrac >> 16) * direction; \
-	positionFrac &= 0xFFFF;
+#define SCOPE_GET_INTERPOLATED_SMP16_LOOP \
+	if (s->active) \
+	{ \
+		INTERPOLATE_SMP16_LOOP(position, (uint32_t)positionFrac) \
+	} \
+	else \
+	{ \
+		sample = 0; \
+	}
 
+#define GET_BIDI_POSITION \
+	if (samplingBackwards) \
+		actualPos = (s->sampleEnd - 1) - (position - s->loopStart); \
+	else \
+		actualPos = position;
+
+#define SCOPE_GET_INTERPOLATED_SMP8_BIDI \
+	if (s->active) \
+	{ \
+		GET_BIDI_POSITION \
+		INTERPOLATE_SMP8_LOOP(actualPos, samplingBackwards ? ((uint32_t)positionFrac ^ UINT32_MAX) : (uint32_t)positionFrac) \
+	} \
+	else \
+	{ \
+		sample = 0; \
+	}
+
+#define SCOPE_GET_INTERPOLATED_SMP16_BIDI \
+	if (s->active) \
+	{ \
+		GET_BIDI_POSITION \
+		INTERPOLATE_SMP16_LOOP(actualPos, samplingBackwards ? ((uint32_t)positionFrac ^ UINT32_MAX) : (uint32_t)positionFrac) \
+	} \
+	else \
+	{ \
+		sample = 0; \
+	}
+
+#define SCOPE_UPDATE_READPOS \
+	positionFrac += s->drawDelta; \
+	position += positionFrac >> 32; \
+	positionFrac &= UINT32_MAX;
+
 #define SCOPE_DRAW_SMP \
 	video.frameBuffer[((lineY - sample) * SCREEN_W) + x] = color;
 
-#define LINED_SCOPE_PREPARE_LERP_SMP8 \
-	SCOPE_GET_LERP_SMP8 \
-	y1 = lineY - sample; \
-	SCOPE_UPDATE_DRAWPOS
+#define LINED_SCOPE_PREPARE_SMP8 \
+	SCOPE_GET_INTERPOLATED_SMP8 \
+	smpY1 = lineY - sample; \
+	SCOPE_UPDATE_READPOS
 
-#define LINED_SCOPE_PREPARE_LERP_SMP16 \
-	SCOPE_GET_LERP_SMP16 \
-	y1 = lineY - sample; \
-	SCOPE_UPDATE_DRAWPOS
+#define LINED_SCOPE_PREPARE_SMP16 \
+	SCOPE_GET_INTERPOLATED_SMP16 \
+	smpY1 = lineY - sample; \
+	SCOPE_UPDATE_READPOS
 
-#define LINED_SCOPE_PREPARE_LERP_SMP8_BIDI \
-	SCOPE_GET_LERP_SMP8_BIDI \
-	y1 = lineY - sample; \
-	SCOPE_UPDATE_DRAWPOS
+#define LINED_SCOPE_PREPARE_SMP8_LOOP \
+	SCOPE_GET_INTERPOLATED_SMP8_LOOP \
+	smpY1 = lineY - sample; \
+	SCOPE_UPDATE_READPOS
 
-#define LINED_SCOPE_PREPARE_LERP_SMP16_BIDI \
-	SCOPE_GET_LERP_SMP16_BIDI \
-	y1 = lineY - sample; \
-	SCOPE_UPDATE_DRAWPOS
+#define LINED_SCOPE_PREPARE_SMP16_LOOP \
+	SCOPE_GET_INTERPOLATED_SMP16_LOOP \
+	smpY1 = lineY - sample; \
+	SCOPE_UPDATE_READPOS
 
+#define LINED_SCOPE_PREPARE_SMP8_BIDI \
+	SCOPE_GET_INTERPOLATED_SMP8_BIDI \
+	smpY1 = lineY - sample; \
+	SCOPE_UPDATE_READPOS
+
+#define LINED_SCOPE_PREPARE_SMP16_BIDI \
+	SCOPE_GET_INTERPOLATED_SMP16_BIDI \
+	smpY1 = lineY - sample; \
+	SCOPE_UPDATE_READPOS
+
 #define LINED_SCOPE_DRAW_SMP \
-	y2 = lineY - sample; \
-	scopeLine(x, y1, y2); \
-	y1 = y2; \
+	smpY2 = lineY - sample; \
+	scopeLine(x, smpY1, smpY2, color); \
+	smpY1 = smpY2;
 
 #define SCOPE_HANDLE_POS_NO_LOOP \
-	if (position >= sampleEnd) \
+	if (position >= s->sampleEnd) \
 		s->active = false;
 
 #define SCOPE_HANDLE_POS_LOOP \
-	if (position >= sampleEnd) \
+	if (position >= s->sampleEnd) \
 	{ \
-		if (loopLength >= 2) \
-			position = loopStart + ((position - sampleEnd) % loopLength); \
+		if (s->loopLength >= 2) \
+			position = s->loopStart + ((uint32_t)(position - s->sampleEnd) % (uint32_t)s->loopLength); \
 		else \
-			position = loopStart; \
+			position = s->loopStart; \
+		\
+		s->hasLooped = true; \
 	}
 
-#define SCOPE_HANDLE_POS_PINGPONG \
-	if (direction == -1 && position < loopStart) \
+#define SCOPE_HANDLE_POS_BIDI \
+	if (position >= s->sampleEnd) \
 	{ \
-		direction = 1; /* change direction to forwards */ \
-		\
-		if (loopLength >= 2) \
-			position = loopStart + ((loopStart - position - 1) % loopLength); \
+		if (s->loopLength >= 2) \
+		{ \
+			const uint32_t overflow = position - s->sampleEnd; \
+			const uint32_t cycles = overflow / (uint32_t)s->loopLength; \
+			const uint32_t phase = overflow % (uint32_t)s->loopLength; \
+			\
+			position = s->loopStart + phase; \
+			samplingBackwards ^= !(cycles & 1); \
+		} \
 		else \
-			position = loopStart; \
-	} \
-	else if (position >= sampleEnd) \
-	{ \
-		direction = -1; /* change direction to backwards */ \
+		{ \
+			position = s->loopStart; \
+		} \
 		\
-		if (loopLength >= 2) \
-			position = (sampleEnd - 1) - ((position - sampleEnd) % loopLength); \
-		else \
-			position = sampleEnd - 1; \
+		s->hasLooped = true; \
 	}
+
+#endif
--- a/src/scopes/ft2_scopedraw.c
+++ b/src/scopes/ft2_scopedraw.c
@@ -1,3 +1,9 @@
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <math.h>
+#include "../ft2_config.h"
 #include "../ft2_video.h"
 #include "../ft2_palette.h"
 #include "ft2_scopes.h"
@@ -4,21 +10,74 @@
 #include "ft2_scopedraw.h"
 #include "ft2_scope_macros.h"
 
-static void scopeLine(int32_t x1, int32_t y1, int32_t y2);
+static int16_t *scopeIntrpLUT;
 
+static void scopeLine(int32_t x1, int32_t y1, int32_t y2, const uint32_t color);
+
+bool calcScopeIntrpLUT(void)
+{
+	scopeIntrpLUT = (int16_t *)malloc(SCOPE_INTRP_TAPS * SCOPE_INTRP_PHASES * sizeof (int16_t));
+	if (scopeIntrpLUT == NULL)
+		return false;
+
+	/* Several tests have been done to figure out what interpolation method is most suitable
+	** for the tracker scopes. After testing linear, cubic, Gaussian and windowed-sinc
+	** interpolation, I have come to the conclusion that 6-point cubic B-spline is the best.
+	** This interpolation method also has no overshoot.
+	*/
+
+	// 6-point cubic B-spline (no overshoot)
+
+	int16_t *ptr16 = scopeIntrpLUT;
+	for (int32_t i = 0; i < SCOPE_INTRP_PHASES; i++)
+	{
+		const double x1 = i * (1.0 / SCOPE_INTRP_PHASES);
+		const double x2 = x1 * x1; // x^2
+		const double x3 = x2 * x1; // x^3
+		const double x4 = x3 * x1; // x^4
+		const double x5 = x4 * x1; // x^5
+
+		double t1 = (-(1.0/120.0) * x5) + ( (1.0/24.0) * x4) + (-(1.0/12.0) * x3) + ( (1.0/12.0) * x2) + (-(1.0/24.0) * x1) + ( 1.0/120.0);
+		double t2 = ( (1.0/ 24.0) * x5) + (-(1.0/ 6.0) * x4) + ( (1.0/ 6.0) * x3) + ( (1.0/ 6.0) * x2) + (-(5.0/12.0) * x1) + (13.0/ 60.0);
+		double t3 = (-(1.0/ 12.0) * x5) + ( (1.0/ 4.0) * x4) +                      (-(1.0/ 2.0) * x2)                      + (11.0/ 20.0);
+		double t4 = ( (1.0/ 12.0) * x5) + (-(1.0/ 6.0) * x4) + (-(1.0/ 6.0) * x3) + ( (1.0/ 6.0) * x2) + ( (5.0/12.0) * x1) + (13.0/ 60.0);
+		double t5 = (-(1.0/ 24.0) * x5) + ( (1.0/24.0) * x4) + ( (1.0/12.0) * x3) + ( (1.0/12.0) * x2) + ( (1.0/24.0) * x1) + ( 1.0/120.0);
+		double t6 =   (1.0/120.0) * x5;
+
+		// important: truncate, do not round (would cause scope overflow)
+		*ptr16++ = (int16_t)(t1 * SCOPE_INTRP_SCALE);
+		*ptr16++ = (int16_t)(t2 * SCOPE_INTRP_SCALE);
+		*ptr16++ = (int16_t)(t3 * SCOPE_INTRP_SCALE);
+		*ptr16++ = (int16_t)(t4 * SCOPE_INTRP_SCALE);
+		*ptr16++ = (int16_t)(t5 * SCOPE_INTRP_SCALE);
+		*ptr16++ = (int16_t)(t6 * SCOPE_INTRP_SCALE);
+	}
+
+	return true;
+}
+
+void freeScopeIntrpLUT(void)
+{
+	if (scopeIntrpLUT != NULL)
+	{
+		free(scopeIntrpLUT);
+		scopeIntrpLUT = NULL;
+	}
+}
+
 /* ----------------------------------------------------------------------- */
-/*                         SCOPE DRAWING ROUTINES                          */
+/*                    NON-LINED SCOPE DRAWING ROUTINES                     */
 /* ----------------------------------------------------------------------- */
 
 static void scopeDrawNoLoop_8bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	SCOPE_REGS_NO_LOOP
+	SCOPE_INIT
 
 	for (; x < width; x++)
 	{
 		SCOPE_GET_SMP8
 		SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS
+		SCOPE_UPDATE_READPOS
 		SCOPE_HANDLE_POS_NO_LOOP
 	}
 }
@@ -25,39 +84,39 @@
 
 static void scopeDrawLoop_8bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	SCOPE_REGS_LOOP
+	SCOPE_INIT
 
 	for (; x < width; x++)
 	{
 		SCOPE_GET_SMP8
 		SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS
+		SCOPE_UPDATE_READPOS
 		SCOPE_HANDLE_POS_LOOP
 	}
 }
 
-static void scopeDrawPingPong_8bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
+static void scopeDrawBidiLoop_8bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	SCOPE_REGS_PINGPONG
+	SCOPE_INIT_BIDI
 
 	for (; x < width; x++)
 	{
-		SCOPE_GET_SMP8
+		SCOPE_GET_SMP8_BIDI
 		SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS_PINGPONG
-		SCOPE_HANDLE_POS_PINGPONG
+		SCOPE_UPDATE_READPOS
+		SCOPE_HANDLE_POS_BIDI
 	}
 }
 
 static void scopeDrawNoLoop_16bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	SCOPE_REGS_NO_LOOP
+	SCOPE_INIT
 
 	for (; x < width; x++)
 	{
 		SCOPE_GET_SMP16
 		SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS
+		SCOPE_UPDATE_READPOS
 		SCOPE_HANDLE_POS_NO_LOOP
 	}
 }
@@ -64,45 +123,45 @@
 
 static void scopeDrawLoop_16bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	SCOPE_REGS_LOOP
+	SCOPE_INIT
 
 	for (; x < width; x++)
 	{
 		SCOPE_GET_SMP16
 		SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS
+		SCOPE_UPDATE_READPOS
 		SCOPE_HANDLE_POS_LOOP
 	}
 }
 
-static void scopeDrawPingPong_16bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
+static void scopeDrawBidiLoop_16bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	SCOPE_REGS_PINGPONG
+	SCOPE_INIT_BIDI
 
 	for (; x < width; x++)
 	{
-		SCOPE_GET_SMP16
+		SCOPE_GET_SMP16_BIDI
 		SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS_PINGPONG
-		SCOPE_HANDLE_POS_PINGPONG
+		SCOPE_UPDATE_READPOS
+		SCOPE_HANDLE_POS_BIDI
 	}
 }
 
 /* ----------------------------------------------------------------------- */
-/*                   INTERPOLATED SCOPE DRAWING ROUTINES                   */
+/*                       LINED SCOPE DRAWING ROUTINES                      */
 /* ----------------------------------------------------------------------- */
 
 static void linedScopeDrawNoLoop_8bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	LINED_SCOPE_REGS_NO_LOOP
-	LINED_SCOPE_PREPARE_LERP_SMP8
+	LINED_SCOPE_INIT
+	LINED_SCOPE_PREPARE_SMP8
 	SCOPE_HANDLE_POS_NO_LOOP
 
 	for (; x < width; x++)
 	{
-		SCOPE_GET_LERP_SMP8
+		SCOPE_GET_INTERPOLATED_SMP8
 		LINED_SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS
+		SCOPE_UPDATE_READPOS
 		SCOPE_HANDLE_POS_NO_LOOP
 	}
 }
@@ -109,45 +168,45 @@
 
 static void linedScopeDrawLoop_8bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	LINED_SCOPE_REGS_LOOP
-	LINED_SCOPE_PREPARE_LERP_SMP8
+	LINED_SCOPE_INIT
+	LINED_SCOPE_PREPARE_SMP8_LOOP
 	SCOPE_HANDLE_POS_LOOP
 
 	for (; x < width; x++)
 	{
-		SCOPE_GET_LERP_SMP8
+		SCOPE_GET_INTERPOLATED_SMP8_LOOP
 		LINED_SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS
+		SCOPE_UPDATE_READPOS
 		SCOPE_HANDLE_POS_LOOP
 	}
 }
 
-static void linedScopeDrawPingPong_8bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
+static void linedScopeDrawBidiLoop_8bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	LINED_SCOPE_REGS_PINGPONG
-	LINED_SCOPE_PREPARE_LERP_SMP8_BIDI
-	SCOPE_HANDLE_POS_PINGPONG
+	LINED_SCOPE_INIT_BIDI
+	LINED_SCOPE_PREPARE_SMP8_BIDI
+	SCOPE_HANDLE_POS_BIDI
 
 	for (; x < width; x++)
 	{
-		SCOPE_GET_LERP_SMP8_BIDI
+		SCOPE_GET_INTERPOLATED_SMP8_BIDI
 		LINED_SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS_PINGPONG
-		SCOPE_HANDLE_POS_PINGPONG
+		SCOPE_UPDATE_READPOS
+		SCOPE_HANDLE_POS_BIDI
 	}
 }
 
 static void linedScopeDrawNoLoop_16bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	LINED_SCOPE_REGS_NO_LOOP
-	LINED_SCOPE_PREPARE_LERP_SMP16
+	LINED_SCOPE_INIT
+	LINED_SCOPE_PREPARE_SMP16
 	SCOPE_HANDLE_POS_NO_LOOP
 
 	for (; x < width; x++)
 	{
-		SCOPE_GET_LERP_SMP16
+		SCOPE_GET_INTERPOLATED_SMP16
 		LINED_SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS
+		SCOPE_UPDATE_READPOS
 		SCOPE_HANDLE_POS_NO_LOOP
 	}
 }
@@ -154,73 +213,90 @@
 
 static void linedScopeDrawLoop_16bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	LINED_SCOPE_REGS_LOOP
-	LINED_SCOPE_PREPARE_LERP_SMP16
+	LINED_SCOPE_INIT
+	LINED_SCOPE_PREPARE_SMP16_LOOP
 	SCOPE_HANDLE_POS_LOOP
 
 	for (; x < width; x++)
 	{
-		SCOPE_GET_LERP_SMP16
+		SCOPE_GET_INTERPOLATED_SMP16_LOOP
 		LINED_SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS
+		SCOPE_UPDATE_READPOS
 		SCOPE_HANDLE_POS_LOOP
 	}
 }
 
-static void linedScopeDrawPingPong_16bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
+static void linedScopeDrawBidiLoop_16bit(scope_t *s, uint32_t x, uint32_t lineY, uint32_t w)
 {
-	LINED_SCOPE_REGS_PINGPONG
-	LINED_SCOPE_PREPARE_LERP_SMP16_BIDI
-	SCOPE_HANDLE_POS_PINGPONG
+	LINED_SCOPE_INIT_BIDI
+	LINED_SCOPE_PREPARE_SMP16_BIDI
+	SCOPE_HANDLE_POS_BIDI
 
 	for (; x < width; x++)
 	{
-		SCOPE_GET_LERP_SMP16_BIDI
+		SCOPE_GET_INTERPOLATED_SMP16_BIDI
 		LINED_SCOPE_DRAW_SMP
-		SCOPE_UPDATE_DRAWPOS_PINGPONG
-		SCOPE_HANDLE_POS_PINGPONG
+		SCOPE_UPDATE_READPOS
+		SCOPE_HANDLE_POS_BIDI
 	}
 }
 
 // -----------------------------------------------------------------------
 
-static void scopeLine(int32_t x1, int32_t y1, int32_t y2)
+static void scopeLine(int32_t x1, int32_t y1, int32_t y2, const uint32_t color)
 {
-	const int32_t dy = y2 - y1;
-	const int32_t sy = SGN(dy);
-	const uint32_t color = video.palette[PAL_PATTEXT];
-	const int32_t pitch = sy * SCREEN_W;
+#ifdef _DEBUG
+	if (x1 < 0 || x1 >= SCREEN_W || y1 < 0 || y1 >= SCREEN_H || y2 < 0 || y2 >= SCREEN_H)
+		return;
+#endif
 
 	uint32_t *dst32 = &video.frameBuffer[(y1 * SCREEN_W) + x1];
 
 	*dst32 = color; // set first pixel
 
-	int32_t ay = ABS(dy);
-	if (ay <= 1)
+	const int32_t dy = y2 - y1;
+	if (dy == 0) // y1 == y2
 	{
-		if (ay != 0)
-			dst32 += pitch;
-
-		*++dst32 = color;
+		dst32[1] = color;
 		return;
 	}
 
+	uint32_t ay = ABS(dy);
 	int32_t d = 1 - ay;
 
 	ay <<= 1;
-	while (y1 != y2)
+
+	if (y1 > y2)
 	{
-		if (d >= 0)
+		for (; y1 != y2; y1--)
 		{
-			d -= ay;
-			dst32++;
+			if (d >= 0)
+			{
+				d -= ay;
+				dst32++;
+			}
+
+			d += 2;
+
+			dst32 -= SCREEN_W;
+			*dst32 = color;
 		}
+	}
+	else
+	{
+		for (; y1 != y2; y1++)
+		{
+			if (d >= 0)
+			{
+				d -= ay;
+				dst32++;
+			}
 
-		y1 += sy;
-		d += 2;
+			d += 2;
 
-		dst32 += pitch;
-		*dst32 = color;
+			dst32 += SCREEN_W;
+			*dst32 = color;
+		}
 	}
 }
 
@@ -230,14 +306,14 @@
 {
 	(scopeDrawRoutine)scopeDrawNoLoop_8bit,
 	(scopeDrawRoutine)scopeDrawLoop_8bit,
-	(scopeDrawRoutine)scopeDrawPingPong_8bit,
+	(scopeDrawRoutine)scopeDrawBidiLoop_8bit,
 	(scopeDrawRoutine)scopeDrawNoLoop_16bit,
 	(scopeDrawRoutine)scopeDrawLoop_16bit,
-	(scopeDrawRoutine)scopeDrawPingPong_16bit,
+	(scopeDrawRoutine)scopeDrawBidiLoop_16bit,
 	(scopeDrawRoutine)linedScopeDrawNoLoop_8bit,
 	(scopeDrawRoutine)linedScopeDrawLoop_8bit,
-	(scopeDrawRoutine)linedScopeDrawPingPong_8bit,
+	(scopeDrawRoutine)linedScopeDrawBidiLoop_8bit,
 	(scopeDrawRoutine)linedScopeDrawNoLoop_16bit,
 	(scopeDrawRoutine)linedScopeDrawLoop_16bit,
-	(scopeDrawRoutine)linedScopeDrawPingPong_16bit
+	(scopeDrawRoutine)linedScopeDrawBidiLoop_16bit
 };
--- a/src/scopes/ft2_scopedraw.h
+++ b/src/scopes/ft2_scopedraw.h
@@ -6,3 +6,6 @@
 typedef void (*scopeDrawRoutine)(const scope_t *, uint32_t, uint32_t, uint32_t);
 
 extern const scopeDrawRoutine scopeDrawRoutineTable[12]; // ft2_scopedraw.c
+
+bool calcScopeIntrpLUT(void);
+void freeScopeIntrpLUT(void);
--- a/src/scopes/ft2_scopes.c
+++ b/src/scopes/ft2_scopes.c
@@ -31,24 +31,24 @@
 
 lastChInstr_t lastChInstr[MAX_CHANNELS]; // global
 
-int32_t getSamplePosition(uint8_t ch)
+int32_t getSamplePositionFromScopes(uint8_t ch)
 {
 	if (ch >= song.numChannels)
 		return -1;
 
-	volatile scope_t *sc = &scope[ch];
+	volatile scope_t sc = scope[ch]; // cache it
 
-	// cache some stuff
-	volatile bool active = sc->active;
-	volatile int32_t position = sc->position;
-	volatile int32_t sampleEnd = sc->sampleEnd;
-
-	if (!active || sampleEnd == 0)
+	if (!sc.active || sc.sampleEnd == 0)
 		return -1;
 
-	if (position >= 0 && position < sampleEnd)
-		return position;
+	if (sc.position >= 0 && sc.position < sc.sampleEnd)
+	{
+		if (sc.samplingBackwards) // get actual bidi pos when in backwards mode
+			sc.position = (sc.sampleEnd - 1) - (sc.position - sc.loopStart);
 
+		return sc.position;
+	}
+
 	return -1; // not active or overflown
 }
 
@@ -301,16 +301,24 @@
 		loopType = 0;
 
 	if (sample16Bit)
+	{
 		tempState.base16 = (const int16_t *)s->dataPtr;
+		tempState.leftEdgeTaps16 = s->leftEdgeTapSamples16 + MAX_LEFT_TAPS;
+	}
 	else
+	{
 		tempState.base8 = s->dataPtr;
+		tempState.leftEdgeTaps8 = s->leftEdgeTapSamples8 + MAX_LEFT_TAPS;
+	}
 
 	tempState.sample16Bit = sample16Bit;
 	tempState.loopType = loopType;
-	tempState.direction = 1; // forwards
+	tempState.hasLooped = false;
+	tempState.samplingBackwards = false;
 	tempState.sampleEnd = (loopType == LOOP_OFF) ? length : loopEnd;
 	tempState.loopStart = loopStart;
 	tempState.loopLength = loopLength;
+	tempState.loopEnd = loopEnd;
 	tempState.position = playOffset;
 	tempState.positionFrac = 0;
 	
@@ -347,52 +355,45 @@
 		// scope position update
 
 		s.positionFrac += s.delta;
-		const uint32_t wholeSamples = (uint32_t)(s.positionFrac >> SCOPE_FRAC_BITS);
+		s.position += s.positionFrac >> SCOPE_FRAC_BITS;
 		s.positionFrac &= SCOPE_FRAC_MASK;
 
-		if (s.direction == 1)
-			s.position += wholeSamples; // forwards
-		else
-			s.position -= wholeSamples; // backwards
-
-		// handle loop wrapping or sample end
-		if (s.direction == -1 && s.position < s.loopStart) // sampling backwards (definitely pingpong loop)
+		if (s.position >= s.sampleEnd)
 		{
-			s.direction = 1; // change direction to forwards
+			if (s.loopType == LOOP_BIDI)
+			{
+				if (s.loopLength >= 2)
+				{
+					// wrap as forward loop (position is inverted if sampling backwards, when needed)
 
-			if (s.loopLength >= 2)
-				s.position = s.loopStart + ((s.loopStart - s.position - 1) % s.loopLength);
-			else
-				s.position = s.loopStart;
+					const uint32_t overflow = s.position - s.sampleEnd;
+					const uint32_t cycles = overflow / s.loopLength;
+					const uint32_t phase = overflow % s.loopLength;
 
-			assert(s.position >= s.loopStart && s.position < s.sampleEnd);
-		}
-		else if (s.position >= s.sampleEnd)
-		{
-			uint32_t loopOverflowVal;
+					s.position = s.loopStart + phase;
+					s.samplingBackwards ^= !(cycles & 1);
+				}
+				else
+				{
+					s.position = s.loopStart;
+				}
 
-			if (s.loopLength >= 2)
-				loopOverflowVal = (s.position - s.sampleEnd) % s.loopLength;
-			else
-				loopOverflowVal = 0;
-
-			if (s.loopType == LOOP_DISABLED)
-			{
-				s.active = false;
+				s.hasLooped = true;
 			}
 			else if (s.loopType == LOOP_FORWARD)
 			{
-				s.position = s.loopStart + loopOverflowVal;
-				assert(s.position >= s.loopStart && s.position < s.sampleEnd);
+				if (s.loopLength >= 2)
+					s.position = s.loopStart + ((s.position - s.sampleEnd) % s.loopLength);
+				else
+					s.position = s.loopStart;
+
+				s.hasLooped = true;
 			}
-			else // pingpong loop
+			else // no loop
 			{
-				s.direction = -1; // change direction to backwards
-				s.position = (s.sampleEnd - 1) - loopOverflowVal;
-				assert(s.position >= s.loopStart && s.position < s.sampleEnd);
+				s.active = false;
 			}
 		}
-		assert(s.position >= 0);
 
 		*sc = s; // set new scope state
 	}
@@ -426,23 +427,21 @@
 			continue;
 		}
 
-		const scope_t s = scope[i]; // cache scope to lower thread race condition issues
+		volatile scope_t s = scope[i]; // cache scope to lower thread race condition issues
 		if (s.active && s.volume > 0 && !audio.locked)
 		{
 			// scope is active
 			scope[i].wasCleared = false;
 
-			// get relative voice Hz (in relation to middle-C rate), and scale to 16.16fp
-			const uint32_t relHz16 = (uint32_t)(scope[i].delta * (((double)SCOPE_HZ / SCOPE_FRAC_SCALE) / (C4_FREQ / 65536.0)));
+			// get relative voice Hz (in relation to C4/2 rate)
+			s.drawDelta = (uint64_t)(scope[i].delta * ((double)SCOPE_HZ / ((double)C4_FREQ / 2.0)));
 
-			scope[i].drawDelta = relHz16 << 1; // FT2 does this to the final 16.16fp value
-
 			// clear scope background
 			clearRect(scopeXOffs, scopeYOffs, scopeDrawLen, SCOPE_HEIGHT);
 
 			// draw scope
 			bool linedScopesFlag = !!(config.specialFlags & LINED_SCOPES);
-			scopeDrawRoutineTable[(linedScopesFlag * 6) + (s.sample16Bit * 3) + s.loopType](&s, scopeXOffs, scopeLineY, scopeDrawLen);
+			scopeDrawRoutineTable[(linedScopesFlag * 6) + (s.sample16Bit * 3) + s.loopType]((const scope_t *)&s, scopeXOffs, scopeLineY, scopeDrawLen);
 		}
 		else
 		{
@@ -547,6 +546,12 @@
 	if (scopeThread == NULL)
 	{
 		showErrorMsgBox("Couldn't create channel scope thread!");
+		return false;
+	}
+
+	if (!calcScopeIntrpLUT())
+	{
+		showErrorMsgBox("Not enough memory!");
 		return false;
 	}
 
--- a/src/scopes/ft2_scopes.h
+++ b/src/scopes/ft2_scopes.h
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef _ft2_scopes_h_
+#define _ft2_scopes_h_
 
 #include <stdint.h>
 #include <stdbool.h>
@@ -5,6 +6,12 @@
 #include "../ft2_header.h"
 #include "../ft2_audio.h"
 
+/* Scopes must be clocked slightly higher than the nominal vblank rate
+** to prevent update/draw racing issues. Setting it too high will
+** cause more issues!
+*/
+#define SCOPE_HZ 64
+
 #define SCOPE_HEIGHT 36
 
 #define SCOPE_FRAC_BITS 32
@@ -11,7 +18,13 @@
 #define SCOPE_FRAC_SCALE ((int64_t)1 << SCOPE_FRAC_BITS)
 #define SCOPE_FRAC_MASK (SCOPE_FRAC_SCALE-1)
 
-int32_t getSamplePosition(uint8_t ch);
+#define SCOPE_INTRP_TAPS 6
+#define SCOPE_INTRP_SCALE 32768
+#define SCOPE_INTRP_SCALE_BITS 15 /* log2(SCOPE_INTRP_SCALE) */
+#define SCOPE_INTRP_PHASES 512 /* plentiful for FT2-styled scopes */
+#define SCOPE_INTRP_PHASES_BITS 9 /* log2(SCOPE_INTRP_PHASES) */
+
+int32_t getSamplePositionFromScopes(uint8_t ch);
 void stopAllScopes(void);
 void refreshScopes(void);
 bool testScopesMouseDown(void);
@@ -25,11 +38,14 @@
 	volatile bool active;
 	const int8_t *base8;
 	const int16_t *base16;
-	bool wasCleared, sample16Bit;
+	bool wasCleared, sample16Bit, samplingBackwards, hasLooped;
 	uint8_t loopType;
-	int32_t volume, direction, loopStart, loopLength, sampleEnd, position;
-	uint32_t drawDelta;
-	uint64_t delta, positionFrac;
+	int32_t volume, loopStart, loopLength, loopEnd, sampleEnd, position;
+	uint64_t delta, drawDelta, positionFrac;
+
+	// if (loopEnabled && hasLooped && samplingPos <= loopStart+MAX_LEFT_TAPS) readFixedTapsFromThisPointer();
+	const int8_t *leftEdgeTaps8;
+	const int16_t *leftEdgeTaps16;
 } scope_t;
 
 typedef struct lastChInstr_t
@@ -38,3 +54,5 @@
 } lastChInstr_t;
 
 extern lastChInstr_t lastChInstr[MAX_CHANNELS];
+
+#endif
--- a/src/smploaders/ft2_load_aiff.c
+++ b/src/smploaders/ft2_load_aiff.c
@@ -15,7 +15,7 @@
 #include "../ft2_sysreqs.h"
 #include "../ft2_sample_loader.h"
 
-static uint32_t getAIFFSampleRate(uint8_t *in);
+static double getAIFFSampleRate(uint8_t *in);
 static bool aiffIsStereo(FILE *f); // only ran on files that are confirmed to be AIFFs
 
 bool loadAIFF(FILE *f, uint32_t filesize)
@@ -128,7 +128,7 @@
 		return false;
 	}
 
-	uint32_t sampleRate = getAIFFSampleRate(sampleRateBytes);
+	double dSampleRate = getAIFFSampleRate(sampleRateBytes);
 
 	// sample data chunk
 
@@ -578,14 +578,14 @@
 	s->volume = 64;
 	s->panning = 128;
 
-	tuneSample(s, sampleRate, audio.linearPeriodsFlag);
+	setSampleC4Hz(s, dSampleRate);
 
 	return true;
 }
 
-static uint32_t getAIFFSampleRate(uint8_t *in)
+static double getAIFFSampleRate(uint8_t *in)
 {
-	/* 80-bit IEEE-754 to unsigned 32-bit integer (rounded).
+	/* 80-bit IEEE-754 to unsigned double-precision float.
 	** Sign bit is ignored.
 	*/
 
@@ -598,8 +598,7 @@
 	double dExp = exp15 - EXP_BIAS;
 	double dMantissa = mantissa63 / (INT64_MAX+1.0);
 
-	double dResult = (1.0 + dMantissa) * exp2(dExp);
-	return (uint32_t)round(dResult);
+	return (1.0 + dMantissa) * exp2(dExp);
 }
 
 static bool aiffIsStereo(FILE *f) // only ran on files that are confirmed to be AIFFs
--- /dev/null
+++ b/src/smploaders/ft2_load_brr.c
@@ -1,0 +1,182 @@
+/* Super Nintendo BRR sample loader (based on work by _astriid_, but heavily modified)
+**
+** Note: Vol/loop sanitation is done in the last stage
+** of sample loading, so you don't need to do that here.
+** Do NOT close the file handle!
+*/
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include "../ft2_header.h"
+#include "../ft2_sample_ed.h"
+#include "../ft2_sysreqs.h"
+#include "../ft2_sample_loader.h"
+
+#define BRR_RATIO(x) (((x) * 16) / 9)
+
+static int16_t s1, s2;
+
+bool detectBRR(FILE *f)
+{
+	if (f == NULL)
+		return false;
+
+	uint32_t oldPos = (uint32_t)ftell(f);
+	fseek(f, 0, SEEK_END);
+	uint32_t filesize = (uint32_t)ftell(f);
+
+	const uint32_t filesizeMod9 = filesize % 9;
+
+	if (filesize < 11 || filesize > 65536 || (filesizeMod9 != 0 && filesizeMod9 != 2))
+		goto error; // definitely not a BRR file
+
+	rewind(f);
+
+	uint32_t blockBytes = filesize;
+	if (filesizeMod9 == 2) // skip loop block word
+	{
+		fseek(f, 2, SEEK_CUR);
+		blockBytes -= 2;
+	}
+
+	uint32_t numBlocks = blockBytes / 9;
+
+	// if the first block is the last, this is very unlikely to be a real BRR sample
+	uint8_t header = (uint8_t)fgetc(f);
+	if (header & 1)
+		goto error;
+
+	/* Test the shift range of a few blocks.
+	** While it's possible to have a shift value above 12 (illegal),
+	** it's rare in dumped BRR samples. I have personally seen 13,
+	** but never above, so let's test for >13 then.
+	*/
+	uint32_t blocksToTest = 8;
+	if (blocksToTest > numBlocks)
+		blocksToTest = numBlocks;
+
+	for (uint32_t i = 0; i < blocksToTest; i++)
+	{
+		const uint8_t shift = header >> 4;
+		if (shift > 13)
+			goto error;
+
+		fseek(f, 8, SEEK_CUR);
+		header = (uint8_t)fgetc(f);
+	}
+
+	fseek(f, oldPos, SEEK_SET);
+	return true;
+
+error:
+	fseek(f, oldPos, SEEK_SET);
+	return false;
+}
+
+static int16_t decodeSample(int8_t nybble, int32_t shift, int32_t filter)
+{
+	int32_t smp = (nybble << shift) >> 1;
+	if (shift >= 13)
+		smp &= ~2047; // invalid shift clamping
+
+	switch (filter)
+	{
+		default: break;
+
+		case 1:
+			smp += (s1 * 15) >> 4;
+			break;
+
+		case 2:
+			smp += (s1 * 61) >> 5;
+			smp -= (s2 * 15) >> 4;
+			break;
+
+		case 3:
+			smp += (s1 * 115) >> 6;
+			smp -= (s2 *  13) >> 4;
+			break;
+	}
+
+	// clamp as 16-bit, even if we decode into a 15-bit sample
+	smp = CLAMP(smp, -32768, 32767);
+
+	// 15-bit clip
+	if (smp & 16384)
+		smp |= ~16383;
+	else
+		smp &= 16383;
+
+	// shuffle last samples (store as 15-bit sample)
+	s2 = s1;
+	s1 = (int16_t)smp;
+
+	return (int16_t)(smp << 1); // multiply by two to get 16-bit scale
+}
+
+bool loadBRR(FILE *f, uint32_t filesize)
+{
+	sample_t *s = &tmpSmp;
+
+	uint32_t blockBytes = filesize, loopStart = 0;
+	if ((filesize % 9) == 2) // loop header present
+	{
+		uint16_t loopStartBlock;
+		fread(&loopStartBlock, 2, 1, f);
+		loopStart = BRR_RATIO(loopStartBlock);
+		blockBytes -= 2;
+	}
+
+	uint32_t sampleLength = BRR_RATIO(blockBytes);
+	if (!allocateSmpData(s, sampleLength, true))
+	{
+		loaderMsgBox("Not enough memory!");
+		return false;
+	}
+
+	uint32_t shift = 0, filter = 0;
+	bool loopFlag = false, endFlag = false;
+
+	s1 = s2 = 0; // clear last BRR samples (for decoding)
+
+	int16_t *ptr16 = (int16_t *)s->dataPtr;
+	for (uint32_t i = 0; i < blockBytes; i++)
+	{
+		const uint32_t blockOffset = i % 9;
+		const uint8_t byte = (uint8_t)fgetc(f);
+
+		if (blockOffset == 0) // this byte is the BRR header
+		{
+			shift = byte >> 4;
+			filter = (byte & 0x0C) >> 2;
+			loopFlag = !!(byte & 0x02);
+			endFlag = !!(byte & 0x01);
+			continue;
+		}
+
+		// decode samples
+		*ptr16++ = decodeSample((int8_t)byte >> 4, shift, filter);
+		*ptr16++ = decodeSample((int8_t)(byte << 4) >> 4, shift, filter);
+
+		if (endFlag && blockOffset == 8)
+		{
+			sampleLength = BRR_RATIO(i+1);
+			break;
+		}
+	}
+
+	s->volume = 64;
+	s->panning = 128;
+	s->flags |= SAMPLE_16BIT;
+	s->length = sampleLength;
+
+	if (loopFlag) // XXX: Maybe this is not how to do it..?
+	{
+		s->flags |= LOOP_FWD;
+		s->loopStart = loopStart;
+		s->loopLength = sampleLength - loopStart;
+	}
+
+	return true;
+}
--- a/src/smploaders/ft2_load_flac.c
+++ b/src/smploaders/ft2_load_flac.c
@@ -94,7 +94,7 @@
 	FLAC__stream_decoder_finish(decoder);
 	FLAC__stream_decoder_delete(decoder);
 
-	tuneSample(s, sampleRate, audio.linearPeriodsFlag);
+	setSampleC4Hz(s, sampleRate);
 
 	return true;
 
@@ -378,7 +378,7 @@
 			{
 				int16_t *dst16 = (int16_t *)s->dataPtr + samplesRead;
 				for (uint32_t i = 0; i < blockSize; i++)
-					dst16[i] = (int16_t)((src32_L[i] + src32_R[i]) >> (16+1));
+					dst16[i] = (int16_t)((src32_L[i] + src32_R[i]) >> ((24-16)+1));
 			}
 			break;
 
@@ -411,7 +411,7 @@
 			{
 				int16_t *dst16 = (int16_t *)s->dataPtr + samplesRead;
 				for (uint32_t i = 0; i < blockSize; i++)
-					dst16[i] = (int16_t)(src32[i] >> 8);
+					dst16[i] = (int16_t)(src32[i] >> (24-16));
 			}
 			break;
 
--- a/src/smploaders/ft2_load_iff.c
+++ b/src/smploaders/ft2_load_iff.c
@@ -143,7 +143,7 @@
 	s->volume = (uint8_t)volume;
 	s->panning = 128;
 
-	tuneSample(s, sampleRate, audio.linearPeriodsFlag);
+	setSampleC4Hz(s, sampleRate);
 
 	// set name
 	if (namePtr != 0 && nameLen > 0)
--- a/src/smploaders/ft2_load_wav.c
+++ b/src/smploaders/ft2_load_wav.c
@@ -592,7 +592,7 @@
 	bool sample16Bit = !!(s->flags & SAMPLE_16BIT);
 	reallocateSmpData(s, sampleLength, sample16Bit); // readjust memory needed
 
-	tuneSample(s, sampleRate, audio.linearPeriodsFlag);
+	setSampleC4Hz(s, sampleRate);
 
 	s->volume = 64;
 	s->panning = 128;
binary files a/vs2019_project/ft2-clone/SDL2.dll b/vs2019_project/ft2-clone/SDL2.dll differ
--- a/vs2019_project/ft2-clone/ft2-clone.vcxproj
+++ b/vs2019_project/ft2-clone/ft2-clone.vcxproj
@@ -361,6 +361,7 @@
     <ClCompile Include="..\..\src\mixer\ft2_mix.c" />
     <ClCompile Include="..\..\src\mixer\ft2_silence_mix.c" />
     <ClCompile Include="..\..\src\modloaders\ft2_load_digi.c" />
+    <ClCompile Include="..\..\src\modloaders\ft2_load_it.c" />
     <ClCompile Include="..\..\src\modloaders\ft2_load_mod.c" />
     <ClCompile Include="..\..\src\modloaders\ft2_load_s3m.c" />
     <ClCompile Include="..\..\src\modloaders\ft2_load_stk.c" />
@@ -382,6 +383,7 @@
     <ClCompile Include="..\..\src\scopes\ft2_scopedraw.c" />
     <ClCompile Include="..\..\src\scopes\ft2_scopes.c" />
     <ClCompile Include="..\..\src\smploaders\ft2_load_aiff.c" />
+    <ClCompile Include="..\..\src\smploaders\ft2_load_brr.c" />
     <ClCompile Include="..\..\src\smploaders\ft2_load_flac.c" />
     <ClCompile Include="..\..\src\smploaders\ft2_load_iff.c" />
     <ClCompile Include="..\..\src\smploaders\ft2_load_raw.c" />
@@ -447,4 +449,5 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
+\ No newline at end of file
--- a/vs2019_project/ft2-clone/ft2-clone.vcxproj.filters
+++ b/vs2019_project/ft2-clone/ft2-clone.vcxproj.filters
@@ -7,7 +7,6 @@
     <ClCompile Include="..\..\src\ft2_bmp.c" />
     <ClCompile Include="..\..\src\ft2_checkboxes.c" />
     <ClCompile Include="..\..\src\ft2_config.c" />
-    <ClCompile Include="..\..\src\ft2_diskop.c" />
     <ClCompile Include="..\..\src\ft2_edit.c" />
     <ClCompile Include="..\..\src\ft2_events.c" />
     <ClCompile Include="..\..\src\ft2_gui.c" />
@@ -167,6 +166,13 @@
     <ClCompile Include="..\..\src\modloaders\ft2_load_bem.c">
       <Filter>modloaders</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\ft2_diskop.c" />
+    <ClCompile Include="..\..\src\smploaders\ft2_load_brr.c">
+      <Filter>smploaders</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\modloaders\ft2_load_it.c">
+      <Filter>modloaders</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\rtmidi\RtMidi.h">
@@ -289,9 +295,6 @@
     <ClInclude Include="..\..\src\ft2_trim.h">
       <Filter>headers</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\src\ft2_unicode.h">
-      <Filter>headers</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\src\ft2_video.h">
       <Filter>headers</Filter>
     </ClInclude>
@@ -325,6 +328,9 @@
     <ClInclude Include="..\..\src\mixer\ft2_cubic_spline.h">
       <Filter>mixer</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\ft2_unicode.h">
+      <Filter>headers</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Filter Include="mixer">
@@ -355,4 +361,5 @@
   <ItemGroup>
     <ResourceCompile Include="..\..\src\ft2-clone.rc" />
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
+\ No newline at end of file
--- a/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_audio.h
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_audio.h
@@ -594,7 +594,7 @@
  *   frames_ (with stereo output, two samples--left and right--would make a
  *   single sample frame). This number should be a power of two, and may be
  *   adjusted by the audio driver to a value more suitable for the hardware.
- *   Good values seem to range between 512 and 8096 inclusive, depending on
+ *   Good values seem to range between 512 and 4096 inclusive, depending on
  *   the application and CPU speed. Smaller values reduce latency, but can
  *   lead to underflow if the application is doing heavy processing and cannot
  *   fill the audio buffer in time. Note that the number of sample frames is
--- a/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config.h
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config.h
@@ -19,315 +19,43 @@
   3. This notice may not be removed or altered from any source distribution.
 */
 
-#ifndef SDL_config_windows_h_
-#define SDL_config_windows_h_
+#ifndef SDL_config_h_
 #define SDL_config_h_
 
 #include "SDL_platform.h"
 
-/* winsdkver.h defines _WIN32_MAXVER for SDK version detection. It is present since at least the Windows 7 SDK,
- * but out of caution we'll only use it if the compiler supports __has_include() to confirm its presence.
- * If your compiler doesn't support __has_include() but you have winsdkver.h, define HAVE_WINSDKVER_H.  */
-#if !defined(HAVE_WINSDKVER_H) && defined(__has_include)
-#if __has_include(<winsdkver.h>)
-#define HAVE_WINSDKVER_H 1
-#endif
-#endif
+/**
+ *  \file SDL_config.h
+ */
 
-#ifdef HAVE_WINSDKVER_H
-#include <winsdkver.h>
-#endif
-
-/* sdkddkver.h defines more specific SDK version numbers. This is needed because older versions of the
- * Windows 10 SDK have broken declarations for the C API for DirectX 12. */
-#if !defined(HAVE_SDKDDKVER_H) && defined(__has_include)
-#if __has_include(<sdkddkver.h>)
-#define HAVE_SDKDDKVER_H 1
-#endif
-#endif
-
-#ifdef HAVE_SDKDDKVER_H
-#include <sdkddkver.h>
-#endif
-
-/* This is a set of defines to configure the SDL features */
-
-#if !defined(HAVE_STDINT_H) && !defined(_STDINT_H_)
-/* Most everything except Visual Studio 2008 and earlier has stdint.h now */
-#if defined(_MSC_VER) && (_MSC_VER < 1600)
-typedef signed __int8 int8_t;
-typedef unsigned __int8 uint8_t;
-typedef signed __int16 int16_t;
-typedef unsigned __int16 uint16_t;
-typedef signed __int32 int32_t;
-typedef unsigned __int32 uint32_t;
-typedef signed __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-#ifndef _UINTPTR_T_DEFINED
-#ifdef  _WIN64
-typedef unsigned __int64 uintptr_t;
-#else
-typedef unsigned int uintptr_t;
-#endif
-#define _UINTPTR_T_DEFINED
-#endif
-#else
-#define HAVE_STDINT_H 1
-#endif /* Visual Studio 2008 */
-#endif /* !_STDINT_H_ && !HAVE_STDINT_H */
-
-#ifdef _WIN64
-# define SIZEOF_VOIDP 8
-#else
-# define SIZEOF_VOIDP 4
-#endif
-
-#ifdef __clang__
-# define HAVE_GCC_ATOMICS 1
-#endif
-
-#define HAVE_DDRAW_H 1
-#define HAVE_DINPUT_H 1
-#define HAVE_DSOUND_H 1
-#ifndef __WATCOMC__
-#define HAVE_DXGI_H 1
-#define HAVE_XINPUT_H 1
-#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0A00  /* Windows 10 SDK */
-#define HAVE_WINDOWS_GAMING_INPUT_H 1
-#endif
-#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0602  /* Windows 8 SDK */
-#define HAVE_D3D11_H 1
-#define HAVE_ROAPI_H 1
-#endif
-#if defined(__has_include)
-#if __has_include(<d3d12.h>) && __has_include(<d3d12sdklayers.h>)
-#define HAVE_D3D12_H 1
-#endif
-#endif
-#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0603  /* Windows 8.1 SDK */
-#define HAVE_SHELLSCALINGAPI_H 1
-#endif
-#define HAVE_MMDEVICEAPI_H 1
-#define HAVE_AUDIOCLIENT_H 1
-#define HAVE_TPCSHRD_H 1
-#define HAVE_SENSORSAPI_H 1
-#endif
-#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600)
-#define HAVE_IMMINTRIN_H 1
-#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64))
-# if __has_include(<immintrin.h>)
-#   define HAVE_IMMINTRIN_H 1
-# endif
-#endif
-
-/* This is disabled by default to avoid C runtime dependencies and manifest requirements */
-#ifdef HAVE_LIBC
-/* Useful headers */
-#define STDC_HEADERS 1
-#define HAVE_CTYPE_H 1
-#define HAVE_FLOAT_H 1
-#define HAVE_LIMITS_H 1
-#define HAVE_MATH_H 1
-#define HAVE_SIGNAL_H 1
-#define HAVE_STDIO_H 1
-#define HAVE_STRING_H 1
-
-/* C library functions */
-#define HAVE_MALLOC 1
-#define HAVE_CALLOC 1
-#define HAVE_REALLOC 1
-#define HAVE_FREE 1
-#define HAVE_ALLOCA 1
-/* OpenWatcom requires specific calling conventions for qsort and bsearch */
-#ifndef __WATCOMC__
-#define HAVE_QSORT 1
-#define HAVE_BSEARCH 1
-#endif
-#define HAVE_ABS 1
-#define HAVE_MEMSET 1
-#define HAVE_MEMCPY 1
-#define HAVE_MEMMOVE 1
-#define HAVE_MEMCMP 1
-#define HAVE_STRLEN 1
-#define HAVE__STRREV 1
-/* These functions have security warnings, so we won't use them */
-/* #undef HAVE__STRUPR */
-/* #undef HAVE__STRLWR */
-#define HAVE_STRCHR 1
-#define HAVE_STRRCHR 1
-#define HAVE_STRSTR 1
-/* #undef HAVE_STRTOK_R */
-/* These functions have security warnings, so we won't use them */
-/* #undef HAVE__LTOA */
-/* #undef HAVE__ULTOA */
-#define HAVE_STRTOL 1
-#define HAVE_STRTOUL 1
-#define HAVE_STRTOD 1
-#define HAVE_ATOI 1
-#define HAVE_ATOF 1
-#define HAVE_STRCMP 1
-#define HAVE_STRNCMP 1
-#define HAVE__STRICMP 1
-#define HAVE__STRNICMP 1
-#define HAVE__WCSICMP 1
-#define HAVE__WCSNICMP 1
-#define HAVE__WCSDUP 1
-#define HAVE_ACOS   1
-#define HAVE_ASIN   1
-#define HAVE_ATAN   1
-#define HAVE_ATAN2  1
-#define HAVE_CEIL   1
-#define HAVE_COS    1
-#define HAVE_EXP    1
-#define HAVE_FABS   1
-#define HAVE_FLOOR  1
-#define HAVE_FMOD   1
-#define HAVE_LOG    1
-#define HAVE_LOG10  1
-#define HAVE_POW    1
-#define HAVE_SIN    1
-#define HAVE_SQRT   1
-#define HAVE_TAN    1
-#ifndef __WATCOMC__
-#define HAVE_ACOSF  1
-#define HAVE_ASINF  1
-#define HAVE_ATANF  1
-#define HAVE_ATAN2F 1
-#define HAVE_CEILF  1
-#define HAVE__COPYSIGN 1
-#define HAVE_COSF   1
-#define HAVE_EXPF   1
-#define HAVE_FABSF  1
-#define HAVE_FLOORF 1
-#define HAVE_FMODF  1
-#define HAVE_LOGF   1
-#define HAVE_LOG10F 1
-#define HAVE_POWF   1
-#define HAVE_SINF   1
-#define HAVE_SQRTF  1
-#define HAVE_TANF   1
-#endif
-#if defined(_MSC_VER)
-/* These functions were added with the VC++ 2013 C runtime library */
-#if _MSC_VER >= 1800
-#define HAVE_STRTOLL 1
-#define HAVE_STRTOULL 1
-#define HAVE_VSSCANF 1
-#define HAVE_LROUND 1
-#define HAVE_LROUNDF 1
-#define HAVE_ROUND 1
-#define HAVE_ROUNDF 1
-#define HAVE_SCALBN 1
-#define HAVE_SCALBNF 1
-#define HAVE_TRUNC  1
-#define HAVE_TRUNCF 1
-#endif
-/* This function is available with at least the VC++ 2008 C runtime library */
-#if _MSC_VER >= 1400
-#define HAVE__FSEEKI64 1
-#endif
-#ifdef _USE_MATH_DEFINES
-#define HAVE_M_PI 1
-#endif
-#elif defined(__WATCOMC__)
-#define HAVE__FSEEKI64 1
-#define HAVE_STRTOLL 1
-#define HAVE_STRTOULL 1
-#define HAVE_VSSCANF 1
-#define HAVE_ROUND 1
-#define HAVE_SCALBN 1
-#define HAVE_TRUNC  1
+/* Add any platform that doesn't build using the configure system. */
+#if defined(__WIN32__)
+#include "SDL_config_windows.h"
+#elif defined(__WINRT__)
+#include "SDL_config_winrt.h"
+#elif defined(__WINGDK__)
+#include "SDL_config_wingdk.h"
+#elif defined(__XBOXONE__) || defined(__XBOXSERIES__)
+#include "SDL_config_xbox.h"
+#elif defined(__MACOSX__)
+#include "SDL_config_macosx.h"
+#elif defined(__IPHONEOS__)
+#include "SDL_config_iphoneos.h"
+#elif defined(__ANDROID__)
+#include "SDL_config_android.h"
+#elif defined(__OS2__)
+#include "SDL_config_os2.h"
+#elif defined(__EMSCRIPTEN__)
+#include "SDL_config_emscripten.h"
+#elif defined(__NGAGE__)
+#include "SDL_config_ngage.h"
 #else
-#define HAVE_M_PI 1
-#endif
-#else
-#define HAVE_STDARG_H   1
-#define HAVE_STDDEF_H   1
-#endif
+/* This is a minimal configuration just to get SDL running on new platforms. */
+#include "SDL_config_minimal.h"
+#endif /* platform config */
 
-/* Enable various audio drivers */
-#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H)
-#define SDL_AUDIO_DRIVER_WASAPI 1
+#ifdef USING_GENERATED_CONFIG_H
+#error Wrong SDL_config.h, check your include path?
 #endif
-#define SDL_AUDIO_DRIVER_DSOUND 1
-#define SDL_AUDIO_DRIVER_WINMM  1
-#define SDL_AUDIO_DRIVER_DISK   1
-#define SDL_AUDIO_DRIVER_DUMMY  1
 
-/* Enable various input drivers */
-#define SDL_JOYSTICK_DINPUT 1
-#define SDL_JOYSTICK_HIDAPI 1
-#ifndef __WINRT__
-#define SDL_JOYSTICK_RAWINPUT   1
-#endif
-#define SDL_JOYSTICK_VIRTUAL    1
-#ifdef HAVE_WINDOWS_GAMING_INPUT_H
-#define SDL_JOYSTICK_WGI    1
-#endif
-#define SDL_JOYSTICK_XINPUT 1
-#define SDL_HAPTIC_DINPUT   1
-#define SDL_HAPTIC_XINPUT   1
-
-/* Enable the sensor driver */
-#ifdef HAVE_SENSORSAPI_H
-#define SDL_SENSOR_WINDOWS  1
-#else
-#define SDL_SENSOR_DUMMY    1
-#endif
-
-/* Enable various shared object loading systems */
-#define SDL_LOADSO_WINDOWS  1
-
-/* Enable various threading systems */
-#define SDL_THREAD_GENERIC_COND_SUFFIX 1
-#define SDL_THREAD_WINDOWS  1
-
-/* Enable various timer systems */
-#define SDL_TIMER_WINDOWS   1
-
-/* Enable various video drivers */
-#define SDL_VIDEO_DRIVER_DUMMY  1
-#define SDL_VIDEO_DRIVER_WINDOWS    1
-
-#ifndef SDL_VIDEO_RENDER_D3D
-#define SDL_VIDEO_RENDER_D3D    1
-#endif
-#if !defined(SDL_VIDEO_RENDER_D3D11) && defined(HAVE_D3D11_H)
-#define SDL_VIDEO_RENDER_D3D11  1
-#endif
-#if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H)
-#define SDL_VIDEO_RENDER_D3D12  1
-#endif
-
-/* Enable OpenGL support */
-#ifndef SDL_VIDEO_OPENGL
-#define SDL_VIDEO_OPENGL    1
-#endif
-#ifndef SDL_VIDEO_OPENGL_WGL
-#define SDL_VIDEO_OPENGL_WGL    1
-#endif
-#ifndef SDL_VIDEO_RENDER_OGL
-#define SDL_VIDEO_RENDER_OGL    1
-#endif
-#ifndef SDL_VIDEO_RENDER_OGL_ES2
-#define SDL_VIDEO_RENDER_OGL_ES2    1
-#endif
-#ifndef SDL_VIDEO_OPENGL_ES2
-#define SDL_VIDEO_OPENGL_ES2    1
-#endif
-#ifndef SDL_VIDEO_OPENGL_EGL
-#define SDL_VIDEO_OPENGL_EGL    1
-#endif
-
-/* Enable Vulkan support */
-#define SDL_VIDEO_VULKAN 1
-
-/* Enable system power support */
-#define SDL_POWER_WINDOWS 1
-
-/* Enable filesystem support */
-#define SDL_FILESYSTEM_WINDOWS  1
-
-#endif /* SDL_config_windows_h_ */
-
-/* vi: set ts=4 sw=4 expandtab: */
+#endif /* SDL_config_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config.h.in
@@ -1,0 +1,498 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_h_
+#define SDL_config_h_
+
+/**
+ *  \file SDL_config.h.in
+ *
+ *  This is a set of defines to configure the SDL features
+ */
+
+/* General platform specific identifiers */
+#include "SDL_platform.h"
+
+/* Make sure that this isn't included by Visual C++ */
+#ifdef _MSC_VER
+#error You should run git checkout -f include/SDL_config.h
+#endif
+
+/* C language features */
+#undef const
+#undef inline
+#undef volatile
+
+/* C datatypes */
+#if defined(__LP64__) || defined(_LP64) || defined(_WIN64)
+#define SIZEOF_VOIDP 8
+#else
+#define SIZEOF_VOIDP 4
+#endif
+
+#undef HAVE_GCC_ATOMICS
+#undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET
+
+/* Comment this if you want to build without any C library requirements */
+#undef HAVE_LIBC
+#ifdef HAVE_LIBC
+
+/* Useful headers */
+#undef STDC_HEADERS
+#undef HAVE_ALLOCA_H
+#undef HAVE_CTYPE_H
+#undef HAVE_FLOAT_H
+#undef HAVE_ICONV_H
+#undef HAVE_INTTYPES_H
+#undef HAVE_LIMITS_H
+#undef HAVE_MALLOC_H
+#undef HAVE_MATH_H
+#undef HAVE_MEMORY_H
+#undef HAVE_SIGNAL_H
+#undef HAVE_STDARG_H
+#undef HAVE_STDINT_H
+#undef HAVE_STDIO_H
+#undef HAVE_STDLIB_H
+#undef HAVE_STRINGS_H
+#undef HAVE_STRING_H
+#undef HAVE_SYS_TYPES_H
+#undef HAVE_WCHAR_H
+#undef HAVE_LINUX_INPUT_H
+#undef HAVE_PTHREAD_NP_H
+#undef HAVE_LIBUNWIND_H
+
+/* C library functions */
+#undef HAVE_DLOPEN
+#undef HAVE_MALLOC
+#undef HAVE_CALLOC
+#undef HAVE_REALLOC
+#undef HAVE_FREE
+#undef HAVE_ALLOCA
+#ifndef __WIN32__ /* Don't use C runtime versions of these on Windows */
+#undef HAVE_GETENV
+#undef HAVE_SETENV
+#undef HAVE_PUTENV
+#undef HAVE_UNSETENV
+#endif
+#undef HAVE_QSORT
+#undef HAVE_BSEARCH
+#undef HAVE_ABS
+#undef HAVE_BCOPY
+#undef HAVE_MEMSET
+#undef HAVE_MEMCPY
+#undef HAVE_MEMMOVE
+#undef HAVE_MEMCMP
+#undef HAVE_WCSLEN
+#undef HAVE_WCSLCPY
+#undef HAVE_WCSLCAT
+#undef HAVE__WCSDUP
+#undef HAVE_WCSDUP
+#undef HAVE_WCSSTR
+#undef HAVE_WCSCMP
+#undef HAVE_WCSNCMP
+#undef HAVE_WCSCASECMP
+#undef HAVE__WCSICMP
+#undef HAVE_WCSNCASECMP
+#undef HAVE__WCSNICMP
+#undef HAVE_STRLEN
+#undef HAVE_STRLCPY
+#undef HAVE_STRLCAT
+#undef HAVE__STRREV
+#undef HAVE__STRUPR
+#undef HAVE__STRLWR
+#undef HAVE_INDEX
+#undef HAVE_RINDEX
+#undef HAVE_STRCHR
+#undef HAVE_STRRCHR
+#undef HAVE_STRSTR
+#undef HAVE_STRTOK_R
+#undef HAVE_ITOA
+#undef HAVE__LTOA
+#undef HAVE__UITOA
+#undef HAVE__ULTOA
+#undef HAVE_STRTOL
+#undef HAVE_STRTOUL
+#undef HAVE__I64TOA
+#undef HAVE__UI64TOA
+#undef HAVE_STRTOLL
+#undef HAVE_STRTOULL
+#undef HAVE_STRTOD
+#undef HAVE_ATOI
+#undef HAVE_ATOF
+#undef HAVE_STRCMP
+#undef HAVE_STRNCMP
+#undef HAVE__STRICMP
+#undef HAVE_STRCASECMP
+#undef HAVE__STRNICMP
+#undef HAVE_STRNCASECMP
+#undef HAVE_STRCASESTR
+#undef HAVE_SSCANF
+#undef HAVE_VSSCANF
+#undef HAVE_SNPRINTF
+#undef HAVE_VSNPRINTF
+#undef HAVE_M_PI
+#undef HAVE_ACOS
+#undef HAVE_ACOSF
+#undef HAVE_ASIN
+#undef HAVE_ASINF
+#undef HAVE_ATAN
+#undef HAVE_ATANF
+#undef HAVE_ATAN2
+#undef HAVE_ATAN2F
+#undef HAVE_CEIL
+#undef HAVE_CEILF
+#undef HAVE_COPYSIGN
+#undef HAVE_COPYSIGNF
+#undef HAVE_COS
+#undef HAVE_COSF
+#undef HAVE_EXP
+#undef HAVE_EXPF
+#undef HAVE_FABS
+#undef HAVE_FABSF
+#undef HAVE_FLOOR
+#undef HAVE_FLOORF
+#undef HAVE_FMOD
+#undef HAVE_FMODF
+#undef HAVE_LOG
+#undef HAVE_LOGF
+#undef HAVE_LOG10
+#undef HAVE_LOG10F
+#undef HAVE_LROUND
+#undef HAVE_LROUNDF
+#undef HAVE_POW
+#undef HAVE_POWF
+#undef HAVE_ROUND
+#undef HAVE_ROUNDF
+#undef HAVE_SCALBN
+#undef HAVE_SCALBNF
+#undef HAVE_SIN
+#undef HAVE_SINF
+#undef HAVE_SQRT
+#undef HAVE_SQRTF
+#undef HAVE_TAN
+#undef HAVE_TANF
+#undef HAVE_TRUNC
+#undef HAVE_TRUNCF
+#undef HAVE_FOPEN64
+#undef HAVE_FSEEKO
+#undef HAVE_FSEEKO64
+#undef HAVE_SIGACTION
+#undef HAVE_SA_SIGACTION
+#undef HAVE_SETJMP
+#undef HAVE_NANOSLEEP
+#undef HAVE_SYSCONF
+#undef HAVE_SYSCTLBYNAME
+#undef HAVE_CLOCK_GETTIME
+#undef HAVE_GETPAGESIZE
+#undef HAVE_MPROTECT
+#undef HAVE_ICONV
+#undef SDL_USE_LIBICONV
+#undef HAVE_PTHREAD_SETNAME_NP
+#undef HAVE_PTHREAD_SET_NAME_NP
+#undef HAVE_SEM_TIMEDWAIT
+#undef HAVE_GETAUXVAL
+#undef HAVE_ELF_AUX_INFO
+#undef HAVE_POLL
+#undef HAVE_MEMFD_CREATE
+#undef HAVE_POSIX_FALLOCATE
+#undef HAVE__EXIT
+
+#else
+#define HAVE_STDARG_H 1
+#define HAVE_STDDEF_H 1
+#define HAVE_STDINT_H 1
+#endif /* HAVE_LIBC */
+
+#undef HAVE_O_CLOEXEC
+#undef HAVE_ALTIVEC_H
+#undef HAVE_DBUS_DBUS_H
+#undef HAVE_FCITX
+#undef HAVE_SYS_INOTIFY_H
+#undef HAVE_INOTIFY_INIT
+#undef HAVE_INOTIFY_INIT1
+#undef HAVE_INOTIFY
+#undef HAVE_IBUS_IBUS_H
+#undef HAVE_IMMINTRIN_H
+#undef HAVE_LIBUDEV_H
+#undef HAVE_LIBUSB
+#undef HAVE_LIBSAMPLERATE_H
+#undef HAVE_LIBDECOR_H
+#undef HAVE_LSXINTRIN_H
+#undef HAVE_LASXINTRIN_H
+
+#undef HAVE_DDRAW_H
+#undef HAVE_DINPUT_H
+#undef HAVE_DSOUND_H
+#undef HAVE_DXGI_H
+#undef HAVE_WINDOWS_GAMING_INPUT_H
+#undef HAVE_XINPUT_H
+
+#undef HAVE_MMDEVICEAPI_H
+#undef HAVE_AUDIOCLIENT_H
+#undef HAVE_TPCSHRD_H
+#undef HAVE_SENSORSAPI_H
+#undef HAVE_ROAPI_H
+#undef HAVE_SHELLSCALINGAPI_H
+
+/* SDL internal assertion support */
+#undef SDL_DEFAULT_ASSERT_LEVEL
+
+/* Allow disabling of core subsystems */
+#undef SDL_ATOMIC_DISABLED
+#undef SDL_AUDIO_DISABLED
+#undef SDL_CPUINFO_DISABLED
+#undef SDL_EVENTS_DISABLED
+#undef SDL_FILE_DISABLED
+#undef SDL_JOYSTICK_DISABLED
+#undef SDL_HAPTIC_DISABLED
+#undef SDL_HIDAPI_DISABLED
+#undef SDL_SENSOR_DISABLED
+#undef SDL_LOADSO_DISABLED
+#undef SDL_RENDER_DISABLED
+#undef SDL_THREADS_DISABLED
+#undef SDL_TIMERS_DISABLED
+#undef SDL_VIDEO_DISABLED
+#undef SDL_POWER_DISABLED
+#undef SDL_FILESYSTEM_DISABLED
+#undef SDL_LOCALE_DISABLED
+#undef SDL_MISC_DISABLED
+
+/* Enable various audio drivers */
+#undef SDL_AUDIO_DRIVER_AAUDIO
+#undef SDL_AUDIO_DRIVER_ALSA
+#undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC
+#undef SDL_AUDIO_DRIVER_ANDROID
+#undef SDL_AUDIO_DRIVER_ARTS
+#undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC
+#undef SDL_AUDIO_DRIVER_COREAUDIO
+#undef SDL_AUDIO_DRIVER_DISK
+#undef SDL_AUDIO_DRIVER_DSOUND
+#undef SDL_AUDIO_DRIVER_DUMMY
+#undef SDL_AUDIO_DRIVER_EMSCRIPTEN
+#undef SDL_AUDIO_DRIVER_ESD
+#undef SDL_AUDIO_DRIVER_ESD_DYNAMIC
+#undef SDL_AUDIO_DRIVER_FUSIONSOUND
+#undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
+#undef SDL_AUDIO_DRIVER_HAIKU
+#undef SDL_AUDIO_DRIVER_JACK
+#undef SDL_AUDIO_DRIVER_JACK_DYNAMIC
+#undef SDL_AUDIO_DRIVER_NACL
+#undef SDL_AUDIO_DRIVER_NAS
+#undef SDL_AUDIO_DRIVER_NAS_DYNAMIC
+#undef SDL_AUDIO_DRIVER_NETBSD
+#undef SDL_AUDIO_DRIVER_OPENSLES
+#undef SDL_AUDIO_DRIVER_OSS
+#undef SDL_AUDIO_DRIVER_PAUDIO
+#undef SDL_AUDIO_DRIVER_PIPEWIRE
+#undef SDL_AUDIO_DRIVER_PIPEWIRE_DYNAMIC
+#undef SDL_AUDIO_DRIVER_PULSEAUDIO
+#undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC
+#undef SDL_AUDIO_DRIVER_QSA
+#undef SDL_AUDIO_DRIVER_SNDIO
+#undef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC
+#undef SDL_AUDIO_DRIVER_SUNAUDIO
+#undef SDL_AUDIO_DRIVER_WASAPI
+#undef SDL_AUDIO_DRIVER_WINMM
+#undef SDL_AUDIO_DRIVER_OS2
+
+/* Enable various input drivers */
+#undef SDL_INPUT_LINUXEV
+#undef SDL_INPUT_FBSDKBIO
+#undef SDL_INPUT_LINUXKD
+#undef SDL_INPUT_WSCONS
+#undef SDL_JOYSTICK_HAIKU
+#undef SDL_JOYSTICK_DINPUT
+#undef SDL_JOYSTICK_WGI
+#undef SDL_JOYSTICK_XINPUT
+#undef SDL_JOYSTICK_DUMMY
+#undef SDL_JOYSTICK_IOKIT
+#undef SDL_JOYSTICK_MFI
+#undef SDL_JOYSTICK_LINUX
+#undef SDL_JOYSTICK_ANDROID
+#undef SDL_JOYSTICK_OS2
+#undef SDL_JOYSTICK_USBHID
+#undef SDL_HAVE_MACHINE_JOYSTICK_H
+#undef SDL_JOYSTICK_HIDAPI
+#undef SDL_JOYSTICK_RAWINPUT
+#undef SDL_JOYSTICK_EMSCRIPTEN
+#undef SDL_JOYSTICK_VIRTUAL
+#undef SDL_HAPTIC_DUMMY
+#undef SDL_HAPTIC_ANDROID
+#undef SDL_HAPTIC_LINUX
+#undef SDL_HAPTIC_IOKIT
+#undef SDL_HAPTIC_DINPUT
+#undef SDL_HAPTIC_XINPUT
+
+/* Enable various sensor drivers */
+#undef SDL_SENSOR_ANDROID
+#undef SDL_SENSOR_COREMOTION
+#undef SDL_SENSOR_WINDOWS
+#undef SDL_SENSOR_DUMMY
+
+/* Enable various shared object loading systems */
+#undef SDL_LOADSO_DLOPEN
+#undef SDL_LOADSO_DUMMY
+#undef SDL_LOADSO_LDG
+#undef SDL_LOADSO_WINDOWS
+#undef SDL_LOADSO_OS2
+
+/* Enable various threading systems */
+#undef SDL_THREAD_GENERIC_COND_SUFFIX
+#undef SDL_THREAD_PTHREAD
+#undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX
+#undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP
+#undef SDL_THREAD_WINDOWS
+#undef SDL_THREAD_OS2
+
+/* Enable various timer systems */
+#undef SDL_TIMER_HAIKU
+#undef SDL_TIMER_DUMMY
+#undef SDL_TIMER_UNIX
+#undef SDL_TIMER_WINDOWS
+#undef SDL_TIMER_OS2
+
+/* Enable various video drivers */
+#undef SDL_VIDEO_DRIVER_HAIKU
+#undef SDL_VIDEO_DRIVER_COCOA
+#undef SDL_VIDEO_DRIVER_DIRECTFB
+#undef SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC
+#undef SDL_VIDEO_DRIVER_DUMMY
+#undef SDL_VIDEO_DRIVER_WINDOWS
+#undef SDL_VIDEO_DRIVER_WAYLAND
+#undef SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH
+#undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC
+#undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL
+#undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR
+#undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON
+#undef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR
+#undef SDL_VIDEO_DRIVER_X11
+#undef SDL_VIDEO_DRIVER_RPI
+#undef SDL_VIDEO_DRIVER_KMSDRM
+#undef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC
+#undef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM
+#undef SDL_VIDEO_DRIVER_ANDROID
+#undef SDL_VIDEO_DRIVER_EMSCRIPTEN
+#undef SDL_VIDEO_DRIVER_OFFSCREEN
+#undef SDL_VIDEO_DRIVER_X11_DYNAMIC
+#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
+#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR
+#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2
+#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES
+#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR
+#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS
+#undef SDL_VIDEO_DRIVER_X11_XCURSOR
+#undef SDL_VIDEO_DRIVER_X11_XDBE
+#undef SDL_VIDEO_DRIVER_X11_XINPUT2
+#undef SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
+#undef SDL_VIDEO_DRIVER_X11_XFIXES
+#undef SDL_VIDEO_DRIVER_X11_XRANDR
+#undef SDL_VIDEO_DRIVER_X11_XSCRNSAVER
+#undef SDL_VIDEO_DRIVER_X11_XSHAPE
+#undef SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS
+#undef SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM
+#undef SDL_VIDEO_DRIVER_NACL
+#undef SDL_VIDEO_DRIVER_VIVANTE
+#undef SDL_VIDEO_DRIVER_VIVANTE_VDK
+#undef SDL_VIDEO_DRIVER_OS2
+#undef SDL_VIDEO_DRIVER_QNX
+#undef SDL_VIDEO_DRIVER_RISCOS
+
+#undef SDL_VIDEO_RENDER_D3D
+#undef SDL_VIDEO_RENDER_D3D11
+#undef SDL_VIDEO_RENDER_D3D12
+#undef SDL_VIDEO_RENDER_OGL
+#undef SDL_VIDEO_RENDER_OGL_ES
+#undef SDL_VIDEO_RENDER_OGL_ES2
+#undef SDL_VIDEO_RENDER_DIRECTFB
+#undef SDL_VIDEO_RENDER_METAL
+
+/* Enable OpenGL support */
+#undef SDL_VIDEO_OPENGL
+#undef SDL_VIDEO_OPENGL_ES
+#undef SDL_VIDEO_OPENGL_ES2
+#undef SDL_VIDEO_OPENGL_BGL
+#undef SDL_VIDEO_OPENGL_CGL
+#undef SDL_VIDEO_OPENGL_EGL
+#undef SDL_VIDEO_OPENGL_GLX
+#undef SDL_VIDEO_OPENGL_WGL
+#undef SDL_VIDEO_OPENGL_OSMESA
+#undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC
+
+/* Enable Vulkan support */
+#undef SDL_VIDEO_VULKAN
+
+/* Enable Metal support */
+#undef SDL_VIDEO_METAL
+
+/* Enable system power support */
+#undef SDL_POWER_LINUX
+#undef SDL_POWER_WINDOWS
+#undef SDL_POWER_MACOSX
+#undef SDL_POWER_HAIKU
+#undef SDL_POWER_ANDROID
+#undef SDL_POWER_EMSCRIPTEN
+#undef SDL_POWER_HARDWIRED
+
+/* Enable system filesystem support */
+#undef SDL_FILESYSTEM_ANDROID
+#undef SDL_FILESYSTEM_HAIKU
+#undef SDL_FILESYSTEM_COCOA
+#undef SDL_FILESYSTEM_DUMMY
+#undef SDL_FILESYSTEM_RISCOS
+#undef SDL_FILESYSTEM_UNIX
+#undef SDL_FILESYSTEM_WINDOWS
+#undef SDL_FILESYSTEM_NACL
+#undef SDL_FILESYSTEM_EMSCRIPTEN
+#undef SDL_FILESYSTEM_OS2
+#undef SDL_FILESYSTEM_VITA
+#undef SDL_FILESYSTEM_PSP
+#undef SDL_FILESYSTEM_PS2
+
+/* Enable misc subsystem */
+#undef SDL_MISC_DUMMY
+
+/* Enable locale subsystem */
+#undef SDL_LOCALE_DUMMY
+
+/* Enable assembly routines */
+#undef SDL_ALTIVEC_BLITTERS
+#undef SDL_ARM_SIMD_BLITTERS
+#undef SDL_ARM_NEON_BLITTERS
+
+/* Whether SDL_DYNAMIC_API needs dlopen() */
+#undef DYNAPI_NEEDS_DLOPEN
+
+/* Enable ime support */
+#undef SDL_USE_IME
+
+/* Enable dynamic udev support */
+#undef SDL_UDEV_DYNAMIC
+
+/* Enable dynamic libusb support */
+#undef SDL_LIBUSB_DYNAMIC
+
+/* Enable dynamic libsamplerate support */
+#undef SDL_LIBSAMPLERATE_DYNAMIC
+
+/* Libdecor get min/max content size functions */
+#undef SDL_HAVE_LIBDECOR_GET_MIN_MAX
+
+#endif /* SDL_config_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_android.h
@@ -1,0 +1,194 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_android_h_
+#define SDL_config_android_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+/**
+ *  \file SDL_config_android.h
+ *
+ *  This is a configuration that can be used to build SDL for Android
+ */
+
+#include <stdarg.h>
+
+#define HAVE_GCC_ATOMICS    1
+
+#define STDC_HEADERS    1
+#define HAVE_ALLOCA_H       1
+#define HAVE_CTYPE_H    1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H   1
+#define HAVE_MATH_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDINT_H   1
+#define HAVE_STDIO_H    1
+#define HAVE_STRING_H   1
+#define HAVE_SYS_TYPES_H    1
+
+/* C library functions */
+#define HAVE_DLOPEN 1
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC    1
+#define HAVE_FREE   1
+#define HAVE_ALLOCA 1
+#define HAVE_GETENV 1
+#define HAVE_SETENV 1
+#define HAVE_PUTENV 1
+#define HAVE_SETENV 1
+#define HAVE_UNSETENV   1
+#define HAVE_QSORT  1
+#define HAVE_BSEARCH 1
+#define HAVE_ABS    1
+#define HAVE_BCOPY  1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE    1
+#define HAVE_MEMCMP 1
+#define HAVE_STRLEN 1
+#define HAVE_STRLCPY    1
+#define HAVE_STRLCAT    1
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR    1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOK_R 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL    1
+#define HAVE_STRTOLL    1
+#define HAVE_STRTOULL   1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI   1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP    1
+#define HAVE_STRCASECMP 1
+#define HAVE_STRNCASECMP 1
+#define HAVE_STRCASESTR 1
+#define HAVE_VSSCANF 1
+#define HAVE_VSNPRINTF  1
+#define HAVE_ACOS   1
+#define HAVE_ACOSF  1
+#define HAVE_ASIN   1
+#define HAVE_ASINF  1
+#define HAVE_ATAN   1
+#define HAVE_ATANF  1
+#define HAVE_ATAN2  1
+#define HAVE_ATAN2F 1
+#define HAVE_CEIL   1
+#define HAVE_CEILF  1
+#define HAVE_COPYSIGN   1
+#define HAVE_COPYSIGNF  1
+#define HAVE_COS    1
+#define HAVE_COSF   1
+#define HAVE_EXP    1
+#define HAVE_EXPF   1
+#define HAVE_FABS   1
+#define HAVE_FABSF  1
+#define HAVE_FLOOR  1
+#define HAVE_FLOORF 1
+#define HAVE_FMOD   1
+#define HAVE_FMODF  1
+#define HAVE_LOG    1
+#define HAVE_LOGF   1
+#define HAVE_LOG10  1
+#define HAVE_LOG10F 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_POW    1
+#define HAVE_POWF   1
+#define HAVE_ROUND  1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SCALBNF    1
+#define HAVE_SIN    1
+#define HAVE_SINF   1
+#define HAVE_SQRT   1
+#define HAVE_SQRTF  1
+#define HAVE_TAN    1
+#define HAVE_TANF   1
+#define HAVE_TRUNC    1
+#define HAVE_TRUNCF   1
+#define HAVE_SIGACTION 1
+#define HAVE_SETJMP 1
+#define HAVE_NANOSLEEP  1
+#define HAVE_SYSCONF    1
+#define HAVE_CLOCK_GETTIME  1
+
+#ifdef __LP64__
+#define SIZEOF_VOIDP 8
+#else
+#define SIZEOF_VOIDP 4
+#endif
+
+/* Enable various audio drivers */
+#define SDL_AUDIO_DRIVER_ANDROID    1
+#define SDL_AUDIO_DRIVER_OPENSLES   1
+#define SDL_AUDIO_DRIVER_AAUDIO     1
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable various input drivers */
+#define SDL_JOYSTICK_ANDROID    1
+#define SDL_JOYSTICK_HIDAPI     1
+#define SDL_JOYSTICK_VIRTUAL    1
+#define SDL_HAPTIC_ANDROID  1
+
+/* Enable sensor driver */
+#define SDL_SENSOR_ANDROID  1
+
+/* Enable various shared object loading systems */
+#define SDL_LOADSO_DLOPEN   1
+
+/* Enable various threading systems */
+#define SDL_THREAD_PTHREAD  1
+#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX  1
+
+/* Enable various timer systems */
+#define SDL_TIMER_UNIX  1
+
+/* Enable various video drivers */
+#define SDL_VIDEO_DRIVER_ANDROID 1
+
+/* Enable OpenGL ES */
+#define SDL_VIDEO_OPENGL_ES 1
+#define SDL_VIDEO_OPENGL_ES2 1
+#define SDL_VIDEO_OPENGL_EGL 1
+#define SDL_VIDEO_RENDER_OGL_ES 1
+#define SDL_VIDEO_RENDER_OGL_ES2    1
+
+/* Enable Vulkan support */
+/* Android does not support Vulkan in native code using the "armeabi" ABI. */
+#if defined(__ARM_ARCH) && __ARM_ARCH < 7
+#define SDL_VIDEO_VULKAN 0
+#else
+#define SDL_VIDEO_VULKAN 1
+#endif
+
+/* Enable system power support */
+#define SDL_POWER_ANDROID 1
+
+/* Enable the filesystem driver */
+#define SDL_FILESYSTEM_ANDROID   1
+
+#endif /* SDL_config_android_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_emscripten.h
@@ -1,0 +1,218 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef _SDL_config_emscripten_h_
+#define _SDL_config_emscripten_h_
+
+#include "SDL_platform.h"
+
+/**
+ *  \file SDL_config_emscripten.h
+ *
+ *  This is a configuration that can be used to build SDL for Emscripten.
+ */
+
+#ifdef __LP64__
+#define SIZEOF_VOIDP 8
+#else
+#define SIZEOF_VOIDP 4
+#endif
+#define HAVE_GCC_ATOMICS 1
+
+/* Useful headers */
+#define STDC_HEADERS 1
+#define HAVE_ALLOCA_H 1
+#define HAVE_CTYPE_H 1
+#define HAVE_ICONV_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_MALLOC_H 1
+#define HAVE_MATH_H 1
+#define HAVE_MEMORY_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDARG_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDIO_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_WCHAR_H 1
+
+/* C library functions */
+#define HAVE_DLOPEN 1
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC 1
+#define HAVE_FREE 1
+#define HAVE_ALLOCA 1
+#define HAVE_GETENV 1
+#define HAVE_SETENV 1
+#define HAVE_PUTENV 1
+#define HAVE_UNSETENV 1
+#define HAVE_QSORT 1
+#define HAVE_BSEARCH 1
+#define HAVE_ABS 1
+#define HAVE_BCOPY 1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMCMP 1
+#define HAVE_WCSLEN 1
+#define HAVE_WCSDUP 1
+#define HAVE_WCSSTR 1
+#define HAVE_WCSCMP 1
+#define HAVE_WCSNCMP 1
+#define HAVE_WCSCASECMP 1
+#define HAVE_WCSNCASECMP 1
+#define HAVE_STRLEN 1
+#define HAVE_STRLCPY 1
+#define HAVE_STRLCAT 1
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOK_R 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL 1
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI 1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+#define HAVE_STRCASECMP 1
+#define HAVE_STRNCASECMP 1
+#define HAVE_SSCANF 1
+#define HAVE_VSSCANF 1
+#define HAVE_VSNPRINTF 1
+#define HAVE_M_PI 1
+#define HAVE_ACOS 1
+#define HAVE_ACOSF 1
+#define HAVE_ASIN 1
+#define HAVE_ASINF 1
+#define HAVE_ATAN 1
+#define HAVE_ATANF 1
+#define HAVE_ATAN2 1
+#define HAVE_ATAN2F 1
+#define HAVE_CEIL 1
+#define HAVE_CEILF 1
+#define HAVE_COPYSIGN 1
+#define HAVE_COPYSIGNF 1
+#define HAVE_COS 1
+#define HAVE_COSF 1
+#define HAVE_EXP 1
+#define HAVE_EXPF 1
+#define HAVE_FABS 1
+#define HAVE_FABSF 1
+#define HAVE_FLOOR 1
+#define HAVE_FLOORF 1
+#define HAVE_FMOD 1
+#define HAVE_FMODF 1
+#define HAVE_LOG 1
+#define HAVE_LOGF 1
+#define HAVE_LOG10 1
+#define HAVE_LOG10F 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_POW 1
+#define HAVE_POWF 1
+#define HAVE_ROUND  1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SCALBNF 1
+#define HAVE_SIN 1
+#define HAVE_SINF 1
+#define HAVE_SQRT 1
+#define HAVE_SQRTF 1
+#define HAVE_TAN 1
+#define HAVE_TANF 1
+#define HAVE_TRUNC 1
+#define HAVE_TRUNCF 1
+#define HAVE_FSEEKO 1
+#define HAVE_FSEEKO64 1
+#define HAVE_SIGACTION 1
+#define HAVE_SA_SIGACTION 1
+#define HAVE_SETJMP 1
+#define HAVE_NANOSLEEP 1
+#define HAVE_SYSCONF 1
+#define HAVE_CLOCK_GETTIME 1
+/* #undef HAVE_GETPAGESIZE */
+#define HAVE_MPROTECT 1
+#define HAVE_ICONV 1
+
+/* SDL internal assertion support */
+/* #undef SDL_DEFAULT_ASSERT_LEVEL */
+
+#define SDL_CPUINFO_DISABLED 1
+#define SDL_HAPTIC_DISABLED 1
+#define SDL_HIDAPI_DISABLED 1
+#ifndef __EMSCRIPTEN_PTHREADS__
+#define SDL_THREADS_DISABLED 1
+#endif
+
+/* Enable various audio drivers */
+#define SDL_AUDIO_DRIVER_DISK 1
+#define SDL_AUDIO_DRIVER_DUMMY 1
+#define SDL_AUDIO_DRIVER_EMSCRIPTEN 1
+
+/* Enable various input drivers */
+#define SDL_JOYSTICK_EMSCRIPTEN 1
+
+/* Enable various sensor drivers */
+#define SDL_SENSOR_DUMMY 1
+
+/* Enable various shared object loading systems */
+#define SDL_LOADSO_DLOPEN 1
+
+/* Enable various threading systems */
+#ifdef __EMSCRIPTEN_PTHREADS__
+#define SDL_THREAD_PTHREAD 1
+#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
+#endif
+
+/* Enable various timer systems */
+#define SDL_TIMER_UNIX 1
+
+/* Enable various video drivers */
+#define SDL_VIDEO_DRIVER_EMSCRIPTEN 1
+
+#define SDL_VIDEO_RENDER_OGL_ES2 1
+
+/* Enable OpenGL support */
+/* #undef SDL_VIDEO_OPENGL */
+/* #undef SDL_VIDEO_OPENGL_ES */
+#define SDL_VIDEO_OPENGL_ES2 1
+/* #undef SDL_VIDEO_OPENGL_BGL */
+/* #undef SDL_VIDEO_OPENGL_CGL */
+/* #undef SDL_VIDEO_OPENGL_GLX */
+/* #undef SDL_VIDEO_OPENGL_WGL */
+#define SDL_VIDEO_OPENGL_EGL 1
+/* #undef SDL_VIDEO_OPENGL_OSMESA */
+/* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */
+
+/* Enable system power support */
+#define SDL_POWER_EMSCRIPTEN 1
+
+/* Enable system filesystem support */
+#define SDL_FILESYSTEM_EMSCRIPTEN 1
+
+#endif /* _SDL_config_emscripten_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_iphoneos.h
@@ -1,0 +1,217 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_iphoneos_h_
+#define SDL_config_iphoneos_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+#ifdef __LP64__
+#define SIZEOF_VOIDP 8
+#else
+#define SIZEOF_VOIDP 4
+#endif
+
+#define HAVE_GCC_ATOMICS    1
+
+#define STDC_HEADERS    1
+#define HAVE_ALLOCA_H       1
+#define HAVE_CTYPE_H    1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H   1
+#define HAVE_MATH_H 1
+#define HAVE_SIGNAL_H   1
+#define HAVE_STDINT_H   1
+#define HAVE_STDIO_H    1
+#define HAVE_STRING_H   1
+#define HAVE_SYS_TYPES_H    1
+/* The libunwind functions are only available on x86 */
+/* #undef HAVE_LIBUNWIND_H */
+
+/* C library functions */
+#define HAVE_DLOPEN 1
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC    1
+#define HAVE_FREE   1
+#define HAVE_ALLOCA 1
+#define HAVE_GETENV 1
+#define HAVE_SETENV 1
+#define HAVE_PUTENV 1
+#define HAVE_SETENV 1
+#define HAVE_UNSETENV   1
+#define HAVE_QSORT  1
+#define HAVE_BSEARCH 1
+#define HAVE_ABS    1
+#define HAVE_BCOPY  1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE    1
+#define HAVE_MEMCMP 1
+#define HAVE_STRLEN 1
+#define HAVE_STRLCPY    1
+#define HAVE_STRLCAT    1
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR    1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOK_R 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL    1
+#define HAVE_STRTOLL    1
+#define HAVE_STRTOULL   1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI   1
+#define HAVE_ATOF   1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP    1
+#define HAVE_STRCASECMP 1
+#define HAVE_STRNCASECMP 1
+#define HAVE_STRCASESTR 1
+#define HAVE_VSSCANF 1
+#define HAVE_VSNPRINTF  1
+#define HAVE_M_PI   1
+#define HAVE_ACOS   1
+#define HAVE_ACOSF  1
+#define HAVE_ASIN   1
+#define HAVE_ASINF  1
+#define HAVE_ATAN   1
+#define HAVE_ATANF  1
+#define HAVE_ATAN2  1
+#define HAVE_ATAN2F 1
+#define HAVE_CEIL   1
+#define HAVE_CEILF  1
+#define HAVE_COPYSIGN   1
+#define HAVE_COPYSIGNF  1
+#define HAVE_COS    1
+#define HAVE_COSF   1
+#define HAVE_EXP    1
+#define HAVE_EXPF   1
+#define HAVE_FABS   1
+#define HAVE_FABSF  1
+#define HAVE_FLOOR  1
+#define HAVE_FLOORF 1
+#define HAVE_FMOD   1
+#define HAVE_FMODF  1
+#define HAVE_LOG    1
+#define HAVE_LOGF   1
+#define HAVE_LOG10  1
+#define HAVE_LOG10F 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_POW    1
+#define HAVE_POWF   1
+#define HAVE_ROUND  1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SCALBNF    1
+#define HAVE_SIN    1
+#define HAVE_SINF   1
+#define HAVE_SQRT   1
+#define HAVE_SQRTF  1
+#define HAVE_TAN    1
+#define HAVE_TANF   1
+#define HAVE_TRUNC  1
+#define HAVE_TRUNCF 1
+#define HAVE_SIGACTION  1
+#define HAVE_SETJMP 1
+#define HAVE_NANOSLEEP  1
+#define HAVE_SYSCONF    1
+#define HAVE_SYSCTLBYNAME 1
+#define HAVE_O_CLOEXEC 1
+
+/* enable iPhone version of Core Audio driver */
+#define SDL_AUDIO_DRIVER_COREAUDIO 1
+/* Enable the dummy audio driver (src/audio/dummy/\*.c) */
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
+#define SDL_HAPTIC_DUMMY 1
+
+/* Enable joystick support */
+/* Only enable HIDAPI support if you want to support Steam Controllers on iOS and tvOS */
+/*#define SDL_JOYSTICK_HIDAPI 1*/
+#define SDL_JOYSTICK_MFI 1
+#define SDL_JOYSTICK_VIRTUAL    1
+
+#ifdef __TVOS__
+#define SDL_SENSOR_DUMMY    1
+#else
+/* Enable the CoreMotion sensor driver */
+#define SDL_SENSOR_COREMOTION   1
+#endif
+
+/* Enable Unix style SO loading */
+#define SDL_LOADSO_DLOPEN 1
+
+/* Enable various threading systems */
+#define SDL_THREAD_PTHREAD  1
+#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX  1
+
+/* Enable various timer systems */
+#define SDL_TIMER_UNIX  1
+
+/* Supported video drivers */
+#define SDL_VIDEO_DRIVER_UIKIT  1
+#define SDL_VIDEO_DRIVER_DUMMY  1
+
+/* Enable OpenGL ES */
+#if !TARGET_OS_MACCATALYST
+#define SDL_VIDEO_OPENGL_ES2 1
+#define SDL_VIDEO_OPENGL_ES 1
+#define SDL_VIDEO_RENDER_OGL_ES 1
+#define SDL_VIDEO_RENDER_OGL_ES2    1
+#endif
+
+/* Metal supported on 64-bit devices running iOS 8.0 and tvOS 9.0 and newer
+   Also supported in simulator from iOS 13.0 and tvOS 13.0
+ */
+#if (TARGET_OS_SIMULATOR && ((__IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || (__TV_OS_VERSION_MIN_REQUIRED >= 130000))) || (!TARGET_CPU_ARM && ((__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 90000)))
+#define SDL_PLATFORM_SUPPORTS_METAL	1
+#else
+#define SDL_PLATFORM_SUPPORTS_METAL	0
+#endif
+
+#if SDL_PLATFORM_SUPPORTS_METAL
+#define SDL_VIDEO_RENDER_METAL  1
+#endif
+
+#if SDL_PLATFORM_SUPPORTS_METAL
+#define SDL_VIDEO_VULKAN 1
+#endif
+
+#if SDL_PLATFORM_SUPPORTS_METAL
+#define SDL_VIDEO_METAL 1
+#endif
+
+/* Enable system power support */
+#define SDL_POWER_UIKIT 1
+
+/* enable iPhone keyboard support */
+#define SDL_IPHONE_KEYBOARD 1
+
+/* enable iOS extended launch screen */
+#define SDL_IPHONE_LAUNCHSCREEN 1
+
+/* enable filesystem support */
+#define SDL_FILESYSTEM_COCOA   1
+
+#endif /* SDL_config_iphoneos_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_macosx.h
@@ -1,0 +1,277 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_macosx_h_
+#define SDL_config_macosx_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+/* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */
+#include <AvailabilityMacros.h>
+
+/* This is a set of defines to configure the SDL features */
+
+#ifdef __LP64__
+    #define SIZEOF_VOIDP 8
+#else
+    #define SIZEOF_VOIDP 4
+#endif
+
+/* Useful headers */
+#define STDC_HEADERS    1
+#define HAVE_ALLOCA_H       1
+#define HAVE_CTYPE_H    1
+#define HAVE_FLOAT_H    1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H   1
+#define HAVE_MATH_H 1
+#define HAVE_SIGNAL_H   1
+#define HAVE_STDINT_H   1
+#define HAVE_STDIO_H    1
+#define HAVE_STRING_H   1
+#define HAVE_SYS_TYPES_H    1
+#define HAVE_LIBUNWIND_H    1
+
+/* C library functions */
+#define HAVE_DLOPEN 1
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC    1
+#define HAVE_FREE   1
+#define HAVE_ALLOCA 1
+#define HAVE_GETENV 1
+#define HAVE_SETENV 1
+#define HAVE_PUTENV 1
+#define HAVE_UNSETENV   1
+#define HAVE_QSORT  1
+#define HAVE_BSEARCH 1
+#define HAVE_ABS    1
+#define HAVE_BCOPY  1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE    1
+#define HAVE_MEMCMP 1
+#define HAVE_STRLEN 1
+#define HAVE_STRLCPY    1
+#define HAVE_STRLCAT    1
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR    1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOK_R 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL    1
+#define HAVE_STRTOLL    1
+#define HAVE_STRTOULL   1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI   1
+#define HAVE_ATOF   1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP    1
+#define HAVE_STRCASECMP 1
+#define HAVE_STRNCASECMP 1
+#define HAVE_STRCASESTR 1
+#define HAVE_VSSCANF 1
+#define HAVE_VSNPRINTF  1
+#define HAVE_M_PI   1
+#define HAVE_ACOS   1
+#define HAVE_ACOSF  1
+#define HAVE_ASIN   1
+#define HAVE_ASINF  1
+#define HAVE_ATAN   1
+#define HAVE_ATANF  1
+#define HAVE_ATAN2  1
+#define HAVE_ATAN2F 1
+#define HAVE_CEIL   1
+#define HAVE_CEILF  1
+#define HAVE_COPYSIGN   1
+#define HAVE_COPYSIGNF  1
+#define HAVE_COS    1
+#define HAVE_COSF   1
+#define HAVE_EXP    1
+#define HAVE_EXPF   1
+#define HAVE_FABS   1
+#define HAVE_FABSF  1
+#define HAVE_FLOOR  1
+#define HAVE_FLOORF 1
+#define HAVE_FMOD   1
+#define HAVE_FMODF  1
+#define HAVE_LOG    1
+#define HAVE_LOGF   1
+#define HAVE_LOG10  1
+#define HAVE_LOG10F 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_POW    1
+#define HAVE_POWF   1
+#define HAVE_ROUND  1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SCALBNF    1
+#define HAVE_SIN    1
+#define HAVE_SINF   1
+#define HAVE_SQRT   1
+#define HAVE_SQRTF  1
+#define HAVE_TAN    1
+#define HAVE_TANF   1
+#define HAVE_TRUNC    1
+#define HAVE_TRUNCF   1
+#define HAVE_SIGACTION  1
+#define HAVE_SETJMP 1
+#define HAVE_NANOSLEEP  1
+#define HAVE_SYSCONF    1
+#define HAVE_SYSCTLBYNAME 1
+
+#if defined(__has_include) && (defined(__i386__) || defined(__x86_64))
+# if __has_include(<immintrin.h>)
+#   define HAVE_IMMINTRIN_H 1
+# endif
+#endif
+
+#if (MAC_OS_X_VERSION_MAX_ALLOWED >= 1070)
+#define HAVE_O_CLOEXEC 1
+#endif
+
+#define HAVE_GCC_ATOMICS 1
+
+/* Enable various audio drivers */
+#define SDL_AUDIO_DRIVER_COREAUDIO  1
+#define SDL_AUDIO_DRIVER_DISK   1
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable various input drivers */
+#define SDL_JOYSTICK_HIDAPI 1
+#define SDL_JOYSTICK_IOKIT  1
+#define SDL_JOYSTICK_VIRTUAL    1
+#define SDL_HAPTIC_IOKIT    1
+
+/* The MFI controller support requires ARC Objective C runtime */
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !defined(__i386__)
+#define SDL_JOYSTICK_MFI 1
+#endif
+
+/* Enable the dummy sensor driver */
+#define SDL_SENSOR_DUMMY  1
+
+/* Enable various shared object loading systems */
+#define SDL_LOADSO_DLOPEN   1
+
+/* Enable various threading systems */
+#define SDL_THREAD_PTHREAD  1
+#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX  1
+
+/* Enable various timer systems */
+#define SDL_TIMER_UNIX  1
+
+/* Enable various video drivers */
+#define SDL_VIDEO_DRIVER_COCOA  1
+#define SDL_VIDEO_DRIVER_DUMMY  1
+#undef SDL_VIDEO_DRIVER_X11
+#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib"
+#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib"
+#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib"
+#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib"
+#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib"
+#define SDL_VIDEO_DRIVER_X11_XDBE 1
+#define SDL_VIDEO_DRIVER_X11_XRANDR 1
+#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1
+#define SDL_VIDEO_DRIVER_X11_XSHAPE 1
+#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1
+
+#ifdef MAC_OS_X_VERSION_10_8
+/*
+ * No matter the versions targeted, this is the 10.8 or later SDK, so you have
+ *  to use the external Xquartz, which is a more modern Xlib. Previous SDKs
+ *  used an older Xlib.
+ */
+#define SDL_VIDEO_DRIVER_X11_XINPUT2 1
+#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1
+#endif
+
+#ifndef SDL_VIDEO_RENDER_OGL
+#define SDL_VIDEO_RENDER_OGL    1
+#endif
+
+#ifndef SDL_VIDEO_RENDER_OGL_ES2
+#define SDL_VIDEO_RENDER_OGL_ES2 1
+#endif
+
+/* Metal only supported on 64-bit architectures with 10.11+ */
+#if TARGET_RT_64_BIT && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101100)
+#define SDL_PLATFORM_SUPPORTS_METAL    1
+#else
+#define SDL_PLATFORM_SUPPORTS_METAL    0
+#endif
+
+#ifndef SDL_VIDEO_RENDER_METAL
+#if SDL_PLATFORM_SUPPORTS_METAL
+#define SDL_VIDEO_RENDER_METAL    1
+#else
+#define SDL_VIDEO_RENDER_METAL    0
+#endif
+#endif
+
+/* Enable OpenGL support */
+#ifndef SDL_VIDEO_OPENGL
+#define SDL_VIDEO_OPENGL    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_ES2
+#define SDL_VIDEO_OPENGL_ES2    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_EGL
+#define SDL_VIDEO_OPENGL_EGL    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_CGL
+#define SDL_VIDEO_OPENGL_CGL    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_GLX
+#define SDL_VIDEO_OPENGL_GLX    1
+#endif
+
+/* Enable Vulkan and Metal support */
+#ifndef SDL_VIDEO_VULKAN
+#if SDL_PLATFORM_SUPPORTS_METAL
+#define SDL_VIDEO_VULKAN 1
+#else
+#define SDL_VIDEO_VULKAN 0
+#endif
+#endif
+
+#ifndef SDL_VIDEO_METAL
+#if SDL_PLATFORM_SUPPORTS_METAL
+#define SDL_VIDEO_METAL 1
+#else
+#define SDL_VIDEO_METAL 0
+#endif
+#endif
+
+/* Enable system power support */
+#define SDL_POWER_MACOSX 1
+
+/* enable filesystem support */
+#define SDL_FILESYSTEM_COCOA   1
+
+/* Enable assembly routines */
+#ifdef __ppc__
+#define SDL_ALTIVEC_BLITTERS    1
+#endif
+
+#endif /* SDL_config_macosx_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_minimal.h
@@ -1,0 +1,95 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_minimal_h_
+#define SDL_config_minimal_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+/**
+ *  \file SDL_config_minimal.h
+ *
+ *  This is the minimal configuration that can be used to build SDL.
+ */
+
+#define HAVE_STDARG_H   1
+#define HAVE_STDDEF_H   1
+
+#if !defined(HAVE_STDINT_H) && !defined(_STDINT_H_)
+/* Most everything except Visual Studio 2008 and earlier has stdint.h now */
+#if defined(_MSC_VER) && (_MSC_VER < 1600)
+typedef signed __int8 int8_t;
+typedef unsigned __int8 uint8_t;
+typedef signed __int16 int16_t;
+typedef unsigned __int16 uint16_t;
+typedef signed __int32 int32_t;
+typedef unsigned __int32 uint32_t;
+typedef signed __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#ifndef _UINTPTR_T_DEFINED
+#ifdef  _WIN64
+typedef unsigned __int64 uintptr_t;
+#else
+typedef unsigned int uintptr_t;
+#endif
+#define _UINTPTR_T_DEFINED
+#endif
+#else
+#define HAVE_STDINT_H 1
+#endif /* Visual Studio 2008 */
+#endif /* !_STDINT_H_ && !HAVE_STDINT_H */
+
+#ifdef __GNUC__
+#define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1
+#endif
+
+/* Enable the dummy audio driver (src/audio/dummy/\*.c) */
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */
+#define SDL_JOYSTICK_DISABLED   1
+
+/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
+#define SDL_HAPTIC_DISABLED 1
+
+/* Enable the stub HIDAPI */
+#define SDL_HIDAPI_DISABLED 1
+
+/* Enable the stub sensor driver (src/sensor/dummy/\*.c) */
+#define SDL_SENSOR_DISABLED 1
+
+/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
+#define SDL_LOADSO_DISABLED 1
+
+/* Enable the stub thread support (src/thread/generic/\*.c) */
+#define SDL_THREADS_DISABLED    1
+
+/* Enable the stub timer support (src/timer/dummy/\*.c) */
+#define SDL_TIMERS_DISABLED 1
+
+/* Enable the dummy video driver (src/video/dummy/\*.c) */
+#define SDL_VIDEO_DRIVER_DUMMY  1
+
+/* Enable the dummy filesystem driver (src/filesystem/dummy/\*.c) */
+#define SDL_FILESYSTEM_DUMMY  1
+
+#endif /* SDL_config_minimal_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_ngage.h
@@ -1,0 +1,89 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_ngage_h_
+#define SDL_config_ngage_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+typedef signed char        int8_t;
+typedef unsigned char      uint8_t;
+typedef signed short       int16_t;
+typedef unsigned short     uint16_t;
+typedef signed int         int32_t;
+typedef unsigned int       uint32_t;
+typedef signed long long   int64_t;
+typedef unsigned long long uint64_t;
+typedef unsigned long      uintptr_t;
+
+#define HAVE_STDARG_H    1
+#define HAVE_STDDEF_H    1
+#define HAVE_STDIO_H     1
+#define HAVE_STDLIB_H    1
+#define HAVE_MATH_H      1
+#define HAVE_CEIL        1
+#define HAVE_COPYSIGN    1
+#define HAVE_COS         1
+#define HAVE_EXP         1
+#define HAVE_FABS        1
+#define HAVE_FLOOR       1
+#define HAVE_LOG         1
+#define HAVE_LOG10       1
+#define HAVE_SCALBN      1
+#define HAVE_SIN         1
+#define HAVE_SQRT        1
+#define HAVE_TAN         1
+#define HAVE_MALLOC      1
+#define SDL_MAIN_NEEDED  1
+#define LACKS_SYS_MMAN_H 1
+
+/* Enable the N-Gage thread support (src/thread/ngage/\*.c) */
+#define SDL_THREAD_NGAGE 1
+
+/* Enable the N-Gage timer support (src/timer/ngage/\*.c) */
+#define SDL_TIMER_NGAGE  1
+
+/* Enable the N-Gage video driver (src/video/ngage/\*.c) */
+#define SDL_VIDEO_DRIVER_NGAGE 1
+
+/* Enable the dummy audio driver (src/audio/dummy/\*.c) */
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */
+#define SDL_JOYSTICK_DISABLED   1
+
+/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
+#define SDL_HAPTIC_DISABLED 1
+
+/* Enable the stub HIDAPI */
+#define SDL_HIDAPI_DISABLED 1
+
+/* Enable the stub sensor driver (src/sensor/dummy/\*.c) */
+#define SDL_SENSOR_DISABLED 1
+
+/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
+#define SDL_LOADSO_DISABLED 1
+
+/* Enable the dummy filesystem driver (src/filesystem/dummy/\*.c) */
+#define SDL_FILESYSTEM_DUMMY 1
+
+#endif /* SDL_config_ngage_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_os2.h
@@ -1,0 +1,204 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_os2_h_
+#define SDL_config_os2_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+#define SIZEOF_VOIDP 4
+
+#define SDL_AUDIO_DRIVER_DUMMY 1
+#define SDL_AUDIO_DRIVER_DISK 1
+#define SDL_AUDIO_DRIVER_OS2 1
+
+#define SDL_POWER_DISABLED  1
+#define SDL_HAPTIC_DISABLED 1
+
+#define SDL_SENSOR_DUMMY 1
+#define SDL_VIDEO_DRIVER_DUMMY 1
+#define SDL_VIDEO_DRIVER_OS2 1
+#define SDL_JOYSTICK_OS2 1
+#ifndef HAVE_LIBUSB_H  /* see Makefile */
+#define SDL_HIDAPI_DISABLED 1
+/*#undef SDL_JOYSTICK_HIDAPI */
+#else
+#define SDL_JOYSTICK_HIDAPI 1
+#define HAVE_LIBUSB 1
+/* dynamically loaded libusb-1.0 dll: */
+#define SDL_LIBUSB_DYNAMIC "usb100.dll"
+#endif
+#define SDL_JOYSTICK_VIRTUAL 1
+
+/* Enable OpenGL support */
+/* #undef SDL_VIDEO_OPENGL */
+
+#define SDL_THREAD_OS2 1
+#define SDL_LOADSO_OS2 1
+#define SDL_TIMER_OS2 1
+#define SDL_FILESYSTEM_OS2 1
+
+/* use libsamplerate for audio rate conversion. */
+/*#define HAVE_LIBSAMPLERATE_H 1 */
+
+/* Enable dynamic libsamplerate support */
+#define SDL_LIBSAMPLERATE_DYNAMIC "SAMPRATE.DLL"
+
+#define HAVE_LIBC 1
+
+#define HAVE_STDARG_H 1
+#define HAVE_STDDEF_H 1
+#define HAVE_STDINT_H 1
+
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_STDIO_H 1
+#define STDC_HEADERS 1
+#define HAVE_STDLIB_H 1
+#define HAVE_MALLOC_H 1
+#define HAVE_MEMORY_H 1
+#define HAVE_STRING_H 1
+#define HAVE_STRINGS_H 1
+#define HAVE_WCHAR_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_CTYPE_H 1
+#define HAVE_MATH_H 1
+#define HAVE_FLOAT_H 1
+#define HAVE_SIGNAL_H 1
+
+#if 0 /* see Makefile */
+#define HAVE_ICONV 1
+#define HAVE_ICONV_H 1
+#endif
+
+/* #undef HAVE_DLOPEN */
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC 1
+#define HAVE_FREE 1
+#if defined(__WATCOMC__)
+#define HAVE__FSEEKI64 1
+#define HAVE__FTELLI64 1
+#endif
+#define HAVE_ALLOCA 1
+#define HAVE_GETENV 1
+#define HAVE_SETENV 1
+#define HAVE_PUTENV 1
+/* OpenWatcom requires specific calling conventions for qsort and bsearch */
+#ifndef __WATCOMC__
+#define HAVE_QSORT 1
+#define HAVE_BSEARCH 1
+#endif
+#define HAVE_ABS 1
+#define HAVE_BCOPY 1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMCMP 1
+#define HAVE_WCSCMP 1
+#define HAVE__WCSICMP 1
+#define HAVE__WCSNICMP 1
+#define HAVE_WCSLEN 1
+#define HAVE_WCSLCPY 1
+#define HAVE_WCSLCAT 1
+/* #undef HAVE_WCSDUP */
+#define HAVE__WCSDUP 1
+#define HAVE_WCSSTR 1
+#define HAVE_WCSCMP 1
+#define HAVE_WCSNCMP 1
+#define HAVE_STRLEN 1
+#define HAVE_STRLCPY 1
+#define HAVE_STRLCAT 1
+#define HAVE__STRREV 1
+#define HAVE__STRUPR 1
+#define HAVE__STRLWR 1
+/* #undef HAVE_INDEX */
+/* #undef HAVE_RINDEX */
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+/* #undef HAVE_STRTOK_R */
+#define HAVE_ITOA 1
+#define HAVE__LTOA 1
+#define HAVE__ULTOA 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL 1
+#define HAVE__I64TOA 1
+#define HAVE__UI64TOA 1
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI 1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+#define HAVE_STRICMP 1
+#define HAVE_STRCASECMP 1
+#define HAVE_STRNCASECMP 1
+#define HAVE_SSCANF  1
+#define HAVE_VSSCANF 1
+#define HAVE_SNPRINTF 1
+#define HAVE_VSNPRINTF 1
+#define HAVE_SETJMP 1
+#define HAVE_ACOS 1
+/* #undef HAVE_ACOSF */
+#define HAVE_ASIN 1
+/* #undef HAVE_ASINF */
+#define HAVE_ATAN 1
+#define HAVE_ATAN2 1
+/* #undef HAVE_ATAN2F */
+#define HAVE_CEIL 1
+/* #undef HAVE_CEILF */
+/* #undef HAVE_COPYSIGN */
+/* #undef HAVE_COPYSIGNF */
+#define HAVE_COS 1
+/* #undef HAVE_COSF */
+#define HAVE_EXP 1
+/* #undef HAVE_EXPF */
+#define HAVE_FABS 1
+/* #undef HAVE_FABSF */
+#define HAVE_FLOOR 1
+/* #undef HAVE_FLOORF */
+#define HAVE_FMOD 1
+/* #undef HAVE_FMODF */
+#define HAVE_LOG 1
+/* #undef HAVE_LOGF */
+#define HAVE_LOG10 1
+/* #undef HAVE_LOG10F */
+#define HAVE_POW 1
+/* #undef HAVE_POWF */
+#define HAVE_SIN 1
+/* #undef HAVE_SINF */
+/* #undef HAVE_SCALBN */
+/* #undef HAVE_SCALBNF */
+#define HAVE_SQRT 1
+/* #undef HAVE_SQRTF */
+#define HAVE_TAN 1
+/* #undef HAVE_TANF */
+/* #undef HAVE_TRUNC */
+/* #undef HAVE_TRUNCF */
+/* #undef HAVE_LROUND */
+/* #undef HAVE_LROUNDF */
+/* #undef HAVE_ROUND */
+/* #undef HAVE_ROUNDF */
+
+#endif /* SDL_config_os2_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_pandora.h
@@ -1,0 +1,141 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_pandora_h_
+#define SDL_config_pandora_h_
+#define SDL_config_h_
+
+/* This is a set of defines to configure the SDL features */
+
+/* General platform specific identifiers */
+#include "SDL_platform.h"
+
+#ifdef __LP64__
+#define SIZEOF_VOIDP 8
+#else
+#define SIZEOF_VOIDP 4
+#endif
+
+#define SDL_BYTEORDER 1234
+
+#define STDC_HEADERS 1
+#define HAVE_ALLOCA_H 1
+#define HAVE_CTYPE_H 1
+#define HAVE_ICONV_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_MALLOC_H 1
+#define HAVE_MATH_H 1
+#define HAVE_MEMORY_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDARG_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDIO_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_SYS_TYPES_H 1
+
+#define HAVE_DLOPEN 1
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC 1
+#define HAVE_FREE 1
+#define HAVE_ALLOCA 1
+#define HAVE_GETENV 1
+#define HAVE_SETENV 1
+#define HAVE_PUTENV 1
+#define HAVE_UNSETENV 1
+#define HAVE_QSORT 1
+#define HAVE_BSEARCH 1
+#define HAVE_ABS 1
+#define HAVE_BCOPY 1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_STRLEN 1
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL 1
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_ATOI 1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+#define HAVE_STRCASECMP 1
+#define HAVE_STRNCASECMP 1
+#define HAVE_VSSCANF 1
+#define HAVE_VSNPRINTF 1
+#define HAVE_M_PI 1
+#define HAVE_CEIL 1
+#define HAVE_COPYSIGN 1
+#define HAVE_COS 1
+#define HAVE_COSF 1
+#define HAVE_EXP 1
+#define HAVE_FABS 1
+#define HAVE_FLOOR 1
+#define HAVE_LOG 1
+#define HAVE_LOG10 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_ROUND 1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SIN 1
+#define HAVE_SINF 1
+#define HAVE_SQRT 1
+#define HAVE_SQRTF 1
+#define HAVE_TAN 1
+#define HAVE_TANF 1
+#define HAVE_TRUNC 1
+#define HAVE_TRUNCF 1
+#define HAVE_SIGACTION 1
+#define HAVE_SETJMP 1
+#define HAVE_NANOSLEEP 1
+
+#define SDL_AUDIO_DRIVER_DUMMY 1
+#define SDL_AUDIO_DRIVER_OSS 1
+
+#define SDL_INPUT_LINUXEV 1
+#define SDL_JOYSTICK_LINUX 1
+#define SDL_JOYSTICK_VIRTUAL 1
+#define SDL_HAPTIC_LINUX 1
+
+#define SDL_SENSOR_DUMMY 1
+
+#define SDL_LOADSO_DLOPEN 1
+
+#define SDL_THREAD_PTHREAD 1
+#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP 1
+
+#define SDL_TIMER_UNIX 1
+#define SDL_FILESYSTEM_UNIX 1
+
+#define SDL_VIDEO_DRIVER_DUMMY 1
+#define SDL_VIDEO_DRIVER_X11 1
+#define SDL_VIDEO_DRIVER_PANDORA 1
+#define SDL_VIDEO_RENDER_OGL_ES 1
+#define SDL_VIDEO_OPENGL_ES 1
+
+#endif /* SDL_config_pandora_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_windows.h
@@ -1,0 +1,333 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_windows_h_
+#define SDL_config_windows_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+/* winsdkver.h defines _WIN32_MAXVER for SDK version detection. It is present since at least the Windows 7 SDK,
+ * but out of caution we'll only use it if the compiler supports __has_include() to confirm its presence.
+ * If your compiler doesn't support __has_include() but you have winsdkver.h, define HAVE_WINSDKVER_H.  */
+#if !defined(HAVE_WINSDKVER_H) && defined(__has_include)
+#if __has_include(<winsdkver.h>)
+#define HAVE_WINSDKVER_H 1
+#endif
+#endif
+
+#ifdef HAVE_WINSDKVER_H
+#include <winsdkver.h>
+#endif
+
+/* sdkddkver.h defines more specific SDK version numbers. This is needed because older versions of the
+ * Windows 10 SDK have broken declarations for the C API for DirectX 12. */
+#if !defined(HAVE_SDKDDKVER_H) && defined(__has_include)
+#if __has_include(<sdkddkver.h>)
+#define HAVE_SDKDDKVER_H 1
+#endif
+#endif
+
+#ifdef HAVE_SDKDDKVER_H
+#include <sdkddkver.h>
+#endif
+
+/* This is a set of defines to configure the SDL features */
+
+#if !defined(HAVE_STDINT_H) && !defined(_STDINT_H_)
+/* Most everything except Visual Studio 2008 and earlier has stdint.h now */
+#if defined(_MSC_VER) && (_MSC_VER < 1600)
+typedef signed __int8 int8_t;
+typedef unsigned __int8 uint8_t;
+typedef signed __int16 int16_t;
+typedef unsigned __int16 uint16_t;
+typedef signed __int32 int32_t;
+typedef unsigned __int32 uint32_t;
+typedef signed __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#ifndef _UINTPTR_T_DEFINED
+#ifdef  _WIN64
+typedef unsigned __int64 uintptr_t;
+#else
+typedef unsigned int uintptr_t;
+#endif
+#define _UINTPTR_T_DEFINED
+#endif
+#else
+#define HAVE_STDINT_H 1
+#endif /* Visual Studio 2008 */
+#endif /* !_STDINT_H_ && !HAVE_STDINT_H */
+
+#ifdef _WIN64
+# define SIZEOF_VOIDP 8
+#else
+# define SIZEOF_VOIDP 4
+#endif
+
+#ifdef __clang__
+# define HAVE_GCC_ATOMICS 1
+#endif
+
+#define HAVE_DDRAW_H 1
+#define HAVE_DINPUT_H 1
+#define HAVE_DSOUND_H 1
+#ifndef __WATCOMC__
+#define HAVE_DXGI_H 1
+#define HAVE_XINPUT_H 1
+#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0A00  /* Windows 10 SDK */
+#define HAVE_WINDOWS_GAMING_INPUT_H 1
+#endif
+#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0602  /* Windows 8 SDK */
+#define HAVE_D3D11_H 1
+#define HAVE_ROAPI_H 1
+#endif
+#if defined(__has_include)
+#if __has_include(<d3d12.h>) && __has_include(<d3d12sdklayers.h>)
+#define HAVE_D3D12_H 1
+#endif
+#endif
+#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0603  /* Windows 8.1 SDK */
+#define HAVE_SHELLSCALINGAPI_H 1
+#endif
+#define HAVE_MMDEVICEAPI_H 1
+#define HAVE_AUDIOCLIENT_H 1
+#define HAVE_TPCSHRD_H 1
+#define HAVE_SENSORSAPI_H 1
+#endif
+#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600)
+#define HAVE_IMMINTRIN_H 1
+#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64))
+# if __has_include(<immintrin.h>)
+#   define HAVE_IMMINTRIN_H 1
+# endif
+#endif
+
+/* This is disabled by default to avoid C runtime dependencies and manifest requirements */
+#ifdef HAVE_LIBC
+/* Useful headers */
+#define STDC_HEADERS 1
+#define HAVE_CTYPE_H 1
+#define HAVE_FLOAT_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_MATH_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDIO_H 1
+#define HAVE_STRING_H 1
+
+/* C library functions */
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC 1
+#define HAVE_FREE 1
+#define HAVE_ALLOCA 1
+/* OpenWatcom requires specific calling conventions for qsort and bsearch */
+#ifndef __WATCOMC__
+#define HAVE_QSORT 1
+#define HAVE_BSEARCH 1
+#endif
+#define HAVE_ABS 1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMCMP 1
+#define HAVE_STRLEN 1
+#define HAVE__STRREV 1
+/* These functions have security warnings, so we won't use them */
+/* #undef HAVE__STRUPR */
+/* #undef HAVE__STRLWR */
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+/* #undef HAVE_STRTOK_R */
+/* These functions have security warnings, so we won't use them */
+/* #undef HAVE__LTOA */
+/* #undef HAVE__ULTOA */
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL 1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI 1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+#define HAVE__STRICMP 1
+#define HAVE__STRNICMP 1
+#define HAVE__WCSICMP 1
+#define HAVE__WCSNICMP 1
+#define HAVE__WCSDUP 1
+#define HAVE_ACOS   1
+#define HAVE_ASIN   1
+#define HAVE_ATAN   1
+#define HAVE_ATAN2  1
+#define HAVE_CEIL   1
+#define HAVE_COS    1
+#define HAVE_EXP    1
+#define HAVE_FABS   1
+#define HAVE_FLOOR  1
+#define HAVE_FMOD   1
+#define HAVE_LOG    1
+#define HAVE_LOG10  1
+#define HAVE_POW    1
+#define HAVE_SIN    1
+#define HAVE_SQRT   1
+#define HAVE_TAN    1
+#ifndef __WATCOMC__
+#define HAVE_ACOSF  1
+#define HAVE_ASINF  1
+#define HAVE_ATANF  1
+#define HAVE_ATAN2F 1
+#define HAVE_CEILF  1
+#define HAVE__COPYSIGN 1
+#define HAVE_COSF   1
+#define HAVE_EXPF   1
+#define HAVE_FABSF  1
+#define HAVE_FLOORF 1
+#define HAVE_FMODF  1
+#define HAVE_LOGF   1
+#define HAVE_LOG10F 1
+#define HAVE_POWF   1
+#define HAVE_SINF   1
+#define HAVE_SQRTF  1
+#define HAVE_TANF   1
+#endif
+#if defined(_MSC_VER)
+/* These functions were added with the VC++ 2013 C runtime library */
+#if _MSC_VER >= 1800
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_VSSCANF 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_ROUND 1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SCALBNF 1
+#define HAVE_TRUNC  1
+#define HAVE_TRUNCF 1
+#endif
+/* This function is available with at least the VC++ 2008 C runtime library */
+#if _MSC_VER >= 1400
+#define HAVE__FSEEKI64 1
+#endif
+#ifdef _USE_MATH_DEFINES
+#define HAVE_M_PI 1
+#endif
+#elif defined(__WATCOMC__)
+#define HAVE__FSEEKI64 1
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_VSSCANF 1
+#define HAVE_ROUND 1
+#define HAVE_SCALBN 1
+#define HAVE_TRUNC  1
+#else
+#define HAVE_M_PI 1
+#endif
+#else
+#define HAVE_STDARG_H   1
+#define HAVE_STDDEF_H   1
+#endif
+
+/* Enable various audio drivers */
+#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H)
+#define SDL_AUDIO_DRIVER_WASAPI 1
+#endif
+#define SDL_AUDIO_DRIVER_DSOUND 1
+#define SDL_AUDIO_DRIVER_WINMM  1
+#define SDL_AUDIO_DRIVER_DISK   1
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable various input drivers */
+#define SDL_JOYSTICK_DINPUT 1
+#define SDL_JOYSTICK_HIDAPI 1
+#ifndef __WINRT__
+#define SDL_JOYSTICK_RAWINPUT   1
+#endif
+#define SDL_JOYSTICK_VIRTUAL    1
+#ifdef HAVE_WINDOWS_GAMING_INPUT_H
+#define SDL_JOYSTICK_WGI    1
+#endif
+#define SDL_JOYSTICK_XINPUT 1
+#define SDL_HAPTIC_DINPUT   1
+#define SDL_HAPTIC_XINPUT   1
+
+/* Enable the sensor driver */
+#ifdef HAVE_SENSORSAPI_H
+#define SDL_SENSOR_WINDOWS  1
+#else
+#define SDL_SENSOR_DUMMY    1
+#endif
+
+/* Enable various shared object loading systems */
+#define SDL_LOADSO_WINDOWS  1
+
+/* Enable various threading systems */
+#define SDL_THREAD_GENERIC_COND_SUFFIX 1
+#define SDL_THREAD_WINDOWS  1
+
+/* Enable various timer systems */
+#define SDL_TIMER_WINDOWS   1
+
+/* Enable various video drivers */
+#define SDL_VIDEO_DRIVER_DUMMY  1
+#define SDL_VIDEO_DRIVER_WINDOWS    1
+
+#ifndef SDL_VIDEO_RENDER_D3D
+#define SDL_VIDEO_RENDER_D3D    1
+#endif
+#if !defined(SDL_VIDEO_RENDER_D3D11) && defined(HAVE_D3D11_H)
+#define SDL_VIDEO_RENDER_D3D11  1
+#endif
+#if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H)
+#define SDL_VIDEO_RENDER_D3D12  1
+#endif
+
+/* Enable OpenGL support */
+#ifndef SDL_VIDEO_OPENGL
+#define SDL_VIDEO_OPENGL    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_WGL
+#define SDL_VIDEO_OPENGL_WGL    1
+#endif
+#ifndef SDL_VIDEO_RENDER_OGL
+#define SDL_VIDEO_RENDER_OGL    1
+#endif
+#ifndef SDL_VIDEO_RENDER_OGL_ES2
+#define SDL_VIDEO_RENDER_OGL_ES2    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_ES2
+#define SDL_VIDEO_OPENGL_ES2    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_EGL
+#define SDL_VIDEO_OPENGL_EGL    1
+#endif
+
+/* Enable Vulkan support */
+#define SDL_VIDEO_VULKAN 1
+
+/* Enable system power support */
+#define SDL_POWER_WINDOWS 1
+
+/* Enable filesystem support */
+#define SDL_FILESYSTEM_WINDOWS  1
+
+#endif /* SDL_config_windows_h_ */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_wingdk.h
@@ -1,0 +1,253 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_wingdk_h_
+#define SDL_config_wingdk_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+/* Windows GDK does not need Windows SDK version checks because it requires
+ * a recent version of the Windows 10 SDK. */
+
+/* GDK only supports 64-bit */
+# define SIZEOF_VOIDP 8
+
+#ifdef __clang__
+# define HAVE_GCC_ATOMICS 1
+#endif
+
+#define HAVE_DDRAW_H 1
+#define HAVE_DINPUT_H 1
+#define HAVE_DSOUND_H 1
+/* No SDK version checks needed for these because the SDK has to be new. */
+#define HAVE_DXGI_H 1
+#define HAVE_XINPUT_H 1
+#define HAVE_WINDOWS_GAMING_INPUT_H 1
+#define HAVE_D3D11_H 1
+#define HAVE_ROAPI_H 1
+#define HAVE_D3D12_H 1
+#define HAVE_SHELLSCALINGAPI_H 1
+#define HAVE_MMDEVICEAPI_H 1
+#define HAVE_AUDIOCLIENT_H 1
+#define HAVE_TPCSHRD_H 1
+#define HAVE_SENSORSAPI_H 1
+#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600)
+#define HAVE_IMMINTRIN_H 1
+#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64))
+# if __has_include(<immintrin.h>)
+#   define HAVE_IMMINTRIN_H 1
+# endif
+#endif
+
+/* This is disabled by default to avoid C runtime dependencies and manifest requirements */
+#ifdef HAVE_LIBC
+/* Useful headers */
+#define STDC_HEADERS 1
+#define HAVE_CTYPE_H 1
+#define HAVE_FLOAT_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_MATH_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDIO_H 1
+#define HAVE_STRING_H 1
+
+/* C library functions */
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC 1
+#define HAVE_FREE 1
+#define HAVE_ALLOCA 1
+#define HAVE_QSORT 1
+#define HAVE_BSEARCH 1
+#define HAVE_ABS 1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMCMP 1
+#define HAVE_STRLEN 1
+#define HAVE__STRREV 1
+/* These functions have security warnings, so we won't use them */
+/* #undef HAVE__STRUPR */
+/* #undef HAVE__STRLWR */
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+/* #undef HAVE_STRTOK_R */
+/* These functions have security warnings, so we won't use them */
+/* #undef HAVE__LTOA */
+/* #undef HAVE__ULTOA */
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL 1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI 1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+#define HAVE__STRICMP 1
+#define HAVE__STRNICMP 1
+#define HAVE__WCSICMP 1
+#define HAVE__WCSNICMP 1
+#define HAVE__WCSDUP 1
+#define HAVE_ACOS   1
+#define HAVE_ASIN   1
+#define HAVE_ATAN   1
+#define HAVE_ATAN2  1
+#define HAVE_CEIL   1
+#define HAVE_COS    1
+#define HAVE_EXP    1
+#define HAVE_FABS   1
+#define HAVE_FLOOR  1
+#define HAVE_FMOD   1
+#define HAVE_LOG    1
+#define HAVE_LOG10  1
+#define HAVE_POW    1
+#define HAVE_SIN    1
+#define HAVE_SQRT   1
+#define HAVE_TAN    1
+#define HAVE_ACOSF  1
+#define HAVE_ASINF  1
+#define HAVE_ATANF  1
+#define HAVE_ATAN2F 1
+#define HAVE_CEILF  1
+#define HAVE__COPYSIGN 1
+#define HAVE_COSF   1
+#define HAVE_EXPF   1
+#define HAVE_FABSF  1
+#define HAVE_FLOORF 1
+#define HAVE_FMODF  1
+#define HAVE_LOGF   1
+#define HAVE_LOG10F 1
+#define HAVE_POWF   1
+#define HAVE_SINF   1
+#define HAVE_SQRTF  1
+#define HAVE_TANF   1
+#if defined(_MSC_VER)
+/* These functions were added with the VC++ 2013 C runtime library */
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_VSSCANF 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_ROUND 1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SCALBNF 1
+#define HAVE_TRUNC  1
+#define HAVE_TRUNCF 1
+#define HAVE__FSEEKI64 1
+#ifdef _USE_MATH_DEFINES
+#define HAVE_M_PI 1
+#endif
+#else
+#define HAVE_M_PI 1
+#endif
+#else
+#define HAVE_STDARG_H   1
+#define HAVE_STDDEF_H   1
+#define HAVE_STDINT_H   1
+#endif
+
+/* Enable various audio drivers */
+#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H)
+#define SDL_AUDIO_DRIVER_WASAPI 1
+#endif
+#define SDL_AUDIO_DRIVER_DSOUND 1
+#define SDL_AUDIO_DRIVER_WINMM  1
+#define SDL_AUDIO_DRIVER_DISK   1
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable various input drivers */
+#define SDL_JOYSTICK_DINPUT 1
+#define SDL_JOYSTICK_HIDAPI 1
+#define SDL_JOYSTICK_RAWINPUT   1
+#define SDL_JOYSTICK_VIRTUAL    1
+#ifdef HAVE_WINDOWS_GAMING_INPUT_H
+#define SDL_JOYSTICK_WGI    1
+#endif
+#define SDL_JOYSTICK_XINPUT 1
+#define SDL_HAPTIC_DINPUT   1
+#define SDL_HAPTIC_XINPUT   1
+
+/* Enable the sensor driver */
+#ifdef HAVE_SENSORSAPI_H
+#define SDL_SENSOR_WINDOWS  1
+#else
+#define SDL_SENSOR_DUMMY    1
+#endif
+
+/* Enable various shared object loading systems */
+#define SDL_LOADSO_WINDOWS  1
+
+/* Enable various threading systems */
+#define SDL_THREAD_GENERIC_COND_SUFFIX 1
+#define SDL_THREAD_WINDOWS  1
+
+/* Enable various timer systems */
+#define SDL_TIMER_WINDOWS   1
+
+/* Enable various video drivers */
+#define SDL_VIDEO_DRIVER_DUMMY  1
+#define SDL_VIDEO_DRIVER_WINDOWS    1
+
+#ifndef SDL_VIDEO_RENDER_D3D
+#define SDL_VIDEO_RENDER_D3D    1
+#endif
+#if !defined(SDL_VIDEO_RENDER_D3D11) && defined(HAVE_D3D11_H)
+#define SDL_VIDEO_RENDER_D3D11  1
+#endif
+#if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H)
+#define SDL_VIDEO_RENDER_D3D12  1
+#endif
+
+/* Enable OpenGL support */
+#ifndef SDL_VIDEO_OPENGL
+#define SDL_VIDEO_OPENGL    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_WGL
+#define SDL_VIDEO_OPENGL_WGL    1
+#endif
+#ifndef SDL_VIDEO_RENDER_OGL
+#define SDL_VIDEO_RENDER_OGL    1
+#endif
+#ifndef SDL_VIDEO_RENDER_OGL_ES2
+#define SDL_VIDEO_RENDER_OGL_ES2    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_ES2
+#define SDL_VIDEO_OPENGL_ES2    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_EGL
+#define SDL_VIDEO_OPENGL_EGL    1
+#endif
+
+/* Enable Vulkan support */
+#define SDL_VIDEO_VULKAN 1
+
+/* Enable system power support */
+#define SDL_POWER_WINDOWS 1
+
+/* Enable filesystem support */
+#define SDL_FILESYSTEM_WINDOWS  1
+
+#endif /* SDL_config_wingdk_h_ */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_winrt.h
@@ -1,0 +1,220 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_winrt_h_
+#define SDL_config_winrt_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+/* Make sure the Windows SDK's NTDDI_VERSION macro gets defined.  This is used
+   by SDL to determine which version of the Windows SDK is being used.
+*/
+#include <sdkddkver.h>
+
+/* Define possibly-undefined NTDDI values (used when compiling SDL against
+   older versions of the Windows SDK.
+*/
+#ifndef NTDDI_WINBLUE
+#define NTDDI_WINBLUE 0x06030000
+#endif
+#ifndef NTDDI_WIN10
+#define NTDDI_WIN10 0x0A000000
+#endif
+
+/* This is a set of defines to configure the SDL features */
+
+#ifdef _WIN64
+# define SIZEOF_VOIDP 8
+#else
+# define SIZEOF_VOIDP 4
+#endif
+
+#ifdef __clang__
+# define HAVE_GCC_ATOMICS 1
+#endif
+
+/* Useful headers */
+#define HAVE_DXGI_H 1
+#if !SDL_WINAPI_FAMILY_PHONE
+#define HAVE_XINPUT_H 1
+#endif
+
+#define HAVE_MMDEVICEAPI_H 1
+#define HAVE_AUDIOCLIENT_H 1
+#define HAVE_TPCSHRD_H 1
+
+#define HAVE_LIBC 1
+#define STDC_HEADERS 1
+#define HAVE_CTYPE_H 1
+#define HAVE_FLOAT_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_MATH_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDIO_H 1
+#define HAVE_STRING_H 1
+
+/* C library functions */
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC 1
+#define HAVE_FREE 1
+#define HAVE_ALLOCA 1
+#define HAVE_QSORT 1
+#define HAVE_BSEARCH 1
+#define HAVE_ABS 1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMCMP 1
+#define HAVE_STRLEN 1
+#define HAVE__STRREV 1
+#define HAVE__STRUPR 1
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL 1
+/* #undef HAVE_STRTOLL */
+/* #undef HAVE_STRTOULL */
+#define HAVE_STRTOD 1
+#define HAVE_ATOI 1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+#define HAVE__STRICMP 1
+#define HAVE__STRNICMP 1
+#define HAVE_VSNPRINTF 1
+/* TODO, WinRT: consider using ??_s versions of the following */
+/* #undef HAVE__STRLWR */
+/* #undef HAVE_ITOA */
+/* #undef HAVE__LTOA */
+/* #undef HAVE__ULTOA */
+/* #undef HAVE_SSCANF */
+#define HAVE_M_PI 1
+#define HAVE_ACOS   1
+#define HAVE_ACOSF  1
+#define HAVE_ASIN   1
+#define HAVE_ASINF  1
+#define HAVE_ATAN   1
+#define HAVE_ATANF  1
+#define HAVE_ATAN2  1
+#define HAVE_ATAN2F 1
+#define HAVE_CEIL   1
+#define HAVE_CEILF  1
+#define HAVE__COPYSIGN 1
+#define HAVE_COS    1
+#define HAVE_COSF   1
+#define HAVE_EXP    1
+#define HAVE_EXPF   1
+#define HAVE_FABS   1
+#define HAVE_FABSF  1
+#define HAVE_FLOOR  1
+#define HAVE_FLOORF 1
+#define HAVE_FMOD   1
+#define HAVE_FMODF  1
+#define HAVE_LOG    1
+#define HAVE_LOGF   1
+#define HAVE_LOG10  1
+#define HAVE_LOG10F 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_POW    1
+#define HAVE_POWF   1
+#define HAVE_ROUND 1
+#define HAVE_ROUNDF 1
+#define HAVE__SCALB 1
+#define HAVE_SIN    1
+#define HAVE_SINF   1
+#define HAVE_SQRT   1
+#define HAVE_SQRTF  1
+#define HAVE_TAN    1
+#define HAVE_TANF   1
+#define HAVE_TRUNC  1
+#define HAVE_TRUNCF 1
+#define HAVE__FSEEKI64 1
+
+#define HAVE_ROAPI_H  1
+
+/* Enable various audio drivers */
+#define SDL_AUDIO_DRIVER_WASAPI 1
+#define SDL_AUDIO_DRIVER_DISK   1
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable various input drivers */
+#if SDL_WINAPI_FAMILY_PHONE
+#define SDL_JOYSTICK_DISABLED 1
+#define SDL_HAPTIC_DISABLED 1
+#else
+#define SDL_JOYSTICK_VIRTUAL    1
+#if (NTDDI_VERSION >= NTDDI_WIN10)
+#define SDL_JOYSTICK_WGI    1
+#define SDL_HAPTIC_DISABLED 1
+#else
+#define SDL_JOYSTICK_XINPUT 1
+#define SDL_HAPTIC_XINPUT   1
+#endif /* WIN10 */
+#endif
+
+/* WinRT doesn't have HIDAPI available */
+#define SDL_HIDAPI_DISABLED    1
+
+/* Enable the dummy sensor driver */
+#define SDL_SENSOR_DUMMY  1
+
+/* Enable various shared object loading systems */
+#define SDL_LOADSO_WINDOWS  1
+
+/* Enable various threading systems */
+#if (NTDDI_VERSION >= NTDDI_WINBLUE)
+#define SDL_THREAD_GENERIC_COND_SUFFIX 1
+#define SDL_THREAD_WINDOWS  1
+#else
+/* WinRT on Windows 8.0 and Windows Phone 8.0 don't support CreateThread() */
+#define SDL_THREAD_STDCPP   1
+#endif
+
+/* Enable various timer systems */
+#define SDL_TIMER_WINDOWS   1
+
+/* Enable various video drivers */
+#define SDL_VIDEO_DRIVER_WINRT  1
+#define SDL_VIDEO_DRIVER_DUMMY  1
+
+/* Enable OpenGL ES 2.0 (via a modified ANGLE library) */
+#define SDL_VIDEO_OPENGL_ES2 1
+#define SDL_VIDEO_OPENGL_EGL 1
+
+/* Enable appropriate renderer(s) */
+#define SDL_VIDEO_RENDER_D3D11  1
+
+/* Disable D3D12 as it's not implemented for WinRT */
+/* #undef SDL_VIDEO_RENDER_D3D12 */
+
+#ifdef SDL_VIDEO_OPENGL_ES2
+#define SDL_VIDEO_RENDER_OGL_ES2 1
+#endif
+
+/* Enable system power support */
+#define SDL_POWER_WINRT 1
+
+#endif /* SDL_config_winrt_h_ */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_config_xbox.h
@@ -1,0 +1,240 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_wingdk_h_
+#define SDL_config_wingdk_h_
+#define SDL_config_h_
+
+#include "SDL_platform.h"
+
+/* Windows GDK does not need Windows SDK version checks because it requires
+ * a recent version of the Windows 10 SDK. */
+
+/* GDK only supports 64-bit */
+# define SIZEOF_VOIDP 8
+
+#ifdef __clang__
+# define HAVE_GCC_ATOMICS 1
+#endif
+
+/*#define HAVE_DDRAW_H 1*/
+/*#define HAVE_DINPUT_H 1*/
+/*#define HAVE_DSOUND_H 1*/
+/* No SDK version checks needed for these because the SDK has to be new. */
+/* #define HAVE_DXGI_H 1 */
+#define HAVE_XINPUT_H 1
+/*#define HAVE_WINDOWS_GAMING_INPUT_H 1*/
+/*#define HAVE_D3D11_H 1*/
+/*#define HAVE_ROAPI_H 1*/
+#define HAVE_D3D12_H 1
+/*#define HAVE_SHELLSCALINGAPI_H 1*/
+#define HAVE_MMDEVICEAPI_H 1
+#define HAVE_AUDIOCLIENT_H 1
+/*#define HAVE_TPCSHRD_H  1*/
+/*#define HAVE_SENSORSAPI_H 1*/
+#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600)
+#define HAVE_IMMINTRIN_H 1
+#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64))
+# if __has_include(<immintrin.h>)
+#   define HAVE_IMMINTRIN_H 1
+# endif
+#endif
+
+/* This is disabled by default to avoid C runtime dependencies and manifest requirements */
+#ifdef HAVE_LIBC
+/* Useful headers */
+#define STDC_HEADERS 1
+#define HAVE_CTYPE_H 1
+#define HAVE_FLOAT_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_MATH_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDIO_H 1
+#define HAVE_STRING_H 1
+
+/* C library functions */
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC 1
+#define HAVE_FREE 1
+#define HAVE_ALLOCA 1
+#define HAVE_QSORT 1
+#define HAVE_BSEARCH 1
+#define HAVE_ABS 1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMCMP 1
+#define HAVE_STRLEN 1
+#define HAVE__STRREV 1
+/* These functions have security warnings, so we won't use them */
+/* #undef HAVE__STRUPR */
+/* #undef HAVE__STRLWR */
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+/* #undef HAVE_STRTOK_R */
+/* These functions have security warnings, so we won't use them */
+/* #undef HAVE__LTOA */
+/* #undef HAVE__ULTOA */
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL 1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI 1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+#define HAVE__STRICMP 1
+#define HAVE__STRNICMP 1
+#define HAVE__WCSICMP 1
+#define HAVE__WCSNICMP 1
+#define HAVE__WCSDUP 1
+#define HAVE_ACOS   1
+#define HAVE_ASIN   1
+#define HAVE_ATAN   1
+#define HAVE_ATAN2  1
+#define HAVE_CEIL   1
+#define HAVE_COS    1
+#define HAVE_EXP    1
+#define HAVE_FABS   1
+#define HAVE_FLOOR  1
+#define HAVE_FMOD   1
+#define HAVE_LOG    1
+#define HAVE_LOG10  1
+#define HAVE_POW    1
+#define HAVE_SIN    1
+#define HAVE_SQRT   1
+#define HAVE_TAN    1
+#define HAVE_ACOSF  1
+#define HAVE_ASINF  1
+#define HAVE_ATANF  1
+#define HAVE_ATAN2F 1
+#define HAVE_CEILF  1
+#define HAVE__COPYSIGN 1
+#define HAVE_COSF   1
+#define HAVE_EXPF   1
+#define HAVE_FABSF  1
+#define HAVE_FLOORF 1
+#define HAVE_FMODF  1
+#define HAVE_LOGF   1
+#define HAVE_LOG10F 1
+#define HAVE_POWF   1
+#define HAVE_SINF   1
+#define HAVE_SQRTF  1
+#define HAVE_TANF   1
+#if defined(_MSC_VER)
+/* These functions were added with the VC++ 2013 C runtime library */
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_VSSCANF 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_ROUND 1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SCALBNF 1
+#define HAVE_TRUNC  1
+#define HAVE_TRUNCF 1
+#define HAVE__FSEEKI64 1
+#ifdef _USE_MATH_DEFINES
+#define HAVE_M_PI 1
+#endif
+#else
+#define HAVE_M_PI 1
+#endif
+#else
+#define HAVE_STDARG_H   1
+#define HAVE_STDDEF_H   1
+#define HAVE_STDINT_H   1
+#endif
+
+/* Enable various audio drivers */
+#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H)
+#define SDL_AUDIO_DRIVER_WASAPI 1
+#endif
+/*#define SDL_AUDIO_DRIVER_DSOUND 1*/
+/*#define SDL_AUDIO_DRIVER_WINMM  1*/
+#define SDL_AUDIO_DRIVER_DISK   1
+#define SDL_AUDIO_DRIVER_DUMMY  1
+
+/* Enable various input drivers */
+/*#define SDL_JOYSTICK_DINPUT 1*/
+/*#define SDL_JOYSTICK_HIDAPI 1*/
+/*#define SDL_JOYSTICK_RAWINPUT   1*/
+#define SDL_JOYSTICK_VIRTUAL    1
+#ifdef HAVE_WINDOWS_GAMING_INPUT_H
+#define SDL_JOYSTICK_WGI    1
+#endif
+#define SDL_JOYSTICK_XINPUT 1
+/*#define SDL_HAPTIC_DINPUT   1*/
+#define SDL_HAPTIC_XINPUT   1
+
+/* Enable the sensor driver */
+#ifdef HAVE_SENSORSAPI_H
+#define SDL_SENSOR_WINDOWS  1
+#else
+#define SDL_SENSOR_DUMMY    1
+#endif
+
+/* Enable various shared object loading systems */
+#define SDL_LOADSO_WINDOWS  1
+
+/* Enable various threading systems */
+#define SDL_THREAD_GENERIC_COND_SUFFIX 1
+#define SDL_THREAD_WINDOWS  1
+
+/* Enable various timer systems */
+#define SDL_TIMER_WINDOWS   1
+
+/* Enable various video drivers */
+#define SDL_VIDEO_DRIVER_DUMMY  1
+#define SDL_VIDEO_DRIVER_WINDOWS    1
+
+#if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H)
+#define SDL_VIDEO_RENDER_D3D12  1
+#endif
+
+/* Enable OpenGL support */
+#ifndef SDL_VIDEO_OPENGL
+#define SDL_VIDEO_OPENGL    1
+#endif
+#ifndef SDL_VIDEO_OPENGL_WGL
+#define SDL_VIDEO_OPENGL_WGL    1
+#endif
+#ifndef SDL_VIDEO_RENDER_OGL
+#define SDL_VIDEO_RENDER_OGL    1
+#endif
+
+/* Enable system power support */
+/*#define SDL_POWER_WINDOWS 1*/
+#define SDL_POWER_HARDWIRED 1
+
+/* Enable filesystem support */
+/* #define SDL_FILESYSTEM_WINDOWS 1*/
+#define SDL_FILESYSTEM_XBOX 1
+
+/* Disable IME as not supported yet (TODO: Xbox IME?) */
+#define SDL_DISABLE_WINDOWS_IME 1
+
+#endif /* SDL_config_wingdk_h_ */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- /dev/null
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_copying.h
@@ -1,0 +1,20 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
--- a/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_cpuinfo.h
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_cpuinfo.h
@@ -53,9 +53,11 @@
 #ifndef __MMX__
 #define __MMX__
 #endif
+/*
 #ifndef __3dNOW__
 #define __3dNOW__
 #endif
+*/
 #endif
 #ifndef __SSE__
 #define __SSE__
--- a/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_hints.h
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_hints.h
@@ -1912,6 +1912,7 @@
  * Since it's driver-specific, it's only supported where possible and
  * implemented. Currently supported the following drivers:
  *
+ * - Wayland (wayland)
  * - KMSDRM (kmsdrm)
  * - Raspberry Pi (raspberrypi)
  */
--- a/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_revision.h
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_revision.h
@@ -1,7 +1,6 @@
-/* Generated by updaterev.sh, do not edit */
 #ifdef SDL_VENDOR_INFO
-#define SDL_REVISION "SDL-release-2.30.5-0-g2eef7ca47 (" SDL_VENDOR_INFO ")"
+#define SDL_REVISION SDL_VENDOR_INFO
 #else
-#define SDL_REVISION "SDL-release-2.30.5-0-g2eef7ca47"
+#define SDL_REVISION ""
 #endif
 #define SDL_REVISION_NUMBER 0
--- a/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_stdinc.h
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_stdinc.h
@@ -255,9 +255,9 @@
 #ifndef SDL_PRIs64
 #if defined(__WIN32__) || defined(__GDK__)
 #define SDL_PRIs64 "I64d"
-#elif defined(PRIs64)
-#define SDL_PRIs64 PRIs64
-#elif defined(__LP64__) && !defined(__APPLE__)
+#elif defined(PRId64)
+#define SDL_PRIs64 PRId64
+#elif defined(__LP64__) && !defined(__APPLE__) && !defined(__EMSCRIPTEN__)
 #define SDL_PRIs64 "ld"
 #else
 #define SDL_PRIs64 "lld"
@@ -377,9 +377,12 @@
 
 #ifndef SDL_COMPILE_TIME_ASSERT
 #if defined(__cplusplus)
+/* Keep C++ case alone: Some versions of gcc will define __STDC_VERSION__ even when compiling in C++ mode. */
 #if (__cplusplus >= 201103L)
 #define SDL_COMPILE_TIME_ASSERT(name, x)  static_assert(x, #x)
 #endif
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202311L)
+#define SDL_COMPILE_TIME_ASSERT(name, x)  static_assert(x, #x)
 #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
 #define SDL_COMPILE_TIME_ASSERT(name, x) _Static_assert(x, #x)
 #endif
--- a/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_version.h
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_version.h
@@ -59,7 +59,7 @@
 */
 #define SDL_MAJOR_VERSION   2
 #define SDL_MINOR_VERSION   30
-#define SDL_PATCHLEVEL      5
+#define SDL_PATCHLEVEL      10
 
 /**
  * Macro to determine SDL version program was compiled against.
--- a/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_vulkan.h
+++ b/vs2019_project/ft2-clone/sdl/include/SDL2/SDL_vulkan.h
@@ -52,6 +52,10 @@
 VK_DEFINE_HANDLE(VkInstance)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
 
+/* Make sure to undef to avoid issues in case of later vulkan include */
+#undef VK_DEFINE_HANDLE
+#undef VK_DEFINE_NON_DISPATCHABLE_HANDLE
+
 #endif /* !NO_SDL_VULKAN_TYPEDEFS */
 
 typedef VkInstance SDL_vulkanInstance;
binary files a/vs2019_project/ft2-clone/sdl/lib/SDL2.lib b/vs2019_project/ft2-clone/sdl/lib/SDL2.lib differ
binary files a/vs2019_project/ft2-clone/sdl/lib/SDL2main.lib b/vs2019_project/ft2-clone/sdl/lib/SDL2main.lib differ
binary files a/vs2019_project/ft2-clone/sdl/lib64/SDL2.lib b/vs2019_project/ft2-clone/sdl/lib64/SDL2.lib differ
binary files a/vs2019_project/ft2-clone/sdl/lib64/SDL2main.lib b/vs2019_project/ft2-clone/sdl/lib64/SDL2main.lib differ
binary files a/vs2019_project/x64/Debug/SDL2.dll b/vs2019_project/x64/Debug/SDL2.dll differ