ModLoader updated

This commit is contained in:
DepressedTWM 2026-06-08 16:18:14 -04:00
parent 3ed5988375
commit 2127270559
6 changed files with 467 additions and 451 deletions

View file

@ -8,6 +8,7 @@
#include "ruby/encoding.h"
#include "ruby/intern.h"
#include "ruby/thread.h"
#include "modloader.h"
#include <ruby.h>
#include <filesystem>
#include <fstream>
@ -60,4 +61,6 @@ void ModLoaderBindingInit(){
Debug() << "[MODLOADER] initalizing binding...";
VALUE klass = rb_define_module("ModLoader");
rb_define_module_function(klass, "hooks", RUBY_METHOD_FUNC(hooks), -1);
rb_define_const(klass, "IS_ENABLED", modloader_is_enabled ? Qtrue : Qfalse);
rb_define_const(klass, "COUNT", INT2NUM(mods_count));
}

View file

@ -1275,8 +1275,10 @@ module RPG
class Mod
def self.exec_hooks(path, b)
ModLoader.hooks(path).each do |item|
eval(File.read(item), b)
if ModLoader::IS_ENABLED
ModLoader.hooks(path).each do |item|
eval(File.read(item), b)
end
end
end
end

View file

@ -2784,446 +2784,449 @@ unsigned char module_rpg1[] = {
0x6c, 0x61, 0x73, 0x73, 0x20, 0x4d, 0x6f, 0x64, 0x0a, 0x09, 0x64, 0x65,
0x66, 0x20, 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x5f,
0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x28, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x20,
0x62, 0x29, 0x0a, 0x09, 0x20, 0x20, 0x4d, 0x6f, 0x64, 0x4c, 0x6f, 0x61,
0x64, 0x65, 0x72, 0x2e, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x28, 0x70, 0x61,
0x74, 0x68, 0x29, 0x2e, 0x65, 0x61, 0x63, 0x68, 0x20, 0x64, 0x6f, 0x20,
0x7c, 0x69, 0x74, 0x65, 0x6d, 0x7c, 0x0a, 0x09, 0x20, 0x20, 0x20, 0x20,
0x65, 0x76, 0x61, 0x6c, 0x28, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x72, 0x65,
0x61, 0x64, 0x28, 0x69, 0x74, 0x65, 0x6d, 0x29, 0x2c, 0x20, 0x62, 0x29,
0x0a, 0x09, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x09, 0x65, 0x6e, 0x64,
0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a, 0x20, 0x20,
0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x54, 0x69, 0x6c, 0x65, 0x73, 0x65,
0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e,
0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d,
0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x74,
0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20,
0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x61, 0x75, 0x74, 0x6f, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x22, 0x22, 0x5d, 0x2a, 0x37, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x6e, 0x6f, 0x72,
0x61, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22,
0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x6e,
0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x68, 0x75, 0x65, 0x20, 0x3d, 0x20,
0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x68, 0x75,
0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x66, 0x6f, 0x67, 0x5f, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79,
0x20, 0x3d, 0x20, 0x36, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x66, 0x6f, 0x67, 0x5f, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x5f, 0x74,
0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x7a, 0x6f, 0x6f, 0x6d, 0x20,
0x3d, 0x20, 0x32, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x73,
0x79, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65,
0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6e, 0x65,
0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73,
0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77,
0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5b,
0x30, 0x5d, 0x20, 0x3d, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x61,
0x67, 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6e,
0x65, 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x69,
0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61,
0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6e, 0x61, 0x6d,
0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61,
0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x69, 0x6c,
0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x74, 0x69, 0x6c,
0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x68, 0x75, 0x65,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x66, 0x6f, 0x67, 0x5f, 0x68, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x6f, 0x70, 0x61, 0x63, 0x69,
0x74, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f,
0x67, 0x5f, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f,
0x7a, 0x6f, 0x6f, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x66, 0x6f, 0x67, 0x5f, 0x73, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x79, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x62, 0x61,
0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x72, 0x69, 0x6f, 0x72,
0x69, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x74, 0x61, 0x67,
0x73, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x63,
0x6c, 0x61, 0x73, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45,
0x76, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x66,
0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x64, 0x20, 0x3d, 0x20,
0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6e, 0x61, 0x6d,
0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x3d, 0x20,
0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x77, 0x69,
0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x3d,
0x20, 0x5b, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x45, 0x76, 0x65, 0x6e, 0x74,
0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x77, 0x5d,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x5f,
0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6c, 0x69,
0x73, 0x74, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20,
0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x57,
0x6f, 0x72, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64,
0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x67,
0x6f, 0x6c, 0x64, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x68, 0x70, 0x20, 0x3d, 0x20, 0x22,
0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73,
0x70, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x72, 0x20, 0x3d, 0x20, 0x22, 0x22,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x64, 0x65,
0x78, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x61, 0x67, 0x69, 0x20, 0x3d, 0x20, 0x22, 0x22,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x6e,
0x74, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x61, 0x74, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x22,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x64,
0x65, 0x66, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x6d, 0x64, 0x65, 0x66, 0x20, 0x3d, 0x20,
0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d,
0x6f, 0x72, 0x31, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32,
0x62, 0x29, 0x0a, 0x09, 0x20, 0x20, 0x69, 0x66, 0x20, 0x4d, 0x6f, 0x64,
0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x3a, 0x3a, 0x49, 0x53, 0x5f, 0x45,
0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x0a, 0x09, 0x20, 0x20, 0x09, 0x4d,
0x6f, 0x64, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x6f, 0x6f,
0x6b, 0x73, 0x28, 0x70, 0x61, 0x74, 0x68, 0x29, 0x2e, 0x65, 0x61, 0x63,
0x68, 0x20, 0x64, 0x6f, 0x20, 0x7c, 0x69, 0x74, 0x65, 0x6d, 0x7c, 0x0a,
0x09, 0x20, 0x20, 0x20, 0x20, 0x09, 0x65, 0x76, 0x61, 0x6c, 0x28, 0x46,
0x69, 0x6c, 0x65, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x28, 0x69, 0x74, 0x65,
0x6d, 0x29, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x09, 0x20, 0x20, 0x09, 0x65,
0x6e, 0x64, 0x0a, 0x09, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x09, 0x65,
0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x0a,
0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x54, 0x69, 0x6c, 0x65,
0x73, 0x65, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x66, 0x20,
0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6e, 0x61, 0x6d, 0x65,
0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x20, 0x3d, 0x20,
0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x74, 0x74,
0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x20,
0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x67, 0x75, 0x61, 0x72, 0x64, 0x20, 0x3d, 0x20, 0x22, 0x22,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x74,
0x65, 0x6d, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x71, 0x75, 0x69, 0x70, 0x20, 0x3d,
0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e,
0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x67,
0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x40, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x61, 0x75, 0x74, 0x6f, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x22, 0x22, 0x5d, 0x2a,
0x37, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x6e,
0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d,
0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70,
0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x68, 0x75, 0x65, 0x20,
0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66,
0x6f, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f,
0x68, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x6f, 0x70, 0x61, 0x63, 0x69,
0x74, 0x79, 0x20, 0x3d, 0x20, 0x36, 0x34, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x62, 0x6c, 0x65, 0x6e, 0x64,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x7a, 0x6f, 0x6f,
0x6d, 0x20, 0x3d, 0x20, 0x32, 0x30, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x78, 0x20, 0x3d, 0x20,
0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x66, 0x6f, 0x67,
0x5f, 0x73, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x62, 0x61, 0x63,
0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x73, 0x73, 0x61,
0x67, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e,
0x6e, 0x65, 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69,
0x65, 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x6e,
0x65, 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65,
0x73, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x35, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, 0x6e, 0x5f,
0x74, 0x61, 0x67, 0x73, 0x20, 0x3d, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65,
0x2e, 0x6e, 0x65, 0x77, 0x28, 0x33, 0x38, 0x34, 0x29, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x68, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x73, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x73, 0x74, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x64, 0x65, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x61, 0x67, 0x69, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x69, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x74, 0x6b, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x64, 0x65, 0x66, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6d, 0x64, 0x65, 0x66,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x65,
0x61, 0x70, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72,
0x6d, 0x6f, 0x72, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x6b,
0x69, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x69, 0x74, 0x65, 0x6d, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x54, 0x65, 0x73, 0x74, 0x42,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,
0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20,
0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6c,
0x65, 0x76, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e,
0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x5f,
0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32, 0x5f, 0x69,
0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x5f, 0x69, 0x64,
0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x5f, 0x69, 0x64, 0x20,
0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e,
0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61,
0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x65, 0x61, 0x70,
0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x5f, 0x69, 0x64,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72,
0x6d, 0x6f, 0x72, 0x32, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x5f,
0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64,
0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6d, 0x61, 0x67,
0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x3d, 0x20,
0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x61, 0x72,
0x74, 0x79, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x3d,
0x20, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x3d, 0x20, 0x5b,
0x6e, 0x69, 0x6c, 0x2c, 0x20, 0x22, 0x22, 0x5d, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73,
0x20, 0x3d, 0x20, 0x5b, 0x6e, 0x69, 0x6c, 0x2c, 0x20, 0x22, 0x22, 0x5d,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x76, 0x61, 0x72, 0x69,
0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x6e, 0x69, 0x6c,
0x2c, 0x20, 0x22, 0x22, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x6b, 0x69, 0x6e, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20,
0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, 0x20, 0x3d, 0x20,
0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69,
0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d,
0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69,
0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f,
0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47,
0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e,
0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x67,
0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x20, 0x3d,
0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46,
0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x5f, 0x73, 0x65,
0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69,
0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22,
0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65,
0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69,
0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22,
0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x20, 0x3d,
0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46,
0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20,
0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62,
0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52,
0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c,
0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30,
0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x71, 0x75,
0x69, 0x70, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a,
0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e,
0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x61, 0x76, 0x65, 0x5f, 0x73,
0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64,
0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22,
0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20,
0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69,
0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38,
0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61,
0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73,
0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64,
0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22,
0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x73, 0x65, 0x20,
0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f,
0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c,
0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70,
0x73, 0x65, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a,
0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e,
0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x6e, 0x65, 0x6d, 0x79, 0x5f,
0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x20,
0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f,
0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c,
0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x77, 0x6f, 0x72, 0x64, 0x73, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a,
0x3a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x3a, 0x3a, 0x57, 0x6f, 0x72,
0x64, 0x73, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x6f,
0x6f, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d,
0x61, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x78,
0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x79, 0x20, 0x3d, 0x20, 0x30, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d,
0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20,
0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x75, 0x65, 0x20,
0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65,
0x64, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d,
0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f,
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65,
0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x73, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x76, 0x61, 0x72, 0x69, 0x61,
0x62, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x6b, 0x69, 0x6e, 0x5f, 0x6e,
0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74,
0x69, 0x74, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65,
0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61,
0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74,
0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x64,
0x5f, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x67,
0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72,
0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x64,
0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c,
0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62,
0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x5f, 0x73, 0x65,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x61, 0x76, 0x65,
0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6c,
0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61,
0x72, 0x74, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x73, 0x65, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f,
0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x6e, 0x65, 0x6d, 0x79,
0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, 0x65,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x6f, 0x72, 0x64,
0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61,
0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x65, 0x73,
0x74, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x73, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74,
0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x70,
0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73,
0x74, 0x61, 0x72, 0x74, 0x5f, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x79, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x62,
0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f,
0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x75, 0x65, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x64, 0x69, 0x74, 0x5f,
0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64,
0x0a, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x41, 0x75,
0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69,
0x7a, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22,
0x2c, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x31,
0x30, 0x30, 0x2c, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68, 0x20, 0x3d, 0x20,
0x31, 0x30, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
0x65, 0x20, 0x3d, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x69, 0x74, 0x63, 0x68, 0x20,
0x3d, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x3a, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6e,
0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x76,
0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74,
0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x74,
0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d,
0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x70, 0x61, 0x6e, 0x6f, 0x72, 0x61, 0x6d, 0x61, 0x5f, 0x68,
0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f,
0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x68, 0x75, 0x65, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x6f, 0x70, 0x61,
0x63, 0x69, 0x74, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x66, 0x6f, 0x67, 0x5f, 0x62, 0x6c, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x79,
0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f,
0x67, 0x5f, 0x7a, 0x6f, 0x6f, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x78, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x66, 0x6f, 0x67, 0x5f, 0x73, 0x79, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65,
0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61,
0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x72, 0x69,
0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x74, 0x65, 0x72, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x74,
0x61, 0x67, 0x73, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20,
0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64,
0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x69, 0x64, 0x20,
0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6e,
0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20,
0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73,
0x77, 0x69, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6c, 0x69, 0x73, 0x74,
0x20, 0x3d, 0x20, 0x5b, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x45, 0x76, 0x65,
0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x6e, 0x65,
0x77, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x77, 0x69, 0x74, 0x63,
0x68, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x6c, 0x69, 0x73, 0x74, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a,
0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x53, 0x79, 0x73, 0x74,
0x65, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73,
0x20, 0x57, 0x6f, 0x72, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,
0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x67, 0x6f, 0x6c, 0x64, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x68, 0x70, 0x20, 0x3d,
0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x73, 0x70, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x72, 0x20, 0x3d, 0x20,
0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x64, 0x65, 0x78, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x67, 0x69, 0x20, 0x3d, 0x20,
0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x69, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x74, 0x6b, 0x20, 0x3d, 0x20,
0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x70, 0x64, 0x65, 0x66, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6d, 0x64, 0x65, 0x66, 0x20,
0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x22,
0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61,
0x72, 0x6d, 0x6f, 0x72, 0x31, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f,
0x72, 0x32, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x20,
0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x20, 0x3d, 0x20, 0x22,
0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61,
0x74, 0x74, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x6b, 0x69, 0x6c,
0x6c, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x67, 0x75, 0x61, 0x72, 0x64, 0x20, 0x3d, 0x20,
0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x69, 0x74, 0x65, 0x6d, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x71, 0x75, 0x69, 0x70,
0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x70, 0x69, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64,
0x0a, 0x65, 0x6e, 0x64, 0x0a
0x3a, 0x67, 0x6f, 0x6c, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x68, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x73, 0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x73, 0x74, 0x72, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x64, 0x65, 0x78, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x67, 0x69, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x6e, 0x74, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x74, 0x6b, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x70, 0x64, 0x65, 0x66,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6d, 0x64,
0x65, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x77, 0x65, 0x61, 0x70, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f,
0x72, 0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x74, 0x74, 0x61,
0x63, 0x6b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x69, 0x74, 0x65, 0x6d, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x71, 0x75, 0x69,
0x70, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x54, 0x65, 0x73,
0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69,
0x61, 0x6c, 0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x20,
0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x77, 0x65, 0x61, 0x70,
0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72,
0x31, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32,
0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x33, 0x5f,
0x69, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x5f, 0x69,
0x64, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6c, 0x65, 0x76, 0x65, 0x6c,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x65,
0x61, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x31, 0x5f,
0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74,
0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a,
0x61, 0x72, 0x6d, 0x6f, 0x72, 0x32, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72,
0x33, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x61, 0x72, 0x6d, 0x6f, 0x72, 0x34, 0x5f, 0x69, 0x64, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,
0x69, 0x7a, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x6d,
0x61, 0x67, 0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20,
0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70,
0x61, 0x72, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
0x20, 0x3d, 0x20, 0x5b, 0x31, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x3d,
0x20, 0x5b, 0x6e, 0x69, 0x6c, 0x2c, 0x20, 0x22, 0x22, 0x5d, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68,
0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x6e, 0x69, 0x6c, 0x2c, 0x20, 0x22,
0x22, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x76, 0x61,
0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x6e,
0x69, 0x6c, 0x2c, 0x20, 0x22, 0x22, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x6b, 0x69,
0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x74, 0x69, 0x74, 0x6c, 0x65,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76,
0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74,
0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, 0x20,
0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f,
0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x62,
0x67, 0x6d, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75,
0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x52,
0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c,
0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65,
0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69,
0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x40, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x5f,
0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75,
0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28,
0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75,
0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28,
0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x40, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x73, 0x65,
0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69,
0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22,
0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x20, 0x3d,
0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46,
0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20,
0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65,
0x71, 0x75, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50,
0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65,
0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x61, 0x76, 0x65,
0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41,
0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77,
0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x20,
0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f,
0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c,
0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40,
0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41,
0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77,
0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x73,
0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64,
0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22,
0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x6c,
0x61, 0x70, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x52, 0x50,
0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65,
0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22, 0x22, 0x2c, 0x20, 0x38, 0x30, 0x29,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x65, 0x6e, 0x65, 0x6d,
0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73,
0x65, 0x20, 0x3d, 0x20, 0x52, 0x50, 0x47, 0x3a, 0x3a, 0x41, 0x75, 0x64,
0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x6e, 0x65, 0x77, 0x28, 0x22,
0x22, 0x2c, 0x20, 0x38, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x20, 0x3d, 0x20, 0x52, 0x50,
0x47, 0x3a, 0x3a, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x3a, 0x3a, 0x57,
0x6f, 0x72, 0x64, 0x73, 0x2e, 0x6e, 0x65, 0x77, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x40, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x74,
0x74, 0x6c, 0x65, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74,
0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74,
0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x20, 0x3d, 0x20, 0x31, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74,
0x5f, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x79, 0x20, 0x3d, 0x20,
0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x62, 0x61, 0x74,
0x74, 0x6c, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x75,
0x65, 0x20, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x40, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64,
0x20, 0x3d, 0x20, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x6d, 0x61, 0x67, 0x69,
0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x6d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65,
0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61,
0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x76, 0x61, 0x72,
0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x6b, 0x69, 0x6e,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x67, 0x61, 0x6d, 0x65, 0x6f,
0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x74,
0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x62,
0x67, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61,
0x74, 0x74, 0x6c, 0x65, 0x5f, 0x62, 0x67, 0x6d, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x65,
0x6e, 0x64, 0x5f, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x67, 0x61, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x63, 0x75, 0x72, 0x73,
0x6f, 0x72, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x63, 0x61, 0x6e, 0x63,
0x65, 0x6c, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x5f,
0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x61,
0x76, 0x65, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x73,
0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x5f, 0x73, 0x65,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x61, 0x63, 0x74, 0x6f,
0x72, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f, 0x73,
0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61,
0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x6e, 0x65,
0x6d, 0x79, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x5f,
0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f,
0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x77, 0x6f,
0x72, 0x64, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72,
0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74,
0x65, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x73,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63,
0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x74, 0x65, 0x73, 0x74,
0x5f, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
0x73, 0x6f, 0x72, 0x20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d,
0x61, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x78, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
0x6f, 0x72, 0x20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x79, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65,
0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61,
0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x20, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x75,
0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x61,
0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20, 0x3a, 0x65, 0x64, 0x69,
0x74, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x64, 0x0a, 0x20, 0x20, 0x65,
0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20,
0x41, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x64, 0x65, 0x66, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
0x6c, 0x69, 0x7a, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20,
0x22, 0x22, 0x2c, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x20, 0x3d,
0x20, 0x31, 0x30, 0x30, 0x2c, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68, 0x20,
0x3d, 0x20, 0x31, 0x30, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x40, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x61, 0x6d,
0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x76, 0x6f, 0x6c,
0x75, 0x6d, 0x65, 0x20, 0x3d, 0x20, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x70, 0x69, 0x74, 0x63,
0x68, 0x20, 0x3d, 0x20, 0x70, 0x69, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x74,
0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x20,
0x3a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x61, 0x74, 0x74, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f,
0x72, 0x20, 0x3a, 0x70, 0x69, 0x74, 0x63, 0x68, 0x0a, 0x20, 0x20, 0x65,
0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a
};
unsigned int module_rpg1_len = 38705;
unsigned int module_rpg1_len = 38743;

View file

@ -85,6 +85,9 @@ class Scene_Title
@debug.bitmap.draw_text(5, 5, 200, 20, tr("Ruby #{RUBY_VERSION}"))
@debug.bitmap.draw_text(5, 25, 200, 20, tr("SDL #{SDLVer}"))
@debug.bitmap.draw_text(5, 45, 200, 20, tr("Sunshine #{SunshineVer}"))
if ModLoader::IS_ENABLED
@debug.bitmap.draw_text(5, 65, 200, 20, tr("Mods loaded: #{ModLoader::COUNT}"))
end
if $game_switches[160] && $game_switches[152]
@menu.bitmap.draw_text(MENU_X, MENU_Y + 75, 150, 24, tr("..."))

View file

@ -34,6 +34,8 @@ std::string getCacheDir(){
return SDL_getenv("Temp");
#elif defined(__linux__)
return std::string(SDL_getenv("HOME")) + "/.cache";
#elif __APPLE__
return "~/Library/Caches";
#else
return "idk";
#endif
@ -93,12 +95,16 @@ std::string sha256_file(const std::string &fn) {
}
std::string ModLoader(Config conf){
//"mods" by defailt
std::string path = conf.ModsDirPath;
if (!std::filesystem::exists(path) || !std::filesystem::is_directory(path)) {
if (!fs::exists(path) || !std::filesystem::is_directory(path)) {
Debug() << "[MODLOADER] Mods directory not found, skip.";
return "";
}
if (fs::is_empty(path)){
Debug() << "[MODLOADER] Mods directory empty, skip.";
return "";
}
//buildID - unique ID of a certain combination of mods
std::string buildID = "";
@ -117,20 +123,17 @@ std::string ModLoader(Config conf){
std::string full = p.string();
Debug() << "[MODLOADER] " << full;
mod_list.push_back(full);
mods_count++;
try {
auto h = sha256_file(full);
buildID_tmp.append(h);
}catch (const std::exception &e) {
Debug() << "[MODLOADER] sha256 failed for " << full << ", ex: " << e.what();
continue;
}
auto h = sha256_file(full);
buildID_tmp.append(h);
}
buildID = sha512(buildID_tmp);
Debug() << "[MODLOADER] BuildID: " << buildID;
std::string path3 = getCacheDir() + "/sunshine-" + buildID;
int err = 0;
modloader_is_enabled = true;
if(!std::filesystem::exists(path3)){
std::error_code ec;
fs::create_directory(path3, ec);
@ -143,7 +146,6 @@ std::string ModLoader(Config conf){
crash(Exception::ModLoaderError, "Copy error: %s", ec.message().c_str());
}
char state2[1024];
//Extracting zipsodpsofspo idk
for (size_t i = 0; i < mod_list.size(); ++i){
zip_t* za = zip_open(mod_list[i].c_str(), ZIP_RDONLY, &err);
@ -204,7 +206,7 @@ std::string ModLoader(Config conf){
return path3;
}else{
return path3;
}
}
}catch(const std::exception& e){
crash(Exception::ModLoaderError, "Something is wrong, Exception: %s ", e.what());
}

View file

@ -1,4 +1,7 @@
//modloader wow
//modloader bruh
#include <string>
#include "config.h"
std::string ModLoader(Config conf);
inline bool modloader_is_enabled = false;
inline unsigned int mods_count = 0;