summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/audio_core/hle/source.cpp49
-rw-r--r--src/audio_core/interpolate.cpp86
-rw-r--r--src/audio_core/interpolate.h27
-rw-r--r--src/citra/CMakeLists.txt2
-rw-r--r--src/citra/citra.cpp2
-rw-r--r--src/citra/citra.rc8
-rw-r--r--src/citra/config.cpp13
-rw-r--r--src/citra/default_ini.h29
-rw-r--r--src/citra/emu_window/emu_window_sdl2.cpp14
-rw-r--r--src/citra/emu_window/emu_window_sdl2.h4
-rw-r--r--src/citra_qt/CMakeLists.txt12
-rw-r--r--src/citra_qt/bootmanager.cpp13
-rw-r--r--src/citra_qt/bootmanager.h4
-rw-r--r--src/citra_qt/citra-qt.rc12
-rw-r--r--src/citra_qt/configuration/config.cpp31
-rw-r--r--src/citra_qt/configuration/configure.ui15
-rw-r--r--src/citra_qt/configuration/configure_dialog.cpp1
-rw-r--r--src/citra_qt/configuration/configure_general.cpp9
-rw-r--r--src/citra_qt/configuration/configure_general.ui28
-rw-r--r--src/citra_qt/configuration/configure_graphics.ui11
-rw-r--r--src/citra_qt/configuration/configure_web.cpp52
-rw-r--r--src/citra_qt/configuration/configure_web.h30
-rw-r--r--src/citra_qt/configuration/configure_web.ui153
-rw-r--r--src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp41
-rw-r--r--src/citra_qt/main.cpp69
-rw-r--r--src/citra_qt/main.h3
-rw-r--r--src/citra_qt/ui_settings.h9
-rw-r--r--src/common/logging/backend.cpp4
-rw-r--r--src/common/logging/log.h2
-rw-r--r--src/common/quaternion.h5
-rw-r--r--src/common/scm_rev.cpp.in2
-rw-r--r--src/common/scm_rev.h1
-rw-r--r--src/common/vector_math.h7
-rw-r--r--src/core/CMakeLists.txt11
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic.cpp2
-rw-r--r--src/core/arm/dyncom/arm_dyncom_interpreter.cpp8
-rw-r--r--src/core/arm/skyeye_common/armstate.h2
-rw-r--r--src/core/core.cpp15
-rw-r--r--src/core/core.h9
-rw-r--r--src/core/file_sys/archive_backend.cpp2
-rw-r--r--src/core/file_sys/archive_sdmc.cpp41
-rw-r--r--src/core/file_sys/savedata_archive.cpp41
-rw-r--r--src/core/frontend/emu_window.cpp97
-rw-r--r--src/core/frontend/emu_window.h114
-rw-r--r--src/core/frontend/framebuffer_layout.cpp36
-rw-r--r--src/core/frontend/framebuffer_layout.h11
-rw-r--r--src/core/frontend/input.h25
-rw-r--r--src/core/frontend/motion_emu.cpp89
-rw-r--r--src/core/frontend/motion_emu.h52
-rw-r--r--src/core/hle/applets/erreula.cpp4
-rw-r--r--src/core/hle/applets/mii_selector.cpp10
-rw-r--r--src/core/hle/applets/mii_selector.h57
-rw-r--r--src/core/hle/applets/mint.cpp4
-rw-r--r--src/core/hle/applets/swkbd.cpp4
-rw-r--r--src/core/hle/kernel/kernel.h5
-rw-r--r--src/core/hle/kernel/shared_memory.cpp2
-rw-r--r--src/core/hle/kernel/thread.cpp6
-rw-r--r--src/core/hle/lock.cpp11
-rw-r--r--src/core/hle/lock.h18
-rw-r--r--src/core/hle/romfs.cpp102
-rw-r--r--src/core/hle/romfs.h22
-rw-r--r--src/core/hle/service/apt/apt.cpp517
-rw-r--r--src/core/hle/service/apt/apt.h10
-rw-r--r--src/core/hle/service/apt/bcfnt/bcfnt.cpp6
-rw-r--r--src/core/hle/service/boss/boss_p.cpp3
-rw-r--r--src/core/hle/service/cfg/cfg.cpp2
-rw-r--r--src/core/hle/service/dlp/dlp_clnt.cpp21
-rw-r--r--src/core/hle/service/dlp/dlp_fkcl.cpp18
-rw-r--r--src/core/hle/service/dlp/dlp_srvr.cpp9
-rw-r--r--src/core/hle/service/dsp_dsp.cpp7
-rw-r--r--src/core/hle/service/frd/frd.cpp43
-rw-r--r--src/core/hle/service/frd/frd.h13
-rw-r--r--src/core/hle/service/frd/frd_u.cpp2
-rw-r--r--src/core/hle/service/gsp_gpu.cpp11
-rw-r--r--src/core/hle/service/hid/hid.cpp44
-rw-r--r--src/core/hle/service/hid/hid.h2
-rw-r--r--src/core/hle/service/ir/ir_rst.cpp2
-rw-r--r--src/core/hle/service/y2r_u.cpp4
-rw-r--r--src/core/hle/svc.cpp8
-rw-r--r--src/core/hw/gpu.cpp2
-rw-r--r--src/core/hw/gpu.h4
-rw-r--r--src/core/loader/loader.h9
-rw-r--r--src/core/loader/ncch.cpp34
-rw-r--r--src/core/loader/ncch.h14
-rw-r--r--src/core/memory.cpp162
-rw-r--r--src/core/memory.h34
-rw-r--r--src/core/settings.cpp2
-rw-r--r--src/core/settings.h13
-rw-r--r--src/core/telemetry_session.cpp156
-rw-r--r--src/core/telemetry_session.h12
-rw-r--r--src/input_common/CMakeLists.txt2
-rw-r--r--src/input_common/main.cpp15
-rw-r--r--src/input_common/main.h7
-rw-r--r--src/input_common/motion_emu.cpp168
-rw-r--r--src/input_common/motion_emu.h46
-rw-r--r--src/input_common/sdl/sdl.cpp2
-rw-r--r--src/network/CMakeLists.txt18
-rw-r--r--src/network/network.cpp50
-rw-r--r--src/network/network.h25
-rw-r--r--src/network/packet.cpp263
-rw-r--r--src/network/packet.h166
-rw-r--r--src/network/room.cpp497
-rw-r--r--src/network/room.h101
-rw-r--r--src/network/room_member.cpp490
-rw-r--r--src/network/room_member.h182
-rw-r--r--src/tests/CMakeLists.txt3
-rw-r--r--src/tests/core/arm/arm_test_common.cpp123
-rw-r--r--src/tests/core/arm/arm_test_common.h84
-rw-r--r--src/tests/core/arm/dyncom/arm_dyncom_vfp_tests.cpp50
-rw-r--r--src/tests/core/arm/dyncom/vfp_vadd_f32.inc13456
-rw-r--r--src/video_core/CMakeLists.txt2
-rw-r--r--src/video_core/command_processor.cpp62
-rw-r--r--src/video_core/pica_state.h2
-rw-r--r--src/video_core/regs_framebuffer.h10
-rw-r--r--src/video_core/regs_pipeline.h9
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp68
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.h5
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.cpp9
-rw-r--r--src/video_core/renderer_opengl/gl_shader_gen.cpp48
-rw-r--r--src/video_core/renderer_opengl/gl_state.cpp63
-rw-r--r--src/video_core/renderer_opengl/gl_state.h13
-rw-r--r--src/video_core/renderer_opengl/pica_to_gl.h7
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp15
-rw-r--r--src/video_core/shader/shader_interpreter.cpp2
-rw-r--r--src/video_core/swrasterizer/clipper.cpp15
-rw-r--r--src/video_core/swrasterizer/framebuffer.cpp2
-rw-r--r--src/video_core/swrasterizer/lighting.cpp307
-rw-r--r--src/video_core/swrasterizer/lighting.h19
-rw-r--r--src/video_core/swrasterizer/rasterizer.cpp29
-rw-r--r--src/video_core/swrasterizer/rasterizer.h6
-rw-r--r--src/video_core/swrasterizer/texturing.cpp4
-rw-r--r--src/web_service/CMakeLists.txt14
-rw-r--r--src/web_service/telemetry_json.cpp86
-rw-r--r--src/web_service/telemetry_json.h59
-rw-r--r--src/web_service/web_backend.cpp63
-rw-r--r--src/web_service/web_backend.h23
137 files changed, 18551 insertions, 855 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a45439481..e11940f59 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -5,6 +5,7 @@ add_subdirectory(common)
add_subdirectory(core)
add_subdirectory(video_core)
add_subdirectory(audio_core)
+add_subdirectory(network)
add_subdirectory(input_common)
add_subdirectory(tests)
if (ENABLE_SDL2)
@@ -13,3 +14,6 @@ endif()
if (ENABLE_QT)
add_subdirectory(citra_qt)
endif()
+if (ENABLE_WEB_SERVICE)
+ add_subdirectory(web_service)
+endif()
diff --git a/src/audio_core/hle/source.cpp b/src/audio_core/hle/source.cpp
index 92484c526..de4e88cae 100644
--- a/src/audio_core/hle/source.cpp
+++ b/src/audio_core/hle/source.cpp
@@ -244,17 +244,27 @@ void Source::GenerateFrame() {
break;
}
- const size_t size_to_copy =
- std::min(state.current_buffer.size(), current_frame.size() - frame_position);
-
- std::copy(state.current_buffer.begin(), state.current_buffer.begin() + size_to_copy,
- current_frame.begin() + frame_position);
- state.current_buffer.erase(state.current_buffer.begin(),
- state.current_buffer.begin() + size_to_copy);
-
- frame_position += size_to_copy;
- state.next_sample_number += static_cast<u32>(size_to_copy);
+ switch (state.interpolation_mode) {
+ case InterpolationMode::None:
+ AudioInterp::None(state.interp_state, state.current_buffer, state.rate_multiplier,
+ current_frame, frame_position);
+ break;
+ case InterpolationMode::Linear:
+ AudioInterp::Linear(state.interp_state, state.current_buffer, state.rate_multiplier,
+ current_frame, frame_position);
+ break;
+ case InterpolationMode::Polyphase:
+ // TODO(merry): Implement polyphase interpolation
+ LOG_DEBUG(Audio_DSP, "Polyphase interpolation unimplemented; falling back to linear");
+ AudioInterp::Linear(state.interp_state, state.current_buffer, state.rate_multiplier,
+ current_frame, frame_position);
+ break;
+ default:
+ UNIMPLEMENTED();
+ break;
+ }
}
+ state.next_sample_number += frame_position;
state.filters.ProcessFrame(current_frame);
}
@@ -305,25 +315,6 @@ bool Source::DequeueBuffer() {
return true;
}
- switch (state.interpolation_mode) {
- case InterpolationMode::None:
- state.current_buffer =
- AudioInterp::None(state.interp_state, state.current_buffer, state.rate_multiplier);
- break;
- case InterpolationMode::Linear:
- state.current_buffer =
- AudioInterp::Linear(state.interp_state, state.current_buffer, state.rate_multiplier);
- break;
- case InterpolationMode::Polyphase:
- // TODO(merry): Implement polyphase interpolation
- state.current_buffer =
- AudioInterp::Linear(state.interp_state, state.current_buffer, state.rate_multiplier);
- break;
- default:
- UNIMPLEMENTED();
- break;
- }
-
// the first playthrough starts at play_position, loops start at the beginning of the buffer
state.current_sample_number = (!buf.has_played) ? buf.play_position : 0;
state.next_sample_number = state.current_sample_number;
diff --git a/src/audio_core/interpolate.cpp b/src/audio_core/interpolate.cpp
index 8a5d4181a..16e68bc5c 100644
--- a/src/audio_core/interpolate.cpp
+++ b/src/audio_core/interpolate.cpp
@@ -13,74 +13,64 @@ namespace AudioInterp {
constexpr u64 scale_factor = 1 << 24;
constexpr u64 scale_mask = scale_factor - 1;
-/// Here we step over the input in steps of rate_multiplier, until we consume all of the input.
+/// Here we step over the input in steps of rate, until we consume all of the input.
/// Three adjacent samples are passed to fn each step.
template <typename Function>
-static StereoBuffer16 StepOverSamples(State& state, const StereoBuffer16& input,
- float rate_multiplier, Function fn) {
- ASSERT(rate_multiplier > 0);
+static void StepOverSamples(State& state, StereoBuffer16& input, float rate,
+ DSP::HLE::StereoFrame16& output, size_t& outputi, Function fn) {
+ ASSERT(rate > 0);
- if (input.size() < 2)
- return {};
+ if (input.empty())
+ return;
- StereoBuffer16 output;
- output.reserve(static_cast<size_t>(input.size() / rate_multiplier));
+ input.insert(input.begin(), {state.xn2, state.xn1});
- u64 step_size = static_cast<u64>(rate_multiplier * scale_factor);
+ const u64 step_size = static_cast<u64>(rate * scale_factor);
+ u64 fposition = state.fposition;
+ size_t inputi = 0;
- u64 fposition = 0;
- const u64 max_fposition = input.size() * scale_factor;
+ while (outputi < output.size()) {
+ inputi = static_cast<size_t>(fposition / scale_factor);
- while (fposition < 1 * scale_factor) {
- u64 fraction = fposition & scale_mask;
-
- output.push_back(fn(fraction, state.xn2, state.xn1, input[0]));
-
- fposition += step_size;
- }
-
- while (fposition < 2 * scale_factor) {
- u64 fraction = fposition & scale_mask;
-
- output.push_back(fn(fraction, state.xn1, input[0], input[1]));
-
- fposition += step_size;
- }
+ if (inputi + 2 >= input.size()) {
+ inputi = input.size() - 2;
+ break;
+ }
- while (fposition < max_fposition) {
u64 fraction = fposition & scale_mask;
-
- size_t index = static_cast<size_t>(fposition / scale_factor);
- output.push_back(fn(fraction, input[index - 2], input[index - 1], input[index]));
+ output[outputi++] = fn(fraction, input[inputi], input[inputi + 1], input[inputi + 2]);
fposition += step_size;
}
- state.xn2 = input[input.size() - 2];
- state.xn1 = input[input.size() - 1];
+ state.xn2 = input[inputi];
+ state.xn1 = input[inputi + 1];
+ state.fposition = fposition - inputi * scale_factor;
- return output;
+ input.erase(input.begin(), input.begin() + inputi + 2);
}
-StereoBuffer16 None(State& state, const StereoBuffer16& input, float rate_multiplier) {
- return StepOverSamples(
- state, input, rate_multiplier,
+void None(State& state, StereoBuffer16& input, float rate, DSP::HLE::StereoFrame16& output,
+ size_t& outputi) {
+ StepOverSamples(
+ state, input, rate, output, outputi,
[](u64 fraction, const auto& x0, const auto& x1, const auto& x2) { return x0; });
}
-StereoBuffer16 Linear(State& state, const StereoBuffer16& input, float rate_multiplier) {
+void Linear(State& state, StereoBuffer16& input, float rate, DSP::HLE::StereoFrame16& output,
+ size_t& outputi) {
// Note on accuracy: Some values that this produces are +/- 1 from the actual firmware.
- return StepOverSamples(state, input, rate_multiplier,
- [](u64 fraction, const auto& x0, const auto& x1, const auto& x2) {
- // This is a saturated subtraction. (Verified by black-box fuzzing.)
- s64 delta0 = MathUtil::Clamp<s64>(x1[0] - x0[0], -32768, 32767);
- s64 delta1 = MathUtil::Clamp<s64>(x1[1] - x0[1], -32768, 32767);
-
- return std::array<s16, 2>{
- static_cast<s16>(x0[0] + fraction * delta0 / scale_factor),
- static_cast<s16>(x0[1] + fraction * delta1 / scale_factor),
- };
- });
+ StepOverSamples(state, input, rate, output, outputi,
+ [](u64 fraction, const auto& x0, const auto& x1, const auto& x2) {
+ // This is a saturated subtraction. (Verified by black-box fuzzing.)
+ s64 delta0 = MathUtil::Clamp<s64>(x1[0] - x0[0], -32768, 32767);
+ s64 delta1 = MathUtil::Clamp<s64>(x1[1] - x0[1], -32768, 32767);
+
+ return std::array<s16, 2>{
+ static_cast<s16>(x0[0] + fraction * delta0 / scale_factor),
+ static_cast<s16>(x0[1] + fraction * delta1 / scale_factor),
+ };
+ });
}
} // namespace AudioInterp
diff --git a/src/audio_core/interpolate.h b/src/audio_core/interpolate.h
index 19a7b66cb..59f59bc14 100644
--- a/src/audio_core/interpolate.h
+++ b/src/audio_core/interpolate.h
@@ -6,6 +6,7 @@
#include <array>
#include <vector>
+#include "audio_core/hle/common.h"
#include "common/common_types.h"
namespace AudioInterp {
@@ -14,31 +15,35 @@ namespace AudioInterp {
using StereoBuffer16 = std::vector<std::array<s16, 2>>;
struct State {
- // Two historical samples.
+ /// Two historical samples.
std::array<s16, 2> xn1 = {}; ///< x[n-1]
std::array<s16, 2> xn2 = {}; ///< x[n-2]
+ /// Current fractional position.
+ u64 fposition = 0;
};
/**
* No interpolation. This is equivalent to a zero-order hold. There is a two-sample predelay.
* @param state Interpolation state.
* @param input Input buffer.
- * @param rate_multiplier Stretch factor. Must be a positive non-zero value.
- * rate_multiplier > 1.0 performs decimation and rate_multipler < 1.0
- * performs upsampling.
- * @return The resampled audio buffer.
+ * @param rate Stretch factor. Must be a positive non-zero value.
+ * rate > 1.0 performs decimation and rate < 1.0 performs upsampling.
+ * @param output The resampled audio buffer.
+ * @param outputi The index of output to start writing to.
*/
-StereoBuffer16 None(State& state, const StereoBuffer16& input, float rate_multiplier);
+void None(State& state, StereoBuffer16& input, float rate, DSP::HLE::StereoFrame16& output,
+ size_t& outputi);
/**
* Linear interpolation. This is equivalent to a first-order hold. There is a two-sample predelay.
* @param state Interpolation state.
* @param input Input buffer.
- * @param rate_multiplier Stretch factor. Must be a positive non-zero value.
- * rate_multiplier > 1.0 performs decimation and rate_multipler < 1.0
- * performs upsampling.
- * @return The resampled audio buffer.
+ * @param rate Stretch factor. Must be a positive non-zero value.
+ * rate > 1.0 performs decimation and rate < 1.0 performs upsampling.
+ * @param output The resampled audio buffer.
+ * @param outputi The index of output to start writing to.
*/
-StereoBuffer16 Linear(State& state, const StereoBuffer16& input, float rate_multiplier);
+void Linear(State& state, StereoBuffer16& input, float rate, DSP::HLE::StereoFrame16& output,
+ size_t& outputi);
} // namespace AudioInterp
diff --git a/src/citra/CMakeLists.txt b/src/citra/CMakeLists.txt
index d72d2b5f4..a885f22f8 100644
--- a/src/citra/CMakeLists.txt
+++ b/src/citra/CMakeLists.txt
@@ -16,7 +16,7 @@ set(HEADERS
create_directory_groups(${SRCS} ${HEADERS})
add_executable(citra ${SRCS} ${HEADERS})
-target_link_libraries(citra PRIVATE common core input_common)
+target_link_libraries(citra PRIVATE common core input_common network)
target_link_libraries(citra PRIVATE inih glad)
if (MSVC)
target_link_libraries(citra PRIVATE getopt)
diff --git a/src/citra/citra.cpp b/src/citra/citra.cpp
index 14574e56c..e524c5535 100644
--- a/src/citra/citra.cpp
+++ b/src/citra/citra.cpp
@@ -165,6 +165,8 @@ int main(int argc, char** argv) {
break; // Expected case
}
+ Core::Telemetry().AddField(Telemetry::FieldType::App, "Frontend", "SDL");
+
while (emu_window->IsOpen()) {
system.RunLoop();
}
diff --git a/src/citra/citra.rc b/src/citra/citra.rc
index fea603004..c490ef302 100644
--- a/src/citra/citra.rc
+++ b/src/citra/citra.rc
@@ -1,3 +1,4 @@
+#include "winresrc.h"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
@@ -7,3 +8,10 @@
// remains consistent on all systems.
CITRA_ICON ICON "../../dist/citra.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RT_MANIFEST
+//
+
+1 RT_MANIFEST "../../dist/citra.manifest"
diff --git a/src/citra/config.cpp b/src/citra/config.cpp
index 957d8dc86..a48ef08c7 100644
--- a/src/citra/config.cpp
+++ b/src/citra/config.cpp
@@ -76,6 +76,11 @@ void Config::ReadValues() {
Settings::values.analogs[i] = default_param;
}
+ Settings::values.motion_device = sdl2_config->Get(
+ "Controls", "motion_device", "engine:motion_emu,update_period:100,sensitivity:0.01");
+ Settings::values.touch_device =
+ sdl2_config->Get("Controls", "touch_device", "engine:emu_window");
+
// Core
Settings::values.use_cpu_jit = sdl2_config->GetBoolean("Core", "use_cpu_jit", true);
@@ -151,6 +156,14 @@ void Config::ReadValues() {
Settings::values.use_gdbstub = sdl2_config->GetBoolean("Debugging", "use_gdbstub", false);
Settings::values.gdbstub_port =
static_cast<u16>(sdl2_config->GetInteger("Debugging", "gdbstub_port", 24689));
+
+ // Web Service
+ Settings::values.enable_telemetry =
+ sdl2_config->GetBoolean("WebService", "enable_telemetry", true);
+ Settings::values.telemetry_endpoint_url = sdl2_config->Get(
+ "WebService", "telemetry_endpoint_url", "https://services.citra-emu.org/api/telemetry");
+ Settings::values.citra_username = sdl2_config->Get("WebService", "citra_username", "");
+ Settings::values.citra_token = sdl2_config->Get("WebService", "citra_token", "");
}
void Config::Reload() {
diff --git a/src/citra/default_ini.h b/src/citra/default_ini.h
index d8a8fe44f..4b13a2e1b 100644
--- a/src/citra/default_ini.h
+++ b/src/citra/default_ini.h
@@ -12,7 +12,7 @@ const char* sdl2_config_file = R"(
# It should be in the format of "engine:[engine_name],[param1]:[value1],[param2]:[value2]..."
# Escape characters $0 (for ':'), $1 (for ',') and $2 (for '$') can be used in values
-# for button input, the following devices are avaible:
+# for button input, the following devices are available:
# - "keyboard" (default) for keyboard input. Required parameters:
# - "code": the code of the key to bind
# - "sdl" for joystick input using SDL. Required parameters:
@@ -21,7 +21,7 @@ const char* sdl2_config_file = R"(
# - "hat"(optional): the index of the hat to bind as direction buttons
# - "axis"(optional): the index of the axis to bind
# - "direction"(only used for hat): the direction name of the hat to bind. Can be "up", "down", "left" or "right"
-# - "threshould"(only used for axis): a float value in (-1.0, 1.0) which the button is
+# - "threshold"(only used for axis): a float value in (-1.0, 1.0) which the button is
# triggered if the axis value crosses
# - "direction"(only used for axis): "+" means the button is triggered when the axis value
# is greater than the threshold; "-" means the button is triggered when the axis value
@@ -42,8 +42,8 @@ button_zl=
button_zr=
button_home=
-# for analog input, the following devices are avaible:
-# - "analog_from_button" (default) for emulating analog input from direction buttons. Required parameters:
+# for analog input, the following devices are available:
+# - "analog_from_button" (default) for emulating analog input from direction buttons. Required parameters:
# - "up", "down", "left", "right": sub-devices for each direction.
# Should be in the format as a button input devices using escape characters, for example, "engine$0keyboard$1code$00"
# - "modifier": sub-devices as a modifier.
@@ -56,6 +56,16 @@ button_home=
circle_pad=
c_stick=
+# for motion input, the following devices are available:
+# - "motion_emu" (default) for emulating motion input from mouse input. Required parameters:
+# - "update_period": update period in milliseconds (default to 100)
+# - "sensitivity": the coefficient converting mouse movement to tilting angle (default to 0.01)
+motion_device=
+
+# for touch input, the following devices are available:
+# - "emu_window" (default) for emulating touch input from mouse input to the emulation window. No parameters required
+touch_device=
+
[Core]
# Whether to use the Just-In-Time (JIT) compiler for CPU emulation
# 0: Interpreter (slow), 1 (default): JIT (fast)
@@ -168,5 +178,16 @@ log_filter = *:Info
# Port for listening to GDB connections.
use_gdbstub=false
gdbstub_port=24689
+
+[WebService]
+# Whether or not to enable telemetry
+# 0: No, 1 (default): Yes
+enable_telemetry =
+# Endpoint URL for submitting telemetry data
+telemetry_endpoint_url = https://services.citra-emu.org/api/telemetry
+# Username and token for Citra Web Service
+# See https://services.citra-emu.org/ for more info
+citra_username =
+citra_token =
)";
}
diff --git a/src/citra/emu_window/emu_window_sdl2.cpp b/src/citra/emu_window/emu_window_sdl2.cpp
index 47aadd60c..25643715a 100644
--- a/src/citra/emu_window/emu_window_sdl2.cpp
+++ b/src/citra/emu_window/emu_window_sdl2.cpp
@@ -16,10 +16,12 @@
#include "core/settings.h"
#include "input_common/keyboard.h"
#include "input_common/main.h"
+#include "input_common/motion_emu.h"
+#include "network/network.h"
void EmuWindow_SDL2::OnMouseMotion(s32 x, s32 y) {
TouchMoved((unsigned)std::max(x, 0), (unsigned)std::max(y, 0));
- motion_emu->Tilt(x, y);
+ InputCommon::GetMotionEmu()->Tilt(x, y);
}
void EmuWindow_SDL2::OnMouseButton(u32 button, u8 state, s32 x, s32 y) {
@@ -31,9 +33,9 @@ void EmuWindow_SDL2::OnMouseButton(u32 button, u8 state, s32 x, s32 y) {
}
} else if (button == SDL_BUTTON_RIGHT) {
if (state == SDL_PRESSED) {
- motion_emu->BeginTilt(x, y);
+ InputCommon::GetMotionEmu()->BeginTilt(x, y);
} else {
- motion_emu->EndTilt();
+ InputCommon::GetMotionEmu()->EndTilt();
}
}
}
@@ -58,8 +60,7 @@ void EmuWindow_SDL2::OnResize() {
EmuWindow_SDL2::EmuWindow_SDL2() {
InputCommon::Init();
-
- motion_emu = std::make_unique<Motion::MotionEmu>(*this);
+ Network::Init();
SDL_SetMainReady();
@@ -115,7 +116,8 @@ EmuWindow_SDL2::EmuWindow_SDL2() {
EmuWindow_SDL2::~EmuWindow_SDL2() {
SDL_GL_DeleteContext(gl_context);
SDL_Quit();
- motion_emu = nullptr;
+
+ Network::Shutdown();
InputCommon::Shutdown();
}
diff --git a/src/citra/emu_window/emu_window_sdl2.h b/src/citra/emu_window/emu_window_sdl2.h
index 1ce2991f7..3664d2fbe 100644
--- a/src/citra/emu_window/emu_window_sdl2.h
+++ b/src/citra/emu_window/emu_window_sdl2.h
@@ -7,7 +7,6 @@
#include <memory>
#include <utility>
#include "core/frontend/emu_window.h"
-#include "core/frontend/motion_emu.h"
struct SDL_Window;
@@ -57,7 +56,4 @@ private:
using SDL_GLContext = void*;
/// The OpenGL context associated with the window
SDL_GLContext gl_context;
-
- /// Motion sensors emulation
- std::unique_ptr<Motion::MotionEmu> motion_emu;
};
diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt
index 4841cbf05..e0a19fd9e 100644
--- a/src/citra_qt/CMakeLists.txt
+++ b/src/citra_qt/CMakeLists.txt
@@ -1,4 +1,5 @@
set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
@@ -11,6 +12,7 @@ set(SRCS
configuration/configure_graphics.cpp
configuration/configure_input.cpp
configuration/configure_system.cpp
+ configuration/configure_web.cpp
debugger/graphics/graphics.cpp
debugger/graphics/graphics_breakpoint_observer.cpp
debugger/graphics/graphics_breakpoints.cpp
@@ -41,6 +43,7 @@ set(HEADERS
configuration/configure_graphics.h
configuration/configure_input.h
configuration/configure_system.h
+ configuration/configure_web.h
debugger/graphics/graphics.h
debugger/graphics/graphics_breakpoint_observer.h
debugger/graphics/graphics_breakpoints.h
@@ -70,11 +73,14 @@ set(UIS
configuration/configure_graphics.ui
configuration/configure_input.ui
configuration/configure_system.ui
+ configuration/configure_web.ui
debugger/registers.ui
hotkeys.ui
main.ui
)
+file(GLOB_RECURSE THEMES ${CMAKE_SOURCE_DIR}/dist/qt_themes/*)
+
create_directory_groups(${SRCS} ${HEADERS} ${UIS})
if (Qt5_FOUND)
@@ -86,12 +92,12 @@ endif()
if (APPLE)
set(MACOSX_ICON "../../dist/citra.icns")
set_source_files_properties(${MACOSX_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
- add_executable(citra-qt MACOSX_BUNDLE ${SRCS} ${HEADERS} ${UI_HDRS} ${MACOSX_ICON})
+ add_executable(citra-qt MACOSX_BUNDLE ${SRCS} ${HEADERS} ${UI_HDRS} ${THEMES} ${MACOSX_ICON})
set_target_properties(citra-qt PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
else()
- add_executable(citra-qt ${SRCS} ${HEADERS} ${UI_HDRS})
+ add_executable(citra-qt ${SRCS} ${HEADERS} ${UI_HDRS} ${THEMES})
endif()
-target_link_libraries(citra-qt PRIVATE audio_core common core input_common video_core)
+target_link_libraries(citra-qt PRIVATE audio_core common core input_common network video_core)
target_link_libraries(citra-qt PRIVATE Boost::boost glad nihstro-headers Qt5::OpenGL Qt5::Widgets)
target_link_libraries(citra-qt PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp
index a8a4aed8b..7107bfc60 100644
--- a/src/citra_qt/bootmanager.cpp
+++ b/src/citra_qt/bootmanager.cpp
@@ -17,6 +17,8 @@
#include "core/settings.h"
#include "input_common/keyboard.h"
#include "input_common/main.h"
+#include "input_common/motion_emu.h"
+#include "network/network.h"
EmuThread::EmuThread(GRenderWindow* render_window)
: exec_step(false), running(false), stop_run(false), render_window(render_window) {}
@@ -110,10 +112,12 @@ GRenderWindow::GRenderWindow(QWidget* parent, EmuThread* emu_thread)
setWindowTitle(QString::fromStdString(window_title));
InputCommon::Init();
+ Network::Init();
}
GRenderWindow::~GRenderWindow() {
InputCommon::Shutdown();
+ Network::Shutdown();
}
void GRenderWindow::moveContext() {
@@ -198,7 +202,6 @@ qreal GRenderWindow::windowPixelRatio() {
}
void GRenderWindow::closeEvent(QCloseEvent* event) {
- motion_emu = nullptr;
emit Closed();
QWidget::closeEvent(event);
}
@@ -218,7 +221,7 @@ void GRenderWindow::mousePressEvent(QMouseEvent* event) {
this->TouchPressed(static_cast<unsigned>(pos.x() * pixelRatio),
static_cast<unsigned>(pos.y() * pixelRatio));
} else if (event->button() == Qt::RightButton) {
- motion_emu->BeginTilt(pos.x(), pos.y());
+ InputCommon::GetMotionEmu()->BeginTilt(pos.x(), pos.y());
}
}
@@ -227,14 +230,14 @@ void GRenderWindow::mouseMoveEvent(QMouseEvent* event) {
qreal pixelRatio = windowPixelRatio();
this->TouchMoved(std::max(static_cast<unsigned>(pos.x() * pixelRatio), 0u),
std::max(static_cast<unsigned>(pos.y() * pixelRatio), 0u));
- motion_emu->Tilt(pos.x(), pos.y());
+ InputCommon::GetMotionEmu()->Tilt(pos.x(), pos.y());
}
void GRenderWindow::mouseReleaseEvent(QMouseEvent* event) {
if (event->button() == Qt::LeftButton)
this->TouchReleased();
else if (event->button() == Qt::RightButton)
- motion_emu->EndTilt();
+ InputCommon::GetMotionEmu()->EndTilt();
}
void GRenderWindow::focusOutEvent(QFocusEvent* event) {
@@ -287,13 +290,11 @@ void GRenderWindow::OnMinimalClientAreaChangeRequest(
}
void GRenderWindow::OnEmulationStarting(EmuThread* emu_thread) {
- motion_emu = std::make_unique<Motion::MotionEmu>(*this);
this->emu_thread = emu_thread;
child->DisablePainting();
}
void GRenderWindow::OnEmulationStopping() {
- motion_emu = nullptr;
emu_thread = nullptr;
child->EnablePainting();
}
diff --git a/src/citra_qt/bootmanager.h b/src/citra_qt/bootmanager.h
index 4b3a3b3cc..6974edcbb 100644
--- a/src/citra_qt/bootmanager.h
+++ b/src/citra_qt/bootmanager.h
@@ -12,7 +12,6 @@
#include "common/thread.h"
#include "core/core.h"
#include "core/frontend/emu_window.h"
-#include "core/frontend/motion_emu.h"
class QKeyEvent;
class QScreen;
@@ -158,9 +157,6 @@ private:
EmuThread* emu_thread;
- /// Motion sensors emulation
- std::unique_ptr<Motion::MotionEmu> motion_emu;
-
protected:
void showEvent(QShowEvent* event) override;
};
diff --git a/src/citra_qt/citra-qt.rc b/src/citra_qt/citra-qt.rc
index fea603004..a48a9440d 100644
--- a/src/citra_qt/citra-qt.rc
+++ b/src/citra_qt/citra-qt.rc
@@ -1,3 +1,4 @@
+#include "winresrc.h"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
@@ -5,5 +6,14 @@
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
-CITRA_ICON ICON "../../dist/citra.ico"
+// QT requires that the default application icon is named IDI_ICON1
+IDI_ICON1 ICON "../../dist/citra.ico"
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RT_MANIFEST
+//
+
+1 RT_MANIFEST "../../dist/citra.manifest"
diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp
index 64ffc9152..ef114aad3 100644
--- a/src/citra_qt/configuration/config.cpp
+++ b/src/citra_qt/configuration/config.cpp
@@ -57,6 +57,13 @@ void Config::ReadValues() {
Settings::values.analogs[i] = default_param;
}
+ Settings::values.motion_device =
+ qt_config->value("motion_device", "engine:motion_emu,update_period:100,sensitivity:0.01")
+ .toString()
+ .toStdString();
+ Settings::values.touch_device =
+ qt_config->value("touch_device", "engine:emu_window").toString().toStdString();
+
qt_config->endGroup();
qt_config->beginGroup("Core");
@@ -133,7 +140,18 @@ void Config::ReadValues() {
Settings::values.gdbstub_port = qt_config->value("gdbstub_port", 24689).toInt();
qt_config->endGroup();
+ qt_config->beginGroup("WebService");
+ Settings::values.enable_telemetry = qt_config->value("enable_telemetry", true).toBool();
+ Settings::values.telemetry_endpoint_url =
+ qt_config->value("telemetry_endpoint_url", "https://services.citra-emu.org/api/telemetry")
+ .toString()
+ .toStdString();
+ Settings::values.citra_username = qt_config->value("citra_username").toString().toStdString();
+ Settings::values.citra_token = qt_config->value("citra_token").toString().toStdString();
+ qt_config->endGroup();
+
qt_config->beginGroup("UI");
+ UISettings::values.theme = qt_config->value("theme", UISettings::themes[0].second).toString();
qt_config->beginGroup("UILayout");
UISettings::values.geometry = qt_config->value("geometry").toByteArray();
@@ -181,6 +199,7 @@ void Config::ReadValues() {
UISettings::values.show_status_bar = qt_config->value("showStatusBar", true).toBool();
UISettings::values.confirm_before_closing = qt_config->value("confirmClose", true).toBool();
UISettings::values.first_start = qt_config->value("firstStart", true).toBool();
+ UISettings::values.callout_flags = qt_config->value("calloutFlags", 0).toUInt();
qt_config->endGroup();
}
@@ -195,6 +214,8 @@ void Config::SaveValues() {
qt_config->setValue(QString::fromStdString(Settings::NativeAnalog::mapping[i]),
QString::fromStdString(Settings::values.analogs[i]));
}
+ qt_config->setValue("motion_device", QString::fromStdString(Settings::values.motion_device));
+ qt_config->setValue("touch_device", QString::fromStdString(Settings::values.touch_device));
qt_config->endGroup();
qt_config->beginGroup("Core");
@@ -268,7 +289,16 @@ void Config::SaveValues() {
qt_config->setValue("gdbstub_port", Settings::values.gdbstub_port);
qt_config->endGroup();
+ qt_config->beginGroup("WebService");
+ qt_config->setValue("enable_telemetry", Settings::values.enable_telemetry);
+ qt_config->setValue("telemetry_endpoint_url",
+ QString::fromStdString(Settings::values.telemetry_endpoint_url));
+ qt_config->setValue("citra_username", QString::fromStdString(Settings::values.citra_username));
+ qt_config->setValue("citra_token", QString::fromStdString(Settings::values.citra_token));
+ qt_config->endGroup();
+
qt_config->beginGroup("UI");
+ qt_config->setValue("theme", UISettings::values.theme);
qt_config->beginGroup("UILayout");
qt_config->setValue("geometry", UISettings::values.geometry);
@@ -300,6 +330,7 @@ void Config::SaveValues() {
qt_config->setValue("showStatusBar", UISettings::values.show_status_bar);
qt_config->setValue("confirmClose", UISettings::values.confirm_before_closing);
qt_config->setValue("firstStart", UISettings::values.first_start);
+ qt_config->setValue("calloutFlags", UISettings::values.callout_flags);
qt_config->endGroup();
}
diff --git a/src/citra_qt/configuration/configure.ui b/src/citra_qt/configuration/configure.ui
index 85e206e42..6abd1917e 100644
--- a/src/citra_qt/configuration/configure.ui
+++ b/src/citra_qt/configuration/configure.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>441</width>
- <height>501</height>
+ <width>740</width>
+ <height>500</height>
</rect>
</property>
<property name="windowTitle">
@@ -49,6 +49,11 @@
<string>Debug</string>
</attribute>
</widget>
+ <widget class="ConfigureWeb" name="webTab">
+ <attribute name="title">
+ <string>Web</string>
+ </attribute>
+ </widget>
</widget>
</item>
<item>
@@ -97,6 +102,12 @@
<header>configuration/configure_graphics.h</header>
<container>1</container>
</customwidget>
+ <customwidget>
+ <class>ConfigureWeb</class>
+ <extends>QWidget</extends>
+ <header>configuration/configure_web.h</header>
+ <container>1</container>
+ </customwidget>
</customwidgets>
<resources/>
<connections>
diff --git a/src/citra_qt/configuration/configure_dialog.cpp b/src/citra_qt/configuration/configure_dialog.cpp
index dfc8c03a7..b87dc0e6c 100644
--- a/src/citra_qt/configuration/configure_dialog.cpp
+++ b/src/citra_qt/configuration/configure_dialog.cpp
@@ -23,5 +23,6 @@ void ConfigureDialog::applyConfiguration() {
ui->graphicsTab->applyConfiguration();
ui->audioTab->applyConfiguration();
ui->debugTab->applyConfiguration();
+ ui->webTab->applyConfiguration();
Settings::Apply();
}
diff --git a/src/citra_qt/configuration/configure_general.cpp b/src/citra_qt/configuration/configure_general.cpp
index a21176c34..939379717 100644
--- a/src/citra_qt/configuration/configure_general.cpp
+++ b/src/citra_qt/configuration/configure_general.cpp
@@ -12,6 +12,11 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent)
: QWidget(parent), ui(new Ui::ConfigureGeneral) {
ui->setupUi(this);
+
+ for (auto theme : UISettings::themes) {
+ ui->theme_combobox->addItem(theme.first, theme.second);
+ }
+
this->setConfiguration();
ui->toggle_cpu_jit->setEnabled(!Core::System::GetInstance().IsPoweredOn());
@@ -26,11 +31,15 @@ void ConfigureGeneral::setConfiguration() {
// The first item is "auto-select" with actual value -1, so plus one here will do the trick
ui->region_combobox->setCurrentIndex(Settings::values.region_value + 1);
+
+ ui->theme_combobox->setCurrentIndex(ui->theme_combobox->findData(UISettings::values.theme));
}
void ConfigureGeneral::applyConfiguration() {
UISettings::values.gamedir_deepscan = ui->toggle_deepscan->isChecked();
UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked();
+ UISettings::values.theme =
+ ui->theme_combobox->itemData(ui->theme_combobox->currentIndex()).toString();
Settings::values.region_value = ui->region_combobox->currentIndex() - 1;
Settings::values.use_cpu_jit = ui->toggle_cpu_jit->isChecked();
Settings::Apply();
diff --git a/src/citra_qt/configuration/configure_general.ui b/src/citra_qt/configuration/configure_general.ui
index c739605a4..eedf2cbb0 100644
--- a/src/citra_qt/configuration/configure_general.ui
+++ b/src/citra_qt/configuration/configure_general.ui
@@ -132,6 +132,34 @@
</widget>
</item>
<item>
+ <widget class="QGroupBox" name="theme_group_box">
+ <property name="title">
+ <string>Theme</string>
+ </property>
+ <layout class="QHBoxLayout" name="theme_qhbox_layout">
+ <item>
+ <layout class="QVBoxLayout" name="theme_qvbox_layout">
+ <item>
+ <layout class="QHBoxLayout" name="theme_qhbox_layout_2">
+ <item>
+ <widget class="QLabel" name="theme_label">
+ <property name="text">
+ <string>Theme:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="theme_combobox">
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Hotkeys</string>
diff --git a/src/citra_qt/configuration/configure_graphics.ui b/src/citra_qt/configuration/configure_graphics.ui
index 228f2a869..b340149d5 100644
--- a/src/citra_qt/configuration/configure_graphics.ui
+++ b/src/citra_qt/configuration/configure_graphics.ui
@@ -146,17 +146,22 @@
<widget class="QComboBox" name="layout_combobox">
<item>
<property name="text">
- <string notr="true">Default</string>
+ <string>Default</string>
</property>
</item>
<item>
<property name="text">
- <string notr="true">Single Screen</string>
+ <string>Single Screen</string>
</property>
</item>
<item>
<property name="text">
- <string notr="true">Large Screen</string>
+ <string>Large Screen</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Side by Side</string>
</property>
</item>
</widget>
diff --git a/src/citra_qt/configuration/configure_web.cpp b/src/citra_qt/configuration/configure_web.cpp
new file mode 100644
index 000000000..8715fb018
--- /dev/null
+++ b/src/citra_qt/configuration/configure_web.cpp
@@ -0,0 +1,52 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "citra_qt/configuration/configure_web.h"
+#include "core/settings.h"
+#include "core/telemetry_session.h"
+#include "ui_configure_web.h"
+
+ConfigureWeb::ConfigureWeb(QWidget* parent)
+ : QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) {
+ ui->setupUi(this);
+ connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this,
+ &ConfigureWeb::refreshTelemetryID);
+
+ this->setConfiguration();
+}
+
+ConfigureWeb::~ConfigureWeb() {}
+
+void ConfigureWeb::setConfiguration() {
+ ui->web_credentials_disclaimer->setWordWrap(true);
+ ui->telemetry_learn_more->setOpenExternalLinks(true);
+ ui->telemetry_learn_more->setText("<a "
+ "href='https://citra-emu.org/entry/"
+ "telemetry-and-why-thats-a-good-thing/'>Learn more</a>");
+
+ ui->web_signup_link->setOpenExternalLinks(true);
+ ui->web_signup_link->setText("<a href='https://services.citra-emu.org/'>Sign up</a>");
+ ui->web_token_info_link->setOpenExternalLinks(true);
+ ui->web_token_info_link->setText(
+ "<a href='https://citra-emu.org/wiki/citra-web-service/'>What is my token?</a>");
+
+ ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry);
+ ui->edit_username->setText(QString::fromStdString(Settings::values.citra_username));
+ ui->edit_token->setText(QString::fromStdString(Settings::values.citra_token));
+ ui->label_telemetry_id->setText("Telemetry ID: 0x" +
+ QString::number(Core::GetTelemetryId(), 16).toUpper());
+}
+
+void ConfigureWeb::applyConfiguration() {
+ Settings::values.enable_telemetry = ui->toggle_telemetry->isChecked();
+ Settings::values.citra_username = ui->edit_username->text().toStdString();
+ Settings::values.citra_token = ui->edit_token->text().toStdString();
+ Settings::Apply();
+}
+
+void ConfigureWeb::refreshTelemetryID() {
+ const u64 new_telemetry_id{Core::RegenerateTelemetryId()};
+ ui->label_telemetry_id->setText("Telemetry ID: 0x" +
+ QString::number(new_telemetry_id, 16).toUpper());
+}
diff --git a/src/citra_qt/configuration/configure_web.h b/src/citra_qt/configuration/configure_web.h
new file mode 100644
index 000000000..20bc254b9
--- /dev/null
+++ b/src/citra_qt/configuration/configure_web.h
@@ -0,0 +1,30 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include <QWidget>
+
+namespace Ui {
+class ConfigureWeb;
+}
+
+class ConfigureWeb : public QWidget {
+ Q_OBJECT
+
+public:
+ explicit ConfigureWeb(QWidget* parent = nullptr);
+ ~ConfigureWeb();
+
+ void applyConfiguration();
+
+public slots:
+ void refreshTelemetryID();
+
+private:
+ void setConfiguration();
+
+ std::unique_ptr<Ui::ConfigureWeb> ui;
+};
diff --git a/src/citra_qt/configuration/configure_web.ui b/src/citra_qt/configuration/configure_web.ui
new file mode 100644
index 000000000..d8d283fad
--- /dev/null
+++ b/src/citra_qt/configuration/configure_web.ui
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ConfigureWeb</class>
+ <widget class="QWidget" name="ConfigureWeb">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QGroupBox" name="groupBoxWebConfig">
+ <property name="title">
+ <string>Citra Web Service</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayoutCitraWebService">
+ <item>
+ <widget class="QLabel" name="web_credentials_disclaimer">
+ <property name="text">
+ <string>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridLayoutCitraUsername">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_username">
+ <property name="text">
+ <string>Username: </string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="edit_username">
+ <property name="maxLength">
+ <number>36</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_token">
+ <property name="text">
+ <string>Token: </string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="edit_token">
+ <property name="maxLength">
+ <number>36</number>
+ </property>
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="web_signup_link">
+ <property name="text">
+ <string>Sign up</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLabel" name="web_token_info_link">
+ <property name="text">
+ <string>What is my token?</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Telemetry</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="toggle_telemetry">
+ <property name="text">
+ <string>Share anonymous usage data with the Citra team</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="telemetry_learn_more">
+ <property name="text">
+ <string>Learn more</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridLayoutTelemetryId">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_telemetry_id">
+ <property name="text">
+ <string>Telemetry ID:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QPushButton" name="button_regenerate_telemetry_id">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="layoutDirection">
+ <enum>Qt::RightToLeft</enum>
+ </property>
+ <property name="text">
+ <string>Regenerate</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp b/src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp
index e3f3194db..7f4ec0c52 100644
--- a/src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp
+++ b/src/citra_qt/debugger/graphics/graphics_vertex_shader.cpp
@@ -183,23 +183,13 @@ QVariant GraphicsVertexShaderModel::data(const QModelIndex& index, int role) con
print_input(output, src1, swizzle.negate_src1,
SelectorToString(swizzle.src1_selector));
AlignToColumn(kInputOperandColumnWidth);
- if (src_is_inverted) {
- print_input(output, src2, swizzle.negate_src2,
- SelectorToString(swizzle.src2_selector));
- } else {
- print_input(output, src2, swizzle.negate_src2,
- SelectorToString(swizzle.src2_selector), true,
- instr.mad.AddressRegisterName());
- }
+ print_input(output, src2, swizzle.negate_src2,
+ SelectorToString(swizzle.src2_selector), true,
+ src_is_inverted ? "" : instr.mad.AddressRegisterName());
AlignToColumn(kInputOperandColumnWidth);
- if (src_is_inverted) {
- print_input(output, src3, swizzle.negate_src3,
- SelectorToString(swizzle.src3_selector), true,
- instr.mad.AddressRegisterName());
- } else {
- print_input(output, src3, swizzle.negate_src3,
- SelectorToString(swizzle.src3_selector));
- }
+ print_input(output, src3, swizzle.negate_src3,
+ SelectorToString(swizzle.src3_selector), true,
+ src_is_inverted ? instr.mad.AddressRegisterName() : "");
AlignToColumn(kInputOperandColumnWidth);
break;
}
@@ -222,16 +212,15 @@ QVariant GraphicsVertexShaderModel::data(const QModelIndex& index, int role) con
SourceRegister src1 = instr.common.GetSrc1(src_is_inverted);
print_input(output, src1, swizzle.negate_src1,
swizzle.SelectorToString(false), true,
- instr.common.AddressRegisterName());
+ src_is_inverted ? "" : instr.common.AddressRegisterName());
AlignToColumn(kInputOperandColumnWidth);
}
- // TODO: In some cases, the Address Register is used as an index for SRC2
- // instead of SRC1
if (opcode_info.subtype & OpCode::Info::Src2) {
SourceRegister src2 = instr.common.GetSrc2(src_is_inverted);
print_input(output, src2, swizzle.negate_src2,
- swizzle.SelectorToString(true));
+ swizzle.SelectorToString(true), true,
+ src_is_inverted ? instr.common.AddressRegisterName() : "");
AlignToColumn(kInputOperandColumnWidth);
}
break;
@@ -247,7 +236,9 @@ QVariant GraphicsVertexShaderModel::data(const QModelIndex& index, int role) con
switch (opcode.EffectiveOpCode()) {
case OpCode::Id::LOOP:
- output << "(unknown instruction format)";
+ output << 'i' << instr.flow_control.int_uniform_id << " (end on 0x"
+ << std::setw(4) << std::right << std::setfill('0') << std::hex
+ << (4 * instr.flow_control.dest_offset) << ")";
break;
default:
@@ -255,7 +246,7 @@ QVariant GraphicsVertexShaderModel::data(const QModelIndex& index, int role) con
output << '(';
if (instr.flow_control.op != instr.flow_control.JustY) {
- if (instr.flow_control.refx)
+ if (!instr.flow_control.refx)
output << '!';
output << "cc.x";
}
@@ -267,13 +258,17 @@ QVariant GraphicsVertexShaderModel::data(const QModelIndex& index, int role) con
}
if (instr.flow_control.op != instr.flow_control.JustX) {
- if (instr.flow_control.refy)
+ if (!instr.flow_control.refy)
output << '!';
output << "cc.y";
}
output << ") ";
} else if (opcode_info.subtype & OpCode::Info::HasUniformIndex) {
+ if (opcode.EffectiveOpCode() == OpCode::Id::JMPU &&
+ (instr.flow_control.num_instructions & 1) == 1) {
+ output << '!';
+ }
output << 'b' << instr.flow_control.bool_uniform_id << ' ';
}
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index 4f5b2ddab..8adbcfe86 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -48,6 +48,47 @@
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
#endif
+/**
+ * "Callouts" are one-time instructional messages shown to the user. In the config settings, there
+ * is a bitfield "callout_flags" options, used to track if a message has already been shown to the
+ * user. This is 32-bits - if we have more than 32 callouts, we should retire and recyle old ones.
+ */
+enum class CalloutFlag : uint32_t {
+ Telemetry = 0x1,
+};
+
+static void ShowCalloutMessage(const QString& message, CalloutFlag flag) {
+ if (UISettings::values.callout_flags & static_cast<uint32_t>(flag)) {
+ return;
+ }
+
+ UISettings::values.callout_flags |= static_cast<uint32_t>(flag);
+
+ QMessageBox msg;
+ msg.setText(message);
+ msg.setStandardButtons(QMessageBox::Ok);
+ msg.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ msg.setStyleSheet("QLabel{min-width: 900px;}");
+ msg.exec();
+}
+
+void GMainWindow::ShowCallouts() {
+ static const QString telemetry_message =
+ tr("To help improve Citra, the Citra Team collects anonymous usage data. No private or "
+ "personally identifying information is collected. This data helps us to understand how "
+ "people use Citra and prioritize our efforts. Furthermore, it helps us to more easily "
+ "identify emulation bugs and performance issues. This data includes:<ul><li>Information"
+ " about the version of Citra you are using</li><li>Performance data about the games you "
+ "play</li><li>Your configuration settings</li><li>Information about your computer "
+ "hardware</li><li>Emulation errors and crash information</li></ul>By default, this "
+ "feature is enabled. To disable this feature, click 'Emulation' from the menu and then "
+ "select 'Configure...'. Then, on the 'Web' tab, uncheck 'Share anonymous usage data with"
+ " the Citra team'. <br/><br/>By using this software, you agree to the above terms.<br/>"
+ "<br/><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'>Learn "
+ "more</a>");
+ ShowCalloutMessage(telemetry_message, CalloutFlag::Telemetry);
+}
+
GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) {
Pica::g_debug_context = Pica::DebugContext::Construct();
setAcceptDrops(true);
@@ -71,6 +112,11 @@ GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) {
game_list->PopulateAsync(UISettings::values.gamedir, UISettings::values.gamedir_deepscan);
+ UpdateUITheme();
+
+ // Show one-time "callout" messages to the user
+ ShowCallouts();
+
QStringList args = QApplication::arguments();
if (args.length() >= 2) {
BootGame(args[1]);
@@ -309,7 +355,7 @@ bool GMainWindow::LoadROM(const QString& filename) {
if (!gladLoadGL()) {
QMessageBox::critical(this, tr("Error while initializing OpenGL 3.3 Core!"),
- tr("Your GPU may not support OpenGL 3.3, or you do not"
+ tr("Your GPU may not support OpenGL 3.3, or you do not "
"have the latest graphics driver."));
return false;
}
@@ -318,6 +364,8 @@ bool GMainWindow::LoadROM(const QString& filename) {
const Core::System::ResultStatus result{system.Load(render_window, filename.toStdString())};
+ Core::Telemetry().AddField(Telemetry::FieldType::App, "Frontend", "Qt");
+
if (result != Core::System::ResultStatus::Success) {
switch (result) {
case Core::System::ResultStatus::ErrorGetLoader:
@@ -606,6 +654,7 @@ void GMainWindow::OnConfigure() {
auto result = configureDialog.exec();
if (result == QDialog::Accepted) {
configureDialog.applyConfiguration();
+ UpdateUITheme();
config->Save();
}
}
@@ -791,6 +840,24 @@ void GMainWindow::filterBarSetChecked(bool state) {
emit(OnToggleFilterBar());
}
+void GMainWindow::UpdateUITheme() {
+ if (UISettings::values.theme != UISettings::themes[0].second) {
+ QString theme_uri(":" + UISettings::values.theme + "/style.qss");
+ QFile f(theme_uri);
+ if (!f.exists()) {
+ LOG_ERROR(Frontend, "Unable to set style, stylesheet file not found");
+ } else {
+ f.open(QFile::ReadOnly | QFile::Text);
+ QTextStream ts(&f);
+ qApp->setStyleSheet(ts.readAll());
+ GMainWindow::setStyleSheet(ts.readAll());
+ }
+ } else {
+ qApp->setStyleSheet("");
+ GMainWindow::setStyleSheet("");
+ }
+}
+
#ifdef main
#undef main
#endif
diff --git a/src/citra_qt/main.h b/src/citra_qt/main.h
index 952a50974..d59a6d67d 100644
--- a/src/citra_qt/main.h
+++ b/src/citra_qt/main.h
@@ -42,6 +42,7 @@ class GMainWindow : public QMainWindow {
public:
void filterBarSetChecked(bool state);
+ void UpdateUITheme();
GMainWindow();
~GMainWindow();
@@ -79,6 +80,8 @@ private:
void BootGame(const QString& filename);
void ShutdownGame();
+ void ShowCallouts();
+
/**
* Stores the filename in the recently loaded files list.
* The new filename is stored at the beginning of the recently loaded files list.
diff --git a/src/citra_qt/ui_settings.h b/src/citra_qt/ui_settings.h
index bc37f81c5..d85c92765 100644
--- a/src/citra_qt/ui_settings.h
+++ b/src/citra_qt/ui_settings.h
@@ -4,6 +4,7 @@
#pragma once
+#include <array>
#include <vector>
#include <QByteArray>
#include <QString>
@@ -14,6 +15,10 @@ namespace UISettings {
using ContextualShortcut = std::pair<QString, int>;
using Shortcut = std::pair<QString, ContextualShortcut>;
+static const std::array<std::pair<QString, QString>, 2> themes = {
+ {std::make_pair(QString("Default"), QString("default")),
+ std::make_pair(QString("Dark"), QString("qdarkstyle"))}};
+
struct Values {
QByteArray geometry;
QByteArray state;
@@ -39,8 +44,12 @@ struct Values {
bool gamedir_deepscan;
QStringList recent_files;
+ QString theme;
+
// Shortcut name <Shortcut, context>
std::vector<Shortcut> shortcuts;
+
+ uint32_t callout_flags;
};
extern Values values;
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index 42f6a9918..4b83eeb28 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -72,7 +72,9 @@ namespace Log {
SUB(Audio, DSP) \
SUB(Audio, Sink) \
CLS(Input) \
- CLS(Loader)
+ CLS(Network) \
+ CLS(Loader) \
+ CLS(WebService)
// GetClassName is a macro defined by Windows.h, grrr...
const char* GetLogClassName(Class log_class) {
diff --git a/src/common/logging/log.h b/src/common/logging/log.h
index 1b905f66c..fe4dfed69 100644
--- a/src/common/logging/log.h
+++ b/src/common/logging/log.h
@@ -90,6 +90,8 @@ enum class Class : ClassType {
Audio_Sink, ///< Emulator audio output backend
Loader, ///< ROM loader
Input, ///< Input emulation
+ Network, ///< Network emulation
+ WebService, ///< Interface to Citra Web Services
Count ///< Total number of logging classes
};
diff --git a/src/common/quaternion.h b/src/common/quaternion.h
index 84ac82ed3..77f626bcb 100644
--- a/src/common/quaternion.h
+++ b/src/common/quaternion.h
@@ -30,6 +30,11 @@ public:
return {xyz * other.w + other.xyz * w + Cross(xyz, other.xyz),
w * other.w - Dot(xyz, other.xyz)};
}
+
+ Quaternion<T> Normalized() const {
+ T length = std::sqrt(xyz.Length2() + w * w);
+ return {xyz / length, w / length};
+ }
};
template <typename T>
diff --git a/src/common/scm_rev.cpp.in b/src/common/scm_rev.cpp.in
index 0080db5d5..4083095d5 100644
--- a/src/common/scm_rev.cpp.in
+++ b/src/common/scm_rev.cpp.in
@@ -8,6 +8,7 @@
#define GIT_BRANCH "@GIT_BRANCH@"
#define GIT_DESC "@GIT_DESC@"
#define BUILD_NAME "@REPO_NAME@"
+#define BUILD_DATE "@BUILD_DATE@"
namespace Common {
@@ -15,6 +16,7 @@ const char g_scm_rev[] = GIT_REV;
const char g_scm_branch[] = GIT_BRANCH;
const char g_scm_desc[] = GIT_DESC;
const char g_build_name[] = BUILD_NAME;
+const char g_build_date[] = BUILD_DATE;
} // namespace
diff --git a/src/common/scm_rev.h b/src/common/scm_rev.h
index e22389803..18aaa1735 100644
--- a/src/common/scm_rev.h
+++ b/src/common/scm_rev.h
@@ -10,5 +10,6 @@ extern const char g_scm_rev[];
extern const char g_scm_branch[];
extern const char g_scm_desc[];
extern const char g_build_name[];
+extern const char g_build_date[];
} // namespace
diff --git a/src/common/vector_math.h b/src/common/vector_math.h
index c7a461a1e..6e2a5ad60 100644
--- a/src/common/vector_math.h
+++ b/src/common/vector_math.h
@@ -31,7 +31,6 @@
#pragma once
#include <cmath>
-#include <type_traits>
namespace Math {
@@ -90,7 +89,7 @@ public:
x -= other.x;
y -= other.y;
}
- template <typename Q = T, class = typename std::enable_if<std::is_signed<Q>::value>::type>
+
Vec2<decltype(-T{})> operator-() const {
return MakeVec(-x, -y);
}
@@ -247,7 +246,7 @@ public:
y -= other.y;
z -= other.z;
}
- template <typename Q = T, class = typename std::enable_if<std::is_signed<Q>::value>::type>
+
Vec3<decltype(-T{})> operator-() const {
return MakeVec(-x, -y, -z);
}
@@ -462,7 +461,7 @@ public:
z -= other.z;
w -= other.w;
}
- template <typename Q = T, class = typename std::enable_if<std::is_signed<Q>::value>::type>
+
Vec4<decltype(-T{})> operator-() const {
return MakeVec(-x, -y, -z, -w);
}
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 0719138af..78dec8600 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -33,7 +33,6 @@ set(SRCS
frontend/camera/interface.cpp
frontend/emu_window.cpp
frontend/framebuffer_layout.cpp
- frontend/motion_emu.cpp
gdbstub/gdbstub.cpp
hle/config_mem.cpp
hle/applets/applet.cpp
@@ -60,6 +59,8 @@ set(SRCS
hle/kernel/timer.cpp
hle/kernel/vm_manager.cpp
hle/kernel/wait_object.cpp
+ hle/lock.cpp
+ hle/romfs.cpp
hle/service/ac/ac.cpp
hle/service/ac/ac_i.cpp
hle/service/ac/ac_u.cpp
@@ -226,7 +227,6 @@ set(HEADERS
frontend/emu_window.h
frontend/framebuffer_layout.h
frontend/input.h
- frontend/motion_emu.h
gdbstub/gdbstub.h
hle/config_mem.h
hle/function_wrappers.h
@@ -258,7 +258,9 @@ set(HEADERS
hle/kernel/timer.h
hle/kernel/vm_manager.h
hle/kernel/wait_object.h
+ hle/lock.h
hle/result.h
+ hle/romfs.h
hle/service/ac/ac.h
hle/service/ac/ac_i.h
hle/service/ac/ac_u.h
@@ -388,5 +390,8 @@ set(HEADERS
create_directory_groups(${SRCS} ${HEADERS})
add_library(core STATIC ${SRCS} ${HEADERS})
-target_link_libraries(core PUBLIC common PRIVATE audio_core video_core)
+target_link_libraries(core PUBLIC common PRIVATE audio_core network video_core)
target_link_libraries(core PUBLIC Boost::boost PRIVATE cryptopp dynarmic fmt)
+if (ENABLE_WEB_SERVICE)
+ target_link_libraries(core PUBLIC json-headers web_service)
+endif()
diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp
index 7d2790b08..0a0b91590 100644
--- a/src/core/arm/dynarmic/arm_dynarmic.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic.cpp
@@ -136,7 +136,7 @@ MICROPROFILE_DEFINE(ARM_Jit, "ARM JIT", "ARM JIT", MP_RGB(255, 64, 64));
void ARM_Dynarmic::ExecuteInstructions(int num_instructions) {
MICROPROFILE_SCOPE(ARM_Jit);
- unsigned ticks_executed = jit->Run(static_cast<unsigned>(num_instructions));
+ std::size_t ticks_executed = jit->Run(static_cast<unsigned>(num_instructions));
AddTicks(ticks_executed);
}
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
index f4fbb8d04..3522d1e82 100644
--- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
+++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
@@ -759,7 +759,7 @@ static ThumbDecodeStatus DecodeThumbInstruction(u32 inst, u32 addr, u32* arm_ins
ThumbDecodeStatus ret = TranslateThumbInstruction(addr, inst, arm_inst, inst_size);
if (ret == ThumbDecodeStatus::BRANCH) {
int inst_index;
- int table_length = arm_instruction_trans_len;
+ int table_length = static_cast<int>(arm_instruction_trans_len);
u32 tinstr = GetThumbInstruction(inst, addr);
switch ((tinstr & 0xF800) >> 11) {
@@ -838,7 +838,7 @@ static unsigned int InterpreterTranslateInstruction(const ARMul_State* cpu, cons
return inst_size;
}
-static int InterpreterTranslateBlock(ARMul_State* cpu, int& bb_start, u32 addr) {
+static int InterpreterTranslateBlock(ARMul_State* cpu, std::size_t& bb_start, u32 addr) {
MICROPROFILE_SCOPE(DynCom_Decode);
// Decode instruction, get index
@@ -871,7 +871,7 @@ static int InterpreterTranslateBlock(ARMul_State* cpu, int& bb_start, u32 addr)
return KEEP_GOING;
}
-static int InterpreterTranslateSingle(ARMul_State* cpu, int& bb_start, u32 addr) {
+static int InterpreterTranslateSingle(ARMul_State* cpu, std::size_t& bb_start, u32 addr) {
MICROPROFILE_SCOPE(DynCom_Decode);
ARM_INST_PTR inst_base = nullptr;
@@ -1620,7 +1620,7 @@ unsigned InterpreterMainLoop(ARMul_State* cpu) {
unsigned int addr;
unsigned int num_instrs = 0;
- int ptr;
+ std::size_t ptr;
LOAD_NZCVT;
DISPATCH : {
diff --git a/src/core/arm/skyeye_common/armstate.h b/src/core/arm/skyeye_common/armstate.h
index 1a707ff7e..893877797 100644
--- a/src/core/arm/skyeye_common/armstate.h
+++ b/src/core/arm/skyeye_common/armstate.h
@@ -230,7 +230,7 @@ public:
// TODO(bunnei): Move this cache to a better place - it should be per codeset (likely per
// process for our purposes), not per ARMul_State (which tracks CPU core state).
- std::unordered_map<u32, int> instruction_cache;
+ std::unordered_map<u32, std::size_t> instruction_cache;
private:
void ResetMPCoreCP15Registers();
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 5429bcb26..5332318cf 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -19,6 +19,7 @@
#include "core/loader/loader.h"
#include "core/memory_setup.h"
#include "core/settings.h"
+#include "network/network.h"
#include "video_core/video_core.h"
namespace Core {
@@ -168,6 +169,16 @@ System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) {
}
void System::Shutdown() {
+ // Log last frame performance stats
+ auto perf_results = GetAndResetPerfStats();
+ Telemetry().AddField(Telemetry::FieldType::Performance, "Shutdown_EmulationSpeed",
+ perf_results.emulation_speed * 100.0);
+ Telemetry().AddField(Telemetry::FieldType::Performance, "Shutdown_Framerate",
+ perf_results.game_fps);
+ Telemetry().AddField(Telemetry::FieldType::Performance, "Shutdown_Frametime",
+ perf_results.frametime * 1000.0);
+
+ // Shutdown emulation session
GDBStub::Shutdown();
AudioCore::Shutdown();
VideoCore::Shutdown();
@@ -178,6 +189,10 @@ void System::Shutdown() {
cpu_core = nullptr;
app_loader = nullptr;
telemetry_session = nullptr;
+ if (auto room_member = Network::GetRoomMember().lock()) {
+ Network::GameInfo game_info{};
+ room_member->SendGameInfo(game_info);
+ }
LOG_DEBUG(Core, "Shutdown OK");
}
diff --git a/src/core/core.h b/src/core/core.h
index 4e3b6b409..9805cc694 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -7,6 +7,7 @@
#include <memory>
#include <string>
#include "common/common_types.h"
+#include "core/loader/loader.h"
#include "core/memory.h"
#include "core/perf_stats.h"
#include "core/telemetry_session.h"
@@ -14,10 +15,6 @@
class EmuWindow;
class ARM_Interface;
-namespace Loader {
-class AppLoader;
-}
-
namespace Core {
class System {
@@ -119,6 +116,10 @@ public:
return status_details;
}
+ Loader::AppLoader& GetAppLoader() const {
+ return *app_loader;
+ }
+
private:
/**
* Initialize the emulated system.
diff --git a/src/core/file_sys/archive_backend.cpp b/src/core/file_sys/archive_backend.cpp
index 1fae0ede0..87a240d7a 100644
--- a/src/core/file_sys/archive_backend.cpp
+++ b/src/core/file_sys/archive_backend.cpp
@@ -90,6 +90,8 @@ std::u16string Path::AsU16Str() const {
LOG_ERROR(Service_FS, "LowPathType cannot be converted to u16string!");
return {};
}
+
+ UNREACHABLE();
}
std::vector<u8> Path::AsBinary() const {
diff --git a/src/core/file_sys/archive_sdmc.cpp b/src/core/file_sys/archive_sdmc.cpp
index 679909d06..fe3dce5d4 100644
--- a/src/core/file_sys/archive_sdmc.cpp
+++ b/src/core/file_sys/archive_sdmc.cpp
@@ -121,7 +121,25 @@ ResultCode SDMCArchive::DeleteFile(const Path& path) const {
}
ResultCode SDMCArchive::RenameFile(const Path& src_path, const Path& dest_path) const {
- if (FileUtil::Rename(mount_point + src_path.AsString(), mount_point + dest_path.AsString())) {
+ const PathParser path_parser_src(src_path);
+
+ // TODO: Verify these return codes with HW
+ if (!path_parser_src.IsValid()) {
+ LOG_ERROR(Service_FS, "Invalid src path %s", src_path.DebugStr().c_str());
+ return ERROR_INVALID_PATH;
+ }
+
+ const PathParser path_parser_dest(dest_path);
+
+ if (!path_parser_dest.IsValid()) {
+ LOG_ERROR(Service_FS, "Invalid dest path %s", dest_path.DebugStr().c_str());
+ return ERROR_INVALID_PATH;
+ }
+
+ const auto src_path_full = path_parser_src.BuildHostPath(mount_point);
+ const auto dest_path_full = path_parser_dest.BuildHostPath(mount_point);
+
+ if (FileUtil::Rename(src_path_full, dest_path_full)) {
return RESULT_SUCCESS;
}
@@ -260,8 +278,27 @@ ResultCode SDMCArchive::CreateDirectory(const Path& path) const {
}
ResultCode SDMCArchive::RenameDirectory(const Path& src_path, const Path& dest_path) const {
- if (FileUtil::Rename(mount_point + src_path.AsString(), mount_point + dest_path.AsString()))
+ const PathParser path_parser_src(src_path);
+
+ // TODO: Verify these return codes with HW
+ if (!path_parser_src.IsValid()) {
+ LOG_ERROR(Service_FS, "Invalid src path %s", src_path.DebugStr().c_str());
+ return ERROR_INVALID_PATH;
+ }
+
+ const PathParser path_parser_dest(dest_path);
+
+ if (!path_parser_dest.IsValid()) {
+ LOG_ERROR(Service_FS, "Invalid dest path %s", dest_path.DebugStr().c_str());
+ return ERROR_INVALID_PATH;
+ }
+
+ const auto src_path_full = path_parser_src.BuildHostPath(mount_point);
+ const auto dest_path_full = path_parser_dest.BuildHostPath(mount_point);
+
+ if (FileUtil::Rename(src_path_full, dest_path_full)) {
return RESULT_SUCCESS;
+ }
// TODO(yuriks): This code probably isn't right, it'll return a Status even if the file didn't
// exist or similar. Verify.
diff --git a/src/core/file_sys/savedata_archive.cpp b/src/core/file_sys/savedata_archive.cpp
index f540c4a93..f8f811ba0 100644
--- a/src/core/file_sys/savedata_archive.cpp
+++ b/src/core/file_sys/savedata_archive.cpp
@@ -106,7 +106,25 @@ ResultCode SaveDataArchive::DeleteFile(const Path& path) const {
}
ResultCode SaveDataArchive::RenameFile(const Path& src_path, const Path& dest_path) const {
- if (FileUtil::Rename(mount_point + src_path.AsString(), mount_point + dest_path.AsString())) {
+ const PathParser path_parser_src(src_path);
+
+ // TODO: Verify these return codes with HW
+ if (!path_parser_src.IsValid()) {
+ LOG_ERROR(Service_FS, "Invalid src path %s", src_path.DebugStr().c_str());
+ return ERROR_INVALID_PATH;
+ }
+
+ const PathParser path_parser_dest(dest_path);
+
+ if (!path_parser_dest.IsValid()) {
+ LOG_ERROR(Service_FS, "Invalid dest path %s", dest_path.DebugStr().c_str());
+ return ERROR_INVALID_PATH;
+ }
+
+ const auto src_path_full = path_parser_src.BuildHostPath(mount_point);
+ const auto dest_path_full = path_parser_dest.BuildHostPath(mount_point);
+
+ if (FileUtil::Rename(src_path_full, dest_path_full)) {
return RESULT_SUCCESS;
}
@@ -247,8 +265,27 @@ ResultCode SaveDataArchive::CreateDirectory(const Path& path) const {
}
ResultCode SaveDataArchive::RenameDirectory(const Path& src_path, const Path& dest_path) const {
- if (FileUtil::Rename(mount_point + src_path.AsString(), mount_point + dest_path.AsString()))
+ const PathParser path_parser_src(src_path);
+
+ // TODO: Verify these return codes with HW
+ if (!path_parser_src.IsValid()) {
+ LOG_ERROR(Service_FS, "Invalid src path %s", src_path.DebugStr().c_str());
+ return ERROR_INVALID_PATH;
+ }
+
+ const PathParser path_parser_dest(dest_path);
+
+ if (!path_parser_dest.IsValid()) {
+ LOG_ERROR(Service_FS, "Invalid dest path %s", dest_path.DebugStr().c_str());
+ return ERROR_INVALID_PATH;
+ }
+
+ const auto src_path_full = path_parser_src.BuildHostPath(mount_point);
+ const auto dest_path_full = path_parser_dest.BuildHostPath(mount_point);
+
+ if (FileUtil::Rename(src_path_full, dest_path_full)) {
return RESULT_SUCCESS;
+ }
// TODO(yuriks): This code probably isn't right, it'll return a Status even if the file didn't
// exist or similar. Verify.
diff --git a/src/core/frontend/emu_window.cpp b/src/core/frontend/emu_window.cpp
index 4f7d54a33..e67394177 100644
--- a/src/core/frontend/emu_window.cpp
+++ b/src/core/frontend/emu_window.cpp
@@ -2,14 +2,55 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <algorithm>
#include <cmath>
-#include "common/assert.h"
-#include "core/3ds.h"
-#include "core/core.h"
+#include <mutex>
#include "core/frontend/emu_window.h"
+#include "core/frontend/input.h"
#include "core/settings.h"
+class EmuWindow::TouchState : public Input::Factory<Input::TouchDevice>,
+ public std::enable_shared_from_this<TouchState> {
+public:
+ std::unique_ptr<Input::TouchDevice> Create(const Common::ParamPackage&) override {
+ return std::make_unique<Device>(shared_from_this());
+ }
+
+ std::mutex mutex;
+
+ bool touch_pressed = false; ///< True if touchpad area is currently pressed, otherwise false
+
+ float touch_x = 0.0f; ///< Touchpad X-position
+ float touch_y = 0.0f; ///< Touchpad Y-position
+
+private:
+ class Device : public Input::TouchDevice {
+ public:
+ explicit Device(std::weak_ptr<TouchState>&& touch_state) : touch_state(touch_state) {}
+ std::tuple<float, float, bool> GetStatus() const override {
+ if (auto state = touch_state.lock()) {
+ std::lock_guard<std::mutex> guard(state->mutex);
+ return std::make_tuple(state->touch_x, state->touch_y, state->touch_pressed);
+ }
+ return std::make_tuple(0.0f, 0.0f, false);
+ }
+
+ private:
+ std::weak_ptr<TouchState> touch_state;
+ };
+};
+
+EmuWindow::EmuWindow() {
+ // TODO: Find a better place to set this.
+ config.min_client_area_size = std::make_pair(400u, 480u);
+ active_config = config;
+ touch_state = std::make_shared<TouchState>();
+ Input::RegisterFactory<Input::TouchDevice>("emu_window", touch_state);
+}
+
+EmuWindow::~EmuWindow() {
+ Input::UnregisterFactory<Input::TouchDevice>("emu_window");
+}
+
/**
* Check if the given x/y coordinates are within the touchpad specified by the framebuffer layout
* @param layout FramebufferLayout object describing the framebuffer size and screen positions
@@ -38,22 +79,26 @@ void EmuWindow::TouchPressed(unsigned framebuffer_x, unsigned framebuffer_y) {
if (!IsWithinTouchscreen(framebuffer_layout, framebuffer_x, framebuffer_y))
return;
- touch_x = Core::kScreenBottomWidth * (framebuffer_x - framebuffer_layout.bottom_screen.left) /
- (framebuffer_layout.bottom_screen.right - framebuffer_layout.bottom_screen.left);
- touch_y = Core::kScreenBottomHeight * (framebuffer_y - framebuffer_layout.bottom_screen.top) /
- (framebuffer_layout.bottom_screen.bottom - framebuffer_layout.bottom_screen.top);
+ std::lock_guard<std::mutex> guard(touch_state->mutex);
+ touch_state->touch_x =
+ static_cast<float>(framebuffer_x - framebuffer_layout.bottom_screen.left) /
+ (framebuffer_layout.bottom_screen.right - framebuffer_layout.bottom_screen.left);
+ touch_state->touch_y =
+ static_cast<float>(framebuffer_y - framebuffer_layout.bottom_screen.top) /
+ (framebuffer_layout.bottom_screen.bottom - framebuffer_layout.bottom_screen.top);
- touch_pressed = true;
+ touch_state->touch_pressed = true;
}
void EmuWindow::TouchReleased() {
- touch_pressed = false;
- touch_x = 0;
- touch_y = 0;
+ std::lock_guard<std::mutex> guard(touch_state->mutex);
+ touch_state->touch_pressed = false;
+ touch_state->touch_x = 0;
+ touch_state->touch_y = 0;
}
void EmuWindow::TouchMoved(unsigned framebuffer_x, unsigned framebuffer_y) {
- if (!touch_pressed)
+ if (!touch_state->touch_pressed)
return;
if (!IsWithinTouchscreen(framebuffer_layout, framebuffer_x, framebuffer_y))
@@ -62,29 +107,6 @@ void EmuWindow::TouchMoved(unsigned framebuffer_x, unsigned framebuffer_y) {
TouchPressed(framebuffer_x, framebuffer_y);
}
-void EmuWindow::AccelerometerChanged(float x, float y, float z) {
- constexpr float coef = 512;
-
- std::lock_guard<std::mutex> lock(accel_mutex);
-
- // TODO(wwylele): do a time stretch as it in GyroscopeChanged
- // The time stretch formula should be like
- // stretched_vector = (raw_vector - gravity) * stretch_ratio + gravity
- accel_x = static_cast<s16>(x * coef);
- accel_y = static_cast<s16>(y * coef);
- accel_z = static_cast<s16>(z * coef);
-}
-
-void EmuWindow::GyroscopeChanged(float x, float y, float z) {
- constexpr float FULL_FPS = 60;
- float coef = GetGyroscopeRawToDpsCoefficient();
- float stretch = Core::System::GetInstance().perf_stats.GetLastFrameTimeScale();
- std::lock_guard<std::mutex> lock(gyro_mutex);
- gyro_x = static_cast<s16>(x * coef * stretch);
- gyro_y = static_cast<s16>(y * coef * stretch);
- gyro_z = static_cast<s16>(z * coef * stretch);
-}
-
void EmuWindow::UpdateCurrentFramebufferLayout(unsigned width, unsigned height) {
Layout::FramebufferLayout layout;
if (Settings::values.custom_layout == true) {
@@ -97,6 +119,9 @@ void EmuWindow::UpdateCurrentFramebufferLayout(unsigned width, unsigned height)
case Settings::LayoutOption::LargeScreen:
layout = Layout::LargeFrameLayout(width, height, Settings::values.swap_screen);
break;
+ case Settings::LayoutOption::SideScreen:
+ layout = Layout::SideFrameLayout(width, height, Settings::values.swap_screen);
+ break;
case Settings::LayoutOption::Default:
default:
layout = Layout::DefaultFrameLayout(width, height, Settings::values.swap_screen);
diff --git a/src/core/frontend/emu_window.h b/src/core/frontend/emu_window.h
index 9414123a4..c10dee51b 100644
--- a/src/core/frontend/emu_window.h
+++ b/src/core/frontend/emu_window.h
@@ -4,11 +4,10 @@
#pragma once
-#include <mutex>
+#include <memory>
#include <tuple>
#include <utility>
#include "common/common_types.h"
-#include "common/math_util.h"
#include "core/frontend/framebuffer_layout.h"
/**
@@ -69,84 +68,6 @@ public:
void TouchMoved(unsigned framebuffer_x, unsigned framebuffer_y);
/**
- * Signal accelerometer state has changed.
- * @param x X-axis accelerometer value
- * @param y Y-axis accelerometer value
- * @param z Z-axis accelerometer value
- * @note all values are in unit of g (gravitational acceleration).
- * e.g. x = 1.0 means 9.8m/s^2 in x direction.
- * @see GetAccelerometerState for axis explanation.
- */
- void AccelerometerChanged(float x, float y, float z);
-
- /**
- * Signal gyroscope state has changed.
- * @param x X-axis accelerometer value
- * @param y Y-axis accelerometer value
- * @param z Z-axis accelerometer value
- * @note all values are in deg/sec.
- * @see GetGyroscopeState for axis explanation.
- */
- void GyroscopeChanged(float x, float y, float z);
-
- /**
- * Gets the current touch screen state (touch X/Y coordinates and whether or not it is pressed).
- * @note This should be called by the core emu thread to get a state set by the window thread.
- * @todo Fix this function to be thread-safe.
- * @return std::tuple of (x, y, pressed) where `x` and `y` are the touch coordinates and
- * `pressed` is true if the touch screen is currently being pressed
- */
- std::tuple<u16, u16, bool> GetTouchState() const {
- return std::make_tuple(touch_x, touch_y, touch_pressed);
- }
-
- /**
- * Gets the current accelerometer state (acceleration along each three axis).
- * Axis explained:
- * +x is the same direction as LEFT on D-pad.
- * +y is normal to the touch screen, pointing outward.
- * +z is the same direction as UP on D-pad.
- * Units:
- * 1 unit of return value = 1/512 g (measured by hw test),
- * where g is the gravitational acceleration (9.8 m/sec2).
- * @note This should be called by the core emu thread to get a state set by the window thread.
- * @return std::tuple of (x, y, z)
- */
- std::tuple<s16, s16, s16> GetAccelerometerState() {
- std::lock_guard<std::mutex> lock(accel_mutex);
- return std::make_tuple(accel_x, accel_y, accel_z);
- }
-
- /**
- * Gets the current gyroscope state (angular rates about each three axis).
- * Axis explained:
- * +x is the same direction as LEFT on D-pad.
- * +y is normal to the touch screen, pointing outward.
- * +z is the same direction as UP on D-pad.
- * Orientation is determined by right-hand rule.
- * Units:
- * 1 unit of return value = (1/coef) deg/sec,
- * where coef is the return value of GetGyroscopeRawToDpsCoefficient().
- * @note This should be called by the core emu thread to get a state set by the window thread.
- * @return std::tuple of (x, y, z)
- */
- std::tuple<s16, s16, s16> GetGyroscopeState() {
- std::lock_guard<std::mutex> lock(gyro_mutex);
- return std::make_tuple(gyro_x, gyro_y, gyro_z);
- }
-
- /**
- * Gets the coefficient for units conversion of gyroscope state.
- * The conversion formula is r = coefficient * v,
- * where v is angular rate in deg/sec,
- * and r is the gyroscope state.
- * @return float-type coefficient
- */
- f32 GetGyroscopeRawToDpsCoefficient() const {
- return 14.375f; // taken from hw test, and gyroscope's document
- }
-
- /**
* Returns currently active configuration.
* @note Accesses to the returned object need not be consistent because it may be modified in
* another thread
@@ -180,21 +101,8 @@ public:
void UpdateCurrentFramebufferLayout(unsigned width, unsigned height);
protected:
- EmuWindow() {
- // TODO: Find a better place to set this.
- config.min_client_area_size = std::make_pair(400u, 480u);
- active_config = config;
- touch_x = 0;
- touch_y = 0;
- touch_pressed = false;
- accel_x = 0;
- accel_y = -512;
- accel_z = 0;
- gyro_x = 0;
- gyro_y = 0;
- gyro_z = 0;
- }
- virtual ~EmuWindow() {}
+ EmuWindow();
+ virtual ~EmuWindow();
/**
* Processes any pending configuration changes from the last SetConfig call.
@@ -250,20 +158,8 @@ private:
/// ProcessConfigurationChanges)
WindowConfig active_config; ///< Internal active configuration
- bool touch_pressed; ///< True if touchpad area is currently pressed, otherwise false
-
- u16 touch_x; ///< Touchpad X-position in native 3DS pixel coordinates (0-320)
- u16 touch_y; ///< Touchpad Y-position in native 3DS pixel coordinates (0-240)
-
- std::mutex accel_mutex;
- s16 accel_x; ///< Accelerometer X-axis value in native 3DS units
- s16 accel_y; ///< Accelerometer Y-axis value in native 3DS units
- s16 accel_z; ///< Accelerometer Z-axis value in native 3DS units
-
- std::mutex gyro_mutex;
- s16 gyro_x; ///< Gyroscope X-axis value in native 3DS units
- s16 gyro_y; ///< Gyroscope Y-axis value in native 3DS units
- s16 gyro_z; ///< Gyroscope Z-axis value in native 3DS units
+ class TouchState;
+ std::shared_ptr<TouchState> touch_state;
/**
* Clip the provided coordinates to be inside the touchscreen area.
diff --git a/src/core/frontend/framebuffer_layout.cpp b/src/core/frontend/framebuffer_layout.cpp
index d2d02f9ff..e9f778fcb 100644
--- a/src/core/frontend/framebuffer_layout.cpp
+++ b/src/core/frontend/framebuffer_layout.cpp
@@ -141,6 +141,40 @@ FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool swapped
return res;
}
+FramebufferLayout SideFrameLayout(unsigned width, unsigned height, bool swapped) {
+ ASSERT(width > 0);
+ ASSERT(height > 0);
+
+ FramebufferLayout res{width, height, true, true, {}, {}};
+ // Aspect ratio of both screens side by side
+ const float emulation_aspect_ratio = static_cast<float>(Core::kScreenTopHeight) /
+ (Core::kScreenTopWidth + Core::kScreenBottomWidth);
+ float window_aspect_ratio = static_cast<float>(height) / width;
+ MathUtil::Rectangle<unsigned> screen_window_area{0, 0, width, height};
+ // Find largest Rectangle that can fit in the window size with the given aspect ratio
+ MathUtil::Rectangle<unsigned> screen_rect =
+ maxRectangle(screen_window_area, emulation_aspect_ratio);
+ // Find sizes of top and bottom screen
+ MathUtil::Rectangle<unsigned> top_screen = maxRectangle(screen_rect, TOP_SCREEN_ASPECT_RATIO);
+ MathUtil::Rectangle<unsigned> bot_screen = maxRectangle(screen_rect, BOT_SCREEN_ASPECT_RATIO);
+
+ if (window_aspect_ratio < emulation_aspect_ratio) {
+ // Apply borders to the left and right sides of the window.
+ u32 shift_horizontal = (screen_window_area.GetWidth() - screen_rect.GetWidth()) / 2;
+ top_screen = top_screen.TranslateX(shift_horizontal);
+ bot_screen = bot_screen.TranslateX(shift_horizontal);
+ } else {
+ // Window is narrower than the emulation content => apply borders to the top and bottom
+ u32 shift_vertical = (screen_window_area.GetHeight() - screen_rect.GetHeight()) / 2;
+ top_screen = top_screen.TranslateY(shift_vertical);
+ bot_screen = bot_screen.TranslateY(shift_vertical);
+ }
+ // Move the top screen to the right if we are swapped.
+ res.top_screen = swapped ? top_screen.TranslateX(bot_screen.GetWidth()) : top_screen;
+ res.bottom_screen = swapped ? bot_screen : bot_screen.TranslateX(top_screen.GetWidth());
+ return res;
+}
+
FramebufferLayout CustomFrameLayout(unsigned width, unsigned height) {
ASSERT(width > 0);
ASSERT(height > 0);
@@ -158,4 +192,4 @@ FramebufferLayout CustomFrameLayout(unsigned width, unsigned height) {
res.bottom_screen = bot_screen;
return res;
}
-}
+} // namespace Layout
diff --git a/src/core/frontend/framebuffer_layout.h b/src/core/frontend/framebuffer_layout.h
index 9a7738969..4983cf103 100644
--- a/src/core/frontend/framebuffer_layout.h
+++ b/src/core/frontend/framebuffer_layout.h
@@ -54,6 +54,17 @@ FramebufferLayout SingleFrameLayout(unsigned width, unsigned height, bool is_swa
FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool is_swapped);
/**
+* Factory method for constructing a Frame with the Top screen and bottom
+* screen side by side
+* This is useful for devices with small screens, like the GPDWin
+* @param width Window framebuffer width in pixels
+* @param height Window framebuffer height in pixels
+* @param is_swapped if true, the bottom screen will be the left display
+* @return Newly created FramebufferLayout object with default screen regions initialized
+*/
+FramebufferLayout SideFrameLayout(unsigned width, unsigned height, bool is_swapped);
+
+/**
* Factory method for constructing a custom FramebufferLayout
* @param width Window framebuffer width in pixels
* @param height Window framebuffer height in pixels
diff --git a/src/core/frontend/input.h b/src/core/frontend/input.h
index 0a5713dc0..8c256beb5 100644
--- a/src/core/frontend/input.h
+++ b/src/core/frontend/input.h
@@ -11,6 +11,7 @@
#include <utility>
#include "common/logging/log.h"
#include "common/param_package.h"
+#include "common/vector_math.h"
namespace Input {
@@ -107,4 +108,28 @@ using ButtonDevice = InputDevice<bool>;
*/
using AnalogDevice = InputDevice<std::tuple<float, float>>;
+/**
+ * A motion device is an input device that returns a tuple of accelerometer state vector and
+ * gyroscope state vector.
+ *
+ * For both vectors:
+ * x+ is the same direction as LEFT on D-pad.
+ * y+ is normal to the touch screen, pointing outward.
+ * z+ is the same direction as UP on D-pad.
+ *
+ * For accelerometer state vector
+ * Units: g (gravitational acceleration)
+ *
+ * For gyroscope state vector:
+ * Orientation is determined by right-hand rule.
+ * Units: deg/sec
+ */
+using MotionDevice = InputDevice<std::tuple<Math::Vec3<float>, Math::Vec3<float>>>;
+
+/**
+ * A touch device is an input device that returns a tuple of two floats and a bool. The floats are
+ * x and y coordinates in the range 0.0 - 1.0, and the bool indicates whether it is pressed.
+ */
+using TouchDevice = InputDevice<std::tuple<float, float, bool>>;
+
} // namespace Input
diff --git a/src/core/frontend/motion_emu.cpp b/src/core/frontend/motion_emu.cpp
deleted file mode 100644
index 9a5b3185d..000000000
--- a/src/core/frontend/motion_emu.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright 2016 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#include "common/math_util.h"
-#include "common/quaternion.h"
-#include "core/frontend/emu_window.h"
-#include "core/frontend/motion_emu.h"
-
-namespace Motion {
-
-static constexpr int update_millisecond = 100;
-static constexpr auto update_duration =
- std::chrono::duration_cast<std::chrono::steady_clock::duration>(
- std::chrono::milliseconds(update_millisecond));
-
-MotionEmu::MotionEmu(EmuWindow& emu_window)
- : motion_emu_thread(&MotionEmu::MotionEmuThread, this, std::ref(emu_window)) {}
-
-MotionEmu::~MotionEmu() {
- if (motion_emu_thread.joinable()) {
- shutdown_event.Set();
- motion_emu_thread.join();
- }
-}
-
-void MotionEmu::MotionEmuThread(EmuWindow& emu_window) {
- auto update_time = std::chrono::steady_clock::now();
- Math::Quaternion<float> q = MakeQuaternion(Math::Vec3<float>(), 0);
- Math::Quaternion<float> old_q;
-
- while (!shutdown_event.WaitUntil(update_time)) {
- update_time += update_duration;
- old_q = q;
-
- {
- std::lock_guard<std::mutex> guard(tilt_mutex);
-
- // Find the quaternion describing current 3DS tilting
- q = MakeQuaternion(Math::MakeVec(-tilt_direction.y, 0.0f, tilt_direction.x),
- tilt_angle);
- }
-
- auto inv_q = q.Inverse();
-
- // Set the gravity vector in world space
- auto gravity = Math::MakeVec(0.0f, -1.0f, 0.0f);
-
- // Find the angular rate vector in world space
- auto angular_rate = ((q - old_q) * inv_q).xyz * 2;
- angular_rate *= 1000 / update_millisecond / MathUtil::PI * 180;
-
- // Transform the two vectors from world space to 3DS space
- gravity = QuaternionRotate(inv_q, gravity);
- angular_rate = QuaternionRotate(inv_q, angular_rate);
-
- // Update the sensor state
- emu_window.AccelerometerChanged(gravity.x, gravity.y, gravity.z);
- emu_window.GyroscopeChanged(angular_rate.x, angular_rate.y, angular_rate.z);
- }
-}
-
-void MotionEmu::BeginTilt(int x, int y) {
- mouse_origin = Math::MakeVec(x, y);
- is_tilting = true;
-}
-
-void MotionEmu::Tilt(int x, int y) {
- constexpr float SENSITIVITY = 0.01f;
- auto mouse_move = Math::MakeVec(x, y) - mouse_origin;
- if (is_tilting) {
- std::lock_guard<std::mutex> guard(tilt_mutex);
- if (mouse_move.x == 0 && mouse_move.y == 0) {
- tilt_angle = 0;
- } else {
- tilt_direction = mouse_move.Cast<float>();
- tilt_angle = MathUtil::Clamp(tilt_direction.Normalize() * SENSITIVITY, 0.0f,
- MathUtil::PI * 0.5f);
- }
- }
-}
-
-void MotionEmu::EndTilt() {
- std::lock_guard<std::mutex> guard(tilt_mutex);
- tilt_angle = 0;
- is_tilting = false;
-}
-
-} // namespace Motion
diff --git a/src/core/frontend/motion_emu.h b/src/core/frontend/motion_emu.h
deleted file mode 100644
index 99d41a726..000000000
--- a/src/core/frontend/motion_emu.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2016 Citra Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-#include "common/thread.h"
-#include "common/vector_math.h"
-
-class EmuWindow;
-
-namespace Motion {
-
-class MotionEmu final {
-public:
- MotionEmu(EmuWindow& emu_window);
- ~MotionEmu();
-
- /**
- * Signals that a motion sensor tilt has begun.
- * @param x the x-coordinate of the cursor
- * @param y the y-coordinate of the cursor
- */
- void BeginTilt(int x, int y);
-
- /**
- * Signals that a motion sensor tilt is occurring.
- * @param x the x-coordinate of the cursor
- * @param y the y-coordinate of the cursor
- */
- void Tilt(int x, int y);
-
- /**
- * Signals that a motion sensor tilt has ended.
- */
- void EndTilt();
-
-private:
- Math::Vec2<int> mouse_origin;
-
- std::mutex tilt_mutex;
- Math::Vec2<float> tilt_direction;
- float tilt_angle = 0;
-
- bool is_tilting = false;
-
- Common::Event shutdown_event;
- std::thread motion_emu_thread;
-
- void MotionEmuThread(EmuWindow& emu_window);
-};
-
-} // namespace Motion
diff --git a/src/core/hle/applets/erreula.cpp b/src/core/hle/applets/erreula.cpp
index 75d7fd9fc..518f371f5 100644
--- a/src/core/hle/applets/erreula.cpp
+++ b/src/core/hle/applets/erreula.cpp
@@ -31,8 +31,8 @@ ResultCode ErrEula::ReceiveParameter(const Service::APT::MessageParameter& param
heap_memory = std::make_shared<std::vector<u8>>(capture_info.size);
// Create a SharedMemory that directly points to this heap block.
framebuffer_memory = Kernel::SharedMemory::CreateForApplet(
- heap_memory, 0, heap_memory->size(), MemoryPermission::ReadWrite,
- MemoryPermission::ReadWrite, "ErrEula Memory");
+ heap_memory, 0, capture_info.size, MemoryPermission::ReadWrite, MemoryPermission::ReadWrite,
+ "ErrEula Memory");
// Send the response message with the newly created SharedMemory
Service::APT::MessageParameter result;
diff --git a/src/core/hle/applets/mii_selector.cpp b/src/core/hle/applets/mii_selector.cpp
index 89f08daa2..f225c23a5 100644
--- a/src/core/hle/applets/mii_selector.cpp
+++ b/src/core/hle/applets/mii_selector.cpp
@@ -38,8 +38,8 @@ ResultCode MiiSelector::ReceiveParameter(const Service::APT::MessageParameter& p
heap_memory = std::make_shared<std::vector<u8>>(capture_info.size);
// Create a SharedMemory that directly points to this heap block.
framebuffer_memory = Kernel::SharedMemory::CreateForApplet(
- heap_memory, 0, heap_memory->size(), MemoryPermission::ReadWrite,
- MemoryPermission::ReadWrite, "MiiSelector Memory");
+ heap_memory, 0, capture_info.size, MemoryPermission::ReadWrite, MemoryPermission::ReadWrite,
+ "MiiSelector Memory");
// Send the response message with the newly created SharedMemory
Service::APT::MessageParameter result;
@@ -66,7 +66,7 @@ ResultCode MiiSelector::StartImpl(const Service::APT::AppletStartupParameter& pa
// continue.
MiiResult result;
memset(&result, 0, sizeof(result));
- result.result_code = 0;
+ result.return_code = 0;
// Let the application know that we're closing
Service::APT::MessageParameter message;
@@ -82,5 +82,5 @@ ResultCode MiiSelector::StartImpl(const Service::APT::AppletStartupParameter& pa
}
void MiiSelector::Update() {}
-}
-} // namespace
+} // namespace Applets
+} // namespace HLE
diff --git a/src/core/hle/applets/mii_selector.h b/src/core/hle/applets/mii_selector.h
index ec00e29d2..136ce8948 100644
--- a/src/core/hle/applets/mii_selector.h
+++ b/src/core/hle/applets/mii_selector.h
@@ -16,51 +16,46 @@ namespace HLE {
namespace Applets {
struct MiiConfig {
- u8 unk_000;
- u8 unk_001;
- u8 unk_002;
- u8 unk_003;
- u8 unk_004;
+ u8 enable_cancel_button;
+ u8 enable_guest_mii;
+ u8 show_on_top_screen;
+ INSERT_PADDING_BYTES(5);
+ u16 title[0x40];
+ INSERT_PADDING_BYTES(4);
+ u8 show_guest_miis;
INSERT_PADDING_BYTES(3);
- u16 unk_008;
- INSERT_PADDING_BYTES(0x82);
- u8 unk_08C;
- INSERT_PADDING_BYTES(3);
- u16 unk_090;
+ u32 initially_selected_mii_index;
+ u8 guest_mii_whitelist[6];
+ u8 user_mii_whitelist[0x64];
INSERT_PADDING_BYTES(2);
- u32 unk_094;
- u16 unk_098;
- u8 unk_09A[0x64];
- u8 unk_0FE;
- u8 unk_0FF;
- u32 unk_100;
+ u32 magic_value;
};
-
static_assert(sizeof(MiiConfig) == 0x104, "MiiConfig structure has incorrect size");
#define ASSERT_REG_POSITION(field_name, position) \
static_assert(offsetof(MiiConfig, field_name) == position, \
"Field " #field_name " has invalid position")
-ASSERT_REG_POSITION(unk_008, 0x08);
-ASSERT_REG_POSITION(unk_08C, 0x8C);
-ASSERT_REG_POSITION(unk_090, 0x90);
-ASSERT_REG_POSITION(unk_094, 0x94);
-ASSERT_REG_POSITION(unk_0FE, 0xFE);
+ASSERT_REG_POSITION(title, 0x08);
+ASSERT_REG_POSITION(show_guest_miis, 0x8C);
+ASSERT_REG_POSITION(initially_selected_mii_index, 0x90);
+ASSERT_REG_POSITION(guest_mii_whitelist, 0x94);
#undef ASSERT_REG_POSITION
struct MiiResult {
- u32 result_code;
- u8 unk_04;
- INSERT_PADDING_BYTES(7);
- u8 unk_0C[0x60];
- u8 unk_6C[0x16];
+ u32 return_code;
+ u32 is_guest_mii_selected;
+ u32 selected_guest_mii_index;
+ // TODO(mailwl): expand to Mii Format structure: https://www.3dbrew.org/wiki/Mii
+ u8 selected_mii_data[0x5C];
INSERT_PADDING_BYTES(2);
+ u16 mii_data_checksum;
+ u16 guest_mii_name[0xC];
};
static_assert(sizeof(MiiResult) == 0x84, "MiiResult structure has incorrect size");
#define ASSERT_REG_POSITION(field_name, position) \
static_assert(offsetof(MiiResult, field_name) == position, \
"Field " #field_name " has invalid position")
-ASSERT_REG_POSITION(unk_0C, 0x0C);
-ASSERT_REG_POSITION(unk_6C, 0x6C);
+ASSERT_REG_POSITION(selected_mii_data, 0x0C);
+ASSERT_REG_POSITION(guest_mii_name, 0x6C);
#undef ASSERT_REG_POSITION
class MiiSelector final : public Applet {
@@ -79,5 +74,5 @@ private:
MiiConfig config;
};
-}
-} // namespace
+} // namespace Applets
+} // namespace HLE
diff --git a/src/core/hle/applets/mint.cpp b/src/core/hle/applets/mint.cpp
index 31a79ea17..50d79190b 100644
--- a/src/core/hle/applets/mint.cpp
+++ b/src/core/hle/applets/mint.cpp
@@ -31,8 +31,8 @@ ResultCode Mint::ReceiveParameter(const Service::APT::MessageParameter& paramete
heap_memory = std::make_shared<std::vector<u8>>(capture_info.size);
// Create a SharedMemory that directly points to this heap block.
framebuffer_memory = Kernel::SharedMemory::CreateForApplet(
- heap_memory, 0, heap_memory->size(), MemoryPermission::ReadWrite,
- MemoryPermission::ReadWrite, "Mint Memory");
+ heap_memory, 0, capture_info.size, MemoryPermission::ReadWrite, MemoryPermission::ReadWrite,
+ "Mint Memory");
// Send the response message with the newly created SharedMemory
Service::APT::MessageParameter result;
diff --git a/src/core/hle/applets/swkbd.cpp b/src/core/hle/applets/swkbd.cpp
index fdf8807b0..0bc471a3a 100644
--- a/src/core/hle/applets/swkbd.cpp
+++ b/src/core/hle/applets/swkbd.cpp
@@ -41,8 +41,8 @@ ResultCode SoftwareKeyboard::ReceiveParameter(Service::APT::MessageParameter con
heap_memory = std::make_shared<std::vector<u8>>(capture_info.size);
// Create a SharedMemory that directly points to this heap block.
framebuffer_memory = Kernel::SharedMemory::CreateForApplet(
- heap_memory, 0, heap_memory->size(), MemoryPermission::ReadWrite,
- MemoryPermission::ReadWrite, "SoftwareKeyboard Memory");
+ heap_memory, 0, capture_info.size, MemoryPermission::ReadWrite, MemoryPermission::ReadWrite,
+ "SoftwareKeyboard Memory");
// Send the response message with the newly created SharedMemory
Service::APT::MessageParameter result;
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index 9cf288b08..73fab3981 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -8,6 +8,7 @@
#include <string>
#include <utility>
#include <boost/smart_ptr/intrusive_ptr.hpp>
+#include "common/assert.h"
#include "common/common_types.h"
namespace Kernel {
@@ -84,6 +85,8 @@ public:
case HandleType::ClientSession:
return false;
}
+
+ UNREACHABLE();
}
public:
@@ -129,4 +132,4 @@ void Init(u32 system_mode);
/// Shutdown the kernel
void Shutdown();
-} // namespace
+} // namespace Kernel
diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp
index 922e5ab58..a7b66142f 100644
--- a/src/core/hle/kernel/shared_memory.cpp
+++ b/src/core/hle/kernel/shared_memory.cpp
@@ -149,7 +149,7 @@ ResultCode SharedMemory::Map(Process* target_process, VAddr address, MemoryPermi
if (base_address == 0 && target_address == 0) {
// Calculate the address at which to map the memory block.
- target_address = Memory::PhysicalToVirtualAddress(linear_heap_phys_address);
+ target_address = Memory::PhysicalToVirtualAddress(linear_heap_phys_address).value();
}
// Map the memory block into the target process
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index f5f2eb2f7..b957c45dd 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -478,8 +478,6 @@ void Thread::BoostPriority(s32 priority) {
}
SharedPtr<Thread> SetupMainThread(u32 entry_point, s32 priority) {
- DEBUG_ASSERT(!GetCurrentThread());
-
// Initialize new "main" thread
auto thread_res = Thread::Create("main", entry_point, priority, 0, THREADPROCESSORID_0,
Memory::HEAP_VADDR_END);
@@ -489,9 +487,7 @@ SharedPtr<Thread> SetupMainThread(u32 entry_point, s32 priority) {
thread->context.fpscr =
FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO | FPSCR_IXC; // 0x03C00010
- // Run new "main" thread
- SwitchContext(thread.get());
-
+ // Note: The newly created thread will be run when the scheduler fires.
return thread;
}
diff --git a/src/core/hle/lock.cpp b/src/core/hle/lock.cpp
new file mode 100644
index 000000000..1c24c7ce9
--- /dev/null
+++ b/src/core/hle/lock.cpp
@@ -0,0 +1,11 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <core/hle/lock.h>
+
+namespace HLE {
+std::recursive_mutex g_hle_lock;
+}
diff --git a/src/core/hle/lock.h b/src/core/hle/lock.h
new file mode 100644
index 000000000..5c99fe996
--- /dev/null
+++ b/src/core/hle/lock.h
@@ -0,0 +1,18 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <mutex>
+
+namespace HLE {
+/*
+ * Synchronizes access to the internal HLE kernel structures, it is acquired when a guest
+ * application thread performs a syscall. It should be acquired by any host threads that read or
+ * modify the HLE kernel state. Note: Any operation that directly or indirectly reads from or writes
+ * to the emulated memory is not protected by this mutex, and should be avoided in any threads other
+ * than the CPU thread.
+ */
+extern std::recursive_mutex g_hle_lock;
+} // namespace HLE
diff --git a/src/core/hle/romfs.cpp b/src/core/hle/romfs.cpp
new file mode 100644
index 000000000..3157df71d
--- /dev/null
+++ b/src/core/hle/romfs.cpp
@@ -0,0 +1,102 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <cstring>
+#include "common/swap.h"
+#include "core/hle/romfs.h"
+
+namespace RomFS {
+
+struct Header {
+ u32_le header_length;
+ u32_le dir_hash_table_offset;
+ u32_le dir_hash_table_length;
+ u32_le dir_table_offset;
+ u32_le dir_table_length;
+ u32_le file_hash_table_offset;
+ u32_le file_hash_table_length;
+ u32_le file_table_offset;
+ u32_le file_table_length;
+ u32_le data_offset;
+};
+
+static_assert(sizeof(Header) == 0x28, "Header has incorrect size");
+
+struct DirectoryMetadata {
+ u32_le parent_dir_offset;
+ u32_le next_dir_offset;
+ u32_le first_child_dir_offset;
+ u32_le first_file_offset;
+ u32_le same_hash_next_dir_offset;
+ u32_le name_length; // in bytes
+ // followed by directory name
+};
+
+static_assert(sizeof(DirectoryMetadata) == 0x18, "DirectoryMetadata has incorrect size");
+
+struct FileMetadata {
+ u32_le parent_dir_offset;
+ u32_le next_file_offset;
+ u64_le data_offset;
+ u64_le data_length;
+ u32_le same_hash_next_file_offset;
+ u32_le name_length; // in bytes
+ // followed by file name
+};
+
+static_assert(sizeof(FileMetadata) == 0x20, "FileMetadata has incorrect size");
+
+static bool MatchName(const u8* buffer, u32 name_length, const std::u16string& name) {
+ std::vector<char16_t> name_buffer(name_length / sizeof(char16_t));
+ std::memcpy(name_buffer.data(), buffer, name_length);
+ return name == std::u16string(name_buffer.begin(), name_buffer.end());
+}
+
+const u8* GetFilePointer(const u8* romfs, const std::vector<std::u16string>& path) {
+ constexpr u32 INVALID_FIELD = 0xFFFFFFFF;
+
+ // Split path into directory names and file name
+ std::vector<std::u16string> dir_names = path;
+ dir_names.pop_back();
+ const std::u16string& file_name = path.back();
+
+ Header header;
+ std::memcpy(&header, romfs, sizeof(header));
+
+ // Find directories of each level
+ DirectoryMetadata dir;
+ const u8* current_dir = romfs + header.dir_table_offset;
+ std::memcpy(&dir, current_dir, sizeof(dir));
+ for (const std::u16string& dir_name : dir_names) {
+ u32 child_dir_offset;
+ child_dir_offset = dir.first_child_dir_offset;
+ while (true) {
+ if (child_dir_offset == INVALID_FIELD) {
+ return nullptr;
+ }
+ const u8* current_child_dir = romfs + header.dir_table_offset + child_dir_offset;
+ std::memcpy(&dir, current_child_dir, sizeof(dir));
+ if (MatchName(current_child_dir + sizeof(dir), dir.name_length, dir_name)) {
+ current_dir = current_child_dir;
+ break;
+ }
+ child_dir_offset = dir.next_dir_offset;
+ }
+ }
+
+ // Find the file
+ FileMetadata file;
+ u32 file_offset = dir.first_file_offset;
+ while (file_offset != INVALID_FIELD) {
+ const u8* current_file = romfs + header.file_table_offset + file_offset;
+ std::memcpy(&file, current_file, sizeof(file));
+ if (MatchName(current_file + sizeof(file), file.name_length, file_name)) {
+ return romfs + header.data_offset + file.data_offset;
+ }
+ file_offset = file.next_file_offset;
+ }
+ return nullptr;
+}
+
+} // namespace RomFS
diff --git a/src/core/hle/romfs.h b/src/core/hle/romfs.h
new file mode 100644
index 000000000..ee9f29760
--- /dev/null
+++ b/src/core/hle/romfs.h
@@ -0,0 +1,22 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <string>
+#include <vector>
+#include "common/common_types.h"
+
+namespace RomFS {
+
+/**
+ * Gets the pointer to a file in a RomFS image.
+ * @param romfs The pointer to the RomFS image
+ * @param path A vector containing the directory names and file name of the path to the file
+ * @return the pointer to the file
+ * @todo reimplement this with a full RomFS manager
+ */
+const u8* GetFilePointer(const u8* romfs, const std::vector<std::u16string>& path);
+
+} // namespace RomFS
diff --git a/src/core/hle/service/apt/apt.cpp b/src/core/hle/service/apt/apt.cpp
index 25e7b777d..58d94768c 100644
--- a/src/core/hle/service/apt/apt.cpp
+++ b/src/core/hle/service/apt/apt.cpp
@@ -2,15 +2,18 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <boost/optional.hpp>
#include "common/common_paths.h"
#include "common/file_util.h"
#include "common/logging/log.h"
#include "core/core.h"
+#include "core/file_sys/file_backend.h"
#include "core/hle/applets/applet.h"
#include "core/hle/kernel/event.h"
#include "core/hle/kernel/mutex.h"
#include "core/hle/kernel/process.h"
#include "core/hle/kernel/shared_memory.h"
+#include "core/hle/romfs.h"
#include "core/hle/service/apt/apt.h"
#include "core/hle/service/apt/apt_a.h"
#include "core/hle/service/apt/apt_s.h"
@@ -27,11 +30,10 @@ namespace APT {
/// Handle to shared memory region designated to for shared system font
static Kernel::SharedPtr<Kernel::SharedMemory> shared_font_mem;
+static bool shared_font_loaded = false;
static bool shared_font_relocated = false;
static Kernel::SharedPtr<Kernel::Mutex> lock;
-static Kernel::SharedPtr<Kernel::Event> notification_event; ///< APT notification event
-static Kernel::SharedPtr<Kernel::Event> parameter_event; ///< APT parameter event
static u32 cpu_percent; ///< CPU time available to the running application
@@ -40,38 +42,170 @@ static u8 unknown_ns_state_field;
static ScreencapPostPermission screen_capture_post_permission;
-/// Parameter data to be returned in the next call to Glance/ReceiveParameter
-static MessageParameter next_parameter;
+/// Parameter data to be returned in the next call to Glance/ReceiveParameter.
+/// TODO(Subv): Use std::optional once we migrate to C++17.
+static boost::optional<MessageParameter> next_parameter;
+
+enum class AppletPos { Application = 0, Library = 1, System = 2, SysLibrary = 3, Resident = 4 };
+
+static constexpr size_t NumAppletSlot = 4;
+
+enum class AppletSlot : u8 {
+ Application,
+ SystemApplet,
+ HomeMenu,
+ LibraryApplet,
+
+ // An invalid tag
+ Error,
+};
+
+union AppletAttributes {
+ u32 raw;
+
+ BitField<0, 3, u32> applet_pos;
+
+ AppletAttributes() : raw(0) {}
+ AppletAttributes(u32 attributes) : raw(attributes) {}
+};
+
+struct AppletSlotData {
+ AppletId applet_id;
+ AppletSlot slot;
+ bool registered;
+ AppletAttributes attributes;
+ Kernel::SharedPtr<Kernel::Event> notification_event;
+ Kernel::SharedPtr<Kernel::Event> parameter_event;
+};
+
+// Holds data about the concurrently running applets in the system.
+static std::array<AppletSlotData, NumAppletSlot> applet_slots = {};
+
+// This overload returns nullptr if no applet with the specified id has been started.
+static AppletSlotData* GetAppletSlotData(AppletId id) {
+ auto GetSlot = [](AppletSlot slot) -> AppletSlotData* {
+ return &applet_slots[static_cast<size_t>(slot)];
+ };
+
+ if (id == AppletId::Application) {
+ auto* slot = GetSlot(AppletSlot::Application);
+ if (slot->applet_id != AppletId::None)
+ return slot;
+
+ return nullptr;
+ }
+
+ if (id == AppletId::AnySystemApplet) {
+ auto* system_slot = GetSlot(AppletSlot::SystemApplet);
+ if (system_slot->applet_id != AppletId::None)
+ return system_slot;
+
+ // The Home Menu is also a system applet, but it lives in its own slot to be able to run
+ // concurrently with other system applets.
+ auto* home_slot = GetSlot(AppletSlot::HomeMenu);
+ if (home_slot->applet_id != AppletId::None)
+ return home_slot;
+
+ return nullptr;
+ }
+
+ if (id == AppletId::AnyLibraryApplet || id == AppletId::AnySysLibraryApplet) {
+ auto* slot = GetSlot(AppletSlot::LibraryApplet);
+ if (slot->applet_id == AppletId::None)
+ return nullptr;
+
+ u32 applet_pos = slot->attributes.applet_pos;
+
+ if (id == AppletId::AnyLibraryApplet && applet_pos == static_cast<u32>(AppletPos::Library))
+ return slot;
+
+ if (id == AppletId::AnySysLibraryApplet &&
+ applet_pos == static_cast<u32>(AppletPos::SysLibrary))
+ return slot;
+
+ return nullptr;
+ }
+
+ if (id == AppletId::HomeMenu || id == AppletId::AlternateMenu) {
+ auto* slot = GetSlot(AppletSlot::HomeMenu);
+ if (slot->applet_id != AppletId::None)
+ return slot;
+
+ return nullptr;
+ }
+
+ for (auto& slot : applet_slots) {
+ if (slot.applet_id == id)
+ return &slot;
+ }
+
+ return nullptr;
+}
+
+static AppletSlotData* GetAppletSlotData(AppletAttributes attributes) {
+ // Mapping from AppletPos to AppletSlot
+ static constexpr std::array<AppletSlot, 6> applet_position_slots = {
+ AppletSlot::Application, AppletSlot::LibraryApplet, AppletSlot::SystemApplet,
+ AppletSlot::LibraryApplet, AppletSlot::Error, AppletSlot::LibraryApplet};
+
+ u32 applet_pos = attributes.applet_pos;
+ if (applet_pos >= applet_position_slots.size())
+ return nullptr;
+
+ AppletSlot slot = applet_position_slots[applet_pos];
+
+ if (slot == AppletSlot::Error)
+ return nullptr;
+
+ return &applet_slots[static_cast<size_t>(slot)];
+}
void SendParameter(const MessageParameter& parameter) {
next_parameter = parameter;
- // Signal the event to let the application know that a new parameter is ready to be read
- parameter_event->Signal();
+ // Signal the event to let the receiver know that a new parameter is ready to be read
+ auto* const slot_data = GetAppletSlotData(static_cast<AppletId>(parameter.destination_id));
+ ASSERT(slot_data);
+
+ slot_data->parameter_event->Signal();
}
void Initialize(Service::Interface* self) {
IPC::RequestParser rp(Kernel::GetCommandBuffer(), 0x2, 2, 0); // 0x20080
u32 app_id = rp.Pop<u32>();
- u32 flags = rp.Pop<u32>();
- IPC::RequestBuilder rb = rp.MakeBuilder(1, 3);
- rb.Push(RESULT_SUCCESS);
- rb.PushCopyHandles(Kernel::g_handle_table.Create(notification_event).Unwrap(),
- Kernel::g_handle_table.Create(parameter_event).Unwrap());
+ u32 attributes = rp.Pop<u32>();
- // TODO(bunnei): Check if these events are cleared every time Initialize is called.
- notification_event->Clear();
- parameter_event->Clear();
+ LOG_DEBUG(Service_APT, "called app_id=0x%08X, attributes=0x%08X", app_id, attributes);
- ASSERT_MSG((nullptr != lock), "Cannot initialize without lock");
- lock->Release();
+ auto* const slot_data = GetAppletSlotData(attributes);
- LOG_DEBUG(Service_APT, "called app_id=0x%08X, flags=0x%08X", app_id, flags);
+ // Note: The real NS service does not check if the attributes value is valid before accessing
+ // the data in the array
+ ASSERT_MSG(slot_data, "Invalid application attributes");
+
+ if (slot_data->registered) {
+ IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
+ rb.Push(ResultCode(ErrorDescription::AlreadyExists, ErrorModule::Applet,
+ ErrorSummary::InvalidState, ErrorLevel::Status));
+ return;
+ }
+
+ slot_data->applet_id = static_cast<AppletId>(app_id);
+ slot_data->attributes.raw = attributes;
+
+ IPC::RequestBuilder rb = rp.MakeBuilder(1, 3);
+ rb.Push(RESULT_SUCCESS);
+ rb.PushCopyHandles(Kernel::g_handle_table.Create(slot_data->notification_event).Unwrap(),
+ Kernel::g_handle_table.Create(slot_data->parameter_event).Unwrap());
}
void GetSharedFont(Service::Interface* self) {
IPC::RequestParser rp(Kernel::GetCommandBuffer(), 0x44, 0, 0); // 0x00440000
IPC::RequestBuilder rb = rp.MakeBuilder(2, 2);
- if (!shared_font_mem) {
+
+ // Log in telemetry if the game uses the shared font
+ Core::Telemetry().AddField(Telemetry::FieldType::Session, "RequiresSharedFont", true);
+
+ if (!shared_font_loaded) {
LOG_ERROR(Service_APT, "shared font file missing - go dump it from your 3ds");
rb.Push<u32>(-1); // TODO: Find the right error code
rb.Skip(1 + 2, true);
@@ -82,7 +216,7 @@ void GetSharedFont(Service::Interface* self) {
// The shared font has to be relocated to the new address before being passed to the
// application.
VAddr target_address =
- Memory::PhysicalToVirtualAddress(shared_font_mem->linear_heap_phys_address);
+ Memory::PhysicalToVirtualAddress(shared_font_mem->linear_heap_phys_address).value();
if (!shared_font_relocated) {
BCFNT::RelocateSharedFont(shared_font_mem, target_address);
shared_font_relocated = true;
@@ -112,7 +246,12 @@ void GetLockHandle(Service::Interface* self) {
// this will cause the app to wait until parameter_event is signaled.
u32 applet_attributes = rp.Pop<u32>();
IPC::RequestBuilder rb = rp.MakeBuilder(3, 2);
- rb.Push(RESULT_SUCCESS); // No error
+ rb.Push(RESULT_SUCCESS); // No error
+
+ // TODO(Subv): The output attributes should have an AppletPos of either Library or System |
+ // Library (depending on the type of the last launched applet) if the input attributes'
+ // AppletPos has the Library bit set.
+
rb.Push(applet_attributes); // Applet Attributes, this value is passed to Enable.
rb.Push<u32>(0); // Least significant bit = power button state
Kernel::Handle handle_copy = Kernel::g_handle_table.Create(lock).Unwrap();
@@ -125,10 +264,22 @@ void GetLockHandle(Service::Interface* self) {
void Enable(Service::Interface* self) {
IPC::RequestParser rp(Kernel::GetCommandBuffer(), 0x3, 1, 0); // 0x30040
u32 attributes = rp.Pop<u32>();
+
+ LOG_DEBUG(Service_APT, "called attributes=0x%08X", attributes);
+
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
- rb.Push(RESULT_SUCCESS); // No error
- parameter_event->Signal(); // Let the application know that it has been started
- LOG_WARNING(Service_APT, "(STUBBED) called attributes=0x%08X", attributes);
+
+ auto* const slot_data = GetAppletSlotData(attributes);
+
+ if (!slot_data) {
+ rb.Push(ResultCode(ErrCodes::InvalidAppletSlot, ErrorModule::Applet,
+ ErrorSummary::InvalidState, ErrorLevel::Status));
+ return;
+ }
+
+ slot_data->registered = true;
+
+ rb.Push(RESULT_SUCCESS);
}
void GetAppletManInfo(Service::Interface* self) {
@@ -146,22 +297,27 @@ void GetAppletManInfo(Service::Interface* self) {
void IsRegistered(Service::Interface* self) {
IPC::RequestParser rp(Kernel::GetCommandBuffer(), 0x9, 1, 0); // 0x90040
- u32 app_id = rp.Pop<u32>();
+ AppletId app_id = static_cast<AppletId>(rp.Pop<u32>());
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
rb.Push(RESULT_SUCCESS); // No error
- // TODO(Subv): An application is considered "registered" if it has already called APT::Enable
- // handle this properly once we implement multiprocess support.
- bool is_registered = false; // Set to not registered by default
+ auto* const slot_data = GetAppletSlotData(app_id);
+
+ // Check if an LLE applet was registered first, then fallback to HLE applets
+ bool is_registered = slot_data && slot_data->registered;
- if (app_id == static_cast<u32>(AppletId::AnyLibraryApplet)) {
- is_registered = HLE::Applets::IsLibraryAppletRunning();
- } else if (auto applet = HLE::Applets::Applet::Get(static_cast<AppletId>(app_id))) {
- is_registered = true; // Set to registered
+ if (!is_registered) {
+ if (app_id == AppletId::AnyLibraryApplet) {
+ is_registered = HLE::Applets::IsLibraryAppletRunning();
+ } else if (auto applet = HLE::Applets::Applet::Get(app_id)) {
+ // The applet exists, set it as registered.
+ is_registered = true;
+ }
}
+
rb.Push(is_registered);
- LOG_WARNING(Service_APT, "(STUBBED) called app_id=0x%08X", app_id);
+ LOG_DEBUG(Service_APT, "called app_id=0x%08X", static_cast<u32>(app_id));
}
void InquireNotification(Service::Interface* self) {
@@ -186,8 +342,20 @@ void SendParameter(Service::Interface* self) {
std::shared_ptr<HLE::Applets::Applet> dest_applet =
HLE::Applets::Applet::Get(static_cast<AppletId>(dst_app_id));
+ LOG_DEBUG(Service_APT,
+ "called src_app_id=0x%08X, dst_app_id=0x%08X, signal_type=0x%08X,"
+ "buffer_size=0x%08X, handle=0x%08X, size=0x%08zX, in_param_buffer_ptr=0x%08X",
+ src_app_id, dst_app_id, signal_type, buffer_size, handle, size, buffer);
+
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
+ // A new parameter can not be sent if the previous one hasn't been consumed yet
+ if (next_parameter) {
+ rb.Push(ResultCode(ErrCodes::ParameterPresent, ErrorModule::Applet,
+ ErrorSummary::InvalidState, ErrorLevel::Status));
+ return;
+ }
+
if (dest_applet == nullptr) {
LOG_ERROR(Service_APT, "Unknown applet id=0x%08X", dst_app_id);
rb.Push<u32>(-1); // TODO(Subv): Find the right error code
@@ -203,11 +371,6 @@ void SendParameter(Service::Interface* self) {
Memory::ReadBlock(buffer, param.buffer.data(), param.buffer.size());
rb.Push(dest_applet->ReceiveParameter(param));
-
- LOG_WARNING(Service_APT,
- "(STUBBED) called src_app_id=0x%08X, dst_app_id=0x%08X, signal_type=0x%08X,"
- "buffer_size=0x%08X, handle=0x%08X, size=0x%08zX, in_param_buffer_ptr=0x%08X",
- src_app_id, dst_app_id, signal_type, buffer_size, handle, size, buffer);
}
void ReceiveParameter(Service::Interface* self) {
@@ -223,21 +386,40 @@ void ReceiveParameter(Service::Interface* self) {
"buffer_size is bigger than the size in the buffer descriptor (0x%08X > 0x%08zX)",
buffer_size, static_buff_size);
+ LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
+
+ if (!next_parameter) {
+ IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
+ rb.Push(ResultCode(ErrorDescription::NoData, ErrorModule::Applet,
+ ErrorSummary::InvalidState, ErrorLevel::Status));
+ return;
+ }
+
+ if (next_parameter->destination_id != app_id) {
+ IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
+ rb.Push(ResultCode(ErrorDescription::NotFound, ErrorModule::Applet, ErrorSummary::NotFound,
+ ErrorLevel::Status));
+ return;
+ }
+
IPC::RequestBuilder rb = rp.MakeBuilder(4, 4);
+
rb.Push(RESULT_SUCCESS); // No error
- rb.Push(next_parameter.sender_id);
- rb.Push(next_parameter.signal); // Signal type
- ASSERT_MSG(next_parameter.buffer.size() <= buffer_size, "Input static buffer is too small !");
- rb.Push(static_cast<u32>(next_parameter.buffer.size())); // Parameter buffer size
+ rb.Push(next_parameter->sender_id);
+ rb.Push(next_parameter->signal); // Signal type
+ ASSERT_MSG(next_parameter->buffer.size() <= buffer_size, "Input static buffer is too small !");
+ rb.Push(static_cast<u32>(next_parameter->buffer.size())); // Parameter buffer size
- rb.PushMoveHandles((next_parameter.object != nullptr)
- ? Kernel::g_handle_table.Create(next_parameter.object).Unwrap()
+ rb.PushMoveHandles((next_parameter->object != nullptr)
+ ? Kernel::g_handle_table.Create(next_parameter->object).Unwrap()
: 0);
- rb.PushStaticBuffer(buffer, static_cast<u32>(next_parameter.buffer.size()), 0);
- Memory::WriteBlock(buffer, next_parameter.buffer.data(), next_parameter.buffer.size());
+ rb.PushStaticBuffer(buffer, static_cast<u32>(next_parameter->buffer.size()), 0);
+
+ Memory::WriteBlock(buffer, next_parameter->buffer.data(), next_parameter->buffer.size());
- LOG_WARNING(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
+ // Clear the parameter
+ next_parameter = boost::none;
}
void GlanceParameter(Service::Interface* self) {
@@ -253,37 +435,74 @@ void GlanceParameter(Service::Interface* self) {
"buffer_size is bigger than the size in the buffer descriptor (0x%08X > 0x%08zX)",
buffer_size, static_buff_size);
+ LOG_DEBUG(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
+
+ if (!next_parameter) {
+ IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
+ rb.Push(ResultCode(ErrorDescription::NoData, ErrorModule::Applet,
+ ErrorSummary::InvalidState, ErrorLevel::Status));
+ return;
+ }
+
+ if (next_parameter->destination_id != app_id) {
+ IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
+ rb.Push(ResultCode(ErrorDescription::NotFound, ErrorModule::Applet, ErrorSummary::NotFound,
+ ErrorLevel::Status));
+ return;
+ }
+
IPC::RequestBuilder rb = rp.MakeBuilder(4, 4);
rb.Push(RESULT_SUCCESS); // No error
- rb.Push(next_parameter.sender_id);
- rb.Push(next_parameter.signal); // Signal type
- ASSERT_MSG(next_parameter.buffer.size() <= buffer_size, "Input static buffer is too small !");
- rb.Push(static_cast<u32>(next_parameter.buffer.size())); // Parameter buffer size
+ rb.Push(next_parameter->sender_id);
+ rb.Push(next_parameter->signal); // Signal type
+ ASSERT_MSG(next_parameter->buffer.size() <= buffer_size, "Input static buffer is too small !");
+ rb.Push(static_cast<u32>(next_parameter->buffer.size())); // Parameter buffer size
- rb.PushCopyHandles((next_parameter.object != nullptr)
- ? Kernel::g_handle_table.Create(next_parameter.object).Unwrap()
+ rb.PushMoveHandles((next_parameter->object != nullptr)
+ ? Kernel::g_handle_table.Create(next_parameter->object).Unwrap()
: 0);
- rb.PushStaticBuffer(buffer, static_cast<u32>(next_parameter.buffer.size()), 0);
- Memory::WriteBlock(buffer, next_parameter.buffer.data(), next_parameter.buffer.size());
+ rb.PushStaticBuffer(buffer, static_cast<u32>(next_parameter->buffer.size()), 0);
+
+ Memory::WriteBlock(buffer, next_parameter->buffer.data(), next_parameter->buffer.size());
- LOG_WARNING(Service_APT, "called app_id=0x%08X, buffer_size=0x%08zX", app_id, buffer_size);
+ // Note: The NS module always clears the DSPSleep and DSPWakeup signals even in GlanceParameter.
+ if (next_parameter->signal == static_cast<u32>(SignalType::DspSleep) ||
+ next_parameter->signal == static_cast<u32>(SignalType::DspWakeup))
+ next_parameter = boost::none;
}
void CancelParameter(Service::Interface* self) {
IPC::RequestParser rp(Kernel::GetCommandBuffer(), 0xF, 4, 0); // 0xF0100
- u32 check_sender = rp.Pop<u32>();
+ bool check_sender = rp.Pop<bool>();
u32 sender_appid = rp.Pop<u32>();
- u32 check_receiver = rp.Pop<u32>();
+ bool check_receiver = rp.Pop<bool>();
u32 receiver_appid = rp.Pop<u32>();
+
+ bool cancellation_success = true;
+
+ if (!next_parameter) {
+ cancellation_success = false;
+ } else {
+ if (check_sender && next_parameter->sender_id != sender_appid)
+ cancellation_success = false;
+
+ if (check_receiver && next_parameter->destination_id != receiver_appid)
+ cancellation_success = false;
+ }
+
+ if (cancellation_success)
+ next_parameter = boost::none;
+
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
+
rb.Push(RESULT_SUCCESS); // No error
- rb.Push(true); // Set to Success
+ rb.Push(cancellation_success);
- LOG_WARNING(Service_APT, "(STUBBED) called check_sender=0x%08X, sender_appid=0x%08X, "
- "check_receiver=0x%08X, receiver_appid=0x%08X",
- check_sender, sender_appid, check_receiver, receiver_appid);
+ LOG_DEBUG(Service_APT, "called check_sender=%u, sender_appid=0x%08X, "
+ "check_receiver=%u, receiver_appid=0x%08X",
+ check_sender, sender_appid, check_receiver, receiver_appid);
}
void PrepareToStartApplication(Service::Interface* self) {
@@ -644,36 +863,146 @@ void CheckNew3DS(Service::Interface* self) {
LOG_WARNING(Service_APT, "(STUBBED) called");
}
-void Init() {
- AddService(new APT_A_Interface);
- AddService(new APT_S_Interface);
- AddService(new APT_U_Interface);
+static u32 DecompressLZ11(const u8* in, u8* out) {
+ u32_le decompressed_size;
+ memcpy(&decompressed_size, in, sizeof(u32));
+ in += 4;
+
+ u8 type = decompressed_size & 0xFF;
+ ASSERT(type == 0x11);
+ decompressed_size >>= 8;
+
+ u32 current_out_size = 0;
+ u8 flags = 0, mask = 1;
+ while (current_out_size < decompressed_size) {
+ if (mask == 1) {
+ flags = *(in++);
+ mask = 0x80;
+ } else {
+ mask >>= 1;
+ }
+
+ if (flags & mask) {
+ u8 byte1 = *(in++);
+ u32 length = byte1 >> 4;
+ u32 offset;
+ if (length == 0) {
+ u8 byte2 = *(in++);
+ u8 byte3 = *(in++);
+ length = (((byte1 & 0x0F) << 4) | (byte2 >> 4)) + 0x11;
+ offset = (((byte2 & 0x0F) << 8) | byte3) + 0x1;
+ } else if (length == 1) {
+ u8 byte2 = *(in++);
+ u8 byte3 = *(in++);
+ u8 byte4 = *(in++);
+ length = (((byte1 & 0x0F) << 12) | (byte2 << 4) | (byte3 >> 4)) + 0x111;
+ offset = (((byte3 & 0x0F) << 8) | byte4) + 0x1;
+ } else {
+ u8 byte2 = *(in++);
+ length = (byte1 >> 4) + 0x1;
+ offset = (((byte1 & 0x0F) << 8) | byte2) + 0x1;
+ }
+
+ for (u32 i = 0; i < length; i++) {
+ *out = *(out - offset);
+ ++out;
+ }
+
+ current_out_size += length;
+ } else {
+ *(out++) = *(in++);
+ current_out_size++;
+ }
+ }
+ return decompressed_size;
+}
- HLE::Applets::Init();
+static bool LoadSharedFont() {
+ // TODO (wwylele): load different font archive for region CHN/KOR/TWN
+ const u64_le shared_font_archive_id_low = 0x0004009b00014002;
+ const u64_le shared_font_archive_id_high = 0x00000001ffffff00;
+ std::vector<u8> shared_font_archive_id(16);
+ std::memcpy(&shared_font_archive_id[0], &shared_font_archive_id_low, sizeof(u64));
+ std::memcpy(&shared_font_archive_id[8], &shared_font_archive_id_high, sizeof(u64));
+ FileSys::Path archive_path(shared_font_archive_id);
+ auto archive_result = Service::FS::OpenArchive(Service::FS::ArchiveIdCode::NCCH, archive_path);
+ if (archive_result.Failed())
+ return false;
+
+ std::vector<u8> romfs_path(20, 0); // 20-byte all zero path for opening RomFS
+ FileSys::Path file_path(romfs_path);
+ FileSys::Mode open_mode = {};
+ open_mode.read_flag.Assign(1);
+ auto file_result = Service::FS::OpenFileFromArchive(*archive_result, file_path, open_mode);
+ if (file_result.Failed())
+ return false;
+
+ auto romfs = std::move(file_result).Unwrap();
+ std::vector<u8> romfs_buffer(romfs->backend->GetSize());
+ romfs->backend->Read(0, romfs_buffer.size(), romfs_buffer.data());
+ romfs->backend->Close();
+
+ const u8* font_file = RomFS::GetFilePointer(romfs_buffer.data(), {u"cbf_std.bcfnt.lz"});
+ if (font_file == nullptr)
+ return false;
+
+ struct {
+ u32_le status;
+ u32_le region;
+ u32_le decompressed_size;
+ INSERT_PADDING_WORDS(0x1D);
+ } shared_font_header{};
+ static_assert(sizeof(shared_font_header) == 0x80, "shared_font_header has incorrect size");
+
+ shared_font_header.status = 2; // successfully loaded
+ shared_font_header.region = 1; // region JPN/EUR/USA
+ shared_font_header.decompressed_size =
+ DecompressLZ11(font_file, shared_font_mem->GetPointer(0x80));
+ std::memcpy(shared_font_mem->GetPointer(), &shared_font_header, sizeof(shared_font_header));
+ *shared_font_mem->GetPointer(0x83) = 'U'; // Change the magic from "CFNT" to "CFNU"
+
+ return true;
+}
- // Load the shared system font (if available).
+static bool LoadLegacySharedFont() {
+ // This is the legacy method to load shared font.
// The expected format is a decrypted, uncompressed BCFNT file with the 0x80 byte header
// generated by the APT:U service. The best way to get is by dumping it from RAM. We've provided
// a homebrew app to do this: https://github.com/citra-emu/3dsutils. Put the resulting file
// "shared_font.bin" in the Citra "sysdata" directory.
-
std::string filepath = FileUtil::GetUserPath(D_SYSDATA_IDX) + SHARED_FONT;
FileUtil::CreateFullPath(filepath); // Create path if not already created
FileUtil::IOFile file(filepath, "rb");
-
if (file.IsOpen()) {
- // Create shared font memory object
- using Kernel::MemoryPermission;
- shared_font_mem =
- Kernel::SharedMemory::Create(nullptr, 0x332000, // 3272 KB
- MemoryPermission::ReadWrite, MemoryPermission::Read, 0,
- Kernel::MemoryRegion::SYSTEM, "APT:SharedFont");
- // Read shared font data
file.ReadBytes(shared_font_mem->GetPointer(), file.GetSize());
+ return true;
+ }
+
+ return false;
+}
+
+void Init() {
+ AddService(new APT_A_Interface);
+ AddService(new APT_S_Interface);
+ AddService(new APT_U_Interface);
+
+ HLE::Applets::Init();
+
+ using Kernel::MemoryPermission;
+ shared_font_mem =
+ Kernel::SharedMemory::Create(nullptr, 0x332000, // 3272 KB
+ MemoryPermission::ReadWrite, MemoryPermission::Read, 0,
+ Kernel::MemoryRegion::SYSTEM, "APT:SharedFont");
+
+ if (LoadSharedFont()) {
+ shared_font_loaded = true;
+ } else if (LoadLegacySharedFont()) {
+ LOG_WARNING(Service_APT, "Loaded shared font by legacy method");
+ shared_font_loaded = true;
} else {
- LOG_WARNING(Service_APT, "Unable to load shared font: %s", filepath.c_str());
- shared_font_mem = nullptr;
+ LOG_WARNING(Service_APT, "Unable to load shared font");
+ shared_font_loaded = false;
}
lock = Kernel::Mutex::Create(false, "APT_U:Lock");
@@ -683,22 +1012,38 @@ void Init() {
screen_capture_post_permission =
ScreencapPostPermission::CleanThePermission; // TODO(JamePeng): verify the initial value
- // TODO(bunnei): Check if these are created in Initialize or on APT process startup.
- notification_event = Kernel::Event::Create(Kernel::ResetType::OneShot, "APT_U:Notification");
- parameter_event = Kernel::Event::Create(Kernel::ResetType::OneShot, "APT_U:Start");
+ for (size_t slot = 0; slot < applet_slots.size(); ++slot) {
+ auto& slot_data = applet_slots[slot];
+ slot_data.slot = static_cast<AppletSlot>(slot);
+ slot_data.applet_id = AppletId::None;
+ slot_data.attributes.raw = 0;
+ slot_data.registered = false;
+ slot_data.notification_event =
+ Kernel::Event::Create(Kernel::ResetType::OneShot, "APT:Notification");
+ slot_data.parameter_event =
+ Kernel::Event::Create(Kernel::ResetType::OneShot, "APT:Parameter");
+ }
- next_parameter.signal = static_cast<u32>(SignalType::Wakeup);
- next_parameter.destination_id = 0x300;
+ // Initialize the parameter to wake up the application.
+ next_parameter.emplace();
+ next_parameter->signal = static_cast<u32>(SignalType::Wakeup);
+ next_parameter->destination_id = static_cast<u32>(AppletId::Application);
+ applet_slots[static_cast<size_t>(AppletSlot::Application)].parameter_event->Signal();
}
void Shutdown() {
shared_font_mem = nullptr;
+ shared_font_loaded = false;
shared_font_relocated = false;
lock = nullptr;
- notification_event = nullptr;
- parameter_event = nullptr;
- next_parameter.object = nullptr;
+ for (auto& slot : applet_slots) {
+ slot.registered = false;
+ slot.notification_event = nullptr;
+ slot.parameter_event = nullptr;
+ }
+
+ next_parameter = boost::none;
HLE::Applets::Shutdown();
}
diff --git a/src/core/hle/service/apt/apt.h b/src/core/hle/service/apt/apt.h
index ee80926d2..96b28b438 100644
--- a/src/core/hle/service/apt/apt.h
+++ b/src/core/hle/service/apt/apt.h
@@ -72,6 +72,8 @@ enum class SignalType : u32 {
/// App Id's used by APT functions
enum class AppletId : u32 {
+ None = 0,
+ AnySystemApplet = 0x100,
HomeMenu = 0x101,
AlternateMenu = 0x103,
Camera = 0x110,
@@ -83,6 +85,7 @@ enum class AppletId : u32 {
Miiverse = 0x117,
MiiversePost = 0x118,
AmiiboSettings = 0x119,
+ AnySysLibraryApplet = 0x200,
SoftwareKeyboard1 = 0x201,
Ed1 = 0x202,
PnoteApp = 0x204,
@@ -116,6 +119,13 @@ enum class ScreencapPostPermission : u32 {
DisableScreenshotPostingToMiiverse = 3
};
+namespace ErrCodes {
+enum {
+ ParameterPresent = 2,
+ InvalidAppletSlot = 4,
+};
+} // namespace ErrCodes
+
/// Send a parameter to the currently-running application, which will read it via ReceiveParameter
void SendParameter(const MessageParameter& parameter);
diff --git a/src/core/hle/service/apt/bcfnt/bcfnt.cpp b/src/core/hle/service/apt/bcfnt/bcfnt.cpp
index 57eb39d75..6d2474702 100644
--- a/src/core/hle/service/apt/bcfnt/bcfnt.cpp
+++ b/src/core/hle/service/apt/bcfnt/bcfnt.cpp
@@ -78,7 +78,8 @@ void RelocateSharedFont(Kernel::SharedPtr<Kernel::SharedMemory> shared_font, VAd
memcpy(&cmap, data, sizeof(cmap));
// Relocate the offsets in the CMAP section
- cmap.next_cmap_offset += offset;
+ if (cmap.next_cmap_offset != 0)
+ cmap.next_cmap_offset += offset;
memcpy(data, &cmap, sizeof(cmap));
} else if (memcmp(section_header.magic, "CWDH", 4) == 0) {
@@ -86,7 +87,8 @@ void RelocateSharedFont(Kernel::SharedPtr<Kernel::SharedMemory> shared_font, VAd
memcpy(&cwdh, data, sizeof(cwdh));
// Relocate the offsets in the CWDH section
- cwdh.next_cwdh_offset += offset;
+ if (cwdh.next_cwdh_offset != 0)
+ cwdh.next_cwdh_offset += offset;
memcpy(data, &cwdh, sizeof(cwdh));
} else if (memcmp(section_header.magic, "TGLP", 4) == 0) {
diff --git a/src/core/hle/service/boss/boss_p.cpp b/src/core/hle/service/boss/boss_p.cpp
index ee941e228..3990d0d6e 100644
--- a/src/core/hle/service/boss/boss_p.cpp
+++ b/src/core/hle/service/boss/boss_p.cpp
@@ -66,7 +66,10 @@ const Interface::FunctionInfo FunctionTable[] = {
{0x00360084, SetTaskQuery, "SetTaskQuery"},
{0x00370084, GetTaskQuery, "GetTaskQuery"},
// boss:p
+ {0x04010082, nullptr, "InitializeSessionPrivileged"},
{0x04040080, nullptr, "GetAppNewFlag"},
+ {0x040D0182, nullptr, "GetNsDataIdListPrivileged"},
+ {0x040E0182, nullptr, "GetNsDataIdListPrivileged1"},
{0x04130082, nullptr, "SendPropertyPrivileged"},
{0x041500C0, nullptr, "DeleteNsDataPrivileged"},
{0x04160142, nullptr, "GetNsDataHeaderInfoPrivileged"},
diff --git a/src/core/hle/service/cfg/cfg.cpp b/src/core/hle/service/cfg/cfg.cpp
index 6624f1711..3dbeb27cc 100644
--- a/src/core/hle/service/cfg/cfg.cpp
+++ b/src/core/hle/service/cfg/cfg.cpp
@@ -681,7 +681,7 @@ void GenerateConsoleUniqueId(u32& random_number, u64& console_id) {
CryptoPP::AutoSeededRandomPool rng;
random_number = rng.GenerateWord32(0, 0xFFFF);
u64_le local_friend_code_seed;
- rng.GenerateBlock(reinterpret_cast<byte*>(&local_friend_code_seed),
+ rng.GenerateBlock(reinterpret_cast<CryptoPP::byte*>(&local_friend_code_seed),
sizeof(local_friend_code_seed));
console_id = (local_friend_code_seed & 0x3FFFFFFFF) | (static_cast<u64>(random_number) << 48);
}
diff --git a/src/core/hle/service/dlp/dlp_clnt.cpp b/src/core/hle/service/dlp/dlp_clnt.cpp
index 56f934b3f..6f2bf2061 100644
--- a/src/core/hle/service/dlp/dlp_clnt.cpp
+++ b/src/core/hle/service/dlp/dlp_clnt.cpp
@@ -8,7 +8,26 @@ namespace Service {
namespace DLP {
const Interface::FunctionInfo FunctionTable[] = {
- {0x000100C3, nullptr, "Initialize"}, {0x00110000, nullptr, "GetWirelessRebootPassphrase"},
+ {0x000100C3, nullptr, "Initialize"},
+ {0x00020000, nullptr, "Finalize"},
+ {0x00030000, nullptr, "GetEventDesc"},
+ {0x00040000, nullptr, "GetChannel"},
+ {0x00050180, nullptr, "StartScan"},
+ {0x00060000, nullptr, "StopScan"},
+ {0x00070080, nullptr, "GetServerInfo"},
+ {0x00080100, nullptr, "GetTitleInfo"},
+ {0x00090040, nullptr, "GetTitleInfoInOrder"},
+ {0x000A0080, nullptr, "DeleteScanInfo"},
+ {0x000B0100, nullptr, "PrepareForSystemDownload"},
+ {0x000C0000, nullptr, "StartSystemDownload"},
+ {0x000D0100, nullptr, "StartTitleDownload"},
+ {0x000E0000, nullptr, "GetMyStatus"},
+ {0x000F0040, nullptr, "GetConnectingNodes"},
+ {0x00100040, nullptr, "GetNodeInfo"},
+ {0x00110000, nullptr, "GetWirelessRebootPassphrase"},
+ {0x00120000, nullptr, "StopSession"},
+ {0x00130100, nullptr, "GetCupVersion"},
+ {0x00140100, nullptr, "GetDupAvailability"},
};
DLP_CLNT_Interface::DLP_CLNT_Interface() {
diff --git a/src/core/hle/service/dlp/dlp_fkcl.cpp b/src/core/hle/service/dlp/dlp_fkcl.cpp
index 29b9d52e0..fe6be7d32 100644
--- a/src/core/hle/service/dlp/dlp_fkcl.cpp
+++ b/src/core/hle/service/dlp/dlp_fkcl.cpp
@@ -8,7 +8,23 @@ namespace Service {
namespace DLP {
const Interface::FunctionInfo FunctionTable[] = {
- {0x00010083, nullptr, "Initialize"}, {0x000F0000, nullptr, "GetWirelessRebootPassphrase"},
+ {0x00010083, nullptr, "Initialize"},
+ {0x00020000, nullptr, "Finalize"},
+ {0x00030000, nullptr, "GetEventDesc"},
+ {0x00040000, nullptr, "GetChannels"},
+ {0x00050180, nullptr, "StartScan"},
+ {0x00060000, nullptr, "StopScan"},
+ {0x00070080, nullptr, "GetServerInfo"},
+ {0x00080100, nullptr, "GetTitleInfo"},
+ {0x00090040, nullptr, "GetTitleInfoInOrder"},
+ {0x000A0080, nullptr, "DeleteScanInfo"},
+ {0x000B0100, nullptr, "StartFakeSession"},
+ {0x000C0000, nullptr, "GetMyStatus"},
+ {0x000D0040, nullptr, "GetConnectingNodes"},
+ {0x000E0040, nullptr, "GetNodeInfo"},
+ {0x000F0000, nullptr, "GetWirelessRebootPassphrase"},
+ {0x00100000, nullptr, "StopSession"},
+ {0x00110203, nullptr, "Initialize2"},
};
DLP_FKCL_Interface::DLP_FKCL_Interface() {
diff --git a/src/core/hle/service/dlp/dlp_srvr.cpp b/src/core/hle/service/dlp/dlp_srvr.cpp
index 32cfa2c44..1bcea43d3 100644
--- a/src/core/hle/service/dlp/dlp_srvr.cpp
+++ b/src/core/hle/service/dlp/dlp_srvr.cpp
@@ -11,7 +11,7 @@
namespace Service {
namespace DLP {
-static void unk_0x000E0040(Interface* self) {
+static void IsChild(Interface* self) {
u32* cmd_buff = Kernel::GetCommandBuffer();
cmd_buff[1] = RESULT_SUCCESS.raw;
@@ -24,14 +24,19 @@ const Interface::FunctionInfo FunctionTable[] = {
{0x00010183, nullptr, "Initialize"},
{0x00020000, nullptr, "Finalize"},
{0x00030000, nullptr, "GetServerState"},
+ {0x00040000, nullptr, "GetEventDescription"},
{0x00050080, nullptr, "StartAccepting"},
+ {0x00060000, nullptr, "EndAccepting"},
{0x00070000, nullptr, "StartDistribution"},
{0x000800C0, nullptr, "SendWirelessRebootPassphrase"},
{0x00090040, nullptr, "AcceptClient"},
+ {0x000A0040, nullptr, "DisconnectClient"},
{0x000B0042, nullptr, "GetConnectingClients"},
{0x000C0040, nullptr, "GetClientInfo"},
{0x000D0040, nullptr, "GetClientState"},
- {0x000E0040, unk_0x000E0040, "unk_0x000E0040"},
+ {0x000E0040, IsChild, "IsChild"},
+ {0x000F0303, nullptr, "InitializeWithName"},
+ {0x00100000, nullptr, "GetDupNoticeNeed"},
};
DLP_SRVR_Interface::DLP_SRVR_Interface() {
diff --git a/src/core/hle/service/dsp_dsp.cpp b/src/core/hle/service/dsp_dsp.cpp
index 7d746054f..42f8950f9 100644
--- a/src/core/hle/service/dsp_dsp.cpp
+++ b/src/core/hle/service/dsp_dsp.cpp
@@ -147,9 +147,10 @@ static void LoadComponent(Service::Interface* self) {
LOG_INFO(Service_DSP, "Firmware hash: %#" PRIx64,
Common::ComputeHash64(component_data.data(), component_data.size()));
// Some versions of the firmware have the location of DSP structures listed here.
- ASSERT(size > 0x37C);
- LOG_INFO(Service_DSP, "Structures hash: %#" PRIx64,
- Common::ComputeHash64(component_data.data() + 0x340, 60));
+ if (size > 0x37C) {
+ LOG_INFO(Service_DSP, "Structures hash: %#" PRIx64,
+ Common::ComputeHash64(component_data.data() + 0x340, 60));
+ }
LOG_WARNING(Service_DSP,
"(STUBBED) called size=0x%X, prog_mask=0x%08X, data_mask=0x%08X, buffer=0x%08X",
diff --git a/src/core/hle/service/frd/frd.cpp b/src/core/hle/service/frd/frd.cpp
index 76ecda8b7..7ad7798da 100644
--- a/src/core/hle/service/frd/frd.cpp
+++ b/src/core/hle/service/frd/frd.cpp
@@ -6,6 +6,7 @@
#include "common/logging/log.h"
#include "common/string_util.h"
#include "core/hle/ipc.h"
+#include "core/hle/ipc_helpers.h"
#include "core/hle/result.h"
#include "core/hle/service/frd/frd.h"
#include "core/hle/service/frd/frd_a.h"
@@ -105,6 +106,48 @@ void GetMyScreenName(Service::Interface* self) {
LOG_WARNING(Service_FRD, "(STUBBED) called");
}
+void UnscrambleLocalFriendCode(Service::Interface* self) {
+ const size_t scrambled_friend_code_size = 12;
+ const size_t friend_code_size = 8;
+
+ IPC::RequestParser rp(Kernel::GetCommandBuffer(), 0x1C, 1, 2);
+ const u32 friend_code_count = rp.Pop<u32>();
+ size_t in_buffer_size;
+ const VAddr scrambled_friend_codes = rp.PopStaticBuffer(&in_buffer_size, false);
+ ASSERT_MSG(in_buffer_size == (friend_code_count * scrambled_friend_code_size),
+ "Wrong input buffer size");
+
+ size_t out_buffer_size;
+ VAddr unscrambled_friend_codes = rp.PeekStaticBuffer(0, &out_buffer_size);
+ ASSERT_MSG(out_buffer_size == (friend_code_count * friend_code_size),
+ "Wrong output buffer size");
+
+ for (u32 current = 0; current < friend_code_count; ++current) {
+ // TODO(B3N30): Unscramble the codes and compare them against the friend list
+ // Only write 0 if the code isn't in friend list, otherwise write the
+ // unscrambled one
+ //
+ // Code for unscrambling (should be compared to HW):
+ // std::array<u16, 6> scambled_friend_code;
+ // Memory::ReadBlock(scrambled_friend_codes+(current*scrambled_friend_code_size),
+ // scambled_friend_code.data(), scrambled_friend_code_size); std::array<u16, 4>
+ // unscrambled_friend_code; unscrambled_friend_code[0] = scambled_friend_code[0] ^
+ // scambled_friend_code[5]; unscrambled_friend_code[1] = scambled_friend_code[1] ^
+ // scambled_friend_code[5]; unscrambled_friend_code[2] = scambled_friend_code[2] ^
+ // scambled_friend_code[5]; unscrambled_friend_code[3] = scambled_friend_code[3] ^
+ // scambled_friend_code[5];
+
+ u64 result = 0ull;
+ Memory::WriteBlock(unscrambled_friend_codes + (current * sizeof(result)), &result,
+ sizeof(result));
+ }
+
+ LOG_WARNING(Service_FRD, "(STUBBED) called");
+ IPC::RequestBuilder rb = rp.MakeBuilder(1, 2);
+ rb.Push(RESULT_SUCCESS);
+ rb.PushStaticBuffer(unscrambled_friend_codes, out_buffer_size, 0);
+}
+
void SetClientSdkVersion(Service::Interface* self) {
u32* cmd_buff = Kernel::GetCommandBuffer();
diff --git a/src/core/hle/service/frd/frd.h b/src/core/hle/service/frd/frd.h
index e61940ea0..66a87c8cd 100644
--- a/src/core/hle/service/frd/frd.h
+++ b/src/core/hle/service/frd/frd.h
@@ -96,6 +96,19 @@ void GetMyFriendKey(Service::Interface* self);
void GetMyScreenName(Service::Interface* self);
/**
+ * FRD::UnscrambleLocalFriendCode service function
+ * Inputs:
+ * 1 : Friend code count
+ * 2 : ((count * 12) << 14) | 0x402
+ * 3 : Pointer to encoded friend codes. Each is 12 bytes large
+ * 64 : ((count * 8) << 14) | 2
+ * 65 : Pointer to write decoded local friend codes to. Each is 8 bytes large.
+ * Outputs:
+ * 1 : Result of function, 0 on success, otherwise error code
+ */
+void UnscrambleLocalFriendCode(Service::Interface* self);
+
+/**
* FRD::SetClientSdkVersion service function
* Inputs:
* 1 : Used SDK Version
diff --git a/src/core/hle/service/frd/frd_u.cpp b/src/core/hle/service/frd/frd_u.cpp
index 496f29ca9..6970ff768 100644
--- a/src/core/hle/service/frd/frd_u.cpp
+++ b/src/core/hle/service/frd/frd_u.cpp
@@ -36,7 +36,7 @@ const Interface::FunctionInfo FunctionTable[] = {
{0x00190042, nullptr, "GetFriendFavoriteGame"},
{0x001A00C4, nullptr, "GetFriendInfo"},
{0x001B0080, nullptr, "IsIncludedInFriendList"},
- {0x001C0042, nullptr, "UnscrambleLocalFriendCode"},
+ {0x001C0042, UnscrambleLocalFriendCode, "UnscrambleLocalFriendCode"},
{0x001D0002, nullptr, "UpdateGameModeDescription"},
{0x001E02C2, nullptr, "UpdateGameMode"},
{0x001F0042, nullptr, "SendInvitation"},
diff --git a/src/core/hle/service/gsp_gpu.cpp b/src/core/hle/service/gsp_gpu.cpp
index bc964ec60..88684b82d 100644
--- a/src/core/hle/service/gsp_gpu.cpp
+++ b/src/core/hle/service/gsp_gpu.cpp
@@ -475,12 +475,11 @@ static void ExecuteCommand(const Command& command, u32 thread_id) {
// TODO: Consider attempting rasterizer-accelerated surface blit if that usage is ever
// possible/likely
- Memory::RasterizerFlushRegion(
- Memory::VirtualToPhysicalAddress(command.dma_request.source_address),
- command.dma_request.size);
- Memory::RasterizerFlushAndInvalidateRegion(
- Memory::VirtualToPhysicalAddress(command.dma_request.dest_address),
- command.dma_request.size);
+ Memory::RasterizerFlushVirtualRegion(command.dma_request.source_address,
+ command.dma_request.size, Memory::FlushMode::Flush);
+ Memory::RasterizerFlushVirtualRegion(command.dma_request.dest_address,
+ command.dma_request.size,
+ Memory::FlushMode::FlushAndInvalidate);
// TODO(Subv): These memory accesses should not go through the application's memory mapping.
// They should go through the GSP module's memory mapping.
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index 2014b8461..aa5d821f9 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -7,8 +7,9 @@
#include <cmath>
#include <memory>
#include "common/logging/log.h"
+#include "core/3ds.h"
+#include "core/core.h"
#include "core/core_timing.h"
-#include "core/frontend/emu_window.h"
#include "core/frontend/input.h"
#include "core/hle/ipc.h"
#include "core/hle/kernel/event.h"
@@ -18,7 +19,6 @@
#include "core/hle/service/hid/hid_spvr.h"
#include "core/hle/service/hid/hid_user.h"
#include "core/hle/service/service.h"
-#include "video_core/video_core.h"
namespace Service {
namespace HID {
@@ -50,10 +50,15 @@ constexpr u64 pad_update_ticks = BASE_CLOCK_RATE_ARM11 / 234;
constexpr u64 accelerometer_update_ticks = BASE_CLOCK_RATE_ARM11 / 104;
constexpr u64 gyroscope_update_ticks = BASE_CLOCK_RATE_ARM11 / 101;
+constexpr float accelerometer_coef = 512.0f; // measured from hw test result
+constexpr float gyroscope_coef = 14.375f; // got from hwtest GetGyroscopeLowRawToDpsCoefficient call
+
static std::atomic<bool> is_device_reload_pending;
static std::array<std::unique_ptr<Input::ButtonDevice>, Settings::NativeButton::NUM_BUTTONS_HID>
buttons;
static std::unique_ptr<Input::AnalogDevice> circle_pad;
+static std::unique_ptr<Input::MotionDevice> motion_device;
+static std::unique_ptr<Input::TouchDevice> touch_device;
DirectionState GetStickDirectionState(s16 circle_pad_x, s16 circle_pad_y) {
// 30 degree and 60 degree are angular thresholds for directions
@@ -90,6 +95,8 @@ static void LoadInputDevices() {
buttons.begin(), Input::CreateDevice<Input::ButtonDevice>);
circle_pad = Input::CreateDevice<Input::AnalogDevice>(
Settings::values.analogs[Settings::NativeAnalog::CirclePad]);
+ motion_device = Input::CreateDevice<Input::MotionDevice>(Settings::values.motion_device);
+ touch_device = Input::CreateDevice<Input::TouchDevice>(Settings::values.touch_device);
}
static void UnloadInputDevices() {
@@ -97,6 +104,8 @@ static void UnloadInputDevices() {
button.reset();
}
circle_pad.reset();
+ motion_device.reset();
+ touch_device.reset();
}
static void UpdatePadCallback(u64 userdata, int cycles_late) {
@@ -165,8 +174,10 @@ static void UpdatePadCallback(u64 userdata, int cycles_late) {
// Get the current touch entry
TouchDataEntry& touch_entry = mem->touch.entries[mem->touch.index];
bool pressed = false;
-
- std::tie(touch_entry.x, touch_entry.y, pressed) = VideoCore::g_emu_window->GetTouchState();
+ float x, y;
+ std::tie(x, y, pressed) = touch_device->GetStatus();
+ touch_entry.x = static_cast<u16>(x * Core::kScreenBottomWidth);
+ touch_entry.y = static_cast<u16>(y * Core::kScreenBottomHeight);
touch_entry.valid.Assign(pressed ? 1 : 0);
// TODO(bunnei): We're not doing anything with offset 0xA8 + 0x18 of HID SharedMemory, which
@@ -193,10 +204,19 @@ static void UpdateAccelerometerCallback(u64 userdata, int cycles_late) {
mem->accelerometer.index = next_accelerometer_index;
next_accelerometer_index = (next_accelerometer_index + 1) % mem->accelerometer.entries.size();
+ Math::Vec3<float> accel;
+ std::tie(accel, std::ignore) = motion_device->GetStatus();
+ accel *= accelerometer_coef;
+ // TODO(wwylele): do a time stretch like the one in UpdateGyroscopeCallback
+ // The time stretch formula should be like
+ // stretched_vector = (raw_vector - gravity) * stretch_ratio + gravity
+
AccelerometerDataEntry& accelerometer_entry =
mem->accelerometer.entries[mem->accelerometer.index];
- std::tie(accelerometer_entry.x, accelerometer_entry.y, accelerometer_entry.z) =
- VideoCore::g_emu_window->GetAccelerometerState();
+
+ accelerometer_entry.x = static_cast<s16>(accel.x);
+ accelerometer_entry.y = static_cast<s16>(accel.y);
+ accelerometer_entry.z = static_cast<s16>(accel.z);
// Make up "raw" entry
// TODO(wwylele):
@@ -227,8 +247,14 @@ static void UpdateGyroscopeCallback(u64 userdata, int cycles_late) {
next_gyroscope_index = (next_gyroscope_index + 1) % mem->gyroscope.entries.size();
GyroscopeDataEntry& gyroscope_entry = mem->gyroscope.entries[mem->gyroscope.index];
- std::tie(gyroscope_entry.x, gyroscope_entry.y, gyroscope_entry.z) =
- VideoCore::g_emu_window->GetGyroscopeState();
+
+ Math::Vec3<float> gyro;
+ std::tie(std::ignore, gyro) = motion_device->GetStatus();
+ double stretch = Core::System::GetInstance().perf_stats.GetLastFrameTimeScale();
+ gyro *= gyroscope_coef * stretch;
+ gyroscope_entry.x = static_cast<s16>(gyro.x);
+ gyroscope_entry.y = static_cast<s16>(gyro.y);
+ gyroscope_entry.z = static_cast<s16>(gyro.z);
// Make up "raw" entry
mem->gyroscope.raw_entry.x = gyroscope_entry.x;
@@ -326,7 +352,7 @@ void GetGyroscopeLowRawToDpsCoefficient(Service::Interface* self) {
cmd_buff[1] = RESULT_SUCCESS.raw;
- f32 coef = VideoCore::g_emu_window->GetGyroscopeRawToDpsCoefficient();
+ f32 coef = gyroscope_coef;
memcpy(&cmd_buff[2], &coef, 4);
}
diff --git a/src/core/hle/service/hid/hid.h b/src/core/hle/service/hid/hid.h
index 1ef972e70..ef25926b5 100644
--- a/src/core/hle/service/hid/hid.h
+++ b/src/core/hle/service/hid/hid.h
@@ -24,7 +24,7 @@ namespace HID {
*/
struct PadState {
union {
- u32 hex;
+ u32 hex{};
BitField<0, 1, u32> a;
BitField<1, 1, u32> b;
diff --git a/src/core/hle/service/ir/ir_rst.cpp b/src/core/hle/service/ir/ir_rst.cpp
index 837413f93..0912d5756 100644
--- a/src/core/hle/service/ir/ir_rst.cpp
+++ b/src/core/hle/service/ir/ir_rst.cpp
@@ -18,7 +18,7 @@ namespace Service {
namespace IR {
union PadState {
- u32_le hex;
+ u32_le hex{};
BitField<14, 1, u32_le> zl;
BitField<15, 1, u32_le> zr;
diff --git a/src/core/hle/service/y2r_u.cpp b/src/core/hle/service/y2r_u.cpp
index e73971d5f..57172ddd6 100644
--- a/src/core/hle/service/y2r_u.cpp
+++ b/src/core/hle/service/y2r_u.cpp
@@ -587,8 +587,8 @@ static void StartConversion(Interface* self) {
// dst_image_size would seem to be perfect for this, but it doesn't include the gap :(
u32 total_output_size =
conversion.input_lines * (conversion.dst.transfer_unit + conversion.dst.gap);
- Memory::RasterizerFlushAndInvalidateRegion(
- Memory::VirtualToPhysicalAddress(conversion.dst.address), total_output_size);
+ Memory::RasterizerFlushVirtualRegion(conversion.dst.address, total_output_size,
+ Memory::FlushMode::FlushAndInvalidate);
HW::Y2R::PerformConversion(conversion);
diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp
index e4b803046..dfc36748c 100644
--- a/src/core/hle/svc.cpp
+++ b/src/core/hle/svc.cpp
@@ -31,6 +31,7 @@
#include "core/hle/kernel/timer.h"
#include "core/hle/kernel/vm_manager.h"
#include "core/hle/kernel/wait_object.h"
+#include "core/hle/lock.h"
#include "core/hle/result.h"
#include "core/hle/service/service.h"
@@ -1188,7 +1189,7 @@ struct FunctionDef {
Func* func;
const char* name;
};
-}
+} // namespace
static const FunctionDef SVC_Table[] = {
{0x00, nullptr, "Unknown"},
@@ -1332,6 +1333,9 @@ MICROPROFILE_DEFINE(Kernel_SVC, "Kernel", "SVC", MP_RGB(70, 200, 70));
void CallSVC(u32 immediate) {
MICROPROFILE_SCOPE(Kernel_SVC);
+ // Lock the global kernel mutex when we enter the kernel HLE.
+ std::lock_guard<std::recursive_mutex> lock(HLE::g_hle_lock);
+
const FunctionDef* info = GetSVCInfo(immediate);
if (info) {
if (info->func) {
@@ -1342,4 +1346,4 @@ void CallSVC(u32 immediate) {
}
}
-} // namespace
+} // namespace SVC
diff --git a/src/core/hw/gpu.cpp b/src/core/hw/gpu.cpp
index 6838e449c..83ad9d898 100644
--- a/src/core/hw/gpu.cpp
+++ b/src/core/hw/gpu.cpp
@@ -29,7 +29,7 @@ namespace GPU {
Regs g_regs;
/// 268MHz CPU clocks / 60Hz frames per second
-const u64 frame_ticks = BASE_CLOCK_RATE_ARM11 / SCREEN_REFRESH_RATE;
+const u64 frame_ticks = static_cast<u64>(BASE_CLOCK_RATE_ARM11 / SCREEN_REFRESH_RATE);
/// Event id for CoreTiming
static int vblank_event;
diff --git a/src/core/hw/gpu.h b/src/core/hw/gpu.h
index 21b127fee..e3d0a0e08 100644
--- a/src/core/hw/gpu.h
+++ b/src/core/hw/gpu.h
@@ -74,9 +74,9 @@ struct Regs {
case PixelFormat::RGB5A1:
case PixelFormat::RGBA4:
return 2;
- default:
- UNIMPLEMENTED();
}
+
+ UNREACHABLE();
}
INSERT_PADDING_WORDS(0x4);
diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h
index 48bbf687d..e731888a2 100644
--- a/src/core/loader/loader.h
+++ b/src/core/loader/loader.h
@@ -166,6 +166,15 @@ public:
return ResultStatus::ErrorNotImplemented;
}
+ /**
+ * Get the title of the application
+ * @param title Reference to store the application title into
+ * @return ResultStatus result of function
+ */
+ virtual ResultStatus ReadTitle(std::string& title) {
+ return ResultStatus::ErrorNotImplemented;
+ }
+
protected:
FileUtil::IOFile file;
bool is_loaded = false;
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp
index ffc019560..7aff7f29b 100644
--- a/src/core/loader/ncch.cpp
+++ b/src/core/loader/ncch.cpp
@@ -4,7 +4,9 @@
#include <algorithm>
#include <cinttypes>
+#include <codecvt>
#include <cstring>
+#include <locale>
#include <memory>
#include "common/logging/log.h"
#include "common/string_util.h"
@@ -18,6 +20,7 @@
#include "core/loader/ncch.h"
#include "core/loader/smdh.h"
#include "core/memory.h"
+#include "network/network.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
// Loader namespace
@@ -342,9 +345,18 @@ ResultStatus AppLoader_NCCH::Load() {
if (result != ResultStatus::Success)
return result;
- LOG_INFO(Loader, "Program ID: %016" PRIX64, ncch_header.program_id);
+ std::string program_id{Common::StringFromFormat("%016" PRIX64, ncch_header.program_id)};
- Core::Telemetry().AddField(Telemetry::FieldType::Session, "ProgramId", ncch_header.program_id);
+ LOG_INFO(Loader, "Program ID: %s", program_id.c_str());
+
+ Core::Telemetry().AddField(Telemetry::FieldType::Session, "ProgramId", program_id);
+
+ if (auto room_member = Network::GetRoomMember().lock()) {
+ Network::GameInfo game_info;
+ ReadTitle(game_info.name);
+ game_info.id = ncch_header.program_id;
+ room_member->SendGameInfo(game_info);
+ }
is_loaded = true; // Set state to loaded
@@ -418,4 +430,22 @@ ResultStatus AppLoader_NCCH::ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_
return ResultStatus::ErrorNotUsed;
}
+ResultStatus AppLoader_NCCH::ReadTitle(std::string& title) {
+ std::vector<u8> data;
+ Loader::SMDH smdh;
+ ReadIcon(data);
+
+ if (!Loader::IsValidSMDH(data)) {
+ return ResultStatus::ErrorInvalidFormat;
+ }
+
+ memcpy(&smdh, data.data(), sizeof(Loader::SMDH));
+
+ const auto& short_title = smdh.GetShortTitle(SMDH::TitleLanguage::English);
+ auto title_end = std::find(short_title.begin(), short_title.end(), u'\0');
+ title = Common::UTF16ToUTF8(std::u16string{short_title.begin(), title_end});
+
+ return ResultStatus::Success;
+}
+
} // namespace Loader
diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h
index 0ebd47fd5..e40cef764 100644
--- a/src/core/loader/ncch.h
+++ b/src/core/loader/ncch.h
@@ -191,23 +191,13 @@ public:
ResultStatus ReadLogo(std::vector<u8>& buffer) override;
- /**
- * Get the program id of the application
- * @param out_program_id Reference to store program id into
- * @return ResultStatus result of function
- */
ResultStatus ReadProgramId(u64& out_program_id) override;
- /**
- * Get the RomFS of the application
- * @param romfs_file Reference to buffer to store data
- * @param offset Offset in the file to the RomFS
- * @param size Size of the RomFS in bytes
- * @return ResultStatus result of function
- */
ResultStatus ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_file, u64& offset,
u64& size) override;
+ ResultStatus ReadTitle(std::string& title) override;
+
private:
/**
* Reads an application ExeFS section of an NCCH file into AppLoader (e.g. .code, .logo, etc.)
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index b8438e490..097bc5b47 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -9,6 +9,7 @@
#include "common/logging/log.h"
#include "common/swap.h"
#include "core/hle/kernel/process.h"
+#include "core/hle/lock.h"
#include "core/memory.h"
#include "core/memory_setup.h"
#include "core/mmio.h"
@@ -83,19 +84,13 @@ static void MapPages(u32 base, u32 size, u8* memory, PageType type) {
LOG_DEBUG(HW_Memory, "Mapping %p onto %08X-%08X", memory, base * PAGE_SIZE,
(base + size) * PAGE_SIZE);
- u32 end = base + size;
+ RasterizerFlushVirtualRegion(base << PAGE_BITS, size * PAGE_SIZE,
+ FlushMode::FlushAndInvalidate);
+ u32 end = base + size;
while (base != end) {
ASSERT_MSG(base < PAGE_TABLE_NUM_ENTRIES, "out of range mapping at %08X", base);
- // Since pages are unmapped on shutdown after video core is shutdown, the renderer may be
- // null here
- if (current_page_table->attributes[base] == PageType::RasterizerCachedMemory ||
- current_page_table->attributes[base] == PageType::RasterizerCachedSpecial) {
- RasterizerFlushAndInvalidateRegion(VirtualToPhysicalAddress(base << PAGE_BITS),
- PAGE_SIZE);
- }
-
current_page_table->attributes[base] = type;
current_page_table->pointers[base] = memory;
current_page_table->cached_res_count[base] = 0;
@@ -139,7 +134,12 @@ void UnmapRegion(VAddr base, u32 size) {
static u8* GetPointerFromVMA(VAddr vaddr) {
u8* direct_pointer = nullptr;
- auto& vma = Kernel::g_current_process->vm_manager.FindVMA(vaddr)->second;
+ auto& vm_manager = Kernel::g_current_process->vm_manager;
+
+ auto it = vm_manager.FindVMA(vaddr);
+ ASSERT(it != vm_manager.vma_map.end());
+
+ auto& vma = it->second;
switch (vma.type) {
case Kernel::VMAType::AllocatedMemoryBlock:
direct_pointer = vma.backing_block->data() + vma.offset;
@@ -147,6 +147,8 @@ static u8* GetPointerFromVMA(VAddr vaddr) {
case Kernel::VMAType::BackingMemory:
direct_pointer = vma.backing_memory;
break;
+ case Kernel::VMAType::Free:
+ return nullptr;
default:
UNREACHABLE();
}
@@ -180,6 +182,9 @@ T Read(const VAddr vaddr) {
return value;
}
+ // The memory access might do an MMIO or cached access, so we have to lock the HLE kernel state
+ std::lock_guard<std::recursive_mutex> lock(HLE::g_hle_lock);
+
PageType type = current_page_table->attributes[vaddr >> PAGE_BITS];
switch (type) {
case PageType::Unmapped:
@@ -189,7 +194,7 @@ T Read(const VAddr vaddr) {
ASSERT_MSG(false, "Mapped memory page without a pointer @ %08X", vaddr);
break;
case PageType::RasterizerCachedMemory: {
- RasterizerFlushRegion(VirtualToPhysicalAddress(vaddr), sizeof(T));
+ RasterizerFlushVirtualRegion(vaddr, sizeof(T), FlushMode::Flush);
T value;
std::memcpy(&value, GetPointerFromVMA(vaddr), sizeof(T));
@@ -198,8 +203,7 @@ T Read(const VAddr vaddr) {
case PageType::Special:
return ReadMMIO<T>(GetMMIOHandler(vaddr), vaddr);
case PageType::RasterizerCachedSpecial: {
- RasterizerFlushRegion(VirtualToPhysicalAddress(vaddr), sizeof(T));
-
+ RasterizerFlushVirtualRegion(vaddr, sizeof(T), FlushMode::Flush);
return ReadMMIO<T>(GetMMIOHandler(vaddr), vaddr);
}
default:
@@ -219,6 +223,9 @@ void Write(const VAddr vaddr, const T data) {
return;
}
+ // The memory access might do an MMIO or cached access, so we have to lock the HLE kernel state
+ std::lock_guard<std::recursive_mutex> lock(HLE::g_hle_lock);
+
PageType type = current_page_table->attributes[vaddr >> PAGE_BITS];
switch (type) {
case PageType::Unmapped:
@@ -229,8 +236,7 @@ void Write(const VAddr vaddr, const T data) {
ASSERT_MSG(false, "Mapped memory page without a pointer @ %08X", vaddr);
break;
case PageType::RasterizerCachedMemory: {
- RasterizerFlushAndInvalidateRegion(VirtualToPhysicalAddress(vaddr), sizeof(T));
-
+ RasterizerFlushVirtualRegion(vaddr, sizeof(T), FlushMode::FlushAndInvalidate);
std::memcpy(GetPointerFromVMA(vaddr), &data, sizeof(T));
break;
}
@@ -238,8 +244,7 @@ void Write(const VAddr vaddr, const T data) {
WriteMMIO<T>(GetMMIOHandler(vaddr), vaddr, data);
break;
case PageType::RasterizerCachedSpecial: {
- RasterizerFlushAndInvalidateRegion(VirtualToPhysicalAddress(vaddr), sizeof(T));
-
+ RasterizerFlushVirtualRegion(vaddr, sizeof(T), FlushMode::FlushAndInvalidate);
WriteMMIO<T>(GetMMIOHandler(vaddr), vaddr, data);
break;
}
@@ -268,7 +273,8 @@ bool IsValidVirtualAddress(const VAddr vaddr) {
}
bool IsValidPhysicalAddress(const PAddr paddr) {
- return IsValidVirtualAddress(PhysicalToVirtualAddress(paddr));
+ boost::optional<VAddr> vaddr = PhysicalToVirtualAddress(paddr);
+ return vaddr && IsValidVirtualAddress(*vaddr);
}
u8* GetPointer(const VAddr vaddr) {
@@ -301,7 +307,8 @@ std::string ReadCString(VAddr vaddr, std::size_t max_length) {
u8* GetPhysicalPointer(PAddr address) {
// TODO(Subv): This call should not go through the application's memory mapping.
- return GetPointer(PhysicalToVirtualAddress(address));
+ boost::optional<VAddr> vaddr = PhysicalToVirtualAddress(address);
+ return vaddr ? GetPointer(*vaddr) : nullptr;
}
void RasterizerMarkRegionCached(PAddr start, u32 size, int count_delta) {
@@ -312,8 +319,12 @@ void RasterizerMarkRegionCached(PAddr start, u32 size, int count_delta) {
u32 num_pages = ((start + size - 1) >> PAGE_BITS) - (start >> PAGE_BITS) + 1;
PAddr paddr = start;
- for (unsigned i = 0; i < num_pages; ++i) {
- VAddr vaddr = PhysicalToVirtualAddress(paddr);
+ for (unsigned i = 0; i < num_pages; ++i, paddr += PAGE_SIZE) {
+ boost::optional<VAddr> maybe_vaddr = PhysicalToVirtualAddress(paddr);
+ if (!maybe_vaddr)
+ continue;
+ VAddr vaddr = *maybe_vaddr;
+
u8& res_count = current_page_table->cached_res_count[vaddr >> PAGE_BITS];
ASSERT_MSG(count_delta <= UINT8_MAX - res_count,
"Rasterizer resource cache counter overflow!");
@@ -341,11 +352,19 @@ void RasterizerMarkRegionCached(PAddr start, u32 size, int count_delta) {
if (res_count == 0) {
PageType& page_type = current_page_table->attributes[vaddr >> PAGE_BITS];
switch (page_type) {
- case PageType::RasterizerCachedMemory:
- page_type = PageType::Memory;
- current_page_table->pointers[vaddr >> PAGE_BITS] =
- GetPointerFromVMA(vaddr & ~PAGE_MASK);
+ case PageType::RasterizerCachedMemory: {
+ u8* pointer = GetPointerFromVMA(vaddr & ~PAGE_MASK);
+ if (pointer == nullptr) {
+ // It's possible that this function has called been while updating the pagetable
+ // after unmapping a VMA. In that case the underlying VMA will no longer exist,
+ // and we should just leave the pagetable entry blank.
+ page_type = PageType::Unmapped;
+ } else {
+ page_type = PageType::Memory;
+ current_page_table->pointers[vaddr >> PAGE_BITS] = pointer;
+ }
break;
+ }
case PageType::RasterizerCachedSpecial:
page_type = PageType::Special;
break;
@@ -353,7 +372,6 @@ void RasterizerMarkRegionCached(PAddr start, u32 size, int count_delta) {
UNREACHABLE();
}
}
- paddr += PAGE_SIZE;
}
}
@@ -364,11 +382,48 @@ void RasterizerFlushRegion(PAddr start, u32 size) {
}
void RasterizerFlushAndInvalidateRegion(PAddr start, u32 size) {
+ // Since pages are unmapped on shutdown after video core is shutdown, the renderer may be
+ // null here
if (VideoCore::g_renderer != nullptr) {
VideoCore::g_renderer->Rasterizer()->FlushAndInvalidateRegion(start, size);
}
}
+void RasterizerFlushVirtualRegion(VAddr start, u32 size, FlushMode mode) {
+ // Since pages are unmapped on shutdown after video core is shutdown, the renderer may be
+ // null here
+ if (VideoCore::g_renderer != nullptr) {
+ VAddr end = start + size;
+
+ auto CheckRegion = [&](VAddr region_start, VAddr region_end) {
+ if (start >= region_end || end <= region_start) {
+ // No overlap with region
+ return;
+ }
+
+ VAddr overlap_start = std::max(start, region_start);
+ VAddr overlap_end = std::min(end, region_end);
+
+ PAddr physical_start = TryVirtualToPhysicalAddress(overlap_start).value();
+ u32 overlap_size = overlap_end - overlap_start;
+
+ auto* rasterizer = VideoCore::g_renderer->Rasterizer();
+ switch (mode) {
+ case FlushMode::Flush:
+ rasterizer->FlushRegion(physical_start, overlap_size);
+ break;
+ case FlushMode::FlushAndInvalidate:
+ rasterizer->FlushAndInvalidateRegion(physical_start, overlap_size);
+ break;
+ }
+ };
+
+ CheckRegion(LINEAR_HEAP_VADDR, LINEAR_HEAP_VADDR_END);
+ CheckRegion(NEW_LINEAR_HEAP_VADDR, NEW_LINEAR_HEAP_VADDR_END);
+ CheckRegion(VRAM_VADDR, VRAM_VADDR_END);
+ }
+}
+
u8 Read8(const VAddr addr) {
return Read<u8>(addr);
}
@@ -415,16 +470,13 @@ void ReadBlock(const VAddr src_addr, void* dest_buffer, const size_t size) {
break;
}
case PageType::RasterizerCachedMemory: {
- RasterizerFlushRegion(VirtualToPhysicalAddress(current_vaddr), copy_amount);
-
+ RasterizerFlushVirtualRegion(current_vaddr, copy_amount, FlushMode::Flush);
std::memcpy(dest_buffer, GetPointerFromVMA(current_vaddr), copy_amount);
break;
}
case PageType::RasterizerCachedSpecial: {
DEBUG_ASSERT(GetMMIOHandler(current_vaddr));
-
- RasterizerFlushRegion(VirtualToPhysicalAddress(current_vaddr), copy_amount);
-
+ RasterizerFlushVirtualRegion(current_vaddr, copy_amount, FlushMode::Flush);
GetMMIOHandler(current_vaddr)->ReadBlock(current_vaddr, dest_buffer, copy_amount);
break;
}
@@ -485,18 +537,13 @@ void WriteBlock(const VAddr dest_addr, const void* src_buffer, const size_t size
break;
}
case PageType::RasterizerCachedMemory: {
- RasterizerFlushAndInvalidateRegion(VirtualToPhysicalAddress(current_vaddr),
- copy_amount);
-
+ RasterizerFlushVirtualRegion(current_vaddr, copy_amount, FlushMode::FlushAndInvalidate);
std::memcpy(GetPointerFromVMA(current_vaddr), src_buffer, copy_amount);
break;
}
case PageType::RasterizerCachedSpecial: {
DEBUG_ASSERT(GetMMIOHandler(current_vaddr));
-
- RasterizerFlushAndInvalidateRegion(VirtualToPhysicalAddress(current_vaddr),
- copy_amount);
-
+ RasterizerFlushVirtualRegion(current_vaddr, copy_amount, FlushMode::FlushAndInvalidate);
GetMMIOHandler(current_vaddr)->WriteBlock(current_vaddr, src_buffer, copy_amount);
break;
}
@@ -542,18 +589,13 @@ void ZeroBlock(const VAddr dest_addr, const size_t size) {
break;
}
case PageType::RasterizerCachedMemory: {
- RasterizerFlushAndInvalidateRegion(VirtualToPhysicalAddress(current_vaddr),
- copy_amount);
-
+ RasterizerFlushVirtualRegion(current_vaddr, copy_amount, FlushMode::FlushAndInvalidate);
std::memset(GetPointerFromVMA(current_vaddr), 0, copy_amount);
break;
}
case PageType::RasterizerCachedSpecial: {
DEBUG_ASSERT(GetMMIOHandler(current_vaddr));
-
- RasterizerFlushAndInvalidateRegion(VirtualToPhysicalAddress(current_vaddr),
- copy_amount);
-
+ RasterizerFlushVirtualRegion(current_vaddr, copy_amount, FlushMode::FlushAndInvalidate);
GetMMIOHandler(current_vaddr)->WriteBlock(current_vaddr, zeros.data(), copy_amount);
break;
}
@@ -598,15 +640,13 @@ void CopyBlock(VAddr dest_addr, VAddr src_addr, const size_t size) {
break;
}
case PageType::RasterizerCachedMemory: {
- RasterizerFlushRegion(VirtualToPhysicalAddress(current_vaddr), copy_amount);
-
+ RasterizerFlushVirtualRegion(current_vaddr, copy_amount, FlushMode::Flush);
WriteBlock(dest_addr, GetPointerFromVMA(current_vaddr), copy_amount);
break;
}
case PageType::RasterizerCachedSpecial: {
DEBUG_ASSERT(GetMMIOHandler(current_vaddr));
-
- RasterizerFlushRegion(VirtualToPhysicalAddress(current_vaddr), copy_amount);
+ RasterizerFlushVirtualRegion(current_vaddr, copy_amount, FlushMode::Flush);
std::vector<u8> buffer(copy_amount);
GetMMIOHandler(current_vaddr)->ReadBlock(current_vaddr, buffer.data(), buffer.size());
@@ -665,7 +705,7 @@ void WriteMMIO<u64>(MMIORegionPointer mmio_handler, VAddr addr, const u64 data)
mmio_handler->Write64(addr, data);
}
-PAddr VirtualToPhysicalAddress(const VAddr addr) {
+boost::optional<PAddr> TryVirtualToPhysicalAddress(const VAddr addr) {
if (addr == 0) {
return 0;
} else if (addr >= VRAM_VADDR && addr < VRAM_VADDR_END) {
@@ -682,12 +722,20 @@ PAddr VirtualToPhysicalAddress(const VAddr addr) {
return addr - N3DS_EXTRA_RAM_VADDR + N3DS_EXTRA_RAM_PADDR;
}
- LOG_ERROR(HW_Memory, "Unknown virtual address @ 0x%08X", addr);
- // To help with debugging, set bit on address so that it's obviously invalid.
- return addr | 0x80000000;
+ return boost::none;
+}
+
+PAddr VirtualToPhysicalAddress(const VAddr addr) {
+ auto paddr = TryVirtualToPhysicalAddress(addr);
+ if (!paddr) {
+ LOG_ERROR(HW_Memory, "Unknown virtual address @ 0x%08X", addr);
+ // To help with debugging, set bit on address so that it's obviously invalid.
+ return addr | 0x80000000;
+ }
+ return *paddr;
}
-VAddr PhysicalToVirtualAddress(const PAddr addr) {
+boost::optional<VAddr> PhysicalToVirtualAddress(const PAddr addr) {
if (addr == 0) {
return 0;
} else if (addr >= VRAM_PADDR && addr < VRAM_PADDR_END) {
@@ -702,9 +750,7 @@ VAddr PhysicalToVirtualAddress(const PAddr addr) {
return addr - N3DS_EXTRA_RAM_PADDR + N3DS_EXTRA_RAM_VADDR;
}
- LOG_ERROR(HW_Memory, "Unknown physical address @ 0x%08X", addr);
- // To help with debugging, set bit on address so that it's obviously invalid.
- return addr | 0x80000000;
+ return boost::none;
}
-} // namespace
+} // namespace Memory
diff --git a/src/core/memory.h b/src/core/memory.h
index 71fb278ad..c8c56babd 100644
--- a/src/core/memory.h
+++ b/src/core/memory.h
@@ -7,6 +7,7 @@
#include <array>
#include <cstddef>
#include <string>
+#include <boost/optional.hpp>
#include "common/common_types.h"
namespace Memory {
@@ -148,15 +149,23 @@ u8* GetPointer(VAddr virtual_address);
std::string ReadCString(VAddr virtual_address, std::size_t max_length);
/**
-* Converts a virtual address inside a region with 1:1 mapping to physical memory to a physical
-* address. This should be used by services to translate addresses for use by the hardware.
-*/
+ * Converts a virtual address inside a region with 1:1 mapping to physical memory to a physical
+ * address. This should be used by services to translate addresses for use by the hardware.
+ */
+boost::optional<PAddr> TryVirtualToPhysicalAddress(VAddr addr);
+
+/**
+ * Converts a virtual address inside a region with 1:1 mapping to physical memory to a physical
+ * address. This should be used by services to translate addresses for use by the hardware.
+ *
+ * @deprecated Use TryVirtualToPhysicalAddress(), which reports failure.
+ */
PAddr VirtualToPhysicalAddress(VAddr addr);
/**
-* Undoes a mapping performed by VirtualToPhysicalAddress().
-*/
-VAddr PhysicalToVirtualAddress(PAddr addr);
+ * Undoes a mapping performed by VirtualToPhysicalAddress().
+ */
+boost::optional<VAddr> PhysicalToVirtualAddress(PAddr addr);
/**
* Gets a pointer to the memory region beginning at the specified physical address.
@@ -181,6 +190,19 @@ void RasterizerFlushRegion(PAddr start, u32 size);
*/
void RasterizerFlushAndInvalidateRegion(PAddr start, u32 size);
+enum class FlushMode {
+ /// Write back modified surfaces to RAM
+ Flush,
+ /// Write back modified surfaces to RAM, and also remove them from the cache
+ FlushAndInvalidate,
+};
+
+/**
+ * Flushes and invalidates any externally cached rasterizer resources touching the given virtual
+ * address region.
+ */
+void RasterizerFlushVirtualRegion(VAddr start, u32 size, FlushMode mode);
+
/**
* Dynarmic has an optimization to memory accesses when the pointer to the page exists that
* can be used by setting up the current page table as a callback. This function is used to
diff --git a/src/core/settings.cpp b/src/core/settings.cpp
index d4f0429d1..efcf1267d 100644
--- a/src/core/settings.cpp
+++ b/src/core/settings.cpp
@@ -36,4 +36,4 @@ void Apply() {
Service::IR::ReloadInputDevices();
}
-} // namespace
+} // namespace Settings
diff --git a/src/core/settings.h b/src/core/settings.h
index 03c64c94c..024f14666 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -15,6 +15,7 @@ enum class LayoutOption {
Default,
SingleScreen,
LargeScreen,
+ SideScreen,
};
namespace NativeButton {
@@ -70,7 +71,7 @@ enum Values {
static const std::array<const char*, NumAnalogs> mapping = {{
"circle_pad", "c_stick",
}};
-} // namespace NumAnalog
+} // namespace NativeAnalog
struct Values {
// CheckNew3DS
@@ -79,6 +80,8 @@ struct Values {
// Controls
std::array<std::string, NativeButton::NumButtons> buttons;
std::array<std::string, NativeAnalog::NumAnalogs> analogs;
+ std::string motion_device;
+ std::string touch_device;
// Core
bool use_cpu_jit;
@@ -126,6 +129,12 @@ struct Values {
// Debugging
bool use_gdbstub;
u16 gdbstub_port;
+
+ // WebService
+ bool enable_telemetry;
+ std::string telemetry_endpoint_url;
+ std::string citra_username;
+ std::string citra_token;
} extern values;
// a special value for Values::region_value indicating that citra will automatically select a region
@@ -133,4 +142,4 @@ struct Values {
static constexpr int REGION_VALUE_AUTO_SELECT = -1;
void Apply();
-}
+} // namespace Settings
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index ddc8b262e..104a16cc9 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -3,33 +3,167 @@
// Refer to the license.txt file included.
#include <cstring>
+#include <cryptopp/osrng.h>
+#include "common/assert.h"
+#include "common/file_util.h"
#include "common/scm_rev.h"
+#include "common/x64/cpu_detect.h"
+#include "core/core.h"
+#include "core/settings.h"
#include "core/telemetry_session.h"
+#ifdef ENABLE_WEB_SERVICE
+#include "web_service/telemetry_json.h"
+#endif
+
namespace Core {
+static const char* CpuVendorToStr(Common::CPUVendor vendor) {
+ switch (vendor) {
+ case Common::CPUVendor::INTEL:
+ return "Intel";
+ case Common::CPUVendor::AMD:
+ return "Amd";
+ case Common::CPUVendor::OTHER:
+ return "Other";
+ }
+ UNREACHABLE();
+}
+
+static u64 GenerateTelemetryId() {
+ u64 telemetry_id{};
+ CryptoPP::AutoSeededRandomPool rng;
+ rng.GenerateBlock(reinterpret_cast<CryptoPP::byte*>(&telemetry_id), sizeof(u64));
+ return telemetry_id;
+}
+
+u64 GetTelemetryId() {
+ u64 telemetry_id{};
+ static const std::string& filename{FileUtil::GetUserPath(D_CONFIG_IDX) + "telemetry_id"};
+
+ if (FileUtil::Exists(filename)) {
+ FileUtil::IOFile file(filename, "rb");
+ if (!file.IsOpen()) {
+ LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
+ return {};
+ }
+ file.ReadBytes(&telemetry_id, sizeof(u64));
+ } else {
+ FileUtil::IOFile file(filename, "wb");
+ if (!file.IsOpen()) {
+ LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
+ return {};
+ }
+ telemetry_id = GenerateTelemetryId();
+ file.WriteBytes(&telemetry_id, sizeof(u64));
+ }
+
+ return telemetry_id;
+}
+
+u64 RegenerateTelemetryId() {
+ const u64 new_telemetry_id{GenerateTelemetryId()};
+ static const std::string& filename{FileUtil::GetUserPath(D_CONFIG_IDX) + "telemetry_id"};
+
+ FileUtil::IOFile file(filename, "wb");
+ if (!file.IsOpen()) {
+ LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
+ return {};
+ }
+ file.WriteBytes(&new_telemetry_id, sizeof(u64));
+ return new_telemetry_id;
+}
+
TelemetrySession::TelemetrySession() {
- // TODO(bunnei): Replace with a backend that logs to our web service
+#ifdef ENABLE_WEB_SERVICE
+ if (Settings::values.enable_telemetry) {
+ backend = std::make_unique<WebService::TelemetryJson>(
+ Settings::values.telemetry_endpoint_url, Settings::values.citra_username,
+ Settings::values.citra_token);
+ } else {
+ backend = std::make_unique<Telemetry::NullVisitor>();
+ }
+#else
backend = std::make_unique<Telemetry::NullVisitor>();
+#endif
+ // Log one-time top-level information
+ AddField(Telemetry::FieldType::None, "TelemetryId", GetTelemetryId());
// Log one-time session start information
- const auto duration{std::chrono::steady_clock::now().time_since_epoch()};
- const auto start_time{std::chrono::duration_cast<std::chrono::microseconds>(duration).count()};
- AddField(Telemetry::FieldType::Session, "StartTime", start_time);
+ const s64 init_time{std::chrono::duration_cast<std::chrono::milliseconds>(
+ std::chrono::system_clock::now().time_since_epoch())
+ .count()};
+ AddField(Telemetry::FieldType::Session, "Init_Time", init_time);
+ std::string program_name;
+ const Loader::ResultStatus res{System::GetInstance().GetAppLoader().ReadTitle(program_name)};
+ if (res == Loader::ResultStatus::Success) {
+ AddField(Telemetry::FieldType::Session, "ProgramName", program_name);
+ }
- // Log one-time application information
+ // Log application information
const bool is_git_dirty{std::strstr(Common::g_scm_desc, "dirty") != nullptr};
- AddField(Telemetry::FieldType::App, "GitIsDirty", is_git_dirty);
- AddField(Telemetry::FieldType::App, "GitBranch", Common::g_scm_branch);
- AddField(Telemetry::FieldType::App, "GitRevision", Common::g_scm_rev);
+ AddField(Telemetry::FieldType::App, "Git_IsDirty", is_git_dirty);
+ AddField(Telemetry::FieldType::App, "Git_Branch", Common::g_scm_branch);
+ AddField(Telemetry::FieldType::App, "Git_Revision", Common::g_scm_rev);
+ AddField(Telemetry::FieldType::App, "BuildDate", Common::g_build_date);
+ AddField(Telemetry::FieldType::App, "BuildName", Common::g_build_name);
+
+ // Log user system information
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Model", Common::GetCPUCaps().cpu_string);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_BrandString",
+ Common::GetCPUCaps().brand_string);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Vendor",
+ CpuVendorToStr(Common::GetCPUCaps().vendor));
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_AES", Common::GetCPUCaps().aes);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_AVX", Common::GetCPUCaps().avx);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_AVX2", Common::GetCPUCaps().avx2);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_BMI1", Common::GetCPUCaps().bmi1);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_BMI2", Common::GetCPUCaps().bmi2);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_FMA", Common::GetCPUCaps().fma);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_FMA4", Common::GetCPUCaps().fma4);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_SSE", Common::GetCPUCaps().sse);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_SSE2", Common::GetCPUCaps().sse2);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_SSE3", Common::GetCPUCaps().sse3);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_SSSE3",
+ Common::GetCPUCaps().ssse3);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_SSE41",
+ Common::GetCPUCaps().sse4_1);
+ AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_SSE42",
+ Common::GetCPUCaps().sse4_2);
+#ifdef __APPLE__
+ AddField(Telemetry::FieldType::UserSystem, "OsPlatform", "Apple");
+#elif defined(_WIN32)
+ AddField(Telemetry::FieldType::UserSystem, "OsPlatform", "Windows");
+#elif defined(__linux__) || defined(linux) || defined(__linux)
+ AddField(Telemetry::FieldType::UserSystem, "OsPlatform", "Linux");
+#else
+ AddField(Telemetry::FieldType::UserSystem, "OsPlatform", "Unknown");
+#endif
+
+ // Log user configuration information
+ AddField(Telemetry::FieldType::UserConfig, "Audio_EnableAudioStretching",
+ Settings::values.enable_audio_stretching);
+ AddField(Telemetry::FieldType::UserConfig, "Core_UseCpuJit", Settings::values.use_cpu_jit);
+ AddField(Telemetry::FieldType::UserConfig, "Renderer_ResolutionFactor",
+ Settings::values.resolution_factor);
+ AddField(Telemetry::FieldType::UserConfig, "Renderer_ToggleFramelimit",
+ Settings::values.toggle_framelimit);
+ AddField(Telemetry::FieldType::UserConfig, "Renderer_UseHwRenderer",
+ Settings::values.use_hw_renderer);
+ AddField(Telemetry::FieldType::UserConfig, "Renderer_UseShaderJit",
+ Settings::values.use_shader_jit);
+ AddField(Telemetry::FieldType::UserConfig, "Renderer_UseVsync", Settings::values.use_vsync);
+ AddField(Telemetry::FieldType::UserConfig, "System_IsNew3ds", Settings::values.is_new_3ds);
+ AddField(Telemetry::FieldType::UserConfig, "System_RegionValue", Settings::values.region_value);
}
TelemetrySession::~TelemetrySession() {
// Log one-time session end information
- const auto duration{std::chrono::steady_clock::now().time_since_epoch()};
- const auto end_time{std::chrono::duration_cast<std::chrono::microseconds>(duration).count()};
- AddField(Telemetry::FieldType::Session, "EndTime", end_time);
+ const s64 shutdown_time{std::chrono::duration_cast<std::chrono::milliseconds>(
+ std::chrono::system_clock::now().time_since_epoch())
+ .count()};
+ AddField(Telemetry::FieldType::Session, "Shutdown_Time", shutdown_time);
// Complete the session, submitting to web service if necessary
// This is just a placeholder to wrap up the session once the core completes and this is
diff --git a/src/core/telemetry_session.h b/src/core/telemetry_session.h
index cf53835c3..65613daae 100644
--- a/src/core/telemetry_session.h
+++ b/src/core/telemetry_session.h
@@ -35,4 +35,16 @@ private:
std::unique_ptr<Telemetry::VisitorInterface> backend; ///< Backend interface that logs fields
};
+/**
+ * Gets TelemetryId, a unique identifier used for the user's telemetry sessions.
+ * @returns The current TelemetryId for the session.
+ */
+u64 GetTelemetryId();
+
+/**
+ * Regenerates TelemetryId, a unique identifier used for the user's telemetry sessions.
+ * @returns The new TelemetryId that was generated.
+ */
+u64 RegenerateTelemetryId();
+
} // namespace Core
diff --git a/src/input_common/CMakeLists.txt b/src/input_common/CMakeLists.txt
index e3e36ada7..92792a702 100644
--- a/src/input_common/CMakeLists.txt
+++ b/src/input_common/CMakeLists.txt
@@ -2,12 +2,14 @@ set(SRCS
analog_from_button.cpp
keyboard.cpp
main.cpp
+ motion_emu.cpp
)
set(HEADERS
analog_from_button.h
keyboard.h
main.h
+ motion_emu.h
)
if(SDL2_FOUND)
diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp
index 699f41e6b..557353740 100644
--- a/src/input_common/main.cpp
+++ b/src/input_common/main.cpp
@@ -7,6 +7,7 @@
#include "input_common/analog_from_button.h"
#include "input_common/keyboard.h"
#include "input_common/main.h"
+#include "input_common/motion_emu.h"
#ifdef HAVE_SDL2
#include "input_common/sdl/sdl.h"
#endif
@@ -14,12 +15,16 @@
namespace InputCommon {
static std::shared_ptr<Keyboard> keyboard;
+static std::shared_ptr<MotionEmu> motion_emu;
void Init() {
- keyboard = std::make_shared<InputCommon::Keyboard>();
+ keyboard = std::make_shared<Keyboard>();
Input::RegisterFactory<Input::ButtonDevice>("keyboard", keyboard);
Input::RegisterFactory<Input::AnalogDevice>("analog_from_button",
- std::make_shared<InputCommon::AnalogFromButton>());
+ std::make_shared<AnalogFromButton>());
+ motion_emu = std::make_shared<MotionEmu>();
+ Input::RegisterFactory<Input::MotionDevice>("motion_emu", motion_emu);
+
#ifdef HAVE_SDL2
SDL::Init();
#endif
@@ -29,6 +34,8 @@ void Shutdown() {
Input::UnregisterFactory<Input::ButtonDevice>("keyboard");
keyboard.reset();
Input::UnregisterFactory<Input::AnalogDevice>("analog_from_button");
+ Input::UnregisterFactory<Input::MotionDevice>("motion_emu");
+ motion_emu.reset();
#ifdef HAVE_SDL2
SDL::Shutdown();
@@ -39,6 +46,10 @@ Keyboard* GetKeyboard() {
return keyboard.get();
}
+MotionEmu* GetMotionEmu() {
+ return motion_emu.get();
+}
+
std::string GenerateKeyboardParam(int key_code) {
Common::ParamPackage param{
{"engine", "keyboard"}, {"code", std::to_string(key_code)},
diff --git a/src/input_common/main.h b/src/input_common/main.h
index 140bbd014..5604f0fa8 100644
--- a/src/input_common/main.h
+++ b/src/input_common/main.h
@@ -11,7 +11,7 @@ namespace InputCommon {
/// Initializes and registers all built-in input device factories.
void Init();
-/// Unresisters all build-in input device factories and shut them down.
+/// Deregisters all built-in input device factories and shuts them down.
void Shutdown();
class Keyboard;
@@ -19,6 +19,11 @@ class Keyboard;
/// Gets the keyboard button device factory.
Keyboard* GetKeyboard();
+class MotionEmu;
+
+/// Gets the motion emulation factory.
+MotionEmu* GetMotionEmu();
+
/// Generates a serialized param package for creating a keyboard button device
std::string GenerateKeyboardParam(int key_code);
diff --git a/src/input_common/motion_emu.cpp b/src/input_common/motion_emu.cpp
new file mode 100644
index 000000000..59a035e70
--- /dev/null
+++ b/src/input_common/motion_emu.cpp
@@ -0,0 +1,168 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <chrono>
+#include <mutex>
+#include <thread>
+#include <tuple>
+#include "common/math_util.h"
+#include "common/quaternion.h"
+#include "common/thread.h"
+#include "common/vector_math.h"
+#include "input_common/motion_emu.h"
+
+namespace InputCommon {
+
+// Implementation class of the motion emulation device
+class MotionEmuDevice {
+public:
+ MotionEmuDevice(int update_millisecond, float sensitivity)
+ : update_millisecond(update_millisecond),
+ update_duration(std::chrono::duration_cast<std::chrono::steady_clock::duration>(
+ std::chrono::milliseconds(update_millisecond))),
+ sensitivity(sensitivity), motion_emu_thread(&MotionEmuDevice::MotionEmuThread, this) {}
+
+ ~MotionEmuDevice() {
+ if (motion_emu_thread.joinable()) {
+ shutdown_event.Set();
+ motion_emu_thread.join();
+ }
+ }
+
+ void BeginTilt(int x, int y) {
+ mouse_origin = Math::MakeVec(x, y);
+ is_tilting = true;
+ }
+
+ void Tilt(int x, int y) {
+ auto mouse_move = Math::MakeVec(x, y) - mouse_origin;
+ if (is_tilting) {
+ std::lock_guard<std::mutex> guard(tilt_mutex);
+ if (mouse_move.x == 0 && mouse_move.y == 0) {
+ tilt_angle = 0;
+ } else {
+ tilt_direction = mouse_move.Cast<float>();
+ tilt_angle = MathUtil::Clamp(tilt_direction.Normalize() * sensitivity, 0.0f,
+ MathUtil::PI * 0.5f);
+ }
+ }
+ }
+
+ void EndTilt() {
+ std::lock_guard<std::mutex> guard(tilt_mutex);
+ tilt_angle = 0;
+ is_tilting = false;
+ }
+
+ std::tuple<Math::Vec3<float>, Math::Vec3<float>> GetStatus() {
+ std::lock_guard<std::mutex> guard(status_mutex);
+ return status;
+ }
+
+private:
+ const int update_millisecond;
+ const std::chrono::steady_clock::duration update_duration;
+ const float sensitivity;
+
+ Math::Vec2<int> mouse_origin;
+
+ std::mutex tilt_mutex;
+ Math::Vec2<float> tilt_direction;
+ float tilt_angle = 0;
+
+ bool is_tilting = false;
+
+ Common::Event shutdown_event;
+
+ std::tuple<Math::Vec3<float>, Math::Vec3<float>> status;
+ std::mutex status_mutex;
+
+ // Note: always keep the thread declaration at the end so that other objects are initialized
+ // before this!
+ std::thread motion_emu_thread;
+
+ void MotionEmuThread() {
+ auto update_time = std::chrono::steady_clock::now();
+ Math::Quaternion<float> q = MakeQuaternion(Math::Vec3<float>(), 0);
+ Math::Quaternion<float> old_q;
+
+ while (!shutdown_event.WaitUntil(update_time)) {
+ update_time += update_duration;
+ old_q = q;
+
+ {
+ std::lock_guard<std::mutex> guard(tilt_mutex);
+
+ // Find the quaternion describing current 3DS tilting
+ q = MakeQuaternion(Math::MakeVec(-tilt_direction.y, 0.0f, tilt_direction.x),
+ tilt_angle);
+ }
+
+ auto inv_q = q.Inverse();
+
+ // Set the gravity vector in world space
+ auto gravity = Math::MakeVec(0.0f, -1.0f, 0.0f);
+
+ // Find the angular rate vector in world space
+ auto angular_rate = ((q - old_q) * inv_q).xyz * 2;
+ angular_rate *= 1000 / update_millisecond / MathUtil::PI * 180;
+
+ // Transform the two vectors from world space to 3DS space
+ gravity = QuaternionRotate(inv_q, gravity);
+ angular_rate = QuaternionRotate(inv_q, angular_rate);
+
+ // Update the sensor state
+ {
+ std::lock_guard<std::mutex> guard(status_mutex);
+ status = std::make_tuple(gravity, angular_rate);
+ }
+ }
+ }
+};
+
+// Interface wrapper held by input receiver as a unique_ptr. It holds the implementation class as
+// a shared_ptr, which is also observed by the factory class as a weak_ptr. In this way the factory
+// can forward all the inputs to the implementation only when it is valid.
+class MotionEmuDeviceWrapper : public Input::MotionDevice {
+public:
+ MotionEmuDeviceWrapper(int update_millisecond, float sensitivity) {
+ device = std::make_shared<MotionEmuDevice>(update_millisecond, sensitivity);
+ }
+
+ std::tuple<Math::Vec3<float>, Math::Vec3<float>> GetStatus() const {
+ return device->GetStatus();
+ }
+
+ std::shared_ptr<MotionEmuDevice> device;
+};
+
+std::unique_ptr<Input::MotionDevice> MotionEmu::Create(const Common::ParamPackage& params) {
+ int update_period = params.Get("update_period", 100);
+ float sensitivity = params.Get("sensitivity", 0.01f);
+ auto device_wrapper = std::make_unique<MotionEmuDeviceWrapper>(update_period, sensitivity);
+ // Previously created device is disconnected here. Having two motion devices for 3DS is not
+ // expected.
+ current_device = device_wrapper->device;
+ return std::move(device_wrapper);
+}
+
+void MotionEmu::BeginTilt(int x, int y) {
+ if (auto ptr = current_device.lock()) {
+ ptr->BeginTilt(x, y);
+ }
+}
+
+void MotionEmu::Tilt(int x, int y) {
+ if (auto ptr = current_device.lock()) {
+ ptr->Tilt(x, y);
+ }
+}
+
+void MotionEmu::EndTilt() {
+ if (auto ptr = current_device.lock()) {
+ ptr->EndTilt();
+ }
+}
+
+} // namespace InputCommon
diff --git a/src/input_common/motion_emu.h b/src/input_common/motion_emu.h
new file mode 100644
index 000000000..7a7e22467
--- /dev/null
+++ b/src/input_common/motion_emu.h
@@ -0,0 +1,46 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "core/frontend/input.h"
+
+namespace InputCommon {
+
+class MotionEmuDevice;
+
+class MotionEmu : public Input::Factory<Input::MotionDevice> {
+public:
+ /**
+ * Creates a motion device emulated from mouse input
+ * @param params contains parameters for creating the device:
+ * - "update_period": update period in milliseconds
+ * - "sensitivity": the coefficient converting mouse movement to tilting angle
+ */
+ std::unique_ptr<Input::MotionDevice> Create(const Common::ParamPackage& params) override;
+
+ /**
+ * Signals that a motion sensor tilt has begun.
+ * @param x the x-coordinate of the cursor
+ * @param y the y-coordinate of the cursor
+ */
+ void BeginTilt(int x, int y);
+
+ /**
+ * Signals that a motion sensor tilt is occurring.
+ * @param x the x-coordinate of the cursor
+ * @param y the y-coordinate of the cursor
+ */
+ void Tilt(int x, int y);
+
+ /**
+ * Signals that a motion sensor tilt has ended.
+ */
+ void EndTilt();
+
+private:
+ std::weak_ptr<MotionEmuDevice> current_device;
+};
+
+} // namespace InputCommon
diff --git a/src/input_common/sdl/sdl.cpp b/src/input_common/sdl/sdl.cpp
index 756ee58b7..d404afa89 100644
--- a/src/input_common/sdl/sdl.cpp
+++ b/src/input_common/sdl/sdl.cpp
@@ -159,7 +159,7 @@ public:
* - "axis"(optional): the index of the axis to bind
* - "direction"(only used for hat): the direction name of the hat to bind. Can be "up",
* "down", "left" or "right"
- * - "threshould"(only used for axis): a float value in (-1.0, 1.0) which the button is
+ * - "threshold"(only used for axis): a float value in (-1.0, 1.0) which the button is
* triggered if the axis value crosses
* - "direction"(only used for axis): "+" means the button is triggered when the axis value
* is greater than the threshold; "-" means the button is triggered when the axis value
diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt
new file mode 100644
index 000000000..ac9d028da
--- /dev/null
+++ b/src/network/CMakeLists.txt
@@ -0,0 +1,18 @@
+set(SRCS
+ network.cpp
+ packet.cpp
+ room.cpp
+ room_member.cpp
+ )
+
+set(HEADERS
+ network.h
+ packet.h
+ room.h
+ room_member.h
+ )
+
+create_directory_groups(${SRCS} ${HEADERS})
+
+add_library(network STATIC ${SRCS} ${HEADERS})
+target_link_libraries(network PRIVATE common enet)
diff --git a/src/network/network.cpp b/src/network/network.cpp
new file mode 100644
index 000000000..51b5d6a9f
--- /dev/null
+++ b/src/network/network.cpp
@@ -0,0 +1,50 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/assert.h"
+#include "common/logging/log.h"
+#include "enet/enet.h"
+#include "network/network.h"
+
+namespace Network {
+
+static std::shared_ptr<RoomMember> g_room_member; ///< RoomMember (Client) for network games
+static std::shared_ptr<Room> g_room; ///< Room (Server) for network games
+// TODO(B3N30): Put these globals into a networking class
+
+bool Init() {
+ if (enet_initialize() != 0) {
+ LOG_ERROR(Network, "Error initalizing ENet");
+ return false;
+ }
+ g_room = std::make_shared<Room>();
+ g_room_member = std::make_shared<RoomMember>();
+ LOG_DEBUG(Network, "initialized OK");
+ return true;
+}
+
+std::weak_ptr<Room> GetRoom() {
+ return g_room;
+}
+
+std::weak_ptr<RoomMember> GetRoomMember() {
+ return g_room_member;
+}
+
+void Shutdown() {
+ if (g_room_member) {
+ if (g_room_member->IsConnected())
+ g_room_member->Leave();
+ g_room_member.reset();
+ }
+ if (g_room) {
+ if (g_room->GetState() == Room::State::Open)
+ g_room->Destroy();
+ g_room.reset();
+ }
+ enet_deinitialize();
+ LOG_DEBUG(Network, "shutdown OK");
+}
+
+} // namespace Network
diff --git a/src/network/network.h b/src/network/network.h
new file mode 100644
index 000000000..6d002d693
--- /dev/null
+++ b/src/network/network.h
@@ -0,0 +1,25 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include "network/room.h"
+#include "network/room_member.h"
+
+namespace Network {
+
+/// Initializes and registers the network device, the room, and the room member.
+bool Init();
+
+/// Returns a pointer to the room handle
+std::weak_ptr<Room> GetRoom();
+
+/// Returns a pointer to the room member handle
+std::weak_ptr<RoomMember> GetRoomMember();
+
+/// Unregisters the network device, the room, and the room member and shut them down.
+void Shutdown();
+
+} // namespace Network
diff --git a/src/network/packet.cpp b/src/network/packet.cpp
new file mode 100644
index 000000000..cc60f2fbc
--- /dev/null
+++ b/src/network/packet.cpp
@@ -0,0 +1,263 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#ifdef _WIN32
+#include <winsock2.h>
+#else
+#include <arpa/inet.h>
+#endif
+#include <cstring>
+#include <string>
+#include "network/packet.h"
+
+namespace Network {
+
+#ifndef htonll
+u64 htonll(u64 x) {
+ return ((1 == htonl(1)) ? (x) : ((uint64_t)htonl((x)&0xFFFFFFFF) << 32) | htonl((x) >> 32));
+}
+#endif
+
+#ifndef ntohll
+u64 ntohll(u64 x) {
+ return ((1 == ntohl(1)) ? (x) : ((uint64_t)ntohl((x)&0xFFFFFFFF) << 32) | ntohl((x) >> 32));
+}
+#endif
+
+void Packet::Append(const void* in_data, std::size_t size_in_bytes) {
+ if (in_data && (size_in_bytes > 0)) {
+ std::size_t start = data.size();
+ data.resize(start + size_in_bytes);
+ std::memcpy(&data[start], in_data, size_in_bytes);
+ }
+}
+
+void Packet::Read(void* out_data, std::size_t size_in_bytes) {
+ if (out_data && CheckSize(size_in_bytes)) {
+ std::memcpy(out_data, &data[read_pos], size_in_bytes);
+ read_pos += size_in_bytes;
+ }
+}
+
+void Packet::Clear() {
+ data.clear();
+ read_pos = 0;
+ is_valid = true;
+}
+
+const void* Packet::GetData() const {
+ return !data.empty() ? &data[0] : nullptr;
+}
+
+void Packet::IgnoreBytes(u32 length) {
+ read_pos += length;
+}
+
+std::size_t Packet::GetDataSize() const {
+ return data.size();
+}
+
+bool Packet::EndOfPacket() const {
+ return read_pos >= data.size();
+}
+
+Packet::operator bool() const {
+ return is_valid ? &Packet::CheckSize : nullptr;
+}
+
+Packet& Packet::operator>>(bool& out_data) {
+ u8 value;
+ if (*this >> value) {
+ out_data = (value != 0);
+ }
+ return *this;
+}
+
+Packet& Packet::operator>>(s8& out_data) {
+ Read(&out_data, sizeof(out_data));
+ return *this;
+}
+
+Packet& Packet::operator>>(u8& out_data) {
+ Read(&out_data, sizeof(out_data));
+ return *this;
+}
+
+Packet& Packet::operator>>(s16& out_data) {
+ s16 value;
+ Read(&value, sizeof(value));
+ out_data = ntohs(value);
+ return *this;
+}
+
+Packet& Packet::operator>>(u16& out_data) {
+ u16 value;
+ Read(&value, sizeof(value));
+ out_data = ntohs(value);
+ return *this;
+}
+
+Packet& Packet::operator>>(s32& out_data) {
+ s32 value;
+ Read(&value, sizeof(value));
+ out_data = ntohl(value);
+ return *this;
+}
+
+Packet& Packet::operator>>(u32& out_data) {
+ u32 value;
+ Read(&value, sizeof(value));
+ out_data = ntohl(value);
+ return *this;
+}
+
+Packet& Packet::operator>>(s64& out_data) {
+ s64 value;
+ Read(&value, sizeof(value));
+ out_data = ntohll(value);
+ return *this;
+}
+
+Packet& Packet::operator>>(u64& out_data) {
+ u64 value;
+ Read(&value, sizeof(value));
+ out_data = ntohll(value);
+ return *this;
+}
+
+Packet& Packet::operator>>(float& out_data) {
+ Read(&out_data, sizeof(out_data));
+ return *this;
+}
+
+Packet& Packet::operator>>(double& out_data) {
+ Read(&out_data, sizeof(out_data));
+ return *this;
+}
+
+Packet& Packet::operator>>(char* out_data) {
+ // First extract string length
+ u32 length = 0;
+ *this >> length;
+
+ if ((length > 0) && CheckSize(length)) {
+ // Then extract characters
+ std::memcpy(out_data, &data[read_pos], length);
+ out_data[length] = '\0';
+
+ // Update reading position
+ read_pos += length;
+ }
+
+ return *this;
+}
+
+Packet& Packet::operator>>(std::string& out_data) {
+ // First extract string length
+ u32 length = 0;
+ *this >> length;
+
+ out_data.clear();
+ if ((length > 0) && CheckSize(length)) {
+ // Then extract characters
+ out_data.assign(&data[read_pos], length);
+
+ // Update reading position
+ read_pos += length;
+ }
+
+ return *this;
+}
+
+Packet& Packet::operator<<(bool in_data) {
+ *this << static_cast<u8>(in_data);
+ return *this;
+}
+
+Packet& Packet::operator<<(s8 in_data) {
+ Append(&in_data, sizeof(in_data));
+ return *this;
+}
+
+Packet& Packet::operator<<(u8 in_data) {
+ Append(&in_data, sizeof(in_data));
+ return *this;
+}
+
+Packet& Packet::operator<<(s16 in_data) {
+ s16 toWrite = htons(in_data);
+ Append(&toWrite, sizeof(toWrite));
+ return *this;
+}
+
+Packet& Packet::operator<<(u16 in_data) {
+ u16 toWrite = htons(in_data);
+ Append(&toWrite, sizeof(toWrite));
+ return *this;
+}
+
+Packet& Packet::operator<<(s32 in_data) {
+ s32 toWrite = htonl(in_data);
+ Append(&toWrite, sizeof(toWrite));
+ return *this;
+}
+
+Packet& Packet::operator<<(u32 in_data) {
+ u32 toWrite = htonl(in_data);
+ Append(&toWrite, sizeof(toWrite));
+ return *this;
+}
+
+Packet& Packet::operator<<(s64 in_data) {
+ s64 toWrite = htonll(in_data);
+ Append(&toWrite, sizeof(toWrite));
+ return *this;
+}
+
+Packet& Packet::operator<<(u64 in_data) {
+ u64 toWrite = htonll(in_data);
+ Append(&toWrite, sizeof(toWrite));
+ return *this;
+}
+
+Packet& Packet::operator<<(float in_data) {
+ Append(&in_data, sizeof(in_data));
+ return *this;
+}
+
+Packet& Packet::operator<<(double in_data) {
+ Append(&in_data, sizeof(in_data));
+ return *this;
+}
+
+Packet& Packet::operator<<(const char* in_data) {
+ // First insert string length
+ u32 length = std::strlen(in_data);
+ *this << length;
+
+ // Then insert characters
+ Append(in_data, length * sizeof(char));
+
+ return *this;
+}
+
+Packet& Packet::operator<<(const std::string& in_data) {
+ // First insert string length
+ u32 length = static_cast<u32>(in_data.size());
+ *this << length;
+
+ // Then insert characters
+ if (length > 0)
+ Append(in_data.c_str(), length * sizeof(std::string::value_type));
+
+ return *this;
+}
+
+bool Packet::CheckSize(std::size_t size) {
+ is_valid = is_valid && (read_pos + size <= data.size());
+
+ return is_valid;
+}
+
+} // namespace Network
diff --git a/src/network/packet.h b/src/network/packet.h
new file mode 100644
index 000000000..5a2e58dc2
--- /dev/null
+++ b/src/network/packet.h
@@ -0,0 +1,166 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <array>
+#include <vector>
+#include "common/common_types.h"
+
+namespace Network {
+
+/// A class that serializes data for network transfer. It also handles endianess
+class Packet {
+public:
+ Packet() = default;
+ ~Packet() = default;
+
+ /**
+ * Append data to the end of the packet
+ * @param data Pointer to the sequence of bytes to append
+ * @param size_in_bytes Number of bytes to append
+ */
+ void Append(const void* data, std::size_t size_in_bytes);
+
+ /**
+ * Reads data from the current read position of the packet
+ * @param out_data Pointer where the data should get written to
+ * @param size_in_bytes Number of bytes to read
+ */
+ void Read(void* out_data, std::size_t size_in_bytes);
+
+ /**
+ * Clear the packet
+ * After calling Clear, the packet is empty.
+ */
+ void Clear();
+
+ /**
+ * Ignores bytes while reading
+ * @param length THe number of bytes to ignore
+ */
+ void IgnoreBytes(u32 length);
+
+ /**
+ * Get a pointer to the data contained in the packet
+ * @return Pointer to the data
+ */
+ const void* GetData() const;
+
+ /**
+ * This function returns the number of bytes pointed to by
+ * what getData returns.
+ * @return Data size, in bytes
+ */
+ std::size_t GetDataSize() const;
+
+ /**
+ * This function is useful to know if there is some data
+ * left to be read, without actually reading it.
+ * @return True if all data was read, false otherwise
+ */
+ bool EndOfPacket() const;
+
+ explicit operator bool() const;
+
+ /// Overloads of operator >> to read data from the packet
+ Packet& operator>>(bool& out_data);
+ Packet& operator>>(s8& out_data);
+ Packet& operator>>(u8& out_data);
+ Packet& operator>>(s16& out_data);
+ Packet& operator>>(u16& out_data);
+ Packet& operator>>(s32& out_data);
+ Packet& operator>>(u32& out_data);
+ Packet& operator>>(s64& out_data);
+ Packet& operator>>(u64& out_data);
+ Packet& operator>>(float& out_data);
+ Packet& operator>>(double& out_data);
+ Packet& operator>>(char* out_data);
+ Packet& operator>>(std::string& out_data);
+ template <typename T>
+ Packet& operator>>(std::vector<T>& out_data);
+ template <typename T, std::size_t S>
+ Packet& operator>>(std::array<T, S>& out_data);
+
+ /// Overloads of operator << to write data into the packet
+ Packet& operator<<(bool in_data);
+ Packet& operator<<(s8 in_data);
+ Packet& operator<<(u8 in_data);
+ Packet& operator<<(s16 in_data);
+ Packet& operator<<(u16 in_data);
+ Packet& operator<<(s32 in_data);
+ Packet& operator<<(u32 in_data);
+ Packet& operator<<(s64 in_data);
+ Packet& operator<<(u64 in_data);
+ Packet& operator<<(float in_data);
+ Packet& operator<<(double in_data);
+ Packet& operator<<(const char* in_data);
+ Packet& operator<<(const std::string& in_data);
+ template <typename T>
+ Packet& operator<<(const std::vector<T>& in_data);
+ template <typename T, std::size_t S>
+ Packet& operator<<(const std::array<T, S>& data);
+
+private:
+ /**
+ * Check if the packet can extract a given number of bytes
+ * This function updates accordingly the state of the packet.
+ * @param size Size to check
+ * @return True if size bytes can be read from the packet
+ */
+ bool CheckSize(std::size_t size);
+
+ // Member data
+ std::vector<char> data; ///< Data stored in the packet
+ std::size_t read_pos = 0; ///< Current reading position in the packet
+ bool is_valid = true; ///< Reading state of the packet
+};
+
+template <typename T>
+Packet& Packet::operator>>(std::vector<T>& out_data) {
+ // First extract the size
+ u32 size = 0;
+ *this >> size;
+ out_data.resize(size);
+
+ // Then extract the data
+ for (std::size_t i = 0; i < out_data.size(); ++i) {
+ T character = 0;
+ *this >> character;
+ out_data[i] = character;
+ }
+ return *this;
+}
+
+template <typename T, std::size_t S>
+Packet& Packet::operator>>(std::array<T, S>& out_data) {
+ for (std::size_t i = 0; i < out_data.size(); ++i) {
+ T character = 0;
+ *this >> character;
+ out_data[i] = character;
+ }
+ return *this;
+}
+
+template <typename T>
+Packet& Packet::operator<<(const std::vector<T>& in_data) {
+ // First insert the size
+ *this << static_cast<u32>(in_data.size());
+
+ // Then insert the data
+ for (std::size_t i = 0; i < in_data.size(); ++i) {
+ *this << in_data[i];
+ }
+ return *this;
+}
+
+template <typename T, std::size_t S>
+Packet& Packet::operator<<(const std::array<T, S>& in_data) {
+ for (std::size_t i = 0; i < in_data.size(); ++i) {
+ *this << in_data[i];
+ }
+ return *this;
+}
+
+} // namespace Network
diff --git a/src/network/room.cpp b/src/network/room.cpp
new file mode 100644
index 000000000..261049ab0
--- /dev/null
+++ b/src/network/room.cpp
@@ -0,0 +1,497 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <algorithm>
+#include <atomic>
+#include <mutex>
+#include <random>
+#include <thread>
+#include "enet/enet.h"
+#include "network/packet.h"
+#include "network/room.h"
+
+namespace Network {
+
+/// Maximum number of concurrent connections allowed to this room.
+static constexpr u32 MaxConcurrentConnections = 10;
+
+class Room::RoomImpl {
+public:
+ // This MAC address is used to generate a 'Nintendo' like Mac address.
+ const MacAddress NintendoOUI;
+ std::mt19937 random_gen; ///< Random number generator. Used for GenerateMacAddress
+
+ ENetHost* server = nullptr; ///< Network interface.
+
+ std::atomic<State> state{State::Closed}; ///< Current state of the room.
+ RoomInformation room_information; ///< Information about this room.
+
+ struct Member {
+ std::string nickname; ///< The nickname of the member.
+ GameInfo game_info; ///< The current game of the member
+ MacAddress mac_address; ///< The assigned mac address of the member.
+ ENetPeer* peer; ///< The remote peer.
+ };
+ using MemberList = std::vector<Member>;
+ MemberList members; ///< Information about the members of this room
+ mutable std::mutex member_mutex; ///< Mutex for locking the members list
+ /// This should be a std::shared_mutex as soon as C++17 is supported
+
+ RoomImpl()
+ : random_gen(std::random_device()()), NintendoOUI{0x00, 0x1F, 0x32, 0x00, 0x00, 0x00} {}
+
+ /// Thread that receives and dispatches network packets
+ std::unique_ptr<std::thread> room_thread;
+
+ /// Thread function that will receive and dispatch messages until the room is destroyed.
+ void ServerLoop();
+ void StartLoop();
+
+ /**
+ * Parses and answers a room join request from a client.
+ * Validates the uniqueness of the username and assigns the MAC address
+ * that the client will use for the remainder of the connection.
+ */
+ void HandleJoinRequest(const ENetEvent* event);
+
+ /**
+ * Returns whether the nickname is valid, ie. isn't already taken by someone else in the room.
+ */
+ bool IsValidNickname(const std::string& nickname) const;
+
+ /**
+ * Returns whether the MAC address is valid, ie. isn't already taken by someone else in the
+ * room.
+ */
+ bool IsValidMacAddress(const MacAddress& address) const;
+
+ /**
+ * Sends a ID_ROOM_NAME_COLLISION message telling the client that the name is invalid.
+ */
+ void SendNameCollision(ENetPeer* client);
+
+ /**
+ * Sends a ID_ROOM_MAC_COLLISION message telling the client that the MAC is invalid.
+ */
+ void SendMacCollision(ENetPeer* client);
+
+ /**
+ * Sends a ID_ROOM_VERSION_MISMATCH message telling the client that the version is invalid.
+ */
+ void SendVersionMismatch(ENetPeer* client);
+
+ /**
+ * Notifies the member that its connection attempt was successful,
+ * and it is now part of the room.
+ */
+ void SendJoinSuccess(ENetPeer* client, MacAddress mac_address);
+
+ /**
+ * Notifies the members that the room is closed,
+ */
+ void SendCloseMessage();
+
+ /**
+ * Sends the information about the room, along with the list of members
+ * to every connected client in the room.
+ * The packet has the structure:
+ * <MessageID>ID_ROOM_INFORMATION
+ * <String> room_name
+ * <u32> member_slots: The max number of clients allowed in this room
+ * <u32> num_members: the number of currently joined clients
+ * This is followed by the following three values for each member:
+ * <String> nickname of that member
+ * <MacAddress> mac_address of that member
+ * <String> game_name of that member
+ */
+ void BroadcastRoomInformation();
+
+ /**
+ * Generates a free MAC address to assign to a new client.
+ * The first 3 bytes are the NintendoOUI 0x00, 0x1F, 0x32
+ */
+ MacAddress GenerateMacAddress();
+
+ /**
+ * Broadcasts this packet to all members except the sender.
+ * @param event The ENet event containing the data
+ */
+ void HandleWifiPacket(const ENetEvent* event);
+
+ /**
+ * Extracts a chat entry from a received ENet packet and adds it to the chat queue.
+ * @param event The ENet event that was received.
+ */
+ void HandleChatPacket(const ENetEvent* event);
+
+ /**
+ * Extracts the game name from a received ENet packet and broadcasts it.
+ * @param event The ENet event that was received.
+ */
+ void HandleGameNamePacket(const ENetEvent* event);
+
+ /**
+ * Removes the client from the members list if it was in it and announces the change
+ * to all other clients.
+ */
+ void HandleClientDisconnection(ENetPeer* client);
+};
+
+// RoomImpl
+void Room::RoomImpl::ServerLoop() {
+ while (state != State::Closed) {
+ ENetEvent event;
+ if (enet_host_service(server, &event, 100) > 0) {
+ switch (event.type) {
+ case ENET_EVENT_TYPE_RECEIVE:
+ switch (event.packet->data[0]) {
+ case IdJoinRequest:
+ HandleJoinRequest(&event);
+ break;
+ case IdSetGameInfo:
+ HandleGameNamePacket(&event);
+ break;
+ case IdWifiPacket:
+ HandleWifiPacket(&event);
+ break;
+ case IdChatMessage:
+ HandleChatPacket(&event);
+ break;
+ }
+ enet_packet_destroy(event.packet);
+ break;
+ case ENET_EVENT_TYPE_DISCONNECT:
+ HandleClientDisconnection(event.peer);
+ break;
+ }
+ }
+ }
+ // Close the connection to all members:
+ SendCloseMessage();
+}
+
+void Room::RoomImpl::StartLoop() {
+ room_thread = std::make_unique<std::thread>(&Room::RoomImpl::ServerLoop, this);
+}
+
+void Room::RoomImpl::HandleJoinRequest(const ENetEvent* event) {
+ Packet packet;
+ packet.Append(event->packet->data, event->packet->dataLength);
+ packet.IgnoreBytes(sizeof(u8)); // Igonore the message type
+ std::string nickname;
+ packet >> nickname;
+
+ MacAddress preferred_mac;
+ packet >> preferred_mac;
+
+ u32 client_version;
+ packet >> client_version;
+
+ if (!IsValidNickname(nickname)) {
+ SendNameCollision(event->peer);
+ return;
+ }
+
+ if (preferred_mac != NoPreferredMac) {
+ // Verify if the preferred mac is available
+ if (!IsValidMacAddress(preferred_mac)) {
+ SendMacCollision(event->peer);
+ return;
+ }
+ } else {
+ // Assign a MAC address of this client automatically
+ preferred_mac = GenerateMacAddress();
+ }
+
+ if (client_version != network_version) {
+ SendVersionMismatch(event->peer);
+ return;
+ }
+
+ // At this point the client is ready to be added to the room.
+ Member member{};
+ member.mac_address = preferred_mac;
+ member.nickname = nickname;
+ member.peer = event->peer;
+
+ {
+ std::lock_guard<std::mutex> lock(member_mutex);
+ members.push_back(std::move(member));
+ }
+
+ // Notify everyone that the room information has changed.
+ BroadcastRoomInformation();
+ SendJoinSuccess(event->peer, preferred_mac);
+}
+
+bool Room::RoomImpl::IsValidNickname(const std::string& nickname) const {
+ // A nickname is valid if it is not already taken by anybody else in the room.
+ // TODO(B3N30): Check for empty names, spaces, etc.
+ std::lock_guard<std::mutex> lock(member_mutex);
+ return std::all_of(members.begin(), members.end(),
+ [&nickname](const auto& member) { return member.nickname != nickname; });
+}
+
+bool Room::RoomImpl::IsValidMacAddress(const MacAddress& address) const {
+ // A MAC address is valid if it is not already taken by anybody else in the room.
+ std::lock_guard<std::mutex> lock(member_mutex);
+ return std::all_of(members.begin(), members.end(),
+ [&address](const auto& member) { return member.mac_address != address; });
+}
+
+void Room::RoomImpl::SendNameCollision(ENetPeer* client) {
+ Packet packet;
+ packet << static_cast<u8>(IdNameCollision);
+
+ ENetPacket* enet_packet =
+ enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE);
+ enet_peer_send(client, 0, enet_packet);
+ enet_host_flush(server);
+}
+
+void Room::RoomImpl::SendMacCollision(ENetPeer* client) {
+ Packet packet;
+ packet << static_cast<u8>(IdMacCollision);
+
+ ENetPacket* enet_packet =
+ enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE);
+ enet_peer_send(client, 0, enet_packet);
+ enet_host_flush(server);
+}
+
+void Room::RoomImpl::SendVersionMismatch(ENetPeer* client) {
+ Packet packet;
+ packet << static_cast<u8>(IdVersionMismatch);
+ packet << network_version;
+
+ ENetPacket* enet_packet =
+ enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE);
+ enet_peer_send(client, 0, enet_packet);
+ enet_host_flush(server);
+}
+
+void Room::RoomImpl::SendJoinSuccess(ENetPeer* client, MacAddress mac_address) {
+ Packet packet;
+ packet << static_cast<u8>(IdJoinSuccess);
+ packet << mac_address;
+ ENetPacket* enet_packet =
+ enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE);
+ enet_peer_send(client, 0, enet_packet);
+ enet_host_flush(server);
+}
+
+void Room::RoomImpl::SendCloseMessage() {
+ Packet packet;
+ packet << static_cast<u8>(IdCloseRoom);
+ ENetPacket* enet_packet =
+ enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE);
+ std::lock_guard<std::mutex> lock(member_mutex);
+ for (auto& member : members) {
+ enet_peer_send(member.peer, 0, enet_packet);
+ }
+ enet_host_flush(server);
+ for (auto& member : members) {
+ enet_peer_disconnect(member.peer, 0);
+ }
+}
+
+void Room::RoomImpl::BroadcastRoomInformation() {
+ Packet packet;
+ packet << static_cast<u8>(IdRoomInformation);
+ packet << room_information.name;
+ packet << room_information.member_slots;
+
+ packet << static_cast<u32>(members.size());
+ {
+ std::lock_guard<std::mutex> lock(member_mutex);
+ for (const auto& member : members) {
+ packet << member.nickname;
+ packet << member.mac_address;
+ packet << member.game_info.name;
+ packet << member.game_info.id;
+ }
+ }
+
+ ENetPacket* enet_packet =
+ enet_packet_create(packet.GetData(), packet.GetDataSize(), ENET_PACKET_FLAG_RELIABLE);
+ enet_host_broadcast(server, 0, enet_packet);
+ enet_host_flush(server);
+}
+
+MacAddress Room::RoomImpl::GenerateMacAddress() {
+ MacAddress result_mac =
+ NintendoOUI; // The first three bytes of each MAC address will be the NintendoOUI
+ std::uniform_int_distribution<> dis(0x00, 0xFF); // Random byte between 0 and 0xFF
+ do {
+ for (size_t i = 3; i < result_mac.size(); ++i) {
+ result_mac[i] = dis(random_gen);
+ }
+ } while (!IsValidMacAddress(result_mac));
+ return result_mac;
+}
+
+void Room::RoomImpl::HandleWifiPacket(const ENetEvent* event) {
+ Packet in_packet;
+ in_packet.Append(event->packet->data, event->packet->dataLength);
+ in_packet.IgnoreBytes(sizeof(u8)); // Message type
+ in_packet.IgnoreBytes(sizeof(u8)); // WifiPacket Type
+ in_packet.IgnoreBytes(sizeof(u8)); // WifiPacket Channel
+ in_packet.IgnoreBytes(sizeof(MacAddress)); // WifiPacket Transmitter Address
+ MacAddress destination_address;
+ in_packet >> destination_address;
+
+ Packet out_packet;
+ out_packet.Append(event->packet->data, event->packet->dataLength);
+ ENetPacket* enet_packet = enet_packet_create(out_packet.GetData(), out_packet.GetDataSize(),
+ ENET_PACKET_FLAG_RELIABLE);
+
+ if (destination_address == BroadcastMac) { // Send the data to everyone except the sender
+ std::lock_guard<std::mutex> lock(member_mutex);
+ for (const auto& member : members) {
+ if (member.peer != event->peer)
+ enet_peer_send(member.peer, 0, enet_packet);
+ }
+ } else { // Send the data only to the destination client
+ std::lock_guard<std::mutex> lock(member_mutex);
+ auto member = std::find_if(members.begin(), members.end(),
+ [destination_address](const Member& member) -> bool {
+ return member.mac_address == destination_address;
+ });
+ if (member != members.end()) {
+ enet_peer_send(member->peer, 0, enet_packet);
+ }
+ }
+ enet_host_flush(server);
+}
+
+void Room::RoomImpl::HandleChatPacket(const ENetEvent* event) {
+ Packet in_packet;
+ in_packet.Append(event->packet->data, event->packet->dataLength);
+
+ in_packet.IgnoreBytes(sizeof(u8)); // Igonore the message type
+ std::string message;
+ in_packet >> message;
+ auto CompareNetworkAddress = [event](const Member member) -> bool {
+ return member.peer == event->peer;
+ };
+
+ std::lock_guard<std::mutex> lock(member_mutex);
+ const auto sending_member = std::find_if(members.begin(), members.end(), CompareNetworkAddress);
+ if (sending_member == members.end()) {
+ return; // Received a chat message from a unknown sender
+ }
+
+ Packet out_packet;
+ out_packet << static_cast<u8>(IdChatMessage);
+ out_packet << sending_member->nickname;
+ out_packet << message;
+
+ ENetPacket* enet_packet = enet_packet_create(out_packet.GetData(), out_packet.GetDataSize(),
+ ENET_PACKET_FLAG_RELIABLE);
+ for (const auto& member : members) {
+ if (member.peer != event->peer)
+ enet_peer_send(member.peer, 0, enet_packet);
+ }
+ enet_host_flush(server);
+}
+
+void Room::RoomImpl::HandleGameNamePacket(const ENetEvent* event) {
+ Packet in_packet;
+ in_packet.Append(event->packet->data, event->packet->dataLength);
+
+ in_packet.IgnoreBytes(sizeof(u8)); // Igonore the message type
+ GameInfo game_info;
+ in_packet >> game_info.name;
+ in_packet >> game_info.id;
+
+ {
+ std::lock_guard<std::mutex> lock(member_mutex);
+ auto member =
+ std::find_if(members.begin(), members.end(), [event](const Member& member) -> bool {
+ return member.peer == event->peer;
+ });
+ if (member != members.end()) {
+ member->game_info = game_info;
+ }
+ }
+ BroadcastRoomInformation();
+}
+
+void Room::RoomImpl::HandleClientDisconnection(ENetPeer* client) {
+ // Remove the client from the members list.
+ {
+ std::lock_guard<std::mutex> lock(member_mutex);
+ members.erase(
+ std::remove_if(members.begin(), members.end(),
+ [client](const Member& member) { return member.peer == client; }),
+ members.end());
+ }
+
+ // Announce the change to all clients.
+ enet_peer_disconnect(client, 0);
+ BroadcastRoomInformation();
+}
+
+// Room
+Room::Room() : room_impl{std::make_unique<RoomImpl>()} {}
+
+Room::~Room() = default;
+
+void Room::Create(const std::string& name, const std::string& server_address, u16 server_port) {
+ ENetAddress address;
+ address.host = ENET_HOST_ANY;
+ if (!server_address.empty()) {
+ enet_address_set_host(&address, server_address.c_str());
+ }
+ address.port = server_port;
+
+ room_impl->server = enet_host_create(&address, MaxConcurrentConnections, NumChannels, 0, 0);
+ // TODO(B3N30): Allow specifying the maximum number of concurrent connections.
+ room_impl->state = State::Open;
+
+ room_impl->room_information.name = name;
+ room_impl->room_information.member_slots = MaxConcurrentConnections;
+ room_impl->StartLoop();
+}
+
+Room::State Room::GetState() const {
+ return room_impl->state;
+}
+
+const RoomInformation& Room::GetRoomInformation() const {
+ return room_impl->room_information;
+}
+
+std::vector<Room::Member> Room::GetRoomMemberList() const {
+ std::vector<Room::Member> member_list;
+ std::lock_guard<std::mutex> lock(room_impl->member_mutex);
+ for (const auto& member_impl : room_impl->members) {
+ Member member;
+ member.nickname = member_impl.nickname;
+ member.mac_address = member_impl.mac_address;
+ member.game_info = member_impl.game_info;
+ member_list.push_back(member);
+ }
+ return member_list;
+};
+
+void Room::Destroy() {
+ room_impl->state = State::Closed;
+ room_impl->room_thread->join();
+ room_impl->room_thread.reset();
+
+ if (room_impl->server) {
+ enet_host_destroy(room_impl->server);
+ }
+ room_impl->room_information = {};
+ room_impl->server = nullptr;
+ {
+ std::lock_guard<std::mutex> lock(room_impl->member_mutex);
+ room_impl->members.clear();
+ }
+ room_impl->room_information.member_slots = 0;
+ room_impl->room_information.name.clear();
+}
+
+} // namespace Network
diff --git a/src/network/room.h b/src/network/room.h
new file mode 100644
index 000000000..8285a4d0c
--- /dev/null
+++ b/src/network/room.h
@@ -0,0 +1,101 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <array>
+#include <memory>
+#include <string>
+#include <vector>
+#include "common/common_types.h"
+
+namespace Network {
+
+constexpr u32 network_version = 1; ///< The version of this Room and RoomMember
+
+constexpr u16 DefaultRoomPort = 1234;
+constexpr size_t NumChannels = 1; // Number of channels used for the connection
+
+struct RoomInformation {
+ std::string name; ///< Name of the server
+ u32 member_slots; ///< Maximum number of members in this room
+};
+
+struct GameInfo {
+ std::string name{""};
+ u64 id{0};
+};
+
+using MacAddress = std::array<u8, 6>;
+/// A special MAC address that tells the room we're joining to assign us a MAC address
+/// automatically.
+constexpr MacAddress NoPreferredMac = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
+
+// 802.11 broadcast MAC address
+constexpr MacAddress BroadcastMac = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
+
+// The different types of messages that can be sent. The first byte of each packet defines the type
+enum RoomMessageTypes : u8 {
+ IdJoinRequest = 1,
+ IdJoinSuccess,
+ IdRoomInformation,
+ IdSetGameInfo,
+ IdWifiPacket,
+ IdChatMessage,
+ IdNameCollision,
+ IdMacCollision,
+ IdVersionMismatch,
+ IdCloseRoom
+};
+
+/// This is what a server [person creating a server] would use.
+class Room final {
+public:
+ enum class State : u8 {
+ Open, ///< The room is open and ready to accept connections.
+ Closed, ///< The room is not opened and can not accept connections.
+ };
+
+ struct Member {
+ std::string nickname; ///< The nickname of the member.
+ GameInfo game_info; ///< The current game of the member
+ MacAddress mac_address; ///< The assigned mac address of the member.
+ };
+
+ Room();
+ ~Room();
+
+ /**
+ * Gets the current state of the room.
+ */
+ State GetState() const;
+
+ /**
+ * Gets the room information of the room.
+ */
+ const RoomInformation& GetRoomInformation() const;
+
+ /**
+ * Gets a list of the mbmers connected to the room.
+ */
+ std::vector<Member> GetRoomMemberList() const;
+
+ /**
+ * Creates the socket for this room. Will bind to default address if
+ * server is empty string.
+ */
+ void Create(const std::string& name, const std::string& server = "",
+ u16 server_port = DefaultRoomPort);
+
+ /**
+ * Destroys the socket
+ */
+ void Destroy();
+
+private:
+ class RoomImpl;
+ std::unique_ptr<RoomImpl> room_impl;
+};
+
+} // namespace Network
diff --git a/src/network/room_member.cpp b/src/network/room_member.cpp
new file mode 100644
index 000000000..f229ec6fd
--- /dev/null
+++ b/src/network/room_member.cpp
@@ -0,0 +1,490 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <atomic>
+#include <list>
+#include <mutex>
+#include <set>
+#include <thread>
+#include "common/assert.h"
+#include "enet/enet.h"
+#include "network/packet.h"
+#include "network/room_member.h"
+
+namespace Network {
+
+constexpr u32 ConnectionTimeoutMs = 5000;
+
+class RoomMember::RoomMemberImpl {
+public:
+ ENetHost* client = nullptr; ///< ENet network interface.
+ ENetPeer* server = nullptr; ///< The server peer the client is connected to
+
+ /// Information about the clients connected to the same room as us.
+ MemberList member_information;
+ /// Information about the room we're connected to.
+ RoomInformation room_information;
+
+ /// The current game name, id and version
+ GameInfo current_game_info;
+
+ std::atomic<State> state{State::Idle}; ///< Current state of the RoomMember.
+ void SetState(const State new_state);
+ bool IsConnected() const;
+
+ std::string nickname; ///< The nickname of this member.
+ MacAddress mac_address; ///< The mac_address of this member.
+
+ std::mutex network_mutex; ///< Mutex that controls access to the `client` variable.
+ /// Thread that receives and dispatches network packets
+ std::unique_ptr<std::thread> loop_thread;
+ std::mutex send_list_mutex; ///< Mutex that controls access to the `send_list` variable.
+ std::list<Packet> send_list; ///< A list that stores all packets to send the async
+
+ template <typename T>
+ using CallbackSet = std::set<CallbackHandle<T>>;
+ std::mutex callback_mutex; ///< The mutex used for handling callbacks
+
+ class Callbacks {
+ public:
+ template <typename T>
+ CallbackSet<T>& Get();
+
+ private:
+ CallbackSet<WifiPacket> callback_set_wifi_packet;
+ CallbackSet<ChatEntry> callback_set_chat_messages;
+ CallbackSet<RoomInformation> callback_set_room_information;
+ CallbackSet<State> callback_set_state;
+ };
+ Callbacks callbacks; ///< All CallbackSets to all events
+
+ void MemberLoop();
+
+ void StartLoop();
+
+ /**
+ * Sends data to the room. It will be send on channel 0 with flag RELIABLE
+ * @param packet The data to send
+ */
+ void Send(Packet&& packet);
+
+ /**
+ * Sends a request to the server, asking for permission to join a room with the specified
+ * nickname and preferred mac.
+ * @params nickname The desired nickname.
+ * @params preferred_mac The preferred MAC address to use in the room, the NoPreferredMac tells
+ * the server to assign one for us.
+ */
+ void SendJoinRequest(const std::string& nickname,
+ const MacAddress& preferred_mac = NoPreferredMac);
+
+ /**
+ * Extracts a MAC Address from a received ENet packet.
+ * @param event The ENet event that was received.
+ */
+ void HandleJoinPacket(const ENetEvent* event);
+ /**
+ * Extracts RoomInformation and MemberInformation from a received RakNet packet.
+ * @param event The ENet event that was received.
+ */
+ void HandleRoomInformationPacket(const ENetEvent* event);
+
+ /**
+ * Extracts a WifiPacket from a received ENet packet.
+ * @param event The ENet event that was received.
+ */
+ void HandleWifiPackets(const ENetEvent* event);
+
+ /**
+ * Extracts a chat entry from a received ENet packet and adds it to the chat queue.
+ * @param event The ENet event that was received.
+ */
+ void HandleChatPacket(const ENetEvent* event);
+
+ /**
+ * Disconnects the RoomMember from the Room
+ */
+ void Disconnect();
+
+ template <typename T>
+ void Invoke(const T& data);
+
+ template <typename T>
+ CallbackHandle<T> Bind(std::function<void(const T&)> callback);
+};
+
+// RoomMemberImpl
+void RoomMember::RoomMemberImpl::SetState(const State new_state) {
+ if (state != new_state) {
+ state = new_state;
+ Invoke<State>(state);
+ }
+}
+
+bool RoomMember::RoomMemberImpl::IsConnected() const {
+ return state == State::Joining || state == State::Joined;
+}
+
+void RoomMember::RoomMemberImpl::MemberLoop() {
+ // Receive packets while the connection is open
+ while (IsConnected()) {
+ std::lock_guard<std::mutex> lock(network_mutex);
+ ENetEvent event;
+ if (enet_host_service(client, &event, 100) > 0) {
+ switch (event.type) {
+ case ENET_EVENT_TYPE_RECEIVE:
+ switch (event.packet->data[0]) {
+ case IdWifiPacket:
+ HandleWifiPackets(&event);
+ break;
+ case IdChatMessage:
+ HandleChatPacket(&event);
+ break;
+ case IdRoomInformation:
+ HandleRoomInformationPacket(&event);
+ break;
+ case IdJoinSuccess:
+ // The join request was successful, we are now in the room.
+ // If we joined successfully, there must be at least one client in the room: us.
+ ASSERT_MSG(member_information.size() > 0,
+ "We have not yet received member information.");
+ HandleJoinPacket(&event); // Get the MAC Address for the client
+ SetState(State::Joined);
+ break;
+ case IdNameCollision:
+ SetState(State::NameCollision);
+ break;
+ case IdMacCollision:
+ SetState(State::MacCollision);
+ break;
+ case IdVersionMismatch:
+ SetState(State::WrongVersion);
+ break;
+ case IdCloseRoom:
+ SetState(State::LostConnection);
+ break;
+ }
+ enet_packet_destroy(event.packet);
+ break;
+ case ENET_EVENT_TYPE_DISCONNECT:
+ SetState(State::LostConnection);
+ break;
+ }
+ }
+ {
+ std::lock_guard<std::mutex> lock(send_list_mutex);
+ for (const auto& packet : send_list) {
+ ENetPacket* enetPacket = enet_packet_create(packet.GetData(), packet.GetDataSize(),
+ ENET_PACKET_FLAG_RELIABLE);
+ enet_peer_send(server, 0, enetPacket);
+ }
+ enet_host_flush(client);
+ send_list.clear();
+ }
+ }
+ Disconnect();
+};
+
+void RoomMember::RoomMemberImpl::StartLoop() {
+ loop_thread = std::make_unique<std::thread>(&RoomMember::RoomMemberImpl::MemberLoop, this);
+}
+
+void RoomMember::RoomMemberImpl::Send(Packet&& packet) {
+ std::lock_guard<std::mutex> lock(send_list_mutex);
+ send_list.push_back(std::move(packet));
+}
+
+void RoomMember::RoomMemberImpl::SendJoinRequest(const std::string& nickname,
+ const MacAddress& preferred_mac) {
+ Packet packet;
+ packet << static_cast<u8>(IdJoinRequest);
+ packet << nickname;
+ packet << preferred_mac;
+ packet << network_version;
+ Send(std::move(packet));
+}
+
+void RoomMember::RoomMemberImpl::HandleRoomInformationPacket(const ENetEvent* event) {
+ Packet packet;
+ packet.Append(event->packet->data, event->packet->dataLength);
+
+ // Ignore the first byte, which is the message id.
+ packet.IgnoreBytes(sizeof(u8)); // Igonore the message type
+
+ RoomInformation info{};
+ packet >> info.name;
+ packet >> info.member_slots;
+ room_information.name = info.name;
+ room_information.member_slots = info.member_slots;
+
+ u32 num_members;
+ packet >> num_members;
+ member_information.resize(num_members);
+
+ for (auto& member : member_information) {
+ packet >> member.nickname;
+ packet >> member.mac_address;
+ packet >> member.game_info.name;
+ packet >> member.game_info.id;
+ }
+ Invoke(room_information);
+}
+
+void RoomMember::RoomMemberImpl::HandleJoinPacket(const ENetEvent* event) {
+ Packet packet;
+ packet.Append(event->packet->data, event->packet->dataLength);
+
+ // Ignore the first byte, which is the message id.
+ packet.IgnoreBytes(sizeof(u8)); // Igonore the message type
+
+ // Parse the MAC Address from the packet
+ packet >> mac_address;
+ SetState(State::Joined);
+}
+
+void RoomMember::RoomMemberImpl::HandleWifiPackets(const ENetEvent* event) {
+ WifiPacket wifi_packet{};
+ Packet packet;
+ packet.Append(event->packet->data, event->packet->dataLength);
+
+ // Ignore the first byte, which is the message id.
+ packet.IgnoreBytes(sizeof(u8)); // Igonore the message type
+
+ // Parse the WifiPacket from the packet
+ u8 frame_type;
+ packet >> frame_type;
+ WifiPacket::PacketType type = static_cast<WifiPacket::PacketType>(frame_type);
+
+ wifi_packet.type = type;
+ packet >> wifi_packet.channel;
+ packet >> wifi_packet.transmitter_address;
+ packet >> wifi_packet.destination_address;
+
+ u32 data_length;
+ packet >> data_length;
+
+ packet >> wifi_packet.data;
+
+ Invoke<WifiPacket>(wifi_packet);
+}
+
+void RoomMember::RoomMemberImpl::HandleChatPacket(const ENetEvent* event) {
+ Packet packet;
+ packet.Append(event->packet->data, event->packet->dataLength);
+
+ // Ignore the first byte, which is the message id.
+ packet.IgnoreBytes(sizeof(u8));
+
+ ChatEntry chat_entry{};
+ packet >> chat_entry.nickname;
+ packet >> chat_entry.message;
+ Invoke<ChatEntry>(chat_entry);
+}
+
+void RoomMember::RoomMemberImpl::Disconnect() {
+ member_information.clear();
+ room_information.member_slots = 0;
+ room_information.name.clear();
+
+ if (!server)
+ return;
+ enet_peer_disconnect(server, 0);
+
+ ENetEvent event;
+ while (enet_host_service(client, &event, ConnectionTimeoutMs) > 0) {
+ switch (event.type) {
+ case ENET_EVENT_TYPE_RECEIVE:
+ enet_packet_destroy(event.packet); // Ignore all incoming data
+ break;
+ case ENET_EVENT_TYPE_DISCONNECT:
+ server = nullptr;
+ return;
+ }
+ }
+ // didn't disconnect gracefully force disconnect
+ enet_peer_reset(server);
+ server = nullptr;
+}
+
+template <>
+RoomMember::RoomMemberImpl::CallbackSet<WifiPacket>& RoomMember::RoomMemberImpl::Callbacks::Get() {
+ return callback_set_wifi_packet;
+}
+
+template <>
+RoomMember::RoomMemberImpl::CallbackSet<RoomMember::State>&
+RoomMember::RoomMemberImpl::Callbacks::Get() {
+ return callback_set_state;
+}
+
+template <>
+RoomMember::RoomMemberImpl::CallbackSet<RoomInformation>&
+RoomMember::RoomMemberImpl::Callbacks::Get() {
+ return callback_set_room_information;
+}
+
+template <>
+RoomMember::RoomMemberImpl::CallbackSet<ChatEntry>& RoomMember::RoomMemberImpl::Callbacks::Get() {
+ return callback_set_chat_messages;
+}
+
+template <typename T>
+void RoomMember::RoomMemberImpl::Invoke(const T& data) {
+ std::lock_guard<std::mutex> lock(callback_mutex);
+ CallbackSet<T> callback_set = callbacks.Get<T>();
+ for (auto const& callback : callback_set)
+ (*callback)(data);
+}
+
+template <typename T>
+RoomMember::CallbackHandle<T> RoomMember::RoomMemberImpl::Bind(
+ std::function<void(const T&)> callback) {
+ std::lock_guard<std::mutex> lock(callback_mutex);
+ CallbackHandle<T> handle;
+ handle = std::make_shared<std::function<void(const T&)>>(callback);
+ callbacks.Get<T>().insert(handle);
+ return handle;
+}
+
+// RoomMember
+RoomMember::RoomMember() : room_member_impl{std::make_unique<RoomMemberImpl>()} {
+ room_member_impl->client = enet_host_create(nullptr, 1, NumChannels, 0, 0);
+ ASSERT_MSG(room_member_impl->client != nullptr, "Could not create client");
+}
+
+RoomMember::~RoomMember() {
+ ASSERT_MSG(!IsConnected(), "RoomMember is being destroyed while connected");
+ enet_host_destroy(room_member_impl->client);
+}
+
+RoomMember::State RoomMember::GetState() const {
+ return room_member_impl->state;
+}
+
+const RoomMember::MemberList& RoomMember::GetMemberInformation() const {
+ return room_member_impl->member_information;
+}
+
+const std::string& RoomMember::GetNickname() const {
+ return room_member_impl->nickname;
+}
+
+const MacAddress& RoomMember::GetMacAddress() const {
+ ASSERT_MSG(IsConnected(), "Tried to get MAC address while not connected");
+ return room_member_impl->mac_address;
+}
+
+RoomInformation RoomMember::GetRoomInformation() const {
+ return room_member_impl->room_information;
+}
+
+void RoomMember::Join(const std::string& nick, const char* server_addr, u16 server_port,
+ u16 client_port, const MacAddress& preferred_mac) {
+ // If the member is connected, kill the connection first
+ if (room_member_impl->loop_thread && room_member_impl->loop_thread->joinable()) {
+ room_member_impl->SetState(State::Error);
+ room_member_impl->loop_thread->join();
+ room_member_impl->loop_thread.reset();
+ }
+ // If the thread isn't running but the ptr still exists, reset it
+ else if (room_member_impl->loop_thread) {
+ room_member_impl->loop_thread.reset();
+ }
+
+ ENetAddress address{};
+ enet_address_set_host(&address, server_addr);
+ address.port = server_port;
+ room_member_impl->server =
+ enet_host_connect(room_member_impl->client, &address, NumChannels, 0);
+
+ if (!room_member_impl->server) {
+ room_member_impl->SetState(State::Error);
+ return;
+ }
+
+ ENetEvent event{};
+ int net = enet_host_service(room_member_impl->client, &event, ConnectionTimeoutMs);
+ if (net > 0 && event.type == ENET_EVENT_TYPE_CONNECT) {
+ room_member_impl->nickname = nick;
+ room_member_impl->SetState(State::Joining);
+ room_member_impl->StartLoop();
+ room_member_impl->SendJoinRequest(nick, preferred_mac);
+ SendGameInfo(room_member_impl->current_game_info);
+ } else {
+ room_member_impl->SetState(State::CouldNotConnect);
+ }
+}
+
+bool RoomMember::IsConnected() const {
+ return room_member_impl->IsConnected();
+}
+
+void RoomMember::SendWifiPacket(const WifiPacket& wifi_packet) {
+ Packet packet;
+ packet << static_cast<u8>(IdWifiPacket);
+ packet << static_cast<u8>(wifi_packet.type);
+ packet << wifi_packet.channel;
+ packet << wifi_packet.transmitter_address;
+ packet << wifi_packet.destination_address;
+ packet << wifi_packet.data;
+ room_member_impl->Send(std::move(packet));
+}
+
+void RoomMember::SendChatMessage(const std::string& message) {
+ Packet packet;
+ packet << static_cast<u8>(IdChatMessage);
+ packet << message;
+ room_member_impl->Send(std::move(packet));
+}
+
+void RoomMember::SendGameInfo(const GameInfo& game_info) {
+ room_member_impl->current_game_info = game_info;
+ if (!IsConnected())
+ return;
+
+ Packet packet;
+ packet << static_cast<u8>(IdSetGameInfo);
+ packet << game_info.name;
+ packet << game_info.id;
+ room_member_impl->Send(std::move(packet));
+}
+
+RoomMember::CallbackHandle<RoomMember::State> RoomMember::BindOnStateChanged(
+ std::function<void(const RoomMember::State&)> callback) {
+ return room_member_impl->Bind(callback);
+}
+
+RoomMember::CallbackHandle<WifiPacket> RoomMember::BindOnWifiPacketReceived(
+ std::function<void(const WifiPacket&)> callback) {
+ return room_member_impl->Bind(callback);
+}
+
+RoomMember::CallbackHandle<RoomInformation> RoomMember::BindOnRoomInformationChanged(
+ std::function<void(const RoomInformation&)> callback) {
+ return room_member_impl->Bind(callback);
+}
+
+RoomMember::CallbackHandle<ChatEntry> RoomMember::BindOnChatMessageRecieved(
+ std::function<void(const ChatEntry&)> callback) {
+ return room_member_impl->Bind(callback);
+}
+
+template <typename T>
+void RoomMember::Unbind(CallbackHandle<T> handle) {
+ std::lock_guard<std::mutex> lock(room_member_impl->callback_mutex);
+ room_member_impl->callbacks.Get<T>().erase(handle);
+}
+
+void RoomMember::Leave() {
+ room_member_impl->SetState(State::Idle);
+ room_member_impl->loop_thread->join();
+ room_member_impl->loop_thread.reset();
+}
+
+template void RoomMember::Unbind(CallbackHandle<WifiPacket>);
+template void RoomMember::Unbind(CallbackHandle<RoomMember::State>);
+template void RoomMember::Unbind(CallbackHandle<RoomInformation>);
+template void RoomMember::Unbind(CallbackHandle<ChatEntry>);
+
+} // namespace Network
diff --git a/src/network/room_member.h b/src/network/room_member.h
new file mode 100644
index 000000000..98770a234
--- /dev/null
+++ b/src/network/room_member.h
@@ -0,0 +1,182 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <functional>
+#include <memory>
+#include <string>
+#include <vector>
+#include "common/common_types.h"
+#include "network/room.h"
+
+namespace Network {
+
+/// Information about the received WiFi packets.
+/// Acts as our own 802.11 header.
+struct WifiPacket {
+ enum class PacketType : u8 { Beacon, Data, Authentication, AssociationResponse };
+ PacketType type; ///< The type of 802.11 frame.
+ std::vector<u8> data; ///< Raw 802.11 frame data, starting at the management frame header
+ /// for management frames.
+ MacAddress transmitter_address; ///< Mac address of the transmitter.
+ MacAddress destination_address; ///< Mac address of the receiver.
+ u8 channel; ///< WiFi channel where this frame was transmitted.
+};
+
+/// Represents a chat message.
+struct ChatEntry {
+ std::string nickname; ///< Nickname of the client who sent this message.
+ std::string message; ///< Body of the message.
+};
+
+/**
+ * This is what a client [person joining a server] would use.
+ * It also has to be used if you host a game yourself (You'd create both, a Room and a
+ * RoomMembership for yourself)
+ */
+class RoomMember final {
+public:
+ enum class State : u8 {
+ Idle, ///< Default state
+ Error, ///< Some error [permissions to network device missing or something]
+ Joining, ///< The client is attempting to join a room.
+ Joined, ///< The client is connected to the room and is ready to send/receive packets.
+ LostConnection, ///< Connection closed
+
+ // Reasons why connection was rejected
+ NameCollision, ///< Somebody is already using this name
+ MacCollision, ///< Somebody is already using that mac-address
+ WrongVersion, ///< The room version is not the same as for this RoomMember
+ CouldNotConnect ///< The room is not responding to a connection attempt
+ };
+
+ struct MemberInformation {
+ std::string nickname; ///< Nickname of the member.
+ GameInfo game_info; ///< Name of the game they're currently playing, or empty if they're
+ /// not playing anything.
+ MacAddress mac_address; ///< MAC address associated with this member.
+ };
+ using MemberList = std::vector<MemberInformation>;
+
+ // The handle for the callback functions
+ template <typename T>
+ using CallbackHandle = std::shared_ptr<std::function<void(const T&)>>;
+
+ /**
+ * Unbinds a callback function from the events.
+ * @param handle The connection handle to disconnect
+ */
+ template <typename T>
+ void Unbind(CallbackHandle<T> handle);
+
+ RoomMember();
+ ~RoomMember();
+
+ /**
+ * Returns the status of our connection to the room.
+ */
+ State GetState() const;
+
+ /**
+ * Returns information about the members in the room we're currently connected to.
+ */
+ const MemberList& GetMemberInformation() const;
+
+ /**
+ * Returns the nickname of the RoomMember.
+ */
+ const std::string& GetNickname() const;
+
+ /**
+ * Returns the MAC address of the RoomMember.
+ */
+ const MacAddress& GetMacAddress() const;
+
+ /**
+ * Returns information about the room we're currently connected to.
+ */
+ RoomInformation GetRoomInformation() const;
+
+ /**
+ * Returns whether we're connected to a server or not.
+ */
+ bool IsConnected() const;
+
+ /**
+ * Attempts to join a room at the specified address and port, using the specified nickname.
+ * This may fail if the username is already taken.
+ */
+ void Join(const std::string& nickname, const char* server_addr = "127.0.0.1",
+ const u16 serverPort = DefaultRoomPort, const u16 clientPort = 0,
+ const MacAddress& preferred_mac = NoPreferredMac);
+
+ /**
+ * Sends a WiFi packet to the room.
+ * @param packet The WiFi packet to send.
+ */
+ void SendWifiPacket(const WifiPacket& packet);
+
+ /**
+ * Sends a chat message to the room.
+ * @param message The contents of the message.
+ */
+ void SendChatMessage(const std::string& message);
+
+ /**
+ * Sends the current game info to the room.
+ * @param game_info The game information.
+ */
+ void SendGameInfo(const GameInfo& game_info);
+
+ /**
+ * Binds a function to an event that will be triggered every time the State of the member
+ * changed. The function wil be called every time the event is triggered. The callback function
+ * must not bind or unbind a function. Doing so will cause a deadlock
+ * @param callback The function to call
+ * @return A handle used for removing the function from the registered list
+ */
+ CallbackHandle<State> BindOnStateChanged(std::function<void(const State&)> callback);
+
+ /**
+ * Binds a function to an event that will be triggered every time a WifiPacket is received.
+ * The function wil be called everytime the event is triggered.
+ * The callback function must not bind or unbind a function. Doing so will cause a deadlock
+ * @param callback The function to call
+ * @return A handle used for removing the function from the registered list
+ */
+ CallbackHandle<WifiPacket> BindOnWifiPacketReceived(
+ std::function<void(const WifiPacket&)> callback);
+
+ /**
+ * Binds a function to an event that will be triggered every time the RoomInformation changes.
+ * The function wil be called every time the event is triggered.
+ * The callback function must not bind or unbind a function. Doing so will cause a deadlock
+ * @param callback The function to call
+ * @return A handle used for removing the function from the registered list
+ */
+ CallbackHandle<RoomInformation> BindOnRoomInformationChanged(
+ std::function<void(const RoomInformation&)> callback);
+
+ /**
+ * Binds a function to an event that will be triggered every time a ChatMessage is received.
+ * The function wil be called every time the event is triggered.
+ * The callback function must not bind or unbind a function. Doing so will cause a deadlock
+ * @param callback The function to call
+ * @return A handle used for removing the function from the registered list
+ */
+ CallbackHandle<ChatEntry> BindOnChatMessageRecieved(
+ std::function<void(const ChatEntry&)> callback);
+
+ /**
+ * Leaves the current room.
+ */
+ void Leave();
+
+private:
+ class RoomMemberImpl;
+ std::unique_ptr<RoomMemberImpl> room_member_impl;
+};
+
+} // namespace Network
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index a14df325a..5e9c4c2bf 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -1,5 +1,7 @@
set(SRCS
common/param_package.cpp
+ core/arm/arm_test_common.cpp
+ core/arm/dyncom/arm_dyncom_vfp_tests.cpp
core/file_sys/path_parser.cpp
core/hle/kernel/hle_ipc.cpp
glad.cpp
@@ -7,6 +9,7 @@ set(SRCS
)
set(HEADERS
+ core/arm/arm_test_common.h
)
create_directory_groups(${SRCS} ${HEADERS})
diff --git a/src/tests/core/arm/arm_test_common.cpp b/src/tests/core/arm/arm_test_common.cpp
new file mode 100644
index 000000000..1df6c5677
--- /dev/null
+++ b/src/tests/core/arm/arm_test_common.cpp
@@ -0,0 +1,123 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "core/core.h"
+#include "core/memory_setup.h"
+#include "tests/core/arm/arm_test_common.h"
+
+namespace ArmTests {
+
+TestEnvironment::TestEnvironment(bool mutable_memory_)
+ : mutable_memory(mutable_memory_), test_memory(std::make_shared<TestMemory>(this)) {
+ Memory::MapIoRegion(0x00000000, 0x80000000, test_memory);
+ Memory::MapIoRegion(0x80000000, 0x80000000, test_memory);
+}
+
+TestEnvironment::~TestEnvironment() {
+ Memory::UnmapRegion(0x80000000, 0x80000000);
+ Memory::UnmapRegion(0x00000000, 0x80000000);
+}
+
+void TestEnvironment::SetMemory64(VAddr vaddr, u64 value) {
+ SetMemory32(vaddr + 0, static_cast<u32>(value));
+ SetMemory32(vaddr + 4, static_cast<u32>(value >> 32));
+}
+
+void TestEnvironment::SetMemory32(VAddr vaddr, u32 value) {
+ SetMemory16(vaddr + 0, static_cast<u16>(value));
+ SetMemory16(vaddr + 2, static_cast<u16>(value >> 16));
+}
+
+void TestEnvironment::SetMemory16(VAddr vaddr, u16 value) {
+ SetMemory8(vaddr + 0, static_cast<u8>(value));
+ SetMemory8(vaddr + 1, static_cast<u8>(value >> 8));
+}
+
+void TestEnvironment::SetMemory8(VAddr vaddr, u8 value) {
+ test_memory->data[vaddr] = value;
+}
+
+std::vector<WriteRecord> TestEnvironment::GetWriteRecords() const {
+ return write_records;
+}
+
+void TestEnvironment::ClearWriteRecords() {
+ write_records.clear();
+}
+
+TestEnvironment::TestMemory::~TestMemory() {}
+
+bool TestEnvironment::TestMemory::IsValidAddress(VAddr addr) {
+ return true;
+}
+
+u8 TestEnvironment::TestMemory::Read8(VAddr addr) {
+ auto iter = data.find(addr);
+ if (iter == data.end()) {
+ return addr; // Some arbitrary data
+ }
+ return iter->second;
+}
+
+u16 TestEnvironment::TestMemory::Read16(VAddr addr) {
+ return Read8(addr) | static_cast<u16>(Read8(addr + 1)) << 8;
+}
+
+u32 TestEnvironment::TestMemory::Read32(VAddr addr) {
+ return Read16(addr) | static_cast<u32>(Read16(addr + 2)) << 16;
+}
+
+u64 TestEnvironment::TestMemory::Read64(VAddr addr) {
+ return Read32(addr) | static_cast<u64>(Read32(addr + 4)) << 32;
+}
+
+bool TestEnvironment::TestMemory::ReadBlock(VAddr src_addr, void* dest_buffer, size_t size) {
+ VAddr addr = src_addr;
+ u8* data = static_cast<u8*>(dest_buffer);
+
+ for (size_t i = 0; i < size; i++, addr++, data++) {
+ *data = Read8(addr);
+ }
+
+ return true;
+}
+
+void TestEnvironment::TestMemory::Write8(VAddr addr, u8 data) {
+ env->write_records.emplace_back(8, addr, data);
+ if (env->mutable_memory)
+ env->SetMemory8(addr, data);
+}
+
+void TestEnvironment::TestMemory::Write16(VAddr addr, u16 data) {
+ env->write_records.emplace_back(16, addr, data);
+ if (env->mutable_memory)
+ env->SetMemory16(addr, data);
+}
+
+void TestEnvironment::TestMemory::Write32(VAddr addr, u32 data) {
+ env->write_records.emplace_back(32, addr, data);
+ if (env->mutable_memory)
+ env->SetMemory32(addr, data);
+}
+
+void TestEnvironment::TestMemory::Write64(VAddr addr, u64 data) {
+ env->write_records.emplace_back(64, addr, data);
+ if (env->mutable_memory)
+ env->SetMemory64(addr, data);
+}
+
+bool TestEnvironment::TestMemory::WriteBlock(VAddr dest_addr, const void* src_buffer, size_t size) {
+ VAddr addr = dest_addr;
+ const u8* data = static_cast<const u8*>(src_buffer);
+
+ for (size_t i = 0; i < size; i++, addr++, data++) {
+ env->write_records.emplace_back(8, addr, *data);
+ if (env->mutable_memory)
+ env->SetMemory8(addr, *data);
+ }
+
+ return true;
+}
+
+} // namespace ArmTests
diff --git a/src/tests/core/arm/arm_test_common.h b/src/tests/core/arm/arm_test_common.h
new file mode 100644
index 000000000..592c28594
--- /dev/null
+++ b/src/tests/core/arm/arm_test_common.h
@@ -0,0 +1,84 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <tuple>
+#include <unordered_map>
+#include <vector>
+
+#include "common/common_types.h"
+#include "core/mmio.h"
+
+namespace ArmTests {
+
+struct WriteRecord {
+ WriteRecord(size_t size, VAddr addr, u64 data) : size(size), addr(addr), data(data) {}
+ size_t size;
+ VAddr addr;
+ u64 data;
+ bool operator==(const WriteRecord& o) const {
+ return std::tie(size, addr, data) == std::tie(o.size, o.addr, o.data);
+ }
+};
+
+class TestEnvironment final {
+public:
+ /*
+ * Inititalise test environment
+ * @param mutable_memory If false, writes to memory can never be read back.
+ * (Memory is immutable.)
+ */
+ explicit TestEnvironment(bool mutable_memory = false);
+
+ /// Shutdown test environment
+ ~TestEnvironment();
+
+ /// Sets value at memory location vaddr.
+ void SetMemory8(VAddr vaddr, u8 value);
+ void SetMemory16(VAddr vaddr, u16 value);
+ void SetMemory32(VAddr vaddr, u32 value);
+ void SetMemory64(VAddr vaddr, u64 value);
+
+ /**
+ * Whenever Memory::Write{8,16,32,64} is called within the test environment,
+ * a new write-record is made.
+ * @returns A vector of write records made since they were last cleared.
+ */
+ std::vector<WriteRecord> GetWriteRecords() const;
+
+ /// Empties the internal write-record store.
+ void ClearWriteRecords();
+
+private:
+ friend struct TestMemory;
+ struct TestMemory final : Memory::MMIORegion {
+ explicit TestMemory(TestEnvironment* env_) : env(env_) {}
+ TestEnvironment* env;
+
+ ~TestMemory() override;
+
+ bool IsValidAddress(VAddr addr) override;
+
+ u8 Read8(VAddr addr) override;
+ u16 Read16(VAddr addr) override;
+ u32 Read32(VAddr addr) override;
+ u64 Read64(VAddr addr) override;
+
+ bool ReadBlock(VAddr src_addr, void* dest_buffer, size_t size) override;
+
+ void Write8(VAddr addr, u8 data) override;
+ void Write16(VAddr addr, u16 data) override;
+ void Write32(VAddr addr, u32 data) override;
+ void Write64(VAddr addr, u64 data) override;
+
+ bool WriteBlock(VAddr dest_addr, const void* src_buffer, size_t size) override;
+
+ std::unordered_map<VAddr, u8> data;
+ };
+
+ bool mutable_memory;
+ std::shared_ptr<TestMemory> test_memory;
+ std::vector<WriteRecord> write_records;
+};
+
+} // namespace ArmTests
diff --git a/src/tests/core/arm/dyncom/arm_dyncom_vfp_tests.cpp b/src/tests/core/arm/dyncom/arm_dyncom_vfp_tests.cpp
new file mode 100644
index 000000000..86de41773
--- /dev/null
+++ b/src/tests/core/arm/dyncom/arm_dyncom_vfp_tests.cpp
@@ -0,0 +1,50 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <catch.hpp>
+
+#include "core/arm/dyncom/arm_dyncom.h"
+#include "tests/core/arm/arm_test_common.h"
+
+namespace ArmTests {
+
+struct VfpTestCase {
+ u32 initial_fpscr;
+ u32 a;
+ u32 b;
+ u32 result;
+ u32 final_fpscr;
+};
+
+TEST_CASE("ARM_DynCom (vfp): vadd", "[arm_dyncom]") {
+ TestEnvironment test_env(false);
+ test_env.SetMemory32(0, 0xEE321A03); // vadd.f32 s2, s4, s6
+ test_env.SetMemory32(4, 0xEAFFFFFE); // b +#0
+
+ ARM_DynCom dyncom(USER32MODE);
+
+ std::vector<VfpTestCase> test_cases{{
+#include "vfp_vadd_f32.inc"
+ }};
+
+ for (const auto& test_case : test_cases) {
+ dyncom.down_count = 1000; // Ensure that CoreTimeing will not be called.
+ dyncom.SetPC(0);
+ dyncom.SetVFPSystemReg(VFP_FPSCR, test_case.initial_fpscr);
+ dyncom.SetVFPReg(4, test_case.a);
+ dyncom.SetVFPReg(6, test_case.b);
+ dyncom.ExecuteInstructions(1);
+ if (dyncom.GetVFPReg(2) != test_case.result ||
+ dyncom.GetVFPSystemReg(VFP_FPSCR) != test_case.final_fpscr) {
+ printf("f: %x\n", test_case.initial_fpscr);
+ printf("a: %x\n", test_case.a);
+ printf("b: %x\n", test_case.b);
+ printf("c: %x (%x)\n", dyncom.GetVFPReg(2), test_case.result);
+ printf("f: %x (%x)\n", dyncom.GetVFPSystemReg(VFP_FPSCR), test_case.final_fpscr);
+ FAIL();
+ }
+ }
+}
+
+} // namespace ArmTests \ No newline at end of file
diff --git a/src/tests/core/arm/dyncom/vfp_vadd_f32.inc b/src/tests/core/arm/dyncom/vfp_vadd_f32.inc
new file mode 100644
index 000000000..d0032c2e6
--- /dev/null
+++ b/src/tests/core/arm/dyncom/vfp_vadd_f32.inc
@@ -0,0 +1,13456 @@
+{0x3c00000, 0x0, 0x0, 0x0, 0x3c00000},
+{0x3c00000, 0x0, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x800000, 0x800000, 0x3c00000},
+{0x3c00000, 0x0, 0x800002, 0x800002, 0x3c00000},
+{0x3c00000, 0x0, 0x1398437, 0x1398437, 0x3c00000},
+{0x3c00000, 0x0, 0xba98d27, 0xba98d27, 0x3c00000},
+{0x3c00000, 0x0, 0xba98d7a, 0xba98d7a, 0x3c00000},
+{0x3c00000, 0x0, 0x751f853a, 0x751f853a, 0x3c00000},
+{0x3c00000, 0x0, 0x7f7ffff0, 0x7f7ffff0, 0x3c00000},
+{0x3c00000, 0x0, 0x7f7fffff, 0x7f7fffff, 0x3c00000},
+{0x3c00000, 0x0, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x0, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x0, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x0, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x0, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x0, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x0, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x0, 0x80000000, 0x0, 0x3c00000},
+{0x3c00000, 0x0, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x0, 0x80800000, 0x80800000, 0x3c00000},
+{0x3c00000, 0x0, 0x80800002, 0x80800002, 0x3c00000},
+{0x3c00000, 0x0, 0x81398437, 0x81398437, 0x3c00000},
+{0x3c00000, 0x0, 0x8ba98d27, 0x8ba98d27, 0x3c00000},
+{0x3c00000, 0x0, 0x8ba98d7a, 0x8ba98d7a, 0x3c00000},
+{0x3c00000, 0x0, 0xf51f853a, 0xf51f853a, 0x3c00000},
+{0x3c00000, 0x0, 0xff7ffff0, 0xff7ffff0, 0x3c00000},
+{0x3c00000, 0x0, 0xff7fffff, 0xff7fffff, 0x3c00000},
+{0x3c00000, 0x0, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x0, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x0, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x0, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x0, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x0, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x0, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x0, 0x4f3495cb, 0x4f3495cb, 0x3c00000},
+{0x3c00000, 0x0, 0xe73a5134, 0xe73a5134, 0x3c00000},
+{0x3c00000, 0x0, 0x7c994e9e, 0x7c994e9e, 0x3c00000},
+{0x3c00000, 0x0, 0x6164bd6c, 0x6164bd6c, 0x3c00000},
+{0x3c00000, 0x0, 0x9503366, 0x9503366, 0x3c00000},
+{0x3c00000, 0x0, 0xbf5a97c9, 0xbf5a97c9, 0x3c00000},
+{0x3c00000, 0x0, 0xe6ff1a14, 0xe6ff1a14, 0x3c00000},
+{0x3c00000, 0x0, 0x77f31e2f, 0x77f31e2f, 0x3c00000},
+{0x3c00000, 0x0, 0xaab4d7d8, 0xaab4d7d8, 0x3c00000},
+{0x3c00000, 0x0, 0x966320b, 0x966320b, 0x3c00000},
+{0x3c00000, 0x0, 0xb26bddee, 0xb26bddee, 0x3c00000},
+{0x3c00000, 0x0, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00000},
+{0x3c00000, 0x0, 0x317285d3, 0x317285d3, 0x3c00000},
+{0x3c00000, 0x0, 0x3c9623b1, 0x3c9623b1, 0x3c00000},
+{0x3c00000, 0x0, 0x51fd2c7c, 0x51fd2c7c, 0x3c00000},
+{0x3c00000, 0x0, 0x7b906a6c, 0x7b906a6c, 0x3c00000},
+{0x3c00000, 0x1, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x1, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x1, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x1, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x1, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x1, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x1, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x1, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x1, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x1, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x1, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x1, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x1, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x1, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x1, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x1, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x1, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x1, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x1, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x1, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x1, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x1, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x1, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x1, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x1, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x1, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x1, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x1, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x1, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x1, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x1, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x1, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x1, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x1, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x1, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x1, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x1, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x1, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x1, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x1, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x1, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x1, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x1, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x1, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x1, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x1, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x76, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x76, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x76, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x76, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x76, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x76, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x76, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x76, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x76, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x76, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x76, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x76, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x76, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x76, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x76, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x76, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x76, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x76, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x76, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x76, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x76, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x76, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x76, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x76, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x76, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x76, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x76, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x76, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x76, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x76, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x76, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x76, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x76, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x76, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x76, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x76, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x76, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x76, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x76, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x76, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x76, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x76, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x76, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x76, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x76, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x76, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x76, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x2b94, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x2b94, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x2b94, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x2b94, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x2b94, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x2b94, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x2b94, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x2b94, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x2b94, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x2b94, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x2b94, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x2b94, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x2b94, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x2b94, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x2b94, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x2b94, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x2b94, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x2b94, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x2b94, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x2b94, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x2b94, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x2b94, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x2b94, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x2b94, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x2b94, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x2b94, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x2b94, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x2b94, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x2b94, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x2b94, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x2b94, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x2b94, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x2b94, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x2b94, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x2b94, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x2b94, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x2b94, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x2b94, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x2b94, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x2b94, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x636d24, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x636d24, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x636d24, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x636d24, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x636d24, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x636d24, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x636d24, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x636d24, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x636d24, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x636d24, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x636d24, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x636d24, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x636d24, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x636d24, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x636d24, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x636d24, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x636d24, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x636d24, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x636d24, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x636d24, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x636d24, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x636d24, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x636d24, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x636d24, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x636d24, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x636d24, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x636d24, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x636d24, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x636d24, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x636d24, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x636d24, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x636d24, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x636d24, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x636d24, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x636d24, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x636d24, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x636d24, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x636d24, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x636d24, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x636d24, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fffff, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fffff, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fffff, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fffff, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fffff, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fffff, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x7fffff, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x7fffff, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x800000, 0x0, 0x800000, 0x3c00000},
+{0x3c00000, 0x800000, 0x1, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x76, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x2b94, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x636d24, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x7fffff, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x800000, 0x1000000, 0x3c00000},
+{0x3c00000, 0x800000, 0x800002, 0x1000001, 0x3c00000},
+{0x3c00000, 0x800000, 0x1398437, 0x1798437, 0x3c00000},
+{0x3c00000, 0x800000, 0xba98d27, 0xba98d29, 0x3c00000},
+{0x3c00000, 0x800000, 0xba98d7a, 0xba98d7c, 0x3c00000},
+{0x3c00000, 0x800000, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x800000, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x800000, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x800000, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x800000, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800000, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800000, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800000, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800000, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800000, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800000, 0x80000000, 0x800000, 0x3c00000},
+{0x3c00000, 0x800000, 0x80000001, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x80000076, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x80002b94, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x80636d24, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x807fffff, 0x800000, 0x3c00080},
+{0x3c00000, 0x800000, 0x80800000, 0x0, 0x3c00000},
+{0x3c00000, 0x800000, 0x80800002, 0x0, 0x3c00008},
+{0x3c00000, 0x800000, 0x81398437, 0x80f3086e, 0x3c00000},
+{0x3c00000, 0x800000, 0x8ba98d27, 0x8ba98d25, 0x3c00000},
+{0x3c00000, 0x800000, 0x8ba98d7a, 0x8ba98d78, 0x3c00000},
+{0x3c00000, 0x800000, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x800000, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x800000, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x800000, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x800000, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800000, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800000, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800000, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800000, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800000, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800000, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x800000, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x800000, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x800000, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x800000, 0x9503366, 0x95033a6, 0x3c00000},
+{0x3c00000, 0x800000, 0xbf5a97c9, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0x800000, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x800000, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x800000, 0xaab4d7d8, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0x800000, 0x966320b, 0x966324b, 0x3c00000},
+{0x3c00000, 0x800000, 0xb26bddee, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0x800000, 0xb5c8e5d3, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0x800000, 0x317285d3, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x800000, 0x3c9623b1, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x800000, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x800000, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x800002, 0x0, 0x800002, 0x3c00000},
+{0x3c00000, 0x800002, 0x1, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x76, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x2b94, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x636d24, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x7fffff, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x800000, 0x1000001, 0x3c00000},
+{0x3c00000, 0x800002, 0x800002, 0x1000002, 0x3c00000},
+{0x3c00000, 0x800002, 0x1398437, 0x1798438, 0x3c00000},
+{0x3c00000, 0x800002, 0xba98d27, 0xba98d29, 0x3c00010},
+{0x3c00000, 0x800002, 0xba98d7a, 0xba98d7c, 0x3c00010},
+{0x3c00000, 0x800002, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x800002, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x800002, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x800002, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x800002, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800002, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800002, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800002, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800002, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800002, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800002, 0x80000000, 0x800002, 0x3c00000},
+{0x3c00000, 0x800002, 0x80000001, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x80000076, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x80002b94, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x80636d24, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x807fffff, 0x800002, 0x3c00080},
+{0x3c00000, 0x800002, 0x80800000, 0x0, 0x3c00008},
+{0x3c00000, 0x800002, 0x80800002, 0x0, 0x3c00000},
+{0x3c00000, 0x800002, 0x81398437, 0x80f3086c, 0x3c00000},
+{0x3c00000, 0x800002, 0x8ba98d27, 0x8ba98d24, 0x3c00010},
+{0x3c00000, 0x800002, 0x8ba98d7a, 0x8ba98d77, 0x3c00010},
+{0x3c00000, 0x800002, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x800002, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x800002, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x800002, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x800002, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800002, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800002, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x800002, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800002, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800002, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x800002, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x800002, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x800002, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x800002, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x800002, 0x9503366, 0x95033a6, 0x3c00010},
+{0x3c00000, 0x800002, 0xbf5a97c9, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0x800002, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x800002, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x800002, 0xaab4d7d8, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0x800002, 0x966320b, 0x966324b, 0x3c00010},
+{0x3c00000, 0x800002, 0xb26bddee, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0x800002, 0xb5c8e5d3, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0x800002, 0x317285d3, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x800002, 0x3c9623b1, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x800002, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x800002, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x1398437, 0x0, 0x1398437, 0x3c00000},
+{0x3c00000, 0x1398437, 0x1, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x76, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x2b94, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x636d24, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x7fffff, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x800000, 0x1798437, 0x3c00000},
+{0x3c00000, 0x1398437, 0x800002, 0x1798438, 0x3c00000},
+{0x3c00000, 0x1398437, 0x1398437, 0x1b98437, 0x3c00000},
+{0x3c00000, 0x1398437, 0xba98d27, 0xba98d2c, 0x3c00010},
+{0x3c00000, 0x1398437, 0xba98d7a, 0xba98d7f, 0x3c00010},
+{0x3c00000, 0x1398437, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x1398437, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x1398437, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x1398437, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x1398437, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x1398437, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x1398437, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x1398437, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x1398437, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x1398437, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x1398437, 0x80000000, 0x1398437, 0x3c00000},
+{0x3c00000, 0x1398437, 0x80000001, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x80000076, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x80002b94, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x80636d24, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x807fffff, 0x1398437, 0x3c00080},
+{0x3c00000, 0x1398437, 0x80800000, 0xf3086e, 0x3c00000},
+{0x3c00000, 0x1398437, 0x80800002, 0xf3086c, 0x3c00000},
+{0x3c00000, 0x1398437, 0x81398437, 0x0, 0x3c00000},
+{0x3c00000, 0x1398437, 0x8ba98d27, 0x8ba98d21, 0x3c00010},
+{0x3c00000, 0x1398437, 0x8ba98d7a, 0x8ba98d74, 0x3c00010},
+{0x3c00000, 0x1398437, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x1398437, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x1398437, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x1398437, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x1398437, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x1398437, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x1398437, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x1398437, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x1398437, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x1398437, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x1398437, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x1398437, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x1398437, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x1398437, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x1398437, 0x9503366, 0x950341f, 0x3c00010},
+{0x3c00000, 0x1398437, 0xbf5a97c9, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0x1398437, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x1398437, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x1398437, 0xaab4d7d8, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0x1398437, 0x966320b, 0x96632c4, 0x3c00010},
+{0x3c00000, 0x1398437, 0xb26bddee, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0x1398437, 0xb5c8e5d3, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0x1398437, 0x317285d3, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x1398437, 0x3c9623b1, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x1398437, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x1398437, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x0, 0xba98d27, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x1, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x76, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x2b94, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x636d24, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x7fffff, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x800000, 0xba98d29, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x800002, 0xba98d29, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x1398437, 0xba98d2c, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xba98d27, 0xc298d27, 0x3c00000},
+{0x3c00000, 0xba98d27, 0xba98d7a, 0xc298d50, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d27, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d27, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d27, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x80000000, 0xba98d27, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x80000001, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x80000076, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x80002b94, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x80636d24, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x807fffff, 0xba98d27, 0x3c00080},
+{0x3c00000, 0xba98d27, 0x80800000, 0xba98d25, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x80800002, 0xba98d24, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x81398437, 0xba98d21, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x8ba98d27, 0x0, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x8ba98d7a, 0x83260000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d27, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d27, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d27, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d27, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x9503366, 0xbb00ec2, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xbf5a97c9, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xaab4d7d8, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x966320b, 0xbb0beb7, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xb26bddee, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xba98d27, 0xb5c8e5d3, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x317285d3, 0x317285d3, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x3c9623b1, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0xba98d27, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x0, 0xba98d7a, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x1, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x76, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x2b94, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x636d24, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x7fffff, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x800000, 0xba98d7c, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x800002, 0xba98d7c, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x1398437, 0xba98d7f, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xba98d27, 0xc298d50, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xba98d7a, 0xc298d7a, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d7a, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d7a, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d7a, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x80000000, 0xba98d7a, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x80000001, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x80000076, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x80002b94, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x80636d24, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x807fffff, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0xba98d7a, 0x80800000, 0xba98d78, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x80800002, 0xba98d77, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x81398437, 0xba98d74, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x8ba98d27, 0x3260000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x8ba98d7a, 0x0, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d7a, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d7a, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xba98d7a, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xba98d7a, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x9503366, 0xbb00f15, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xbf5a97c9, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xaab4d7d8, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x966320b, 0xbb0bf0a, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xb26bddee, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0xb5c8e5d3, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x317285d3, 0x317285d3, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x3c9623b1, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0xba98d7a, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x0, 0x751f853a, 0x3c00000},
+{0x3c00000, 0x751f853a, 0x1, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x76, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x2b94, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x636d24, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x7fffff, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x800000, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x800002, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x1398437, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xba98d27, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xba98d7a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x751f853a, 0x759f853a, 0x3c00000},
+{0x3c00000, 0x751f853a, 0x7f7ffff0, 0x7f7ffff9, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x7f7fffff, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x751f853a, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x751f853a, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x751f853a, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x751f853a, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x751f853a, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x751f853a, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x751f853a, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x751f853a, 0x80000000, 0x751f853a, 0x3c00000},
+{0x3c00000, 0x751f853a, 0x80000001, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x80000076, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x80002b94, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x80636d24, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x807fffff, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x751f853a, 0x80800000, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x80800002, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x81398437, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x8ba98d27, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x8ba98d7a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xf51f853a, 0x0, 0x3c00000},
+{0x3c00000, 0x751f853a, 0xff7ffff0, 0xff7fffe6, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xff7fffff, 0xff7ffff5, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x751f853a, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x751f853a, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x751f853a, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x751f853a, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x751f853a, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x751f853a, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x751f853a, 0x4f3495cb, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xe73a5134, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x7c994e9e, 0x7c994fdd, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x6164bd6c, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x9503366, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xbf5a97c9, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xe6ff1a14, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x77f31e2f, 0x77f81a58, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xaab4d7d8, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x966320b, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xb26bddee, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0xb5c8e5d3, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x317285d3, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x3c9623b1, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x51fd2c7c, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x751f853a, 0x7b906a6c, 0x7b906f68, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x0, 0x7f7ffff0, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0x1, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x76, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x2b94, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x636d24, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x7fffff, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x800000, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x800002, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x1398437, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xba98d27, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xba98d7a, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x751f853a, 0x7f7ffff9, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x7f7ffff0, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7ffff0, 0x7f7fffff, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7ffff0, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7ffff0, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7ffff0, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7ffff0, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0x80000000, 0x7f7ffff0, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0x80000001, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x80000076, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x80002b94, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x80636d24, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x807fffff, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x7f7ffff0, 0x80800000, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x80800002, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x81398437, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x8ba98d27, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x8ba98d7a, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xf51f853a, 0x7f7fffe6, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xff7ffff0, 0x0, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0xff7fffff, 0xf5700000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7ffff0, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7ffff0, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7ffff0, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7ffff0, 0x4f3495cb, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xe73a5134, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x7c994e9e, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7ffff0, 0x6164bd6c, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x9503366, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xbf5a97c9, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xe6ff1a14, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x77f31e2f, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7ffff0, 0xaab4d7d8, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x966320b, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xb26bddee, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0xb5c8e5d3, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x317285d3, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x3c9623b1, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x51fd2c7c, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x7f7ffff0, 0x7b906a6c, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7fffff, 0x0, 0x7f7fffff, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0x1, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x76, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x2b94, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x636d24, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x800000, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x800002, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x1398437, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xba98d27, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xba98d7a, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x751f853a, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7fffff, 0x7f7ffff0, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7fffff, 0x7f7fffff, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7fffff, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7fffff, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7fffff, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7fffff, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0x80000000, 0x7f7fffff, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0x80000001, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x80000076, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x80002b94, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x80636d24, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x807fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x7f7fffff, 0x80800000, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x80800002, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x81398437, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x8ba98d27, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x8ba98d7a, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xf51f853a, 0x7f7ffff5, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xff7ffff0, 0x75700000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0xff7fffff, 0x0, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7fffff, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7fffff, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f7fffff, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f7fffff, 0x4f3495cb, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xe73a5134, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x7c994e9e, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7fffff, 0x6164bd6c, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x9503366, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xbf5a97c9, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xe6ff1a14, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x77f31e2f, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f7fffff, 0xaab4d7d8, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x966320b, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xb26bddee, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0xb5c8e5d3, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x317285d3, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x3c9623b1, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x51fd2c7c, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x7f7fffff, 0x7b906a6c, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7f800000, 0x0, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x1, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x76, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x2b94, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x636d24, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x7fffff, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x800002, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x1398437, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xba98d27, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xba98d7a, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x751f853a, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x7f7ffff0, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x7f7fffff, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800000, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800000, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800000, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x80000000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x80000001, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x80000076, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x80002b94, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x80636d24, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x807fffff, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x7f800000, 0x80800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x80800002, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x81398437, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x8ba98d27, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x8ba98d7a, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xf51f853a, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xff7ffff0, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xff7fffff, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xff800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800000, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800000, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800000, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800000, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x4f3495cb, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xe73a5134, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x7c994e9e, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x6164bd6c, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x9503366, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xbf5a97c9, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xe6ff1a14, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x77f31e2f, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xaab4d7d8, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x966320b, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xb26bddee, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0xb5c8e5d3, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x317285d3, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x3c9623b1, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x51fd2c7c, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800000, 0x7b906a6c, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7f800001, 0x0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x1, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x76, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x2b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x7fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x1398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x751f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7f7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7f7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7f800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7fc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7fd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7fffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x80000000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x80000001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x80000076, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x80002b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x80636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x807fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f800001, 0x80800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x80800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x81398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x8ba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x8ba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xf51f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xff7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xff7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xff800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xffc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xffd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xffffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x4f3495cb, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xe73a5134, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7c994e9e, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x6164bd6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x9503366, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xbf5a97c9, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xe6ff1a14, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x77f31e2f, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xaab4d7d8, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x966320b, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xb26bddee, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0xb5c8e5d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x317285d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x3c9623b1, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x51fd2c7c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f800001, 0x7b906a6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x1, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x76, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x2b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x7fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x1398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x751f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7f7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7f7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7f800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7fc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7fd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7fffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x80000000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x80000001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x80000076, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x80002b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x80636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x807fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7f984a37, 0x80800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x80800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x81398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x8ba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x8ba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xf51f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xff7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xff7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xff800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xffc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xffd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xffffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x4f3495cb, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xe73a5134, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7c994e9e, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x6164bd6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x9503366, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xbf5a97c9, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xe6ff1a14, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x77f31e2f, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xaab4d7d8, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x966320b, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xb26bddee, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0xb5c8e5d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x317285d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x3c9623b1, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x51fd2c7c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7f984a37, 0x7b906a6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x1, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x76, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x2b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x7fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x1398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x751f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7f7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7f7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7f800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7fc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7fd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7fffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x80000000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x80000001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x80000076, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x80002b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x80636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x807fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x7fbfffff, 0x80800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x80800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x81398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x8ba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x8ba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xf51f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xff7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xff7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xff800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xffc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xffd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xffffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x4f3495cb, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xe73a5134, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7c994e9e, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x6164bd6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x9503366, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xbf5a97c9, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xe6ff1a14, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x77f31e2f, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xaab4d7d8, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x966320b, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xb26bddee, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0xb5c8e5d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x317285d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x3c9623b1, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x51fd2c7c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fbfffff, 0x7b906a6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fc00000, 0x0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x1, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x76, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x2b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x7fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x1398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x751f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x7f7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x7f7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x7f800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fc00000, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fc00000, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fc00000, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x80000000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x80000001, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x80000076, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x80002b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x80636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x807fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fc00000, 0x80800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x80800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x81398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x8ba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x8ba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xf51f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xff7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xff7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xff800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fc00000, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fc00000, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fc00000, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x4f3495cb, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xe73a5134, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x7c994e9e, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x6164bd6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x9503366, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xbf5a97c9, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xe6ff1a14, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x77f31e2f, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xaab4d7d8, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x966320b, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xb26bddee, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0xb5c8e5d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x317285d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x3c9623b1, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x51fd2c7c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fc00000, 0x7b906a6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x1, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x76, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x2b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x7fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x1398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x751f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x7f7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x7f7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x7f800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fd9ba98, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fd9ba98, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fd9ba98, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x80000000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x80000001, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x80000076, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x80002b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x80636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x807fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fd9ba98, 0x80800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x80800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x81398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x8ba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x8ba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xf51f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xff7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xff7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xff800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fd9ba98, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fd9ba98, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fd9ba98, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x4f3495cb, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xe73a5134, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x7c994e9e, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x6164bd6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x9503366, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xbf5a97c9, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xe6ff1a14, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x77f31e2f, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xaab4d7d8, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x966320b, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xb26bddee, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0xb5c8e5d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x317285d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x3c9623b1, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x51fd2c7c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fd9ba98, 0x7b906a6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x1, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x76, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x2b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x7fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x1398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x751f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x7f7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x7f7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x7f800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fffffff, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fffffff, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fffffff, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x80000000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x80000001, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x80000076, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x80002b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x80636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x807fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x7fffffff, 0x80800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x80800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x81398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x8ba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x8ba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xf51f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xff7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xff7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xff800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fffffff, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fffffff, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7fffffff, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x4f3495cb, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xe73a5134, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x7c994e9e, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x6164bd6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x9503366, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xbf5a97c9, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xe6ff1a14, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x77f31e2f, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xaab4d7d8, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x966320b, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xb26bddee, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0xb5c8e5d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x317285d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x3c9623b1, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x51fd2c7c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7fffffff, 0x7b906a6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x0, 0x0, 0x3c00000},
+{0x3c00000, 0x80000000, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x800000, 0x800000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x800002, 0x800002, 0x3c00000},
+{0x3c00000, 0x80000000, 0x1398437, 0x1398437, 0x3c00000},
+{0x3c00000, 0x80000000, 0xba98d27, 0xba98d27, 0x3c00000},
+{0x3c00000, 0x80000000, 0xba98d7a, 0xba98d7a, 0x3c00000},
+{0x3c00000, 0x80000000, 0x751f853a, 0x751f853a, 0x3c00000},
+{0x3c00000, 0x80000000, 0x7f7ffff0, 0x7f7ffff0, 0x3c00000},
+{0x3c00000, 0x80000000, 0x7f7fffff, 0x7f7fffff, 0x3c00000},
+{0x3c00000, 0x80000000, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80000000, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80000000, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80000000, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x80000000, 0x80000000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80000000, 0x80800000, 0x80800000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x80800002, 0x80800002, 0x3c00000},
+{0x3c00000, 0x80000000, 0x81398437, 0x81398437, 0x3c00000},
+{0x3c00000, 0x80000000, 0x8ba98d27, 0x8ba98d27, 0x3c00000},
+{0x3c00000, 0x80000000, 0x8ba98d7a, 0x8ba98d7a, 0x3c00000},
+{0x3c00000, 0x80000000, 0xf51f853a, 0xf51f853a, 0x3c00000},
+{0x3c00000, 0x80000000, 0xff7ffff0, 0xff7ffff0, 0x3c00000},
+{0x3c00000, 0x80000000, 0xff7fffff, 0xff7fffff, 0x3c00000},
+{0x3c00000, 0x80000000, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x80000000, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80000000, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80000000, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80000000, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80000000, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80000000, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80000000, 0x4f3495cb, 0x4f3495cb, 0x3c00000},
+{0x3c00000, 0x80000000, 0xe73a5134, 0xe73a5134, 0x3c00000},
+{0x3c00000, 0x80000000, 0x7c994e9e, 0x7c994e9e, 0x3c00000},
+{0x3c00000, 0x80000000, 0x6164bd6c, 0x6164bd6c, 0x3c00000},
+{0x3c00000, 0x80000000, 0x9503366, 0x9503366, 0x3c00000},
+{0x3c00000, 0x80000000, 0xbf5a97c9, 0xbf5a97c9, 0x3c00000},
+{0x3c00000, 0x80000000, 0xe6ff1a14, 0xe6ff1a14, 0x3c00000},
+{0x3c00000, 0x80000000, 0x77f31e2f, 0x77f31e2f, 0x3c00000},
+{0x3c00000, 0x80000000, 0xaab4d7d8, 0xaab4d7d8, 0x3c00000},
+{0x3c00000, 0x80000000, 0x966320b, 0x966320b, 0x3c00000},
+{0x3c00000, 0x80000000, 0xb26bddee, 0xb26bddee, 0x3c00000},
+{0x3c00000, 0x80000000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00000},
+{0x3c00000, 0x80000000, 0x317285d3, 0x317285d3, 0x3c00000},
+{0x3c00000, 0x80000000, 0x3c9623b1, 0x3c9623b1, 0x3c00000},
+{0x3c00000, 0x80000000, 0x51fd2c7c, 0x51fd2c7c, 0x3c00000},
+{0x3c00000, 0x80000000, 0x7b906a6c, 0x7b906a6c, 0x3c00000},
+{0x3c00000, 0x80000001, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x80000001, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x80000001, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x80000001, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x80000001, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x80000001, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000001, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000001, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000001, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000001, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80000001, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80000001, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80000001, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x80000001, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x80000001, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x80000001, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x80000001, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x80000001, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x80000001, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x80000001, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000001, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000001, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000001, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000001, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000001, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000001, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x80000001, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x80000001, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x80000001, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x80000001, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x80000001, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x80000001, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x80000001, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x80000001, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x80000001, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x80000001, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x80000001, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x80000001, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x80000001, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x80000001, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x80000076, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x80000076, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x80000076, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x80000076, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x80000076, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x80000076, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000076, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000076, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000076, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000076, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80000076, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80000076, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80000076, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x80000076, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x80000076, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x80000076, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x80000076, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x80000076, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x80000076, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x80000076, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000076, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000076, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80000076, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000076, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000076, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80000076, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x80000076, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x80000076, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x80000076, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x80000076, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x80000076, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x80000076, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x80000076, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x80000076, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x80000076, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x80000076, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x80000076, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x80000076, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x80000076, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x80000076, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80002b94, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80002b94, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80002b94, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80002b94, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80002b94, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80002b94, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x80002b94, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x80002b94, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80636d24, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80636d24, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80636d24, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80636d24, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80636d24, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x80636d24, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x80636d24, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x80636d24, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x0, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x1, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x76, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x2b94, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x800000, 0x800000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x800002, 0x800002, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x1398437, 0x1398437, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xba98d27, 0xba98d27, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xba98d7a, 0xba98d7a, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x751f853a, 0x751f853a, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7f7ffff0, 0x7f7ffff0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7f7fffff, 0x7f7fffff, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7f800000, 0x7f800000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7f800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x807fffff, 0x7f984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x807fffff, 0x7fbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x807fffff, 0x7fc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7fd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7fffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x80000000, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x80000001, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x80000076, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x80002b94, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x80636d24, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x807fffff, 0x0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x80800000, 0x80800000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x80800002, 0x80800002, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x81398437, 0x81398437, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x8ba98d27, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x8ba98d7a, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xf51f853a, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xff7ffff0, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xff7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xff800000, 0xff800000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xff800001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x807fffff, 0xff984a37, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x807fffff, 0xffbfffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0x807fffff, 0xffc00000, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xffd9ba98, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xffffffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x4f3495cb, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xe73a5134, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7c994e9e, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x6164bd6c, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x9503366, 0x9503366, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xbf5a97c9, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xe6ff1a14, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x77f31e2f, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xaab4d7d8, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x966320b, 0x966320b, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xb26bddee, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0x807fffff, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x317285d3, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x3c9623b1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x51fd2c7c, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x807fffff, 0x7b906a6c, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x80800000, 0x0, 0x80800000, 0x3c00000},
+{0x3c00000, 0x80800000, 0x1, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x76, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x2b94, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x636d24, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x7fffff, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x800000, 0x0, 0x3c00000},
+{0x3c00000, 0x80800000, 0x800002, 0x0, 0x3c00008},
+{0x3c00000, 0x80800000, 0x1398437, 0xf3086e, 0x3c00000},
+{0x3c00000, 0x80800000, 0xba98d27, 0xba98d25, 0x3c00000},
+{0x3c00000, 0x80800000, 0xba98d7a, 0xba98d78, 0x3c00000},
+{0x3c00000, 0x80800000, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x80800000, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x80800000, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x80800000, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x80800000, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800000, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800000, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800000, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800000, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800000, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800000, 0x80000000, 0x80800000, 0x3c00000},
+{0x3c00000, 0x80800000, 0x80000001, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x80000076, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x80002b94, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x80636d24, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x807fffff, 0x80800000, 0x3c00080},
+{0x3c00000, 0x80800000, 0x80800000, 0x81000000, 0x3c00000},
+{0x3c00000, 0x80800000, 0x80800002, 0x81000001, 0x3c00000},
+{0x3c00000, 0x80800000, 0x81398437, 0x81798437, 0x3c00000},
+{0x3c00000, 0x80800000, 0x8ba98d27, 0x8ba98d29, 0x3c00000},
+{0x3c00000, 0x80800000, 0x8ba98d7a, 0x8ba98d7c, 0x3c00000},
+{0x3c00000, 0x80800000, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0x80800000, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0x80800000, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0x80800000, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x80800000, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800000, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800000, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800000, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800000, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800000, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800000, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x80800000, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0x80800000, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x80800000, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x80800000, 0x9503366, 0x9503326, 0x3c00000},
+{0x3c00000, 0x80800000, 0xbf5a97c9, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0x80800000, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0x80800000, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x80800000, 0xaab4d7d8, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0x80800000, 0x966320b, 0x96631cb, 0x3c00000},
+{0x3c00000, 0x80800000, 0xb26bddee, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0x80800000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0x80800000, 0x317285d3, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x80800000, 0x3c9623b1, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x80800000, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x80800000, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x80800002, 0x0, 0x80800002, 0x3c00000},
+{0x3c00000, 0x80800002, 0x1, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x76, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x2b94, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x636d24, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x7fffff, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x800000, 0x0, 0x3c00008},
+{0x3c00000, 0x80800002, 0x800002, 0x0, 0x3c00000},
+{0x3c00000, 0x80800002, 0x1398437, 0xf3086c, 0x3c00000},
+{0x3c00000, 0x80800002, 0xba98d27, 0xba98d24, 0x3c00010},
+{0x3c00000, 0x80800002, 0xba98d7a, 0xba98d77, 0x3c00010},
+{0x3c00000, 0x80800002, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x80800002, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x80800002, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x80800002, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x80800002, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800002, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800002, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800002, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800002, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800002, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800002, 0x80000000, 0x80800002, 0x3c00000},
+{0x3c00000, 0x80800002, 0x80000001, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x80000076, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x80002b94, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x80636d24, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x807fffff, 0x80800002, 0x3c00080},
+{0x3c00000, 0x80800002, 0x80800000, 0x81000001, 0x3c00000},
+{0x3c00000, 0x80800002, 0x80800002, 0x81000002, 0x3c00000},
+{0x3c00000, 0x80800002, 0x81398437, 0x81798438, 0x3c00000},
+{0x3c00000, 0x80800002, 0x8ba98d27, 0x8ba98d29, 0x3c00010},
+{0x3c00000, 0x80800002, 0x8ba98d7a, 0x8ba98d7c, 0x3c00010},
+{0x3c00000, 0x80800002, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0x80800002, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0x80800002, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0x80800002, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x80800002, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800002, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800002, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x80800002, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800002, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800002, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x80800002, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x80800002, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0x80800002, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x80800002, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x80800002, 0x9503366, 0x9503325, 0x3c00010},
+{0x3c00000, 0x80800002, 0xbf5a97c9, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0x80800002, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0x80800002, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x80800002, 0xaab4d7d8, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0x80800002, 0x966320b, 0x96631ca, 0x3c00010},
+{0x3c00000, 0x80800002, 0xb26bddee, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0x80800002, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0x80800002, 0x317285d3, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x80800002, 0x3c9623b1, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x80800002, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x80800002, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x81398437, 0x0, 0x81398437, 0x3c00000},
+{0x3c00000, 0x81398437, 0x1, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x76, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x2b94, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x636d24, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x7fffff, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x800000, 0x80f3086e, 0x3c00000},
+{0x3c00000, 0x81398437, 0x800002, 0x80f3086c, 0x3c00000},
+{0x3c00000, 0x81398437, 0x1398437, 0x0, 0x3c00000},
+{0x3c00000, 0x81398437, 0xba98d27, 0xba98d21, 0x3c00010},
+{0x3c00000, 0x81398437, 0xba98d7a, 0xba98d74, 0x3c00010},
+{0x3c00000, 0x81398437, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x81398437, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x81398437, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x81398437, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x81398437, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x81398437, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x81398437, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x81398437, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x81398437, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x81398437, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x81398437, 0x80000000, 0x81398437, 0x3c00000},
+{0x3c00000, 0x81398437, 0x80000001, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x80000076, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x80002b94, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x80636d24, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x807fffff, 0x81398437, 0x3c00080},
+{0x3c00000, 0x81398437, 0x80800000, 0x81798437, 0x3c00000},
+{0x3c00000, 0x81398437, 0x80800002, 0x81798438, 0x3c00000},
+{0x3c00000, 0x81398437, 0x81398437, 0x81b98437, 0x3c00000},
+{0x3c00000, 0x81398437, 0x8ba98d27, 0x8ba98d2c, 0x3c00010},
+{0x3c00000, 0x81398437, 0x8ba98d7a, 0x8ba98d7f, 0x3c00010},
+{0x3c00000, 0x81398437, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0x81398437, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0x81398437, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0x81398437, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x81398437, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x81398437, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x81398437, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x81398437, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x81398437, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x81398437, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x81398437, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x81398437, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0x81398437, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x81398437, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x81398437, 0x9503366, 0x95032ac, 0x3c00010},
+{0x3c00000, 0x81398437, 0xbf5a97c9, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0x81398437, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0x81398437, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x81398437, 0xaab4d7d8, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0x81398437, 0x966320b, 0x9663151, 0x3c00010},
+{0x3c00000, 0x81398437, 0xb26bddee, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0x81398437, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0x81398437, 0x317285d3, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x81398437, 0x3c9623b1, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x81398437, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x81398437, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x0, 0x8ba98d27, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x1, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x76, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x2b94, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x636d24, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x7fffff, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x800000, 0x8ba98d25, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x800002, 0x8ba98d24, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x1398437, 0x8ba98d21, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xba98d27, 0x0, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0xba98d7a, 0x3260000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d27, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d27, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d27, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x80000000, 0x8ba98d27, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x80000001, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x80000076, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x80002b94, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x80636d24, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x807fffff, 0x8ba98d27, 0x3c00080},
+{0x3c00000, 0x8ba98d27, 0x80800000, 0x8ba98d29, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x80800002, 0x8ba98d29, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x81398437, 0x8ba98d2c, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x8ba98d27, 0x8c298d27, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x8ba98d7a, 0x8c298d50, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d27, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d27, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d27, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d27, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x9503366, 0x8ba30b8b, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xbf5a97c9, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xaab4d7d8, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x966320b, 0x8ba25b96, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xb26bddee, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x317285d3, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x3c9623b1, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x8ba98d27, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x0, 0x8ba98d7a, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x1, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x76, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x2b94, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x636d24, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x7fffff, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x800000, 0x8ba98d78, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x800002, 0x8ba98d77, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x1398437, 0x8ba98d74, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xba98d27, 0x83260000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0xba98d7a, 0x0, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d7a, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d7a, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d7a, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x80000000, 0x8ba98d7a, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x80000001, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x80000076, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x80002b94, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x80636d24, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x807fffff, 0x8ba98d7a, 0x3c00080},
+{0x3c00000, 0x8ba98d7a, 0x80800000, 0x8ba98d7c, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x80800002, 0x8ba98d7c, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x81398437, 0x8ba98d7f, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x8ba98d27, 0x8c298d50, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x8ba98d7a, 0x8c298d7a, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d7a, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d7a, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x8ba98d7a, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x8ba98d7a, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x9503366, 0x8ba30bde, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xbf5a97c9, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xaab4d7d8, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x966320b, 0x8ba25be9, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xb26bddee, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0xb5c8e5d3, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x317285d3, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x3c9623b1, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x8ba98d7a, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x0, 0xf51f853a, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0x1, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x76, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x2b94, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x636d24, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x7fffff, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x800000, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x800002, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x1398437, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xba98d27, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xba98d7a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x751f853a, 0x0, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0x7f7ffff0, 0x7f7fffe6, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x7f7fffff, 0x7f7ffff5, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xf51f853a, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xf51f853a, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xf51f853a, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0x80000000, 0xf51f853a, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0x80000001, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x80000076, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x80002b94, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x80636d24, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x807fffff, 0xf51f853a, 0x3c00080},
+{0x3c00000, 0xf51f853a, 0x80800000, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x80800002, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x81398437, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x8ba98d27, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x8ba98d7a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xf51f853a, 0xf59f853a, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0xff7ffff0, 0xff7ffff9, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xff7fffff, 0xff7fffff, 0x3c00014},
+{0x3c00000, 0xf51f853a, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xf51f853a, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xf51f853a, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xf51f853a, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xf51f853a, 0x4f3495cb, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xe73a5134, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x7c994e9e, 0x7c994d5e, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x6164bd6c, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x9503366, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xbf5a97c9, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xe6ff1a14, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x77f31e2f, 0x77ee2205, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xaab4d7d8, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x966320b, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xb26bddee, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0xb5c8e5d3, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x317285d3, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x3c9623b1, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x51fd2c7c, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0xf51f853a, 0x7b906a6c, 0x7b90656f, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x0, 0xff7ffff0, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x1, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x76, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x2b94, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x636d24, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x7fffff, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x800000, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x800002, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x1398437, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xba98d27, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xba98d7a, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x751f853a, 0xff7fffe6, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x7f7ffff0, 0x0, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x7f7fffff, 0x75700000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7ffff0, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7ffff0, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7ffff0, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x80000000, 0xff7ffff0, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x80000001, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x80000076, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x80002b94, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x80636d24, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x807fffff, 0xff7ffff0, 0x3c00080},
+{0x3c00000, 0xff7ffff0, 0x80800000, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x80800002, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x81398437, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x8ba98d27, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x8ba98d7a, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xf51f853a, 0xff7ffff9, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xff7ffff0, 0xff7fffff, 0x3c00014},
+{0x3c00000, 0xff7ffff0, 0xff7fffff, 0xff7fffff, 0x3c00014},
+{0x3c00000, 0xff7ffff0, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7ffff0, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7ffff0, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7ffff0, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7ffff0, 0x4f3495cb, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xe73a5134, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x7c994e9e, 0xff7b357b, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x6164bd6c, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x9503366, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xbf5a97c9, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xe6ff1a14, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x77f31e2f, 0xff7ffe09, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xaab4d7d8, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x966320b, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xb26bddee, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0xb5c8e5d3, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x317285d3, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x3c9623b1, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x51fd2c7c, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0xff7ffff0, 0x7b906a6c, 0xff7edf1b, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x0, 0xff7fffff, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x1, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x76, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x2b94, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x636d24, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x7fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x800000, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x800002, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x1398437, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xba98d27, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xba98d7a, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x751f853a, 0xff7ffff5, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x7f7ffff0, 0xf5700000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x7f7fffff, 0x0, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7fffff, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7fffff, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7fffff, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x80000000, 0xff7fffff, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x80000001, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x80000076, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x80002b94, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x80636d24, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x807fffff, 0xff7fffff, 0x3c00080},
+{0x3c00000, 0xff7fffff, 0x80800000, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x80800002, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x81398437, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x8ba98d27, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x8ba98d7a, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xf51f853a, 0xff7fffff, 0x3c00014},
+{0x3c00000, 0xff7fffff, 0xff7ffff0, 0xff7fffff, 0x3c00014},
+{0x3c00000, 0xff7fffff, 0xff7fffff, 0xff7fffff, 0x3c00014},
+{0x3c00000, 0xff7fffff, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7fffff, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7fffff, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff7fffff, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff7fffff, 0x4f3495cb, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xe73a5134, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x7c994e9e, 0xff7b358a, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x6164bd6c, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x9503366, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xbf5a97c9, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xe6ff1a14, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x77f31e2f, 0xff7ffe18, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xaab4d7d8, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x966320b, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xb26bddee, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0xb5c8e5d3, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x317285d3, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x3c9623b1, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x51fd2c7c, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0xff7fffff, 0x7b906a6c, 0xff7edf2a, 0x3c00010},
+{0x3c00000, 0xff800000, 0x0, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x1, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x76, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x2b94, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x636d24, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x7fffff, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x800002, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x1398437, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xba98d27, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xba98d7a, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x751f853a, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x7f7ffff0, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x7f7fffff, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x7f800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800000, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800000, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800000, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800000, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x80000000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x80000001, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x80000076, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x80002b94, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x80636d24, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x807fffff, 0xff800000, 0x3c00080},
+{0x3c00000, 0xff800000, 0x80800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x80800002, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x81398437, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x8ba98d27, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x8ba98d7a, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xf51f853a, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xff7ffff0, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xff7fffff, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800000, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800000, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800000, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x4f3495cb, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xe73a5134, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x7c994e9e, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x6164bd6c, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x9503366, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xbf5a97c9, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xe6ff1a14, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x77f31e2f, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xaab4d7d8, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x966320b, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xb26bddee, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0xb5c8e5d3, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x317285d3, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x3c9623b1, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x51fd2c7c, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800000, 0x7b906a6c, 0xff800000, 0x3c00000},
+{0x3c00000, 0xff800001, 0x0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x1, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x76, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x2b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x7fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x1398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x751f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7f7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7f7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7f800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7fc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7fd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7fffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x80000000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x80000001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x80000076, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x80002b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x80636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x807fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff800001, 0x80800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x80800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x81398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x8ba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x8ba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xf51f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xff7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xff7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xff800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xffc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xffd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xffffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x4f3495cb, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xe73a5134, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7c994e9e, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x6164bd6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x9503366, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xbf5a97c9, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xe6ff1a14, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x77f31e2f, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xaab4d7d8, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x966320b, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xb26bddee, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0xb5c8e5d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x317285d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x3c9623b1, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x51fd2c7c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff800001, 0x7b906a6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x1, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x76, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x2b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x7fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x1398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x751f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7f7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7f7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7f800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7fc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7fd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7fffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x80000000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x80000001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x80000076, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x80002b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x80636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x807fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xff984a37, 0x80800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x80800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x81398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x8ba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x8ba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xf51f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xff7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xff7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xff800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xffc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xffd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xffffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x4f3495cb, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xe73a5134, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7c994e9e, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x6164bd6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x9503366, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xbf5a97c9, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xe6ff1a14, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x77f31e2f, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xaab4d7d8, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x966320b, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xb26bddee, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0xb5c8e5d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x317285d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x3c9623b1, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x51fd2c7c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xff984a37, 0x7b906a6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x1, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x76, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x2b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x7fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x1398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x751f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7f7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7f7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7f800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7fc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7fd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7fffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x80000000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x80000001, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x80000076, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x80002b94, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x80636d24, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x807fffff, 0x7fc00000, 0x3c00081},
+{0x3c00000, 0xffbfffff, 0x80800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x80800002, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x81398437, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x8ba98d27, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x8ba98d7a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xf51f853a, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xff7ffff0, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xff7fffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xff800000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xffc00000, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xffd9ba98, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xffffffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x4f3495cb, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xe73a5134, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7c994e9e, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x6164bd6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x9503366, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xbf5a97c9, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xe6ff1a14, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x77f31e2f, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xaab4d7d8, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x966320b, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xb26bddee, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0xb5c8e5d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x317285d3, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x3c9623b1, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x51fd2c7c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffbfffff, 0x7b906a6c, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffc00000, 0x0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x1, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x76, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x2b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x7fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x1398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x751f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x7f7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x7f7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x7f800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffc00000, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffc00000, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffc00000, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x80000000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x80000001, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x80000076, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x80002b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x80636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x807fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffc00000, 0x80800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x80800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x81398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x8ba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x8ba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xf51f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xff7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xff7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xff800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffc00000, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffc00000, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffc00000, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x4f3495cb, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xe73a5134, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x7c994e9e, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x6164bd6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x9503366, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xbf5a97c9, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xe6ff1a14, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x77f31e2f, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xaab4d7d8, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x966320b, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xb26bddee, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0xb5c8e5d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x317285d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x3c9623b1, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x51fd2c7c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffc00000, 0x7b906a6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x1, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x76, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x2b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x7fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x1398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x751f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x7f7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x7f7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x7f800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffd9ba98, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffd9ba98, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffd9ba98, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x80000000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x80000001, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x80000076, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x80002b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x80636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x807fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffd9ba98, 0x80800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x80800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x81398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x8ba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x8ba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xf51f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xff7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xff7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xff800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffd9ba98, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffd9ba98, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffd9ba98, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x4f3495cb, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xe73a5134, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x7c994e9e, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x6164bd6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x9503366, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xbf5a97c9, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xe6ff1a14, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x77f31e2f, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xaab4d7d8, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x966320b, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xb26bddee, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0xb5c8e5d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x317285d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x3c9623b1, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x51fd2c7c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffd9ba98, 0x7b906a6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x1, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x76, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x2b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x7fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x1398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x751f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x7f7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x7f7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x7f800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffffffff, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffffffff, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffffffff, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x80000000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x80000001, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x80000076, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x80002b94, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x80636d24, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x807fffff, 0x7fc00000, 0x3c00080},
+{0x3c00000, 0xffffffff, 0x80800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x80800002, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x81398437, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x8ba98d27, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x8ba98d7a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xf51f853a, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xff7ffff0, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xff7fffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xff800000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffffffff, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffffffff, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xffffffff, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x4f3495cb, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xe73a5134, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x7c994e9e, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x6164bd6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x9503366, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xbf5a97c9, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xe6ff1a14, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x77f31e2f, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xaab4d7d8, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x966320b, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xb26bddee, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0xb5c8e5d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x317285d3, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x3c9623b1, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x51fd2c7c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xffffffff, 0x7b906a6c, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0x0, 0x4f3495cb, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0x1, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x76, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x2b94, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x636d24, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x7fffff, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x800000, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x800002, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x1398437, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xba98d27, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xba98d7a, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x4f3495cb, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x4f3495cb, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x4f3495cb, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0x80000000, 0x4f3495cb, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0x80000001, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x80000076, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x80002b94, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x80636d24, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x807fffff, 0x4f3495cb, 0x3c00080},
+{0x3c00000, 0x4f3495cb, 0x80800000, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x80800002, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x81398437, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x8ba98d27, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x8ba98d7a, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x4f3495cb, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x4f3495cb, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x4f3495cb, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0x4f3495cb, 0x4fb495cb, 0x3c00000},
+{0x3c00000, 0x4f3495cb, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x9503366, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xbf5a97c9, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xaab4d7d8, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x966320b, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xb26bddee, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0xb5c8e5d3, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x317285d3, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x3c9623b1, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x51fd2c7c, 0x52016895, 0x3c00010},
+{0x3c00000, 0x4f3495cb, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x0, 0xe73a5134, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x1, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x76, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x2b94, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x636d24, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x7fffff, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x800000, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x800002, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x1398437, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xba98d27, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xba98d7a, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe73a5134, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe73a5134, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe73a5134, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x80000000, 0xe73a5134, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x80000001, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x80000076, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x80002b94, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x80636d24, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x807fffff, 0xe73a5134, 0x3c00080},
+{0x3c00000, 0xe73a5134, 0x80800000, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x80800002, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x81398437, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x8ba98d27, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x8ba98d7a, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe73a5134, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe73a5134, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe73a5134, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x4f3495cb, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xe73a5134, 0xe7ba5134, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x6164bd6c, 0xe73a42e8, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x9503366, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xbf5a97c9, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xe6ff1a14, 0xe79cef1f, 0x3c00000},
+{0x3c00000, 0xe73a5134, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xaab4d7d8, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x966320b, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xb26bddee, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0xb5c8e5d3, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x317285d3, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x3c9623b1, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x51fd2c7c, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0xe73a5134, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x0, 0x7c994e9e, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0x1, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x76, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x2b94, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x636d24, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x7fffff, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x800000, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x800002, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x1398437, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xba98d27, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xba98d7a, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x751f853a, 0x7c994fdd, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x7f7ffff0, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7c994e9e, 0x7f7fffff, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7c994e9e, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7c994e9e, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7c994e9e, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7c994e9e, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0x80000000, 0x7c994e9e, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0x80000001, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x80000076, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x80002b94, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x80636d24, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x807fffff, 0x7c994e9e, 0x3c00080},
+{0x3c00000, 0x7c994e9e, 0x80800000, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x80800002, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x81398437, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x8ba98d27, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x8ba98d7a, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xf51f853a, 0x7c994d5e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xff7ffff0, 0xff7b357b, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xff7fffff, 0xff7b358a, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7c994e9e, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7c994e9e, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7c994e9e, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0x4f3495cb, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xe73a5134, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x7c994e9e, 0x7d194e9e, 0x3c00000},
+{0x3c00000, 0x7c994e9e, 0x6164bd6c, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x9503366, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xbf5a97c9, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xe6ff1a14, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x77f31e2f, 0x7c998b65, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xaab4d7d8, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x966320b, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xb26bddee, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0xb5c8e5d3, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x317285d3, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x3c9623b1, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x51fd2c7c, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x7c994e9e, 0x7b906a6c, 0x7cbd6939, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x0, 0x6164bd6c, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x1, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x76, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x2b94, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x636d24, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x7fffff, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x800000, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x800002, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x1398437, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xba98d27, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xba98d7a, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x6164bd6c, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x6164bd6c, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x6164bd6c, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x80000000, 0x6164bd6c, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x80000001, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x80000076, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x80002b94, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x80636d24, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x807fffff, 0x6164bd6c, 0x3c00080},
+{0x3c00000, 0x6164bd6c, 0x80800000, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x80800002, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x81398437, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x8ba98d27, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x8ba98d7a, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x6164bd6c, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x6164bd6c, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x6164bd6c, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x4f3495cb, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xe73a5134, 0xe73a42e8, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x6164bd6c, 0x61e4bd6c, 0x3c00000},
+{0x3c00000, 0x6164bd6c, 0x9503366, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xbf5a97c9, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xe6ff1a14, 0xe6fefd7c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xaab4d7d8, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x966320b, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xb26bddee, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0xb5c8e5d3, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x317285d3, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x3c9623b1, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x51fd2c7c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x6164bd6c, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x9503366, 0x0, 0x9503366, 0x3c00000},
+{0x3c00000, 0x9503366, 0x1, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x76, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x2b94, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x636d24, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x7fffff, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x800000, 0x95033a6, 0x3c00000},
+{0x3c00000, 0x9503366, 0x800002, 0x95033a6, 0x3c00010},
+{0x3c00000, 0x9503366, 0x1398437, 0x950341f, 0x3c00010},
+{0x3c00000, 0x9503366, 0xba98d27, 0xbb00ec2, 0x3c00010},
+{0x3c00000, 0x9503366, 0xba98d7a, 0xbb00f15, 0x3c00010},
+{0x3c00000, 0x9503366, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x9503366, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x9503366, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x9503366, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x9503366, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x9503366, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x9503366, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x9503366, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x9503366, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x9503366, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x9503366, 0x80000000, 0x9503366, 0x3c00000},
+{0x3c00000, 0x9503366, 0x80000001, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x80000076, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x80002b94, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x80636d24, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x807fffff, 0x9503366, 0x3c00080},
+{0x3c00000, 0x9503366, 0x80800000, 0x9503326, 0x3c00000},
+{0x3c00000, 0x9503366, 0x80800002, 0x9503325, 0x3c00010},
+{0x3c00000, 0x9503366, 0x81398437, 0x95032ac, 0x3c00010},
+{0x3c00000, 0x9503366, 0x8ba98d27, 0x8ba30b8b, 0x3c00010},
+{0x3c00000, 0x9503366, 0x8ba98d7a, 0x8ba30bde, 0x3c00010},
+{0x3c00000, 0x9503366, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x9503366, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x9503366, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x9503366, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x9503366, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x9503366, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x9503366, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x9503366, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x9503366, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x9503366, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x9503366, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x9503366, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x9503366, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x9503366, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x9503366, 0x9503366, 0x9d03366, 0x3c00000},
+{0x3c00000, 0x9503366, 0xbf5a97c9, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0x9503366, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x9503366, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x9503366, 0xaab4d7d8, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0x9503366, 0x966320b, 0x9db32b8, 0x3c00010},
+{0x3c00000, 0x9503366, 0xb26bddee, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0x9503366, 0xb5c8e5d3, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0x9503366, 0x317285d3, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x9503366, 0x3c9623b1, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x9503366, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x9503366, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x0, 0xbf5a97c9, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0x1, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x76, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x2b94, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x636d24, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x7fffff, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x800000, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x800002, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x1398437, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xba98d27, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xba98d7a, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xbf5a97c9, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xbf5a97c9, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xbf5a97c9, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0x80000000, 0xbf5a97c9, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0x80000001, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x80000076, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x80002b94, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x80636d24, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x807fffff, 0xbf5a97c9, 0x3c00080},
+{0x3c00000, 0xbf5a97c9, 0x80800000, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x80800002, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x81398437, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x8ba98d27, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x8ba98d7a, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xbf5a97c9, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xbf5a97c9, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xbf5a97c9, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x9503366, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xbf5a97c9, 0xbfda97c9, 0x3c00000},
+{0x3c00000, 0xbf5a97c9, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xaab4d7d8, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x966320b, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xb26bddee, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0xb5c8e5d3, 0xbf5a97e2, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x317285d3, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x3c9623b1, 0xbf55e6ab, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0xbf5a97c9, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x0, 0xe6ff1a14, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x1, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x76, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x2b94, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x636d24, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x7fffff, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x800000, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x800002, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x1398437, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xba98d27, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xba98d7a, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe6ff1a14, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe6ff1a14, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe6ff1a14, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x80000000, 0xe6ff1a14, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x80000001, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x80000076, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x80002b94, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x80636d24, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x807fffff, 0xe6ff1a14, 0x3c00080},
+{0x3c00000, 0xe6ff1a14, 0x80800000, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x80800002, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x81398437, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x8ba98d27, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x8ba98d7a, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe6ff1a14, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe6ff1a14, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xe6ff1a14, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x4f3495cb, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xe73a5134, 0xe79cef1f, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x6164bd6c, 0xe6fefd7c, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x9503366, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xbf5a97c9, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xe6ff1a14, 0xe77f1a14, 0x3c00000},
+{0x3c00000, 0xe6ff1a14, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xaab4d7d8, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x966320b, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xb26bddee, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0xb5c8e5d3, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x317285d3, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x3c9623b1, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x51fd2c7c, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0xe6ff1a14, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x0, 0x77f31e2f, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0x1, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x76, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x2b94, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x636d24, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x7fffff, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x800000, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x800002, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x1398437, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xba98d27, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xba98d7a, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x751f853a, 0x77f81a58, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x7f7ffff0, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x77f31e2f, 0x7f7fffff, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x77f31e2f, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x77f31e2f, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x77f31e2f, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x77f31e2f, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0x80000000, 0x77f31e2f, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0x80000001, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x80000076, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x80002b94, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x80636d24, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x807fffff, 0x77f31e2f, 0x3c00080},
+{0x3c00000, 0x77f31e2f, 0x80800000, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x80800002, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x81398437, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x8ba98d27, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x8ba98d7a, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xf51f853a, 0x77ee2205, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xff7ffff0, 0xff7ffe09, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xff7fffff, 0xff7ffe18, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x77f31e2f, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x77f31e2f, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x77f31e2f, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0x4f3495cb, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xe73a5134, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x7c994e9e, 0x7c998b65, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x6164bd6c, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x9503366, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xbf5a97c9, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xe6ff1a14, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x77f31e2f, 0x78731e2f, 0x3c00000},
+{0x3c00000, 0x77f31e2f, 0xaab4d7d8, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x966320b, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xb26bddee, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0xb5c8e5d3, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x317285d3, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x3c9623b1, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x51fd2c7c, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x77f31e2f, 0x7b906a6c, 0x7b915d8a, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x0, 0xaab4d7d8, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0x1, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x76, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x2b94, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x636d24, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x7fffff, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x800000, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x800002, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x1398437, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xba98d27, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xba98d7a, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xaab4d7d8, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xaab4d7d8, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xaab4d7d8, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0x80000000, 0xaab4d7d8, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0x80000001, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x80000076, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x80002b94, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x80636d24, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x807fffff, 0xaab4d7d8, 0x3c00080},
+{0x3c00000, 0xaab4d7d8, 0x80800000, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x80800002, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x81398437, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x8ba98d27, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x8ba98d7a, 0xaab4d7d8, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xaab4d7d8, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xaab4d7d8, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xaab4d7d8, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x9503366, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xbf5a97c9, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xaab4d7d8, 0xab34d7d8, 0x3c00000},
+{0x3c00000, 0xaab4d7d8, 0x966320b, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xb26bddee, 0xb26bdf57, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0xb5c8e5d3, 0xb5c8e5d5, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x317285d3, 0x3172802c, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x3c9623b1, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0xaab4d7d8, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x966320b, 0x0, 0x966320b, 0x3c00000},
+{0x3c00000, 0x966320b, 0x1, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x76, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x2b94, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x636d24, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x7fffff, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x800000, 0x966324b, 0x3c00000},
+{0x3c00000, 0x966320b, 0x800002, 0x966324b, 0x3c00010},
+{0x3c00000, 0x966320b, 0x1398437, 0x96632c4, 0x3c00010},
+{0x3c00000, 0x966320b, 0xba98d27, 0xbb0beb7, 0x3c00010},
+{0x3c00000, 0x966320b, 0xba98d7a, 0xbb0bf0a, 0x3c00010},
+{0x3c00000, 0x966320b, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x966320b, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x966320b, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x966320b, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x966320b, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x966320b, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x966320b, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x966320b, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x966320b, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x966320b, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x966320b, 0x80000000, 0x966320b, 0x3c00000},
+{0x3c00000, 0x966320b, 0x80000001, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x80000076, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x80002b94, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x80636d24, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x807fffff, 0x966320b, 0x3c00080},
+{0x3c00000, 0x966320b, 0x80800000, 0x96631cb, 0x3c00000},
+{0x3c00000, 0x966320b, 0x80800002, 0x96631ca, 0x3c00010},
+{0x3c00000, 0x966320b, 0x81398437, 0x9663151, 0x3c00010},
+{0x3c00000, 0x966320b, 0x8ba98d27, 0x8ba25b96, 0x3c00010},
+{0x3c00000, 0x966320b, 0x8ba98d7a, 0x8ba25be9, 0x3c00010},
+{0x3c00000, 0x966320b, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x966320b, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x966320b, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x966320b, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x966320b, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x966320b, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x966320b, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x966320b, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x966320b, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x966320b, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x966320b, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x966320b, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x966320b, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x966320b, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x966320b, 0x9503366, 0x9db32b8, 0x3c00010},
+{0x3c00000, 0x966320b, 0xbf5a97c9, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0x966320b, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x966320b, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x966320b, 0xaab4d7d8, 0xaab4d7d7, 0x3c00010},
+{0x3c00000, 0x966320b, 0x966320b, 0x9e6320b, 0x3c00000},
+{0x3c00000, 0x966320b, 0xb26bddee, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0x966320b, 0xb5c8e5d3, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0x966320b, 0x317285d3, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x966320b, 0x3c9623b1, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x966320b, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x966320b, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x0, 0xb26bddee, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0x1, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x76, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x2b94, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x636d24, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x7fffff, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x800000, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x800002, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x1398437, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xba98d27, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xba98d7a, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb26bddee, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb26bddee, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb26bddee, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0x80000000, 0xb26bddee, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0x80000001, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x80000076, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x80002b94, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x80636d24, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x807fffff, 0xb26bddee, 0x3c00080},
+{0x3c00000, 0xb26bddee, 0x80800000, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x80800002, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x81398437, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x8ba98d27, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x8ba98d7a, 0xb26bddee, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb26bddee, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb26bddee, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb26bddee, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x9503366, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xbf5a97c9, 0xbf5a97c9, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xaab4d7d8, 0xb26bdf57, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x966320b, 0xb26bdded, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0xb26bddee, 0xb2ebddee, 0x3c00000},
+{0x3c00000, 0xb26bddee, 0xb5c8e5d3, 0xb5cabd8e, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x317285d3, 0xb22f3c79, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x3c9623b1, 0x3c9623a9, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0xb26bddee, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x0, 0xb5c8e5d3, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0x1, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x76, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x2b94, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x636d24, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x7fffff, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x800000, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x800002, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x1398437, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xba98d27, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xba98d7a, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x751f853a, 0x751f8539, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x7f7ffff0, 0x7f7fffef, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x7f7fffff, 0x7f7ffffe, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb5c8e5d3, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb5c8e5d3, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb5c8e5d3, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0x80000000, 0xb5c8e5d3, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0x80000001, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x80000076, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x80002b94, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x80636d24, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x807fffff, 0xb5c8e5d3, 0x3c00080},
+{0x3c00000, 0xb5c8e5d3, 0x80800000, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x80800002, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x81398437, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x8ba98d27, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x8ba98d7a, 0xb5c8e5d3, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xf51f853a, 0xf51f853a, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xff7ffff0, 0xff7ffff0, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xff7fffff, 0xff7fffff, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb5c8e5d3, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb5c8e5d3, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0xb5c8e5d3, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0x4f3495cb, 0x4f3495ca, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xe73a5134, 0xe73a5134, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x7c994e9e, 0x7c994e9d, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x6164bd6c, 0x6164bd6b, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x9503366, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xbf5a97c9, 0xbf5a97e2, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xe6ff1a14, 0xe6ff1a14, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x77f31e2f, 0x77f31e2e, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xaab4d7d8, 0xb5c8e5d5, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x966320b, 0xb5c8e5d2, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xb26bddee, 0xb5cabd8e, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0xb5c8e5d3, 0xb648e5d3, 0x3c00000},
+{0x3c00000, 0xb5c8e5d3, 0x317285d3, 0xb5c86c90, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x3c9623b1, 0x3c96208d, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x51fd2c7c, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0xb5c8e5d3, 0x7b906a6c, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x0, 0x317285d3, 0x3c00000},
+{0x3c00000, 0x317285d3, 0x1, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x76, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x2b94, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x636d24, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x7fffff, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x800000, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x800002, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x1398437, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xba98d27, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xba98d7a, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x317285d3, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x317285d3, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x317285d3, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x317285d3, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x317285d3, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x317285d3, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x317285d3, 0x80000000, 0x317285d3, 0x3c00000},
+{0x3c00000, 0x317285d3, 0x80000001, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x80000076, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x80002b94, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x80636d24, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x807fffff, 0x317285d3, 0x3c00080},
+{0x3c00000, 0x317285d3, 0x80800000, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x80800002, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x81398437, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x8ba98d27, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x8ba98d7a, 0x317285d2, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x317285d3, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x317285d3, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x317285d3, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x317285d3, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x317285d3, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x317285d3, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x317285d3, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x9503366, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xbf5a97c9, 0xbf5a97c8, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xaab4d7d8, 0x3172802c, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x966320b, 0x317285d3, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xb26bddee, 0xb22f3c79, 0x3c00010},
+{0x3c00000, 0x317285d3, 0xb5c8e5d3, 0xb5c86c90, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x317285d3, 0x31f285d3, 0x3c00000},
+{0x3c00000, 0x317285d3, 0x3c9623b1, 0x3c9623b2, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x317285d3, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x0, 0x3c9623b1, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0x1, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x76, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x2b94, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x636d24, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x7fffff, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x800000, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x800002, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x1398437, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xba98d27, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xba98d7a, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x3c9623b1, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x3c9623b1, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x3c9623b1, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0x80000000, 0x3c9623b1, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0x80000001, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x80000076, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x80002b94, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x80636d24, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x807fffff, 0x3c9623b1, 0x3c00080},
+{0x3c00000, 0x3c9623b1, 0x80800000, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x80800002, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x81398437, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x8ba98d27, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x8ba98d7a, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x3c9623b1, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x3c9623b1, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x3c9623b1, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0x4f3495cb, 0x4f3495cb, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x9503366, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xbf5a97c9, 0xbf55e6ab, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xaab4d7d8, 0x3c9623b0, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x966320b, 0x3c9623b1, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xb26bddee, 0x3c9623a9, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0xb5c8e5d3, 0x3c96208d, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x317285d3, 0x3c9623b2, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x3c9623b1, 0x3d1623b1, 0x3c00000},
+{0x3c00000, 0x3c9623b1, 0x51fd2c7c, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x3c9623b1, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x0, 0x51fd2c7c, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0x1, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x76, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x2b94, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x636d24, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x7fffff, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x800000, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x800002, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x1398437, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xba98d27, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xba98d7a, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x751f853a, 0x751f853a, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x7f7ffff0, 0x7f7ffff0, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x7f7fffff, 0x7f7fffff, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x51fd2c7c, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x51fd2c7c, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x51fd2c7c, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0x80000000, 0x51fd2c7c, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0x80000001, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x80000076, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x80002b94, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x80636d24, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x807fffff, 0x51fd2c7c, 0x3c00080},
+{0x3c00000, 0x51fd2c7c, 0x80800000, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x80800002, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x81398437, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x8ba98d27, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x8ba98d7a, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xf51f853a, 0xf51f8539, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xff7ffff0, 0xff7fffef, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xff7fffff, 0xff7ffffe, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x51fd2c7c, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x51fd2c7c, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x51fd2c7c, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0x4f3495cb, 0x52016895, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xe73a5134, 0xe73a5133, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x7c994e9e, 0x7c994e9e, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x6164bd6c, 0x6164bd6c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x9503366, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xbf5a97c9, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xe6ff1a14, 0xe6ff1a13, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x77f31e2f, 0x77f31e2f, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xaab4d7d8, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x966320b, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xb26bddee, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0xb5c8e5d3, 0x51fd2c7b, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x317285d3, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x3c9623b1, 0x51fd2c7c, 0x3c00010},
+{0x3c00000, 0x51fd2c7c, 0x51fd2c7c, 0x527d2c7c, 0x3c00000},
+{0x3c00000, 0x51fd2c7c, 0x7b906a6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x0, 0x7b906a6c, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0x1, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x76, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x2b94, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x636d24, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x7fffff, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x800000, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x800002, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x1398437, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xba98d27, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xba98d7a, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x751f853a, 0x7b906f68, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x7f7ffff0, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7b906a6c, 0x7f7fffff, 0x7f7fffff, 0x3c00014},
+{0x3c00000, 0x7b906a6c, 0x7f800000, 0x7f800000, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0x7f800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7b906a6c, 0x7f984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7b906a6c, 0x7fbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7b906a6c, 0x7fc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0x7fd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0x7fffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0x80000000, 0x7b906a6c, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0x80000001, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x80000076, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x80002b94, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x80636d24, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x807fffff, 0x7b906a6c, 0x3c00080},
+{0x3c00000, 0x7b906a6c, 0x80800000, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x80800002, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x81398437, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x8ba98d27, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x8ba98d7a, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xf51f853a, 0x7b90656f, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xff7ffff0, 0xff7edf1b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xff7fffff, 0xff7edf2a, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xff800000, 0xff800000, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0xff800001, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7b906a6c, 0xff984a37, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7b906a6c, 0xffbfffff, 0x7fc00000, 0x3c00001},
+{0x3c00000, 0x7b906a6c, 0xffc00000, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0xffd9ba98, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0xffffffff, 0x7fc00000, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0x4f3495cb, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xe73a5134, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x7c994e9e, 0x7cbd6939, 0x3c00000},
+{0x3c00000, 0x7b906a6c, 0x6164bd6c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x9503366, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xbf5a97c9, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xe6ff1a14, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x77f31e2f, 0x7b915d8a, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xaab4d7d8, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x966320b, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xb26bddee, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0xb5c8e5d3, 0x7b906a6b, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x317285d3, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x3c9623b1, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x51fd2c7c, 0x7b906a6c, 0x3c00010},
+{0x3c00000, 0x7b906a6c, 0x7b906a6c, 0x7c106a6c, 0x3c00000},
+{0x3800000, 0x0, 0x0, 0x0, 0x3800000},
+{0x3800000, 0x0, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x800000, 0x800000, 0x3800000},
+{0x3800000, 0x0, 0x800002, 0x800002, 0x3800000},
+{0x3800000, 0x0, 0x1398437, 0x1398437, 0x3800000},
+{0x3800000, 0x0, 0xba98d27, 0xba98d27, 0x3800000},
+{0x3800000, 0x0, 0xba98d7a, 0xba98d7a, 0x3800000},
+{0x3800000, 0x0, 0x751f853a, 0x751f853a, 0x3800000},
+{0x3800000, 0x0, 0x7f7ffff0, 0x7f7ffff0, 0x3800000},
+{0x3800000, 0x0, 0x7f7fffff, 0x7f7fffff, 0x3800000},
+{0x3800000, 0x0, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x0, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x0, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x0, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x0, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x0, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x0, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x0, 0x80000000, 0x80000000, 0x3800000},
+{0x3800000, 0x0, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x0, 0x80800000, 0x80800000, 0x3800000},
+{0x3800000, 0x0, 0x80800002, 0x80800002, 0x3800000},
+{0x3800000, 0x0, 0x81398437, 0x81398437, 0x3800000},
+{0x3800000, 0x0, 0x8ba98d27, 0x8ba98d27, 0x3800000},
+{0x3800000, 0x0, 0x8ba98d7a, 0x8ba98d7a, 0x3800000},
+{0x3800000, 0x0, 0xf51f853a, 0xf51f853a, 0x3800000},
+{0x3800000, 0x0, 0xff7ffff0, 0xff7ffff0, 0x3800000},
+{0x3800000, 0x0, 0xff7fffff, 0xff7fffff, 0x3800000},
+{0x3800000, 0x0, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x0, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x0, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x0, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x0, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x0, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x0, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x0, 0x4f3495cb, 0x4f3495cb, 0x3800000},
+{0x3800000, 0x0, 0xe73a5134, 0xe73a5134, 0x3800000},
+{0x3800000, 0x0, 0x7c994e9e, 0x7c994e9e, 0x3800000},
+{0x3800000, 0x0, 0x6164bd6c, 0x6164bd6c, 0x3800000},
+{0x3800000, 0x0, 0x9503366, 0x9503366, 0x3800000},
+{0x3800000, 0x0, 0xbf5a97c9, 0xbf5a97c9, 0x3800000},
+{0x3800000, 0x0, 0xe6ff1a14, 0xe6ff1a14, 0x3800000},
+{0x3800000, 0x0, 0x77f31e2f, 0x77f31e2f, 0x3800000},
+{0x3800000, 0x0, 0xaab4d7d8, 0xaab4d7d8, 0x3800000},
+{0x3800000, 0x0, 0x966320b, 0x966320b, 0x3800000},
+{0x3800000, 0x0, 0xb26bddee, 0xb26bddee, 0x3800000},
+{0x3800000, 0x0, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800000},
+{0x3800000, 0x0, 0x317285d3, 0x317285d3, 0x3800000},
+{0x3800000, 0x0, 0x3c9623b1, 0x3c9623b1, 0x3800000},
+{0x3800000, 0x0, 0x51fd2c7c, 0x51fd2c7c, 0x3800000},
+{0x3800000, 0x0, 0x7b906a6c, 0x7b906a6c, 0x3800000},
+{0x3800000, 0x1, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x1, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x1, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x1, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x1, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x1, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x1, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x1, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x1, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x1, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x1, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x1, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x1, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x1, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x1, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x1, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x1, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x1, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x1, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x1, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x1, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x1, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x1, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x1, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x1, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x1, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x1, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x1, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x1, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x1, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x1, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x1, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x1, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x1, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x1, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x1, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x1, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x1, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x1, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x1, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x1, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x1, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x1, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x1, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x1, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x1, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x1, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x1, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x76, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x76, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x76, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x76, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x76, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x76, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x76, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x76, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x76, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x76, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x76, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x76, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x76, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x76, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x76, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x76, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x76, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x76, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x76, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x76, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x76, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x76, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x76, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x76, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x76, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x76, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x76, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x76, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x76, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x76, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x76, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x76, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x76, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x76, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x76, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x76, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x76, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x76, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x76, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x76, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x76, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x76, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x76, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x76, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x76, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x76, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x76, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x76, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x2b94, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x2b94, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x2b94, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x2b94, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x2b94, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x2b94, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x2b94, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x2b94, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x2b94, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x2b94, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x2b94, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x2b94, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x2b94, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x2b94, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x2b94, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x2b94, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x2b94, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x2b94, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x2b94, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x2b94, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x2b94, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x2b94, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x2b94, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x2b94, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x2b94, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x2b94, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x2b94, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x2b94, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x2b94, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x2b94, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x2b94, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x2b94, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x2b94, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x2b94, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x2b94, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x2b94, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x2b94, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x2b94, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x2b94, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x2b94, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x2b94, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x2b94, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x2b94, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x2b94, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x2b94, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x2b94, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x2b94, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x2b94, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x636d24, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x636d24, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x636d24, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x636d24, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x636d24, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x636d24, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x636d24, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x636d24, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x636d24, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x636d24, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x636d24, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x636d24, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x636d24, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x636d24, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x636d24, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x636d24, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x636d24, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x636d24, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x636d24, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x636d24, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x636d24, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x636d24, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x636d24, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x636d24, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x636d24, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x636d24, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x636d24, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x636d24, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x636d24, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x636d24, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x636d24, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x636d24, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x636d24, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x636d24, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x636d24, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x636d24, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x636d24, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x636d24, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x636d24, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x636d24, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x636d24, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x636d24, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x636d24, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x636d24, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x636d24, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x636d24, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x636d24, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x636d24, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7fffff, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x7fffff, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x7fffff, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x7fffff, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x7fffff, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x7fffff, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x7fffff, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7fffff, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7fffff, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x7fffff, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fffff, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fffff, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fffff, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffff, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffff, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffff, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x7fffff, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x7fffff, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x7fffff, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x7fffff, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x7fffff, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x7fffff, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x7fffff, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x7fffff, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x7fffff, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x7fffff, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x7fffff, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fffff, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fffff, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fffff, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffff, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffff, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffff, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x7fffff, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x7fffff, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7fffff, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x7fffff, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x7fffff, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x7fffff, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x7fffff, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x7fffff, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x7fffff, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x7fffff, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x7fffff, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x7fffff, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x7fffff, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x7fffff, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x7fffff, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x800000, 0x0, 0x800000, 0x3800000},
+{0x3800000, 0x800000, 0x1, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x76, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x2b94, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x636d24, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x7fffff, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x800000, 0x1000000, 0x3800000},
+{0x3800000, 0x800000, 0x800002, 0x1000001, 0x3800000},
+{0x3800000, 0x800000, 0x1398437, 0x1798437, 0x3800000},
+{0x3800000, 0x800000, 0xba98d27, 0xba98d29, 0x3800000},
+{0x3800000, 0x800000, 0xba98d7a, 0xba98d7c, 0x3800000},
+{0x3800000, 0x800000, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x800000, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x800000, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x800000, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x800000, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800000, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800000, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800000, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800000, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800000, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800000, 0x80000000, 0x800000, 0x3800000},
+{0x3800000, 0x800000, 0x80000001, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x80000076, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x80002b94, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x80636d24, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x807fffff, 0x800000, 0x3800080},
+{0x3800000, 0x800000, 0x80800000, 0x80000000, 0x3800000},
+{0x3800000, 0x800000, 0x80800002, 0x0, 0x3800008},
+{0x3800000, 0x800000, 0x81398437, 0x80f3086e, 0x3800000},
+{0x3800000, 0x800000, 0x8ba98d27, 0x8ba98d25, 0x3800000},
+{0x3800000, 0x800000, 0x8ba98d7a, 0x8ba98d78, 0x3800000},
+{0x3800000, 0x800000, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x800000, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x800000, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x800000, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x800000, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800000, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800000, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800000, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800000, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800000, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800000, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x800000, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x800000, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x800000, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x800000, 0x9503366, 0x95033a6, 0x3800000},
+{0x3800000, 0x800000, 0xbf5a97c9, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0x800000, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x800000, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x800000, 0xaab4d7d8, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0x800000, 0x966320b, 0x966324b, 0x3800000},
+{0x3800000, 0x800000, 0xb26bddee, 0xb26bddee, 0x3800010},
+{0x3800000, 0x800000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0x800000, 0x317285d3, 0x317285d3, 0x3800010},
+{0x3800000, 0x800000, 0x3c9623b1, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x800000, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x800000, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x800002, 0x0, 0x800002, 0x3800000},
+{0x3800000, 0x800002, 0x1, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x76, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x2b94, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x636d24, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x7fffff, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x800000, 0x1000001, 0x3800000},
+{0x3800000, 0x800002, 0x800002, 0x1000002, 0x3800000},
+{0x3800000, 0x800002, 0x1398437, 0x1798438, 0x3800000},
+{0x3800000, 0x800002, 0xba98d27, 0xba98d29, 0x3800010},
+{0x3800000, 0x800002, 0xba98d7a, 0xba98d7c, 0x3800010},
+{0x3800000, 0x800002, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x800002, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x800002, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x800002, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x800002, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800002, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800002, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800002, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800002, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800002, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800002, 0x80000000, 0x800002, 0x3800000},
+{0x3800000, 0x800002, 0x80000001, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x80000076, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x80002b94, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x80636d24, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x807fffff, 0x800002, 0x3800080},
+{0x3800000, 0x800002, 0x80800000, 0x0, 0x3800008},
+{0x3800000, 0x800002, 0x80800002, 0x80000000, 0x3800000},
+{0x3800000, 0x800002, 0x81398437, 0x80f3086c, 0x3800000},
+{0x3800000, 0x800002, 0x8ba98d27, 0x8ba98d25, 0x3800010},
+{0x3800000, 0x800002, 0x8ba98d7a, 0x8ba98d78, 0x3800010},
+{0x3800000, 0x800002, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x800002, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x800002, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x800002, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x800002, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800002, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800002, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x800002, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800002, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800002, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x800002, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x800002, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x800002, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x800002, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x800002, 0x9503366, 0x95033a6, 0x3800010},
+{0x3800000, 0x800002, 0xbf5a97c9, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0x800002, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x800002, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x800002, 0xaab4d7d8, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0x800002, 0x966320b, 0x966324b, 0x3800010},
+{0x3800000, 0x800002, 0xb26bddee, 0xb26bddee, 0x3800010},
+{0x3800000, 0x800002, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0x800002, 0x317285d3, 0x317285d3, 0x3800010},
+{0x3800000, 0x800002, 0x3c9623b1, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x800002, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x800002, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x1398437, 0x0, 0x1398437, 0x3800000},
+{0x3800000, 0x1398437, 0x1, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x76, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x2b94, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x636d24, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x7fffff, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x800000, 0x1798437, 0x3800000},
+{0x3800000, 0x1398437, 0x800002, 0x1798438, 0x3800000},
+{0x3800000, 0x1398437, 0x1398437, 0x1b98437, 0x3800000},
+{0x3800000, 0x1398437, 0xba98d27, 0xba98d2c, 0x3800010},
+{0x3800000, 0x1398437, 0xba98d7a, 0xba98d7f, 0x3800010},
+{0x3800000, 0x1398437, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x1398437, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x1398437, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x1398437, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x1398437, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x1398437, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x1398437, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x1398437, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x1398437, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x1398437, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x1398437, 0x80000000, 0x1398437, 0x3800000},
+{0x3800000, 0x1398437, 0x80000001, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x80000076, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x80002b94, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x80636d24, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x807fffff, 0x1398437, 0x3800080},
+{0x3800000, 0x1398437, 0x80800000, 0xf3086e, 0x3800000},
+{0x3800000, 0x1398437, 0x80800002, 0xf3086c, 0x3800000},
+{0x3800000, 0x1398437, 0x81398437, 0x80000000, 0x3800000},
+{0x3800000, 0x1398437, 0x8ba98d27, 0x8ba98d22, 0x3800010},
+{0x3800000, 0x1398437, 0x8ba98d7a, 0x8ba98d75, 0x3800010},
+{0x3800000, 0x1398437, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x1398437, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x1398437, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x1398437, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x1398437, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x1398437, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x1398437, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x1398437, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x1398437, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x1398437, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x1398437, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x1398437, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x1398437, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x1398437, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x1398437, 0x9503366, 0x950341f, 0x3800010},
+{0x3800000, 0x1398437, 0xbf5a97c9, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0x1398437, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x1398437, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x1398437, 0xaab4d7d8, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0x1398437, 0x966320b, 0x96632c4, 0x3800010},
+{0x3800000, 0x1398437, 0xb26bddee, 0xb26bddee, 0x3800010},
+{0x3800000, 0x1398437, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0x1398437, 0x317285d3, 0x317285d3, 0x3800010},
+{0x3800000, 0x1398437, 0x3c9623b1, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x1398437, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x1398437, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0xba98d27, 0x0, 0xba98d27, 0x3800000},
+{0x3800000, 0xba98d27, 0x1, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x76, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x2b94, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x636d24, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x7fffff, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x800000, 0xba98d29, 0x3800000},
+{0x3800000, 0xba98d27, 0x800002, 0xba98d29, 0x3800010},
+{0x3800000, 0xba98d27, 0x1398437, 0xba98d2c, 0x3800010},
+{0x3800000, 0xba98d27, 0xba98d27, 0xc298d27, 0x3800000},
+{0x3800000, 0xba98d27, 0xba98d7a, 0xc298d50, 0x3800010},
+{0x3800000, 0xba98d27, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0xba98d27, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0xba98d27, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0xba98d27, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xba98d27, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d27, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d27, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d27, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d27, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d27, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d27, 0x80000000, 0xba98d27, 0x3800000},
+{0x3800000, 0xba98d27, 0x80000001, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x80000076, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x80002b94, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x80636d24, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x807fffff, 0xba98d27, 0x3800080},
+{0x3800000, 0xba98d27, 0x80800000, 0xba98d25, 0x3800000},
+{0x3800000, 0xba98d27, 0x80800002, 0xba98d24, 0x3800010},
+{0x3800000, 0xba98d27, 0x81398437, 0xba98d21, 0x3800010},
+{0x3800000, 0xba98d27, 0x8ba98d27, 0x80000000, 0x3800000},
+{0x3800000, 0xba98d27, 0x8ba98d7a, 0x83260000, 0x3800000},
+{0x3800000, 0xba98d27, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0xba98d27, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xba98d27, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0xba98d27, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xba98d27, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d27, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d27, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d27, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d27, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d27, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d27, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0xba98d27, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0xba98d27, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0xba98d27, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0xba98d27, 0x9503366, 0xbb00ec2, 0x3800010},
+{0x3800000, 0xba98d27, 0xbf5a97c9, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xba98d27, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xba98d27, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0xba98d27, 0xaab4d7d8, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xba98d27, 0x966320b, 0xbb0beb7, 0x3800010},
+{0x3800000, 0xba98d27, 0xb26bddee, 0xb26bddee, 0x3800010},
+{0x3800000, 0xba98d27, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xba98d27, 0x317285d3, 0x317285d3, 0x3800010},
+{0x3800000, 0xba98d27, 0x3c9623b1, 0x3c9623b1, 0x3800010},
+{0x3800000, 0xba98d27, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0xba98d27, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0xba98d7a, 0x0, 0xba98d7a, 0x3800000},
+{0x3800000, 0xba98d7a, 0x1, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x76, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x2b94, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x636d24, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x7fffff, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x800000, 0xba98d7c, 0x3800000},
+{0x3800000, 0xba98d7a, 0x800002, 0xba98d7c, 0x3800010},
+{0x3800000, 0xba98d7a, 0x1398437, 0xba98d7f, 0x3800010},
+{0x3800000, 0xba98d7a, 0xba98d27, 0xc298d50, 0x3800010},
+{0x3800000, 0xba98d7a, 0xba98d7a, 0xc298d7a, 0x3800000},
+{0x3800000, 0xba98d7a, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0xba98d7a, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0xba98d7a, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0xba98d7a, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xba98d7a, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d7a, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d7a, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d7a, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d7a, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d7a, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d7a, 0x80000000, 0xba98d7a, 0x3800000},
+{0x3800000, 0xba98d7a, 0x80000001, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x80000076, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x80002b94, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x80636d24, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x807fffff, 0xba98d7a, 0x3800080},
+{0x3800000, 0xba98d7a, 0x80800000, 0xba98d78, 0x3800000},
+{0x3800000, 0xba98d7a, 0x80800002, 0xba98d77, 0x3800010},
+{0x3800000, 0xba98d7a, 0x81398437, 0xba98d74, 0x3800010},
+{0x3800000, 0xba98d7a, 0x8ba98d27, 0x3260000, 0x3800000},
+{0x3800000, 0xba98d7a, 0x8ba98d7a, 0x80000000, 0x3800000},
+{0x3800000, 0xba98d7a, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0xba98d7a, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xba98d7a, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0xba98d7a, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xba98d7a, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d7a, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d7a, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xba98d7a, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d7a, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d7a, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xba98d7a, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0xba98d7a, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0xba98d7a, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0xba98d7a, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0xba98d7a, 0x9503366, 0xbb00f15, 0x3800010},
+{0x3800000, 0xba98d7a, 0xbf5a97c9, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xba98d7a, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xba98d7a, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0xba98d7a, 0xaab4d7d8, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xba98d7a, 0x966320b, 0xbb0bf0a, 0x3800010},
+{0x3800000, 0xba98d7a, 0xb26bddee, 0xb26bddee, 0x3800010},
+{0x3800000, 0xba98d7a, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xba98d7a, 0x317285d3, 0x317285d3, 0x3800010},
+{0x3800000, 0xba98d7a, 0x3c9623b1, 0x3c9623b1, 0x3800010},
+{0x3800000, 0xba98d7a, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0xba98d7a, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x751f853a, 0x0, 0x751f853a, 0x3800000},
+{0x3800000, 0x751f853a, 0x1, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x76, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x2b94, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x636d24, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x7fffff, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x800000, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0x800002, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0x1398437, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0xba98d27, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0xba98d7a, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0x751f853a, 0x759f853a, 0x3800000},
+{0x3800000, 0x751f853a, 0x7f7ffff0, 0x7f7ffff9, 0x3800010},
+{0x3800000, 0x751f853a, 0x7f7fffff, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x751f853a, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x751f853a, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x751f853a, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x751f853a, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x751f853a, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x751f853a, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x751f853a, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x751f853a, 0x80000000, 0x751f853a, 0x3800000},
+{0x3800000, 0x751f853a, 0x80000001, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x80000076, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x80002b94, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x80636d24, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x807fffff, 0x751f853a, 0x3800080},
+{0x3800000, 0x751f853a, 0x80800000, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0x80800002, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0x81398437, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0x8ba98d27, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0x8ba98d7a, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0xf51f853a, 0x80000000, 0x3800000},
+{0x3800000, 0x751f853a, 0xff7ffff0, 0xff7fffe7, 0x3800010},
+{0x3800000, 0x751f853a, 0xff7fffff, 0xff7ffff6, 0x3800010},
+{0x3800000, 0x751f853a, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x751f853a, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x751f853a, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x751f853a, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x751f853a, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x751f853a, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x751f853a, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x751f853a, 0x4f3495cb, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0xe73a5134, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0x7c994e9e, 0x7c994fdd, 0x3800010},
+{0x3800000, 0x751f853a, 0x6164bd6c, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0x9503366, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0xbf5a97c9, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0xe6ff1a14, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0x77f31e2f, 0x77f81a58, 0x3800010},
+{0x3800000, 0x751f853a, 0xaab4d7d8, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0x966320b, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0xb26bddee, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0xb5c8e5d3, 0x751f8539, 0x3800010},
+{0x3800000, 0x751f853a, 0x317285d3, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0x3c9623b1, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0x51fd2c7c, 0x751f853a, 0x3800010},
+{0x3800000, 0x751f853a, 0x7b906a6c, 0x7b906f68, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x0, 0x7f7ffff0, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0x1, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x76, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x2b94, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x636d24, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x7fffff, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x800000, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x800002, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x1398437, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xba98d27, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xba98d7a, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x751f853a, 0x7f7ffff9, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x7f7ffff0, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7ffff0, 0x7f7fffff, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7ffff0, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7ffff0, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7ffff0, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7ffff0, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0x80000000, 0x7f7ffff0, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0x80000001, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x80000076, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x80002b94, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x80636d24, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x807fffff, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x7f7ffff0, 0x80800000, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x80800002, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x81398437, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x8ba98d27, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x8ba98d7a, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xf51f853a, 0x7f7fffe6, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xff7ffff0, 0x80000000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0xff7fffff, 0xf5700000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7ffff0, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7ffff0, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7ffff0, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7ffff0, 0x4f3495cb, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xe73a5134, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x7c994e9e, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7ffff0, 0x6164bd6c, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x9503366, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xbf5a97c9, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xe6ff1a14, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x77f31e2f, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7ffff0, 0xaab4d7d8, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x966320b, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xb26bddee, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0xb5c8e5d3, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x317285d3, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x3c9623b1, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x51fd2c7c, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x7f7ffff0, 0x7b906a6c, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7fffff, 0x0, 0x7f7fffff, 0x3800000},
+{0x3800000, 0x7f7fffff, 0x1, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x76, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x2b94, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x636d24, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x800000, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x800002, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x1398437, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xba98d27, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xba98d7a, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x751f853a, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7fffff, 0x7f7ffff0, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7fffff, 0x7f7fffff, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7fffff, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7fffff, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7fffff, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7fffff, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0x80000000, 0x7f7fffff, 0x3800000},
+{0x3800000, 0x7f7fffff, 0x80000001, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x80000076, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x80002b94, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x80636d24, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x807fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x7f7fffff, 0x80800000, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x80800002, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x81398437, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x8ba98d27, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x8ba98d7a, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xf51f853a, 0x7f7ffff5, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xff7ffff0, 0x75700000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0xff7fffff, 0x80000000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7fffff, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7fffff, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f7fffff, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f7fffff, 0x4f3495cb, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xe73a5134, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x7c994e9e, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7fffff, 0x6164bd6c, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x9503366, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xbf5a97c9, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xe6ff1a14, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x77f31e2f, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f7fffff, 0xaab4d7d8, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x966320b, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xb26bddee, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0xb5c8e5d3, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x317285d3, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x3c9623b1, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x51fd2c7c, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x7f7fffff, 0x7b906a6c, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7f800000, 0x0, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x1, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x76, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x2b94, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x636d24, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x7fffff, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x800002, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x1398437, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xba98d27, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xba98d7a, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x751f853a, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x7f7ffff0, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x7f7fffff, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800000, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800000, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800000, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f800000, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f800000, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f800000, 0x80000000, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x80000001, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x80000076, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x80002b94, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x80636d24, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x807fffff, 0x7f800000, 0x3800080},
+{0x3800000, 0x7f800000, 0x80800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x80800002, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x81398437, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x8ba98d27, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x8ba98d7a, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xf51f853a, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xff7ffff0, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xff7fffff, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xff800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800000, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800000, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800000, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800000, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f800000, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f800000, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7f800000, 0x4f3495cb, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xe73a5134, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x7c994e9e, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x6164bd6c, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x9503366, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xbf5a97c9, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xe6ff1a14, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x77f31e2f, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xaab4d7d8, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x966320b, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xb26bddee, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0xb5c8e5d3, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x317285d3, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x3c9623b1, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x51fd2c7c, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800000, 0x7b906a6c, 0x7f800000, 0x3800000},
+{0x3800000, 0x7f800001, 0x0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x1, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x76, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x2b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x7fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x1398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x751f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7f7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7f7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7f800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7fc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7fd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7fffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x80000000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x80000001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x80000076, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x80002b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x80636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x807fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f800001, 0x80800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x80800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x81398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x8ba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x8ba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xf51f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xff7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xff7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xff800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xffc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xffd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xffffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x4f3495cb, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xe73a5134, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7c994e9e, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x6164bd6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x9503366, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xbf5a97c9, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xe6ff1a14, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x77f31e2f, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xaab4d7d8, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x966320b, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xb26bddee, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0xb5c8e5d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x317285d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x3c9623b1, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x51fd2c7c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f800001, 0x7b906a6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x1, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x76, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x2b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x7fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x1398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x751f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7f7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7f7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7f800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7fc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7fd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7fffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x80000000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x80000001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x80000076, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x80002b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x80636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x807fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7f984a37, 0x80800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x80800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x81398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x8ba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x8ba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xf51f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xff7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xff7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xff800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xffc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xffd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xffffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x4f3495cb, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xe73a5134, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7c994e9e, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x6164bd6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x9503366, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xbf5a97c9, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xe6ff1a14, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x77f31e2f, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xaab4d7d8, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x966320b, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xb26bddee, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0xb5c8e5d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x317285d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x3c9623b1, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x51fd2c7c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7f984a37, 0x7b906a6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x1, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x76, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x2b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x7fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x1398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x751f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7f7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7f7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7f800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7fc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7fd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7fffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x80000000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x80000001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x80000076, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x80002b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x80636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x807fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x7fbfffff, 0x80800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x80800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x81398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x8ba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x8ba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xf51f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xff7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xff7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xff800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xffc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xffd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xffffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x4f3495cb, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xe73a5134, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7c994e9e, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x6164bd6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x9503366, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xbf5a97c9, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xe6ff1a14, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x77f31e2f, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xaab4d7d8, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x966320b, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xb26bddee, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0xb5c8e5d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x317285d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x3c9623b1, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x51fd2c7c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fbfffff, 0x7b906a6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fc00000, 0x0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x1, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x76, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x2b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x7fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x1398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x751f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x7f7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x7f7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x7f800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fc00000, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fc00000, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fc00000, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x80000000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x80000001, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x80000076, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x80002b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x80636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x807fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fc00000, 0x80800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x80800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x81398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x8ba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x8ba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xf51f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xff7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xff7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xff800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fc00000, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fc00000, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fc00000, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x4f3495cb, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xe73a5134, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x7c994e9e, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x6164bd6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x9503366, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xbf5a97c9, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xe6ff1a14, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x77f31e2f, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xaab4d7d8, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x966320b, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xb26bddee, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0xb5c8e5d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x317285d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x3c9623b1, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x51fd2c7c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fc00000, 0x7b906a6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x1, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x76, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x2b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x7fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x1398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x751f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x7f7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x7f7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x7f800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fd9ba98, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fd9ba98, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fd9ba98, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x80000000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x80000001, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x80000076, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x80002b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x80636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x807fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fd9ba98, 0x80800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x80800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x81398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x8ba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x8ba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xf51f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xff7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xff7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xff800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fd9ba98, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fd9ba98, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fd9ba98, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x4f3495cb, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xe73a5134, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x7c994e9e, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x6164bd6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x9503366, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xbf5a97c9, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xe6ff1a14, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x77f31e2f, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xaab4d7d8, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x966320b, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xb26bddee, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0xb5c8e5d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x317285d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x3c9623b1, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x51fd2c7c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fd9ba98, 0x7b906a6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x1, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x76, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x2b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x7fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x1398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x751f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x7f7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x7f7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x7f800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fffffff, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fffffff, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fffffff, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x80000000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x80000001, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x80000076, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x80002b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x80636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x807fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x7fffffff, 0x80800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x80800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x81398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x8ba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x8ba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xf51f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xff7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xff7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xff800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fffffff, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fffffff, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7fffffff, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x4f3495cb, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xe73a5134, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x7c994e9e, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x6164bd6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x9503366, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xbf5a97c9, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xe6ff1a14, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x77f31e2f, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xaab4d7d8, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x966320b, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xb26bddee, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0xb5c8e5d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x317285d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x3c9623b1, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x51fd2c7c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7fffffff, 0x7b906a6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80000000, 0x0, 0x80000000, 0x3800000},
+{0x3800000, 0x80000000, 0x1, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x76, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x2b94, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x636d24, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x7fffff, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x800000, 0x800000, 0x3800000},
+{0x3800000, 0x80000000, 0x800002, 0x800002, 0x3800000},
+{0x3800000, 0x80000000, 0x1398437, 0x1398437, 0x3800000},
+{0x3800000, 0x80000000, 0xba98d27, 0xba98d27, 0x3800000},
+{0x3800000, 0x80000000, 0xba98d7a, 0xba98d7a, 0x3800000},
+{0x3800000, 0x80000000, 0x751f853a, 0x751f853a, 0x3800000},
+{0x3800000, 0x80000000, 0x7f7ffff0, 0x7f7ffff0, 0x3800000},
+{0x3800000, 0x80000000, 0x7f7fffff, 0x7f7fffff, 0x3800000},
+{0x3800000, 0x80000000, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x80000000, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80000000, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80000000, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80000000, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80000000, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80000000, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80000000, 0x80000000, 0x80000000, 0x3800000},
+{0x3800000, 0x80000000, 0x80000001, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x80000076, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x80002b94, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x80636d24, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x807fffff, 0x80000000, 0x3800080},
+{0x3800000, 0x80000000, 0x80800000, 0x80800000, 0x3800000},
+{0x3800000, 0x80000000, 0x80800002, 0x80800002, 0x3800000},
+{0x3800000, 0x80000000, 0x81398437, 0x81398437, 0x3800000},
+{0x3800000, 0x80000000, 0x8ba98d27, 0x8ba98d27, 0x3800000},
+{0x3800000, 0x80000000, 0x8ba98d7a, 0x8ba98d7a, 0x3800000},
+{0x3800000, 0x80000000, 0xf51f853a, 0xf51f853a, 0x3800000},
+{0x3800000, 0x80000000, 0xff7ffff0, 0xff7ffff0, 0x3800000},
+{0x3800000, 0x80000000, 0xff7fffff, 0xff7fffff, 0x3800000},
+{0x3800000, 0x80000000, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x80000000, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80000000, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80000000, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80000000, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80000000, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80000000, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80000000, 0x4f3495cb, 0x4f3495cb, 0x3800000},
+{0x3800000, 0x80000000, 0xe73a5134, 0xe73a5134, 0x3800000},
+{0x3800000, 0x80000000, 0x7c994e9e, 0x7c994e9e, 0x3800000},
+{0x3800000, 0x80000000, 0x6164bd6c, 0x6164bd6c, 0x3800000},
+{0x3800000, 0x80000000, 0x9503366, 0x9503366, 0x3800000},
+{0x3800000, 0x80000000, 0xbf5a97c9, 0xbf5a97c9, 0x3800000},
+{0x3800000, 0x80000000, 0xe6ff1a14, 0xe6ff1a14, 0x3800000},
+{0x3800000, 0x80000000, 0x77f31e2f, 0x77f31e2f, 0x3800000},
+{0x3800000, 0x80000000, 0xaab4d7d8, 0xaab4d7d8, 0x3800000},
+{0x3800000, 0x80000000, 0x966320b, 0x966320b, 0x3800000},
+{0x3800000, 0x80000000, 0xb26bddee, 0xb26bddee, 0x3800000},
+{0x3800000, 0x80000000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800000},
+{0x3800000, 0x80000000, 0x317285d3, 0x317285d3, 0x3800000},
+{0x3800000, 0x80000000, 0x3c9623b1, 0x3c9623b1, 0x3800000},
+{0x3800000, 0x80000000, 0x51fd2c7c, 0x51fd2c7c, 0x3800000},
+{0x3800000, 0x80000000, 0x7b906a6c, 0x7b906a6c, 0x3800000},
+{0x3800000, 0x80000001, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x80000001, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x80000001, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x80000001, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x80000001, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x80000001, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x80000001, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x80000001, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x80000001, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x80000001, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000001, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000001, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000001, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000001, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000001, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000001, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x80000001, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x80000001, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x80000001, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x80000001, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x80000001, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x80000001, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x80000001, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x80000001, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x80000001, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x80000001, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x80000001, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000001, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000001, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000001, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000001, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000001, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000001, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x80000001, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x80000001, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x80000001, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x80000001, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x80000001, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x80000001, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x80000001, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x80000001, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x80000001, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x80000001, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x80000001, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x80000001, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x80000001, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x80000001, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x80000001, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x80000076, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x80000076, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x80000076, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x80000076, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x80000076, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x80000076, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x80000076, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x80000076, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x80000076, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x80000076, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000076, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000076, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000076, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000076, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000076, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000076, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x80000076, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x80000076, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x80000076, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x80000076, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x80000076, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x80000076, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x80000076, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x80000076, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x80000076, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x80000076, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x80000076, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000076, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000076, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80000076, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000076, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000076, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80000076, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x80000076, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x80000076, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x80000076, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x80000076, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x80000076, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x80000076, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x80000076, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x80000076, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x80000076, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x80000076, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x80000076, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x80000076, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x80000076, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x80000076, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x80000076, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x80002b94, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x80002b94, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x80002b94, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x80002b94, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x80002b94, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x80002b94, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x80002b94, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x80002b94, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x80002b94, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x80002b94, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80002b94, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80002b94, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80002b94, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80002b94, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80002b94, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80002b94, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x80002b94, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x80002b94, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x80002b94, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x80002b94, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x80002b94, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x80002b94, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x80002b94, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x80002b94, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x80002b94, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x80002b94, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x80002b94, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80002b94, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80002b94, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80002b94, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80002b94, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80002b94, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80002b94, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x80002b94, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x80002b94, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x80002b94, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x80002b94, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x80002b94, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x80002b94, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x80002b94, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x80002b94, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x80002b94, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x80002b94, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x80002b94, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x80002b94, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x80002b94, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x80002b94, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x80002b94, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x80636d24, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x80636d24, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x80636d24, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x80636d24, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x80636d24, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x80636d24, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x80636d24, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x80636d24, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x80636d24, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x80636d24, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80636d24, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80636d24, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80636d24, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80636d24, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80636d24, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80636d24, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x80636d24, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x80636d24, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x80636d24, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x80636d24, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x80636d24, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x80636d24, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x80636d24, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x80636d24, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x80636d24, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x80636d24, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x80636d24, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80636d24, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80636d24, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x80636d24, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80636d24, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80636d24, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x80636d24, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x80636d24, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x80636d24, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x80636d24, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x80636d24, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x80636d24, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x80636d24, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x80636d24, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x80636d24, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x80636d24, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x80636d24, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x80636d24, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x80636d24, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x80636d24, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x80636d24, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x80636d24, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x807fffff, 0x0, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x1, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x76, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x2b94, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x636d24, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x7fffff, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x800000, 0x800000, 0x3800080},
+{0x3800000, 0x807fffff, 0x800002, 0x800002, 0x3800080},
+{0x3800000, 0x807fffff, 0x1398437, 0x1398437, 0x3800080},
+{0x3800000, 0x807fffff, 0xba98d27, 0xba98d27, 0x3800080},
+{0x3800000, 0x807fffff, 0xba98d7a, 0xba98d7a, 0x3800080},
+{0x3800000, 0x807fffff, 0x751f853a, 0x751f853a, 0x3800080},
+{0x3800000, 0x807fffff, 0x7f7ffff0, 0x7f7ffff0, 0x3800080},
+{0x3800000, 0x807fffff, 0x7f7fffff, 0x7f7fffff, 0x3800080},
+{0x3800000, 0x807fffff, 0x7f800000, 0x7f800000, 0x3800080},
+{0x3800000, 0x807fffff, 0x7f800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x807fffff, 0x7f984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x807fffff, 0x7fbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x807fffff, 0x7fc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x807fffff, 0x7fd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x807fffff, 0x7fffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x807fffff, 0x80000000, 0x80000000, 0x3800080},
+{0x3800000, 0x807fffff, 0x80000001, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x80000076, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x80002b94, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x80636d24, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x807fffff, 0x0, 0x3800080},
+{0x3800000, 0x807fffff, 0x80800000, 0x80800000, 0x3800080},
+{0x3800000, 0x807fffff, 0x80800002, 0x80800002, 0x3800080},
+{0x3800000, 0x807fffff, 0x81398437, 0x81398437, 0x3800080},
+{0x3800000, 0x807fffff, 0x8ba98d27, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x807fffff, 0x8ba98d7a, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x807fffff, 0xf51f853a, 0xf51f853a, 0x3800080},
+{0x3800000, 0x807fffff, 0xff7ffff0, 0xff7ffff0, 0x3800080},
+{0x3800000, 0x807fffff, 0xff7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0x807fffff, 0xff800000, 0xff800000, 0x3800080},
+{0x3800000, 0x807fffff, 0xff800001, 0x7fc00000, 0x3800081},
+{0x3800000, 0x807fffff, 0xff984a37, 0x7fc00000, 0x3800081},
+{0x3800000, 0x807fffff, 0xffbfffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0x807fffff, 0xffc00000, 0x7fc00000, 0x3800080},
+{0x3800000, 0x807fffff, 0xffd9ba98, 0x7fc00000, 0x3800080},
+{0x3800000, 0x807fffff, 0xffffffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0x807fffff, 0x4f3495cb, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x807fffff, 0xe73a5134, 0xe73a5134, 0x3800080},
+{0x3800000, 0x807fffff, 0x7c994e9e, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x807fffff, 0x6164bd6c, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x807fffff, 0x9503366, 0x9503366, 0x3800080},
+{0x3800000, 0x807fffff, 0xbf5a97c9, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0x807fffff, 0xe6ff1a14, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0x807fffff, 0x77f31e2f, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x807fffff, 0xaab4d7d8, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0x807fffff, 0x966320b, 0x966320b, 0x3800080},
+{0x3800000, 0x807fffff, 0xb26bddee, 0xb26bddee, 0x3800080},
+{0x3800000, 0x807fffff, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0x807fffff, 0x317285d3, 0x317285d3, 0x3800080},
+{0x3800000, 0x807fffff, 0x3c9623b1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x807fffff, 0x51fd2c7c, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x807fffff, 0x7b906a6c, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x80800000, 0x0, 0x80800000, 0x3800000},
+{0x3800000, 0x80800000, 0x1, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x76, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x2b94, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x636d24, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x7fffff, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x800000, 0x80000000, 0x3800000},
+{0x3800000, 0x80800000, 0x800002, 0x0, 0x3800008},
+{0x3800000, 0x80800000, 0x1398437, 0xf3086e, 0x3800000},
+{0x3800000, 0x80800000, 0xba98d27, 0xba98d25, 0x3800000},
+{0x3800000, 0x80800000, 0xba98d7a, 0xba98d78, 0x3800000},
+{0x3800000, 0x80800000, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0x80800000, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x80800000, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x80800000, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x80800000, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800000, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800000, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800000, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800000, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800000, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800000, 0x80000000, 0x80800000, 0x3800000},
+{0x3800000, 0x80800000, 0x80000001, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x80000076, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x80002b94, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x80636d24, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x807fffff, 0x80800000, 0x3800080},
+{0x3800000, 0x80800000, 0x80800000, 0x81000000, 0x3800000},
+{0x3800000, 0x80800000, 0x80800002, 0x81000001, 0x3800000},
+{0x3800000, 0x80800000, 0x81398437, 0x81798437, 0x3800000},
+{0x3800000, 0x80800000, 0x8ba98d27, 0x8ba98d29, 0x3800000},
+{0x3800000, 0x80800000, 0x8ba98d7a, 0x8ba98d7c, 0x3800000},
+{0x3800000, 0x80800000, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0x80800000, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0x80800000, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0x80800000, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x80800000, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800000, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800000, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800000, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800000, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800000, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800000, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x80800000, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0x80800000, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x80800000, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x80800000, 0x9503366, 0x9503326, 0x3800000},
+{0x3800000, 0x80800000, 0xbf5a97c9, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0x80800000, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0x80800000, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x80800000, 0xaab4d7d8, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0x80800000, 0x966320b, 0x96631cb, 0x3800000},
+{0x3800000, 0x80800000, 0xb26bddee, 0xb26bddef, 0x3800010},
+{0x3800000, 0x80800000, 0xb5c8e5d3, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0x80800000, 0x317285d3, 0x317285d2, 0x3800010},
+{0x3800000, 0x80800000, 0x3c9623b1, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x80800000, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x80800000, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x80800002, 0x0, 0x80800002, 0x3800000},
+{0x3800000, 0x80800002, 0x1, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x76, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x2b94, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x636d24, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x7fffff, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x800000, 0x0, 0x3800008},
+{0x3800000, 0x80800002, 0x800002, 0x80000000, 0x3800000},
+{0x3800000, 0x80800002, 0x1398437, 0xf3086c, 0x3800000},
+{0x3800000, 0x80800002, 0xba98d27, 0xba98d24, 0x3800010},
+{0x3800000, 0x80800002, 0xba98d7a, 0xba98d77, 0x3800010},
+{0x3800000, 0x80800002, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0x80800002, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x80800002, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x80800002, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x80800002, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800002, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800002, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800002, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800002, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800002, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800002, 0x80000000, 0x80800002, 0x3800000},
+{0x3800000, 0x80800002, 0x80000001, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x80000076, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x80002b94, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x80636d24, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x807fffff, 0x80800002, 0x3800080},
+{0x3800000, 0x80800002, 0x80800000, 0x81000001, 0x3800000},
+{0x3800000, 0x80800002, 0x80800002, 0x81000002, 0x3800000},
+{0x3800000, 0x80800002, 0x81398437, 0x81798438, 0x3800000},
+{0x3800000, 0x80800002, 0x8ba98d27, 0x8ba98d2a, 0x3800010},
+{0x3800000, 0x80800002, 0x8ba98d7a, 0x8ba98d7d, 0x3800010},
+{0x3800000, 0x80800002, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0x80800002, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0x80800002, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0x80800002, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x80800002, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800002, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800002, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x80800002, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800002, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800002, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x80800002, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x80800002, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0x80800002, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x80800002, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x80800002, 0x9503366, 0x9503325, 0x3800010},
+{0x3800000, 0x80800002, 0xbf5a97c9, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0x80800002, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0x80800002, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x80800002, 0xaab4d7d8, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0x80800002, 0x966320b, 0x96631ca, 0x3800010},
+{0x3800000, 0x80800002, 0xb26bddee, 0xb26bddef, 0x3800010},
+{0x3800000, 0x80800002, 0xb5c8e5d3, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0x80800002, 0x317285d3, 0x317285d2, 0x3800010},
+{0x3800000, 0x80800002, 0x3c9623b1, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x80800002, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x80800002, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x81398437, 0x0, 0x81398437, 0x3800000},
+{0x3800000, 0x81398437, 0x1, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x76, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x2b94, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x636d24, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x7fffff, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x800000, 0x80f3086e, 0x3800000},
+{0x3800000, 0x81398437, 0x800002, 0x80f3086c, 0x3800000},
+{0x3800000, 0x81398437, 0x1398437, 0x80000000, 0x3800000},
+{0x3800000, 0x81398437, 0xba98d27, 0xba98d21, 0x3800010},
+{0x3800000, 0x81398437, 0xba98d7a, 0xba98d74, 0x3800010},
+{0x3800000, 0x81398437, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0x81398437, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x81398437, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x81398437, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x81398437, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x81398437, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x81398437, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x81398437, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x81398437, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x81398437, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x81398437, 0x80000000, 0x81398437, 0x3800000},
+{0x3800000, 0x81398437, 0x80000001, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x80000076, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x80002b94, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x80636d24, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x807fffff, 0x81398437, 0x3800080},
+{0x3800000, 0x81398437, 0x80800000, 0x81798437, 0x3800000},
+{0x3800000, 0x81398437, 0x80800002, 0x81798438, 0x3800000},
+{0x3800000, 0x81398437, 0x81398437, 0x81b98437, 0x3800000},
+{0x3800000, 0x81398437, 0x8ba98d27, 0x8ba98d2d, 0x3800010},
+{0x3800000, 0x81398437, 0x8ba98d7a, 0x8ba98d80, 0x3800010},
+{0x3800000, 0x81398437, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0x81398437, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0x81398437, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0x81398437, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x81398437, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x81398437, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x81398437, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x81398437, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x81398437, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x81398437, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x81398437, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x81398437, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0x81398437, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x81398437, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x81398437, 0x9503366, 0x95032ac, 0x3800010},
+{0x3800000, 0x81398437, 0xbf5a97c9, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0x81398437, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0x81398437, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x81398437, 0xaab4d7d8, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0x81398437, 0x966320b, 0x9663151, 0x3800010},
+{0x3800000, 0x81398437, 0xb26bddee, 0xb26bddef, 0x3800010},
+{0x3800000, 0x81398437, 0xb5c8e5d3, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0x81398437, 0x317285d3, 0x317285d2, 0x3800010},
+{0x3800000, 0x81398437, 0x3c9623b1, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x81398437, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x81398437, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x0, 0x8ba98d27, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x1, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x76, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x2b94, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x636d24, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x7fffff, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x800000, 0x8ba98d25, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x800002, 0x8ba98d25, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x1398437, 0x8ba98d22, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xba98d27, 0x80000000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0xba98d7a, 0x3260000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d27, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d27, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d27, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x80000000, 0x8ba98d27, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x80000001, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x80000076, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x80002b94, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x80636d24, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x807fffff, 0x8ba98d27, 0x3800080},
+{0x3800000, 0x8ba98d27, 0x80800000, 0x8ba98d29, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x80800002, 0x8ba98d2a, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x81398437, 0x8ba98d2d, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x8ba98d27, 0x8c298d27, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x8ba98d7a, 0x8c298d51, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0x8ba98d27, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d27, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d27, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d27, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d27, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x9503366, 0x8ba30b8c, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xbf5a97c9, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xaab4d7d8, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x966320b, 0x8ba25b97, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xb26bddee, 0xb26bddef, 0x3800010},
+{0x3800000, 0x8ba98d27, 0xb5c8e5d3, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x317285d3, 0x317285d2, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x3c9623b1, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x8ba98d27, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x0, 0x8ba98d7a, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x1, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x76, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x2b94, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x636d24, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x7fffff, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x800000, 0x8ba98d78, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x800002, 0x8ba98d78, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x1398437, 0x8ba98d75, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xba98d27, 0x83260000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0xba98d7a, 0x80000000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d7a, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d7a, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d7a, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x80000000, 0x8ba98d7a, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x80000001, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x80000076, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x80002b94, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x80636d24, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x807fffff, 0x8ba98d7a, 0x3800080},
+{0x3800000, 0x8ba98d7a, 0x80800000, 0x8ba98d7c, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x80800002, 0x8ba98d7d, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x81398437, 0x8ba98d80, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x8ba98d27, 0x8c298d51, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x8ba98d7a, 0x8c298d7a, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0x8ba98d7a, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d7a, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d7a, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x8ba98d7a, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x8ba98d7a, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x9503366, 0x8ba30bdf, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xbf5a97c9, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xaab4d7d8, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x966320b, 0x8ba25bea, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xb26bddee, 0xb26bddef, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0xb5c8e5d3, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x317285d3, 0x317285d2, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x3c9623b1, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x8ba98d7a, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x0, 0xf51f853a, 0x3800000},
+{0x3800000, 0xf51f853a, 0x1, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x76, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x2b94, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x636d24, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x7fffff, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x800000, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0x800002, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0x1398437, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0xba98d27, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0xba98d7a, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0x751f853a, 0x80000000, 0x3800000},
+{0x3800000, 0xf51f853a, 0x7f7ffff0, 0x7f7fffe6, 0x3800010},
+{0x3800000, 0xf51f853a, 0x7f7fffff, 0x7f7ffff5, 0x3800010},
+{0x3800000, 0xf51f853a, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xf51f853a, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xf51f853a, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xf51f853a, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xf51f853a, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xf51f853a, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xf51f853a, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xf51f853a, 0x80000000, 0xf51f853a, 0x3800000},
+{0x3800000, 0xf51f853a, 0x80000001, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x80000076, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x80002b94, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x80636d24, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x807fffff, 0xf51f853a, 0x3800080},
+{0x3800000, 0xf51f853a, 0x80800000, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x80800002, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x81398437, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x8ba98d27, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x8ba98d7a, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0xf51f853a, 0xf59f853a, 0x3800000},
+{0x3800000, 0xf51f853a, 0xff7ffff0, 0xff7ffffa, 0x3800010},
+{0x3800000, 0xf51f853a, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xf51f853a, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xf51f853a, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xf51f853a, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xf51f853a, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xf51f853a, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xf51f853a, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xf51f853a, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xf51f853a, 0x4f3495cb, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0xe73a5134, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x7c994e9e, 0x7c994d5e, 0x3800010},
+{0x3800000, 0xf51f853a, 0x6164bd6c, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0x9503366, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0xbf5a97c9, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0xe6ff1a14, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x77f31e2f, 0x77ee2205, 0x3800010},
+{0x3800000, 0xf51f853a, 0xaab4d7d8, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x966320b, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0xb26bddee, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0xb5c8e5d3, 0xf51f853b, 0x3800010},
+{0x3800000, 0xf51f853a, 0x317285d3, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0x3c9623b1, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0x51fd2c7c, 0xf51f853a, 0x3800010},
+{0x3800000, 0xf51f853a, 0x7b906a6c, 0x7b90656f, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x0, 0xff7ffff0, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x1, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x76, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x2b94, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x636d24, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x7fffff, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x800000, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x800002, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x1398437, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xba98d27, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xba98d7a, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x751f853a, 0xff7fffe7, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x7f7ffff0, 0x80000000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x7f7fffff, 0x75700000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7ffff0, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7ffff0, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7ffff0, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x80000000, 0xff7ffff0, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x80000001, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x80000076, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x80002b94, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x80636d24, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x807fffff, 0xff7ffff0, 0x3800080},
+{0x3800000, 0xff7ffff0, 0x80800000, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x80800002, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x81398437, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x8ba98d27, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x8ba98d7a, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xf51f853a, 0xff7ffffa, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xff7ffff0, 0xff800000, 0x3800014},
+{0x3800000, 0xff7ffff0, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xff7ffff0, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7ffff0, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7ffff0, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7ffff0, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7ffff0, 0x4f3495cb, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xe73a5134, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x7c994e9e, 0xff7b357c, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x6164bd6c, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x9503366, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xbf5a97c9, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xe6ff1a14, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x77f31e2f, 0xff7ffe0a, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xaab4d7d8, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x966320b, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xb26bddee, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0xb5c8e5d3, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x317285d3, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x3c9623b1, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x51fd2c7c, 0xff7ffff0, 0x3800010},
+{0x3800000, 0xff7ffff0, 0x7b906a6c, 0xff7edf1c, 0x3800010},
+{0x3800000, 0xff7fffff, 0x0, 0xff7fffff, 0x3800000},
+{0x3800000, 0xff7fffff, 0x1, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x76, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x2b94, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x636d24, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x7fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x800000, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0x800002, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0x1398437, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0xba98d27, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0xba98d7a, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0x751f853a, 0xff7ffff6, 0x3800010},
+{0x3800000, 0xff7fffff, 0x7f7ffff0, 0xf5700000, 0x3800000},
+{0x3800000, 0xff7fffff, 0x7f7fffff, 0x80000000, 0x3800000},
+{0x3800000, 0xff7fffff, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xff7fffff, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7fffff, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7fffff, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7fffff, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7fffff, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7fffff, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7fffff, 0x80000000, 0xff7fffff, 0x3800000},
+{0x3800000, 0xff7fffff, 0x80000001, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x80000076, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x80002b94, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x80636d24, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x807fffff, 0xff7fffff, 0x3800080},
+{0x3800000, 0xff7fffff, 0x80800000, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0x80800002, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0x81398437, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0x8ba98d27, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0x8ba98d7a, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0xf51f853a, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0xff7ffff0, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xff7fffff, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7fffff, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7fffff, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff7fffff, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7fffff, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7fffff, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff7fffff, 0x4f3495cb, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0xe73a5134, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0x7c994e9e, 0xff7b358b, 0x3800010},
+{0x3800000, 0xff7fffff, 0x6164bd6c, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0x9503366, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0xbf5a97c9, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0xe6ff1a14, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0x77f31e2f, 0xff7ffe19, 0x3800010},
+{0x3800000, 0xff7fffff, 0xaab4d7d8, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0x966320b, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0xb26bddee, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0xb5c8e5d3, 0xff800000, 0x3800014},
+{0x3800000, 0xff7fffff, 0x317285d3, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0x3c9623b1, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0x51fd2c7c, 0xff7fffff, 0x3800010},
+{0x3800000, 0xff7fffff, 0x7b906a6c, 0xff7edf2b, 0x3800010},
+{0x3800000, 0xff800000, 0x0, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x1, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x76, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x2b94, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x636d24, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x7fffff, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x800000, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x800002, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x1398437, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xba98d27, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xba98d7a, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x751f853a, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x7f7ffff0, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x7f7fffff, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x7f800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800000, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800000, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800000, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800000, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff800000, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff800000, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff800000, 0x80000000, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x80000001, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x80000076, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x80002b94, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x80636d24, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x807fffff, 0xff800000, 0x3800080},
+{0x3800000, 0xff800000, 0x80800000, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x80800002, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x81398437, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x8ba98d27, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x8ba98d7a, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xf51f853a, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xff7ffff0, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xff7fffff, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800000, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800000, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800000, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff800000, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff800000, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xff800000, 0x4f3495cb, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xe73a5134, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x7c994e9e, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x6164bd6c, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x9503366, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xbf5a97c9, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xe6ff1a14, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x77f31e2f, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xaab4d7d8, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x966320b, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xb26bddee, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0xb5c8e5d3, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x317285d3, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x3c9623b1, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x51fd2c7c, 0xff800000, 0x3800000},
+{0x3800000, 0xff800000, 0x7b906a6c, 0xff800000, 0x3800000},
+{0x3800000, 0xff800001, 0x0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x1, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x76, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x2b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x7fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x1398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x751f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7f7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7f7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7f800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7fc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7fd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7fffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x80000000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x80000001, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x80000076, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x80002b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x80636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x807fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff800001, 0x80800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x80800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x81398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x8ba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x8ba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xf51f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xff7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xff7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xff800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xffc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xffd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xffffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x4f3495cb, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xe73a5134, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7c994e9e, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x6164bd6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x9503366, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xbf5a97c9, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xe6ff1a14, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x77f31e2f, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xaab4d7d8, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x966320b, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xb26bddee, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0xb5c8e5d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x317285d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x3c9623b1, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x51fd2c7c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff800001, 0x7b906a6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x1, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x76, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x2b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x7fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x1398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x751f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7f7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7f7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7f800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7fc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7fd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7fffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x80000000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x80000001, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x80000076, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x80002b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x80636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x807fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0xff984a37, 0x80800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x80800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x81398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x8ba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x8ba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xf51f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xff7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xff7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xff800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xffc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xffd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xffffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x4f3495cb, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xe73a5134, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7c994e9e, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x6164bd6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x9503366, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xbf5a97c9, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xe6ff1a14, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x77f31e2f, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xaab4d7d8, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x966320b, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xb26bddee, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0xb5c8e5d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x317285d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x3c9623b1, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x51fd2c7c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xff984a37, 0x7b906a6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x1, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x76, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x2b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x7fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x1398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x751f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7f7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7f7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7f800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7fc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7fd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7fffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x80000000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x80000001, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x80000076, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x80002b94, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x80636d24, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x807fffff, 0x7fc00000, 0x3800081},
+{0x3800000, 0xffbfffff, 0x80800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x80800002, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x81398437, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x8ba98d27, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x8ba98d7a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xf51f853a, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xff7ffff0, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xff7fffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xff800000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xffc00000, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xffd9ba98, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xffffffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x4f3495cb, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xe73a5134, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7c994e9e, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x6164bd6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x9503366, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xbf5a97c9, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xe6ff1a14, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x77f31e2f, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xaab4d7d8, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x966320b, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xb26bddee, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0xb5c8e5d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x317285d3, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x3c9623b1, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x51fd2c7c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffbfffff, 0x7b906a6c, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffc00000, 0x0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x1, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x76, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x2b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x7fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x1398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x751f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x7f7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x7f7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x7f800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffc00000, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffc00000, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffc00000, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x80000000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x80000001, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x80000076, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x80002b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x80636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x807fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffc00000, 0x80800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x80800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x81398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x8ba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x8ba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xf51f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xff7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xff7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xff800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffc00000, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffc00000, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffc00000, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x4f3495cb, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xe73a5134, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x7c994e9e, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x6164bd6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x9503366, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xbf5a97c9, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xe6ff1a14, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x77f31e2f, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xaab4d7d8, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x966320b, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xb26bddee, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0xb5c8e5d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x317285d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x3c9623b1, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x51fd2c7c, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffc00000, 0x7b906a6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x1, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x76, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x2b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x7fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x1398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x751f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x7f7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x7f7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x7f800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffd9ba98, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffd9ba98, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffd9ba98, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x80000000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x80000001, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x80000076, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x80002b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x80636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x807fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffd9ba98, 0x80800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x80800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x81398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x8ba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x8ba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xf51f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xff7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xff7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xff800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffd9ba98, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffd9ba98, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffd9ba98, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x4f3495cb, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xe73a5134, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x7c994e9e, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x6164bd6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x9503366, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xbf5a97c9, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xe6ff1a14, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x77f31e2f, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xaab4d7d8, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x966320b, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xb26bddee, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0xb5c8e5d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x317285d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x3c9623b1, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x51fd2c7c, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffd9ba98, 0x7b906a6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x1, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x76, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x2b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x7fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x1398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x751f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x7f7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x7f7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x7f800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffffffff, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffffffff, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffffffff, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x80000000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x80000001, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x80000076, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x80002b94, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x80636d24, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x807fffff, 0x7fc00000, 0x3800080},
+{0x3800000, 0xffffffff, 0x80800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x80800002, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x81398437, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x8ba98d27, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x8ba98d7a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xf51f853a, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xff7ffff0, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xff7fffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xff800000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffffffff, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffffffff, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xffffffff, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x4f3495cb, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xe73a5134, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x7c994e9e, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x6164bd6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x9503366, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xbf5a97c9, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xe6ff1a14, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x77f31e2f, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xaab4d7d8, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x966320b, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xb26bddee, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0xb5c8e5d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x317285d3, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x3c9623b1, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x51fd2c7c, 0x7fc00000, 0x3800000},
+{0x3800000, 0xffffffff, 0x7b906a6c, 0x7fc00000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0x0, 0x4f3495cb, 0x3800000},
+{0x3800000, 0x4f3495cb, 0x1, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x76, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x2b94, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x636d24, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x7fffff, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x800000, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x800002, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x1398437, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xba98d27, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xba98d7a, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x4f3495cb, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x4f3495cb, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x4f3495cb, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0x80000000, 0x4f3495cb, 0x3800000},
+{0x3800000, 0x4f3495cb, 0x80000001, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x80000076, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x80002b94, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x80636d24, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x807fffff, 0x4f3495cb, 0x3800080},
+{0x3800000, 0x4f3495cb, 0x80800000, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x80800002, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x81398437, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x8ba98d27, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x8ba98d7a, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x4f3495cb, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x4f3495cb, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x4f3495cb, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x4f3495cb, 0x4f3495cb, 0x4fb495cb, 0x3800000},
+{0x3800000, 0x4f3495cb, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x9503366, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xbf5a97c9, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xaab4d7d8, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x966320b, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xb26bddee, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0xb5c8e5d3, 0x4f3495ca, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x317285d3, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x3c9623b1, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x51fd2c7c, 0x52016895, 0x3800010},
+{0x3800000, 0x4f3495cb, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0xe73a5134, 0x0, 0xe73a5134, 0x3800000},
+{0x3800000, 0xe73a5134, 0x1, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x76, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x2b94, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x636d24, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x7fffff, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x800000, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0x800002, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0x1398437, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0xba98d27, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0xba98d7a, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0xe73a5134, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0xe73a5134, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0xe73a5134, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xe73a5134, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe73a5134, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe73a5134, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe73a5134, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe73a5134, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe73a5134, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe73a5134, 0x80000000, 0xe73a5134, 0x3800000},
+{0x3800000, 0xe73a5134, 0x80000001, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x80000076, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x80002b94, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x80636d24, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x807fffff, 0xe73a5134, 0x3800080},
+{0x3800000, 0xe73a5134, 0x80800000, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0x80800002, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0x81398437, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0x8ba98d27, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0x8ba98d7a, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0xe73a5134, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xe73a5134, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xe73a5134, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xe73a5134, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe73a5134, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe73a5134, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe73a5134, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe73a5134, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe73a5134, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe73a5134, 0x4f3495cb, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0xe73a5134, 0xe7ba5134, 0x3800000},
+{0x3800000, 0xe73a5134, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0xe73a5134, 0x6164bd6c, 0xe73a42e9, 0x3800010},
+{0x3800000, 0xe73a5134, 0x9503366, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0xbf5a97c9, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0xe6ff1a14, 0xe79cef1f, 0x3800000},
+{0x3800000, 0xe73a5134, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0xe73a5134, 0xaab4d7d8, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0x966320b, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0xb26bddee, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0xb5c8e5d3, 0xe73a5135, 0x3800010},
+{0x3800000, 0xe73a5134, 0x317285d3, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0x3c9623b1, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0x51fd2c7c, 0xe73a5134, 0x3800010},
+{0x3800000, 0xe73a5134, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x0, 0x7c994e9e, 0x3800000},
+{0x3800000, 0x7c994e9e, 0x1, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x76, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x2b94, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x636d24, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x7fffff, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x800000, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x800002, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x1398437, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xba98d27, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xba98d7a, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x751f853a, 0x7c994fdd, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x7f7ffff0, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7c994e9e, 0x7f7fffff, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7c994e9e, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x7c994e9e, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7c994e9e, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7c994e9e, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7c994e9e, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7c994e9e, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7c994e9e, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7c994e9e, 0x80000000, 0x7c994e9e, 0x3800000},
+{0x3800000, 0x7c994e9e, 0x80000001, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x80000076, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x80002b94, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x80636d24, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x807fffff, 0x7c994e9e, 0x3800080},
+{0x3800000, 0x7c994e9e, 0x80800000, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x80800002, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x81398437, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x8ba98d27, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x8ba98d7a, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xf51f853a, 0x7c994d5e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xff7ffff0, 0xff7b357c, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xff7fffff, 0xff7b358b, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x7c994e9e, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7c994e9e, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7c994e9e, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7c994e9e, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7c994e9e, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7c994e9e, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7c994e9e, 0x4f3495cb, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xe73a5134, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x7c994e9e, 0x7d194e9e, 0x3800000},
+{0x3800000, 0x7c994e9e, 0x6164bd6c, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x9503366, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xbf5a97c9, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xe6ff1a14, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x77f31e2f, 0x7c998b65, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xaab4d7d8, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x966320b, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xb26bddee, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0xb5c8e5d3, 0x7c994e9d, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x317285d3, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x3c9623b1, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x51fd2c7c, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x7c994e9e, 0x7b906a6c, 0x7cbd6939, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x0, 0x6164bd6c, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x1, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x76, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x2b94, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x636d24, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x7fffff, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x800000, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x800002, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x1398437, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xba98d27, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xba98d7a, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x6164bd6c, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x6164bd6c, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x6164bd6c, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x80000000, 0x6164bd6c, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x80000001, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x80000076, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x80002b94, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x80636d24, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x807fffff, 0x6164bd6c, 0x3800080},
+{0x3800000, 0x6164bd6c, 0x80800000, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x80800002, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x81398437, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x8ba98d27, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x8ba98d7a, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x6164bd6c, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x6164bd6c, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x6164bd6c, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x6164bd6c, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x6164bd6c, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x6164bd6c, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x4f3495cb, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xe73a5134, 0xe73a42e9, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x6164bd6c, 0x61e4bd6c, 0x3800000},
+{0x3800000, 0x6164bd6c, 0x9503366, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xbf5a97c9, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xe6ff1a14, 0xe6fefd7d, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xaab4d7d8, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x966320b, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xb26bddee, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0xb5c8e5d3, 0x6164bd6b, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x317285d3, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x3c9623b1, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x51fd2c7c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x6164bd6c, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x9503366, 0x0, 0x9503366, 0x3800000},
+{0x3800000, 0x9503366, 0x1, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x76, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x2b94, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x636d24, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x7fffff, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x800000, 0x95033a6, 0x3800000},
+{0x3800000, 0x9503366, 0x800002, 0x95033a6, 0x3800010},
+{0x3800000, 0x9503366, 0x1398437, 0x950341f, 0x3800010},
+{0x3800000, 0x9503366, 0xba98d27, 0xbb00ec2, 0x3800010},
+{0x3800000, 0x9503366, 0xba98d7a, 0xbb00f15, 0x3800010},
+{0x3800000, 0x9503366, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x9503366, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x9503366, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x9503366, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x9503366, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x9503366, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x9503366, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x9503366, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x9503366, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x9503366, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x9503366, 0x80000000, 0x9503366, 0x3800000},
+{0x3800000, 0x9503366, 0x80000001, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x80000076, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x80002b94, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x80636d24, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x807fffff, 0x9503366, 0x3800080},
+{0x3800000, 0x9503366, 0x80800000, 0x9503326, 0x3800000},
+{0x3800000, 0x9503366, 0x80800002, 0x9503325, 0x3800010},
+{0x3800000, 0x9503366, 0x81398437, 0x95032ac, 0x3800010},
+{0x3800000, 0x9503366, 0x8ba98d27, 0x8ba30b8c, 0x3800010},
+{0x3800000, 0x9503366, 0x8ba98d7a, 0x8ba30bdf, 0x3800010},
+{0x3800000, 0x9503366, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x9503366, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x9503366, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x9503366, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x9503366, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x9503366, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x9503366, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x9503366, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x9503366, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x9503366, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x9503366, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x9503366, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x9503366, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x9503366, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x9503366, 0x9503366, 0x9d03366, 0x3800000},
+{0x3800000, 0x9503366, 0xbf5a97c9, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0x9503366, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x9503366, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x9503366, 0xaab4d7d8, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0x9503366, 0x966320b, 0x9db32b8, 0x3800010},
+{0x3800000, 0x9503366, 0xb26bddee, 0xb26bddee, 0x3800010},
+{0x3800000, 0x9503366, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0x9503366, 0x317285d3, 0x317285d3, 0x3800010},
+{0x3800000, 0x9503366, 0x3c9623b1, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x9503366, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x9503366, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x0, 0xbf5a97c9, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0x1, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x76, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x2b94, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x636d24, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x7fffff, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x800000, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x800002, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x1398437, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xba98d27, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xba98d7a, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xbf5a97c9, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xbf5a97c9, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xbf5a97c9, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0x80000000, 0xbf5a97c9, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0x80000001, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x80000076, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x80002b94, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x80636d24, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x807fffff, 0xbf5a97c9, 0x3800080},
+{0x3800000, 0xbf5a97c9, 0x80800000, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x80800002, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x81398437, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x8ba98d27, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x8ba98d7a, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xbf5a97c9, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xbf5a97c9, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xbf5a97c9, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xbf5a97c9, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x9503366, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xbf5a97c9, 0xbfda97c9, 0x3800000},
+{0x3800000, 0xbf5a97c9, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xaab4d7d8, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x966320b, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xb26bddee, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0xb5c8e5d3, 0xbf5a97e3, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x317285d3, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x3c9623b1, 0xbf55e6ac, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0xbf5a97c9, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x0, 0xe6ff1a14, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x1, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x76, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x2b94, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x636d24, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x7fffff, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x800000, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x800002, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x1398437, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xba98d27, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xba98d7a, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe6ff1a14, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe6ff1a14, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe6ff1a14, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x80000000, 0xe6ff1a14, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x80000001, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x80000076, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x80002b94, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x80636d24, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x807fffff, 0xe6ff1a14, 0x3800080},
+{0x3800000, 0xe6ff1a14, 0x80800000, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x80800002, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x81398437, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x8ba98d27, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x8ba98d7a, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xe6ff1a14, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe6ff1a14, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe6ff1a14, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xe6ff1a14, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x4f3495cb, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xe73a5134, 0xe79cef1f, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x6164bd6c, 0xe6fefd7d, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x9503366, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xbf5a97c9, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xe6ff1a14, 0xe77f1a14, 0x3800000},
+{0x3800000, 0xe6ff1a14, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xaab4d7d8, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x966320b, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xb26bddee, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0xb5c8e5d3, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x317285d3, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x3c9623b1, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x51fd2c7c, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0xe6ff1a14, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x0, 0x77f31e2f, 0x3800000},
+{0x3800000, 0x77f31e2f, 0x1, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x76, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x2b94, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x636d24, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x7fffff, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x800000, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x800002, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x1398437, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xba98d27, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xba98d7a, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x751f853a, 0x77f81a58, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x7f7ffff0, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x77f31e2f, 0x7f7fffff, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x77f31e2f, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x77f31e2f, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x77f31e2f, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x77f31e2f, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x77f31e2f, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x77f31e2f, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x77f31e2f, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x77f31e2f, 0x80000000, 0x77f31e2f, 0x3800000},
+{0x3800000, 0x77f31e2f, 0x80000001, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x80000076, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x80002b94, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x80636d24, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x807fffff, 0x77f31e2f, 0x3800080},
+{0x3800000, 0x77f31e2f, 0x80800000, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x80800002, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x81398437, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x8ba98d27, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x8ba98d7a, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xf51f853a, 0x77ee2205, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xff7ffff0, 0xff7ffe0a, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xff7fffff, 0xff7ffe19, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x77f31e2f, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x77f31e2f, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x77f31e2f, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x77f31e2f, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x77f31e2f, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x77f31e2f, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x77f31e2f, 0x4f3495cb, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xe73a5134, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x7c994e9e, 0x7c998b65, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x6164bd6c, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x9503366, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xbf5a97c9, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xe6ff1a14, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x77f31e2f, 0x78731e2f, 0x3800000},
+{0x3800000, 0x77f31e2f, 0xaab4d7d8, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x966320b, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xb26bddee, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0xb5c8e5d3, 0x77f31e2e, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x317285d3, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x3c9623b1, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x51fd2c7c, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x77f31e2f, 0x7b906a6c, 0x7b915d8a, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x0, 0xaab4d7d8, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0x1, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x76, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x2b94, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x636d24, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x7fffff, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x800000, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x800002, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x1398437, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xba98d27, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xba98d7a, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xaab4d7d8, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xaab4d7d8, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xaab4d7d8, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0x80000000, 0xaab4d7d8, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0x80000001, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x80000076, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x80002b94, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x80636d24, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x807fffff, 0xaab4d7d8, 0x3800080},
+{0x3800000, 0xaab4d7d8, 0x80800000, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x80800002, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x81398437, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x8ba98d27, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x8ba98d7a, 0xaab4d7d9, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xaab4d7d8, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xaab4d7d8, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xaab4d7d8, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xaab4d7d8, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x9503366, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xbf5a97c9, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xaab4d7d8, 0xab34d7d8, 0x3800000},
+{0x3800000, 0xaab4d7d8, 0x966320b, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xb26bddee, 0xb26bdf58, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0xb5c8e5d3, 0xb5c8e5d6, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x317285d3, 0x3172802c, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x3c9623b1, 0x3c9623b0, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0xaab4d7d8, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x966320b, 0x0, 0x966320b, 0x3800000},
+{0x3800000, 0x966320b, 0x1, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x76, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x2b94, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x636d24, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x7fffff, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x800000, 0x966324b, 0x3800000},
+{0x3800000, 0x966320b, 0x800002, 0x966324b, 0x3800010},
+{0x3800000, 0x966320b, 0x1398437, 0x96632c4, 0x3800010},
+{0x3800000, 0x966320b, 0xba98d27, 0xbb0beb7, 0x3800010},
+{0x3800000, 0x966320b, 0xba98d7a, 0xbb0bf0a, 0x3800010},
+{0x3800000, 0x966320b, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x966320b, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x966320b, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x966320b, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x966320b, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x966320b, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x966320b, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x966320b, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x966320b, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x966320b, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x966320b, 0x80000000, 0x966320b, 0x3800000},
+{0x3800000, 0x966320b, 0x80000001, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x80000076, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x80002b94, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x80636d24, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x807fffff, 0x966320b, 0x3800080},
+{0x3800000, 0x966320b, 0x80800000, 0x96631cb, 0x3800000},
+{0x3800000, 0x966320b, 0x80800002, 0x96631ca, 0x3800010},
+{0x3800000, 0x966320b, 0x81398437, 0x9663151, 0x3800010},
+{0x3800000, 0x966320b, 0x8ba98d27, 0x8ba25b97, 0x3800010},
+{0x3800000, 0x966320b, 0x8ba98d7a, 0x8ba25bea, 0x3800010},
+{0x3800000, 0x966320b, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x966320b, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x966320b, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x966320b, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x966320b, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x966320b, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x966320b, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x966320b, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x966320b, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x966320b, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x966320b, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x966320b, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x966320b, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x966320b, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x966320b, 0x9503366, 0x9db32b8, 0x3800010},
+{0x3800000, 0x966320b, 0xbf5a97c9, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0x966320b, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x966320b, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x966320b, 0xaab4d7d8, 0xaab4d7d8, 0x3800010},
+{0x3800000, 0x966320b, 0x966320b, 0x9e6320b, 0x3800000},
+{0x3800000, 0x966320b, 0xb26bddee, 0xb26bddee, 0x3800010},
+{0x3800000, 0x966320b, 0xb5c8e5d3, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0x966320b, 0x317285d3, 0x317285d3, 0x3800010},
+{0x3800000, 0x966320b, 0x3c9623b1, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x966320b, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x966320b, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0xb26bddee, 0x0, 0xb26bddee, 0x3800000},
+{0x3800000, 0xb26bddee, 0x1, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x76, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x2b94, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x636d24, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x7fffff, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x800000, 0xb26bddee, 0x3800010},
+{0x3800000, 0xb26bddee, 0x800002, 0xb26bddee, 0x3800010},
+{0x3800000, 0xb26bddee, 0x1398437, 0xb26bddee, 0x3800010},
+{0x3800000, 0xb26bddee, 0xba98d27, 0xb26bddee, 0x3800010},
+{0x3800000, 0xb26bddee, 0xba98d7a, 0xb26bddee, 0x3800010},
+{0x3800000, 0xb26bddee, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0xb26bddee, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0xb26bddee, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0xb26bddee, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xb26bddee, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb26bddee, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb26bddee, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb26bddee, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb26bddee, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb26bddee, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb26bddee, 0x80000000, 0xb26bddee, 0x3800000},
+{0x3800000, 0xb26bddee, 0x80000001, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x80000076, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x80002b94, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x80636d24, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x807fffff, 0xb26bddee, 0x3800080},
+{0x3800000, 0xb26bddee, 0x80800000, 0xb26bddef, 0x3800010},
+{0x3800000, 0xb26bddee, 0x80800002, 0xb26bddef, 0x3800010},
+{0x3800000, 0xb26bddee, 0x81398437, 0xb26bddef, 0x3800010},
+{0x3800000, 0xb26bddee, 0x8ba98d27, 0xb26bddef, 0x3800010},
+{0x3800000, 0xb26bddee, 0x8ba98d7a, 0xb26bddef, 0x3800010},
+{0x3800000, 0xb26bddee, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0xb26bddee, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xb26bddee, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xb26bddee, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xb26bddee, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb26bddee, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb26bddee, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb26bddee, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb26bddee, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb26bddee, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb26bddee, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0xb26bddee, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0xb26bddee, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0xb26bddee, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0xb26bddee, 0x9503366, 0xb26bddee, 0x3800010},
+{0x3800000, 0xb26bddee, 0xbf5a97c9, 0xbf5a97ca, 0x3800010},
+{0x3800000, 0xb26bddee, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xb26bddee, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0xb26bddee, 0xaab4d7d8, 0xb26bdf58, 0x3800010},
+{0x3800000, 0xb26bddee, 0x966320b, 0xb26bddee, 0x3800010},
+{0x3800000, 0xb26bddee, 0xb26bddee, 0xb2ebddee, 0x3800000},
+{0x3800000, 0xb26bddee, 0xb5c8e5d3, 0xb5cabd8f, 0x3800010},
+{0x3800000, 0xb26bddee, 0x317285d3, 0xb22f3c7a, 0x3800010},
+{0x3800000, 0xb26bddee, 0x3c9623b1, 0x3c9623a9, 0x3800010},
+{0x3800000, 0xb26bddee, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0xb26bddee, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x0, 0xb5c8e5d3, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0x1, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x76, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x2b94, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x636d24, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x7fffff, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x800000, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x800002, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x1398437, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xba98d27, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xba98d7a, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x751f853a, 0x751f8539, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x7f7ffff0, 0x7f7fffef, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x7f7fffff, 0x7f7ffffe, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb5c8e5d3, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb5c8e5d3, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb5c8e5d3, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0x80000000, 0xb5c8e5d3, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0x80000001, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x80000076, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x80002b94, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x80636d24, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x807fffff, 0xb5c8e5d3, 0x3800080},
+{0x3800000, 0xb5c8e5d3, 0x80800000, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x80800002, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x81398437, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x8ba98d27, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x8ba98d7a, 0xb5c8e5d4, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xf51f853a, 0xf51f853b, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xff7ffff0, 0xff7ffff1, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xff7fffff, 0xff800000, 0x3800014},
+{0x3800000, 0xb5c8e5d3, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb5c8e5d3, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb5c8e5d3, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0xb5c8e5d3, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0x4f3495cb, 0x4f3495ca, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xe73a5134, 0xe73a5135, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x7c994e9e, 0x7c994e9d, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x6164bd6c, 0x6164bd6b, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x9503366, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xbf5a97c9, 0xbf5a97e3, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xe6ff1a14, 0xe6ff1a15, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x77f31e2f, 0x77f31e2e, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xaab4d7d8, 0xb5c8e5d6, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x966320b, 0xb5c8e5d3, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xb26bddee, 0xb5cabd8f, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0xb5c8e5d3, 0xb648e5d3, 0x3800000},
+{0x3800000, 0xb5c8e5d3, 0x317285d3, 0xb5c86c91, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x3c9623b1, 0x3c96208d, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x51fd2c7c, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0xb5c8e5d3, 0x7b906a6c, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x317285d3, 0x0, 0x317285d3, 0x3800000},
+{0x3800000, 0x317285d3, 0x1, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x76, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x2b94, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x636d24, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x7fffff, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x800000, 0x317285d3, 0x3800010},
+{0x3800000, 0x317285d3, 0x800002, 0x317285d3, 0x3800010},
+{0x3800000, 0x317285d3, 0x1398437, 0x317285d3, 0x3800010},
+{0x3800000, 0x317285d3, 0xba98d27, 0x317285d3, 0x3800010},
+{0x3800000, 0x317285d3, 0xba98d7a, 0x317285d3, 0x3800010},
+{0x3800000, 0x317285d3, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x317285d3, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x317285d3, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x317285d3, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x317285d3, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x317285d3, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x317285d3, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x317285d3, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x317285d3, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x317285d3, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x317285d3, 0x80000000, 0x317285d3, 0x3800000},
+{0x3800000, 0x317285d3, 0x80000001, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x80000076, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x80002b94, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x80636d24, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x807fffff, 0x317285d3, 0x3800080},
+{0x3800000, 0x317285d3, 0x80800000, 0x317285d2, 0x3800010},
+{0x3800000, 0x317285d3, 0x80800002, 0x317285d2, 0x3800010},
+{0x3800000, 0x317285d3, 0x81398437, 0x317285d2, 0x3800010},
+{0x3800000, 0x317285d3, 0x8ba98d27, 0x317285d2, 0x3800010},
+{0x3800000, 0x317285d3, 0x8ba98d7a, 0x317285d2, 0x3800010},
+{0x3800000, 0x317285d3, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x317285d3, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x317285d3, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x317285d3, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x317285d3, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x317285d3, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x317285d3, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x317285d3, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x317285d3, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x317285d3, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x317285d3, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x317285d3, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x317285d3, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x317285d3, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x317285d3, 0x9503366, 0x317285d3, 0x3800010},
+{0x3800000, 0x317285d3, 0xbf5a97c9, 0xbf5a97c9, 0x3800010},
+{0x3800000, 0x317285d3, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x317285d3, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x317285d3, 0xaab4d7d8, 0x3172802c, 0x3800010},
+{0x3800000, 0x317285d3, 0x966320b, 0x317285d3, 0x3800010},
+{0x3800000, 0x317285d3, 0xb26bddee, 0xb22f3c7a, 0x3800010},
+{0x3800000, 0x317285d3, 0xb5c8e5d3, 0xb5c86c91, 0x3800010},
+{0x3800000, 0x317285d3, 0x317285d3, 0x31f285d3, 0x3800000},
+{0x3800000, 0x317285d3, 0x3c9623b1, 0x3c9623b2, 0x3800010},
+{0x3800000, 0x317285d3, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x317285d3, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x0, 0x3c9623b1, 0x3800000},
+{0x3800000, 0x3c9623b1, 0x1, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x76, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x2b94, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x636d24, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x7fffff, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x800000, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x800002, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x1398437, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xba98d27, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xba98d7a, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x3c9623b1, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x3c9623b1, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x3c9623b1, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x3c9623b1, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x3c9623b1, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x3c9623b1, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x3c9623b1, 0x80000000, 0x3c9623b1, 0x3800000},
+{0x3800000, 0x3c9623b1, 0x80000001, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x80000076, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x80002b94, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x80636d24, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x807fffff, 0x3c9623b1, 0x3800080},
+{0x3800000, 0x3c9623b1, 0x80800000, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x80800002, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x81398437, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x8ba98d27, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x8ba98d7a, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x3c9623b1, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x3c9623b1, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x3c9623b1, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x3c9623b1, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x3c9623b1, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x3c9623b1, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x3c9623b1, 0x4f3495cb, 0x4f3495cb, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x9503366, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xbf5a97c9, 0xbf55e6ac, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xaab4d7d8, 0x3c9623b0, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x966320b, 0x3c9623b1, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xb26bddee, 0x3c9623a9, 0x3800010},
+{0x3800000, 0x3c9623b1, 0xb5c8e5d3, 0x3c96208d, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x317285d3, 0x3c9623b2, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x3c9623b1, 0x3d1623b1, 0x3800000},
+{0x3800000, 0x3c9623b1, 0x51fd2c7c, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x3c9623b1, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x0, 0x51fd2c7c, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0x1, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x76, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x2b94, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x636d24, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x7fffff, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x800000, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x800002, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x1398437, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xba98d27, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xba98d7a, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x751f853a, 0x751f853a, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x7f7ffff0, 0x7f7ffff0, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x7f7fffff, 0x7f7fffff, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x51fd2c7c, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x51fd2c7c, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x51fd2c7c, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0x80000000, 0x51fd2c7c, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0x80000001, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x80000076, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x80002b94, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x80636d24, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x807fffff, 0x51fd2c7c, 0x3800080},
+{0x3800000, 0x51fd2c7c, 0x80800000, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x80800002, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x81398437, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x8ba98d27, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x8ba98d7a, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xf51f853a, 0xf51f853a, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xff7ffff0, 0xff7ffff0, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xff7fffff, 0xff7fffff, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x51fd2c7c, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x51fd2c7c, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x51fd2c7c, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0x4f3495cb, 0x52016895, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xe73a5134, 0xe73a5134, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x7c994e9e, 0x7c994e9e, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x6164bd6c, 0x6164bd6c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x9503366, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xbf5a97c9, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xe6ff1a14, 0xe6ff1a14, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x77f31e2f, 0x77f31e2f, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xaab4d7d8, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x966320b, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xb26bddee, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0xb5c8e5d3, 0x51fd2c7b, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x317285d3, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x3c9623b1, 0x51fd2c7c, 0x3800010},
+{0x3800000, 0x51fd2c7c, 0x51fd2c7c, 0x527d2c7c, 0x3800000},
+{0x3800000, 0x51fd2c7c, 0x7b906a6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x0, 0x7b906a6c, 0x3800000},
+{0x3800000, 0x7b906a6c, 0x1, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x76, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x2b94, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x636d24, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x7fffff, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x800000, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x800002, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x1398437, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xba98d27, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xba98d7a, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x751f853a, 0x7b906f68, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x7f7ffff0, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7b906a6c, 0x7f7fffff, 0x7f7fffff, 0x3800014},
+{0x3800000, 0x7b906a6c, 0x7f800000, 0x7f800000, 0x3800000},
+{0x3800000, 0x7b906a6c, 0x7f800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7b906a6c, 0x7f984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7b906a6c, 0x7fbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7b906a6c, 0x7fc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7b906a6c, 0x7fd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7b906a6c, 0x7fffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7b906a6c, 0x80000000, 0x7b906a6c, 0x3800000},
+{0x3800000, 0x7b906a6c, 0x80000001, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x80000076, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x80002b94, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x80636d24, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x807fffff, 0x7b906a6c, 0x3800080},
+{0x3800000, 0x7b906a6c, 0x80800000, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x80800002, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x81398437, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x8ba98d27, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x8ba98d7a, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xf51f853a, 0x7b90656f, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xff7ffff0, 0xff7edf1c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xff7fffff, 0xff7edf2b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xff800000, 0xff800000, 0x3800000},
+{0x3800000, 0x7b906a6c, 0xff800001, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7b906a6c, 0xff984a37, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7b906a6c, 0xffbfffff, 0x7fc00000, 0x3800001},
+{0x3800000, 0x7b906a6c, 0xffc00000, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7b906a6c, 0xffd9ba98, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7b906a6c, 0xffffffff, 0x7fc00000, 0x3800000},
+{0x3800000, 0x7b906a6c, 0x4f3495cb, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xe73a5134, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x7c994e9e, 0x7cbd6939, 0x3800000},
+{0x3800000, 0x7b906a6c, 0x6164bd6c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x9503366, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xbf5a97c9, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xe6ff1a14, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x77f31e2f, 0x7b915d8a, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xaab4d7d8, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x966320b, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xb26bddee, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0xb5c8e5d3, 0x7b906a6b, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x317285d3, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x3c9623b1, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x51fd2c7c, 0x7b906a6c, 0x3800010},
+{0x3800000, 0x7b906a6c, 0x7b906a6c, 0x7c106a6c, 0x3800000},
+{0x3400000, 0x0, 0x0, 0x0, 0x3400000},
+{0x3400000, 0x0, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x800000, 0x800000, 0x3400000},
+{0x3400000, 0x0, 0x800002, 0x800002, 0x3400000},
+{0x3400000, 0x0, 0x1398437, 0x1398437, 0x3400000},
+{0x3400000, 0x0, 0xba98d27, 0xba98d27, 0x3400000},
+{0x3400000, 0x0, 0xba98d7a, 0xba98d7a, 0x3400000},
+{0x3400000, 0x0, 0x751f853a, 0x751f853a, 0x3400000},
+{0x3400000, 0x0, 0x7f7ffff0, 0x7f7ffff0, 0x3400000},
+{0x3400000, 0x0, 0x7f7fffff, 0x7f7fffff, 0x3400000},
+{0x3400000, 0x0, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x0, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x0, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x0, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x0, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x0, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x0, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x0, 0x80000000, 0x0, 0x3400000},
+{0x3400000, 0x0, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x0, 0x80800000, 0x80800000, 0x3400000},
+{0x3400000, 0x0, 0x80800002, 0x80800002, 0x3400000},
+{0x3400000, 0x0, 0x81398437, 0x81398437, 0x3400000},
+{0x3400000, 0x0, 0x8ba98d27, 0x8ba98d27, 0x3400000},
+{0x3400000, 0x0, 0x8ba98d7a, 0x8ba98d7a, 0x3400000},
+{0x3400000, 0x0, 0xf51f853a, 0xf51f853a, 0x3400000},
+{0x3400000, 0x0, 0xff7ffff0, 0xff7ffff0, 0x3400000},
+{0x3400000, 0x0, 0xff7fffff, 0xff7fffff, 0x3400000},
+{0x3400000, 0x0, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x0, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x0, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x0, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x0, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x0, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x0, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x0, 0x4f3495cb, 0x4f3495cb, 0x3400000},
+{0x3400000, 0x0, 0xe73a5134, 0xe73a5134, 0x3400000},
+{0x3400000, 0x0, 0x7c994e9e, 0x7c994e9e, 0x3400000},
+{0x3400000, 0x0, 0x6164bd6c, 0x6164bd6c, 0x3400000},
+{0x3400000, 0x0, 0x9503366, 0x9503366, 0x3400000},
+{0x3400000, 0x0, 0xbf5a97c9, 0xbf5a97c9, 0x3400000},
+{0x3400000, 0x0, 0xe6ff1a14, 0xe6ff1a14, 0x3400000},
+{0x3400000, 0x0, 0x77f31e2f, 0x77f31e2f, 0x3400000},
+{0x3400000, 0x0, 0xaab4d7d8, 0xaab4d7d8, 0x3400000},
+{0x3400000, 0x0, 0x966320b, 0x966320b, 0x3400000},
+{0x3400000, 0x0, 0xb26bddee, 0xb26bddee, 0x3400000},
+{0x3400000, 0x0, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400000},
+{0x3400000, 0x0, 0x317285d3, 0x317285d3, 0x3400000},
+{0x3400000, 0x0, 0x3c9623b1, 0x3c9623b1, 0x3400000},
+{0x3400000, 0x0, 0x51fd2c7c, 0x51fd2c7c, 0x3400000},
+{0x3400000, 0x0, 0x7b906a6c, 0x7b906a6c, 0x3400000},
+{0x3400000, 0x1, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x1, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x1, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x1, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x1, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x1, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x1, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x1, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x1, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x1, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x1, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x1, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x1, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x1, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x1, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x1, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x1, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x1, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x1, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x1, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x1, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x1, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x1, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x1, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x1, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x1, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x1, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x1, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x1, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x1, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x1, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x1, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x1, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x1, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x1, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x1, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x1, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x1, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x1, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x1, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x1, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x1, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x1, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x1, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x1, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x1, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x1, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x76, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x76, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x76, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x76, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x76, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x76, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x76, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x76, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x76, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x76, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x76, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x76, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x76, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x76, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x76, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x76, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x76, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x76, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x76, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x76, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x76, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x76, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x76, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x76, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x76, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x76, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x76, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x76, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x76, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x76, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x76, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x76, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x76, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x76, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x76, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x76, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x76, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x76, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x76, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x76, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x76, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x76, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x76, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x76, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x76, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x76, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x76, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x2b94, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x2b94, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x2b94, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x2b94, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x2b94, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x2b94, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x2b94, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x2b94, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x2b94, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x2b94, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x2b94, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x2b94, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x2b94, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x2b94, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x2b94, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x2b94, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x2b94, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x2b94, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x2b94, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x2b94, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x2b94, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x2b94, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x2b94, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x2b94, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x2b94, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x2b94, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x2b94, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x2b94, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x2b94, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x2b94, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x2b94, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x2b94, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x2b94, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x2b94, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x2b94, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x2b94, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x2b94, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x2b94, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x2b94, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x2b94, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x2b94, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x2b94, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x2b94, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x2b94, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x2b94, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x2b94, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x2b94, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x636d24, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x636d24, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x636d24, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x636d24, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x636d24, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x636d24, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x636d24, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x636d24, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x636d24, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x636d24, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x636d24, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x636d24, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x636d24, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x636d24, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x636d24, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x636d24, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x636d24, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x636d24, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x636d24, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x636d24, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x636d24, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x636d24, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x636d24, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x636d24, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x636d24, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x636d24, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x636d24, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x636d24, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x636d24, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x636d24, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x636d24, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x636d24, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x636d24, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x636d24, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x636d24, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x636d24, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x636d24, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x636d24, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x636d24, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x636d24, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x636d24, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x636d24, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x636d24, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x636d24, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x636d24, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x636d24, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x636d24, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7fffff, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x7fffff, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x7fffff, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x7fffff, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x7fffff, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x7fffff, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x7fffff, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7fffff, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7fffff, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x7fffff, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fffff, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fffff, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fffff, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffff, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffff, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffff, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x7fffff, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x7fffff, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x7fffff, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x7fffff, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x7fffff, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x7fffff, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x7fffff, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x7fffff, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x7fffff, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x7fffff, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fffff, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fffff, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fffff, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffff, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffff, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffff, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x7fffff, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x7fffff, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7fffff, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x7fffff, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x7fffff, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x7fffff, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x7fffff, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x7fffff, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x7fffff, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x7fffff, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x7fffff, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x7fffff, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x7fffff, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x7fffff, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x7fffff, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x800000, 0x0, 0x800000, 0x3400000},
+{0x3400000, 0x800000, 0x1, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x76, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x2b94, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x636d24, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x7fffff, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x800000, 0x1000000, 0x3400000},
+{0x3400000, 0x800000, 0x800002, 0x1000001, 0x3400000},
+{0x3400000, 0x800000, 0x1398437, 0x1798437, 0x3400000},
+{0x3400000, 0x800000, 0xba98d27, 0xba98d29, 0x3400000},
+{0x3400000, 0x800000, 0xba98d7a, 0xba98d7c, 0x3400000},
+{0x3400000, 0x800000, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x800000, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x800000, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x800000, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x800000, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800000, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800000, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800000, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800000, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800000, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800000, 0x80000000, 0x800000, 0x3400000},
+{0x3400000, 0x800000, 0x80000001, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x80000076, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x80002b94, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x80636d24, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x807fffff, 0x800000, 0x3400080},
+{0x3400000, 0x800000, 0x80800000, 0x0, 0x3400000},
+{0x3400000, 0x800000, 0x80800002, 0x0, 0x3400008},
+{0x3400000, 0x800000, 0x81398437, 0x80f3086e, 0x3400000},
+{0x3400000, 0x800000, 0x8ba98d27, 0x8ba98d25, 0x3400000},
+{0x3400000, 0x800000, 0x8ba98d7a, 0x8ba98d78, 0x3400000},
+{0x3400000, 0x800000, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x800000, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x800000, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x800000, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x800000, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800000, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800000, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800000, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800000, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800000, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800000, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x800000, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x800000, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x800000, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x800000, 0x9503366, 0x95033a6, 0x3400000},
+{0x3400000, 0x800000, 0xbf5a97c9, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0x800000, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x800000, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x800000, 0xaab4d7d8, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0x800000, 0x966320b, 0x966324b, 0x3400000},
+{0x3400000, 0x800000, 0xb26bddee, 0xb26bdded, 0x3400010},
+{0x3400000, 0x800000, 0xb5c8e5d3, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0x800000, 0x317285d3, 0x317285d4, 0x3400010},
+{0x3400000, 0x800000, 0x3c9623b1, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x800000, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x800000, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x800002, 0x0, 0x800002, 0x3400000},
+{0x3400000, 0x800002, 0x1, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x76, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x2b94, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x636d24, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x7fffff, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x800000, 0x1000001, 0x3400000},
+{0x3400000, 0x800002, 0x800002, 0x1000002, 0x3400000},
+{0x3400000, 0x800002, 0x1398437, 0x1798438, 0x3400000},
+{0x3400000, 0x800002, 0xba98d27, 0xba98d2a, 0x3400010},
+{0x3400000, 0x800002, 0xba98d7a, 0xba98d7d, 0x3400010},
+{0x3400000, 0x800002, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x800002, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x800002, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x800002, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x800002, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800002, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800002, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800002, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800002, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800002, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800002, 0x80000000, 0x800002, 0x3400000},
+{0x3400000, 0x800002, 0x80000001, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x80000076, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x80002b94, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x80636d24, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x807fffff, 0x800002, 0x3400080},
+{0x3400000, 0x800002, 0x80800000, 0x0, 0x3400008},
+{0x3400000, 0x800002, 0x80800002, 0x0, 0x3400000},
+{0x3400000, 0x800002, 0x81398437, 0x80f3086c, 0x3400000},
+{0x3400000, 0x800002, 0x8ba98d27, 0x8ba98d24, 0x3400010},
+{0x3400000, 0x800002, 0x8ba98d7a, 0x8ba98d77, 0x3400010},
+{0x3400000, 0x800002, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x800002, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x800002, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x800002, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x800002, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800002, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800002, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x800002, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800002, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800002, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x800002, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x800002, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x800002, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x800002, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x800002, 0x9503366, 0x95033a7, 0x3400010},
+{0x3400000, 0x800002, 0xbf5a97c9, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0x800002, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x800002, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x800002, 0xaab4d7d8, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0x800002, 0x966320b, 0x966324c, 0x3400010},
+{0x3400000, 0x800002, 0xb26bddee, 0xb26bdded, 0x3400010},
+{0x3400000, 0x800002, 0xb5c8e5d3, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0x800002, 0x317285d3, 0x317285d4, 0x3400010},
+{0x3400000, 0x800002, 0x3c9623b1, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x800002, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x800002, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x1398437, 0x0, 0x1398437, 0x3400000},
+{0x3400000, 0x1398437, 0x1, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x76, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x2b94, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x636d24, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x7fffff, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x800000, 0x1798437, 0x3400000},
+{0x3400000, 0x1398437, 0x800002, 0x1798438, 0x3400000},
+{0x3400000, 0x1398437, 0x1398437, 0x1b98437, 0x3400000},
+{0x3400000, 0x1398437, 0xba98d27, 0xba98d2d, 0x3400010},
+{0x3400000, 0x1398437, 0xba98d7a, 0xba98d80, 0x3400010},
+{0x3400000, 0x1398437, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x1398437, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x1398437, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x1398437, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x1398437, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x1398437, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x1398437, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x1398437, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x1398437, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x1398437, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x1398437, 0x80000000, 0x1398437, 0x3400000},
+{0x3400000, 0x1398437, 0x80000001, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x80000076, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x80002b94, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x80636d24, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x807fffff, 0x1398437, 0x3400080},
+{0x3400000, 0x1398437, 0x80800000, 0xf3086e, 0x3400000},
+{0x3400000, 0x1398437, 0x80800002, 0xf3086c, 0x3400000},
+{0x3400000, 0x1398437, 0x81398437, 0x0, 0x3400000},
+{0x3400000, 0x1398437, 0x8ba98d27, 0x8ba98d21, 0x3400010},
+{0x3400000, 0x1398437, 0x8ba98d7a, 0x8ba98d74, 0x3400010},
+{0x3400000, 0x1398437, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x1398437, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x1398437, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x1398437, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x1398437, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x1398437, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x1398437, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x1398437, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x1398437, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x1398437, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x1398437, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x1398437, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x1398437, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x1398437, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x1398437, 0x9503366, 0x9503420, 0x3400010},
+{0x3400000, 0x1398437, 0xbf5a97c9, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0x1398437, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x1398437, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x1398437, 0xaab4d7d8, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0x1398437, 0x966320b, 0x96632c5, 0x3400010},
+{0x3400000, 0x1398437, 0xb26bddee, 0xb26bdded, 0x3400010},
+{0x3400000, 0x1398437, 0xb5c8e5d3, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0x1398437, 0x317285d3, 0x317285d4, 0x3400010},
+{0x3400000, 0x1398437, 0x3c9623b1, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x1398437, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x1398437, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0xba98d27, 0x0, 0xba98d27, 0x3400000},
+{0x3400000, 0xba98d27, 0x1, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x76, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x2b94, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x636d24, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x7fffff, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x800000, 0xba98d29, 0x3400000},
+{0x3400000, 0xba98d27, 0x800002, 0xba98d2a, 0x3400010},
+{0x3400000, 0xba98d27, 0x1398437, 0xba98d2d, 0x3400010},
+{0x3400000, 0xba98d27, 0xba98d27, 0xc298d27, 0x3400000},
+{0x3400000, 0xba98d27, 0xba98d7a, 0xc298d51, 0x3400010},
+{0x3400000, 0xba98d27, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0xba98d27, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0xba98d27, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0xba98d27, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xba98d27, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d27, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d27, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d27, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d27, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d27, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d27, 0x80000000, 0xba98d27, 0x3400000},
+{0x3400000, 0xba98d27, 0x80000001, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x80000076, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x80002b94, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x80636d24, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x807fffff, 0xba98d27, 0x3400080},
+{0x3400000, 0xba98d27, 0x80800000, 0xba98d25, 0x3400000},
+{0x3400000, 0xba98d27, 0x80800002, 0xba98d25, 0x3400010},
+{0x3400000, 0xba98d27, 0x81398437, 0xba98d22, 0x3400010},
+{0x3400000, 0xba98d27, 0x8ba98d27, 0x0, 0x3400000},
+{0x3400000, 0xba98d27, 0x8ba98d7a, 0x83260000, 0x3400000},
+{0x3400000, 0xba98d27, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0xba98d27, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0xba98d27, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xba98d27, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xba98d27, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d27, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d27, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d27, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d27, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d27, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d27, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0xba98d27, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0xba98d27, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0xba98d27, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0xba98d27, 0x9503366, 0xbb00ec3, 0x3400010},
+{0x3400000, 0xba98d27, 0xbf5a97c9, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xba98d27, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xba98d27, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0xba98d27, 0xaab4d7d8, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xba98d27, 0x966320b, 0xbb0beb8, 0x3400010},
+{0x3400000, 0xba98d27, 0xb26bddee, 0xb26bdded, 0x3400010},
+{0x3400000, 0xba98d27, 0xb5c8e5d3, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xba98d27, 0x317285d3, 0x317285d4, 0x3400010},
+{0x3400000, 0xba98d27, 0x3c9623b1, 0x3c9623b2, 0x3400010},
+{0x3400000, 0xba98d27, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0xba98d27, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0xba98d7a, 0x0, 0xba98d7a, 0x3400000},
+{0x3400000, 0xba98d7a, 0x1, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x76, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x2b94, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x636d24, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x7fffff, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x800000, 0xba98d7c, 0x3400000},
+{0x3400000, 0xba98d7a, 0x800002, 0xba98d7d, 0x3400010},
+{0x3400000, 0xba98d7a, 0x1398437, 0xba98d80, 0x3400010},
+{0x3400000, 0xba98d7a, 0xba98d27, 0xc298d51, 0x3400010},
+{0x3400000, 0xba98d7a, 0xba98d7a, 0xc298d7a, 0x3400000},
+{0x3400000, 0xba98d7a, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0xba98d7a, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0xba98d7a, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0xba98d7a, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xba98d7a, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d7a, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d7a, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d7a, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d7a, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d7a, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d7a, 0x80000000, 0xba98d7a, 0x3400000},
+{0x3400000, 0xba98d7a, 0x80000001, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x80000076, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x80002b94, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x80636d24, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x807fffff, 0xba98d7a, 0x3400080},
+{0x3400000, 0xba98d7a, 0x80800000, 0xba98d78, 0x3400000},
+{0x3400000, 0xba98d7a, 0x80800002, 0xba98d78, 0x3400010},
+{0x3400000, 0xba98d7a, 0x81398437, 0xba98d75, 0x3400010},
+{0x3400000, 0xba98d7a, 0x8ba98d27, 0x3260000, 0x3400000},
+{0x3400000, 0xba98d7a, 0x8ba98d7a, 0x0, 0x3400000},
+{0x3400000, 0xba98d7a, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0xba98d7a, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0xba98d7a, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xba98d7a, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xba98d7a, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d7a, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d7a, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xba98d7a, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d7a, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d7a, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xba98d7a, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0xba98d7a, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0xba98d7a, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0xba98d7a, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0xba98d7a, 0x9503366, 0xbb00f16, 0x3400010},
+{0x3400000, 0xba98d7a, 0xbf5a97c9, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xba98d7a, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xba98d7a, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0xba98d7a, 0xaab4d7d8, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xba98d7a, 0x966320b, 0xbb0bf0b, 0x3400010},
+{0x3400000, 0xba98d7a, 0xb26bddee, 0xb26bdded, 0x3400010},
+{0x3400000, 0xba98d7a, 0xb5c8e5d3, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xba98d7a, 0x317285d3, 0x317285d4, 0x3400010},
+{0x3400000, 0xba98d7a, 0x3c9623b1, 0x3c9623b2, 0x3400010},
+{0x3400000, 0xba98d7a, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0xba98d7a, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x751f853a, 0x0, 0x751f853a, 0x3400000},
+{0x3400000, 0x751f853a, 0x1, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x76, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x2b94, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x636d24, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x7fffff, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x800000, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0x800002, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0x1398437, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0xba98d27, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0xba98d7a, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0x751f853a, 0x759f853a, 0x3400000},
+{0x3400000, 0x751f853a, 0x7f7ffff0, 0x7f7ffffa, 0x3400010},
+{0x3400000, 0x751f853a, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x751f853a, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x751f853a, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x751f853a, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x751f853a, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x751f853a, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x751f853a, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x751f853a, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x751f853a, 0x80000000, 0x751f853a, 0x3400000},
+{0x3400000, 0x751f853a, 0x80000001, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x80000076, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x80002b94, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x80636d24, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x807fffff, 0x751f853a, 0x3400080},
+{0x3400000, 0x751f853a, 0x80800000, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0x80800002, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0x81398437, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0x8ba98d27, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0x8ba98d7a, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0xf51f853a, 0x0, 0x3400000},
+{0x3400000, 0x751f853a, 0xff7ffff0, 0xff7fffe6, 0x3400010},
+{0x3400000, 0x751f853a, 0xff7fffff, 0xff7ffff5, 0x3400010},
+{0x3400000, 0x751f853a, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x751f853a, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x751f853a, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x751f853a, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x751f853a, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x751f853a, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x751f853a, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x751f853a, 0x4f3495cb, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0xe73a5134, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0x7c994e9e, 0x7c994fde, 0x3400010},
+{0x3400000, 0x751f853a, 0x6164bd6c, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0x9503366, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0xbf5a97c9, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0xe6ff1a14, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0x77f31e2f, 0x77f81a59, 0x3400010},
+{0x3400000, 0x751f853a, 0xaab4d7d8, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0x966320b, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0xb26bddee, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0xb5c8e5d3, 0x751f853a, 0x3400010},
+{0x3400000, 0x751f853a, 0x317285d3, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0x3c9623b1, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0x51fd2c7c, 0x751f853b, 0x3400010},
+{0x3400000, 0x751f853a, 0x7b906a6c, 0x7b906f69, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x0, 0x7f7ffff0, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0x1, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x76, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x2b94, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x636d24, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x7fffff, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x800000, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x800002, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x1398437, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xba98d27, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xba98d7a, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x751f853a, 0x7f7ffffa, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x7f7ffff0, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7ffff0, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7ffff0, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7ffff0, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7ffff0, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7ffff0, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0x80000000, 0x7f7ffff0, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0x80000001, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x80000076, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x80002b94, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x80636d24, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x807fffff, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x7f7ffff0, 0x80800000, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x80800002, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x81398437, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x8ba98d27, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x8ba98d7a, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xf51f853a, 0x7f7fffe7, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xff7ffff0, 0x0, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0xff7fffff, 0xf5700000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7ffff0, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7ffff0, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7ffff0, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7ffff0, 0x4f3495cb, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xe73a5134, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x7c994e9e, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7ffff0, 0x6164bd6c, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x9503366, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xbf5a97c9, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xe6ff1a14, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x77f31e2f, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7ffff0, 0xaab4d7d8, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x966320b, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xb26bddee, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0xb5c8e5d3, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x317285d3, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x3c9623b1, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x51fd2c7c, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x7f7ffff0, 0x7b906a6c, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x0, 0x7f7fffff, 0x3400000},
+{0x3400000, 0x7f7fffff, 0x1, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x76, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x2b94, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x636d24, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x800000, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x800002, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x1398437, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0xba98d27, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0xba98d7a, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x751f853a, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x7f7ffff0, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7fffff, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7fffff, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7fffff, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0x80000000, 0x7f7fffff, 0x3400000},
+{0x3400000, 0x7f7fffff, 0x80000001, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x80000076, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x80002b94, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x80636d24, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x807fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x7f7fffff, 0x80800000, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0x80800002, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0x81398437, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0x8ba98d27, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0x8ba98d7a, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0xf51f853a, 0x7f7ffff6, 0x3400010},
+{0x3400000, 0x7f7fffff, 0xff7ffff0, 0x75700000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0xff7fffff, 0x0, 0x3400000},
+{0x3400000, 0x7f7fffff, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7fffff, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7fffff, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f7fffff, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f7fffff, 0x4f3495cb, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0xe73a5134, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0x7c994e9e, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x6164bd6c, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x9503366, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0xbf5a97c9, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0xe6ff1a14, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0x77f31e2f, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0xaab4d7d8, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0x966320b, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0xb26bddee, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0xb5c8e5d3, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x7f7fffff, 0x317285d3, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x3c9623b1, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x51fd2c7c, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f7fffff, 0x7b906a6c, 0x7f800000, 0x3400014},
+{0x3400000, 0x7f800000, 0x0, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x1, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x76, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x2b94, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x636d24, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x7fffff, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x800002, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x1398437, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xba98d27, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xba98d7a, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x751f853a, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x7f7ffff0, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x7f7fffff, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800000, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800000, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800000, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f800000, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f800000, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f800000, 0x80000000, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x80000001, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x80000076, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x80002b94, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x80636d24, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x807fffff, 0x7f800000, 0x3400080},
+{0x3400000, 0x7f800000, 0x80800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x80800002, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x81398437, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x8ba98d27, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x8ba98d7a, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xf51f853a, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xff7ffff0, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xff7fffff, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xff800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800000, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800000, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800000, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800000, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f800000, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f800000, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7f800000, 0x4f3495cb, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xe73a5134, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x7c994e9e, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x6164bd6c, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x9503366, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xbf5a97c9, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xe6ff1a14, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x77f31e2f, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xaab4d7d8, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x966320b, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xb26bddee, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0xb5c8e5d3, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x317285d3, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x3c9623b1, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x51fd2c7c, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800000, 0x7b906a6c, 0x7f800000, 0x3400000},
+{0x3400000, 0x7f800001, 0x0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x1, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x76, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x2b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x7fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x1398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x751f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7f7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7f7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7f800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7fc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7fd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7fffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x80000000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x80000001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x80000076, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x80002b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x80636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x807fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f800001, 0x80800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x80800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x81398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x8ba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x8ba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xf51f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xff7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xff7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xff800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xffc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xffd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xffffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x4f3495cb, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xe73a5134, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7c994e9e, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x6164bd6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x9503366, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xbf5a97c9, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xe6ff1a14, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x77f31e2f, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xaab4d7d8, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x966320b, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xb26bddee, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0xb5c8e5d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x317285d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x3c9623b1, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x51fd2c7c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f800001, 0x7b906a6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x1, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x76, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x2b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x7fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x1398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x751f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7f7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7f7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7f800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7fc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7fd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7fffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x80000000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x80000001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x80000076, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x80002b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x80636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x807fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7f984a37, 0x80800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x80800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x81398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x8ba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x8ba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xf51f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xff7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xff7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xff800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xffc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xffd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xffffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x4f3495cb, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xe73a5134, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7c994e9e, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x6164bd6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x9503366, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xbf5a97c9, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xe6ff1a14, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x77f31e2f, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xaab4d7d8, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x966320b, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xb26bddee, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0xb5c8e5d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x317285d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x3c9623b1, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x51fd2c7c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7f984a37, 0x7b906a6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x1, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x76, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x2b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x7fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x1398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x751f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7f7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7f7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7f800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7fc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7fd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7fffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x80000000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x80000001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x80000076, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x80002b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x80636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x807fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x7fbfffff, 0x80800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x80800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x81398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x8ba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x8ba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xf51f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xff7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xff7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xff800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xffc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xffd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xffffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x4f3495cb, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xe73a5134, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7c994e9e, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x6164bd6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x9503366, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xbf5a97c9, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xe6ff1a14, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x77f31e2f, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xaab4d7d8, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x966320b, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xb26bddee, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0xb5c8e5d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x317285d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x3c9623b1, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x51fd2c7c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fbfffff, 0x7b906a6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fc00000, 0x0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x1, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x76, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x2b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x7fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x1398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x751f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x7f7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x7f7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x7f800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fc00000, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fc00000, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fc00000, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x80000000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x80000001, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x80000076, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x80002b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x80636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x807fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fc00000, 0x80800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x80800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x81398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x8ba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x8ba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xf51f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xff7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xff7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xff800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fc00000, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fc00000, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fc00000, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x4f3495cb, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xe73a5134, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x7c994e9e, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x6164bd6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x9503366, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xbf5a97c9, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xe6ff1a14, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x77f31e2f, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xaab4d7d8, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x966320b, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xb26bddee, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0xb5c8e5d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x317285d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x3c9623b1, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x51fd2c7c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fc00000, 0x7b906a6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x1, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x76, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x2b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x7fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x1398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x751f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x7f7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x7f7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x7f800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fd9ba98, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fd9ba98, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fd9ba98, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x80000000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x80000001, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x80000076, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x80002b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x80636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x807fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fd9ba98, 0x80800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x80800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x81398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x8ba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x8ba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xf51f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xff7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xff7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xff800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fd9ba98, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fd9ba98, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fd9ba98, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x4f3495cb, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xe73a5134, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x7c994e9e, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x6164bd6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x9503366, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xbf5a97c9, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xe6ff1a14, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x77f31e2f, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xaab4d7d8, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x966320b, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xb26bddee, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0xb5c8e5d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x317285d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x3c9623b1, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x51fd2c7c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fd9ba98, 0x7b906a6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x1, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x76, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x2b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x7fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x1398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x751f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x7f7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x7f7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x7f800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fffffff, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fffffff, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fffffff, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x80000000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x80000001, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x80000076, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x80002b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x80636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x807fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x7fffffff, 0x80800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x80800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x81398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x8ba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x8ba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xf51f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xff7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xff7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xff800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fffffff, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fffffff, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7fffffff, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x4f3495cb, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xe73a5134, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x7c994e9e, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x6164bd6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x9503366, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xbf5a97c9, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xe6ff1a14, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x77f31e2f, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xaab4d7d8, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x966320b, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xb26bddee, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0xb5c8e5d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x317285d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x3c9623b1, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x51fd2c7c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7fffffff, 0x7b906a6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80000000, 0x0, 0x0, 0x3400000},
+{0x3400000, 0x80000000, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x800000, 0x800000, 0x3400000},
+{0x3400000, 0x80000000, 0x800002, 0x800002, 0x3400000},
+{0x3400000, 0x80000000, 0x1398437, 0x1398437, 0x3400000},
+{0x3400000, 0x80000000, 0xba98d27, 0xba98d27, 0x3400000},
+{0x3400000, 0x80000000, 0xba98d7a, 0xba98d7a, 0x3400000},
+{0x3400000, 0x80000000, 0x751f853a, 0x751f853a, 0x3400000},
+{0x3400000, 0x80000000, 0x7f7ffff0, 0x7f7ffff0, 0x3400000},
+{0x3400000, 0x80000000, 0x7f7fffff, 0x7f7fffff, 0x3400000},
+{0x3400000, 0x80000000, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x80000000, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80000000, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80000000, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80000000, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80000000, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80000000, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80000000, 0x80000000, 0x80000000, 0x3400000},
+{0x3400000, 0x80000000, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x80000000, 0x80800000, 0x80800000, 0x3400000},
+{0x3400000, 0x80000000, 0x80800002, 0x80800002, 0x3400000},
+{0x3400000, 0x80000000, 0x81398437, 0x81398437, 0x3400000},
+{0x3400000, 0x80000000, 0x8ba98d27, 0x8ba98d27, 0x3400000},
+{0x3400000, 0x80000000, 0x8ba98d7a, 0x8ba98d7a, 0x3400000},
+{0x3400000, 0x80000000, 0xf51f853a, 0xf51f853a, 0x3400000},
+{0x3400000, 0x80000000, 0xff7ffff0, 0xff7ffff0, 0x3400000},
+{0x3400000, 0x80000000, 0xff7fffff, 0xff7fffff, 0x3400000},
+{0x3400000, 0x80000000, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x80000000, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80000000, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80000000, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80000000, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80000000, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80000000, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80000000, 0x4f3495cb, 0x4f3495cb, 0x3400000},
+{0x3400000, 0x80000000, 0xe73a5134, 0xe73a5134, 0x3400000},
+{0x3400000, 0x80000000, 0x7c994e9e, 0x7c994e9e, 0x3400000},
+{0x3400000, 0x80000000, 0x6164bd6c, 0x6164bd6c, 0x3400000},
+{0x3400000, 0x80000000, 0x9503366, 0x9503366, 0x3400000},
+{0x3400000, 0x80000000, 0xbf5a97c9, 0xbf5a97c9, 0x3400000},
+{0x3400000, 0x80000000, 0xe6ff1a14, 0xe6ff1a14, 0x3400000},
+{0x3400000, 0x80000000, 0x77f31e2f, 0x77f31e2f, 0x3400000},
+{0x3400000, 0x80000000, 0xaab4d7d8, 0xaab4d7d8, 0x3400000},
+{0x3400000, 0x80000000, 0x966320b, 0x966320b, 0x3400000},
+{0x3400000, 0x80000000, 0xb26bddee, 0xb26bddee, 0x3400000},
+{0x3400000, 0x80000000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400000},
+{0x3400000, 0x80000000, 0x317285d3, 0x317285d3, 0x3400000},
+{0x3400000, 0x80000000, 0x3c9623b1, 0x3c9623b1, 0x3400000},
+{0x3400000, 0x80000000, 0x51fd2c7c, 0x51fd2c7c, 0x3400000},
+{0x3400000, 0x80000000, 0x7b906a6c, 0x7b906a6c, 0x3400000},
+{0x3400000, 0x80000001, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x80000001, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x80000001, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x80000001, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x80000001, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x80000001, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x80000001, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x80000001, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x80000001, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x80000001, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000001, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000001, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000001, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000001, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000001, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000001, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x80000001, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x80000001, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x80000001, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x80000001, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x80000001, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x80000001, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x80000001, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x80000001, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x80000001, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x80000001, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000001, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000001, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000001, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000001, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000001, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000001, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x80000001, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x80000001, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x80000001, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x80000001, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x80000001, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x80000001, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x80000001, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x80000001, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x80000001, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x80000001, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x80000001, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x80000001, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x80000001, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x80000001, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x80000001, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x80000076, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x80000076, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x80000076, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x80000076, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x80000076, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x80000076, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x80000076, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x80000076, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x80000076, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x80000076, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000076, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000076, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000076, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000076, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000076, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000076, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x80000076, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x80000076, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x80000076, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x80000076, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x80000076, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x80000076, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x80000076, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x80000076, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x80000076, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x80000076, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000076, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000076, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80000076, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000076, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000076, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80000076, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x80000076, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x80000076, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x80000076, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x80000076, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x80000076, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x80000076, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x80000076, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x80000076, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x80000076, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x80000076, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x80000076, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x80000076, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x80000076, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x80000076, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x80000076, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x80002b94, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x80002b94, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x80002b94, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x80002b94, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x80002b94, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x80002b94, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x80002b94, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x80002b94, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x80002b94, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x80002b94, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80002b94, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80002b94, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80002b94, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80002b94, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80002b94, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80002b94, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x80002b94, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x80002b94, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x80002b94, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x80002b94, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x80002b94, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x80002b94, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x80002b94, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x80002b94, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x80002b94, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x80002b94, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80002b94, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80002b94, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80002b94, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80002b94, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80002b94, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80002b94, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x80002b94, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x80002b94, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x80002b94, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x80002b94, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x80002b94, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x80002b94, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x80002b94, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x80002b94, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x80002b94, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x80002b94, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x80002b94, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x80002b94, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x80002b94, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x80002b94, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x80002b94, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x80636d24, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x80636d24, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x80636d24, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x80636d24, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x80636d24, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x80636d24, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x80636d24, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x80636d24, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x80636d24, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x80636d24, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80636d24, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80636d24, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80636d24, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80636d24, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80636d24, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80636d24, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x80636d24, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x80636d24, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x80636d24, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x80636d24, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x80636d24, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x80636d24, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x80636d24, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x80636d24, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x80636d24, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x80636d24, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80636d24, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80636d24, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x80636d24, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80636d24, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80636d24, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x80636d24, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x80636d24, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x80636d24, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x80636d24, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x80636d24, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x80636d24, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x80636d24, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x80636d24, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x80636d24, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x80636d24, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x80636d24, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x80636d24, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x80636d24, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x80636d24, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x80636d24, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x80636d24, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x807fffff, 0x0, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x1, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x76, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x2b94, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x636d24, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x7fffff, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x800000, 0x800000, 0x3400080},
+{0x3400000, 0x807fffff, 0x800002, 0x800002, 0x3400080},
+{0x3400000, 0x807fffff, 0x1398437, 0x1398437, 0x3400080},
+{0x3400000, 0x807fffff, 0xba98d27, 0xba98d27, 0x3400080},
+{0x3400000, 0x807fffff, 0xba98d7a, 0xba98d7a, 0x3400080},
+{0x3400000, 0x807fffff, 0x751f853a, 0x751f853a, 0x3400080},
+{0x3400000, 0x807fffff, 0x7f7ffff0, 0x7f7ffff0, 0x3400080},
+{0x3400000, 0x807fffff, 0x7f7fffff, 0x7f7fffff, 0x3400080},
+{0x3400000, 0x807fffff, 0x7f800000, 0x7f800000, 0x3400080},
+{0x3400000, 0x807fffff, 0x7f800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x807fffff, 0x7f984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x807fffff, 0x7fbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x807fffff, 0x7fc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x807fffff, 0x7fd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x807fffff, 0x7fffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x807fffff, 0x80000000, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x80000001, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x80000076, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x80002b94, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x80636d24, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x807fffff, 0x0, 0x3400080},
+{0x3400000, 0x807fffff, 0x80800000, 0x80800000, 0x3400080},
+{0x3400000, 0x807fffff, 0x80800002, 0x80800002, 0x3400080},
+{0x3400000, 0x807fffff, 0x81398437, 0x81398437, 0x3400080},
+{0x3400000, 0x807fffff, 0x8ba98d27, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x807fffff, 0x8ba98d7a, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x807fffff, 0xf51f853a, 0xf51f853a, 0x3400080},
+{0x3400000, 0x807fffff, 0xff7ffff0, 0xff7ffff0, 0x3400080},
+{0x3400000, 0x807fffff, 0xff7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0x807fffff, 0xff800000, 0xff800000, 0x3400080},
+{0x3400000, 0x807fffff, 0xff800001, 0x7fc00000, 0x3400081},
+{0x3400000, 0x807fffff, 0xff984a37, 0x7fc00000, 0x3400081},
+{0x3400000, 0x807fffff, 0xffbfffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0x807fffff, 0xffc00000, 0x7fc00000, 0x3400080},
+{0x3400000, 0x807fffff, 0xffd9ba98, 0x7fc00000, 0x3400080},
+{0x3400000, 0x807fffff, 0xffffffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0x807fffff, 0x4f3495cb, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x807fffff, 0xe73a5134, 0xe73a5134, 0x3400080},
+{0x3400000, 0x807fffff, 0x7c994e9e, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x807fffff, 0x6164bd6c, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x807fffff, 0x9503366, 0x9503366, 0x3400080},
+{0x3400000, 0x807fffff, 0xbf5a97c9, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0x807fffff, 0xe6ff1a14, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0x807fffff, 0x77f31e2f, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x807fffff, 0xaab4d7d8, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0x807fffff, 0x966320b, 0x966320b, 0x3400080},
+{0x3400000, 0x807fffff, 0xb26bddee, 0xb26bddee, 0x3400080},
+{0x3400000, 0x807fffff, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0x807fffff, 0x317285d3, 0x317285d3, 0x3400080},
+{0x3400000, 0x807fffff, 0x3c9623b1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x807fffff, 0x51fd2c7c, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x807fffff, 0x7b906a6c, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x80800000, 0x0, 0x80800000, 0x3400000},
+{0x3400000, 0x80800000, 0x1, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x76, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x2b94, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x636d24, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x7fffff, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x800000, 0x0, 0x3400000},
+{0x3400000, 0x80800000, 0x800002, 0x0, 0x3400008},
+{0x3400000, 0x80800000, 0x1398437, 0xf3086e, 0x3400000},
+{0x3400000, 0x80800000, 0xba98d27, 0xba98d25, 0x3400000},
+{0x3400000, 0x80800000, 0xba98d7a, 0xba98d78, 0x3400000},
+{0x3400000, 0x80800000, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0x80800000, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x80800000, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x80800000, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x80800000, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800000, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800000, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800000, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800000, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800000, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800000, 0x80000000, 0x80800000, 0x3400000},
+{0x3400000, 0x80800000, 0x80000001, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x80000076, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x80002b94, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x80636d24, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x807fffff, 0x80800000, 0x3400080},
+{0x3400000, 0x80800000, 0x80800000, 0x81000000, 0x3400000},
+{0x3400000, 0x80800000, 0x80800002, 0x81000001, 0x3400000},
+{0x3400000, 0x80800000, 0x81398437, 0x81798437, 0x3400000},
+{0x3400000, 0x80800000, 0x8ba98d27, 0x8ba98d29, 0x3400000},
+{0x3400000, 0x80800000, 0x8ba98d7a, 0x8ba98d7c, 0x3400000},
+{0x3400000, 0x80800000, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0x80800000, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0x80800000, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0x80800000, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x80800000, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800000, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800000, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800000, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800000, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800000, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800000, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x80800000, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0x80800000, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x80800000, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x80800000, 0x9503366, 0x9503326, 0x3400000},
+{0x3400000, 0x80800000, 0xbf5a97c9, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0x80800000, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0x80800000, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x80800000, 0xaab4d7d8, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0x80800000, 0x966320b, 0x96631cb, 0x3400000},
+{0x3400000, 0x80800000, 0xb26bddee, 0xb26bddee, 0x3400010},
+{0x3400000, 0x80800000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0x80800000, 0x317285d3, 0x317285d3, 0x3400010},
+{0x3400000, 0x80800000, 0x3c9623b1, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x80800000, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x80800000, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x80800002, 0x0, 0x80800002, 0x3400000},
+{0x3400000, 0x80800002, 0x1, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x76, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x2b94, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x636d24, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x7fffff, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x800000, 0x0, 0x3400008},
+{0x3400000, 0x80800002, 0x800002, 0x0, 0x3400000},
+{0x3400000, 0x80800002, 0x1398437, 0xf3086c, 0x3400000},
+{0x3400000, 0x80800002, 0xba98d27, 0xba98d25, 0x3400010},
+{0x3400000, 0x80800002, 0xba98d7a, 0xba98d78, 0x3400010},
+{0x3400000, 0x80800002, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0x80800002, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x80800002, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x80800002, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x80800002, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800002, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800002, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800002, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800002, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800002, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800002, 0x80000000, 0x80800002, 0x3400000},
+{0x3400000, 0x80800002, 0x80000001, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x80000076, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x80002b94, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x80636d24, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x807fffff, 0x80800002, 0x3400080},
+{0x3400000, 0x80800002, 0x80800000, 0x81000001, 0x3400000},
+{0x3400000, 0x80800002, 0x80800002, 0x81000002, 0x3400000},
+{0x3400000, 0x80800002, 0x81398437, 0x81798438, 0x3400000},
+{0x3400000, 0x80800002, 0x8ba98d27, 0x8ba98d29, 0x3400010},
+{0x3400000, 0x80800002, 0x8ba98d7a, 0x8ba98d7c, 0x3400010},
+{0x3400000, 0x80800002, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0x80800002, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0x80800002, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0x80800002, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x80800002, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800002, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800002, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x80800002, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800002, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800002, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x80800002, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x80800002, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0x80800002, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x80800002, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x80800002, 0x9503366, 0x9503326, 0x3400010},
+{0x3400000, 0x80800002, 0xbf5a97c9, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0x80800002, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0x80800002, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x80800002, 0xaab4d7d8, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0x80800002, 0x966320b, 0x96631cb, 0x3400010},
+{0x3400000, 0x80800002, 0xb26bddee, 0xb26bddee, 0x3400010},
+{0x3400000, 0x80800002, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0x80800002, 0x317285d3, 0x317285d3, 0x3400010},
+{0x3400000, 0x80800002, 0x3c9623b1, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x80800002, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x80800002, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x81398437, 0x0, 0x81398437, 0x3400000},
+{0x3400000, 0x81398437, 0x1, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x76, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x2b94, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x636d24, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x7fffff, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x800000, 0x80f3086e, 0x3400000},
+{0x3400000, 0x81398437, 0x800002, 0x80f3086c, 0x3400000},
+{0x3400000, 0x81398437, 0x1398437, 0x0, 0x3400000},
+{0x3400000, 0x81398437, 0xba98d27, 0xba98d22, 0x3400010},
+{0x3400000, 0x81398437, 0xba98d7a, 0xba98d75, 0x3400010},
+{0x3400000, 0x81398437, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0x81398437, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x81398437, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x81398437, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x81398437, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x81398437, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x81398437, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x81398437, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x81398437, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x81398437, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x81398437, 0x80000000, 0x81398437, 0x3400000},
+{0x3400000, 0x81398437, 0x80000001, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x80000076, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x80002b94, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x80636d24, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x807fffff, 0x81398437, 0x3400080},
+{0x3400000, 0x81398437, 0x80800000, 0x81798437, 0x3400000},
+{0x3400000, 0x81398437, 0x80800002, 0x81798438, 0x3400000},
+{0x3400000, 0x81398437, 0x81398437, 0x81b98437, 0x3400000},
+{0x3400000, 0x81398437, 0x8ba98d27, 0x8ba98d2c, 0x3400010},
+{0x3400000, 0x81398437, 0x8ba98d7a, 0x8ba98d7f, 0x3400010},
+{0x3400000, 0x81398437, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0x81398437, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0x81398437, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0x81398437, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x81398437, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x81398437, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x81398437, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x81398437, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x81398437, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x81398437, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x81398437, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x81398437, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0x81398437, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x81398437, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x81398437, 0x9503366, 0x95032ad, 0x3400010},
+{0x3400000, 0x81398437, 0xbf5a97c9, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0x81398437, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0x81398437, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x81398437, 0xaab4d7d8, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0x81398437, 0x966320b, 0x9663152, 0x3400010},
+{0x3400000, 0x81398437, 0xb26bddee, 0xb26bddee, 0x3400010},
+{0x3400000, 0x81398437, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0x81398437, 0x317285d3, 0x317285d3, 0x3400010},
+{0x3400000, 0x81398437, 0x3c9623b1, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x81398437, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x81398437, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x0, 0x8ba98d27, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x1, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x76, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x2b94, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x636d24, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x7fffff, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x800000, 0x8ba98d25, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x800002, 0x8ba98d24, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x1398437, 0x8ba98d21, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xba98d27, 0x0, 0x3400000},
+{0x3400000, 0x8ba98d27, 0xba98d7a, 0x3260000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d27, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d27, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d27, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x80000000, 0x8ba98d27, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x80000001, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x80000076, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x80002b94, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x80636d24, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x807fffff, 0x8ba98d27, 0x3400080},
+{0x3400000, 0x8ba98d27, 0x80800000, 0x8ba98d29, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x80800002, 0x8ba98d29, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x81398437, 0x8ba98d2c, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x8ba98d27, 0x8c298d27, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x8ba98d7a, 0x8c298d50, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d27, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d27, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d27, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d27, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x9503366, 0x8ba30b8b, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xbf5a97c9, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xaab4d7d8, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x966320b, 0x8ba25b96, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xb26bddee, 0xb26bddee, 0x3400010},
+{0x3400000, 0x8ba98d27, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x317285d3, 0x317285d3, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x3c9623b1, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x8ba98d27, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x0, 0x8ba98d7a, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x1, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x76, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x2b94, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x636d24, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x7fffff, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x800000, 0x8ba98d78, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x800002, 0x8ba98d77, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x1398437, 0x8ba98d74, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xba98d27, 0x83260000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0xba98d7a, 0x0, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d7a, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d7a, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d7a, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x80000000, 0x8ba98d7a, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x80000001, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x80000076, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x80002b94, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x80636d24, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x807fffff, 0x8ba98d7a, 0x3400080},
+{0x3400000, 0x8ba98d7a, 0x80800000, 0x8ba98d7c, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x80800002, 0x8ba98d7c, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x81398437, 0x8ba98d7f, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x8ba98d27, 0x8c298d50, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x8ba98d7a, 0x8c298d7a, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d7a, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d7a, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x8ba98d7a, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x8ba98d7a, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x9503366, 0x8ba30bde, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xbf5a97c9, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xaab4d7d8, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x966320b, 0x8ba25be9, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xb26bddee, 0xb26bddee, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0xb5c8e5d3, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x317285d3, 0x317285d3, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x3c9623b1, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x8ba98d7a, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0xf51f853a, 0x0, 0xf51f853a, 0x3400000},
+{0x3400000, 0xf51f853a, 0x1, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x76, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x2b94, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x636d24, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x7fffff, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x800000, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0x800002, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0x1398437, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0xba98d27, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0xba98d7a, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0x751f853a, 0x0, 0x3400000},
+{0x3400000, 0xf51f853a, 0x7f7ffff0, 0x7f7fffe7, 0x3400010},
+{0x3400000, 0xf51f853a, 0x7f7fffff, 0x7f7ffff6, 0x3400010},
+{0x3400000, 0xf51f853a, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xf51f853a, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xf51f853a, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xf51f853a, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xf51f853a, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xf51f853a, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xf51f853a, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xf51f853a, 0x80000000, 0xf51f853a, 0x3400000},
+{0x3400000, 0xf51f853a, 0x80000001, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x80000076, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x80002b94, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x80636d24, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x807fffff, 0xf51f853a, 0x3400080},
+{0x3400000, 0xf51f853a, 0x80800000, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0x80800002, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0x81398437, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0x8ba98d27, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0x8ba98d7a, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0xf51f853a, 0xf59f853a, 0x3400000},
+{0x3400000, 0xf51f853a, 0xff7ffff0, 0xff7ffff9, 0x3400010},
+{0x3400000, 0xf51f853a, 0xff7fffff, 0xff7fffff, 0x3400014},
+{0x3400000, 0xf51f853a, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xf51f853a, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xf51f853a, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xf51f853a, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xf51f853a, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xf51f853a, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xf51f853a, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xf51f853a, 0x4f3495cb, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0xe73a5134, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0x7c994e9e, 0x7c994d5f, 0x3400010},
+{0x3400000, 0xf51f853a, 0x6164bd6c, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0x9503366, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0xbf5a97c9, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0xe6ff1a14, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0x77f31e2f, 0x77ee2206, 0x3400010},
+{0x3400000, 0xf51f853a, 0xaab4d7d8, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0x966320b, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0xb26bddee, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0xb5c8e5d3, 0xf51f853a, 0x3400010},
+{0x3400000, 0xf51f853a, 0x317285d3, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0x3c9623b1, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0x51fd2c7c, 0xf51f8539, 0x3400010},
+{0x3400000, 0xf51f853a, 0x7b906a6c, 0x7b906570, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x0, 0xff7ffff0, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x1, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x76, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x2b94, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x636d24, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x7fffff, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x800000, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x800002, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x1398437, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xba98d27, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xba98d7a, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x751f853a, 0xff7fffe6, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x7f7ffff0, 0x0, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x7f7fffff, 0x75700000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7ffff0, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7ffff0, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7ffff0, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x80000000, 0xff7ffff0, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x80000001, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x80000076, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x80002b94, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x80636d24, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x807fffff, 0xff7ffff0, 0x3400080},
+{0x3400000, 0xff7ffff0, 0x80800000, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x80800002, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x81398437, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x8ba98d27, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x8ba98d7a, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xf51f853a, 0xff7ffff9, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xff7ffff0, 0xff7fffff, 0x3400014},
+{0x3400000, 0xff7ffff0, 0xff7fffff, 0xff7fffff, 0x3400014},
+{0x3400000, 0xff7ffff0, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7ffff0, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7ffff0, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7ffff0, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7ffff0, 0x4f3495cb, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xe73a5134, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x7c994e9e, 0xff7b357b, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x6164bd6c, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x9503366, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xbf5a97c9, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xe6ff1a14, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x77f31e2f, 0xff7ffe09, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xaab4d7d8, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x966320b, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xb26bddee, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0xb5c8e5d3, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x317285d3, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x3c9623b1, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x51fd2c7c, 0xff7fffef, 0x3400010},
+{0x3400000, 0xff7ffff0, 0x7b906a6c, 0xff7edf1b, 0x3400010},
+{0x3400000, 0xff7fffff, 0x0, 0xff7fffff, 0x3400000},
+{0x3400000, 0xff7fffff, 0x1, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x76, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x2b94, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x636d24, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x7fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x800000, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0x800002, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0x1398437, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0xba98d27, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0xba98d7a, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0x751f853a, 0xff7ffff5, 0x3400010},
+{0x3400000, 0xff7fffff, 0x7f7ffff0, 0xf5700000, 0x3400000},
+{0x3400000, 0xff7fffff, 0x7f7fffff, 0x0, 0x3400000},
+{0x3400000, 0xff7fffff, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xff7fffff, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7fffff, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7fffff, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7fffff, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7fffff, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7fffff, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7fffff, 0x80000000, 0xff7fffff, 0x3400000},
+{0x3400000, 0xff7fffff, 0x80000001, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x80000076, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x80002b94, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x80636d24, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x807fffff, 0xff7fffff, 0x3400080},
+{0x3400000, 0xff7fffff, 0x80800000, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0x80800002, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0x81398437, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0x8ba98d27, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0x8ba98d7a, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0xf51f853a, 0xff7fffff, 0x3400014},
+{0x3400000, 0xff7fffff, 0xff7ffff0, 0xff7fffff, 0x3400014},
+{0x3400000, 0xff7fffff, 0xff7fffff, 0xff7fffff, 0x3400014},
+{0x3400000, 0xff7fffff, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xff7fffff, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7fffff, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7fffff, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff7fffff, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7fffff, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7fffff, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff7fffff, 0x4f3495cb, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0xe73a5134, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0x7c994e9e, 0xff7b358a, 0x3400010},
+{0x3400000, 0xff7fffff, 0x6164bd6c, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0x9503366, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0xbf5a97c9, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0xe6ff1a14, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0x77f31e2f, 0xff7ffe18, 0x3400010},
+{0x3400000, 0xff7fffff, 0xaab4d7d8, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0x966320b, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0xb26bddee, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0xb5c8e5d3, 0xff7fffff, 0x3400010},
+{0x3400000, 0xff7fffff, 0x317285d3, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0x3c9623b1, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0x51fd2c7c, 0xff7ffffe, 0x3400010},
+{0x3400000, 0xff7fffff, 0x7b906a6c, 0xff7edf2a, 0x3400010},
+{0x3400000, 0xff800000, 0x0, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x1, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x76, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x2b94, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x636d24, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x7fffff, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x800000, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x800002, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x1398437, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xba98d27, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xba98d7a, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x751f853a, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x7f7ffff0, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x7f7fffff, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x7f800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800000, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800000, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800000, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800000, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff800000, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff800000, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff800000, 0x80000000, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x80000001, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x80000076, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x80002b94, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x80636d24, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x807fffff, 0xff800000, 0x3400080},
+{0x3400000, 0xff800000, 0x80800000, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x80800002, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x81398437, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x8ba98d27, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x8ba98d7a, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xf51f853a, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xff7ffff0, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xff7fffff, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800000, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800000, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800000, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff800000, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff800000, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xff800000, 0x4f3495cb, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xe73a5134, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x7c994e9e, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x6164bd6c, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x9503366, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xbf5a97c9, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xe6ff1a14, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x77f31e2f, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xaab4d7d8, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x966320b, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xb26bddee, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0xb5c8e5d3, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x317285d3, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x3c9623b1, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x51fd2c7c, 0xff800000, 0x3400000},
+{0x3400000, 0xff800000, 0x7b906a6c, 0xff800000, 0x3400000},
+{0x3400000, 0xff800001, 0x0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x1, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x76, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x2b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x7fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x1398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x751f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7f7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7f7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7f800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7fc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7fd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7fffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x80000000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x80000001, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x80000076, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x80002b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x80636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x807fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff800001, 0x80800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x80800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x81398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x8ba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x8ba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xf51f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xff7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xff7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xff800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xffc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xffd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xffffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x4f3495cb, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xe73a5134, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7c994e9e, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x6164bd6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x9503366, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xbf5a97c9, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xe6ff1a14, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x77f31e2f, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xaab4d7d8, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x966320b, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xb26bddee, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0xb5c8e5d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x317285d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x3c9623b1, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x51fd2c7c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff800001, 0x7b906a6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x1, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x76, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x2b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x7fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x1398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x751f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7f7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7f7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7f800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7fc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7fd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7fffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x80000000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x80000001, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x80000076, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x80002b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x80636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x807fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0xff984a37, 0x80800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x80800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x81398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x8ba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x8ba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xf51f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xff7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xff7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xff800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xffc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xffd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xffffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x4f3495cb, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xe73a5134, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7c994e9e, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x6164bd6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x9503366, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xbf5a97c9, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xe6ff1a14, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x77f31e2f, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xaab4d7d8, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x966320b, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xb26bddee, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0xb5c8e5d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x317285d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x3c9623b1, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x51fd2c7c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xff984a37, 0x7b906a6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x1, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x76, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x2b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x7fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x1398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x751f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7f7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7f7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7f800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7fc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7fd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7fffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x80000000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x80000001, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x80000076, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x80002b94, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x80636d24, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x807fffff, 0x7fc00000, 0x3400081},
+{0x3400000, 0xffbfffff, 0x80800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x80800002, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x81398437, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x8ba98d27, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x8ba98d7a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xf51f853a, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xff7ffff0, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xff7fffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xff800000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xffc00000, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xffd9ba98, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xffffffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x4f3495cb, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xe73a5134, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7c994e9e, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x6164bd6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x9503366, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xbf5a97c9, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xe6ff1a14, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x77f31e2f, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xaab4d7d8, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x966320b, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xb26bddee, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0xb5c8e5d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x317285d3, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x3c9623b1, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x51fd2c7c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffbfffff, 0x7b906a6c, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffc00000, 0x0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x1, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x76, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x2b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x7fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x1398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x751f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x7f7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x7f7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x7f800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffc00000, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffc00000, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffc00000, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x80000000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x80000001, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x80000076, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x80002b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x80636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x807fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffc00000, 0x80800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x80800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x81398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x8ba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x8ba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xf51f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xff7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xff7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xff800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffc00000, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffc00000, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffc00000, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x4f3495cb, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xe73a5134, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x7c994e9e, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x6164bd6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x9503366, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xbf5a97c9, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xe6ff1a14, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x77f31e2f, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xaab4d7d8, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x966320b, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xb26bddee, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0xb5c8e5d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x317285d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x3c9623b1, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x51fd2c7c, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffc00000, 0x7b906a6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x1, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x76, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x2b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x7fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x1398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x751f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x7f7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x7f7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x7f800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffd9ba98, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffd9ba98, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffd9ba98, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x80000000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x80000001, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x80000076, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x80002b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x80636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x807fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffd9ba98, 0x80800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x80800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x81398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x8ba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x8ba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xf51f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xff7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xff7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xff800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffd9ba98, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffd9ba98, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffd9ba98, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x4f3495cb, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xe73a5134, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x7c994e9e, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x6164bd6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x9503366, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xbf5a97c9, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xe6ff1a14, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x77f31e2f, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xaab4d7d8, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x966320b, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xb26bddee, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0xb5c8e5d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x317285d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x3c9623b1, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x51fd2c7c, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffd9ba98, 0x7b906a6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x1, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x76, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x2b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x7fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x1398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x751f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x7f7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x7f7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x7f800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffffffff, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffffffff, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffffffff, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x80000000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x80000001, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x80000076, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x80002b94, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x80636d24, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x807fffff, 0x7fc00000, 0x3400080},
+{0x3400000, 0xffffffff, 0x80800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x80800002, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x81398437, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x8ba98d27, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x8ba98d7a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xf51f853a, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xff7ffff0, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xff7fffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xff800000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffffffff, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffffffff, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xffffffff, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x4f3495cb, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xe73a5134, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x7c994e9e, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x6164bd6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x9503366, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xbf5a97c9, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xe6ff1a14, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x77f31e2f, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xaab4d7d8, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x966320b, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xb26bddee, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0xb5c8e5d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x317285d3, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x3c9623b1, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x51fd2c7c, 0x7fc00000, 0x3400000},
+{0x3400000, 0xffffffff, 0x7b906a6c, 0x7fc00000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0x0, 0x4f3495cb, 0x3400000},
+{0x3400000, 0x4f3495cb, 0x1, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x76, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x2b94, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x636d24, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x7fffff, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x800000, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x800002, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x1398437, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xba98d27, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xba98d7a, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x4f3495cb, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x4f3495cb, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x4f3495cb, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x4f3495cb, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0x80000000, 0x4f3495cb, 0x3400000},
+{0x3400000, 0x4f3495cb, 0x80000001, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x80000076, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x80002b94, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x80636d24, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x807fffff, 0x4f3495cb, 0x3400080},
+{0x3400000, 0x4f3495cb, 0x80800000, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x80800002, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x81398437, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x8ba98d27, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x8ba98d7a, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x4f3495cb, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x4f3495cb, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x4f3495cb, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x4f3495cb, 0x4f3495cb, 0x4fb495cb, 0x3400000},
+{0x3400000, 0x4f3495cb, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x9503366, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xbf5a97c9, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xaab4d7d8, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x966320b, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xb26bddee, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0xb5c8e5d3, 0x4f3495cb, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x317285d3, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x3c9623b1, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x51fd2c7c, 0x52016896, 0x3400010},
+{0x3400000, 0x4f3495cb, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0xe73a5134, 0x0, 0xe73a5134, 0x3400000},
+{0x3400000, 0xe73a5134, 0x1, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x76, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x2b94, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x636d24, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x7fffff, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x800000, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0x800002, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0x1398437, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0xba98d27, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0xba98d7a, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0xe73a5134, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0xe73a5134, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0xe73a5134, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xe73a5134, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe73a5134, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe73a5134, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe73a5134, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe73a5134, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe73a5134, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe73a5134, 0x80000000, 0xe73a5134, 0x3400000},
+{0x3400000, 0xe73a5134, 0x80000001, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x80000076, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x80002b94, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x80636d24, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x807fffff, 0xe73a5134, 0x3400080},
+{0x3400000, 0xe73a5134, 0x80800000, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0x80800002, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0x81398437, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0x8ba98d27, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0x8ba98d7a, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0xe73a5134, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xe73a5134, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0xe73a5134, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xe73a5134, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe73a5134, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe73a5134, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe73a5134, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe73a5134, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe73a5134, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe73a5134, 0x4f3495cb, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0xe73a5134, 0xe7ba5134, 0x3400000},
+{0x3400000, 0xe73a5134, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0xe73a5134, 0x6164bd6c, 0xe73a42e8, 0x3400010},
+{0x3400000, 0xe73a5134, 0x9503366, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0xbf5a97c9, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0xe6ff1a14, 0xe79cef1f, 0x3400000},
+{0x3400000, 0xe73a5134, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0xe73a5134, 0xaab4d7d8, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0x966320b, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0xb26bddee, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0xb5c8e5d3, 0xe73a5134, 0x3400010},
+{0x3400000, 0xe73a5134, 0x317285d3, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0x3c9623b1, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0x51fd2c7c, 0xe73a5133, 0x3400010},
+{0x3400000, 0xe73a5134, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x0, 0x7c994e9e, 0x3400000},
+{0x3400000, 0x7c994e9e, 0x1, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x76, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x2b94, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x636d24, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x7fffff, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x800000, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x800002, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x1398437, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xba98d27, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xba98d7a, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x751f853a, 0x7c994fde, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x7f7ffff0, 0x7f800000, 0x3400014},
+{0x3400000, 0x7c994e9e, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x7c994e9e, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x7c994e9e, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7c994e9e, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7c994e9e, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7c994e9e, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7c994e9e, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7c994e9e, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7c994e9e, 0x80000000, 0x7c994e9e, 0x3400000},
+{0x3400000, 0x7c994e9e, 0x80000001, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x80000076, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x80002b94, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x80636d24, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x807fffff, 0x7c994e9e, 0x3400080},
+{0x3400000, 0x7c994e9e, 0x80800000, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x80800002, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x81398437, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x8ba98d27, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x8ba98d7a, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xf51f853a, 0x7c994d5f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xff7ffff0, 0xff7b357b, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xff7fffff, 0xff7b358a, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x7c994e9e, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7c994e9e, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7c994e9e, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7c994e9e, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7c994e9e, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7c994e9e, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7c994e9e, 0x4f3495cb, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xe73a5134, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x7c994e9e, 0x7d194e9e, 0x3400000},
+{0x3400000, 0x7c994e9e, 0x6164bd6c, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x9503366, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xbf5a97c9, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xe6ff1a14, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x77f31e2f, 0x7c998b66, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xaab4d7d8, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x966320b, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xb26bddee, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0xb5c8e5d3, 0x7c994e9e, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x317285d3, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x3c9623b1, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x51fd2c7c, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x7c994e9e, 0x7b906a6c, 0x7cbd6939, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x0, 0x6164bd6c, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x1, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x76, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x2b94, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x636d24, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x7fffff, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x800000, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x800002, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x1398437, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xba98d27, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xba98d7a, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x6164bd6c, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x6164bd6c, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x6164bd6c, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x6164bd6c, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x80000000, 0x6164bd6c, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x80000001, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x80000076, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x80002b94, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x80636d24, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x807fffff, 0x6164bd6c, 0x3400080},
+{0x3400000, 0x6164bd6c, 0x80800000, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x80800002, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x81398437, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x8ba98d27, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x8ba98d7a, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x6164bd6c, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x6164bd6c, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x6164bd6c, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x6164bd6c, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x6164bd6c, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x6164bd6c, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x4f3495cb, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xe73a5134, 0xe73a42e8, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x6164bd6c, 0x61e4bd6c, 0x3400000},
+{0x3400000, 0x6164bd6c, 0x9503366, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xbf5a97c9, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xe6ff1a14, 0xe6fefd7c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xaab4d7d8, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x966320b, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xb26bddee, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0xb5c8e5d3, 0x6164bd6c, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x317285d3, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x3c9623b1, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x51fd2c7c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x6164bd6c, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x9503366, 0x0, 0x9503366, 0x3400000},
+{0x3400000, 0x9503366, 0x1, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x76, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x2b94, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x636d24, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x7fffff, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x800000, 0x95033a6, 0x3400000},
+{0x3400000, 0x9503366, 0x800002, 0x95033a7, 0x3400010},
+{0x3400000, 0x9503366, 0x1398437, 0x9503420, 0x3400010},
+{0x3400000, 0x9503366, 0xba98d27, 0xbb00ec3, 0x3400010},
+{0x3400000, 0x9503366, 0xba98d7a, 0xbb00f16, 0x3400010},
+{0x3400000, 0x9503366, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x9503366, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x9503366, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x9503366, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x9503366, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x9503366, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x9503366, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x9503366, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x9503366, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x9503366, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x9503366, 0x80000000, 0x9503366, 0x3400000},
+{0x3400000, 0x9503366, 0x80000001, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x80000076, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x80002b94, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x80636d24, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x807fffff, 0x9503366, 0x3400080},
+{0x3400000, 0x9503366, 0x80800000, 0x9503326, 0x3400000},
+{0x3400000, 0x9503366, 0x80800002, 0x9503326, 0x3400010},
+{0x3400000, 0x9503366, 0x81398437, 0x95032ad, 0x3400010},
+{0x3400000, 0x9503366, 0x8ba98d27, 0x8ba30b8b, 0x3400010},
+{0x3400000, 0x9503366, 0x8ba98d7a, 0x8ba30bde, 0x3400010},
+{0x3400000, 0x9503366, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x9503366, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x9503366, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x9503366, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x9503366, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x9503366, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x9503366, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x9503366, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x9503366, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x9503366, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x9503366, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x9503366, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x9503366, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x9503366, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x9503366, 0x9503366, 0x9d03366, 0x3400000},
+{0x3400000, 0x9503366, 0xbf5a97c9, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0x9503366, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x9503366, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x9503366, 0xaab4d7d8, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0x9503366, 0x966320b, 0x9db32b9, 0x3400010},
+{0x3400000, 0x9503366, 0xb26bddee, 0xb26bdded, 0x3400010},
+{0x3400000, 0x9503366, 0xb5c8e5d3, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0x9503366, 0x317285d3, 0x317285d4, 0x3400010},
+{0x3400000, 0x9503366, 0x3c9623b1, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x9503366, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x9503366, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x0, 0xbf5a97c9, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0x1, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x76, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x2b94, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x636d24, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x7fffff, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x800000, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x800002, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x1398437, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xba98d27, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xba98d7a, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xbf5a97c9, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xbf5a97c9, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xbf5a97c9, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0x80000000, 0xbf5a97c9, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0x80000001, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x80000076, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x80002b94, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x80636d24, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x807fffff, 0xbf5a97c9, 0x3400080},
+{0x3400000, 0xbf5a97c9, 0x80800000, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x80800002, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x81398437, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x8ba98d27, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x8ba98d7a, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xbf5a97c9, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xbf5a97c9, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xbf5a97c9, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x9503366, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xbf5a97c9, 0xbfda97c9, 0x3400000},
+{0x3400000, 0xbf5a97c9, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xaab4d7d8, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x966320b, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xb26bddee, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0xb5c8e5d3, 0xbf5a97e2, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x317285d3, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x3c9623b1, 0xbf55e6ab, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0xbf5a97c9, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x0, 0xe6ff1a14, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x1, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x76, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x2b94, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x636d24, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x7fffff, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x800000, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x800002, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x1398437, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xba98d27, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xba98d7a, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe6ff1a14, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe6ff1a14, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe6ff1a14, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x80000000, 0xe6ff1a14, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x80000001, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x80000076, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x80002b94, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x80636d24, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x807fffff, 0xe6ff1a14, 0x3400080},
+{0x3400000, 0xe6ff1a14, 0x80800000, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x80800002, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x81398437, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x8ba98d27, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x8ba98d7a, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe6ff1a14, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe6ff1a14, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xe6ff1a14, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x4f3495cb, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xe73a5134, 0xe79cef1f, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x6164bd6c, 0xe6fefd7c, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x9503366, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xbf5a97c9, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xe6ff1a14, 0xe77f1a14, 0x3400000},
+{0x3400000, 0xe6ff1a14, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xaab4d7d8, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x966320b, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xb26bddee, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0xb5c8e5d3, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x317285d3, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x3c9623b1, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x51fd2c7c, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0xe6ff1a14, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x0, 0x77f31e2f, 0x3400000},
+{0x3400000, 0x77f31e2f, 0x1, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x76, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x2b94, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x636d24, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x7fffff, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x800000, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x800002, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x1398437, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xba98d27, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xba98d7a, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x751f853a, 0x77f81a59, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x7f7ffff0, 0x7f800000, 0x3400014},
+{0x3400000, 0x77f31e2f, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x77f31e2f, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x77f31e2f, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x77f31e2f, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x77f31e2f, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x77f31e2f, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x77f31e2f, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x77f31e2f, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x77f31e2f, 0x80000000, 0x77f31e2f, 0x3400000},
+{0x3400000, 0x77f31e2f, 0x80000001, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x80000076, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x80002b94, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x80636d24, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x807fffff, 0x77f31e2f, 0x3400080},
+{0x3400000, 0x77f31e2f, 0x80800000, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x80800002, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x81398437, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x8ba98d27, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x8ba98d7a, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xf51f853a, 0x77ee2206, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xff7ffff0, 0xff7ffe09, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xff7fffff, 0xff7ffe18, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x77f31e2f, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x77f31e2f, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x77f31e2f, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x77f31e2f, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x77f31e2f, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x77f31e2f, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x77f31e2f, 0x4f3495cb, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xe73a5134, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x7c994e9e, 0x7c998b66, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x6164bd6c, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x9503366, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xbf5a97c9, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xe6ff1a14, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x77f31e2f, 0x78731e2f, 0x3400000},
+{0x3400000, 0x77f31e2f, 0xaab4d7d8, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x966320b, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xb26bddee, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0xb5c8e5d3, 0x77f31e2f, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x317285d3, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x3c9623b1, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x51fd2c7c, 0x77f31e30, 0x3400010},
+{0x3400000, 0x77f31e2f, 0x7b906a6c, 0x7b915d8b, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x0, 0xaab4d7d8, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0x1, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x76, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x2b94, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x636d24, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x7fffff, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x800000, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x800002, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x1398437, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xba98d27, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xba98d7a, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xaab4d7d8, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xaab4d7d8, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xaab4d7d8, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0x80000000, 0xaab4d7d8, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0x80000001, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x80000076, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x80002b94, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x80636d24, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x807fffff, 0xaab4d7d8, 0x3400080},
+{0x3400000, 0xaab4d7d8, 0x80800000, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x80800002, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x81398437, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x8ba98d27, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x8ba98d7a, 0xaab4d7d8, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xaab4d7d8, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xaab4d7d8, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xaab4d7d8, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x9503366, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xbf5a97c9, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xaab4d7d8, 0xab34d7d8, 0x3400000},
+{0x3400000, 0xaab4d7d8, 0x966320b, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xb26bddee, 0xb26bdf57, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0xb5c8e5d3, 0xb5c8e5d5, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x317285d3, 0x3172802d, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x3c9623b1, 0x3c9623b1, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0xaab4d7d8, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x966320b, 0x0, 0x966320b, 0x3400000},
+{0x3400000, 0x966320b, 0x1, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x76, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x2b94, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x636d24, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x7fffff, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x800000, 0x966324b, 0x3400000},
+{0x3400000, 0x966320b, 0x800002, 0x966324c, 0x3400010},
+{0x3400000, 0x966320b, 0x1398437, 0x96632c5, 0x3400010},
+{0x3400000, 0x966320b, 0xba98d27, 0xbb0beb8, 0x3400010},
+{0x3400000, 0x966320b, 0xba98d7a, 0xbb0bf0b, 0x3400010},
+{0x3400000, 0x966320b, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x966320b, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x966320b, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x966320b, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x966320b, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x966320b, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x966320b, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x966320b, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x966320b, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x966320b, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x966320b, 0x80000000, 0x966320b, 0x3400000},
+{0x3400000, 0x966320b, 0x80000001, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x80000076, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x80002b94, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x80636d24, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x807fffff, 0x966320b, 0x3400080},
+{0x3400000, 0x966320b, 0x80800000, 0x96631cb, 0x3400000},
+{0x3400000, 0x966320b, 0x80800002, 0x96631cb, 0x3400010},
+{0x3400000, 0x966320b, 0x81398437, 0x9663152, 0x3400010},
+{0x3400000, 0x966320b, 0x8ba98d27, 0x8ba25b96, 0x3400010},
+{0x3400000, 0x966320b, 0x8ba98d7a, 0x8ba25be9, 0x3400010},
+{0x3400000, 0x966320b, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x966320b, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x966320b, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x966320b, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x966320b, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x966320b, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x966320b, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x966320b, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x966320b, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x966320b, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x966320b, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x966320b, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x966320b, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x966320b, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x966320b, 0x9503366, 0x9db32b9, 0x3400010},
+{0x3400000, 0x966320b, 0xbf5a97c9, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0x966320b, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x966320b, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x966320b, 0xaab4d7d8, 0xaab4d7d7, 0x3400010},
+{0x3400000, 0x966320b, 0x966320b, 0x9e6320b, 0x3400000},
+{0x3400000, 0x966320b, 0xb26bddee, 0xb26bdded, 0x3400010},
+{0x3400000, 0x966320b, 0xb5c8e5d3, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0x966320b, 0x317285d3, 0x317285d4, 0x3400010},
+{0x3400000, 0x966320b, 0x3c9623b1, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x966320b, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x966320b, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0xb26bddee, 0x0, 0xb26bddee, 0x3400000},
+{0x3400000, 0xb26bddee, 0x1, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x76, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x2b94, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x636d24, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x7fffff, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x800000, 0xb26bdded, 0x3400010},
+{0x3400000, 0xb26bddee, 0x800002, 0xb26bdded, 0x3400010},
+{0x3400000, 0xb26bddee, 0x1398437, 0xb26bdded, 0x3400010},
+{0x3400000, 0xb26bddee, 0xba98d27, 0xb26bdded, 0x3400010},
+{0x3400000, 0xb26bddee, 0xba98d7a, 0xb26bdded, 0x3400010},
+{0x3400000, 0xb26bddee, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0xb26bddee, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0xb26bddee, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0xb26bddee, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xb26bddee, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb26bddee, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb26bddee, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb26bddee, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb26bddee, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb26bddee, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb26bddee, 0x80000000, 0xb26bddee, 0x3400000},
+{0x3400000, 0xb26bddee, 0x80000001, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x80000076, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x80002b94, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x80636d24, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x807fffff, 0xb26bddee, 0x3400080},
+{0x3400000, 0xb26bddee, 0x80800000, 0xb26bddee, 0x3400010},
+{0x3400000, 0xb26bddee, 0x80800002, 0xb26bddee, 0x3400010},
+{0x3400000, 0xb26bddee, 0x81398437, 0xb26bddee, 0x3400010},
+{0x3400000, 0xb26bddee, 0x8ba98d27, 0xb26bddee, 0x3400010},
+{0x3400000, 0xb26bddee, 0x8ba98d7a, 0xb26bddee, 0x3400010},
+{0x3400000, 0xb26bddee, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0xb26bddee, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xb26bddee, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0xb26bddee, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xb26bddee, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb26bddee, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb26bddee, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb26bddee, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb26bddee, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb26bddee, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb26bddee, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0xb26bddee, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0xb26bddee, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0xb26bddee, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0xb26bddee, 0x9503366, 0xb26bdded, 0x3400010},
+{0x3400000, 0xb26bddee, 0xbf5a97c9, 0xbf5a97c9, 0x3400010},
+{0x3400000, 0xb26bddee, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xb26bddee, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0xb26bddee, 0xaab4d7d8, 0xb26bdf57, 0x3400010},
+{0x3400000, 0xb26bddee, 0x966320b, 0xb26bdded, 0x3400010},
+{0x3400000, 0xb26bddee, 0xb26bddee, 0xb2ebddee, 0x3400000},
+{0x3400000, 0xb26bddee, 0xb5c8e5d3, 0xb5cabd8e, 0x3400010},
+{0x3400000, 0xb26bddee, 0x317285d3, 0xb22f3c79, 0x3400010},
+{0x3400000, 0xb26bddee, 0x3c9623b1, 0x3c9623aa, 0x3400010},
+{0x3400000, 0xb26bddee, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0xb26bddee, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x0, 0xb5c8e5d3, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0x1, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x76, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x2b94, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x636d24, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x7fffff, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x800000, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x800002, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x1398437, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xba98d27, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xba98d7a, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x751f853a, 0x751f853a, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x7f7ffff0, 0x7f7ffff0, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x7f7fffff, 0x7f7fffff, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb5c8e5d3, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb5c8e5d3, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb5c8e5d3, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0x80000000, 0xb5c8e5d3, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0x80000001, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x80000076, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x80002b94, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x80636d24, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x807fffff, 0xb5c8e5d3, 0x3400080},
+{0x3400000, 0xb5c8e5d3, 0x80800000, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x80800002, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x81398437, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x8ba98d27, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x8ba98d7a, 0xb5c8e5d3, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xf51f853a, 0xf51f853a, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xff7ffff0, 0xff7ffff0, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xff7fffff, 0xff7fffff, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb5c8e5d3, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb5c8e5d3, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0xb5c8e5d3, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0x4f3495cb, 0x4f3495cb, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xe73a5134, 0xe73a5134, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x7c994e9e, 0x7c994e9e, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x6164bd6c, 0x6164bd6c, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x9503366, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xbf5a97c9, 0xbf5a97e2, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xe6ff1a14, 0xe6ff1a14, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x77f31e2f, 0x77f31e2f, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xaab4d7d8, 0xb5c8e5d5, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x966320b, 0xb5c8e5d2, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xb26bddee, 0xb5cabd8e, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0xb5c8e5d3, 0xb648e5d3, 0x3400000},
+{0x3400000, 0xb5c8e5d3, 0x317285d3, 0xb5c86c90, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x3c9623b1, 0x3c96208e, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x51fd2c7c, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0xb5c8e5d3, 0x7b906a6c, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x317285d3, 0x0, 0x317285d3, 0x3400000},
+{0x3400000, 0x317285d3, 0x1, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x76, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x2b94, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x636d24, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x7fffff, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x800000, 0x317285d4, 0x3400010},
+{0x3400000, 0x317285d3, 0x800002, 0x317285d4, 0x3400010},
+{0x3400000, 0x317285d3, 0x1398437, 0x317285d4, 0x3400010},
+{0x3400000, 0x317285d3, 0xba98d27, 0x317285d4, 0x3400010},
+{0x3400000, 0x317285d3, 0xba98d7a, 0x317285d4, 0x3400010},
+{0x3400000, 0x317285d3, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x317285d3, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x317285d3, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x317285d3, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x317285d3, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x317285d3, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x317285d3, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x317285d3, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x317285d3, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x317285d3, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x317285d3, 0x80000000, 0x317285d3, 0x3400000},
+{0x3400000, 0x317285d3, 0x80000001, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x80000076, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x80002b94, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x80636d24, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x807fffff, 0x317285d3, 0x3400080},
+{0x3400000, 0x317285d3, 0x80800000, 0x317285d3, 0x3400010},
+{0x3400000, 0x317285d3, 0x80800002, 0x317285d3, 0x3400010},
+{0x3400000, 0x317285d3, 0x81398437, 0x317285d3, 0x3400010},
+{0x3400000, 0x317285d3, 0x8ba98d27, 0x317285d3, 0x3400010},
+{0x3400000, 0x317285d3, 0x8ba98d7a, 0x317285d3, 0x3400010},
+{0x3400000, 0x317285d3, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x317285d3, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x317285d3, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x317285d3, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x317285d3, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x317285d3, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x317285d3, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x317285d3, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x317285d3, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x317285d3, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x317285d3, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x317285d3, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x317285d3, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x317285d3, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x317285d3, 0x9503366, 0x317285d4, 0x3400010},
+{0x3400000, 0x317285d3, 0xbf5a97c9, 0xbf5a97c8, 0x3400010},
+{0x3400000, 0x317285d3, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x317285d3, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x317285d3, 0xaab4d7d8, 0x3172802d, 0x3400010},
+{0x3400000, 0x317285d3, 0x966320b, 0x317285d4, 0x3400010},
+{0x3400000, 0x317285d3, 0xb26bddee, 0xb22f3c79, 0x3400010},
+{0x3400000, 0x317285d3, 0xb5c8e5d3, 0xb5c86c90, 0x3400010},
+{0x3400000, 0x317285d3, 0x317285d3, 0x31f285d3, 0x3400000},
+{0x3400000, 0x317285d3, 0x3c9623b1, 0x3c9623b3, 0x3400010},
+{0x3400000, 0x317285d3, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x317285d3, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x0, 0x3c9623b1, 0x3400000},
+{0x3400000, 0x3c9623b1, 0x1, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x76, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x2b94, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x636d24, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x7fffff, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x800000, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x800002, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x1398437, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xba98d27, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xba98d7a, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x3c9623b1, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x3c9623b1, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x3c9623b1, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x3c9623b1, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x3c9623b1, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x3c9623b1, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x3c9623b1, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x3c9623b1, 0x80000000, 0x3c9623b1, 0x3400000},
+{0x3400000, 0x3c9623b1, 0x80000001, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x80000076, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x80002b94, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x80636d24, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x807fffff, 0x3c9623b1, 0x3400080},
+{0x3400000, 0x3c9623b1, 0x80800000, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x80800002, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x81398437, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x8ba98d27, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x8ba98d7a, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x3c9623b1, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x3c9623b1, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x3c9623b1, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x3c9623b1, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x3c9623b1, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x3c9623b1, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x3c9623b1, 0x4f3495cb, 0x4f3495cc, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x9503366, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xbf5a97c9, 0xbf55e6ab, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xaab4d7d8, 0x3c9623b1, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x966320b, 0x3c9623b2, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xb26bddee, 0x3c9623aa, 0x3400010},
+{0x3400000, 0x3c9623b1, 0xb5c8e5d3, 0x3c96208e, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x317285d3, 0x3c9623b3, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x3c9623b1, 0x3d1623b1, 0x3400000},
+{0x3400000, 0x3c9623b1, 0x51fd2c7c, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x3c9623b1, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x0, 0x51fd2c7c, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0x1, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x76, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x2b94, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x636d24, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x7fffff, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x800000, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x800002, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x1398437, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xba98d27, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xba98d7a, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x751f853a, 0x751f853b, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x7f7ffff0, 0x7f7ffff1, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x51fd2c7c, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x51fd2c7c, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x51fd2c7c, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x51fd2c7c, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0x80000000, 0x51fd2c7c, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0x80000001, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x80000076, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x80002b94, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x80636d24, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x807fffff, 0x51fd2c7c, 0x3400080},
+{0x3400000, 0x51fd2c7c, 0x80800000, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x80800002, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x81398437, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x8ba98d27, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x8ba98d7a, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xf51f853a, 0xf51f8539, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xff7ffff0, 0xff7fffef, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xff7fffff, 0xff7ffffe, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x51fd2c7c, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x51fd2c7c, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x51fd2c7c, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0x4f3495cb, 0x52016896, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xe73a5134, 0xe73a5133, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x7c994e9e, 0x7c994e9f, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x6164bd6c, 0x6164bd6d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x9503366, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xbf5a97c9, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xe6ff1a14, 0xe6ff1a13, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x77f31e2f, 0x77f31e30, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xaab4d7d8, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x966320b, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xb26bddee, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0xb5c8e5d3, 0x51fd2c7c, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x317285d3, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x3c9623b1, 0x51fd2c7d, 0x3400010},
+{0x3400000, 0x51fd2c7c, 0x51fd2c7c, 0x527d2c7c, 0x3400000},
+{0x3400000, 0x51fd2c7c, 0x7b906a6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x0, 0x7b906a6c, 0x3400000},
+{0x3400000, 0x7b906a6c, 0x1, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x76, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x2b94, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x636d24, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x7fffff, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x800000, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x800002, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x1398437, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xba98d27, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xba98d7a, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x751f853a, 0x7b906f69, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x7f7ffff0, 0x7f800000, 0x3400014},
+{0x3400000, 0x7b906a6c, 0x7f7fffff, 0x7f800000, 0x3400014},
+{0x3400000, 0x7b906a6c, 0x7f800000, 0x7f800000, 0x3400000},
+{0x3400000, 0x7b906a6c, 0x7f800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7b906a6c, 0x7f984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7b906a6c, 0x7fbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7b906a6c, 0x7fc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7b906a6c, 0x7fd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7b906a6c, 0x7fffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7b906a6c, 0x80000000, 0x7b906a6c, 0x3400000},
+{0x3400000, 0x7b906a6c, 0x80000001, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x80000076, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x80002b94, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x80636d24, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x807fffff, 0x7b906a6c, 0x3400080},
+{0x3400000, 0x7b906a6c, 0x80800000, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x80800002, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x81398437, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x8ba98d27, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x8ba98d7a, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xf51f853a, 0x7b906570, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xff7ffff0, 0xff7edf1b, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xff7fffff, 0xff7edf2a, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xff800000, 0xff800000, 0x3400000},
+{0x3400000, 0x7b906a6c, 0xff800001, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7b906a6c, 0xff984a37, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7b906a6c, 0xffbfffff, 0x7fc00000, 0x3400001},
+{0x3400000, 0x7b906a6c, 0xffc00000, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7b906a6c, 0xffd9ba98, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7b906a6c, 0xffffffff, 0x7fc00000, 0x3400000},
+{0x3400000, 0x7b906a6c, 0x4f3495cb, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xe73a5134, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x7c994e9e, 0x7cbd6939, 0x3400000},
+{0x3400000, 0x7b906a6c, 0x6164bd6c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x9503366, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xbf5a97c9, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xe6ff1a14, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x77f31e2f, 0x7b915d8b, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xaab4d7d8, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x966320b, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xb26bddee, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0xb5c8e5d3, 0x7b906a6c, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x317285d3, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x3c9623b1, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x51fd2c7c, 0x7b906a6d, 0x3400010},
+{0x3400000, 0x7b906a6c, 0x7b906a6c, 0x7c106a6c, 0x3400000},
+{0x3000000, 0x0, 0x0, 0x0, 0x3000000},
+{0x3000000, 0x0, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x800000, 0x800000, 0x3000000},
+{0x3000000, 0x0, 0x800002, 0x800002, 0x3000000},
+{0x3000000, 0x0, 0x1398437, 0x1398437, 0x3000000},
+{0x3000000, 0x0, 0xba98d27, 0xba98d27, 0x3000000},
+{0x3000000, 0x0, 0xba98d7a, 0xba98d7a, 0x3000000},
+{0x3000000, 0x0, 0x751f853a, 0x751f853a, 0x3000000},
+{0x3000000, 0x0, 0x7f7ffff0, 0x7f7ffff0, 0x3000000},
+{0x3000000, 0x0, 0x7f7fffff, 0x7f7fffff, 0x3000000},
+{0x3000000, 0x0, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x0, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x0, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x0, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x0, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x0, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x0, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x0, 0x80000000, 0x0, 0x3000000},
+{0x3000000, 0x0, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x0, 0x80800000, 0x80800000, 0x3000000},
+{0x3000000, 0x0, 0x80800002, 0x80800002, 0x3000000},
+{0x3000000, 0x0, 0x81398437, 0x81398437, 0x3000000},
+{0x3000000, 0x0, 0x8ba98d27, 0x8ba98d27, 0x3000000},
+{0x3000000, 0x0, 0x8ba98d7a, 0x8ba98d7a, 0x3000000},
+{0x3000000, 0x0, 0xf51f853a, 0xf51f853a, 0x3000000},
+{0x3000000, 0x0, 0xff7ffff0, 0xff7ffff0, 0x3000000},
+{0x3000000, 0x0, 0xff7fffff, 0xff7fffff, 0x3000000},
+{0x3000000, 0x0, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x0, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x0, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x0, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x0, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x0, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x0, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x0, 0x4f3495cb, 0x4f3495cb, 0x3000000},
+{0x3000000, 0x0, 0xe73a5134, 0xe73a5134, 0x3000000},
+{0x3000000, 0x0, 0x7c994e9e, 0x7c994e9e, 0x3000000},
+{0x3000000, 0x0, 0x6164bd6c, 0x6164bd6c, 0x3000000},
+{0x3000000, 0x0, 0x9503366, 0x9503366, 0x3000000},
+{0x3000000, 0x0, 0xbf5a97c9, 0xbf5a97c9, 0x3000000},
+{0x3000000, 0x0, 0xe6ff1a14, 0xe6ff1a14, 0x3000000},
+{0x3000000, 0x0, 0x77f31e2f, 0x77f31e2f, 0x3000000},
+{0x3000000, 0x0, 0xaab4d7d8, 0xaab4d7d8, 0x3000000},
+{0x3000000, 0x0, 0x966320b, 0x966320b, 0x3000000},
+{0x3000000, 0x0, 0xb26bddee, 0xb26bddee, 0x3000000},
+{0x3000000, 0x0, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000000},
+{0x3000000, 0x0, 0x317285d3, 0x317285d3, 0x3000000},
+{0x3000000, 0x0, 0x3c9623b1, 0x3c9623b1, 0x3000000},
+{0x3000000, 0x0, 0x51fd2c7c, 0x51fd2c7c, 0x3000000},
+{0x3000000, 0x0, 0x7b906a6c, 0x7b906a6c, 0x3000000},
+{0x3000000, 0x1, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x1, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x1, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x1, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x1, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x1, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x1, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x1, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x1, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x1, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x1, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x1, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x1, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x1, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x1, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x1, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x1, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x1, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x1, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x1, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x1, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x1, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x1, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x1, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x1, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x1, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x1, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x1, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x1, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x1, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x1, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x1, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x1, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x1, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x1, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x1, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x1, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x1, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x1, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x1, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x1, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x1, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x1, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x1, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x1, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x1, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x1, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x76, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x76, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x76, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x76, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x76, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x76, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x76, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x76, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x76, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x76, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x76, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x76, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x76, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x76, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x76, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x76, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x76, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x76, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x76, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x76, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x76, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x76, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x76, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x76, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x76, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x76, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x76, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x76, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x76, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x76, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x76, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x76, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x76, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x76, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x76, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x76, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x76, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x76, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x76, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x76, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x76, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x76, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x76, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x76, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x76, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x76, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x76, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x2b94, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x2b94, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x2b94, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x2b94, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x2b94, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x2b94, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x2b94, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x2b94, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x2b94, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x2b94, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x2b94, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x2b94, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x2b94, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x2b94, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x2b94, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x2b94, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x2b94, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x2b94, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x2b94, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x2b94, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x2b94, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x2b94, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x2b94, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x2b94, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x2b94, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x2b94, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x2b94, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x2b94, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x2b94, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x2b94, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x2b94, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x2b94, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x2b94, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x2b94, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x2b94, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x2b94, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x2b94, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x2b94, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x2b94, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x2b94, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x2b94, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x2b94, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x2b94, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x2b94, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x2b94, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x2b94, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x2b94, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x636d24, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x636d24, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x636d24, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x636d24, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x636d24, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x636d24, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x636d24, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x636d24, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x636d24, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x636d24, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x636d24, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x636d24, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x636d24, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x636d24, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x636d24, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x636d24, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x636d24, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x636d24, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x636d24, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x636d24, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x636d24, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x636d24, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x636d24, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x636d24, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x636d24, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x636d24, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x636d24, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x636d24, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x636d24, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x636d24, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x636d24, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x636d24, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x636d24, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x636d24, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x636d24, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x636d24, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x636d24, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x636d24, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x636d24, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x636d24, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x636d24, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x636d24, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x636d24, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x636d24, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x636d24, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x636d24, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x636d24, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7fffff, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x7fffff, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x7fffff, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x7fffff, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x7fffff, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x7fffff, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x7fffff, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7fffff, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7fffff, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x7fffff, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fffff, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fffff, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fffff, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffff, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffff, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffff, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x7fffff, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x7fffff, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x7fffff, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x7fffff, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x7fffff, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x7fffff, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x7fffff, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x7fffff, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x7fffff, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x7fffff, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fffff, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fffff, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fffff, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffff, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffff, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffff, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x7fffff, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x7fffff, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7fffff, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x7fffff, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x7fffff, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x7fffff, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x7fffff, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x7fffff, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x7fffff, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x7fffff, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x7fffff, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x7fffff, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x7fffff, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x7fffff, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x7fffff, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x800000, 0x0, 0x800000, 0x3000000},
+{0x3000000, 0x800000, 0x1, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x76, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x2b94, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x636d24, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x7fffff, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x800000, 0x1000000, 0x3000000},
+{0x3000000, 0x800000, 0x800002, 0x1000001, 0x3000000},
+{0x3000000, 0x800000, 0x1398437, 0x1798437, 0x3000000},
+{0x3000000, 0x800000, 0xba98d27, 0xba98d29, 0x3000000},
+{0x3000000, 0x800000, 0xba98d7a, 0xba98d7c, 0x3000000},
+{0x3000000, 0x800000, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x800000, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x800000, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x800000, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x800000, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800000, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800000, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800000, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800000, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800000, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800000, 0x80000000, 0x800000, 0x3000000},
+{0x3000000, 0x800000, 0x80000001, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x80000076, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x80002b94, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x80636d24, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x807fffff, 0x800000, 0x3000080},
+{0x3000000, 0x800000, 0x80800000, 0x0, 0x3000000},
+{0x3000000, 0x800000, 0x80800002, 0x0, 0x3000008},
+{0x3000000, 0x800000, 0x81398437, 0x80f3086e, 0x3000000},
+{0x3000000, 0x800000, 0x8ba98d27, 0x8ba98d25, 0x3000000},
+{0x3000000, 0x800000, 0x8ba98d7a, 0x8ba98d78, 0x3000000},
+{0x3000000, 0x800000, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x800000, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x800000, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x800000, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x800000, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800000, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800000, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800000, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800000, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800000, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800000, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x800000, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x800000, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x800000, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x800000, 0x9503366, 0x95033a6, 0x3000000},
+{0x3000000, 0x800000, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x800000, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x800000, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x800000, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x800000, 0x966320b, 0x966324b, 0x3000000},
+{0x3000000, 0x800000, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x800000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x800000, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x800000, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x800000, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x800000, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x800002, 0x0, 0x800002, 0x3000000},
+{0x3000000, 0x800002, 0x1, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x76, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x2b94, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x636d24, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x7fffff, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x800000, 0x1000001, 0x3000000},
+{0x3000000, 0x800002, 0x800002, 0x1000002, 0x3000000},
+{0x3000000, 0x800002, 0x1398437, 0x1798438, 0x3000000},
+{0x3000000, 0x800002, 0xba98d27, 0xba98d29, 0x3000010},
+{0x3000000, 0x800002, 0xba98d7a, 0xba98d7c, 0x3000010},
+{0x3000000, 0x800002, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x800002, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x800002, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x800002, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x800002, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800002, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800002, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800002, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800002, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800002, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800002, 0x80000000, 0x800002, 0x3000000},
+{0x3000000, 0x800002, 0x80000001, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x80000076, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x80002b94, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x80636d24, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x807fffff, 0x800002, 0x3000080},
+{0x3000000, 0x800002, 0x80800000, 0x0, 0x3000008},
+{0x3000000, 0x800002, 0x80800002, 0x0, 0x3000000},
+{0x3000000, 0x800002, 0x81398437, 0x80f3086c, 0x3000000},
+{0x3000000, 0x800002, 0x8ba98d27, 0x8ba98d25, 0x3000010},
+{0x3000000, 0x800002, 0x8ba98d7a, 0x8ba98d78, 0x3000010},
+{0x3000000, 0x800002, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x800002, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x800002, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x800002, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x800002, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800002, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800002, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x800002, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800002, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800002, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x800002, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x800002, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x800002, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x800002, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x800002, 0x9503366, 0x95033a6, 0x3000010},
+{0x3000000, 0x800002, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x800002, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x800002, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x800002, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x800002, 0x966320b, 0x966324b, 0x3000010},
+{0x3000000, 0x800002, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x800002, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x800002, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x800002, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x800002, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x800002, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x1398437, 0x0, 0x1398437, 0x3000000},
+{0x3000000, 0x1398437, 0x1, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x76, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x2b94, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x636d24, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x7fffff, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x800000, 0x1798437, 0x3000000},
+{0x3000000, 0x1398437, 0x800002, 0x1798438, 0x3000000},
+{0x3000000, 0x1398437, 0x1398437, 0x1b98437, 0x3000000},
+{0x3000000, 0x1398437, 0xba98d27, 0xba98d2d, 0x3000010},
+{0x3000000, 0x1398437, 0xba98d7a, 0xba98d80, 0x3000010},
+{0x3000000, 0x1398437, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x1398437, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x1398437, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x1398437, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x1398437, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x1398437, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x1398437, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x1398437, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x1398437, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x1398437, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x1398437, 0x80000000, 0x1398437, 0x3000000},
+{0x3000000, 0x1398437, 0x80000001, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x80000076, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x80002b94, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x80636d24, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x807fffff, 0x1398437, 0x3000080},
+{0x3000000, 0x1398437, 0x80800000, 0xf3086e, 0x3000000},
+{0x3000000, 0x1398437, 0x80800002, 0xf3086c, 0x3000000},
+{0x3000000, 0x1398437, 0x81398437, 0x0, 0x3000000},
+{0x3000000, 0x1398437, 0x8ba98d27, 0x8ba98d21, 0x3000010},
+{0x3000000, 0x1398437, 0x8ba98d7a, 0x8ba98d74, 0x3000010},
+{0x3000000, 0x1398437, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x1398437, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x1398437, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x1398437, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x1398437, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x1398437, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x1398437, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x1398437, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x1398437, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x1398437, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x1398437, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x1398437, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x1398437, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x1398437, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x1398437, 0x9503366, 0x9503420, 0x3000010},
+{0x3000000, 0x1398437, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x1398437, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x1398437, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x1398437, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x1398437, 0x966320b, 0x96632c5, 0x3000010},
+{0x3000000, 0x1398437, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x1398437, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x1398437, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x1398437, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x1398437, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x1398437, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0xba98d27, 0x0, 0xba98d27, 0x3000000},
+{0x3000000, 0xba98d27, 0x1, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x76, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x2b94, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x636d24, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x7fffff, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x800000, 0xba98d29, 0x3000000},
+{0x3000000, 0xba98d27, 0x800002, 0xba98d29, 0x3000010},
+{0x3000000, 0xba98d27, 0x1398437, 0xba98d2d, 0x3000010},
+{0x3000000, 0xba98d27, 0xba98d27, 0xc298d27, 0x3000000},
+{0x3000000, 0xba98d27, 0xba98d7a, 0xc298d50, 0x3000010},
+{0x3000000, 0xba98d27, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0xba98d27, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0xba98d27, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0xba98d27, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xba98d27, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d27, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d27, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d27, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d27, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d27, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d27, 0x80000000, 0xba98d27, 0x3000000},
+{0x3000000, 0xba98d27, 0x80000001, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x80000076, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x80002b94, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x80636d24, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x807fffff, 0xba98d27, 0x3000080},
+{0x3000000, 0xba98d27, 0x80800000, 0xba98d25, 0x3000000},
+{0x3000000, 0xba98d27, 0x80800002, 0xba98d25, 0x3000010},
+{0x3000000, 0xba98d27, 0x81398437, 0xba98d21, 0x3000010},
+{0x3000000, 0xba98d27, 0x8ba98d27, 0x0, 0x3000000},
+{0x3000000, 0xba98d27, 0x8ba98d7a, 0x83260000, 0x3000000},
+{0x3000000, 0xba98d27, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xba98d27, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xba98d27, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0xba98d27, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xba98d27, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d27, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d27, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d27, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d27, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d27, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d27, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0xba98d27, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0xba98d27, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0xba98d27, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0xba98d27, 0x9503366, 0xbb00ec2, 0x3000010},
+{0x3000000, 0xba98d27, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xba98d27, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xba98d27, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0xba98d27, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xba98d27, 0x966320b, 0xbb0beb7, 0x3000010},
+{0x3000000, 0xba98d27, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0xba98d27, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xba98d27, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0xba98d27, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0xba98d27, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0xba98d27, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0xba98d7a, 0x0, 0xba98d7a, 0x3000000},
+{0x3000000, 0xba98d7a, 0x1, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x76, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x2b94, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x636d24, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x7fffff, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x800000, 0xba98d7c, 0x3000000},
+{0x3000000, 0xba98d7a, 0x800002, 0xba98d7c, 0x3000010},
+{0x3000000, 0xba98d7a, 0x1398437, 0xba98d80, 0x3000010},
+{0x3000000, 0xba98d7a, 0xba98d27, 0xc298d50, 0x3000010},
+{0x3000000, 0xba98d7a, 0xba98d7a, 0xc298d7a, 0x3000000},
+{0x3000000, 0xba98d7a, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0xba98d7a, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0xba98d7a, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0xba98d7a, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xba98d7a, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d7a, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d7a, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d7a, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d7a, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d7a, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d7a, 0x80000000, 0xba98d7a, 0x3000000},
+{0x3000000, 0xba98d7a, 0x80000001, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x80000076, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x80002b94, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x80636d24, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x807fffff, 0xba98d7a, 0x3000080},
+{0x3000000, 0xba98d7a, 0x80800000, 0xba98d78, 0x3000000},
+{0x3000000, 0xba98d7a, 0x80800002, 0xba98d78, 0x3000010},
+{0x3000000, 0xba98d7a, 0x81398437, 0xba98d74, 0x3000010},
+{0x3000000, 0xba98d7a, 0x8ba98d27, 0x3260000, 0x3000000},
+{0x3000000, 0xba98d7a, 0x8ba98d7a, 0x0, 0x3000000},
+{0x3000000, 0xba98d7a, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xba98d7a, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xba98d7a, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0xba98d7a, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xba98d7a, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d7a, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d7a, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xba98d7a, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d7a, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d7a, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xba98d7a, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0xba98d7a, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0xba98d7a, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0xba98d7a, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0xba98d7a, 0x9503366, 0xbb00f15, 0x3000010},
+{0x3000000, 0xba98d7a, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xba98d7a, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xba98d7a, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0xba98d7a, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xba98d7a, 0x966320b, 0xbb0bf0a, 0x3000010},
+{0x3000000, 0xba98d7a, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0xba98d7a, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xba98d7a, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0xba98d7a, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0xba98d7a, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0xba98d7a, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x751f853a, 0x0, 0x751f853a, 0x3000000},
+{0x3000000, 0x751f853a, 0x1, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x76, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x2b94, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x636d24, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x7fffff, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x800000, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x800002, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x1398437, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0xba98d27, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0xba98d7a, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x751f853a, 0x759f853a, 0x3000000},
+{0x3000000, 0x751f853a, 0x7f7ffff0, 0x7f7ffffa, 0x3000010},
+{0x3000000, 0x751f853a, 0x7f7fffff, 0x7f800000, 0x3000014},
+{0x3000000, 0x751f853a, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x751f853a, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x751f853a, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x751f853a, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x751f853a, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x751f853a, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x751f853a, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x751f853a, 0x80000000, 0x751f853a, 0x3000000},
+{0x3000000, 0x751f853a, 0x80000001, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x80000076, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x80002b94, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x80636d24, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x807fffff, 0x751f853a, 0x3000080},
+{0x3000000, 0x751f853a, 0x80800000, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x80800002, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x81398437, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x8ba98d27, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x8ba98d7a, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0xf51f853a, 0x0, 0x3000000},
+{0x3000000, 0x751f853a, 0xff7ffff0, 0xff7fffe6, 0x3000010},
+{0x3000000, 0x751f853a, 0xff7fffff, 0xff7ffff5, 0x3000010},
+{0x3000000, 0x751f853a, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x751f853a, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x751f853a, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x751f853a, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x751f853a, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x751f853a, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x751f853a, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x751f853a, 0x4f3495cb, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0xe73a5134, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x7c994e9e, 0x7c994fdd, 0x3000010},
+{0x3000000, 0x751f853a, 0x6164bd6c, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x9503366, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0xbf5a97c9, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0xe6ff1a14, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x77f31e2f, 0x77f81a59, 0x3000010},
+{0x3000000, 0x751f853a, 0xaab4d7d8, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x966320b, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0xb26bddee, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0xb5c8e5d3, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x317285d3, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x3c9623b1, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x51fd2c7c, 0x751f853a, 0x3000010},
+{0x3000000, 0x751f853a, 0x7b906a6c, 0x7b906f68, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x0, 0x7f7ffff0, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0x1, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x76, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x2b94, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x636d24, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x7fffff, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x800000, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x800002, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x1398437, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xba98d27, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xba98d7a, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x751f853a, 0x7f7ffffa, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x7f7ffff0, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7ffff0, 0x7f7fffff, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7ffff0, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7ffff0, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7ffff0, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7ffff0, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0x80000000, 0x7f7ffff0, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0x80000001, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x80000076, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x80002b94, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x80636d24, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x807fffff, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x7f7ffff0, 0x80800000, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x80800002, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x81398437, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x8ba98d27, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x8ba98d7a, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xf51f853a, 0x7f7fffe6, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xff7ffff0, 0x0, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0xff7fffff, 0xf5700000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7ffff0, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7ffff0, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7ffff0, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7ffff0, 0x4f3495cb, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xe73a5134, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x7c994e9e, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7ffff0, 0x6164bd6c, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x9503366, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xbf5a97c9, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xe6ff1a14, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x77f31e2f, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7ffff0, 0xaab4d7d8, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x966320b, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xb26bddee, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0xb5c8e5d3, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x317285d3, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x3c9623b1, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x51fd2c7c, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x7f7ffff0, 0x7b906a6c, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7fffff, 0x0, 0x7f7fffff, 0x3000000},
+{0x3000000, 0x7f7fffff, 0x1, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x76, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x2b94, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x636d24, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x800000, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x800002, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x1398437, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xba98d27, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xba98d7a, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x751f853a, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7fffff, 0x7f7ffff0, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7fffff, 0x7f7fffff, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7fffff, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7fffff, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7fffff, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7fffff, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0x80000000, 0x7f7fffff, 0x3000000},
+{0x3000000, 0x7f7fffff, 0x80000001, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x80000076, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x80002b94, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x80636d24, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x807fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x7f7fffff, 0x80800000, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x80800002, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x81398437, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x8ba98d27, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x8ba98d7a, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xf51f853a, 0x7f7ffff5, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xff7ffff0, 0x75700000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0xff7fffff, 0x0, 0x3000000},
+{0x3000000, 0x7f7fffff, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7fffff, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7fffff, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f7fffff, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f7fffff, 0x4f3495cb, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xe73a5134, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x7c994e9e, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7fffff, 0x6164bd6c, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x9503366, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xbf5a97c9, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xe6ff1a14, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x77f31e2f, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f7fffff, 0xaab4d7d8, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x966320b, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xb26bddee, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0xb5c8e5d3, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x317285d3, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x3c9623b1, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x51fd2c7c, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x7f7fffff, 0x7b906a6c, 0x7f800000, 0x3000014},
+{0x3000000, 0x7f800000, 0x0, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x1, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x76, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x2b94, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x636d24, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x7fffff, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x800002, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x1398437, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xba98d27, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xba98d7a, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x751f853a, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x7f7ffff0, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x7f7fffff, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800000, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800000, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800000, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f800000, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f800000, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f800000, 0x80000000, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x80000001, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x80000076, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x80002b94, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x80636d24, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x807fffff, 0x7f800000, 0x3000080},
+{0x3000000, 0x7f800000, 0x80800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x80800002, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x81398437, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x8ba98d27, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x8ba98d7a, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xf51f853a, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xff7ffff0, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xff7fffff, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xff800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800000, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800000, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800000, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800000, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f800000, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f800000, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7f800000, 0x4f3495cb, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xe73a5134, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x7c994e9e, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x6164bd6c, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x9503366, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xbf5a97c9, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xe6ff1a14, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x77f31e2f, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xaab4d7d8, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x966320b, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xb26bddee, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0xb5c8e5d3, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x317285d3, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x3c9623b1, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x51fd2c7c, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800000, 0x7b906a6c, 0x7f800000, 0x3000000},
+{0x3000000, 0x7f800001, 0x0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x1, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x76, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x2b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x7fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x1398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x751f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7f7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7f7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7f800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7fc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7fd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7fffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x80000000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x80000001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x80000076, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x80002b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x80636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x807fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f800001, 0x80800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x80800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x81398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x8ba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x8ba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xf51f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xff7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xff7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xff800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xffc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xffd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xffffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x4f3495cb, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xe73a5134, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7c994e9e, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x6164bd6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x9503366, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xbf5a97c9, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xe6ff1a14, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x77f31e2f, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xaab4d7d8, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x966320b, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xb26bddee, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0xb5c8e5d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x317285d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x3c9623b1, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x51fd2c7c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f800001, 0x7b906a6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x1, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x76, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x2b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x7fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x1398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x751f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7f7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7f7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7f800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7fc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7fd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7fffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x80000000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x80000001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x80000076, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x80002b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x80636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x807fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7f984a37, 0x80800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x80800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x81398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x8ba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x8ba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xf51f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xff7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xff7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xff800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xffc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xffd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xffffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x4f3495cb, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xe73a5134, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7c994e9e, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x6164bd6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x9503366, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xbf5a97c9, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xe6ff1a14, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x77f31e2f, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xaab4d7d8, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x966320b, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xb26bddee, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0xb5c8e5d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x317285d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x3c9623b1, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x51fd2c7c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7f984a37, 0x7b906a6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x1, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x76, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x2b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x7fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x1398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x751f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7f7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7f7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7f800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7fc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7fd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7fffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x80000000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x80000001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x80000076, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x80002b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x80636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x807fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x7fbfffff, 0x80800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x80800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x81398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x8ba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x8ba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xf51f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xff7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xff7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xff800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xffc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xffd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xffffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x4f3495cb, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xe73a5134, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7c994e9e, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x6164bd6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x9503366, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xbf5a97c9, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xe6ff1a14, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x77f31e2f, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xaab4d7d8, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x966320b, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xb26bddee, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0xb5c8e5d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x317285d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x3c9623b1, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x51fd2c7c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fbfffff, 0x7b906a6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fc00000, 0x0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x1, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x76, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x2b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x7fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x1398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x751f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x7f7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x7f7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x7f800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fc00000, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fc00000, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fc00000, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x80000000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x80000001, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x80000076, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x80002b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x80636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x807fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fc00000, 0x80800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x80800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x81398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x8ba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x8ba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xf51f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xff7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xff7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xff800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fc00000, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fc00000, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fc00000, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x4f3495cb, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xe73a5134, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x7c994e9e, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x6164bd6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x9503366, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xbf5a97c9, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xe6ff1a14, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x77f31e2f, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xaab4d7d8, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x966320b, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xb26bddee, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0xb5c8e5d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x317285d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x3c9623b1, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x51fd2c7c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fc00000, 0x7b906a6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x1, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x76, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x2b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x7fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x1398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x751f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x7f7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x7f7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x7f800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fd9ba98, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fd9ba98, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fd9ba98, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x80000000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x80000001, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x80000076, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x80002b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x80636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x807fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fd9ba98, 0x80800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x80800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x81398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x8ba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x8ba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xf51f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xff7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xff7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xff800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fd9ba98, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fd9ba98, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fd9ba98, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x4f3495cb, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xe73a5134, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x7c994e9e, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x6164bd6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x9503366, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xbf5a97c9, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xe6ff1a14, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x77f31e2f, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xaab4d7d8, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x966320b, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xb26bddee, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0xb5c8e5d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x317285d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x3c9623b1, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x51fd2c7c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fd9ba98, 0x7b906a6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x1, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x76, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x2b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x7fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x1398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x751f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x7f7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x7f7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x7f800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fffffff, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fffffff, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fffffff, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x80000000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x80000001, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x80000076, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x80002b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x80636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x807fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x7fffffff, 0x80800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x80800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x81398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x8ba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x8ba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xf51f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xff7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xff7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xff800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fffffff, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fffffff, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7fffffff, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x4f3495cb, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xe73a5134, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x7c994e9e, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x6164bd6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x9503366, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xbf5a97c9, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xe6ff1a14, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x77f31e2f, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xaab4d7d8, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x966320b, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xb26bddee, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0xb5c8e5d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x317285d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x3c9623b1, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x51fd2c7c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7fffffff, 0x7b906a6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80000000, 0x0, 0x0, 0x3000000},
+{0x3000000, 0x80000000, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x800000, 0x800000, 0x3000000},
+{0x3000000, 0x80000000, 0x800002, 0x800002, 0x3000000},
+{0x3000000, 0x80000000, 0x1398437, 0x1398437, 0x3000000},
+{0x3000000, 0x80000000, 0xba98d27, 0xba98d27, 0x3000000},
+{0x3000000, 0x80000000, 0xba98d7a, 0xba98d7a, 0x3000000},
+{0x3000000, 0x80000000, 0x751f853a, 0x751f853a, 0x3000000},
+{0x3000000, 0x80000000, 0x7f7ffff0, 0x7f7ffff0, 0x3000000},
+{0x3000000, 0x80000000, 0x7f7fffff, 0x7f7fffff, 0x3000000},
+{0x3000000, 0x80000000, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x80000000, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80000000, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80000000, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80000000, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80000000, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80000000, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80000000, 0x80000000, 0x80000000, 0x3000000},
+{0x3000000, 0x80000000, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x80000000, 0x80800000, 0x80800000, 0x3000000},
+{0x3000000, 0x80000000, 0x80800002, 0x80800002, 0x3000000},
+{0x3000000, 0x80000000, 0x81398437, 0x81398437, 0x3000000},
+{0x3000000, 0x80000000, 0x8ba98d27, 0x8ba98d27, 0x3000000},
+{0x3000000, 0x80000000, 0x8ba98d7a, 0x8ba98d7a, 0x3000000},
+{0x3000000, 0x80000000, 0xf51f853a, 0xf51f853a, 0x3000000},
+{0x3000000, 0x80000000, 0xff7ffff0, 0xff7ffff0, 0x3000000},
+{0x3000000, 0x80000000, 0xff7fffff, 0xff7fffff, 0x3000000},
+{0x3000000, 0x80000000, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x80000000, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80000000, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80000000, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80000000, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80000000, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80000000, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80000000, 0x4f3495cb, 0x4f3495cb, 0x3000000},
+{0x3000000, 0x80000000, 0xe73a5134, 0xe73a5134, 0x3000000},
+{0x3000000, 0x80000000, 0x7c994e9e, 0x7c994e9e, 0x3000000},
+{0x3000000, 0x80000000, 0x6164bd6c, 0x6164bd6c, 0x3000000},
+{0x3000000, 0x80000000, 0x9503366, 0x9503366, 0x3000000},
+{0x3000000, 0x80000000, 0xbf5a97c9, 0xbf5a97c9, 0x3000000},
+{0x3000000, 0x80000000, 0xe6ff1a14, 0xe6ff1a14, 0x3000000},
+{0x3000000, 0x80000000, 0x77f31e2f, 0x77f31e2f, 0x3000000},
+{0x3000000, 0x80000000, 0xaab4d7d8, 0xaab4d7d8, 0x3000000},
+{0x3000000, 0x80000000, 0x966320b, 0x966320b, 0x3000000},
+{0x3000000, 0x80000000, 0xb26bddee, 0xb26bddee, 0x3000000},
+{0x3000000, 0x80000000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000000},
+{0x3000000, 0x80000000, 0x317285d3, 0x317285d3, 0x3000000},
+{0x3000000, 0x80000000, 0x3c9623b1, 0x3c9623b1, 0x3000000},
+{0x3000000, 0x80000000, 0x51fd2c7c, 0x51fd2c7c, 0x3000000},
+{0x3000000, 0x80000000, 0x7b906a6c, 0x7b906a6c, 0x3000000},
+{0x3000000, 0x80000001, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x80000001, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x80000001, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x80000001, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x80000001, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x80000001, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x80000001, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x80000001, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x80000001, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x80000001, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000001, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000001, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000001, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000001, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000001, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000001, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x80000001, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x80000001, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x80000001, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x80000001, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x80000001, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x80000001, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x80000001, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x80000001, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x80000001, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x80000001, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000001, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000001, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000001, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000001, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000001, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000001, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x80000001, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x80000001, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x80000001, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x80000001, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x80000001, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x80000001, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x80000001, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x80000001, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x80000001, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x80000001, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x80000001, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x80000001, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x80000001, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x80000001, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x80000001, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x80000076, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x80000076, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x80000076, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x80000076, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x80000076, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x80000076, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x80000076, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x80000076, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x80000076, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x80000076, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000076, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000076, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000076, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000076, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000076, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000076, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x80000076, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x80000076, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x80000076, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x80000076, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x80000076, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x80000076, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x80000076, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x80000076, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x80000076, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x80000076, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000076, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000076, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80000076, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000076, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000076, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80000076, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x80000076, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x80000076, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x80000076, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x80000076, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x80000076, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x80000076, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x80000076, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x80000076, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x80000076, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x80000076, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x80000076, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x80000076, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x80000076, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x80000076, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x80000076, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x80002b94, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x80002b94, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x80002b94, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x80002b94, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x80002b94, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x80002b94, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x80002b94, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x80002b94, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x80002b94, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x80002b94, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80002b94, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80002b94, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80002b94, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80002b94, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80002b94, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80002b94, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x80002b94, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x80002b94, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x80002b94, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x80002b94, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x80002b94, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x80002b94, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x80002b94, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x80002b94, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x80002b94, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x80002b94, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80002b94, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80002b94, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80002b94, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80002b94, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80002b94, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80002b94, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x80002b94, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x80002b94, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x80002b94, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x80002b94, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x80002b94, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x80002b94, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x80002b94, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x80002b94, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x80002b94, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x80002b94, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x80002b94, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x80002b94, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x80002b94, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x80002b94, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x80002b94, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x80636d24, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x80636d24, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x80636d24, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x80636d24, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x80636d24, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x80636d24, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x80636d24, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x80636d24, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x80636d24, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x80636d24, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80636d24, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80636d24, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80636d24, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80636d24, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80636d24, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80636d24, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x80636d24, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x80636d24, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x80636d24, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x80636d24, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x80636d24, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x80636d24, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x80636d24, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x80636d24, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x80636d24, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x80636d24, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80636d24, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80636d24, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x80636d24, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80636d24, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80636d24, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x80636d24, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x80636d24, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x80636d24, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x80636d24, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x80636d24, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x80636d24, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x80636d24, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x80636d24, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x80636d24, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x80636d24, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x80636d24, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x80636d24, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x80636d24, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x80636d24, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x80636d24, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x80636d24, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x807fffff, 0x0, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x1, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x76, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x2b94, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x636d24, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x7fffff, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x800000, 0x800000, 0x3000080},
+{0x3000000, 0x807fffff, 0x800002, 0x800002, 0x3000080},
+{0x3000000, 0x807fffff, 0x1398437, 0x1398437, 0x3000080},
+{0x3000000, 0x807fffff, 0xba98d27, 0xba98d27, 0x3000080},
+{0x3000000, 0x807fffff, 0xba98d7a, 0xba98d7a, 0x3000080},
+{0x3000000, 0x807fffff, 0x751f853a, 0x751f853a, 0x3000080},
+{0x3000000, 0x807fffff, 0x7f7ffff0, 0x7f7ffff0, 0x3000080},
+{0x3000000, 0x807fffff, 0x7f7fffff, 0x7f7fffff, 0x3000080},
+{0x3000000, 0x807fffff, 0x7f800000, 0x7f800000, 0x3000080},
+{0x3000000, 0x807fffff, 0x7f800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x807fffff, 0x7f984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x807fffff, 0x7fbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x807fffff, 0x7fc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x807fffff, 0x7fd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x807fffff, 0x7fffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x807fffff, 0x80000000, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x80000001, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x80000076, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x80002b94, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x80636d24, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x807fffff, 0x0, 0x3000080},
+{0x3000000, 0x807fffff, 0x80800000, 0x80800000, 0x3000080},
+{0x3000000, 0x807fffff, 0x80800002, 0x80800002, 0x3000080},
+{0x3000000, 0x807fffff, 0x81398437, 0x81398437, 0x3000080},
+{0x3000000, 0x807fffff, 0x8ba98d27, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x807fffff, 0x8ba98d7a, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x807fffff, 0xf51f853a, 0xf51f853a, 0x3000080},
+{0x3000000, 0x807fffff, 0xff7ffff0, 0xff7ffff0, 0x3000080},
+{0x3000000, 0x807fffff, 0xff7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0x807fffff, 0xff800000, 0xff800000, 0x3000080},
+{0x3000000, 0x807fffff, 0xff800001, 0x7fc00000, 0x3000081},
+{0x3000000, 0x807fffff, 0xff984a37, 0x7fc00000, 0x3000081},
+{0x3000000, 0x807fffff, 0xffbfffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0x807fffff, 0xffc00000, 0x7fc00000, 0x3000080},
+{0x3000000, 0x807fffff, 0xffd9ba98, 0x7fc00000, 0x3000080},
+{0x3000000, 0x807fffff, 0xffffffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0x807fffff, 0x4f3495cb, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x807fffff, 0xe73a5134, 0xe73a5134, 0x3000080},
+{0x3000000, 0x807fffff, 0x7c994e9e, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x807fffff, 0x6164bd6c, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x807fffff, 0x9503366, 0x9503366, 0x3000080},
+{0x3000000, 0x807fffff, 0xbf5a97c9, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0x807fffff, 0xe6ff1a14, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0x807fffff, 0x77f31e2f, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x807fffff, 0xaab4d7d8, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0x807fffff, 0x966320b, 0x966320b, 0x3000080},
+{0x3000000, 0x807fffff, 0xb26bddee, 0xb26bddee, 0x3000080},
+{0x3000000, 0x807fffff, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0x807fffff, 0x317285d3, 0x317285d3, 0x3000080},
+{0x3000000, 0x807fffff, 0x3c9623b1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x807fffff, 0x51fd2c7c, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x807fffff, 0x7b906a6c, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x80800000, 0x0, 0x80800000, 0x3000000},
+{0x3000000, 0x80800000, 0x1, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x76, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x2b94, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x636d24, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x7fffff, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x800000, 0x0, 0x3000000},
+{0x3000000, 0x80800000, 0x800002, 0x0, 0x3000008},
+{0x3000000, 0x80800000, 0x1398437, 0xf3086e, 0x3000000},
+{0x3000000, 0x80800000, 0xba98d27, 0xba98d25, 0x3000000},
+{0x3000000, 0x80800000, 0xba98d7a, 0xba98d78, 0x3000000},
+{0x3000000, 0x80800000, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x80800000, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x80800000, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x80800000, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x80800000, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800000, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800000, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800000, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800000, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800000, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800000, 0x80000000, 0x80800000, 0x3000000},
+{0x3000000, 0x80800000, 0x80000001, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x80000076, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x80002b94, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x80636d24, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x807fffff, 0x80800000, 0x3000080},
+{0x3000000, 0x80800000, 0x80800000, 0x81000000, 0x3000000},
+{0x3000000, 0x80800000, 0x80800002, 0x81000001, 0x3000000},
+{0x3000000, 0x80800000, 0x81398437, 0x81798437, 0x3000000},
+{0x3000000, 0x80800000, 0x8ba98d27, 0x8ba98d29, 0x3000000},
+{0x3000000, 0x80800000, 0x8ba98d7a, 0x8ba98d7c, 0x3000000},
+{0x3000000, 0x80800000, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x80800000, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x80800000, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x80800000, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x80800000, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800000, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800000, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800000, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800000, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800000, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800000, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x80800000, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x80800000, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x80800000, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x80800000, 0x9503366, 0x9503326, 0x3000000},
+{0x3000000, 0x80800000, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x80800000, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x80800000, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x80800000, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x80800000, 0x966320b, 0x96631cb, 0x3000000},
+{0x3000000, 0x80800000, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x80800000, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x80800000, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x80800000, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x80800000, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x80800000, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x80800002, 0x0, 0x80800002, 0x3000000},
+{0x3000000, 0x80800002, 0x1, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x76, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x2b94, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x636d24, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x7fffff, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x800000, 0x0, 0x3000008},
+{0x3000000, 0x80800002, 0x800002, 0x0, 0x3000000},
+{0x3000000, 0x80800002, 0x1398437, 0xf3086c, 0x3000000},
+{0x3000000, 0x80800002, 0xba98d27, 0xba98d25, 0x3000010},
+{0x3000000, 0x80800002, 0xba98d7a, 0xba98d78, 0x3000010},
+{0x3000000, 0x80800002, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x80800002, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x80800002, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x80800002, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x80800002, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800002, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800002, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800002, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800002, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800002, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800002, 0x80000000, 0x80800002, 0x3000000},
+{0x3000000, 0x80800002, 0x80000001, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x80000076, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x80002b94, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x80636d24, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x807fffff, 0x80800002, 0x3000080},
+{0x3000000, 0x80800002, 0x80800000, 0x81000001, 0x3000000},
+{0x3000000, 0x80800002, 0x80800002, 0x81000002, 0x3000000},
+{0x3000000, 0x80800002, 0x81398437, 0x81798438, 0x3000000},
+{0x3000000, 0x80800002, 0x8ba98d27, 0x8ba98d29, 0x3000010},
+{0x3000000, 0x80800002, 0x8ba98d7a, 0x8ba98d7c, 0x3000010},
+{0x3000000, 0x80800002, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x80800002, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x80800002, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x80800002, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x80800002, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800002, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800002, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x80800002, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800002, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800002, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x80800002, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x80800002, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x80800002, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x80800002, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x80800002, 0x9503366, 0x9503326, 0x3000010},
+{0x3000000, 0x80800002, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x80800002, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x80800002, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x80800002, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x80800002, 0x966320b, 0x96631cb, 0x3000010},
+{0x3000000, 0x80800002, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x80800002, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x80800002, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x80800002, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x80800002, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x80800002, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x81398437, 0x0, 0x81398437, 0x3000000},
+{0x3000000, 0x81398437, 0x1, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x76, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x2b94, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x636d24, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x7fffff, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x800000, 0x80f3086e, 0x3000000},
+{0x3000000, 0x81398437, 0x800002, 0x80f3086c, 0x3000000},
+{0x3000000, 0x81398437, 0x1398437, 0x0, 0x3000000},
+{0x3000000, 0x81398437, 0xba98d27, 0xba98d21, 0x3000010},
+{0x3000000, 0x81398437, 0xba98d7a, 0xba98d74, 0x3000010},
+{0x3000000, 0x81398437, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x81398437, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x81398437, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x81398437, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x81398437, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x81398437, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x81398437, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x81398437, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x81398437, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x81398437, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x81398437, 0x80000000, 0x81398437, 0x3000000},
+{0x3000000, 0x81398437, 0x80000001, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x80000076, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x80002b94, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x80636d24, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x807fffff, 0x81398437, 0x3000080},
+{0x3000000, 0x81398437, 0x80800000, 0x81798437, 0x3000000},
+{0x3000000, 0x81398437, 0x80800002, 0x81798438, 0x3000000},
+{0x3000000, 0x81398437, 0x81398437, 0x81b98437, 0x3000000},
+{0x3000000, 0x81398437, 0x8ba98d27, 0x8ba98d2d, 0x3000010},
+{0x3000000, 0x81398437, 0x8ba98d7a, 0x8ba98d80, 0x3000010},
+{0x3000000, 0x81398437, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x81398437, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x81398437, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x81398437, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x81398437, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x81398437, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x81398437, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x81398437, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x81398437, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x81398437, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x81398437, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x81398437, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x81398437, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x81398437, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x81398437, 0x9503366, 0x95032ac, 0x3000010},
+{0x3000000, 0x81398437, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x81398437, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x81398437, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x81398437, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x81398437, 0x966320b, 0x9663151, 0x3000010},
+{0x3000000, 0x81398437, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x81398437, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x81398437, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x81398437, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x81398437, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x81398437, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x0, 0x8ba98d27, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x1, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x76, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x2b94, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x636d24, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x7fffff, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x800000, 0x8ba98d25, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x800002, 0x8ba98d25, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x1398437, 0x8ba98d21, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xba98d27, 0x0, 0x3000000},
+{0x3000000, 0x8ba98d27, 0xba98d7a, 0x3260000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d27, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d27, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d27, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x80000000, 0x8ba98d27, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x80000001, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x80000076, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x80002b94, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x80636d24, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x807fffff, 0x8ba98d27, 0x3000080},
+{0x3000000, 0x8ba98d27, 0x80800000, 0x8ba98d29, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x80800002, 0x8ba98d29, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x81398437, 0x8ba98d2d, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x8ba98d27, 0x8c298d27, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x8ba98d7a, 0x8c298d50, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d27, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d27, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d27, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d27, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x9503366, 0x8ba30b8c, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x966320b, 0x8ba25b97, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x8ba98d27, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x8ba98d27, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x0, 0x8ba98d7a, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x1, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x76, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x2b94, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x636d24, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x7fffff, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x800000, 0x8ba98d78, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x800002, 0x8ba98d78, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x1398437, 0x8ba98d74, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xba98d27, 0x83260000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0xba98d7a, 0x0, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d7a, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d7a, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d7a, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x80000000, 0x8ba98d7a, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x80000001, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x80000076, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x80002b94, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x80636d24, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x807fffff, 0x8ba98d7a, 0x3000080},
+{0x3000000, 0x8ba98d7a, 0x80800000, 0x8ba98d7c, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x80800002, 0x8ba98d7c, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x81398437, 0x8ba98d80, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x8ba98d27, 0x8c298d50, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x8ba98d7a, 0x8c298d7a, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d7a, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d7a, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x8ba98d7a, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x8ba98d7a, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x9503366, 0x8ba30bdf, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x966320b, 0x8ba25bea, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x8ba98d7a, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0xf51f853a, 0x0, 0xf51f853a, 0x3000000},
+{0x3000000, 0xf51f853a, 0x1, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x76, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x2b94, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x636d24, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x7fffff, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x800000, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x800002, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x1398437, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0xba98d27, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0xba98d7a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x751f853a, 0x0, 0x3000000},
+{0x3000000, 0xf51f853a, 0x7f7ffff0, 0x7f7fffe6, 0x3000010},
+{0x3000000, 0xf51f853a, 0x7f7fffff, 0x7f7ffff5, 0x3000010},
+{0x3000000, 0xf51f853a, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xf51f853a, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xf51f853a, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xf51f853a, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xf51f853a, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xf51f853a, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xf51f853a, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xf51f853a, 0x80000000, 0xf51f853a, 0x3000000},
+{0x3000000, 0xf51f853a, 0x80000001, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x80000076, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x80002b94, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x80636d24, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x807fffff, 0xf51f853a, 0x3000080},
+{0x3000000, 0xf51f853a, 0x80800000, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x80800002, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x81398437, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x8ba98d27, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x8ba98d7a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0xf51f853a, 0xf59f853a, 0x3000000},
+{0x3000000, 0xf51f853a, 0xff7ffff0, 0xff7ffffa, 0x3000010},
+{0x3000000, 0xf51f853a, 0xff7fffff, 0xff800000, 0x3000014},
+{0x3000000, 0xf51f853a, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xf51f853a, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xf51f853a, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xf51f853a, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xf51f853a, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xf51f853a, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xf51f853a, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xf51f853a, 0x4f3495cb, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0xe73a5134, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x7c994e9e, 0x7c994d5f, 0x3000010},
+{0x3000000, 0xf51f853a, 0x6164bd6c, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x9503366, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0xbf5a97c9, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0xe6ff1a14, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x77f31e2f, 0x77ee2205, 0x3000010},
+{0x3000000, 0xf51f853a, 0xaab4d7d8, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x966320b, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0xb26bddee, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0xb5c8e5d3, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x317285d3, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x3c9623b1, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x51fd2c7c, 0xf51f853a, 0x3000010},
+{0x3000000, 0xf51f853a, 0x7b906a6c, 0x7b906570, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x0, 0xff7ffff0, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x1, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x76, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x2b94, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x636d24, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x7fffff, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x800000, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x800002, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x1398437, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xba98d27, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xba98d7a, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x751f853a, 0xff7fffe6, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x7f7ffff0, 0x0, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x7f7fffff, 0x75700000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7ffff0, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7ffff0, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7ffff0, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x80000000, 0xff7ffff0, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x80000001, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x80000076, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x80002b94, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x80636d24, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x807fffff, 0xff7ffff0, 0x3000080},
+{0x3000000, 0xff7ffff0, 0x80800000, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x80800002, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x81398437, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x8ba98d27, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x8ba98d7a, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xf51f853a, 0xff7ffffa, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xff7ffff0, 0xff800000, 0x3000014},
+{0x3000000, 0xff7ffff0, 0xff7fffff, 0xff800000, 0x3000014},
+{0x3000000, 0xff7ffff0, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7ffff0, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7ffff0, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7ffff0, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7ffff0, 0x4f3495cb, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xe73a5134, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x7c994e9e, 0xff7b357b, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x6164bd6c, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x9503366, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xbf5a97c9, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xe6ff1a14, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x77f31e2f, 0xff7ffe0a, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xaab4d7d8, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x966320b, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xb26bddee, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0xb5c8e5d3, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x317285d3, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x3c9623b1, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x51fd2c7c, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xff7ffff0, 0x7b906a6c, 0xff7edf1b, 0x3000010},
+{0x3000000, 0xff7fffff, 0x0, 0xff7fffff, 0x3000000},
+{0x3000000, 0xff7fffff, 0x1, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x76, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x2b94, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x636d24, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x7fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x800000, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x800002, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x1398437, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0xba98d27, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0xba98d7a, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x751f853a, 0xff7ffff5, 0x3000010},
+{0x3000000, 0xff7fffff, 0x7f7ffff0, 0xf5700000, 0x3000000},
+{0x3000000, 0xff7fffff, 0x7f7fffff, 0x0, 0x3000000},
+{0x3000000, 0xff7fffff, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xff7fffff, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7fffff, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7fffff, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7fffff, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7fffff, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7fffff, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7fffff, 0x80000000, 0xff7fffff, 0x3000000},
+{0x3000000, 0xff7fffff, 0x80000001, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x80000076, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x80002b94, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x80636d24, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x807fffff, 0xff7fffff, 0x3000080},
+{0x3000000, 0xff7fffff, 0x80800000, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x80800002, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x81398437, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x8ba98d27, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x8ba98d7a, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0xf51f853a, 0xff800000, 0x3000014},
+{0x3000000, 0xff7fffff, 0xff7ffff0, 0xff800000, 0x3000014},
+{0x3000000, 0xff7fffff, 0xff7fffff, 0xff800000, 0x3000014},
+{0x3000000, 0xff7fffff, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xff7fffff, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7fffff, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7fffff, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff7fffff, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7fffff, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7fffff, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff7fffff, 0x4f3495cb, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0xe73a5134, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x7c994e9e, 0xff7b358a, 0x3000010},
+{0x3000000, 0xff7fffff, 0x6164bd6c, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x9503366, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0xbf5a97c9, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0xe6ff1a14, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x77f31e2f, 0xff7ffe19, 0x3000010},
+{0x3000000, 0xff7fffff, 0xaab4d7d8, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x966320b, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0xb26bddee, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0xb5c8e5d3, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x317285d3, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x3c9623b1, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x51fd2c7c, 0xff7fffff, 0x3000010},
+{0x3000000, 0xff7fffff, 0x7b906a6c, 0xff7edf2a, 0x3000010},
+{0x3000000, 0xff800000, 0x0, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x1, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x76, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x2b94, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x636d24, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x7fffff, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x800000, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x800002, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x1398437, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xba98d27, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xba98d7a, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x751f853a, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x7f7ffff0, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x7f7fffff, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x7f800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800000, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800000, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800000, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800000, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff800000, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff800000, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff800000, 0x80000000, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x80000001, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x80000076, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x80002b94, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x80636d24, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x807fffff, 0xff800000, 0x3000080},
+{0x3000000, 0xff800000, 0x80800000, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x80800002, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x81398437, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x8ba98d27, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x8ba98d7a, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xf51f853a, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xff7ffff0, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xff7fffff, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800000, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800000, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800000, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff800000, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff800000, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xff800000, 0x4f3495cb, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xe73a5134, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x7c994e9e, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x6164bd6c, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x9503366, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xbf5a97c9, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xe6ff1a14, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x77f31e2f, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xaab4d7d8, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x966320b, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xb26bddee, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0xb5c8e5d3, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x317285d3, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x3c9623b1, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x51fd2c7c, 0xff800000, 0x3000000},
+{0x3000000, 0xff800000, 0x7b906a6c, 0xff800000, 0x3000000},
+{0x3000000, 0xff800001, 0x0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x1, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x76, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x2b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x7fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x1398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x751f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7f7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7f7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7f800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7fc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7fd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7fffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x80000000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x80000001, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x80000076, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x80002b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x80636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x807fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff800001, 0x80800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x80800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x81398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x8ba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x8ba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xf51f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xff7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xff7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xff800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xffc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xffd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xffffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x4f3495cb, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xe73a5134, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7c994e9e, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x6164bd6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x9503366, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xbf5a97c9, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xe6ff1a14, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x77f31e2f, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xaab4d7d8, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x966320b, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xb26bddee, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0xb5c8e5d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x317285d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x3c9623b1, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x51fd2c7c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff800001, 0x7b906a6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x1, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x76, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x2b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x7fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x1398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x751f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7f7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7f7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7f800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7fc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7fd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7fffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x80000000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x80000001, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x80000076, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x80002b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x80636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x807fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0xff984a37, 0x80800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x80800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x81398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x8ba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x8ba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xf51f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xff7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xff7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xff800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xffc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xffd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xffffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x4f3495cb, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xe73a5134, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7c994e9e, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x6164bd6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x9503366, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xbf5a97c9, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xe6ff1a14, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x77f31e2f, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xaab4d7d8, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x966320b, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xb26bddee, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0xb5c8e5d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x317285d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x3c9623b1, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x51fd2c7c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xff984a37, 0x7b906a6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x1, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x76, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x2b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x7fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x1398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x751f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7f7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7f7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7f800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7fc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7fd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7fffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x80000000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x80000001, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x80000076, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x80002b94, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x80636d24, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x807fffff, 0x7fc00000, 0x3000081},
+{0x3000000, 0xffbfffff, 0x80800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x80800002, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x81398437, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x8ba98d27, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x8ba98d7a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xf51f853a, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xff7ffff0, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xff7fffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xff800000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xffc00000, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xffd9ba98, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xffffffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x4f3495cb, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xe73a5134, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7c994e9e, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x6164bd6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x9503366, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xbf5a97c9, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xe6ff1a14, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x77f31e2f, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xaab4d7d8, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x966320b, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xb26bddee, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0xb5c8e5d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x317285d3, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x3c9623b1, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x51fd2c7c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffbfffff, 0x7b906a6c, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffc00000, 0x0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x1, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x76, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x2b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x7fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x1398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x751f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x7f7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x7f7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x7f800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffc00000, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffc00000, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffc00000, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x80000000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x80000001, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x80000076, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x80002b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x80636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x807fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffc00000, 0x80800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x80800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x81398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x8ba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x8ba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xf51f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xff7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xff7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xff800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffc00000, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffc00000, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffc00000, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x4f3495cb, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xe73a5134, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x7c994e9e, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x6164bd6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x9503366, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xbf5a97c9, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xe6ff1a14, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x77f31e2f, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xaab4d7d8, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x966320b, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xb26bddee, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0xb5c8e5d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x317285d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x3c9623b1, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x51fd2c7c, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffc00000, 0x7b906a6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x1, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x76, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x2b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x7fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x1398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x751f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x7f7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x7f7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x7f800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffd9ba98, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffd9ba98, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffd9ba98, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x80000000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x80000001, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x80000076, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x80002b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x80636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x807fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffd9ba98, 0x80800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x80800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x81398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x8ba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x8ba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xf51f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xff7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xff7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xff800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffd9ba98, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffd9ba98, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffd9ba98, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x4f3495cb, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xe73a5134, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x7c994e9e, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x6164bd6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x9503366, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xbf5a97c9, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xe6ff1a14, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x77f31e2f, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xaab4d7d8, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x966320b, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xb26bddee, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0xb5c8e5d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x317285d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x3c9623b1, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x51fd2c7c, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffd9ba98, 0x7b906a6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x1, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x76, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x2b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x7fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x1398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x751f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x7f7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x7f7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x7f800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffffffff, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffffffff, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffffffff, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x80000000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x80000001, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x80000076, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x80002b94, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x80636d24, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x807fffff, 0x7fc00000, 0x3000080},
+{0x3000000, 0xffffffff, 0x80800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x80800002, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x81398437, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x8ba98d27, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x8ba98d7a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xf51f853a, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xff7ffff0, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xff7fffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xff800000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffffffff, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffffffff, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xffffffff, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x4f3495cb, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xe73a5134, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x7c994e9e, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x6164bd6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x9503366, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xbf5a97c9, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xe6ff1a14, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x77f31e2f, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xaab4d7d8, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x966320b, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xb26bddee, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0xb5c8e5d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x317285d3, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x3c9623b1, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x51fd2c7c, 0x7fc00000, 0x3000000},
+{0x3000000, 0xffffffff, 0x7b906a6c, 0x7fc00000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0x0, 0x4f3495cb, 0x3000000},
+{0x3000000, 0x4f3495cb, 0x1, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x76, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x2b94, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x636d24, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x7fffff, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x800000, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x800002, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x1398437, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xba98d27, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xba98d7a, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x4f3495cb, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x4f3495cb, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x4f3495cb, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0x80000000, 0x4f3495cb, 0x3000000},
+{0x3000000, 0x4f3495cb, 0x80000001, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x80000076, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x80002b94, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x80636d24, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x807fffff, 0x4f3495cb, 0x3000080},
+{0x3000000, 0x4f3495cb, 0x80800000, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x80800002, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x81398437, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x8ba98d27, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x8ba98d7a, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x4f3495cb, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x4f3495cb, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x4f3495cb, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x4f3495cb, 0x4f3495cb, 0x4fb495cb, 0x3000000},
+{0x3000000, 0x4f3495cb, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x9503366, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xbf5a97c9, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xaab4d7d8, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x966320b, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xb26bddee, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0xb5c8e5d3, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x317285d3, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x3c9623b1, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x51fd2c7c, 0x52016895, 0x3000010},
+{0x3000000, 0x4f3495cb, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0xe73a5134, 0x0, 0xe73a5134, 0x3000000},
+{0x3000000, 0xe73a5134, 0x1, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x76, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x2b94, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x636d24, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x7fffff, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x800000, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x800002, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x1398437, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0xba98d27, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0xba98d7a, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0xe73a5134, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0xe73a5134, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0xe73a5134, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xe73a5134, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe73a5134, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe73a5134, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe73a5134, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe73a5134, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe73a5134, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe73a5134, 0x80000000, 0xe73a5134, 0x3000000},
+{0x3000000, 0xe73a5134, 0x80000001, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x80000076, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x80002b94, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x80636d24, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x807fffff, 0xe73a5134, 0x3000080},
+{0x3000000, 0xe73a5134, 0x80800000, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x80800002, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x81398437, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x8ba98d27, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x8ba98d7a, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xe73a5134, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xe73a5134, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0xe73a5134, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xe73a5134, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe73a5134, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe73a5134, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe73a5134, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe73a5134, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe73a5134, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe73a5134, 0x4f3495cb, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0xe73a5134, 0xe7ba5134, 0x3000000},
+{0x3000000, 0xe73a5134, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0xe73a5134, 0x6164bd6c, 0xe73a42e8, 0x3000010},
+{0x3000000, 0xe73a5134, 0x9503366, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0xbf5a97c9, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0xe6ff1a14, 0xe79cef1f, 0x3000000},
+{0x3000000, 0xe73a5134, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0xe73a5134, 0xaab4d7d8, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x966320b, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0xb26bddee, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0xb5c8e5d3, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x317285d3, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x3c9623b1, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x51fd2c7c, 0xe73a5134, 0x3000010},
+{0x3000000, 0xe73a5134, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x0, 0x7c994e9e, 0x3000000},
+{0x3000000, 0x7c994e9e, 0x1, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x76, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x2b94, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x636d24, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x7fffff, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x800000, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x800002, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x1398437, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xba98d27, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xba98d7a, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x751f853a, 0x7c994fdd, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x7f7ffff0, 0x7f800000, 0x3000014},
+{0x3000000, 0x7c994e9e, 0x7f7fffff, 0x7f800000, 0x3000014},
+{0x3000000, 0x7c994e9e, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x7c994e9e, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7c994e9e, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7c994e9e, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7c994e9e, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7c994e9e, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7c994e9e, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7c994e9e, 0x80000000, 0x7c994e9e, 0x3000000},
+{0x3000000, 0x7c994e9e, 0x80000001, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x80000076, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x80002b94, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x80636d24, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x807fffff, 0x7c994e9e, 0x3000080},
+{0x3000000, 0x7c994e9e, 0x80800000, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x80800002, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x81398437, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x8ba98d27, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x8ba98d7a, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xf51f853a, 0x7c994d5f, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xff7ffff0, 0xff7b357b, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xff7fffff, 0xff7b358a, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x7c994e9e, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7c994e9e, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7c994e9e, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7c994e9e, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7c994e9e, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7c994e9e, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7c994e9e, 0x4f3495cb, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xe73a5134, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x7c994e9e, 0x7d194e9e, 0x3000000},
+{0x3000000, 0x7c994e9e, 0x6164bd6c, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x9503366, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xbf5a97c9, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xe6ff1a14, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x77f31e2f, 0x7c998b66, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xaab4d7d8, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x966320b, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xb26bddee, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0xb5c8e5d3, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x317285d3, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x3c9623b1, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x51fd2c7c, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x7c994e9e, 0x7b906a6c, 0x7cbd6939, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x0, 0x6164bd6c, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x1, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x76, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x2b94, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x636d24, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x7fffff, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x800000, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x800002, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x1398437, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xba98d27, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xba98d7a, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x6164bd6c, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x6164bd6c, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x6164bd6c, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x80000000, 0x6164bd6c, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x80000001, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x80000076, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x80002b94, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x80636d24, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x807fffff, 0x6164bd6c, 0x3000080},
+{0x3000000, 0x6164bd6c, 0x80800000, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x80800002, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x81398437, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x8ba98d27, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x8ba98d7a, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x6164bd6c, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x6164bd6c, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x6164bd6c, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x6164bd6c, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x6164bd6c, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x6164bd6c, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x4f3495cb, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xe73a5134, 0xe73a42e8, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x6164bd6c, 0x61e4bd6c, 0x3000000},
+{0x3000000, 0x6164bd6c, 0x9503366, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xbf5a97c9, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xe6ff1a14, 0xe6fefd7c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xaab4d7d8, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x966320b, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xb26bddee, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0xb5c8e5d3, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x317285d3, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x3c9623b1, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x51fd2c7c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x6164bd6c, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x9503366, 0x0, 0x9503366, 0x3000000},
+{0x3000000, 0x9503366, 0x1, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x76, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x2b94, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x636d24, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x7fffff, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x800000, 0x95033a6, 0x3000000},
+{0x3000000, 0x9503366, 0x800002, 0x95033a6, 0x3000010},
+{0x3000000, 0x9503366, 0x1398437, 0x9503420, 0x3000010},
+{0x3000000, 0x9503366, 0xba98d27, 0xbb00ec2, 0x3000010},
+{0x3000000, 0x9503366, 0xba98d7a, 0xbb00f15, 0x3000010},
+{0x3000000, 0x9503366, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x9503366, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x9503366, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x9503366, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x9503366, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x9503366, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x9503366, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x9503366, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x9503366, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x9503366, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x9503366, 0x80000000, 0x9503366, 0x3000000},
+{0x3000000, 0x9503366, 0x80000001, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x80000076, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x80002b94, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x80636d24, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x807fffff, 0x9503366, 0x3000080},
+{0x3000000, 0x9503366, 0x80800000, 0x9503326, 0x3000000},
+{0x3000000, 0x9503366, 0x80800002, 0x9503326, 0x3000010},
+{0x3000000, 0x9503366, 0x81398437, 0x95032ac, 0x3000010},
+{0x3000000, 0x9503366, 0x8ba98d27, 0x8ba30b8c, 0x3000010},
+{0x3000000, 0x9503366, 0x8ba98d7a, 0x8ba30bdf, 0x3000010},
+{0x3000000, 0x9503366, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x9503366, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x9503366, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x9503366, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x9503366, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x9503366, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x9503366, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x9503366, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x9503366, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x9503366, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x9503366, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x9503366, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x9503366, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x9503366, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x9503366, 0x9503366, 0x9d03366, 0x3000000},
+{0x3000000, 0x9503366, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x9503366, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x9503366, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x9503366, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x9503366, 0x966320b, 0x9db32b8, 0x3000010},
+{0x3000000, 0x9503366, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x9503366, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x9503366, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x9503366, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x9503366, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x9503366, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x0, 0xbf5a97c9, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0x1, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x76, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x2b94, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x636d24, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x7fffff, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x800000, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x800002, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x1398437, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xba98d27, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xba98d7a, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xbf5a97c9, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xbf5a97c9, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xbf5a97c9, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0x80000000, 0xbf5a97c9, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0x80000001, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x80000076, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x80002b94, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x80636d24, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x807fffff, 0xbf5a97c9, 0x3000080},
+{0x3000000, 0xbf5a97c9, 0x80800000, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x80800002, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x81398437, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x8ba98d27, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x8ba98d7a, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xbf5a97c9, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xbf5a97c9, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xbf5a97c9, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x9503366, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xbf5a97c9, 0xbfda97c9, 0x3000000},
+{0x3000000, 0xbf5a97c9, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xaab4d7d8, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x966320b, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xb26bddee, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0xb5c8e5d3, 0xbf5a97e2, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x317285d3, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x3c9623b1, 0xbf55e6ab, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0xbf5a97c9, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x0, 0xe6ff1a14, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x1, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x76, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x2b94, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x636d24, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x7fffff, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x800000, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x800002, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x1398437, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xba98d27, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xba98d7a, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe6ff1a14, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe6ff1a14, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe6ff1a14, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x80000000, 0xe6ff1a14, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x80000001, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x80000076, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x80002b94, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x80636d24, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x807fffff, 0xe6ff1a14, 0x3000080},
+{0x3000000, 0xe6ff1a14, 0x80800000, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x80800002, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x81398437, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x8ba98d27, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x8ba98d7a, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe6ff1a14, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe6ff1a14, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xe6ff1a14, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x4f3495cb, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xe73a5134, 0xe79cef1f, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x6164bd6c, 0xe6fefd7c, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x9503366, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xbf5a97c9, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xe6ff1a14, 0xe77f1a14, 0x3000000},
+{0x3000000, 0xe6ff1a14, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xaab4d7d8, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x966320b, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xb26bddee, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0xb5c8e5d3, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x317285d3, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x3c9623b1, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x51fd2c7c, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xe6ff1a14, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x0, 0x77f31e2f, 0x3000000},
+{0x3000000, 0x77f31e2f, 0x1, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x76, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x2b94, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x636d24, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x7fffff, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x800000, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x800002, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x1398437, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xba98d27, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xba98d7a, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x751f853a, 0x77f81a59, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x7f7ffff0, 0x7f800000, 0x3000014},
+{0x3000000, 0x77f31e2f, 0x7f7fffff, 0x7f800000, 0x3000014},
+{0x3000000, 0x77f31e2f, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x77f31e2f, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x77f31e2f, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x77f31e2f, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x77f31e2f, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x77f31e2f, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x77f31e2f, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x77f31e2f, 0x80000000, 0x77f31e2f, 0x3000000},
+{0x3000000, 0x77f31e2f, 0x80000001, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x80000076, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x80002b94, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x80636d24, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x807fffff, 0x77f31e2f, 0x3000080},
+{0x3000000, 0x77f31e2f, 0x80800000, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x80800002, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x81398437, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x8ba98d27, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x8ba98d7a, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xf51f853a, 0x77ee2205, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xff7ffff0, 0xff7ffe0a, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xff7fffff, 0xff7ffe19, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x77f31e2f, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x77f31e2f, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x77f31e2f, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x77f31e2f, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x77f31e2f, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x77f31e2f, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x77f31e2f, 0x4f3495cb, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xe73a5134, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x7c994e9e, 0x7c998b66, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x6164bd6c, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x9503366, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xbf5a97c9, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xe6ff1a14, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x77f31e2f, 0x78731e2f, 0x3000000},
+{0x3000000, 0x77f31e2f, 0xaab4d7d8, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x966320b, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xb26bddee, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0xb5c8e5d3, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x317285d3, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x3c9623b1, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x51fd2c7c, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x77f31e2f, 0x7b906a6c, 0x7b915d8a, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x0, 0xaab4d7d8, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0x1, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x76, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x2b94, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x636d24, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x7fffff, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x800000, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x800002, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x1398437, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xba98d27, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xba98d7a, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xaab4d7d8, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xaab4d7d8, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xaab4d7d8, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0x80000000, 0xaab4d7d8, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0x80000001, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x80000076, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x80002b94, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x80636d24, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x807fffff, 0xaab4d7d8, 0x3000080},
+{0x3000000, 0xaab4d7d8, 0x80800000, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x80800002, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x81398437, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x8ba98d27, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x8ba98d7a, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xaab4d7d8, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xaab4d7d8, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xaab4d7d8, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x9503366, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xaab4d7d8, 0xab34d7d8, 0x3000000},
+{0x3000000, 0xaab4d7d8, 0x966320b, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xb26bddee, 0xb26bdf58, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0xb5c8e5d3, 0xb5c8e5d6, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x317285d3, 0x3172802c, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0xaab4d7d8, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x966320b, 0x0, 0x966320b, 0x3000000},
+{0x3000000, 0x966320b, 0x1, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x76, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x2b94, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x636d24, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x7fffff, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x800000, 0x966324b, 0x3000000},
+{0x3000000, 0x966320b, 0x800002, 0x966324b, 0x3000010},
+{0x3000000, 0x966320b, 0x1398437, 0x96632c5, 0x3000010},
+{0x3000000, 0x966320b, 0xba98d27, 0xbb0beb7, 0x3000010},
+{0x3000000, 0x966320b, 0xba98d7a, 0xbb0bf0a, 0x3000010},
+{0x3000000, 0x966320b, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x966320b, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x966320b, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x966320b, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x966320b, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x966320b, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x966320b, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x966320b, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x966320b, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x966320b, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x966320b, 0x80000000, 0x966320b, 0x3000000},
+{0x3000000, 0x966320b, 0x80000001, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x80000076, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x80002b94, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x80636d24, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x807fffff, 0x966320b, 0x3000080},
+{0x3000000, 0x966320b, 0x80800000, 0x96631cb, 0x3000000},
+{0x3000000, 0x966320b, 0x80800002, 0x96631cb, 0x3000010},
+{0x3000000, 0x966320b, 0x81398437, 0x9663151, 0x3000010},
+{0x3000000, 0x966320b, 0x8ba98d27, 0x8ba25b97, 0x3000010},
+{0x3000000, 0x966320b, 0x8ba98d7a, 0x8ba25bea, 0x3000010},
+{0x3000000, 0x966320b, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x966320b, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x966320b, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x966320b, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x966320b, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x966320b, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x966320b, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x966320b, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x966320b, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x966320b, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x966320b, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x966320b, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x966320b, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x966320b, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x966320b, 0x9503366, 0x9db32b8, 0x3000010},
+{0x3000000, 0x966320b, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x966320b, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x966320b, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x966320b, 0xaab4d7d8, 0xaab4d7d8, 0x3000010},
+{0x3000000, 0x966320b, 0x966320b, 0x9e6320b, 0x3000000},
+{0x3000000, 0x966320b, 0xb26bddee, 0xb26bddee, 0x3000010},
+{0x3000000, 0x966320b, 0xb5c8e5d3, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0x966320b, 0x317285d3, 0x317285d3, 0x3000010},
+{0x3000000, 0x966320b, 0x3c9623b1, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x966320b, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x966320b, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0xb26bddee, 0x0, 0xb26bddee, 0x3000000},
+{0x3000000, 0xb26bddee, 0x1, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x76, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x2b94, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x636d24, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x7fffff, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x800000, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0x800002, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0x1398437, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0xba98d27, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0xba98d7a, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0xb26bddee, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0xb26bddee, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0xb26bddee, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xb26bddee, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb26bddee, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb26bddee, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb26bddee, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb26bddee, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb26bddee, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb26bddee, 0x80000000, 0xb26bddee, 0x3000000},
+{0x3000000, 0xb26bddee, 0x80000001, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x80000076, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x80002b94, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x80636d24, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x807fffff, 0xb26bddee, 0x3000080},
+{0x3000000, 0xb26bddee, 0x80800000, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0x80800002, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0x81398437, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0x8ba98d27, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0x8ba98d7a, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xb26bddee, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xb26bddee, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0xb26bddee, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xb26bddee, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb26bddee, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb26bddee, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb26bddee, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb26bddee, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb26bddee, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb26bddee, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0xb26bddee, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0xb26bddee, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0xb26bddee, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0xb26bddee, 0x9503366, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0xb26bddee, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xb26bddee, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0xb26bddee, 0xaab4d7d8, 0xb26bdf58, 0x3000010},
+{0x3000000, 0xb26bddee, 0x966320b, 0xb26bddee, 0x3000010},
+{0x3000000, 0xb26bddee, 0xb26bddee, 0xb2ebddee, 0x3000000},
+{0x3000000, 0xb26bddee, 0xb5c8e5d3, 0xb5cabd8f, 0x3000010},
+{0x3000000, 0xb26bddee, 0x317285d3, 0xb22f3c79, 0x3000010},
+{0x3000000, 0xb26bddee, 0x3c9623b1, 0x3c9623aa, 0x3000010},
+{0x3000000, 0xb26bddee, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0xb26bddee, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x0, 0xb5c8e5d3, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0x1, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x76, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x2b94, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x636d24, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x7fffff, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x800000, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x800002, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x1398437, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xba98d27, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xba98d7a, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb5c8e5d3, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb5c8e5d3, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb5c8e5d3, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0x80000000, 0xb5c8e5d3, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0x80000001, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x80000076, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x80002b94, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x80636d24, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x807fffff, 0xb5c8e5d3, 0x3000080},
+{0x3000000, 0xb5c8e5d3, 0x80800000, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x80800002, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x81398437, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x8ba98d27, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x8ba98d7a, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb5c8e5d3, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb5c8e5d3, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0xb5c8e5d3, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x9503366, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xbf5a97c9, 0xbf5a97e2, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xaab4d7d8, 0xb5c8e5d6, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x966320b, 0xb5c8e5d3, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xb26bddee, 0xb5cabd8f, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0xb5c8e5d3, 0xb648e5d3, 0x3000000},
+{0x3000000, 0xb5c8e5d3, 0x317285d3, 0xb5c86c90, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x3c9623b1, 0x3c96208d, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0xb5c8e5d3, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x317285d3, 0x0, 0x317285d3, 0x3000000},
+{0x3000000, 0x317285d3, 0x1, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x76, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x2b94, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x636d24, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x7fffff, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x800000, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0x800002, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0x1398437, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0xba98d27, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0xba98d7a, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x317285d3, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x317285d3, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x317285d3, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x317285d3, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x317285d3, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x317285d3, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x317285d3, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x317285d3, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x317285d3, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x317285d3, 0x80000000, 0x317285d3, 0x3000000},
+{0x3000000, 0x317285d3, 0x80000001, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x80000076, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x80002b94, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x80636d24, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x807fffff, 0x317285d3, 0x3000080},
+{0x3000000, 0x317285d3, 0x80800000, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0x80800002, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0x81398437, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0x8ba98d27, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0x8ba98d7a, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x317285d3, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x317285d3, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x317285d3, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x317285d3, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x317285d3, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x317285d3, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x317285d3, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x317285d3, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x317285d3, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x317285d3, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x317285d3, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x317285d3, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x317285d3, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x317285d3, 0x9503366, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0xbf5a97c9, 0xbf5a97c9, 0x3000010},
+{0x3000000, 0x317285d3, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x317285d3, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x317285d3, 0xaab4d7d8, 0x3172802c, 0x3000010},
+{0x3000000, 0x317285d3, 0x966320b, 0x317285d3, 0x3000010},
+{0x3000000, 0x317285d3, 0xb26bddee, 0xb22f3c79, 0x3000010},
+{0x3000000, 0x317285d3, 0xb5c8e5d3, 0xb5c86c90, 0x3000010},
+{0x3000000, 0x317285d3, 0x317285d3, 0x31f285d3, 0x3000000},
+{0x3000000, 0x317285d3, 0x3c9623b1, 0x3c9623b3, 0x3000010},
+{0x3000000, 0x317285d3, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x317285d3, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x0, 0x3c9623b1, 0x3000000},
+{0x3000000, 0x3c9623b1, 0x1, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x76, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x2b94, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x636d24, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x7fffff, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x800000, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x800002, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x1398437, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xba98d27, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xba98d7a, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x3c9623b1, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x3c9623b1, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x3c9623b1, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x3c9623b1, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x3c9623b1, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x3c9623b1, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x3c9623b1, 0x80000000, 0x3c9623b1, 0x3000000},
+{0x3000000, 0x3c9623b1, 0x80000001, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x80000076, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x80002b94, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x80636d24, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x807fffff, 0x3c9623b1, 0x3000080},
+{0x3000000, 0x3c9623b1, 0x80800000, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x80800002, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x81398437, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x8ba98d27, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x8ba98d7a, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x3c9623b1, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x3c9623b1, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x3c9623b1, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x3c9623b1, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x3c9623b1, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x3c9623b1, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x3c9623b1, 0x4f3495cb, 0x4f3495cb, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x9503366, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xbf5a97c9, 0xbf55e6ab, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xaab4d7d8, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x966320b, 0x3c9623b1, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xb26bddee, 0x3c9623aa, 0x3000010},
+{0x3000000, 0x3c9623b1, 0xb5c8e5d3, 0x3c96208d, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x317285d3, 0x3c9623b3, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x3c9623b1, 0x3d1623b1, 0x3000000},
+{0x3000000, 0x3c9623b1, 0x51fd2c7c, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x3c9623b1, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x0, 0x51fd2c7c, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0x1, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x76, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x2b94, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x636d24, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x7fffff, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x800000, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x800002, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x1398437, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xba98d27, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xba98d7a, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x751f853a, 0x751f853a, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x7f7ffff0, 0x7f7ffff0, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x7f7fffff, 0x7f7fffff, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x51fd2c7c, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x51fd2c7c, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x51fd2c7c, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0x80000000, 0x51fd2c7c, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0x80000001, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x80000076, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x80002b94, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x80636d24, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x807fffff, 0x51fd2c7c, 0x3000080},
+{0x3000000, 0x51fd2c7c, 0x80800000, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x80800002, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x81398437, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x8ba98d27, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x8ba98d7a, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xf51f853a, 0xf51f853a, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xff7ffff0, 0xff7ffff0, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xff7fffff, 0xff7fffff, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x51fd2c7c, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x51fd2c7c, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x51fd2c7c, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0x4f3495cb, 0x52016895, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xe73a5134, 0xe73a5134, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x7c994e9e, 0x7c994e9e, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x6164bd6c, 0x6164bd6c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x9503366, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xbf5a97c9, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xe6ff1a14, 0xe6ff1a14, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x77f31e2f, 0x77f31e2f, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xaab4d7d8, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x966320b, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xb26bddee, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0xb5c8e5d3, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x317285d3, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x3c9623b1, 0x51fd2c7c, 0x3000010},
+{0x3000000, 0x51fd2c7c, 0x51fd2c7c, 0x527d2c7c, 0x3000000},
+{0x3000000, 0x51fd2c7c, 0x7b906a6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x0, 0x7b906a6c, 0x3000000},
+{0x3000000, 0x7b906a6c, 0x1, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x76, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x2b94, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x636d24, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x7fffff, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x800000, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x800002, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x1398437, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xba98d27, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xba98d7a, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x751f853a, 0x7b906f68, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x7f7ffff0, 0x7f800000, 0x3000014},
+{0x3000000, 0x7b906a6c, 0x7f7fffff, 0x7f800000, 0x3000014},
+{0x3000000, 0x7b906a6c, 0x7f800000, 0x7f800000, 0x3000000},
+{0x3000000, 0x7b906a6c, 0x7f800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7b906a6c, 0x7f984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7b906a6c, 0x7fbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7b906a6c, 0x7fc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7b906a6c, 0x7fd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7b906a6c, 0x7fffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7b906a6c, 0x80000000, 0x7b906a6c, 0x3000000},
+{0x3000000, 0x7b906a6c, 0x80000001, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x80000076, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x80002b94, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x80636d24, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x807fffff, 0x7b906a6c, 0x3000080},
+{0x3000000, 0x7b906a6c, 0x80800000, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x80800002, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x81398437, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x8ba98d27, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x8ba98d7a, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xf51f853a, 0x7b906570, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xff7ffff0, 0xff7edf1b, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xff7fffff, 0xff7edf2a, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xff800000, 0xff800000, 0x3000000},
+{0x3000000, 0x7b906a6c, 0xff800001, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7b906a6c, 0xff984a37, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7b906a6c, 0xffbfffff, 0x7fc00000, 0x3000001},
+{0x3000000, 0x7b906a6c, 0xffc00000, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7b906a6c, 0xffd9ba98, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7b906a6c, 0xffffffff, 0x7fc00000, 0x3000000},
+{0x3000000, 0x7b906a6c, 0x4f3495cb, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xe73a5134, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x7c994e9e, 0x7cbd6939, 0x3000000},
+{0x3000000, 0x7b906a6c, 0x6164bd6c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x9503366, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xbf5a97c9, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xe6ff1a14, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x77f31e2f, 0x7b915d8a, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xaab4d7d8, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x966320b, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xb26bddee, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0xb5c8e5d3, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x317285d3, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x3c9623b1, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x51fd2c7c, 0x7b906a6c, 0x3000010},
+{0x3000000, 0x7b906a6c, 0x7b906a6c, 0x7c106a6c, 0x3000000},
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
index 0961a3251..cffa4c952 100644
--- a/src/video_core/CMakeLists.txt
+++ b/src/video_core/CMakeLists.txt
@@ -15,6 +15,7 @@ set(SRCS
shader/shader_interpreter.cpp
swrasterizer/clipper.cpp
swrasterizer/framebuffer.cpp
+ swrasterizer/lighting.cpp
swrasterizer/proctex.cpp
swrasterizer/rasterizer.cpp
swrasterizer/swrasterizer.cpp
@@ -55,6 +56,7 @@ set(HEADERS
shader/shader_interpreter.h
swrasterizer/clipper.h
swrasterizer/framebuffer.h
+ swrasterizer/lighting.h
swrasterizer/proctex.h
swrasterizer/rasterizer.h
swrasterizer/swrasterizer.h
diff --git a/src/video_core/command_processor.cpp b/src/video_core/command_processor.cpp
index 4633a1df1..f98ca3302 100644
--- a/src/video_core/command_processor.cpp
+++ b/src/video_core/command_processor.cpp
@@ -119,27 +119,6 @@ static void WriteUniformFloatReg(ShaderRegs& config, Shader::ShaderSetup& setup,
}
}
-static void WriteProgramCode(ShaderRegs& config, Shader::ShaderSetup& setup,
- unsigned max_program_code_length, u32 value) {
- if (config.program.offset >= max_program_code_length) {
- LOG_ERROR(HW_GPU, "Invalid %s program offset %d", GetShaderSetupTypeName(setup),
- (int)config.program.offset);
- } else {
- setup.program_code[config.program.offset] = value;
- config.program.offset++;
- }
-}
-
-static void WriteSwizzlePatterns(ShaderRegs& config, Shader::ShaderSetup& setup, u32 value) {
- if (config.swizzle_patterns.offset >= setup.swizzle_data.size()) {
- LOG_ERROR(HW_GPU, "Invalid %s swizzle pattern offset %d", GetShaderSetupTypeName(setup),
- (int)config.swizzle_patterns.offset);
- } else {
- setup.swizzle_data[config.swizzle_patterns.offset] = value;
- config.swizzle_patterns.offset++;
- }
-}
-
static void WritePicaReg(u32 id, u32 value, u32 mask) {
auto& regs = g_state.regs;
@@ -458,7 +437,13 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
case PICA_REG_INDEX_WORKAROUND(gs.program.set_word[5], 0x2a1):
case PICA_REG_INDEX_WORKAROUND(gs.program.set_word[6], 0x2a2):
case PICA_REG_INDEX_WORKAROUND(gs.program.set_word[7], 0x2a3): {
- WriteProgramCode(g_state.regs.gs, g_state.gs, 4096, value);
+ u32& offset = g_state.regs.gs.program.offset;
+ if (offset >= 4096) {
+ LOG_ERROR(HW_GPU, "Invalid GS program offset %u", offset);
+ } else {
+ g_state.gs.program_code[offset] = value;
+ offset++;
+ }
break;
}
@@ -470,11 +455,18 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
case PICA_REG_INDEX_WORKAROUND(gs.swizzle_patterns.set_word[5], 0x2ab):
case PICA_REG_INDEX_WORKAROUND(gs.swizzle_patterns.set_word[6], 0x2ac):
case PICA_REG_INDEX_WORKAROUND(gs.swizzle_patterns.set_word[7], 0x2ad): {
- WriteSwizzlePatterns(g_state.regs.gs, g_state.gs, value);
+ u32& offset = g_state.regs.gs.swizzle_patterns.offset;
+ if (offset >= g_state.gs.swizzle_data.size()) {
+ LOG_ERROR(HW_GPU, "Invalid GS swizzle pattern offset %u", offset);
+ } else {
+ g_state.gs.swizzle_data[offset] = value;
+ offset++;
+ }
break;
}
case PICA_REG_INDEX(vs.bool_uniforms):
+ // TODO (wwylele): does regs.pipeline.gs_unit_exclusive_configuration affect this?
WriteUniformBoolReg(g_state.vs, g_state.regs.vs.bool_uniforms.Value());
break;
@@ -482,6 +474,7 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
case PICA_REG_INDEX_WORKAROUND(vs.int_uniforms[1], 0x2b2):
case PICA_REG_INDEX_WORKAROUND(vs.int_uniforms[2], 0x2b3):
case PICA_REG_INDEX_WORKAROUND(vs.int_uniforms[3], 0x2b4): {
+ // TODO (wwylele): does regs.pipeline.gs_unit_exclusive_configuration affect this?
unsigned index = (id - PICA_REG_INDEX_WORKAROUND(vs.int_uniforms[0], 0x2b1));
auto values = regs.vs.int_uniforms[index];
WriteUniformIntReg(g_state.vs, index,
@@ -497,6 +490,7 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
case PICA_REG_INDEX_WORKAROUND(vs.uniform_setup.set_value[5], 0x2c6):
case PICA_REG_INDEX_WORKAROUND(vs.uniform_setup.set_value[6], 0x2c7):
case PICA_REG_INDEX_WORKAROUND(vs.uniform_setup.set_value[7], 0x2c8): {
+ // TODO (wwylele): does regs.pipeline.gs_unit_exclusive_configuration affect this?
WriteUniformFloatReg(g_state.regs.vs, g_state.vs, vs_float_regs_counter,
vs_uniform_write_buffer, value);
break;
@@ -510,7 +504,16 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
case PICA_REG_INDEX_WORKAROUND(vs.program.set_word[5], 0x2d1):
case PICA_REG_INDEX_WORKAROUND(vs.program.set_word[6], 0x2d2):
case PICA_REG_INDEX_WORKAROUND(vs.program.set_word[7], 0x2d3): {
- WriteProgramCode(g_state.regs.vs, g_state.vs, 512, value);
+ u32& offset = g_state.regs.vs.program.offset;
+ if (offset >= 512) {
+ LOG_ERROR(HW_GPU, "Invalid VS program offset %u", offset);
+ } else {
+ g_state.vs.program_code[offset] = value;
+ if (!g_state.regs.pipeline.gs_unit_exclusive_configuration) {
+ g_state.gs.program_code[offset] = value;
+ }
+ offset++;
+ }
break;
}
@@ -522,7 +525,16 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
case PICA_REG_INDEX_WORKAROUND(vs.swizzle_patterns.set_word[5], 0x2db):
case PICA_REG_INDEX_WORKAROUND(vs.swizzle_patterns.set_word[6], 0x2dc):
case PICA_REG_INDEX_WORKAROUND(vs.swizzle_patterns.set_word[7], 0x2dd): {
- WriteSwizzlePatterns(g_state.regs.vs, g_state.vs, value);
+ u32& offset = g_state.regs.vs.swizzle_patterns.offset;
+ if (offset >= g_state.vs.swizzle_data.size()) {
+ LOG_ERROR(HW_GPU, "Invalid VS swizzle pattern offset %u", offset);
+ } else {
+ g_state.vs.swizzle_data[offset] = value;
+ if (!g_state.regs.pipeline.gs_unit_exclusive_configuration) {
+ g_state.gs.swizzle_data[offset] = value;
+ }
+ offset++;
+ }
break;
}
diff --git a/src/video_core/pica_state.h b/src/video_core/pica_state.h
index 2d23d34e6..864a2c9e6 100644
--- a/src/video_core/pica_state.h
+++ b/src/video_core/pica_state.h
@@ -79,7 +79,7 @@ struct State {
std::array<ColorDifferenceEntry, 256> color_diff_table;
} proctex;
- struct {
+ struct Lighting {
union LutEntry {
// Used for raw access
u32 raw;
diff --git a/src/video_core/regs_framebuffer.h b/src/video_core/regs_framebuffer.h
index a50bd4111..7b565f911 100644
--- a/src/video_core/regs_framebuffer.h
+++ b/src/video_core/regs_framebuffer.h
@@ -256,10 +256,9 @@ struct FramebufferRegs {
return 3;
case DepthFormat::D24S8:
return 4;
- default:
- LOG_CRITICAL(HW_GPU, "Unknown depth format %u", format);
- UNIMPLEMENTED();
}
+
+ ASSERT_MSG(false, "Unknown depth format %u", format);
}
// Returns the number of bits per depth component of the specified depth format
@@ -270,10 +269,9 @@ struct FramebufferRegs {
case DepthFormat::D24:
case DepthFormat::D24S8:
return 24;
- default:
- LOG_CRITICAL(HW_GPU, "Unknown depth format %u", format);
- UNIMPLEMENTED();
}
+
+ ASSERT_MSG(false, "Unknown depth format %u", format);
}
INSERT_PADDING_WORDS(0x20);
diff --git a/src/video_core/regs_pipeline.h b/src/video_core/regs_pipeline.h
index 31c747d77..8b6369297 100644
--- a/src/video_core/regs_pipeline.h
+++ b/src/video_core/regs_pipeline.h
@@ -202,7 +202,14 @@ struct PipelineRegs {
/// Number of input attributes to the vertex shader minus 1
BitField<0, 4, u32> max_input_attrib_index;
- INSERT_PADDING_WORDS(2);
+ INSERT_PADDING_WORDS(1);
+
+ // The shader unit 3, which can be used for both vertex and geometry shader, gets its
+ // configuration depending on this register. If this is not set, unit 3 will share some
+ // configuration with other units. It is known that program code and swizzle pattern uploaded
+ // via regs.vs will be also uploaded to unit 3 if this is not set. Although very likely, it is
+ // still unclear whether uniforms and other configuration can be also shared.
+ BitField<0, 1, u32> gs_unit_exclusive_configuration;
enum class GPUMode : u32 {
Drawing = 0,
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index ff3f69ba3..aa95ef21d 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -28,6 +28,9 @@ MICROPROFILE_DEFINE(OpenGL_Blits, "OpenGL", "Blits", MP_RGB(100, 100, 255));
MICROPROFILE_DEFINE(OpenGL_CacheManagement, "OpenGL", "Cache Mgmt", MP_RGB(100, 255, 100));
RasterizerOpenGL::RasterizerOpenGL() : shader_dirty(true) {
+ // Clipping plane 0 is always enabled for PICA fixed clip plane z <= 0
+ state.clip_distance[0] = true;
+
// Create sampler objects
for (size_t i = 0; i < texture_samplers.size(); ++i) {
texture_samplers[i].Create();
@@ -117,48 +120,53 @@ RasterizerOpenGL::RasterizerOpenGL() : shader_dirty(true) {
// Setup the noise LUT for proctex
proctex_noise_lut.Create();
- state.proctex_noise_lut.texture_1d = proctex_noise_lut.handle;
+ state.proctex_noise_lut.texture_buffer = proctex_noise_lut.handle;
state.Apply();
+ proctex_noise_lut_buffer.Create();
+ glBindBuffer(GL_TEXTURE_BUFFER, proctex_noise_lut_buffer.handle);
+ glBufferData(GL_TEXTURE_BUFFER, sizeof(GLfloat) * 2 * 128, nullptr, GL_DYNAMIC_DRAW);
glActiveTexture(TextureUnits::ProcTexNoiseLUT.Enum());
- glTexImage1D(GL_TEXTURE_1D, 0, GL_RG32F, 128, 0, GL_RG, GL_FLOAT, nullptr);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexBuffer(GL_TEXTURE_BUFFER, GL_RG32F, proctex_noise_lut_buffer.handle);
// Setup the color map for proctex
proctex_color_map.Create();
- state.proctex_color_map.texture_1d = proctex_color_map.handle;
+ state.proctex_color_map.texture_buffer = proctex_color_map.handle;
state.Apply();
+ proctex_color_map_buffer.Create();
+ glBindBuffer(GL_TEXTURE_BUFFER, proctex_color_map_buffer.handle);
+ glBufferData(GL_TEXTURE_BUFFER, sizeof(GLfloat) * 2 * 128, nullptr, GL_DYNAMIC_DRAW);
glActiveTexture(TextureUnits::ProcTexColorMap.Enum());
- glTexImage1D(GL_TEXTURE_1D, 0, GL_RG32F, 128, 0, GL_RG, GL_FLOAT, nullptr);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexBuffer(GL_TEXTURE_BUFFER, GL_RG32F, proctex_color_map_buffer.handle);
// Setup the alpha map for proctex
proctex_alpha_map.Create();
- state.proctex_alpha_map.texture_1d = proctex_alpha_map.handle;
+ state.proctex_alpha_map.texture_buffer = proctex_alpha_map.handle;
state.Apply();
+ proctex_alpha_map_buffer.Create();
+ glBindBuffer(GL_TEXTURE_BUFFER, proctex_alpha_map_buffer.handle);
+ glBufferData(GL_TEXTURE_BUFFER, sizeof(GLfloat) * 2 * 128, nullptr, GL_DYNAMIC_DRAW);
glActiveTexture(TextureUnits::ProcTexAlphaMap.Enum());
- glTexImage1D(GL_TEXTURE_1D, 0, GL_RG32F, 128, 0, GL_RG, GL_FLOAT, nullptr);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexBuffer(GL_TEXTURE_BUFFER, GL_RG32F, proctex_alpha_map_buffer.handle);
// Setup the LUT for proctex
proctex_lut.Create();
- state.proctex_lut.texture_1d = proctex_lut.handle;
+ state.proctex_lut.texture_buffer = proctex_lut.handle;
state.Apply();
+ proctex_lut_buffer.Create();
+ glBindBuffer(GL_TEXTURE_BUFFER, proctex_lut_buffer.handle);
+ glBufferData(GL_TEXTURE_BUFFER, sizeof(GLfloat) * 4 * 256, nullptr, GL_DYNAMIC_DRAW);
glActiveTexture(TextureUnits::ProcTexLUT.Enum());
- glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32F, 256, 0, GL_RGBA, GL_FLOAT, nullptr);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA32F, proctex_lut_buffer.handle);
// Setup the difference LUT for proctex
proctex_diff_lut.Create();
- state.proctex_diff_lut.texture_1d = proctex_diff_lut.handle;
+ state.proctex_diff_lut.texture_buffer = proctex_diff_lut.handle;
state.Apply();
+ proctex_diff_lut_buffer.Create();
+ glBindBuffer(GL_TEXTURE_BUFFER, proctex_diff_lut_buffer.handle);
+ glBufferData(GL_TEXTURE_BUFFER, sizeof(GLfloat) * 4 * 256, nullptr, GL_DYNAMIC_DRAW);
glActiveTexture(TextureUnits::ProcTexDiffLUT.Enum());
- glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32F, 256, 0, GL_RGBA, GL_FLOAT, nullptr);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA32F, proctex_diff_lut_buffer.handle);
// Sync fixed function OpenGL state
SyncCullMode();
@@ -1387,7 +1395,7 @@ void RasterizerOpenGL::SyncProcTexNoise() {
// helper function for SyncProcTexNoiseLUT/ColorMap/AlphaMap
static void SyncProcTexValueLUT(const std::array<Pica::State::ProcTex::ValueEntry, 128>& lut,
- std::array<GLvec2, 128>& lut_data, GLenum texture) {
+ std::array<GLvec2, 128>& lut_data, GLuint buffer) {
std::array<GLvec2, 128> new_data;
std::transform(lut.begin(), lut.end(), new_data.begin(), [](const auto& entry) {
return GLvec2{entry.ToFloat(), entry.DiffToFloat()};
@@ -1395,24 +1403,24 @@ static void SyncProcTexValueLUT(const std::array<Pica::State::ProcTex::ValueEntr
if (new_data != lut_data) {
lut_data = new_data;
- glActiveTexture(texture);
- glTexSubImage1D(GL_TEXTURE_1D, 0, 0, 128, GL_RG, GL_FLOAT, lut_data.data());
+ glBindBuffer(GL_TEXTURE_BUFFER, buffer);
+ glBufferSubData(GL_TEXTURE_BUFFER, 0, new_data.size() * sizeof(GLvec2), new_data.data());
}
}
void RasterizerOpenGL::SyncProcTexNoiseLUT() {
SyncProcTexValueLUT(Pica::g_state.proctex.noise_table, proctex_noise_lut_data,
- TextureUnits::ProcTexNoiseLUT.Enum());
+ proctex_noise_lut_buffer.handle);
}
void RasterizerOpenGL::SyncProcTexColorMap() {
SyncProcTexValueLUT(Pica::g_state.proctex.color_map_table, proctex_color_map_data,
- TextureUnits::ProcTexColorMap.Enum());
+ proctex_color_map_buffer.handle);
}
void RasterizerOpenGL::SyncProcTexAlphaMap() {
SyncProcTexValueLUT(Pica::g_state.proctex.alpha_map_table, proctex_alpha_map_data,
- TextureUnits::ProcTexAlphaMap.Enum());
+ proctex_alpha_map_buffer.handle);
}
void RasterizerOpenGL::SyncProcTexLUT() {
@@ -1427,8 +1435,8 @@ void RasterizerOpenGL::SyncProcTexLUT() {
if (new_data != proctex_lut_data) {
proctex_lut_data = new_data;
- glActiveTexture(TextureUnits::ProcTexLUT.Enum());
- glTexSubImage1D(GL_TEXTURE_1D, 0, 0, 256, GL_RGBA, GL_FLOAT, proctex_lut_data.data());
+ glBindBuffer(GL_TEXTURE_BUFFER, proctex_lut_buffer.handle);
+ glBufferSubData(GL_TEXTURE_BUFFER, 0, new_data.size() * sizeof(GLvec4), new_data.data());
}
}
@@ -1444,8 +1452,8 @@ void RasterizerOpenGL::SyncProcTexDiffLUT() {
if (new_data != proctex_diff_lut_data) {
proctex_diff_lut_data = new_data;
- glActiveTexture(TextureUnits::ProcTexDiffLUT.Enum());
- glTexSubImage1D(GL_TEXTURE_1D, 0, 0, 256, GL_RGBA, GL_FLOAT, proctex_diff_lut_data.data());
+ glBindBuffer(GL_TEXTURE_BUFFER, proctex_diff_lut_buffer.handle);
+ glBufferSubData(GL_TEXTURE_BUFFER, 0, new_data.size() * sizeof(GLvec4), new_data.data());
}
}
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index a433c1d4a..78e218efe 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -287,18 +287,23 @@ private:
OGLTexture fog_lut;
std::array<GLvec2, 128> fog_lut_data{};
+ OGLBuffer proctex_noise_lut_buffer;
OGLTexture proctex_noise_lut;
std::array<GLvec2, 128> proctex_noise_lut_data{};
+ OGLBuffer proctex_color_map_buffer;
OGLTexture proctex_color_map;
std::array<GLvec2, 128> proctex_color_map_data{};
+ OGLBuffer proctex_alpha_map_buffer;
OGLTexture proctex_alpha_map;
std::array<GLvec2, 128> proctex_alpha_map_data{};
+ OGLBuffer proctex_lut_buffer;
OGLTexture proctex_lut;
std::array<GLvec4, 256> proctex_lut_data{};
+ OGLBuffer proctex_diff_lut_buffer;
OGLTexture proctex_diff_lut;
std::array<GLvec4, 256> proctex_diff_lut_data{};
};
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
index 8b717e43d..f37894e7a 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
@@ -542,10 +542,11 @@ RasterizerCacheOpenGL::GetFramebufferSurfaces(
config.GetDepthBufferPhysicalAddress(),
fb_area * Pica::FramebufferRegs::BytesPerDepthPixel(config.depth_format));
bool using_color_fb = config.GetColorBufferPhysicalAddress() != 0;
- bool using_depth_fb =
- config.GetDepthBufferPhysicalAddress() != 0 &&
- (regs.framebuffer.output_merger.depth_test_enable ||
- regs.framebuffer.output_merger.depth_write_enable || !framebuffers_overlap);
+ bool depth_write_enable = regs.framebuffer.output_merger.depth_write_enable &&
+ regs.framebuffer.framebuffer.allow_depth_stencil_write;
+ bool using_depth_fb = config.GetDepthBufferPhysicalAddress() != 0 &&
+ (regs.framebuffer.output_merger.depth_test_enable || depth_write_enable ||
+ !framebuffers_overlap);
if (framebuffers_overlap && using_color_fb && using_depth_fb) {
LOG_CRITICAL(Render_OpenGL, "Color and depth framebuffer memory regions overlap; "
diff --git a/src/video_core/renderer_opengl/gl_shader_gen.cpp b/src/video_core/renderer_opengl/gl_shader_gen.cpp
index c93b108fb..c8fc7a0ff 100644
--- a/src/video_core/renderer_opengl/gl_shader_gen.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_gen.cpp
@@ -8,6 +8,7 @@
#include "common/assert.h"
#include "common/bit_field.h"
#include "common/logging/log.h"
+#include "core/core.h"
#include "video_core/regs_framebuffer.h"
#include "video_core/regs_lighting.h"
#include "video_core/regs_rasterizer.h"
@@ -525,11 +526,12 @@ static void WriteLighting(std::string& out, const PicaShaderConfig& config) {
"float geo_factor = 1.0;\n";
// Compute fragment normals and tangents
- const std::string pertubation =
- "2.0 * (" + SampleTexture(config, lighting.bump_selector) + ").rgb - 1.0";
+ auto Perturbation = [&]() {
+ return "2.0 * (" + SampleTexture(config, lighting.bump_selector) + ").rgb - 1.0";
+ };
if (lighting.bump_mode == LightingRegs::LightingBumpMode::NormalMap) {
// Bump mapping is enabled using a normal map
- out += "vec3 surface_normal = " + pertubation + ";\n";
+ out += "vec3 surface_normal = " + Perturbation() + ";\n";
// Recompute Z-component of perturbation if 'renorm' is enabled, this provides a higher
// precision result
@@ -543,7 +545,7 @@ static void WriteLighting(std::string& out, const PicaShaderConfig& config) {
out += "vec3 surface_tangent = vec3(1.0, 0.0, 0.0);\n";
} else if (lighting.bump_mode == LightingRegs::LightingBumpMode::TangentMap) {
// Bump mapping is enabled using a tangent map
- out += "vec3 surface_tangent = " + pertubation + ";\n";
+ out += "vec3 surface_tangent = " + Perturbation() + ";\n";
// Mathematically, recomputing Z-component of the tangent vector won't affect the relevant
// computation below, which is also confirmed on 3DS. So we don't bother recomputing here
// even if 'renorm' is enabled.
@@ -593,8 +595,8 @@ static void WriteLighting(std::string& out, const PicaShaderConfig& config) {
// Note: even if the normal vector is modified by normal map, which is not the
// normal of the tangent plane anymore, the half angle vector is still projected
// using the modified normal vector.
- std::string half_angle_proj = "normalize(half_vector) - normal / dot(normal, "
- "normal) * dot(normal, normalize(half_vector))";
+ std::string half_angle_proj =
+ "normalize(half_vector) - normal * dot(normal, normalize(half_vector))";
// Note: the half angle vector projection is confirmed not normalized before the dot
// product. The result is in fact not cos(phi) as the name suggested.
index = "dot(" + half_angle_proj + ", tangent)";
@@ -886,12 +888,12 @@ void AppendProcTexSampler(std::string& out, const PicaShaderConfig& config) {
// coord=1.0 is lut[127]+lut_diff[127]. For other indices, the result is interpolated using
// value entries and difference entries.
out += R"(
-float ProcTexLookupLUT(sampler1D lut, float coord) {
+float ProcTexLookupLUT(samplerBuffer lut, float coord) {
coord *= 128;
float index_i = clamp(floor(coord), 0.0, 127.0);
float index_f = coord - index_i; // fract() cannot be used here because 128.0 needs to be
// extracted as index_i = 127.0 and index_f = 1.0
- vec2 entry = texelFetch(lut, int(index_i), 0).rg;
+ vec2 entry = texelFetch(lut, int(index_i)).rg;
return clamp(entry.r + entry.g * index_f, 0.0, 1.0);
}
)";
@@ -979,14 +981,14 @@ float ProcTexNoiseCoef(vec2 x) {
out += "int lut_index_i = int(lut_coord) + " +
std::to_string(config.state.proctex.lut_offset) + ";\n";
out += "float lut_index_f = fract(lut_coord);\n";
- out += "vec4 final_color = texelFetch(proctex_lut, lut_index_i, 0) + lut_index_f * "
- "texelFetch(proctex_diff_lut, lut_index_i, 0);\n";
+ out += "vec4 final_color = texelFetch(proctex_lut, lut_index_i) + lut_index_f * "
+ "texelFetch(proctex_diff_lut, lut_index_i);\n";
break;
case ProcTexFilter::Nearest:
case ProcTexFilter::NearestMipmapLinear:
case ProcTexFilter::NearestMipmapNearest:
out += "lut_coord += " + std::to_string(config.state.proctex.lut_offset) + ";\n";
- out += "vec4 final_color = texelFetch(proctex_lut, int(round(lut_coord)), 0);\n";
+ out += "vec4 final_color = texelFetch(proctex_lut, int(round(lut_coord)));\n";
break;
}
@@ -1053,11 +1055,11 @@ layout (std140) uniform shader_data {
uniform sampler2D tex[3];
uniform samplerBuffer lighting_lut;
uniform samplerBuffer fog_lut;
-uniform sampler1D proctex_noise_lut;
-uniform sampler1D proctex_color_map;
-uniform sampler1D proctex_alpha_map;
-uniform sampler1D proctex_lut;
-uniform sampler1D proctex_diff_lut;
+uniform samplerBuffer proctex_noise_lut;
+uniform samplerBuffer proctex_color_map;
+uniform samplerBuffer proctex_alpha_map;
+uniform samplerBuffer proctex_lut;
+uniform samplerBuffer proctex_diff_lut;
// Rotate the vector v by the quaternion q
vec3 quaternion_rotate(vec4 q, vec3 v) {
@@ -1111,7 +1113,10 @@ vec4 secondary_fragment_color = vec4(0.0);
"gl_FragCoord.y < scissor_y2)) discard;\n";
}
- out += "float z_over_w = 1.0 - gl_FragCoord.z * 2.0;\n";
+ // After perspective divide, OpenGL transform z_over_w from [-1, 1] to [near, far]. Here we use
+ // default near = 0 and far = 1, and undo the transformation to get the original z_over_w, then
+ // do our own transformation according to PICA specification.
+ out += "float z_over_w = 2.0 * gl_FragCoord.z - 1.0;\n";
out += "float depth = z_over_w * depth_scale + depth_offset;\n";
if (state.depthmap_enable == RasterizerRegs::DepthBuffering::WBuffering) {
out += "depth /= gl_FragCoord.w;\n";
@@ -1151,6 +1156,11 @@ vec4 secondary_fragment_color = vec4(0.0);
// Blend the fog
out += "last_tex_env_out.rgb = mix(fog_color.rgb, last_tex_env_out.rgb, fog_factor);\n";
+ } else if (state.fog_mode == TexturingRegs::FogMode::Gas) {
+ Core::Telemetry().AddField(Telemetry::FieldType::Session, "VideoCore_Pica_UseGasMode",
+ true);
+ LOG_CRITICAL(Render_OpenGL, "Unimplemented gas mode");
+ UNIMPLEMENTED();
}
out += "gl_FragDepth = depth;\n";
@@ -1194,7 +1204,9 @@ void main() {
texcoord0_w = vert_texcoord0_w;
normquat = vert_normquat;
view = vert_view;
- gl_Position = vec4(vert_position.x, vert_position.y, -vert_position.z, vert_position.w);
+ gl_Position = vert_position;
+ gl_ClipDistance[0] = -vert_position.z; // fixed PICA clipping plane z <= 0
+ // TODO (wwylele): calculate gl_ClipDistance[1] from user-defined clipping plane
}
)";
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp
index eface2dea..06a905766 100644
--- a/src/video_core/renderer_opengl/gl_state.cpp
+++ b/src/video_core/renderer_opengl/gl_state.cpp
@@ -56,11 +56,11 @@ OpenGLState::OpenGLState() {
fog_lut.texture_buffer = 0;
- proctex_lut.texture_1d = 0;
- proctex_diff_lut.texture_1d = 0;
- proctex_color_map.texture_1d = 0;
- proctex_alpha_map.texture_1d = 0;
- proctex_noise_lut.texture_1d = 0;
+ proctex_lut.texture_buffer = 0;
+ proctex_diff_lut.texture_buffer = 0;
+ proctex_color_map.texture_buffer = 0;
+ proctex_alpha_map.texture_buffer = 0;
+ proctex_noise_lut.texture_buffer = 0;
draw.read_framebuffer = 0;
draw.draw_framebuffer = 0;
@@ -68,6 +68,8 @@ OpenGLState::OpenGLState() {
draw.vertex_buffer = 0;
draw.uniform_buffer = 0;
draw.shader_program = 0;
+
+ clip_distance = {};
}
void OpenGLState::Apply() const {
@@ -204,33 +206,33 @@ void OpenGLState::Apply() const {
}
// ProcTex Noise LUT
- if (proctex_noise_lut.texture_1d != cur_state.proctex_noise_lut.texture_1d) {
+ if (proctex_noise_lut.texture_buffer != cur_state.proctex_noise_lut.texture_buffer) {
glActiveTexture(TextureUnits::ProcTexNoiseLUT.Enum());
- glBindTexture(GL_TEXTURE_1D, proctex_noise_lut.texture_1d);
+ glBindTexture(GL_TEXTURE_BUFFER, proctex_noise_lut.texture_buffer);
}
// ProcTex Color Map
- if (proctex_color_map.texture_1d != cur_state.proctex_color_map.texture_1d) {
+ if (proctex_color_map.texture_buffer != cur_state.proctex_color_map.texture_buffer) {
glActiveTexture(TextureUnits::ProcTexColorMap.Enum());
- glBindTexture(GL_TEXTURE_1D, proctex_color_map.texture_1d);
+ glBindTexture(GL_TEXTURE_BUFFER, proctex_color_map.texture_buffer);
}
// ProcTex Alpha Map
- if (proctex_alpha_map.texture_1d != cur_state.proctex_alpha_map.texture_1d) {
+ if (proctex_alpha_map.texture_buffer != cur_state.proctex_alpha_map.texture_buffer) {
glActiveTexture(TextureUnits::ProcTexAlphaMap.Enum());
- glBindTexture(GL_TEXTURE_1D, proctex_alpha_map.texture_1d);
+ glBindTexture(GL_TEXTURE_BUFFER, proctex_alpha_map.texture_buffer);
}
// ProcTex LUT
- if (proctex_lut.texture_1d != cur_state.proctex_lut.texture_1d) {
+ if (proctex_lut.texture_buffer != cur_state.proctex_lut.texture_buffer) {
glActiveTexture(TextureUnits::ProcTexLUT.Enum());
- glBindTexture(GL_TEXTURE_1D, proctex_lut.texture_1d);
+ glBindTexture(GL_TEXTURE_BUFFER, proctex_lut.texture_buffer);
}
// ProcTex Diff LUT
- if (proctex_diff_lut.texture_1d != cur_state.proctex_diff_lut.texture_1d) {
+ if (proctex_diff_lut.texture_buffer != cur_state.proctex_diff_lut.texture_buffer) {
glActiveTexture(TextureUnits::ProcTexDiffLUT.Enum());
- glBindTexture(GL_TEXTURE_1D, proctex_diff_lut.texture_1d);
+ glBindTexture(GL_TEXTURE_BUFFER, proctex_diff_lut.texture_buffer);
}
// Framebuffer
@@ -261,6 +263,17 @@ void OpenGLState::Apply() const {
glUseProgram(draw.shader_program);
}
+ // Clip distance
+ for (size_t i = 0; i < clip_distance.size(); ++i) {
+ if (clip_distance[i] != cur_state.clip_distance[i]) {
+ if (clip_distance[i]) {
+ glEnable(GL_CLIP_DISTANCE0 + i);
+ } else {
+ glDisable(GL_CLIP_DISTANCE0 + i);
+ }
+ }
+ }
+
cur_state = *this;
}
@@ -274,16 +287,16 @@ void OpenGLState::ResetTexture(GLuint handle) {
cur_state.lighting_lut.texture_buffer = 0;
if (cur_state.fog_lut.texture_buffer == handle)
cur_state.fog_lut.texture_buffer = 0;
- if (cur_state.proctex_noise_lut.texture_1d == handle)
- cur_state.proctex_noise_lut.texture_1d = 0;
- if (cur_state.proctex_color_map.texture_1d == handle)
- cur_state.proctex_color_map.texture_1d = 0;
- if (cur_state.proctex_alpha_map.texture_1d == handle)
- cur_state.proctex_alpha_map.texture_1d = 0;
- if (cur_state.proctex_lut.texture_1d == handle)
- cur_state.proctex_lut.texture_1d = 0;
- if (cur_state.proctex_diff_lut.texture_1d == handle)
- cur_state.proctex_diff_lut.texture_1d = 0;
+ if (cur_state.proctex_noise_lut.texture_buffer == handle)
+ cur_state.proctex_noise_lut.texture_buffer = 0;
+ if (cur_state.proctex_color_map.texture_buffer == handle)
+ cur_state.proctex_color_map.texture_buffer = 0;
+ if (cur_state.proctex_alpha_map.texture_buffer == handle)
+ cur_state.proctex_alpha_map.texture_buffer = 0;
+ if (cur_state.proctex_lut.texture_buffer == handle)
+ cur_state.proctex_lut.texture_buffer = 0;
+ if (cur_state.proctex_diff_lut.texture_buffer == handle)
+ cur_state.proctex_diff_lut.texture_buffer = 0;
}
void OpenGLState::ResetSampler(GLuint handle) {
diff --git a/src/video_core/renderer_opengl/gl_state.h b/src/video_core/renderer_opengl/gl_state.h
index 1efcf0811..437fe34c4 100644
--- a/src/video_core/renderer_opengl/gl_state.h
+++ b/src/video_core/renderer_opengl/gl_state.h
@@ -4,6 +4,7 @@
#pragma once
+#include <array>
#include <glad/glad.h>
namespace TextureUnits {
@@ -95,23 +96,23 @@ public:
} fog_lut;
struct {
- GLuint texture_1d; // GL_TEXTURE_BINDING_1D
+ GLuint texture_buffer; // GL_TEXTURE_BINDING_BUFFER
} proctex_noise_lut;
struct {
- GLuint texture_1d; // GL_TEXTURE_BINDING_1D
+ GLuint texture_buffer; // GL_TEXTURE_BINDING_BUFFER
} proctex_color_map;
struct {
- GLuint texture_1d; // GL_TEXTURE_BINDING_1D
+ GLuint texture_buffer; // GL_TEXTURE_BINDING_BUFFER
} proctex_alpha_map;
struct {
- GLuint texture_1d; // GL_TEXTURE_BINDING_1D
+ GLuint texture_buffer; // GL_TEXTURE_BINDING_BUFFER
} proctex_lut;
struct {
- GLuint texture_1d; // GL_TEXTURE_BINDING_1D
+ GLuint texture_buffer; // GL_TEXTURE_BINDING_BUFFER
} proctex_diff_lut;
struct {
@@ -123,6 +124,8 @@ public:
GLuint shader_program; // GL_CURRENT_PROGRAM
} draw;
+ std::array<bool, 2> clip_distance; // GL_CLIP_DISTANCE
+
OpenGLState();
/// Get the currently active OpenGL state
diff --git a/src/video_core/renderer_opengl/pica_to_gl.h b/src/video_core/renderer_opengl/pica_to_gl.h
index 70298e211..c7fa1f873 100644
--- a/src/video_core/renderer_opengl/pica_to_gl.h
+++ b/src/video_core/renderer_opengl/pica_to_gl.h
@@ -12,6 +12,7 @@
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/logging/log.h"
+#include "core/core.h"
#include "video_core/regs_framebuffer.h"
#include "video_core/regs_lighting.h"
#include "video_core/regs_texturing.h"
@@ -72,9 +73,9 @@ inline GLenum WrapMode(Pica::TexturingRegs::TextureConfig::WrapMode mode) {
}
if (static_cast<u32>(mode) > 3) {
- // It is still unclear whether mode 4-7 are valid, so log it if a game uses them.
- // TODO(wwylele): telemetry should be added here so we can collect more info about which
- // game uses this.
+ Core::Telemetry().AddField(Telemetry::FieldType::Session,
+ "VideoCore_Pica_UnsupportedTextureWrapMode",
+ static_cast<u32>(mode));
LOG_WARNING(Render_OpenGL, "Using texture wrap mode %u", static_cast<u32>(mode));
}
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index d90c776f9..65c18aecc 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -481,9 +481,18 @@ bool RendererOpenGL::Init() {
glDebugMessageCallback(DebugHandler, nullptr);
}
- LOG_INFO(Render_OpenGL, "GL_VERSION: %s", glGetString(GL_VERSION));
- LOG_INFO(Render_OpenGL, "GL_VENDOR: %s", glGetString(GL_VENDOR));
- LOG_INFO(Render_OpenGL, "GL_RENDERER: %s", glGetString(GL_RENDERER));
+ const char* gl_version{reinterpret_cast<char const*>(glGetString(GL_VERSION))};
+ const char* gpu_vendor{reinterpret_cast<char const*>(glGetString(GL_VENDOR))};
+ const char* gpu_model{reinterpret_cast<char const*>(glGetString(GL_RENDERER))};
+
+ LOG_INFO(Render_OpenGL, "GL_VERSION: %s", gl_version);
+ LOG_INFO(Render_OpenGL, "GL_VENDOR: %s", gpu_vendor);
+ LOG_INFO(Render_OpenGL, "GL_RENDERER: %s", gpu_model);
+
+ Core::Telemetry().AddField(Telemetry::FieldType::UserSystem, "GPU_Vendor", gpu_vendor);
+ Core::Telemetry().AddField(Telemetry::FieldType::UserSystem, "GPU_Model", gpu_model);
+ Core::Telemetry().AddField(Telemetry::FieldType::UserSystem, "GPU_OpenGL_Version", gl_version);
+
if (!GLAD_GL_VERSION_3_3) {
return false;
}
diff --git a/src/video_core/shader/shader_interpreter.cpp b/src/video_core/shader/shader_interpreter.cpp
index aa1cec81f..206c0978a 100644
--- a/src/video_core/shader/shader_interpreter.cpp
+++ b/src/video_core/shader/shader_interpreter.cpp
@@ -631,7 +631,7 @@ static void RunInterpreter(const ShaderSetup& setup, UnitState& state, DebugData
state.address_registers[2] = loop_param.y;
Record<DebugDataRecord::LOOP_INT_IN>(debug_data, iteration, loop_param);
- call(program_counter + 1, instr.flow_control.dest_offset - program_counter + 1,
+ call(program_counter + 1, instr.flow_control.dest_offset - program_counter,
instr.flow_control.dest_offset + 1, loop_param.x, loop_param.z);
break;
}
diff --git a/src/video_core/swrasterizer/clipper.cpp b/src/video_core/swrasterizer/clipper.cpp
index 6fb923756..cdbc71502 100644
--- a/src/video_core/swrasterizer/clipper.cpp
+++ b/src/video_core/swrasterizer/clipper.cpp
@@ -95,6 +95,17 @@ void ProcessTriangle(const OutputVertex& v0, const OutputVertex& v1, const Outpu
static const size_t MAX_VERTICES = 9;
static_vector<Vertex, MAX_VERTICES> buffer_a = {v0, v1, v2};
static_vector<Vertex, MAX_VERTICES> buffer_b;
+
+ auto FlipQuaternionIfOpposite = [](auto& a, const auto& b) {
+ if (Math::Dot(a, b) < float24::Zero())
+ a = -a;
+ };
+
+ // Flip the quaternions if they are opposite to prevent interpolating them over the wrong
+ // direction.
+ FlipQuaternionIfOpposite(buffer_a[1].quat, buffer_a[0].quat);
+ FlipQuaternionIfOpposite(buffer_a[2].quat, buffer_a[0].quat);
+
auto* output_list = &buffer_a;
auto* input_list = &buffer_b;
@@ -114,10 +125,6 @@ void ProcessTriangle(const OutputVertex& v0, const OutputVertex& v1, const Outpu
{Math::MakeVec(f0, f0, f0, -f1), Math::Vec4<float24>(f0, f0, f0, EPSILON)}, // w = EPSILON
}};
- // TODO: If one vertex lies outside one of the depth clipping planes, some platforms (e.g. Wii)
- // drop the whole primitive instead of clipping the primitive properly. We should test if
- // this happens on the 3DS, too.
-
// Simple implementation of the Sutherland-Hodgman clipping algorithm.
// TODO: Make this less inefficient (currently lots of useless buffering overhead happens here)
for (auto edge : clipping_edges) {
diff --git a/src/video_core/swrasterizer/framebuffer.cpp b/src/video_core/swrasterizer/framebuffer.cpp
index 7de3aac75..f34eab6cf 100644
--- a/src/video_core/swrasterizer/framebuffer.cpp
+++ b/src/video_core/swrasterizer/framebuffer.cpp
@@ -352,6 +352,8 @@ u8 LogicOp(u8 src, u8 dest, FramebufferRegs::LogicOp op) {
case FramebufferRegs::LogicOp::OrInverted:
return ~src | dest;
}
+
+ UNREACHABLE();
};
} // namespace Rasterizer
diff --git a/src/video_core/swrasterizer/lighting.cpp b/src/video_core/swrasterizer/lighting.cpp
new file mode 100644
index 000000000..b38964530
--- /dev/null
+++ b/src/video_core/swrasterizer/lighting.cpp
@@ -0,0 +1,307 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/math_util.h"
+#include "video_core/swrasterizer/lighting.h"
+
+namespace Pica {
+
+static float LookupLightingLut(const Pica::State::Lighting& lighting, size_t lut_index, u8 index,
+ float delta) {
+ ASSERT_MSG(lut_index < lighting.luts.size(), "Out of range lut");
+ ASSERT_MSG(index < lighting.luts[lut_index].size(), "Out of range index");
+
+ const auto& lut = lighting.luts[lut_index][index];
+
+ float lut_value = lut.ToFloat();
+ float lut_diff = lut.DiffToFloat();
+
+ return lut_value + lut_diff * delta;
+}
+
+std::tuple<Math::Vec4<u8>, Math::Vec4<u8>> ComputeFragmentsColors(
+ const Pica::LightingRegs& lighting, const Pica::State::Lighting& lighting_state,
+ const Math::Quaternion<float>& normquat, const Math::Vec3<float>& view,
+ const Math::Vec4<u8> (&texture_color)[4]) {
+
+ Math::Vec3<float> surface_normal;
+ Math::Vec3<float> surface_tangent;
+
+ if (lighting.config0.bump_mode != LightingRegs::LightingBumpMode::None) {
+ Math::Vec3<float> perturbation =
+ texture_color[lighting.config0.bump_selector].xyz().Cast<float>() / 127.5f -
+ Math::MakeVec(1.0f, 1.0f, 1.0f);
+ if (lighting.config0.bump_mode == LightingRegs::LightingBumpMode::NormalMap) {
+ if (!lighting.config0.disable_bump_renorm) {
+ const float z_square = 1 - perturbation.xy().Length2();
+ perturbation.z = std::sqrt(std::max(z_square, 0.0f));
+ }
+ surface_normal = perturbation;
+ surface_tangent = Math::MakeVec(1.0f, 0.0f, 0.0f);
+ } else if (lighting.config0.bump_mode == LightingRegs::LightingBumpMode::TangentMap) {
+ surface_normal = Math::MakeVec(0.0f, 0.0f, 1.0f);
+ surface_tangent = perturbation;
+ } else {
+ LOG_ERROR(HW_GPU, "Unknown bump mode %u", lighting.config0.bump_mode.Value());
+ }
+ } else {
+ surface_normal = Math::MakeVec(0.0f, 0.0f, 1.0f);
+ surface_tangent = Math::MakeVec(1.0f, 0.0f, 0.0f);
+ }
+
+ // Use the normalized the quaternion when performing the rotation
+ auto normal = Math::QuaternionRotate(normquat, surface_normal);
+ auto tangent = Math::QuaternionRotate(normquat, surface_tangent);
+
+ Math::Vec4<float> diffuse_sum = {0.0f, 0.0f, 0.0f, 1.0f};
+ Math::Vec4<float> specular_sum = {0.0f, 0.0f, 0.0f, 1.0f};
+
+ for (unsigned light_index = 0; light_index <= lighting.max_light_index; ++light_index) {
+ unsigned num = lighting.light_enable.GetNum(light_index);
+ const auto& light_config = lighting.light[num];
+
+ Math::Vec3<float> refl_value = {};
+ Math::Vec3<float> position = {float16::FromRaw(light_config.x).ToFloat32(),
+ float16::FromRaw(light_config.y).ToFloat32(),
+ float16::FromRaw(light_config.z).ToFloat32()};
+ Math::Vec3<float> light_vector;
+
+ if (light_config.config.directional)
+ light_vector = position;
+ else
+ light_vector = position + view;
+
+ light_vector.Normalize();
+
+ Math::Vec3<float> norm_view = view.Normalized();
+ Math::Vec3<float> half_vector = norm_view + light_vector;
+
+ float dist_atten = 1.0f;
+ if (!lighting.IsDistAttenDisabled(num)) {
+ auto distance = (-view - position).Length();
+ float scale = Pica::float20::FromRaw(light_config.dist_atten_scale).ToFloat32();
+ float bias = Pica::float20::FromRaw(light_config.dist_atten_bias).ToFloat32();
+ size_t lut =
+ static_cast<size_t>(LightingRegs::LightingSampler::DistanceAttenuation) + num;
+
+ float sample_loc = MathUtil::Clamp(scale * distance + bias, 0.0f, 1.0f);
+
+ u8 lutindex =
+ static_cast<u8>(MathUtil::Clamp(std::floor(sample_loc * 256.0f), 0.0f, 255.0f));
+ float delta = sample_loc * 256 - lutindex;
+ dist_atten = LookupLightingLut(lighting_state, lut, lutindex, delta);
+ }
+
+ auto GetLutValue = [&](LightingRegs::LightingLutInput input, bool abs,
+ LightingRegs::LightingScale scale_enum,
+ LightingRegs::LightingSampler sampler) {
+ float result = 0.0f;
+
+ switch (input) {
+ case LightingRegs::LightingLutInput::NH:
+ result = Math::Dot(normal, half_vector.Normalized());
+ break;
+
+ case LightingRegs::LightingLutInput::VH:
+ result = Math::Dot(norm_view, half_vector.Normalized());
+ break;
+
+ case LightingRegs::LightingLutInput::NV:
+ result = Math::Dot(normal, norm_view);
+ break;
+
+ case LightingRegs::LightingLutInput::LN:
+ result = Math::Dot(light_vector, normal);
+ break;
+
+ case LightingRegs::LightingLutInput::SP: {
+ Math::Vec3<s32> spot_dir{light_config.spot_x.Value(), light_config.spot_y.Value(),
+ light_config.spot_z.Value()};
+ result = Math::Dot(light_vector, spot_dir.Cast<float>() / 2047.0f);
+ break;
+ }
+ case LightingRegs::LightingLutInput::CP:
+ if (lighting.config0.config == LightingRegs::LightingConfig::Config7) {
+ const Math::Vec3<float> norm_half_vector = half_vector.Normalized();
+ const Math::Vec3<float> half_vector_proj =
+ norm_half_vector - normal * Math::Dot(normal, norm_half_vector);
+ result = Math::Dot(half_vector_proj, tangent);
+ } else {
+ result = 0.0f;
+ }
+ break;
+ default:
+ LOG_CRITICAL(HW_GPU, "Unknown lighting LUT input %u\n", static_cast<u32>(input));
+ UNIMPLEMENTED();
+ result = 0.0f;
+ }
+
+ u8 index;
+ float delta;
+
+ if (abs) {
+ if (light_config.config.two_sided_diffuse)
+ result = std::abs(result);
+ else
+ result = std::max(result, 0.0f);
+
+ float flr = std::floor(result * 256.0f);
+ index = static_cast<u8>(MathUtil::Clamp(flr, 0.0f, 255.0f));
+ delta = result * 256 - index;
+ } else {
+ float flr = std::floor(result * 128.0f);
+ s8 signed_index = static_cast<s8>(MathUtil::Clamp(flr, -128.0f, 127.0f));
+ delta = result * 128.0f - signed_index;
+ index = static_cast<u8>(signed_index);
+ }
+
+ float scale = lighting.lut_scale.GetScale(scale_enum);
+ return scale *
+ LookupLightingLut(lighting_state, static_cast<size_t>(sampler), index, delta);
+ };
+
+ // If enabled, compute spot light attenuation value
+ float spot_atten = 1.0f;
+ if (!lighting.IsSpotAttenDisabled(num) &&
+ LightingRegs::IsLightingSamplerSupported(
+ lighting.config0.config, LightingRegs::LightingSampler::SpotlightAttenuation)) {
+ auto lut = LightingRegs::SpotlightAttenuationSampler(num);
+ spot_atten = GetLutValue(lighting.lut_input.sp, lighting.abs_lut_input.disable_sp == 0,
+ lighting.lut_scale.sp, lut);
+ }
+
+ // Specular 0 component
+ float d0_lut_value = 1.0f;
+ if (lighting.config1.disable_lut_d0 == 0 &&
+ LightingRegs::IsLightingSamplerSupported(
+ lighting.config0.config, LightingRegs::LightingSampler::Distribution0)) {
+ d0_lut_value =
+ GetLutValue(lighting.lut_input.d0, lighting.abs_lut_input.disable_d0 == 0,
+ lighting.lut_scale.d0, LightingRegs::LightingSampler::Distribution0);
+ }
+
+ Math::Vec3<float> specular_0 = d0_lut_value * light_config.specular_0.ToVec3f();
+
+ // If enabled, lookup ReflectRed value, otherwise, 1.0 is used
+ if (lighting.config1.disable_lut_rr == 0 &&
+ LightingRegs::IsLightingSamplerSupported(lighting.config0.config,
+ LightingRegs::LightingSampler::ReflectRed)) {
+ refl_value.x =
+ GetLutValue(lighting.lut_input.rr, lighting.abs_lut_input.disable_rr == 0,
+ lighting.lut_scale.rr, LightingRegs::LightingSampler::ReflectRed);
+ } else {
+ refl_value.x = 1.0f;
+ }
+
+ // If enabled, lookup ReflectGreen value, otherwise, ReflectRed value is used
+ if (lighting.config1.disable_lut_rg == 0 &&
+ LightingRegs::IsLightingSamplerSupported(lighting.config0.config,
+ LightingRegs::LightingSampler::ReflectGreen)) {
+ refl_value.y =
+ GetLutValue(lighting.lut_input.rg, lighting.abs_lut_input.disable_rg == 0,
+ lighting.lut_scale.rg, LightingRegs::LightingSampler::ReflectGreen);
+ } else {
+ refl_value.y = refl_value.x;
+ }
+
+ // If enabled, lookup ReflectBlue value, otherwise, ReflectRed value is used
+ if (lighting.config1.disable_lut_rb == 0 &&
+ LightingRegs::IsLightingSamplerSupported(lighting.config0.config,
+ LightingRegs::LightingSampler::ReflectBlue)) {
+ refl_value.z =
+ GetLutValue(lighting.lut_input.rb, lighting.abs_lut_input.disable_rb == 0,
+ lighting.lut_scale.rb, LightingRegs::LightingSampler::ReflectBlue);
+ } else {
+ refl_value.z = refl_value.x;
+ }
+
+ // Specular 1 component
+ float d1_lut_value = 1.0f;
+ if (lighting.config1.disable_lut_d1 == 0 &&
+ LightingRegs::IsLightingSamplerSupported(
+ lighting.config0.config, LightingRegs::LightingSampler::Distribution1)) {
+ d1_lut_value =
+ GetLutValue(lighting.lut_input.d1, lighting.abs_lut_input.disable_d1 == 0,
+ lighting.lut_scale.d1, LightingRegs::LightingSampler::Distribution1);
+ }
+
+ Math::Vec3<float> specular_1 =
+ d1_lut_value * refl_value * light_config.specular_1.ToVec3f();
+
+ // Fresnel
+ if (lighting.config1.disable_lut_fr == 0 &&
+ LightingRegs::IsLightingSamplerSupported(lighting.config0.config,
+ LightingRegs::LightingSampler::Fresnel)) {
+
+ float lut_value =
+ GetLutValue(lighting.lut_input.fr, lighting.abs_lut_input.disable_fr == 0,
+ lighting.lut_scale.fr, LightingRegs::LightingSampler::Fresnel);
+
+ // Enabled for diffuse lighting alpha component
+ if (lighting.config0.fresnel_selector ==
+ LightingRegs::LightingFresnelSelector::PrimaryAlpha ||
+ lighting.config0.fresnel_selector == LightingRegs::LightingFresnelSelector::Both) {
+ diffuse_sum.a() *= lut_value;
+ }
+
+ // Enabled for the specular lighting alpha component
+ if (lighting.config0.fresnel_selector ==
+ LightingRegs::LightingFresnelSelector::SecondaryAlpha ||
+ lighting.config0.fresnel_selector == LightingRegs::LightingFresnelSelector::Both) {
+ specular_sum.a() *= lut_value;
+ }
+ }
+
+ auto dot_product = Math::Dot(light_vector, normal);
+
+ // Calculate clamp highlights before applying the two-sided diffuse configuration to the dot
+ // product.
+ float clamp_highlights = 1.0f;
+ if (lighting.config0.clamp_highlights) {
+ if (dot_product <= 0.0f)
+ clamp_highlights = 0.0f;
+ else
+ clamp_highlights = 1.0f;
+ }
+
+ if (light_config.config.two_sided_diffuse)
+ dot_product = std::abs(dot_product);
+ else
+ dot_product = std::max(dot_product, 0.0f);
+
+ if (light_config.config.geometric_factor_0 || light_config.config.geometric_factor_1) {
+ float geo_factor = half_vector.Length2();
+ geo_factor = geo_factor == 0.0f ? 0.0f : std::min(dot_product / geo_factor, 1.0f);
+ if (light_config.config.geometric_factor_0) {
+ specular_0 *= geo_factor;
+ }
+ if (light_config.config.geometric_factor_1) {
+ specular_1 *= geo_factor;
+ }
+ }
+
+ auto diffuse =
+ light_config.diffuse.ToVec3f() * dot_product + light_config.ambient.ToVec3f();
+ diffuse_sum += Math::MakeVec(diffuse * dist_atten * spot_atten, 0.0f);
+
+ specular_sum += Math::MakeVec(
+ (specular_0 + specular_1) * clamp_highlights * dist_atten * spot_atten, 0.0f);
+ }
+
+ diffuse_sum += Math::MakeVec(lighting.global_ambient.ToVec3f(), 0.0f);
+
+ auto diffuse = Math::MakeVec<float>(MathUtil::Clamp(diffuse_sum.x, 0.0f, 1.0f) * 255,
+ MathUtil::Clamp(diffuse_sum.y, 0.0f, 1.0f) * 255,
+ MathUtil::Clamp(diffuse_sum.z, 0.0f, 1.0f) * 255,
+ MathUtil::Clamp(diffuse_sum.w, 0.0f, 1.0f) * 255)
+ .Cast<u8>();
+ auto specular = Math::MakeVec<float>(MathUtil::Clamp(specular_sum.x, 0.0f, 1.0f) * 255,
+ MathUtil::Clamp(specular_sum.y, 0.0f, 1.0f) * 255,
+ MathUtil::Clamp(specular_sum.z, 0.0f, 1.0f) * 255,
+ MathUtil::Clamp(specular_sum.w, 0.0f, 1.0f) * 255)
+ .Cast<u8>();
+ return std::make_tuple(diffuse, specular);
+}
+
+} // namespace Pica
diff --git a/src/video_core/swrasterizer/lighting.h b/src/video_core/swrasterizer/lighting.h
new file mode 100644
index 000000000..d807a3d94
--- /dev/null
+++ b/src/video_core/swrasterizer/lighting.h
@@ -0,0 +1,19 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <tuple>
+#include "common/quaternion.h"
+#include "common/vector_math.h"
+#include "video_core/pica_state.h"
+
+namespace Pica {
+
+std::tuple<Math::Vec4<u8>, Math::Vec4<u8>> ComputeFragmentsColors(
+ const Pica::LightingRegs& lighting, const Pica::State::Lighting& lighting_state,
+ const Math::Quaternion<float>& normquat, const Math::Vec3<float>& view,
+ const Math::Vec4<u8> (&texture_color)[4]);
+
+} // namespace Pica
diff --git a/src/video_core/swrasterizer/rasterizer.cpp b/src/video_core/swrasterizer/rasterizer.cpp
index 512e81c08..862135614 100644
--- a/src/video_core/swrasterizer/rasterizer.cpp
+++ b/src/video_core/swrasterizer/rasterizer.cpp
@@ -13,6 +13,7 @@
#include "common/logging/log.h"
#include "common/math_util.h"
#include "common/microprofile.h"
+#include "common/quaternion.h"
#include "common/vector_math.h"
#include "core/hw/gpu.h"
#include "core/memory.h"
@@ -24,6 +25,7 @@
#include "video_core/regs_texturing.h"
#include "video_core/shader/shader.h"
#include "video_core/swrasterizer/framebuffer.h"
+#include "video_core/swrasterizer/lighting.h"
#include "video_core/swrasterizer/proctex.h"
#include "video_core/swrasterizer/rasterizer.h"
#include "video_core/swrasterizer/texturing.h"
@@ -419,6 +421,26 @@ static void ProcessTriangleInternal(const Vertex& v0, const Vertex& v1, const Ve
regs.texturing.tev_combiner_buffer_color.a,
};
+ Math::Vec4<u8> primary_fragment_color = {0, 0, 0, 0};
+ Math::Vec4<u8> secondary_fragment_color = {0, 0, 0, 0};
+
+ if (!g_state.regs.lighting.disable) {
+ Math::Quaternion<float> normquat = Math::Quaternion<float>{
+ {GetInterpolatedAttribute(v0.quat.x, v1.quat.x, v2.quat.x).ToFloat32(),
+ GetInterpolatedAttribute(v0.quat.y, v1.quat.y, v2.quat.y).ToFloat32(),
+ GetInterpolatedAttribute(v0.quat.z, v1.quat.z, v2.quat.z).ToFloat32()},
+ GetInterpolatedAttribute(v0.quat.w, v1.quat.w, v2.quat.w).ToFloat32(),
+ }.Normalized();
+
+ Math::Vec3<float> view{
+ GetInterpolatedAttribute(v0.view.x, v1.view.x, v2.view.x).ToFloat32(),
+ GetInterpolatedAttribute(v0.view.y, v1.view.y, v2.view.y).ToFloat32(),
+ GetInterpolatedAttribute(v0.view.z, v1.view.z, v2.view.z).ToFloat32(),
+ };
+ std::tie(primary_fragment_color, secondary_fragment_color) = ComputeFragmentsColors(
+ g_state.regs.lighting, g_state.lighting, normquat, view, texture_color);
+ }
+
for (unsigned tev_stage_index = 0; tev_stage_index < tev_stages.size();
++tev_stage_index) {
const auto& tev_stage = tev_stages[tev_stage_index];
@@ -427,14 +449,13 @@ static void ProcessTriangleInternal(const Vertex& v0, const Vertex& v1, const Ve
auto GetSource = [&](Source source) -> Math::Vec4<u8> {
switch (source) {
case Source::PrimaryColor:
+ return primary_color;
- // HACK: Until we implement fragment lighting, use primary_color
case Source::PrimaryFragmentColor:
- return primary_color;
+ return primary_fragment_color;
- // HACK: Until we implement fragment lighting, use zero
case Source::SecondaryFragmentColor:
- return {0, 0, 0, 0};
+ return secondary_fragment_color;
case Source::Texture0:
return texture_color[0];
diff --git a/src/video_core/swrasterizer/rasterizer.h b/src/video_core/swrasterizer/rasterizer.h
index 2f0877581..66cd6cfd4 100644
--- a/src/video_core/swrasterizer/rasterizer.h
+++ b/src/video_core/swrasterizer/rasterizer.h
@@ -19,10 +19,9 @@ struct Vertex : Shader::OutputVertex {
// Linear interpolation
// factor: 0=this, 1=vtx
+ // Note: This function cannot be called after perspective divide
void Lerp(float24 factor, const Vertex& vtx) {
pos = pos * factor + vtx.pos * (float24::FromFloat32(1) - factor);
-
- // TODO: Should perform perspective correct interpolation here...
quat = quat * factor + vtx.quat * (float24::FromFloat32(1) - factor);
color = color * factor + vtx.color * (float24::FromFloat32(1) - factor);
tc0 = tc0 * factor + vtx.tc0 * (float24::FromFloat32(1) - factor);
@@ -30,12 +29,11 @@ struct Vertex : Shader::OutputVertex {
tc0_w = tc0_w * factor + vtx.tc0_w * (float24::FromFloat32(1) - factor);
view = view * factor + vtx.view * (float24::FromFloat32(1) - factor);
tc2 = tc2 * factor + vtx.tc2 * (float24::FromFloat32(1) - factor);
-
- screenpos = screenpos * factor + vtx.screenpos * (float24::FromFloat32(1) - factor);
}
// Linear interpolation
// factor: 0=v0, 1=v1
+ // Note: This function cannot be called after perspective divide
static Vertex Lerp(float24 factor, const Vertex& v0, const Vertex& v1) {
Vertex ret = v0;
ret.Lerp(factor, v1);
diff --git a/src/video_core/swrasterizer/texturing.cpp b/src/video_core/swrasterizer/texturing.cpp
index 4f02b93f2..79b1ce841 100644
--- a/src/video_core/swrasterizer/texturing.cpp
+++ b/src/video_core/swrasterizer/texturing.cpp
@@ -89,6 +89,8 @@ Math::Vec3<u8> GetColorModifier(TevStageConfig::ColorModifier factor,
case ColorModifier::OneMinusSourceBlue:
return (Math::Vec3<u8>(255, 255, 255) - values.bbb()).Cast<u8>();
}
+
+ UNREACHABLE();
};
u8 GetAlphaModifier(TevStageConfig::AlphaModifier factor, const Math::Vec4<u8>& values) {
@@ -119,6 +121,8 @@ u8 GetAlphaModifier(TevStageConfig::AlphaModifier factor, const Math::Vec4<u8>&
case AlphaModifier::OneMinusSourceBlue:
return 255 - values.b();
}
+
+ UNREACHABLE();
};
Math::Vec3<u8> ColorCombine(TevStageConfig::Operation op, const Math::Vec3<u8> input[3]) {
diff --git a/src/web_service/CMakeLists.txt b/src/web_service/CMakeLists.txt
new file mode 100644
index 000000000..334d82a8a
--- /dev/null
+++ b/src/web_service/CMakeLists.txt
@@ -0,0 +1,14 @@
+set(SRCS
+ telemetry_json.cpp
+ web_backend.cpp
+ )
+
+set(HEADERS
+ telemetry_json.h
+ web_backend.h
+ )
+
+create_directory_groups(${SRCS} ${HEADERS})
+
+add_library(web_service STATIC ${SRCS} ${HEADERS})
+target_link_libraries(web_service PUBLIC common cpr json-headers)
diff --git a/src/web_service/telemetry_json.cpp b/src/web_service/telemetry_json.cpp
new file mode 100644
index 000000000..6ad2ffcd4
--- /dev/null
+++ b/src/web_service/telemetry_json.cpp
@@ -0,0 +1,86 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/assert.h"
+#include "web_service/telemetry_json.h"
+#include "web_service/web_backend.h"
+
+namespace WebService {
+
+template <class T>
+void TelemetryJson::Serialize(Telemetry::FieldType type, const std::string& name, T value) {
+ sections[static_cast<u8>(type)][name] = value;
+}
+
+void TelemetryJson::SerializeSection(Telemetry::FieldType type, const std::string& name) {
+ TopSection()[name] = sections[static_cast<unsigned>(type)];
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<bool>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<double>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<float>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<u8>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<u16>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<u32>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<u64>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<s8>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<s16>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<s32>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<s64>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<std::string>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue());
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<const char*>& field) {
+ Serialize(field.GetType(), field.GetName(), std::string(field.GetValue()));
+}
+
+void TelemetryJson::Visit(const Telemetry::Field<std::chrono::microseconds>& field) {
+ Serialize(field.GetType(), field.GetName(), field.GetValue().count());
+}
+
+void TelemetryJson::Complete() {
+ SerializeSection(Telemetry::FieldType::App, "App");
+ SerializeSection(Telemetry::FieldType::Session, "Session");
+ SerializeSection(Telemetry::FieldType::Performance, "Performance");
+ SerializeSection(Telemetry::FieldType::UserFeedback, "UserFeedback");
+ SerializeSection(Telemetry::FieldType::UserConfig, "UserConfig");
+ SerializeSection(Telemetry::FieldType::UserSystem, "UserSystem");
+ PostJson(endpoint_url, TopSection().dump(), true, username, token);
+}
+
+} // namespace WebService
diff --git a/src/web_service/telemetry_json.h b/src/web_service/telemetry_json.h
new file mode 100644
index 000000000..9e78c6803
--- /dev/null
+++ b/src/web_service/telemetry_json.h
@@ -0,0 +1,59 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <array>
+#include <string>
+#include <json.hpp>
+#include "common/telemetry.h"
+
+namespace WebService {
+
+/**
+ * Implementation of VisitorInterface that serialized telemetry into JSON, and submits it to the
+ * Citra web service
+ */
+class TelemetryJson : public Telemetry::VisitorInterface {
+public:
+ TelemetryJson(const std::string& endpoint_url, const std::string& username,
+ const std::string& token)
+ : endpoint_url(endpoint_url), username(username), token(token) {}
+ ~TelemetryJson() = default;
+
+ void Visit(const Telemetry::Field<bool>& field) override;
+ void Visit(const Telemetry::Field<double>& field) override;
+ void Visit(const Telemetry::Field<float>& field) override;
+ void Visit(const Telemetry::Field<u8>& field) override;
+ void Visit(const Telemetry::Field<u16>& field) override;
+ void Visit(const Telemetry::Field<u32>& field) override;
+ void Visit(const Telemetry::Field<u64>& field) override;
+ void Visit(const Telemetry::Field<s8>& field) override;
+ void Visit(const Telemetry::Field<s16>& field) override;
+ void Visit(const Telemetry::Field<s32>& field) override;
+ void Visit(const Telemetry::Field<s64>& field) override;
+ void Visit(const Telemetry::Field<std::string>& field) override;
+ void Visit(const Telemetry::Field<const char*>& field) override;
+ void Visit(const Telemetry::Field<std::chrono::microseconds>& field) override;
+
+ void Complete() override;
+
+private:
+ nlohmann::json& TopSection() {
+ return sections[static_cast<u8>(Telemetry::FieldType::None)];
+ }
+
+ template <class T>
+ void Serialize(Telemetry::FieldType type, const std::string& name, T value);
+
+ void SerializeSection(Telemetry::FieldType type, const std::string& name);
+
+ nlohmann::json output;
+ std::array<nlohmann::json, 7> sections;
+ std::string endpoint_url;
+ std::string username;
+ std::string token;
+};
+
+} // namespace WebService
diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp
new file mode 100644
index 000000000..d28a3f757
--- /dev/null
+++ b/src/web_service/web_backend.cpp
@@ -0,0 +1,63 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#ifdef _WIN32
+#include <winsock.h>
+#endif
+
+#include <cstdlib>
+#include <thread>
+#include <cpr/cpr.h>
+#include "common/logging/log.h"
+#include "web_service/web_backend.h"
+
+namespace WebService {
+
+static constexpr char API_VERSION[]{"1"};
+
+static std::unique_ptr<cpr::Session> g_session;
+
+void PostJson(const std::string& url, const std::string& data, bool allow_anonymous,
+ const std::string& username, const std::string& token) {
+ if (url.empty()) {
+ LOG_ERROR(WebService, "URL is invalid");
+ return;
+ }
+
+ const bool are_credentials_provided{!token.empty() && !username.empty()};
+ if (!allow_anonymous && !are_credentials_provided) {
+ LOG_ERROR(WebService, "Credentials must be provided for authenticated requests");
+ return;
+ }
+
+#ifdef _WIN32
+ // On Windows, CPR/libcurl does not properly initialize Winsock. The below code is used to
+ // initialize Winsock globally, which fixes this problem. Without this, only the first CPR
+ // session will properly be created, and subsequent ones will fail.
+ WSADATA wsa_data;
+ const int wsa_result{WSAStartup(MAKEWORD(2, 2), &wsa_data)};
+ if (wsa_result) {
+ LOG_CRITICAL(WebService, "WSAStartup failed: %d", wsa_result);
+ }
+#endif
+
+ // Built request header
+ cpr::Header header;
+ if (are_credentials_provided) {
+ // Authenticated request if credentials are provided
+ header = {{"Content-Type", "application/json"},
+ {"x-username", username.c_str()},
+ {"x-token", token.c_str()},
+ {"api-version", API_VERSION}};
+ } else {
+ // Otherwise, anonymous request
+ header = cpr::Header{{"Content-Type", "application/json"}, {"api-version", API_VERSION}};
+ }
+
+ // Post JSON asynchronously
+ static cpr::AsyncResponse future;
+ future = cpr::PostAsync(cpr::Url{url.c_str()}, cpr::Body{data.c_str()}, header);
+}
+
+} // namespace WebService
diff --git a/src/web_service/web_backend.h b/src/web_service/web_backend.h
new file mode 100644
index 000000000..d17100398
--- /dev/null
+++ b/src/web_service/web_backend.h
@@ -0,0 +1,23 @@
+// Copyright 2017 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <string>
+#include "common/common_types.h"
+
+namespace WebService {
+
+/**
+ * Posts JSON to services.citra-emu.org.
+ * @param url URL of the services.citra-emu.org endpoint to post data to.
+ * @param data String of JSON data to use for the body of the POST request.
+ * @param allow_anonymous If true, allow anonymous unauthenticated requests.
+ * @param username Citra username to use for authentication.
+ * @param token Citra token to use for authentication.
+ */
+void PostJson(const std::string& url, const std::string& data, bool allow_anonymous,
+ const std::string& username = {}, const std::string& token = {});
+
+} // namespace WebService