From d38822a3a7724139286fbc810d4ab62e0f6b67fb Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Sun, 20 Mar 2016 15:07:06 -0400 Subject: [PATCH] embed standalone web in executable --- include/CMakeLists.txt | 1 + include/standalone_html.h | 1040 ++++++++++++++++++++++++++++++++++ src/network/stand_server.cpp | 92 ++- 3 files changed, 1129 insertions(+), 4 deletions(-) create mode 100644 include/standalone_html.h diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index da687c1..85818a4 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -209,6 +209,7 @@ set(code_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/sound.h ${CMAKE_CURRENT_SOURCE_DIR}/spline.h ${CMAKE_CURRENT_SOURCE_DIR}/stand_server.h + ${CMAKE_CURRENT_SOURCE_DIR}/standalone_html.h ${CMAKE_CURRENT_SOURCE_DIR}/starfield.h ${CMAKE_CURRENT_SOURCE_DIR}/staticrand.h ${CMAKE_CURRENT_SOURCE_DIR}/stats.h diff --git a/include/standalone_html.h b/include/standalone_html.h new file mode 100644 index 0000000..345a800 --- /dev/null +++ b/include/standalone_html.h @@ -0,0 +1,1040 @@ +#ifndef STANDALONE_HTML_H +#define STANDALONE_HTML_H + +const unsigned char standalone_html[] = { + 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, 0x74, + 0x6d, 0x6c, 0x3e, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x20, 0x6c, 0x61, 0x6e, + 0x67, 0x3d, 0x65, 0x6e, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, + 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, + 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x4c, 0x61, 0x6e, 0x67, + 0x75, 0x61, 0x67, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3d, 0x65, 0x6e, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x46, + 0x72, 0x65, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x20, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x3c, 0x2f, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x68, 0x75, 0x74, + 0x64, 0x6f, 0x77, 0x6e, 0x28, 0x29, 0x7b, 0x73, 0x74, 0x64, 0x2e, 0x73, + 0x65, 0x6e, 0x64, 0x28, 0x22, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, + 0x6e, 0x22, 0x29, 0x2c, 0x73, 0x74, 0x64, 0x2e, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x28, 0x29, 0x2c, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x69, + 0x28, 0x29, 0x2c, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x22, 0x53, 0x68, + 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x3b, 0x53, 0x68, 0x75, 0x74, 0x64, + 0x6f, 0x77, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x3b, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x65, 0x29, 0x7b, 0x76, 0x61, + 0x72, 0x20, 0x74, 0x2c, 0x6e, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x70, 0x6f, 0x70, 0x22, 0x29, + 0x2c, 0x73, 0x3d, 0x5b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x22, 0x70, 0x6f, 0x70, 0x2d, 0x74, 0x22, 0x29, + 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, + 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x22, 0x70, 0x6f, 0x70, 0x2d, 0x31, 0x22, 0x29, 0x2c, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x70, + 0x6f, 0x70, 0x2d, 0x32, 0x22, 0x29, 0x5d, 0x3b, 0x69, 0x66, 0x28, 0x65, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6f, 0x3d, 0x65, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, + 0x3b, 0x22, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, + 0x74, 0x3c, 0x6f, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x74, + 0x2b, 0x2b, 0x29, 0x73, 0x5b, 0x74, 0x5d, 0x2e, 0x74, 0x65, 0x78, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x6f, 0x5b, 0x74, 0x5d, + 0x3b, 0x6e, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x3d, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, + 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x6e, 0x2e, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3d, 0x22, 0x6e, + 0x6f, 0x6e, 0x65, 0x22, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x69, 0x28, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x2c, 0x74, 0x2c, 0x6e, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x22, 0x70, 0x6f, 0x70, 0x22, 0x29, 0x2e, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3d, + 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x5f, 0x6e, 0x63, + 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x30, 0x22, 0x2c, 0x65, 0x3d, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, + 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x22, 0x29, 0x2c, 0x74, 0x3d, 0x65, + 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2c, 0x6e, 0x3d, 0x31, 0x3b, 0x74, 0x3e, 0x6e, 0x3b, 0x6e, 0x2b, 0x2b, + 0x29, 0x65, 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x6e, 0x5d, 0x2e, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x22, 0x2c, 0x65, 0x2e, + 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x6e, 0x5d, 0x2e, 0x63, 0x65, 0x6c, 0x6c, + 0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, + 0x4d, 0x4c, 0x3d, 0x22, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x22, 0x2c, + 0x65, 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x6e, 0x5d, 0x2e, 0x63, 0x65, + 0x6c, 0x6c, 0x73, 0x5b, 0x31, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x22, 0x22, 0x3b, 0x66, 0x6f, 0x72, 0x28, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x66, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x6c, 0x22, 0x29, 0x2e, 0x74, + 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, + 0x30, 0x2e, 0x30, 0x22, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x22, 0x22, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x22, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x6e, 0x67, + 0x5f, 0x70, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x22, 0x2c, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x6e, + 0x67, 0x5f, 0x6f, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x22, 0x2c, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, + 0x6e, 0x67, 0x5f, 0x73, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x22, 0x2c, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, + 0x5f, 0x6e, 0x67, 0x5f, 0x72, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x22, 0x2c, 0x65, + 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, + 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x22, 0x6d, 0x5f, 0x67, 0x22, 0x29, 0x2c, 0x74, 0x3d, 0x65, 0x2e, + 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, + 0x6e, 0x3d, 0x31, 0x3b, 0x74, 0x3e, 0x6e, 0x3b, 0x6e, 0x2b, 0x2b, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x73, 0x3d, 0x65, 0x2e, 0x72, 0x6f, 0x77, + 0x73, 0x5b, 0x6e, 0x5d, 0x2e, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x5b, 0x30, + 0x5d, 0x3b, 0x73, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x31, 0x26, + 0x26, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x69, + 0x6c, 0x64, 0x28, 0x73, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x66, 0x6f, 0x72, 0x28, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x70, 0x5f, 0x70, 0x22, 0x29, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x2d, 0x31, 0x2c, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x22, 0x2c, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x22, + 0x2c, 0x65, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x22, 0x70, 0x5f, 0x73, 0x22, 0x29, 0x2c, 0x74, 0x3d, + 0x65, 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x6e, 0x3d, 0x31, 0x3b, 0x74, 0x3e, 0x6e, 0x3b, 0x6e, 0x2b, + 0x2b, 0x29, 0x65, 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x6e, 0x5d, 0x2e, + 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x5b, 0x31, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x22, 0x22, 0x2c, 0x65, 0x2e, + 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x6e, 0x5d, 0x2e, 0x63, 0x65, 0x6c, 0x6c, + 0x73, 0x5b, 0x32, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, + 0x4d, 0x4c, 0x3d, 0x22, 0x22, 0x3b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x67, 0x5f, 0x70, 0x22, 0x29, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x3d, 0x2d, 0x31, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x67, 0x5f, 0x62, 0x22, 0x29, + 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x22, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x62, 0x28, 0x65, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x6e, 0x2c, 0x73, 0x2c, 0x6f, 0x3b, + 0x69, 0x66, 0x28, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x22, 0x3d, 0x3d, + 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, + 0x30, 0x2c, 0x35, 0x29, 0x29, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x65, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x35, 0x29, 0x3b, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x69, 0x66, 0x28, 0x22, 0x70, 0x61, 0x73, 0x73, 0x20, 0x22, + 0x3d, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x30, 0x2c, 0x35, 0x29, 0x29, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x65, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x35, 0x29, 0x3b, 0x65, + 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x22, 0x70, 0x69, 0x6e, 0x67, + 0x20, 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x35, 0x29, 0x29, 0x7b, 0x74, 0x3d, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x22, 0x29, 0x3b, 0x76, 0x61, + 0x72, 0x20, 0x64, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x28, 0x35, 0x29, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, 0x2c, + 0x22, 0x2c, 0x31, 0x32, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x6f, 0x3d, + 0x64, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x73, 0x3d, 0x30, + 0x3b, 0x6f, 0x3e, 0x73, 0x3b, 0x73, 0x2b, 0x2b, 0x29, 0x74, 0x2e, 0x72, + 0x6f, 0x77, 0x73, 0x5b, 0x73, 0x2b, 0x31, 0x5d, 0x2e, 0x63, 0x65, 0x6c, + 0x6c, 0x73, 0x5b, 0x31, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, + 0x54, 0x4d, 0x4c, 0x3d, 0x64, 0x5b, 0x73, 0x5d, 0x7d, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x69, 0x66, 0x28, 0x22, 0x63, 0x6f, 0x6e, 0x6e, 0x20, 0x22, + 0x3d, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x30, 0x2c, 0x35, 0x29, 0x29, 0x7b, 0x74, 0x3d, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x22, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, + 0x6c, 0x2c, 0x6d, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x22, 0x70, 0x5f, 0x70, 0x22, 0x29, 0x2c, 0x63, + 0x3d, 0x2d, 0x31, 0x2c, 0x72, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x67, 0x5f, 0x70, 0x22, 0x29, + 0x2c, 0x75, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, + 0x35, 0x29, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, 0x3b, 0x22, + 0x2c, 0x31, 0x32, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x2d, 0x31, 0x21, + 0x3d, 0x6d, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x26, 0x26, 0x28, 0x6c, 0x3d, 0x6d, 0x2e, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x6d, 0x2e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x29, + 0x6d, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x30, 0x29, 0x2c, + 0x72, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x30, 0x29, 0x3b, + 0x66, 0x6f, 0x72, 0x28, 0x6f, 0x3d, 0x75, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x22, 0x73, 0x5f, 0x6e, 0x63, 0x6f, 0x6e, 0x22, 0x29, + 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3d, 0x6f, 0x2c, 0x73, 0x3d, 0x30, 0x3b, 0x6f, 0x3e, 0x73, 0x3b, 0x73, + 0x2b, 0x2b, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x3d, 0x75, 0x5b, + 0x73, 0x5d, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, 0x2c, 0x22, + 0x29, 0x3b, 0x6e, 0x3d, 0x74, 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x73, + 0x2b, 0x31, 0x5d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x61, 0x3d, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x22, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x29, 0x3b, 0x61, 0x2e, 0x74, 0x65, 0x78, + 0x74, 0x3d, 0x69, 0x5b, 0x30, 0x5d, 0x2c, 0x72, 0x2e, 0x61, 0x64, 0x64, + 0x28, 0x61, 0x29, 0x2c, 0x61, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x29, 0x2c, 0x61, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x3d, 0x69, 0x5b, + 0x30, 0x5d, 0x2c, 0x6d, 0x2e, 0x61, 0x64, 0x64, 0x28, 0x61, 0x29, 0x2c, + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x6c, 0x29, 0x26, 0x26, + 0x69, 0x5b, 0x30, 0x5d, 0x3d, 0x3d, 0x6c, 0x26, 0x26, 0x28, 0x63, 0x3d, + 0x73, 0x29, 0x2c, 0x6e, 0x2e, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x5b, 0x30, + 0x5d, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, + 0x69, 0x5b, 0x31, 0x5d, 0x2c, 0x6e, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x69, + 0x63, 0x6b, 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, + 0x29, 0x7b, 0x6b, 0x69, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x28, + 0x69, 0x5b, 0x30, 0x5d, 0x2c, 0x69, 0x5b, 0x31, 0x5d, 0x29, 0x7d, 0x7d, + 0x66, 0x6f, 0x72, 0x28, 0x6f, 0x3d, 0x74, 0x2e, 0x72, 0x6f, 0x77, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x73, 0x2b, 0x3d, 0x31, + 0x3b, 0x6f, 0x3e, 0x73, 0x3b, 0x73, 0x2b, 0x2b, 0x29, 0x6e, 0x3d, 0x74, + 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x73, 0x5d, 0x2c, 0x6e, 0x2e, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x22, 0x2c, 0x6e, 0x2e, + 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x22, 0x26, 0x6e, 0x62, 0x73, + 0x70, 0x3b, 0x22, 0x2c, 0x6e, 0x2e, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x5b, + 0x31, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, + 0x3d, 0x22, 0x22, 0x3b, 0x72, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3d, 0x2d, 0x31, 0x2c, 0x6d, + 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x3d, 0x63, 0x2c, 0x2d, 0x31, 0x21, 0x3d, 0x63, 0x26, 0x26, + 0x28, 0x6d, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x6c, 0x29, 0x2c, + 0x67, 0x65, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x28, 0x29, 0x7d, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, + 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x61, 0x62, 0x28, 0x65, + 0x29, 0x7b, 0x69, 0x66, 0x28, 0x22, 0x72, 0x66, 0x70, 0x73, 0x20, 0x22, + 0x3d, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x28, 0x30, 0x2c, 0x35, 0x29, 0x29, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x66, 0x70, 0x73, 0x5f, + 0x72, 0x65, 0x6c, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x28, 0x34, 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, + 0x66, 0x28, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x22, 0x3d, 0x3d, 0x65, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, + 0x2c, 0x35, 0x29, 0x29, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x35, + 0x29, 0x3b, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x22, 0x74, + 0x69, 0x6d, 0x65, 0x20, 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x35, 0x29, 0x29, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x29, 0x2e, 0x74, 0x65, + 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x65, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x35, 0x29, 0x3b, 0x65, 0x6c, + 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x22, 0x69, 0x6e, 0x66, 0x6f, 0x20, + 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x35, 0x29, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, + 0x35, 0x29, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, 0x2c, 0x22, + 0x29, 0x3b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, + 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x6e, 0x67, 0x5f, 0x70, 0x22, 0x29, 0x2e, + 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, + 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x6e, 0x67, 0x5f, 0x6f, + 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x3d, 0x74, 0x5b, 0x31, 0x5d, 0x2c, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x6e, + 0x67, 0x5f, 0x73, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x74, 0x5b, 0x32, 0x5d, 0x2c, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, + 0x6d, 0x5f, 0x6e, 0x67, 0x5f, 0x72, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x74, 0x5b, 0x33, + 0x5d, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x28, 0x22, 0x67, + 0x6f, 0x61, 0x6c, 0x20, 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x35, 0x29, 0x29, + 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x73, 0x2c, 0x6f, 0x2c, 0x64, + 0x2c, 0x6c, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, + 0x35, 0x29, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, 0x3b, 0x22, + 0x29, 0x2c, 0x6d, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x67, 0x22, 0x29, 0x3b, 0x66, + 0x6f, 0x72, 0x28, 0x73, 0x3d, 0x6c, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x6e, 0x3d, 0x30, 0x3b, 0x73, 0x3e, 0x6e, 0x3b, 0x6e, 0x2b, + 0x2b, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x63, 0x3d, 0x6c, 0x5b, 0x6e, + 0x5d, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, 0x2c, 0x22, 0x29, + 0x2c, 0x72, 0x3d, 0x6d, 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x6e, 0x2b, + 0x31, 0x5d, 0x2e, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x5b, 0x30, 0x5d, 0x3b, + 0x72, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3e, 0x31, 0x26, 0x26, 0x72, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, + 0x28, 0x72, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x5b, 0x31, 0x5d, 0x29, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x75, 0x3d, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x28, 0x22, + 0x75, 0x6c, 0x22, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x64, 0x3d, 0x63, + 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x6f, 0x3d, 0x30, 0x3b, + 0x64, 0x3e, 0x6f, 0x3b, 0x6f, 0x2b, 0x2b, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x69, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x28, 0x22, 0x6c, 0x69, 0x22, 0x29, 0x3b, 0x69, 0x2e, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x63, 0x5b, 0x6f, 0x5d, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x32, 0x29, 0x3b, 0x76, + 0x61, 0x72, 0x20, 0x61, 0x3d, 0x63, 0x5b, 0x6f, 0x5d, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x32, 0x29, + 0x3b, 0x22, 0x63, 0x20, 0x22, 0x3d, 0x3d, 0x61, 0x3f, 0x69, 0x2e, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, + 0x67, 0x72, 0x65, 0x65, 0x6e, 0x22, 0x3a, 0x22, 0x66, 0x20, 0x22, 0x3d, + 0x3d, 0x61, 0x3f, 0x69, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x72, 0x65, 0x64, 0x22, 0x3a, 0x69, + 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3d, 0x22, 0x23, 0x35, 0x35, 0x35, 0x22, 0x2c, 0x75, 0x2e, 0x61, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x69, 0x29, + 0x7d, 0x72, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x69, + 0x6c, 0x64, 0x28, 0x75, 0x29, 0x7d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x5f, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x74, 0x61, 0x62, 0x28, 0x65, 0x29, 0x7b, 0x69, 0x66, + 0x28, 0x22, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x22, 0x3d, 0x3d, 0x65, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, + 0x35, 0x29, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x74, 0x3d, 0x65, 0x2e, + 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x35, 0x29, 0x2e, 0x73, 0x70, + 0x6c, 0x69, 0x74, 0x28, 0x22, 0x3b, 0x22, 0x29, 0x3b, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x70, 0x5f, + 0x73, 0x5f, 0x74, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x74, 0x5b, 0x30, 0x5d, 0x2c, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, + 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x74, 0x5b, 0x31, + 0x5d, 0x3b, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x2c, 0x73, 0x3d, 0x74, 0x5b, + 0x32, 0x5d, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, 0x2c, 0x22, + 0x29, 0x2c, 0x6f, 0x3d, 0x74, 0x5b, 0x33, 0x5d, 0x2e, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x28, 0x22, 0x2c, 0x22, 0x29, 0x2c, 0x64, 0x3d, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x70, + 0x5f, 0x73, 0x22, 0x29, 0x2c, 0x6c, 0x3d, 0x64, 0x2e, 0x72, 0x6f, 0x77, + 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x66, 0x6f, 0x72, + 0x28, 0x6e, 0x3d, 0x30, 0x3b, 0x6c, 0x3e, 0x6e, 0x3b, 0x6e, 0x2b, 0x2b, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x6d, 0x3d, 0x64, 0x2e, 0x72, 0x6f, + 0x77, 0x73, 0x5b, 0x6e, 0x2b, 0x31, 0x5d, 0x3b, 0x6d, 0x2e, 0x63, 0x65, + 0x6c, 0x6c, 0x73, 0x5b, 0x31, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x73, 0x5b, 0x6e, 0x5d, 0x2c, 0x6d, 0x2e, + 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x5b, 0x32, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x6f, 0x5b, 0x6e, 0x5d, 0x7d, + 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, + 0x6f, 0x5f, 0x67, 0x73, 0x5f, 0x74, 0x61, 0x62, 0x28, 0x65, 0x29, 0x7b, + 0x22, 0x6d, 0x65, 0x73, 0x67, 0x20, 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x35, + 0x29, 0x26, 0x26, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x22, 0x67, 0x5f, 0x62, 0x22, 0x29, 0x2e, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x2b, 0x3d, 0x65, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x28, 0x35, 0x29, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x29, 0x7b, 0x73, 0x74, 0x64, 0x2e, + 0x73, 0x65, 0x6e, 0x64, 0x28, 0x22, 0x53, 0x3a, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x22, 0x2b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x22, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x29, + 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x28, 0x29, 0x7b, 0x73, 0x74, 0x64, + 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x22, 0x53, 0x3a, 0x70, 0x61, 0x73, + 0x73, 0x20, 0x22, 0x2b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x22, + 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x7d, 0x66, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6b, 0x69, 0x63, 0x6b, 0x5f, 0x63, + 0x6f, 0x6e, 0x6e, 0x28, 0x65, 0x2c, 0x74, 0x29, 0x7b, 0x76, 0x61, 0x72, + 0x20, 0x6e, 0x3d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x28, 0x22, + 0x4b, 0x69, 0x63, 0x6b, 0x20, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x3f, + 0x20, 0x5c, 0x6e, 0x5c, 0x6e, 0x22, 0x2b, 0x65, 0x2b, 0x22, 0x40, 0x22, + 0x2b, 0x74, 0x29, 0x3b, 0x6e, 0x26, 0x26, 0x73, 0x74, 0x64, 0x2e, 0x73, + 0x65, 0x6e, 0x64, 0x28, 0x22, 0x53, 0x3a, 0x6b, 0x69, 0x63, 0x6b, 0x20, + 0x22, 0x2b, 0x74, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x6d, 0x73, 0x67, 0x28, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x67, 0x5f, 0x6d, + 0x22, 0x29, 0x3b, 0x73, 0x74, 0x64, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, + 0x22, 0x47, 0x3a, 0x73, 0x6d, 0x73, 0x67, 0x20, 0x22, 0x2b, 0x65, 0x2e, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x2c, 0x65, 0x2e, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3d, 0x22, 0x22, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x6d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x28, + 0x29, 0x7b, 0x73, 0x74, 0x64, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x22, + 0x47, 0x3a, 0x6d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x22, 0x29, + 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x61, 0x62, 0x28, 0x65, 0x29, 0x7b, + 0x76, 0x61, 0x72, 0x20, 0x74, 0x2c, 0x6e, 0x3d, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x74, 0x61, 0x62, + 0x2d, 0x62, 0x6f, 0x78, 0x22, 0x29, 0x2c, 0x73, 0x3d, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6e, 0x61, + 0x76, 0x22, 0x29, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x74, 0x3d, 0x30, 0x3b, + 0x34, 0x3e, 0x74, 0x3b, 0x74, 0x2b, 0x2b, 0x29, 0x65, 0x3d, 0x3d, 0x74, + 0x3f, 0x28, 0x73, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, + 0x5b, 0x74, 0x5d, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, + 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x3d, 0x22, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x6e, + 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x5b, 0x74, 0x5d, + 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x3d, 0x22, + 0x74, 0x61, 0x62, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x22, + 0x29, 0x3a, 0x28, 0x73, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, + 0x6e, 0x5b, 0x74, 0x5d, 0x2e, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, + 0x6e, 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x3d, 0x22, 0x22, 0x2c, 0x6e, 0x2e, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x72, 0x65, 0x6e, 0x5b, 0x74, 0x5d, 0x2e, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x74, 0x61, 0x62, 0x2d, 0x68, + 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x28, 0x65, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x65, 0x3d, 0x65, 0x7c, 0x7c, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2c, 0x31, 0x33, 0x3d, + 0x3d, 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x3f, 0x28, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x67, 0x5f, 0x73, 0x22, 0x29, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, + 0x28, 0x29, 0x2c, 0x21, 0x31, 0x29, 0x3a, 0x21, 0x30, 0x7d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x65, 0x74, 0x5f, 0x70, + 0x69, 0x6e, 0x66, 0x6f, 0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, + 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, + 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x22, 0x70, 0x5f, 0x70, 0x22, 0x29, 0x3b, 0x69, 0x66, 0x28, 0x2d, + 0x31, 0x21, 0x3d, 0x65, 0x2e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x29, 0x73, 0x74, 0x64, 0x2e, 0x73, + 0x65, 0x6e, 0x64, 0x28, 0x22, 0x50, 0x3a, 0x69, 0x6e, 0x66, 0x6f, 0x20, + 0x22, 0x2b, 0x65, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x65, + 0x6c, 0x73, 0x65, 0x7b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x22, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x22, 0x29, + 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3d, 0x22, 0x22, 0x2c, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x49, 0x64, 0x28, 0x22, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, + 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x3d, 0x22, 0x22, 0x3b, 0x66, 0x6f, 0x72, 0x28, 0x76, 0x61, 0x72, + 0x20, 0x74, 0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x22, 0x70, 0x5f, 0x73, 0x22, 0x29, 0x2c, 0x6e, 0x3d, + 0x74, 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x2c, 0x73, 0x3d, 0x31, 0x3b, 0x6e, 0x3e, 0x73, 0x3b, 0x73, 0x2b, + 0x2b, 0x29, 0x74, 0x2e, 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x73, 0x5d, 0x2e, + 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x5b, 0x31, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x22, 0x22, 0x2c, 0x74, 0x2e, + 0x72, 0x6f, 0x77, 0x73, 0x5b, 0x73, 0x5d, 0x2e, 0x63, 0x65, 0x6c, 0x6c, + 0x73, 0x5b, 0x32, 0x5d, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, + 0x4d, 0x4c, 0x3d, 0x22, 0x22, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x70, 0x73, 0x28, + 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x65, 0x3d, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6d, 0x5f, 0x66, + 0x70, 0x73, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3b, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, + 0x66, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x61, 0x70, 0x22, 0x29, + 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x3d, 0x65, 0x2c, 0x73, 0x74, 0x64, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, + 0x22, 0x4d, 0x3a, 0x66, 0x70, 0x73, 0x20, 0x22, 0x2b, 0x65, 0x29, 0x7d, + 0x76, 0x61, 0x72, 0x20, 0x73, 0x74, 0x64, 0x3d, 0x6e, 0x65, 0x77, 0x20, + 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x22, 0x77, + 0x73, 0x3a, 0x2f, 0x2f, 0x22, 0x2b, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x55, 0x52, 0x4c, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x72, 0x28, 0x37, 0x29, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x28, 0x22, + 0x2f, 0x22, 0x29, 0x5b, 0x30, 0x5d, 0x2c, 0x22, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x22, 0x29, 0x3b, 0x74, 0x72, 0x79, + 0x7b, 0x73, 0x74, 0x64, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x65, + 0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, + 0x7b, 0x31, 0x30, 0x30, 0x36, 0x3d, 0x3d, 0x65, 0x2e, 0x63, 0x6f, 0x64, + 0x65, 0x3f, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x28, 0x22, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x3b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3b, 0x22, 0x29, 0x3a, 0x64, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, + 0x64, 0x62, 0x67, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x3a, 0x20, 0x22, 0x2b, + 0x65, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x7d, 0x2c, 0x73, 0x74, 0x64, 0x2e, + 0x6f, 0x6e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3d, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x29, 0x7b, 0x22, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x3f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x69, 0x28, 0x29, + 0x3a, 0x22, 0x70, 0x6f, 0x70, 0x75, 0x70, 0x20, 0x22, 0x3d, 0x3d, 0x65, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x28, 0x30, 0x2c, 0x36, 0x29, 0x3f, 0x70, 0x6f, 0x70, + 0x75, 0x70, 0x28, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x75, + 0x62, 0x73, 0x74, 0x72, 0x28, 0x36, 0x29, 0x29, 0x3a, 0x22, 0x44, 0x22, + 0x3d, 0x3d, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x3f, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, + 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x64, 0x62, 0x67, 0x22, 0x29, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x65, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x32, 0x29, 0x3a, + 0x22, 0x54, 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5b, + 0x30, 0x5d, 0x3f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x32, 0x29, 0x3a, 0x22, + 0x53, 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, + 0x5d, 0x3f, 0x64, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x74, 0x61, 0x62, 0x28, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x32, 0x29, 0x29, 0x3a, 0x22, 0x4d, + 0x22, 0x3d, 0x3d, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, + 0x3f, 0x64, 0x6f, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x61, + 0x62, 0x28, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x75, 0x62, + 0x73, 0x74, 0x72, 0x28, 0x32, 0x29, 0x29, 0x3a, 0x22, 0x50, 0x22, 0x3d, + 0x3d, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x3f, 0x64, + 0x6f, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x62, + 0x28, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x75, 0x62, 0x73, + 0x74, 0x72, 0x28, 0x32, 0x29, 0x29, 0x3a, 0x22, 0x47, 0x22, 0x3d, 0x3d, + 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x26, 0x26, 0x64, + 0x6f, 0x5f, 0x67, 0x73, 0x5f, 0x74, 0x61, 0x62, 0x28, 0x65, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x28, 0x32, + 0x29, 0x29, 0x7d, 0x7d, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x78, + 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x29, 0x7b, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x28, 0x22, 0x3c, 0x70, 0x3e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x20, 0x22, 0x2b, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x29, 0x7d, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x3c, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x62, 0x6f, 0x64, 0x79, 0x7b, 0x66, + 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x41, + 0x72, 0x69, 0x61, 0x6c, 0x2c, 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, + 0x63, 0x61, 0x2c, 0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, + 0x66, 0x7d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x33, 0x35, 0x65, 0x6d, 0x3b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x20, 0x61, 0x75, 0x74, + 0x6f, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x2d, 0x62, 0x6f, 0x78, 0x7b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x64, 0x64, 0x64, 0x3b, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x20, 0x32, 0x35, + 0x70, 0x78, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x2d, 0x68, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, + 0x6f, 0x6e, 0x65, 0x7d, 0x2e, 0x74, 0x61, 0x62, 0x2d, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, + 0x7d, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x34, + 0x70, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x34, 0x34, 0x34, + 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, 0x65, 0x65, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, 0x20, + 0x31, 0x30, 0x70, 0x78, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x74, + 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, + 0x7a, 0x65, 0x3a, 0x31, 0x34, 0x70, 0x78, 0x3b, 0x63, 0x75, 0x72, 0x73, + 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x2e, + 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x31, 0x31, 0x31, 0x3b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, 0x23, 0x6e, + 0x61, 0x76, 0x7b, 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x3b, 0x70, 0x61, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x66, + 0x6c, 0x6f, 0x77, 0x3a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x33, 0x61, 0x33, 0x61, 0x33, 0x61, 0x7d, + 0x23, 0x6e, 0x61, 0x76, 0x20, 0x6c, 0x69, 0x7b, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x23, 0x6e, 0x61, 0x76, 0x20, + 0x61, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x69, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, 0x32, 0x65, 0x32, 0x65, 0x32, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, + 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x31, 0x34, 0x70, 0x78, 0x20, 0x31, 0x36, 0x70, 0x78, + 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x2e, 0x33, 0x73, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, + 0x37, 0x70, 0x78, 0x3b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x6f, 0x75, 0x74, 0x6c, 0x69, + 0x6e, 0x65, 0x3a, 0x30, 0x7d, 0x23, 0x6e, 0x61, 0x76, 0x20, 0x61, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2c, 0x61, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x31, 0x31, 0x31, + 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, + 0x23, 0x6e, 0x61, 0x76, 0x20, 0x6c, 0x69, 0x2e, 0x73, 0x68, 0x75, 0x74, + 0x64, 0x6f, 0x77, 0x6e, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x33, 0x30, 0x70, 0x78, 0x7d, 0x23, + 0x6e, 0x61, 0x76, 0x20, 0x6c, 0x69, 0x2e, 0x73, 0x68, 0x75, 0x74, 0x64, + 0x6f, 0x77, 0x6e, 0x20, 0x61, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x38, 0x62, 0x30, 0x30, 0x30, 0x30, 0x7d, 0x23, 0x6e, 0x61, 0x76, 0x20, + 0x6c, 0x69, 0x2e, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x20, + 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x72, 0x65, 0x64, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x66, 0x66, 0x66, 0x7d, 0x23, 0x64, 0x62, 0x67, 0x7b, 0x66, 0x6f, 0x6e, + 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, + 0x65, 0x72, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x36, 0x39, + 0x36, 0x39, 0x36, 0x39, 0x3b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x32, 0x70, 0x78, 0x20, 0x34, 0x70, 0x78, 0x7d, 0x23, 0x73, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x23, 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x32, 0x30, 0x65, 0x6d, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, 0x20, + 0x31, 0x30, 0x70, 0x78, 0x7d, 0x23, 0x70, 0x5f, 0x73, 0x2c, 0x23, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, + 0x34, 0x34, 0x34, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x73, + 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x3b, 0x62, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x3a, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x3b, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6d, 0x69, 0x6e, + 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x33, 0x65, 0x6d, + 0x7d, 0x23, 0x70, 0x5f, 0x73, 0x20, 0x74, 0x68, 0x2c, 0x23, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x6e, 0x20, 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x34, 0x34, 0x34, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, + 0x23, 0x66, 0x66, 0x66, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x35, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x74, 0x65, + 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6c, 0x65, 0x66, + 0x74, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x7d, 0x23, 0x70, 0x5f, 0x73, 0x20, 0x74, + 0x64, 0x2c, 0x23, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x20, 0x74, 0x64, + 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, + 0x20, 0x31, 0x35, 0x70, 0x78, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, + 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x66, 0x6f, + 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x43, 0x6f, + 0x75, 0x72, 0x69, 0x65, 0x72, 0x20, 0x4e, 0x65, 0x77, 0x2c, 0x43, 0x6f, + 0x75, 0x72, 0x69, 0x65, 0x72, 0x2c, 0x6d, 0x6f, 0x6e, 0x6f, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, + 0x65, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x7d, 0x23, 0x70, 0x5f, 0x73, + 0x20, 0x74, 0x72, 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x28, 0x6f, 0x64, 0x64, 0x29, 0x2c, 0x23, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x6e, 0x20, 0x74, 0x72, 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x28, 0x6f, 0x64, 0x64, 0x29, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x64, 0x35, 0x64, 0x35, 0x64, 0x35, 0x7d, 0x23, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x20, 0x74, 0x72, 0x3a, 0x68, 0x6f, 0x76, + 0x65, 0x72, 0x2c, 0x23, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x20, 0x74, + 0x72, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x3a, 0x6e, 0x74, 0x68, 0x2d, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x6f, 0x64, 0x64, 0x29, 0x7b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x65, 0x61, 0x65, 0x61, 0x65, 0x61, 0x7d, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x73, 0x5f, 0x6e, 0x5f, 0x70, 0x20, + 0x74, 0x64, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, + 0x70, 0x78, 0x20, 0x30, 0x7d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x73, + 0x5f, 0x6e, 0x5f, 0x70, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x7b, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x30, 0x70, 0x78, 0x7d, 0x23, 0x67, 0x5f, 0x6d, 0x7b, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x30, + 0x70, 0x78, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, + 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x62, 0x6f, 0x78, 0x7d, 0x64, 0x69, 0x76, 0x2e, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, + 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x33, + 0x30, 0x70, 0x78, 0x7d, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x2e, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x7b, + 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x32, 0x30, + 0x65, 0x6d, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x32, + 0x70, 0x78, 0x20, 0x38, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x7d, + 0x23, 0x67, 0x5f, 0x62, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, + 0x30, 0x30, 0x25, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, + 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, + 0x78, 0x3b, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x62, 0x62, 0x62, 0x3b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, + 0x32, 0x70, 0x78, 0x7d, 0x2e, 0x69, 0x6e, 0x66, 0x7b, 0x6d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x33, + 0x30, 0x70, 0x78, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x6e, + 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x3a, 0x63, 0x6f, 0x6c, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x7d, 0x2e, 0x69, 0x6e, 0x66, 0x20, 0x74, 0x64, + 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, + 0x20, 0x30, 0x7d, 0x2e, 0x69, 0x6e, 0x66, 0x20, 0x73, 0x70, 0x61, 0x6e, + 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x3a, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x20, 0x4e, 0x65, 0x77, + 0x2c, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x2c, 0x6d, 0x6f, 0x6e, + 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3b, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, 0x20, 0x31, + 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x31, 0x32, 0x65, 0x6d, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x7d, + 0x2e, 0x6d, 0x5f, 0x66, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, + 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x3a, 0x32, 0x30, 0x70, 0x78, 0x7d, 0x2e, 0x6d, 0x5f, 0x66, + 0x20, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, + 0x72, 0x20, 0x4e, 0x65, 0x77, 0x2c, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, + 0x72, 0x2c, 0x6d, 0x6f, 0x6e, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, 0x20, + 0x30, 0x20, 0x35, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x7d, 0x23, + 0x6d, 0x5f, 0x66, 0x70, 0x73, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, + 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, + 0x31, 0x30, 0x70, 0x78, 0x20, 0x30, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, + 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x62, 0x6f, 0x78, 0x7d, 0x2e, 0x6d, 0x5f, 0x66, 0x63, 0x7b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x3b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, + 0x2e, 0x6d, 0x5f, 0x66, 0x72, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x23, 0x6d, 0x5f, 0x67, + 0x2c, 0x2e, 0x6d, 0x5f, 0x69, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x3a, 0x63, 0x6f, + 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x7d, 0x2e, 0x6d, 0x5f, 0x69, 0x7b, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x23, 0x6d, 0x5f, + 0x67, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, + 0x3b, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, + 0x35, 0x65, 0x6d, 0x3b, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x31, 0x37, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x35, 0x70, 0x78, + 0x7d, 0x23, 0x6d, 0x5f, 0x67, 0x20, 0x74, 0x68, 0x2c, 0x2e, 0x6d, 0x5f, + 0x69, 0x20, 0x74, 0x68, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, + 0x3a, 0x35, 0x70, 0x78, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x6d, 0x5f, + 0x69, 0x20, 0x74, 0x68, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, + 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x70, 0x78, 0x20, 0x73, + 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x34, 0x34, 0x34, 0x7d, 0x23, 0x6d, + 0x5f, 0x67, 0x20, 0x74, 0x68, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, + 0x64, 0x64, 0x64, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x35, + 0x65, 0x6d, 0x7d, 0x23, 0x6d, 0x5f, 0x67, 0x20, 0x74, 0x64, 0x2c, 0x2e, + 0x6d, 0x5f, 0x69, 0x20, 0x74, 0x64, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x3a, 0x35, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x7d, 0x23, 0x6d, 0x5f, 0x67, 0x20, 0x75, 0x6c, 0x7b, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x20, 0x31, 0x2e, + 0x35, 0x65, 0x6d, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, + 0x7d, 0x23, 0x70, 0x6f, 0x70, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x3b, 0x7a, 0x2d, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x31, 0x3b, 0x6c, 0x65, 0x66, 0x74, + 0x3a, 0x30, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x30, 0x3b, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6f, 0x76, 0x65, 0x72, + 0x66, 0x6c, 0x6f, 0x77, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x62, 0x61, + 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x30, 0x3b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x72, 0x67, 0x62, 0x61, 0x28, 0x30, 0x2c, 0x30, 0x2c, 0x30, 0x2c, + 0x2e, 0x34, 0x29, 0x7d, 0x2e, 0x70, 0x6f, 0x70, 0x2d, 0x63, 0x7b, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x65, 0x66, 0x65, 0x66, 0x65, 0x3b, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x31, 0x30, 0x65, 0x6d, 0x20, + 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, + 0x32, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x31, + 0x31, 0x31, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x32, 0x35, 0x65, + 0x6d, 0x7d, 0x23, 0x70, 0x6f, 0x70, 0x2d, 0x74, 0x7b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x3a, 0x23, 0x34, 0x34, 0x34, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x37, 0x30, 0x30, 0x7d, 0x2e, + 0x70, 0x6f, 0x70, 0x2d, 0x62, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x3a, 0x32, 0x30, 0x70, 0x78, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x32, 0x65, 0x6d, 0x3b, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x34, 0x65, 0x6d, 0x7d, 0x3c, 0x2f, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x3e, 0x3c, 0x75, 0x6c, 0x20, 0x69, 0x64, 0x3d, 0x6e, 0x61, 0x76, + 0x3e, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x6f, 0x6e, 0x63, 0x6c, + 0x69, 0x63, 0x6b, 0x3d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x74, + 0x61, 0x62, 0x28, 0x30, 0x29, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x6a, + 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, + 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, + 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5f, 0x74, 0x61, 0x62, 0x28, 0x31, 0x29, 0x20, 0x68, + 0x72, 0x65, 0x66, 0x3d, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x3e, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x2d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x6f, + 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x5f, 0x74, 0x61, 0x62, 0x28, 0x32, 0x29, 0x20, 0x68, 0x72, 0x65, + 0x66, 0x3d, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x3e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x3c, 0x2f, 0x61, + 0x3e, 0x3c, 0x6c, 0x69, 0x3e, 0x3c, 0x61, 0x20, 0x6f, 0x6e, 0x63, 0x6c, + 0x69, 0x63, 0x6b, 0x3d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x74, + 0x61, 0x62, 0x28, 0x33, 0x29, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x6a, + 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, + 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0x3e, 0x47, 0x6f, 0x64, 0x20, 0x53, + 0x74, 0x75, 0x66, 0x66, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x6c, 0x69, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, + 0x77, 0x6e, 0x3e, 0x3c, 0x61, 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, + 0x6b, 0x3d, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x28, 0x29, + 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x3a, 0x76, 0x6f, 0x69, 0x64, 0x28, 0x30, 0x29, + 0x3b, 0x3e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x3c, 0x2f, + 0x61, 0x3e, 0x3c, 0x2f, 0x75, 0x6c, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x74, 0x61, 0x62, 0x2d, 0x62, 0x6f, + 0x78, 0x20, 0x69, 0x64, 0x3d, 0x74, 0x61, 0x62, 0x2d, 0x62, 0x6f, 0x78, + 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x74, 0x61, 0x62, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x3e, + 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x73, 0x5f, 0x6e, 0x5f, 0x70, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x66, 0x6f, + 0x72, 0x3d, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x3e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x3c, 0x2f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x20, 0x6d, 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3d, 0x33, + 0x31, 0x20, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x28, 0x29, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x3d, 0x73, 0x5f, + 0x70, 0x61, 0x73, 0x73, 0x3e, 0x48, 0x6f, 0x73, 0x74, 0x20, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x3c, 0x2f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x64, 0x3d, 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x20, 0x6d, + 0x61, 0x78, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3d, 0x31, 0x35, 0x20, + 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x28, 0x29, + 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x68, 0x72, + 0x3e, 0x3c, 0x70, 0x3e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x20, 0x3a, 0x20, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, + 0x69, 0x64, 0x3d, 0x73, 0x5f, 0x6e, 0x63, 0x6f, 0x6e, 0x3e, 0x30, 0x3c, + 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x70, 0x3e, 0x3c, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x69, 0x64, 0x3d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x6e, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x20, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x3d, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x3a, 0x32, 0x30, 0x65, 0x6d, 0x3e, 0x49, 0x50, 0x20, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x3c, 0x74, 0x68, 0x20, 0x73, 0x74, 0x79, + 0x6c, 0x65, 0x3d, 0x6d, 0x69, 0x6e, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x3a, 0x36, 0x65, 0x6d, 0x3e, 0x50, 0x69, 0x6e, 0x67, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, + 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, + 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, + 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, + 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, + 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x26, + 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x74, 0x61, + 0x62, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3e, 0x3c, 0x64, 0x69, + 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x6d, 0x5f, 0x66, 0x3e, + 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x69, 0x64, 0x3d, 0x6d, 0x5f, 0x66, + 0x70, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x3d, 0x31, 0x35, 0x20, 0x6d, 0x61, + 0x78, 0x3d, 0x36, 0x30, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x33, + 0x30, 0x20, 0x73, 0x74, 0x65, 0x70, 0x3d, 0x31, 0x20, 0x6f, 0x6e, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x3d, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x70, 0x73, + 0x28, 0x29, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x6d, 0x5f, 0x66, 0x63, 0x3e, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x20, 0x43, 0x61, 0x70, 0x3a, 0x20, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, + 0x69, 0x64, 0x3d, 0x66, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x61, + 0x70, 0x3e, 0x33, 0x30, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x6d, 0x5f, 0x66, 0x72, 0x3e, 0x52, 0x65, 0x61, + 0x6c, 0x69, 0x61, 0x7a, 0x65, 0x64, 0x20, 0x46, 0x50, 0x53, 0x3a, 0x20, + 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x66, 0x70, 0x73, + 0x5f, 0x72, 0x65, 0x6c, 0x3e, 0x30, 0x2e, 0x30, 0x3c, 0x2f, 0x73, 0x70, + 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, + 0x69, 0x76, 0x3e, 0x3c, 0x68, 0x72, 0x3e, 0x3c, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x69, 0x6e, 0x66, 0x3e, + 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x4d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x3c, 0x74, 0x64, + 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x6d, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, + 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x4d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x3c, 0x74, 0x64, + 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x6d, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, + 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x20, 0x69, 0x64, 0x3d, 0x6d, 0x5f, 0x67, 0x3e, 0x3c, 0x74, + 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x47, 0x6f, 0x61, 0x6c, 0x73, 0x3c, 0x74, 0x72, 0x3e, 0x3c, + 0x74, 0x64, 0x3e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, + 0x72, 0x79, 0x20, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x73, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x42, 0x6f, 0x6e, + 0x75, 0x73, 0x20, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x73, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x6d, 0x5f, + 0x69, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x20, 0x63, 0x6f, + 0x6c, 0x73, 0x70, 0x61, 0x6e, 0x3d, 0x32, 0x3e, 0x4e, 0x65, 0x74, 0x67, + 0x61, 0x6d, 0x65, 0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x4d, + 0x61, 0x78, 0x20, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x3c, 0x74, + 0x64, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x6d, + 0x5f, 0x6e, 0x67, 0x5f, 0x70, 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, + 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x4d, 0x61, 0x78, + 0x20, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x3c, 0x74, + 0x64, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x6d, + 0x5f, 0x6e, 0x67, 0x5f, 0x6f, 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, + 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x53, 0x65, 0x63, + 0x75, 0x72, 0x69, 0x74, 0x79, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x73, 0x70, + 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x6d, 0x5f, 0x6e, 0x67, 0x5f, 0x73, + 0x3e, 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x74, 0x72, 0x3e, + 0x3c, 0x74, 0x64, 0x3e, 0x52, 0x65, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x73, + 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, + 0x3d, 0x6d, 0x5f, 0x6e, 0x67, 0x5f, 0x72, 0x3e, 0x3c, 0x2f, 0x73, 0x70, + 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x3d, 0x74, 0x61, 0x62, 0x2d, 0x68, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x3e, 0x3c, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x3d, 0x70, 0x5f, 0x70, + 0x3e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x3c, 0x2f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x3e, 0x3c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x69, + 0x64, 0x3d, 0x70, 0x5f, 0x70, 0x20, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x3d, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x66, 0x6f, + 0x28, 0x29, 0x3e, 0x3c, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3e, + 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x69, 0x6e, 0x66, 0x3e, 0x3c, + 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x53, 0x68, 0x69, 0x70, 0x20, + 0x54, 0x79, 0x70, 0x65, 0x3a, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x73, 0x70, + 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x3e, + 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, + 0x74, 0x64, 0x3e, 0x41, 0x76, 0x67, 0x20, 0x50, 0x69, 0x6e, 0x67, 0x3a, + 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, + 0x3d, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x3e, 0x3c, 0x2f, 0x73, 0x70, + 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, + 0x70, 0x3e, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x69, 0x64, 0x3d, + 0x70, 0x5f, 0x73, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x3e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x3c, 0x74, 0x68, 0x3e, 0x41, 0x6c, 0x6c, + 0x20, 0x54, 0x69, 0x6d, 0x65, 0x3c, 0x74, 0x68, 0x3e, 0x4d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, + 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x53, 0x68, 0x6f, 0x74, + 0x73, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x20, 0x48, 0x69, 0x74, 0x73, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, + 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x50, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x20, 0x42, 0x48, 0x20, 0x48, 0x69, 0x74, 0x73, + 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, + 0x3c, 0x74, 0x64, 0x3e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, + 0x48, 0x69, 0x74, 0x20, 0x25, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, + 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x50, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x20, 0x42, 0x48, 0x20, 0x48, 0x69, 0x74, 0x20, + 0x25, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, + 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, + 0x72, 0x79, 0x20, 0x53, 0x68, 0x6f, 0x74, 0x73, 0x3c, 0x74, 0x64, 0x3e, + 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, + 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x20, 0x48, 0x69, + 0x74, 0x73, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, + 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x61, 0x72, 0x79, 0x20, 0x42, 0x48, 0x20, 0x48, 0x69, 0x74, 0x73, 0x3c, + 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, + 0x74, 0x64, 0x3e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, + 0x20, 0x48, 0x69, 0x74, 0x20, 0x25, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, + 0x64, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x20, 0x42, 0x48, 0x20, 0x48, + 0x69, 0x74, 0x20, 0x25, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, + 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x41, 0x73, 0x73, 0x69, + 0x73, 0x74, 0x73, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, + 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, + 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, + 0x74, 0x61, 0x62, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3e, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x3e, 0x3c, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x20, 0x66, 0x6f, 0x72, 0x3d, 0x67, 0x5f, 0x70, 0x3e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x3c, 0x2f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x3e, 0x3c, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x67, 0x5f, + 0x70, 0x3e, 0x3c, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3e, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x70, + 0x3e, 0x3c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x3d, + 0x67, 0x5f, 0x6d, 0x3e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x20, 0x69, 0x64, 0x3d, 0x67, 0x5f, 0x6d, 0x20, 0x6f, 0x6e, 0x6b, 0x65, + 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x20, 0x73, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x22, 0x3e, 0x20, + 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x67, 0x5f, + 0x73, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x73, 0x65, + 0x6e, 0x64, 0x5f, 0x73, 0x6d, 0x73, 0x67, 0x28, 0x29, 0x20, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x3d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x3e, 0x3c, 0x2f, 0x70, 0x3e, 0x3c, 0x74, 0x65, + 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, + 0x6e, 0x6c, 0x79, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3d, 0x32, 0x30, 0x20, + 0x69, 0x64, 0x3d, 0x67, 0x5f, 0x62, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x3d, 0x6f, 0x66, 0x66, 0x3e, + 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x3e, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x70, 0x3e, 0x3c, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, + 0x6d, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x28, 0x29, 0x3e, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x64, 0x62, 0x67, 0x3e, 0x3c, + 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x70, 0x6f, 0x70, 0x3e, 0x3c, + 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x70, 0x6f, + 0x70, 0x2d, 0x63, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, + 0x70, 0x6f, 0x70, 0x2d, 0x74, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, + 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x70, + 0x6f, 0x70, 0x2d, 0x62, 0x3e, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, + 0x64, 0x3d, 0x70, 0x6f, 0x70, 0x2d, 0x31, 0x3e, 0x3c, 0x2f, 0x73, 0x70, + 0x61, 0x6e, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x73, 0x70, + 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d, 0x70, 0x6f, 0x70, 0x2d, 0x32, 0x3e, + 0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, + 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, + 0x3e +}; +const unsigned int standalone_html_len = 12373; + +#endif // STANDALONE_HTML_H diff --git a/src/network/stand_server.cpp b/src/network/stand_server.cpp index 59d552f..3f7489b 100644 --- a/src/network/stand_server.cpp +++ b/src/network/stand_server.cpp @@ -26,6 +26,7 @@ #include "multi_kick.h" #include "multi_fstracker.h" #include "osregistry.h" +#include "standalone_html.h" #include #include @@ -69,7 +70,14 @@ static struct lws *active_wsi = NULL; static int callback_http(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) { + unsigned char buf[LWS_SEND_BUFFER_PRE_PADDING + standalone_html_len + LWS_SEND_BUFFER_POST_PADDING]; + unsigned char *p = &buf[LWS_SEND_BUFFER_PRE_PADDING]; + unsigned char *start = p; + unsigned char *end = p + standalone_html_len; bool try_reuse = false; + int rval; + int size; + static unsigned int sent = 0; switch (reason) { case LWS_CALLBACK_HTTP: { @@ -80,11 +88,50 @@ static int callback_http(struct lws *wsi, enum lws_callback_reasons reason, void break; } - int ret = lws_serve_http_file(wsi, "./standalone.html", "text/html", NULL, 0); +#ifndef NDEBUG + FILE *html = fopen("./standalone.html", "rb"); - if ( (ret < 0) || ((ret > 0) && lws_http_transaction_completed(wsi)) ) { - // error or can't reuse connection, close the socket - return -1; + if (html) { + fclose(html); + + rval = lws_serve_http_file(wsi, "./standalone.html", "text/html", NULL, 0); + + if ( (rval < 0) || ((rval > 0) && lws_http_transaction_completed(wsi)) ) { + // error or can't reuse connection, close the socket + return -1; + } + } else +#endif + { + if ( lws_add_http_header_status(wsi, 200, &p, end) ) { + return 1; + } + + if ( lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_SERVER, (unsigned char *)"libwebsockets", 13, &p, end) ) { + return 1; + } + + if ( lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_CONTENT_TYPE, (unsigned char *)"text/html", 9, &p, end) ) { + return 1; + } + + if ( lws_add_http_header_content_length(wsi, standalone_html_len, &p, end) ) { + return 1; + } + + if ( lws_finalize_http_header(wsi, &p, end) ) { + return 1; + } + + rval = lws_write(wsi, start, p - start, LWS_WRITE_HTTP_HEADERS); + + if (rval != (p - start)) { + return -1; + } + + sent = 0; + + lws_callback_on_writable(wsi); } break; @@ -103,6 +150,43 @@ static int callback_http(struct lws *wsi, enum lws_callback_reasons reason, void break; } + case LWS_CALLBACK_HTTP_WRITEABLE: { + while ( !lws_send_pipe_choked(wsi) && (sent < standalone_html_len) ) { + size = standalone_html_len - sent; + + int pwa = lws_get_peer_write_allowance(wsi); + + if (pwa == 0) { + lws_callback_on_writable(wsi); + + break; + } + + if ( (pwa != -1) && (pwa < size) ) { + size = pwa; + } + + memcpy(p, standalone_html + sent, size); + + rval = lws_write(wsi, p, size, LWS_WRITE_HTTP); + + if (rval < 0) { + return -1; + } + + if (rval) { + // while still active, extent timeout + lws_set_timeout(wsi, PENDING_TIMEOUT_HTTP_CONTENT, 5); + } + + sent += rval; + } + + try_reuse = true; + + break; + } + default: break; } -- 2.39.2