This commit is contained in:
watrabi
2025-12-18 16:59:29 -05:00
parent c93494f795
commit ff95483b22
54 changed files with 60469 additions and 509 deletions
+2 -1
View File
@@ -82,6 +82,7 @@
"xstring": "cpp", "xstring": "cpp",
"xtr1common": "cpp", "xtr1common": "cpp",
"xtree": "cpp", "xtree": "cpp",
"xutility": "cpp" "xutility": "cpp",
"gpc.h": "c"
} }
} }
+12 -12
View File
@@ -46,18 +46,18 @@ void NetworkFixture::startClient(DataModelFixture& dm, bool waitForClientToRecei
args.values[0] = shared_ptr<RBX::Lua::GenericFunction>(new RBX::Lua::GenericFunction(boost::bind(&accepted, &characterLoadedEvent))); args.values[0] = shared_ptr<RBX::Lua::GenericFunction>(new RBX::Lua::GenericFunction(boost::bind(&accepted, &characterLoadedEvent)));
// hack: doing this in script, because sometimes SendMarker returns bad memory in c++ (only observed here) // hack: doing this in script, because sometimes SendMarker returns bad memory in c++ (only observed here)
const char* requestCharacterScript ="success = ...\n"\ //const char* requestCharacterScript ="success = ...\n"\
"local nc = game:GetService('NetworkClient')\n"\ // "local nc = game:GetService('NetworkClient')\n"\
"local replicator = nc:GetChildren()[1]\n"\ // "local replicator = nc:GetChildren()[1]\n"\
"local marker = replicator:SendMarker()\n"\ // "local marker = replicator:SendMarker()\n"\
"marker.Received:connect(function() replicator:RequestCharacter() end)\n"\ // "marker.Received:connect(function() replicator:RequestCharacter() end)\n"\
"local waitTime = 0\n"\ // "local waitTime = 0\n"\
"while waitTime < 60 do\n"\ // "while waitTime < 60 do\n"\
" local t = wait(1)\n"\ // " local t = wait(1)\n"\
" waitTime = waitTime + t\n"\ // " waitTime = waitTime + t\n"\
" if game.Players.LocalPlayer.Character ~= nil then success() break end\n"\ // " if game.Players.LocalPlayer.Character ~= nil then success() break end\n"\
"end\n"; // "end\n";
RBX_REQUIRE_NO_EXECEPTION(dm.execute(requestCharacterScript, args)); //WRBX_REQUIRE_NO_EXECEPTION(dm.execute(requestCharacterScript, args));
} }
BOOST_REQUIRE(characterLoadedEvent.Wait(RBX::Time::Interval::from_seconds(60))); BOOST_REQUIRE(characterLoadedEvent.Wait(RBX::Time::Interval::from_seconds(60)));
+1 -1
View File
@@ -61,7 +61,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStudio|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseStudio|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+1 -1
View File
@@ -192,6 +192,6 @@ namespace Security
hackFlag0, hackFlag1, hackFlag2, hackFlag3, hackFlag0, hackFlag1, hackFlag2, hackFlag3,
hackFlag4, hackFlag5, hackFlag6, hackFlag7, hackFlag4, hackFlag5, hackFlag6, hackFlag7,
hackFlag8, hackFlag9, hackFlag10, hackFlag11, hackFlag8, hackFlag9, hackFlag10, hackFlag11,
hackFlag12; hackFlag12, hackFlag67;
} }
} }
+232 -230
View File
@@ -70979,91 +70979,92 @@ static const unsigned char a0122[] = {
}; };
static const unsigned char a0123[] = { static const unsigned char a0123[] = {
0x2f, 0xd1, 0x2b, 0x58, 0x99, 0x34, 0x0d, 0x0d, 0x37, 0xca, 0xb1, 0xb6, 0x67, 0x6e, 0x55, 0x5d, 0x0d, 0x12, 0xf9, 0xe5, 0xb1, 0xb6, 0x9d, 0xcd, 0x55, 0x56, 0x41, 0x41, 0xf1, 0xfe, 0xe5, 0xe7, 0xa3, 0x0b, 0xdd, 0x1d, 0x5b, 0xee, 0x43, 0xd0, 0xcb, 0xa0, 0xe7, 0x60, 0xd3, 0x44, 0x8b, 0x10, 0x81, 0xe8, 0x2f, 0xa1, 0x25, 0x8c, 0xd3, 0x31, 0xc9, 0x3c, 0x77, 0x04, 0x65, 0xd4, 0x1b, 0xaa,
0x9d, 0x12, 0x82, 0x8b, 0x41, 0x46, 0x29, 0x2c, 0xe5, 0xea, 0xd1, 0xd5, 0x8b, 0x8b, 0x75, 0x65, 0x2e, 0x37, 0x19, 0x09, 0xd5, 0xd3, 0xbd, 0xad, 0x70, 0x7f, 0x61, 0x71, 0x1f, 0x1b, 0x05, 0x15, 0x11, 0xc8, 0xb4, 0x4e, 0xb5, 0x1c, 0x67, 0xf1, 0x59, 0xc0, 0x07, 0x90, 0xff, 0x61, 0xab, 0x28, 0xa2, 0x0d, 0x4f, 0xcc, 0x41, 0xa9, 0xf3, 0x90, 0xec, 0x55, 0x97, 0x34, 0x8b, 0xf1, 0x3b, 0xd8,
0xba, 0xc7, 0xa9, 0xa9, 0x21, 0x66, 0x6d, 0x49, 0x0c, 0x00, 0xf1, 0xe1, 0xa3, 0xab, 0x95, 0x85, 0x46, 0x57, 0x39, 0x29, 0xfd, 0xf3, 0xdd, 0xcd, 0x98, 0x9f, 0x81, 0x91, 0x37, 0x3b, 0x25, 0x55, 0x36, 0x9d, 0xdf, 0x6c, 0x95, 0x3c, 0xa3, 0x14, 0x70, 0xea, 0x27, 0xa4, 0x17, 0x81, 0xcb, 0x48, 0xca, 0x2d, 0x6f, 0xec, 0x69, 0xc9, 0x13, 0xb0, 0x04, 0x75, 0xb7, 0x54, 0xa3, 0x11, 0x5b, 0xf8,
0xd2, 0xe2, 0xc9, 0xc9, 0x83, 0x82, 0x7d, 0x66, 0x25, 0x3a, 0x00, 0x4a, 0xc9, 0xee, 0xb1, 0xa7, 0x66, 0x72, 0x49, 0x4a, 0x14, 0x16, 0xed, 0xe9, 0xb0, 0xba, 0xe1, 0xb4, 0x59, 0x5e, 0x45, 0x25, 0x5e, 0xbd, 0xff, 0xfc, 0xe5, 0x5c, 0xa3, 0x30, 0x9b, 0x04, 0x56, 0xdf, 0x3d, 0xb4, 0xf9, 0x18, 0xe1, 0x68, 0x8b, 0x0f, 0x8e, 0xec, 0x23, 0xd4, 0x2c, 0x90, 0xc7, 0x71, 0xc8, 0x34, 0x3b, 0x1e,
0xfd, 0x03, 0xeb, 0xe9, 0xa2, 0xaf, 0x8d, 0xae, 0xb5, 0x75, 0x38, 0x31, 0xca, 0xee, 0x95, 0xdc, 0x8d, 0xe2, 0x71, 0x39, 0x35, 0x20, 0x1d, 0x1d, 0xd5, 0x49, 0xc1, 0xc1, 0x7c, 0x7e, 0x72, 0x64, 0x71, 0xd8, 0x1f, 0xc9, 0x15, 0x7d, 0xc1, 0x50, 0xba, 0x29, 0x67, 0xd7, 0xad, 0xfb, 0x02, 0x98, 0x22, 0x68, 0xef, 0x35, 0xa5, 0x7c, 0x5b, 0xa0, 0x4d, 0xa7, 0xf7, 0x84, 0xed, 0xcc, 0x9b, 0x28,
0x19, 0x22, 0x09, 0x19, 0xc1, 0xc2, 0xa9, 0xad, 0x65, 0x72, 0x51, 0x55, 0x05, 0x0e, 0xf9, 0xfd, 0xad, 0xbd, 0x85, 0x99, 0x48, 0x5e, 0x11, 0x3d, 0xe5, 0xf8, 0x94, 0xe1, 0xda, 0x9f, 0x85, 0x85, 0x94, 0xf8, 0x2c, 0xcd, 0x31, 0x9c, 0xe7, 0x7c, 0xd9, 0x40, 0x8f, 0x14, 0x79, 0xe0, 0x2b, 0xb8, 0x3d, 0x88, 0xcb, 0x50, 0xc5, 0x20, 0x7b, 0x00, 0x66, 0xcc, 0x17, 0xbd, 0x05, 0x58, 0xbb, 0x58,
0x3e, 0x4a, 0x29, 0x29, 0xfd, 0xe6, 0xc9, 0xc9, 0x85, 0x8e, 0x6d, 0x71, 0x29, 0x26, 0x15, 0x15, 0xc9, 0xd2, 0xb9, 0xcd, 0x71, 0x76, 0x55, 0x5d, 0x06, 0x1d, 0x2d, 0x01, 0xb9, 0xb2, 0xa5, 0xb6, 0xb3, 0x61, 0x5f, 0xaf, 0x54, 0xbc, 0x03, 0x93, 0xf1, 0x60, 0xa7, 0x28, 0x9d, 0x00, 0x4f, 0xd8, 0x45, 0xb4, 0xef, 0x7c, 0xed, 0x4c, 0x93, 0x24, 0x89, 0xf0, 0x43, 0xc4, 0x2d, 0x9c, 0xdb, 0x7b,
0x77, 0x6e, 0x49, 0x49, 0x1d, 0x06, 0xed, 0xe9, 0xa5, 0xae, 0xd9, 0x91, 0x4d, 0x6a, 0x35, 0x35, 0xf9, 0xf2, 0xdd, 0xdd, 0x91, 0x99, 0x69, 0x7d, 0x08, 0x3a, 0x89, 0x21, 0xd9, 0x5a, 0xc5, 0xc1, 0xd6, 0x14, 0x7f, 0x0c, 0x79, 0xdc, 0x30, 0x9a, 0x15, 0x80, 0xc7, 0x48, 0xbd, 0x24, 0x6f, 0xf8, 0x65, 0x80, 0x0f, 0x98, 0x21, 0x6c, 0xb3, 0x54, 0xa9, 0x14, 0x53, 0xe4, 0x42, 0xa0, 0xfb, 0xb5,
0x1d, 0x82, 0x69, 0xa7, 0x20, 0x75, 0x42, 0x0d, 0xc5, 0xca, 0xa6, 0xc4, 0x68, 0x6e, 0x59, 0x55, 0x0d, 0x06, 0xf9, 0xf9, 0x6d, 0xb7, 0x9d, 0x91, 0x55, 0x49, 0x59, 0x49, 0xfb, 0xfe, 0xe9, 0xe5, 0xf1, 0xf0, 0x9f, 0x2c, 0x11, 0xfc, 0x47, 0xb0, 0x39, 0xa0, 0x30, 0x75, 0x8e, 0x14, 0x8b, 0x18, 0x81, 0xf0, 0x56, 0xbd, 0x25, 0x80, 0xd3, 0x60, 0xdd, 0x30, 0x77, 0xe4, 0x6c, 0xd4, 0x17, 0xa8,
0xdd, 0xbb, 0x89, 0x89, 0x41, 0xfb, 0x2c, 0x2d, 0xe9, 0xea, 0xd1, 0x32, 0x88, 0x8e, 0xf5, 0x74, 0x2d, 0x3e, 0x19, 0x19, 0x3b, 0xd7, 0xae, 0xa7, 0x79, 0x7a, 0x61, 0x90, 0x18, 0x0d, 0x18, 0x09, 0x51, 0x61, 0xbf, 0x4c, 0xb5, 0xc4, 0x62, 0xf0, 0x55, 0xc0, 0x47, 0x8e, 0xfd, 0x64, 0xab, 0xf9, 0xa0, 0x08, 0x43, 0xdc, 0x45, 0x4b, 0xf2, 0x80, 0x6d, 0x51, 0x97, 0x28, 0x8d, 0xf4, 0xd5, 0xc9,
0xbd, 0xc2, 0xbd, 0xa9, 0x91, 0xe7, 0x4d, 0x4d, 0x05, 0x2a, 0xc6, 0xef, 0x1b, 0x04, 0x95, 0x97, 0x46, 0x41, 0xb8, 0x3f, 0xe5, 0xeb, 0x5e, 0xda, 0x99, 0xa4, 0x02, 0x8e, 0x1b, 0x79, 0xa0, 0x29, 0x22, 0x83, 0xd3, 0x6c, 0xd5, 0xc9, 0x82, 0x03, 0x67, 0xec, 0x27, 0xb4, 0x09, 0x84, 0x3b, 0xdd, 0xc1, 0x28, 0x6f, 0xdc, 0x52, 0xd2, 0xa1, 0x0a, 0x09, 0x72, 0xbc, 0x57, 0x2c, 0x12, 0x4f, 0xf5,
0xc9, 0xa0, 0xea, 0x35, 0x39, 0x1e, 0xee, 0x6a, 0x35, 0x62, 0x15, 0x03, 0xef, 0x9f, 0xb3, 0xba, 0x75, 0x3e, 0x56, 0x5b, 0x2d, 0x56, 0xf9, 0xe5, 0x80, 0xeb, 0xa9, 0xb5, 0x41, 0x12, 0x33, 0xd2, 0x53, 0xb3, 0xe6, 0x91, 0xf1, 0x56, 0xaf, 0x0e, 0x1a, 0x11, 0x60, 0x93, 0x3b, 0xab, 0xff, 0x3a, 0x61, 0x60, 0xa7, 0x2b, 0x81, 0xe6, 0x23, 0x88, 0x2d, 0x84, 0xfc, 0x35, 0x4a, 0x25, 0x63, 0x44,
0x64, 0xbd, 0x6a, 0xee, 0xb5, 0xf4, 0x08, 0x99, 0x6f, 0x11, 0x37, 0x3e, 0xf5, 0xb8, 0xb7, 0x98, 0x81, 0xa1, 0xfc, 0x63, 0x08, 0x6d, 0x94, 0x0b, 0xc9, 0x8c, 0x08, 0xcb, 0xef, 0xd9, 0xe6, 0x62, 0x1d, 0x06, 0x85, 0x06, 0x11, 0x66, 0xf9, 0x01, 0x30, 0x36, 0x7f, 0xb8, 0xa6, 0x73, 0x69, 0xe2, 0x05, 0x62, 0xbb, 0x6e, 0x20, 0x1a, 0x7c, 0xbb, 0xce, 0xa1, 0xeb, 0xd2, 0x0a, 0xe9, 0x7e, 0x09,
0x05, 0x7e, 0x0f, 0x1e, 0xef, 0xa3, 0xa7, 0xb4, 0x45, 0x0a, 0xe4, 0x91, 0x39, 0x71, 0xf1, 0xd5, 0xf8, 0xdd, 0x95, 0x87, 0x75, 0x3c, 0x21, 0x6b, 0xdf, 0xfe, 0xe1, 0xe1, 0xb9, 0x1a, 0x08, 0xa5, 0x14, 0xe4, 0x01, 0x97, 0x3f, 0x85, 0xff, 0x26, 0x97, 0x13, 0x24, 0x04, 0x79, 0xee, 0x33, 0xe4, 0x27, 0x91, 0xfc, 0x39, 0x4e, 0x37, 0x53, 0x60, 0x53, 0xd9, 0x29, 0x4c, 0x09, 0x56, 0xe1, 0x27,
0x1d, 0x1e, 0xa4, 0x09, 0xc1, 0x96, 0xcd, 0xc9, 0xab, 0x04, 0x7d, 0xcc, 0x5a, 0xb5, 0x05, 0xd2, 0xbe, 0x49, 0xb7, 0x0f, 0x3e, 0xfa, 0x49, 0x5d, 0x55, 0x8b, 0xce, 0x7f, 0x28, 0xb6, 0xa5, 0xc7, 0x3c, 0x38, 0x7b, 0x86, 0xf4, 0x7a, 0xd8, 0x1e, 0xf9, 0x60, 0x87, 0xb0, 0x93, 0x27, 0x6b, 0x84, 0x4f, 0x8b, 0xcf, 0x0c, 0xe5, 0x48, 0xbd, 0xae, 0x04, 0x31, 0x4f, 0x5f, 0xbc, 0x5f, 0xa3, 0xf3,
0xa9, 0x47, 0x13, 0x04, 0x92, 0xc4, 0xf9, 0xed, 0xc7, 0x4a, 0x92, 0x9c, 0xa5, 0x5a, 0xf0, 0x39, 0xed, 0x10, 0x15, 0x38, 0x86, 0xf7, 0x79, 0x15, 0xde, 0x22, 0x27, 0x4c, 0x32, 0xc6, 0x50, 0x02, 0x5e, 0x80, 0x30, 0x80, 0x61, 0xdc, 0x63, 0xa2, 0xcd, 0x03, 0x56, 0x5c, 0xbd, 0x46, 0x04, 0x25, 0x6d, 0x0b, 0x1b, 0x59, 0x11, 0x6c, 0xd1, 0x25, 0xe5, 0x4a, 0x21, 0x71, 0x8a, 0xb8, 0xfb, 0x6a,
0x69, 0x82, 0x9b, 0x32, 0x21, 0x2c, 0x30, 0x83, 0x82, 0x53, 0xaf, 0x9b, 0xea, 0x1f, 0x5c, 0x4c, 0x09, 0x66, 0xf0, 0xe0, 0xb3, 0xc5, 0x8e, 0x84, 0xc2, 0x94, 0x19, 0xd7, 0xf2, 0xcd, 0x9a, 0xd4, 0xaa, 0xe3, 0x88, 0x10, 0x91, 0x94, 0xa8, 0xc8, 0x3f, 0xd1, 0x12, 0x6c, 0xcb, 0x8e, 0x9f, 0x18, 0x73, 0xb3, 0x2f, 0xb6, 0x18, 0x02, 0x77, 0xfd, 0x08, 0x72, 0xf4, 0x75, 0x64, 0xcd, 0x1f, 0xd0,
0x1e, 0xdb, 0x94, 0x90, 0x45, 0xc6, 0x0a, 0x34, 0xe7, 0x91, 0xf6, 0xc8, 0x91, 0x5f, 0x2d, 0xe3, 0x32, 0x67, 0x7d, 0x08, 0x52, 0x53, 0x86, 0xa4, 0x71, 0xf2, 0x5a, 0x78, 0x1b, 0x99, 0x40, 0x1c, 0x02, 0x61, 0xbd, 0x3f, 0xa6, 0x05, 0x7b, 0x21, 0x01, 0x56, 0x81, 0x7e, 0xdc, 0x64, 0x28, 0x45, 0x86, 0x11, 0x4b, 0x5c, 0x62, 0xb5, 0xf1, 0xff, 0xd8, 0x49, 0x0e, 0xf7, 0xd5, 0x62, 0xab, 0xb3,
0x24, 0x11, 0xf1, 0x3f, 0x82, 0x88, 0x89, 0x55, 0x86, 0x87, 0xbe, 0xe8, 0xad, 0x3a, 0xcc, 0x8c, 0x4f, 0xdd, 0x60, 0x20, 0xeb, 0x20, 0x85, 0x4b, 0x62, 0x8a, 0x3b, 0x1e, 0xba, 0xa7, 0x48, 0x3c, 0xcd, 0x28, 0x5c, 0xe9, 0xee, 0x25, 0x87, 0x9c, 0x3c, 0xf9, 0x25, 0x33, 0x58, 0x9d, 0xd1, 0x8e, 0x99, 0xbe, 0x31, 0x5a, 0xa2, 0x9a, 0x90, 0x31, 0x50, 0x69, 0xb3, 0xd0, 0xf4, 0x0d, 0x59, 0x7b,
0xd9, 0x7e, 0xa4, 0xd0, 0x83, 0x1d, 0x1a, 0x74, 0xbe, 0xf2, 0x49, 0x87, 0xdf, 0x04, 0xc5, 0xb5, 0xed, 0xc9, 0xf3, 0xdb, 0x31, 0xa7, 0xe4, 0x35, 0x0c, 0xf8, 0xa0, 0xa1, 0xc9, 0x5f, 0x45, 0x22, 0x32, 0xa1, 0x64, 0x54, 0xad, 0xca, 0x8f, 0xe1, 0xdb, 0x30, 0xc4, 0x4d, 0x50, 0xbd, 0xef, 0xd8, 0x96, 0x51, 0x8d, 0x87, 0xf2, 0xf5, 0x2f, 0x1b, 0x71, 0x06, 0x40, 0xa8, 0xbd, 0x34, 0xfb, 0x3e,
0xfe, 0x02, 0xde, 0xeb, 0xa1, 0xae, 0x8d, 0x8d, 0x47, 0x4a, 0x73, 0x32, 0xe9, 0xee, 0xd4, 0x9a, 0x8e, 0x92, 0x40, 0x7a, 0x31, 0x05, 0x1e, 0x1c, 0xca, 0xda, 0xc2, 0xc5, 0x79, 0x7e, 0x83, 0x64, 0x13, 0xed, 0x89, 0x8e, 0x55, 0xdc, 0xbd, 0x16, 0xb8, 0x24, 0xf3, 0xf5, 0x5d, 0xff, 0x09, 0x98, 0x9d, 0x69, 0xaf, 0x3e, 0xa5, 0x4e, 0x50, 0xe0, 0x49, 0xb1, 0xa0, 0x87, 0xed, 0x15, 0x98, 0x28,
0x1d, 0x20, 0x09, 0x09, 0x07, 0xc7, 0xbd, 0xb6, 0x6c, 0x6a, 0xa1, 0x55, 0x09, 0x0a, 0xdf, 0x74, 0xa9, 0xb9, 0x8a, 0x99, 0x57, 0x41, 0x11, 0x8f, 0x2a, 0xb3, 0x7f, 0x7f, 0x5e, 0x0f, 0x7f, 0x92, 0xd1, 0xfb, 0x3e, 0xd3, 0x35, 0x9f, 0xe7, 0x70, 0xd9, 0xaa, 0x86, 0x14, 0x7f, 0xe4, 0x2b, 0x17, 0x22, 0x98, 0xd3, 0x55, 0xc5, 0xdc, 0x77, 0x00, 0x6d, 0xfa, 0x96, 0xa0, 0x06, 0x67, 0xbb, 0x4e,
0x3d, 0x42, 0x09, 0x29, 0xe1, 0x98, 0xce, 0xcd, 0xb2, 0x8a, 0x71, 0x79, 0x29, 0x2e, 0x17, 0x15, 0xd8, 0xd0, 0xe3, 0xb9, 0x71, 0x20, 0x5d, 0x5f, 0x86, 0x19, 0x01, 0xeb, 0xb8, 0xbe, 0x5b, 0xa4, 0xa6, 0x34, 0xed, 0x33, 0x1c, 0x22, 0x9d, 0x57, 0x68, 0x9a, 0xb0, 0x34, 0x9d, 0x24, 0x4b, 0xd8, 0xcd, 0xab, 0xef, 0x4b, 0xe5, 0x4c, 0x9b, 0x20, 0x89, 0xf2, 0x37, 0xd1, 0x2f, 0xce, 0xdb, 0x68,
0x55, 0x06, 0x49, 0x49, 0x0d, 0x06, 0xec, 0x85, 0xa5, 0xaa, 0xac, 0x91, 0x4a, 0x30, 0x36, 0x35, 0xf9, 0xf2, 0xd1, 0xdd, 0x91, 0x9e, 0x17, 0x7f, 0x35, 0x22, 0x21, 0x20, 0xc9, 0xde, 0xf5, 0xc5, 0x40, 0x3b, 0x6f, 0x08, 0x2e, 0xdc, 0x22, 0xc2, 0x1a, 0x80, 0xc9, 0x56, 0xb5, 0x40, 0x6b, 0xf8, 0x6d, 0xc8, 0x0e, 0xf4, 0x05, 0x6c, 0x8e, 0x40, 0xae, 0x96, 0x54, 0xe4, 0x55, 0xb4, 0xff, 0x8c,
0x7d, 0x82, 0x91, 0x6a, 0x29, 0xbe, 0x0d, 0x2d, 0x44, 0xc8, 0x7d, 0xb1, 0x08, 0x6a, 0x33, 0xd2, 0x1c, 0x10, 0xac, 0x55, 0xb1, 0xc7, 0x9b, 0x8d, 0x46, 0x43, 0xc8, 0x68, 0x1b, 0xf2, 0xe5, 0xe6, 0xf1, 0x50, 0xf1, 0x2e, 0x95, 0xe8, 0x43, 0xd1, 0x29, 0xa0, 0xd7, 0x74, 0xdd, 0x44, 0x8e, 0x1c, 0x89, 0x70, 0x2f, 0x7d, 0xa4, 0x8e, 0xd7, 0x6e, 0xc9, 0x30, 0x73, 0x62, 0xea, 0xc5, 0x19, 0xfd,
0xbd, 0xa2, 0xea, 0x8c, 0x26, 0xb2, 0x14, 0xae, 0xe2, 0xca, 0xd1, 0xd1, 0x9d, 0x8e, 0xc5, 0x7d, 0x38, 0x21, 0x7b, 0x72, 0x46, 0x80, 0x5a, 0x14, 0x8a, 0x10, 0x34, 0x61, 0x4a, 0x3c, 0x05, 0x05, 0xbd, 0x78, 0xce, 0x4a, 0xa5, 0x0f, 0x7a, 0x79, 0x70, 0x22, 0x0b, 0x94, 0xfe, 0x44, 0xab, 0x5b, 0xa4, 0x6f, 0xbb, 0xe5, 0xc6, 0xab, 0xd3, 0x80, 0xe9, 0x44, 0x97, 0x94, 0x85, 0xe1, 0x28, 0xaa,
0xbd, 0xb0, 0x33, 0xab, 0x61, 0x6e, 0x4d, 0x4d, 0x33, 0x0b, 0xa1, 0xf8, 0xa9, 0xac, 0x95, 0x91, 0x82, 0x56, 0x29, 0x3d, 0x65, 0xf4, 0xdd, 0xb9, 0x95, 0x98, 0xfe, 0x85, 0x19, 0x3a, 0x3b, 0x2f, 0x5a, 0x0f, 0x89, 0x8b, 0x7c, 0xc3, 0xe9, 0x45, 0x79, 0xb3, 0x05, 0xb4, 0x1d, 0x84, 0xb9, 0xea, 0xc3, 0x28, 0x67, 0xfc, 0x65, 0xfa, 0x12, 0xf0, 0x00, 0x70, 0xb5, 0x44, 0xa9, 0xc8, 0x5f, 0xf8,
0xdd, 0xf2, 0xd6, 0xcc, 0x81, 0x96, 0x4d, 0x68, 0x25, 0x3a, 0x30, 0x14, 0xc9, 0xce, 0xf4, 0xb5, 0x4d, 0x76, 0x7a, 0x53, 0x11, 0x05, 0xd9, 0xf0, 0xb6, 0xbb, 0xd8, 0xa5, 0x79, 0x5a, 0x60, 0x56, 0x55, 0x20, 0xfd, 0x8e, 0xc5, 0x5d, 0xa3, 0xf6, 0x9b, 0x20, 0x43, 0xcb, 0x2e, 0xa5, 0xfb, 0x58, 0xe4, 0x48, 0x9f, 0x3d, 0x80, 0xec, 0x33, 0xfc, 0x29, 0xb0, 0xd3, 0x47, 0xc7, 0x34, 0x6b, 0x2c,
0xfd, 0x14, 0xcf, 0xfa, 0xa1, 0xe3, 0x8d, 0x8d, 0x41, 0x6d, 0x3f, 0x31, 0xcd, 0xae, 0xb5, 0x44, 0x89, 0xd7, 0x3e, 0x39, 0x35, 0x1e, 0x0a, 0x1d, 0x80, 0xda, 0x86, 0x01, 0x7d, 0x57, 0x6b, 0x65, 0x74, 0xd8, 0x0c, 0x89, 0x04, 0x7f, 0xc2, 0xd1, 0xbd, 0x00, 0x63, 0xd2, 0x4e, 0xc4, 0x1d, 0xbf, 0x12, 0x68, 0xea, 0x3c, 0xa5, 0x08, 0x7b, 0xee, 0x49, 0x94, 0xb7, 0xe4, 0x74, 0x50, 0xde, 0x6f,
0x3e, 0xa2, 0x6f, 0x2c, 0xc1, 0xe2, 0x2d, 0xe9, 0x6c, 0x6a, 0x73, 0x37, 0xc9, 0xc6, 0xf1, 0xa5, 0x2d, 0xf6, 0x59, 0x9d, 0x7b, 0x7f, 0x3d, 0x1d, 0x6f, 0x63, 0xe0, 0xe1, 0xd9, 0x37, 0xba, 0x81, 0xd1, 0xfc, 0x16, 0xdb, 0x35, 0xc9, 0xe3, 0x37, 0x19, 0x44, 0xad, 0x1a, 0x7d, 0xc7, 0xab, 0xde, 0x04, 0x88, 0xeb, 0xdc, 0x81, 0x25, 0x73, 0x22, 0x0f, 0x10, 0xc7, 0xa0, 0x5d, 0xf4, 0xff, 0x88,
0x16, 0x2d, 0x29, 0x39, 0xcd, 0xe3, 0xcd, 0xdd, 0xa8, 0x8f, 0x71, 0x61, 0x07, 0x2b, 0x15, 0x05, 0xe2, 0xd7, 0xb9, 0xa9, 0x41, 0x73, 0x5d, 0x1d, 0x24, 0x1a, 0x01, 0x01, 0x28, 0xbe, 0xa5, 0xeb, 0xb5, 0x33, 0x76, 0xec, 0x75, 0x26, 0x9a, 0x91, 0xf9, 0x20, 0x0e, 0x0b, 0x99, 0x28, 0x24, 0xd8, 0x51, 0x85, 0xea, 0x7c, 0xf5, 0x62, 0x96, 0x20, 0x99, 0xdf, 0x32, 0xc4, 0x3d, 0xa4, 0xde, 0x68,
0x5c, 0x6e, 0x4d, 0x49, 0x09, 0x88, 0xec, 0xe5, 0xb9, 0xaa, 0x95, 0x89, 0x49, 0x5e, 0xcb, 0x5d, 0xed, 0xf5, 0x61, 0xdd, 0x95, 0xb2, 0x7d, 0x7d, 0x15, 0x3a, 0x25, 0x25, 0xd9, 0xda, 0xd1, 0xc5, 0xc1, 0x09, 0x7a, 0x0c, 0x35, 0xee, 0x23, 0xb0, 0x19, 0x1f, 0xc7, 0x54, 0xf3, 0x25, 0x67, 0xfc, 0x61, 0xc0, 0x81, 0x9d, 0x0d, 0x70, 0xb3, 0x44, 0xb1, 0x10, 0x47, 0x1a, 0x25, 0xb4, 0xfc, 0x34,
0x72, 0x8a, 0x69, 0x68, 0x21, 0x02, 0x0d, 0x0d, 0xdd, 0xca, 0xb0, 0x77, 0x68, 0x6d, 0xa3, 0x54, 0x0d, 0x02, 0xf9, 0xfd, 0xa9, 0xb6, 0x9d, 0x91, 0x55, 0x55, 0x45, 0x41, 0xf8, 0xf1, 0xc5, 0xe5, 0xf5, 0x5c, 0xbb, 0x2c, 0x95, 0xdc, 0x43, 0xd4, 0x3d, 0xa0, 0xe3, 0x60, 0xdd, 0x4b, 0x83, 0x18, 0x80, 0xe8, 0x0b, 0xbc, 0x25, 0x94, 0xd3, 0x61, 0x0f, 0x31, 0x74, 0xf2, 0x6c, 0xd4, 0x0b, 0xa8,
0x8c, 0xa2, 0xad, 0x89, 0x41, 0x42, 0x2d, 0x22, 0xb9, 0xea, 0xac, 0xd1, 0x1d, 0x8e, 0x75, 0x71, 0x2d, 0x3d, 0x81, 0x19, 0xdc, 0xd6, 0x99, 0xbd, 0x7d, 0x86, 0x61, 0x6e, 0x09, 0x1e, 0x08, 0x05, 0x15, 0x60, 0xbf, 0x4c, 0xb9, 0x1c, 0x6c, 0xf4, 0x59, 0xc1, 0x08, 0xb4, 0xfd, 0x75, 0xab, 0x1c, 0xa1, 0x08, 0x4b, 0xdc, 0x4a, 0xf0, 0xf3, 0xfd, 0xe9, 0xc4, 0x97, 0x24, 0x89, 0xf4, 0x34, 0x50,
0xed, 0xc2, 0xa9, 0x65, 0x62, 0x66, 0x4a, 0x4a, 0x23, 0x38, 0xf1, 0xfd, 0xa9, 0xb9, 0xa6, 0x99, 0x4d, 0x12, 0x0d, 0x39, 0xf1, 0xf6, 0x87, 0xda, 0x95, 0x7d, 0x82, 0x96, 0x0c, 0x32, 0x25, 0x65, 0x31, 0x95, 0xdf, 0x48, 0xd5, 0x34, 0x7f, 0x10, 0x76, 0xf0, 0x27, 0xb9, 0x1d, 0xd4, 0xcb, 0x58, 0x0d, 0x2b, 0x6f, 0x72, 0x67, 0xea, 0x20, 0xa0, 0x05, 0x70, 0xa0, 0x70, 0xa1, 0x14, 0x1b, 0xdd,
0xeb, 0xe2, 0xc9, 0xc9, 0x16, 0x85, 0xed, 0x1c, 0x25, 0x2a, 0x11, 0x26, 0xc9, 0xce, 0xb5, 0x1a, 0x6f, 0x72, 0x55, 0x59, 0x42, 0x2e, 0xfd, 0xfd, 0xb5, 0x81, 0xad, 0xa1, 0x0a, 0x67, 0x45, 0x45, 0x51, 0xb8, 0xff, 0xeb, 0xf2, 0x5c, 0xe0, 0x37, 0x8e, 0x36, 0x4b, 0xd4, 0x7d, 0x93, 0xeb, 0x78, 0xe1, 0xbe, 0x8c, 0x9c, 0xf4, 0xec, 0x33, 0xc0, 0x11, 0x90, 0xd7, 0x64, 0x79, 0x36, 0x7b, 0x04,
0xfd, 0x50, 0xe5, 0xe9, 0xb2, 0x9c, 0x9b, 0x8e, 0x45, 0xd6, 0x34, 0x31, 0x79, 0xeb, 0xd5, 0xa6, 0x8a, 0x52, 0xf8, 0x7d, 0x3a, 0x05, 0xaf, 0xf4, 0x0f, 0x12, 0xe2, 0x29, 0x23, 0xd7, 0x13, 0x66, 0x71, 0x8b, 0x26, 0xac, 0x15, 0x7c, 0xf8, 0x5c, 0xb9, 0x73, 0x5d, 0xf4, 0x5d, 0xc4, 0x59, 0x94, 0x01, 0x68, 0xbb, 0x3c, 0xa5, 0xb8, 0x56, 0xe0, 0xe9, 0xb5, 0xf7, 0x10, 0xe8, 0xa4, 0x9a, 0x28,
0xed, 0x73, 0x0b, 0x0c, 0xd5, 0x94, 0x28, 0xbf, 0x40, 0x51, 0x55, 0x43, 0x27, 0x4b, 0x70, 0xed, 0x9f, 0x84, 0x99, 0x9b, 0x48, 0xd8, 0xbc, 0x3f, 0xf7, 0xaf, 0xe5, 0xf5, 0xb6, 0xc5, 0xe9, 0x6d, 0x91, 0xfc, 0x2d, 0x4d, 0x31, 0x97, 0xd0, 0xc2, 0x30, 0x9a, 0x4f, 0x37, 0x95, 0xbe, 0x82, 0xce, 0x22, 0x78, 0x9e, 0x5e, 0xc0, 0x38, 0x21, 0x85, 0x7b, 0xf5, 0x2c, 0xa0, 0x1f, 0x5a, 0xfe, 0xcd,
0xe2, 0xd5, 0x29, 0x2d, 0xeb, 0x96, 0xb8, 0x29, 0x84, 0xdf, 0x77, 0x7e, 0x29, 0x0e, 0x15, 0x1b, 0xe8, 0xdb, 0xb1, 0xad, 0x75, 0x6c, 0x3f, 0x10, 0xc5, 0x86, 0x05, 0x9c, 0x88, 0xff, 0xaf, 0x15, 0xa9, 0x2a, 0x69, 0xec, 0x57, 0xa5, 0x8d, 0x11, 0xfb, 0x62, 0xf2, 0x30, 0x89, 0x2b, 0x10, 0xb4, 0xa9, 0x77, 0x78, 0x7c, 0xe1, 0x46, 0xe3, 0x55, 0x6d, 0xf1, 0x62, 0xc2, 0x22, 0x94, 0xfb, 0x68,
0x66, 0x23, 0xc4, 0x69, 0x05, 0x2c, 0x6c, 0xfd, 0x8c, 0xb9, 0x1a, 0x8a, 0x41, 0x6a, 0x3b, 0x16, 0xe1, 0xdc, 0x52, 0xc2, 0x81, 0xae, 0x73, 0x5e, 0x21, 0x78, 0x1b, 0x28, 0x8b, 0xc4, 0xc9, 0x64, 0xdf, 0x1d, 0x76, 0x04, 0x61, 0xd8, 0x39, 0xd2, 0x54, 0x50, 0x5b, 0x50, 0x20, 0x15, 0x2a, 0xf2, 0xd1, 0xf3, 0x4e, 0x11, 0x25, 0x68, 0x99, 0xc1, 0xb9, 0x39, 0x44, 0x6f, 0x56, 0xbc, 0xdf, 0x86,
0x7a, 0xbe, 0x1d, 0x69, 0x43, 0xa9, 0xa5, 0x0a, 0xf9, 0xcc, 0xbe, 0x99, 0x69, 0x9e, 0x54, 0x5d, 0x19, 0x1a, 0xdd, 0xeb, 0x5c, 0xe5, 0x7d, 0x10, 0x75, 0x52, 0x75, 0x43, 0xea, 0xd3, 0xf8, 0xd1, 0xd2, 0x54, 0xb1, 0xa7, 0x8e, 0xec, 0x7b, 0xde, 0x1a, 0xb4, 0xa5, 0x4e, 0xd4, 0x16, 0x91, 0x14, 0x20, 0xef, 0x13, 0xc8, 0x25, 0xee, 0x5c, 0xc8, 0xce, 0x0c, 0x71, 0x0b, 0x45, 0xd4, 0xeb, 0xa9,
0x9d, 0x80, 0x99, 0xa1, 0x75, 0x46, 0xe5, 0xbc, 0xcf, 0xf2, 0x9d, 0x1d, 0x44, 0xe7, 0xe0, 0x79, 0x8e, 0x22, 0x5f, 0x39, 0xd1, 0x24, 0xae, 0xb3, 0x56, 0x6a, 0x59, 0xea, 0x02, 0x0a, 0x47, 0x96, 0x19, 0x6c, 0xb7, 0x68, 0xa7, 0xf1, 0x30, 0x10, 0xd4, 0xe0, 0x0f, 0xa0, 0xff, 0x77, 0x86, 0x25, 0x95, 0x08, 0x6d, 0xcc, 0x6d, 0x98, 0xf3, 0x48, 0x78, 0x7a, 0x8f, 0x68, 0x41, 0x39, 0x52, 0x5d,
0x92, 0xda, 0xe5, 0x0d, 0xd0, 0x95, 0x67, 0x5f, 0xb7, 0x1a, 0xb7, 0xfb, 0x19, 0x91, 0xde, 0x91, 0xfe, 0x3e, 0x72, 0xb6, 0x57, 0xf0, 0x9b, 0xdb, 0x9a, 0xd6, 0x81, 0x71, 0x38, 0x36, 0x31, 0x29, 0x3d, 0x3b, 0xcf, 0x2a, 0xf5, 0x3c, 0x71, 0x03, 0x77, 0xc3, 0x37, 0x8c, 0x96, 0x9f, 0xdf, 0x1a, 0x52, 0x07, 0x77, 0xb0, 0xc1, 0x7d, 0xe0, 0x8a, 0x1b, 0xc2, 0xa7, 0x02, 0xa7, 0xa4, 0x64, 0xa3,
0xf3, 0xfd, 0x88, 0x6b, 0x8e, 0x0b, 0x4d, 0x61, 0x1b, 0xa9, 0x04, 0x20, 0xee, 0xf6, 0xb5, 0x41, 0x68, 0xe7, 0x6d, 0x4d, 0x53, 0x18, 0xde, 0xe5, 0xf9, 0xac, 0x96, 0xbd, 0x0f, 0xbd, 0x47, 0xee, 0x55, 0x0b, 0x93, 0xc7, 0x7a, 0xfa, 0xa5, 0x76, 0x9f, 0x0f, 0x0b, 0xd4, 0xcd, 0xa5, 0xe3, 0x6c, 0xed, 0x66, 0x90, 0x5d, 0x27, 0xe3, 0xbe, 0xe0, 0x25, 0xae, 0x54, 0x71, 0xfc, 0x13, 0x43, 0x08,
0x3e, 0x0e, 0x4c, 0xf0, 0xf1, 0x86, 0x8d, 0x8d, 0xe9, 0x4a, 0xc3, 0x22, 0x7e, 0xd7, 0xc1, 0x97, 0x06, 0x89, 0x61, 0x35, 0x29, 0x0a, 0x01, 0x4b, 0x6e, 0x64, 0x09, 0x87, 0x6b, 0xca, 0x7c, 0x35, 0x85, 0xdd, 0x8a, 0x98, 0x01, 0x3e, 0xcd, 0x73, 0xa1, 0x6c, 0x71, 0xc3, 0x41, 0x92, 0xe8, 0x9a, 0xaa, 0xab, 0xa3, 0x99, 0xbc, 0x5c, 0x73, 0xe0, 0x49, 0x1c, 0xf7, 0x76, 0xfe, 0xc3, 0xa2, 0x3c,
0x17, 0x92, 0x4a, 0x5c, 0xc5, 0x7b, 0x24, 0xf8, 0xea, 0xcc, 0x5b, 0x01, 0x0f, 0x01, 0xb9, 0xf5, 0x5f, 0xb1, 0x91, 0x8d, 0x41, 0x6e, 0x25, 0xa6, 0x82, 0x8f, 0x6c, 0xc1, 0x89, 0xd6, 0x81, 0x9d, 0xd3, 0x73, 0x24, 0xd4, 0x79, 0x84, 0xdf, 0x6c, 0x8f, 0xfb, 0x39, 0xdc, 0x3b, 0xf6, 0x9f, 0xa1, 0x71, 0x82, 0x7f, 0x1f, 0x90, 0x28, 0xce, 0x89, 0x3c, 0x5f, 0xb1, 0xae, 0x5d, 0x72, 0xb4, 0x04,
0x08, 0x73, 0x33, 0x68, 0xb9, 0xe6, 0x39, 0xd0, 0x9f, 0xcb, 0x6d, 0x27, 0x27, 0x0d, 0x35, 0x75, 0x2b, 0x3f, 0x6b, 0xbf, 0x7d, 0xd1, 0x7f, 0x07, 0x1f, 0xaa, 0x46, 0x5e, 0xbd, 0x7f, 0x32, 0xfa, 0xb1, 0xea, 0x5c, 0xe4, 0x41, 0xac, 0x3b, 0x88, 0x62, 0x17, 0xd2, 0xb9, 0xbd, 0x14, 0x03, 0xdc, 0x59, 0x9d, 0xde, 0x66, 0xa4, 0x14, 0x93, 0xd4, 0x94, 0xea, 0x76, 0xd8, 0x7b, 0x9a, 0xf8, 0x48,
0xd2, 0xc4, 0x47, 0x13, 0x80, 0x04, 0xfd, 0xdd, 0xa1, 0xe8, 0x0f, 0xc0, 0xd4, 0x06, 0x2d, 0x79, 0x25, 0xee, 0x09, 0xd1, 0x81, 0x96, 0xf9, 0x63, 0x7e, 0x22, 0x6d, 0x95, 0x23, 0x44, 0xa5, 0xd5, 0xb1, 0xde, 0x92, 0xde, 0x73, 0xd0, 0x84, 0x92, 0x43, 0x8a, 0x77, 0x13, 0xe2, 0x20, 0xaa, 0x6f, 0x3e, 0x47, 0xa9, 0x92, 0x5f, 0xed, 0xb1, 0x50, 0x99, 0x14, 0x15, 0x7a, 0x1c, 0x29, 0xb3, 0x90,
0x7d, 0x06, 0xf6, 0x24, 0x39, 0x6a, 0xad, 0xd5, 0xc0, 0x8f, 0xa1, 0xb1, 0xed, 0x4e, 0x05, 0x4d, 0x41, 0x9e, 0x4f, 0x29, 0x2d, 0xa6, 0x9d, 0x5d, 0xf4, 0x08, 0x59, 0x0d, 0x81, 0x56, 0xf8, 0x58, 0xbd, 0x90, 0x83, 0xfc, 0x9d, 0xec, 0x43, 0x54, 0x27, 0xeb, 0xff, 0x38, 0x69, 0xbe, 0x11, 0x78, 0x91, 0xe8, 0xab, 0x23, 0x68, 0x94, 0x9f, 0xc0, 0x11, 0x35, 0x32, 0x14, 0x6d, 0x50, 0x3b, 0xf8,
0x9a, 0xda, 0x8d, 0x2f, 0x8b, 0x47, 0x2d, 0x5c, 0xec, 0xee, 0x67, 0xd4, 0x89, 0x86, 0x75, 0x75, 0x7f, 0x36, 0x2a, 0x1d, 0xd1, 0xd5, 0xda, 0xb4, 0x75, 0x1e, 0x64, 0x61, 0x0b, 0x1e, 0x04, 0x07, 0x09, 0x34, 0x33, 0xfa, 0x65, 0x80, 0x73, 0xf0, 0x99, 0x61, 0x55, 0x8c, 0xb1, 0x1c, 0x03, 0x25, 0x1c, 0x0f, 0x37, 0xd8, 0xe3, 0x66, 0xf2, 0x80, 0x97, 0x59, 0x93, 0x92, 0x88, 0xf4, 0x33, 0xc8,
0xbd, 0xd2, 0xad, 0xb1, 0x63, 0x46, 0x49, 0x71, 0x47, 0x0e, 0xe1, 0xcc, 0xac, 0xae, 0x86, 0xab, 0xae, 0x5b, 0x31, 0x8a, 0xf3, 0xf6, 0xd1, 0xdd, 0x9d, 0x2d, 0x83, 0x89, 0x35, 0x3e, 0x25, 0x39, 0x31, 0xca, 0xdb, 0x5f, 0xd1, 0x3c, 0x80, 0x7f, 0x70, 0xe4, 0x35, 0xb4, 0x1c, 0x86, 0xcb, 0x78, 0xc5, 0x14, 0x52, 0xf8, 0x75, 0xf1, 0x16, 0xa0, 0x19, 0x4e, 0xb2, 0x44, 0xbe, 0x2b, 0xfc, 0xef,
0xdd, 0xe2, 0xcd, 0xc9, 0x85, 0x92, 0x6d, 0x65, 0x2d, 0x2a, 0x11, 0x08, 0xcf, 0xce, 0xba, 0xbd, 0x6d, 0x59, 0x51, 0x58, 0x4e, 0x14, 0x4d, 0xff, 0xb2, 0xb3, 0xa1, 0xa5, 0x55, 0x33, 0x45, 0x45, 0x59, 0x0b, 0xfd, 0x8c, 0xf9, 0x5c, 0xab, 0x87, 0x9b, 0x08, 0x4b, 0xd4, 0x3d, 0xb8, 0xeb, 0x78, 0xe5, 0x48, 0x8b, 0x08, 0x85, 0xe4, 0x3b, 0xc0, 0x29, 0x8b, 0xdf, 0x64, 0x92, 0x36, 0x7a, 0x29,
0xff, 0x57, 0x80, 0xef, 0x60, 0x25, 0x8a, 0x8d, 0x65, 0x4e, 0x3b, 0x35, 0xf3, 0x70, 0x68, 0xd5, 0x49, 0xdc, 0x71, 0x89, 0x31, 0x3c, 0x06, 0x34, 0xd3, 0xd5, 0xc9, 0xe5, 0xf8, 0x7c, 0x69, 0x43, 0x77, 0x28, 0x1f, 0xac, 0x15, 0x5c, 0xc3, 0x52, 0xbe, 0x29, 0x67, 0xf0, 0x51, 0xa9, 0x0b, 0x98, 0x03, 0x3d, 0xc6, 0x3a, 0x64, 0x8f, 0x54, 0xe0, 0x69, 0xb4, 0xfd, 0x80, 0xf7, 0xca, 0x26, 0x28,
0x12, 0xc6, 0xd1, 0x8d, 0xf5, 0xc6, 0x69, 0x2c, 0xe2, 0x64, 0x10, 0x53, 0x0c, 0x0e, 0xe5, 0xf7, 0xa8, 0xb2, 0x8d, 0x48, 0x54, 0x59, 0xe2, 0x3d, 0xe3, 0xd8, 0x11, 0xde, 0x46, 0x9e, 0x95, 0xba, 0x55, 0x9b, 0x35, 0x3c, 0x35, 0x96, 0xf8, 0x59, 0xdf, 0x4f, 0x8f, 0x30, 0xfc, 0xe6, 0x27, 0x9e, 0x2e, 0x6c, 0x17, 0xd8, 0x56, 0x2e, 0xb7, 0x81, 0xee, 0xde, 0x56, 0xa6, 0x08, 0x74, 0xab, 0x4a,
0xe7, 0x42, 0x28, 0xf6, 0xe1, 0xb6, 0x8d, 0xcd, 0x85, 0x8a, 0x26, 0xff, 0x29, 0x29, 0xb3, 0x11, 0xc5, 0x6d, 0xb9, 0xb5, 0x7d, 0x76, 0x5d, 0x4d, 0x15, 0x1a, 0x05, 0x01, 0xb1, 0x69, 0xa5, 0xa1, 0xb4, 0x18, 0x4b, 0x3d, 0x50, 0xb3, 0xdc, 0x90, 0xef, 0x42, 0x57, 0x0b, 0x42, 0x04, 0x5b, 0x98, 0x9b, 0xa8, 0xee, 0xa3, 0xe5, 0x1c, 0xd2, 0x20, 0x89, 0xf0, 0x60, 0x49, 0x2d, 0x93, 0x7d, 0x6c,
0x4d, 0x62, 0x46, 0x96, 0x01, 0x58, 0xec, 0x46, 0xa4, 0xba, 0xd0, 0x5d, 0x49, 0x4e, 0xcc, 0x36, 0xe4, 0x3a, 0xd8, 0xcb, 0xd1, 0x49, 0x7d, 0x2a, 0x77, 0x3a, 0x21, 0x21, 0x87, 0x01, 0xc5, 0xc1, 0xd9, 0x87, 0x7f, 0x00, 0x79, 0xdc, 0x23, 0xa0, 0x19, 0x80, 0xc3, 0x54, 0xb5, 0xf3, 0x6b, 0xfc, 0x71, 0xc8, 0x00, 0x43, 0x05, 0x32, 0xb2, 0xeb, 0xa8, 0x00, 0x15, 0x28, 0x4d, 0xb5, 0x1b, 0x8f,
0xca, 0x82, 0x69, 0xda, 0x21, 0x22, 0x09, 0x0d, 0xca, 0xde, 0xb1, 0xb8, 0x6d, 0x72, 0x55, 0x55, 0x05, 0x12, 0xf5, 0x26, 0xb1, 0x47, 0x99, 0x1c, 0x57, 0x5e, 0x5b, 0x76, 0xc5, 0x9b, 0xcb, 0xe7, 0xf9, 0x90, 0x9e, 0x3e, 0xd5, 0x23, 0x43, 0x87, 0x7a, 0xa0, 0xe7, 0x74, 0x83, 0x9b, 0x8b, 0x1c, 0x36, 0xe8, 0x2f, 0x0f, 0x25, 0x88, 0xd7, 0x60, 0xc6, 0x24, 0x77, 0x0d, 0x69, 0xc8, 0x1b, 0xa8,
0x98, 0xa2, 0xa9, 0x89, 0x47, 0x57, 0x24, 0x2d, 0xed, 0xfc, 0x1b, 0xd0, 0xc6, 0x97, 0x0a, 0xf1, 0xbc, 0x8c, 0x18, 0x18, 0xd1, 0xfe, 0xbd, 0xd2, 0xf6, 0xea, 0x79, 0x20, 0x1d, 0x14, 0xbb, 0x04, 0x19, 0x78, 0xb3, 0x93, 0xb5, 0xed, 0x67, 0x71, 0x5b, 0xc4, 0x1d, 0xa3, 0xc1, 0x01, 0x85, 0x3a, 0xa4, 0x08, 0x6f, 0xdc, 0x43, 0xbd, 0xfa, 0x80, 0xe1, 0x46, 0x5d, 0x25, 0xc2, 0xed, 0x44, 0x4c,
0xa9, 0xc3, 0x76, 0xa9, 0x7e, 0x25, 0x92, 0x4d, 0x04, 0x19, 0xf9, 0x2e, 0xa9, 0xf1, 0xd1, 0x95, 0x4d, 0x52, 0x5c, 0xe6, 0xf1, 0x53, 0xd0, 0x69, 0x94, 0x99, 0x73, 0x81, 0x29, 0x7b, 0x2f, 0x25, 0xa0, 0x26, 0xde, 0x6d, 0xd5, 0x14, 0x83, 0x7f, 0xfa, 0x70, 0x3f, 0xf5, 0x19, 0x8e, 0x75, 0x59, 0xd5, 0x29, 0xb0, 0xfc, 0x7a, 0x88, 0xcc, 0xa0, 0x08, 0x63, 0xbf, 0x9b, 0xad, 0x4b, 0x1e, 0xe8,
0xdc, 0x5c, 0xc8, 0xc9, 0xfd, 0x85, 0x7a, 0x01, 0xfa, 0x2a, 0x1e, 0xa3, 0xc8, 0xcf, 0xb5, 0x2f, 0x6c, 0x76, 0x41, 0x59, 0x15, 0x1e, 0xfd, 0xf9, 0xa1, 0xba, 0xa9, 0xa9, 0x59, 0x52, 0xfb, 0x44, 0x51, 0xb8, 0x9a, 0x53, 0xf5, 0xf9, 0xae, 0x84, 0x98, 0x03, 0xb5, 0xd4, 0x2d, 0xe2, 0xe1, 0x78, 0xe0, 0xf6, 0x8e, 0x1c, 0xf9, 0xef, 0x24, 0xac, 0xf6, 0x90, 0xd8, 0xd6, 0xcc, 0x35, 0x7b, 0x92,
0xf2, 0x7e, 0xea, 0xd8, 0xa1, 0x0c, 0x8d, 0x8d, 0xf6, 0x47, 0x31, 0x35, 0xe9, 0xee, 0xe6, 0xd3, 0x8d, 0xb7, 0x73, 0x79, 0xd2, 0x3d, 0x1d, 0xdf, 0xd8, 0xda, 0x55, 0xc2, 0x79, 0x66, 0x65, 0x65, 0x70, 0xdc, 0x07, 0xac, 0x11, 0x74, 0xc3, 0x54, 0xad, 0x20, 0x6f, 0xfc, 0x5d, 0xc8, 0xb5, 0x99, 0x0e, 0x14, 0xac, 0x0d, 0xa5, 0xa6, 0x53, 0xe0, 0x62, 0xb6, 0xf7, 0x80, 0xed, 0x54, 0x44, 0x23,
0xed, 0x21, 0x09, 0x02, 0xcd, 0xc6, 0x2a, 0xab, 0x65, 0x98, 0x51, 0x51, 0x11, 0x0e, 0xf5, 0xe1, 0xad, 0xb2, 0xb5, 0x99, 0x42, 0x50, 0xdc, 0x34, 0xf5, 0xea, 0xe1, 0xe1, 0x81, 0x9e, 0x85, 0xb5, 0x91, 0x5f, 0x39, 0xcc, 0x1c, 0x96, 0xe3, 0x94, 0xda, 0x40, 0x54, 0x19, 0x7d, 0x7c, 0x28, 0xb8, 0x3d, 0x88, 0xcf, 0x47, 0xc9, 0x2c, 0x9d, 0x00, 0x69, 0x5b, 0x11, 0xa4, 0xae, 0x72, 0xbb, 0x50,
0x3d, 0x42, 0x3d, 0x29, 0xe1, 0xea, 0xcd, 0xcd, 0x9a, 0x84, 0x71, 0x49, 0x29, 0x2a, 0x59, 0x15, 0xcd, 0xc2, 0xb9, 0xb9, 0x6d, 0x76, 0x59, 0x35, 0x15, 0x1e, 0x25, 0x01, 0xb9, 0x07, 0xa1, 0xa5, 0xb1, 0x18, 0x4b, 0xec, 0x55, 0x90, 0x03, 0x83, 0xff, 0x85, 0xae, 0x34, 0x8d, 0x04, 0x4b, 0xc0, 0x41, 0xa8, 0xdf, 0x7c, 0xe5, 0x58, 0x93, 0x20, 0x85, 0xf0, 0x37, 0xf4, 0x23, 0x94, 0xe3, 0x68,
0x42, 0x65, 0x49, 0x75, 0x01, 0x16, 0xfb, 0xd7, 0xa4, 0xa9, 0x86, 0x96, 0x49, 0x62, 0x35, 0x35, 0xd9, 0xf2, 0xd9, 0xcc, 0x92, 0x96, 0x8e, 0x79, 0x35, 0x46, 0x21, 0x32, 0xc9, 0xae, 0xc5, 0xc5, 0xd5, 0x74, 0x7f, 0x0c, 0x65, 0xdc, 0x23, 0xac, 0x19, 0x80, 0xab, 0x54, 0xbd, 0x18, 0x6b, 0xfc, 0x45, 0xc8, 0x0f, 0x53, 0x01, 0x6c, 0xcf, 0x40, 0xa9, 0x2c, 0x57, 0xf4, 0x5b, 0x8a, 0xfa, 0x8b,
0x75, 0x82, 0x69, 0xae, 0x2d, 0x26, 0x09, 0x0d, 0xc5, 0x97, 0xbb, 0xb1, 0x01, 0x6e, 0x55, 0x0d, 0x0d, 0x12, 0x95, 0xf9, 0xb1, 0xbe, 0x99, 0x9d, 0x05, 0x5a, 0x4d, 0x7d, 0xf9, 0xfe, 0xf1, 0xe5, 0xea, 0x5f, 0x9f, 0x00, 0x95, 0xfc, 0x77, 0xd0, 0x39, 0xe5, 0xed, 0x74, 0xc0, 0x47, 0x8b, 0x64, 0x81, 0xfb, 0x3f, 0xcc, 0x25, 0x8c, 0xdb, 0x60, 0xc9, 0xab, 0x7b, 0x04, 0x69, 0xd4, 0x1b, 0x2b,
0x9d, 0x1a, 0x8d, 0x89, 0x0d, 0x46, 0x2d, 0x39, 0xef, 0xea, 0xdd, 0xd1, 0x86, 0x86, 0x75, 0x74, 0x2d, 0x13, 0x13, 0xed, 0xd0, 0x83, 0xce, 0xd8, 0x07, 0x29, 0x04, 0x15, 0x6d, 0x77, 0x6b, 0x62, 0x1d, 0x78, 0xd7, 0x4c, 0xb5, 0x44, 0x63, 0xf0, 0x35, 0xc0, 0x07, 0x98, 0xf9, 0x64, 0xfb, 0x38, 0xad, 0x34, 0x4f, 0xdc, 0x51, 0xac, 0xf3, 0x83, 0xe4, 0x50, 0xdb, 0x24, 0x8d, 0xd3, 0x31, 0xc8,
0xce, 0x85, 0xc8, 0xc4, 0x04, 0x6a, 0x4d, 0x79, 0x5c, 0x6f, 0x90, 0xe9, 0xa9, 0x5b, 0xbd, 0xf2, 0x2c, 0x3f, 0x5c, 0x7e, 0x94, 0x82, 0x8e, 0xb8, 0xe7, 0xec, 0xe8, 0xe2, 0x5c, 0x6d, 0x46, 0x57, 0x3d, 0x98, 0xd0, 0x64, 0xd5, 0x3d, 0x83, 0x3a, 0x73, 0x14, 0x26, 0xe1, 0x6e, 0xe1, 0xb9, 0x0b, 0xa4, 0x5c, 0x1b, 0x95, 0x0b, 0xab, 0x60, 0xe7, 0x68, 0x1d, 0xd2, 0x48, 0xad, 0x20, 0x02, 0x8d,
0xb4, 0x92, 0xbd, 0x8a, 0xee, 0xe8, 0x19, 0x08, 0x5d, 0x5e, 0x52, 0x7e, 0xbb, 0xab, 0xf2, 0xc0, 0x04, 0x25, 0x38, 0x30, 0x65, 0x50, 0x92, 0x8f, 0xf6, 0xd2, 0xc8, 0xcd, 0x3d, 0x0c, 0x2a, 0x27, 0x30, 0xa0, 0xff, 0x79, 0xd8, 0x0a, 0xc2, 0x5c, 0xec, 0x65, 0x20, 0xb5, 0x50, 0xc1, 0xac, 0x1d, 0x95, 0x1b, 0xea, 0x6e, 0xf3, 0x85, 0x50, 0xa5, 0x7a, 0xf3, 0xa5, 0x0d, 0xbd, 0x40, 0x38, 0x67,
0x91, 0x6d, 0x91, 0xae, 0xd4, 0xcf, 0x84, 0x8d, 0x26, 0x08, 0x50, 0x52, 0x82, 0x9b, 0xa5, 0xe7, 0x8d, 0xf1, 0x38, 0x1a, 0x45, 0x5f, 0x72, 0x73, 0x99, 0xda, 0x50, 0x87, 0x10, 0x10, 0x01, 0x23, 0x1f, 0xac, 0x7a, 0xd4, 0x61, 0x3f, 0xac, 0x22, 0xdc, 0x67, 0x12, 0x9d, 0x0a, 0xa5, 0x62, 0xec, 0x47, 0x07, 0xdd, 0x7f, 0xcd, 0x65, 0x3f, 0x84, 0x1b, 0xdf, 0x95, 0xe8, 0x82, 0x2c, 0xdc, 0x5d,
0x74, 0x50, 0x7a, 0x7d, 0xfb, 0xc6, 0x5c, 0xbc, 0x28, 0x05, 0x35, 0x24, 0x65, 0x6b, 0x86, 0xb6, 0xfe, 0xff, 0xf8, 0xf7, 0x30, 0x31, 0x58, 0x4f, 0x9e, 0x9f, 0x84, 0x91, 0xca, 0xf1, 0xf0, 0xeb, 0xf8, 0xf1, 0x3f, 0xaf, 0x77, 0xfd, 0x80, 0x1b, 0xac, 0x30, 0xb5, 0x14, 0x1e, 0xa5, 0x48, 0xcc, 0x48, 0xe7, 0xa1, 0x10, 0xc5, 0xbd, 0x35, 0x69, 0x07, 0xb4, 0x51, 0xcd, 0x7f, 0x07, 0xcf, 0x72,
0x59, 0x31, 0x6a, 0x5c, 0x93, 0x94, 0xa8, 0xa3, 0xeb, 0x8a, 0x73, 0x0e, 0x29, 0xdc, 0x18, 0x66, 0xba, 0xbb, 0xcd, 0xda, 0x19, 0x11, 0x28, 0x34, 0x79, 0x75, 0x60, 0x65, 0xde, 0xcb, 0xcc, 0xc6, 0xb1, 0xe9, 0x4e, 0xa1, 0x3a, 0xd8, 0x76, 0xfc, 0x9c, 0x13, 0xe4, 0x67, 0xd0, 0x65, 0x25, 0xb9, 0x26, 0xcd, 0x9d, 0x17, 0x80, 0x29, 0xe3, 0x73, 0xe6, 0x85, 0x59, 0xa0, 0x5e, 0xd7, 0xae, 0x1a,
0x31, 0x07, 0x28, 0x3b, 0x62, 0x69, 0x9f, 0x88, 0xc2, 0xdf, 0xf8, 0x8d, 0x49, 0x31, 0x51, 0x50, 0x8b, 0x93, 0xac, 0xb5, 0xe5, 0x59, 0x7d, 0x7d, 0x6d, 0x7f, 0x4f, 0x54, 0xb4, 0xad, 0x00, 0xc5, 0xa3, 0x5d, 0x11, 0x62, 0x75, 0xde, 0x5c, 0xb0, 0xeb, 0x8d, 0xb4, 0x23, 0xd4, 0x50, 0x08, 0x90, 0x06, 0xbd, 0x66, 0xf0, 0x6a, 0x0d, 0xd7, 0x27, 0xdc, 0x79, 0x34, 0x88, 0x28, 0xd5, 0x89, 0xeb,
0x6f, 0xef, 0x11, 0x69, 0xd3, 0x27, 0x74, 0x68, 0xa4, 0xb8, 0xd4, 0xdf, 0x1c, 0x03, 0x3c, 0x25, 0x6c, 0x7b, 0x8b, 0x8a, 0xf6, 0xd3, 0x08, 0x9d, 0xa5, 0x55, 0x33, 0x24, 0x97, 0xb0, 0x84, 0x88, 0x9e, 0x2a, 0xfa, 0x4b, 0xe0, 0x95, 0x5f, 0xd0, 0x46, 0xc4, 0x82, 0x12, 0xbc, 0x31, 0xe7, 0x6c, 0x55, 0xe8, 0x2f, 0xe4, 0x60, 0xe2, 0xa6, 0x0d, 0xba, 0xf5, 0x77, 0x16, 0x00, 0xac, 0x1b, 0x5a,
0xf8, 0xe6, 0xec, 0xfa, 0x35, 0x34, 0x42, 0x54, 0xac, 0x84, 0xa2, 0xa5, 0xe8, 0xe0, 0x16, 0x10, 0x43, 0x57, 0x6e, 0x5f, 0xa3, 0xb7, 0xd0, 0xd8, 0xa0, 0x7a, 0x50, 0x13, 0x76, 0x72, 0x09, 0x05, 0x10, 0x01, 0xda, 0x2d, 0xc7, 0x79, 0x0d, 0x85, 0x34, 0xa9, 0x77, 0xf5, 0x94, 0x16, 0xd8, 0x7f, 0xc4, 0x9d, 0x4f, 0x2c, 0x4a, 0xde, 0x96, 0xee, 0xa7, 0x31, 0xfa, 0x41, 0xc9, 0x91, 0x48, 0xbc,
0xbd, 0x25, 0xa9, 0x89, 0x06, 0x14, 0xfd, 0x4d, 0x65, 0x5e, 0x83, 0x90, 0xc7, 0xdd, 0xe5, 0xdb, 0x4d, 0x92, 0x5a, 0x40, 0xa2, 0x9f, 0xa7, 0xb8, 0xc0, 0xde, 0xe8, 0xec, 0x0b, 0x6e, 0x35, 0x25, 0x43, 0xf7, 0xa6, 0x25, 0xbb, 0x4f, 0xf7, 0x71, 0x17, 0x83, 0x42, 0xda, 0x78, 0xf3, 0x8d, 0x2a, 0xa0, 0x45, 0x0a, 0x29, 0x65, 0xfd, 0x61, 0xcf, 0x65, 0x7c, 0xb7, 0x44, 0x4a, 0x14, 0x7b, 0x8f,
0x8d, 0x96, 0x99, 0xa6, 0xf2, 0xef, 0x6c, 0x6c, 0xb4, 0x68, 0x7e, 0x65, 0xbd, 0xa1, 0xd8, 0xf9, 0x08, 0x14, 0x13, 0x58, 0x23, 0x64, 0x92, 0x91, 0xa4, 0xba, 0xe5, 0xf3, 0x30, 0x39, 0x2d, 0x57, 0x23, 0x08, 0xff, 0xec, 0xa1, 0x2e, 0xc2, 0x5e, 0xea, 0x70, 0x09, 0xd4, 0xfd, 0xc7, 0x92, 0x2b, 0x88, 0x32, 0xea, 0x49, 0xc1, 0x85, 0x5e, 0xf2, 0x79, 0x80, 0xd7, 0x34, 0xb9, 0x64, 0x14, 0x7b,
0xfd, 0x35, 0xbd, 0x86, 0xd1, 0x86, 0x8d, 0xed, 0x10, 0x24, 0x53, 0x58, 0x87, 0x8a, 0xa5, 0xd4, 0x8f, 0xd0, 0x78, 0x8d, 0x24, 0x64, 0x5f, 0x45, 0x90, 0xa9, 0xa2, 0xa0, 0x09, 0x1b, 0x28, 0x04, 0x18, 0xd9, 0x1e, 0x3d, 0x57, 0x13, 0xb7, 0x24, 0xd6, 0x4d, 0x2b, 0x91, 0x3b, 0x8e, 0x0a, 0xaa, 0x73, 0x07, 0xc3, 0x2d, 0xa5, 0x48, 0x01, 0x89, 0x2e, 0xd8, 0xe5, 0x84, 0xda, 0x00, 0xf4, 0x58,
0x74, 0x4c, 0x44, 0x6c, 0xaf, 0xb3, 0xe2, 0xdd, 0x00, 0x04, 0x71, 0x15, 0x6c, 0x78, 0xd5, 0xb6, 0xc2, 0xdc, 0xea, 0xf6, 0x3d, 0x33, 0x6f, 0x5f, 0x8d, 0x07, 0xe1, 0xa0, 0xd1, 0xeb, 0xe7, 0xd6, 0xb1, 0xf8, 0x5f, 0x99, 0x5b, 0xfe, 0x8a, 0x1e, 0xbd, 0x30, 0x86, 0x16, 0x3f, 0xe5, 0xdf, 0xad, 0x73, 0xca, 0x97, 0x19, 0xb6, 0x4f, 0x12, 0x70, 0x0c, 0x9d, 0x76, 0xcd, 0x63, 0x39, 0xde, 0x26,
0x0c, 0x43, 0x1e, 0x7d, 0x80, 0x84, 0xda, 0xcd, 0x42, 0xd9, 0x12, 0x03, 0x46, 0x42, 0x79, 0x5d, 0xa2, 0xa6, 0xd2, 0xdc, 0x08, 0x61, 0x5d, 0x5d, 0x3b, 0x1a, 0xf0, 0x0d, 0xcd, 0xd1, 0xd5, 0xe6, 0xc4, 0x57, 0x2f, 0x89, 0x3b, 0x9c, 0x47, 0xf5, 0x8f, 0x40, 0xe4, 0x5b, 0xf3, 0x77, 0x24, 0xb4, 0x24, 0xfa, 0x8d, 0x04, 0x18, 0x4c, 0xd2, 0x68, 0xfc, 0x92, 0x64, 0xf5, 0x2c, 0xa3, 0x8f, 0x09,
0x35, 0x03, 0x3b, 0x28, 0x62, 0x72, 0x88, 0x9f, 0x8d, 0xcc, 0xfe, 0xe3, 0x69, 0x29, 0x50, 0x5b, 0x88, 0x80, 0xb8, 0xad, 0xfe, 0xe4, 0x54, 0x72, 0x35, 0x68, 0x52, 0x55, 0xb8, 0xaa, 0xa0, 0xce, 0xb3, 0x2f, 0x7f, 0xcb, 0x26, 0xbf, 0x51, 0xdf, 0x75, 0xec, 0x8f, 0x3b, 0xc9, 0x4f, 0x0e, 0x81, 0x76, 0xc8, 0x0f, 0xb2, 0x05, 0x9d, 0xbf, 0x34, 0xc6, 0x60, 0x14, 0x8c, 0x2c, 0xc6, 0x9a, 0xeb,
0x7d, 0x90, 0x0a, 0xa9, 0x21, 0x16, 0x24, 0x52, 0xa6, 0x34, 0xb0, 0xb2, 0x67, 0x6e, 0x79, 0x26, 0x6f, 0xf2, 0xf9, 0xfb, 0xa0, 0xb6, 0x95, 0x7d, 0x55, 0x43, 0x35, 0xa1, 0xf9, 0x0e, 0xe6, 0x95, 0x85, 0x3d, 0xed, 0x04, 0xf3, 0x93, 0x31, 0xf0, 0x5e, 0xc5, 0x89, 0x11, 0xaf, 0x25, 0xff, 0x77, 0xf3, 0xc1, 0x20, 0xbc, 0x77, 0xff, 0xa7, 0x01, 0xbd, 0x55, 0x7c, 0x04, 0x7f, 0xb7, 0xdb, 0xa8,
0xef, 0xcb, 0xe7, 0xfd, 0x0d, 0x29, 0x4c, 0x49, 0x8c, 0x84, 0xb6, 0xf1, 0xbb, 0xbe, 0x44, 0x43, 0x0d, 0xde, 0x19, 0x1a, 0x3f, 0xd7, 0x9c, 0xfc, 0x11, 0x80, 0x61, 0x63, 0x17, 0x1e, 0x52, 0x49, 0x21, 0x51, 0xe0, 0x2f, 0x4b, 0x1d, 0x60, 0xfe, 0x59, 0xec, 0x74, 0xf6, 0x1d, 0x64, 0xa9, 0x29, 0xa1, 0x00, 0xaf, 0xdc, 0x5c, 0xd8, 0x13, 0x80, 0x19, 0x53, 0xe7, 0x56, 0xe4, 0x9a, 0x4f, 0x84,
0xd2, 0xa1, 0xc8, 0xc5, 0x7c, 0x66, 0x5d, 0x62, 0x2b, 0x0a, 0x75, 0xde, 0xfa, 0xda, 0xf4, 0xe7, 0x39, 0x37, 0x4b, 0x1a, 0xf1, 0xf3, 0x95, 0xdd, 0x8d, 0xaf, 0xc9, 0x81, 0x32, 0x08, 0x25, 0x3a, 0x5e, 0xf9, 0xbb, 0x05, 0xbb, 0x5b, 0xa3, 0x22, 0x49, 0xd1, 0x11, 0x94, 0xf1, 0x84, 0xc8, 0xb6, 0xc0, 0x09, 0x2e, 0x98, 0x9f, 0xcc, 0x11, 0xae, 0x09, 0x27, 0xfb, 0x2b, 0xce, 0x75, 0x37, 0xf5,
0xe8, 0xd4, 0xc9, 0xcf, 0x9e, 0xb2, 0x5b, 0x6d, 0x2d, 0x35, 0x25, 0x27, 0xc9, 0xc8, 0xaa, 0x86, 0x5b, 0x72, 0x51, 0x43, 0x22, 0x20, 0xfd, 0xbd, 0xf3, 0xdb, 0xcd, 0xcd, 0xb3, 0x5e, 0x3c, 0x27, 0x51, 0xa8, 0xd0, 0xa2, 0xf5, 0xd8, 0x8c, 0x63, 0xed, 0x61, 0x35, 0xa0, 0x58, 0xd6, 0xc8, 0x78, 0xe4, 0x00, 0x8f, 0x04, 0xb0, 0xa4, 0x33, 0xcb, 0x1f, 0x90, 0xc8, 0x51, 0xfb, 0x34, 0x7d, 0x17,
0x9c, 0x61, 0x82, 0xc9, 0xd5, 0xc9, 0x7f, 0x8d, 0x15, 0x23, 0x41, 0x45, 0x9a, 0xcf, 0x45, 0xee, 0x1f, 0xa4, 0x0a, 0x48, 0xf5, 0x50, 0xbf, 0x3f, 0x54, 0xc2, 0x5d, 0xcc, 0x11, 0xab, 0x37, 0x68, 0xef, 0x7a, 0xc4, 0x60, 0x3f, 0x0a, 0x49, 0xc9, 0x95, 0xe5, 0x8e, 0x3f, 0xbb, 0x5c,
0xfe, 0x0a, 0x3f, 0x9c, 0x5c, 0xec, 0x97, 0x03, 0xf8,
}; };
static const unsigned char a0124[] = { static const unsigned char a0124[] = {
@@ -100707,33 +100708,34 @@ static const unsigned char a0154[] = {
}; };
static const unsigned char a0155[] = { static const unsigned char a0155[] = {
0x97, 0x94, 0x95, 0xb7, 0x93, 0x6e, 0x7b, 0x2a, 0xfe, 0x0c, 0x1f, 0x92, 0xb5, 0xb3, 0xc3, 0x77, 0x55, 0x57, 0x67, 0x04, 0xf9, 0xfb, 0x0b, 0x8f, 0x9d, 0x9f, 0xaf, 0x59, 0x49, 0x43, 0x53, 0x00, 0x37, 0x8d, 0x61, 0xea, 0x19, 0x84, 0xc7, 0x7f, 0x5e, 0x25, 0x6b, 0x4a, 0x55, 0xca, 0x0f, 0xc2, 0xf5, 0x6e, 0xb3, 0x78, 0x99, 0x12, 0x57, 0x39, 0x3d, 0xb6, 0xfb, 0xb4, 0xe9, 0x5a, 0x9f, 0x55,
0xe5, 0x57, 0xfe, 0xa4, 0x89, 0x8b, 0x9f, 0x4b, 0x2d, 0x2f, 0x3f, 0xea, 0xd3, 0xd6, 0xe3, 0x82, 0x76, 0x72, 0x87, 0x26, 0x1d, 0x1e, 0x2b, 0xda, 0x8c, 0xbf, 0xef, 0x7a, 0x67, 0x69, 0x73, 0x22, 0x85, 0x4e, 0x4a, 0xf9, 0x29, 0xa2, 0xe3, 0x9e, 0xcd, 0x46, 0x8b, 0x47, 0x73, 0xef, 0x2f, 0xf7, 0x16, 0x8b, 0xd3, 0x9b, 0xbd, 0x37, 0x77, 0x2f, 0x6c, 0xd6, 0x3b, 0xd7, 0x07, 0x70, 0xbf, 0x77,
0x2a, 0x07, 0x37, 0xc2, 0xa1, 0xa1, 0xbb, 0x7a, 0x44, 0x4a, 0x5f, 0x1e, 0xfb, 0xf6, 0x03, 0xa2, 0x9e, 0x92, 0xa7, 0x46, 0x35, 0x3e, 0x4b, 0xba, 0xd0, 0xdf, 0xef, 0x9e, 0xb7, 0x83, 0x92, 0x40, 0x8a, 0x1e, 0x43, 0x1f, 0x41, 0xc8, 0x07, 0xaf, 0xe4, 0x63, 0xab, 0x73, 0x9b, 0x0f, 0x4f, 0x17, 0x3e, 0xab, 0xf3, 0xbb, 0xd5, 0x57, 0x97, 0x5f, 0x70, 0xf3, 0x3b, 0xb3, 0x2f, 0x9a, 0xdf, 0x97,
0x25, 0x24, 0x3e, 0xe6, 0xea, 0x3b, 0xe4, 0x83, 0x6d, 0x4c, 0x7f, 0x6e, 0x18, 0x13, 0x53, 0xda, 0xf5, 0xb3, 0xc9, 0x76, 0x59, 0x5b, 0x02, 0x1a, 0xfd, 0xfa, 0x0f, 0xa9, 0xa0, 0xa7, 0xb3, 0x62, 0xfe, 0x3e, 0x82, 0x39, 0x69, 0xe1, 0x2e, 0xdf, 0x2e, 0x76, 0xf4, 0x8a, 0xb1, 0x09, 0x6f, 0x67, 0x5c, 0xce, 0x63, 0xc3, 0xb9, 0x76, 0xb8, 0x6f, 0x9d, 0x16, 0x35, 0x13, 0x41, 0xbf, 0xff, 0xa4,
0x55, 0x47, 0x53, 0x02, 0xe9, 0xeb, 0xe3, 0xaa, 0x89, 0x83, 0x9f, 0x42, 0x39, 0x33, 0x47, 0xee, 0xd5, 0xd7, 0xef, 0x96, 0x79, 0x7f, 0x8b, 0x36, 0x3d, 0x1f, 0x7f, 0xdc, 0xc0, 0xc3, 0xd3, 0x81, 0xe4, 0x5a, 0xa3, 0x5f, 0x85, 0x02, 0x47, 0xf7, 0x2d, 0xa2, 0xef, 0xa3, 0xd1, 0x56, 0x8f, 0x43, 0x79, 0xee, 0x3f, 0xe3, 0x19, 0x96, 0xcb, 0x8f, 0xbd, 0x3e, 0x7b, 0x33, 0x65, 0xda, 0x13, 0xf7,
0x04, 0x67, 0x70, 0x22, 0x09, 0x04, 0x0b, 0xca, 0x94, 0xa7, 0xcb, 0x6e, 0x51, 0x3f, 0x63, 0x12, 0x75, 0xf7, 0x07, 0xa2, 0x99, 0x9b, 0x93, 0x5b, 0x6e, 0x0b, 0x4f, 0xfe, 0xe1, 0xec, 0xfa, 0xa3, 0x05, 0x2e, 0xc1, 0x7a, 0xa9, 0x22, 0x64, 0x7a, 0x4d, 0xc1, 0x0f, 0xc3, 0xfe, 0x7a, 0xaf, 0x5e, 0x9d, 0x7a, 0x53, 0x0b, 0x55, 0xb2, 0xf7, 0x2f, 0xdd, 0x56, 0x8f, 0x53, 0x81, 0xbb, 0x3e, 0xa4,
0x85, 0x8b, 0x97, 0x46, 0x3d, 0x2b, 0x3b, 0xac, 0xcc, 0xcf, 0xd3, 0x8e, 0x31, 0x63, 0x83, 0x32, 0x15, 0x29, 0x26, 0xd6, 0xb5, 0xbb, 0xd8, 0x6b, 0x75, 0x5f, 0x6f, 0x12, 0x01, 0x03, 0x5e, 0xc3, 0x10, 0x9e, 0xe3, 0x9b, 0xd9, 0x4f, 0x86, 0x3f, 0x61, 0xe6, 0x2b, 0xf7, 0x11, 0x8a, 0x85, 0x86, 0xb5, 0x22, 0x73, 0x6b, 0x48, 0xd2, 0x17, 0xcf, 0xbf, 0x77, 0xbb, 0x7f, 0xa1, 0x09, 0x4d, 0x3f,
0xa5, 0xb7, 0xb7, 0x66, 0x45, 0x4b, 0x5b, 0x90, 0xec, 0xfc, 0xd3, 0xa2, 0x91, 0x82, 0xb0, 0x18, 0x34, 0xc7, 0xec, 0xf6, 0xf9, 0xec, 0xf5, 0x28, 0xd7, 0x7f, 0x8d, 0x35, 0x32, 0xa2, 0x35, 0xf6, 0x45, 0xbe, 0x0f, 0xbb, 0xe9, 0x33, 0xa6, 0x5f, 0x9d, 0x06, 0x4b, 0x0f, 0x31, 0xaa, 0x4c, 0xa6, 0xc6, 0x63, 0x9f, 0x4b, 0x68, 0xe6, 0x79, 0xee, 0xed, 0x39, 0xdb, 0xb3, 0xf6, 0x24, 0xcd, 0x9d,
0xd8, 0x44, 0xd0, 0x8a, 0x57, 0xe8, 0x74, 0x08, 0x4a, 0x8a, 0x13, 0xda, 0xf3, 0x90, 0x3f, 0xca, 0xcd, 0xd4, 0x60, 0x06, 0xb1, 0xff, 0x19, 0x9c, 0xcc, 0x99, 0xa0, 0x46, 0x0d, 0x4c, 0x51, 0x3e, 0x65, 0xdc, 0x28, 0xc8, 0x88, 0x84, 0xd3, 0x62, 0xaf, 0x2d, 0x72, 0x3e, 0x55, 0xc0, 0x03, 0xf9, 0x76, 0x7f, 0x94, 0x2c, 0x9f, 0x1d, 0x43, 0x4d, 0xbd, 0x9e, 0xd3, 0x84, 0xe5, 0x50, 0x8f, 0x1f,
0xa5, 0xe3, 0xef, 0x93, 0xd8, 0x83, 0x8f, 0x52, 0x61, 0x59, 0xa8, 0x77, 0x6e, 0xd7, 0xff, 0xd1, 0x2e, 0xaa, 0xab, 0x75, 0x65, 0x11, 0x9b, 0x95, 0xce, 0x3c, 0xc8, 0x66, 0x3d, 0x65, 0x64, 0x0c, 0x81, 0xea, 0x68, 0xaa, 0xae, 0xb3, 0xff, 0xd3, 0xa1, 0x98, 0x11, 0xe9, 0x75, 0xf0, 0x15, 0xb6, 0x9c, 0x98, 0xcb, 0xc7, 0x42, 0x85, 0x15, 0x55, 0x59, 0xc8, 0x53, 0x88, 0x59, 0x9e, 0x8a, 0x78,
0x60, 0x01, 0x18, 0xe6, 0xc9, 0x62, 0xb1, 0xc0, 0x94, 0x43, 0xf4, 0x3a, 0x9f, 0xf3, 0x09, 0x83, 0xe5, 0x28, 0xc2, 0xd7, 0xcd, 0xb8, 0x72, 0x87, 0xc5, 0xdb, 0xaf, 0x19, 0x99, 0x0e, 0x3c, 0x7f, 0x2e, 0xaa, 0x37, 0x68, 0x4d, 0xc8, 0x1f, 0xe3, 0xeb, 0x7f, 0x98, 0x06, 0x16, 0x1b, 0x6f, 0x67, 0x7b, 0xfd, 0x94, 0xd1, 0x54, 0xff, 0xa3, 0x21, 0x7d, 0xfc, 0x0a, 0x83, 0x1b, 0x87, 0x1b, 0xc4,
0x5d, 0x01, 0xcc, 0xd8, 0x2a, 0x48, 0x9a, 0x1b, 0x75, 0x6b, 0x37, 0xb5, 0x09, 0x1d, 0x91, 0xef, 0xcd, 0x3a, 0x57, 0x52, 0x6f, 0xd8, 0x22, 0xbf, 0xe5, 0xfb, 0x5f, 0x11, 0xb9, 0x2c, 0x07, 0x5f, 0x46, 0x03, 0x04, 0x23, 0x6d, 0xa2, 0xa0, 0xc7, 0x03, 0x34, 0xf6, 0xfb, 0x1a, 0x69, 0x4b, 0xcf, 0xd6, 0x8b, 0x88, 0xd3, 0xfd, 0x3a, 0x2c, 0x77, 0x12, 0xa2, 0x66, 0x6b, 0x49, 0xf2, 0xc0, 0x9a,
0x3d, 0xb3, 0x72, 0xe4, 0xc9, 0x68, 0xaa, 0x13, 0x95, 0x8b, 0xc7, 0x8d, 0x29, 0x23, 0xf4, 0xcf, 0xad, 0x8c, 0x5c, 0x09, 0x76, 0xf8, 0xd2, 0xf7, 0x05, 0x1b, 0x4f, 0x09, 0xd9, 0x52, 0x6a, 0xbf, 0x66, 0x13, 0x0c, 0x43, 0x8d, 0x52, 0xe8, 0xe7, 0x3d, 0x11, 0xd6, 0xdb, 0xa8, 0x24, 0x10, 0x82, 0xf6, 0xbb, 0xf0, 0xf3, 0x1d, 0xca, 0x14, 0x97, 0x2c, 0x8f, 0x46, 0x4b, 0xb7, 0xa8, 0xfd, 0xb9,
0x1d, 0x61, 0x64, 0x00, 0x43, 0x0b, 0x1b, 0xd6, 0x0f, 0xad, 0xba, 0x6c, 0x04, 0x5f, 0x63, 0xe2, 0xf0, 0x35, 0x41, 0xf2, 0x7d, 0x1a, 0xa9, 0x58, 0x68, 0x39, 0x7e, 0x8d, 0xae, 0xde, 0xe1, 0x43, 0x86, 0x23, 0x14, 0x63, 0xad, 0x42, 0xb0, 0x07, 0x5f, 0x7a, 0x36, 0xbb, 0xf7, 0x79, 0x89, 0x2d, 0x95, 0x0e, 0x4f, 0xa9, 0x3b, 0xb7, 0xf5, 0xfa, 0xd1, 0x56, 0x6b, 0x56, 0xc6, 0x75, 0x3e, 0x7e,
0x22, 0x29, 0xb9, 0x52, 0x31, 0xfc, 0x3b, 0xea, 0xd5, 0xce, 0xdf, 0xda, 0x73, 0x73, 0x81, 0x32, 0x15, 0x1f, 0x27, 0xd6, 0xa9, 0xbb, 0xab, 0x7e, 0x5d, 0x5d, 0x6f, 0x1a, 0x15, 0x48, 0x11, 0x82, 0xa4, 0x9c, 0xe1, 0xce, 0xcf, 0x71, 0xff, 0x70, 0xc3, 0xde, 0x6a, 0xdf, 0x22, 0xfd, 0xee, 0x06, 0x6e, 0x2e, 0x73, 0x37, 0x58, 0xd2, 0x76, 0xcd, 0xfd, 0x74, 0xbb, 0x73, 0xa9, 0x1a, 0x5f, 0x07,
0xb0, 0xa7, 0xb7, 0x66, 0x1d, 0x49, 0x5b, 0x50, 0xec, 0xe7, 0xfb, 0xae, 0x91, 0xf5, 0xa2, 0x52, 0x1f, 0x36, 0x47, 0xc4, 0xd8, 0xd9, 0xa6, 0x9b, 0x8d, 0x7c, 0x8d, 0x17, 0xa0, 0x21, 0x3b, 0xc6, 0x45, 0xde, 0x07, 0xbb, 0xeb, 0x62, 0xa3, 0x4a, 0xde, 0x04, 0x0b, 0x15, 0x31, 0xaa, 0xef, 0xc6, 0xd7, 0x4e, 0xcd, 0x4a, 0x71, 0xf6, 0x37, 0xef, 0x77, 0x97, 0xdb, 0xbd, 0xc0, 0x3a, 0x49, 0x36,
0x44, 0xc5, 0xdb, 0xa0, 0x5e, 0x57, 0x1e, 0x04, 0x2e, 0x1f, 0x80, 0xa9, 0xab, 0xb3, 0xc3, 0x3c, 0x55, 0x57, 0x31, 0x16, 0xf9, 0xf9, 0x0b, 0xba, 0x95, 0x9f, 0xaf, 0x4e, 0x41, 0x45, 0x0d, 0x02, 0x95, 0xd7, 0x23, 0xdb, 0x09, 0x8a, 0xc7, 0x7f, 0xaf, 0x0f, 0xea, 0x21, 0x59, 0xee, 0x8e, 0xc5, 0xf9, 0x48, 0x84, 0x57, 0xfc, 0x3c, 0x74, 0x1f, 0xa2, 0xd1, 0xe1, 0xb3, 0xe1, 0x14, 0x9f, 0x57,
0xf6, 0xf1, 0x8b, 0xa7, 0x81, 0xd1, 0x9b, 0x4a, 0x21, 0x2f, 0x30, 0xb0, 0xd1, 0xe0, 0xf0, 0x85, 0x15, 0x74, 0x87, 0x64, 0x19, 0x13, 0x2f, 0xda, 0xb2, 0xe1, 0xcf, 0x4d, 0x61, 0x5e, 0x72, 0x22, 0xd3, 0xfe, 0x43, 0xf9, 0x29, 0xa2, 0xef, 0x9f, 0xcd, 0x56, 0x8b, 0x45, 0x2f, 0xea, 0x6f, 0xf0, 0x15, 0x8e, 0xd3, 0x07, 0xbb, 0x3a, 0x2d, 0x2f, 0x5d, 0xda, 0x1b, 0xdc, 0x5f, 0x7a, 0x8c, 0x55,
0x1b, 0x06, 0x1f, 0x9c, 0xa9, 0xab, 0xb7, 0x6a, 0x42, 0x11, 0x5f, 0x3d, 0xf1, 0xa9, 0x03, 0xb2, 0xf7, 0x97, 0xa7, 0x04, 0x39, 0x33, 0x4f, 0xfa, 0xd2, 0x81, 0xef, 0x8f, 0x81, 0xbb, 0x93, 0x42, 0xbd, 0x1e, 0xc7, 0x1b, 0x49, 0x90, 0x07, 0xb7, 0xe9, 0x66, 0xa4, 0x3d, 0x91, 0x39, 0x0f, 0x1e, 0x35, 0xae, 0xf3, 0x88, 0xd8, 0x5a, 0xcd, 0x4f, 0x7d, 0xfa, 0x3b, 0xfc, 0x7f, 0x9a, 0xec, 0x97,
0x91, 0x26, 0x37, 0xe2, 0xc9, 0xca, 0xce, 0x8e, 0x5d, 0x6f, 0x7f, 0x2e, 0x33, 0x17, 0x30, 0xdf, 0xdd, 0xb3, 0xc7, 0x6e, 0x59, 0x5b, 0xd3, 0x1b, 0xfc, 0xb0, 0x0b, 0xbd, 0x23, 0xa2, 0xb3, 0xfe, 0xbd, 0x3f, 0x83, 0xfb, 0x69, 0xe2, 0x75, 0xdf, 0x05, 0x82, 0xcb, 0x8c, 0xef, 0x2a, 0x7e, 0x27, 0xcf, 0xce, 0x13, 0x7f, 0xf8, 0x72, 0xb3, 0x6f, 0x9d, 0x34, 0x5f, 0x13, 0xbb, 0xb8, 0xff, 0xfa,
0x44, 0x47, 0x02, 0x02, 0xe9, 0xfd, 0xf8, 0xaa, 0xbb, 0x8c, 0x9f, 0x62, 0x31, 0x33, 0x57, 0xf2, 0xd5, 0xd3, 0xe7, 0x96, 0x73, 0x78, 0x90, 0x24, 0x19, 0x1f, 0xdb, 0xdf, 0x94, 0xb0, 0xb6, 0xf0, 0xe1, 0x5e, 0x0f, 0x5a, 0x9a, 0x0f, 0x3e, 0xfb, 0x2d, 0xba, 0xeb, 0xa3, 0xd7, 0x49, 0x8b, 0x5b, 0x75, 0xee, 0xb5, 0xea, 0x19, 0x32, 0xd6, 0x8f, 0xdb, 0x32, 0x7b, 0x56, 0x65, 0xda, 0x0f, 0xd7,
0x36, 0x02, 0x03, 0x52, 0x60, 0x65, 0x7c, 0xb9, 0xea, 0xce, 0xd2, 0x0b, 0x5d, 0x53, 0x57, 0x4b, 0x90, 0x96, 0x1f, 0xb6, 0x6c, 0xaa, 0xcc, 0x3b, 0x50, 0x5a, 0x08, 0x9b, 0x95, 0xb0, 0x96, 0xd0, 0x05, 0x52, 0xc3, 0x7b, 0xbd, 0x22, 0x67, 0x1b, 0x4d, 0xc6, 0xe7, 0xc2, 0xea, 0x74, 0xab, 0x67, 0x61, 0x0f, 0x06, 0x78, 0x5c, 0xc0, 0xa4, 0xca, 0xa9, 0x22, 0xf2, 0x3d, 0xe6, 0x89, 0x78, 0x96,
0xf3, 0xee, 0xf4, 0x23, 0x7a, 0x48, 0x49, 0x83, 0xbd, 0xbb, 0x9c, 0xe1, 0x1f, 0x07, 0xe6, 0x4a, 0x61, 0x54, 0x48, 0xa4, 0xdc, 0xfc, 0xbe, 0x13, 0x0a, 0x3e, 0x06, 0x6a, 0x47, 0x6c, 0x61, 0x81, 0x48, 0xfb, 0xef, 0x9b, 0xfd, 0x1b, 0xe2, 0x5e, 0x75, 0xe6, 0xde, 0xd5, 0x47, 0xeb, 0xa3, 0xf2, 0xd0, 0x49, 0x12, 0x46, 0x3c, 0x95, 0x72, 0xbb, 0xae, 0x13, 0xc9, 0x05, 0xc8, 0x79, 0x3a, 0x44,
0xcd, 0xce, 0xdb, 0x02, 0x1b, 0x24, 0x39, 0x66, 0x82, 0x97, 0xb8, 0xdb, 0xf8, 0xd0, 0xcf, 0x3d, 0x5b, 0x52, 0x09, 0x97, 0xb4, 0xbe, 0xf9, 0x9a, 0x82, 0x7b, 0xcd, 0x5f, 0x42, 0x48, 0x46, 0x92, 0x26, 0xcc, 0x6a, 0xcb, 0x9d, 0x21, 0xc8, 0x31, 0xf9, 0x63, 0x33, 0x77, 0x72, 0xc5, 0x9d, 0xc2, 0x92, 0x3b, 0xfa, 0x1c, 0x18, 0x9b, 0x43, 0xa9, 0x72, 0xe4, 0x98, 0xfb, 0xa8, 0x56, 0x1b, 0x65,
0x95, 0xa6, 0xa5, 0xe3, 0x07, 0x1f, 0x1f, 0x4f, 0x6b, 0x6e, 0x6a, 0xa2, 0xc5, 0xdc, 0xc3, 0x72, 0x0d, 0x12, 0x09, 0x63, 0x94, 0x88, 0x6e, 0xba, 0x9f, 0xa8, 0xaf, 0xce, 0x32, 0x34, 0x3a, 0x76, 0x0a, 0xbc, 0x4f, 0xb4, 0x71, 0xc5, 0xb2, 0x16, 0xee, 0x4a, 0x04, 0x4d, 0x34, 0x84, 0x6e, 0xaa, 0x90, 0x7c, 0xb3, 0x94, 0x9d, 0x50, 0x36, 0x6c, 0x56, 0xc3, 0x8b, 0xe3, 0x80, 0x28, 0xfa, 0x39,
0x86, 0x8f, 0xb6, 0xc2, 0xed, 0xff, 0x9b, 0x48, 0xa8, 0x2f, 0x69, 0xa2, 0xbe, 0xb0, 0x82, 0xfe, 0x7a, 0x77, 0x65, 0x45, 0x36, 0x29, 0x1b, 0xeb, 0x8b, 0x90, 0x83, 0x11, 0x00, 0x07, 0x1a, 0x4c, 0xf1, 0x9a, 0x26, 0x9d, 0x48, 0xd7, 0x8b, 0xeb, 0xb9, 0x46, 0x8b, 0x1b, 0x34, 0x84, 0x5a, 0x8a, 0x66, 0xeb, 0xd3, 0x89, 0x8e, 0x32, 0xe7, 0x5c, 0x2a, 0xbf, 0x6f, 0xb0, 0x69, 0x3b, 0xdb, 0x13,
0x62, 0x24, 0x17, 0xcd, 0xb7, 0xab, 0xa4, 0x5f, 0x53, 0x4f, 0x55, 0x11, 0xc5, 0xed, 0x03, 0xb8, 0x80, 0xa4, 0xb9, 0x56, 0x69, 0x58, 0x39, 0x93, 0xad, 0xab, 0xd1, 0x1e, 0x61, 0x9e, 0x49, 0x94, 0x4b, 0xd0, 0x8e, 0x07, 0xc7, 0x6c, 0x91, 0xe8, 0x3c, 0x28, 0x07, 0x9e, 0xc2, 0x9d, 0xf6, 0x1e, 0xf8, 0x2e, 0x19, 0x9f, 0x55, 0x94, 0x02, 0x9a, 0xd4, 0x89,
0xc5, 0x21, 0xb6, 0x25, 0x69, 0xe8, 0x38, 0xeb, 0x13, 0x86, 0xc1, 0x96, 0x82, 0x34, 0x6f, 0x77, 0x36, 0xbc, 0x7a, 0xbb, 0x8d,
}; };
static const unsigned char a0156[] = { static const unsigned char a0156[] = {
@@ -107849,91 +107851,92 @@ static const unsigned char a0181[] = {
}; };
static const unsigned char a0182[] = { static const unsigned char a0182[] = {
0x2f, 0xd1, 0x2b, 0x58, 0x99, 0x34, 0x0d, 0x0d, 0x37, 0xca, 0xb1, 0xb6, 0x67, 0x6e, 0x55, 0x5d, 0x0d, 0x12, 0xf9, 0xe5, 0xb1, 0xb6, 0x9d, 0xcd, 0x55, 0x56, 0x41, 0x41, 0xf1, 0xfe, 0xe5, 0xe7, 0xa3, 0x0b, 0xdd, 0x1d, 0x5b, 0xee, 0x43, 0xd0, 0xcb, 0xa0, 0xe7, 0x60, 0xd3, 0x44, 0x8b, 0x10, 0x81, 0xe8, 0x2f, 0xa1, 0x25, 0x8c, 0xd3, 0x31, 0xc9, 0x3c, 0x77, 0x04, 0x65, 0xd4, 0x1b, 0xaa,
0x9d, 0x12, 0x82, 0x8b, 0x41, 0x46, 0x29, 0x2c, 0xe5, 0xea, 0xd1, 0xd5, 0x8b, 0x8b, 0x75, 0x65, 0x2e, 0x37, 0x19, 0x09, 0xd5, 0xd3, 0xbd, 0xad, 0x70, 0x7f, 0x61, 0x71, 0x1f, 0x1b, 0x05, 0x15, 0x11, 0xc8, 0xb4, 0x4e, 0xb5, 0x1c, 0x67, 0xf1, 0x59, 0xc0, 0x07, 0x90, 0xff, 0x61, 0xab, 0x28, 0xa2, 0x0d, 0x4f, 0xcc, 0x41, 0xa9, 0xf3, 0x90, 0xec, 0x55, 0x97, 0x34, 0x8b, 0xf1, 0x3b, 0xd8,
0xba, 0xc7, 0xa9, 0xa9, 0x21, 0x66, 0x6d, 0x49, 0x0c, 0x00, 0xf1, 0xe1, 0xa3, 0xab, 0x95, 0x85, 0x46, 0x57, 0x39, 0x29, 0xfd, 0xf3, 0xdd, 0xcd, 0x98, 0x9f, 0x81, 0x91, 0x37, 0x3b, 0x25, 0x55, 0x36, 0x9d, 0xdf, 0x6c, 0x95, 0x3c, 0xa3, 0x14, 0x70, 0xea, 0x27, 0xa4, 0x17, 0x81, 0xcb, 0x48, 0xca, 0x2d, 0x6f, 0xec, 0x69, 0xc9, 0x13, 0xb0, 0x04, 0x75, 0xb7, 0x54, 0xa3, 0x11, 0x5b, 0xf8,
0xd2, 0xe2, 0xc9, 0xc9, 0x83, 0x82, 0x7d, 0x66, 0x25, 0x3a, 0x00, 0x4a, 0xc9, 0xee, 0xb1, 0xa7, 0x66, 0x72, 0x49, 0x4a, 0x14, 0x16, 0xed, 0xe9, 0xb0, 0xba, 0xe1, 0xb4, 0x59, 0x5e, 0x45, 0x25, 0x5e, 0xbd, 0xff, 0xfc, 0xe5, 0x5c, 0xa3, 0x30, 0x9b, 0x04, 0x56, 0xdf, 0x3d, 0xb4, 0xf9, 0x18, 0xe1, 0x68, 0x8b, 0x0f, 0x8e, 0xec, 0x23, 0xd4, 0x2c, 0x90, 0xc7, 0x71, 0xc8, 0x34, 0x3b, 0x1e,
0xfd, 0x03, 0xeb, 0xe9, 0xa2, 0xaf, 0x8d, 0xae, 0xb5, 0x75, 0x38, 0x31, 0xca, 0xee, 0x95, 0xdc, 0x8d, 0xe2, 0x71, 0x39, 0x35, 0x20, 0x1d, 0x1d, 0xd5, 0x49, 0xc1, 0xc1, 0x7c, 0x7e, 0x72, 0x64, 0x71, 0xd8, 0x1f, 0xc9, 0x15, 0x7d, 0xc1, 0x50, 0xba, 0x29, 0x67, 0xd7, 0xad, 0xfb, 0x02, 0x98, 0x22, 0x68, 0xef, 0x35, 0xa5, 0x7c, 0x5b, 0xa0, 0x4d, 0xa7, 0xf7, 0x84, 0xed, 0xcc, 0x9b, 0x28,
0x19, 0x22, 0x09, 0x19, 0xc1, 0xc2, 0xa9, 0xad, 0x65, 0x72, 0x51, 0x55, 0x05, 0x0e, 0xf9, 0xfd, 0xad, 0xbd, 0x85, 0x99, 0x48, 0x5e, 0x11, 0x3d, 0xe5, 0xf8, 0x94, 0xe1, 0xda, 0x9f, 0x85, 0x85, 0x94, 0xf8, 0x2c, 0xcd, 0x31, 0x9c, 0xe7, 0x7c, 0xd9, 0x40, 0x8f, 0x14, 0x79, 0xe0, 0x2b, 0xb8, 0x3d, 0x88, 0xcb, 0x50, 0xc5, 0x20, 0x7b, 0x00, 0x66, 0xcc, 0x17, 0xbd, 0x05, 0x58, 0xbb, 0x58,
0x3e, 0x4a, 0x29, 0x29, 0xfd, 0xe6, 0xc9, 0xc9, 0x85, 0x8e, 0x6d, 0x71, 0x29, 0x26, 0x15, 0x15, 0xc9, 0xd2, 0xb9, 0xcd, 0x71, 0x76, 0x55, 0x5d, 0x06, 0x1d, 0x2d, 0x01, 0xb9, 0xb2, 0xa5, 0xb6, 0xb3, 0x61, 0x5f, 0xaf, 0x54, 0xbc, 0x03, 0x93, 0xf1, 0x60, 0xa7, 0x28, 0x9d, 0x00, 0x4f, 0xd8, 0x45, 0xb4, 0xef, 0x7c, 0xed, 0x4c, 0x93, 0x24, 0x89, 0xf0, 0x43, 0xc4, 0x2d, 0x9c, 0xdb, 0x7b,
0x77, 0x6e, 0x49, 0x49, 0x1d, 0x06, 0xed, 0xe9, 0xa5, 0xae, 0xd9, 0x91, 0x4d, 0x6a, 0x35, 0x35, 0xf9, 0xf2, 0xdd, 0xdd, 0x91, 0x99, 0x69, 0x7d, 0x08, 0x3a, 0x89, 0x21, 0xd9, 0x5a, 0xc5, 0xc1, 0xd6, 0x14, 0x7f, 0x0c, 0x79, 0xdc, 0x30, 0x9a, 0x15, 0x80, 0xc7, 0x48, 0xbd, 0x24, 0x6f, 0xf8, 0x65, 0x80, 0x0f, 0x98, 0x21, 0x6c, 0xb3, 0x54, 0xa9, 0x14, 0x53, 0xe4, 0x42, 0xa0, 0xfb, 0xb5,
0x1d, 0x82, 0x69, 0xa7, 0x20, 0x75, 0x42, 0x0d, 0xc5, 0xca, 0xa6, 0xc4, 0x68, 0x6e, 0x59, 0x55, 0x0d, 0x06, 0xf9, 0xf9, 0x6d, 0xb7, 0x9d, 0x91, 0x55, 0x49, 0x59, 0x49, 0xfb, 0xfe, 0xe9, 0xe5, 0xf1, 0xf0, 0x9f, 0x2c, 0x11, 0xfc, 0x47, 0xb0, 0x39, 0xa0, 0x30, 0x75, 0x8e, 0x14, 0x8b, 0x18, 0x81, 0xf0, 0x56, 0xbd, 0x25, 0x80, 0xd3, 0x60, 0xdd, 0x30, 0x77, 0xe4, 0x6c, 0xd4, 0x17, 0xa8,
0xdd, 0xbb, 0x89, 0x89, 0x41, 0xfb, 0x2c, 0x2d, 0xe9, 0xea, 0xd1, 0x32, 0x88, 0x8e, 0xf5, 0x74, 0x2d, 0x3e, 0x19, 0x19, 0x3b, 0xd7, 0xae, 0xa7, 0x79, 0x7a, 0x61, 0x90, 0x18, 0x0d, 0x18, 0x09, 0x51, 0x61, 0xbf, 0x4c, 0xb5, 0xc4, 0x62, 0xf0, 0x55, 0xc0, 0x47, 0x8e, 0xfd, 0x64, 0xab, 0xf9, 0xa0, 0x08, 0x43, 0xdc, 0x45, 0x4b, 0xf2, 0x80, 0x6d, 0x51, 0x97, 0x28, 0x8d, 0xf4, 0xd5, 0xc9,
0xbd, 0xc2, 0xbd, 0xa9, 0x91, 0xe7, 0x4d, 0x4d, 0x05, 0x2a, 0xc6, 0xef, 0x1b, 0x04, 0x95, 0x97, 0x46, 0x41, 0xb8, 0x3f, 0xe5, 0xeb, 0x5e, 0xda, 0x99, 0xa4, 0x02, 0x8e, 0x1b, 0x79, 0xa0, 0x29, 0x22, 0x83, 0xd3, 0x6c, 0xd5, 0xc9, 0x82, 0x03, 0x67, 0xec, 0x27, 0xb4, 0x09, 0x84, 0x3b, 0xdd, 0xc1, 0x28, 0x6f, 0xdc, 0x52, 0xd2, 0xa1, 0x0a, 0x09, 0x72, 0xbc, 0x57, 0x2c, 0x12, 0x4f, 0xf5,
0xc9, 0xa0, 0xea, 0x35, 0x39, 0x1e, 0xee, 0x6a, 0x35, 0x62, 0x15, 0x03, 0xef, 0x9f, 0xb3, 0xba, 0x75, 0x3e, 0x56, 0x5b, 0x2d, 0x56, 0xf9, 0xe5, 0x80, 0xeb, 0xa9, 0xb5, 0x41, 0x12, 0x33, 0xd2, 0x53, 0xb3, 0xe6, 0x91, 0xf1, 0x56, 0xaf, 0x0e, 0x1a, 0x11, 0x60, 0x93, 0x3b, 0xab, 0xff, 0x3a, 0x61, 0x60, 0xa7, 0x2b, 0x81, 0xe6, 0x23, 0x88, 0x2d, 0x84, 0xfc, 0x35, 0x4a, 0x25, 0x63, 0x44,
0x64, 0xbd, 0x6a, 0xee, 0xb5, 0xf4, 0x08, 0x99, 0x6f, 0x11, 0x37, 0x3e, 0xf5, 0xb8, 0xb7, 0x98, 0x81, 0xa1, 0xfc, 0x63, 0x08, 0x6d, 0x94, 0x0b, 0xc9, 0x8c, 0x08, 0xcb, 0xef, 0xd9, 0xe6, 0x62, 0x1d, 0x06, 0x85, 0x06, 0x11, 0x66, 0xf9, 0x01, 0x30, 0x36, 0x7f, 0xb8, 0xa6, 0x73, 0x69, 0xe2, 0x05, 0x62, 0xbb, 0x6e, 0x20, 0x1a, 0x7c, 0xbb, 0xce, 0xa1, 0xeb, 0xd2, 0x0a, 0xe9, 0x7e, 0x09,
0x05, 0x7e, 0x0f, 0x1e, 0xef, 0xa3, 0xa7, 0xb4, 0x45, 0x0a, 0xe4, 0x91, 0x39, 0x71, 0xf1, 0xd5, 0xf8, 0xdd, 0x95, 0x87, 0x75, 0x3c, 0x21, 0x6b, 0xdf, 0xfe, 0xe1, 0xe1, 0xb9, 0x1a, 0x08, 0xa5, 0x14, 0xe4, 0x01, 0x97, 0x3f, 0x85, 0xff, 0x26, 0x97, 0x13, 0x24, 0x04, 0x79, 0xee, 0x33, 0xe4, 0x27, 0x91, 0xfc, 0x39, 0x4e, 0x37, 0x53, 0x60, 0x53, 0xd9, 0x29, 0x4c, 0x09, 0x56, 0xe1, 0x27,
0x1d, 0x1e, 0xa4, 0x09, 0xc1, 0x96, 0xcd, 0xc9, 0xab, 0x04, 0x7d, 0xcc, 0x5a, 0xb5, 0x05, 0xd2, 0xbe, 0x49, 0xb7, 0x0f, 0x3e, 0xfa, 0x49, 0x5d, 0x55, 0x8b, 0xce, 0x7f, 0x28, 0xb6, 0xa5, 0xc7, 0x3c, 0x38, 0x7b, 0x86, 0xf4, 0x7a, 0xd8, 0x1e, 0xf9, 0x60, 0x87, 0xb0, 0x93, 0x27, 0x6b, 0x84, 0x4f, 0x8b, 0xcf, 0x0c, 0xe5, 0x48, 0xbd, 0xae, 0x04, 0x31, 0x4f, 0x5f, 0xbc, 0x5f, 0xa3, 0xf3,
0xa9, 0x47, 0x13, 0x04, 0x92, 0xc4, 0xf9, 0xed, 0xc7, 0x4a, 0x92, 0x9c, 0xa5, 0x5a, 0xf0, 0x39, 0xed, 0x10, 0x15, 0x38, 0x86, 0xf7, 0x79, 0x15, 0xde, 0x22, 0x27, 0x4c, 0x32, 0xc6, 0x50, 0x02, 0x5e, 0x80, 0x30, 0x80, 0x61, 0xdc, 0x63, 0xa2, 0xcd, 0x03, 0x56, 0x5c, 0xbd, 0x46, 0x04, 0x25, 0x6d, 0x0b, 0x1b, 0x59, 0x11, 0x6c, 0xd1, 0x25, 0xe5, 0x4a, 0x21, 0x71, 0x8a, 0xb8, 0xfb, 0x6a,
0x69, 0x82, 0x9b, 0x32, 0x21, 0x2c, 0x30, 0x83, 0x82, 0x53, 0xaf, 0x9b, 0xea, 0x1f, 0x5c, 0x4c, 0x09, 0x66, 0xf0, 0xe0, 0xb3, 0xc5, 0x8e, 0x84, 0xc2, 0x94, 0x19, 0xd7, 0xf2, 0xcd, 0x9a, 0xd4, 0xaa, 0xe3, 0x88, 0x10, 0x91, 0x94, 0xa8, 0xc8, 0x3f, 0xd1, 0x12, 0x6c, 0xcb, 0x8e, 0x9f, 0x18, 0x73, 0xb3, 0x2f, 0xb6, 0x18, 0x02, 0x77, 0xfd, 0x08, 0x72, 0xf4, 0x75, 0x64, 0xcd, 0x1f, 0xd0,
0x1e, 0xdb, 0x94, 0x90, 0x45, 0xc6, 0x0a, 0x34, 0xe7, 0x91, 0xf6, 0xc8, 0x91, 0x5f, 0x2d, 0xe3, 0x32, 0x67, 0x7d, 0x08, 0x52, 0x53, 0x86, 0xa4, 0x71, 0xf2, 0x5a, 0x78, 0x1b, 0x99, 0x40, 0x1c, 0x02, 0x61, 0xbd, 0x3f, 0xa6, 0x05, 0x7b, 0x21, 0x01, 0x56, 0x81, 0x7e, 0xdc, 0x64, 0x28, 0x45, 0x86, 0x11, 0x4b, 0x5c, 0x62, 0xb5, 0xf1, 0xff, 0xd8, 0x49, 0x0e, 0xf7, 0xd5, 0x62, 0xab, 0xb3,
0x24, 0x11, 0xf1, 0x3f, 0x82, 0x88, 0x89, 0x55, 0x86, 0x87, 0xbe, 0xe8, 0xad, 0x3a, 0xcc, 0x8c, 0x4f, 0xdd, 0x60, 0x20, 0xeb, 0x20, 0x85, 0x4b, 0x62, 0x8a, 0x3b, 0x1e, 0xba, 0xa7, 0x48, 0x3c, 0xcd, 0x28, 0x5c, 0xe9, 0xee, 0x25, 0x87, 0x9c, 0x3c, 0xf9, 0x25, 0x33, 0x58, 0x9d, 0xd1, 0x8e, 0x99, 0xbe, 0x31, 0x5a, 0xa2, 0x9a, 0x90, 0x31, 0x50, 0x69, 0xb3, 0xd0, 0xf4, 0x0d, 0x59, 0x7b,
0xd9, 0x7e, 0xa4, 0xd0, 0x83, 0x1d, 0x1a, 0x74, 0xbe, 0xf2, 0x49, 0x87, 0xdf, 0x04, 0xc5, 0xb5, 0xed, 0xc9, 0xf3, 0xdb, 0x31, 0xa7, 0xe4, 0x35, 0x0c, 0xf8, 0xa0, 0xa1, 0xc9, 0x5f, 0x45, 0x22, 0x32, 0xa1, 0x64, 0x54, 0xad, 0xca, 0x8f, 0xe1, 0xdb, 0x30, 0xc4, 0x4d, 0x50, 0xbd, 0xef, 0xd8, 0x96, 0x51, 0x8d, 0x87, 0xf2, 0xf5, 0x2f, 0x1b, 0x71, 0x06, 0x40, 0xa8, 0xbd, 0x34, 0xfb, 0x3e,
0xfe, 0x02, 0xde, 0xeb, 0xa1, 0xae, 0x8d, 0x8d, 0x47, 0x4a, 0x73, 0x32, 0xe9, 0xee, 0xd4, 0x9a, 0x8e, 0x92, 0x40, 0x7a, 0x31, 0x05, 0x1e, 0x1c, 0xca, 0xda, 0xc2, 0xc5, 0x79, 0x7e, 0x83, 0x64, 0x13, 0xed, 0x89, 0x8e, 0x55, 0xdc, 0xbd, 0x16, 0xb8, 0x24, 0xf3, 0xf5, 0x5d, 0xff, 0x09, 0x98, 0x9d, 0x69, 0xaf, 0x3e, 0xa5, 0x4e, 0x50, 0xe0, 0x49, 0xb1, 0xa0, 0x87, 0xed, 0x15, 0x98, 0x28,
0x1d, 0x20, 0x09, 0x09, 0x07, 0xc7, 0xbd, 0xb6, 0x6c, 0x6a, 0xa1, 0x55, 0x09, 0x0a, 0xdf, 0x74, 0xa9, 0xb9, 0x8a, 0x99, 0x57, 0x41, 0x11, 0x8f, 0x2a, 0xb3, 0x7f, 0x7f, 0x5e, 0x0f, 0x7f, 0x92, 0xd1, 0xfb, 0x3e, 0xd3, 0x35, 0x9f, 0xe7, 0x70, 0xd9, 0xaa, 0x86, 0x14, 0x7f, 0xe4, 0x2b, 0x17, 0x22, 0x98, 0xd3, 0x55, 0xc5, 0xdc, 0x77, 0x00, 0x6d, 0xfa, 0x96, 0xa0, 0x06, 0x67, 0xbb, 0x4e,
0x3d, 0x42, 0x09, 0x29, 0xe1, 0x98, 0xce, 0xcd, 0xb2, 0x8a, 0x71, 0x79, 0x29, 0x2e, 0x17, 0x15, 0xd8, 0xd0, 0xe3, 0xb9, 0x71, 0x20, 0x5d, 0x5f, 0x86, 0x19, 0x01, 0xeb, 0xb8, 0xbe, 0x5b, 0xa4, 0xa6, 0x34, 0xed, 0x33, 0x1c, 0x22, 0x9d, 0x57, 0x68, 0x9a, 0xb0, 0x34, 0x9d, 0x24, 0x4b, 0xd8, 0xcd, 0xab, 0xef, 0x4b, 0xe5, 0x4c, 0x9b, 0x20, 0x89, 0xf2, 0x37, 0xd1, 0x2f, 0xce, 0xdb, 0x68,
0x55, 0x06, 0x49, 0x49, 0x0d, 0x06, 0xec, 0x85, 0xa5, 0xaa, 0xac, 0x91, 0x4a, 0x30, 0x36, 0x35, 0xf9, 0xf2, 0xd1, 0xdd, 0x91, 0x9e, 0x17, 0x7f, 0x35, 0x22, 0x21, 0x20, 0xc9, 0xde, 0xf5, 0xc5, 0x40, 0x3b, 0x6f, 0x08, 0x2e, 0xdc, 0x22, 0xc2, 0x1a, 0x80, 0xc9, 0x56, 0xb5, 0x40, 0x6b, 0xf8, 0x6d, 0xc8, 0x0e, 0xf4, 0x05, 0x6c, 0x8e, 0x40, 0xae, 0x96, 0x54, 0xe4, 0x55, 0xb4, 0xff, 0x8c,
0x7d, 0x82, 0x91, 0x6a, 0x29, 0xbe, 0x0d, 0x2d, 0x44, 0xc8, 0x7d, 0xb1, 0x08, 0x6a, 0x33, 0xd2, 0x1c, 0x10, 0xac, 0x55, 0xb1, 0xc7, 0x9b, 0x8d, 0x46, 0x43, 0xc8, 0x68, 0x1b, 0xf2, 0xe5, 0xe6, 0xf1, 0x50, 0xf1, 0x2e, 0x95, 0xe8, 0x43, 0xd1, 0x29, 0xa0, 0xd7, 0x74, 0xdd, 0x44, 0x8e, 0x1c, 0x89, 0x70, 0x2f, 0x7d, 0xa4, 0x8e, 0xd7, 0x6e, 0xc9, 0x30, 0x73, 0x62, 0xea, 0xc5, 0x19, 0xfd,
0xbd, 0xa2, 0xea, 0x8c, 0x26, 0xb2, 0x14, 0xae, 0xe2, 0xca, 0xd1, 0xd1, 0x9d, 0x8e, 0xc5, 0x7d, 0x38, 0x21, 0x7b, 0x72, 0x46, 0x80, 0x5a, 0x14, 0x8a, 0x10, 0x34, 0x61, 0x4a, 0x3c, 0x05, 0x05, 0xbd, 0x78, 0xce, 0x4a, 0xa5, 0x0f, 0x7a, 0x79, 0x70, 0x22, 0x0b, 0x94, 0xfe, 0x44, 0xab, 0x5b, 0xa4, 0x6f, 0xbb, 0xe5, 0xc6, 0xab, 0xd3, 0x80, 0xe9, 0x44, 0x97, 0x94, 0x85, 0xe1, 0x28, 0xaa,
0xbd, 0xb0, 0x33, 0xab, 0x61, 0x6e, 0x4d, 0x4d, 0x33, 0x0b, 0xa1, 0xf8, 0xa9, 0xac, 0x95, 0x91, 0x82, 0x56, 0x29, 0x3d, 0x65, 0xf4, 0xdd, 0xb9, 0x95, 0x98, 0xfe, 0x85, 0x19, 0x3a, 0x3b, 0x2f, 0x5a, 0x0f, 0x89, 0x8b, 0x7c, 0xc3, 0xe9, 0x45, 0x79, 0xb3, 0x05, 0xb4, 0x1d, 0x84, 0xb9, 0xea, 0xc3, 0x28, 0x67, 0xfc, 0x65, 0xfa, 0x12, 0xf0, 0x00, 0x70, 0xb5, 0x44, 0xa9, 0xc8, 0x5f, 0xf8,
0xdd, 0xf2, 0xd6, 0xcc, 0x81, 0x96, 0x4d, 0x68, 0x25, 0x3a, 0x30, 0x14, 0xc9, 0xce, 0xf4, 0xb5, 0x4d, 0x76, 0x7a, 0x53, 0x11, 0x05, 0xd9, 0xf0, 0xb6, 0xbb, 0xd8, 0xa5, 0x79, 0x5a, 0x60, 0x56, 0x55, 0x20, 0xfd, 0x8e, 0xc5, 0x5d, 0xa3, 0xf6, 0x9b, 0x20, 0x43, 0xcb, 0x2e, 0xa5, 0xfb, 0x58, 0xe4, 0x48, 0x9f, 0x3d, 0x80, 0xec, 0x33, 0xfc, 0x29, 0xb0, 0xd3, 0x47, 0xc7, 0x34, 0x6b, 0x2c,
0xfd, 0x14, 0xcf, 0xfa, 0xa1, 0xe3, 0x8d, 0x8d, 0x41, 0x6d, 0x3f, 0x31, 0xcd, 0xae, 0xb5, 0x44, 0x89, 0xd7, 0x3e, 0x39, 0x35, 0x1e, 0x0a, 0x1d, 0x80, 0xda, 0x86, 0x01, 0x7d, 0x57, 0x6b, 0x65, 0x74, 0xd8, 0x0c, 0x89, 0x04, 0x7f, 0xc2, 0xd1, 0xbd, 0x00, 0x63, 0xd2, 0x4e, 0xc4, 0x1d, 0xbf, 0x12, 0x68, 0xea, 0x3c, 0xa5, 0x08, 0x7b, 0xee, 0x49, 0x94, 0xb7, 0xe4, 0x74, 0x50, 0xde, 0x6f,
0x3e, 0xa2, 0x6f, 0x2c, 0xc1, 0xe2, 0x2d, 0xe9, 0x6c, 0x6a, 0x73, 0x37, 0xc9, 0xc6, 0xf1, 0xa5, 0x2d, 0xf6, 0x59, 0x9d, 0x7b, 0x7f, 0x3d, 0x1d, 0x6f, 0x63, 0xe0, 0xe1, 0xd9, 0x37, 0xba, 0x81, 0xd1, 0xfc, 0x16, 0xdb, 0x35, 0xc9, 0xe3, 0x37, 0x19, 0x44, 0xad, 0x1a, 0x7d, 0xc7, 0xab, 0xde, 0x04, 0x88, 0xeb, 0xdc, 0x81, 0x25, 0x73, 0x22, 0x0f, 0x10, 0xc7, 0xa0, 0x5d, 0xf4, 0xff, 0x88,
0x16, 0x2d, 0x29, 0x39, 0xcd, 0xe3, 0xcd, 0xdd, 0xa8, 0x8f, 0x71, 0x61, 0x07, 0x2b, 0x15, 0x05, 0xe2, 0xd7, 0xb9, 0xa9, 0x41, 0x73, 0x5d, 0x1d, 0x24, 0x1a, 0x01, 0x01, 0x28, 0xbe, 0xa5, 0xeb, 0xb5, 0x33, 0x76, 0xec, 0x75, 0x26, 0x9a, 0x91, 0xf9, 0x20, 0x0e, 0x0b, 0x99, 0x28, 0x24, 0xd8, 0x51, 0x85, 0xea, 0x7c, 0xf5, 0x62, 0x96, 0x20, 0x99, 0xdf, 0x32, 0xc4, 0x3d, 0xa4, 0xde, 0x68,
0x5c, 0x6e, 0x4d, 0x49, 0x09, 0x88, 0xec, 0xe5, 0xb9, 0xaa, 0x95, 0x89, 0x49, 0x5e, 0xcb, 0x5d, 0xed, 0xf5, 0x61, 0xdd, 0x95, 0xb2, 0x7d, 0x7d, 0x15, 0x3a, 0x25, 0x25, 0xd9, 0xda, 0xd1, 0xc5, 0xc1, 0x09, 0x7a, 0x0c, 0x35, 0xee, 0x23, 0xb0, 0x19, 0x1f, 0xc7, 0x54, 0xf3, 0x25, 0x67, 0xfc, 0x61, 0xc0, 0x81, 0x9d, 0x0d, 0x70, 0xb3, 0x44, 0xb1, 0x10, 0x47, 0x1a, 0x25, 0xb4, 0xfc, 0x34,
0x72, 0x8a, 0x69, 0x68, 0x21, 0x02, 0x0d, 0x0d, 0xdd, 0xca, 0xb0, 0x77, 0x68, 0x6d, 0xa3, 0x54, 0x0d, 0x02, 0xf9, 0xfd, 0xa9, 0xb6, 0x9d, 0x91, 0x55, 0x55, 0x45, 0x41, 0xf8, 0xf1, 0xc5, 0xe5, 0xf5, 0x5c, 0xbb, 0x2c, 0x95, 0xdc, 0x43, 0xd4, 0x3d, 0xa0, 0xe3, 0x60, 0xdd, 0x4b, 0x83, 0x18, 0x80, 0xe8, 0x0b, 0xbc, 0x25, 0x94, 0xd3, 0x61, 0x0f, 0x31, 0x74, 0xf2, 0x6c, 0xd4, 0x0b, 0xa8,
0x8c, 0xa2, 0xad, 0x89, 0x41, 0x42, 0x2d, 0x22, 0xb9, 0xea, 0xac, 0xd1, 0x1d, 0x8e, 0x75, 0x71, 0x2d, 0x3d, 0x81, 0x19, 0xdc, 0xd6, 0x99, 0xbd, 0x7d, 0x86, 0x61, 0x6e, 0x09, 0x1e, 0x08, 0x05, 0x15, 0x60, 0xbf, 0x4c, 0xb9, 0x1c, 0x6c, 0xf4, 0x59, 0xc1, 0x08, 0xb4, 0xfd, 0x75, 0xab, 0x1c, 0xa1, 0x08, 0x4b, 0xdc, 0x4a, 0xf0, 0xf3, 0xfd, 0xe9, 0xc4, 0x97, 0x24, 0x89, 0xf4, 0x34, 0x50,
0xed, 0xc2, 0xa9, 0x65, 0x62, 0x66, 0x4a, 0x4a, 0x23, 0x38, 0xf1, 0xfd, 0xa9, 0xb9, 0xa6, 0x99, 0x4d, 0x12, 0x0d, 0x39, 0xf1, 0xf6, 0x87, 0xda, 0x95, 0x7d, 0x82, 0x96, 0x0c, 0x32, 0x25, 0x65, 0x31, 0x95, 0xdf, 0x48, 0xd5, 0x34, 0x7f, 0x10, 0x76, 0xf0, 0x27, 0xb9, 0x1d, 0xd4, 0xcb, 0x58, 0x0d, 0x2b, 0x6f, 0x72, 0x67, 0xea, 0x20, 0xa0, 0x05, 0x70, 0xa0, 0x70, 0xa1, 0x14, 0x1b, 0xdd,
0xeb, 0xe2, 0xc9, 0xc9, 0x16, 0x85, 0xed, 0x1c, 0x25, 0x2a, 0x11, 0x26, 0xc9, 0xce, 0xb5, 0x1a, 0x6f, 0x72, 0x55, 0x59, 0x42, 0x2e, 0xfd, 0xfd, 0xb5, 0x81, 0xad, 0xa1, 0x0a, 0x67, 0x45, 0x45, 0x51, 0xb8, 0xff, 0xeb, 0xf2, 0x5c, 0xe0, 0x37, 0x8e, 0x36, 0x4b, 0xd4, 0x7d, 0x93, 0xeb, 0x78, 0xe1, 0xbe, 0x8c, 0x9c, 0xf4, 0xec, 0x33, 0xc0, 0x11, 0x90, 0xd7, 0x64, 0x79, 0x36, 0x7b, 0x04,
0xfd, 0x50, 0xe5, 0xe9, 0xb2, 0x9c, 0x9b, 0x8e, 0x45, 0xd6, 0x34, 0x31, 0x79, 0xeb, 0xd5, 0xa6, 0x8a, 0x52, 0xf8, 0x7d, 0x3a, 0x05, 0xaf, 0xf4, 0x0f, 0x12, 0xe2, 0x29, 0x23, 0xd7, 0x13, 0x66, 0x71, 0x8b, 0x26, 0xac, 0x15, 0x7c, 0xf8, 0x5c, 0xb9, 0x73, 0x5d, 0xf4, 0x5d, 0xc4, 0x59, 0x94, 0x01, 0x68, 0xbb, 0x3c, 0xa5, 0xb8, 0x56, 0xe0, 0xe9, 0xb5, 0xf7, 0x10, 0xe8, 0xa4, 0x9a, 0x28,
0xed, 0x73, 0x0b, 0x0c, 0xd5, 0x94, 0x28, 0xbf, 0x40, 0x51, 0x55, 0x43, 0x27, 0x4b, 0x70, 0xed, 0x9f, 0x84, 0x99, 0x9b, 0x48, 0xd8, 0xbc, 0x3f, 0xf7, 0xaf, 0xe5, 0xf5, 0xb6, 0xc5, 0xe9, 0x6d, 0x91, 0xfc, 0x2d, 0x4d, 0x31, 0x97, 0xd0, 0xc2, 0x30, 0x9a, 0x4f, 0x37, 0x95, 0xbe, 0x82, 0xce, 0x22, 0x78, 0x9e, 0x5e, 0xc0, 0x38, 0x21, 0x85, 0x7b, 0xf5, 0x2c, 0xa0, 0x1f, 0x5a, 0xfe, 0xcd,
0xe2, 0xd5, 0x29, 0x2d, 0xeb, 0x96, 0xb8, 0x29, 0x84, 0xdf, 0x77, 0x7e, 0x29, 0x0e, 0x15, 0x1b, 0xe8, 0xdb, 0xb1, 0xad, 0x75, 0x6c, 0x3f, 0x10, 0xc5, 0x86, 0x05, 0x9c, 0x88, 0xff, 0xaf, 0x15, 0xa9, 0x2a, 0x69, 0xec, 0x57, 0xa5, 0x8d, 0x11, 0xfb, 0x62, 0xf2, 0x30, 0x89, 0x2b, 0x10, 0xb4, 0xa9, 0x77, 0x78, 0x7c, 0xe1, 0x46, 0xe3, 0x55, 0x6d, 0xf1, 0x62, 0xc2, 0x22, 0x94, 0xfb, 0x68,
0x66, 0x23, 0xc4, 0x69, 0x05, 0x2c, 0x6c, 0xfd, 0x8c, 0xb9, 0x1a, 0x8a, 0x41, 0x6a, 0x3b, 0x16, 0xe1, 0xdc, 0x52, 0xc2, 0x81, 0xae, 0x73, 0x5e, 0x21, 0x78, 0x1b, 0x28, 0x8b, 0xc4, 0xc9, 0x64, 0xdf, 0x1d, 0x76, 0x04, 0x61, 0xd8, 0x39, 0xd2, 0x54, 0x50, 0x5b, 0x50, 0x20, 0x15, 0x2a, 0xf2, 0xd1, 0xf3, 0x4e, 0x11, 0x25, 0x68, 0x99, 0xc1, 0xb9, 0x39, 0x44, 0x6f, 0x56, 0xbc, 0xdf, 0x86,
0x7a, 0xbe, 0x1d, 0x69, 0x43, 0xa9, 0xa5, 0x0a, 0xf9, 0xcc, 0xbe, 0x99, 0x69, 0x9e, 0x54, 0x5d, 0x19, 0x1a, 0xdd, 0xeb, 0x5c, 0xe5, 0x7d, 0x10, 0x75, 0x52, 0x75, 0x43, 0xea, 0xd3, 0xf8, 0xd1, 0xd2, 0x54, 0xb1, 0xa7, 0x8e, 0xec, 0x7b, 0xde, 0x1a, 0xb4, 0xa5, 0x4e, 0xd4, 0x16, 0x91, 0x14, 0x20, 0xef, 0x13, 0xc8, 0x25, 0xee, 0x5c, 0xc8, 0xce, 0x0c, 0x71, 0x0b, 0x45, 0xd4, 0xeb, 0xa9,
0x9d, 0x80, 0x99, 0xa1, 0x75, 0x46, 0xe5, 0xbc, 0xcf, 0xf2, 0x9d, 0x1d, 0x44, 0xe7, 0xe0, 0x79, 0x8e, 0x22, 0x5f, 0x39, 0xd1, 0x24, 0xae, 0xb3, 0x56, 0x6a, 0x59, 0xea, 0x02, 0x0a, 0x47, 0x96, 0x19, 0x6c, 0xb7, 0x68, 0xa7, 0xf1, 0x30, 0x10, 0xd4, 0xe0, 0x0f, 0xa0, 0xff, 0x77, 0x86, 0x25, 0x95, 0x08, 0x6d, 0xcc, 0x6d, 0x98, 0xf3, 0x48, 0x78, 0x7a, 0x8f, 0x68, 0x41, 0x39, 0x52, 0x5d,
0x92, 0xda, 0xe5, 0x0d, 0xd0, 0x95, 0x67, 0x5f, 0xb7, 0x1a, 0xb7, 0xfb, 0x19, 0x91, 0xde, 0x91, 0xfe, 0x3e, 0x72, 0xb6, 0x57, 0xf0, 0x9b, 0xdb, 0x9a, 0xd6, 0x81, 0x71, 0x38, 0x36, 0x31, 0x29, 0x3d, 0x3b, 0xcf, 0x2a, 0xf5, 0x3c, 0x71, 0x03, 0x77, 0xc3, 0x37, 0x8c, 0x96, 0x9f, 0xdf, 0x1a, 0x52, 0x07, 0x77, 0xb0, 0xc1, 0x7d, 0xe0, 0x8a, 0x1b, 0xc2, 0xa7, 0x02, 0xa7, 0xa4, 0x64, 0xa3,
0xf3, 0xfd, 0x88, 0x6b, 0x8e, 0x0b, 0x4d, 0x61, 0x1b, 0xa9, 0x04, 0x20, 0xee, 0xf6, 0xb5, 0x41, 0x68, 0xe7, 0x6d, 0x4d, 0x53, 0x18, 0xde, 0xe5, 0xf9, 0xac, 0x96, 0xbd, 0x0f, 0xbd, 0x47, 0xee, 0x55, 0x0b, 0x93, 0xc7, 0x7a, 0xfa, 0xa5, 0x76, 0x9f, 0x0f, 0x0b, 0xd4, 0xcd, 0xa5, 0xe3, 0x6c, 0xed, 0x66, 0x90, 0x5d, 0x27, 0xe3, 0xbe, 0xe0, 0x25, 0xae, 0x54, 0x71, 0xfc, 0x13, 0x43, 0x08,
0x3e, 0x0e, 0x4c, 0xf0, 0xf1, 0x86, 0x8d, 0x8d, 0xe9, 0x4a, 0xc3, 0x22, 0x7e, 0xd7, 0xc1, 0x97, 0x06, 0x89, 0x61, 0x35, 0x29, 0x0a, 0x01, 0x4b, 0x6e, 0x64, 0x09, 0x87, 0x6b, 0xca, 0x7c, 0x35, 0x85, 0xdd, 0x8a, 0x98, 0x01, 0x3e, 0xcd, 0x73, 0xa1, 0x6c, 0x71, 0xc3, 0x41, 0x92, 0xe8, 0x9a, 0xaa, 0xab, 0xa3, 0x99, 0xbc, 0x5c, 0x73, 0xe0, 0x49, 0x1c, 0xf7, 0x76, 0xfe, 0xc3, 0xa2, 0x3c,
0x17, 0x92, 0x4a, 0x5c, 0xc5, 0x7b, 0x24, 0xf8, 0xea, 0xcc, 0x5b, 0x01, 0x0f, 0x01, 0xb9, 0xf5, 0x5f, 0xb1, 0x91, 0x8d, 0x41, 0x6e, 0x25, 0xa6, 0x82, 0x8f, 0x6c, 0xc1, 0x89, 0xd6, 0x81, 0x9d, 0xd3, 0x73, 0x24, 0xd4, 0x79, 0x84, 0xdf, 0x6c, 0x8f, 0xfb, 0x39, 0xdc, 0x3b, 0xf6, 0x9f, 0xa1, 0x71, 0x82, 0x7f, 0x1f, 0x90, 0x28, 0xce, 0x89, 0x3c, 0x5f, 0xb1, 0xae, 0x5d, 0x72, 0xb4, 0x04,
0x08, 0x73, 0x33, 0x68, 0xb9, 0xe6, 0x39, 0xd0, 0x9f, 0xcb, 0x6d, 0x27, 0x27, 0x0d, 0x35, 0x75, 0x2b, 0x3f, 0x6b, 0xbf, 0x7d, 0xd1, 0x7f, 0x07, 0x1f, 0xaa, 0x46, 0x5e, 0xbd, 0x7f, 0x32, 0xfa, 0xb1, 0xea, 0x5c, 0xe4, 0x41, 0xac, 0x3b, 0x88, 0x62, 0x17, 0xd2, 0xb9, 0xbd, 0x14, 0x03, 0xdc, 0x59, 0x9d, 0xde, 0x66, 0xa4, 0x14, 0x93, 0xd4, 0x94, 0xea, 0x76, 0xd8, 0x7b, 0x9a, 0xf8, 0x48,
0xd2, 0xc4, 0x47, 0x13, 0x80, 0x04, 0xfd, 0xdd, 0xa1, 0xe8, 0x0f, 0xc0, 0xd4, 0x06, 0x2d, 0x79, 0x25, 0xee, 0x09, 0xd1, 0x81, 0x96, 0xf9, 0x63, 0x7e, 0x22, 0x6d, 0x95, 0x23, 0x44, 0xa5, 0xd5, 0xb1, 0xde, 0x92, 0xde, 0x73, 0xd0, 0x84, 0x92, 0x43, 0x8a, 0x77, 0x13, 0xe2, 0x20, 0xaa, 0x6f, 0x3e, 0x47, 0xa9, 0x92, 0x5f, 0xed, 0xb1, 0x50, 0x99, 0x14, 0x15, 0x7a, 0x1c, 0x29, 0xb3, 0x90,
0x7d, 0x06, 0xf6, 0x24, 0x39, 0x6a, 0xad, 0xd5, 0xc0, 0x8f, 0xa1, 0xb1, 0xed, 0x4e, 0x05, 0x4d, 0x41, 0x9e, 0x4f, 0x29, 0x2d, 0xa6, 0x9d, 0x5d, 0xf4, 0x08, 0x59, 0x0d, 0x81, 0x56, 0xf8, 0x58, 0xbd, 0x90, 0x83, 0xfc, 0x9d, 0xec, 0x43, 0x54, 0x27, 0xeb, 0xff, 0x38, 0x69, 0xbe, 0x11, 0x78, 0x91, 0xe8, 0xab, 0x23, 0x68, 0x94, 0x9f, 0xc0, 0x11, 0x35, 0x32, 0x14, 0x6d, 0x50, 0x3b, 0xf8,
0x9a, 0xda, 0x8d, 0x2f, 0x8b, 0x47, 0x2d, 0x5c, 0xec, 0xee, 0x67, 0xd4, 0x89, 0x86, 0x75, 0x75, 0x7f, 0x36, 0x2a, 0x1d, 0xd1, 0xd5, 0xda, 0xb4, 0x75, 0x1e, 0x64, 0x61, 0x0b, 0x1e, 0x04, 0x07, 0x09, 0x34, 0x33, 0xfa, 0x65, 0x80, 0x73, 0xf0, 0x99, 0x61, 0x55, 0x8c, 0xb1, 0x1c, 0x03, 0x25, 0x1c, 0x0f, 0x37, 0xd8, 0xe3, 0x66, 0xf2, 0x80, 0x97, 0x59, 0x93, 0x92, 0x88, 0xf4, 0x33, 0xc8,
0xbd, 0xd2, 0xad, 0xb1, 0x63, 0x46, 0x49, 0x71, 0x47, 0x0e, 0xe1, 0xcc, 0xac, 0xae, 0x86, 0xab, 0xae, 0x5b, 0x31, 0x8a, 0xf3, 0xf6, 0xd1, 0xdd, 0x9d, 0x2d, 0x83, 0x89, 0x35, 0x3e, 0x25, 0x39, 0x31, 0xca, 0xdb, 0x5f, 0xd1, 0x3c, 0x80, 0x7f, 0x70, 0xe4, 0x35, 0xb4, 0x1c, 0x86, 0xcb, 0x78, 0xc5, 0x14, 0x52, 0xf8, 0x75, 0xf1, 0x16, 0xa0, 0x19, 0x4e, 0xb2, 0x44, 0xbe, 0x2b, 0xfc, 0xef,
0xdd, 0xe2, 0xcd, 0xc9, 0x85, 0x92, 0x6d, 0x65, 0x2d, 0x2a, 0x11, 0x08, 0xcf, 0xce, 0xba, 0xbd, 0x6d, 0x59, 0x51, 0x58, 0x4e, 0x14, 0x4d, 0xff, 0xb2, 0xb3, 0xa1, 0xa5, 0x55, 0x33, 0x45, 0x45, 0x59, 0x0b, 0xfd, 0x8c, 0xf9, 0x5c, 0xab, 0x87, 0x9b, 0x08, 0x4b, 0xd4, 0x3d, 0xb8, 0xeb, 0x78, 0xe5, 0x48, 0x8b, 0x08, 0x85, 0xe4, 0x3b, 0xc0, 0x29, 0x8b, 0xdf, 0x64, 0x92, 0x36, 0x7a, 0x29,
0xff, 0x57, 0x80, 0xef, 0x60, 0x25, 0x8a, 0x8d, 0x65, 0x4e, 0x3b, 0x35, 0xf3, 0x70, 0x68, 0xd5, 0x49, 0xdc, 0x71, 0x89, 0x31, 0x3c, 0x06, 0x34, 0xd3, 0xd5, 0xc9, 0xe5, 0xf8, 0x7c, 0x69, 0x43, 0x77, 0x28, 0x1f, 0xac, 0x15, 0x5c, 0xc3, 0x52, 0xbe, 0x29, 0x67, 0xf0, 0x51, 0xa9, 0x0b, 0x98, 0x03, 0x3d, 0xc6, 0x3a, 0x64, 0x8f, 0x54, 0xe0, 0x69, 0xb4, 0xfd, 0x80, 0xf7, 0xca, 0x26, 0x28,
0x12, 0xc6, 0xd1, 0x8d, 0xf5, 0xc6, 0x69, 0x2c, 0xe2, 0x64, 0x10, 0x53, 0x0c, 0x0e, 0xe5, 0xf7, 0xa8, 0xb2, 0x8d, 0x48, 0x54, 0x59, 0xe2, 0x3d, 0xe3, 0xd8, 0x11, 0xde, 0x46, 0x9e, 0x95, 0xba, 0x55, 0x9b, 0x35, 0x3c, 0x35, 0x96, 0xf8, 0x59, 0xdf, 0x4f, 0x8f, 0x30, 0xfc, 0xe6, 0x27, 0x9e, 0x2e, 0x6c, 0x17, 0xd8, 0x56, 0x2e, 0xb7, 0x81, 0xee, 0xde, 0x56, 0xa6, 0x08, 0x74, 0xab, 0x4a,
0xe7, 0x42, 0x28, 0xf6, 0xe1, 0xb6, 0x8d, 0xcd, 0x85, 0x8a, 0x26, 0xff, 0x29, 0x29, 0xb3, 0x11, 0xc5, 0x6d, 0xb9, 0xb5, 0x7d, 0x76, 0x5d, 0x4d, 0x15, 0x1a, 0x05, 0x01, 0xb1, 0x69, 0xa5, 0xa1, 0xb4, 0x18, 0x4b, 0x3d, 0x50, 0xb3, 0xdc, 0x90, 0xef, 0x42, 0x57, 0x0b, 0x42, 0x04, 0x5b, 0x98, 0x9b, 0xa8, 0xee, 0xa3, 0xe5, 0x1c, 0xd2, 0x20, 0x89, 0xf0, 0x60, 0x49, 0x2d, 0x93, 0x7d, 0x6c,
0x4d, 0x62, 0x46, 0x96, 0x01, 0x58, 0xec, 0x46, 0xa4, 0xba, 0xd0, 0x5d, 0x49, 0x4e, 0xcc, 0x36, 0xe4, 0x3a, 0xd8, 0xcb, 0xd1, 0x49, 0x7d, 0x2a, 0x77, 0x3a, 0x21, 0x21, 0x87, 0x01, 0xc5, 0xc1, 0xd9, 0x87, 0x7f, 0x00, 0x79, 0xdc, 0x23, 0xa0, 0x19, 0x80, 0xc3, 0x54, 0xb5, 0xf3, 0x6b, 0xfc, 0x71, 0xc8, 0x00, 0x43, 0x05, 0x32, 0xb2, 0xeb, 0xa8, 0x00, 0x15, 0x28, 0x4d, 0xb5, 0x1b, 0x8f,
0xca, 0x82, 0x69, 0xda, 0x21, 0x22, 0x09, 0x0d, 0xca, 0xde, 0xb1, 0xb8, 0x6d, 0x72, 0x55, 0x55, 0x05, 0x12, 0xf5, 0x26, 0xb1, 0x47, 0x99, 0x1c, 0x57, 0x5e, 0x5b, 0x76, 0xc5, 0x9b, 0xcb, 0xe7, 0xf9, 0x90, 0x9e, 0x3e, 0xd5, 0x23, 0x43, 0x87, 0x7a, 0xa0, 0xe7, 0x74, 0x83, 0x9b, 0x8b, 0x1c, 0x36, 0xe8, 0x2f, 0x0f, 0x25, 0x88, 0xd7, 0x60, 0xc6, 0x24, 0x77, 0x0d, 0x69, 0xc8, 0x1b, 0xa8,
0x98, 0xa2, 0xa9, 0x89, 0x47, 0x57, 0x24, 0x2d, 0xed, 0xfc, 0x1b, 0xd0, 0xc6, 0x97, 0x0a, 0xf1, 0xbc, 0x8c, 0x18, 0x18, 0xd1, 0xfe, 0xbd, 0xd2, 0xf6, 0xea, 0x79, 0x20, 0x1d, 0x14, 0xbb, 0x04, 0x19, 0x78, 0xb3, 0x93, 0xb5, 0xed, 0x67, 0x71, 0x5b, 0xc4, 0x1d, 0xa3, 0xc1, 0x01, 0x85, 0x3a, 0xa4, 0x08, 0x6f, 0xdc, 0x43, 0xbd, 0xfa, 0x80, 0xe1, 0x46, 0x5d, 0x25, 0xc2, 0xed, 0x44, 0x4c,
0xa9, 0xc3, 0x76, 0xa9, 0x7e, 0x25, 0x92, 0x4d, 0x04, 0x19, 0xf9, 0x2e, 0xa9, 0xf1, 0xd1, 0x95, 0x4d, 0x52, 0x5c, 0xe6, 0xf1, 0x53, 0xd0, 0x69, 0x94, 0x99, 0x73, 0x81, 0x29, 0x7b, 0x2f, 0x25, 0xa0, 0x26, 0xde, 0x6d, 0xd5, 0x14, 0x83, 0x7f, 0xfa, 0x70, 0x3f, 0xf5, 0x19, 0x8e, 0x75, 0x59, 0xd5, 0x29, 0xb0, 0xfc, 0x7a, 0x88, 0xcc, 0xa0, 0x08, 0x63, 0xbf, 0x9b, 0xad, 0x4b, 0x1e, 0xe8,
0xdc, 0x5c, 0xc8, 0xc9, 0xfd, 0x85, 0x7a, 0x01, 0xfa, 0x2a, 0x1e, 0xa3, 0xc8, 0xcf, 0xb5, 0x2f, 0x6c, 0x76, 0x41, 0x59, 0x15, 0x1e, 0xfd, 0xf9, 0xa1, 0xba, 0xa9, 0xa9, 0x59, 0x52, 0xfb, 0x44, 0x51, 0xb8, 0x9a, 0x53, 0xf5, 0xf9, 0xae, 0x84, 0x98, 0x03, 0xb5, 0xd4, 0x2d, 0xe2, 0xe1, 0x78, 0xe0, 0xf6, 0x8e, 0x1c, 0xf9, 0xef, 0x24, 0xac, 0xf6, 0x90, 0xd8, 0xd6, 0xcc, 0x35, 0x7b, 0x92,
0xf2, 0x7e, 0xea, 0xd8, 0xa1, 0x0c, 0x8d, 0x8d, 0xf6, 0x47, 0x31, 0x35, 0xe9, 0xee, 0xe6, 0xd3, 0x8d, 0xb7, 0x73, 0x79, 0xd2, 0x3d, 0x1d, 0xdf, 0xd8, 0xda, 0x55, 0xc2, 0x79, 0x66, 0x65, 0x65, 0x70, 0xdc, 0x07, 0xac, 0x11, 0x74, 0xc3, 0x54, 0xad, 0x20, 0x6f, 0xfc, 0x5d, 0xc8, 0xb5, 0x99, 0x0e, 0x14, 0xac, 0x0d, 0xa5, 0xa6, 0x53, 0xe0, 0x62, 0xb6, 0xf7, 0x80, 0xed, 0x54, 0x44, 0x23,
0xed, 0x21, 0x09, 0x02, 0xcd, 0xc6, 0x2a, 0xab, 0x65, 0x98, 0x51, 0x51, 0x11, 0x0e, 0xf5, 0xe1, 0xad, 0xb2, 0xb5, 0x99, 0x42, 0x50, 0xdc, 0x34, 0xf5, 0xea, 0xe1, 0xe1, 0x81, 0x9e, 0x85, 0xb5, 0x91, 0x5f, 0x39, 0xcc, 0x1c, 0x96, 0xe3, 0x94, 0xda, 0x40, 0x54, 0x19, 0x7d, 0x7c, 0x28, 0xb8, 0x3d, 0x88, 0xcf, 0x47, 0xc9, 0x2c, 0x9d, 0x00, 0x69, 0x5b, 0x11, 0xa4, 0xae, 0x72, 0xbb, 0x50,
0x3d, 0x42, 0x3d, 0x29, 0xe1, 0xea, 0xcd, 0xcd, 0x9a, 0x84, 0x71, 0x49, 0x29, 0x2a, 0x59, 0x15, 0xcd, 0xc2, 0xb9, 0xb9, 0x6d, 0x76, 0x59, 0x35, 0x15, 0x1e, 0x25, 0x01, 0xb9, 0x07, 0xa1, 0xa5, 0xb1, 0x18, 0x4b, 0xec, 0x55, 0x90, 0x03, 0x83, 0xff, 0x85, 0xae, 0x34, 0x8d, 0x04, 0x4b, 0xc0, 0x41, 0xa8, 0xdf, 0x7c, 0xe5, 0x58, 0x93, 0x20, 0x85, 0xf0, 0x37, 0xf4, 0x23, 0x94, 0xe3, 0x68,
0x42, 0x65, 0x49, 0x75, 0x01, 0x16, 0xfb, 0xd7, 0xa4, 0xa9, 0x86, 0x96, 0x49, 0x62, 0x35, 0x35, 0xd9, 0xf2, 0xd9, 0xcc, 0x92, 0x96, 0x8e, 0x79, 0x35, 0x46, 0x21, 0x32, 0xc9, 0xae, 0xc5, 0xc5, 0xd5, 0x74, 0x7f, 0x0c, 0x65, 0xdc, 0x23, 0xac, 0x19, 0x80, 0xab, 0x54, 0xbd, 0x18, 0x6b, 0xfc, 0x45, 0xc8, 0x0f, 0x53, 0x01, 0x6c, 0xcf, 0x40, 0xa9, 0x2c, 0x57, 0xf4, 0x5b, 0x8a, 0xfa, 0x8b,
0x75, 0x82, 0x69, 0xae, 0x2d, 0x26, 0x09, 0x0d, 0xc5, 0x97, 0xbb, 0xb1, 0x01, 0x6e, 0x55, 0x0d, 0x0d, 0x12, 0x95, 0xf9, 0xb1, 0xbe, 0x99, 0x9d, 0x05, 0x5a, 0x4d, 0x7d, 0xf9, 0xfe, 0xf1, 0xe5, 0xea, 0x5f, 0x9f, 0x00, 0x95, 0xfc, 0x77, 0xd0, 0x39, 0xe5, 0xed, 0x74, 0xc0, 0x47, 0x8b, 0x64, 0x81, 0xfb, 0x3f, 0xcc, 0x25, 0x8c, 0xdb, 0x60, 0xc9, 0xab, 0x7b, 0x04, 0x69, 0xd4, 0x1b, 0x2b,
0x9d, 0x1a, 0x8d, 0x89, 0x0d, 0x46, 0x2d, 0x39, 0xef, 0xea, 0xdd, 0xd1, 0x86, 0x86, 0x75, 0x74, 0x2d, 0x13, 0x13, 0xed, 0xd0, 0x83, 0xce, 0xd8, 0x07, 0x29, 0x04, 0x15, 0x6d, 0x77, 0x6b, 0x62, 0x1d, 0x78, 0xd7, 0x4c, 0xb5, 0x44, 0x63, 0xf0, 0x35, 0xc0, 0x07, 0x98, 0xf9, 0x64, 0xfb, 0x38, 0xad, 0x34, 0x4f, 0xdc, 0x51, 0xac, 0xf3, 0x83, 0xe4, 0x50, 0xdb, 0x24, 0x8d, 0xd3, 0x31, 0xc8,
0xce, 0x85, 0xc8, 0xc4, 0x04, 0x6a, 0x4d, 0x79, 0x5c, 0x6f, 0x90, 0xe9, 0xa9, 0x5b, 0xbd, 0xf2, 0x2c, 0x3f, 0x5c, 0x7e, 0x94, 0x82, 0x8e, 0xb8, 0xe7, 0xec, 0xe8, 0xe2, 0x5c, 0x6d, 0x46, 0x57, 0x3d, 0x98, 0xd0, 0x64, 0xd5, 0x3d, 0x83, 0x3a, 0x73, 0x14, 0x26, 0xe1, 0x6e, 0xe1, 0xb9, 0x0b, 0xa4, 0x5c, 0x1b, 0x95, 0x0b, 0xab, 0x60, 0xe7, 0x68, 0x1d, 0xd2, 0x48, 0xad, 0x20, 0x02, 0x8d,
0xb4, 0x92, 0xbd, 0x8a, 0xee, 0xe8, 0x19, 0x08, 0x5d, 0x5e, 0x52, 0x7e, 0xbb, 0xab, 0xf2, 0xc0, 0x04, 0x25, 0x38, 0x30, 0x65, 0x50, 0x92, 0x8f, 0xf6, 0xd2, 0xc8, 0xcd, 0x3d, 0x0c, 0x2a, 0x27, 0x30, 0xa0, 0xff, 0x79, 0xd8, 0x0a, 0xc2, 0x5c, 0xec, 0x65, 0x20, 0xb5, 0x50, 0xc1, 0xac, 0x1d, 0x95, 0x1b, 0xea, 0x6e, 0xf3, 0x85, 0x50, 0xa5, 0x7a, 0xf3, 0xa5, 0x0d, 0xbd, 0x40, 0x38, 0x67,
0x91, 0x6d, 0x91, 0xae, 0xd4, 0xcf, 0x84, 0x8d, 0x26, 0x08, 0x50, 0x52, 0x82, 0x9b, 0xa5, 0xe7, 0x8d, 0xf1, 0x38, 0x1a, 0x45, 0x5f, 0x72, 0x73, 0x99, 0xda, 0x50, 0x87, 0x10, 0x10, 0x01, 0x23, 0x1f, 0xac, 0x7a, 0xd4, 0x61, 0x3f, 0xac, 0x22, 0xdc, 0x67, 0x12, 0x9d, 0x0a, 0xa5, 0x62, 0xec, 0x47, 0x07, 0xdd, 0x7f, 0xcd, 0x65, 0x3f, 0x84, 0x1b, 0xdf, 0x95, 0xe8, 0x82, 0x2c, 0xdc, 0x5d,
0x74, 0x50, 0x7a, 0x7d, 0xfb, 0xc6, 0x5c, 0xbc, 0x28, 0x05, 0x35, 0x24, 0x65, 0x6b, 0x86, 0xb6, 0xfe, 0xff, 0xf8, 0xf7, 0x30, 0x31, 0x58, 0x4f, 0x9e, 0x9f, 0x84, 0x91, 0xca, 0xf1, 0xf0, 0xeb, 0xf8, 0xf1, 0x3f, 0xaf, 0x77, 0xfd, 0x80, 0x1b, 0xac, 0x30, 0xb5, 0x14, 0x1e, 0xa5, 0x48, 0xcc, 0x48, 0xe7, 0xa1, 0x10, 0xc5, 0xbd, 0x35, 0x69, 0x07, 0xb4, 0x51, 0xcd, 0x7f, 0x07, 0xcf, 0x72,
0x59, 0x31, 0x6a, 0x5c, 0x93, 0x94, 0xa8, 0xa3, 0xeb, 0x8a, 0x73, 0x0e, 0x29, 0xdc, 0x18, 0x66, 0xba, 0xbb, 0xcd, 0xda, 0x19, 0x11, 0x28, 0x34, 0x79, 0x75, 0x60, 0x65, 0xde, 0xcb, 0xcc, 0xc6, 0xb1, 0xe9, 0x4e, 0xa1, 0x3a, 0xd8, 0x76, 0xfc, 0x9c, 0x13, 0xe4, 0x67, 0xd0, 0x65, 0x25, 0xb9, 0x26, 0xcd, 0x9d, 0x17, 0x80, 0x29, 0xe3, 0x73, 0xe6, 0x85, 0x59, 0xa0, 0x5e, 0xd7, 0xae, 0x1a,
0x31, 0x07, 0x28, 0x3b, 0x62, 0x69, 0x9f, 0x88, 0xc2, 0xdf, 0xf8, 0x8d, 0x49, 0x31, 0x51, 0x50, 0x8b, 0x93, 0xac, 0xb5, 0xe5, 0x59, 0x7d, 0x7d, 0x6d, 0x7f, 0x4f, 0x54, 0xb4, 0xad, 0x00, 0xc5, 0xa3, 0x5d, 0x11, 0x62, 0x75, 0xde, 0x5c, 0xb0, 0xeb, 0x8d, 0xb4, 0x23, 0xd4, 0x50, 0x08, 0x90, 0x06, 0xbd, 0x66, 0xf0, 0x6a, 0x0d, 0xd7, 0x27, 0xdc, 0x79, 0x34, 0x88, 0x28, 0xd5, 0x89, 0xeb,
0x6f, 0xef, 0x11, 0x69, 0xd3, 0x27, 0x74, 0x68, 0xa4, 0xb8, 0xd4, 0xdf, 0x1c, 0x03, 0x3c, 0x25, 0x6c, 0x7b, 0x8b, 0x8a, 0xf6, 0xd3, 0x08, 0x9d, 0xa5, 0x55, 0x33, 0x24, 0x97, 0xb0, 0x84, 0x88, 0x9e, 0x2a, 0xfa, 0x4b, 0xe0, 0x95, 0x5f, 0xd0, 0x46, 0xc4, 0x82, 0x12, 0xbc, 0x31, 0xe7, 0x6c, 0x55, 0xe8, 0x2f, 0xe4, 0x60, 0xe2, 0xa6, 0x0d, 0xba, 0xf5, 0x77, 0x16, 0x00, 0xac, 0x1b, 0x5a,
0xf8, 0xe6, 0xec, 0xfa, 0x35, 0x34, 0x42, 0x54, 0xac, 0x84, 0xa2, 0xa5, 0xe8, 0xe0, 0x16, 0x10, 0x43, 0x57, 0x6e, 0x5f, 0xa3, 0xb7, 0xd0, 0xd8, 0xa0, 0x7a, 0x50, 0x13, 0x76, 0x72, 0x09, 0x05, 0x10, 0x01, 0xda, 0x2d, 0xc7, 0x79, 0x0d, 0x85, 0x34, 0xa9, 0x77, 0xf5, 0x94, 0x16, 0xd8, 0x7f, 0xc4, 0x9d, 0x4f, 0x2c, 0x4a, 0xde, 0x96, 0xee, 0xa7, 0x31, 0xfa, 0x41, 0xc9, 0x91, 0x48, 0xbc,
0xbd, 0x25, 0xa9, 0x89, 0x06, 0x14, 0xfd, 0x4d, 0x65, 0x5e, 0x83, 0x90, 0xc7, 0xdd, 0xe5, 0xdb, 0x4d, 0x92, 0x5a, 0x40, 0xa2, 0x9f, 0xa7, 0xb8, 0xc0, 0xde, 0xe8, 0xec, 0x0b, 0x6e, 0x35, 0x25, 0x43, 0xf7, 0xa6, 0x25, 0xbb, 0x4f, 0xf7, 0x71, 0x17, 0x83, 0x42, 0xda, 0x78, 0xf3, 0x8d, 0x2a, 0xa0, 0x45, 0x0a, 0x29, 0x65, 0xfd, 0x61, 0xcf, 0x65, 0x7c, 0xb7, 0x44, 0x4a, 0x14, 0x7b, 0x8f,
0x8d, 0x96, 0x99, 0xa6, 0xf2, 0xef, 0x6c, 0x6c, 0xb4, 0x68, 0x7e, 0x65, 0xbd, 0xa1, 0xd8, 0xf9, 0x08, 0x14, 0x13, 0x58, 0x23, 0x64, 0x92, 0x91, 0xa4, 0xba, 0xe5, 0xf3, 0x30, 0x39, 0x2d, 0x57, 0x23, 0x08, 0xff, 0xec, 0xa1, 0x2e, 0xc2, 0x5e, 0xea, 0x70, 0x09, 0xd4, 0xfd, 0xc7, 0x92, 0x2b, 0x88, 0x32, 0xea, 0x49, 0xc1, 0x85, 0x5e, 0xf2, 0x79, 0x80, 0xd7, 0x34, 0xb9, 0x64, 0x14, 0x7b,
0xfd, 0x35, 0xbd, 0x86, 0xd1, 0x86, 0x8d, 0xed, 0x10, 0x24, 0x53, 0x58, 0x87, 0x8a, 0xa5, 0xd4, 0x8f, 0xd0, 0x78, 0x8d, 0x24, 0x64, 0x5f, 0x45, 0x90, 0xa9, 0xa2, 0xa0, 0x09, 0x1b, 0x28, 0x04, 0x18, 0xd9, 0x1e, 0x3d, 0x57, 0x13, 0xb7, 0x24, 0xd6, 0x4d, 0x2b, 0x91, 0x3b, 0x8e, 0x0a, 0xaa, 0x73, 0x07, 0xc3, 0x2d, 0xa5, 0x48, 0x01, 0x89, 0x2e, 0xd8, 0xe5, 0x84, 0xda, 0x00, 0xf4, 0x58,
0x74, 0x4c, 0x44, 0x6c, 0xaf, 0xb3, 0xe2, 0xdd, 0x00, 0x04, 0x71, 0x15, 0x6c, 0x78, 0xd5, 0xb6, 0xc2, 0xdc, 0xea, 0xf6, 0x3d, 0x33, 0x6f, 0x5f, 0x8d, 0x07, 0xe1, 0xa0, 0xd1, 0xeb, 0xe7, 0xd6, 0xb1, 0xf8, 0x5f, 0x99, 0x5b, 0xfe, 0x8a, 0x1e, 0xbd, 0x30, 0x86, 0x16, 0x3f, 0xe5, 0xdf, 0xad, 0x73, 0xca, 0x97, 0x19, 0xb6, 0x4f, 0x12, 0x70, 0x0c, 0x9d, 0x76, 0xcd, 0x63, 0x39, 0xde, 0x26,
0x0c, 0x43, 0x1e, 0x7d, 0x80, 0x84, 0xda, 0xcd, 0x42, 0xd9, 0x12, 0x03, 0x46, 0x42, 0x79, 0x5d, 0xa2, 0xa6, 0xd2, 0xdc, 0x08, 0x61, 0x5d, 0x5d, 0x3b, 0x1a, 0xf0, 0x0d, 0xcd, 0xd1, 0xd5, 0xe6, 0xc4, 0x57, 0x2f, 0x89, 0x3b, 0x9c, 0x47, 0xf5, 0x8f, 0x40, 0xe4, 0x5b, 0xf3, 0x77, 0x24, 0xb4, 0x24, 0xfa, 0x8d, 0x04, 0x18, 0x4c, 0xd2, 0x68, 0xfc, 0x92, 0x64, 0xf5, 0x2c, 0xa3, 0x8f, 0x09,
0x35, 0x03, 0x3b, 0x28, 0x62, 0x72, 0x88, 0x9f, 0x8d, 0xcc, 0xfe, 0xe3, 0x69, 0x29, 0x50, 0x5b, 0x88, 0x80, 0xb8, 0xad, 0xfe, 0xe4, 0x54, 0x72, 0x35, 0x68, 0x52, 0x55, 0xb8, 0xaa, 0xa0, 0xce, 0xb3, 0x2f, 0x7f, 0xcb, 0x26, 0xbf, 0x51, 0xdf, 0x75, 0xec, 0x8f, 0x3b, 0xc9, 0x4f, 0x0e, 0x81, 0x76, 0xc8, 0x0f, 0xb2, 0x05, 0x9d, 0xbf, 0x34, 0xc6, 0x60, 0x14, 0x8c, 0x2c, 0xc6, 0x9a, 0xeb,
0x7d, 0x90, 0x0a, 0xa9, 0x21, 0x16, 0x24, 0x52, 0xa6, 0x34, 0xb0, 0xb2, 0x67, 0x6e, 0x79, 0x26, 0x6f, 0xf2, 0xf9, 0xfb, 0xa0, 0xb6, 0x95, 0x7d, 0x55, 0x43, 0x35, 0xa1, 0xf9, 0x0e, 0xe6, 0x95, 0x85, 0x3d, 0xed, 0x04, 0xf3, 0x93, 0x31, 0xf0, 0x5e, 0xc5, 0x89, 0x11, 0xaf, 0x25, 0xff, 0x77, 0xf3, 0xc1, 0x20, 0xbc, 0x77, 0xff, 0xa7, 0x01, 0xbd, 0x55, 0x7c, 0x04, 0x7f, 0xb7, 0xdb, 0xa8,
0xef, 0xcb, 0xe7, 0xfd, 0x0d, 0x29, 0x4c, 0x49, 0x8c, 0x84, 0xb6, 0xf1, 0xbb, 0xbe, 0x44, 0x43, 0x0d, 0xde, 0x19, 0x1a, 0x3f, 0xd7, 0x9c, 0xfc, 0x11, 0x80, 0x61, 0x63, 0x17, 0x1e, 0x52, 0x49, 0x21, 0x51, 0xe0, 0x2f, 0x4b, 0x1d, 0x60, 0xfe, 0x59, 0xec, 0x74, 0xf6, 0x1d, 0x64, 0xa9, 0x29, 0xa1, 0x00, 0xaf, 0xdc, 0x5c, 0xd8, 0x13, 0x80, 0x19, 0x53, 0xe7, 0x56, 0xe4, 0x9a, 0x4f, 0x84,
0xd2, 0xa1, 0xc8, 0xc5, 0x7c, 0x66, 0x5d, 0x62, 0x2b, 0x0a, 0x75, 0xde, 0xfa, 0xda, 0xf4, 0xe7, 0x39, 0x37, 0x4b, 0x1a, 0xf1, 0xf3, 0x95, 0xdd, 0x8d, 0xaf, 0xc9, 0x81, 0x32, 0x08, 0x25, 0x3a, 0x5e, 0xf9, 0xbb, 0x05, 0xbb, 0x5b, 0xa3, 0x22, 0x49, 0xd1, 0x11, 0x94, 0xf1, 0x84, 0xc8, 0xb6, 0xc0, 0x09, 0x2e, 0x98, 0x9f, 0xcc, 0x11, 0xae, 0x09, 0x27, 0xfb, 0x2b, 0xce, 0x75, 0x37, 0xf5,
0xe8, 0xd4, 0xc9, 0xcf, 0x9e, 0xb2, 0x5b, 0x6d, 0x2d, 0x35, 0x25, 0x27, 0xc9, 0xc8, 0xaa, 0x86, 0x5b, 0x72, 0x51, 0x43, 0x22, 0x20, 0xfd, 0xbd, 0xf3, 0xdb, 0xcd, 0xcd, 0xb3, 0x5e, 0x3c, 0x27, 0x51, 0xa8, 0xd0, 0xa2, 0xf5, 0xd8, 0x8c, 0x63, 0xed, 0x61, 0x35, 0xa0, 0x58, 0xd6, 0xc8, 0x78, 0xe4, 0x00, 0x8f, 0x04, 0xb0, 0xa4, 0x33, 0xcb, 0x1f, 0x90, 0xc8, 0x51, 0xfb, 0x34, 0x7d, 0x17,
0x9c, 0x61, 0x82, 0xc9, 0xd5, 0xc9, 0x7f, 0x8d, 0x15, 0x23, 0x41, 0x45, 0x9a, 0xcf, 0x45, 0xee, 0x1f, 0xa4, 0x0a, 0x48, 0xf5, 0x50, 0xbf, 0x3f, 0x54, 0xc2, 0x5d, 0xcc, 0x11, 0xab, 0x37, 0x68, 0xef, 0x7a, 0xc4, 0x60, 0x3f, 0x0a, 0x49, 0xc9, 0x95, 0xe5, 0x8e, 0x3f, 0xbb, 0x5c,
0xfe, 0x0a, 0x3f, 0x9c, 0x5c, 0xec, 0x97, 0x03, 0xf8,
}; };
static const unsigned char a0183[] = { static const unsigned char a0183[] = {
@@ -149996,35 +149999,34 @@ static const unsigned char a0285[] = {
}; };
static const unsigned char a0286[] = { static const unsigned char a0286[] = {
0x53, 0xfb, 0xdc, 0x1b, 0x2b, 0x4a, 0x42, 0xce, 0xba, 0xf3, 0xe6, 0xa1, 0xe9, 0x94, 0x8a, 0x13, 0x91, 0x38, 0x2e, 0xaf, 0x35, 0xdc, 0xd2, 0x1c, 0xd9, 0x80, 0x76, 0x05, 0x75, 0x24, 0x1a, 0xa4, 0xdc, 0x75, 0x99, 0xd0, 0x22, 0xcc, 0x7f, 0x85, 0x25, 0x6d, 0x23, 0x40, 0x7e, 0x12, 0xc7, 0xc8, 0x1e, 0xb6, 0x6b, 0x62, 0xc2, 0x5a, 0x0f, 0x23, 0x66, 0xfe, 0xb3, 0xbe, 0x02, 0xa2, 0x57, 0x5f,
0x21, 0x78, 0xb7, 0x48, 0xc5, 0x6c, 0x66, 0xef, 0x69, 0x10, 0x06, 0x96, 0x0f, 0xb1, 0xaa, 0x26, 0xb2, 0x5d, 0x4e, 0xca, 0x51, 0xf9, 0xf2, 0x7e, 0xc8, 0xa0, 0xb6, 0x26, 0x9b, 0x4e, 0x3a, 0xc6, 0xae, 0xf6, 0xf2, 0x03, 0x52, 0xea, 0x9b, 0xa4, 0xf6, 0x8e, 0x43, 0x4d, 0x98, 0x37, 0xe7, 0xfd, 0x3d, 0xd3, 0x8b, 0x81, 0xe6, 0x7f, 0x2f, 0x35, 0xb7, 0x1e, 0xf3, 0xdd, 0x2c, 0xc8, 0x77, 0x7d,
0x6e, 0xe8, 0xfe, 0x6e, 0xed, 0x86, 0x82, 0x1e, 0x80, 0x35, 0x26, 0xa2, 0x27, 0xd1, 0xca, 0x46, 0xda, 0x7d, 0x6e, 0xea, 0x79, 0x19, 0x12, 0x8e, 0x14, 0xc5, 0xb6, 0x52, 0xb3, 0x61, 0x5a, 0xf6, 0xe1, 0x66, 0x3b, 0x25, 0x7a, 0x00, 0xbf, 0xd5, 0x1f, 0xab, 0x63, 0x79, 0xb0, 0x57, 0x07, 0x1d, 0x55, 0xf3, 0xab, 0xa1, 0x0e, 0x9f, 0x4f, 0x45, 0xab, 0x3b, 0xf3, 0xb9, 0x44, 0xe2, 0x97, 0x9d,
0x6e, 0x0d, 0xfe, 0xca, 0x15, 0xac, 0xa2, 0x2e, 0xec, 0x50, 0x47, 0xd0, 0x4d, 0xf7, 0xe3, 0x76, 0xd2, 0x90, 0xce, 0x13, 0x95, 0x1f, 0xc2, 0x81, 0x30, 0xe0, 0xa6, 0x62, 0x9d, 0x80, 0x6b, 0x06, 0xd5, 0x86, 0x3a, 0x43, 0x92, 0x29, 0xd6, 0xe5, 0x15, 0x3e, 0xbc, 0x80, 0xda, 0x51, 0x27, 0x6d, 0x77, 0x16, 0xbb, 0xd9, 0x62, 0xbe, 0x60, 0x75, 0xc6, 0x5e, 0x7d, 0x19, 0x6a, 0x07, 0xb7, 0xae,
0x81, 0x28, 0x66, 0xaa, 0x25, 0xc9, 0xc2, 0x59, 0xc8, 0x74, 0x66, 0xf2, 0x7d, 0x14, 0x0e, 0x92, 0x11, 0xb8, 0xb6, 0x3a, 0xb1, 0x50, 0x52, 0xd2, 0x51, 0x00, 0xf2, 0x9e, 0xfd, 0xa4, 0x92, 0x26, 0x0f, 0xa2, 0x5b, 0x65, 0xbe, 0x4a, 0xff, 0x0d, 0x56, 0xea, 0xa7, 0xa9, 0xfa, 0x8e, 0x47, 0x49, 0x92, 0x36, 0xe7, 0xf9, 0x42, 0xde, 0x93, 0x95, 0xe6, 0x76, 0x33, 0x39, 0x8e, 0x22, 0xdb, 0xfd,
0xa1, 0x4c, 0x3e, 0xc6, 0x65, 0xec, 0xf2, 0x62, 0xb4, 0x90, 0x89, 0x16, 0x8d, 0x2c, 0x2a, 0xf2, 0x31, 0xcb, 0xcd, 0x5e, 0xd5, 0x74, 0x3e, 0xfe, 0x79, 0x34, 0x16, 0xad, 0x0d, 0xc4, 0x8f, 0x46, 0x2e, 0x96, 0x79, 0x80, 0xd2, 0x6a, 0x1c, 0x40, 0x76, 0x09, 0xc7, 0xc9, 0x15, 0xa2, 0x67, 0x54, 0xb6, 0x22, 0x0b, 0x11, 0x0e, 0xfa, 0xaf, 0x35, 0x06, 0x9e, 0x47, 0x59, 0xaa, 0x03, 0xf6, 0xae,
0xa5, 0x68, 0x5a, 0xa6, 0x65, 0x1f, 0x00, 0x12, 0x09, 0xb0, 0xb2, 0x32, 0xad, 0x2f, 0x4b, 0x85, 0x10, 0xf8, 0xee, 0x7a, 0xe7, 0xa1, 0x93, 0x1e, 0x95, 0x40, 0x36, 0xd6, 0x3d, 0xe4, 0x53, 0x67, 0x7b, 0xe6, 0x9b, 0xa1, 0xe2, 0x87, 0x3e, 0x45, 0x9a, 0x2e, 0xe3, 0xfd, 0x3a, 0xd2, 0xcd, 0x8c, 0xde, 0x7a, 0x2b, 0x71, 0x93, 0x1a, 0xcf, 0xd5, 0x64, 0xbf, 0x73, 0x75, 0xca, 0x71, 0x05, 0x35,
0xe1, 0x84, 0x7e, 0x4a, 0x96, 0x2c, 0x22, 0xae, 0xa8, 0xd1, 0xc6, 0x5e, 0xcd, 0x34, 0x7e, 0xf6, 0x71, 0x18, 0x64, 0x9b, 0x15, 0xb0, 0xb2, 0x3e, 0x29, 0x61, 0x56, 0xaa, 0x5c, 0x04, 0xf6, 0x86, 0x6e, 0x06, 0xb7, 0xc1, 0x12, 0xfb, 0x5e, 0x65, 0xa6, 0x4e, 0x03, 0x05, 0x5a, 0xf2, 0x04, 0xac, 0xed, 0xbb, 0x47, 0x51, 0xb3, 0x2e, 0xa1, 0xf4, 0xb6, 0x71, 0x93, 0xb9, 0xdd, 0x9c, 0x85, 0x97,
0x01, 0x75, 0x9f, 0x39, 0x9c, 0x40, 0x42, 0xdf, 0x5f, 0x8e, 0xe7, 0x82, 0x32, 0x94, 0xaa, 0x21, 0x8f, 0x8a, 0x84, 0xba, 0x37, 0xd7, 0xc1, 0xdf, 0xdf, 0x94, 0x6b, 0x81, 0x7a, 0x28, 0x24, 0x25, 0x8e, 0x24, 0xd0, 0xf2, 0xb3, 0xcc, 0x6b, 0x98, 0xd4, 0x65, 0x3a, 0x34, 0x7e, 0x18, 0xcb, 0xf3, 0x9d, 0xa7, 0x4c, 0x36, 0xc4, 0x55, 0x1b, 0x57, 0xe6, 0xd6, 0x9b, 0x8e, 0x0e, 0xa8, 0x47, 0x15,
0x2e, 0xea, 0xf9, 0xcf, 0xc9, 0x78, 0x20, 0xcd, 0x95, 0xa8, 0x9e, 0x11, 0x0a, 0xa4, 0xe2, 0x32, 0xa3, 0x7e, 0x1f, 0xdc, 0x5a, 0xe4, 0xbe, 0x71, 0xfb, 0x9c, 0xd6, 0x26, 0x85, 0x71, 0x6b, 0xce, 0xaa, 0x52, 0xd0, 0x50, 0xd5, 0xfb, 0x87, 0xe9, 0x9a, 0x50, 0xd9, 0xe3, 0x9e, 0x28, 0xdd, 0xbc, 0xb7, 0xc0, 0x93, 0xdd, 0x19, 0xcd, 0x4d, 0x4f, 0x82, 0x00, 0x9b, 0x82, 0x72, 0x26, 0x42, 0x72,
0x55, 0xf0, 0x92, 0x1c, 0x72, 0x15, 0x3d, 0x0a, 0x95, 0x73, 0x7d, 0x6f, 0x01, 0x97, 0xb6, 0x5c, 0x61, 0x37, 0x1d, 0x79, 0x72, 0x04, 0x4e, 0x98, 0x0e, 0xee, 0xd3, 0x44, 0xb2, 0x44, 0x3a, 0x2f, 0x45, 0xd2, 0x4f, 0x52, 0x76, 0x00, 0xa7, 0x99, 0x10, 0xb7, 0x50, 0x0c, 0x3d, 0x43, 0x27, 0x6d, 0x10, 0xa5, 0xcc, 0xcb, 0x8f, 0x37, 0x7b, 0x3b, 0xa6, 0x34, 0xc2, 0x89, 0x70, 0xff, 0x53, 0xce,
0x6b, 0xa2, 0x27, 0x86, 0xae, 0x98, 0xcc, 0xa3, 0x89, 0x48, 0x1a, 0xd2, 0x4d, 0xec, 0x72, 0x7e, 0xe5, 0x9a, 0xdb, 0x14, 0xb6, 0x24, 0x6e, 0xbc, 0x02, 0x43, 0x88, 0xc3, 0x1b, 0x6b, 0xba, 0x00, 0x6d, 0xbb, 0xbc, 0x59, 0x96, 0x6a, 0x58, 0xfd, 0x38, 0x7c, 0xbe, 0xf1, 0x71, 0x31, 0x03, 0xc5, 0xfd, 0x53, 0x50, 0xc9, 0x26, 0xf2, 0xf4, 0x6d, 0x49, 0xea, 0x2e, 0x61, 0x62, 0x4a, 0x88, 0x90,
0xac, 0x65, 0x73, 0x29, 0x22, 0xce, 0x97, 0x4c, 0xec, 0x26, 0x3d, 0x73, 0x6f, 0x16, 0x5f, 0x07, 0xbe, 0xb4, 0xe2, 0x3a, 0xb5, 0x5e, 0x07, 0xce, 0x71, 0x08, 0xd2, 0x82, 0xf7, 0x95, 0xea, 0xd8, 0x8d, 0xeb, 0xf4, 0x79, 0xb6, 0x1a, 0x50, 0x1d, 0x46, 0x59, 0x9e, 0xd1, 0x83, 0xfc, 0xd8, 0x88, 0x1d, 0x63, 0x28, 0xe9, 0x46, 0x82, 0x4c, 0x8d, 0x77, 0xc7, 0x0e, 0x41, 0x5c, 0x50, 0x35, 0xb3,
0x17, 0xcc, 0xf4, 0x49, 0x10, 0x2f, 0xfa, 0x6a, 0xb1, 0x53, 0x9e, 0x02, 0x3a, 0x09, 0x52, 0xd9, 0xec, 0xfc, 0x4e, 0xd9, 0x88, 0xab, 0x6a, 0xfa, 0x19, 0xf7, 0x0e, 0xb0, 0xa1, 0xf9, 0xc2, 0x8a, 0xad, 0x9b, 0xac, 0x99, 0xd6, 0x0a, 0xc8, 0x3d, 0x64, 0xb2, 0xfe, 0xb1, 0x1c, 0xa1, 0x41, 0x27, 0xbe, 0x56, 0x17, 0xb3, 0x60, 0xff, 0xad, 0xe0, 0x0a, 0x9e, 0xa3, 0x5c, 0xed, 0xcd, 0xf6, 0x74,
0x20, 0x97, 0xfd, 0x69, 0x00, 0xe7, 0x1a, 0x8a, 0x61, 0x5b, 0xbe, 0xa1, 0x13, 0x69, 0x32, 0xeb, 0x59, 0x58, 0xb3, 0xf9, 0x98, 0x63, 0x8a, 0x1a, 0xe9, 0xbf, 0x2e, 0x53, 0x84, 0xd9, 0xa2, 0xa4, 0xcf, 0xe4, 0x99, 0xf4, 0xf4, 0xb9, 0x47, 0x0a, 0x38, 0x16, 0xa2, 0xd5, 0x09, 0xa5, 0xa6, 0x0c, 0x05, 0x76, 0x2b, 0x2d, 0x83, 0x1a, 0xae, 0xd7, 0x26, 0xbc, 0x73, 0x79, 0xc2, 0x62, 0x17, 0x0d,
0xb1, 0x0d, 0x1c, 0x89, 0xf0, 0x3f, 0x3b, 0xaa, 0x51, 0xc3, 0xdf, 0x46, 0x0c, 0x49, 0x12, 0xf0, 0x62, 0x3e, 0x44, 0x9a, 0x15, 0xa0, 0x10, 0x3c, 0xbc, 0x62, 0x03, 0xee, 0x5d, 0x44, 0xf1, 0xaf, 0x6e, 0x66, 0xbf, 0xc1, 0x10, 0xaa, 0x5b, 0x70, 0xe5, 0x4c, 0x43, 0x1f, 0x5a, 0xf2, 0xa7, 0xcc, 0xfc, 0x96, 0x15, 0x50, 0xaa, 0x3e, 0xef, 0xf5, 0x2c, 0xdf, 0x93, 0xb7, 0xeb, 0x82, 0x01, 0x3c,
0xc3, 0x57, 0xe6, 0x2a, 0x65, 0x4a, 0x75, 0x4c, 0x06, 0x82, 0x34, 0x33, 0x39, 0x63, 0x9a, 0x94, 0x19, 0x33, 0x2f, 0xba, 0x79, 0xdd, 0xc2, 0x58, 0xd0, 0x80, 0x75, 0x0a, 0x7d, 0x24, 0x0a, 0xa6, 0x7e, 0x2f, 0xdb, 0xe1, 0x32, 0xc2, 0x7f, 0x85, 0xd4, 0x47, 0xa2, 0x2b, 0x72, 0x36, 0x46, 0xcf, 0x12, 0x90, 0x5c, 0x4d, 0xa7, 0x74, 0x2c, 0x05, 0xf9, 0x99, 0xa9, 0xb9, 0x0a, 0xec, 0x57, 0x5d,
0x41, 0xcc, 0xbe, 0x48, 0xc5, 0x68, 0x75, 0x5d, 0x6b, 0x40, 0x1e, 0x92, 0x0d, 0xb4, 0xb0, 0x2a, 0xb1, 0x5b, 0xdc, 0xdb, 0x51, 0x5e, 0xf3, 0x7e, 0x63, 0xa1, 0x96, 0x4c, 0x9c, 0x44, 0x5c, 0xc7, 0xf8, 0x46, 0xfb, 0x03, 0x52, 0xea, 0x97, 0xa5, 0xf6, 0x9e, 0x43, 0x4f, 0xc4, 0x32, 0xa7, 0xfa, 0x3e, 0xd6, 0x8b, 0x1d, 0xe0, 0x72, 0x75, 0x35, 0x86, 0x12, 0xd3, 0xd6, 0x74, 0xc2, 0x44, 0x5f,
0x43, 0x69, 0xdf, 0x9a, 0xe6, 0x8e, 0xab, 0x8f, 0x8b, 0x38, 0x02, 0x33, 0x2f, 0xd8, 0xec, 0x61, 0xed, 0x1d, 0x40, 0xd9, 0x65, 0x83, 0x75, 0x84, 0x19, 0xc0, 0xf8, 0x42, 0xb2, 0x3a, 0x5a, 0xe1, 0xd6, 0x66, 0xbf, 0x21, 0x72, 0x58, 0xbf, 0xcd, 0x12, 0xae, 0x6c, 0x37, 0xba, 0x61, 0x47, 0x14, 0x5e, 0xf6, 0xab, 0x92, 0x03, 0x92, 0x15, 0x55, 0xa6, 0x32, 0xf3, 0xf6, 0x14, 0xe2, 0xa4, 0x9d,
0x31, 0x11, 0xfe, 0x8a, 0x05, 0xb1, 0x85, 0x2e, 0xa6, 0x0e, 0x46, 0x90, 0x4d, 0x4c, 0xea, 0x69, 0xd1, 0xc6, 0x8e, 0x5c, 0xca, 0x27, 0x32, 0xbe, 0x39, 0xc3, 0x88, 0x62, 0x9b, 0x84, 0x02, 0x07, 0x96, 0x87, 0x3b, 0x81, 0x92, 0x2a, 0x8d, 0xe5, 0x3e, 0xca, 0x83, 0x86, 0x84, 0x72, 0x36, 0x2d, 0xe4, 0x16, 0xcb, 0x65, 0x23, 0xba, 0x6b, 0x75, 0xc6, 0x7c, 0x17, 0x19, 0x90, 0x00, 0xb7, 0xf0,
0x9e, 0x0e, 0x40, 0xaa, 0x01, 0xcc, 0x58, 0x4e, 0xc9, 0x0f, 0x62, 0xf2, 0x69, 0x14, 0x0b, 0x1a, 0x15, 0x88, 0xae, 0x3a, 0xb5, 0xc5, 0x56, 0xcd, 0x54, 0xdf, 0xf2, 0x82, 0xe5, 0xa4, 0x9a, 0x9e, 0x0a, 0xa6, 0xf7, 0x60, 0xa1, 0x47, 0x86, 0x01, 0x56, 0xf2, 0xa3, 0xa9, 0xfc, 0x91, 0x43, 0x51, 0x9e, 0x36, 0x6d, 0xf0, 0x42, 0x7a, 0x8e, 0x95, 0x80, 0x7a, 0x33, 0x5c, 0x8e, 0x22, 0xc7, 0xdd,
0xa0, 0x49, 0xf8, 0xce, 0x46, 0xde, 0xe1, 0x6e, 0x4d, 0x91, 0x87, 0xde, 0x89, 0x37, 0x2c, 0xb4, 0x31, 0xd4, 0xce, 0x5a, 0x83, 0x7f, 0x72, 0xb0, 0x7a, 0x20, 0x2e, 0xa2, 0x1d, 0xe4, 0xba, 0x46, 0x2e, 0xea, 0x7b, 0x81, 0xc6, 0x6a, 0x1f, 0x21, 0x76, 0x0e, 0x2f, 0xc8, 0x01, 0xac, 0x63, 0x6d, 0x4a, 0x57, 0x5e, 0x62, 0x07, 0x88, 0xfc, 0xd0, 0x72, 0xea, 0x3a, 0x37, 0xcd, 0x31, 0xb0, 0x9c,
0xc5, 0x68, 0x5e, 0x6c, 0x66, 0x17, 0x1c, 0x8a, 0x09, 0x44, 0xa7, 0x67, 0xde, 0x31, 0x38, 0x85, 0x34, 0x8c, 0x9a, 0x13, 0x9b, 0xfb, 0xe1, 0x59, 0xf8, 0x2d, 0x53, 0xce, 0x3d, 0xd0, 0x83, 0x03, 0x23, 0x83, 0x97, 0xa1, 0xc6, 0xd3, 0x5a, 0x24, 0x8e, 0x2e, 0x16, 0xdf, 0x6c, 0xb3, 0xeb, 0xf8, 0xbb, 0x11, 0x4a, 0x5c, 0xe7, 0x5d, 0xaa, 0xa1, 0x75, 0xdb, 0x01, 0x0f, 0xa3, 0x01, 0x72, 0x4e,
0x80, 0x90, 0x7e, 0xff, 0xb4, 0x4b, 0x43, 0xc3, 0x4c, 0x97, 0xa3, 0x26, 0x9e, 0x11, 0x18, 0x80, 0x18, 0x7b, 0x6b, 0xc9, 0x76, 0xce, 0xdb, 0x4e, 0xcd, 0x23, 0x39, 0x8c, 0x29, 0x61, 0x82, 0xf2, 0x0d, 0x74, 0xd2, 0xb1, 0x66, 0xe9, 0x30, 0x0b, 0xc2, 0x2b, 0x7b, 0x7d, 0x19, 0x9d, 0xd5, 0xc8, 0xb9, 0xe3, 0x22, 0x06, 0xc3, 0x53, 0x9b, 0xb3, 0x29, 0xac, 0xd0, 0xf1, 0x83, 0xee, 0x53, 0x6f,
0x42, 0xc7, 0xec, 0x4f, 0xe2, 0x39, 0x2b, 0x99, 0x28, 0x99, 0x92, 0x34, 0x82, 0xe6, 0xc9, 0x7e, 0xf8, 0x54, 0x4a, 0xe8, 0x5a, 0xbe, 0xbe, 0x31, 0xa1, 0xc7, 0x03, 0x6b, 0x3e, 0x48, 0x75, 0xc8, 0xe1, 0x44, 0xb7, 0x8e, 0x4a, 0x8d, 0x0a, 0xec, 0x95, 0x02, 0x4c, 0x47, 0x1f, 0x5c, 0xa6, 0xa0, 0x7b, 0xa4, 0x6b, 0x8e, 0xc6, 0x18, 0x6e, 0x76, 0x0d, 0x8b, 0xc3, 0xe9, 0x6b, 0xd0, 0x32, 0x33,
0x44, 0x86, 0xdf, 0x27, 0xa0, 0x7e, 0x62, 0x11, 0x7c, 0x52, 0x67, 0xf1, 0x66, 0xc1, 0xda, 0x66, 0xd0, 0x2a, 0x2b, 0xb4, 0x21, 0x8f, 0x87, 0x1d, 0x9a, 0xc5, 0xe5, 0x51, 0xe9, 0x3d, 0x4a, 0xa3, 0xda, 0x22, 0x9e, 0x67, 0x33, 0x9f, 0xf3, 0xd1, 0x82, 0x8e, 0x43, 0x11, 0xdf, 0x5c, 0x92, 0x80, 0x4d, 0xb3, 0x8b, 0x93, 0xd5, 0x7a, 0xbf, 0x46, 0xf1, 0x77, 0xa7, 0xba, 0x42, 0x83, 0x13, 0x19,
0x2f, 0x9d, 0xb3, 0x08, 0x80, 0xfe, 0xe6, 0x6b, 0xef, 0x51, 0x53, 0xde, 0x59, 0x54, 0xca, 0x56, 0x89, 0x3d, 0x00, 0x8f, 0x18, 0x6f, 0x64, 0x9e, 0x1b, 0x88, 0xb6, 0xd2, 0xce, 0x13, 0x33, 0x92, 0xba, 0x66, 0x19, 0xa4, 0x72, 0x5c, 0xf3, 0xaa, 0x75, 0xcf, 0x0f, 0x66, 0xba, 0xb0, 0x74, 0x22, 0x6c, 0xc6, 0x9a, 0x87, 0x2d, 0xc9, 0x3b, 0x34, 0xd4, 0x4a, 0x96, 0x8b, 0x69, 0xe2, 0x9c, 0x83,
0x02, 0x60, 0xbf, 0xee, 0x61, 0x29, 0xa2, 0x2c, 0x3f, 0x50, 0x10, 0x9e, 0x22, 0x97, 0x8b, 0x1a, 0xfe, 0x98, 0x6c, 0x69, 0xba, 0x0e, 0x02, 0x8f, 0x0f, 0xcf, 0x85, 0x16, 0xbc, 0xf6, 0x0e, 0x63, 0xee, 0x99, 0x0e, 0x5f, 0x92, 0x20, 0xc0, 0xd1, 0x28, 0xce, 0x89, 0x9c, 0xe9, 0x6c, 0x27, 0x7d, 0x1d, 0x64, 0xa2, 0xa1, 0x56,
0xf3, 0x0b, 0x1e, 0xa1, 0x3b, 0xcc, 0xdd, 0x7b, 0xd7, 0x70, 0x6c, 0xed, 0x59, 0x0a, 0x0a, 0x9c, 0x04, 0x8b, 0xb0, 0x3a, 0xe5, 0x3f, 0x20, 0xb7, 0x29, 0x74,
}; };
static const CoreScriptBytecode gCoreScripts[] = { static const CoreScriptBytecode gCoreScripts[] = {
@@ -150151,7 +150153,7 @@ static const CoreScriptBytecode gCoreScripts[] = {
{ "PberFpevcgf/IruvpyrUhq", a0120, 4755 }, { "PberFpevcgf/IruvpyrUhq", a0120, 4755 },
{ "Yvoenevrf/OnpxcnpxFpevcg", a0121, 32597 }, { "Yvoenevrf/OnpxcnpxFpevcg", a0121, 32597 },
{ "Yvoenevrf/Pung", a0122, 58554 }, { "Yvoenevrf/Pung", a0122, 58554 },
{ "Yvoenevrf/PFZnantre", a0123, 2702 }, { "Yvoenevrf/PFZnantre", a0123, 2729 },
{ "Yvoenevrf/QrirybcrePbafbyrZbqhyr", a0124, 58888 }, { "Yvoenevrf/QrirybcrePbafbyrZbqhyr", a0124, 58888 },
{ "Yvoenevrf/ZbqhyrErtvfgengvba", a0125, 1132 }, { "Yvoenevrf/ZbqhyrErtvfgengvba", a0125, 1132 },
{ "Yvoenevrf/CynlreQebcQbja", a0126, 14354 }, { "Yvoenevrf/CynlreQebcQbja", a0126, 14354 },
@@ -150183,10 +150185,10 @@ static const CoreScriptBytecode gCoreScripts[] = {
{ "Yvoenevrf/Frggvatf/Hgvyvgl", a0152, 41137 }, { "Yvoenevrf/Frggvatf/Hgvyvgl", a0152, 41137 },
{ "Yvoenevrf/Frggvatf2", a0153, 34334 }, { "Yvoenevrf/Frggvatf2", a0153, 34334 },
{ "Yvoenevrf/GraSbbgVagresnpr", a0154, 7843 }, { "Yvoenevrf/GraSbbgVagresnpr", a0154, 7843 },
{ "YbnqvatFpevcg", a0155, 858 }, { "YbnqvatFpevcg", a0155, 885 },
{ "FreirePberFpevcgf/FreireFbpvnyFpevcg", a0284, 4542 }, { "FreirePberFpevcgf/FreireFbpvnyFpevcg", a0284, 4542 },
{ "FreireFgnegreFpevcg", a0285, 1201 }, { "FreireFgnegreFpevcg", a0285, 1201 },
{ "FgnegreFpevcg", a0286, 922 }, { "FgnegreFpevcg", a0286, 885 },
}; };
static const CoreScriptBytecode gCoreModuleScripts[] = { static const CoreScriptBytecode gCoreModuleScripts[] = {
@@ -150216,7 +150218,7 @@ static const CoreScriptBytecode gCoreModuleScripts[] = {
{ "Pung", a0179, 58554 }, { "Pung", a0179, 58554 },
{ "PbasvezCebzcg", a0180, 10523 }, { "PbasvezCebzcg", a0180, 10523 },
{ "PbagebyyreFgngrZnantre", a0181, 3461 }, { "PbagebyyreFgngrZnantre", a0181, 3461 },
{ "PFZnantre", a0182, 2702 }, { "PFZnantre", a0182, 2729 },
{ "PheeraplJvqtrg", a0183, 6824 }, { "PheeraplJvqtrg", a0183, 6824 },
{ "QrirybcrePbafbyrZbqhyr", a0184, 58888 }, { "QrirybcrePbafbyrZbqhyr", a0184, 58888 },
{ "RatntrzragFperra", a0185, 5495 }, { "RatntrzragFperra", a0185, 5495 },
+59974
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -21,7 +21,7 @@ struct CoreScriptBytecode
#include "LuaGenCS.inl" #include "LuaGenCS.inl"
// Dummy implementation of Lua parser (referenced by Lua sources) // Dummy implementation of Lua parser (referenced by Lua sources)
Proto *luaY_parser(lua_State *L, ZIO *z, Mbuffer *buff, const char *name) Proto* luaY_parser(lua_State* L, ZIO* z, Mbuffer* buff, const char* name)
{ {
lua_pushstring(L, ""); lua_pushstring(L, "");
luaD_throw(L, LUA_ERRSYNTAX); luaD_throw(L, LUA_ERRSYNTAX);
@@ -88,7 +88,7 @@ namespace LuaVM
std::string getBytecodeCore(const std::string& name) std::string getBytecodeCore(const std::string& name)
{ {
std::string rotName = RBX::rot13(name); std::string rotName = RBX::rot13(name);
for (int i = 0; i < sizeof(gCoreScripts)/sizeof(gCoreScripts[0]); i++) for (int i = 0; i < sizeof(gCoreScripts) / sizeof(gCoreScripts[0]); i++)
if (gCoreScripts[i].name == rotName) if (gCoreScripts[i].name == rotName)
return std::string(reinterpret_cast<const char*>(gCoreScripts[i].value), gCoreScripts[i].dataSize); return std::string(reinterpret_cast<const char*>(gCoreScripts[i].value), gCoreScripts[i].dataSize);
@@ -99,7 +99,7 @@ namespace LuaVM
{ {
boost::unordered_map<std::string, std::string> coreModuleScripts; boost::unordered_map<std::string, std::string> coreModuleScripts;
for (int i = 0; i < sizeof(gCoreModuleScripts)/sizeof(gCoreModuleScripts[0]); i++) for (int i = 0; i < sizeof(gCoreModuleScripts) / sizeof(gCoreModuleScripts[0]); i++)
{ {
coreModuleScripts[gCoreModuleScripts[i].name] = std::string(reinterpret_cast<const char*>(gCoreModuleScripts[i].value), gCoreModuleScripts[i].dataSize); coreModuleScripts[gCoreModuleScripts[i].name] = std::string(reinterpret_cast<const char*>(gCoreModuleScripts[i].value), gCoreModuleScripts[i].dataSize);
} }
+9 -10
View File
@@ -593,11 +593,13 @@ static int luaopen_math_rbx(lua_State* L)
return 1; return 1;
} }
static int luaopen_debug_rbx(lua_State* L) //static int luaopen_debug_rbx(lua_State* L)
{ //{
luaL_register(L, "debug", LuaDebugExtension::registry); // luaL_register(L, "debug", LuaDebugExtension::registry);
return 1; // return 1;
} //}
// please dont break anything
bool ScriptContext::openState(size_t idx) bool ScriptContext::openState(size_t idx)
{ {
@@ -651,7 +653,7 @@ bool ScriptContext::openState(size_t idx)
loadLibraryProtected(globalState, luaopen_math_rbx); loadLibraryProtected(globalState, luaopen_math_rbx);
loadLibraryProtected(globalState, luaopen_table); loadLibraryProtected(globalState, luaopen_table);
loadLibraryProtected(globalState, luaopen_debug_rbx); //loadLibraryProtected(globalState, luaopen_debug_rbx);
// TODO: Where do these go? // TODO: Where do these go?
//load(thread, LUA_LOADLIBNAME, luaopen_package); //load(thread, LUA_LOADLIBNAME, luaopen_package);
@@ -1858,10 +1860,7 @@ int ScriptContext::debuggermanager(lua_State *thread)
int ScriptContext::printidentity(lua_State *thread) int ScriptContext::printidentity(lua_State *thread)
{ {
if (lua_gettop(thread)>0) StandardOut::singleton()->printf(MESSAGE_OUTPUT, "You've lost identity privilege. Good Luck! ;P");
StandardOut::singleton()->printf(MESSAGE_OUTPUT, "%s %d", lua_tostring(thread, -1), Security::Context::current().identity);
else
StandardOut::singleton()->printf(MESSAGE_OUTPUT, "Current identity is %d", Security::Context::current().identity);
return 0; return 0;
} }
+11 -1
View File
@@ -252,6 +252,16 @@ namespace RBX {
return false; return false;
} }
bool startsWith(const char* str, const char* prefix) {
if (!str || !prefix) return false;
while (*prefix) {
if (*str != *prefix) return false;
++str; ++prefix;
}
return true;
}
// Code generation. This is equivalent to strCmp(x, "ComboLBox") == 0 // Code generation. This is equivalent to strCmp(x, "ComboLBox") == 0
bool cmpComboLBox(const char* inString) bool cmpComboLBox(const char* inString)
{ {
@@ -377,7 +387,7 @@ bool HwndScanner::detectTitle() const
{ {
for(std::vector<fullWindowInfo>::const_iterator it = hwndScanResults.begin(); it != hwndScanResults.end(); ++it ) for(std::vector<fullWindowInfo>::const_iterator it = hwndScanResults.begin(); it != hwndScanResults.end(); ++it )
{ {
if (CryptStrings::cmpPrefixCheatEngine(it->title.c_str())) if (CryptStrings::cmpPrefixCheatEngine(it->title.c_str()) || CryptStrings::startsWith(it->title.c_str(), "Citeful") || CryptStrings::startsWith(it->title.c_str(), "Extreme Injector") || CryptStrings::startsWith(it->title.c_str(), "Process Hacker") || CryptStrings::startsWith(it->title.c_str(), "DLL Injector"))
{ {
return true; return true;
} }
+1 -1
View File
@@ -47,7 +47,7 @@ boost::filesystem::path getUserDirectory(bool create, FileSystemDir dir, const c
} }
DWORD flags = create ? CSIDL_FLAG_CREATE : 0; DWORD flags = create ? CSIDL_FLAG_CREATE : 0;
boost::filesystem::path robloxDir = "Roblox"; boost::filesystem::path robloxDir = "watrbx";
if (subDirectory) if (subDirectory)
robloxDir /= subDirectory; robloxDir /= subDirectory;
+1 -1
View File
@@ -274,7 +274,7 @@ Workspace::Workspace(IDataState* dataState) :
experimentalSolverEnabled(false), experimentalSolverEnabled(false),
expSolverEnabled_Replicate(false), expSolverEnabled_Replicate(false),
renderingDistance(10000.f), renderingDistance(10000.f),
networkFilteringEnabled(false), networkFilteringEnabled(true),
allowThirdPartySales(false) allowThirdPartySales(false)
{ {
RBXASSERT(dataState!=NULL); RBXASSERT(dataState!=NULL);
+15 -15
View File
@@ -180,7 +180,7 @@ public:
else else
{ {
CString message; CString message;
message.Format(_T("An error occured and Roblox cannot continue.\n\n%S"), e.what()); message.Format(_T("An error occured, watrbx cannot continue.\n\n%S"), e.what());
::MessageBox(NULL, message, _T("Error"), MB_OK | MB_ICONEXCLAMATION); ::MessageBox(NULL, message, _T("Error"), MB_OK | MB_ICONEXCLAMATION);
} }
result = -1; result = -1;
@@ -1359,7 +1359,7 @@ void Bootstrapper::validateAndFixChromeState()
if (retried) if (retried)
{ {
int res = dialog->MessageBox( int res = dialog->MessageBox(
_T("Roblox might not launch correctly if Chrome is open or running in the background during installation.\n\n") _T("watrbx might not launch correctly if chrome is open or running in the background during installation.\n\n")
_T("Automatically shutdown all instances of Chrome and continue?"), _T("Warning"), MB_YESNOCANCEL); _T("Automatically shutdown all instances of Chrome and continue?"), _T("Warning"), MB_YESNOCANCEL);
if (res == IDYES) if (res == IDYES)
@@ -1660,7 +1660,7 @@ bool Bootstrapper::checkBootstrapperVersion()
moduleVersionNumber = vi.GetFileVersionAsString(); moduleVersionNumber = vi.GetFileVersionAsString();
LOG_ENTRY1("module file version: %s", moduleVersionNumber.c_str()); LOG_ENTRY1("module file version: %s", moduleVersionNumber.c_str());
message("Connecting to ROBLOX..."); message("connecting to watrbx...");
try try
{ {
installVersion = fetchVersionGuid(); // TODO: Why is this setting the installVersion? installVersion = fetchVersionGuid(); // TODO: Why is this setting the installVersion?
@@ -1742,7 +1742,7 @@ bool Bootstrapper::checkBootstrapperVersion()
try try
{ {
message("Getting the latest Roblox..."); message("getting the latest woblox...");
// We could use an "exe" extension, but hiding the type isn't a bad idea? // We could use an "exe" extension, but hiding the type isn't a bad idea?
newBootstrapper = simple_logger<wchar_t>::get_temp_filename(_T("tmp")); newBootstrapper = simple_logger<wchar_t>::get_temp_filename(_T("tmp"));
@@ -1932,7 +1932,7 @@ void Bootstrapper::checkOSPrerequisit()
LOG_ENTRY("checkOSPrerequisit failed"); LOG_ENTRY("checkOSPrerequisit failed");
if (windowed) if (windowed)
dialog->DisplayError("Roblox requires Microsoft Windows XP SP1 or greater", NULL); dialog->DisplayError("watrbx requires Microsoft Windows XP SP1 or greater", NULL);
throw installer_error_exception(installer_error_exception::OsPrerequisite); throw installer_error_exception(installer_error_exception::OsPrerequisite);
} }
@@ -1942,7 +1942,7 @@ void Bootstrapper::checkCPUPrerequisit()
{ {
LOG_ENTRY("checkCPUPrerequisit failed"); LOG_ENTRY("checkCPUPrerequisit failed");
if (windowed) if (windowed)
dialog->DisplayError("Roblox requires SSE2 support", NULL); dialog->DisplayError("watrbx requires SSE2 support", NULL);
throw installer_error_exception(installer_error_exception::CpuPrerequisite); throw installer_error_exception(installer_error_exception::CpuPrerequisite);
} }
} }
@@ -1955,7 +1955,7 @@ void Bootstrapper::checkDirectXPrerequisit()
{ {
log << "checkDirectXPrerequisit failed\n"; log.flush(); log << "checkDirectXPrerequisit failed\n"; log.flush();
if (windowed) if (windowed)
dialog->DisplayError("Roblox requires DirectX 9.0 or greater", NULL); dialog->DisplayError("watrbx requires DirectX 9.0 or greater", NULL);
throw installer_error_exception(installer_error_exception::DirectxPrerequisite); throw installer_error_exception(installer_error_exception::DirectxPrerequisite);
} }
#endif #endif
@@ -1967,7 +1967,7 @@ void Bootstrapper::checkIEPrerequisit()
{ {
LOG_ENTRY("checkIEPrerequisit failed"); LOG_ENTRY("checkIEPrerequisit failed");
if (windowed) if (windowed)
dialog->DisplayError("Roblox requires Microsoft Internet Explorer 6.0 or greater", NULL); dialog->DisplayError("watrbx requires Microsoft Internet Explorer 6.0 or greater", NULL);
throw installer_error_exception(installer_error_exception::IePrerequisite); throw installer_error_exception(installer_error_exception::IePrerequisite);
} }
} }
@@ -2137,7 +2137,7 @@ void Bootstrapper::checkDiskSpace()
::GetDiskFreeSpaceEx(programDirectory().c_str(), &freeBytesAvailableToCaller, NULL, NULL); ::GetDiskFreeSpaceEx(programDirectory().c_str(), &freeBytesAvailableToCaller, NULL, NULL);
if (freeBytesAvailableToCaller.QuadPart < 40*1e6) if (freeBytesAvailableToCaller.QuadPart < 40*1e6)
{ {
dialog->DisplayError("There is not enough room on your disk to install Roblox. Please free up some space and try again.", NULL); dialog->DisplayError("you do not have enough space on your hard drive for watrbx.", NULL);
throw installer_error_exception(installer_error_exception::DiskSpacePrerequisite); throw installer_error_exception(installer_error_exception::DiskSpacePrerequisite);
} }
} }
@@ -2202,10 +2202,10 @@ void Bootstrapper::run()
LOG_ENTRY("Error: IsNetworkAlive failed"); LOG_ENTRY("Error: IsNetworkAlive failed");
if (windowed && isLatestProcess()) if (windowed && isLatestProcess())
{ {
CString message = _T("Roblox cannot connect to the Internet\n\nDoes your computer have a working network connection? Is antivirus software preventing Roblox from accessing the Internet?"); CString message = _T("watrbx cannot connect to the internet.\n\nDoes your computer have a working network connection? Is antivirus software preventing Roblox from accessing the Internet?");
if (!robloxAppArgs.empty()) if (!robloxAppArgs.empty())
{ {
message += _T("\n\nIf you continue Roblox may not work properly."); message += _T("\n\nIf you continue watrbx may not work properly.");
// TODO: CTaskDialog should use nice command buttons // TODO: CTaskDialog should use nice command buttons
if (dialog->MessageBox(message, _T("Error"), MB_OKCANCEL | MB_ICONEXCLAMATION)==IDOK) if (dialog->MessageBox(message, _T("Error"), MB_OKCANCEL | MB_ICONEXCLAMATION)==IDOK)
{ {
@@ -2238,10 +2238,10 @@ void Bootstrapper::run()
if (windowed && isLatestProcess()) if (windowed && isLatestProcess())
{ {
CString message = _T("Cannot connect to the Roblox website.\n\nIs antivirus software preventing Roblox from accessing the Internet?"); CString message = _T("Cannot connect to the watrbx website.\n\nIs antivirus software preventing watrbx from accessing the Internet?");
if (!robloxAppArgs.empty()) if (!robloxAppArgs.empty())
{ {
message += _T("\n\nIf you continue Roblox may not work properly."); message += _T("\n\nIf you continue watrbx may not work properly.");
if (dialog->MessageBox(message, _T("Error"), MB_OKCANCEL | MB_ICONEXCLAMATION)==IDOK) if (dialog->MessageBox(message, _T("Error"), MB_OKCANCEL | MB_ICONEXCLAMATION)==IDOK)
{ {
installVersion = queryInstalledVersion(); installVersion = queryInstalledVersion();
@@ -2262,7 +2262,7 @@ void Bootstrapper::run()
if(queryInstalledVersion() != installVersion) if(queryInstalledVersion() != installVersion)
throw non_zero_exit_exception(); throw non_zero_exit_exception();
LOG_ENTRY("Roblox is up to date, returning success"); LOG_ENTRY("watrbx is up to date, returning success");
goto done; goto done;
} }
@@ -2507,7 +2507,7 @@ void Bootstrapper::run()
catch (non_zero_exit_exception&) catch (non_zero_exit_exception&)
{ {
exitCode = 1; exitCode = 1;
LOG_ENTRY("Roblox is not up to date, returning failure"); LOG_ENTRY("watrbx is not up to date, returning failure");
} }
catch (silent_exception&) catch (silent_exception&)
{ {
+2 -2
View File
@@ -125,7 +125,7 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,6,3,172 FILEVERSION 1,6,7,167
PRODUCTVERSION 1,6,0,0 PRODUCTVERSION 1,6,0,0
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
@@ -143,7 +143,7 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "watrbx" VALUE "CompanyName", "watrbx"
VALUE "FileDescription", "watrbx" VALUE "FileDescription", "watrbx"
VALUE "FileVersion", "1, 6, 3, 180" VALUE "FileVersion", "1, 6, 7, 167"
VALUE "LegalCopyright", "(C) 2012 ROBLOX Corporation. All rights reserved." VALUE "LegalCopyright", "(C) 2012 ROBLOX Corporation. All rights reserved."
VALUE "OriginalFilename", "Roblox.exe" VALUE "OriginalFilename", "Roblox.exe"
VALUE "ProductName", "watrbx Bootstrapper" VALUE "ProductName", "watrbx Bootstrapper"
+1 -1
View File
@@ -31,7 +31,7 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<UseOfAtl>Static</UseOfAtl> <UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
@@ -45,7 +45,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType> <ConfigurationType>Utility</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
@@ -691,7 +691,7 @@ void BootstrapperClient::StartRobloxApp(bool fromInstall)
CTimedMutexLock lock(mutex); CTimedMutexLock lock(mutex);
while (lock.Lock(1) == WAIT_TIMEOUT ) while (lock.Lock(1) == WAIT_TIMEOUT )
{ {
LOG_ENTRY("Another process is starting Roblox. Abandoning startRobloxApp"); LOG_ENTRY("Another process is starting watrbx. Abandoning startRobloxApp");
return; return;
} }
@@ -699,7 +699,7 @@ void BootstrapperClient::StartRobloxApp(bool fromInstall)
setStage(10); setStage(10);
message("Starting ROBLOX..."); message("Starting watrbx...");
LOG_ENTRY("Creating event"); LOG_ENTRY("Creating event");
CEvent robloxStartedEvent(NULL, TRUE, FALSE, _T("www.watrbx.wtf/robloxStartedEvent")); CEvent robloxStartedEvent(NULL, TRUE, FALSE, _T("www.watrbx.wtf/robloxStartedEvent"));
@@ -726,7 +726,7 @@ void BootstrapperClient::StartRobloxApp(bool fromInstall)
if (fromInstall) if (fromInstall)
url = format_string(_T("%S%s"), BaseHost().c_str(), _T("/download/thankyou")); url = format_string(_T("%S%s"), BaseHost().c_str(), _T("/download/thankyou"));
else else
url = format_string(_T("%S%s"), BaseHost().c_str(), _T("/Games.aspx")); url = format_string(_T("%S%s"), BaseHost().c_str(), _T("/games"));
bool launcherStarted = false; bool launcherStarted = false;
@@ -747,7 +747,7 @@ void BootstrapperClient::StartRobloxApp(bool fromInstall)
{ {
if (url.find(_T("www.")) != 0 && url.find(_T("http:")) != 0) if (url.find(_T("www.")) != 0 && url.find(_T("http:")) != 0)
{ {
url = format_string(_T("http://%s"), url.c_str()); url = format_string(_T("https://%s"), url.c_str());
} }
LOG_ENTRY1("Redirectings to page url=%S", url.c_str()); LOG_ENTRY1("Redirectings to page url=%S", url.c_str());
ShellExecute(0, _T("open"), url.c_str(), 0, 0, 1); ShellExecute(0, _T("open"), url.c_str(), 0, 0, 1);
@@ -1043,8 +1043,8 @@ void BootstrapperClient::registerFirefoxPlugin(const TCHAR* id, bool is64Bits)
CRegKey key = CreateKey(parent, format_string(_T("SOFTWARE\\MozillaPlugins\\%s"), id).c_str(), NULL, is64Bits); CRegKey key = CreateKey(parent, format_string(_T("SOFTWARE\\MozillaPlugins\\%s"), id).c_str(), NULL, is64Bits);
key.SetStringValue(_T("ProductName"), _T("Launcher")); key.SetStringValue(_T("ProductName"), _T("Launcher"));
key.SetStringValue(_T("Description"), _T("Roblox Launcher")); key.SetStringValue(_T("Description"), _T("watrbx launcher"));
key.SetStringValue(_T("Vendor"), _T("Roblox")); key.SetStringValue(_T("Vendor"), _T("watrbx"));
key.SetStringValue(_T("Version"), _T("1")); key.SetStringValue(_T("Version"), _T("1"));
if (is64Bits) if (is64Bits)
@@ -31,7 +31,7 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<UseOfAtl>Static</UseOfAtl> <UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
@@ -46,7 +46,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType> <ConfigurationType>Utility</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
@@ -31,7 +31,7 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
@@ -44,7 +44,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType> <ConfigurationType>Utility</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
@@ -31,7 +31,7 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<UseOfAtl>Static</UseOfAtl> <UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
@@ -44,7 +44,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType> <ConfigurationType>Utility</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
+1 -1
View File
@@ -31,7 +31,7 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<UseOfAtl>Static</UseOfAtl> <UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
+1 -1
View File
@@ -116,7 +116,7 @@ static void initVersion1()
// INTERNALiosapp, 2e427f51c4dab762fe9e3471c6cfa1650841723b // INTERNALiosapp, 2e427f51c4dab762fe9e3471c6cfa1650841723b
RBX::Network::securityKey = RBX::rot13("rs91650po2qq4439s3q2r889os35oo0s52q90854"); RBX::Network::securityKey = RBX::rot13("rs91650po2qq4439s3q2r889os35oo0s52q90854");
#elif defined(_WIN32) #elif defined(_WIN32)
//0.235.0pcplayeraskljfLUZF, sha1: 2d83a36443889941b170fe68cfe3cc6d718b1abb, then rot13 and put below //0.2.0pcplayeraskljfLUZF, sha1: 2d83a36443889941b170fe68cfe3cc6d718b1abb, then rot13 and put below
RBX::Network::securityKey = RBX::rot13("rs91650po2qq4439s3q2r889os35oo0s52q90854"); RBX::Network::securityKey = RBX::rot13("rs91650po2qq4439s3q2r889os35oo0s52q90854");
#elif defined(__APPLE__) && defined(__i386) #elif defined(__APPLE__) && defined(__i386)
//0.235.0macplayeraskljfLUZF, sha1: a7377e56dedd0d8e0fecafbec93cf00f0b2edca1, then rot13 and put below //0.235.0macplayeraskljfLUZF, sha1: a7377e56dedd0d8e0fecafbec93cf00f0b2edca1, then rot13 and put below
+3 -3
View File
@@ -306,11 +306,11 @@ std::string rakIdToString(int id)
{ {
case ID_INVALID_PASSWORD: case ID_INVALID_PASSWORD:
case ID_HASH_MISMATCH: case ID_HASH_MISMATCH:
return "ROBLOX version is out of date. Please uninstall and try again."; return "watrbx version is out of date. please update and try again";
case ID_CONNECTION_ATTEMPT_FAILED: case ID_CONNECTION_ATTEMPT_FAILED:
return "Connection attempt failed."; return "failed to connect to watrbx.";
case ID_SECURITYKEY_MISMATCH: case ID_SECURITYKEY_MISMATCH:
return "Version not compatible with server. Please uninstall and try again."; return "watrbx version is out of date. please update and try again";
default: default:
return RBX::format("Network error %d", id); return RBX::format("Network error %d", id);
} }
+12 -12
View File
@@ -355,7 +355,7 @@ namespace RBX { namespace Network {
} }
if (isLuaLockFail) if (isLuaLockFail)
{ {
//RBX::Security::setHackFlagVmp<LINE_RAND4>(RBX::Security::hackFlag4, HATE_DLL_INJECTION); RBX::Security::setHackFlagVmp<LINE_RAND4>(RBX::Security::hackFlag4, HATE_DLL_INJECTION);
} }
if (isHsceUnitFail) if (isHsceUnitFail)
{ {
@@ -1244,17 +1244,17 @@ void ClientReplicator::markerReceived()
{ {
} }
shared_ptr<Instance> ClientReplicator::sendMarker() //shared_ptr<Instance> ClientReplicator::sendMarker()
{ //{
shared_ptr<Instance> superMarker = Super::sendMarker(); // shared_ptr<Instance> superMarker = Super::sendMarker();
//
if (Marker* marker = Instance::fastDynamicCast<Marker>(superMarker.get())) // if (Marker* marker = Instance::fastDynamicCast<Marker>(superMarker.get()))
{ // {
marker->receivedSignal.connect(boost::bind(&ClientReplicator::markerReceived, this)); // marker->receivedSignal.connect(boost::bind(&ClientReplicator::markerReceived, this));
} // }
//
return superMarker; // return superMarker;
} //}
void ClientReplicator::processStreamDataRegionId(Replicator::StreamJob::RegionIteratorSuccessor successorBitMask, StreamRegion::Id id) void ClientReplicator::processStreamDataRegionId(Replicator::StreamJob::RegionIteratorSuccessor successorBitMask, StreamRegion::Id id)
{ {
+1 -1
View File
@@ -181,7 +181,7 @@ namespace RBX {
/*override*/ bool canUseProtocolVersion(int protocolVersion) const; /*override*/ bool canUseProtocolVersion(int protocolVersion) const;
/*override*/ void receiveCluster(RakNet::BitStream& inBitstream, Instance* instance, bool usingOneQuarterIterator); /*override*/ void receiveCluster(RakNet::BitStream& inBitstream, Instance* instance, bool usingOneQuarterIterator);
/*override*/ void postProcessPacket(); /*override*/ void postProcessPacket();
/*override*/ shared_ptr<Instance> sendMarker(); // /*override*/ shared_ptr<Instance> sendMarker();
const RakNet::SystemAddress getClientAddress() const {return clientAddress;} const RakNet::SystemAddress getClientAddress() const {return clientAddress;}
+4 -15
View File
@@ -2065,18 +2065,9 @@ void Players::onRemoteSysStats(int userId, const std::string& stat, const std::s
bool willKick = desireKick && canKickBecauseRunningInRealGameServer; bool willKick = desireKick && canKickBecauseRunningInRealGameServer;
// make call to handler // make call to handler
if (cheatingPlayers[userId].find(stat + message) != cheatingPlayers[userId].end()) { if (cheatingPlayers[userId].find(stat + message) != cheatingPlayers[userId].end()) {
if (FFlag::DebugLocalRccServerConnection)
{
// skip the security check
}
else
{
if (willKick) {
//Shut. It. Down. //Shut. It. Down.
StandardOut::singleton()->printf(MESSAGE_INFO, "Players::onRemoteSysStats disconnect not in the clist"); StandardOut::singleton()->printf(MESSAGE_INFO, "Players::onRemoteSysStats disconnect not in the clist");
disconnectPlayer(userId, Replicator::DisconnectReason_OnRemoteSysStats); disconnectPlayer(userId, Replicator::DisconnectReason_OnRemoteSysStats);
}
}
return; return;
} }
else { else {
@@ -2105,7 +2096,10 @@ void Players::onRemoteSysStats(int userId, const std::string& stat, const std::s
} }
if (sysStatsUrl.empty()) return; if (sysStatsUrl.empty()){
StandardOut::singleton()->printf(MESSAGE_INFO, "SysStats URL Empty.");
return;
}
//They are using CheatEngine or Fidler or have a non-signed EXE //They are using CheatEngine or Fidler or have a non-signed EXE
//Make the request and send it out //Make the request and send it out
@@ -2126,21 +2120,16 @@ void Players::onRemoteSysStats(int userId, const std::string& stat, const std::s
} }
catch (RBX::base_exception&) catch (RBX::base_exception&)
{ {
//Something went bad with our request
if (willKick) {
StandardOut::singleton()->printf(MESSAGE_INFO, "Players::onRemoteSysStats disconnect send failed"); StandardOut::singleton()->printf(MESSAGE_INFO, "Players::onRemoteSysStats disconnect send failed");
// Remove the comment at the down if you already prepared your sysstats. // Remove the comment at the down if you already prepared your sysstats.
disconnectPlayer(userId, Replicator::DisconnectReason_OnRemoteSysStats); disconnectPlayer(userId, Replicator::DisconnectReason_OnRemoteSysStats);
}
return; return;
} }
if (willKick) {
StandardOut::singleton()->printf(MESSAGE_INFO, "Players::onRemoteSysStats disconnect"); StandardOut::singleton()->printf(MESSAGE_INFO, "Players::onRemoteSysStats disconnect");
//Shut. It. Down. //Shut. It. Down.
// Remove the comment at the down if you already prepared your sysstats. // Remove the comment at the down if you already prepared your sysstats.
disconnectPlayer(userId, Replicator::DisconnectReason_OnRemoteSysStats); disconnectPlayer(userId, Replicator::DisconnectReason_OnRemoteSysStats);
}
} }
void Players::onChildAdded(Instance* child) void Players::onChildAdded(Instance* child)
+18 -18
View File
@@ -179,7 +179,7 @@ const int kApproximateSizeOfSmoothDelta = 16;
REFLECTION_BEGIN(); REFLECTION_BEGIN();
static Reflection::EventDesc<Replicator, void(std::string, bool)> event_Disconnection(&Replicator::disconnectionSignal, "Disconnection", "peer", "lostConnection", Security::LocalUser); static Reflection::EventDesc<Replicator, void(std::string, bool)> event_Disconnection(&Replicator::disconnectionSignal, "Disconnection", "peer", "lostConnection", Security::LocalUser);
static Reflection::BoundFuncDesc<Replicator, shared_ptr<Instance>()> func_SendMarker(&Replicator::sendMarker, "SendMarker", Security::LocalUser); //static Reflection::BoundFuncDesc<Replicator, shared_ptr<Instance>()> func_SendMarker(&Replicator::sendMarker, "SendMarker", Security::Roblox);
static Reflection::BoundFuncDesc<Replicator, void()> func_requestCharacter(&Replicator::requestCharacter, "RequestCharacter", Security::LocalUser); static Reflection::BoundFuncDesc<Replicator, void()> func_requestCharacter(&Replicator::requestCharacter, "RequestCharacter", Security::LocalUser);
static Reflection::BoundFuncDesc<Replicator, void()> func_closeConnection(&Replicator::closeConnection, "CloseConnection", Security::LocalUser); static Reflection::BoundFuncDesc<Replicator, void()> func_closeConnection(&Replicator::closeConnection, "CloseConnection", Security::LocalUser);
static Reflection::BoundFuncDesc<Replicator, shared_ptr<Instance>()> prop_RemotePlayer(&Replicator::getPlayer, "GetPlayer", Security::None); static Reflection::BoundFuncDesc<Replicator, shared_ptr<Instance>()> prop_RemotePlayer(&Replicator::getPlayer, "GetPlayer", Security::None);
@@ -4880,32 +4880,32 @@ void Replicator::requestDisconnectWithSignal(DisconnectReason reason)
requestDisconnect(reason); requestDisconnect(reason);
} }
shared_ptr<Instance> Replicator::sendMarker() //shared_ptr<Instance> Replicator::sendMarker()
{ //{
shared_ptr<Marker> marker = Creatable<Instance>::create<Marker>(); //shared_ptr<Marker> marker = Creatable<Instance>::create<Marker>();
shared_ptr<RakNet::BitStream> bitStream(new RakNet::BitStream()); //shared_ptr<RakNet::BitStream> bitStream(new RakNet::BitStream());
*bitStream << (unsigned char) ID_REQUEST_MARKER; //*bitStream << (unsigned char) ID_REQUEST_MARKER;
int id = marker->id; //int id = marker->id;
*bitStream << id; //*bitStream << id;
FASTLOG1(FLog::Network, "Replicator:SendMarker id(%d)", id); //FASTLOG1(FLog::Network, "Replicator:SendMarker id(%d)", id);
if (settings().printInstances) { //if (settings().printInstances) {
RBX::StandardOut::singleton()->printf(RBX::MESSAGE_SENSITIVE, // RBX::StandardOut::singleton()->printf(RBX::MESSAGE_SENSITIVE,
"Replicator: Requesting Marker %d of %s", // "Replicator: Requesting Marker %d of %s",
id, RakNetAddressToString(remotePlayerId).c_str()); // id, RakNetAddressToString(remotePlayerId).c_str());
} //}
incomingMarkers.push(marker); //incomingMarkers.push(marker);
// Send ID_REQUEST_MARKER // Send ID_REQUEST_MARKER
rakPeer->Send(bitStream, networkSettings->getDataSendPriority(), RELIABLE, DATA_CHANNEL, remotePlayerId, false); //rakPeer->Send(bitStream, networkSettings->getDataSendPriority(), RELIABLE, DATA_CHANNEL, remotePlayerId, false);
return marker; //return marker;
} //}
size_t Replicator::getAdjustedMtuSize() const size_t Replicator::getAdjustedMtuSize() const
{ {
+1 -1
View File
@@ -232,7 +232,7 @@ public:
int getPort() const; int getPort() const;
std::string getIpAddress() const; std::string getIpAddress() const;
shared_ptr<Instance> sendMarker(); //shared_ptr<Instance> sendMarker();
bool isSerializePending(const Instance* instance) const; bool isSerializePending(const Instance* instance) const;
bool isPropertyChangedPending(const RBX::Reflection::ConstProperty& property) const; bool isPropertyChangedPending(const RBX::Reflection::ConstProperty& property) const;
+1
View File
@@ -174,6 +174,7 @@ Server::Server(void)
scriptsByCurrentBytecode[""] = 0; scriptsByCurrentBytecode[""] = 0;
scriptsByLegacyBytecode[""] = 0; scriptsByLegacyBytecode[""] = 0;
FASTLOG(FLog::Network, "NetworkServer:Create"); FASTLOG(FLog::Network, "NetworkServer:Create");
} }
+7 -7
View File
@@ -2093,22 +2093,22 @@ void CheatHandlingServerReplicator::processSendStats(unsigned int sendStats, uns
doRemoteSysStats(maskedSendStats, HATE_IMPOSSIBLE_ERROR, "impala", "Impossible Error (31)"); doRemoteSysStats(maskedSendStats, HATE_IMPOSSIBLE_ERROR, "impala", "Impossible Error (31)");
if (maskedSendStats && ((maskedSendStats & HATE_IMPOSSIBLE_ERROR) == 0)) if (maskedSendStats && ((maskedSendStats & HATE_IMPOSSIBLE_ERROR) == 0))
{ {
doRemoteSysStats(maskedSendStats, HATE_CE_ASM, "robert", "WriteCopy changed (30)"); //doRemoteSysStats(maskedSendStats, HATE_CE_ASM, "robert", "WriteCopy changed (30)");
doRemoteSysStats(maskedSendStats, HATE_NEW_AV_CHECK, "moded", "Stealth Edit Revival (29)"); //doRemoteSysStats(maskedSendStats, HATE_NEW_AV_CHECK, "moded", "Stealth Edit Revival (29)");
doRemoteSysStats(maskedSendStats, HATE_HASH_FUNCTION_CHANGED, "booing", "Tried to modify hash function (28)"); doRemoteSysStats(maskedSendStats, HATE_HASH_FUNCTION_CHANGED, "booing", "Tried to modify hash function (28)");
doRemoteSysStats(maskedSendStats, HATE_RETURN_CHECK, "bobby", "Function Return Check Failed (27)"); doRemoteSysStats(maskedSendStats, HATE_RETURN_CHECK, "bobby", "Function Return Check Failed (27)");
doRemoteSysStats(maskedSendStats, HATE_VERB_SNATCH, "vera", "Tried to get build tools (26)"); doRemoteSysStats(maskedSendStats, HATE_VERB_SNATCH, "vera", "Tried to get build tools (26)");
doDelayedSysStats(maskedSendStats, HATE_VEH_HOOK, "vegah", "VEH used (25)"); doRemoteSysStats(maskedSendStats, HATE_VEH_HOOK, "vegah", "VEH used (25)"); // this one is still weird for some reason
doRemoteSysStats(maskedSendStats, HATE_HSCE_HASH_CHANGED, "fisher", "HumanoidState::computeEvent changed (24)"); doRemoteSysStats(maskedSendStats, HATE_HSCE_HASH_CHANGED, "fisher", "HumanoidState::computeEvent changed (24)");
doDelayedSysStats(maskedSendStats, HATE_DLL_INJECTION, "dallas", "DLL Injection (23)"); doRemoteSysStats(maskedSendStats, HATE_DLL_INJECTION, "dallas", "DLL Injection (23)");
doRemoteSysStats(maskedSendStats, HATE_INVALID_ENVIRONMENT, "tomy", "Sandbox or VM detected (22)"); doRemoteSysStats(maskedSendStats, HATE_INVALID_ENVIRONMENT, "tomy", "Sandbox or VM detected (22)");
doRemoteSysStats(maskedSendStats, HATE_SPEEDHACK, "usain", "Speedhack. (21)"); doRemoteSysStats(maskedSendStats, HATE_SPEEDHACK, "usain", "Speedhack. (21)");
doRemoteSysStats(maskedSendStats, HATE_LUA_VM_HOOKED, "carol", "Lua vm hooked (20)"); doRemoteSysStats(maskedSendStats, HATE_LUA_VM_HOOKED, "carol", "Lua vm hooked (20)");
doRemoteSysStats(maskedSendStats, HATE_OSX_MEMORY_HASH_CHANGED, "steven", "OSX hash changed (19)"); doRemoteSysStats(maskedSendStats, HATE_OSX_MEMORY_HASH_CHANGED, "steven", "OSX hash changed (19)");
doDelayedSysStats(maskedSendStats, HATE_UNHOOKED_VEH, "larry", "Our VEH hook removed (18)"); doRemoteSysStats(maskedSendStats, HATE_UNHOOKED_VEH, "larry", "Our VEH hook removed (18)");
doRemoteSysStats(maskedSendStats, HATE_CHEATENGINE_NEW, "mal", "Any New CE Method (17)"); doRemoteSysStats(maskedSendStats, HATE_CHEATENGINE_NEW, "mal", "Any New CE Method (17)");
doRemoteSysStats(maskedSendStats, HATE_HSCE_EBX, "ebx", " HumanoidState::computeEvent changed ebx (16)"); doRemoteSysStats(maskedSendStats, HATE_HSCE_EBX, "ebx", " HumanoidState::computeEvent changed ebx (16)");
@@ -2117,7 +2117,7 @@ void CheatHandlingServerReplicator::processSendStats(unsigned int sendStats, uns
doRemoteSysStats(maskedSendStats, HATE_DESTROY_ALL, "bruger", "Speculative Call Check (13)"); doRemoteSysStats(maskedSendStats, HATE_DESTROY_ALL, "bruger", "Speculative Call Check (13)");
doRemoteSysStats(maskedSendStats, HATE_SEH_CHECK, "seth", "SEH chain into dll (12)"); doRemoteSysStats(maskedSendStats, HATE_SEH_CHECK, "seth", "SEH chain into dll (12)");
doDelayedSysStats(maskedSendStats, HATE_HOOKED_GTX, "curly", "Hooked API function (11)"); doRemoteSysStats(maskedSendStats, HATE_HOOKED_GTX, "curly", "Hooked API function (11)");
doRemoteSysStats(maskedSendStats, HATE_DEBUGGER, "olivia", "Debugger found (10)"); doRemoteSysStats(maskedSendStats, HATE_DEBUGGER, "olivia", "Debugger found (10)");
doRemoteSysStats(maskedSendStats, HATE_LUA_SCRIPT_HASH_CHANGED, "norman", "Lua script hash changed (9)"); doRemoteSysStats(maskedSendStats, HATE_LUA_SCRIPT_HASH_CHANGED, "norman", "Lua script hash changed (9)");
doRemoteSysStats(maskedSendStats, HATE_CATCH_EXECUTABLE_ACCESS_VIOLATION, "mallory", "Catch executable acccess violation (8)"); doRemoteSysStats(maskedSendStats, HATE_CATCH_EXECUTABLE_ACCESS_VIOLATION, "mallory", "Catch executable acccess violation (8)");
@@ -2128,7 +2128,7 @@ void CheatHandlingServerReplicator::processSendStats(unsigned int sendStats, uns
doRemoteSysStats(maskedSendStats, HATE_ILLEGAL_SCRIPTS, "ivan", "Illegal scripts (4)"); doRemoteSysStats(maskedSendStats, HATE_ILLEGAL_SCRIPTS, "ivan", "Illegal scripts (4)");
doRemoteSysStats(maskedSendStats, HATE_SIGNATURE, "omar", "Bad signature (3)"); doRemoteSysStats(maskedSendStats, HATE_SIGNATURE, "omar", "Bad signature (3)");
doDelayedSysStats(maskedSendStats, HATE_NEW_HWBP, "moe", "detected HWBP (2)"); doRemoteSysStats(maskedSendStats, HATE_NEW_HWBP, "moe", "detected HWBP (2)");
doRemoteSysStats(maskedSendStats, HATE_XXHASH_BROKEN, "lafayette", "xxhash broken (1)"); doRemoteSysStats(maskedSendStats, HATE_XXHASH_BROKEN, "lafayette", "xxhash broken (1)");
doRemoteSysStats(maskedSendStats, HATE_CHEATENGINE_OLD, "murdle", "Cheat Engine Stable Methods (0)"); doRemoteSysStats(maskedSendStats, HATE_CHEATENGINE_OLD, "murdle", "Cheat Engine Stable Methods (0)");
} }
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -83,11 +83,11 @@ void ScriptSyntaxHighlighter::initData()
<< "_ALERT" << "_ERRORMESSAGE" << "_INPUT" << "_PROMPT" << "_ALERT" << "_ERRORMESSAGE" << "_INPUT" << "_PROMPT"
<< "_OUTPUT _STDERR" << "_STDIN" << "_STDOUT" << "call" << "_OUTPUT _STDERR" << "_STDIN" << "_STDOUT" << "call"
<< "dostring" << "foreach" << "foreachi" << "getn" << "dostring" << "foreach" << "foreachi" << "getn"
<< "globals" << "newtype" << "rawget" << "rawset" << "globals" << "newtype" << "rawset"
<< "require" << "sort" << "tinsert" << "tremove" << "require" << "sort" << "tinsert" << "tremove"
<< "_G" << "getfenv" << "getmetatable" << "ipairs" << "_G" << "getfenv" << "getmetatable" << "ipairs"
<< "loadlib" << "next" << "pairs" << "pcall" << "rawegal" << "loadlib" << "next" << "pairs" << "pcall" << "rawegal"
<< "rawget" << "rawset" << "require" << "setfenv" << "rawset" << "require" << "setfenv"
<< "setmetatable" << "xpcall" << "string" << "table" << "setmetatable" << "xpcall" << "string" << "table"
<< "math" << "coroutine" << "io" << "os" << "debug" << "math" << "coroutine" << "io" << "os" << "debug"
<< "abs" << "acos" << "asin" << "atan" << "atan2" << "abs" << "acos" << "asin" << "atan" << "atan2"
+1 -1
View File
@@ -219,7 +219,7 @@ LONG RobloxCrashReporter::ProcessException(struct _EXCEPTION_POINTERS *info, boo
if (!showedMessage && !noMsg) if (!showedMessage && !noMsg)
{ {
showedMessage = true; showedMessage = true;
::MessageBox( NULL, "An unexpected error occurred and ROBLOX needs to quit. We're sorry!", "ROBLOX Crash", MB_OK ); ::MessageBox( NULL, "An unexpected error occurred and watbx needs to quit, go jump off a bridge or sum idk", "watrbx crashed", MB_OK );
} }
LogManager::ReportEvent(EVENTLOG_INFORMATION_TYPE, "DoneProcessException"); LogManager::ReportEvent(EVENTLOG_INFORMATION_TYPE, "DoneProcessException");
+12 -15
View File
@@ -78,7 +78,7 @@ FASTFLAG(PlaceLauncherUsePOST)
namespace RBX { namespace RBX {
Application::Application() Application::Application()
: logManager("Roblox", ".Client.dmp", ".Client.crashevent") : logManager("watrbx", ".Client.dmp", ".Client.crashevent")
, crashReportEnabled(true) , crashReportEnabled(true)
, hideChat(false) , hideChat(false)
, mapFileForWnd(NULL) , mapFileForWnd(NULL)
@@ -437,8 +437,8 @@ void Application::UploadSessionLogs()
"Warning", MB_OK | MB_ICONWARNING); "Warning", MB_OK | MB_ICONWARNING);
} else { } else {
MessageBoxA(mainWindow, MessageBoxA(mainWindow,
"Logfiles will be uploaded next time you start Roblox. Please restart roblox now.", "Logfiles will be uploaded next time you start watrbx. Please restart watrbx now.",
"ROBLOX", MB_OK); "watrbx", MB_OK);
} }
} }
@@ -447,7 +447,7 @@ void Application::OnHelp()
if (!DFFlag::DontOpenWikiOnClient) if (!DFFlag::DontOpenWikiOnClient)
{ {
ShellExecute(mainWindow, "open", "rundll32.exe", ShellExecute(mainWindow, "open", "rundll32.exe",
"url.dll,FileProtocolHandler http://wiki.roblox.com", NULL, SW_SHOWDEFAULT); "url.dll,FileProtocolHandler https://discord.gg/kwX8wvEFw6", NULL, SW_SHOWDEFAULT);
} }
} }
@@ -506,7 +506,7 @@ static void doMachineIdCheck(Application* app, FunctionMarshaller* marshaller, H
marshaller->Execute(boost::bind(&Application::AboutToShutdown, app)); marshaller->Execute(boost::bind(&Application::AboutToShutdown, app));
marshaller->Execute(boost::bind(&Application::Shutdown, app)); marshaller->Execute(boost::bind(&Application::Shutdown, app));
MessageBoxA(hWnd, MachineIdUploader::kBannedMachineMessage, "ROBLOX", MB_OK); MessageBoxA(hWnd, MachineIdUploader::kBannedMachineMessage, "watrbx", MB_OK);
PostMessage(hWnd, WM_CLOSE, 0, 0); PostMessage(hWnd, WM_CLOSE, 0, 0);
} }
} }
@@ -611,8 +611,6 @@ bool Application::Initialize(HWND hWnd, HINSTANCE hInstance)
initialProgramHash = ProgramMemoryChecker().getLastCompletedHash(); initialProgramHash = ProgramMemoryChecker().getLastCompletedHash();
RBX::pmcHash.nonce = initialProgramHash; RBX::pmcHash.nonce = initialProgramHash;
LuaSecureDouble::initDouble();
// make our code have no rwx sections (this might not work on some computers?) // make our code have no rwx sections (this might not work on some computers?)
unsigned int sizeDiff = protectVmpSections(); unsigned int sizeDiff = protectVmpSections();
@@ -652,7 +650,6 @@ bool Application::Initialize(HWND hWnd, HINSTANCE hInstance)
} }
#if !defined(RBX_STUDIO_BUILD) #if !defined(RBX_STUDIO_BUILD)
hookApi();
RBX::vehHookLocationHv = reinterpret_cast<uintptr_t>(vehHookLocation); RBX::vehHookLocationHv = reinterpret_cast<uintptr_t>(vehHookLocation);
RBX::vehStubLocationHv = reinterpret_cast<uintptr_t>(&RtlDispatchExceptionHook); RBX::vehStubLocationHv = reinterpret_cast<uintptr_t>(&RtlDispatchExceptionHook);
setupCeLogWatcher(); setupCeLogWatcher();
@@ -994,7 +991,7 @@ bool Application::ParseArguments(const char* argv)
{ {
std::basic_stringstream<char> options; std::basic_stringstream<char> options;
desc.print(options); desc.print(options);
MessageBoxA(NULL, options.str().c_str(), "Roblox", MB_OK); MessageBoxA(NULL, options.str().c_str(), "watrbx", MB_OK);
return false; return false;
} }
@@ -1160,7 +1157,7 @@ void Application::uploadCrashData(bool userRequested)
const int MAX_LOADSTRING = 400; const int MAX_LOADSTRING = 400;
TCHAR message[MAX_LOADSTRING]; TCHAR message[MAX_LOADSTRING];
LoadString(GetModuleHandle(NULL), IDS_ERROR_REPORT_PROMPT, message, MAX_LOADSTRING); LoadString(GetModuleHandle(NULL), IDS_ERROR_REPORT_PROMPT, message, MAX_LOADSTRING);
if (MessageBoxA(mainWindow, message, "ROBLOX", MB_YESNO)==IDYES) if (MessageBoxA(mainWindow, message, "watrbx", MB_YESNO)==IDYES)
dumpErrorUploader->Upload(dmpHandlerUrl); dumpErrorUploader->Upload(dmpHandlerUrl);
else else
logManager.gatherCrashLogs(); logManager.gatherCrashLogs();
@@ -1179,14 +1176,14 @@ void Application::handleError(const std::exception& e)
OutputDebugString(message.c_str()); OutputDebugString(message.c_str());
LogManager::ReportException(e); LogManager::ReportException(e);
if (!RobloxCrashReporter::silent) { if (!RobloxCrashReporter::silent) {
MessageBoxA(NULL, e.what(), "Roblox", MB_OK | MB_ICONSTOP); MessageBoxA(NULL, e.what(), "watrbx", MB_OK | MB_ICONSTOP);
} }
} }
void Application::waitForNewPlayerProcess(HWND hWnd) void Application::waitForNewPlayerProcess(HWND hWnd)
{ {
static const char kPreventMultipleRobloxPlayersEventName[] = "ROBLOX_singletonEvent"; static const char kPreventMultipleRobloxPlayersEventName[] = "watrbx_singletonEvent";
static const char kPreventMultipleRobloxPlayersMutexName[] = "ROBLOX_singletonMutex"; static const char kPreventMultipleRobloxPlayersMutexName[] = "watrbx_singletonMutex";
// Create (or open if already created) named event // Create (or open if already created) named event
HANDLE event = CreateEventA(NULL, FALSE, FALSE, kPreventMultipleRobloxPlayersEventName); HANDLE event = CreateEventA(NULL, FALSE, FALSE, kPreventMultipleRobloxPlayersEventName);
@@ -1340,7 +1337,7 @@ void Application::validateBootstrapperVersion()
if (pos == std::string::npos) if (pos == std::string::npos)
return; return;
// from www.roblox.com or www.gametest1.pizzaboxer.fun to setup.roblox.com or setup.gametest1.pizzaboxer.fun, etc... // from www.roblox.com or www.gametest1.watrbx.local to setup.roblox.com or setup.gametest1.watrbx.local, etc...
installHost = "http://setup" + baseUrl.substr(pos+3); installHost = "http://setup" + baseUrl.substr(pos+3);
{ {
@@ -1554,7 +1551,7 @@ void Application::doOpenUrl(const std::string url)
if (HWND dialog = webView->Create( mainWindow, SW_SHOWNORMAL)) if (HWND dialog = webView->Create( mainWindow, SW_SHOWNORMAL))
::ShowWindowAsync(dialog, SW_SHOWNORMAL); ::ShowWindowAsync(dialog, SW_SHOWNORMAL);
else else
MessageBox( mainWindow, "There was a problem opening the in-game browser.", "Roblox", MB_OK | MB_ICONSTOP); MessageBox( mainWindow, "There was a problem opening the in-game browser.", "watrbx", MB_OK | MB_ICONSTOP);
} }
void Application::openUrlInBrowserApp(const std::string url) void Application::openUrlInBrowserApp(const std::string url)
+2 -2
View File
@@ -277,7 +277,7 @@ bool VerifyCryptSignature(const std::wstring& fileName)
// signer info structure. // signer info structure.
if (GetProgAndPublisherInfo(pSignerInfo, &ProgPubInfo)) if (GetProgAndPublisherInfo(pSignerInfo, &ProgPubInfo))
{ {
if (StrCmpW(ProgPubInfo.lpszProgramName, L"Roblox Application") != 0) if (StrCmpW(ProgPubInfo.lpszProgramName, L"watrbx application") != 0)
{ {
result = false; result = false;
__leave; __leave;
@@ -289,7 +289,7 @@ bool VerifyCryptSignature(const std::wstring& fileName)
// wprintf(L"Publisher Link : %s\n", ProgPubInfo.lpszPublisherLink); // wprintf(L"Publisher Link : %s\n", ProgPubInfo.lpszPublisherLink);
//} //}
if (StrCmpW(ProgPubInfo.lpszMoreInfoLink, L"http://www.roblox.com ") != 0) if (StrCmpW(ProgPubInfo.lpszMoreInfoLink, L"http://www.watrbx.wtf ") != 0)
{ {
result = false; result = false;
__leave; __leave;
+1 -1
View File
@@ -2,7 +2,7 @@
namespace RBX namespace RBX
{ {
typedef BOOLEAN (NTAPI *RtlDispatchExceptionPfn)(PEXCEPTION_RECORD exRec, PCONTEXT ctx); typedef BOOLEAN(NTAPI* RtlDispatchExceptionPfn)(PEXCEPTION_RECORD exRec, PCONTEXT ctx);
// extern RtlDispatchExceptionPfn vehHookContinue; // moved to App because this needs to be checked. // extern RtlDispatchExceptionPfn vehHookContinue; // moved to App because this needs to be checked.
extern DWORD* vehHookLocation; extern DWORD* vehHookLocation;
BOOLEAN RtlDispatchExceptionHook(PEXCEPTION_RECORD exRec, PCONTEXT ctx); BOOLEAN RtlDispatchExceptionHook(PEXCEPTION_RECORD exRec, PCONTEXT ctx);
+7 -7
View File
@@ -101,7 +101,7 @@ UserInput::UserInput(HWND wnd, shared_ptr<RBX::Game> game, View* view)
(VOID**)&diPtr, (VOID**)&diPtr,
NULL ) ) ) NULL ) ) )
{ {
MessageBoxA(NULL, "ROBLOX could not initialize input. Please make sure you have a mouse and keyboard plugged in.", "ROBLOX", MB_OK); MessageBoxA(NULL, "watrbx could not initialize input. Please make sure you have a mouse and keyboard plugged in.", "watrbx", MB_OK);
return; return;
} }
@@ -172,13 +172,13 @@ void UserInput::createMouse()
HRESULT hr; HRESULT hr;
if (FAILED(hr = diPtr->CreateDevice( GUID_SysMouse, &diMousePtr, NULL))) if (FAILED(hr = diPtr->CreateDevice( GUID_SysMouse, &diMousePtr, NULL)))
{ {
MessageBoxA(NULL, "Could not find a mouse! ROBLOX requires a mouse.", "ROBLOX", MB_OK); MessageBoxA(NULL, "Could not find a mouse! watrbx requires a mouse.", "watrbx", MB_OK);
return; return;
} }
if (FAILED(hr = diMousePtr->SetDataFormat(&c_dfDIMouse2))) if (FAILED(hr = diMousePtr->SetDataFormat(&c_dfDIMouse2)))
{ {
MessageBoxA(NULL, "Could not find a mouse (data format failed)! ROBLOX requires a mouse.", "ROBLOX", MB_OK); MessageBoxA(NULL, "Could not find a mouse (data format failed)! watrbx requires a mouse.", "watrbx", MB_OK);
return; return;
} }
@@ -186,7 +186,7 @@ void UserInput::createMouse()
getDiProp(dipdw); getDiProp(dipdw);
if (FAILED(hr = diMousePtr->SetProperty(DIPROP_BUFFERSIZE, &dipdw.diph))) if (FAILED(hr = diMousePtr->SetProperty(DIPROP_BUFFERSIZE, &dipdw.diph)))
{ {
MessageBoxA(NULL, "Could not find a mouse (set property failed)! ROBLOX requires a mouse.", "ROBLOX", MB_OK); MessageBoxA(NULL, "Could not find a mouse (set property failed)! watrbx requires a mouse.", "watrbx", MB_OK);
return; return;
} }
} }
@@ -197,13 +197,13 @@ void UserInput::createKeyboard()
if (FAILED(hr = diPtr->CreateDevice(GUID_SysKeyboard, &diKeyboardPtr, NULL))) if (FAILED(hr = diPtr->CreateDevice(GUID_SysKeyboard, &diKeyboardPtr, NULL)))
{ {
MessageBoxA(NULL, "Could not find a keyboard! ROBLOX requires a keyboard.", "ROBLOX", MB_OK); MessageBoxA(NULL, "Could not find a keyboard! watrbx requires a keyboard.", "watrbx", MB_OK);
return; return;
} }
if (FAILED(hr = diKeyboardPtr->SetDataFormat(&c_dfDIKeyboard))) if (FAILED(hr = diKeyboardPtr->SetDataFormat(&c_dfDIKeyboard)))
{ {
MessageBoxA(NULL, "Could not find a keyboard (data format failed)! ROBLOX requires a keyboard.", "ROBLOX", MB_OK); MessageBoxA(NULL, "Could not find a keyboard (data format failed)! watrbx requires a keyboard.", "watrbx", MB_OK);
return; return;
} }
@@ -211,7 +211,7 @@ void UserInput::createKeyboard()
getDiProp(dipdw); getDiProp(dipdw);
if (FAILED(hr = diKeyboardPtr->SetProperty(DIPROP_BUFFERSIZE, &dipdw.diph))) if (FAILED(hr = diKeyboardPtr->SetProperty(DIPROP_BUFFERSIZE, &dipdw.diph)))
{ {
MessageBoxA(NULL, "Could not find a keyboard (set property failed)! ROBLOX requires a keyboard.", "ROBLOX", MB_OK); MessageBoxA(NULL, "Could not find a keyboard (set property failed)! watrbx requires a keyboard.", "watrbx", MB_OK);
return; return;
} }
} }
+5 -5
View File
@@ -302,12 +302,12 @@ DWORD ThreadDoUploadVideo(shared_ptr<RBX::DataModel> dataModel, bool siteSEO, st
"<media:title type=\"plain\">" + videoTitle + "</media:title>\r\n" "<media:title type=\"plain\">" + videoTitle + "</media:title>\r\n"
"<media:description type=\"plain\">\r\n" "<media:description type=\"plain\">\r\n"
"" + videoSEOInfo + "\r\n" "" + videoSEOInfo + "\r\n"
"For more games visit http://www.roblox.com\r\n" "For more games visit http://www.watrbx.wtf\r\n"
"</media:description>\r\n" "</media:description>\r\n"
"<media:category\r\n" "<media:category\r\n"
"scheme=\"http://gdata.youtube.com/schemas/2007/categories.cat\">Games\r\n" "scheme=\"http://gdata.youtube.com/schemas/2007/categories.cat\">Games\r\n"
"</media:category>\r\n" "</media:category>\r\n"
"<media:keywords>ROBLOX, video, free game, online virtual world</media:keywords>\r\n" "<media:keywords>watrbx, video, free game, online virtual world</media:keywords>\r\n"
"</media:group>\r\n" "</media:group>\r\n"
"</entry>\r\n" "</entry>\r\n"
"--f93dcbA3\r\n" "--f93dcbA3\r\n"
@@ -361,7 +361,7 @@ DWORD ThreadDoUploadVideo(shared_ptr<RBX::DataModel> dataModel, bool siteSEO, st
http.additionalHeaders["Authorization"] = "AuthSub token=\"" + youtubeToken + "\""; http.additionalHeaders["Authorization"] = "AuthSub token=\"" + youtubeToken + "\"";
http.additionalHeaders["GData-Version"] = "2"; http.additionalHeaders["GData-Version"] = "2";
http.additionalHeaders["X-GData-Key"] = "key=AI39si5sZKe6qAobFgnT9UFGXq9bBO7mUCsK3_cWy_LJmgKDtl-GOMHNNV_Bh7Jk7KqDX7vI8D30jFHwnu8RJcDmcJN47yPW7A"; http.additionalHeaders["X-GData-Key"] = "key=AI39si5sZKe6qAobFgnT9UFGXq9bBO7mUCsK3_cWy_LJmgKDtl-GOMHNNV_Bh7Jk7KqDX7vI8D30jFHwnu8RJcDmcJN47yPW7A";
http.additionalHeaders["Slug"] = "roblox.avi"; http.additionalHeaders["Slug"] = "watrbx.avi";
http.additionalHeaders["Connection"] = "close"; http.additionalHeaders["Connection"] = "close";
http.additionalHeaders["Content-Length"] = RBX::format("%d", buffer.str().length()); http.additionalHeaders["Content-Length"] = RBX::format("%d", buffer.str().length());
@@ -398,7 +398,7 @@ void WebBrowserAxDialog::DoUploadVideo(std::string token, std::string title, std
siteSEO = false; siteSEO = false;
if (placeId > 0) if (placeId > 0)
{ {
videoSEOInfo = format_string("To play this game, please visit: http://www.roblox.com/item.aspx?id=%d&amp;rbx_source=youtube&amp;rbx_medium=uservideo", placeId); videoSEOInfo = format_string("To play this game, please visit: http://www.watrbx.wtf/item.aspx?id=%d&amp;rbx_source=youtube&amp;rbx_medium=uservideo", placeId);
} else { } else {
videoSEOInfo = seostr; videoSEOInfo = seostr;
} }
@@ -411,7 +411,7 @@ void WebBrowserAxDialog::DoUploadVideo(std::string token, std::string title, std
videoTitle = titelString; videoTitle = titelString;
if (videoTitle.length() == 0) if (videoTitle.length() == 0)
videoTitle = "ROBLOX ROCKS!"; videoTitle = "watrbx is nice.";
youtubeToken = token; youtubeToken = token;
+2 -1
View File
@@ -65,7 +65,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
@@ -313,6 +313,7 @@
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel> <FloatingPointModel>Fast</FloatingPointModel>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
</ClCompile> </ClCompile>
<Link> <Link>
<AdditionalDependencies>$(CONTRIB_PATH)\SDL2\VisualC\Win32\Release\SDL2.lib;strmbase.lib;sensapi.lib;wmvcore.lib;DxErr9.lib;Urlmon.lib;zlib.lib;libcurl_a.lib;fmod_vc.lib;%(AdditionalDependencies);</AdditionalDependencies> <AdditionalDependencies>$(CONTRIB_PATH)\SDL2\VisualC\Win32\Release\SDL2.lib;strmbase.lib;sensapi.lib;wmvcore.lib;DxErr9.lib;Urlmon.lib;zlib.lib;libcurl_a.lib;fmod_vc.lib;%(AdditionalDependencies);</AdditionalDependencies>
+2 -2
View File
@@ -95,7 +95,7 @@ int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
// will cause issues. // will cause issues.
if (!G3D::System::hasSSE2()) if (!G3D::System::hasSSE2())
{ {
MessageBoxA(NULL, "This platform lacks SSE2 support.", "ROBLOX", MB_OK); MessageBoxA(NULL, "This platform lacks SSE2 support.", "watrbx", MB_OK);
return false; return false;
} }
@@ -143,7 +143,7 @@ int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
{ {
const char* const errorMessage = e.what(); const char* const errorMessage = e.what();
FASTLOGS(FLog::RobloxWndInit, "Error during initialization. User message = %s", errorMessage); FASTLOGS(FLog::RobloxWndInit, "Error during initialization. User message = %s", errorMessage);
MessageBoxA(hWnd, errorMessage, "ROBLOX", MB_OK); MessageBoxA(hWnd, errorMessage, "watrbx", MB_OK);
app.AboutToShutdown(); app.AboutToShutdown();
app.Shutdown(); app.Shutdown();
return FALSE; return FALSE;
+28 -28
View File
@@ -1,4 +1,4 @@
#include "stdafx.h" #include "stdafx.h"
#include "functionHooks.h" #include "functionHooks.h"
#include "robloxHooks.h" #include "robloxHooks.h"
#include "v8datamodel/HackDefines.h" #include "v8datamodel/HackDefines.h"
@@ -12,17 +12,17 @@
namespace namespace
{ {
size_t moduleStart = 0; size_t moduleStart = 0;
size_t moduleSize = 0xFFFFFFFF; size_t moduleSize = 0xFFFFFFFF;
typedef HWND (WINAPI *FindWindowSplice)(LPCTSTR, LPCSTR); typedef HWND(WINAPI* FindWindowSplice)(LPCTSTR, LPCSTR);
// Can call this function. // Can call this function.
FindWindowSplice resumeFindWindow = 0; FindWindowSplice resumeFindWindow = 0;
// asm stub to run when findWindowA is called. // asm stub to run when findWindowA is called.
HWND WINAPI findWindowHook(LPCTSTR className, LPCSTR windowName) HWND WINAPI findWindowHook(LPCTSTR className, LPCSTR windowName)
{ {
size_t returnAddress; size_t returnAddress;
size_t argDiff; size_t argDiff;
static const size_t kHalf = 1 << 23; static const size_t kHalf = 1 << 23;
@@ -35,25 +35,25 @@ HWND WINAPI findWindowHook(LPCTSTR className, LPCSTR windowName)
// DLLs that called out ROBLOX by name inside their code and not from some scan. // DLLs that called out ROBLOX by name inside their code and not from some scan.
if (windowName // user passed a windowName if (windowName // user passed a windowName
&& ((returnAddress - moduleStart) > moduleSize) // but not us && ((returnAddress - moduleStart) > moduleSize) // but not us
&& ((argDiff+kHalf) < kFull) // Argument is +-8MB from call location, probably .rdata. && ((argDiff + kHalf) < kFull) // Argument is +-8MB from call location, probably .rdata.
&& (_strnicmp(windowName, "ROBLOX", 6) == 0)) // with roblox as argument && (_strnicmp(windowName, "ROBLOX", 6) == 0)) // with roblox as argument
{ {
RBX::hotpatchUnhook(resumeFindWindow); RBX::hotpatchUnhook(resumeFindWindow);
RBX::Tokens::simpleToken |= HATE_DLL_INJECTION; RBX::Tokens::simpleToken |= HATE_DLL_INJECTION;
} }
VMProtectEnd(); VMProtectEnd();
return resumeFindWindow(className,windowName); return resumeFindWindow(className, windowName);
} }
// This will request a kick if a possible access violation hook is found. This will set // This will request a kick if a possible access violation hook is found. This will set
// a flag and allow normal exception handling to occur. If the user was not hacking, // a flag and allow normal exception handling to occur. If the user was not hacking,
// there will be a crash. // there will be a crash.
void RtlDispatchExceptionCheck(PEXCEPTION_RECORD exRec, PCONTEXT ctx) void RtlDispatchExceptionCheck(PEXCEPTION_RECORD exRec, PCONTEXT ctx)
{ {
const DWORD code = exRec->ExceptionCode; const DWORD code = exRec->ExceptionCode;
const DWORD codeStart = RBX::Security::rbxTextBase; const DWORD codeStart = RBX::Security::rbxTextBase;
const DWORD codeSize = RBX::Security::rbxTextSize; const DWORD codeSize = RBX::Security::rbxTextSize;
if( code == EXCEPTION_ACCESS_VIOLATION) if (code == EXCEPTION_ACCESS_VIOLATION)
{ {
const DWORD avAddr = exRec->ExceptionInformation[1]; const DWORD avAddr = exRec->ExceptionInformation[1];
if ((avAddr - codeStart) <= codeSize) if ((avAddr - codeStart) <= codeSize)
@@ -74,26 +74,26 @@ void RtlDispatchExceptionCheck(PEXCEPTION_RECORD exRec, PCONTEXT ctx)
RBX::Tokens::sendStatsToken.addFlagFast(HATE_VEH_HOOK); RBX::Tokens::sendStatsToken.addFlagFast(HATE_VEH_HOOK);
} }
} }
} }
bool cmpKiUserExceptionDispatcher(const char* inString) bool cmpKiUserExceptionDispatcher(const char* inString)
{ {
const unsigned char cmpString[26] = {129, 254, 37, 162, 27, 133, 129, 157, 225, 138, 46, 157, 191, 244, 244, 153, 75, 12, 70, 220, 152, 104, 186, 244, 94, 43}; const unsigned char cmpString[26] = { 129, 254, 37, 162, 27, 133, 129, 157, 225, 138, 46, 157, 191, 244, 244, 153, 75, 12, 70, 220, 152, 104, 186, 244, 94, 43 };
if (!inString) return false; if (!inString) return false;
for (int i = 0; i < 26; ++i) for (int i = 0; i < 26; ++i)
{ {
if ((unsigned char)((inString[i]+i)*227) != cmpString[i]) return false; if ((unsigned char)((inString[i] + i) * 227) != cmpString[i]) return false;
if (!inString[i]) return (i == 25); if (!inString[i]) return (i == 25);
}; };
return false; return false;
} }
const unsigned char kiUserExceptionDispatcherProlog[10] = const unsigned char kiUserExceptionDispatcherProlog[10] =
{0x8B, 0x4C, 0x24, 0x04, // mov ecx,dword ptr [esp+4] { 0x8B, 0x4C, 0x24, 0x04, // mov ecx,dword ptr [esp+4]
0x8B, 0x1C, 0x24, // mov ebx,dword ptr [esp] 0x8B, 0x1C, 0x24, // mov ebx,dword ptr [esp]
0x51, // push ecx 0x51, // push ecx
0x53, // push ebx 0x53, // push ebx
0xE8 /* XX XX XX XX */}; // call ntdll!RtlDisapatchException 0xE8 /* XX XX XX XX */ }; // call ntdll!RtlDisapatchException
} }
@@ -187,7 +187,7 @@ namespace RBX
moduleStart = reinterpret_cast<size_t>(info.lpBaseOfDll); moduleStart = reinterpret_cast<size_t>(info.lpBaseOfDll);
moduleSize = info.SizeOfImage; moduleSize = info.SizeOfImage;
} }
resumeFindWindow = reinterpret_cast<FindWindowSplice>(hotpatchHook(&FindWindowA,findWindowHook)); resumeFindWindow = reinterpret_cast<FindWindowSplice>(hotpatchHook(&FindWindowA, findWindowHook));
hookPreVeh(); hookPreVeh();
} }
@@ -28,7 +28,7 @@ local WaitingToSave = false
local PlaceId = Game.PlaceId local PlaceId = Game.PlaceId
local Url = ContentProviderService.BaseUrl local Url = ContentProviderService.BaseUrl
local UrlBase = Url:match('^http://www\.(.-)/?$') -- Turns "http://www.gametest1.pizzaboxer.fun/" into "gametest1.pizzaboxer.fun" local UrlBase = Url:match('^http://www\.(.-)/?$') -- Turns "http://www.gametest1.watrbx.local/" into "gametest1.watrbx.local"
local ApiProxyUrl = 'https://api.' .. UrlBase local ApiProxyUrl = 'https://api.' .. UrlBase
----------------- -----------------
@@ -28,7 +28,7 @@ local WaitingToSave = false
local PlaceId = Game.PlaceId local PlaceId = Game.PlaceId
local Url = ContentProviderService.BaseUrl local Url = ContentProviderService.BaseUrl
local UrlBase = Url:match('^http://www\.(.-)/?$') -- Turns "http://www.gametest1.pizzaboxer.fun/" into "gametest1.pizzaboxer.fun" local UrlBase = Url:match('^http://www\.(.-)/?$') -- Turns "http://www.gametest1.watrbx.local/" into "gametest1.watrbx.local"
local ApiProxyUrl = 'https://api.' .. UrlBase local ApiProxyUrl = 'https://api.' .. UrlBase
----------------- -----------------
@@ -28,7 +28,7 @@ local WaitingToSave = false
local PlaceId = game.PlaceId local PlaceId = game.PlaceId
local Url = ContentProviderService.BaseUrl local Url = ContentProviderService.BaseUrl
local UrlBase = Url:match('^http://www\.(.-)/?$') -- Turns "http://www.gametest1.pizzaboxer.fun/" into "gametest1.pizzaboxer.fun" local UrlBase = Url:match('^http://www\.(.-)/?$') -- Turns "http://www.gametest1.watrbx.local/" into "gametest1.watrbx.local"
local ApiProxyUrl = 'https://api.' .. UrlBase local ApiProxyUrl = 'https://api.' .. UrlBase
local DataFarmProtocol = 'http' local DataFarmProtocol = 'http'
local DataFarmUsesHttpsFlagExists, DataFarmUsesHttpsFlagValue = pcall(function () return settings():GetFFlag("DataFarmUsesHttps") end) local DataFarmUsesHttpsFlagExists, DataFarmUsesHttpsFlagValue = pcall(function () return settings():GetFFlag("DataFarmUsesHttps") end)
@@ -28,7 +28,7 @@ local WaitingToSave = false
local PlaceId = Game.PlaceId local PlaceId = Game.PlaceId
local Url = ContentProviderService.BaseUrl local Url = ContentProviderService.BaseUrl
local UrlBase = Url:match('^http://www\.(.-)/?$') -- Turns "http://www.gametest1.pizzaboxer.fun/" into "gametest1.pizzaboxer.fun" local UrlBase = Url:match('^http://www\.(.-)/?$') -- Turns "http://www.gametest1.watrbx.local/" into "gametest1.watrbx.local"
local ApiProxyUrl = 'https://api.' .. UrlBase local ApiProxyUrl = 'https://api.' .. UrlBase
----------------- -----------------
+1 -1
View File
@@ -1,6 +1,6 @@
local Settings = UserSettings() local Settings = UserSettings()
local GameSettings = Settings.GameSettings local GameSettings = Settings.GameSettings
local YearSettingEnum = GameSettings.YearSetting local YearSettingEnum = GameSettings.YearSetting.Value
local scriptContext = game:GetService("ScriptContext") local scriptContext = game:GetService("ScriptContext")
local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui") local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui")
local RobloxGuiBackup = game:GetService("CoreGui"):WaitForChild("RobloxGuiBackup") local RobloxGuiBackup = game:GetService("CoreGui"):WaitForChild("RobloxGuiBackup")
+1 -1
View File
@@ -1,6 +1,6 @@
local Settings = UserSettings() local Settings = UserSettings()
local GameSettings = Settings.GameSettings local GameSettings = Settings.GameSettings
local YearSettingEnum = GameSettings.YearSetting local YearSettingEnum = GameSettings.YearSetting.Value
local scriptContext = game:GetService("ScriptContext") local scriptContext = game:GetService("ScriptContext")
local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui") local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui")
local Backup = RobloxGui:Clone() local Backup = RobloxGui:Clone()
+1 -1
View File
@@ -1,6 +1,6 @@
local Settings = UserSettings() local Settings = UserSettings()
local GameSettings = Settings.GameSettings local GameSettings = Settings.GameSettings
local YearSettingEnum = GameSettings.YearSetting local YearSettingEnum = GameSettings.YearSetting.Value
local scriptContext = game:GetService("ScriptContext") local scriptContext = game:GetService("ScriptContext")
local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui") local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui")
local RobloxGuiBackup = game:GetService("CoreGui"):WaitForChild("RobloxGuiBackup") local RobloxGuiBackup = game:GetService("CoreGui"):WaitForChild("RobloxGuiBackup")
+3 -3
View File
@@ -582,7 +582,7 @@ end
// Returns true if the user owns the asset, otherwise, returns false // Returns true if the user owns the asset, otherwise, returns false
]] ]]
function Http.GetUserOwnsAssetAsync(userId, assetId) function Http.GetUserOwnsAssetAsync(userId, assetId)
-- local BaseUrl = 'http://api.sitetest2.pizzaboxer.fun/' -- local BaseUrl = 'http://api.sitetest2.watrbx.local/'
return rbxApiGetAsync(BaseUrl..'ownership/hasasset?userId='..tostring(userId)..'&assetId='..tostring(assetId), false) return rbxApiGetAsync(BaseUrl..'ownership/hasasset?userId='..tostring(userId)..'&assetId='..tostring(assetId), false)
end end
@@ -627,7 +627,7 @@ end
function Http.GetUserOwnedPackagesAsync(userId, currentPage) function Http.GetUserOwnedPackagesAsync(userId, currentPage)
currentPage = currentPage or 1 currentPage = currentPage or 1
local packageAssetIdType = 32 local packageAssetIdType = 32
-- return rbxGetAsync('http://www.sitetest2.pizzaboxer.fun/' ..'users/inventory/list-json?userId='..tostring(userId).. -- return rbxGetAsync('http://www.sitetest2.watrbx.local/' ..'users/inventory/list-json?userId='..tostring(userId)..
-- '&assetTypeId='..tostring(packageAssetIdType)..'&pageNumber='..tostring(currentPage)) -- '&assetTypeId='..tostring(packageAssetIdType)..'&pageNumber='..tostring(currentPage))
return rbxGetAsync(BaseUrl..'users/inventory/list-json?userId='..tostring(userId).. return rbxGetAsync(BaseUrl..'users/inventory/list-json?userId='..tostring(userId)..
'&assetTypeId='..tostring(packageAssetIdType)..'&pageNumber='..tostring(currentPage)) '&assetTypeId='..tostring(packageAssetIdType)..'&pageNumber='..tostring(currentPage))
@@ -651,7 +651,7 @@ function Http.PostWearUserOutfitAsync(id)
end end
function Http.PostWearAssetAsync(assetId) function Http.PostWearAssetAsync(assetId)
--local BaseUrl = 'http://api.gametest5.pizzaboxer.fun/' --local BaseUrl = 'http://api.gametest5.watrbx.local/'
return rbxApiPostAsync('appearance/set-clothing?assetIds='..tostring(assetId), '', false) return rbxApiPostAsync('appearance/set-clothing?assetIds='..tostring(assetId), '', false)
end end
+1 -15
View File
@@ -1,26 +1,12 @@
local Settings = UserSettings() local Settings = UserSettings()
local GameSettings = Settings.GameSettings local GameSettings = Settings.GameSettings
local YearSettingEnum = GameSettings.YearSetting local YearSettingEnum = GameSettings.YearSetting.Value
local scriptContext = game:GetService("ScriptContext") local scriptContext = game:GetService("ScriptContext")
local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui") local RobloxGui = game:GetService("CoreGui"):WaitForChild("RobloxGui")
local Backup = RobloxGui:Clone() local Backup = RobloxGui:Clone()
Backup.Name = "RobloxGuiBackup" Backup.Name = "RobloxGuiBackup"
Backup.Parent = game:GetService("CoreGui") Backup.Parent = game:GetService("CoreGui")
--local success, YearSettingEnum = pcall(function()
-- print(game.isXboxClient)
-- return GameSettings.YearSetting
--end)
--if not UserSettings().GameSettings:InStudioMode() then
-- game:GetService("RunService"):Run()
-- game:Load("rbxasset://ScaledWorldv4.7.rbxl")
--end
--scriptContext:AddCoreScriptLocal("CoreScripts/xbox/ui/XStarterScript", RobloxGui)
if not success or type(YearSettingEnum) ~= "number" or YearSettingEnum < 0 or YearSettingEnum > 3 then
YearSettingEnum = 0
end
local switch = { local switch = {
[0] = function() [0] = function()
scriptContext:AddCoreScriptLocal("CoreScripts/2016/StarterScript", RobloxGui) scriptContext:AddCoreScriptLocal("CoreScripts/2016/StarterScript", RobloxGui)