Index: /Daodan/MSVC/BFW_LocalInput.h
===================================================================
--- /Daodan/MSVC/BFW_LocalInput.h	(revision 567)
+++ /Daodan/MSVC/BFW_LocalInput.h	(revision 567)
@@ -0,0 +1,7 @@
+#pragma once
+#ifndef BFW_LOCALINPUT_H
+#define BFW_LOCALINPUT_H
+
+
+
+#endif
Index: /Daodan/MSVC/BFW_Motoko_Draw.h
===================================================================
--- /Daodan/MSVC/BFW_Motoko_Draw.h	(revision 567)
+++ /Daodan/MSVC/BFW_Motoko_Draw.h	(revision 567)
@@ -0,0 +1,76 @@
+#pragma once
+#ifndef BFW_MOTOKO_DRAW_H
+#define BFW_MOTOKO_DRAW_H
+
+#include "Daodan.h"
+
+typedef struct
+{
+	short Width;
+	short Height;
+	short Depth;
+	short __unused;
+} M3tDisplayMode;
+
+typedef struct
+{
+	int Type;
+	char Name[64];
+	char a[64];
+	int b, c, d;
+	short DisplayModeCount;
+	M3tDisplayMode DisplayModes[12];
+	char e[990];
+} M3tDrawEngineCaps;
+
+typedef struct
+{
+	int Context_New;
+	int Context_Delete;
+	int Texture_ResetAll;
+	int PrivateState_Size;
+	int PrivateState_New;
+	int PrivateState_Delete;
+	int State_Update;
+} M3tDrawEngine;
+
+typedef struct
+{
+	int FrameStart;
+	int FrameEnd;
+	int FrameSync;
+	int Triangle;
+	int Quad;
+	int Pent;
+	int Line;
+	int Point;
+	int TriSprite;
+	int Sprite;
+	int SpriteArray;
+	int ScreenCapture;
+	int PointVisible;
+	int SupportsPointVisible;
+	int TextureFormatAvailable;
+	int SetResolution;
+	int ResetFog;
+	int TextureLoad;
+	int TextureUnload;
+	int SinglePassMultitextureCapable;
+} M3tDrawContext;
+
+typedef struct
+{
+	float *Position;
+	int *Color;
+	float *TexCoord0;
+	float *TexCoord1;
+	void *Texture0;
+	void *Texture1;
+	void *State6;
+	void *State7;
+	void *State8;
+} M3tDrawPtrState;
+
+extern char M3gResolutionSwitch;
+
+#endif
Index: /Daodan/MSVC/BFW_ScriptLang.h
===================================================================
--- /Daodan/MSVC/BFW_ScriptLang.h	(revision 567)
+++ /Daodan/MSVC/BFW_ScriptLang.h	(revision 567)
@@ -0,0 +1,39 @@
+#pragma once
+#ifndef BFW_SCRIPTLANG_H
+#define BFW_SCRIPTLANG_H
+
+#include "Daodan.h"
+
+//#include <stdint.h>
+#include "bool.h"
+
+typedef enum {
+	sl_int32,
+	sl_str32,
+	sl_float,
+	sl_bool,  /* Actually int32 0 or 1. */
+	sl_void,
+} sl_type;
+
+typedef struct {
+	sl_type type;
+	union {
+		void*   value;
+		int32_t value_int32;
+		char*   value_str32;
+		float   value_float;
+		bool    value_bool;
+	};
+} sl_arg;
+
+typedef struct {
+	char*    name;
+	char*    calllocation; //maybe
+	int      linenumber;   //perhaps
+} sl_callinfo;
+
+
+
+
+
+#endif
Index: /Daodan/MSVC/BFW_Utility.h
===================================================================
--- /Daodan/MSVC/BFW_Utility.h	(revision 567)
+++ /Daodan/MSVC/BFW_Utility.h	(revision 567)
@@ -0,0 +1,34 @@
+#pragma once
+#ifndef BFW_UTILITY_H
+#define BFW_UTILITY_H
+
+#include <stdio.h>
+//#include <stdint.h>
+#include "Daodan.h"
+
+//void __cdecl UUrStartupMessage(const char* fmt, ...);
+
+typedef struct {
+	int16_t Top;
+	int16_t Left;
+	int16_t Right;
+	int16_t Bottom; 
+} OniRectangle;
+
+
+void* TestContext;
+//void ONICALL COrTextArea_Print(uint32_t area, uint32_t priority, uint32_t textshade, uint32_t textshadowshade, const char* text, uint32_t unk_alwaws_0, uint32_t fadetime);
+
+void ONICALL COrMessage_Remove(char* Key);
+//int16_t ONICALL TMrInstance_GetDataPtr(int, char*, void*);	//int TMrInstance_GetDataPtr( Type 'TSFF', char* "Tahoma", ptr);
+
+//int __cdecl AUrMessageBox(int Buttons, char *Message, ...);
+
+extern uint32_t COgConsoleLines;
+extern uint32_t COgFadeTimeValue;
+extern uint32_t COgDefaultTextShade;
+extern uint32_t COgDefaultTextShadow;
+
+extern FILE* ONgFileStartup;
+
+#endif
Index: /Daodan/MSVC/Bink.h
===================================================================
--- /Daodan/MSVC/Bink.h	(revision 567)
+++ /Daodan/MSVC/Bink.h	(revision 567)
@@ -0,0 +1,66 @@
+//for IDirectSound we need
+//#include <dsound.h>
+//http://ccrma.stanford.edu/software/stk/Misc/dsound.h
+
+typedef struct {
+	uint32_t Width;
+	uint32_t Height;
+	uint32_t FrameCount;
+	uint32_t CurrentFrame;
+	uint32_t LastFrame;
+	uint32_t FPS_Multiplier;
+	uint32_t FPS_Divisor;
+	uint32_t Unknown1;
+	uint32_t Flags;
+	uint32_t Unknown2[65];
+	uint32_t CurrentPlane;
+	void*	 Plane0_Ptr;
+	void*	 Plane1_Ptr;
+	uint32_t Unknown3[2];
+	uint32_t YPlane_Width;
+	uint32_t UnVPlane_Width;
+	uint32_t UnVPlane_Height;
+} BinkStruct;
+
+//_stdcall
+	//opens the bink file
+	BinkStruct CALLBACK *BinkOpen(HANDLE BinkFile, uint32_t Flags);
+	
+	//SoundFunction: This appears to be the function that will be invoked in order to playback the audio. 
+	//MPC passes in BinkOpenDirectSound as the parameter. BinkOpenDirectSound must meet the qualifications to be a SOUND_FUNC 
+	//(contrived for this description).
+	//I renamed SOUND_FUNC to void*
+	int CALLBACK BinkSetSoundSystem(void* SoundFunction, IDirectSound *pDS);
+	
+	//changes the frame the video is on...we dont need it.
+	void CALLBACK BinkGoto(BinkStruct *Bink, uint32_t FrameNumber, uint32_t unknown);
+	
+	//processes the next frame in the Bink file.
+	int CALLBACK BinkDoFrame(BinkStruct *Bink);
+
+	//advance the playback engine to the next frame
+	void CALLBACK BinkNextFrame(BinkStruct *Bink);
+
+	//gracefully closes a Bink file and releases any allocated resources.
+	void CALLBACK BinkClose(BinkStruct *Bink);
+
+/*
+bytes 0-3      video width
+bytes 4-7      video height
+bytes 8-11     frame count
+bytes 12-15    current frame
+bytes 16-19    last frame
+bytes 20-23    frames/second multiplier
+bytes 24-27    frames/second divisor
+bytes 28-31    unknown
+bytes 32-35    flags
+bytes 36-295   unknown
+bytes 296-299  current plane
+bytes 300-303  pointer to plane 0
+bytes 304-307  pointer to plane 1
+bytes 308-315  unknown
+bytes 316-319  Y plane width
+bytes 320-323  Y plane height
+bytes 324-327  U&V plane width
+bytes 328-331  U&V plane height
+*/
Index: /Daodan/MSVC/Daodan.c
===================================================================
--- /Daodan/MSVC/Daodan.c	(revision 567)
+++ /Daodan/MSVC/Daodan.c	(revision 567)
@@ -0,0 +1,638 @@
+#include <string.h>
+
+#include "Daodan.h"
+#include "Daodan_Patch.h"
+#include "Daodan_Utility.h"
+#include "Daodan_Win32.h"
+#include "Daodan_Cheater.h"
+#include "Daodan_Persistence.h"
+#include "Daodan_BSL.h"
+#include "Daodan_Console.h"
+
+#include "Daodan_WindowHack.h"
+
+#include "Oni.h"
+#include "Oni_Persistence.h"
+
+#include "BFW_Utility.h"
+
+#include "oni_gl.h"
+#include "daodan_gl.h"
+
+#include "inifile.h"
+
+HMODULE DDrDLLModule;
+HMODULE DDrONiModule;
+
+bool patch_fonttexturecache = true;
+bool patch_largetextures = true;
+bool patch_levelplugins = true;
+bool patch_pathfinding = true;
+bool patch_projaware = true;
+bool patch_directinput = true;
+bool patch_wpfadetime = true;
+bool patch_kickguns = false;
+bool patch_cooldowntimer = true;
+bool patch_throwtest = false;
+bool patch_alttab = true;
+bool patch_particledisablebit = false;
+bool patch_multibyte = false;
+bool patch_cheattable = true;
+bool patch_argb8888 = true;
+bool patch_killvtune = true;
+bool patch_getcmdline = true;
+bool patch_disablecmdline = true;
+
+bool patch_safeprintf = true;
+bool patch_daodandisplayenum = true;
+bool patch_usegettickcount = true;
+bool patch_cheatsenabled = true;
+bool patch_usedaodangl = true;
+bool patch_windowhack = false;
+bool patch_daodaninit = true;
+bool patch_bsl = true;
+bool patch_cheater = true;
+
+// bool patch_newweapon = true;
+
+bool opt_usedaodanbsl = true;
+bool opt_border = true;
+bool opt_shadow = false;
+bool opt_topmost = false;
+
+bool DDrPatch_Init()
+{
+	DDrStartupMessage("patching engine");
+	
+	// Font texture cache doubled
+	if (patch_fonttexturecache)
+	{
+		DDrPatch_Byte(OniExe + 0x00020ea7, 0x20);
+		DDrPatch_Byte(OniExe + 0x00020f4a, 0x40);
+	}
+	
+	// Now supports textures up to 512x512
+	if (patch_largetextures)
+		DDrPatch_Byte  (OniExe + 0x00005251, 0x10);
+	
+	// Non-"_Final" levels are now valid
+	if (patch_levelplugins)
+		DDrPatch_Byte  (OniExe + 0x000206a8, 0x01);
+	
+	// Pathfinding grid cache size x8
+	if (patch_pathfinding)
+	{
+		DDrPatch_Byte  (OniExe + 0x0010b03b, 0x20);
+		DDrPatch_Byte  (OniExe + 0x0010b04c, 0x20);
+	}
+	
+	// Projectile awareness fixed
+	if (patch_projaware)
+	{
+		DDrPatch_Byte  (OniExe + 0x0009c07c, 0x6c);
+		DDrPatch_Byte  (OniExe + 0x0009c080, 0x70);
+		DDrPatch_Byte  (OniExe + 0x0009c084, 0x74);
+		DDrPatch_Byte  (OniExe + 0x0009c110, 0x6c);
+	}
+	
+	// Forced DirectInput (for Windows NT)
+	if (patch_directinput)
+		DDrPatch_Byte  (OniExe + 0x00002e6d, 0xeb);
+	
+	if (patch_wpfadetime)
+	{
+		// Makes wp_fadetime actually have a function
+		const char fadetime_patch[] = { 0x66, 0x8B, 0x1D, 0xC4, 0x7D, 0x62, 0x00, 0x66, 0x89, 0x5E, 0x46, 0x5B, 0x5E, 0x83, 0xC4, 0x14, 0xC3 };
+		DDrPatch_Const (OniExe + 0x0011a889, fadetime_patch);
+		DDrPatch_Byte  (OniExe + 0x0011a560, 0x31);
+		
+		// Sets the fadetime to 4800 by default
+		DDrPatch_Int16 ((OniExe + 0x0011ab0e), 0x12c0);
+	}
+	
+	
+	// Hackish fix for Konoko not kicking guns
+	// Don't use this, it breaks stairs.
+	if (patch_kickguns)
+	{
+		const char kickgun_patch[] = { 0x00, 0x05, 0x00, 0x00, 0x00, 0xC7, 0x05, 0x1C, 0xC9, 0x5E, 0x00, 0x70, 0xB8, 0x43, 0x00, 0xC7, 0x05, 0x20, 0xC9, 0x5E, 0x00, 0x20, 0xBE, 0x43 };
+		DDrPatch_Const (OniExe + 0x000dc420, kickgun_patch);
+	}
+	
+	// Cooldown timer exploit fix ^_^
+	if (patch_cooldowntimer)
+	{
+		const char cooldown_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
+		DDrPatch_Const (OniExe + 0x0011a825, cooldown_patch);
+	}
+	
+	if (patch_throwtest)
+	{
+		const char throwtest_patch[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 };
+		DDrPatch_Const(OniExe + 0x000dc190, throwtest_patch);
+	}
+	
+	// Disable UUrPlatform_Initalize/Terminate, this enables the Alt-Tab and the Windows key but has the possible side effect of allowing the screensaver to enable itself in-game.
+	if (patch_alttab)
+	{
+		DDrPatch_Byte  ((void*)UUrPlatform_Initialize, 0xC3);
+		DDrPatch_Byte  ((void*)UUrPlatform_Terminate, 0xC3);
+	}
+	
+	// Unlocks particle action disabling/enabling bits for all events. (Will be controlled by a command line switch when I figure out how to do that without Win32 hacks.)
+	if (patch_particledisablebit)
+		DDrPatch_Int16 (OniExe + 0x001b184, 0x9090);
+	
+	// Multi-byte patch (multiple language support)
+	if (!patch_multibyte)
+	{
+		DDrPatch_Byte  (OniExe + 0x0002d8f8, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002d9ad, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002dbe2, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002dec3, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e2ab, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e2c4, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e379, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e48c, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e4d0, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e4f4, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e646, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e695, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e944, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e95d, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e98e, 0xeb);
+		DDrPatch_Byte  (OniExe + 0x0002e9dc, 0xeb);
+	}
+	
+	// Cheat table patch
+	if (patch_cheattable)
+	{
+		DDrPatch_Int32 (0x004f616b, (int)&DDr_CheatTable[0].name);
+		DDrPatch_Int32 (OniExe + 0x000f617a, (int)&DDr_CheatTable[0].message_on);
+	}
+	
+	// ARGB8888 textures
+	if (patch_argb8888)
+	{
+		DDrPatch_Byte  (OniExe + 0x00135af0, 0x07);
+		DDrPatch_Byte  (OniExe + 0x00135af4, 0x0B);
+	}
+
+	//Test newweap patch
+//	if (patch_newweapon) {
+		
+		//Makes it always say "Recieved weapon_name."
+		//Needs check for loc_4DFC66
+		DDrPatch_NOOP( OniExe + 0x000E4DF8,2);
+
+		//Adds Weapon name and ammo meter to pickup autoprompt
+		DDrPatch_NOOP( OniExe + 0x000FAC73, 9);
+		DDrPatch_NOOP( OniExe + 0x000FAC80, 5);
+		DDrPatch_MakeCall( OniExe + 0xFAC85, DDrWeapon2Message);
+		
+		//Moves location of colors
+		//DDrPatch_Int32( 0x0042E3D5, (int)&DDrDSayColors );
+		//DDrPatch_Int32( 0x0042E3DA, (int)&DDrDSayColors );
+//	}
+	
+	// Disable loading the vtuneapi.dll
+	if (patch_killvtune)
+		DDrPatch_Byte  (OniExe + 0x00026340, 0xC3);
+	
+	// Disable Oni's internal CLrGetCommandLine function (to eventually replace it with our own)
+	if (patch_getcmdline)
+		DDrPatch_NOOP  (OniExe + 0x000d3280, 51);
+	
+	// Disable Oni's command line parser so it doesn't interfere with ours
+	if (patch_disablecmdline)
+		DDrPatch_Int32 (OniExe + 0x000d3570, 0xc3c03366);
+	
+	return true;
+}
+
+enum {s_unknown, s_options, s_patch, s_bsl, s_language} ini_section;
+
+bool DDrIniCallback(char* section, bool newsection, char* name, char* value)
+{
+	if (newsection)
+	{
+		if (!_stricmp(section, "options"))
+			ini_section = s_options;
+		else if (!_stricmp(section, "patch"))
+			ini_section = s_patch;
+		else if (!_stricmp(section, "bsl"))
+			ini_section = s_bsl;
+		else if (!_stricmp(section, "language"))
+			ini_section = s_language;
+		else
+		{
+			ini_section = s_unknown;
+			DDrStartupMessage("unrecognised section \"%s\"", section);
+		}
+	}
+	
+	switch (ini_section)
+	{
+		case s_options:
+			if (!_stricmp(name, "usedaodanbsl"))
+				opt_usedaodanbsl = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "border"))
+				opt_border = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "shadow"))
+				opt_shadow = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "topmost"))
+				opt_topmost = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "multibyte"))
+				patch_multibyte = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "debug"))
+				AKgDebug_DebugMaps = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "debugfiles"))
+				BFgDebugFileEnable = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "findsounds"))
+				SSgSearchOnDisk = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "ignore_private_data"))
+				opt_ignore_private_data = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "sound"))
+				opt_sound = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "switch"))
+				M3gResolutionSwitch = !_stricmp(inifile_cleanstr(value), "true");
+			else
+				DDrStartupMessage("unrecognised option \"%s\"", name);
+			break;
+		case s_patch:
+			if (!_stricmp(name, "fonttexturecache"))
+				patch_fonttexturecache = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "largetextures"))
+				patch_largetextures = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "levelplugins"))
+				patch_levelplugins = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "pathfinding"))
+				patch_pathfinding = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "projaware"))
+				patch_projaware = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "directinput"))
+				patch_directinput = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "wpfadetime"))
+				patch_wpfadetime = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "kickguns"))
+				patch_kickguns = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "cooldowntimer"))
+				patch_cooldowntimer = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "throwtest"))
+				patch_throwtest = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "alttab"))
+				patch_alttab = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "particledisablebit"))
+				patch_particledisablebit = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "multibyte"))
+				patch_multibyte = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "cheattable"))
+				patch_cheattable = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "argb8888"))
+				patch_argb8888 = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "killvtune"))
+				patch_killvtune = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "getcmdline"))
+				patch_getcmdline = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "disablecmdline"))
+				patch_disablecmdline = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "safeprintf"))
+				patch_safeprintf = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "daodandisplayenum"))
+				patch_daodandisplayenum = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "usegettickcount"))
+				patch_usegettickcount = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "cheatsenabled"))
+				patch_cheatsenabled = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "usedaodangl"))
+				patch_usedaodangl = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "windowhack"))
+				patch_windowhack = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "daodaninit"))
+				patch_daodaninit = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "bsl"))
+				patch_bsl = !_stricmp(inifile_cleanstr(value), "true");
+			else if (!_stricmp(name, "cheater"))
+				patch_cheater = !_stricmp(inifile_cleanstr(value), "true");
+			else
+				DDrStartupMessage("unrecognised patch \"%s\"", name);
+			break;
+		case s_language:
+			if (!_stricmp(name, "savepoint"))
+			{
+				char* str = _strdup(value);
+				DDrPatch_Int32(OniExe + 0x000fd730, (int)str);
+				DDrPatch_Int32(OniExe + 0x000fd738, (int)str);
+			}
+			else if (!_stricmp(name, "syndicatewarehouse"))
+			{
+				char* str = _strdup(value);
+				DDrPatch_Int32(OniExe + 0x000fd71a, (int)str);
+				DDrPatch_Int32(OniExe + 0x0010ef75, (int)str);
+			}
+			else if (!_stricmp(name, "damn"))
+				DDrPatch__strdup(OniExe + 0x0010fb6e, value);
+			else if (!_stricmp(name, "blam"))
+				DDrPatch__strdup(OniExe + 0x0010fb73, value);
+			else if (!_stricmp(name, "shapeshifter_on"))
+				DDr_CheatTable[0].message_on = _strdup(value);
+			else if (!_stricmp(name, "shapeshifter_off"))
+				DDr_CheatTable[0].message_off = _strdup(value);
+			else if (!_stricmp(name, "liveforever_on"))
+				DDr_CheatTable[1].message_on = _strdup(value);
+			else if (!_stricmp(name, "liveforever_off"))
+				DDr_CheatTable[1].message_off = _strdup(value);
+			else if (!_stricmp(name, "touchofdeath_on"))
+				DDr_CheatTable[2].message_on = _strdup(value);
+			else if (!_stricmp(name, "touchofdeath_off"))
+				DDr_CheatTable[2].message_off = _strdup(value);
+			else if (!_stricmp(name, "canttouchthis_on"))
+				DDr_CheatTable[3].message_on = _strdup(value);
+			else if (!_stricmp(name, "canttouchthis_off"))
+				DDr_CheatTable[3].message_off = _strdup(value);
+			else if (!_stricmp(name, "fatloot_on"))
+				DDr_CheatTable[4].message_on = _strdup(value);
+			else if (!_stricmp(name, "glassworld_on"))
+				DDr_CheatTable[5].message_on = _strdup(value);
+			else if (!_stricmp(name, "glassworld_off"))
+				DDr_CheatTable[5].message_off = _strdup(value);
+			else if (!_stricmp(name, "winlevel_on"))
+				DDr_CheatTable[6].message_on = _strdup(value);
+			else if (!_stricmp(name, "loselevel_on"))
+				DDr_CheatTable[7].message_on = _strdup(value);
+			else if (!_stricmp(name, "bighead_on"))
+				DDr_CheatTable[8].message_on = _strdup(value);
+			else if (!_stricmp(name, "bighead_off"))
+				DDr_CheatTable[8].message_off = _strdup(value);
+			else if (!_stricmp(name, "minime_on"))
+				DDr_CheatTable[9].message_on = _strdup(value);
+			else if (!_stricmp(name, "minime_off"))
+				DDr_CheatTable[9].message_off = _strdup(value);
+			else if (!_stricmp(name, "superammo_on"))
+				DDr_CheatTable[10].message_on = _strdup(value);
+			else if (!_stricmp(name, "superammo_off"))
+				DDr_CheatTable[10].message_off = _strdup(value);
+			else if (!_stricmp(name, "devmode_on"))
+			{
+				char* str = _strdup(value);
+				DDr_CheatTable[11].message_on = str;
+				DDr_CheatTable[cheat_x].message_on = str;
+			}
+			else if (!_stricmp(name, "devmode_off"))
+			{
+				char* str = _strdup(value);
+				DDr_CheatTable[11].message_off = str;
+				DDr_CheatTable[cheat_x].message_off = str;
+			}
+			else if (!_stricmp(name, "reservoirdogs_on"))
+				DDr_CheatTable[12].message_on = _strdup(value);
+			else if (!_stricmp(name, "reservoirdogs_off"))
+				DDr_CheatTable[12].message_off = _strdup(value);
+			else if (!_stricmp(name, "roughjustice_on"))
+				DDr_CheatTable[13].message_on = _strdup(value);
+			else if (!_stricmp(name, "roughjustice_off"))
+				DDr_CheatTable[13].message_off = _strdup(value);
+			else if (!_stricmp(name, "chenille_on"))
+				DDr_CheatTable[14].message_on = _strdup(value);
+			else if (!_stricmp(name, "chenille_off"))
+				DDr_CheatTable[14].message_off = _strdup(value);
+			else if (!_stricmp(name, "behemoth_on"))
+				DDr_CheatTable[15].message_on = _strdup(value);
+			else if (!_stricmp(name, "behemoth_off"))
+				DDr_CheatTable[15].message_off = _strdup(value);
+			else if (!_stricmp(name, "elderrune_on"))
+				DDr_CheatTable[16].message_on = _strdup(value);
+			else if (!_stricmp(name, "elderrune_off"))
+				DDr_CheatTable[16].message_off = _strdup(value);
+			else if (!_stricmp(name, "moonshadow_on"))
+				DDr_CheatTable[17].message_on = _strdup(value);
+			else if (!_stricmp(name, "moonshadow_off"))
+				DDr_CheatTable[17].message_off = _strdup(value);
+			else if (!_stricmp(name, "munitionfrenzy_on"))
+				DDr_CheatTable[18].message_on = _strdup(value);
+			else if (!_stricmp(name, "fistsoflegend_on"))
+				DDr_CheatTable[19].message_on = _strdup(value);
+			else if (!_stricmp(name, "fistsoflegend_off"))
+				DDr_CheatTable[19].message_off = _strdup(value);
+			else if (!_stricmp(name, "killmequick_on"))
+				DDr_CheatTable[20].message_on = _strdup(value);
+			else if (!_stricmp(name, "killmequick_off"))
+				DDr_CheatTable[20].message_off = _strdup(value);
+			else if (!_stricmp(name, "carousel_on"))
+				DDr_CheatTable[21].message_on = _strdup(value);
+			else if (!_stricmp(name, "carousel_off"))
+				DDr_CheatTable[21].message_off = _strdup(value);
+			else
+				DDrStartupMessage("unrecognised language item \"%s\"", name);
+			break;
+		case s_bsl:
+		default:
+			break;
+	}
+	
+	return true;
+}
+
+void DDrConfig()
+{
+/*	if (GetFileAttributes("daodan.ini") == INVALID_FILE_ATTRIBUTES)
+	{
+		DDrStartupMessage("daodan.ini doesn't exist, creating");
+		FILE* fp = fopen("daodan.ini", "w");
+		if (fp)
+		{
+			fputs("[Options]\n", fp);
+			fclose(fp);
+		}
+	}
+	
+	DDrStartupMessage("parsing daodan.ini...");
+	if (!inifile_read("daodan.ini", DDrIniCallback))
+		DDrStartupMessage("error reading daodan.ini, check your syntax!");*/
+	DDrStartupMessage("finished parsing");
+}
+
+void ONICALL DDrGame_Init()
+{
+	if (opt_usedaodanbsl)
+		SLrDaodan_Initalize();
+}
+
+void DDrException() {
+	int* i = 0;
+	*i = 1;
+}
+#include <stdio.h>
+
+//this was broken 
+FILE** _UUgError_WarningFile = (FILE**)0x005711B4;
+FILE *__fastcall DDrPrintWarning(int filename, int linenumber, unsigned __int16 errornum, int message)
+{
+
+	FILE *v4; // eax@1
+	FILE *result; // eax@4
+	char v6[512]; // [sp+0h] [bp-100h]@1
+	FILE* UUgError_WarningFile = *_UUgError_WarningFile;
+	sprintf_s(
+		v6, 512,
+		"Error %x reported from File: %s, Line: %d (message follows) \r\n%s",
+		errornum,
+		filename,
+		linenumber,
+		message);
+
+	if ( UUgError_WarningFile 
+		|| (UUgError_WarningFile = oni_fopen("debugger.txt", "wb"), UUgError_WarningFile ) )
+	{ 
+		oni_fprintf(UUgError_WarningFile, "%s\r\n", v6);
+		oni_fflush(UUgError_WarningFile);
+	}
+	//oni_fprintf(stdout, v6);
+	//sprintf(&v6, "%s", message);
+	*_UUgError_WarningFile = UUgError_WarningFile;
+	result = UUgError_WarningFile;
+	return result; 
+}
+
+void __cdecl DDrMain(int argc, char* argv[])
+{
+	int i;
+	char* section;
+	char* option;
+	bool falseoption;
+
+	DDrStartupMessage("daodan attached!");
+	
+	opt_ignore_private_data = false;
+	opt_sound = true;
+	
+	DDrConfig();
+	DDrStartupMessage("parsing command line...");
+	for (i = 1; i < argc; i ++)
+	{
+		if (argv[i][0] == '-')
+		{
+			section = argv[i] + 1;
+			if ((option = strchr(argv[i], '.')))
+			{
+				*option = '\0';
+				falseoption = (option[1] == 'n' || option[1] == 'N') && (option[2] = 'o' || option[2] == 'O');
+				if (i < (argc - 1) && argv[i + 1][0] != '-')
+					DDrIniCallback(section, true, option + 1, argv[++i]);
+				else
+					DDrIniCallback(section, true, option + (falseoption ? 3 : 1), (falseoption ? "false" : "true"));
+				*option = '.';
+			}
+			else
+			{
+				falseoption = (section[0] == 'n' || section[0] == 'N') && (section[1] = 'o' || section[1] == 'O');
+				ini_section = s_options;
+				if (i < (argc - 1) && argv[i + 1][0] != '-')
+					DDrIniCallback(NULL, false, section, argv[++i]);
+				else
+					DDrIniCallback(NULL, false, section + (falseoption ? 2 : 0), (falseoption ? "false" : "true"));
+			}
+		}
+		else
+		{
+			DDrStartupMessage("parse error \"%s\"", argv[i]);
+			break;
+		}
+	}
+	DDrStartupMessage("finished parsing");
+	DDrPatch_Init();
+	
+	// Safe startup message printer
+	if (patch_safeprintf)
+		DDrPatch_MakeJump(UUrStartupMessage, DDrStartupMessage);
+	
+	// Daodan device mode enumeration function
+	if (patch_daodandisplayenum)
+		DDrPatch_MakeJump(gl_enumerate_valid_display_modes, daodan_enumerate_valid_display_modes);
+	
+	// Performance patch
+	if (patch_usegettickcount)
+	{
+		DDrPatch_MakeJump(UUrMachineTime_High, DDrMachineTime_High);
+		DDrPatch_MakeJump(UUrMachineTime_High_Frequency, DDrMachineTime_High_Frequency);
+		DDrPatch_MakeJump(UUrMachineTime_Sixtieths, DDrMachineTime_Sixtieths);
+	}
+
+	// Cheats always enabled
+	if (patch_cheatsenabled)
+		DDrPatch_MakeJump(ONrPersist_GetWonGame, DDrPersist_GetWonGame);
+#if 0
+	// Windowed mode
+	if (patch_usedaodangl)
+	{
+		DDrPatch_MakeJump(ONrPlatform_Initialize, DDrPlatform_Initialize);
+		DDrPatch_MakeJump(gl_platform_initialize, daodangl_platform_initialize);
+	}
+#endif
+	// Hacked windowed mode (for when daodangl isn't working properly)
+	//if (patch_windowhack)
+
+		DDrWindowHack_Install();
+	
+	if (patch_daodaninit)
+		DDrPatch_MakeCall(OniExe + 0x000d345a, DDrGame_Init);
+	
+	// Patches for existing BSL functions
+	if (patch_bsl)
+		SLrDaodan_Patch();
+		
+	if (patch_cheater)
+	{
+		DDrPatch_MakeCall(OniExe + 0x000f618f, DDrCheater);
+		DDrPatch_Int16(OniExe + 0x000deb45, 0x5590);
+#if 0
+		DDrPatch_MakeCall(OniExe + 0x000deb47, FallingFrames);
+#endif
+		DDrPatch_MakeJump(OniExe + 0x0010f021, DDrCheater_LevelLoad);
+	}
+
+	//DDrPatch_MakeJump(0x004378c0, DDrException);
+	DDrPatch_MakeJump(0x004245A0, DDrPrintWarning);
+	//init_daodan_gl();
+	
+ 	ONiMain(argc, argv);
+}
+/*
+void DDrWrongExe()
+{
+	switch (MessageBox(NULL, "This version of the Daodan DLL is incompatible with your Oni.exe.\n"
+		"Click OK for more information. To continue using Oni without the patch, replace the downloaded binkw32.dll with the original.", "Daodan", MB_OKCANCEL | MB_ICONERROR))
+	{
+		case IDOK:
+			{
+				STARTUPINFO si;
+				PROCESS_INFORMATION pi;
+				FillMemory(&si, 0, sizeof(si));
+				FillMemory(&pi, 0, sizeof(pi));
+				si.cb = sizeof(si);
+				if (!CreateProcess(NULL, "cmd /c \"start http://wiki.oni2.net/Daodan_DLL\"", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
+					MessageBox(NULL, "", "", 0);
+				CloseHandle(pi.hProcess);
+				CloseHandle(pi.hThread);
+			}
+		default:
+			ExitProcess(0);
+	}
+}
+*/
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
+{
+	switch (fdwReason)
+	{
+		case DLL_PROCESS_ATTACH:
+			DDrDLLModule = hinstDLL;
+			DDrONiModule = GetModuleHandle(NULL);
+			
+			if (*(uint32_t*)(OniExe + 0x0011acd0) == 0x09d36852)
+				DDrPatch_MakeCall(OniExe + 0x0010fb49, DDrMain);
+			else
+				ExitProcess(0);
+			break;
+	}
+	return TRUE;
+}
Index: /Daodan/MSVC/Daodan.h
===================================================================
--- /Daodan/MSVC/Daodan.h	(revision 567)
+++ /Daodan/MSVC/Daodan.h	(revision 567)
@@ -0,0 +1,20 @@
+#pragma once
+#ifndef DAODAN_H
+#define DAODAN_H
+
+#include <windows.h>
+#include "bool.h"
+
+#define ONICALL __fastcall
+
+extern HMODULE DDrDLLModule;
+extern HMODULE DDrONiModule;
+
+extern bool opt_border;
+extern bool opt_shadow;
+extern bool opt_topmost;
+
+
+
+
+#endif
Index: /Daodan/MSVC/Daodan_BSL.c
===================================================================
--- /Daodan/MSVC/Daodan_BSL.c	(revision 567)
+++ /Daodan/MSVC/Daodan_BSL.c	(revision 567)
@@ -0,0 +1,846 @@
+#include <stdio.h>
+#include "bool.h"
+#include <time.h>
+//#include <ffi.h>
+#include <math.h>
+#include "inifile.h"
+
+#include "Daodan_BSL.h"
+#include "Flatline_BSL.h"
+#include "Daodan_Utility.h"
+#include "Daodan_Patch.h"
+#include "Daodan_Console.h"
+#include "BFW_ScriptLang.h"
+#include "Oni.h"
+#include "Oni_Character.h"
+#include "oni_gl.h"
+#include "dSFMT\dSFMT.h"
+#include "Daodan_Character.h"
+#include "BFW_Utility.h"
+
+
+uint16_t ONICALL bsl_int32mul(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	ret->value_int32 = args[0].value_int32 * args[1].value_int32;
+	ret->type = sl_int32;
+	return 0;
+}
+
+uint16_t ONICALL bsl_mul(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	double val1;
+	double val2;
+	
+	if (args[0].type == sl_int32)
+		val1 = args[0].value_int32;
+	else
+		val1 = args[0].value_float;
+	
+	if (args[1].type == sl_int32)
+		val2 = args[1].value_int32;
+	else
+		val2 = args[1].value_float;
+	
+	ret->value_float = (float)(val1 * val2);
+	ret->type = sl_float;
+	return 0;
+}
+
+uint16_t ONICALL bsl_int32div(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	ret->value_int32 = args[0].value_int32 / args[1].value_int32;
+	ret->type = sl_int32;
+	return 0;
+}
+uint16_t ONICALL bsl_div(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	double val1;
+	double val2;
+	
+	if (args[0].type == sl_int32)
+		val1 = args[0].value_int32;
+	else
+		val1 = args[0].value_float;
+	
+	if (args[1].type == sl_int32)
+		val2 = args[1].value_int32;
+	else
+		val2 = args[1].value_float;
+	
+	ret->value_float = (float)(val1 / val2);
+	ret->type = sl_float;
+	return 0;
+}
+
+uint16_t ONICALL bsl_int32rand(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int32_t start = 0;
+	int32_t end = 0;
+	
+	if (args[0].value_int32 == args[1].value_int32)
+		return 1;
+	else if (args[0].value_int32 > args[1].value_int32)
+	{
+		start = args[1].value_int32;
+		end = args[0].value_int32;
+	}
+	else
+	{
+		start = args[0].value_int32;
+		end = args[1].value_int32;
+	}
+	
+	ret->value_int32 = start + (dsfmt_gv_genrand_uint32() % (uint32_t)(end - start + 1));
+	ret->type = sl_int32;
+	return 0;
+}
+
+uint16_t ONICALL bsl_getkills(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int index;
+	if (numargs == 0) index = 0;
+	else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	//killcount = ONgGameState->CharacterStorage[index].Kills;
+		//ONgGameState + index * 0x16A0 + 0x1260 + 0x1670;
+	ret->value_int32 = ONgGameState->CharacterStorage[index].Kills;
+	ret->type = sl_int32;
+	return 0;
+}
+
+uint16_t ONICALL bsl_getdamage(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int index;
+	if (numargs == 0) index = 0;
+	else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	ret->value_int32 = ONgGameState->CharacterStorage[index].Damage;
+	ret->type = sl_int32;
+	return 0;
+}
+
+
+
+uint16_t ONICALL bsl_powerup(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int index;
+	void* returnval;
+	bool is_lsi = 0;
+	Character* Chr = ONgGameState->CharacterStorage;
+
+	if (numargs < 2 || args[1].type != sl_str32) return 1;
+	else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+
+	
+
+	if(!strcmp(args[1].value_str32,"ammo")) 
+	{
+		returnval = &(Chr[index].Inventory.AmmoUsed);
+	}
+	else if(!strcmp(args[1].value_str32,"hypo")) 
+	{
+		returnval = &(Chr[index].Inventory.HypoUsed);
+	}
+	else if(!strcmp(args[1].value_str32,"cells")) 
+	{
+		returnval = &(Chr[index].Inventory.CellsUsed);
+	}
+	else if(!strcmp(args[1].value_str32,"invis")) 
+	{
+		returnval = &(Chr[index].Inventory.CloakUsed);
+	}
+	else if(!strcmp(args[1].value_str32,"shield")) 
+	{
+		returnval = &(Chr[index].Inventory.ShieldUsed);
+	}
+	else if(!strcmp(args[1].value_str32,"lsi")) 
+	{
+		returnval = &(Chr[index].Inventory.hasLSI);
+		is_lsi = 1;
+	}
+//	else if(!strcmp(args[1].value_str32,"bossshield")) 
+//	{
+//		ret->value_int32 = Chr[index].Flags & char_bossshield;
+//		ret->type = sl_int32;
+//		if (numargs >=3) {
+//			if (Chr[index].Flags & char_bossshield) Chr[index].Flags = Chr[index].Flags & ~char_bossshield;
+//			else Chr[index].Flags = Chr[index].Flags | char_bossshield;
+//		}
+//		return 0;
+//	}
+	else return 1;
+	//todo, add setting
+	
+	if(is_lsi) ret->value_int32 = (int)*(bool*)returnval;
+	else	ret->value_int32 = *(int*)returnval;
+	ret->type = sl_int32;
+
+	if (numargs >= 3) 
+	{
+		if(is_lsi) *(bool*)returnval = args[2].value_int32;
+		else *(int*)returnval = args[2].value_int32;
+	}
+	
+	
+	return 0;
+}
+
+uint16_t ONICALL bsl_health(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int index;
+	Character* Chr;
+	int* health;
+	if (numargs == 0) index = 0;
+	else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	Chr = ONgGameState->CharacterStorage;
+	health = &Chr[index].Health;
+
+	ret->value_int32 = *health;
+	ret->type = sl_int32;
+
+	if (numargs >= 2) {
+		*health = args[1].value_int32;
+	}
+	ret->value_int32 = *health;
+	ret->type = sl_int32;
+	return 0;
+}
+
+uint16_t ONICALL bsl_regen(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int index;
+	Character* Chr;
+	if (numargs == 0) index = 0;
+	else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	Chr = ONgGameState->CharacterStorage ;
+	
+	
+	/*
+	DDrConsole_PrintF("Character %s", Chr[index].Name);
+	DDrConsole_PrintF("Spawn %s", Chr[index].ScriptSpawn);
+	DDrConsole_PrintF("Death %s", Chr[index].ScriptDie);
+	DDrConsole_PrintF("Aware %s", Chr[index].ScriptAware);
+	DDrConsole_PrintF("Alarm %s", Chr[index].ScriptAlarm);
+	DDrConsole_PrintF("Hurt %s", Chr[index].ScriptHurt);
+	DDrConsole_PrintF("Defeat %s", Chr[index].ScriptDefeat);
+	DDrConsole_PrintF("NoAmmo %s", Chr[index].ScriptNoAmmo);
+	DDrConsole_PrintF("NoPath %s", Chr[index].ScriptNoPath);
+	*/
+	ret->value_int32 = Chr[index].RegenHax;
+	ret->type = sl_int32;
+
+	if (numargs >= 2) {
+		Chr[index].RegenHax = args[1].value_int32;
+	}
+	return 0;
+}
+
+//wow this is broken.
+uint16_t ONICALL bsl_distance(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret) {
+	int index;
+	int index2;
+	Character* Chr = ONgGameState->CharacterStorage;
+	Character* Char1;
+	Character* Char2;
+
+	if (numargs < 2) return 1;
+
+	if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	if (index == -1) index = args[0].value_int32;
+
+	if (args[1].type == sl_str32) index2 = DDrGetCharacterIndexFromName(args[1].value_str32);
+	else index2 = args[1].value_int32;
+	if (index2 == -1) index2 = args[1].value_int32;
+		Char1 = &Chr[index];
+	Char2 = &Chr[index2];
+
+
+	ret->value_float = sqrt( pow((Char1->Location.X - Char2->Location.X), 2) + pow((Char1->Location.Y - Char2->Location.Y), 2) + pow((Char1->Location.Z - Char2->Location.Z),2));
+	ret->type = sl_float;
+	return 0;
+}
+uint16_t ONICALL bsl_location(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret) {
+	int index;
+	float* loc;
+	Character* Chr;
+	if (numargs < 2) return 1;
+	if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	if (index == -1) index = args[0].value_int32;
+	Chr = ONgGameState->CharacterStorage;
+	
+	if (!strcmp(args[1].value_str32,"X") || !strcmp(args[1].value_str32,"x"))
+	loc = &(Chr[index].Position.X);
+	else if (!strcmp(args[1].value_str32,"Y") || !strcmp(args[1].value_str32,"y"))
+	loc = &(Chr[index].Position.Y);
+	else if (!strcmp(args[1].value_str32,"Z") || !strcmp(args[1].value_str32,"z"))
+	loc = &(Chr[index].Position.Z);
+	else if (numargs == 4) {
+		//currently broken. crashes oni.
+		Chr[index].Position.X = args[1].value_float;
+		Chr[index].Position.Y = args[2].value_float;
+		Chr[index].Position.Z = args[3].value_float;
+		ret->value_float = 1;
+		ret->type = sl_float;
+		return 0;
+	}
+	else return 1;
+	
+	ret->value_float = *loc;
+	ret->type = sl_float;
+	
+	if(numargs == 3) {
+		//currently broken, does nothing.
+		*loc = args[2].value_float;
+	}
+	return 0;
+}
+
+uint16_t ONICALL bsl_maxhealth(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int index;
+	if (numargs == 0) index = 0;
+	else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	if(1) {
+	Character* Chr = ONgGameState->CharacterStorage ;
+	int* maxhealth = &Chr[index].MaxHealth;
+	int oldmaxhealth = Chr[index].MaxHealth;
+	int oldhealth = Chr->Health;
+	if (numargs >= 2) {
+		*maxhealth = args[1].value_int32;
+	}
+	if (numargs >= 3 && args[2].value_bool) {
+		Chr->Health = (int)(((float)args[1].value_int32 / (float)oldmaxhealth) * (float)oldhealth);
+	}
+	ret->value_int32 = oldmaxhealth;
+	ret->type = sl_int32;
+	return 0;
+	}
+}
+
+uint16_t ONICALL bsl_getattacker(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	//broken
+	
+	int index;
+	if (numargs == 0) index = 0;
+	else	if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	if(1) {
+	Character* Chr = ONgGameState->CharacterStorage;
+	ActiveCharacter* Active = (ActiveCharacter*)ONrGetActiveCharacter(&Chr[index]);
+	if (!Active) return 1;
+//	ret->value_int32 = Active->LastDamageSourceCharacter;
+	ret->type = sl_int32;
+	return 0;
+	} 
+}
+
+
+
+uint16_t ONICALL bsl_chrname(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int index;
+	char* name;
+	if (numargs == 0) index = 0;
+	else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+	if (index == -1) {
+		ret->type = sl_str32;
+		ret->value_str32 = "NULL";
+		return 0;
+	}
+	name = &ONgGameState->CharacterStorage[index].Name;
+	if (numargs == 2) {
+		strncpy(name, (char*)args[1].value_str32, 31);
+	}
+	
+	ret->type = sl_str32;
+	ret->value_str32 = name;
+	
+	return 0;
+}
+
+
+uint16_t ONICALL bsl_count(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	//testing numargs...
+	ret->type = sl_int32;
+	ret->value_int32 = numargs;
+	return 0;
+}
+
+uint16_t ONICALL bsl_dprintcolored(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	//TODO: figure out why our implementation of dprint shows after dev mode is turned off
+	RGBA color;
+	RGBA shade;
+	
+	if(numargs == 0) return 0;
+	if(numargs > 1 ) color.R = (char)args[1].value_int32;
+	else color.R = 255;
+	if(numargs > 2 ) color.G = (char)args[2].value_int32;
+	else color.G = 255;
+	if(numargs > 3 ) color.B = (char)args[3].value_int32;
+	else color.B = 255;
+	color.A = 0;
+	if(numargs > 5 ) shade.R = (char)args[5].value_int32;
+	else shade.R = 0x3F;
+	if(numargs > 6 ) shade.G = (char)args[6].value_int32;
+	else shade.G = 0x3F;
+	if(numargs > 7 ) shade.B = (char)args[7].value_int32;
+	else shade.B = 0x3F;
+	shade.A = 0; 
+
+	DDrConsole_PrintColored(args[0].value_str32, 1, color, shade);
+	return 0;
+}
+
+
+uint16_t ONICALL bsl_nametoindex(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+
+	ret->type = sl_int32;
+	ret->value_int32 = DDrGetCharacterIndexFromName(args[0].value_str32);
+
+	return 0;
+}
+
+typedef struct {
+char Name[16];
+int Bit;
+} KeyBit;
+
+KeyBit Actions1[32] = {
+	{"Escape", Action_Escape},
+	{"Console", Action_Console},
+	{"PauseScreen", Action_PauseScreen},
+	{"Cutscene1", Action_Cutscene_1                },
+	{"Cutscene2", Action_Cutscene_2                },
+	{"F4", Action_F4                      },
+	{"F5", Action_F5                        },
+	{"F6", Action_F6                       },
+	{"F7", Action_F7                        },
+	{"F8", Action_F8                        },
+	{"StartRecorn", Action_StartRecord        },       
+	{"StopRecord", Action_StopRecord            },    
+	{"PlayRecord", Action_PlayRecord              },  
+	{"F12", Action_F12                       },
+	{"Unknown1", Action_Unknown1               },  
+	{"LookMode", Action_LookMode           },
+	{"Screenshot", Action_Screenshot         },     
+	{"Unknown2", Action_Unknown2              },
+	{"Unknown3", Action_Unknown3              },   
+	{"Unknown4", Action_Unknown4                },
+	{"Unknown5", Action_Unknown5                },
+	{"Forward", Action_Forward                 },
+	{"Backward", Action_Backward                },
+	{"TurnLeft", Action_TurnLeft                },
+	{"TurnRight", Action_TurnRight               },
+	{"StepLeft", Action_StepLeft                },
+	{"StepRight", Action_StepRight               },
+	{"Jump", Action_Jump                    },
+	{"Crouch", Action_Crouch                  },
+	{"Punch",Action_Punch                   },
+	{"Kick", Action_Kick                    },
+	{"Block", Action_Block                   }
+};
+
+KeyBit Actions2[9] = {
+	{"Walk", Action2_Walk},
+	{"Action", Action2_Action},
+	{"Hypo", Action2_Hypo},
+	{"Reload", Action2_Reload                },
+	{"Swap", Action2_Swap                },
+	{"Drop", Action2_Drop                     },
+	{"Fire1", Action2_Fire1                       },
+	{"Fire2", Action2_Fire2                       },
+	{"Fire3", Action2_Fire3                       }
+};
+uint16_t ONICALL bsl_holdkey(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	uint32_t index;
+	uint32_t i = 2;
+	uint32_t j = 0;
+	int Input1 = 0;
+	int Input2 = 0;
+	Character* Chr;
+	ActiveCharacter* Active;
+	if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+	else index = args[0].value_int32;
+
+	Chr = ONgGameState->CharacterStorage;
+	Active = ONrGetActiveCharacter(&Chr[index]);
+	if (!Active) return 1;
+
+	for(i = 1; i < numargs - 1; i++) {
+		for(j = 0; j < 32; j++) {
+			if(!strcmp(args[i].value_str32, Actions1[j].Name)) {
+				Input1 = Input1 | Actions1[j].Bit;
+			}
+		}
+		for(j = 0; j < 9; j++) {
+			if(!strcmp(args[i].value_str32, Actions2[j].Name)) { 
+				Input2 = Input2 | Actions2[j].Bit;
+			}
+		}
+	}
+	Active->Input.Current.Actions1 = Active->Input.Current.Actions1 | Input1;
+	Active->Input.Current.Actions2 = Active->Input.Current.Actions1 | Input2;
+	if( Input1 + Input2 == 0 ) {
+		DDrConsole_PrintF("Func \"%s\", File \"%s\", Line %d: semantic error, \"%s\": No valid keys given.", callinfo->name, callinfo->calllocation, callinfo->linenumber, callinfo->name);
+		return 0;
+	}
+	if (  args[numargs - 1].value_int32 <= 0) {
+		return 0;
+	}
+	else {
+		 args[numargs - 1].value_int32 -= 1;
+		*dontuse2 = 1;
+		*dontuse1 = 1;
+	}
+	return 0;
+}
+	
+uint16_t ONICALL bsl_isheld(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+	{
+//		int index;
+//		if (numargs < 4) index = 0;
+//		else	if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+//		else index = args[0].value_int32;
+
+//		Character* Chr = ONgGameState->CharacterStorage;
+//	ActiveCharacter* Active = (ActiveCharacter*)ONrGetActiveCharacter(&Chr[index]);
+//	if ((int)Active == 0) return 1;
+	uint32_t i = 2;
+	uint32_t j = 0;
+	int Input1 = 0;
+	int Input2 = 0;
+	for(i = 0; i < numargs; i++) {
+		for(j = 0; j < 32; j++) {
+			//DDrConsole_PrintF("Testing %s against %s 0x%x", args[i].value_str32, Actions1[j].Name, Actions1[j].Bit);
+			if(!strcmp(args[i].value_str32, Actions1[j].Name)) {
+				Input1 = Input1 | Actions1[j].Bit;
+				//DDrConsole_PrintF("Success!");
+			}
+			
+		}
+		for(j = 0; j < 9; j++) {
+			if(!strcmp(args[i].value_str32, Actions2[j].Name)) Input2 = Input2 | Actions2[j].Bit;
+	
+		}
+		}
+	//DDrConsole_PrintF("Testing: 0x%x Input: 0x%x",Input1, *(int*)(ONgGameState + 0xB8 + 0x10));
+	ret->value_int32 = 0;
+	ret->type = sl_int32;
+	if ( (ONgGameState->Input.Current.Actions1 == Input1)  && (ONgGameState->Input.Current.Actions2 == Input2)) ret->value_int32 = 1;
+	return 0;
+}
+
+uint16_t ONICALL bsl_waitforkey(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+	{
+//		int index;
+//		if (numargs < 4) index = 0;
+//		else	if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
+//		else index = args[0].value_int32;
+
+//		Character* Chr = ONgGameState->CharacterStorage;
+//	ActiveCharacter* Active = (ActiveCharacter*)ONrGetActiveCharacter(&Chr[index]);
+//	if ((int)Active == 0) return 1;
+	int i = 2;
+	int j = 0;
+	int Input1 = 0;
+	int Input2 = 0;
+	for(i = 0; i < numargs; i++) {
+		for(j = 0; j < 32; j++) {
+			//DDrConsole_PrintF("Testing %s against %s 0x%x", args[i].value_str32, Actions1[j].Name, Actions1[j].Bit);
+			if(!strcmp(args[i].value_str32, Actions1[j].Name)) {
+				Input1 = Input1 | Actions1[j].Bit;
+				//DDrConsole_PrintF("Success!");
+			}
+			
+		}
+		for(j = 0; j < 9; j++) {
+			if(!strcmp(args[i].value_str32, Actions2[j].Name)) Input2 = Input2 | Actions2[j].Bit;
+	
+		}
+		}
+	//DDrConsole_PrintF("Waiting...");
+	if ( 
+		(( ONgGameState->Input.Current.Actions1 & Input1) == Input1)  && 
+		(( ONgGameState->Input.Current.Actions2 & Input2) == Input2) 
+	){
+	}
+	else {
+	//else (int)*ret = 1;
+	*dontuse2 = 1;
+	*dontuse1 = 1;
+	}
+/*
+	__asm__(
+		"movl 0x10(%esp), %edx\n\t"
+		"movl    $1,(%eax)\n\t"
+		);
+	//ret->type = sl_void
+*/	return 0;
+}
+
+/*
+uint16_t ONICALL bsl_sprintf(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	if (numargs < 2)
+		return 1;
+	
+	char output[255];
+	int i;
+	for(i = 1; i < numargs; i++)	{
+		sprintf(output, args[0].value_str32, args[i].value_str32);
+	}
+	
+	ret->value_str32 = output;
+	ret->type = sl_str32;
+	return 0;
+}
+*/
+/*
+uint16_t ONICALL bsl_sprintf(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	if (numargs < 1 || args[0].type != sl_str32)
+	{
+		DDrConsole_PrintF("Func \"%s\", File \"%s\", Line %d: semantic error, \"%s\": parameter list does not match: format:string arg1 arg2 ...", callinfo->name, callinfo->calllocation, callinfo->linenumber, callinfo->name);
+		return 0;
+	}
+	
+	if (!args[0].value_str32)
+		args[0].value_str32 = "";
+	
+	int ffi_ret;
+	char* str = NULL;
+	int size = 0;
+	
+	ffi_cif cif;
+	ffi_type* ffi_args[256];
+	void* values[256];
+	
+	ffi_args[0] = &ffi_type_pointer;
+	values[0] = &str;
+	ffi_args[1] = &ffi_type_uint32;
+	values[1] = &size;
+	
+	int i;
+	for(i = 2; i < numargs + 2; i ++)
+	{
+		if (args[i - 2].type == sl_float)
+		{
+			float value_float = args[i - 2].value_float;
+			double* value_double = (double*)&(args[i - 2]);
+			*value_double = value_float;
+			
+			ffi_args[i] = &ffi_type_double;
+			values[i] = value_double;
+		}
+		else
+		{
+			ffi_args[i] = &ffi_type_pointer;
+			values[i] = &(args[i - 2].value);
+		}
+	}
+	
+	if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, i, &ffi_type_sint32, ffi_args) != FFI_OK)
+		return 1;
+	ffi_call(&cif, (void*)snprintf, (void*)&ffi_ret, values);
+	str = malloc(ffi_ret + 1);
+	size = ffi_ret + 1;
+	ffi_call(&cif, (void*)snprintf, (void*)&ffi_ret, values);
+	ret->value_str32 = str;
+	ret->type = sl_str32;
+	return 0;
+}
+*/
+// Widescreen patch for talking heads.
+uint16_t ONICALL cinematic_start_patch(sl_callinfo* callinfo, unsigned int numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	args[1].value_int32 = (double)args[1].value_int32 / (double)(gl_eng->DisplayMode.Width) * (4.0 / 3.0 * (double)(gl_eng->DisplayMode.Height));
+	return ((sl_func)(OniExe + 0x000f3830))(callinfo, numargs, args, dontuse1, dontuse2, ret);
+}
+
+bool ini_inbsl = false;
+bool SLrIniCallback(char* section, bool newsection, char* name, char* value)
+{
+	if (newsection && !_stricmp(section, "bsl"))
+		ini_inbsl = true;
+	
+	if (ini_inbsl)
+	{
+		char* type = value;
+		bool isptr = false;
+		sl_type bsl_type;
+		
+		if (value[0] == 'p' && value[1] == 't' && value[2] == 'r' && value[3] == ':')
+		{
+			isptr = true;
+			value += 4;
+		}
+		
+		
+		
+		for (; *type; type++)
+			if (*type == ':')
+			{
+				*type = '\0';
+				type++;
+				break;
+			}
+		
+		if (!*type)
+			DDrStartupMessage("badly formed bsl definition for \"%s\"", name);
+		
+		if (!strcmp(type, "int"))
+			bsl_type = sl_int32;
+		else if (!strcmp(type, "string"))
+			bsl_type = sl_str32;
+		else if (!strcmp(type, "float"))
+			bsl_type = sl_float;
+		else if (!strcmp(type, "bool"))
+			bsl_type = sl_bool;
+		else
+		{
+			DDrStartupMessage("unknown type in bsl definition for \"%s\"", name);
+			return true;
+		}
+		
+		if (isptr)
+		{
+			char* bsl_var = malloc(strlen(name) + 1);
+			memcpy(bsl_var, name, strlen(name) + 1);
+			switch (bsl_type)
+			{
+				case sl_int32:
+					SLrGlobalVariable_Register_Int32(bsl_var, "see daodan.ini", (int32_t*)(uint32_t)inifile_parseint(value, false));
+					break;
+				case sl_float:
+					SLrGlobalVariable_Register_Float(bsl_var, "see daodan.ini", (float*)(uint32_t)inifile_parseint(value, false));
+					break;
+				default:
+					break;
+			}
+		}
+		else
+		{
+			char* bsl_var = malloc(strlen(name) + 1 + sizeof(int32_t));
+			int32_t* bsl_val = (int32_t*)bsl_var;
+			bsl_var += sizeof(int32_t);
+			memcpy(bsl_var, name, strlen(name) + 1);
+			
+			switch (bsl_type)
+			{
+				case sl_int32:
+					*bsl_val = inifile_parseint(value, false);
+					SLrGlobalVariable_Register_Int32(bsl_var, "see daodan.ini", bsl_val);
+					break;
+				case sl_float:
+					break;
+				default:
+					break;
+			}
+		}
+	}
+	return true;
+}
+
+void SLrConfig()
+{
+	DDrStartupMessage("re-parsing daodan.ini for bsl...");
+	inifile_read("daodan.ini", SLrIniCallback);
+	DDrStartupMessage("finished parsing");
+}
+
+void ONICALL SLrDaodan_Register_ReturnType(char* name, char* desc, char* argfmt, sl_type type, sl_func callback) {
+	char argfmt2[512];
+	uint16_t errornum;
+	sprintf_s(argfmt2, 512, "%s [|]", argfmt);
+	errornum = SLrScript_Command_Register_ReturnType(name, desc, argfmt2, type, callback);
+	if(errornum)
+	{
+		DDrStartupMessage("Registration of script command %s failed with error %i", name, errornum);
+	}
+
+}
+void* TSrTest = 0;
+uint16_t ONICALL new_text(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	void* TSFFTahoma;
+	int returnval;
+	
+	TMrInstance_GetDataPtr( 'TSFF', "Tahoma", &TSFFTahoma);
+	returnval = TSrContext_New( TSFFTahoma, 7, 1, 1,  0, &TSrTest);
+	return 0;
+}
+
+void SLrDaodan_Initalize()
+{
+	//Calculating the value of the needed offset is much more reliable when the compiler does it for you.
+
+	//TODO: fix moonshadow.
+	Character * Chr = 0;
+	
+	int NoPath = (int)&(Chr[0].RegenHax) & 0x000000FF;
+
+	
+
+	const char regen_patch[] =
+		{0x90, 0x90, 0x90, 0x90, 0x90,	// mov     al, _WPgRegenerationCheat
+		0x90, 0x90,						// test    al, al
+		0x90, 0x90,						// jz      short loc_51BB98
+		0x8B, 0x86, (char)NoPath, 0x01};	
+	DDrPatch_Const(OniExe + 0x0011BB64, regen_patch);
+
+ 	SLrConfig();
+
+	SLrScript_Command_Register_Void("debug_daodan","Adds text to screen", "", new_text);
+
+	SLrScript_Command_Register_ReturnType("int32mul", "Multiplies two numbers", "n1:int n2:int", sl_int32, bsl_int32mul);
+	SLrScript_Command_Register_ReturnType("mul", "Multiplies two numbers", "[int1:int|float1:float] [int2:int|float2:float]", sl_float, bsl_mul);
+	SLrScript_Command_Register_ReturnType("int32div", "Divides two numbers", "n1:int n2:int", sl_int32, bsl_int32div);
+	SLrScript_Command_Register_ReturnType("div", "Divides two numbers", "[int1:int|float1:float] [int2:int|float2:float]", sl_float, bsl_div);
+	dsfmt_gv_init_gen_rand((uint32_t)time(NULL));
+	SLrScript_Command_Register_ReturnType("int32rand", "Returns a pseudo-random number between two numbers (inclusive).", "start:int end:int", sl_int32, bsl_int32rand);
+	SLrScript_Command_Register_ReturnType("d_getkills","Gets the number of kills a character has", "[ai_name:string | script_id:int] [|]", sl_int32, bsl_getkills);
+	SLrScript_Command_Register_ReturnType("d_getdamage","Gets the amount of damage a character has caused", "[ai_name:string | script_id:int]", sl_int32, bsl_getdamage);
+	SLrScript_Command_Register_ReturnType("d_name","Gets or sets a character's name", "[ai_name:string | script_id:int] [newname:string|]", sl_str32, bsl_chrname);
+	SLrScript_Command_Register_ReturnType("d_getindex","Converts a character's name to its index", "ai_name:string", sl_int32, bsl_nametoindex);
+	SLrScript_Command_Register_ReturnType("d_health","Gets or sets a character's health", "[ai_name:string | script_id:int] [newhealth:int]", sl_str32, bsl_health);
+	SLrScript_Command_Register_ReturnType("d_regen","Gets or sets a character's health", "[ai_name:string | script_id:int] [newhealth:int]", sl_str32, bsl_regen);
+	SLrScript_Command_Register_ReturnType("d_maxhealth","Gets or sets a character's maximum health", "[ai_name:string | script_id:int] [newmaxhealth:int] [scalehealth:bool]", sl_str32, bsl_maxhealth);
+	SLrScript_Command_Register_ReturnType("d_powerup","Gets or sets a character's powerups", "[ai_name:string | script_id:int] powerup:string", sl_int32, bsl_powerup);
+	SLrScript_Command_Register_ReturnType("d_holdkey","Makes a character hold a key", "[ai_name:string | script_id:int] frames:int keys:string", sl_int32, bsl_holdkey);
+	SLrScript_Command_Register_ReturnType("d_isheld","Checks if player is holding a key", "[ai_name:string | script_id:int] [keys:string]", sl_int32, bsl_isheld);
+	SLrScript_Command_Register_ReturnType("d_location","Returns the X, Y or Z coord of a character", "ai_name:string | script_id:int xyz:string [newlocation:float]", sl_float, bsl_location);
+	SLrScript_Command_Register_ReturnType("d_distance","Returns the distance between two characters", "ai_name:string | script_id:int ai_name:string | script_id:int", sl_float, bsl_distance);
+	SLrScript_Command_Register_Void("d_waitforkey","Waits for a keypress from the player", "keys", bsl_waitforkey);
+
+	//broken, only works for one damage type.
+	//SLrDaodan_Register_ReturnType("d_getattacker","Gets the last person to hurt a character", "[ai_name:string | script_id:int]", sl_int32, bsl_getattacker);
+	
+	//used for debugging.
+//	SLrDaodan_Register_ReturnType("d_active","Returns a hex offset. ;)", "[ai_name:string | script_id:int]", sl_int32, bsl_getactiveoffset);
+
+	//SLrDaodan_Register_ReturnType("sprintf", "C-style sprintf.", "format:string arg1 arg2 ...", sl_str32, bsl_sprintf);
+	
+	SLrScript_Command_Register_ReturnType("st", "prints to console in color", "text:string color1:int color2:int", sl_void, bsl_dprintcolored);
+	
+	//Flatline
+//#ifdef FLATLINE
+	SLrFlatline_Initialize();
+//#endif
+}
+
+void SLrDaodan_Patch()
+{
+	DDrPatch_Int32(OniExe + 0x000f3755, (int)cinematic_start_patch);
+}
Index: /Daodan/MSVC/Daodan_BSL.h
===================================================================
--- /Daodan/MSVC/Daodan_BSL.h	(revision 567)
+++ /Daodan/MSVC/Daodan_BSL.h	(revision 567)
@@ -0,0 +1,10 @@
+#pragma once
+#ifndef DAODAN_BSL_H
+#define DAODAN_BSL_H
+
+#include "Daodan.h"
+
+void SLrDaodan_Initalize();
+void SLrDaodan_Patch();
+
+#endif
Index: /Daodan/MSVC/Daodan_Character.c
===================================================================
--- /Daodan/MSVC/Daodan_Character.c	(revision 567)
+++ /Daodan/MSVC/Daodan_Character.c	(revision 567)
@@ -0,0 +1,60 @@
+#include <stdlib.h>
+#include "Daodan_Character.h"
+#include "Oni_Character.h"
+#include "BFW_Utility.h"
+#include "Oni.h"
+
+int DDr_TeamToTeamID(const char* team_string) //Already something like this in the engine, but I'm reimplementing it...
+{
+	if (!strcmp(team_string, "Konoko"))                  return team_konoko;
+	else if (!strcmp(team_string, "TCTF"))               return team_tctf;
+	else if (!strcmp(team_string, "Syndicate"))          return team_syndicate;
+	else if (!strcmp(team_string, "Neutral"))            return team_neutral;
+	else if (!strcmp(team_string, "SecurityGuard"))      return team_securityguard;
+	else if (!strcmp(team_string, "RougeKonoko"))        return team_rougekonoko;
+	else if (!strcmp(team_string, "Switzerland"))        return team_switzerland;
+	else if (!strcmp(team_string, "SyndicateAccessory")) return team_syndicateaccessory;
+	return team_neutral; //if you enter a bad teamname, return Neutral.....
+}
+
+uint32_t DDrGetCharacterIndexFromName(char* input) {
+	int i;
+	Character **characterlist = ONgGameState->PresentCharacterList;								//pointer to array of Character pointers
+	int total_characters = ONgGameState->PresentCharacterListCount;		//Max number of characters
+	for(i = 0; i < total_characters; i++) {
+		if (characterlist[i] != 0)							//anti Blam!
+			if (!strcmp(characterlist[i]->Name, input)) {	//checks for the same name
+			return characterlist[i]->Number;
+			}
+	}
+return -1;													//not found :(
+}
+/*
+OniRectangle TestRect;
+void CHARTest()
+{
+	
+	CharacterObject* TestCHAR = malloc(sizeof(CharacterObject));
+	memset(TestCHAR, 0, sizeof(CharacterObject));
+	
+	int type = 0x43484152;
+	TestCHAR->Header.Type = type;
+	memcpy(TestCHAR->OSD.Name, "Gumby", 6);
+	memcpy(TestCHAR->OSD.Class, "striker_easy_1", 15);
+	memcpy(TestCHAR->OSD.ScriptSpawn, "dmsg", 20);	
+	//TestCHAR->OSD.Options = chr_unkillable;
+	TestCHAR->OSD.TeamID = team_syndicate;
+	//int* ptr = 0x005ECE70;
+	TestRect.Top = 10;
+	TestRect.Left = 10;
+	TestRect.Right = 100;
+	TestRect.Bottom = 100;
+	
+	char str[5] = "hi";
+	str[2] = '\0';
+	AUrMessageBox(0, "%8x", &TestRect);
+	int16_t a = TSrContext_DrawText(TestContext, str, 0xFF, &TestRect, &TestRect);
+	//ONrGameState_NewCharacter(TestCHAR, NULL, NULL, NULL);
+	return;
+}
+*/
Index: /Daodan/MSVC/Daodan_Character.h
===================================================================
--- /Daodan/MSVC/Daodan_Character.h	(revision 567)
+++ /Daodan/MSVC/Daodan_Character.h	(revision 567)
@@ -0,0 +1,11 @@
+#pragma once
+#ifndef DAODAN_CHARACTER_H
+#define DAODAN_CHARACTER_H
+
+#include "Daodan.h"
+//#include <stdint.h>
+
+int DDr_TeamToTeamID(const char* team_string);
+void CHARTest();
+uint32_t DDrGetCharacterIndexFromName(char* );
+#endif
Index: /Daodan/MSVC/Daodan_Cheater.c
===================================================================
--- /Daodan/MSVC/Daodan_Cheater.c	(revision 567)
+++ /Daodan/MSVC/Daodan_Cheater.c	(revision 567)
@@ -0,0 +1,272 @@
+#include <string.h>
+#include "bool.h"
+#include <math.h>
+#include "Oni.h"
+#include "Oni_Character.h"
+
+#include "Daodan.h"
+#include "Daodan_Cheater.h"
+union MSVC_EVIL_FLOAT_HACK
+{
+   unsigned __int8 Bytes[4];
+   float Value;
+};
+static union MSVC_EVIL_FLOAT_HACK INFINITY_HACK = {{0x00, 0x00, 0x80, 0x7F}};
+#define INFINITY (INFINITY_HACK.Value)
+
+oniCheatCode DDr_CheatTable[] = {
+	{ "shapeshifter",     "Change Characters Enabled",       "Change Characters Disabled", cheat_shapeshifter     },
+	{ "liveforever",      "Invincibility Enabled",           "Invincibility Disabled",     cheat_liveforever      },
+	{ "touchofdeath",     "Omnipotence Enabled",             "Omnipotence Disabled",       cheat_touchofdeath     },
+	{ "canttouchthis",    "Unstoppable Enabled",             "Unstoppable Disabled",       cheat_canttouchthis    },
+	{ "fatloot",          "Fat Loot Received",               NULL,                         cheat_fatloot          },
+	{ "glassworld",       "Glass Furniture Enabled",         "Glass Furniture Disabled",   cheat_glassworld       },
+	{ "winlevel",         "Instantly Win Level",             NULL,                         cheat_winlevel         },
+	{ "loselevel",        "Instantly Lose Level",            NULL,                         cheat_loselevel        },
+	{ "bighead",          "Big Head Enabled",                "Big Head Disabled",          cheat_bighead          },
+	{ "minime",           "Mini Mode Enabled",               "Mini Mode Disabled",         cheat_minime           },
+	{ "superammo",        "Super Ammo Mode Enabled",         "Super Ammo Mode Disabled",   cheat_superammo        },
+	{ "thedayismine",     "Developer Access Enabled",        "Developer Access Disabled",  cheat_thedayismine     },
+	{ "reservoirdogs",    "Last Man Standing Enabled",       "Last Man Standing Disabled", cheat_reservoirdogs    },
+	{ "roughjustice",     "Gatling Guns Enabled",            "Gatling Guns Disabled",      cheat_roughjustice     },
+	{ "chenille",         "Daodan Power Enabled",            "Daodan Power Disabled",      cheat_chenille         },
+	{ "behemoth",         "Godzilla Mode Enabled",           "Godzilla Mode Disabled",     cheat_behemoth         },
+	{ "elderrune",        "Regeneration Enabled",            "Regeneration Disabled",      cheat_elderrune        },
+	{ "moonshadow",       "Phase Cloak Enabled",             "Phase Cloak Disabled",       cheat_moonshadow       },
+	{ "munitionfrenzy",   "Weapons Locker Created",          NULL,                         cheat_munitionfrenzy   },
+	{ "fistsoflegend",    "Fists Of Legend Enabled",         "Fists Of Legend Disabled",   cheat_fistsoflegend    },
+	{ "killmequick",      "Ultra Mode Enabled",              "Ultra Mode Disabled",        cheat_killmequick      },
+	{ "carousel",         "Slow Motion Enabled",             "Slow Motion Disabled",       cheat_carousel         },
+	{ "bigbadboss",       "Boss Shield Enabled",             "Boss Shield Disabled",       cheat_bigbadboss       },
+	{ "bulletproof",      "Force Field Enabled",             "Force Field Disabled",       cheat_bulletproof      },
+	{ "kangaroo",         "Alex Okita Mode Enabled",         "Alex Okita Mode Disabled",   cheat_kangaroo         },
+	{ "himynameisalex",   "Kangaroo Jump Enabled",		     "Kangaroo Jump Disabled",	   cheat_kangaroo         },
+	{ "marypoppins",      "Jet Pack Mode Enabled",           "Jet Pack Mode Disabled",     cheat_marypoppins      },
+	{ "buddha",           "Unkillable Enabled",              "Unkillable Disabled",        cheat_buddha           },
+	{ "shinobi",          "Ninja Mode Enabled (good luck!)", "Ninja Mode Disabled",        cheat_shinobi          },
+	{ "x",                "Developer Access Enabled",        "Developer Access Disabled",  cheat_x                },
+	{ "testcheat",        "Testing...",                      "",                           cheat_testcheat        },
+	{ "tellmetheversion", "Daodan v.3.0",                    "",                           cheat_tellmetheversion },
+	{0}
+};
+
+
+
+// Just copied all these defines from the old daodan, they were originaly from SFeLi's code.
+
+#define GSA_camera        (0x00000080)
+#define GSA_player        (0x000000AC)
+#define GSA_carousel      (0x00000104) /* char */
+#define GSA_slowmotimer   (0x00000108)
+#define GSA_splashscreen  (0x00000118) /* char */
+
+#define CHR_flags         (0x00000004)
+#define CHR_flags2        (0x00000008)
+#define CHR_oncc          (0x0000000C)
+#define CHR_team          (0x00000012) /* short */
+#define CHR_name          (0x00000014) /* char[32] */
+#define CHR_scalemodel    (0x00000034)
+#define CHR_weapon1       (0x00000194)
+#define CHR_weapon2       (0x00000198)
+#define CHR_weapon3       (0x0000019C)
+#define CHR_shield_curr   (0x000001B6) /* short */
+#define CHR_shield        (0x000001B8) /* short */
+#define CHR_phasecloak    (0x000001BA) /* short */
+#define CHR_stats_kills   (0x00001670)
+#define CHR_stats_damage  (0x00001674)
+
+#define ONCC_jet_accel    (0x00000010) /* float */
+#define ONCC_jet_timer    (0x00000016) /* short */
+#define ONCC_height1      (0x00000018) /* float */
+#define ONCC_height2      (0x0000001C) /* float */
+#define ONCC_bodysize_min (0x00000C58) /* float */
+#define ONCC_bodysize_max (0x00000C8C) /* float */
+
+#define kangaroo_h     (short)(60)
+#define kangaroo_jp    (float)(0.06)
+#define marypoppins_jp (float)(0.14)
+
+uint16_t cheat_oldshield = 0;
+int32_t cheat_oldhealth = 1;
+int32_t cheat_oldmaxhealth = 1;
+float cheat_oldjet_accel = 0.03f;
+uint16_t cheat_oldjet_timer = 20;
+float cheat_oldheight1 = 45;
+float cheat_oldheight2 = 135;
+bool inc_fallingframes = true;
+
+uint8_t ONICALL DDrCheater(uint32_t cheat)
+{
+	switch (cheat)
+	{
+		case cheat_bigbadboss:
+		{
+			GameState* GameState = ONgGameState;
+
+			Character* player = ONgGameState->PlayerCharacter;
+			//char* player = *((char**)(ONgGameState + GSA_player));
+			if (player->Flags & chr_bossshield)
+			{
+				player->Flags = player->Flags & ~chr_bossshield;
+				return 0;
+			}
+			else
+			{
+				player->Flags = player->Flags | chr_bossshield;
+				return 1;
+			}
+		}
+		case cheat_bulletproof:
+		{
+			Character* player = ONgGameState->PlayerCharacter;
+			if (player->Flags  & chr_weaponimmune)
+			{
+				player->Flags  = player->Flags  & ~chr_weaponimmune;
+				player->Inventory.ShieldUsed  = cheat_oldshield;
+				return 0;
+			}
+			else
+			{
+				player->Flags  |=  chr_weaponimmune;
+				cheat_oldshield = player->Inventory.ShieldUsed;
+				player->Inventory.ShieldUsed = 100;
+				return 1;
+			}
+		}
+		case cheat_kangaroo:
+		{
+			Character* player = ONgGameState->PlayerCharacter;
+			//char* oncc = *(char**)(player + CHR_oncc);
+			if (!inc_fallingframes)
+				inc_fallingframes = true;
+			if (player->ONCC->JetpackTimer == kangaroo_h)
+			{
+				player->ONCC->JumpAcceleration = cheat_oldjet_accel;
+				player->ONCC->JetpackTimer  = cheat_oldjet_timer;
+				player->ONCC->MaxFallingHeightWithoutDamage = cheat_oldheight1;
+				player->ONCC->MaxFallingHeightWithDamage = cheat_oldheight2;
+				return 0;
+			}
+			else if (player->ONCC->JetpackTimer == 0xFFFF)
+			{
+				player->ONCC->JumpAcceleration = kangaroo_jp;
+				player->ONCC->JetpackTimer  = kangaroo_h;
+				player->ONCC->MaxFallingHeightWithoutDamage = INFINITY;
+				player->ONCC->MaxFallingHeightWithDamage  = INFINITY;
+				return 1;
+			}
+			else
+			{
+				cheat_oldjet_accel = player->ONCC->JumpAcceleration;
+				cheat_oldjet_timer = player->ONCC->JetpackTimer;
+				cheat_oldheight1 = player->ONCC->MaxFallingHeightWithoutDamage ;
+				cheat_oldheight2 = player->ONCC->MaxFallingHeightWithDamage;
+				player->ONCC->JumpAcceleration = kangaroo_jp;
+				player->ONCC->JetpackTimer = kangaroo_h;
+				player->ONCC->MaxFallingHeightWithoutDamage  = INFINITY;
+				player->ONCC->MaxFallingHeightWithDamage  = INFINITY;
+				return 1;
+			}
+		}
+		case cheat_marypoppins:
+		{
+			Character* player = ONgGameState->PlayerCharacter;
+			if (!inc_fallingframes)
+			{
+				inc_fallingframes = true;
+				if (player->ONCC->JetpackTimer == 0xFFFF)
+				{
+					player->ONCC->JumpAcceleration = cheat_oldjet_accel;
+					player->ONCC->JetpackTimer = cheat_oldjet_timer;
+					player->ONCC->MaxFallingHeightWithoutDamage = cheat_oldheight1;
+					player->ONCC->MaxFallingHeightWithDamage = cheat_oldheight2;
+				}
+				return 0;
+			}
+			else if (player->ONCC->JetpackTimer == kangaroo_h)
+			{
+				player->ONCC->JumpAcceleration = marypoppins_jp;
+				player->ONCC->JetpackTimer = 0xFFFF;
+				player->ONCC->MaxFallingHeightWithoutDamage = 0x7f800000;
+				player->ONCC->MaxFallingHeightWithDamage = 0x7f800000;
+				inc_fallingframes = false;
+				return 1;
+			}
+			else
+			{
+				cheat_oldjet_accel = player->ONCC->JumpAcceleration;
+				cheat_oldjet_timer = player->ONCC->JetpackTimer;
+				cheat_oldheight1 = player->ONCC->MaxFallingHeightWithoutDamage;
+				cheat_oldheight2 = player->ONCC->MaxFallingHeightWithDamage ;
+				player->ONCC->JumpAcceleration = marypoppins_jp;
+				player->ONCC->JetpackTimer = 0xFFFF;
+				player->ONCC->MaxFallingHeightWithoutDamage = 0x7f800000;
+				player->ONCC->MaxFallingHeightWithDamage = 0x7f800000;
+				inc_fallingframes = false;
+				return 1;
+			}
+		}
+		case cheat_buddha:
+		{
+			Character* player = ONgGameState->PlayerCharacter;
+			if (player->Flags& chr_unkillable)
+			{
+				player->Flags= player->Flags& ~chr_unkillable;
+				return 0;
+			}
+			else
+			{
+				player->Flags= player->Flags| chr_unkillable;
+				return 1;
+			}
+		}
+		case cheat_shinobi:
+		{
+			Character* player = ONgGameState->PlayerCharacter;
+			if (player->MaxHealth == 1)
+			{
+				player->Health = cheat_oldhealth;
+				player->MaxHealth = cheat_oldmaxhealth;
+				player->Flags = player->Flags & ~(chr_bossshield | chr_weaponimmune);
+				ai2_deaf = 0;
+				return 0;
+			}
+			else
+			{
+				cheat_oldhealth = player->Health;
+				cheat_oldmaxhealth = player->MaxHealth;
+				player->Health = 1;
+				player->MaxHealth = 1;
+				player->Flags = player->Flags | chr_bossshield | chr_weaponimmune;
+				ai2_deaf = 1;
+				return 1;
+			}
+			
+		}
+		case cheat_testcheat:
+		{
+			Character* player = ONgGameState->PlayerCharacter;
+			player->Flags = player->Flags | chr_noncombatant;
+			return 1;
+		}
+		case cheat_tellmetheversion:
+			return 1;
+		case cheat_x:
+			return ONrCheater(cheat_thedayismine);
+		default:
+			return ONrCheater(cheat);
+	}
+}
+
+void ONICALL DDrCheater_LevelLoad()
+{
+	inc_fallingframes = true;
+}
+
+// Biggest hack in the entire thing ^_^
+void __stdcall FallingFrames(void* Ebp)
+{
+	if (inc_fallingframes)
+		++*((unsigned int*)((char*)Ebp + 0xf6));
+}
+ 
Index: /Daodan/MSVC/Daodan_Cheater.h
===================================================================
--- /Daodan/MSVC/Daodan_Cheater.h	(revision 567)
+++ /Daodan/MSVC/Daodan_Cheater.h	(revision 567)
@@ -0,0 +1,53 @@
+#pragma once
+#ifndef DAODAN_CHEATER_H
+#define DAODAN_CHEATER_H
+
+//#include <stdint.h>
+
+typedef struct {
+    const char* name;
+    const char* message_on;
+    const char* message_off;
+    int func;
+} oniCheatCode;
+
+enum { 	cheat_shapeshifter,
+		cheat_liveforever,
+		cheat_touchofdeath,
+		cheat_canttouchthis,
+		cheat_fatloot,
+		cheat_glassworld,
+		cheat_winlevel,
+		cheat_loselevel,
+		cheat_bighead,
+		cheat_minime,
+		cheat_superammo,
+		cheat_thedayismine,
+		cheat_reservoirdogs,
+		cheat_roughjustice,
+		cheat_chenille,
+		cheat_behemoth,
+		cheat_elderrune,
+		cheat_moonshadow,
+		cheat_munitionfrenzy,
+		cheat_fistsoflegend,
+		cheat_killmequick,
+		cheat_carousel,
+		cheat_bigbadboss,
+		cheat_bulletproof,
+		cheat_kangaroo,
+		cheat_marypoppins,
+		cheat_buddha,
+		cheat_shinobi,
+		cheat_x,
+		cheat_testcheat,
+		cheat_tellmetheversion,
+};
+
+extern oniCheatCode DDr_CheatTable[];
+
+uint8_t ONICALL DDrCheater(uint32_t cheat);
+void __stdcall FallingFrames(void* Ebp);
+void ONICALL DDrCheater_LevelLoad();
+
+#endif
Index: /Daodan/MSVC/Daodan_Console.c
===================================================================
--- /Daodan/MSVC/Daodan_Console.c	(revision 567)
+++ /Daodan/MSVC/Daodan_Console.c	(revision 567)
@@ -0,0 +1,54 @@
+#include <stdlib.h>
+#include <stdarg.h>
+//#include <stdint.h>
+
+#include "Daodan_Console.h"
+#include "BFW_Utility.h"
+#include "Oni_Symbols.h"
+
+void DDrConsole_Print(const char* text)
+{
+	COrTextArea_Print(COgConsoleLines, 1, COgDefaultTextShade, COgDefaultTextShadow, text, 0, COgFadeTimeValue);
+}
+
+void DDrConsole_PrintColored(const char* text, int priority, RGBA color, RGBA shade)
+{
+	int* intcolor = (int*)&color;
+	int* intshade = (int*)&shade;
+	COrTextArea_Print(COgConsoleLines, 1, *intcolor, *intshade, text, 0, COgFadeTimeValue);
+}
+
+void DDrConsole_PrintF(const char* fmt, ...)
+{
+	char* buffer;
+	va_list ap;
+	va_start(ap, fmt);
+	buffer = malloc(vsnprintf(NULL, 0, fmt, ap) + 1);
+	
+	vsprintf(buffer, fmt, ap);
+	va_end(ap);
+
+	DDrConsole_Print(buffer);
+	free(buffer);
+	return;
+}
+
+TStColorFormattingCharacter DDrDSayColors[] = {
+	{'r', 0, 0xFFEB5050},	//red
+	{'y', 0, 0xFFFCFF1C},	//yellow
+	{'b', 0, 0xFF93BBE9},	//blue
+	{'u', 0, 0xFFF67603},	//umber
+	{'g', 0, 0xFFA2DAA5},	//green
+	{'l', 0, 0xFFBE90D9},	//lilac
+	{'o', 0, 0xFFFBA500},	//orange
+	{'c', 0, 0xFF93EAEB},	//cyan
+								//New Colors Here...
+	{'k', 0, 0xFF000000},	//black
+	{'v', 0, 0xFFEB40EB},	//violet
+	{'w', 0, 0xFFFFFFFF},	//white...
+	{'e', 0, 0xFF505050},	//darkgrey
+	{'f', 0, 0xFFAAAAAA},	//grey
+	{0}							//POWER RANGERS GO!
+};
+
+		
Index: /Daodan/MSVC/Daodan_Console.h
===================================================================
--- /Daodan/MSVC/Daodan_Console.h	(revision 567)
+++ /Daodan/MSVC/Daodan_Console.h	(revision 567)
@@ -0,0 +1,36 @@
+#pragma once
+#ifndef DAODAN_CONSOLE_H
+#define DAODAN_CONSOLE_H
+
+//#include <stdint.h>
+
+#include "Daodan.h"
+
+typedef struct {
+char B;
+char G;
+char R;
+char A;
+} RGBA;
+
+
+typedef struct {
+char A;
+char R;
+char G;
+char B;
+} ARGB;
+
+typedef struct {
+	char Char;
+	short ignored;
+	int Color; //ARGB Color;
+} TStColorFormattingCharacter;
+
+extern TStColorFormattingCharacter* TStColorFormattingCharacters;
+extern TStColorFormattingCharacter DDrDSayColors[];
+void DDrConsole_Print(const char* text);
+void DDrConsole_PrintColored(const char* text, int priority, RGBA color, RGBA shade);
+void DDrConsole_PrintF(const char* fmt, ...);
+
+#endif
Index: /Daodan/MSVC/Daodan_DLLStubs.c
===================================================================
--- /Daodan/MSVC/Daodan_DLLStubs.c	(revision 567)
+++ /Daodan/MSVC/Daodan_DLLStubs.c	(revision 567)
@@ -0,0 +1,23 @@
+
+__declspec(dllexport) void __cdecl VTPauseSampling() {return;}
+__declspec(dllexport) void __cdecl VTResumeSampling() {return;}
+
+__declspec(dllexport) int __stdcall _BinkBufferClose(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkNextFrame(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkBufferLock(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkDoFrame(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkWait(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkBufferUnlock(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkCopyToBuffer(int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7) {return 0;}
+__declspec(dllexport) int __stdcall _BinkBufferSetOffset(int arg1, int arg2, int arg3) {return 0;}
+__declspec(dllexport) int __stdcall _BinkBufferOpen(int arg1, int arg2, int arg3, int arg4) {return 0;}
+__declspec(dllexport) int __stdcall _BinkClose(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkSetVolume(int arg1, int arg2) {return 0;}
+__declspec(dllexport) int __stdcall _BinkSetSoundOnOff(int arg1, int arg2) {return 0;}
+__declspec(dllexport) int __stdcall _BinkOpen(int arg1, int arg2) {return 0;}
+__declspec(dllexport) int __stdcall _BinkSetSoundSystem(int arg1, int arg2) {return 0;}
+__declspec(dllexport) int __stdcall _BinkOpenDirectSound(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkBufferBlit(int arg1, int arg2, int arg3) {return 0;}
+__declspec(dllexport) int __stdcall _BinkGetRects(int arg1, int arg2) {return 0;}
+__declspec(dllexport) int __stdcall _BinkService(int arg1) {return 0;}
+__declspec(dllexport) int __stdcall _BinkSetIOSize(int arg1) {return 0;}
Index: /Daodan/MSVC/Daodan_Patch.c
===================================================================
--- /Daodan/MSVC/Daodan_Patch.c	(revision 567)
+++ /Daodan/MSVC/Daodan_Patch.c	(revision 567)
@@ -0,0 +1,118 @@
+#include "Daodan_Patch.h"
+#include <windows.h>
+#include <stdlib.h>
+#include <string.h>
+
+bool DDrPatch_MakeJump(void* from, void* to)
+{
+	DWORD oldp;
+	
+	if (VirtualProtect(from, 5, PAGE_EXECUTE_READWRITE, &oldp))
+	{
+		*((char*)from)++ = 0xe9; // jmp rel32
+		*(int*)from = (unsigned int)to - (unsigned int)from - 4;
+		VirtualProtect(from, 5, oldp, &oldp);
+		return true;
+	}
+	else
+		return false;
+}
+
+bool DDrPatch_MakeCall(void* from, void* to)
+{
+	DWORD oldp;
+	
+	if (VirtualProtect(from, 5, PAGE_EXECUTE_READWRITE, &oldp))
+	{
+		*((char*)from)++ = 0xe8; // call rel32
+		*(int*)from = (unsigned int)to - (unsigned int)from - 4;
+		VirtualProtect(from, 5, oldp, &oldp);
+		return true;
+	}
+	else
+		return false;
+}
+
+bool DDrPatch_String(char* dest, const char* string, int length)
+{
+	DWORD oldp;
+	
+	if (VirtualProtect(dest, length, PAGE_EXECUTE_READWRITE, &oldp))
+	{
+		memcpy(dest, string, length);
+		VirtualProtect(dest, length, oldp, &oldp);
+		return true;
+	}
+	else
+		return false;
+}
+
+bool DDrPatch_Byte(char* dest, char value)
+{
+	DWORD oldp;
+	
+	if (VirtualProtect(dest, 1, PAGE_EXECUTE_READWRITE, &oldp))
+	{
+		*dest = value;
+		VirtualProtect(dest, 1, oldp, &oldp);
+		return true;
+	}
+	else
+		return false;
+}
+
+bool DDrPatch_Int32(int* dest, int value)
+{
+	DWORD oldp;
+	
+	if (VirtualProtect(dest, 4, PAGE_EXECUTE_READWRITE, &oldp))
+	{
+		*dest = value;
+		VirtualProtect(dest, 4, oldp, &oldp);
+		return true;
+	}
+	else
+		return false;
+}
+
+bool DDrPatch_Int16(char* dest, short value)
+{
+	DWORD oldp;
+	
+	if (VirtualProtect(dest, 2, PAGE_EXECUTE_READWRITE, &oldp))
+	{
+		*dest = value;
+		VirtualProtect(dest, 2, oldp, &oldp);
+		return true;
+	}
+	else
+		return false;
+}
+
+bool DDrPatch__strdup(int* dest, const char* value)
+{
+	DWORD oldp;
+	
+	if (VirtualProtect(dest, 4, PAGE_EXECUTE_READWRITE, &oldp))
+	{
+		*dest = (int)_strdup(value);
+		VirtualProtect(dest, 4, oldp, &oldp);
+		return true;
+	}
+	else
+		return false;
+}
+
+bool DDrPatch_NOOP(char* dest, unsigned int length)
+{
+	DWORD oldp;
+	
+	if (VirtualProtect(dest, length, PAGE_EXECUTE_READWRITE, &oldp))
+	{
+		memset(dest, 0x90, length);
+		VirtualProtect(dest, length, oldp, &oldp);
+		return true;
+	}
+	else
+		return false;
+}
Index: /Daodan/MSVC/Daodan_Patch.h
===================================================================
--- /Daodan/MSVC/Daodan_Patch.h	(revision 567)
+++ /Daodan/MSVC/Daodan_Patch.h	(revision 567)
@@ -0,0 +1,20 @@
+#pragma once
+#ifndef DAODAN_PATCH_H
+#define DAODAN_PATCH_H
+
+#include "bool.h"
+
+#define DDrPatch_Const(d, c) DDrPatch_String(d, c, sizeof(c))
+
+#define OniExe ((char*)0x00400000)
+
+bool DDrPatch_MakeJump(void* from, void* to);
+bool DDrPatch_MakeCall(void* from, void* to);
+bool DDrPatch_String(char* dest, const char* string, int length);
+bool DDrPatch_Byte(char* dest, char value);
+bool DDrPatch_Int32(char* dest, int value);
+bool DDrPatch_Int16(char* dest, short value);
+bool DDrPatch__strdup(int* dest, const char* value);
+bool DDrPatch_NOOP(char* dest, unsigned int length);
+
+#endif
Index: /Daodan/MSVC/Daodan_Persistence.c
===================================================================
--- /Daodan/MSVC/Daodan_Persistence.c	(revision 567)
+++ /Daodan/MSVC/Daodan_Persistence.c	(revision 567)
@@ -0,0 +1,7 @@
+#include "Daodan.h"
+#include "Daodan_Persistence.h"
+
+uint8_t ONICALL DDrPersist_GetWonGame()
+{
+	return 1;
+}
Index: /Daodan/MSVC/Daodan_Persistence.h
===================================================================
--- /Daodan/MSVC/Daodan_Persistence.h	(revision 567)
+++ /Daodan/MSVC/Daodan_Persistence.h	(revision 567)
@@ -0,0 +1,11 @@
+#pragma once
+#ifndef DAODAN_PERSISTENCE_H
+#define DAODAN_PERSISTENCE_H
+
+//#include <stdint.h>
+
+#include "Daodan.h"
+
+uint8_t ONICALL DDrPersist_GetWonGame();
+
+#endif
Index: /Daodan/MSVC/Daodan_Utility.c
===================================================================
--- /Daodan/MSVC/Daodan_Utility.c	(revision 567)
+++ /Daodan/MSVC/Daodan_Utility.c	(revision 567)
@@ -0,0 +1,126 @@
+#include <windows.h>
+#include <stdlib.h>
+#include <stdarg.h>
+//#include <stdint.h>
+#include "oni_stdio.h"
+
+#include "Daodan_Utility.h"
+#include "BFW_Utility.h"
+#include "Oni.h"
+
+const double fps = 60.0;
+
+void __cdecl DDrStartupMessage(const char* fmt, ...)
+{
+
+	char* buffer;
+	va_list ap;
+	va_start(ap, fmt);
+
+	buffer = malloc(vsnprintf(NULL, 0, fmt, ap) + 1);
+	
+	vsprintf(buffer, fmt, ap);
+	va_end(ap);
+
+	if (!ONgFileStartup)
+		if (!(ONgFileStartup = oni_fopen("startup.txt", "w")))
+			return;
+
+	oni_fprintf(ONgFileStartup, "%s\n", buffer);
+	free(buffer);
+	
+	oni_fflush(ONgFileStartup);
+	return;
+}
+
+/*
+int64_t ONICALL DDrMachineTime_Sixtieths()
+{
+	static int64_t LastTime, Time;
+	int64_t Current;
+
+	Current = LastTime + GetTickCount();
+
+	if (Current > Time)
+	{
+		LastTime += 1;
+		Current += 1;
+	}
+
+	Time = Current;
+
+	return (Time * 3) / 50;
+}
+*/
+
+int64_t ONICALL DDrMachineTime_Sixtieths()
+{
+	static uint32_t startticks = 0;
+	double ticks = 0;
+	
+	if (startticks)
+		ticks = GetTickCount() - startticks;
+	else
+		startticks = GetTickCount();
+	
+	return (int64_t)(ticks / 1000.0 * fps);
+}
+
+int64_t ONICALL DDrMachineTime_High()
+{
+//	LARGE_INTEGER PerfCount;
+//	
+//	if (!QueryPerformanceCounter(&PerfCount))
+//		PerfCount.QuadPart = GetTickCount();
+//	
+//	return PerfCount.QuadPart;
+	return GetTickCount();
+}
+
+double ONICALL DDrMachineTime_High_Frequency()
+{
+//	LARGE_INTEGER Frequency;
+//
+//	if (!QueryPerformanceFrequency(&Frequency))
+		return 1000.0;
+	
+//	return Frequency.QuadPart;
+}
+	
+void ONICALL DDrWeapon2Message(int* weapon, void* output_ptr) {
+	char buffer[128] = {0};
+	char* weapon_string = (char*)(*(weapon + 1)+0x5C);
+	int16_t ammo = *(int16_t *)((int)weapon + 0x56);
+	int16_t maxammo = *(int16_t *)(*(weapon + 1)+0xC0);
+	float ratio = (float)ammo / (float)maxammo;
+	
+	char ammocolor;
+	if		(ratio >= .9)	ammocolor = 'g';
+	else if (ratio >= .5)	ammocolor = 'y';
+	else if (ratio >= .2)	ammocolor = 'o';
+	else					ammocolor = 'r';
+
+	DDrMake_Weapon_Message( weapon_string, buffer); //gets the name of the weapon and formats it...probably doesn't need to be in seperate func.
+	sprintf(SSrMessage_Find("autoprompt_weapon"), "%s |[%c.%i/%i]|", buffer, ammocolor, ammo, maxammo); //copies the new string to ONGS
+	ONiGameState_FindAutoPromptMessage("weapon", output_ptr);	//does what the code i replaced does. Basically tells the game to show the msg.
+}
+
+
+void ONICALL DDrMake_Weapon_Message(char* weapon_string, char* output_ptr) {
+	char* weapon_msg = NULL;	//The normal "You have recieved X" message.
+	char weapon_name[64] = {'\0'};	//The stripped weapon name
+	//TODO, someday: dynamically detect different keybindings.
+	char default_msg[] = "Press [c.Q] to pick up weapon.";	//default return
+	
+	//Find the recieved message string
+	weapon_msg = SSrMessage_Find(weapon_string);
+	//this probably could be reorganized
+	if(weapon_msg) {	//SSrMsgblah returns NULL if it can't find the message key
+		memcpy(weapon_name, weapon_msg, (strstr(weapon_msg," received.") - weapon_msg )); //strips uneeded characters
+		sprintf(output_ptr, "Press [c.Q] to pick up %s", weapon_name);
+	}
+	else {
+		memcpy(output_ptr, default_msg, sizeof(default_msg));
+	}
+	
+}
Index: /Daodan/MSVC/Daodan_Utility.h
===================================================================
--- /Daodan/MSVC/Daodan_Utility.h	(revision 567)
+++ /Daodan/MSVC/Daodan_Utility.h	(revision 567)
@@ -0,0 +1,14 @@
+#pragma once
+#ifndef DAODAN_UTILITY_H
+#define DAODAN_UTILITY_H
+
+//#include <stdint.h>
+#include "Daodan.h"
+
+void __cdecl DDrStartupMessage(const char* fmt, ...);
+int64_t ONICALL DDrMachineTime_High();
+double  ONICALL DDrMachineTime_High_Frequency();
+int64_t ONICALL DDrMachineTime_Sixtieths();
+void ONICALL DDrMake_Weapon_Message(char* weapon_string, char* output_ptr);
+void ONICALL DDrWeapon2Message(int* weapon, void* output_ptr);
+#endif
Index: /Daodan/MSVC/Daodan_Win32.c
===================================================================
--- /Daodan/MSVC/Daodan_Win32.c	(revision 567)
+++ /Daodan/MSVC/Daodan_Win32.c	(revision 567)
@@ -0,0 +1,50 @@
+#include <windows.h>
+
+#include "Daodan.h"
+#include "Daodan_Win32.h"
+
+#include "BFW_Utility.h"
+
+#include "Oni.h"
+
+short ONICALL DDrPlatform_Initialize(ONtPlatformData *PlatformData)
+{
+	WNDCLASSEX WndClass;
+	RECT Rect;
+	const int Width = 640, Height = 480;
+
+	PlatformData->Instance = g_Instance;
+
+	WndClass.cbSize = sizeof(WndClass);
+	WndClass.style = CS_VREDRAW | CS_HREDRAW | CS_OWNDC;
+	WndClass.cbClsExtra = 0;
+	WndClass.cbWndExtra = 0;
+	WndClass.hInstance = PlatformData->Instance;
+	WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
+	WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
+	WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
+	WndClass.hbrBackground = GetStockObject(BLACK_BRUSH);
+	WndClass.lpszMenuName = NULL;
+	WndClass.lpszClassName = "ONI ";
+	WndClass.lpfnWndProc = ONrPlatform_WindowProc;
+
+	RegisterClassEx(&WndClass);
+	
+	Rect.left = (GetSystemMetrics(SM_CXSCREEN) / 2) - (Width / 2);
+	Rect.top = (GetSystemMetrics(SM_CYSCREEN) / 2) - (Height / 2);
+	Rect.right = Rect.left + Width;
+	Rect.bottom = Rect.top + Height;
+	AdjustWindowRect(&Rect, WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_POPUP | WS_TILEDWINDOW , FALSE);
+	PlatformData->Window = CreateWindowEx(0, "ONI ", "ONI ", WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_POPUP | WS_OVERLAPPED, Rect.left, Rect.top, Rect.right - Rect.left, Rect.bottom - Rect.top, NULL, NULL, PlatformData->Instance, NULL);
+	
+	ShowWindow(PlatformData->Window, SW_SHOWNORMAL);
+	UpdateWindow(PlatformData->Window);
+
+	ShowCursor(FALSE);
+	
+	// I dont know why this is needed but Oni doesn't init without it.
+	ONgPlatformData.Window = PlatformData->Window;
+	//ONgPlatformData.Instance = PlatformData->Instance;
+	
+	return 0;
+}
Index: /Daodan/MSVC/Daodan_Win32.h
===================================================================
--- /Daodan/MSVC/Daodan_Win32.h	(revision 567)
+++ /Daodan/MSVC/Daodan_Win32.h	(revision 567)
@@ -0,0 +1,10 @@
+#pragma once
+#ifndef DAODAN_WIN32_H
+#define DAODAN_WIN32_H
+
+#include "Daodan.h"
+#include "Oni.h"
+
+short ONICALL DDrPlatform_Initialize(ONtPlatformData *PlatformData);
+
+#endif
Index: /Daodan/MSVC/Daodan_WindowHack.c
===================================================================
--- /Daodan/MSVC/Daodan_WindowHack.c	(revision 567)
+++ /Daodan/MSVC/Daodan_WindowHack.c	(revision 567)
@@ -0,0 +1,179 @@
+#include <windows.h>
+#include "Daodan_WindowHack.h"
+#include "Daodan_Patch.h"
+#include "Daodan_Character.h"
+
+#include "Oni.h"
+#include "BFW_Motoko_Draw.h"
+#include "oni_gl.h"
+
+#define CS_DROPSHADOW 0x20000
+
+volatile HWND onihwnd, boxhwnd = NULL;
+int inclient = 0;
+int dragging = 0;
+
+LRESULT CALLBACK DDrHack_WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+	switch (msg)
+	{
+		case WM_KEYDOWN:
+		case WM_ACTIVATE:
+		case WM_CHAR:
+		case WM_KEYUP:
+			ONrPlatform_WindowProc(onihwnd, msg, wParam, lParam);
+			return DefWindowProc(hwnd, msg, wParam, lParam);
+		case WM_SETCURSOR:
+			if (LOWORD(lParam) == HTCLIENT)
+			{
+				if (!inclient)
+				{
+					inclient = 1;
+					ShowCursor(FALSE);
+				}
+			}
+			else if (inclient)
+			{
+				inclient = 0;
+				ShowCursor(TRUE);
+			}
+			break;
+//		case WM_CLOSE:
+//			CHARTest();
+//			break;
+		case WM_DESTROY:
+			PostQuitMessage(0);
+			ExitProcess(0);
+			break;
+		case WM_ENTERSIZEMOVE:
+			dragging = 1;
+			break;
+		case WM_EXITSIZEMOVE:
+			dragging = 0;
+			break;
+		default:
+			return DefWindowProc(hwnd, msg, wParam, lParam);
+	}
+	return 0;
+}
+
+DWORD WINAPI DDrHack_WndMain(LPVOID param)
+{
+	MSG Msg;
+	RECT re;
+	WNDCLASSEX wc;
+	
+	wc.cbSize = sizeof(WNDCLASSEX);
+	wc.style = (opt_border ? 0 : (opt_shadow ? CS_DROPSHADOW : 0));
+	wc.lpfnWndProc = DDrHack_WndProc;
+	wc.cbClsExtra = 0;
+	wc.cbWndExtra = 0;
+	wc.hInstance = DDrDLLModule;
+	wc.hIcon = LoadIcon(DDrONiModule, MAKEINTRESOURCE(103));
+	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+	wc.hbrBackground = CreateSolidBrush(RGB(0, 0, 0));
+	wc.lpszMenuName = NULL;
+	wc.lpszClassName = "OniGanbatte";
+	wc.hIconSm = NULL;
+	RegisterClassEx(&wc);
+	
+	
+	re.left = (GetSystemMetrics(SM_CXSCREEN) / 2) - (640 / 2);
+	re.top = (GetSystemMetrics(SM_CYSCREEN) / 2) - (480 / 2);
+	re.right = re.left + 640;
+	re.bottom = re.top + 480;
+	AdjustWindowRect(&re, WS_POPUP | (opt_border ? WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU : 0), FALSE);
+	
+	boxhwnd = CreateWindowEx(0, "OniGanbatte", "Oni", WS_POPUP | (opt_border ? WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU : 0), re.left, re.top, re.right - re.left, re.bottom - re.top, NULL, NULL, DDrDLLModule, NULL);
+	
+	while (GetMessage(&Msg, NULL, 0, 0) > 0)
+	{
+		TranslateMessage(&Msg);
+		DispatchMessage(&Msg);
+	}
+	return 0;
+}
+
+HWND WINAPI ONrPI_CreateWindowExHook(DWORD dwExStyle, const char* lpClassName, const char* lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
+{
+	CloseHandle(CreateThread(NULL, 0, DDrHack_WndMain, NULL, 0, NULL));
+	
+	while (!boxhwnd)
+		Sleep(50);
+	
+	onihwnd = CreateWindowExA(dwExStyle, lpClassName, lpWindowName, WS_POPUP | WS_VISIBLE, 0, 0, 640, 480, boxhwnd, hMenu, hInstance, lpParam);
+	SetParent(onihwnd, boxhwnd);
+	return onihwnd;
+}
+
+BOOL WINAPI glpi_SetWindowPosHook(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags)
+{
+	RECT re;
+	SetWindowLong(onihwnd, GWL_STYLE, WS_CHILD | WS_VISIBLE);
+	SetCursor(LoadCursor(NULL, IDC_ARROW));
+	
+	
+	re.left = (GetSystemMetrics(SM_CXSCREEN) / 2) - (cx / 2);
+	re.top = (GetSystemMetrics(SM_CYSCREEN) / 2) - (cy / 2);
+	re.right = re.left + cx;
+	re.bottom = re.top + cy;
+	AdjustWindowRect(&re, WS_POPUP | (opt_border ? WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU : 0), FALSE);
+	
+	SetWindowPos(boxhwnd, opt_topmost ? HWND_TOPMOST : NULL, re.left, re.top, re.right - re.left, re.bottom - re.top, (opt_topmost ? uFlags & ~SWP_NOZORDER : uFlags | SWP_NOOWNERZORDER));
+	ShowWindow(boxhwnd, SW_SHOW);
+	UpdateWindow(boxhwnd);
+	return SetWindowPos(hWnd, NULL, 0, 0, cx, cy, uFlags | SWP_NOOWNERZORDER);
+}
+
+BOOL WINAPI LIiP_GetCursorPosHook(LPPOINT lpPoint)
+{
+	if (GetAsyncKeyState(VK_F4) || dragging)
+	{
+		lpPoint->x = gl_eng->DisplayMode.Width / 2;
+		lpPoint->y = gl_eng->DisplayMode.Height / 2;
+	}
+	else
+	{
+		if (!GetCursorPos(lpPoint))
+			return 0;
+		if (onihwnd != NULL)
+			ScreenToClient(onihwnd, lpPoint);
+	}
+	return 1;
+}
+
+BOOL WINAPI LIiP_SetCursorPosHook(int X, int Y)
+{
+	if (GetAsyncKeyState(VK_F4) || dragging)
+		return TRUE;
+	else
+	{
+		POINT pt;
+		pt.x = X;
+		pt.y = Y;
+		if (onihwnd != NULL)
+			ClientToScreen(onihwnd, &pt);
+		return SetCursorPos(pt.x, pt.y);
+	}
+}
+
+void DDrWindowHack_Install()
+{
+	DDrPatch_NOOP((char*)0x0050F764, 6);
+	DDrPatch_MakeCall((char*)0x0050F764, ONrPI_CreateWindowExHook);
+	
+	DDrPatch_NOOP((char*)0x00407E9F, 6);
+	DDrPatch_MakeCall((char*)0x00407E9F, glpi_SetWindowPosHook);
+	
+	DDrPatch_NOOP((char*)0x004032CC, 6);
+	DDrPatch_MakeCall((char*)0x004032CC, LIiP_GetCursorPosHook);
+	
+	DDrPatch_NOOP((char*)0x00402CC2, 6);
+	DDrPatch_MakeCall((char*)0x00402CC2, LIiP_GetCursorPosHook);
+	
+	DDrPatch_NOOP((char*)0x004032B7, 6);
+	DDrPatch_MakeCall((char*)0x004032B7, LIiP_SetCursorPosHook);
+	
+	DDrPatch_NOOP((char*)0x00403349, 6);
+	DDrPatch_MakeCall((char*)0x00403349, LIiP_SetCursorPosHook);
+}
Index: /Daodan/MSVC/Daodan_WindowHack.h
===================================================================
--- /Daodan/MSVC/Daodan_WindowHack.h	(revision 567)
+++ /Daodan/MSVC/Daodan_WindowHack.h	(revision 567)
@@ -0,0 +1,7 @@
+#pragma once
+#ifndef DAODAN_WINDOWHACK_H
+#define DAODAN_WINDOWHACK_H
+
+void DDrWindowHack_Install();
+
+#endif
Index: /Daodan/MSVC/FixedDaodan.sln
===================================================================
--- /Daodan/MSVC/FixedDaodan.sln	(revision 567)
+++ /Daodan/MSVC/FixedDaodan.sln	(revision 567)
@@ -0,0 +1,20 @@
+﻿
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FixedDaodan", "FixedDaodan.vcproj", "{6138BFC9-DCAD-4525-90BE-D84703282A4A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{6138BFC9-DCAD-4525-90BE-D84703282A4A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{6138BFC9-DCAD-4525-90BE-D84703282A4A}.Debug|Win32.Build.0 = Debug|Win32
+		{6138BFC9-DCAD-4525-90BE-D84703282A4A}.Release|Win32.ActiveCfg = Release|Win32
+		{6138BFC9-DCAD-4525-90BE-D84703282A4A}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Index: /Daodan/MSVC/FixedDaodan.vcproj
===================================================================
--- /Daodan/MSVC/FixedDaodan.vcproj	(revision 567)
+++ /Daodan/MSVC/FixedDaodan.vcproj	(revision 567)
@@ -0,0 +1,447 @@
+﻿<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="FixedDaodan"
+	ProjectGUID="{6138BFC9-DCAD-4525-90BE-D84703282A4A}"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="0"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FIXEDDAODAN_EXPORTS;"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="2"
+				StructMemberAlignment="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="4"
+				CallingConvention="1"
+				CompileAs="1"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="ws2_32.lib winmm.lib"
+				OutputFile="C:\Program Files\Oni\edition\binkw32.dll"
+				LinkIncremental="2"
+				ModuleDefinitionFile="binkw32.def"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="2"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FIXEDDAODAN_EXPORTS;"
+				MinimalRebuild="true"
+				RuntimeLibrary="2"
+				StructMemberAlignment="1"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="true"
+				DebugInformationFormat="3"
+				CallingConvention="1"
+				CompileAs="1"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="ws2_32.lib winmm.lib"
+				OutputFile="C:\Program Files\Oni\Edition\binkw32.dll"
+				LinkIncremental="2"
+				GenerateManifest="true"
+				ModuleDefinitionFile="binkw32.def"
+				GenerateDebugInformation="false"
+				SubSystem="2"
+				OptimizeReferences="1"
+				EnableCOMDATFolding="1"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath=".\BFW_LocalInput.h"
+				>
+			</File>
+			<File
+				RelativePath=".\BFW_Motoko_Draw.h"
+				>
+			</File>
+			<File
+				RelativePath=".\BFW_ScriptLang.h"
+				>
+			</File>
+			<File
+				RelativePath=".\BFW_Utility.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Bink.h"
+				>
+			</File>
+			<File
+				RelativePath=".\bool.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_BSL.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Character.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Cheater.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Console.h"
+				>
+			</File>
+			<File
+				RelativePath=".\daodan_gl.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Patch.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Persistence.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Utility.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Win32.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_WindowHack.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params11213.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params1279.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params132049.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params19937.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params216091.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params2203.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params4253.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params44497.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params521.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT-params86243.h"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline_BSL.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline_Server.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline_Win32.h"
+				>
+			</File>
+			<File
+				RelativePath=".\inifile.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Oni.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Oni_Character.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Oni_GameState.h"
+				>
+			</File>
+			<File
+				RelativePath=".\oni_gl.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Oni_Persistence.h"
+				>
+			</File>
+			<File
+				RelativePath=".\oni_stdio.h"
+				>
+			</File>
+			<File
+				RelativePath=".\Oni_Symbols.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath=".\binkw32.def"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_BSL.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Character.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Cheater.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Console.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_DLLStubs.c"
+				>
+			</File>
+			<File
+				RelativePath=".\daodan_gl.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Patch.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Persistence.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Utility.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_Win32.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Daodan_WindowHack.c"
+				>
+			</File>
+			<File
+				RelativePath=".\dSFMT\dSFMT.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline_BSL.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline_Net.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline_Server.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Flatline_Win32.c"
+				>
+			</File>
+			<File
+				RelativePath=".\inifile_reader.c"
+				>
+			</File>
+			<File
+				RelativePath=".\Oni_Symbols.c"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Index: /Daodan/MSVC/FixedDaodan.vcproj.KYLEPC.Kyle.user
===================================================================
--- /Daodan/MSVC/FixedDaodan.vcproj.KYLEPC.Kyle.user	(revision 567)
+++ /Daodan/MSVC/FixedDaodan.vcproj.KYLEPC.Kyle.user	(revision 567)
@@ -0,0 +1,65 @@
+﻿<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioUserFile
+	ProjectType="Visual C++"
+	Version="9.00"
+	ShowAllFiles="true"
+	>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			>
+			<DebugSettings
+				Command="C:\Program Files\Oni\edition\oni.exe"
+				WorkingDirectory="C:\Program Files\Oni\edition"
+				CommandArguments="-noswitch"
+				Attach="false"
+				DebuggerType="3"
+				Remote="1"
+				RemoteMachine="KYLEPC"
+				RemoteCommand=""
+				HttpUrl=""
+				PDBPath=""
+				SQLDebugging=""
+				Environment=""
+				EnvironmentMerge="true"
+				DebuggerFlavor="0"
+				MPIRunCommand=""
+				MPIRunArguments=""
+				MPIRunWorkingDirectory=""
+				ApplicationCommand=""
+				ApplicationArguments=""
+				ShimCommand=""
+				MPIAcceptMode=""
+				MPIAcceptFilter=""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			>
+			<DebugSettings
+				Command="C:\Program Files\Oni\Edition\oni.exe"
+				WorkingDirectory="C:\Program Files\Oni\Edition"
+				CommandArguments="-noswitch"
+				Attach="false"
+				DebuggerType="3"
+				Remote="1"
+				RemoteMachine="KYLEPC"
+				RemoteCommand=""
+				HttpUrl=""
+				PDBPath=""
+				SQLDebugging=""
+				Environment=""
+				EnvironmentMerge="true"
+				DebuggerFlavor="0"
+				MPIRunCommand=""
+				MPIRunArguments=""
+				MPIRunWorkingDirectory=""
+				ApplicationCommand=""
+				ApplicationArguments=""
+				ShimCommand=""
+				MPIAcceptMode=""
+				MPIAcceptFilter=""
+			/>
+		</Configuration>
+	</Configurations>
+</VisualStudioUserFile>
Index: /Daodan/MSVC/FixedDaodan.vcproj.user
===================================================================
--- /Daodan/MSVC/FixedDaodan.vcproj.user	(revision 567)
+++ /Daodan/MSVC/FixedDaodan.vcproj.user	(revision 567)
@@ -0,0 +1,1 @@
+<?xml version="1.0" encoding="utf-8"?><VisualStudioUserFile ProjectType="Visual C++" Version="9.00" ShowAllFiles="true"></VisualStudioUserFile>
Index: /Daodan/MSVC/Flatline.c
===================================================================
--- /Daodan/MSVC/Flatline.c	(revision 567)
+++ /Daodan/MSVC/Flatline.c	(revision 567)
@@ -0,0 +1,550 @@
+#include "Flatline.h"
+#include "Oni_Character.h"
+#include "Flatline_Server.h"
+//#include <sys/time.h>
+#include <time.h>
+uint32_t last1 = 0; uint32_t last2 = 0;
+player_info Players[MAX_PLAYERS] = {{0}, {0}, {0}, {0}};
+player_info * PlayerList[MAX_CONNECTIONS] = {0};
+const char * Rejection_Messages[][255] = {
+	{"Server is full"},
+	{"-2"},
+	{"-3"},
+	{"-4"},
+	{"-5"},
+};
+
+bool FLrServer_PacketCallback(char* data, int datalen, int from)
+{
+	int i, j;
+	bool found_player = 0;
+	flatline_packet * packet = (flatline_packet*)data;
+	static int recieved = 0;
+	sockaddr_in sender;
+	sender.sin_family = AF_INET;
+	sender.sin_port = htons(27777);
+	sender.sin_addr = *((struct in_addr*)(int*)&from);
+	
+
+	//packet->data[datalen] = '\0';
+	
+	//DDrConsole_PrintF("Packet \r%d recieved from %i",  ++recieved, from);
+
+	
+	
+	//if data[0] != CONNECT_SEND, search in playerlist for ip address
+	
+
+
+	
+	switch(packet->id) {
+		flatline_packet connect_recv;
+		player_info * playah;
+		//rewrite this when we get TCP support.
+		//rewrite this before we get TCP support*
+		//the way of seeing if there is room for players sucks.
+		case CONNECT_SEND:
+			;
+			
+			connect_recv.id = CONNECT_REPLY;
+		
+			//if(Players[i].ip == sender.sin_addr.S_un.S_addr) break; //needs to send an error message
+			sender.sin_addr.S_un.S_addr = htonl(sender.sin_addr.S_un.S_addr);
+			playah = FLrServer_AddPlayer(from,packet->connect_send.name, 0);
+			DDrConsole_PrintF("%s connected from %s", packet->connect_send.name, inet_ntoa(sender.sin_addr ) );
+			if(!((int)playah > -5 && (int)playah <= 0)) {
+				flatline_packet new_char = {0};
+				CharacterObject* Char;
+				connect_recv.connect_reply.goodtogo = 1;
+				connect_recv.connect_reply.player_slot = playah->list_slot;
+				DDrConsole_PrintF("Slot: %i", playah->list_slot);
+
+				//sending this several times to make sure it gets through. Really need to make up some form of packet tracking.
+				NetTCPServer_Send((sockaddr *) &sender, (char*)&connect_recv, sizeof(connect_reply) + FLATLINE_HEADER);
+				NetTCPServer_Send((sockaddr *) &sender, (char*)&connect_recv, sizeof(connect_reply) + FLATLINE_HEADER);
+				NetTCPServer_Send((sockaddr *) &sender, (char*)&connect_recv, sizeof(connect_reply) + FLATLINE_HEADER);
+				NetTCPServer_Send((sockaddr *) &sender, (char*)&connect_recv, sizeof(connect_reply) + FLATLINE_HEADER);
+				NetTCPServer_Send((sockaddr *) &sender, (char*)&connect_recv, sizeof(connect_reply) + FLATLINE_HEADER);
+				Sleep(100);
+
+				new_char.id = NEW_PLAYER;
+				Char = &new_char.new_player.Character;
+				memset(Char, 0, sizeof(CharacterObject));
+				Char->Header.Type = 'CHAR';
+				Char->OSD.Options = chr_dontaim | chr_unkillable;
+				for(j = 0; j < max_connections; j++) {
+					if(PlayerList[j] != 0) {
+						new_char.new_player.Playernumber = j;
+						sprintf(Char->OSD.Name,"%s",PlayerList[j]->name);
+
+						sprintf(Char->OSD.Class, "%s", TMrInstance_GetInstanceName(PlayerList[j]->Chr->ONCC));
+						DDrConsole_PrintF("Class %s", Char->OSD.Class );
+
+						sprintf(Char->OSD.Class, "konoko_generic");
+						NetTCPServer_Send((sockaddr *) &sender, (char*)&new_char, sizeof(new_player) + FLATLINE_HEADER );
+					}
+
+				}
+			}
+			else {
+				//fix the error messages...
+				DDrConsole_PrintF("Server is full. :(");
+				connect_recv.connect_reply.goodtogo = 0;
+				sender.sin_addr.S_un.S_addr = htonl(sender.sin_addr.S_un.S_addr);
+				memcpy(&connect_recv.connect_reply.message,"Server is full.", sizeof("Server is full."));
+				NetTCPServer_Send((sockaddr *) &sender, (char*)&connect_recv, sizeof(bool)*2 + FLATLINE_HEADER + sizeof("Server is full."));	
+
+			} 
+
+
+			break;
+		case CONNECT_REPLY:
+			break;	//do nothing...a server shouldn't recieve this type of packet.
+		case MESSAGE:
+			for(i = 0; i < MAX_PLAYERS; i++) {
+				//DDrConsole_PrintF("%i : %i | %s : %s", from, Players[i].ip, inet_ntoa(*(struct in_addr*)&from), inet_ntoa(*(struct in_addr*)&(Players[i].ip)));
+				if(Players[i].ip == sender.sin_addr.S_un.S_addr) {
+					found_player = 1;
+					break;
+				}	
+			}
+			if(found_player == 0) return true;
+			else {
+				char message_buffer[512] = {0};
+				flatline_packet message;
+				int message_size;
+				data[datalen] = 0;
+
+				DDrConsole_PrintF("%s: %s", Players[i].name, packet->data);
+				sprintf(message_buffer, "%s: %s", Players[i].name, packet->data);
+				
+				message.id = MESSAGE;
+				message_size = sprintf(message.data, "%s", message_buffer);
+				COrMessage_Print(message_buffer, "chat", 0);
+				UDPServer_SendToAll(&message, message_size + 1 + FLATLINE_HEADER);
+				break;
+			}
+		case CHANGE_NAME:
+			; //wtf, needed or i get an error.
+			DDrConsole_PrintF("Changing Name to: %s", packet->data);
+			for(i = 0; i < MAX_PLAYERS; i++) {
+				if(Players[i].ip == sender.sin_addr.S_un.S_addr) {
+					found_player = 1;
+					break;
+				}	
+			}
+			if(found_player == 0) return true;
+			else {
+				bool name_exists = 0;
+				for(j = 0; j < MAX_PLAYERS; j++) {
+					if(!strcmp(packet->data, Players[j].name)) {
+						name_exists = 1;
+						break;
+					}
+				}
+				if(!name_exists) {
+					char message_buffer[1024];
+					sprintf(message_buffer,"%s changed their name to %s", Players[i].name, packet->data);
+					COrMessage_Print(message_buffer, "name_change", 0);
+					memcpy(Players[i].name, packet->data, 256);
+
+				}
+				break;
+			}
+		case PLAYER_INPUT:
+			
+			for(i = 0; i < max_connections; i++) {
+				if(PlayerList[i] != 0 && PlayerList[i]->ip == sender.sin_addr.S_un.S_addr) {
+					found_player = 1;
+					break;
+				}	
+			}
+			
+			if(found_player == 0) return true;
+			else {
+				input_struct * packet_input = &packet->input_struct;
+
+
+				PlayerList[i]->Actions1 = packet_input->Actions1;
+				PlayerList[i]->Actions2 = packet_input->Actions2;
+				PlayerList[i]->MouseDeltaX = packet_input->MouseDeltaX;
+				PlayerList[i]->MouseDeltaY = packet_input->MouseDeltaY;
+
+
+				break;
+			}
+		default:
+			DDrConsole_PrintF("Warning, recieved badly formed packet!");
+			break;
+	}
+	return true;
+}
+
+bool FLrServer_Run()
+{
+	// Get the local hostname
+	char szHostName[255];
+		struct hostent *host_entry;
+	gethostname(szHostName, 255);
+
+	host_entry=gethostbyname(szHostName);
+	DDrConsole_PrintF("Server started at %s...", inet_ntoa (*(struct in_addr *)*host_entry->h_addr_list));
+	return NetUDPServer_Listen(27777, FLrServer_PacketCallback);
+}
+
+	RGBA green = {0, 0xFF, 0, 0};
+	RGBA red = {0, 0, 0xFF, 0};
+	RGBA grey = {0x80,0x80,0x80,0x80};
+	
+//FLrClient_Run
+//Looping function that waits for packets from the server.
+//TODO: Convert connection packet stuff to TCP
+int client_slot = 0;
+bool FLrClient_Run(flatline_packet* packet)
+{
+
+	char data[1400];
+	uint16_t len;
+	int j;
+	int sent_bytes;
+	client_connected = 0;
+	
+
+	//starts the connection
+	DDrConsole_PrintF("Connecting to server %s on socket %i",  inet_ntoa(address.sin_addr), client_sock);
+	sent_bytes = NetUDPSocket_Send(client_sock, (sockaddr*)&address, (char*)packet, 255);
+	if(sent_bytes == SOCKET_ERROR) {
+		NetCatchError();
+	}
+	//loops once per second waiting for a reply.
+	for(j = 0; j < CONNECTION_TIMEOUT; j++) {
+		while(NetUDPSocket_Recieve(client_sock, (sockaddr_storage *) &client_address, data, &len)){		
+			packet = (flatline_packet*)data;
+			if(packet->id == CONNECT_REPLY) {
+				if(packet->connect_reply.goodtogo){
+					client_connected = 1;
+
+					client_slot = ((connect_reply*)packet->data)->player_slot;
+					
+			PlayerList[client_slot] = Players+client_slot;
+			PlayerList[client_slot]->Chr = ONgGameState->PlayerCharacter;
+			
+			
+
+					DDrConsole_PrintColored("Connection successful!",0,green, grey);
+					//DDrConsole_PrintF("Slot %i",  ((connect_reply*)packet)->player_slot);
+					break;
+				}
+				else {
+					DDrConsole_PrintF("Connection rejected: %s", ((connect_reply*)packet->data)->message);
+					return false;
+					break;
+				}
+			}
+		}
+		if(client_connected) break;
+		DDrConsole_PrintF("Connection timing out in %i seconds...", CONNECTION_TIMEOUT - j);
+		Sleep(1000);
+	}
+	//the client timed out without recieving an error message.
+	if(!client_connected) {
+		DDrConsole_PrintColored("Connection timed out.",0,red, grey);
+		return false;
+	}
+	else
+	{
+		ActiveCharacter * Active;
+		flatline_packet packet;
+//#define SPAM_INPUT
+#ifdef SPAM_INPUT
+		struct timeval lasttime;
+		struct timeval thistime;
+		gettimeofday(&lasttime, 0);
+#endif
+		while(1) {
+#ifdef SPAM_INPUT
+			gettimeofday(&thistime, 0);
+			
+			//DDrConsole_PrintF("%i.%i | %i.%i | %i.%i",lasttime.tv_sec, lasttime.tv_usec, thistime.tv_sec, thistime.tv_usec,
+			//	thistime.tv_sec - lasttime.tv_sec, thistime.tv_usec - lasttime.tv_usec);
+			//checks to see if enough time has passed since the last input update (by default once every 10ms)
+			if( 
+				((thistime.tv_sec > lasttime.tv_sec) && ((thistime.tv_usec + 1000000 - lasttime.tv_usec ) > update_rate * 1000) )
+				|| ((thistime.tv_sec == lasttime.tv_sec) && ((thistime.tv_usec - lasttime.tv_usec ) > update_rate * 1000))
+			) {
+				
+				flatline_packet input_packet;
+				lasttime.tv_usec = ++thistime.tv_usec; //in case recieving packets takes less than 1 ms.
+
+				input_packet.id = PLAYER_INPUT;
+				
+				if( ((GameState*)(ONgGameState))->Input.Current.Actions1 != last1 || ((GameState*)(ONgGameState))->Input.Current.Actions2 != last2) {
+					last1 =((GameState*)(ONgGameState))->Input.Current.Actions1;
+					last2 =((GameState*)(ONgGameState))->Input.Current.Actions2;
+				}
+
+				((input_struct*)(void*)(input_packet.data))->Actions1 = ((GameState*)(ONgGameState))->Input.Current.Actions1;
+				((input_struct*)(void*)(input_packet.data))->Actions2 = ((GameState*)(ONgGameState))->Input.Current.Actions2;
+				((input_struct*)(void*)(input_packet.data))->MouseDeltaX = ((GameState*)(ONgGameState))->Input.MouseDeltaX;
+				((input_struct*)(void*)(input_packet.data))->MouseDeltaY = ((GameState*)(ONgGameState))->Input.MouseDeltaY;
+				sent_bytes = NetUDPSocket_Send(client_sock,(sockaddr *) &address, (char*)&input_packet, sizeof(input_struct) + FLATLINE_HEADER);			
+				//if(sent_bytes == SOCKET_ERROR)	NetCatchError();
+			}
+#endif
+			if(NetUDPSocket_Recieve(client_sock, (sockaddr_storage *) &client_address, &packet, &len)) {
+				//packet = (flatline_packet*)data;
+				//DDrConsole_PrintF("Data recieved, length %i, type %i", len, ((flatline_packet*)data)->id);
+				switch(packet.id) {
+		case MESSAGE:
+			COrMessage_Print(packet.data, "chat", 0);
+			break;
+		case CONNECT_SEND:
+			;if(1) {
+				flatline_packet connect_recv;
+				memcpy(&connect_recv.connect_reply.message,"This isn't a server!", sizeof("This isn't a server!"));
+				NetUDPSocket_Send(client_sock, (sockaddr *) &address, (char*)&connect_recv, sizeof(bool) + FLATLINE_HEADER + sizeof("This isn't a server!"));			
+			}
+		case CONNECT_REPLY:
+			break; //extra packet or something.
+		case NEW_PLAYER:
+			;if(1) { //haxhaxhax
+			CharacterObject* Char = &(packet.new_player.Character);
+			uint32_t chr_index = 0;
+			Character* PC;
+			DDrConsole_PrintF("%i |  %i", packet.new_player.Playernumber ,client_slot);
+			//Char->OSD.Options = 0;
+			if(packet.new_player.Playernumber == client_slot) {
+				PlayerList[packet.new_player.Playernumber] = &Players[0];
+				PC = (ONgGameState->PlayerCharacter);
+				Players[0].Chr = PC;
+
+			}
+			else {
+				ONrGameState_NewCharacter(Char, NULL, NULL, &chr_index);
+				PlayerList[packet.new_player.Playernumber] = &Players[chr_index];
+				Players[chr_index].Chr = &(ONgGameState->CharacterStorage[chr_index]);
+				Players[chr_index].Chr->Flags &= 0xFFBFFFFF;
+				DDrConsole_PrintF("Spawning player %s, class %s, slot  %i", ((new_player*)(packet.data))->Character.OSD.Name, ((new_player*)(packet.data))->Character.OSD.Class,chr_index) ;
+			}
+			//Players[((new_player*)(packet.data))->Playernumber].spawnnumber = ONrGameState_NewCharacter(&(((new_player*)(packet.data))->Character), NULL, NULL, 0);
+			break;
+				}
+		case PLAYER_DATA:
+			if(1) { //haxhaxhax
+			player_data* data = &packet.player_data;
+			uint16_t i = data->PlayerNum;
+			GameInput * Active_Input;
+			data = (void*)packet.data;
+			
+			//DDrConsole_PrintF("Got data for Player %i, %x", i, PlayerList[i]);
+			if (i > max_connections) break;
+			if( !PlayerList[i] ) break;
+			//PlayerList[i]->Chr = ((GameState *)ONgGameState)->CharacterStorage;
+			
+			PlayerList[i]->Chr->Health = data->Health;
+			PlayerList[i]->Chr->MaxHealth = data->MaxHealth;
+			PlayerList[i]->Chr->Position = data->Position;
+			PlayerList[i]->Chr->Location = data->Location;
+			PlayerList[i]->Chr->LastPosition = data->LastPosition;
+			PlayerList[i]->Chr->Facing = data->Facing;
+			PlayerList[i]->Chr->DesiredFacing = data->DesiredFacing;
+			PlayerList[i]->Chr->CosmeticFacing = data->CosmeticFacing;
+			PlayerList[i]->Actions1 = data->Inputs.Actions1;
+			PlayerList[i]->Actions2 = data->Inputs.Actions2;
+			PlayerList[i]->MouseDeltaX = data->Inputs.MouseDeltaX;
+			PlayerList[i]->MouseDeltaY = data->Inputs.MouseDeltaY;
+			
+			Active = ((ActiveCharacter*)(ONrGetActiveCharacter(PlayerList[i]->Chr)));
+			if(!Active) break;
+
+			Active->PhyContext->Position = data->Position;
+
+#if 0		
+			TMrInstance_GetDataPtr('TRAM',data->Animation,Active->Animation); 
+			Active->AnimationFromState	= data->AnimationFromState; 
+			Active->AnimationToState	= data->AnimationToState;
+			Active->AnimationType = data->AnimationType;
+			Active->NextAnimationType = data->NextAnimationType;
+			Active->Frame = data->Frame;
+			Active->InterpolationCurrentFrame = data->InterpolationCurrentFrame;
+			Active->InterpolationFromState = data->InterpolationFromState;
+			Active->InterpolationLength = data->InterpolationLength;
+			memcpy(Active->InterpolationStartRotations, data->InterpolationStartRotations, 
+				sizeof(Quaternion) * 19);
+			memcpy(Active->BoneMatrices, data->BoneMatrices,
+				sizeof(Quaternion) * 19);
+			Active->Stitch = data->Stitch;
+			Active->StitchHeight = data->StitchHeight;
+			Active->StitchVelocity = data->StitchVelocity;
+
+			Active->Overlay = data->Overlay;	
+			memcpy(Active->OverlayRotations, data->OverlayRotations, 
+				sizeof(Quaternion) * 19);
+#endif
+			//Active->animationtype2 = data->AnimationType2;
+			/*
+			if((int)*((char*)(Active + 0x1AF8) + 0x166) > data->Frame + 1)
+				*(uint16_t *)((char*)Active + 0x1C88) = data->Frame + 1;
+*/
+			break;
+			}
+		default:
+			DDrConsole_PrintF("Warning, recieved badly formed packet!");
+			break;
+				}
+			}
+			else {
+				Sleep(1);
+			}
+		}
+	}
+	return true;
+}
+
+//UDPServer_SendToAll
+//Sends a packet to all the clients currently connected.
+//Returns the number of players sent to.
+int UDPServer_SendToAll(void* packet, int size) {
+	int j;
+	int players = 0;
+	sockaddr_in address;
+	memset(&address, 0, sizeof(sockaddr_in)); 
+	address.sin_family = AF_INET;
+	address.sin_addr.s_addr = htonl(INADDR_ANY);
+	address.sin_port = htons(27777);
+	for(j = 0; j < max_connections; j++) {
+		if (PlayerList[j] != 0 && PlayerList[j]->ip && (PlayerList[j]->ip != inet_addr("127.0.0.1"))) {
+			int sent_bytes;
+			address.sin_addr.s_addr = htonl(PlayerList[j]->ip);//*((struct in_addr*)(int*)&(Players[j].ip));		
+			sent_bytes = NetUDPServer_Send((sockaddr *) &address, (char*)packet, size);
+			if(sent_bytes == SOCKET_ERROR) NetCatchError();
+			else players++;
+		}
+	}
+	return players;
+}
+
+player_info *FLr_FindEmptySlot() {
+	int j;
+	for(j = 0; j < MAX_PLAYERS; j++) {
+		if (Players[j].ip == 0) {
+			return &Players[j];
+		}
+	}
+	return 0;
+}
+
+extern uint16_t max_connections;
+uint16_t FLr_FindEmptyListSlot() {
+	int j;
+	for(j = 0; j < max_connections; j++) {
+		if (PlayerList[j] == 0) {
+			return j;
+		}
+	}
+	return -1;
+}
+
+static flatline_packet cache_input = {0};
+extern void* TSrTest;
+void * ONICALL FLrInput_Update_Keys(void) 
+{
+		uint16_t i;
+#ifndef SPAM_INPUT
+	if(client_connected) 
+	{
+		int sent_bytes;
+		flatline_packet input_packet = {0};
+		input_packet.id = PLAYER_INPUT;
+		
+		input_packet.input_struct.Actions1 = ((GameState*)(ONgGameState))->Input.Current.Actions1;
+		input_packet.input_struct.Actions2 = ((GameState*)(ONgGameState))->Input.Current.Actions2;
+		input_packet.input_struct.MouseDeltaX = ((GameState*)(ONgGameState))->Input.MouseDeltaX;
+		input_packet.input_struct.MouseDeltaY = ((GameState*)(ONgGameState))->Input.MouseDeltaY;
+		
+		sent_bytes = NetUDPSocket_Send(client_sock,(sockaddr *) &address, (char*)&input_packet, sizeof(input_struct) + FLATLINE_HEADER);
+		
+		//return ONgGameState;
+	}
+#endif
+	//Testing drawing text to the screen...this failed. Will need to get it working eventually.
+	if( TSrTest ) 
+	{
+	OniRectangle TextRect = { 20, 20, 50, 50 };
+		TSrContext_DrawText(TSrTest, "Testing woohoo", 0xFF, 0, &TextRect);
+	}
+	if(!(server_started || client_connected)) return ONgGameState;
+
+	for(i = 0; i < max_connections; i++) {
+		ActiveCharacter * Active_Player;
+		GameInput * Active_Input;
+		if(PlayerList[i] == 0) continue;
+		
+		Active_Player = (void*)ONrGetActiveCharacter(PlayerList[i]->Chr);
+	
+		if(Active_Player == 0) continue;
+		Active_Input = &(Active_Player->Input);
+		if(server_started) {
+			player_data * data;
+			flatline_packet data_out = {0};
+			data_out.id = PLAYER_DATA;
+			data = (void*)&(data_out.data);
+			data->PlayerNum = i;
+			data->Health = PlayerList[i]->Chr->Health;
+			data->MaxHealth = PlayerList[i]->Chr->MaxHealth;
+			data->Position = PlayerList[i]->Chr->Position;
+			data->Location = PlayerList[i]->Chr->Location;
+			data->LastPosition = PlayerList[i]->Chr->LastPosition;
+			data->Facing = PlayerList[i]->Chr->Facing;
+			data->DesiredFacing = PlayerList[i]->Chr->DesiredFacing;
+			data->CosmeticFacing = PlayerList[i]->Chr->CosmeticFacing;
+			
+#if 0
+			data->Frame = Active_Player->Frame;	
+			memcpy(data->Animation, TMrInstance_GetInstanceName(Active_Player->Animation), 32);
+			data->AnimationToState = Active_Player->AnimationToState;
+			data->AnimationFromState = Active_Player->AnimationFromState;
+			data->AnimationType = Active_Player->AnimationType;
+			data->NextAnimationType = Active_Player->NextAnimationType;
+			data->InterpolationCurrentFrame = Active_Player->InterpolationCurrentFrame;
+			data->InterpolationFromState = Active_Player->InterpolationFromState;
+			data->InterpolationLength = Active_Player->InterpolationLength;
+			memcpy(data->InterpolationStartRotations, Active_Player->InterpolationStartRotations, 
+				sizeof(Quaternion) * 19);
+			//			data->InterpolationStartRotations = Active_Player->InterpolationStartRotations;
+			memcpy(data->BoneMatrices, Active_Player->BoneMatrices,
+				sizeof(Quaternion) * 19);
+			data->Stitch = Active_Player->Stitch;
+			data->StitchHeight = Active_Player->StitchHeight;
+			data->StitchVelocity = Active_Player->StitchVelocity;
+			
+			data->Overlay = Active_Player->Overlay;
+			memcpy( data->OverlayRotations, Active_Player->OverlayRotations
+				,sizeof(Quaternion) * 19);
+#endif
+			if(i == 0) {
+				data->Inputs.Actions1 = ((GameState*)(ONgGameState))->Input.Current.Actions1;
+				data->Inputs.Actions2 = ((GameState*)(ONgGameState))->Input.Current.Actions2;
+			}
+			else{
+				data->Inputs.Actions1 = PlayerList[i]->Actions1;
+				data->Inputs.Actions2 = PlayerList[i]->Actions2;
+			}
+			UDPServer_SendToAll(&data_out, sizeof(player_data) + FLATLINE_HEADER);
+		}
+		
+		if( (server_started && i !=0) || (!server_started && i != client_slot)) {
+			Active_Input->Stop.Actions1 = ~PlayerList[i]->Actions1 & Active_Input->Current.Actions1;
+			Active_Input->Stop.Actions2 = ~PlayerList[i]->Actions2 & Active_Input->Current.Actions2;
+			Active_Input->Start.Actions1 = ~Active_Input->Current.Actions1 & PlayerList[i]->Actions1;
+			Active_Input->Start.Actions2 = ~Active_Input->Current.Actions2 & PlayerList[i]->Actions2;
+			Active_Input->Current.Actions1 = PlayerList[i]->Actions1;
+			Active_Input->Current.Actions2 = PlayerList[i]->Actions2;
+			Active_Input->Stopped.Actions1 = ~Active_Input->Current.Actions1;
+			Active_Input->Stopped.Actions2 = ~Active_Input->Current.Actions2;
+			Active_Input->MouseDeltaX = PlayerList[i]->MouseDeltaX;
+			Active_Input->MouseDeltaY = PlayerList[i]->MouseDeltaY;
+		}
+	}
+	return ONgGameState;
+}
Index: /Daodan/MSVC/Flatline.h
===================================================================
--- /Daodan/MSVC/Flatline.h	(revision 567)
+++ /Daodan/MSVC/Flatline.h	(revision 567)
@@ -0,0 +1,218 @@
+#pragma once
+#ifndef FLATLINE_H
+#define FLATLINE_H
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+//#define DDrStartupMessage printf
+
+#include <string.h>
+#include "bool.h"
+////#include <stdint.h>
+
+#define thread __thread
+
+#ifdef WIN32
+#include <winsock2.h>
+#include "Flatline_Win32.h"
+#else
+#include <sys/ioctl.h> 
+#include <sys/types.h>
+#include <sys/socket.h> 
+#include <unistd.h> 
+#include <stropts.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+
+#define NetPlatform_Initalize() /* */
+#define NetPlatform_Shutdown() /* */
+#define closesocket close
+#define ioctlsocket ioctl
+#endif
+
+#include "Daodan.h"
+#include "BFW_Utility.h"
+#include "Daodan_Console.h"
+#include "Oni_Character.h"
+
+
+#define pad1_size (sizeof(int64_t) - sizeof(short))
+#define pad2_size (128 - (sizeof(short) + pad1_size + sizeof(int64_t)))
+
+#define breakpoint asm("int3")
+
+typedef struct {
+	short ss_family;
+	char pad1[pad1_size];
+	uint64_t pad64;
+	char pad2[pad2_size];
+} sockaddr_storage;
+
+typedef struct sockaddr sockaddr;
+typedef struct sockaddr_in sockaddr_in;
+typedef sockaddr_storage sockaddr_in6;
+
+bool NetUDPServer_Listen(uint16_t port, bool (*packet_callback)(char* data, int datalen, int from));
+bool NetUDPServer_Send(sockaddr* address, char* data, int datalen);
+
+int NetUDPSocket_Create(uint16_t port);
+int NetUDPSocket_Send(int socket, const sockaddr* address, const char* data, int datalen);
+void NetUDPSocket_Close(int sock);
+bool NetUDPSocket_Recieve(int socket, sockaddr_storage* address, char* data, uint16_t* datalen);
+
+DWORD WINAPI StartServer(void* lol);
+DWORD WINAPI StartClient(void* lol);
+
+//oh snap, I just realized this is rossy's version of flatline_packet. :|
+typedef struct {
+	char signature[8];
+	uint16_t protocol_version;
+	char data[0];				//data[0] doesn't work well with simple casts, btw. If you allocate enough space for a handshake_packet
+} handshake_packet;				//there won't be enough room for data. You would have to manually manage the memory (ew)
+
+//initial connection
+typedef struct {
+	char country[2];
+	char name[256];
+} connect_send; //signature="CONNECT\0"
+
+//reply to connection.
+//goodtogo is if it is going to let you in
+//message is optional, only used for denial message
+typedef struct {
+	bool goodtogo;
+	int player_slot;
+	char message[256];
+} connect_reply;
+
+//um, status of the server? :/
+typedef struct {
+	char name[256];
+	uint32_t numplayers; //signature="STATUS\0\0"
+} server_status;
+
+typedef struct {
+	uint16_t	 Playernumber;
+	CharacterObject Character;
+} new_player;
+
+extern int update_rate;
+
+typedef struct {
+	float MouseDeltaX;
+	float MouseDeltaY;
+	uint32_t Actions1;
+	uint32_t Actions2;
+} input_struct;
+
+//TODO:
+//Varient
+//Figure out + fix overlays
+//AC->HeadFacing
+//AC->HeadPitch
+typedef struct {
+	uint16_t PlayerNum;
+	Vector3 Position;
+	Vector3 LastPosition;
+	Vector3 Location;
+	float Facing;
+	float DesiredFacing;
+	float CosmeticFacing;
+	uint32_t Health;
+	uint32_t MaxHealth;
+	input_struct Inputs;
+#if 0
+	uint16_t Frame;
+	char Animation[32];
+	uint16_t AnimationToState;
+	uint16_t AnimationFromState;
+	uint16_t AnimationType;
+	uint16_t NextAnimationType;
+	uint16_t AnimationType2;
+	__int16 InterpolationCurrentFrame;
+	__int16 InterpolationFromState;
+	__int16	InterpolationLength;
+	Quaternion InterpolationStartRotations[19];
+	Vector3 StitchVelocity;
+	int		StitchHeight;
+	char	Stitch;
+	Quaternion BoneMatrices[19];
+	int Overlay;
+	Quaternion OverlayRotations[19];
+#endif
+} player_data;
+
+//used for storing data about each player
+typedef struct {
+	int	FLATLINE;
+	char	id;
+	int		packet_index;
+	union	payload
+	{
+		char			data[1080];
+		connect_reply	connect_reply;
+		connect_send	connect_send;
+		input_struct	input_struct;
+		new_player		new_player;
+		server_status	server_status;
+		player_data		player_data;
+	};
+} flatline_packet;
+#define FLATLINE_HEADER sizeof(flatline_packet)-sizeof(char)*1080
+//#define FLATLINE_PACKET_SIZE sizeof(flatline_packet) 
+
+
+bool FLrServer_PacketCallback(char* data, int datalen, int from);
+bool FLrServer_Run();
+bool FLrClient_Run(flatline_packet* packet);
+extern int sock;
+
+enum {
+	CONNECT_SEND,
+	CONNECT_REPLY,
+	STATUS,
+	MESSAGE,
+	CHANGE_NAME,
+	ECHO,
+	NEW_PLAYER,
+	PLAYER_INPUT,
+	PLAYER_DATA,
+};
+
+
+typedef struct {
+	int	 ip;
+	char name[32];
+	char country[2];
+	Character* Chr;
+	uint16_t spawnnumber;
+	uint16_t list_slot;
+	uint32_t Actions1;
+	uint32_t Actions2;
+	float MouseDeltaX;
+	float MouseDeltaY;
+} player_info;
+
+player_info * FLr_FindEmptySlot();
+uint16_t FLr_FindEmptyListSlot();
+void * ONICALL FLrInput_Update_Keys(void);
+
+void NetCatchError();
+#define MAX_PLAYERS 128
+#define CONNECTION_TIMEOUT 15
+#define MAX_CONNECTIONS 32
+#define NetTCPSocket_Send NetUDPSocket_Send
+#define NetTCPServer_Send NetUDPServer_Send
+extern int client_sock;
+//these two could probably be combined
+extern sockaddr_in client_address;
+extern sockaddr_in address;
+extern player_info Players[];
+extern player_info * PlayerList[];
+int UDPServer_SendToAll(void* packet, int size);
+extern bool client_connected;
+extern bool server_started;
+extern char player_name[];
+
+#endif
Index: /Daodan/MSVC/Flatline_BSL.c
===================================================================
--- /Daodan/MSVC/Flatline_BSL.c	(revision 567)
+++ /Daodan/MSVC/Flatline_BSL.c	(revision 567)
@@ -0,0 +1,129 @@
+#include <winsock2.h>
+#include "BFW_ScriptLang.h"
+
+#include "Daodan_Patch.h"
+#include "Daodan_BSL.h"
+#include "Flatline_BSL.h"
+#include "Flatline.h"
+#include "Flatline_Server.h"
+bool server_started = 0;
+bool client_connected = 0;
+int sock = 0;
+sockaddr_in address;
+char player_name[32] = "Striker";
+char player_country[256] = {0};
+int update_rate = 5;
+#include "Oni.h"
+#include "Daodan_Cheater.h"
+uint16_t ONICALL start_server(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	CreateThread(NULL, 0, StartServer, NULL, 0, 0);
+	server_started = 1;
+	return 0;
+}
+
+uint16_t ONICALL control_update_rate(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	update_rate = args[0].value_int32;
+	server_started = 1;
+	return 0;
+}
+
+uint16_t ONICALL change_name(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	
+	//should also return your name...
+	sprintf(player_name, "%.31s", args[0].value_str32);
+	if(client_connected) {
+		flatline_packet packet;	
+		packet.id = CHANGE_NAME;
+		memcpy(packet.data, args[0].value_str32, 256);
+		NetUDPSocket_Send(client_sock, (sockaddr*)&address, (char*)&packet, 257);
+	}
+	return 0;
+}
+
+uint16_t ONICALL send_message(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+
+	flatline_packet message;
+	message.id = MESSAGE;
+
+	if(server_started) {
+		int message_size = sprintf(message.data, "%s: %s", player_name, args[0].value_str32);
+		COrMessage_Print(message.data, "chat", 0);
+		UDPServer_SendToAll(&message, message_size + 1 + FLATLINE_HEADER );
+	}
+	else if(client_connected) {
+		sprintf(message.data, "%s", args[0].value_str32);
+		NetUDPSocket_Send(client_sock, (sockaddr*)&address, (char*)&message, 257);
+	}
+	else {
+		DDrConsole_PrintF("You aren't connected to a server!");
+	}
+	return 0;
+}
+
+
+uint16_t ONICALL connect_to_server(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	if(	NetPlatform_Initalize()) {
+	static flatline_packet packet;
+	sock = NetUDPSocket_Create(27777);
+	address.sin_family = AF_INET; address.sin_port = htons(27777); address.sin_addr.S_un.S_addr = inet_addr(args[0].value_str32 );	
+	//address.sin_family = AF_INET; address.sin_port = htons(27777); address.sin_addr.S_un.S_addr = inet_addr("192.168.0.1");	
+
+	packet.id = CONNECT_SEND;
+	memcpy(((connect_send*)(packet.data))->country ,  player_country, 2);
+	memcpy(((connect_send*)(packet.data))->name, player_name, 256);
+	DDrConsole_PrintF("%s", ((connect_send*)(packet.data))->name);
+	CreateThread(NULL, 0, StartClient, &packet, 0, 0);
+
+	}
+
+	return 0;
+}
+uint16_t ONICALL status(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
+{
+	int j;
+	if(server_started) {
+		for(j = 0; j < max_connections; j++) {
+
+			if (PlayerList[j] != 0) {
+				DDrConsole_PrintF("Client %i: %s from %s", 
+					j,
+					PlayerList[j]->name,
+					(inet_ntoa(*( (struct in_addr*)(int*)&(PlayerList[j]->ip )   ))));
+			}
+		}
+	}
+	else if(client_connected) {
+		DDrConsole_PrintF("Connected to %s, port %i, socket %i", inet_ntoa(address.sin_addr), ntohs(address.sin_port), sock);
+		for(j = 0; j < max_connections; j++) {
+
+			if (PlayerList[j] != 0) {
+				DDrConsole_PrintF("Client %i: %s %x", 
+					j,
+					PlayerList[j]->name,
+					PlayerList[j]->Chr
+			);
+			}
+		}
+	}
+	else{}
+	return 0;
+}
+
+
+void SLrFlatline_Initialize() {
+	
+	DDrPatch_MakeCall(OniExe + 0x000FA88B, FLrInput_Update_Keys);
+	SLrGlobalVariable_Register_Int32("skip", "skips", &(((GameState*)ONgGameState)->field_40) );
+	SLrScript_Command_Register_ReturnType("connect","Connects to a server", "ip:string", sl_void, connect_to_server);
+	SLrScript_Command_Register_Void("host","Starts a server", "", start_server);
+	SLrScript_Command_Register_Void("msg","Sends a message", "", send_message);
+	SLrScript_Command_Register_Void("name","changes your name", "name:str", change_name);
+	SLrScript_Command_Register_Void("status","shows the connection status", "", status);
+	SLrGlobalVariable_Register_String("country", "Your Multiplayer country", player_name);
+	
+}
Index: /Daodan/MSVC/Flatline_BSL.h
===================================================================
--- /Daodan/MSVC/Flatline_BSL.h	(revision 567)
+++ /Daodan/MSVC/Flatline_BSL.h	(revision 567)
@@ -0,0 +1,6 @@
+#ifndef FLATLINE_BSL_H
+#define FLATLINE_BSL_H
+
+void SLrFlatline_Initialize();
+
+#endif
Index: /Daodan/MSVC/Flatline_Net.c
===================================================================
--- /Daodan/MSVC/Flatline_Net.c	(revision 567)
+++ /Daodan/MSVC/Flatline_Net.c	(revision 567)
@@ -0,0 +1,235 @@
+#include "Flatline.h"
+#include "Flatline_Server.h"
+
+
+#define TRACK_PACKETS
+
+/*thread */int UDPServer_Socket = 0;
+
+
+
+
+bool NetUDPServer_Listen(uint16_t port, bool (*packet_callback)(char* data, int datalen, int from))
+{
+	sockaddr_in address;	
+	UDPServer_Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+	
+	if (UDPServer_Socket < 0)
+	{
+		DDrConsole_PrintF("could not create socket");
+		return false;
+	}
+	
+
+	memset(&address, 0, sizeof(sockaddr_in));
+	address.sin_family = AF_INET;
+	address.sin_addr.s_addr = htonl(INADDR_ANY);
+	address.sin_port = htons(port);
+	
+	if (bind(UDPServer_Socket, (sockaddr*)&address, sizeof(sockaddr_in)) < 0)
+	{
+		DDrConsole_PrintF("could not bind port %d", port);
+		closesocket(UDPServer_Socket);
+		return false;
+	}
+	else {
+
+
+		char data[65537] = {0};
+	
+		sockaddr_in from;
+		int recvlen;
+		FLrServer_Initialize();
+		for (;;)
+		{
+			int fromlen = sizeof(sockaddr_in);
+			memset(&from, 0, sizeof(sockaddr_in));
+			recvlen = recvfrom(UDPServer_Socket, data, 65537 - 1, 0, (sockaddr*)&from, (void*)&fromlen);
+
+			if (!packet_callback(data, recvlen, ntohl(from.sin_addr.s_addr)))
+				break; 
+		}
+		closesocket(UDPServer_Socket);
+		return true;
+	}
+}
+
+bool NetUDPServer_Send(sockaddr* address, flatline_packet* data, int datalen)
+{
+	//DDrConsole_PrintF("Sending data size %u to %s on socket %i", datalen, inet_ntoa( ((sockaddr_in*)address)->sin_addr ), UDPServer_Socket);
+	data->FLATLINE = *(int*)"FLATLINE";
+	return NetUDPSocket_Send(UDPServer_Socket, address, data, datalen);
+}
+
+int client_sock = 0;
+sockaddr_in client_address;
+
+int NetUDPSocket_Create(uint16_t port)
+{
+	int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+	sockaddr_in address;	
+		unsigned long nonBlocking = 1;
+	if (sock < 0)
+	{
+		DDrConsole_PrintF("could not create socket");
+		return -1;
+	}
+	
+
+	memset(&client_address, 0, sizeof(sockaddr_in));
+	address.sin_family = AF_INET;
+	address.sin_addr.s_addr = htonl(INADDR_ANY);
+	address.sin_port =  htons(port);
+	
+	if (bind(sock, (sockaddr*)&address, sizeof(sockaddr_in)) < 0)
+	{
+		DDrConsole_PrintF("could not bind port %d", port);
+		return false;
+	}
+	
+
+	if (ioctlsocket(sock, FIONBIO, &nonBlocking))
+	{
+		DDrConsole_PrintF("failed to set non-blocking socket");
+		return false;
+	}
+	client_sock = sock;
+	client_address = address;
+	return sock;
+}
+
+int NetTCPSocket_Create(uint16_t port)
+{
+	int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+	sockaddr_in address;
+		unsigned long nonBlocking = 1;
+
+	if (sock < 0)
+	{
+		DDrConsole_PrintF("could not create socket");
+		return -1;
+	}
+	
+
+	memset(&client_address, 0, sizeof(sockaddr_in));
+	address.sin_family = AF_INET;
+	address.sin_addr.s_addr = htonl(INADDR_ANY);
+	address.sin_port =  htons(port);
+	
+	if (bind(sock, (sockaddr*)&address, sizeof(sockaddr_in)) < 0)
+	{
+		DDrConsole_PrintF("could not bind port %d", port);
+		return false;
+	}
+	
+
+	if (ioctlsocket(sock, FIONBIO, &nonBlocking))
+	{
+		DDrConsole_PrintF("failed to set non-blocking socket");
+		return false;
+	}
+	client_sock = sock;
+	client_address = address;
+	return sock;
+}
+
+
+void NetUDPSocket_Close(int socket)
+{
+	closesocket(socket);
+}
+
+int NetUDPSocket_Send(int socket, const sockaddr* address, flatline_packet* data, int datalen)
+{
+	//currently only protects against duplicate packets.
+	int addr_size;
+#ifdef TRACK_PACKETS
+	static uint32_t packet_index = 0;
+	packet_index = (packet_index + 1);
+	data->packet_index = packet_index;
+#endif
+	data->FLATLINE = *(int*)"FLATLINE";
+	switch (address->sa_family)
+	{
+		case AF_INET:
+			addr_size = sizeof(sockaddr_in);
+			break;
+		case AF_INET6:
+			addr_size = sizeof(sockaddr_in6);
+			break;
+		default:
+			addr_size = sizeof(sockaddr_storage);
+	}
+	return sendto(socket, data, datalen, 0, address, addr_size);
+}
+
+#ifdef TRACK_PACKETS
+uint32_t last_packet = -1;
+#endif
+
+bool NetUDPSocket_Recieve(int socket, sockaddr_storage* address, char* data, uint16_t* datalen)
+{
+	int address_size = sizeof(sockaddr_storage);
+	uint32_t msg_size = recvfrom(socket, data, 1400, 0, (SOCKADDR *)address, &address_size);
+	if (msg_size == 0)
+		return false;
+	else if (msg_size == SOCKET_ERROR) {
+		int errorno = WSAGetLastError();
+		if (errorno == WSAEWOULDBLOCK) return false; //no packets.
+		else {
+			//DDrConsole_PrintF("Packet type %i", ((flatline_packet*)data)->id);
+			NetCatchError();
+			return false;
+		}
+	}	
+	/*
+#ifdef TRACK_PACKETS
+	if(client_connected && !server_started) {
+		uint32_t index_mkr = ((flatline_packet*)(data))->packet_index;
+		//fancy way of checking if index_mkr is on one side of the max size of an int and last_packet is on the other
+		if( ((index_mkr - last_packet < 0x80000000) && (index_mkr > last_packet))
+		//if it is, subtract half the size of an int from each. ^_^
+			|| ((index_mkr - 0x80000000) > (last_packet - 0x80000000) ) )
+		{
+			return false;
+		}
+		else {
+			last_packet = index_mkr;
+		}
+	}
+	
+#endif
+	*/
+
+	*datalen = msg_size;				
+	return true;
+	
+}
+
+DWORD WINAPI StartServer(void* lol){
+	NetPlatform_Initalize();
+	FLrServer_Run();
+	return 0;
+} 
+
+DWORD WINAPI StartClient(void* lol){
+	//NetPlatform_Initalize();
+	FLrClient_Run((flatline_packet*)lol);
+	return 0;
+} 
+void NetCatchError(){
+	char Message[1024];
+	int errorno = WSAGetLastError();
+	if(errno == WSAEWOULDBLOCK) {
+		return;
+	}
+#ifdef WIN32
+
+	FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS |
+		FORMAT_MESSAGE_MAX_WIDTH_MASK, NULL, errorno,
+		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+		(LPSTR) Message, 1024, NULL);
+	DDrConsole_Print(Message);
+#endif
+
+}
Index: /Daodan/MSVC/Flatline_Server.c
===================================================================
--- /Daodan/MSVC/Flatline_Server.c	(revision 567)
+++ /Daodan/MSVC/Flatline_Server.c	(revision 567)
@@ -0,0 +1,82 @@
+#include "Flatline.h"
+#include "Flatline_Server.h"
+
+int total_players = 0;
+uint16_t max_connections = MAX_CONNECTIONS;
+
+player_info* FLrServer_AddPlayer(int ip, char* name, bool is_server) {
+	flatline_packet new_char = {0};
+	CharacterObject* Char;
+	uint32_t player_slot = 0;
+	int playerlist_slot = 0;
+	if(is_server) goto server;
+	if(total_players < max_connections) {
+		char* zero = strchr(name, 0);
+		int i = 0;
+		int k = 0;
+		playerlist_slot = FLr_FindEmptyListSlot();
+		
+
+		total_players++;
+
+		//send new player packet to all players
+		//char tempname[32] = {0};
+
+		//checks to see if a name exists or not
+		//then appends [#] on the end of it if it does
+		
+		if(zero - name > 28) zero = name + 28; 
+		for(i = 0; i < max_connections; i++) {
+			if(PlayerList[i] != 0 && !strcmp(name, PlayerList[i]->name)) {
+				k++;				
+				sprintf(zero, "[%i]", k);
+				i = 0;
+			}
+		}
+
+server:		;
+		//memset( new_char, 0, sizeof(new_char);
+		//new_char = {0};
+		Char = &new_char.new_player.Character;
+		memset(Char, 0, sizeof(CharacterObject));
+		Char->Header.Type = 'CHAR';
+		//Char->OSD.Options = char_dontaim;
+		sprintf(Char->OSD.Name,"%s",name);
+		sprintf(Char->OSD.Class, "%s", "konoko_generic");
+		
+		
+		
+		//TMrInstance_GetDataPtr('ONCC', "striker_easy_1", PlayerList[playerlist_slot]->Chr->ONCC);
+		
+
+		new_char.id = NEW_PLAYER;
+		if(!is_server) { 
+			ONrGameState_NewCharacter(Char, NULL, NULL, &(player_slot));
+			PlayerList[playerlist_slot] = Players+player_slot;
+			PlayerList[playerlist_slot]->Chr = &((Character *)(((GameState * )(ONgGameState))->CharacterStorage))[player_slot];
+			PlayerList[playerlist_slot]->Chr->Flags = chr_dontaim | chr_unkillable; //&= 0xFFBFFFFF; //WTF
+			sprintf(PlayerList[playerlist_slot]->Chr->Name, "%.31s", name);		
+			UDPServer_SendToAll( (char*)&new_char, sizeof(new_player) + FLATLINE_HEADER );
+			
+		}
+		else {
+			PlayerList[0] = Players;
+			PlayerList[0]->Chr = (Character *)(((GameState * )(ONgGameState))->CharacterStorage);
+		}
+
+		//add player to list
+		
+		PlayerList[playerlist_slot]->ip = ip;
+		PlayerList[playerlist_slot]->list_slot = playerlist_slot;
+		sprintf(PlayerList[playerlist_slot]->name,"%.31s",name);
+		
+		return &Players[player_slot];
+	}
+	return (player_info*)(-1);
+}
+
+void FLrServer_Initialize(){
+	FLrServer_AddPlayer(inet_addr("127.0.0.1"), "host", 1);
+
+
+}
Index: /Daodan/MSVC/Flatline_Server.h
===================================================================
--- /Daodan/MSVC/Flatline_Server.h	(revision 567)
+++ /Daodan/MSVC/Flatline_Server.h	(revision 567)
@@ -0,0 +1,12 @@
+#ifndef FLATLINE_SERVER_H
+#define FLATLINE_SERVER_H
+
+#define TOO_MANY_CONNECTIONS -1
+#include "Flatline.h"
+#include "winsock.h"
+
+
+extern uint16_t max_connections;
+player_info* FLrServer_AddPlayer(int ip, char* name, bool is_server);
+void FLrServer_Initialize();
+#endif
Index: /Daodan/MSVC/Flatline_Win32.c
===================================================================
--- /Daodan/MSVC/Flatline_Win32.c	(revision 567)
+++ /Daodan/MSVC/Flatline_Win32.c	(revision 567)
@@ -0,0 +1,20 @@
+#include "Flatline.h"
+
+bool NetPlatform_Initalize()
+{
+	WSADATA wsaData;
+	
+	if (WSAStartup(MAKEWORD(2, 2), &wsaData))
+	{
+		DDrConsole_PrintF("WSA initalization failed");
+		return false;
+	}
+	DDrConsole_PrintF("net started using WSA version %d.%d", LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion));
+	return true;
+}
+
+bool NetPlatform_Shutdown()
+{
+	WSACleanup();
+	return true;
+}
Index: /Daodan/MSVC/Flatline_Win32.h
===================================================================
--- /Daodan/MSVC/Flatline_Win32.h	(revision 567)
+++ /Daodan/MSVC/Flatline_Win32.h	(revision 567)
@@ -0,0 +1,4 @@
+#pragma once
+
+bool NetPlatform_Initalize();
+bool NetPlatform_Shutdown();
Index: /Daodan/MSVC/Oni.h
===================================================================
--- /Daodan/MSVC/Oni.h	(revision 567)
+++ /Daodan/MSVC/Oni.h	(revision 567)
@@ -0,0 +1,37 @@
+#pragma once
+#ifndef ONI_H
+#define ONI_H
+
+#include "Daodan.h"
+#include "oni_gl.h"
+//#include <stdint.h>
+#include <windows.h>
+#include "Oni_GameState.h"
+typedef unsigned char onibool;
+
+typedef struct
+{
+	HINSTANCE Instance;
+	HWND Window;
+} ONtPlatformData;
+/*
+void __cdecl ONiMain(int ArgCount, char *ArgList[]);
+short ONICALL ONrPlatform_Initialize(ONtPlatformData *PlatformData);
+LRESULT CALLBACK ONrPlatform_WindowProc(HWND Window, UINT Message, WPARAM WParam, LPARAM LParam);
+*/
+//uint8_t ONICALL ONrCheater(uint32_t cheat);
+
+//char* ONICALL SSrMessage_Find(char* message_key); //Returns a prompt message from a message key
+//void ONICALL ONiGameState_FindAutoPromptMessage(char* Note, void* ptr);
+
+//
+void ONICALL TMrInstance_GetDataPtr_List( 
+	char Tag[4],		//as in 'ONWC'
+	int MaxCount,		//# of elements in PointerList
+	void** PointerList, //Where the found pointers go
+	int* FoundCount		//Where the number of pointers found go.
+	); 
+
+#include "Oni_Symbols.h"
+
+#endif
Index: /Daodan/MSVC/Oni_Character.h
===================================================================
--- /Daodan/MSVC/Oni_Character.h	(revision 567)
+++ /Daodan/MSVC/Oni_Character.h	(revision 567)
@@ -0,0 +1,42 @@
+#pragma once
+#ifndef ONI_CHARACTER_H
+#define ONI_CHARACTER_H
+
+#include "Oni.h"
+//#include <stdint.h>
+#include "bool.h"
+
+enum {
+	team_konoko,
+	team_tctf,
+	team_syndicate,
+	team_neutral,
+	team_securityguard,
+	team_rougekonoko,
+	team_switzerland,
+	team_syndicateaccessory,
+};
+/*
+int16_t ONICALL ONrGameState_NewCharacter(CharacterObject* CHAR, void* AISA, void* flag, uint32_t* list_location);
+int32_t* ONICALL ONrGetActiveCharacter(void* CharacterPtr);
+//int16_t ONICALL ONrGameState_GetPlayerCharacter();
+*/
+//probably need to name these better.
+/*
+#define char_unkillable        (1 <<  5)
+#define char_superammo         (1 <<  6)
+#define char_unstoppable       (1 <<  8)
+#define char_deathlock         (1 << 10)
+#define char_dontaim           (1 << 13)
+#define char_nocollision       (1 << 17)
+#define char_noshadow          (1 << 24)
+#define char_invincible        (1 << 25)
+#define char_bossshield        (1 << 30)
+#define char_weaponimmune      (1 << 31)
+*/
+
+//We need a Oni_Structs #include file.
+
+
+
+#endif
Index: /Daodan/MSVC/Oni_GameState.h
===================================================================
--- /Daodan/MSVC/Oni_GameState.h	(revision 567)
+++ /Daodan/MSVC/Oni_GameState.h	(revision 567)
@@ -0,0 +1,1364 @@
+#ifndef ONI_GAMESTATE_H
+#define ONI_GAMESTATE_H
+#include "Oni_Character.h"
+
+
+typedef struct {
+	float X;
+	float Y;
+	float Z;	
+} Vector3; //probably move to utilities...
+
+typedef struct {
+	float X;
+	float Y;
+	float Z;
+	float W;
+} Quaternion;
+
+typedef struct {
+	float RotationScale[9];
+	Vector3 Translation;
+} Matrix4x3;
+
+typedef struct {
+	Vector3 Center;
+	float Radius;
+} Sphere;
+
+typedef struct 
+{
+  int StartTime;
+  int field_4;
+  char Active;
+  char field_9;
+} Letterbox;
+
+typedef struct 
+{
+  __int16 Count;
+  __int16 field_2;
+  int Memory;
+} DoorArray;
+
+typedef struct 
+{
+  int Count;
+  int Head;
+}PHNodeList;
+
+typedef struct
+{
+  PHNodeList OutList;
+  PHNodeList InList;
+  int AKVA;
+  int field_14;
+  int XTiles;
+  int ZTiles;
+  int GridSize;
+  char field_24;
+  char NoGrid;
+  char gap_26[2];
+  int GridData;
+  int field_2D;
+  __int16 field_31;
+  char gap_32[2];
+  int DynamicGrid;
+  int field_39;
+  int field_3D;
+  int field_41;
+  int field_45;
+  int field_49;
+  int field_4D;
+  int field_51;
+  int field_55;
+  int field_59;
+  int field_5D;
+  int field_61;
+  int field_65;
+  int field_69;
+  int field_6D;
+  int field_71;
+  int field_75;
+  __int16 Visited;
+  __int16 field_7A;
+  int TraverseQueueNext;
+  int field_81;
+  int field_85;
+  int field_89;
+  int field_8D;
+  int field_91;
+  int field_95;
+  int field_99;
+} PHGraphNode;
+typedef struct 
+{
+  int field_0;
+  int field_4;
+  int field_8;
+  int field_C;
+  int field_10;
+  int field_14;
+  int field_18;
+  int field_1C;
+  int field_20;
+  int field_24;
+  int field_28;
+  int field_2C;
+  int field_30;
+  int field_34;
+  int field_38;
+  int field_3C;
+  int field_40;
+} MotionBlur;
+
+typedef struct 
+{
+  char field_0[2052];
+} Shadow;
+
+typedef struct
+{
+  int ONSK;
+  Vector3 PlanetPositions[8];
+  int StarSpriteArray;
+  int Skybox;
+  int field_6C;
+  int field_70;
+  int field_74;
+  int field_78;
+  int field_7C;
+  int field_80;
+  int field_84;
+  int field_88;
+  int field_8C;
+  int field_90;
+  int field_94;
+  int field_98;
+  int field_9C;
+  int field_A0;
+  int field_A4;
+  int field_A8;
+  int field_AC;
+  int field_B0;
+  int field_B4;
+  int field_B8;
+  int field_BC;
+  int field_C0;
+  int field_C4;
+  int field_C8;
+  int field_CC;
+  int field_D0;
+  int field_D4;
+  int field_D8;
+  int field_DC;
+  float field_E0;
+  int field_E4;
+  int field_E8;
+  int field_EC;
+  int field_F0;
+  int field_F4;
+  int field_F8;
+  int field_FC;
+  int field_100;
+  int field_104;
+  int field_108;
+  int field_10C;
+  int field_110;
+  int field_114;
+  int field_118;
+  int field_11C;
+  int field_120;
+  int field_124;
+  int field_128;
+  int field_12C;
+  int field_130;
+  int field_134;
+  int field_138;
+  int field_13C;
+  int field_140;
+  int field_144;
+  int field_148;
+  int field_14C;
+  int field_150;
+  int field_154;
+  int field_158;
+  int field_15C;
+  int field_160;
+  float field_164;
+  int field_168;
+  int field_16C;
+  int field_170;
+  int field_174;
+  int field_178;
+  int field_17C;
+  int field_180;
+  int field_184;
+  int field_188;
+  int field_18C;
+  int field_190;
+  int field_194;
+  int field_198;
+  int field_19C;
+  int field_1A0;
+  int field_1A4;
+  int field_1A8;
+  int field_1AC;
+  int field_1B0;
+  int field_1B4;
+  int field_1B8;
+  int field_1BC;
+  int field_1C0;
+  int field_1C4;
+  int field_1C8;
+  int field_1CC;
+  int field_1D0;
+  int field_1D4;
+  int field_1D8;
+  int field_1DC;
+  int field_1E0;
+  int field_1E4;
+  int field_1E8;
+  int field_1EC;
+  int field_1F0;
+  int field_1F4;
+  int field_1F8;
+  int field_1FC;
+  int field_200;
+  float field_204;
+  int field_208;
+  int field_20C;
+  int field_210;
+  int field_214;
+  int field_218;
+  int field_21C;
+  int field_220;
+  int field_224;
+  int field_228;
+  int field_22C;
+  int field_230;
+  int field_234;
+  int field_238;
+  int field_23C;
+  int field_240;
+  int field_244;
+  int field_248;
+  Vector3 SunFlarePosition;
+  Vector3 field_258;
+  int field_264;
+  int field_268;
+  int field_26C;
+  int field_270;
+  Vector3 field_274;
+  int field_280;
+  int field_284;
+  int field_288;
+  int field_28C;
+} Sky;
+
+
+
+typedef struct {
+	Sphere Sphere_; //fix this name
+	int Child1;
+	int Child2;	
+} SphereTreeNode;
+
+typedef struct {
+	Vector3 Min;
+	Vector3 Max;
+} BoundingBox;
+
+
+/*  202 */ typedef struct 
+{
+  char Name[32];
+  __int16 Id;
+  __int16 field_22;
+  int Length;
+} PatrolPathOSD;
+
+/*  396 */ typedef struct 
+{
+  int Type;
+  int field_4;
+  int field_8;
+  int field_C;
+  int field_10;
+} PatrolPathPoint;
+
+enum { //action flags
+	Action_Escape                    = 1,
+	Action_Console                   = 2,
+	Action_PauseScreen               = 4,
+	Action_Cutscene_1                = 8,
+	Action_Cutscene_2                = 0x10,
+	Action_F4                        = 0x20,
+	Action_F5                        = 0x40,
+	Action_F6                        = 0x80,
+	Action_F7                        = 0x100,
+	Action_F8                        = 0x200,
+	Action_StartRecord               = 0x400,
+	Action_StopRecord                = 0x800,
+	Action_PlayRecord                = 0x1000,
+	Action_F12                       = 0x2000,
+	Action_Unknown1                  = 0x4000,
+	Action_LookMode                  = 0x8000,
+	Action_Screenshot                = 0x10000,
+	Action_Unknown2                  = 0x20000,
+	Action_Unknown3                  = 0x40000,
+	Action_Unknown4                  = 0x80000,
+	Action_Unknown5                  = 0x100000,
+	Action_Forward                   = 0x200000,
+	Action_Backward                  = 0x400000,
+	Action_TurnLeft                  = 0x800000,
+	Action_TurnRight                 = 0x1000000,
+	Action_StepLeft                  = 0x2000000,
+	Action_StepRight                 = 0x4000000,
+	Action_Jump                      = 0x8000000,
+	Action_Crouch                    = 0x10000000,
+	Action_Punch                     = 0x20000000,
+	Action_Kick                      = 0x40000000,
+	Action_Block                     = 0x80000000,
+	//used in second action field
+	Action2_Walk                     = 1,
+	Action2_Action                   = 2,
+	Action2_Hypo                     = 4,
+	Action2_Reload                   = 8,
+	Action2_Swap                     = 0x10,
+	Action2_Drop                     = 0x20,
+	Action2_Fire1                    = 0x40,
+	Action2_Fire2                    = 0x80,
+	Action2_Fire3                    = 0x100,
+};
+
+
+typedef struct {
+	int32_t Actions1;
+	int32_t Actions2;
+} InputAction;
+
+
+typedef struct {
+	float MouseDeltaX;
+	float MouseDeltaY;
+	float field_8;
+	float field_C;
+	InputAction Current;
+	InputAction Stopped;
+	InputAction Start;
+	InputAction Stop;
+} GameInput;
+
+typedef struct {
+	int Type;				//'CHAR' etc.
+	int ObjectId;			//not needed
+	int Flags;				//The flags of the object...not used for CHAR
+	Vector3 Position;		//Position of Object
+	Vector3 Rotation;		//Rotation of Object
+	int EditorCallbacks;	//Lets try not to mess with it for now. :P
+	int field_28;			//unknown
+} OSD_Header;
+
+typedef struct {
+	int32_t Flags;
+	int32_t Frame;
+	int32_t field_8;
+	int32_t field_C;
+	int32_t field_10;
+	int32_t field_14;
+	int32_t field_18;
+	int32_t field_1C;
+	int32_t FILMInstance;
+} PlayingFilm;
+
+typedef enum {
+	chr_isplayer          = 1 << 0,
+	chr_randomskin        = 1 << 1,
+	chr_notprespawned     = 1 << 2,
+	chr_noncombatant      = 1 << 3,
+	chr_multispawnable    = 1 << 4,
+	chr_unkillable        = 1 << 5,
+	chr_superammo         = 1 << 6,
+	chr_omniscient        = 1 << 8,
+	chr_haslsi            = 1 << 9,
+	chr_boss              = 1 << 10,
+	chr_upgradedifficulty = 1 << 11,
+	chr_noautodrop        = 1 << 12,
+	chr_dontaim           = 1 << 13,
+	chr_nocollision       = 1 << 17,
+	chr_noshadow          = 1 << 24,
+	chr_invincible        = 1 << 25,
+	chr_bossshield        = 1 << 30,
+	chr_weaponimmune      = 1 << 31,
+} chr_flags;
+/*
+enum {
+chr_isplayer			=		0x00000001,	//is player character
+chr_randomskin			=		0x00000002,	//gets random skin from ONCV
+chr_notprespawned		=		0x00000004,	//isn't spawned at level creation
+chr_noncombatant		=		0x00000008,	//doesn't fight
+chr_multispawnable		=		0x00000010,	//can spawn up to 5 without forcing
+chr_unknown				=		0x00000020,	//
+chr_unkillable			=		0x00000040,	//can only be brought to 1 hp
+chr_superammo			=		0x00000080,	//infinite ammo
+chr_omniscient			=		0x00000100,	//touchofdeath
+chr_haslsi				=		0x00000200,	//drops an lsi
+chr_boss				=		0x00000400,	//is a boss character
+chr_upgradedifficulty	=		0x00000800,	//upgrade the difficulty if you play on med\hard
+chr_noautodrop			=		0x00001000,	//uses drop fields instead of has fields on death
+}; //
+*/
+
+typedef struct {
+	uint32_t Options;				//A bitset. Someone had better define these
+	char Class[64];					//Name of the ONCC we use. ONCCName in idb
+	char Name[32];					//Name of the character. ie: ai2_spawn Muro
+	char Weapon[64];				//Name of the weapon he holds. ONWCName in idb
+	char ScriptSpawn[32];			//Script function called when char spawns
+	char ScriptDie[32];				//Script function called when char dies
+	char ScriptAware[32];			//Script function called when char detects something
+	char ScriptAlarm[32];			//Script function called when char is alarmed at something
+	char ScriptHurt[32];			//Script function called when char is hurt for the first time
+	char ScriptDefeat[32];			//Script function called when char is at 1 HP
+	char ScriptNoPath[32];			//Script function called when char loses path. Broken.
+	char ScriptNoAmmo[32];			//Script function called when char is out of ammo for the first time. Char must have ammo at spawn.
+	int32_t AdditionalHealth;		//Additional Health given to the character
+	int16_t AmmoUsed;				//Ammo given for the char to use
+	int16_t AmmoDropped;			//Ammo the char drops
+	int16_t CellsUsed;				//Cells given for the char to use
+	int16_t CellsDropped;			//Cells the char drops
+	int16_t HypoUsed;				//Hypo given for the char to use
+	int16_t HypoDropped;			//Hypo the char drops
+	int16_t ShieldUsed;				//Bullet shield given for the char to use
+	int16_t ShieldDropped;			//Bullet shield the char drops
+	int16_t CloakUsed;				//Phase Cloak given for the char to use
+	int16_t CloakDropped;			//Phase Cloak the char drops
+	int16_t NCIUsed;				//Don't use this...
+	int16_t NCIDropped;				//Don't use this...
+	int32_t TeamID;					//Team ID
+	int32_t AmmoPercent;			//Percent of weapon ammo full
+	int32_t JobID;					//Job ID...
+									//0 - none 
+									//1 - idle 
+									//2 - guard (never used in Oni) 
+									//3 - patrol 
+									//4 - teambattle (never used in Oni)
+	int16_t PatrolID;				//patrol path ID (reference to the Patrol_Path.BINA file)
+	int16_t CombatID;				//combat ID (reference to the Combat.BINA file)
+	int16_t	MeleeID;				//melee ID (reference to the Melee Profile.BINA file)
+	int16_t NeutralID;				//neutral ID (reference to the Neutral.BINA file)
+	int32_t	AlarmGroups;			//Bitset. http://wiki.oni2.net/CHAR
+	int32_t InitialAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
+	int32_t MinimalAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
+	int32_t StartJobAlertLevel;		//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
+	int32_t InvestigatingAlertLevel;//0 - lull, 1 - low, 2 - medium, 3 - high, 4 - combat
+	int32_t PursuitStrongLow;
+	int32_t PursuitWeakLow;
+	int32_t PursuitStrongHigh;
+	int32_t PursuitWeakHigh;
+	int32_t Pursuit5;
+	int32_t field_1FC;
+} CharacterOSD;
+
+typedef struct {
+	OSD_Header Header;
+	CharacterOSD OSD;
+} CharacterObject;
+
+typedef struct {
+	Vector3 Center;
+	float Radius;
+} BoundingSphere;
+
+typedef struct {
+	int32_t ONCP; //probably pointer
+	int32_t field_4;	//who knows?
+	int32_t Instance; //probably link to actual particle
+	int32_t Bone; //duh
+} AttachedParticle;
+
+typedef struct { //Inventory
+	int32_t Weapons[3];
+	int16_t field_1A0; //10 bucks says this is the current weapon
+	int16_t AmmoUsed;				//Ammo given for the char to use
+	int16_t HypoUsed;				//Hypo given for the char to use
+	int16_t CellsUsed;				//Cells given for the char to use
+	int16_t AmmoDropped;			//Ammo the char drops
+	int16_t HypoDropped;			//Hypo the char drops
+	int16_t CellsDropped;			//Cells the char drops
+	int16_t field_1A;	//who knows? InverseHypoRegenRate?
+	int16_t field_1C;	
+	int16_t field_1E;
+	char hasLSI;
+	char field_1B5;
+	int16_t	field_1B6;
+	int16_t ShieldUsed;				//Bullet shield given for the char to use
+	int16_t CloakUsed;				//Phase Cloak given for the char to use
+	int32_t field_28;			//probably bullet shield dropped
+	int32_t DoorKeys;		//Lol. We can use this later for other sorts of items.
+} Inventory;
+
+typedef struct {
+	uint32_t SphereTree;
+	Vector3 ObBox[8];
+	Vector3 * ObBowPtr;
+	Vector3 Velocity;
+	Quaternion field_74;
+	Vector3 Position;
+	Quaternion Rotation;
+	float Scale;
+	Matrix4x3 Matrix;
+	Matrix4x3 InitMatrix;
+	float field_104;
+	float Gravity;
+	float field_10C;
+	float field_110;
+	float Friction_1;
+	float Friction_2;
+	Vector3 Force;
+	uint32_t Flags;
+	uint32_t Type;
+	char AnimState[0x18];
+	void* Callbacks;
+	void* Owner;
+} PhyContext;
+typedef struct
+{
+  int field_0;
+  int NumContacts;
+  int FirstContact;
+  int NotifyKnowledgeCallback;
+} AI2KnowledgeState;
+
+/*  388 */ typedef struct //activecharacter
+{
+  __int16 Number;
+  __int16 field_2;
+  PhyContext* PhyContext;
+  SphereTreeNode SphereTree;
+  SphereTreeNode SphereTree3[4];
+  SphereTreeNode SphereTree2[2];
+  __int16 field_B0;
+  __int16 field_B2;
+  __int16 field_B4;
+  char field_B6;
+  char gap_b7[1];
+  Vector3 field_B8;
+  Vector3 AccelerateWith;
+  int field_D0;
+  Vector3 field_D4;
+  __int16 field_E0;
+  char gap_e2[2];
+  int field_E4;
+  int field_E8;
+  int field_EC;
+  int field_F0;
+  __int16 field_F4;
+  __int16 IsInAir;
+  Vector3 FallingVelocity;
+  Vector3 JumpVelocity;
+  char field_110;
+  char field_111;
+  __int16 field_112;
+  __int16 field_114;
+  char gap_116[2];
+  int field_118;
+  int field_11C;
+  int field_120;
+  int field_124;
+  int field_128;
+  int field_12C;
+  BoundingSphere BoundingSphere;
+  Vector3 field_140;
+  Vector3 field_14C;
+  int field_158;
+  int field_15C;
+  Vector3 Location;
+  char gap_16c[24];
+  int AkiraNode;
+  int GraphNode;
+  int PelvisHeight;
+  int Movement_StatePtr;
+  int ActiveWeapon;
+  int field_198;
+  int InventoryWeapon;
+  char gap_1a0[2];
+  __int16 RedAmmoClipCount;
+  __int16 HypoCount;
+  __int16 GreenAmmoClipCount;
+  __int16 RedAmmoClipDropCount;
+  __int16 HypoDropCount;
+  __int16 GreenAmmoClipDropCount;
+  __int16 field_1AE;
+  __int16 InverseHypoRegenerationRate;
+  char DropShield;
+  char DropPhaseCloack;
+  char field_1B4;
+  char gap_1b5[1];
+  __int16 field_1B6;
+  __int16 Shield;
+  __int16 PhaseCloacking;
+  int field_1BC;
+  char gap_1c0[4];
+  __int16 field_1C4;
+  char gap_1c6[10];
+  int field_1D0;
+  int field_1D4;
+  char gap_1d8[4];
+  int field_1DC;
+  int NotIdleStartTime;
+  int TimeToIdle;
+  int field_1E8;
+  char gap_1ec[4];
+  int field_1F0;
+  char gap_1f4[2048];
+  int field_9F4;
+  char gap_9f8[36];
+  int field_A1C;
+  char gap_a20[3020];
+  int field_15EC;
+  char gap_15f0[60];
+  int field_162C;
+  int field_1630;
+  int field_1634;
+  int field_1638;
+  int field_163C;
+  char gap_1640[8];
+  BoundingBox BoundingBox;
+  int field_1660;
+  char gap_1664[4];
+  int ShieldPower;
+  char gap_166c[4];
+  int NumberOfKills;
+  int InflictedDamage;
+  int field_1678;
+  int field_167C;
+  char gap_1680[8];
+  __int16 field_1688;
+  __int16 field_168A;
+  int field_168C;
+  int field_1690;
+  char field_1694;
+  char field_1695;
+  __int16 field_1696;
+  int field_1698;
+  int field_169C;
+  char gap_16a0[2];
+  int field_16A2;
+  char gap_16a6[994];
+  char field_1A88;
+  char field_1A89;
+  char field_1A8A;
+  char field_1A8B;
+  Vector3 Executor_AimingDirection;
+  int field_1A98;
+  int field_1A9C;
+  int Executor_ActualMovementMode;
+  int field_1AA4;
+  int field_1AA8;
+  int field_1AAC;
+  char Executor_HasFacingOverride;
+  char gap_1ab1[3];
+  int Executor_AimingSpeed;
+  char field_1AB8;
+  char Executor_HasMoveOverride;
+  char gap_1aba[6];
+  int field_1AC0;
+  int field_1AC4;
+  int Executor_FacingOverride;
+  char Executor_HasAttackOverride;
+  char gap_1acd[1];
+  __int16 field_1ACE;
+  __int16 field_1AD0;
+  char gap_1ad2[6];
+  int field_1AD8;
+  int field_1ADC;
+  int field_1AE0;
+  int field_1AE4;
+  char Executor_HasThrowOverride;
+  char gap_1ae9[3];
+  int field_1AEC;
+  int field_1AF0;
+  int field_1AF4;
+  int Animation;
+  __int16 AnimationToState;
+  __int16 AnimationFromState;
+  __int16 AnimationType;
+  __int16 NextAnimationType;
+  __int16 field_1B04;
+  __int16 field_1B06;
+  char Stitch;
+  char gap_1b09[3];
+  int StitchHeight;
+  __int16 InterpolationFromState;
+  char gap_1b12[2];
+  Vector3 StitchVelocity;
+  __int16 InterpolationCurrentFrame;
+  __int16 InterpolationLength;
+  Quaternion InterpolationStartRotations[19];
+  char gap_1c54[4];
+  int field_1C58;
+  int field_1C5C;
+  int field_1C60;
+  int Overlay;
+  __int16 field_1C68;
+  __int16 field_1C6A;
+  int field_1C6C;
+  int field_1C70;
+  __int16 field_1C74;
+  char gap_1c76[2];
+  int field_1C78;
+  char gap_1c7c[12];
+  __int16 Frame;
+  __int16 SoftPause;
+  __int16 HardPause;
+  __int16 field_1C8E;
+  int field_1C90;
+  __int16 field_1C94;
+  __int16 field_1C96;
+  __int16 Dizzy;
+  __int16 field_1C9A;
+  int field_1C9C;
+  __int16 AnimationVarient;
+  __int16 TimeToPeace;
+  char NumAnimationAttachedParticles;
+  char gap_1ca5[1];
+  __int16 field_1CA6;
+  AttachedParticle AnimationAttachedParticles[16];
+  int TRAMParticles;
+  char FixedParticlesAttached;
+  char FixedParticlesStarted;
+  __int16 NumFixedParticles;
+  AttachedParticle FixedParticles[16];
+  __int16 CurrentAnimationType;
+  char gap_1eb2[2];
+  int field_1EB4;
+  char field_1EB8;
+  char gap_1eb9[33];
+  __int16 field_1EDA;
+  int field_1EDC;
+  char gap_1ee0[4];
+  int field_1EE4;
+  int field_1EE8;
+  int field_1EEC;
+  Quaternion Rotations[19];
+  Quaternion OverlayRotations[19];
+  int field_2150;
+  char gap_2154[4];
+  GameInput Input;
+  int PrevActions1;
+  int PrevActions2;
+  int SprintTimer;
+  char field_2194;
+  char field_2195;
+  char gap_2196[2];
+  Vector3 field_2198;
+  int field_21A4;
+  int field_21A8;
+  int field_21AC;
+  Vector3 field_21B0;
+  int HeadFacing;
+  int HeadPitch;
+  int field_21C4;
+  int field_21C8;
+  int field_21CC;
+  int field_21D0;
+  char field_21D4;
+  char gap_21d5[3];
+  int field_21D8;
+  char field_21DC;
+  char field_21DD;
+  char field_21DE;
+  char field_21DF;
+  char field_21E0;
+  char HasAlternateTrigger;
+  char field_21E2;
+  char ReleaseTrigger;
+  char ReleaseAlternateTrigger;
+  char TurningLeft;
+  char TurningRight;
+  char gap_21e7[1];
+  int field_21E8;
+  int field_21EC;
+  __int16 field_21F0;
+  char gap_21f2[2];
+  PlayingFilm PlayingFilm;
+  char gap_2218[4];
+  int field_221C;
+  char gap_2220[8];
+  int field_2228;
+  char gap_222c[76];
+  Matrix4x3 BoneMatrices[19];
+  Matrix4x3 WeaponMatrix;
+  char gap_2638[432];
+  int field_27E8;
+  char gap_27ec[4];
+  __int16 field_27F0;
+  __int16 field_27F2;
+  int field_27F4;
+  int field_27F8;
+  __int16 ShadowIndex;
+  char field_27FE;
+  char gap_27ff[1];
+  char field_2800;
+  char field_2801;
+  char ShieldParts[19];
+  char field_2815;
+  char gap_2816[2];
+  int field_2818;
+  __int16 field_281C;
+  char gap_281e[2];
+  int field_2820;
+  int field_2824;
+  int field_2828;
+  int field_282C;
+  __int16 field_2830;
+  __int16 field_2832;
+  char gap_2834[1];
+  char field_2835;
+  char field_2836;
+  char field_2837;
+} ActiveCharacter;
+
+typedef struct 
+{
+  char Name[128];
+  __int16 ImpactId;
+} ONCCImpact;
+
+typedef struct 
+{
+  int RecoilCompensation;
+  int BestAimingAngle;
+  int ShotGroupError;
+  int ShotGroupDecay;
+  int ShotingInaccuracyMultiplier;
+  __int16 MinDelayBetweenShots;
+  __int16 MaxDelayBetweenShots;
+} ONCCWeaponSkill;
+
+typedef struct 
+{
+  __int16 field_0;
+  __int16 field_2;
+  __int16 field_4;
+  __int16 field_6;
+  __int16 field_8;
+  __int16 field_A;
+  __int16 field_C;
+  __int16 field_E;
+  __int16 field_10;
+  __int16 field_12;
+  __int16 field_14;
+  char Loaded;
+  char field_17;
+  int field_18;
+  char HurtLightSoundName[32];
+  char HurtMediumSoundName[32];
+  char HurtHeavySoundName[32];
+  char DeathSoundName[32];
+  int HurtLightSoundPtr;
+  int HurtMediumSoundPtr;
+  int HurtHeavySoundPtr;
+  int DeathSoundPtr;
+}HurtParams;
+
+
+typedef struct
+{
+  int field_0;
+  int Gravity;
+  float JumpStartVelocity;
+  float MaxFallingVelocity;
+  float JumpAcceleration;
+  __int16 field_14;
+  __int16 JetpackTimer;
+  float MaxFallingHeightWithoutDamage;
+  float MaxFallingHeightWithDamage;
+  int ShadowTexture;
+  float ShadowMaxHeight;
+  float ShadowFadeHeight;
+  float ShadowSize1;
+  float ShadowSize2;
+  float ShadowSize3;
+  __int16 field_38;
+  __int16 field_3A;
+  int field_3C;
+  char field_40;
+  char field_41;
+  __int16 field_42;
+  int field_44;
+  int field_48;
+  int field_4C;
+  int field_50;
+  int field_54;
+  int field_58;
+  __int16 InverseHypoRegenerationRate;
+  __int16 field_5E;
+  int field_60;
+  int field_64;
+  int field_68;
+  int field_6C;
+  int field_70;
+  HurtParams HurtParams;
+  int AIOptions;
+  int AIRotationSpeed;
+  __int16 MinimalDazeTime;
+  __int16 MaximalDazeTime;
+  __int16 MinimalRealiseFiringSpreadTime;
+  __int16 MaximalRealiseFiringSpreadTime;
+  int MinimalFiringSpreadDodge;
+  int MaximalFiringSpreadDodge;
+  int field_138;
+  int field_13C;
+  int field_140;
+  int field_144;
+  int field_148;
+  int field_14C;
+  int field_150;
+  ONCCWeaponSkill WeaponSkills[13];
+  int field_28C;
+  int field_290;
+  int field_294;
+  int TauntChance;
+  int GoForGunChance;
+  int RunPickupChance;
+  __int16 CombatId;
+  __int16 MeleeId;
+  char SoundProbabilities[10];
+  char gap_2b2[2];
+  char TauntSound[32];
+  char AlertSound[32];
+  char StartleSound[32];
+  char CheckBodySound[32];
+  char PursueSound[32];
+  char CoverSound[32];
+  char SuperpunchSound[32];
+  char SuperKickSound[32];
+  char Super3Sound[32];
+  char Super4Sound[32];
+  int CentralVisionRange;
+  int PeripheralVisionRange;
+  int HFov;
+  int CentralVisionCurve;
+  int CentralVFOV;
+  int PeripheralVisionCurve;
+  int PeripheralVFOV;
+  int HostileThreatDefiniteTimer;
+  int HostileThreatStrongTimer;
+  int HostileThreatWeakTimer;
+  int FriendlyThreadDefiniteTimer;
+  int FriendlyThreatStrongTimer;
+  int FriendlyThreatWeakTimer;
+  int EarshotRadius;
+  int ONCV;
+  int ONCP;
+  int ONIA;
+  char ImpactsLoaded;
+  char gap_439[1];
+  __int16 ImpactModifier;
+  char ImpactModifierName[16];
+  ONCCImpact Impacts[15];
+  char gap_bea[2];
+  char DeathParticleName[64];
+  int DeathParticlePtr;
+  int BodySurfaceCache;
+  int TRBS;
+  int TRMA;
+  int CBPM;
+  int CBPI;
+  int PeaceTimer;
+  int IdleTimer1;
+  int IdleTimer2;
+  int BaseHealth;
+  int field_C54;
+  int MinBodySizeFactor;
+  int MaxBodySizeFactor;
+  int field_C60[7];
+  int field_C7C;
+  int TRAC;
+  int TRSC;
+  char gap_c88[2];
+  __int16 DeathDeleteTimer;
+  char WeaponHand;
+  char HasDaodanPowers;
+  char HasSuperShield;
+  char CantTouchThis;
+} ONCC;
+
+
+/*  398 */ typedef struct 
+{
+  char Number;
+  char gap_1[1];
+  __int16 ActiveCharacterIndex;
+  int Flags;
+  int field_8;
+  ONCC* ONCC;
+  __int16 field_10;
+  __int16 Team;
+  char Name[32];
+  int BodySize;
+  int Health;
+  int MaxHealth;
+  __int16 AISA_ID;
+  char gap_42[2];
+  int field_44;
+  char ScriptNew[32];
+  char ScriptDie[32];
+  char ScriptSeen[32];
+  char ScriptAlarm[32];
+  char ScriptHurt[32];
+  char ScriptDefeat[32];
+  char ScriptLowAmmo[32];
+  //char ScriptNoPath[32];
+  char ScriptNoPath[28];
+  int RegenHax;
+  Vector3 Position;
+  Vector3 LastPosition;
+  Vector3 Location;
+  float Facing;
+  float DesiredFacing;
+  float CosmeticFacing;
+  int field_178;
+  int field_17C;
+  int field_180;
+  int BNV;
+  int GraphNode;
+  int PelvisHeight;
+  int field_190;
+  Inventory Inventory;
+  Vector3 Velocity;
+  int field_1D0;
+  int field_1D4;
+  int field_1D8;
+  int field_1DC;
+  int field_1E0;
+  int IdleDelay;
+  int field_1E8;
+  char gap_1ec[4];
+  int CombatFlags;
+  int JobId;
+  int Goal;
+  int field_1FC;
+  __int16 field_200;
+  char gap_202[6];
+  int field_208;
+  char gap_20c[588];
+  char field_458;
+  char gap_459[352];
+  char field_5B9;
+  char gap_5ba[14];
+  char field_5C8;
+  char gap_5c9[359];
+  int field_730;
+  int field_734;
+  int field_738;
+  char gap_73c[380];
+  char CombatState;
+  char gap_8b9[7];
+  PatrolPathOSD PatrolPathOSD_;
+  PatrolPathPoint PatrolPathPoints[64];
+  char gap_de8[392];
+  int Combat_StatePtr;
+  AI2KnowledgeState KnowledgeState_;
+  char gap_f84[4];
+  int AlertDecayTimer;
+  int field_F8C;
+  int field_F90;
+  int AlertLevel;
+  int MinimalAlertLevel;
+  int StartJobAlertLevel;
+  int InvestigatingAlertLevel;
+  int StartleTime;
+  int field_FA8;
+  int field_FAC;
+  int field_FB0;
+  int Pursue1;
+  int Pursue2;
+  int Pursue3;
+  int Pursue4;
+  int Pursue5;
+  char field_FC8;
+  char gap_fc9[3];
+  int field_FCC;
+  char gap_fd0[8];
+  int AlarmGroups;
+  int field_FDC;
+  int field_FE0;
+  int field_FE4;
+  int field_FE8;
+  int field_FEC;
+  int field_FF0;
+  int field_FF4;
+  int field_FF8;
+  int field_FFC;
+  int field_1000;
+  int field_1004;
+  int field_1008;
+  __int16 field_100C;
+  __int16 field_100E;
+  int field_1010;
+  int field_1014;
+  int field_1018;
+  char field_101C;
+  char gap_101d[3];
+  int DazeTimer;
+  __int16 field_1024;
+  __int16 field_1026;
+  __int16 field_1028;
+  __int16 field_102A;
+  int field_102C;
+  int field_1030;
+  int field_1034;
+  char gap_1038[20];
+  int field_104C;
+  int field_1050;
+  int field_1054;
+  int field_1058;
+  int field_105C;
+  int field_1060;
+  int field_1064;
+  int MeleePtr;
+  int field_106C;
+  __int16 field_1070;
+  char gap_1072[126];
+  int Path_DestinationType;
+  int Path_TypeSpecificInfo;
+  char Path_MovementState;
+  char gap_10f9[3];
+  int Path_OrientTo;
+  Vector3 Path_DestinationPoint;
+  int field_110C;
+  int field_1110;
+  Vector3 field_1114;
+  Vector3 field_1120;
+  char Path_State;
+  char field_112D;
+  char field_112E;
+  char gap_112f[1];
+  Vector3 field_1130;
+  int field_113C;
+  int field_1140;
+  int field_1144;
+  char field_1148;
+  char gap_1149[3];
+  int Path_CurrentNodeNumber;
+  int Path_NumNodes;
+  Vector3 Path_From;
+  Vector3 Path_To;
+  int Path_GraphFromNodePtr;
+  int Path_GraphToNodePtr;
+  int field_1174;
+  char gap_1178[12];
+  int field_1184;
+  char gap_1188[776];
+  int Path_LastError;
+  int Path_RepathDelay;
+  int Path_Repaths;
+  int Path_RepathDecayTimer;
+  int field_14A0;
+  int MovementMode;
+  char field_14A8;
+  char gap_14a9[3];
+  int field_14AC;
+  int MovementModifiers;
+  int field_14B4;
+  char gap_14b8[188];
+  int field_1574;
+  int FacingState;
+  int FacingAt_Destination;
+  char field_1580;
+  char field_1581;
+  char gap_1582[2];
+  int Aiming_At_Type;
+  Vector3 Aiming_At;
+  int field_1594;
+  int field_1598;
+  int field_159C;
+  int GlancingState;
+  Vector3 GlancingDirOrPos;
+  char field_15B0;
+  char gap_15b1[3];
+  int field_15B4;
+  int field_15B8;
+  int field_15BC;
+  int field_15C0;
+  int field_15C4;
+  int field_15C8;
+  int field_15CC;
+  int field_15D0;
+  int field_15D4;
+  int field_15D8;
+  int field_15DC;
+  int field_15E0;
+  int field_15E4;
+  int field_15E8;
+  int AIBlockFunction;
+  char field_15F0;
+  char field_15F1;
+  char field_15F2;
+  char gap_15f3[1];
+  int field_15F4;
+  int field_15F8;
+  int field_15FC;
+  int field_1600;
+  char gap_1604[4];
+  int field_1608;
+  int field_160C;
+  char gap_1610[4];
+  int field_1614;
+  char gap_1618[20];
+  int field_162C;
+  int field_1630;
+  int field_1634;
+  int field_1638;
+  int field_163C;
+  int field_1640;
+  __int16 field_1644;
+  char gap_1646[2];
+  BoundingBox BoundingBox_;
+  char gap_1660[4];
+  int BossShieldPower;
+  int field_1668;
+  char gap_166c[4];
+  int Kills;
+  int Damage;
+  int field_1678;
+  int field_167C;
+  int CurrentConsoleActionMarker;
+  int field_1684;
+  __int16 field_1688;
+  __int16 field_168A;
+  int field_168C;
+  int field_1690;
+  char field_1694;
+  char field_1695;
+  __int16 field_1696;
+  int field_1698;
+  int field_169C;
+} Character;
+
+typedef struct 
+{
+  int Nodes;
+  int NodeCount;
+  int field_8;
+  int TraverseQueueHead;
+  int field_10;
+  int CacheLrar;
+  int CacheMem;
+  int field_1C;
+  int field_20;
+  int field_24;
+}PHGraph
+;
+
+typedef struct
+{
+  int TimerMode;
+  char TimerName[32];
+  int TimerDuration;
+  char field_28;
+  char gap_29[3];
+  int field_2C;
+  Letterbox Letterbox;
+  char gap_3a[2];
+  char field_3C;
+  char gap_3d[3];
+  int field_40;
+  int CutsceneSyncMark;
+  char field_48;
+  char gap_49[3];
+  int field_4C;
+  int field_50;
+  int field_54;
+  int field_58;
+  int field_5C;
+  int field_60;
+  int field_64;
+  int field_68;
+  int field_6C;
+  int field_70;
+  int FadeStartTime;
+  int FadeEndTime;
+  char field_7C;
+  char gap_7d[3];
+  int Camera;
+  PHGraph PathFindingGraph;
+  Character* PlayerCharacter;
+  int field_B0;
+  char gap_b4[4];
+  GameInput Input;
+  int field_E8;
+  int field_EC;
+  char ScreenShotEveryFrame;
+  char gap_f1[7];
+  char field_F8;
+  char field_F9;
+  char field_FA;
+  char gap_fb[1];
+  int field_FC;
+  int field_100;
+  char field_104;
+  char gap_105[3];
+  int SlowMotion;
+  char gap_10c[4];
+  int field_110;
+  int field_114;
+  char SplashScreenTextureName[32];
+  char field_138;
+  char gap_139[7];
+  int field_140;
+  int GameTime;
+  int field_148;
+  int field_14C;
+  int Level;
+  int field_154;
+  MotionBlur MotionBlur_[64];
+  int MotionBlurCount;
+  __int16 field_125C;
+  __int16 field_125E;
+  Character CharacterStorage[128];
+  __int16 CharacterCount;
+  char gap_b6262[2];
+  int field_B6264;
+  ActiveCharacter ActiveCharacters[64];
+  __int16 ActiveCharacterCount;
+  Shadow Shadows[32];
+  __int16 field_1670EA;
+  int ShadowCount;
+  int ActiveCharacterList[128];
+  int ActiveCharacterListCount;
+  int ActiveCharacterListLock;
+  int LivingCharacterList[128];
+  int LivingCharacterListCount;
+  int LivingCharacterListLock;
+  Character* PresentCharacterList[128];
+  int PresentCharacterListCount;
+  int PresentCharacterListLock;
+  int ObjectList;
+  DoorArray DoorArray_;
+  Sky Sky_;
+  int field_1679A4;
+  int Triggers;
+  char IsGamePaused;
+  char IsInputEnabled;
+  char field_1679AE;
+  char gap_1679af[1];
+  int LastInputActions1;
+  int LastInputActions2;
+  int field_1679B8;
+  int WinLose;
+  int field_1679C0;
+  int field_1679C4;
+  int field_1679C8;
+  int field_1679CC;
+  int field_1679D0;
+  int field_1679D4;
+  __int16 field_1679D8;
+  char gap_1679da[2];
+  int field_1679DC;
+} GameState;
+#endif
Index: /Daodan/MSVC/Oni_Persistence.h
===================================================================
--- /Daodan/MSVC/Oni_Persistence.h	(revision 567)
+++ /Daodan/MSVC/Oni_Persistence.h	(revision 567)
@@ -0,0 +1,11 @@
+#pragma once
+#ifndef ONI_PERSISTENCE_H
+#define ONI_PERSISTENCE_H
+
+//#include <stdint.h>
+#include "Daodan.h"
+/*
+float ONICALL ONrPersist_GetGamma();
+uint8_t ONICALL ONrPersist_GetWonGame();
+*/
+#endif
Index: /Daodan/MSVC/Oni_Symbols.c
===================================================================
--- /Daodan/MSVC/Oni_Symbols.c	(revision 567)
+++ /Daodan/MSVC/Oni_Symbols.c	(revision 567)
@@ -0,0 +1,207 @@
+/*;symbol(name, value)  .global name; .set name, 0x00400000 + value
+symbol macro name, value
+.global name
+mov name, value
+endm
+
+;MSVC6.0 stdlib
+DefVar( , _oni_malloc                               , 0x0051fc24 )
+DefVar( , _oni_free                                 , 0x0051fbf5 )
+
+DefVar( , _oni_fopen                                , 0x0051ea9f )
+DefVar( , _oni_fflush                               , 0x0051eab2 )
+DefVar( , _oni_fprintf                              , 0x0051ebbf )
+DefVar( , _oni_vsprintf                             , 0x0051e860 )
+
+;Oni Engine
+DefVar( , _ONiMain                                  , 0x004d3280 )
+symbol ( @ONrPlatform_Initialize@4                 , 0x0050f670 )
+DefVar( , _ONrPlatform_WindowProc@16                , 0x0050f7a0 )
+symbol ( @ONrCheater@4                             , 0x004f5c30 )
+
+DefVar( , _g_Instance                               , 0x0021f9e4 )
+DefVar( , _ONgPlatformData                          , 0x0023100c )
+DefVar( , _ONgGameState                             , 0x005ece7c )
+DefVar( , _ai2_deaf								   , 0x005ec0c1 )
+DefVar( , _AKgDebug_DebugMaps                       , 0x002b2204 )
+DefVar( , _BFgDebugFileEnable                       , 0x0055c8d0 )
+DefVar( , _SSgSearchOnDisk                          , 0x005eb758 )
+
+DefVar( , _opt_sound                                , 0x002370fc )
+DefVar( , _opt_ignore_private_data                  , 0x002370f0 )
+
+;Oni Persistance
+symbol ( @ONrPersist_GetGamma@0                    , 0x0050f450 )
+symbol ( @ONrPersist_GetWonGame@0                  , 0x0050f660 )
+
+;BFW_Utility
+DefVar( , _UUrStartupMessage                        , 0x00424860 )
+symbol ( @UUrMachineTime_High@0                    , 0x00426480 )
+symbol ( @UUrMachineTime_High_Frequency@0          , 0x004264b0 )
+symbol ( @UUrMachineTime_Sixtieths@0               , 0x004263e0 )
+symbol ( @UUrPlatform_Initialize@0                 , 0x00426010 )
+symbol ( @UUrPlatform_Terminate@0                  , 0x00426310 )
+DefVar( , _AUrMessageBox                            , 0x004378c0 )
+
+DefVar( , _ONgFileStartup                           , 0x005711b8 )
+
+LMotoko
+
+DefVar( , _M3gResolutionSwitch                      , 0x00531634 )
+
+L OpenGL
+symbol ( @gl_enumerate_valid_display_modes@4       , 0x004083a0 )
+symbol ( @gl_platform_set_pixel_format@4           , 0x00407b50 )
+symbol ( @gl_platform_initialize@0                 , 0x00407da0 )
+
+
+
+; Character
+symbol ( @ONrGameState_NewCharacter@16             , 0x004dac50 )
+symbol ( @ONrGameState_GetPlayerCharacter@0        , 0x004b63a7 )
+symbol ( @ONrGetActiveCharacter@4				   , 0x004f1180 )
+
+; Console
+symbol ( @TSrContext_DrawText@20                   , 0x0042DF00 )
+symbol ( @TSrContext_New@24                        , 0x0042EA30 )
+symbol ( @TMrInstance_GetDataPtr@12                , 0x004232E0 )
+symbol ( @TMrInstance_GetInstanceName@4			   , 0x00423D90 )
+symbol ( @COrTextArea_Print@28                     , 0x00431340 )
+
+DefVar( , _COgConsoleLines                          , 0x005cb468 )
+DefVar( , _COgFadeTimeValue                         , 0x00533f68 )
+DefVar( , _COgDefaultTextShade                      , 0x00533f70 )
+DefVar( , _COgDefaultTextShadow                     , 0x00533f74 )
+
+DefVar( , _TStColorFormattingCharacter			   , 0x00533DA0 )
+
+symbol ( @COrMessage_Print@12					   , 0x004304B0 )
+symbol ( @COrMessage_Remove@4					   , 0x00430640 )
+
+; ScriptingLanguage
+;symbol ( @SLrScript_Command_Register_ReturnType@20 , 0x00477b20 )
+;symbol ( @SLrScript_Command_Register_Void@16       , 0x00477b40 )
+;symbol ( @SLrGlobalVariable_Register_Int32@12      , 0x00477e30 )
+;symbol ( @SLrGlobalVariable_Register_Float@12      , 0x00477ec0 )
+;symbol ( @SLrGlobalVariable_Register_String@12      , 0x00477fe0 )
+
+; Messages
+symbol ( @SSrMessage_Find@4						   , 0x0047F550 )
+symbol ( @ONiGameState_FindAutoPromptMessage@8	   , 0x004FDBE0 )
+
+; Data
+symbol ( @TMrInstance_GetDataPtr_List@16		   , 0x00423540 )
+*/
+#include "Daodan.h"
+#include "Oni.h"
+
+//////////////////////////////////////////////////////////////////////
+//Functions need:
+//In Oni_Symbols.c
+//1. DefFunc( name, address )
+//In Oni_Symbols.h
+//1. typedef return_type ( [calling_convention] *_name)( arguments );
+//2. ExtFunc( name )
+//////////////////////////////////////////////////////////////////////
+//Variables need:
+//In Oni_Symbols.c
+//1. DefVar( type, name, address );
+//In Oni_Symbols.h
+//1. DefVar( type, name, address <ignored> );
+//2. #define name *(_name)
+//Please do not use variable names that could be parts of other
+//names like "gl". That will screw things up. If you insist on doing
+//this, omit the #define step and dereference them yourself.
+//////////////////////////////////////////////////////////////////////
+//Please keep everything alphabatized. Kthanxbai
+//////////////////////////////////////////////////////////////////////
+
+#define DefFunc(name, address) _##name name = (_##name)address
+DefFunc( gl_enumerate_valid_display_modes       , 0x004083a0 );
+DefFunc( gl_platform_set_pixel_format           , 0x00407b50 );
+DefFunc( gl_platform_initialize                 , 0x00407da0 );
+
+DefFunc( oni_fopen                              , 0x0051ea9f );
+DefFunc( oni_fflush                             , 0x0051eab2 );
+DefFunc( oni_fprintf                            , 0x0051ebbf );
+
+DefFunc( AUrMessageBox                          , 0x004378c0 );
+
+DefFunc( COrMessage_Print						, 0x004304B0 );
+DefFunc( COrTextArea_Print						, 0x00431340 );
+
+DefFunc( ONiGameState_FindAutoPromptMessage		, 0x004FDBE0 );
+DefFunc( ONiMain								, 0x004d3280 );
+
+DefFunc( ONrCheater                             , 0x004f5c30 );
+DefFunc( ONrGameState_NewCharacter				, 0x004dac50 );
+DefFunc( ONrGetActiveCharacter					, 0x004f1180 );
+DefFunc( ONrPersist_GetGamma                    , 0x0050f450 );
+DefFunc( ONrPersist_GetWonGame                  , 0x0050f660 );
+DefFunc( ONrPlatform_Initialize					, 0x0050f670 );
+DefFunc( ONrPlatform_WindowProc					, 0x0050f7a0 );
+
+DefFunc( SLrGlobalVariable_Register_Int32		,	0x0477e30);
+DefFunc( SLrGlobalVariable_Register_Float		,	0x0477ec0);
+DefFunc( SLrGlobalVariable_Register_String		,	0x0477fe0);
+DefFunc( SLrScript_Command_Register_ReturnType	,	0x0477b20);
+DefFunc( SLrScript_Command_Register_Void		,   0x0477b40);
+
+DefFunc( SSrMessage_Find						, 0x0047F550 );
+
+DefFunc( TMrInstance_GetInstanceName			, 0x00423D90 );
+DefFunc( TMrInstance_GetDataPtr					, 0x004232E0 );
+
+DefFunc( TSrContext_DrawText                   , 0x0042DF00 );
+DefFunc( TSrContext_New                        , 0x0042EA30 );
+
+
+DefFunc( UUrMachineTime_High					, 0x04026480 );
+DefFunc( UUrMachineTime_High_Frequency			, 0x040264b0 );
+DefFunc( UUrMachineTime_Sixtieths				, 0x040263e0 );
+DefFunc( UUrPlatform_Initialize					, 0x04026010 );
+DefFunc( UUrPlatform_Terminate					, 0x04026310 );
+DefFunc( UUrStartupMessage                      , 0x00424860 );
+
+#define DefVar(type, name, address) type* _##name = (type*)address
+
+DefVar( onibool,		ai2_deaf,				0x005ec0c1 );
+
+DefVar(	HINSTANCE,		g_Instance,				0x0051f9e4 );
+
+DefVar( gl_api_t*,		gl_api,					0x00560604 );
+DefVar( gl_engine_t*,	gl_eng,					0x00560600 );
+DefVar( WORD*,			gl_gamma_ramp,			0x0055fdfc );
+DefVar( int,			gl_gamma_ramp_valid,	0x005603fc );
+
+DefVar(	char,			opt_ignore_private_data,0x006370f0 );
+DefVar( char,			opt_sound,				0x006370fc ); 
+
+DefVar( char,			AKgDebug_DebugMaps,		0x002b2204 );
+
+DefVar( bool,			BFgDebugFileEnable,		0x0055c8d0 );
+
+DefVar( uint32_t,		COgConsoleLines,		0x005cb468 );
+DefVar( uint32_t,		COgDefaultTextShade,	0x00533f70 );
+DefVar( uint32_t,		COgDefaultTextShadow,	0x00533f74 );
+DefVar( uint32_t,		COgFadeTimeValue,		0x00533f68 );
+
+DefVar( FILE*,			ONgFileStartup,			0x005711b8 );
+DefVar( GameState*,		ONgGameState,			0x005ece7c );
+DefVar( ONtPlatformData,ONgPlatformData,		0x0053100c );
+
+DefVar( char,			M3gResolutionSwitch,	0x00531634 );
+
+DefVar( bool,			SSgSearchOnDisk,		0x005eb758 );
+
+/*
+extern gl_engine_t* gl;
+extern gl_api_t* gl_api;
+extern WORD gl_gamma_ramp[3 * 256];
+extern int gl_gamma_ramp_valid;
+*/
+
+#undef DefVar
+void _DDrDefine_Symbols() {
+
+}
Index: /Daodan/MSVC/Oni_Symbols.h
===================================================================
--- /Daodan/MSVC/Oni_Symbols.h	(revision 567)
+++ /Daodan/MSVC/Oni_Symbols.h	(revision 567)
@@ -0,0 +1,163 @@
+#ifndef ONI_SYMBOLS_H 
+#define ONI_SYMBOLS_H
+#include "bool.h"
+#include <stdio.h>
+#include "oni_gl.h"
+#include "Oni_Character.h"
+#include "BFW_ScriptLang.h"
+#define DefVar(type, name, address) extern type* _##name
+//variables
+
+///BADBAD DONT DO THIS
+extern onibool* _ai2_deaf;
+extern char* _AKgDebug_DebugMaps;
+extern HINSTANCE* _g_Instance;
+extern ONtPlatformData* _ONgPlatformData;
+extern char* _opt_ignore_private_data;
+extern char* _opt_sound;
+
+//DO THIS INSTEAD!
+DefVar( GameState* , ONgGameState          , 0x005ece7c );
+
+DefVar( bool,			BFgDebugFileEnable,		0x0055c8d0 );
+DefVar( bool,			SSgSearchOnDisk,		0x005eb758);
+DefVar( char,			M3gResolutionSwitch,	0x00531634);
+DefVar( gl_engine_t*,	gl_eng,					0x00560600 );
+DefVar( gl_api_t*,		gl_api,					0x00560604 );
+DefVar( WORD*,			gl_gamma_ramp,			0x0055fdfc );
+DefVar( int,			gl_gamma_ramp_valid,	0x005603fc );
+DefVar( uint32_t, COgConsoleLines                    , 0x005cb468 );
+DefVar( uint32_t, COgFadeTimeValue                         , 0x00533f68 );
+DefVar( uint32_t, COgDefaultTextShade                      , 0x00533f70 );
+DefVar( uint32_t, COgDefaultTextShadow                     , 0x00533f74 );
+DefVar( FILE*, ONgFileStartup                           , 0x005711b8 );
+
+#undef DefVar
+//Yes, I'm aware that there are a few ways this could go wrong
+//but in the interests of neatness and not having to go through and rename all the variables
+//and use annoying dereferencing, this will do.
+
+//...too bad there is no way to nest #defines...
+#define AKgDebug_DebugMaps (*_AKgDebug_DebugMaps)
+#define ai2_deaf (*_ai2_deaf)
+#define g_Instance (*_g_Instance)
+#define M3gResolutionSwitch (*_M3gResolutionSwitch)
+#define ONgGameState (*_ONgGameState)
+#define ONgPlatformData (*_ONgPlatformData)
+#define opt_ignore_private_data (*_opt_ignore_private_data)
+#define opt_sound (*_opt_sound)
+#define BFgDebugFileEnable (*_BFgDebugFileEnable)
+#define SSgSearchOnDisk (*_SSgSearchOnDisk)
+#define gl_gamma_ramp (*_gl_gamma_ramp)
+#define gl_gamma_ramp_valid (*_gl_gamma_ramp_valid)
+#define gl_api (*_gl_api)
+#define gl_eng (*_gl_eng)
+#define COgConsoleLines (*_COgConsoleLines)
+#define COgFadeTimeValue (*_COgFadeTimeValue)
+#define COgDefaultTextShade (*_COgDefaultTextShade)
+#define COgDefaultTextShadow (*_COgDefaultTextShadow)
+#define ONgFileStartup (*_ONgFileStartup)
+#undef $
+
+//functions
+//__fastcall isn't neccessary if you specify the correct calling convention.
+typedef int64_t		( *_UUrMachineTime_High)();
+typedef double		( *_UUrMachineTime_High_Frequency)();
+typedef int64_t		( *_UUrMachineTime_Sixtieths)();
+typedef void		( *_UUrPlatform_Initialize)();
+typedef void		( *_UUrPlatform_Terminate)();
+
+typedef FILE*		( __cdecl *_oni_fopen)(const char*, const char*);
+typedef int			( __cdecl *_oni_fprintf)(FILE*, const char*, ...);
+typedef int			( __cdecl *_oni_fflush)(FILE*); 
+
+typedef void		( __cdecl *_ONiMain)(int ArgCount, char *ArgList[]);
+typedef short		( *_ONrPlatform_Initialize)(ONtPlatformData *PlatformData);
+typedef LRESULT		( CALLBACK *_ONrPlatform_WindowProc)(HWND Window, UINT Message, 
+														  WPARAM WParam, LPARAM LParam);
+typedef unsigned int ( *_gl_enumerate_valid_display_modes)(M3tDisplayMode modes[16]);
+typedef int			( *_gl_platform_set_pixel_format)(HDC hdc);
+typedef int			( *_gl_platform_initialize)();
+
+typedef float		( *_ONrPersist_GetGamma)();
+typedef uint8_t		( *_ONrPersist_GetWonGame)();
+
+typedef void		( __cdecl *_UUrStartupMessage)(const char* fmt, ...);
+typedef int16_t		( *_ONrGameState_NewCharacter)(void* CHAR, void* AISA, 
+												   void* flag, uint32_t* list_location);
+typedef ActiveCharacter*	( *_ONrGetActiveCharacter)(void* CharacterPtr);
+//int16_t ONICALL ONrGameState_GetPlayerCharacter();
+
+typedef void		( *_COrTextArea_Print)(uint32_t area, uint32_t priority, 
+										   uint32_t textshade, uint32_t textshadowshade, 
+										   const char* text, uint32_t unk_alwaws_0, uint32_t fadetime);
+typedef uint8_t		( *_ONrCheater)(uint32_t cheat);
+typedef int			( __cdecl *_AUrMessageBox)(int Buttons, char *Message, ...);
+typedef char*		( *_SSrMessage_Find)(char* message_key); //Returns a prompt message from a message key
+typedef void		( *_ONiGameState_FindAutoPromptMessage)(char* Note, void* ptr);
+
+typedef uint16_t (ONICALL *sl_func)(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret);
+typedef uint16_t (ONICALL *_SLrScript_Command_Register_ReturnType)(char* name, char* desc, char* argfmt, sl_type type, sl_func callback);
+typedef uint16_t (ONICALL *_SLrScript_Command_Register_Void)(char* name, char* desc, char* argfmt, sl_func callback);
+typedef uint16_t (ONICALL *_SLrGlobalVariable_Register_Int32)(char* name, char* desc, int32_t* data);
+typedef uint16_t (ONICALL *_SLrGlobalVariable_Register_Float)(char* name, char* desc, float* data);
+typedef uint16_t (ONICALL *_SLrGlobalVariable_Register_String)(char* name, char* desc, char* data);
+
+typedef int ( *_COrMessage_Print)(char* Message, char* Key, void* noidea);
+
+typedef int16_t ( *_TMrInstance_GetDataPtr)(int tag, char* name, void* pointer);
+typedef char*	( *_TMrInstance_GetInstanceName)(void* InstancePointer);
+
+typedef int16_t ( *_TSrContext_DrawText)(uint32_t TSrContext, char* Text, int alpha, uint32_t usuallyzero, void* pRect);
+//int16_t TSrContext_New	( TSFF*, size 7, ??? 1, ??? 1, ??? 0, TSrContext*);
+typedef int16_t ( *_TSrContext_New)( void* FontInstance, int size, int hthsik1,int hthsik2,int hthsik3, void* TSrContext); 
+
+
+#define ExtFunc(name) extern _##name name
+ExtFunc(SLrScript_Command_Register_ReturnType);
+ExtFunc(SLrScript_Command_Register_Void);
+ExtFunc(SLrGlobalVariable_Register_Int32);
+ExtFunc(SLrGlobalVariable_Register_Float);
+ExtFunc(SLrGlobalVariable_Register_String);
+
+
+extern _UUrMachineTime_High UUrMachineTime_High;
+extern _UUrMachineTime_High_Frequency UUrMachineTime_High_Frequency;
+extern _UUrMachineTime_Sixtieths UUrMachineTime_Sixtieths;
+extern _UUrPlatform_Initialize UUrPlatform_Initialize;
+extern _UUrPlatform_Terminate UUrPlatform_Terminate;
+
+extern _oni_fopen oni_fopen;
+extern _oni_fprintf oni_fprintf;
+extern _oni_fflush oni_fflush;
+
+extern _ONiMain ONiMain;
+extern _ONrPlatform_Initialize ONrPlatform_Initialize;
+extern _ONrPlatform_WindowProc ONrPlatform_WindowProc;
+
+ExtFunc(COrMessage_Print);
+
+ExtFunc(TMrInstance_GetDataPtr);
+ExtFunc(TMrInstance_GetInstanceName);
+
+ExtFunc(gl_enumerate_valid_display_modes);
+ExtFunc(gl_platform_set_pixel_format);
+ExtFunc(gl_platform_initialize);
+ExtFunc(ONrPersist_GetGamma);
+ExtFunc(ONrPersist_GetWonGame);
+ExtFunc(UUrStartupMessage);
+
+ExtFunc(ONrGameState_NewCharacter);
+ExtFunc(ONrGetActiveCharacter);
+
+ExtFunc(COrTextArea_Print);
+
+ExtFunc(ONrCheater);
+ExtFunc(AUrMessageBox);
+
+ExtFunc(SSrMessage_Find);
+ExtFunc(ONiGameState_FindAutoPromptMessage);
+
+ExtFunc(TSrContext_DrawText);
+ExtFunc(TSrContext_New);
+#endif
Index: /Daodan/MSVC/binkw32.def
===================================================================
--- /Daodan/MSVC/binkw32.def	(revision 567)
+++ /Daodan/MSVC/binkw32.def	(revision 567)
@@ -0,0 +1,89 @@
+LIBRARY
+
+EXPORTS
+
+        _BinkBufferBlit@12          = REALBINK._BinkBufferBlit@12          @1
+	_BinkBufferCheckWinPos@12   = REALBINK._BinkBufferCheckWinPos@12   @2
+	_BinkBufferClear@8          = REALBINK._BinkBufferClear@8          @3
+	_BinkBufferClose@4          = REALBINK._BinkBufferClose@4          @4
+	_BinkBufferGetDescription@4 = REALBINK._BinkBufferGetDescription@4 @5
+	_BinkBufferGetError@0       = REALBINK._BinkBufferGetError@0       @6
+	_BinkBufferLock@4           = REALBINK._BinkBufferLock@4           @7
+	_BinkBufferOpen@16          = REALBINK._BinkBufferOpen@16          @8
+	_BinkBufferSetDirectDraw@8  = REALBINK._BinkBufferSetDirectDraw@8  @9
+	_BinkBufferSetHWND@8        = REALBINK._BinkBufferSetHWND@8        @10
+	_BinkBufferSetOffset@12     = REALBINK._BinkBufferSetOffset@12     @11
+	_BinkBufferSetResolution@12 = REALBINK._BinkBufferSetResolution@12 @12
+	_BinkBufferSetScale@12      = REALBINK._BinkBufferSetScale@12      @13
+	_BinkBufferUnlock@4         = REALBINK._BinkBufferUnlock@4         @14
+	_BinkCheckCursor@20         = REALBINK._BinkCheckCursor@20         @15
+	_BinkClose@4                = REALBINK._BinkClose@4                @16
+	_BinkCloseTrack@4           = REALBINK._BinkCloseTrack@4           @17
+	_BinkCopyToBuffer@28        = REALBINK._BinkCopyToBuffer@28        @18
+	_BinkDDSurfaceType@4        = REALBINK._BinkDDSurfaceType@4        @19
+	_BinkDoFrame@4              = REALBINK._BinkDoFrame@4              @20
+	_BinkGetError@0             = REALBINK._BinkGetError@0             @21
+	_BinkGetKeyFrame@12         = REALBINK._BinkGetKeyFrame@12         @22
+	_BinkGetRealtime@12         = REALBINK._BinkGetRealtime@12         @23
+	_BinkGetRects@8             = REALBINK._BinkGetRects@8             @24
+	_BinkGetSummary@8           = REALBINK._BinkGetSummary@8           @25
+	_BinkGetTrackData@8         = REALBINK._BinkGetTrackData@8         @26
+	_BinkGetTrackID@8           = REALBINK._BinkGetTrackID@8           @27
+	_BinkGetTrackMaxSize@8      = REALBINK._BinkGetTrackMaxSize@8      @28
+	_BinkGetTrackType@8         = REALBINK._BinkGetTrackType@8         @29
+	_BinkGoto@12                = REALBINK._BinkGoto@12                @30
+	_BinkIsSoftwareCursor@8     = REALBINK._BinkIsSoftwareCursor@8     @31
+	_BinkLogoAddress@0          = REALBINK._BinkLogoAddress@0          @32
+	_BinkNextFrame@4            = REALBINK._BinkNextFrame@4            @33
+	_BinkOpen@8                 = REALBINK._BinkOpen@8                 @34
+	_BinkOpenDirectSound@4      = REALBINK._BinkOpenDirectSound@4      @35
+	_BinkOpenMiles@4            = REALBINK._BinkOpenMiles@4            @36
+	_BinkOpenTrack@8            = REALBINK._BinkOpenTrack@8            @37
+	_BinkOpenWaveOut@4          = REALBINK._BinkOpenWaveOut@4          @38
+	_BinkPause@8                = REALBINK._BinkPause@8                @39
+	_BinkRestoreCursor@4        = REALBINK._BinkRestoreCursor@4        @40
+	_BinkService@4              = REALBINK._BinkService@4              @41
+	_BinkSetError@4             = REALBINK._BinkSetError@4             @42
+	_BinkSetFrameRate@8         = REALBINK._BinkSetFrameRate@8         @43
+	_BinkSetIO@4                = REALBINK._BinkSetIO@4                @44
+	_BinkSetIOSize@4            = REALBINK._BinkSetIOSize@4            @45
+	_BinkSetPan@8               = REALBINK._BinkSetPan@8               @46
+	_BinkSetSimulate@4          = REALBINK._BinkSetSimulate@4          @47
+	_BinkSetSoundOnOff@8        = REALBINK._BinkSetSoundOnOff@8        @48
+	_BinkSetSoundSystem@8       = REALBINK._BinkSetSoundSystem@8       @49
+	_BinkSetSoundTrack@4        = REALBINK._BinkSetSoundTrack@4        @50
+	_BinkSetVideoOnOff@8        = REALBINK._BinkSetVideoOnOff@8        @51
+	_BinkSetVolume@8            = REALBINK._BinkSetVolume@8            @52
+	_BinkWait@4                 = REALBINK._BinkWait@4                 @53
+	_ExpandBink@56              = REALBINK._ExpandBink@56              @54
+	_ExpandBundleSizes@8        = REALBINK._ExpandBundleSizes@8        @55
+	_RADSetMemory@8             = REALBINK._RADSetMemory@8             @56
+	_RADTimerRead@0             = REALBINK._RADTimerRead@0             @57
+	_YUV_blit_16a1bpp@52        = REALBINK._YUV_blit_16a1bpp@52        @58
+	_YUV_blit_16a1bpp_mask@52   = REALBINK._YUV_blit_16a1bpp_mask@52   @59
+	_YUV_blit_16a4bpp@52        = REALBINK._YUV_blit_16a4bpp@52        @60
+	_YUV_blit_16a4bpp_mask@52   = REALBINK._YUV_blit_16a4bpp_mask@52   @61
+	_YUV_blit_16bpp@48          = REALBINK._YUV_blit_16bpp@48          @62
+	_YUV_blit_16bpp_mask@48     = REALBINK._YUV_blit_16bpp_mask@48     @63
+	_YUV_blit_24bpp@48          = REALBINK._YUV_blit_24bpp@48          @64
+	_YUV_blit_24bpp_mask@48     = REALBINK._YUV_blit_24bpp_mask@48     @65
+	_YUV_blit_24rbpp@48         = REALBINK._YUV_blit_24rbpp@48         @66
+	_YUV_blit_24rbpp_mask@48    = REALBINK._YUV_blit_24rbpp_mask@48    @67
+	_YUV_blit_32abpp@52         = REALBINK._YUV_blit_32abpp@52         @68
+	_YUV_blit_32abpp_mask@52    = REALBINK._YUV_blit_32abpp_mask@52    @69
+	_YUV_blit_32bpp@48          = REALBINK._YUV_blit_32bpp@48          @70
+	_YUV_blit_32bpp_mask@48     = REALBINK._YUV_blit_32bpp_mask@48     @71
+	_YUV_blit_32rabpp@52        = REALBINK._YUV_blit_32rabpp@52        @72
+	_YUV_blit_32rabpp_mask@52   = REALBINK._YUV_blit_32rabpp_mask@52   @73
+	_YUV_blit_32rbpp@48         = REALBINK._YUV_blit_32rbpp@48         @74
+	_YUV_blit_32rbpp_mask@48    = REALBINK._YUV_blit_32rbpp_mask@48    @75
+	_YUV_blit_UYVY@48           = REALBINK._YUV_blit_UYVY@48           @76
+	_YUV_blit_UYVY_mask@48      = REALBINK._YUV_blit_UYVY_mask@48      @77
+	_YUV_blit_YUY2@48           = REALBINK._YUV_blit_YUY2@48           @78
+	_YUV_blit_YUY2_mask@48      = REALBINK._YUV_blit_YUY2_mask@48      @79
+	_YUV_blit_YV12@52           = REALBINK._YUV_blit_YV12@52           @80
+	_YUV_init@4                 = REALBINK._YUV_init@4                 @81
+	_radfree@4                  = REALBINK._radfree@4                  @82
+	_radmalloc@4                = REALBINK._radmalloc@4                @83
+
+
Index: /Daodan/MSVC/binkw32.def.bak
===================================================================
--- /Daodan/MSVC/binkw32.def.bak	(revision 567)
+++ /Daodan/MSVC/binkw32.def.bak	(revision 567)
@@ -0,0 +1,89 @@
+LIBRARY
+
+EXPORTS
+
+        _BinkBufferBlit@12          = REALBINK._BinkBufferBlit@12          @1
+	_BinkBufferCheckWinPos@12   = REALBINK._BinkBufferCheckWinPos@12   @2
+	_BinkBufferClear@8          = REALBINK._BinkBufferClear@8          @3
+	_BinkBufferClose@4          = REALBINK._BinkBufferClose@4          @4
+	_BinkBufferGetDescription@4 = REALBINK._BinkBufferGetDescription@4 @5
+	_BinkBufferGetError@0       = REALBINK._BinkBufferGetError@0       @6
+	_BinkBufferLock@4           = REALBINK._BinkBufferLock@4           @7
+	_BinkBufferOpen@16          = REALBINK._BinkBufferOpen@16          @8
+	_BinkBufferSetDirectDraw@8  = REALBINK._BinkBufferSetDirectDraw@8  @9
+	_BinkBufferSetHWND@8        = REALBINK._BinkBufferSetHWND@8        @10
+	_BinkBufferSetOffset@12     = REALBINK._BinkBufferSetOffset@12     @11
+	_BinkBufferSetResolution@12 = REALBINK._BinkBufferSetResolution@12 @12
+	_BinkBufferSetScale@12      = REALBINK._BinkBufferSetScale@12      @13
+	_BinkBufferUnlock@4         = REALBINK._BinkBufferUnlock@4         @14
+	_BinkCheckCursor@20         = REALBINK._BinkCheckCursor@20         @15
+	_BinkClose@4                = REALBINK._BinkClose@4                @16
+	_BinkCloseTrack@4           = REALBINK._BinkCloseTrack@4           @17
+	_BinkCopyToBuffer@28        = REALBINK._BinkCopyToBuffer@28        @18
+	_BinkDDSurfaceType@4        = REALBINK._BinkDDSurfaceType@4        @19
+	_BinkDoFrame@4              = REALBINK._BinkDoFrame@4              @20
+	_BinkGetError@0             = REALBINK._BinkGetError@0             @21
+	_BinkGetKeyFrame@12         = REALBINK._BinkGetKeyFrame@12         @22
+	_BinkGetRealtime@12         = REALBINK._BinkGetRealtime@12         @23
+	_BinkGetRects@8             = REALBINK._BinkGetRects@8             @24
+	_BinkGetSummary@8           = REALBINK._BinkGetSummary@8           @25
+	_BinkGetTrackData@8         = REALBINK._BinkGetTrackData@8         @26
+	_BinkGetTrackID@8           = REALBINK._BinkGetTrackID@8           @27
+	_BinkGetTrackMaxSize@8      = REALBINK._BinkGetTrackMaxSize@8      @28
+	_BinkGetTrackType@8         = REALBINK._BinkGetTrackType@8         @29
+	_BinkGoto@12                = REALBINK._BinkGoto@12                @30
+	_BinkIsSoftwareCursor@8     = REALBINK._BinkIsSoftwareCursor@8     @31
+	_BinkLogoAddress@0          = REALBINK._BinkLogoAddress@0          @32
+	_BinkNextFrame@4            = REALBINK._BinkNextFrame@4            @33
+	_BinkOpen@8                 = REALBINK._BinkOpen@8                 @34
+	_BinkOpenDirectSound@4      = REALBINK._BinkOpenDirectSound@4      @35
+	_BinkOpenMiles@4            = REALBINK._BinkOpenMiles@4            @36
+	_BinkOpenTrack@8            = REALBINK._BinkOpenTrack@8            @37
+	_BinkOpenWaveOut@4          = REALBINK._BinkOpenWaveOut@4          @38
+	_BinkPause@8                = REALBINK._BinkPause@8                @39
+	_BinkRestoreCursor@4        = REALBINK._BinkRestoreCursor@4        @40
+	_BinkService@4              = REALBINK._BinkService@4              @41
+	_BinkSetError@4             = REALBINK._BinkSetError@4             @42
+	_BinkSetFrameRate@8         = REALBINK._BinkSetFrameRate@8         @43
+	_BinkSetIO@4                = REALBINK._BinkSetIO@4                @44
+	_BinkSetIOSize@4            = REALBINK._BinkSetIOSize@4            @45
+	_BinkSetPan@8               = REALBINK._BinkSetPan@8               @46
+	_BinkSetSimulate@4          = REALBINK._BinkSetSimulate@4          @47
+	_BinkSetSoundOnOff@8        = REALBINK._BinkSetSoundOnOff@8        @48
+	_BinkSetSoundSystem@8       = REALBINK._BinkSetSoundSystem@8       @49
+	_BinkSetSoundTrack@4        = REALBINK._BinkSetSoundTrack@4        @50
+	_BinkSetVideoOnOff@8        = REALBINK._BinkSetVideoOnOff@8        @51
+	_BinkSetVolume@8            = REALBINK._BinkSetVolume@8            @52
+	_BinkWait@4                 = REALBINK._BinkWait@4                 @53
+	_ExpandBink@56              = REALBINK._ExpandBink@56              @54
+	_ExpandBundleSizes@8        = REALBINK._ExpandBundleSizes@8        @55
+	_RADSetMemory@8             = REALBINK._RADSetMemory@8             @56
+	_RADTimerRead@0             = REALBINK._RADTimerRead@0             @57
+	_YUV_blit_16a1bpp@52        = REALBINK._YUV_blit_16a1bpp@52        @58
+	_YUV_blit_16a1bpp_mask@52   = REALBINK._YUV_blit_16a1bpp_mask@52   @59
+	_YUV_blit_16a4bpp@52        = REALBINK._YUV_blit_16a4bpp@52        @60
+	_YUV_blit_16a4bpp_mask@52   = REALBINK._YUV_blit_16a4bpp_mask@52   @61
+	_YUV_blit_16bpp@48          = REALBINK._YUV_blit_16bpp@48          @62
+	_YUV_blit_16bpp_mask@48     = REALBINK._YUV_blit_16bpp_mask@48     @63
+	_YUV_blit_24bpp@48          = REALBINK._YUV_blit_24bpp@48          @64
+	_YUV_blit_24bpp_mask@48     = REALBINK._YUV_blit_24bpp_mask@48     @65
+	_YUV_blit_24rbpp@48         = REALBINK._YUV_blit_24rbpp@48         @66
+	_YUV_blit_24rbpp_mask@48    = REALBINK._YUV_blit_24rbpp_mask@48    @67
+	_YUV_blit_32abpp@52         = REALBINK._YUV_blit_32abpp@52         @68
+	_YUV_blit_32abpp_mask@52    = REALBINK._YUV_blit_32abpp_mask@52    @69
+	_YUV_blit_32bpp@48          = REALBINK._YUV_blit_32bpp@48          @70
+	_YUV_blit_32bpp_mask@48     = REALBINK._YUV_blit_32bpp_mask@48     @71
+	_YUV_blit_32rabpp@52        = REALBINK._YUV_blit_32rabpp@52        @72
+	_YUV_blit_32rabpp_mask@52   = REALBINK._YUV_blit_32rabpp_mask@52   @73
+	_YUV_blit_32rbpp@48         = REALBINK._YUV_blit_32rbpp@48         @74
+	_YUV_blit_32rbpp_mask@48    = REALBINK._YUV_blit_32rbpp_mask@48    @75
+	_YUV_blit_UYVY@48           = REALBINK._YUV_blit_UYVY@48           @76
+	_YUV_blit_UYVY_mask@48      = REALBINK._YUV_blit_UYVY_mask@48      @77
+	_YUV_blit_YUY2@48           = REALBINK._YUV_blit_YUY2@48           @78
+	_YUV_blit_YUY2_mask@48      = REALBINK._YUV_blit_YUY2_mask@48      @79
+	_YUV_blit_YV12@52           = REALBINK._YUV_blit_YV12@52           @80
+	_YUV_init@4                 = REALBINK._YUV_init@4                 @81
+	_radfree@4                  = REALBINK._radfree@4                  @82
+	_radmalloc@4                = REALBINK._radmalloc@4                @83
+
+
Index: /Daodan/MSVC/bool.h
===================================================================
--- /Daodan/MSVC/bool.h	(revision 567)
+++ /Daodan/MSVC/bool.h	(revision 567)
@@ -0,0 +1,210 @@
+#define bool int
+#define false 0
+#define true 1
+
+/* ISO C9x  7.18  Integer types <stdint.h>
+ * Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794)
+ *
+ *  THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ *  Contributor: Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+ *
+ *  This source code is offered for use in the public domain. You may
+ *  use, modify or distribute it freely.
+ *
+ *  This code is distributed in the hope that it will be useful but
+ *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ *  DISCLAIMED. This includes but is not limited to warranties of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ *  Date: 2000-12-02
+ */
+
+
+#ifndef _STDINT_H
+#define _STDINT_H
+#define __need_wint_t
+#define __need_wchar_t
+#include <stddef.h>
+
+/* 7.18.1.1  Exact-width integer types */
+typedef signed char int8_t;
+typedef unsigned char   uint8_t;
+typedef short  int16_t;
+typedef unsigned short  uint16_t;
+typedef int  int32_t;
+typedef unsigned   uint32_t;
+typedef long long  int64_t;
+typedef unsigned long long   uint64_t;
+
+/* 7.18.1.2  Minimum-width integer types */
+typedef signed char int_least8_t;
+typedef unsigned char   uint_least8_t;
+typedef short  int_least16_t;
+typedef unsigned short  uint_least16_t;
+typedef int  int_least32_t;
+typedef unsigned   uint_least32_t;
+typedef long long  int_least64_t;
+typedef unsigned long long   uint_least64_t;
+
+/*  7.18.1.3  Fastest minimum-width integer types 
+ *  Not actually guaranteed to be fastest for all purposes
+ *  Here we use the exact-width types for 8 and 16-bit ints. 
+ */
+typedef char int_fast8_t;
+typedef unsigned char uint_fast8_t;
+typedef short  int_fast16_t;
+typedef unsigned short  uint_fast16_t;
+typedef int  int_fast32_t;
+typedef unsigned  int  uint_fast32_t;
+typedef long long  int_fast64_t;
+typedef unsigned long long   uint_fast64_t;
+
+/* 7.18.1.4  Integer types capable of holding object pointers */
+
+#ifndef _INTPTR_T_DEFINED
+#define _INTPTR_T_DEFINED
+#ifdef _WIN64
+  typedef __int64 intptr_t;
+#else
+  typedef int intptr_t;
+#endif
+#endif
+
+#ifndef _UINTPTR_T_DEFINED
+#define _UINTPTR_T_DEFINED
+#ifdef _WIN64
+  typedef unsigned __int64 uintptr_t;
+#else
+  typedef unsigned int uintptr_t;
+#endif
+#endif
+
+/* 7.18.1.5  Greatest-width integer types */
+typedef long long  intmax_t;
+typedef unsigned long long uintmax_t;
+
+/* 7.18.2  Limits of specified-width integer types */
+#if !defined ( __cplusplus) || defined (__STDC_LIMIT_MACROS)
+
+/* 7.18.2.1  Limits of exact-width integer types */
+#define INT8_MIN (-128) 
+#define INT16_MIN (-32768)
+#define INT32_MIN (-2147483647 - 1)
+#define INT64_MIN  (-9223372036854775807LL - 1)
+
+#define INT8_MAX 127
+#define INT16_MAX 32767
+#define INT32_MAX 2147483647
+#define INT64_MAX 9223372036854775807LL
+
+#define UINT8_MAX 0xff /* 255U */
+#define UINT16_MAX 0xffff /* 65535U */
+#define UINT32_MAX 0xffffffff  /* 4294967295U */
+#define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */
+
+/* 7.18.2.2  Limits of minimum-width integer types */
+#define INT_LEAST8_MIN INT8_MIN
+#define INT_LEAST16_MIN INT16_MIN
+#define INT_LEAST32_MIN INT32_MIN
+#define INT_LEAST64_MIN INT64_MIN
+
+#define INT_LEAST8_MAX INT8_MAX
+#define INT_LEAST16_MAX INT16_MAX
+#define INT_LEAST32_MAX INT32_MAX
+#define INT_LEAST64_MAX INT64_MAX
+
+#define UINT_LEAST8_MAX UINT8_MAX
+#define UINT_LEAST16_MAX UINT16_MAX
+#define UINT_LEAST32_MAX UINT32_MAX
+#define UINT_LEAST64_MAX UINT64_MAX
+
+/* 7.18.2.3  Limits of fastest minimum-width integer types */
+#define INT_FAST8_MIN INT8_MIN
+#define INT_FAST16_MIN INT16_MIN
+#define INT_FAST32_MIN INT32_MIN
+#define INT_FAST64_MIN INT64_MIN
+
+#define INT_FAST8_MAX INT8_MAX
+#define INT_FAST16_MAX INT16_MAX
+#define INT_FAST32_MAX INT32_MAX
+#define INT_FAST64_MAX INT64_MAX
+
+#define UINT_FAST8_MAX UINT8_MAX
+#define UINT_FAST16_MAX UINT16_MAX
+#define UINT_FAST32_MAX UINT32_MAX
+#define UINT_FAST64_MAX UINT64_MAX
+
+/* 7.18.2.4  Limits of integer types capable of holding
+    object pointers */
+#ifdef _WIN64
+#define INTPTR_MIN INT64_MIN
+#define INTPTR_MAX INT64_MAX
+#define UINTPTR_MAX UINT64_MAX
+#else
+#define INTPTR_MIN INT32_MIN
+#define INTPTR_MAX INT32_MAX
+#define UINTPTR_MAX UINT32_MAX
+#endif
+
+/* 7.18.2.5  Limits of greatest-width integer types */
+#define INTMAX_MIN INT64_MIN
+#define INTMAX_MAX INT64_MAX
+#define UINTMAX_MAX UINT64_MAX
+
+/* 7.18.3  Limits of other integer types */
+#define PTRDIFF_MIN INTPTR_MIN
+#define PTRDIFF_MAX INTPTR_MAX
+
+#define SIG_ATOMIC_MIN INTPTR_MIN
+#define SIG_ATOMIC_MAX INTPTR_MAX
+
+//#define SIZE_MAX UINTPTR_MAX
+
+#ifndef WCHAR_MIN  /* also in wchar.h */ 
+#define WCHAR_MIN 0
+#define WCHAR_MAX 0xffff /* UINT16_MAX */
+#endif
+
+/*
+ * wint_t is unsigned short for compatibility with MS runtime
+ */
+#define WINT_MIN 0
+#define WINT_MAX 0xffff /* UINT16_MAX */
+
+#endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */
+
+
+/* 7.18.4  Macros for integer constants */
+#if !defined ( __cplusplus) || defined (__STDC_CONSTANT_MACROS)
+
+/* 7.18.4.1  Macros for minimum-width integer constants
+
+    Accoding to Douglas Gwyn <gwyn@arl.mil>:
+	"This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
+	9899:1999 as initially published, the expansion was required
+	to be an integer constant of precisely matching type, which
+	is impossible to accomplish for the shorter types on most
+	platforms, because C99 provides no standard way to designate
+	an integer constant with width less than that of type int.
+	TC1 changed this to require just an integer constant
+	*expression* with *promoted* type."
+*/
+
+#define INT8_C(val) ((int8_t) + (val))
+#define UINT8_C(val) ((uint8_t) + (val##U))
+#define INT16_C(val) ((int16_t) + (val))
+#define UINT16_C(val) ((uint16_t) + (val##U))
+
+#define INT32_C(val) val##L
+#define UINT32_C(val) val##UL
+#define INT64_C(val) val##LL
+#define UINT64_C(val) val##ULL
+
+/* 7.18.4.2  Macros for greatest-width integer constants */
+#define INTMAX_C(val)  INT64_C(val)
+#define UINTMAX_C(val) UINT64_C(val)
+
+#endif  /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */
+
+#endif
Index: /Daodan/MSVC/dSFMT/CHANGE-LOG.txt
===================================================================
--- /Daodan/MSVC/dSFMT/CHANGE-LOG.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/CHANGE-LOG.txt	(revision 567)
@@ -0,0 +1,63 @@
+ver 2.0
+-------
+The recursion formula of dSFMT is changed.
+The supported periods are changed.
+The output sequences are completely changed.
+The generation speed is improved.
+The variable for initialization check is removed, because it causes 
+an execution error in cygwin.
+
+ver 1.3.1
+-------
+change dSFMT.h not to include dSFMT-params.h
+change Makefile to clean test files.
+
+ver 1.3
+-------
+add `dsfmt_' prefix to functions.
+changed to structure base code. 
+put Intel Compiler into silence.
+bug fix checking BIG_ENDIAN and BYTE_ORDER
+change test.c not to include dSFMT.c
+dSFMT-alti.h and dSFMT-sse2.h are marged into dSFMT.c
+
+ver 1.2.1
+-------
+add #include <altivec.h> to dSFMT.c
+
+ver 1.2
+-------
+The precision specifier of printf was too large in test.c
+CAUTION! *.out.txt is changed.
+add dSFMT-params216091.h
+gcc compile option changed form -O9 to -O3.
+add AltiVec parameter format for systems which are not OSX.
+change Makefile for systems which are not OSX and support AltiVec.
+change sample2 of howto-compile for Free BSD.
+change period certification code more smart.
+change source files for BORLANDC and Visual Studio.
+
+ver 1.1.1
+-------
+BUG in dSFMT-sse2.h is fixed.
+This bug didn't change the result.
+Change test.c
+
+ver 1.1
+-------
+add dSFMT-params132049.h
+fix bug in period_certification. It's a bug but result is the same for 
+all parameter files.
+change macro definition names and global variables. Thank you, Adam Piatyszek.
+remove L suffix from floating point constants. It's Saito's misunderstanding.
+fix bug of sfmt_idxof definition for BIG ENDIAN machine.
+
+ver 1.0.1
+-------
+change name dSFMT-alti.c to SFMT-alti.h
+change name dSFMT-sse2.c to SFMT-sse2.h
+This version is not released.
+
+ver 1.0
+-------
+The first version.
Index: /Daodan/MSVC/dSFMT/FILES.txt
===================================================================
--- /Daodan/MSVC/dSFMT/FILES.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/FILES.txt	(revision 567)
@@ -0,0 +1,26 @@
+This archive contails following directories and files.
+
+TOP DIRECTORY
+FILES.txt:		This file.
+CHANGE-LOG.txt		change log.
+LICENSE.txt:		License file.
+Makefile:		Makefile for test programs.
+dSFMT.h:		Header file.
+dSFMT-params.h:		parameter file control for various Mersenne expornent
+dSFMT-params521.h:	parameters for period of 2^{521}-1
+dSFMT-params1279.h:	parameters for period of 2^{1279}-1
+dSFMT-params2203.h:	parameters for period of 2^{2203}-1
+dSFMT-params4253.h:	parameters for period of 2^{4253}-1
+dSFMT-params11213.h:	parameters for period of 2^{11213}-1
+dSFMT-params19937.h:	parameters for period of 2^{19937}-1
+dSFMT.c:		C code for standard C (c99) and unix like systems.
+test.c:			Test driver for standard C.
+check.sh:		Test shell script.
+dSFMT.521.out.txt:	correct output of dSFMT MEXP=521
+dSFMT.1279.out.txt:	correct output of dSFMT MEXP=1279
+dSFMT.2203.out.txt:	correct output of dSFMT MEXP=2203
+dSFMT.4253.out.txt:	correct output of dSFMT MEXP=4253
+dSFMT.11213.out.txt:	correct output of dSFMT MEXP=11213
+dSFMT.19937.out.txt:	correct output of dSFMT MEXP=19937
+
+html DIRECTORY:		The documents generated by doxygen.
Index: /Daodan/MSVC/dSFMT/LICENSE.txt
===================================================================
--- /Daodan/MSVC/dSFMT/LICENSE.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/LICENSE.txt	(revision 567)
@@ -0,0 +1,29 @@
+Copyright (c) 2007, 2008 Mutsuo Saito, Makoto Matsumoto and Hiroshima
+University.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+    * Neither the name of the Hiroshima University nor the names of
+      its contributors may be used to endorse or promote products
+      derived from this software without specific prior written
+      permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: /Daodan/MSVC/dSFMT/Makefile
===================================================================
--- /Daodan/MSVC/dSFMT/Makefile	(revision 567)
+++ /Daodan/MSVC/dSFMT/Makefile	(revision 567)
@@ -0,0 +1,195 @@
+# @file  Makefile
+# @brief Makefile
+#
+# @author Mutsuo Saito (Hiroshima University)
+# @author Makoto Matsumoto (Hiroshima University)
+#
+# Copyright (C) 2007, 2008 Mutsuo Saito, Makoto Matsumoto and
+# Hiroshima University. All rights reserved.
+#
+# The new BSD License is applied to this software.
+# see LICENSE.txt
+#
+# @note
+# We could comple test-sse2-Mxxx using gcc 3.4.4 of cygwin.
+# We could comple test-sse2-Mxxx using gcc 4.0.1 of Linux.
+# We coundn't comple test-sse2-Mxxx using gcc 3.3.2 of Linux.
+# We could comple test-alti-Mxxx using gcc 3.3 of osx.
+# We could comple test-alti-Mxxx using gcc 4.0 of osx.
+
+WARN = -Wmissing-prototypes -Wall #-Winline 
+#WARN = -Wmissing-prototypes -Wall -W
+OPTI = -O3 -finline-functions -fomit-frame-pointer -DNDEBUG \
+-fno-strict-aliasing --param max-inline-insns-single=1800 
+#--param inline-unit-growth=500 --param large-function-growth=900 #for gcc 4
+#STD =
+#STD = -std=c89 -pedantic
+#STD = -std=c99 -pedantic
+STD = -std=c99
+CC = gcc
+CCFLAGS = $(OPTI) $(WARN) $(STD)
+ALTIFLAGS = -mabi=altivec -maltivec -DHAVE_ALTIVEC
+OSXALTIFLAGS = -faltivec -maltivec -DHAVE_ALTIVEC
+SSE2FLAGS = -msse2 -DHAVE_SSE2
+STD_TARGET = test-std-M19937
+ALL_STD_TARGET = test-std-M521 test-std-M1279 test-std-M2203 test-std-M4253 \
+test-std-M11213 test-std-M19937 test-std-M44497 test-std-M86243 \
+test-std-M132049 test-std-M216091
+ALTI_TARGET = $(STD_TARGET) test-alti-M19937
+ALL_ALTI_TARGET = test-alti-M521 test-alti-M1279 test-alti-M2203 \
+test-alti-M4253 test-alti-M11213 test-alti-M19937 test-alti-M44497 \
+test-alti-M86243 test-alti-M132049 test-alti-M216091
+SSE2_TARGET = $(STD_TARGET) test-sse2-M19937
+ALL_SSE2_TARGET = test-sse2-M521 test-sse2-M1279 test-sse2-M2203 \
+test-sse2-M4253 test-sse2-M11213 test-sse2-M19937 test-sse2-M44497 \
+test-sse2-M86243 test-sse2-M132049 test-sse2-M216091
+# ==========================================================
+# comment out or EDIT following lines to get max performance
+# ==========================================================
+# --------------------
+# for gcc 4
+# --------------------
+#CCFLAGS += --param inline-unit-growth=500 \
+#--param large-function-growth=900
+# --------------------
+# for icl
+# --------------------
+#CC = icl /Wcheck /O3 /QxB /Qprefetch
+# --------------------
+# for icc
+# --------------------
+#CC = icc 
+#OPTI = -O3 -finline-functions -fomit-frame-pointer -DNDEBUG \
+#-fno-strict-aliasing
+#CCFLAGS = $(OPTI) $(WARN) $(STD)
+# -----------------
+# for PowerPC
+# -----------------
+#CCFLAGS += -arch ppc
+# -----------------
+# for Pentium M
+# -----------------
+#CCFLAGS += -march=prescott
+# -----------------
+# for Athlon 64
+# -----------------
+#CCFLAGS += -march=athlon64
+
+.PHONY: std-check sse2-check alti-check
+
+std: ${STD_TARGET}
+
+sse2: ${SSE2_TARGET}
+
+alti: ${ALTI_TARGET}
+
+osx-alti:
+	${MAKE} "ALTIFLAGS=${OSXALTIFLAGS}" alti
+
+std-check: ${ALL_STD_TARGET}
+	./check.sh test-std
+
+sse2-check: ${ALL_SSE2_TARGET}
+	./check.sh test-sse2
+
+alti-check: ${ALL_ALTI_TARGET}
+	./check.sh test-alti
+
+osx-alti-check: 
+	make "ALTIFLAGS=${OSXALTIFLAGS}" alti-check
+
+test-std-M521: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=521 -o $@ dSFMT.c test.c
+
+test-alti-M521: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=521 -o $@ dSFMT.c test.c
+
+test-sse2-M521: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=521 -o $@ dSFMT.c test.c
+
+test-std-M1279: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=1279 -o $@ dSFMT.c test.c
+
+test-alti-M1279: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=1279 -o $@ dSFMT.c test.c
+
+test-sse2-M1279: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=1279 -o $@ dSFMT.c test.c
+
+test-std-M2203: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=2203 -o $@ dSFMT.c test.c
+
+test-alti-M2203: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=2203 -o $@ dSFMT.c test.c
+
+test-sse2-M2203: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=2203 -o $@ dSFMT.c test.c
+
+test-std-M4253: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=4253 -o $@ dSFMT.c test.c
+
+test-alti-M4253: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=4253 -o $@ dSFMT.c test.c
+
+test-sse2-M4253: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=4253 -o $@ dSFMT.c test.c
+
+test-std-M11213: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=11213 -o $@ dSFMT.c test.c
+
+test-alti-M11213: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=11213 -o $@ dSFMT.c test.c
+
+test-sse2-M11213: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=11213 -o $@ dSFMT.c test.c
+
+test-std-M19937: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=19937 -o $@ dSFMT.c test.c
+
+test-alti-M19937: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=19937 -o $@ dSFMT.c test.c
+
+test-sse2-M19937: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=19937 -o $@ dSFMT.c test.c
+
+test-std-M44497: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=44497 -o $@ dSFMT.c test.c
+
+test-alti-M44497: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=44497 -o $@ dSFMT.c test.c
+
+test-sse2-M44497: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=44497 -o $@ dSFMT.c test.c
+
+test-std-M86243: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=86243 -o $@ dSFMT.c test.c
+
+test-alti-M86243: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=86243 -o $@ dSFMT.c test.c
+
+test-sse2-M86243: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=86243 -o $@ dSFMT.c test.c
+
+test-std-M132049: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=132049 -o $@ dSFMT.c test.c
+
+test-alti-M132049: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=132049 -o $@ dSFMT.c test.c
+
+test-sse2-M132049: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=132049 -o $@ dSFMT.c test.c
+
+test-std-M216091: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} -DDSFMT_MEXP=216091 -o $@ dSFMT.c test.c
+
+test-alti-M216091: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${ALTIFLAGS} -DDSFMT_MEXP=216091 -o $@ dSFMT.c test.c
+
+test-sse2-M216091: test.c dSFMT.c dSFMT.h
+	${CC} ${CCFLAGS} ${SSE2FLAGS} -DDSFMT_MEXP=216091 -o $@ dSFMT.c test.c
+
+.c.o:
+	${CC} ${CCFLAGS} -c $<
+
+clean:
+	rm -f *.o *~ test-*-M*
Index: /Daodan/MSVC/dSFMT/README.jp.txt
===================================================================
--- /Daodan/MSVC/dSFMT/README.jp.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/README.jp.txt	(revision 567)
@@ -0,0 +1,49 @@
+ =================================================================
+ dSFMT ver. 2.1
+ 2009.04.18
+
+ double precision SIMD oriented Fast Mersenne Twister(dSFMT)
+ based on IEEE 754 floating point format.
+
+ Mutsuo Saito (Hiroshima University) and
+ Makoto Matsumoto (Hiroshima University)
+
+ Copyright (C) 2007, 2008, 2009 Mutsuo Saito, Makoto Matsumoto and
+ Hiroshima University. All rights reserved.
+
+ The (modified) BSD License is applied to this software, see
+ LICENSE.txt
+ =================================================================
+
+ ¥É¥­¥å¥á¥ó¥È¤Ï¡¢¤¿¤È¤¨±Ñ¸ì¤¬Ê¸Ë¡Åª¤ËÀµ¤·¤¯¤Ê¤¤¾ì¹ç¤Ç¤â¡¢±Ñ¸ìÈÇ¤¬Àµ¼°¤Ê
+ ¤â¤Î¤Ç¤¹¡£
+
+ dSFMT2.0 ¤ª¤è¤Ó 2.1 ¤ÏdSFMT1.x ¤È¤Ïµ¼»÷Íð¿ôÀ¸À®¤ÎÁ²²½¼°¤¬°ã¤¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢
+ dSFMT1.x¤ÈÆ±¤¸½é´üÃÍ¤òÍ¿¤¨¤Æ¤â°Û¤Ê¤ëµ¼»÷Íó¿ôÎó¤òÀ¸À®¤·¤Þ¤¹¡£
+
+ doxygen ¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤¿¥É¥­¥å¥á¥ó¥È¡Ê±Ñ¸ì¡Ë¤¬¡¢html ¥Ç¥£¥ì¥¯¥È¥ê¤Î
+ ²¼¤Ë¤¢¤ë¤Î¤Ç»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
+
+ ¤³¤Î¥×¥í¥°¥é¥à¤Ï IEEE754 ·Á¼°¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤ò»ÈÍÑ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Î
+ ¤ßÆ°ºî¤·¤Þ¤¹¡£
+
+ ¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢C¸À¸ì¤Î¹½Â¤ÂÎ¤ò»ÈÍÑ¤·¤Æ¤¤¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤½¤ì¤ò¤¦
+ ¤Þ¤¯»È¤¨¤Ð¡¢¥¹¥ì¥Ã¥ÉËè¤ËÊÌ¡¹¤Îµ¼»÷Íð¿ôÎó¤òÍøÍÑ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤·¤«
+ ¤·¡¢dSFMT.c¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤È°Û¤Ê¤ëDSFMT_MEXP¤ò¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤Î¥³¥ó
+ ¥Ñ¥¤¥ë»þ¤Ë»ØÄê¤¹¤ë¤È¡¢ÌäÂê¤¬È¯À¸¤·¤Þ¤¹¡£¡Ê¥¹¥Ô¡¼¥É¤òµ¾À·¤Ë¤·¤Æ¡¢¥Ñ¥é¥á¡¼
+ ¥¿¤òÁ´Éô¹½Â¤ÂÎ¤ËÆþ¤ì¤ë¤È¤¤¤¦ÊýË¡¤â¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤³¤Ç¤Ï¥¹¥Ô¡¼¥É¤òÍ¥Àè¤·
+ ¤Þ¤·¤¿¡Ë
+
+ ¤È¤ê¤¢¤¨¤º¥Æ¥¹¥È¥×¥í¥°¥é¥à¤òÁö¤é¤»¤Æ¤ß¤¿¤¤¤È¤¤¤¦¿Í¤Ï¡¢html ¥Ç¥£¥ì¥¯¥È
+ ¥ê¤Î²¼¤Îhowto-compile.html¡Ê±Ñ¸ì¡Ë¤ò¤ß¤Æ²¼¤µ¤¤¡£CPU ¤¬¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢
+ ¥ó¤Î¾ì¹ç¤Ï¡¢Ãí°Õ¤¬É¬Í×¤Ç¤¹¡£»öÁ°ÄêµÁ¥×¥ê¥×¥í¥»¥Ã¥µ¥Þ¥¯¥í¤Ë¤è¤Ã¤Æ¡¢¥¨¥ó
+ ¥Ç¥£¥¢¥ó¤ÎÈ½Äê¤ò¤·¤Æ¤¤¤Þ¤¹¤¬¡¢ÌÀ¼¨Åª¤Ë DSFMT_BIG_ENDIAN ¥Þ¥¯¥í¤òÄêµÁ¤·
+ ¤¿Êý¤¬°ÂÁ´¤À¤È»×¤¤¤Þ¤¹¡£
+
+ ¥½¡¼¥¹¥³¡¼¥É¤òÊÑ¹¹¤·¤¿¤ê¤·¤Ê¤«¤Ã¤¿¤ê¤·¤Æ¤³¤Î¥×¥í¥°¥é¥à¤òºÆÇÛÉÛ¤·¤¿¤¤¿Í
+ ¤Ï¡¢LICENSE.txt¡Ê±Ñ¸ì¡Ë¤òÆÉ¤ó¤Ç²¼¤µ¤¤¡£
+
+ ¥Õ¥¡¥¤¥ë¤ËÊÑ¹¹¤ò²Ã¤¨¤ÆºÆÇÛÉÛ¤¹¤ë¾ì¹ç¤Ï¡¢¤É¤¦¤«¡¢ÇÛÉÛÊª¤ÎÃæ¤Ë¤¢¤Ê¤¿¤ÎÏ¢
+ ÍíÀè¤ò½ñ¤¤¤Æ¤ª¤¤¤Æ¡¢ÌäÂê¤¬¤¢¤Ã¤¿¤È¤­¤Ï¡¢»ä¤¿¤Á¤Ç¤Ï¤Ê¤¯¡¢¤¢¤Ê¤¿¤Ë¤Þ¤ºÏ¢
+ Íí¤¹¤ë¤è¤¦¤ËÍøÍÑ¼Ô¤ËÅÁ¤¨¤Æ²¼¤µ¤¤¡£
+ 
Index: /Daodan/MSVC/dSFMT/README.txt
===================================================================
--- /Daodan/MSVC/dSFMT/README.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/README.txt	(revision 567)
@@ -0,0 +1,38 @@
+ =================================================================
+ dSFMT ver. 2.1
+ 2009.04.18
+
+ double precision SIMD oriented Fast Mersenne Twister(dSFMT)
+ based on IEEE 754 floating point format.
+
+ Mutsuo Saito (Hiroshima University) and
+ Makoto Matsumoto (Hiroshima University)
+
+ Copyright (C) 2007, 2008, 2009 Mutsuo Saito, Makoto Matsumoto and
+ Hiroshima University. All rights reserved.
+
+ The (modified) BSD License is applied to this software, see
+ LICENSE.txt
+ =================================================================
+ The documents written in English is the official one.
+
+ dSFMT ver. 2.0 and ver. 2.1 are completely different from dSFMT ver 1.xx.
+ The algorithm is changed.
+
+ This program only works on systems which have IEEE754 floating point
+ format.
+
+ This version uses `struct' of C language.
+ Don't use different DSFMT_MEXP for compiling dSFMT.c and your program.
+
+ To see documents, see html/index.html.
+
+ To make test program, see html/howto-compile.html.
+ If your CPU is BIG ENDIAN and your compiler is not gcc,
+ define DSFMT_BIG_ENDIAN preprocessor macro, please.
+
+ If you want to redistribute and/or change source files, see LICENSE.txt.
+
+ When you change these files and redistribute them, PLEASE write your
+ e-mail address in redistribution and write to contact YOU first if
+ users of your changed source encounter troubles.
Index: /Daodan/MSVC/dSFMT/check.sh
===================================================================
--- /Daodan/MSVC/dSFMT/check.sh	(revision 567)
+++ /Daodan/MSVC/dSFMT/check.sh	(revision 567)
@@ -0,0 +1,18 @@
+#!/bin/sh
+prefix=$1
+tmp=tmp.$$
+exps="521 1279 2203 4253 11213 19937 44497 86243 132049 216091"
+for mexp in $exps; do
+    compare=dSFMT.${mexp}.out.txt
+    command=${prefix}-M${mexp}
+    ./$command -v > $tmp
+    if diff -q -w $tmp $compare; then
+	echo $command output check OK
+	rm -f $tmp
+    else
+	echo $command output check NG!
+	rm -f $tmp
+	exit 1
+    fi
+done
+exit 0
Index: /Daodan/MSVC/dSFMT/dSFMT-params.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params.h	(revision 567)
@@ -0,0 +1,87 @@
+#ifndef DSFMT_PARAMS_H
+#define DSFMT_PARAMS_H
+
+#include "dSFMT.h"
+
+/*----------------------
+  the parameters of DSFMT
+  following definitions are in dSFMT-paramsXXXX.h file.
+  ----------------------*/
+/** the pick up position of the array.
+#define DSFMT_POS1 122 
+*/
+
+/** the parameter of shift left as four 32-bit registers.
+#define DSFMT_SL1 18
+ */
+
+/** the parameter of shift right as four 32-bit registers.
+#define DSFMT_SR1 12
+*/
+
+/** A bitmask, used in the recursion.  These parameters are introduced
+ * to break symmetry of SIMD.
+#define DSFMT_MSK1 (uint64_t)0xdfffffefULL
+#define DSFMT_MSK2 (uint64_t)0xddfecb7fULL
+*/
+
+/** These definitions are part of a 128-bit period certification vector.
+#define DSFMT_PCV1	UINT64_C(0x00000001)
+#define DSFMT_PCV2	UINT64_C(0x00000000)
+*/
+
+#define DSFMT_LOW_MASK  UINT64_C(0x000FFFFFFFFFFFFF)
+#define DSFMT_HIGH_CONST UINT64_C(0x3FF0000000000000)
+#define DSFMT_SR	12
+
+/* for sse2 */
+#if defined(HAVE_SSE2)
+  #define SSE2_SHUFF 0x1b
+#elif defined(HAVE_ALTIVEC)
+  #if defined(__APPLE__)  /* For OSX */
+    #define ALTI_SR (vector unsigned char)(4)
+    #define ALTI_SR_PERM \
+        (vector unsigned char)(15,0,1,2,3,4,5,6,15,8,9,10,11,12,13,14)
+    #define ALTI_SR_MSK \
+        (vector unsigned int)(0x000fffffU,0xffffffffU,0x000fffffU,0xffffffffU)
+    #define ALTI_PERM \
+        (vector unsigned char)(12,13,14,15,8,9,10,11,4,5,6,7,0,1,2,3)
+  #else
+    #define ALTI_SR      {4}
+    #define ALTI_SR_PERM {15,0,1,2,3,4,5,6,15,8,9,10,11,12,13,14}
+    #define ALTI_SR_MSK  {0x000fffffU,0xffffffffU,0x000fffffU,0xffffffffU}
+    #define ALTI_PERM    {12,13,14,15,8,9,10,11,4,5,6,7,0,1,2,3}
+  #endif
+#endif
+
+#if DSFMT_MEXP == 521
+  #include "dSFMT-params521.h"
+#elif DSFMT_MEXP == 1279
+  #include "dSFMT-params1279.h"
+#elif DSFMT_MEXP == 2203
+  #include "dSFMT-params2203.h"
+#elif DSFMT_MEXP == 4253
+  #include "dSFMT-params4253.h"
+#elif DSFMT_MEXP == 11213
+  #include "dSFMT-params11213.h"
+#elif DSFMT_MEXP == 19937
+  #include "dSFMT-params19937.h"
+#elif DSFMT_MEXP == 44497
+  #include "dSFMT-params44497.h"
+#elif DSFMT_MEXP == 86243
+  #include "dSFMT-params86243.h"
+#elif DSFMT_MEXP == 132049
+  #include "dSFMT-params132049.h"
+#elif DSFMT_MEXP == 216091
+  #include "dSFMT-params216091.h"
+#else
+#ifdef __GNUC__
+  #error "DSFMT_MEXP is not valid."
+  #undef DSFMT_MEXP
+#else
+  #undef DSFMT_MEXP
+#endif
+
+#endif
+
+#endif /* DSFMT_PARAMS_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params11213.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params11213.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params11213.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS11213_H
+#define DSFMT_PARAMS11213_H
+
+/* #define DSFMT_N	107 */
+/* #define DSFMT_MAXDEGREE	11256 */
+#define DSFMT_POS1	37
+#define DSFMT_SL1	19
+#define DSFMT_MSK1	UINT64_C(0x000ffffffdf7fffd)
+#define DSFMT_MSK2	UINT64_C(0x000dfffffff6bfff)
+#define DSFMT_MSK32_1	0x000fffffU
+#define DSFMT_MSK32_2	0xfdf7fffdU
+#define DSFMT_MSK32_3	0x000dffffU
+#define DSFMT_MSK32_4	0xfff6bfffU
+#define DSFMT_FIX1	UINT64_C(0xd0ef7b7c75b06793)
+#define DSFMT_FIX2	UINT64_C(0x9c50ff4caae0a641)
+#define DSFMT_PCV1	UINT64_C(0x8234c51207c80000)
+#define DSFMT_PCV2	UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR	"dSFMT2-11213:37-19:ffffffdf7fffd-dfffffff6bfff"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(3, 3, 3, 3)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{3, 3, 3, 3}
+    #define ALTI_SL1_PERM \
+	{2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS11213_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params1279.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params1279.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params1279.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS1279_H
+#define DSFMT_PARAMS1279_H
+
+/* #define DSFMT_N	12 */
+/* #define DSFMT_MAXDEGREE	1376 */
+#define DSFMT_POS1	9
+#define DSFMT_SL1	19
+#define DSFMT_MSK1	UINT64_C(0x000efff7ffddffee)
+#define DSFMT_MSK2	UINT64_C(0x000fbffffff77fff)
+#define DSFMT_MSK32_1	0x000efff7U
+#define DSFMT_MSK32_2	0xffddffeeU
+#define DSFMT_MSK32_3	0x000fbfffU
+#define DSFMT_MSK32_4	0xfff77fffU
+#define DSFMT_FIX1	UINT64_C(0xb66627623d1a31be)
+#define DSFMT_FIX2	UINT64_C(0x04b6c51147b6109b)
+#define DSFMT_PCV1	UINT64_C(0x7049f2da382a6aeb)
+#define DSFMT_PCV2	UINT64_C(0xde4ca84a40000001)
+#define DSFMT_IDSTR	"dSFMT2-1279:9-19:efff7ffddffee-fbffffff77fff"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(3, 3, 3, 3)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{3, 3, 3, 3}
+    #define ALTI_SL1_PERM \
+	{2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS1279_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params132049.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params132049.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params132049.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS132049_H
+#define DSFMT_PARAMS132049_H
+
+/* #define DSFMT_N	1269 */
+/* #define DSFMT_MAXDEGREE	132104 */
+#define DSFMT_POS1	371
+#define DSFMT_SL1	23
+#define DSFMT_MSK1	UINT64_C(0x000fb9f4eff4bf77)
+#define DSFMT_MSK2	UINT64_C(0x000fffffbfefff37)
+#define DSFMT_MSK32_1	0x000fb9f4U
+#define DSFMT_MSK32_2	0xeff4bf77U
+#define DSFMT_MSK32_3	0x000fffffU
+#define DSFMT_MSK32_4	0xbfefff37U
+#define DSFMT_FIX1	UINT64_C(0x4ce24c0e4e234f3b)
+#define DSFMT_FIX2	UINT64_C(0x62612409b5665c2d)
+#define DSFMT_PCV1	UINT64_C(0x181232889145d000)
+#define DSFMT_PCV2	UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR	"dSFMT2-132049:371-23:fb9f4eff4bf77-fffffbfefff37"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(7, 7, 7, 7)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xff800000U,0xffffffffU,0xff800000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{7, 7, 7, 7}
+    #define ALTI_SL1_PERM \
+	{2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xff800000U,0xffffffffU,0xff800000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS132049_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params19937.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params19937.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params19937.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS19937_H
+#define DSFMT_PARAMS19937_H
+
+/* #define DSFMT_N	191 */
+/* #define DSFMT_MAXDEGREE	19992 */
+#define DSFMT_POS1	117
+#define DSFMT_SL1	19
+#define DSFMT_MSK1	UINT64_C(0x000ffafffffffb3f)
+#define DSFMT_MSK2	UINT64_C(0x000ffdfffc90fffd)
+#define DSFMT_MSK32_1	0x000ffaffU
+#define DSFMT_MSK32_2	0xfffffb3fU
+#define DSFMT_MSK32_3	0x000ffdffU
+#define DSFMT_MSK32_4	0xfc90fffdU
+#define DSFMT_FIX1	UINT64_C(0x90014964b32f4329)
+#define DSFMT_FIX2	UINT64_C(0x3b8d12ac548a7c7a)
+#define DSFMT_PCV1	UINT64_C(0x3d84e1ac0dc82880)
+#define DSFMT_PCV2	UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR	"dSFMT2-19937:117-19:ffafffffffb3f-ffdfffc90fffd"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(3, 3, 3, 3)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{3, 3, 3, 3}
+    #define ALTI_SL1_PERM \
+	{2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS19937_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params216091.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params216091.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params216091.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS216091_H
+#define DSFMT_PARAMS216091_H
+
+/* #define DSFMT_N	2077 */
+/* #define DSFMT_MAXDEGREE	216136 */
+#define DSFMT_POS1	1890
+#define DSFMT_SL1	23
+#define DSFMT_MSK1	UINT64_C(0x000bf7df7fefcfff)
+#define DSFMT_MSK2	UINT64_C(0x000e7ffffef737ff)
+#define DSFMT_MSK32_1	0x000bf7dfU
+#define DSFMT_MSK32_2	0x7fefcfffU
+#define DSFMT_MSK32_3	0x000e7fffU
+#define DSFMT_MSK32_4	0xfef737ffU
+#define DSFMT_FIX1	UINT64_C(0xd7f95a04764c27d7)
+#define DSFMT_FIX2	UINT64_C(0x6a483861810bebc2)
+#define DSFMT_PCV1	UINT64_C(0x3af0a8f3d5600000)
+#define DSFMT_PCV2	UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR	"dSFMT2-216091:1890-23:bf7df7fefcfff-e7ffffef737ff"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(7, 7, 7, 7)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xff800000U,0xffffffffU,0xff800000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{7, 7, 7, 7}
+    #define ALTI_SL1_PERM \
+	{2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xff800000U,0xffffffffU,0xff800000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS216091_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params2203.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params2203.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params2203.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS2203_H
+#define DSFMT_PARAMS2203_H
+
+/* #define DSFMT_N	20 */
+/* #define DSFMT_MAXDEGREE	2208 */
+#define DSFMT_POS1	7
+#define DSFMT_SL1	19
+#define DSFMT_MSK1	UINT64_C(0x000fdffff5edbfff)
+#define DSFMT_MSK2	UINT64_C(0x000f77fffffffbfe)
+#define DSFMT_MSK32_1	0x000fdfffU
+#define DSFMT_MSK32_2	0xf5edbfffU
+#define DSFMT_MSK32_3	0x000f77ffU
+#define DSFMT_MSK32_4	0xfffffbfeU
+#define DSFMT_FIX1	UINT64_C(0xb14e907a39338485)
+#define DSFMT_FIX2	UINT64_C(0xf98f0735c637ef90)
+#define DSFMT_PCV1	UINT64_C(0x8000000000000000)
+#define DSFMT_PCV2	UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR	"dSFMT2-2203:7-19:fdffff5edbfff-f77fffffffbfe"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(3, 3, 3, 3)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{3, 3, 3, 3}
+    #define ALTI_SL1_PERM \
+	{2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS2203_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params4253.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params4253.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params4253.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS4253_H
+#define DSFMT_PARAMS4253_H
+
+/* #define DSFMT_N	40 */
+/* #define DSFMT_MAXDEGREE	4288 */
+#define DSFMT_POS1	19
+#define DSFMT_SL1	19
+#define DSFMT_MSK1	UINT64_C(0x0007b7fffef5feff)
+#define DSFMT_MSK2	UINT64_C(0x000ffdffeffefbfc)
+#define DSFMT_MSK32_1	0x0007b7ffU
+#define DSFMT_MSK32_2	0xfef5feffU
+#define DSFMT_MSK32_3	0x000ffdffU
+#define DSFMT_MSK32_4	0xeffefbfcU
+#define DSFMT_FIX1	UINT64_C(0x80901b5fd7a11c65)
+#define DSFMT_FIX2	UINT64_C(0x5a63ff0e7cb0ba74)
+#define DSFMT_PCV1	UINT64_C(0x1ad277be12000000)
+#define DSFMT_PCV2	UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR	"dSFMT2-4253:19-19:7b7fffef5feff-ffdffeffefbfc"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(3, 3, 3, 3)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{3, 3, 3, 3}
+    #define ALTI_SL1_PERM \
+	{2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS4253_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params44497.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params44497.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params44497.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS44497_H
+#define DSFMT_PARAMS44497_H
+
+/* #define DSFMT_N	427 */
+/* #define DSFMT_MAXDEGREE	44536 */
+#define DSFMT_POS1	304
+#define DSFMT_SL1	19
+#define DSFMT_MSK1	UINT64_C(0x000ff6dfffffffef)
+#define DSFMT_MSK2	UINT64_C(0x0007ffdddeefff6f)
+#define DSFMT_MSK32_1	0x000ff6dfU
+#define DSFMT_MSK32_2	0xffffffefU
+#define DSFMT_MSK32_3	0x0007ffddU
+#define DSFMT_MSK32_4	0xdeefff6fU
+#define DSFMT_FIX1	UINT64_C(0x75d910f235f6e10e)
+#define DSFMT_FIX2	UINT64_C(0x7b32158aedc8e969)
+#define DSFMT_PCV1	UINT64_C(0x4c3356b2a0000000)
+#define DSFMT_PCV2	UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR	"dSFMT2-44497:304-19:ff6dfffffffef-7ffdddeefff6f"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(3, 3, 3, 3)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{3, 3, 3, 3}
+    #define ALTI_SL1_PERM \
+	{2,3,4,5,6,7,30,30,10,11,12,13,14,15,0,1}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xfff80000U,0xffffffffU,0xfff80000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS44497_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params521.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params521.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params521.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS521_H
+#define DSFMT_PARAMS521_H
+
+/* #define DSFMT_N	4 */
+/* #define DSFMT_MAXDEGREE	544 */
+#define DSFMT_POS1	3
+#define DSFMT_SL1	25
+#define DSFMT_MSK1	UINT64_C(0x000fbfefff77efff)
+#define DSFMT_MSK2	UINT64_C(0x000ffeebfbdfbfdf)
+#define DSFMT_MSK32_1	0x000fbfefU
+#define DSFMT_MSK32_2	0xff77efffU
+#define DSFMT_MSK32_3	0x000ffeebU
+#define DSFMT_MSK32_4	0xfbdfbfdfU
+#define DSFMT_FIX1	UINT64_C(0xcfb393d661638469)
+#define DSFMT_FIX2	UINT64_C(0xc166867883ae2adb)
+#define DSFMT_PCV1	UINT64_C(0xccaa588000000000)
+#define DSFMT_PCV2	UINT64_C(0x0000000000000001)
+#define DSFMT_IDSTR	"dSFMT2-521:3-25:fbfefff77efff-ffeebfbdfbfdf"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(1, 1, 1, 1)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(3,4,5,6,7,29,29,29,11,12,13,14,15,0,1,2)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xfe000000U,0xffffffffU,0xfe000000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{1, 1, 1, 1}
+    #define ALTI_SL1_PERM \
+	{3,4,5,6,7,29,29,29,11,12,13,14,15,0,1,2}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xfe000000U,0xffffffffU,0xfe000000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS521_H */
Index: /Daodan/MSVC/dSFMT/dSFMT-params86243.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT-params86243.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT-params86243.h	(revision 567)
@@ -0,0 +1,40 @@
+#ifndef DSFMT_PARAMS86243_H
+#define DSFMT_PARAMS86243_H
+
+/* #define DSFMT_N	829 */
+/* #define DSFMT_MAXDEGREE	86344 */
+#define DSFMT_POS1	231
+#define DSFMT_SL1	13
+#define DSFMT_MSK1	UINT64_C(0x000ffedff6ffffdf)
+#define DSFMT_MSK2	UINT64_C(0x000ffff7fdffff7e)
+#define DSFMT_MSK32_1	0x000ffedfU
+#define DSFMT_MSK32_2	0xf6ffffdfU
+#define DSFMT_MSK32_3	0x000ffff7U
+#define DSFMT_MSK32_4	0xfdffff7eU
+#define DSFMT_FIX1	UINT64_C(0x1d553e776b975e68)
+#define DSFMT_FIX2	UINT64_C(0x648faadf1416bf91)
+#define DSFMT_PCV1	UINT64_C(0x5f2cd03e2758a373)
+#define DSFMT_PCV2	UINT64_C(0xc0b7eb8410000001)
+#define DSFMT_IDSTR	"dSFMT2-86243:231-13:ffedff6ffffdf-ffff7fdffff7e"
+
+
+/* PARAMETERS FOR ALTIVEC */
+#if defined(__APPLE__)	/* For OSX */
+    #define ALTI_SL1 	(vector unsigned int)(5, 5, 5, 5)
+    #define ALTI_SL1_PERM \
+	(vector unsigned char)(1,2,3,4,5,6,7,31,9,10,11,12,13,14,15,0)
+    #define ALTI_SL1_MSK \
+	(vector unsigned int)(0xffffffffU,0xffffe000U,0xffffffffU,0xffffe000U)
+    #define ALTI_MSK	(vector unsigned int)(DSFMT_MSK32_1, \
+			DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4)
+#else	/* For OTHER OSs(Linux?) */
+    #define ALTI_SL1 	{5, 5, 5, 5}
+    #define ALTI_SL1_PERM \
+	{1,2,3,4,5,6,7,31,9,10,11,12,13,14,15,0}
+    #define ALTI_SL1_MSK \
+	{0xffffffffU,0xffffe000U,0xffffffffU,0xffffe000U}
+    #define ALTI_MSK \
+	{DSFMT_MSK32_1, DSFMT_MSK32_2, DSFMT_MSK32_3, DSFMT_MSK32_4}
+#endif
+
+#endif /* DSFMT_PARAMS86243_H */
Index: /Daodan/MSVC/dSFMT/dSFMT.11213.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.11213.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.11213.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-11213:37-19:ffffffdf7fffd-dfffffff6bfff
+init_gen_rand(0) generated randoms [1, 2)
+1.181503558381645 1.731043322943541 1.039986179500985 1.586303905746746 
+1.918899855723876 1.440493331081931 1.468391025018997 1.259058360242485 
+1.839408810938974 1.996420751003233 1.846963144067767 1.963803534587744 
+1.445499501417834 1.483052904846139 1.557763578951618 1.244952423899054 
+1.224065364994470 1.156433830240398 1.818558649090364 1.315884741216990 
+1.245731114100397 1.634542412135809 1.849194220973292 1.096982813334918 
+1.308572615373784 1.689109028874307 1.716796530518651 1.533939061193447 
+1.187665847440886 1.684638247947751 1.318375099380660 1.195515752610457 
+1.379377673646172 1.530359684929592 1.672110577260798 1.057347765025508 
+1.598203304465811 1.547760851680276 1.155030548867774 1.163455314171708 
+1.686588701729889 1.467131528042580 1.910994537635679 1.801062698343150 
+1.451244021433757 1.474429051886449 1.024295833598315 1.049567410247291 
+1.838576436352897 1.029176415288787 1.969845915529520 1.353649254480166 
+1.642198012280466 1.555260790070737 1.792704375048717 1.203735306300650 
+1.722396082575852 1.906942608752719 1.766642460818205 1.337349940530977 
+1.259646190345589 1.152813095855988 1.013025695110487 1.739703070588015 
+1.665419509272552 1.778813848638816 1.136187530449853 1.225929339438576 
+1.161324255892987 1.350051462017561 1.175119206487224 1.727361484344104 
+1.317428745170620 1.382736911436513 1.226254527365948 1.794644575745935 
+1.001301922418113 1.332307176657034 1.840328417475729 1.364440213157420 
+1.345168857950589 1.384954515757991 1.524665990673269 1.239781870435794 
+1.926948501084251 1.850706878375081 1.677740550231558 1.796221876541070 
+1.317852601122407 1.406237654174799 1.063975167467764 1.748483980141748 
+1.880209456676840 1.267684057777090 1.755542301912846 1.880497906684009 
+1.835323044659132 1.441479294190250 1.194004863900302 1.598428394301880 
+1.223299115837286 1.244032385809483 1.433255649065323 1.826641078627535 
+1.764331975526857 1.323533455693433 1.324018461203187 1.028468600870397 
+1.460274579299640 1.483505377200212 1.751714349625352 1.079491545546282 
+1.381596356944625 1.005133976509243 1.413468729132887 1.337706313385278 
+1.891925256409311 1.342272118229895 1.163447427831138 1.334324193443303 
+1.411791088314896 1.651848865335494 1.675229052031225 1.446350996494761 
+1.266622124443599 1.958729944890093 1.503419949299578 1.760682833125807 
+1.259580196582578 1.076485721116899 1.293906699030576 1.139833348831599 
+1.825729271013771 1.587766638363904 1.489976012364503 1.877252905574033 
+1.854937382231196 1.733666846060390 1.852758618966330 1.919561368722841 
+1.055965417742630 1.361521080982244 1.933579826037271 1.757404604768589 
+1.285914087262030 1.187548281883414 1.566783263570936 1.682256446231821 
+1.380155154968773 1.307397198151446 1.494087262804365 1.072469326658690 
+1.382326089970463 1.292177437679956 1.351278322027925 1.634423439855476 
+1.936199876161483 1.119463834340734 1.352945170186627 1.880686034025406 
+1.530558314756718 1.708792254834220 1.266908738965653 1.788002531450933 
+1.948652114532444 1.757804010641673 1.762456645842164 1.097495269496033 
+1.147163749984733 1.576297570824489 1.300325703789508 1.874691144281150 
+1.515744739948639 1.345955717292370 1.942681909563451 1.035247578272609 
+1.283514135318420 1.314807854232039 1.573322682766725 1.574513774595243 
+1.828044573260458 1.712713601027344 1.590726762824644 1.563969138328007 
+1.386694795178386 1.522721710964341 1.275713855337409 1.731108683097704 
+1.591465887155933 1.513340723963096 1.176801225703059 1.434536351340476 
+1.578784855419878 1.301629776104429 1.929926785855622 1.289570728672952 
+1.205977720202379 1.003689842045578 1.889008830631370 1.883163232215121 
+1.645174992553137 1.252590697312637 1.774495117411565 1.382738491506675 
+1.491125536217037 1.912093075248525 1.527519170184104 1.327173264499113 
+1.144584409700572 1.261102147402312 1.858761772369285 1.429108301186990 
+1.761814622390048 1.240286164631683 1.682233062136794 1.282781911274615 
+1.182382109347646 1.692078187148138 1.590771681380315 1.718020109821122 
+1.735395393053722 1.293082053131155 1.236726685913177 1.497331614096738 
+1.161825786902307 1.182135240069986 1.151823679620760 1.974199765683906 
+1.186211880561942 1.259680067543851 1.289615436454359 1.201377177401489 
+1.377979874313116 1.862166574208142 1.839943407025350 1.090909260920215 
+1.835051576578182 1.822372542722485 1.842026425409695 1.820764561083671 
+1.182933498141570 1.994836781207340 1.775764911443317 1.459459906461581 
+1.339668169733238 1.080626788036703 1.632904690364891 1.524266035157262 
+1.452823572468255 1.741072052260028 1.015878940755996 1.441355605579825 
+1.172464969079888 1.891898963022321 1.068862948520859 1.638586767257465 
+1.437563075634224 1.832523638912209 1.793423504634927 1.437189116763254 
+1.932217889837171 1.557401446279349 1.957278824200991 1.679449367445786 
+1.727388312076874 1.215994321965333 1.343482301096508 1.965723459265464 
+1.174365917960160 1.412334183268146 1.005808153073694 1.332246122276253 
+1.421552830903774 1.736383216317563 1.774163868709055 1.942877594535564 
+1.300172005436256 1.060438672058037 1.059256482195244 1.895743380019139 
+1.797653012102767 1.451687344906899 1.910186385920250 1.375719431566697 
+1.527055212747842 1.735046181518860 1.337101077757136 1.875727585017108 
+1.262662767460110 1.164020733791884 1.246727123936263 1.870102088442595 
+1.379350104320065 1.431222410496233 1.852824076519811 1.677890028040941 
+1.468210666056291 1.964820224053944 1.710393577649966 1.588623012734641 
+1.739774585091649 1.783816340646615 1.949915051334890 1.387969543681920 
+1.938125377226224 1.711976480766437 1.258044767385399 1.213739349289792 
+1.909320758532006 1.851056766640699 1.194155554195436 1.458931869228858 
+1.710478685106064 1.909026672385980 1.928682092297997 1.792912261480649 
+1.370842715316247 1.996540397369334 1.368572872261078 1.086483716127140 
+1.063497064506867 1.710653991056790 1.159274167483337 1.495720121247915 
+1.281488535742257 1.257698858220001 1.045001805310589 1.150219495953609 
+1.483117103339906 1.396446731541836 1.365126639966851 1.570682009012462 
+1.832935138908101 1.541661309805832 1.168365784253352 1.998779464038371 
+1.865933328340024 1.675982766888608 1.945566467837951 1.816517750240827 
+1.918112851549434 1.423888084191570 1.973249957101362 1.218807900061746 
+1.778576302670792 1.838861767501807 1.482811453018327 1.247679065264969 
+1.059985494558663 1.359543126888771 1.588573463727683 1.168635785850446 
+1.864423660314076 1.937335427999893 1.741233424826319 1.878809752209550 
+1.142191383807907 1.020331382161142 1.542417783874726 1.479432386201224 
+1.295027716936634 1.574320474094031 1.698391908121788 1.008814784735669 
+1.605606670494446 1.978902823554173 1.129508367936794 1.795605864593855 
+1.687795514014363 1.499597935640900 1.765543691414273 1.803689247828165 
+1.371870581415714 1.423608871097533 1.874886866622627 1.498411502810737 
+1.634867903367269 1.893552044504889 1.357942428548533 1.245639680748877 
+1.007115500114161 1.872148089683202 1.796459184004016 1.691775467781512 
+1.273623065583289 1.505817378354078 1.779360007972242 1.716262382765402 
+1.153128447838379 1.424508953060559 1.073868106848226 1.720692274906701 
+1.090850825998094 1.408358116070048 1.167764231371631 1.440219257222023 
+1.136485855486126 1.922907112582622 1.321506554307790 1.738086751470465 
+1.590185785144894 1.485372323829527 1.116817089419274 1.614909379031230 
+1.055506919628596 1.418252447134729 1.553581995230590 1.535748864217699 
+1.498073462425985 1.000068433966434 1.267536711295599 1.954327971244934 
+1.060575327729286 1.184866661854656 1.960347850369031 1.497536661131017 
+1.851128882089508 1.712022620682699 1.565732403720586 1.032566692583970 
+1.011542441271677 1.841162319578720 1.239624060966384 1.487548183751440 
+1.051657813974962 1.335309733462229 1.688005412664909 1.873252176838071 
+1.900481898326293 1.999009884781491 1.395489852035113 1.487243135399694 
+1.495781350087353 1.748346824756507 1.976569529681090 1.392092325572655 
+1.745043037577616 1.292736078832172 1.495887634366188 1.193698141369718 
+1.913162118265308 1.943050409108249 1.930887457259986 1.346751766900472 
+1.792420337531875 1.923410580377370 1.228531434393396 1.526176511030744 
+1.052759920698847 1.104308787405557 1.195173729820621 1.558811949057789 
+1.552965725654474 1.841081975960537 1.766318508256179 1.999225781485728 
+1.740364638178412 1.695033467915510 1.916304508477532 1.480891534040302 
+1.702759309625764 1.603839303145242 1.042552644637777 1.873062796585744 
+1.593528423235622 1.539196873593494 1.128549017814889 1.683165451738909 
+1.971268377016313 1.188317555167136 1.135301993575357 1.307152875684140 
+1.432859111116679 1.604469859568026 1.902115025323774 1.097009868443398 
+1.040048912786590 1.154280079077426 1.461614401375923 1.840754900633352 
+1.595019467801959 1.223723777683929 1.631724639415629 1.577812058125785 
+1.657187386744480 1.437259771395318 1.266334187803773 1.463994426667643 
+1.870412486317102 1.258746328552743 1.673199849922752 1.844975346747609 
+1.860975727461148 1.010560700742734 1.679689978230894 1.124425239385680 
+1.670270180352561 1.246668793518991 1.918107311898546 1.357327783461837 
+1.293935220856253 1.060107099217680 1.563382346816788 1.504896628917475 
+1.071151629572175 1.468083055708820 1.868304191997799 1.821227503483460 
+1.494905362238815 1.274150948606291 1.532265904060086 1.982325816702449 
+1.987915857624636 1.151789329279206 1.441547783615874 1.147109896259745 
+1.531999520849226 1.466013854343980 1.899994640482806 1.445849793263175 
+1.679911724092598 1.238521076123820 1.315831093451211 1.586847042010717 
+1.552237747421042 1.608119054681591 1.293257491508930 1.551402938221331 
+1.362717345162958 1.854980007148888 1.681986481943653 1.107645384336926 
+1.096868501891902 1.947214841516233 1.954485171427159 1.369969854054149 
+1.223679497487524 1.983911941848973 1.444780398551704 1.356171850666962 
+1.524583400834895 1.003506914656116 1.395200297754132 1.216429510454021 
+1.104797104328485 1.573552149337030 1.450165926095062 1.184533610001212 
+1.700492686084003 1.096017027560388 1.289507281943301 1.579306039546438 
+1.628232017447720 1.803035235898273 1.929133833140088 1.063774698807801 
+1.683777636354742 1.421365520062687 1.928216406411577 1.882983072025202 
+1.343699388208914 1.632042556178419 1.297994688230140 1.894713903641935 
+1.941797150759211 1.771421308830279 1.378652878010419 1.595450712976290 
+1.884810430381372 1.950925424095815 1.179458279026501 1.322905416500271 
+1.404934870266585 1.317648756980719 1.533522388570792 1.946219034868249 
+1.113010182883403 1.232713248947698 1.247485018218063 1.052054701858568 
+1.434506581119268 1.205352012792289 1.878315141320544 1.799970878951545 
+1.883223934139542 1.792664629574468 1.725698839714880 1.645087613761266 
+1.229396201906297 1.432777560795800 1.415898999496500 1.802413919608077 
+1.723045954371938 1.563726838592009 1.369786889591470 1.522500297234385 
+1.378999448975029 1.627005621970901 1.255335994810902 1.412531015745466 
+1.957268559296287 1.317304446858156 1.012771977138850 1.180109146860733 
+1.344517599753446 1.929175190484497 1.020402690001379 1.535202268650391 
+1.357787540902572 1.615009812044269 1.512028051315352 1.729641548131623 
+1.491721712316848 1.263812651335640 1.979510138768775 1.033479771906778 
+1.774132184010759 1.958308734768764 1.927127376360521 1.030115651497741 
+1.725653566631833 1.624464694823342 1.747609094630888 1.049046816732421 
+1.265434810494546 1.213013148711189 1.675411225732459 1.647401058370579 
+1.466454171870760 1.345366562646625 1.171259026587475 1.886285217057224 
+1.824247026682402 1.479159590121498 1.803613011251899 1.102711745823651 
+1.053438259836287 1.010950682137806 1.602615132817294 1.819362787487701 
+1.729190336504770 1.211191391343746 1.419148118234875 1.872840714256227 
+1.560999254480611 1.374061928956099 1.927574952719505 1.054921828882362 
+1.027766713481264 1.952846054759756 1.763125583749713 1.768284636504022 
+1.574857514856373 1.561982886830468 1.508438851409326 1.752290486348740 
+1.537165093320193 1.174113532818524 1.522485431456626 1.910697025217521 
+1.476429670351683 1.649380408290711 1.373776307923307 1.250240188443934 
+1.265122781048196 1.587443621011073 1.843998316920776 1.476829706376551 
+1.608462500651470 1.223084327055048 1.052815180199248 1.202878884447441 
+1.449878539661503 1.082562150344771 1.451316924846592 1.563459127912533 
+1.208050549140839 1.087353008130478 1.941861627607186 1.951998332825734 
+1.225751334761776 1.968641413472235 1.163915752381524 1.149161141939927 
+1.718497922104754 1.663920120710498 1.951975086236624 1.923671732354622 
+1.449407320673145 1.573908988181626 1.194286869451023 1.637213382217403 
+1.212233402808761 1.316934086687012 1.015925122713518 1.430230279493348 
+1.616999469045566 1.827272189379700 1.132016991233676 1.164190956905208 
+1.131528076722149 1.676737940975225 1.897276052260467 1.334152567461919 
+1.812559713892204 1.343609024562606 1.716151677164890 1.029837339068326 
+1.501637058776154 1.410003039243300 1.331577121444439 1.194174515595873 
+1.243629821490265 1.560662792831219 1.962896353591382 1.931351707770461 
+1.196470087370902 1.748860143698989 1.528580603510954 1.146992689593898 
+1.279364471603390 1.679286131612653 1.450241097063424 1.501436942218311 
+1.936282431784813 1.798513509336138 1.690060061284775 1.375826522687418 
+1.058885079560250 1.094131798936223 1.096062172025912 1.329352382705695 
+1.324576611788268 1.426843125842506 1.658771215239343 1.389633520632553 
+1.756902833917981 1.573797316437742 1.323289672008800 1.240150310584660 
+1.085841477050925 1.148415458671991 1.889503453428388 1.508940148035350 
+1.785092478737281 1.678889527496645 1.770073480714495 1.270039073482222 
+1.566938004414428 1.417156167931044 1.891881943184546 1.051841827872934 
+1.415019603668056 1.564586608003412 1.274464610301014 1.113305241830556 
+1.662721961482179 1.194593779689558 1.449860456962831 1.203094646925522 
+1.029497648197001 1.457617525963223 1.030478571058842 1.470177155752817 
+1.417647173018495 1.576700769630268 1.835416207378034 1.145318001820275 
+1.507443236818029 1.193284663003559 1.061945677779735 1.997644656108541 
+1.643096967025396 1.747932456654357 1.107225710120198 1.200388646500610 
+1.525348722102778 1.859644456096009 1.281997845625517 1.250222979441608 
+1.559222149794032 1.456608818014885 1.462781140342281 1.417055091499522 
+1.266965914893395 1.332954773131522 1.186593290201902 1.941489076478192 
+1.843345058033458 1.583905413935047 1.627965732174268 1.053200740136957 
+1.842283161362918 1.218780248968700 1.547442982938818 1.886519687832889 
+1.642442099342137 1.325210617127866 1.303652990431358 1.959787069764233 
+1.797730252026976 1.060537391706403 1.576473739630614 1.432999186906889 
+1.619583734403876 1.720618261542154 1.672782959090950 1.788191721997175 
+1.181387037335470 1.449178702350343 1.978957033613830 1.272969136925908 
+1.069090003038617 1.008011599103090 1.316984052845846 1.211876542434489 
+1.189814607669329 1.887340391435525 1.648720144578025 1.170565739005902 
+1.338397139832991 1.181496107186798 1.618965762122573 1.083199036547957 
+1.279879472648966 1.219659323557586 1.975935000172014 1.796349639042017 
+1.702470542994085 1.150458657449774 1.152658642493854 1.662376207363902 
+1.569104098443184 1.722406015726289 1.158776707263796 1.735981664356332 
+1.807387233736359 1.841972130597270 1.627097373499739 1.879195410673363 
+1.152248940317155 1.186953835972758 1.544497604335182 1.819279577118026 
+1.081440679895680 1.832670298121551 1.438591595454085 1.287696048076967 
+1.551817582295891 1.790190104436298 1.683597815106577 1.640321955595819 
+1.856164910472809 1.090073083170263 1.660370312240508 1.639292264818144 
+1.477071156066173 1.148228001308301 1.959966376725195 1.367315626997250 
+1.616042910194762 1.722334152008518 1.784020256853025 1.901492583478227 
+1.359281943135394 1.930982170834824 1.319725622141917 1.751292575746979 
+1.014018018957752 1.576777840228847 1.920940799347264 1.153967847286490 
+1.353177008343702 1.800724731418156 1.044363495981520 1.158311521524589 
+1.367300208315735 1.398684902861273 1.751744610466050 1.042906821915733 
+1.271298910885637 1.111702990806544 1.378206663969781 1.473900954171194 
+1.717273441585982 1.758041466075696 1.912675041634035 1.313300987778383 
+1.311010085524843 1.080859710541704 1.956633799774623 1.492216480447057 
+1.139387837023949 1.830769028489396 1.152982726742772 1.050710980239586 
+1.109499952103088 1.719259022447802 1.973661948275105 1.819875723753659 
+1.302691890957645 1.505860064613989 1.991877120371915 1.670744862285917 
+1.610561885533104 1.066493537125372 1.878650051478877 1.118264644216180 
+1.619211002960427 1.837662578933141 1.044791455789490 1.134760856218956 
+1.299213486860270 1.145356946212000 1.865403570967645 1.254193806492637 
+1.300394294075782 1.997150662755587 1.794412853860132 1.254931287429104 
+1.707805323885901 1.538602282826548 1.577984889354721 1.042987635914299 
+1.564038600674961 1.392389366825887 1.327640079223352 1.768366043911442 
+1.897984223790475 1.290134904471313 1.138322133693787 1.537890667670148 
+1.127234628434044 1.075399604334112 1.450575709463583 1.971989849261632 
+1.125622091677718 1.043653494592289 1.519998264058048 1.392495756866560 
+1.241461415272052 1.815214102311230 1.328633123760259 1.379566481682548 
+1.837588901821663 1.479221453471263 1.406009833593042 1.788088163446038 
+1.882690588537149 1.326036949639496 1.014856361490488 1.531818122034700 
+1.259776328236883 1.628786492594881 1.900907143216087 1.399030569078722 
+1.690628780115286 1.649563170632522 1.309918757629376 1.622342121199376 
+1.163555877607187 1.588202672121352 1.417072632098665 1.592037263011384 
+1.024019307094300 1.118164400363435 1.690402643086179 1.330774773667029 
+1.391344554823132 1.890955327159098 1.196870350018152 1.535489758396616 
+1.818625413085171 1.455481052211494 1.744628084012586 1.681400233675138 
+1.019653664426986 1.842544483662391 1.483538454245493 1.311562200611514 
+1.419852324325226 1.900582512746614 1.417866584129346 1.164385425771965 
+1.902450071305102 1.377187111358117 1.989480172330361 1.375368501478232 
+1.116390836448992 1.033615117990837 1.381089728973561 1.338210798290339 
+1.466208815228885 1.677226418254145 1.954676792590627 1.118677644079673 
+1.375764292670719 1.082944211138035 1.527440552380678 1.390923552078622 
+init_gen_rand(0) generated randoms [0, 1)
+0.181503558381645 0.731043322943541 0.039986179500985 0.586303905746746 
+0.918899855723876 0.440493331081931 0.468391025018997 0.259058360242485 
+0.839408810938974 0.996420751003233 0.846963144067767 0.963803534587744 
+init_gen_rand(1) generated randoms (0, 1]
+0.963684745154333 0.571016340205011 0.362082402236948 0.305665917354580 
+0.102070317160527 0.403628052066152 0.513761331194790 0.473026425576278 
+0.123684867263456 0.525282305477042 0.946619948271145 0.047869079429478 
+init_gen_rand(2) generated randoms (0, 1)
+0.137049000173775 0.284220403145830 0.575114701527820 0.594856071012208 
+0.437047378834815 0.976394699879323 0.655991175454351 0.763642835655244 
+0.000441891080732 0.746223655157404 0.893073981410607 0.276879212662776 
+init_gen_rand(3) generated randoms [1, 2)
+1.498908717922097 1.996180804385135 1.751259447023341 1.049159620877016 
+1.087943949836268 1.968563014915355 1.291535597857181 1.805821453753079 
+1.933237976926628 1.729762902669877 1.008606516267365 1.314218062844122 
+init_gen_rand(4) generated randoms [0, 1)
+0.468691303912138 0.027314035537382 0.832781188175840 0.788285376418242 
+0.657191631603973 0.191936433141470 0.586377277752353 0.633547163048286 
+0.805904348442297 0.752245318309351 0.618248736787129 0.225332749360476 
+init_gen_rand(5) generated randoms (0, 1]
+0.724679842853917 0.562259855400062 0.665918059898257 0.698340169569271 
+0.366131419228391 0.654484201445447 0.516754542591891 0.793145813620681 
+0.155173546454173 0.876408204767132 0.157724418133396 0.733108319608067 
+init_gen_rand(6) generated randoms (0, 1)
+0.166467877031225 0.700555438204047 0.780222245369658 0.728022885908251 
+0.009768788375504 0.456580882600894 0.050473225346549 0.629061686159083 
+0.369031109721613 0.717734673698406 0.686074482232103 0.882134455762938 
+init_gen_rand(7) generated randoms [1, 2)
+1.798430643737222 1.516774142609298 1.503684013420146 1.497493250268048 
+1.137969718944356 1.096621888782349 1.750074707870874 1.704027223271664 
+1.770628129940419 1.719275728746921 1.222876183395513 1.240203448208029 
+init_gen_rand(8) generated randoms [0, 1)
+0.145594417641605 0.656715012492086 0.882185523874741 0.226020947041445 
+0.590380323922954 0.983462923117057 0.469529987627192 0.231611645781400 
+0.973616370300120 0.324802877524021 0.549630434253938 0.570100596264959 
+init_gen_rand(9) generated randoms (0, 1]
+0.943694671600654 0.773663270099821 0.242490632056324 0.821945441236990 
+0.332031757624848 0.919053179470680 0.376844827396835 0.349418878946262 
+0.944147726053727 0.265269894999606 0.600219718576133 0.844877358030171 
+init_gen_rand(10) generated randoms (0, 1)
+0.683403460418111 0.343262378501707 0.708413973012067 0.800052307562341 
+0.575683916483860 0.533205063872000 0.837524859089275 0.350804458308149 
+0.919977921118806 0.991472260425635 0.500855301984413 0.293260706041093 
+init_gen_rand(11) generated randoms [1, 2)
+1.314259445265223 1.740199849077772 1.488579427855286 1.377105190256387 
+1.720288466431272 1.536122386164422 1.980478726649462 1.661702632293279 
+1.945223216730766 1.246075034045997 1.440375922859263 1.705912089477020 
+init_gen_rand(12) generated randoms [0, 1)
+0.673314503765025 0.193823272483514 0.254601399999535 0.889990455094058 
+0.120720028715510 0.274773918402688 0.230323910161863 0.771903702918926 
+0.786409765475613 0.833413983724388 0.519296207220376 0.405056678812545 
+init_gen_rand(13) generated randoms (0, 1]
+0.228330703716589 0.083707652845761 0.575000350277484 0.588496558471820 
+0.622640405205573 0.625644717036925 0.766380723184564 0.438678639070277 
+0.553888390348759 0.865911730246464 0.357472169433473 0.922567467736359 
+init_gen_rand(14) generated randoms (0, 1)
+0.125457098903114 0.731177944845271 0.859403502644756 0.507418228697383 
+0.221078031321711 0.671504688760071 0.389317221571860 0.381880380998315 
+0.187696642782292 0.256589812586356 0.848270717523271 0.843199177502377 
+init_gen_rand(15) generated randoms [1, 2)
+1.060539798047399 1.934181709891972 1.237542016566071 1.576081951714868 
+1.589287364382687 1.548617620285070 1.809653414804196 1.524096233269848 
+1.181680629743948 1.624330442139056 1.810304640667551 1.105338706297052 
+init_gen_rand(16) generated randoms [0, 1)
+0.829761691647542 0.802741627292433 0.078346226053278 0.097138031599215 
+0.209212082579908 0.471364327218975 0.530504039839123 0.574572482988680 
+0.707528517646136 0.457143741639870 0.547916932770332 0.009136005048997 
+init_gen_rand(17) generated randoms (0, 1]
+0.079816948824546 0.731931626965978 0.077578823514663 0.024651560015970 
+0.630587937830447 0.639902945258729 0.034090174724157 0.607493504949063 
+0.756911890539818 0.814853236610657 0.167376573599855 0.516192274865681 
+init_gen_rand(18) generated randoms (0, 1)
+0.687527253386543 0.895829860413485 0.380275802190672 0.142368023689720 
+0.329743313213155 0.990066728642289 0.472378043181990 0.543612705262237 
+0.174288200490540 0.381221152356904 0.192282899844370 0.983193084821066 
+init_gen_rand(19) generated randoms [1, 2)
+1.531700092578017 1.697194009111415 1.449251050264404 1.262990988864462 
+1.822963332564419 1.507458891377459 1.698077535552422 1.097391065995660 
+1.489776962061972 1.524018699781288 1.829834024211206 1.158249381580875 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.206098150187858 1.188748746890072 1.905790177292542 1.197683783679395 
+1.581791707731582 1.472658741645999 1.219954195279126 1.314431817240350 
+1.892557591486989 1.674182513956407 1.354716893683782 1.845844041376035 
+1.826170986556681 1.967780635370779 1.862910750705555 1.389713394565989 
+1.135424893818967 1.243226848863541 1.372568674168553 1.838416793915725 
+1.012244536944503 1.931569056772462 1.754609079927966 1.620967147520305 
+1.391088695717090 1.789722500832279 1.226084228480795 1.266447763415419 
+1.968018607993182 1.870208478493540 1.932281824611828 1.723386231694753 
+1.730336310862481 1.662669167476448 1.562447478451590 1.891495768900914 
+1.249652028351600 1.808146878386367 1.585336869927527 1.996321952745465 
+1.113662991918610 1.972612977890216 1.097411657776820 1.693401759056604 
+1.759755552764595 1.244567771454269 1.158773815236758 1.556274684963345 
+1.233387786791304 1.401710881013521 1.600853369181083 1.322570339034666 
+1.734348613477966 1.057887523655255 1.808334479516933 1.003906648628919 
+1.846156422092308 1.201498594394011 1.322572087614602 1.105346724586165 
+1.343901406159838 1.094259599899319 1.969572703190689 1.780766350397862 
+1.073781553196469 1.221980665005475 1.759514652387593 1.166896306200663 
+1.898937807520922 1.517554638076569 1.944096436806515 1.353171177269937 
+1.200582715941771 1.480632211655166 1.352001453890878 1.508859530717692 
+1.660109073880372 1.440192933231079 1.273229503698787 1.571470416168754 
+1.126205913788275 1.508441641071031 1.938942188462652 1.042398863913172 
+1.796938194639067 1.865362761616441 1.125936825194942 1.867678311398446 
+1.277014018518076 1.867466427227929 1.315905683511035 1.840472801640782 
+1.951270068703061 1.832471052828448 1.272245081232231 1.860015082291731 
+1.760326712466363 1.604847836059428 1.743974741376594 1.739732286705780 
+1.407521204887955 1.398525729848922 1.910440883823940 1.943294006175731 
+1.715159357497636 1.472638152995086 1.234715064301417 1.982976375806838 
+1.942365701093447 1.658469905733718 1.338360914097831 1.067764676519867 
+1.315618111944091 1.669097426662497 1.992314255288751 1.728983071251509 
+1.995930177434656 1.925023543393769 1.849118341125080 1.283589825276536 
+1.734184934697352 1.203814457615683 1.763570979327323 1.448354521087162 
+1.734479418284181 1.360565968422691 1.850545173249331 1.466170554299295 
+1.054846671527166 1.684326447621684 1.139555445238758 1.565433919506649 
+1.577221805053484 1.878093836700687 1.808432303710301 1.459042115223978 
+1.698955526022762 1.085528303156545 1.684943160938801 1.552474258002143 
+1.949824618504357 1.515423750032027 1.895791162685879 1.238492805758267 
+1.187730145586038 1.341069805590332 1.216077662104939 1.988635253234972 
+1.248944146285759 1.641916789417921 1.799542369449253 1.363886886814253 
+1.800571011934143 1.016610522697922 1.812508696246170 1.768953107137950 
+1.098020792883931 1.578725543468319 1.081908945514303 1.082541292432410 
+1.549052967548940 1.513949073402544 1.479511433496571 1.061430445272265 
+1.983331222853338 1.640386814992549 1.057064936027084 1.842143414924113 
+1.243736213533461 1.572947421572330 1.747276033454518 1.799949255760872 
+1.469188217093883 1.757986147601496 1.251628956474618 1.969227195572660 
+1.686996958676973 1.882856656277639 1.198652972441576 1.538017389506834 
+1.877662459622841 1.083079331994161 1.796836190605605 1.330006609783738 
+1.184840738426503 1.830756160845865 1.094160776775255 1.205295904230871 
+1.543043742180091 1.023909143111772 1.881484595222184 1.248939048162057 
+1.084278974136028 1.749884995906287 1.194437664103138 1.550839299069825 
+1.469011607344095 1.718342926035642 1.958212359106692 1.069996104748743 
+1.281391960817919 1.373513433130191 1.537675022214959 1.651326397329617 
+1.577443043169454 1.381043702783772 1.608058108047318 1.571178348510878 
+1.166176488411026 1.276188528907560 1.107194743603114 1.143919883043490 
+1.447354454384987 1.472029397873889 1.663282491638162 1.798321258101559 
+1.785282602848709 1.901979735901869 1.420643053988156 1.261696388889187 
+1.077230955150031 1.403631533148167 1.466602559475690 1.825465219771135 
+1.034129032300005 1.160709905452303 1.351089697363226 1.215983272139607 
+1.790255136266424 1.779003607212979 1.698388703624249 1.471114846691784 
+1.238112572387700 1.883794656868969 1.222787340986152 1.440576369822164 
+1.281847873823598 1.105830590103899 1.446604887810230 1.438363344267490 
+1.159712300229915 1.914509833819552 1.583005626636556 1.221204771144577 
+1.527469945835818 1.843786377748764 1.977935291575817 1.881080617500412 
+1.894205357782953 1.589982025391002 1.115330803358223 1.733847273211285 
+1.630138379121449 1.419718823101398 1.612128168267440 1.436372945065481 
+1.199258101262438 1.618966848981142 1.245672482547000 1.448176908039339 
+1.040663904906283 1.190975926966735 1.771364618148479 1.021345474844265 
+1.475948526305210 1.539497264577944 1.407768352687727 1.409642207054106 
+1.140965233776068 1.903394474726890 1.974166517780065 1.047889587608426 
+1.033028880303644 1.660677146591904 1.803257164853285 1.741404028278575 
+1.859828320939215 1.139272751993761 1.393366393106486 1.845885657470626 
+1.208637615898797 1.919582473747562 1.667050155024869 1.251198684687163 
+1.194039823921933 1.001700951819137 1.640333380858645 1.533814224886507 
+1.074914167614971 1.149843855463874 1.906608304961358 1.406238248126967 
+1.025156869886204 1.704312448087065 1.467315363553278 1.790711316640123 
+1.743251556460893 1.820427456878515 1.661607262316074 1.655574330968695 
+1.974013792098274 1.094458443211566 1.850591214954622 1.510588367639067 
+1.031781209293696 1.365025785845450 1.203747925262221 1.256156676336090 
+1.549737970585663 1.424425139789950 1.821982427537492 1.247323555152168 
+1.838853187228910 1.334209188438461 1.686272915239702 1.410458366939275 
+1.773005478447520 1.333405014266176 1.787375208718708 1.915399629170453 
+1.346218286599326 1.458445697435651 1.639851530542053 1.250664709701149 
+1.903299832297467 1.041602788847649 1.199613287285723 1.738105402020526 
+1.787825537260173 1.194119557139454 1.776408222721942 1.719865039169448 
+1.415585951146063 1.859359656043870 1.666197232453683 1.502863549960196 
+1.697573839923012 1.823973477850098 1.989853966391558 1.489356007564295 
+1.170746149053088 1.963908666613808 1.702854482022602 1.823424940758064 
+1.497141695228026 1.703654170322410 1.347149081889174 1.108706701346733 
+1.668166540138150 1.602140704605501 1.620120799174946 1.317013344794105 
+1.613622674626032 1.266817415878650 1.951148652845395 1.086189034507839 
+1.204237601333800 1.484153069455919 1.298221225020113 1.951653070246117 
+1.681210007342721 1.607294767965154 1.889756993010324 1.602002298100251 
+1.986280305747781 1.317159529948046 1.464999014871213 1.824409387006231 
+1.304903718955682 1.847832521108360 1.867799651882217 1.356702024855839 
+1.667065039877186 1.013048752129014 1.610202480607149 1.473663373696290 
+1.667805529661542 1.159375442486620 1.573768105299062 1.740877422745926 
+1.503912594742844 1.077150064170861 1.505256394931882 1.609827284505588 
+1.725040072470154 1.679663283207599 1.248453053872796 1.979257957558006 
+1.933710822601446 1.003803969356382 1.246400464139800 1.342625052832995 
+1.976806661966306 1.766888172271688 1.443308591004728 1.448123388060763 
+1.214830076032698 1.055664481259652 1.134236682438523 1.600920823443795 
+1.612497749730575 1.050636394668227 1.610555066667091 1.447373790664887 
+1.998530012347378 1.867475615725271 1.470529412081768 1.952966318884798 
+1.976413143960290 1.056446670343421 1.276814322126345 1.731017579848581 
+1.247079268269831 1.659428000761801 1.186312588640912 1.311847449365740 
+1.530901017510058 1.887611305757128 1.516713975193009 1.064518675224612 
+1.045260662639523 1.433454093148510 1.821154626996843 1.388473401737431 
+1.638275066455299 1.472523824391134 1.028419310491620 1.557275503004856 
+1.627237925924185 1.455723997186102 1.960089274636415 1.327918993494431 
+1.606865113372320 1.902999186363751 1.030820562309331 1.738198459302965 
+1.970752799115080 1.523996824021566 1.136752720141866 1.984261312466465 
+1.184119262029628 1.823046448178046 1.571985477494981 1.664620900643928 
+1.274228351351863 1.410762397715130 1.899506876655597 1.709583647812157 
+1.125699712839659 1.408863267398725 1.510865318909742 1.726225694701913 
+1.061559797963264 1.399143955245338 1.671747333718323 1.354101583085926 
+1.306984416402384 1.112415895046506 1.775267536528846 1.140033052675121 
+1.677746994347288 1.393852410187217 1.325244782469692 1.938956172226570 
+1.824690066592230 1.385141388495083 1.655518142690639 1.528930989788828 
+1.018540931817782 1.055943984123425 1.716270850276942 1.154650217972658 
+1.510121263453705 1.418645442674486 1.072148535235532 1.669505326279251 
+1.663030495915608 1.654071354163020 1.467573755378029 1.124946525273422 
+1.658697852343895 1.933354633434741 1.709111614031382 1.163926086756249 
+1.103632036315546 1.388450680589475 1.832727332228545 1.342412249067033 
+1.212271089328880 1.562932249504534 1.188929093213154 1.288154967942797 
+1.246152638632182 1.949655969746906 1.023323518383518 1.480637440560198 
+1.971720870858719 1.346931703317335 1.961350281597400 1.125857352706928 
+1.948182620808880 1.591905083622564 1.221863379052723 1.661002115121018 
+1.873281366196492 1.374515773992362 1.218309705285446 1.361969575371239 
+1.914902314863452 1.597996748924783 1.572656713074583 1.432117710887580 
+1.985110004390704 1.491053812394548 1.612742793084103 1.154603854908185 
+1.244257824756790 1.843971047425434 1.473536724109727 1.141825251229448 
+1.738402991569785 1.818991814103151 1.182030412867348 1.576773648819569 
+1.778236846415923 1.425073798891842 1.412061051374121 1.271038291253917 
+1.642447146206277 1.417360345840655 1.094117211162557 1.402711753492578 
+1.437731842013042 1.940735628646168 1.486238553546232 1.469757321020485 
+1.102603642674010 1.539972166271591 1.736149953079355 1.425870091251665 
+1.023344485149622 1.396351062714517 1.495658818472190 1.338016068934864 
+1.503286446181525 1.955655482362072 1.558310783910785 1.176081136753036 
+1.381509663120811 1.000301616381958 1.002673696751501 1.800284842329420 
+1.176104904104895 1.164174020741240 1.193427416439175 1.767578717287271 
+1.383307444067030 1.262141888344764 1.062594511775824 1.799092154158012 
+1.675953202280392 1.725394550208478 1.008718724376817 1.086970818447480 
+1.219877816136299 1.923095483712109 1.336224882835378 1.203489552057569 
+1.537195219004448 1.431078112775683 1.017200632046281 1.251423411016066 
+1.354862170725357 1.875208889307104 1.494756983227655 1.301572550540400 
+1.223348273838276 1.787208014784582 1.438119861816791 1.371633007547205 
+1.233840153188799 1.194009255714330 1.453097891526349 1.347400117505267 
+1.174808150185919 1.231816092273347 1.543299551161774 1.126376920827761 
+1.090129804301227 1.698435714009315 1.751583437479439 1.572031459804891 
+1.540083121636515 1.493923454418154 1.669852308709289 1.497919766144570 
+1.881190846545053 1.287572487525301 1.294109240905186 1.010092576743366 
+1.704827612657747 1.265946989978130 1.572738939797465 1.018355617196248 
+1.401591850406782 1.031782928792309 1.383577670940695 1.956807449489721 
+1.577068164092262 1.045037143954675 1.662865845844876 1.243799175822043 
+1.947490990100281 1.998545517513242 1.621317454803624 1.552903214469952 
+1.544238603315530 1.232795580330582 1.451254354147565 1.197894570234395 
+1.022007787744245 1.564743115091007 1.003433865894958 1.386299105104410 
+1.087872618084642 1.308569368335819 1.106620687363485 1.387987059758730 
+1.713611443947233 1.601609785996697 1.899691244442171 1.598645775913561 
+1.993338785720140 1.118233048358658 1.399891035325345 1.897588439732057 
+1.576551384128024 1.089588525321154 1.690758702284689 1.049725109406927 
+1.969102999670383 1.326539992381202 1.883400661185932 1.003548259435157 
+1.427476489622558 1.116458763880323 1.356888766452469 1.387682536377998 
+1.720300095989101 1.258566685765963 1.069224041237022 1.405131092867057 
+1.684345895771991 1.023493557502005 1.474822799307986 1.035155451152851 
+1.280516520142202 1.044984069905958 1.663767808747133 1.459515912447439 
+1.523917602216071 1.612061931088363 1.929323649835787 1.601056744006904 
+1.124174042355388 1.273851811240733 1.814477316834847 1.391544230410400 
+1.997429471550456 1.792440617562135 1.185678296866946 1.341483066845865 
+1.730365980760854 1.300505538736069 1.039007807138743 1.176305721270169 
+1.919337790073066 1.758044226588710 1.300826234023255 1.812402114196227 
+1.479352946492317 1.826096007517704 1.114995891165083 1.167780763821701 
+1.704384558987050 1.588643560668957 1.051303215681821 1.169546614127677 
+1.324682912731836 1.571477373711097 1.571075108952108 1.146383891980041 
+1.208883693322497 1.084194427667732 1.597766549887608 1.758273547900677 
+1.570637011288744 1.998857332614147 1.047199649151802 1.667096495407559 
+1.590246930415090 1.193476245606482 1.060990256052323 1.946710651602097 
+1.762281742887049 1.478349460279756 1.592248338842881 1.971378026128648 
+1.154097244638224 1.568159956298438 1.403282132134291 1.497757554429148 
+1.865494420597536 1.132963753950434 1.185908941694029 1.739819210432973 
+1.684061111050857 1.127013349460139 1.223544917386751 1.580812626930392 
+1.100775810183528 1.063105257994467 1.393937536802368 1.622064901100667 
+1.808622406558397 1.253360551537903 1.145197252317815 1.006169493417341 
+1.819298410587642 1.422150438386007 1.524140727372362 1.572903571806866 
+1.085527809853397 1.046382960932468 1.943134691890350 1.283287928065182 
+1.780235549375959 1.863961275152995 1.088222663132023 1.208668186151068 
+1.995722691182925 1.739432343258851 1.898626012611142 1.029541706523636 
+1.142271326372081 1.058397560112318 1.113374689095462 1.583111613446122 
+1.985746070918984 1.295775533974701 1.327710044728412 1.077225927818732 
+1.345606870228225 1.041006701420937 1.632976127436982 1.989016264217956 
+1.825321588514718 1.928999950595723 1.492502342668272 1.676238456713323 
+1.498191858647036 1.100565004434367 1.120378513587810 1.710038871526617 
+1.313926209991997 1.348278535133934 1.647267366219046 1.827096107640441 
+1.374524309509941 1.533155423766337 1.850326548908113 1.092464433128504 
+1.332854598095326 1.153103041774098 1.114185166385642 1.291729755836158 
+1.472669590513525 1.766080287740689 1.310864327525133 1.642153483139028 
+1.545150480736298 1.061246781775631 1.622389478397432 1.000284702124750 
+1.767984679320504 1.048285920082247 1.449923857202384 1.531096878483293 
+1.135867571412834 1.445584277320247 1.027051181779893 1.898415935863562 
+1.078114169985682 1.618747440874871 1.112680475830920 1.000306247809419 
+1.516294249786907 1.289410659032900 1.411085963700354 1.205174604861325 
+1.118058143755172 1.149508054425783 1.461481216712609 1.982925232504087 
+1.410995445592506 1.784308597810532 1.991171350553786 1.070103499505315 
+1.568326469774467 1.103575386240270 1.482663870308413 1.173258305894106 
+1.659428439668888 1.300370758298481 1.531172634990592 1.879707196705264 
+1.194694459437553 1.497553773674908 1.312479237972609 1.427284998017171 
+1.203443402102538 1.351518884788947 1.661847289835853 1.151992623036915 
+1.170443985393773 1.269023409241909 1.809122956878956 1.809167802041291 
+1.354112336985234 1.876461797403716 1.271276773246668 1.649298271574700 
+1.496075019898902 1.892253906657722 1.976431027082492 1.394415264307469 
+1.325395703002605 1.674752378571618 1.160487161640089 1.638458532107156 
+1.720136015965252 1.367831647307415 1.289707884576535 1.809474100143955 
+1.679155536342638 1.371293363929820 1.353385145835665 1.926603906548139 
+1.244824431490888 1.577868902888411 1.338486174925716 1.617137119128394 
+1.343025900847185 1.203945412199111 1.265982671539985 1.180674980995038 
+1.193045422630005 1.623522907155433 1.696624240814208 1.282608928610000 
+1.993412448715858 1.903529406735217 1.970635890129493 1.151421402091539 
+1.744106195727306 1.902867775871323 1.453814307231057 1.163311914526444 
+1.886850393324044 1.803159706769869 1.613134018850731 1.838674275901527 
+1.963014694591454 1.397157539843443 1.913452820366557 1.408830419817462 
+1.820408053384011 1.977266007758004 1.935477934332976 1.060985294407855 
+1.335343407000893 1.323726753561463 1.246891115380125 1.482320984926831 
+1.060921391067578 1.318422751431146 1.958970276456729 1.624040251547288 
+1.534031791938454 1.985121705921140 1.624149385801174 1.004045155216378 
+1.984385239204379 1.663456201945229 1.816978630517690 1.320042234409870 
+1.229684717856876 1.655017569986871 1.386431194668962 1.194455894936759 
+1.153209777220729 1.086155166515588 1.876565404602320 1.608239653151829 
+1.633257995730526 1.987511423499257 1.300806857877256 1.665943448528569 
+1.524550080963260 1.251513438432653 1.487035756941710 1.459519699110899 
+1.155736332651352 1.554182577780621 1.314509883765835 1.707306596908880 
+1.997259303169420 1.209621247326992 1.678217782364604 1.604915739704378 
+1.965015117412792 1.072778478439256 1.570192612872940 1.983015308245658 
+1.165503088806620 1.501813990019178 1.787227963608649 1.555865070768528 
+1.621292512756488 1.326032478377754 1.760178318348328 1.116126187820030 
+1.084457945528726 1.847301032767868 1.044665813253637 1.352997153636349 
+1.714585680180571 1.529708125463480 1.461069378978392 1.293963544310195 
+1.283276139602990 1.345493034128683 1.438828220450840 1.193618842514659 
+1.762494122689288 1.003118548926267 1.544192153735318 1.542055528033559 
+1.039429203617603 1.786492079347767 1.277820001987822 1.188514482535946 
+1.268282728792223 1.387993872456285 1.265242681087439 1.072849314187230 
+1.207544401105804 1.568630784835170 1.425791129614700 1.931371392625575 
+1.876012826951906 1.913324599187157 1.606333603746001 1.375114555265651 
+1.180597513127108 1.894877699174480 1.207553275947068 1.140898441253836 
+1.127483792921108 1.345904971620644 1.549835251021446 1.234093378813221 
+1.851237930938627 1.765743444026746 1.215271214538165 1.695894287132785 
+1.093458018072792 1.545958446808970 1.367703619157273 1.608058619204378 
+1.737729327697169 1.371745332357260 1.293411339177172 1.956315835155433 
+1.484886741939891 1.691341643340962 1.835982855684937 1.270484186300563 
+1.081562765017267 1.947864516577593 1.320206825121111 1.350996159585220 
+1.509320131637615 1.157835905435908 1.041200139794050 1.118261578383928 
+1.314188638040959 1.896533001944445 1.753423792205019 1.445298349690707 
Index: /Daodan/MSVC/dSFMT/dSFMT.1279.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.1279.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.1279.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-1279:9-19:efff7ffddffee-fbffffff77fff
+init_gen_rand(0) generated randoms [1, 2)
+1.156831223459688 1.953102598919505 1.488013133047359 1.105592242939646 
+1.756666504386507 1.690453480633489 1.365624648541421 1.753090951057517 
+1.188492820321510 1.316363338748397 1.862503124432107 1.060669621217250 
+1.079655348652178 1.753098694159565 1.241247999908893 1.345669684480899 
+1.719305024420935 1.843159163987291 1.508015231349763 1.172186550392653 
+1.219648475195565 1.924203146904178 1.815070203581003 1.917172564476775 
+1.102311538972941 1.878408460002946 1.251644788821400 1.948223870239490 
+1.044968458249336 1.105173227127808 1.398897002419337 1.058929203914090 
+1.854494940686500 1.634447559829633 1.386042744905196 1.513651387167239 
+1.190514158695152 1.210933600700949 1.436049539013006 1.751664448648160 
+1.606077847063080 1.211097471630614 1.623685285393927 1.189218395724623 
+1.239676236413326 1.526818372471840 1.297549363641707 1.522756144124025 
+1.407407609563871 1.239658770743262 1.016650800241065 1.507996669431624 
+1.082166236950395 1.592039438453422 1.201921846854314 1.349068197869612 
+1.045672954666002 1.497344592793704 1.215486829998352 1.581095758511412 
+1.831814855518728 1.914917033907067 1.115460402706716 1.836588528857294 
+1.451003423569281 1.529707662356863 1.676283338278528 1.361986562755080 
+1.042219216107680 1.827213009231513 1.822125284189564 1.383212188216497 
+1.652193821444073 1.901955559670723 1.944834835148568 1.205009005944989 
+1.990578597939247 1.409077349219510 1.244306609013208 1.530734993748317 
+1.799076758531754 1.311473225620770 1.633545645026178 1.342543707921812 
+1.400196635441060 1.161646319952320 1.720807327063207 1.090973221593006 
+1.317569412361829 1.717788578418093 1.179285731772834 1.864400740597226 
+1.979333096473101 1.895249815167755 1.408974344048483 1.148198186119606 
+1.341037447969234 1.338395189692571 1.145539667894221 1.288054807402476 
+1.304130583561173 1.513870592761358 1.661597871765747 1.638232027527948 
+1.308110576438791 1.960051333425258 1.738612178945028 1.006034979044443 
+1.825876403063155 1.042021808095839 1.439305670187313 1.839528880455942 
+1.212624167964505 1.668640062637432 1.616953276327668 1.458294966374252 
+1.592572412151134 1.382200046939877 1.126973005414268 1.404813484316637 
+1.680906950115441 1.784949403094847 1.106969745704120 1.628848605150703 
+1.791966694744996 1.529716964436896 1.942205004776965 1.913772737533591 
+1.965683523354432 1.249041237631133 1.639834288160186 1.132186836865816 
+1.756844257815402 1.255140489943370 1.936981291857693 1.640122899037182 
+1.545448699644884 1.914117127472573 1.278930954192835 1.165264344216890 
+1.377486021307755 1.087975482636387 1.371889954529951 1.238873830137439 
+1.468229016586038 1.974340253470751 1.573998497405239 1.045127222389102 
+1.331445640166013 1.285518301234608 1.651860223644249 1.312560309483186 
+1.488881905966896 1.010717355333711 1.053822454284211 1.783708983029679 
+1.036658291400169 1.793932684575095 1.088581385804463 1.497540145828497 
+1.825168722677575 1.835765906644812 1.941325055731064 1.808231064678380 
+1.500762582946683 1.191682504125067 1.478299381124465 1.176832052263767 
+1.097629643266871 1.573802763722521 1.517183903012012 1.856937225785671 
+1.180326407985140 1.119252123060017 1.674857568408385 1.308362170347256 
+1.010501475541791 1.742962782209173 1.014088018804621 1.198200454455286 
+1.915160185579037 1.595117307361694 1.790068133995175 1.246777541011717 
+1.128121499447567 1.130931841532801 1.920274451844516 1.374113760423451 
+1.821879058061152 1.171797307486059 1.197822699206938 1.045915548069874 
+1.196673338453378 1.389473073666528 1.009400930256879 1.783242393826357 
+1.957357459248577 1.285237714196815 1.951415308562339 1.079683515067420 
+1.916874342815700 1.974573113714720 1.928864984955398 1.797203872234484 
+1.065907265238493 1.513940266086302 1.612781788886007 1.524648492758516 
+1.372512792936750 1.050913210879113 1.057306044782054 1.454566999391232 
+1.659074908088143 1.113093767807257 1.179262515920685 1.471195525982817 
+1.560948754071548 1.228292055471363 1.339894639371263 1.763566698787036 
+1.169712710497199 1.200165214904321 1.489238509764560 1.368277402025204 
+1.320845330335213 1.092475385598403 1.453391462069052 1.703141147755977 
+1.150354822354387 1.683704760539812 1.463479694997500 1.435480761308358 
+1.367461911481307 1.669991357338214 1.453088211581979 1.723563064019931 
+1.605531400943039 1.265905021579103 1.073664796515274 1.539537943479191 
+1.540691948874689 1.923786049476228 1.952857256895252 1.155643953925538 
+1.522942082703703 1.195204628421846 1.440909360315107 1.380081635949815 
+1.965514829993491 1.163232689815564 1.768509438067885 1.706726552664230 
+1.593932366425516 1.710930699006304 1.490491654492058 1.551815677031859 
+1.490636596842656 1.944822100631898 1.104943797497265 1.228559377149231 
+1.532311987406922 1.804451041438629 1.050674951904306 1.880623965860059 
+1.555392236368580 1.885270258714788 1.805581350696180 1.482361927831050 
+1.639213769627502 1.860736575482779 1.471878016688956 1.354861820474183 
+1.883437163191178 1.068612178242989 1.549561761128394 1.106882825339392 
+1.876698426962869 1.401347107609706 1.938147594224835 1.779070431918822 
+1.906674855351909 1.986213984334163 1.654789607521931 1.537302009789823 
+1.716184524014637 1.938069911657517 1.230571926411827 1.532990464621119 
+1.173838896345418 1.897781689081172 1.723838884986917 1.659747102732303 
+1.930983705067063 1.557309987091102 1.030165803355181 1.919490223193123 
+1.976910576074522 1.496850712446746 1.457540080023718 1.768774221862170 
+1.130186121573405 1.841843069790499 1.203905096875537 1.577867557474606 
+1.073604192818759 1.634721132076596 1.905217202456042 1.556591712223129 
+1.791415686930466 1.768943522338185 1.604423043365542 1.933482097475557 
+1.681909848916382 1.941177683682055 1.808301128177719 1.146379213154035 
+1.996047329392419 1.743574511954225 1.948971963823737 1.484847600794186 
+1.070964951318150 1.668314606087477 1.549915185343077 1.463583559595393 
+1.764835492694428 1.738955392672394 1.784846964980701 1.540994029491036 
+1.135457939089477 1.110902702421182 1.903874999898078 1.093653409577255 
+1.679368996095609 1.554030336492390 1.680305140764203 1.182548658103410 
+1.956153597872059 1.468966361523014 1.748207388960998 1.906578474239568 
+1.416393517884698 1.463431165460276 1.656366835746428 1.394677080531566 
+1.203487400224165 1.279532210085799 1.211044081137151 1.187186590484611 
+1.646240291357538 1.878766637818457 1.979328388298826 1.177875200242682 
+1.172796444035314 1.951265682835827 1.932521659233660 1.795525100895299 
+1.699478603778156 1.137920394381872 1.514982732249643 1.836343151389021 
+1.522172042626998 1.010244076434187 1.658687264901935 1.807506184274940 
+1.811513111109080 1.584995458393552 1.321970979433013 1.376715235295936 
+1.427713459600185 1.296468063018915 1.136418989843409 1.782670444168642 
+1.807997411880654 1.595157480492708 1.895398963084628 1.701128480008582 
+1.517665144540125 1.336785722060292 1.645815838215375 1.200315603687943 
+1.580046973050915 1.431745709778808 1.892439578406656 1.141896309261979 
+1.561067845517661 1.315845690604573 1.380657105153170 1.675705868609686 
+1.492584626832412 1.776375753128469 1.261659267163982 1.787025035496119 
+1.042718875692375 1.284105737608529 1.500018678229466 1.675259979994218 
+1.000345268509699 1.141166378706716 1.854410521857349 1.967058588237171 
+1.761797362062107 1.651923339958939 1.857272572010084 1.711848628223469 
+1.714330998808290 1.158543722698159 1.683025406132535 1.107777564472638 
+1.040051186173257 1.917029900405936 1.699087050437494 1.039817661707921 
+1.395247475646546 1.810925041572562 1.776447565149311 1.073542240507331 
+1.851866054277840 1.454466578800397 1.188963229761846 1.208703290007485 
+1.087408104518285 1.457397701223419 1.559493406380787 1.986405037776520 
+1.900053127563089 1.297761556586606 1.960280070727791 1.777755319614230 
+1.183480012973464 1.370087135233320 1.104934206546861 1.540836406215743 
+1.199115356966964 1.258671881577394 1.766928398858050 1.209327154144644 
+1.705690304427969 1.005639655689009 1.703215918228357 1.451392357389786 
+1.983841251276006 1.606082069221591 1.338157359571741 1.131882917261225 
+1.029144836593801 1.169120605432338 1.561545198065166 1.011440153739328 
+1.288418100307587 1.958410099267099 1.999862090463807 1.451832410463202 
+1.604859378846480 1.801994840996798 1.997119647737463 1.564863621418552 
+1.324929902191327 1.878738675518148 1.786618150459407 1.709449198989919 
+1.749227917884281 1.182888621288687 1.470956072690871 1.845300497447800 
+1.161902015261478 1.832270859237826 1.992818864353968 1.293394692764044 
+1.120067081704437 1.662654641894291 1.509948916703458 1.430116986322376 
+1.758818975509031 1.827283816303588 1.520683995898051 1.499138470436354 
+1.771280158333642 1.724937696949516 1.264536606799893 1.929366540221803 
+1.724157189096200 1.160457487867541 1.181554833637712 1.347477670532897 
+1.263417373233776 1.708118036258075 1.473342282976962 1.597193330624696 
+1.976498822499467 1.587793904794555 1.141298198137007 1.619676445490467 
+1.979185878552326 1.628857359666120 1.959435174214784 1.798294545284924 
+1.438465236448256 1.459126778067594 1.652845048337102 1.841202313703175 
+1.279055498194921 1.742943531305350 1.735906336306816 1.466988699519840 
+1.757451789180506 1.205528715185747 1.718877852300294 1.371248213040827 
+1.296921322591049 1.148661202296145 1.816039729435041 1.580476569024068 
+1.468299675968722 1.601723324324593 1.895882936966790 1.041532819561606 
+1.462095363072948 1.505875773532547 1.617880938156393 1.239455796993716 
+1.769387076392791 1.980911130747113 1.929970387278306 1.292675091153095 
+1.858561853677307 1.554630713775607 1.124763021650272 1.266980781700181 
+1.515640755219148 1.960551448330238 1.940428366897102 1.276271819988583 
+1.226264054242100 1.285803043191038 1.839953894814995 1.907666334361365 
+1.880072649539257 1.979182861064231 1.838455013739228 1.779242654955882 
+1.670998889357935 1.336252527181265 1.064417517195582 1.807185488634110 
+1.179768650122665 1.842477065145519 1.602866820956490 1.459606993361504 
+1.935008080117779 1.847946352592725 1.029292256709911 1.923983426517378 
+1.108158909176367 1.942577006293535 1.386917761143318 1.543602240525929 
+1.871146815961502 1.404592162945529 1.297988548171994 1.073992121486653 
+1.147229581933886 1.447984203660208 1.756281686160205 1.247922789618099 
+1.443610609333816 1.785367647571114 1.216749649747209 1.199166610535386 
+1.563103885288706 1.049280313412735 1.655613223192582 1.698775362844507 
+1.497697237317649 1.830160931820977 1.188121834323510 1.853439750203814 
+1.952301590558388 1.512427126054576 1.472965425327314 1.231551810649639 
+1.584047633197812 1.039503062168514 1.903494583436149 1.552309941650418 
+1.837096818804315 1.609158085773776 1.444395639807581 1.444131185213436 
+1.651842581599900 1.884674776479383 1.974614821915374 1.384839166461168 
+1.836175302229679 1.469177746233650 1.049072223135564 1.812133973147964 
+1.699334616995487 1.284307249902071 1.524733190129284 1.868117692363352 
+1.041741172889964 1.183445433667536 1.656309292534560 1.062359972867902 
+1.850427040669602 1.541595195856654 1.791360911347246 1.971280898284064 
+1.271644696368681 1.469850797527078 1.147292724823231 1.810894783098288 
+1.832446720209921 1.227295497750877 1.866445869287879 1.013946718008323 
+1.898902033062568 1.934014306935914 1.028642189436153 1.507769359928255 
+1.019484845534266 1.617114664162243 1.033137303324840 1.009366810093216 
+1.295242881900676 1.278946203956140 1.980352776252072 1.707426376894515 
+1.090663518536785 1.788829723461106 1.417872285141475 1.346290387106084 
+1.117321623318257 1.827744655304627 1.569661255668497 1.856990122132496 
+1.141888659898091 1.754480755572393 1.799533979534302 1.027486646479050 
+1.830671400605411 1.652512239653667 1.232874247335748 1.973583030300139 
+1.888629503665612 1.146538391032964 1.836989291767818 1.613078540895394 
+1.294576564530330 1.003551004952085 1.557974730893430 1.851898637686015 
+1.435819622505834 1.885835757736636 1.398068405968634 1.250609924600826 
+1.837479370618849 1.960425438525779 1.884651988942438 1.697573248470120 
+1.379421715315408 1.130556502944913 1.189528040848981 1.770429631916263 
+1.004383242567405 1.770904372068914 1.920003213151083 1.589876651157004 
+1.919048469580962 1.619890036320521 1.216666606179940 1.300732764418040 
+1.758764742270067 1.815272367759942 1.636428904922050 1.832020420381234 
+1.132918517090834 1.047344904180108 1.093784023323014 1.188027776763255 
+1.769880186651337 1.398941491899040 1.158049566238435 1.779688822271047 
+1.519554198573789 1.315924392990979 1.832177453916713 1.831577850448904 
+1.154135819652193 1.413778661471850 1.601810940431294 1.580227532498345 
+1.071621710209999 1.830225298367331 1.904739827439006 1.702987363005402 
+1.257623024402392 1.208453981937076 1.097379342006390 1.857201311205082 
+1.494866724173578 1.194191851175385 1.276460314496163 1.372559583476487 
+1.749257357696145 1.902029624528757 1.284895195945893 1.302443489928255 
+1.969993834217031 1.493817908817935 1.110080631194031 1.134561557471749 
+1.058836755799774 1.057130658562627 1.380835677944458 1.745939940612085 
+1.032827669668879 1.783125092821049 1.745032542420123 1.015012447005450 
+1.626688904238441 1.790414538687683 1.866518306939001 1.067433189212285 
+1.958902697722877 1.183084745129312 1.694077672298559 1.430838228766031 
+1.699674581449869 1.952961490106078 1.755309809916065 1.034831587429014 
+1.183622577469353 1.361473401305092 1.609523789945413 1.565596220623675 
+1.920965818846561 1.575492951965185 1.691825007918061 1.636736356243868 
+1.715895887980417 1.090958324314315 1.772996525578754 1.167240400550016 
+1.923076870813826 1.794331168040257 1.056591202889793 1.482666930397992 
+1.719339297722720 1.379750112370842 1.309616473101245 1.363875308917129 
+1.048981894158290 1.160188073192987 1.895452555927580 1.379271642131591 
+1.949583661541175 1.436974034734224 1.692954273154841 1.529745437816717 
+1.382099324203065 1.413222919779780 1.786227025175213 1.500972922386298 
+1.989261639044304 1.749153338465531 1.420680671123542 1.753186200086421 
+1.781497845073714 1.438109803874597 1.702648467717826 1.781002331003510 
+1.156537764567500 1.630422369070252 1.158451346436536 1.808118349329677 
+1.495174358112385 1.301934670590789 1.369270445179514 1.542731782899012 
+1.915662838882114 1.948625119490314 1.950320814205412 1.099142781006161 
+1.819115552905063 1.529203880707994 1.145283854765807 1.344751895034173 
+1.636874820082564 1.761311445769347 1.838151012575919 1.436733760105901 
+1.680827691032739 1.006191090917144 1.348962934139930 1.521326270581195 
+1.486612191597510 1.304352844016017 1.492898723900874 1.574769629791024 
+1.079827673754994 1.485286878839163 1.671965783066957 1.597574186889307 
+1.111776451984124 1.842152185103984 1.130679920980772 1.131270260236859 
+1.278235720848213 1.755350892890302 1.919221506850663 1.221114455110473 
+1.294884136159642 1.709662525604445 1.995440504981431 1.102498244147577 
+1.165104365059219 1.246917358634977 1.663100638761350 1.762344482594712 
+1.738036978372999 1.970558093986147 1.975135038181720 1.089766672836557 
+1.194047413826271 1.887440629789578 1.945023992254844 1.662660858380828 
+1.012546880662666 1.746422706603348 1.451242160338531 1.971987255617700 
+1.517506376764677 1.332873655718375 1.803743956211314 1.269639313709432 
+1.255192845012833 1.947158901126266 1.953493329968637 1.616436212586262 
+1.487102993790441 1.112453406821629 1.701950502954138 1.798818443273135 
+1.241758329595899 1.272450253014750 1.059904849336927 1.632690775130774 
+1.906342845163335 1.064880988977679 1.893493738780686 1.587279230164033 
+1.642313571993533 1.300961772333085 1.975073005942000 1.739811319514881 
+1.093115845170034 1.435698080349287 1.429229589227551 1.055591614760253 
+1.923585061967995 1.107767105399799 1.880099819618092 1.562125005616731 
+1.957339551981028 1.765155992341599 1.989856228081166 1.809253892939498 
+1.430677056755089 1.683615855310932 1.882122537159289 1.309808865040549 
+1.383505756335199 1.200584827584022 1.711182235258465 1.764101584403521 
+1.969978209495469 1.785486667088914 1.949277273932550 1.832995229702844 
+1.667802937751930 1.916074216956237 1.626542752792327 1.667326544820278 
+1.604986734605494 1.901517152541234 1.691918439818144 1.323371398608242 
+1.827331385059101 1.381811337759627 1.341407798507988 1.722137617481000 
+1.093022790250391 1.613860317179025 1.721631619923840 1.538155485060965 
+1.346162000863578 1.467198403583808 1.996599781099279 1.359040102226531 
+1.461392311526998 1.132491112315587 1.764665072665883 1.476847818335842 
+1.743705138763347 1.302312557804937 1.452429601797827 1.721658149878821 
+1.064370623998018 1.777442061490693 1.879704790994477 1.624835815121080 
+1.139295428705441 1.826415557395320 1.847362285103470 1.079524699124963 
+1.152936814782536 1.391344489249948 1.382969831514588 1.755477413385667 
+1.756283572499010 1.945246018429232 1.812883563069099 1.167646667422380 
+1.601479219050103 1.491262880514107 1.068821425667737 1.651840914271852 
+1.796172556333166 1.911789114179145 1.013361525739008 1.655771238041839 
+1.745072683908006 1.195893033309421 1.571351116135375 1.228987649255706 
+1.803026612083330 1.434045839930020 1.291990496481559 1.619633619348228 
+1.575146541348941 1.161900292790780 1.508827320299430 1.887421666240000 
+1.091601009260696 1.763320603812615 1.029855213042826 1.012995081140343 
+1.258846776326928 1.184211354331455 1.677390757603922 1.733228196781112 
+1.394044459121053 1.325516245226029 1.176335737396861 1.792561231950753 
+1.008598491393521 1.836482314141504 1.610882632270619 1.690679830923169 
+1.837591966255078 1.160128581560267 1.654620893760503 1.616290221473123 
+1.753346514672486 1.520722242935765 1.839748199064077 1.321741834993253 
+1.187411486332115 1.131827502674687 1.061020167760792 1.643145412931862 
+1.766706698145981 1.329259030012106 1.402009332786640 1.076972207326793 
+1.413579267005697 1.502723550444540 1.484982646879933 1.670875406510761 
+1.245360568168656 1.165380507332637 1.116665339233061 1.194034154425866 
+1.545766023947871 1.402597432241319 1.030852556202480 1.708295654279878 
+1.013431369944712 1.350541334176504 1.919491760151125 1.967608250605749 
+1.785184571073000 1.967815994377165 1.558337591873853 1.474609396390283 
+1.996214674294498 1.905553502363882 1.377030530363678 1.335347843539054 
+init_gen_rand(0) generated randoms [0, 1)
+0.156831223459688 0.953102598919505 0.488013133047359 0.105592242939646 
+0.756666504386507 0.690453480633489 0.365624648541421 0.753090951057517 
+0.188492820321510 0.316363338748397 0.862503124432107 0.060669621217250 
+init_gen_rand(1) generated randoms (0, 1]
+0.419885517221934 0.810112585108877 0.940236453400972 0.623360474420156 
+0.630616293919298 0.212300534719664 0.758834629575185 0.875883062362439 
+0.128970203122565 0.517725048970839 0.282344071433076 0.027599994280744 
+init_gen_rand(2) generated randoms (0, 1)
+0.089579978452761 0.658108704671168 0.366647599557840 0.230628125941176 
+0.368742760048532 0.295514717026912 0.799388611483071 0.845396233345246 
+0.990732824244897 0.236521332117139 0.466784235663302 0.837080121670923 
+init_gen_rand(3) generated randoms [1, 2)
+1.944705789242260 1.198826816441233 1.789264220413955 1.051800701136341 
+1.693443194328767 1.588289742366447 1.348216260205265 1.367549740192885 
+1.332701251308635 1.846695132725040 1.037688452208743 1.552307844874915 
+init_gen_rand(4) generated randoms [0, 1)
+0.364763168484598 0.148846426776551 0.872329428387068 0.343385782383902 
+0.383122366941475 0.390558746496138 0.005591283883566 0.859926560559612 
+0.145724364255677 0.834225748319710 0.133152262304825 0.862810035918125 
+init_gen_rand(5) generated randoms (0, 1]
+0.599092557469907 0.302813086929101 0.614374673163305 0.665123451363622 
+0.690796350145810 0.041741010504964 0.823887165394826 0.842976190718608 
+0.769367981663134 0.860840976959229 0.495724637344198 0.230007258352545 
+init_gen_rand(6) generated randoms (0, 1)
+0.165051757946821 0.690581886628497 0.736208960344018 0.552508662438028 
+0.072350796923901 0.415862912604273 0.504625468507835 0.986912447926083 
+0.537917448566223 0.119718663064788 0.918823649781281 0.539804429814354 
+init_gen_rand(7) generated randoms [1, 2)
+1.806629058661570 1.356620156492110 1.628455292948148 1.591950778457712 
+1.613322405427325 1.904062787866744 1.677662541032122 1.694293074995702 
+1.677058200427991 1.058220227060939 1.021023325117410 1.491172968534249 
+init_gen_rand(8) generated randoms [0, 1)
+0.664045222410042 0.519485589911291 0.428938515879274 0.187433874251216 
+0.380468071528059 0.385008871251893 0.766034128812132 0.913890256547367 
+0.995404678384921 0.901667075635926 0.626573153796530 0.484723857332466 
+init_gen_rand(9) generated randoms (0, 1]
+0.221135266765194 0.600297133236089 0.803622177245053 0.101906582153485 
+0.304794307051574 0.589095604432693 0.042522338645820 0.340459761494362 
+0.676947095917853 0.440602727741034 0.029707774803035 0.232513496906324 
+init_gen_rand(10) generated randoms (0, 1)
+0.063923425723319 0.696698843092628 0.175240007707153 0.253053694266930 
+0.944648897355057 0.390397316932160 0.770115877919974 0.994836197447424 
+0.562023760128554 0.677703357963455 0.375459842300269 0.802211026490111 
+init_gen_rand(11) generated randoms [1, 2)
+1.330864640767377 1.943461735677700 1.905524708078131 1.078128098866684 
+1.868714214381825 1.194980990636967 1.970713522936120 1.897751381318548 
+1.581438655548554 1.051817069102332 1.862023841730708 1.493085722188936 
+init_gen_rand(12) generated randoms [0, 1)
+0.022722061293032 0.014476914752158 0.122124756939761 0.584301647229114 
+0.869463415631740 0.110606917877002 0.193212205568331 0.679598296627050 
+0.022740503638442 0.184246950797877 0.804296423523108 0.739781322527131 
+init_gen_rand(13) generated randoms (0, 1]
+0.535984342613372 0.457694267735412 0.900698388656309 0.295668930722970 
+0.731809260076569 0.596568081442974 0.242172600123957 0.214145052700693 
+0.348537097059960 0.596768874288247 0.532006461385099 0.863105268549116 
+init_gen_rand(14) generated randoms (0, 1)
+0.601479715434419 0.063401545596355 0.639112794629247 0.155619399060625 
+0.168639297660978 0.214600675258439 0.729977971513257 0.918494007234260 
+0.701473207908439 0.459302858294487 0.410590573010929 0.660590541698988 
+init_gen_rand(15) generated randoms [1, 2)
+1.384391203136248 1.355206507648709 1.727081991734582 1.431011782457996 
+1.860763145826088 1.334360991808025 1.605932906911673 1.281072871037458 
+1.500355479067111 1.343007103311341 1.873386836163271 1.624902476841801 
+init_gen_rand(16) generated randoms [0, 1)
+0.366375648525236 0.623653117083147 0.527965547807329 0.536923729261090 
+0.360675435096679 0.579977354525942 0.098889590363603 0.085270015126793 
+0.549526703000319 0.660129368139932 0.275955934030721 0.629527778870302 
+init_gen_rand(17) generated randoms (0, 1]
+0.571033516685347 0.801561141784205 0.387144018237191 0.462337614240274 
+0.183045847505072 0.159160289615046 0.650791916938565 0.775624671176864 
+0.998714392233697 0.856441607022886 0.853716019974940 0.701770813671765 
+init_gen_rand(18) generated randoms (0, 1)
+0.596187131129228 0.680763242947653 0.987125180268455 0.176533501418735 
+0.770606870819017 0.944869463485739 0.808055067469862 0.541339364586326 
+0.563121424243466 0.481499658727594 0.778718069808643 0.124570684486376 
+init_gen_rand(19) generated randoms [1, 2)
+1.963343696240910 1.705055370779093 1.003619564212299 1.321056693465327 
+1.365799237264602 1.962752617148570 1.243807390056933 1.550481876603983 
+1.927149285828093 1.083379318451816 1.924904794454879 1.976308349042261 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.172576948108100 1.016530324026134 1.115872658893861 1.331575522171086 
+1.023881368758961 1.514728489172135 1.902702203511789 1.301427216149078 
+1.300372479211817 1.680793219819937 1.258929783674165 1.288714917459612 
+1.641105595348154 1.200999755994626 1.549216880264564 1.936335917342217 
+1.515149574696129 1.738974925233382 1.494785902679260 1.115535262925720 
+1.014700954669443 1.101368922470177 1.237915889489572 1.583408761641234 
+1.302299927800841 1.932581852941830 1.999007450796075 1.378459556343582 
+1.621923063736184 1.756230918580267 1.210954925144675 1.159975974633603 
+1.531106942343304 1.200201641875145 1.608768410297702 1.363687154142534 
+1.115133077738700 1.605316978197068 1.656744148122703 1.435436026186166 
+1.111397035822630 1.896552033226138 1.913718649705044 1.944286287856050 
+1.276491849061627 1.545493925803933 1.156998948625908 1.150493126355186 
+1.057621550724871 1.343493147082714 1.886843100872174 1.970906832483428 
+1.997135472589361 1.592652053632663 1.975253145635732 1.323380695386456 
+1.697947919247237 1.746828637444213 1.218779487009434 1.761685149269640 
+1.381356761320259 1.304449426161052 1.539316270766897 1.844657049785946 
+1.667543438752628 1.501525659575470 1.778046444193608 1.144797277684823 
+1.527646404421983 1.981839686562697 1.354255832719674 1.795302350053642 
+1.256911377648693 1.903740436620551 1.189711313853743 1.653981502940068 
+1.696150592414182 1.643579948959543 1.629334231936199 1.506632361692406 
+1.545771535150996 1.428090815984604 1.584516572997732 1.690502598798524 
+1.170971235094742 1.385637423363984 1.972885119424842 1.541759611145578 
+1.415875290303133 1.410306684890914 1.666306009417349 1.649855694352930 
+1.078690550064123 1.026398708024463 1.902445630177174 1.940712395004192 
+1.742719347226414 1.260052586895806 1.219629652889260 1.006301191787634 
+1.411041803562504 1.997193905052715 1.532472345255677 1.318147722374886 
+1.801144152308210 1.837727311909844 1.770234540954644 1.171364086644283 
+1.127611227065865 1.121005763860806 1.391941474321805 1.621864689870358 
+1.474291677080280 1.747732612430724 1.155679202549890 1.897857841967359 
+1.649675269130899 1.423894205693351 1.146286387571503 1.910649651351765 
+1.747177949755270 1.975716617920535 1.752172448733651 1.075524326801444 
+1.668922607299254 1.385094580019626 1.098851952643049 1.340248428249379 
+1.810503068113603 1.979141732664828 1.606149777879131 1.793836330985758 
+1.398563299933439 1.000450161478666 1.707789980870174 1.714165279356726 
+1.836871012382983 1.672319678805194 1.756771010203344 1.938668606138787 
+1.404344346949407 1.869466875217024 1.180594897055295 1.946915611391285 
+1.814183103400641 1.503575626560171 1.689188999403985 1.333844705555049 
+1.789651528953342 1.885804277471215 1.303821947977459 1.731380294662582 
+1.176314329736050 1.405050940608111 1.246754267981698 1.521601508504065 
+1.597296764380452 1.857205912278700 1.581898133100675 1.448147293987399 
+1.079975997935836 1.095624775714471 1.295072373222074 1.029541054443967 
+1.416350422087428 1.275467800811574 1.632185594820923 1.415468187530418 
+1.384852774278711 1.181660332993600 1.768026076929331 1.078168598935904 
+1.752442714308634 1.538886920368595 1.111313005760148 1.843839012047274 
+1.955910191921695 1.910914931994077 1.385115239038495 1.523758589597423 
+1.068883454045747 1.594374166708486 1.234908259679628 1.605148491109518 
+1.892464882353921 1.843473716387380 1.329701775419234 1.476146954067875 
+1.758515361654646 1.866132416680839 1.950829777774573 1.175754969411656 
+1.156369466727406 1.132227295062327 1.916248929662574 1.805808289595103 
+1.856623102749863 1.708794721184679 1.593130555222920 1.189704305261320 
+1.506433148293068 1.921474844094136 1.171439592551849 1.772969137048035 
+1.616049693761552 1.353450775011675 1.427756076495220 1.230037976990759 
+1.428155231921874 1.167503312024862 1.030163470607928 1.838098466216771 
+1.978461477831330 1.767381794521528 1.546720442497419 1.133001192972670 
+1.715460890685488 1.021323361529654 1.212692462139932 1.050464004750597 
+1.357311391349800 1.617760569399808 1.044462415859648 1.781705980120053 
+1.709248330707018 1.787154979066566 1.061261774872202 1.388712815668491 
+1.159870066597682 1.774920755693078 1.584515450146315 1.328332250969545 
+1.562312679443558 1.684077348093935 1.490668451204595 1.371329012790914 
+1.713875942992628 1.452512736666419 1.671061704435186 1.354166172506009 
+1.533253768736698 1.857395345475969 1.950060973342374 1.514487066525394 
+1.525137139076077 1.955674921565144 1.932815519915550 1.344568560100464 
+1.726569339996184 1.272718652745272 1.331217699368657 1.582887019763915 
+1.505070384505839 1.129581411540526 1.231981468134858 1.500675167834331 
+1.661125491085856 1.535687138210588 1.430870135480697 1.047324606931489 
+1.133145041879135 1.315376084198841 1.794525858191156 1.347741393803225 
+1.059373639318468 1.643514646792671 1.544564054395949 1.360290000487252 
+1.026769528991115 1.524972075983116 1.750590387051279 1.250456588590998 
+1.360142164370066 1.973902145293277 1.947345088107104 1.319525494691602 
+1.256269081460315 1.880116835339806 1.645592143126674 1.841857182954988 
+1.654726261990710 1.510408549451959 1.790597152610987 1.563274123486613 
+1.986457967906391 1.451448465858893 1.616829803120422 1.589281754336163 
+1.252597757648609 1.157653194910631 1.197437486301125 1.555397067408906 
+1.263057929061271 1.162139063510344 1.231350827158370 1.958277218672144 
+1.833277552924844 1.291349714333284 1.682582709474384 1.299620414461740 
+1.961281949435176 1.428156140883764 1.622764352523244 1.043953611840467 
+1.199389863814010 1.922104786982600 1.303234897111581 1.059322863367091 
+1.112027216800272 1.463170879839423 1.485253962366388 1.205381304939042 
+1.946580878382345 1.622236535786513 1.041841967848442 1.373177729211005 
+1.940081081065631 1.368021890550889 1.041203270249248 1.391779490090168 
+1.217395477208978 1.944932632858380 1.613944363514480 1.716706835237477 
+1.744155035022347 1.147874967908461 1.924808837795106 1.628884954432015 
+1.394446285479412 1.283164987550765 1.039404801762997 1.939780310123802 
+1.901904846002564 1.697905335661045 1.434461464788383 1.105292245948582 
+1.733212102742673 1.805135154364260 1.888872448363056 1.281273279810155 
+1.333439902278813 1.612911745794393 1.578373042106415 1.400868032718936 
+1.824900760665871 1.046300931030738 1.790280086475698 1.164847346206769 
+1.201088892926479 1.294757085148148 1.206495827257361 1.094665721997974 
+1.202316339805075 1.949966591800658 1.624213466415217 1.507059449662077 
+1.383649116662981 1.595387486030278 1.208935058324912 1.272157474528165 
+1.242972465664089 1.205087791639442 1.892853109471961 1.435469908544484 
+1.941943267431887 1.656754417587090 1.099538902981629 1.486274975801786 
+1.419243519465694 1.827439459927812 1.674596988122012 1.450175572119487 
+1.635484325940473 1.785770423822138 1.834453030625231 1.412230305304600 
+1.495845377384271 1.465655425650399 1.037281956814077 1.934531561283870 
+1.084346497191944 1.604008428711886 1.309192113416038 1.823303767276606 
+1.812660357111899 1.635282343298365 1.418425149426270 1.518920299499331 
+1.088265021785922 1.797580148572528 1.792299263557545 1.391144959174768 
+1.558509282354965 1.447591280562962 1.400754850820048 1.537426529263834 
+1.283559887767393 1.176931213889749 1.627028826311578 1.882875982750285 
+1.928589967427024 1.810776423162010 1.773882010798642 1.168026759162275 
+1.645344237720350 1.129251630493785 1.529336315906816 1.354968699814230 
+1.813515323876430 1.126100972757840 1.388808368915793 1.044619054091578 
+1.181699845039667 1.324205222450623 1.220935838538240 1.018041691116654 
+1.470436789568900 1.151387428492044 1.788006177566017 1.499053481145572 
+1.777336100983500 1.075707398944346 1.275919219748591 1.264905574975258 
+1.600567535264470 1.693207719945319 1.570315115657046 1.693454095236924 
+1.336169184910861 1.597107955238138 1.328769454061256 1.988575161569303 
+1.293737698754405 1.931230469311272 1.624922406776782 1.120884365498151 
+1.981583628791678 1.377409601879654 1.326034239155697 1.257015280202334 
+1.402998774317112 1.352281243914778 1.074442144281407 1.037350473989423 
+1.528986476710281 1.196626347311546 1.305465897724588 1.970024553378919 
+1.685791497035051 1.533182523123722 1.621493628807450 1.460541455891663 
+1.032233779571340 1.841047580807577 1.747478469075901 1.842588528935383 
+1.049578105729925 1.484083589162618 1.298824743017744 1.898587839757369 
+1.397667869445493 1.432002689152302 1.406605014398918 1.757590624918947 
+1.221963233714740 1.949479448510395 1.254543364740184 1.398204580115247 
+1.837313924088171 1.914989442320626 1.115990306439360 1.157487494676112 
+1.485133649377192 1.943860395834792 1.756148810523966 1.783929204367486 
+1.470410111982825 1.228882497039841 1.153850669535313 1.456042405902912 
+1.237917480932434 1.451802974423803 1.027399353341565 1.392691699565836 
+1.698927037863648 1.307963341647731 1.869352047478336 1.778805958462817 
+1.058234329787381 1.188872676207463 1.656409231667451 1.274913213312006 
+1.879830153683422 1.750110479841439 1.009895656315317 1.678247477035670 
+1.925433453995122 1.007647753428400 1.641426212403406 1.136906402938185 
+1.045898243848900 1.569210309687761 1.079482232782679 1.329830272136677 
+1.950954057339824 1.181022771130607 1.660134167778584 1.637882405977710 
+1.241253543853919 1.165065521545102 1.006270723090755 1.925008647712046 
+1.519976953692222 1.191344474427371 1.282864624152662 1.787984794608865 
+1.326681963770793 1.872945203037260 1.157681885211432 1.864921992448596 
+1.587597484930655 1.709149879724770 1.435494029225613 1.446483787118939 
+1.815756895068982 1.605704600449896 1.760727177185519 1.283818402503666 
+1.505846059583512 1.155098245895755 1.847202882557511 1.419944833751413 
+1.185449633072303 1.605835210160456 1.610924449356432 1.505628797141566 
+1.105385389327036 1.426733312935739 1.658328032594909 1.014662670485512 
+1.954344792157172 1.546346734178455 1.249089529862276 1.985128827925728 
+1.538475469614111 1.133609772089122 1.205240636422401 1.728955072714112 
+1.963365242036241 1.274228121293758 1.890396151910935 1.971644967147545 
+1.750317388689817 1.605881464932261 1.368565385246198 1.428645970614294 
+1.079406627489317 1.412361178447795 1.904549385479237 1.619378198444456 
+1.760719708921982 1.718668984346518 1.457570521997172 1.481716295587688 
+1.830637109602251 1.324867533204553 1.224620635106414 1.547772042628072 
+1.016856824962577 1.099696945266520 1.856902305966597 1.503650583152462 
+1.712293681470497 1.670804325821881 1.775028827242085 1.991291007074328 
+1.270056147038914 1.435347780763451 1.950708872301507 1.403277983824804 
+1.772591262476503 1.981108572937622 1.668015731393714 1.635361422030181 
+1.598661088884194 1.486477044273676 1.713251449468379 1.230434581331179 
+1.762393768972959 1.628868398990099 1.699624470186072 1.380729611292746 
+1.245874204540989 1.206863946584018 1.669444483321276 1.233599135337689 
+1.465572959797352 1.129673840418745 1.993199650866232 1.757631234388983 
+1.992403474346572 1.750170887416606 1.772534556036410 1.457728202792563 
+1.944771448784533 1.499494070693847 1.439146232773900 1.289108071634967 
+1.954423909151720 1.005511892034694 1.970165293296662 1.387864057840801 
+1.477144365713091 1.681715652981375 1.831039843859334 1.296328857441982 
+1.908388743606558 1.611071872178815 1.706269263024456 1.780589981469479 
+1.072168755115129 1.101831658650786 1.547038957623839 1.339488087896977 
+1.122754101983843 1.867295405354479 1.658786809457508 1.219816023735283 
+1.555606039872525 1.819555959481800 1.495337923589617 1.379738948161015 
+1.694446196234086 1.758707755787270 1.743326185627378 1.562251305166862 
+1.764982084930881 1.046608194355101 1.407312682748670 1.052498338944103 
+1.244511238965372 1.074337670804799 1.237960967924796 1.797608945390798 
+1.293730126546793 1.217103700050637 1.385325507961171 1.941215293466585 
+1.638691473682536 1.247359600743492 1.402388353855038 1.245083783325835 
+1.966208183457393 1.224954338611544 1.400063844543896 1.788391917791176 
+1.353277842718172 1.300510598201415 1.624989578500311 1.541456565595405 
+1.223601900967442 1.434374270579354 1.181323102747023 1.932598974811929 
+1.367344879394205 1.706211003553846 1.979339438766898 1.910933581649080 
+1.523318424722766 1.158003111101610 1.550378414309352 1.179861758844537 
+1.120134164835345 1.169763705532500 1.480358869357153 1.521524450763607 
+1.101023788574278 1.226045497414646 1.896610512300041 1.251747236774485 
+1.953855467755008 1.675077383841286 1.879840236737983 1.198493740893517 
+1.813650103977095 1.233949235920473 1.693999981318599 1.484507293927103 
+1.032844182712974 1.447065622765968 1.004920140967025 1.248986558650542 
+1.971457614508003 1.813254182930692 1.754798838892843 1.428086657012702 
+1.088416990615486 1.498963177294427 1.538409551352049 1.542243973422261 
+1.824422944918942 1.527811333547243 1.436820673164213 1.388874069260704 
+1.776936193591287 1.286404976760775 1.381824553847290 1.715235597084905 
+1.166292236526286 1.596081277468729 1.591243150218109 1.955934444921728 
+1.678259684106836 1.970164169276829 1.588412932958154 1.244892385397033 
+1.299099509986074 1.366069158216866 1.715893881962208 1.574672496884689 
+1.655006299880051 1.724098700731767 1.913218132488594 1.081662049083167 
+1.204490616092530 1.423863649425027 1.895337478034002 1.167506028829234 
+1.188101362594058 1.129162613365718 1.911134421915866 1.224122493875611 
+1.699858019323359 1.332562274930494 1.362348414758475 1.893838977003314 
+1.290602495102989 1.564734421513612 1.052804245955480 1.976677557600099 
+1.277669954781983 1.225828122070816 1.128372947203961 1.044200999391621 
+1.977056200841487 1.187804298164387 1.631039337713069 1.441176354332443 
+1.955172306360227 1.427899015494878 1.673804099166954 1.606117242811974 
+1.638661443641657 1.319455221555681 1.099722905714084 1.267166192524251 
+1.587707618885170 1.856088405260342 1.451459513535810 1.631272187216136 
+1.320165616426096 1.903621522563898 1.326434153333220 1.043803125960075 
+1.845961460324341 1.077625278023753 1.401609412792415 1.406305661764378 
+1.884004953088649 1.860191145428824 1.093064460430374 1.515941198552323 
+1.870243648325595 1.667087368520564 1.398097489330937 1.946841296457939 
+1.540327075087565 1.223453038645677 1.578741129808857 1.782445244098270 
+1.336499582717012 1.591614058060997 1.950655028383123 1.357518639932116 
+1.699856093767031 1.885907388771518 1.226130236367855 1.065593479526233 
+1.179744000463711 1.591199399199591 1.489428396974024 1.867299224185155 
+1.650682643805664 1.147087618909501 1.827506958571287 1.989414261695685 
+1.438001743662124 1.357722494505607 1.015512016475274 1.856076116241517 
+1.194120685915782 1.772192068417102 1.974746385179622 1.817534893453638 
+1.194456441267450 1.591877961591226 1.703838783846810 1.639891262815633 
+1.146027686707306 1.220099536451122 1.478094542274221 1.216620070071225 
+1.354581413435234 1.780637290907321 1.668908020163036 1.690485181396367 
+1.908049114251756 1.631706602520270 1.108214562504119 1.382252076858840 
+1.220427987066758 1.126268587097469 1.511049241433357 1.688952145070714 
+1.323256154723930 1.560403218872928 1.358291627679556 1.284066182225675 
+1.427118291880522 1.188020573498703 1.043177511892353 1.000846388631256 
+1.280562060085584 1.061628346842463 1.953960507520839 1.797833785741783 
+1.657023060664863 1.847392909720571 1.874918749787340 1.772725176651511 
+1.201245123905655 1.901587604609412 1.898921711637525 1.104757915256716 
+1.689590851524883 1.043772878973096 1.703578628325730 1.288093816827560 
+1.264653146163230 1.965103387449483 1.981045134964183 1.208154275222981 
+1.242735643778492 1.497788517807525 1.383975294654481 1.669660605960395 
+1.786845669294120 1.257699085547567 1.461940477674553 1.090676857720247 
+1.642941607746135 1.882416617309255 1.390735840090776 1.229493233712350 
+1.242747712821778 1.297257265052578 1.623397892057945 1.773253951352853 
+1.518717272056693 1.894589914064021 1.997115934734730 1.308571663534066 
+1.819631175963058 1.285827622126802 1.416713851290336 1.642531411902329 
+1.855251053070511 1.692206647066171 1.961042574605882 1.247173883416699 
+1.635354952004496 1.321551897238028 1.853961982591430 1.388493467057423 
+1.493886024292215 1.303423613865109 1.775456244051699 1.451198648059946 
+1.404271715892248 1.298275519978421 1.446285974682659 1.254812042696698 
+1.684444866685421 1.786973380232422 1.729893189166303 1.028067750303092 
+1.475276602258967 1.325580577172347 1.367775811827537 1.001154351070554 
+1.153671240876318 1.556642444494025 1.743006835079059 1.708859779186227 
+1.362584870410853 1.159797622003978 1.466641236899382 1.485190527243923 
+1.202326585773552 1.355209920970780 1.167915419917445 1.900213743069488 
+1.757627729533527 1.893175741087213 1.521683225402328 1.809083292911035 
+1.826378634079372 1.050792140343757 1.798128373253206 1.834941174052233 
+1.887288203813742 1.973848015273667 1.734605316686526 1.770051130934800 
+1.527526101043357 1.364051682494655 1.585470372386918 1.405771522590239 
+1.477068207736690 1.157972094545421 1.747951160175329 1.822754754400769 
+1.509664853472293 1.617274857258068 1.291049147392954 1.246953536515090 
+1.570611489266800 1.711025117470592 1.565792720893965 1.544085959667965 
+1.191090874716119 1.407709785394210 1.801415421089833 1.140001650924965 
+1.472258212402544 1.173456916852706 1.055866662574418 1.618165759664644 
+1.226626365699886 1.152086094842007 1.464554996024731 1.315803565511524 
+1.533740412819214 1.364639522355886 1.871676403863061 1.274950151147793 
+1.246517620372638 1.512281379477159 1.573428776837607 1.960045090669877 
+1.753299919388792 1.656583031214010 1.163564497130673 1.920041405766893 
+1.093686478595248 1.686648356699519 1.739503894873952 1.534005294291435 
+1.534245086537231 1.133919537390570 1.931775367514847 1.973029772519973 
+1.550303336742483 1.033086191952479 1.359379023268692 1.155308503160629 
+1.161383023354366 1.762015977223843 1.410583900098560 1.529632768804294 
+1.662715658966186 1.707901018716383 1.236513823087306 1.487781682955047 
+1.048070968781356 1.673053091693463 1.815320117458616 1.104347226294343 
+1.234317319495381 1.770911573295900 1.640291433732715 1.307518527924115 
+1.853265271480132 1.244913579545206 1.122475547248171 1.214405582064678 
+1.574039493846134 1.597158243999746 1.362760775643745 1.234256035853497 
Index: /Daodan/MSVC/dSFMT/dSFMT.132049.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.132049.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.132049.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-132049:371-23:fb9f4eff4bf77-fffffbfefff37
+init_gen_rand(0) generated randoms [1, 2)
+1.643063016360512 1.772379213720561 1.502139536072673 1.581533306406716 
+1.294056922473006 1.100717033151588 1.867916757201619 1.189776821093881 
+1.704339228244217 1.475618425667883 1.453898435144779 1.300133805150727 
+1.259237810054378 1.216268917035768 1.723576415191876 1.912434390693766 
+1.740634055074576 1.512287295992477 1.507656729409739 1.513290326860518 
+1.173915352392622 1.527058895245923 1.755177139045161 1.240515751493487 
+1.627757485529170 1.582463187484837 1.515297496064416 1.688424523283255 
+1.936479248177469 1.533221528084836 1.934966692060082 1.912438495558375 
+1.392104831170025 1.338615436006310 1.970748448845196 1.628502243306840 
+1.099449655677392 1.335498464188707 1.668286250736062 1.357160257323840 
+1.419695034619677 1.441841689254192 1.444607635937198 1.608663583242613 
+1.481896580546265 1.839214533686281 1.197421601031019 1.868143809670667 
+1.669914346725742 1.716502284327293 1.934474618235130 1.190309742229291 
+1.794401947857213 1.871504032093113 1.845917210343764 1.351828940838658 
+1.114511754662698 1.218752998045956 1.941965177353615 1.663010425815826 
+1.984551428120615 1.176662032335707 1.658829387570659 1.172194829922466 
+1.499819310713246 1.164372114501327 1.240779970501840 1.006461651239399 
+1.962085858071359 1.500237483717801 1.331616880847151 1.584285022604139 
+1.899059992862819 1.415603190707058 1.014028806056132 1.701673114170293 
+1.514417945034014 1.999981213376790 1.906222554176316 1.309482304986925 
+1.178192838269845 1.334212304470514 1.679647572212403 1.141608212508523 
+1.349867867681005 1.858617048867437 1.242385792714017 1.721352347880568 
+1.683064521919691 1.883107450400868 1.799031635270505 1.978631613504576 
+1.847489714306586 1.985498368134130 1.652249291259636 1.574700038714994 
+1.790550959284966 1.019909993390081 1.049096388889125 1.074063811031207 
+1.114353914635366 1.675125622686559 1.745439164559274 1.875841477335845 
+1.756916983859681 1.072533456340715 1.601700979307775 1.414231078696220 
+1.253729496204329 1.316612299970584 1.513883831290708 1.291879537636255 
+1.065967568096890 1.612313960745903 1.598354460284955 1.046465450864054 
+1.429486738796263 1.778652140546644 1.458706745783160 1.045324397369371 
+1.374247065966293 1.048161669056575 1.145227828653945 1.957622228844320 
+1.988559470693265 1.929839841135814 1.921091374352755 1.413995425791679 
+1.429104123613937 1.932059073348731 1.036572694221107 1.361587582890943 
+1.540005215094822 1.607233967475060 1.204725285697996 1.839848499896786 
+1.278140518852469 1.096471635232829 1.348275565786562 1.772635638459800 
+1.920371722668300 1.572034716947178 1.345013818923143 1.350676605358206 
+1.247236170423277 1.974619934632213 1.541886230973076 1.509939772111947 
+1.267625587474439 1.516623611183119 1.310971381548349 1.613547603529339 
+1.860302697928531 1.125481086548701 1.334016964350911 1.458374627400062 
+1.866425883414691 1.250773163632625 1.339861447481896 1.945976584867873 
+1.269146606490021 1.670314395423734 1.540544457672709 1.614260886406134 
+1.549068938341358 1.436829335747375 1.305285322089248 1.951964917044990 
+1.132139821595739 1.202272145430612 1.677013352135057 1.663463384682899 
+1.089389035187114 1.228243587144347 1.099329524933987 1.510965699910341 
+1.602902489037097 1.695537341413620 1.298466294264141 1.835492194418174 
+1.766269048085712 1.455363685648690 1.937193095923634 1.417625085875925 
+1.376716789996619 1.838965783883416 1.850509015947064 1.308712014364863 
+1.032811451079106 1.363570827046181 1.659566687022229 1.270274652255478 
+1.699735979035603 1.004527368294150 1.488102249921962 1.914979567757808 
+1.585434470996113 1.941551220778391 1.345044702545011 1.199678123957290 
+1.690772120308079 1.298338118320541 1.513395777055843 1.536402416402162 
+1.836187664172395 1.646532898258566 1.660040646997246 1.669153472710043 
+1.849152698987914 1.802756748739445 1.458941745188812 1.882795302019239 
+1.202561497072156 1.147334136786961 1.604908085836170 1.342961131205874 
+1.737044444682123 1.316865529632541 1.995831879933226 1.643585807226585 
+1.671899207395455 1.593701339281419 1.699307210846834 1.070382842159707 
+1.348001754725037 1.935950327177981 1.126702946805813 1.904354393514420 
+1.706389577624904 1.177417737499039 1.167170901018000 1.080960010301431 
+1.143130987761706 1.177685431751740 1.201747851918691 1.473010312908368 
+1.379644087472686 1.977937266718847 1.403050231922135 1.967567455839679 
+1.854521970371013 1.222974434175325 1.926087528235720 1.962113929182559 
+1.517244469631437 1.549554532338349 1.202933556549926 1.095219804956202 
+1.923799346510267 1.424028172683771 1.748964440314901 1.318941199281149 
+1.680955976152273 1.696610065260564 1.252598060018824 1.046626203494850 
+1.112946418777093 1.754697417099952 1.310319649983912 1.389578978191774 
+1.200575828975078 1.633560967036935 1.495390885924748 1.846069871444912 
+1.118881619798660 1.822409525137786 1.622568920563283 1.594272409710170 
+1.844129784739082 1.159815006688703 1.801849431409764 1.129447633179526 
+1.807605372622141 1.405868301114753 1.552538292250900 1.651986158646547 
+1.791264410940402 1.774143194077138 1.012414085953455 1.961250052894840 
+1.439078985302657 1.640891513347436 1.358839931384241 1.259309916183196 
+1.172755033062650 1.234642766807144 1.412212027198489 1.727104178521174 
+1.813893759012624 1.641875691160957 1.351408174422108 1.151314809293835 
+1.333643752929317 1.607432296272435 1.453269191606890 1.963472134562356 
+1.078310150012671 1.536478857646420 1.020252744881948 1.152467392612480 
+1.907843320540788 1.841936252727383 1.192024508647886 1.800464803435173 
+1.792910554610534 1.051117055552947 1.478000272126885 1.568277942726415 
+1.536804973349816 1.770628925880257 1.149335250227908 1.593410750557970 
+1.387771569866204 1.041455638596289 1.772894741526123 1.809152083968470 
+1.614429180299725 1.254441017630915 1.121430462949348 1.849555366482104 
+1.851239613753727 1.784439099926971 1.254502750067434 1.511059930675607 
+1.758840643237767 1.303092406902539 1.064742675627482 1.049268476058976 
+1.199846555873852 1.258714553565674 1.088358933442185 1.632748298821758 
+1.211187930386719 1.154040788886345 1.185040028741537 1.322267698007452 
+1.746839252917780 1.871805621202655 1.859393406159585 1.241878344953513 
+1.203235575185920 1.874756614720179 1.761784319501885 1.517875907571076 
+1.211597037965597 1.145807320274542 1.918817361026927 1.795689367800065 
+1.796816606291946 1.620766735411685 1.793053924611975 1.637144949270504 
+1.730427210209953 1.565504172849111 1.160735585891809 1.963346261428018 
+1.741546692734649 1.562938687652687 1.200140223229611 1.093626206283125 
+1.980249197092638 1.551768104174122 1.851397461662058 1.277889017874786 
+1.303375889959791 1.967822647886579 1.776734793453849 1.250071026840864 
+1.845073780361844 1.423012086024738 1.944267832989789 1.035827877794883 
+1.889601329364559 1.536049382580550 1.313832765891737 1.671098009877257 
+1.840121610014133 1.841444186355714 1.696655413811547 1.217580771163805 
+1.949976468323614 1.976159326001596 1.587087651190515 1.154211074323708 
+1.907521851999984 1.014052316672926 1.427827983809532 1.766951150941372 
+1.357560214138462 1.430202215482200 1.757921714989087 1.102022471567073 
+1.212209319597503 1.785659396189157 1.592000436556011 1.742567974513886 
+1.497004994748854 1.996969988731885 1.372636607293812 1.056183016969705 
+1.856128914951686 1.387150288212383 1.059603012689986 1.421520605439365 
+1.092528831993869 1.721218731637423 1.779192718734939 1.863902548961274 
+1.310082665354059 1.597456792941415 1.489684109984818 1.656759358026517 
+1.227840424226511 1.519425087018671 1.383605650426045 1.342594223061168 
+1.250444813155697 1.227894098798982 1.514629986139193 1.164631214834017 
+1.107426422214249 1.046023906845862 1.065542035549969 1.030909729885617 
+1.650261172538320 1.595715482994521 1.979154659579911 1.048463404633318 
+1.155911460807414 1.547525758837557 1.326177583189289 1.343472760673954 
+1.180695669135774 1.879497284775060 1.160443554012858 1.923245420539133 
+1.811577815419578 1.601767206511663 1.762414494107864 1.266203451402557 
+1.139967477280803 1.099972700720836 1.885956705957112 1.292223344155491 
+1.107780504298020 1.928404318661181 1.123398700237346 1.860014072574296 
+1.598226818237964 1.173664798224314 1.724084592857285 1.828499218261715 
+1.696185096042451 1.086895742207420 1.164924515489956 1.212951769927319 
+1.727965891966803 1.863512396703116 1.862648060200330 1.808205720131089 
+1.194921221666876 1.138546297696043 1.678559190033829 1.375150289646397 
+1.962470487923708 1.243450853513478 1.935601436566755 1.768618825100152 
+1.381745993842861 1.434734723342292 1.424022579296531 1.303090277688985 
+1.481171797116220 1.271040159011278 1.140417969106567 1.451804269673894 
+1.709730405799677 1.796596203544026 1.874281981120122 1.259503407462103 
+1.498806429815473 1.759773937189470 1.151941319517939 1.808529913515236 
+1.096994748750893 1.382663019372152 1.438031147597296 1.006816885743656 
+1.589341119780297 1.129919592427437 1.354780330777362 1.471188194720541 
+1.721203637684874 1.157154032582763 1.011934747519888 1.790119385229247 
+1.552237631757112 1.418409182817800 1.188672784857389 1.305344749875163 
+1.268029062207762 1.003039819434946 1.932247883673218 1.194918968980724 
+1.351418908116994 1.325031114479956 1.770144971583435 1.820676789630622 
+1.715151848249123 1.409019690191181 1.646253200901790 1.352040016076230 
+1.034672515873151 1.490846499258887 1.175730216523582 1.198652304338337 
+1.027373840061046 1.905390195285243 1.756780875022457 1.552345731305258 
+1.126083926529281 1.314374751594234 1.680971461600240 1.273137213379491 
+1.149597248398749 1.091221447712624 1.739952135520015 1.111313042780330 
+1.455452290262548 1.447416158072816 1.228107007243349 1.769254083101861 
+1.423706608053121 1.952253801466336 1.647857024652171 1.682604897983835 
+1.748224101960127 1.946446902133099 1.774707520827058 1.183995133850760 
+1.780563328402953 1.815813365194300 1.113911282514502 1.762999231228598 
+1.453567112562611 1.060700112450385 1.723134155749802 1.642541081539965 
+1.016691592749692 1.635365252186522 1.929893011916312 1.356301962150208 
+1.429549639245492 1.330435475009885 1.194556046818898 1.160102935142390 
+1.053687468479767 1.289858727963019 1.124068908401118 1.713898042349290 
+1.942839471384481 1.843947610083575 1.990170714005166 1.010510434417139 
+1.073418472557928 1.695681153995098 1.703995419137135 1.261750633389016 
+1.987211506722759 1.365692580120312 1.897280236664054 1.067261235960756 
+1.540259456249342 1.619711409826942 1.112991079914199 1.631183818857687 
+1.859734675904414 1.434929002230124 1.663180780252912 1.265753484933646 
+1.446047864403494 1.676979781362434 1.935533037108104 1.453256792629626 
+1.986621193851337 1.441562202698050 1.483981846508382 1.285267526256978 
+1.366587287338616 1.671576893844301 1.616387182320177 1.661489797562862 
+1.411226228624827 1.888413303440742 1.070911048731237 1.349538814915134 
+1.796486553580141 1.181422885344851 1.092542866402453 1.788162059877980 
+1.431026923492529 1.064710409879997 1.456274630191652 1.695821806565353 
+1.530989470966030 1.677844445462081 1.221686886257181 1.195165777632252 
+1.814273067074188 1.223854303901428 1.951479506275614 1.077543392801234 
+1.628092872797229 1.381373904581686 1.638089800130623 1.792538136625260 
+1.815100569535991 1.402436819044840 1.240748468988953 1.402706900034449 
+1.995919124774033 1.344637816122948 1.280818269159953 1.235304573974484 
+1.819592257356713 1.616870539238258 1.892437878287773 1.523102079313186 
+1.411569575499889 1.894707332694742 1.741012688695034 1.973350785568481 
+1.035331915161541 1.217137822971190 1.781578556110093 1.763820559662760 
+1.715497652659879 1.292810759115544 1.543871306009339 1.581417411537836 
+1.661377499328504 1.138366426320946 1.172989625745951 1.459662516848523 
+1.176288440228586 1.247882845092160 1.963130076349449 1.703795826001657 
+1.067867774251062 1.538615243981833 1.128798917706774 1.052426666467858 
+1.108482169289127 1.236388780268993 1.312704892270747 1.512811440895024 
+1.680201665043402 1.040008715994342 1.789499563335551 1.770657988596654 
+1.676027091060821 1.521712011072842 1.694505783868633 1.522648489217589 
+1.951838908723367 1.515819955078039 1.978739019994237 1.740704907189117 
+1.652917398943353 1.842234671494515 1.280446893896048 1.390278789578296 
+1.441561615674477 1.964047491116155 1.105791617825840 1.815836941786280 
+1.412606634193013 1.293360010724245 1.270320869655175 1.781521182725955 
+1.234649435269477 1.536343194535205 1.637453793958345 1.785567482478720 
+1.609435659459995 1.406727808006571 1.830971508332314 1.064314292185076 
+1.991988523836755 1.097947925527774 1.425105343470262 1.279527653347124 
+1.696853380283401 1.585635613212531 1.442686304101868 1.640793025788577 
+1.088910324970256 1.961663808327751 1.591584982604246 1.356561914315883 
+1.984778026636042 1.700561582089118 1.633461333395673 1.378546494279202 
+1.079036562111570 1.773587148617582 1.297264766806276 1.250865276451899 
+1.010000358233148 1.726395884041927 1.105777483873249 1.998737527711849 
+1.159189317434197 1.196729334732093 1.983903042287553 1.615666394946128 
+1.182400340090334 1.203547161552674 1.915324267393438 1.811577600643655 
+1.474823605031882 1.331133383243372 1.676197081362984 1.247100169763472 
+1.589785909279107 1.443614313246519 1.370606421371340 1.934454172723776 
+1.424285142703140 1.782056792843032 1.037175327103202 1.053797866836911 
+1.284623383412186 1.195086189112628 1.159898487936902 1.184517957605879 
+1.326179337155486 1.246412727532838 1.922465719285418 1.537989851056370 
+1.276272435166772 1.104019273811107 1.738981468737610 1.937325362488105 
+1.291819314415349 1.000452261142371 1.919648880169280 1.400599325171213 
+1.360135162280536 1.425655751575538 1.211037720333087 1.413044324147643 
+1.561350262782541 1.676494949857209 1.588766405634734 1.416913740075122 
+1.898630795533025 1.464727704762449 1.122442295889442 1.035254506520658 
+1.912878398857450 1.967035437057918 1.020078744176804 1.620962775267883 
+1.041485044372285 1.932145279279915 1.477953796993173 1.311188890379007 
+1.330142793116564 1.333085829326831 1.793397888991509 1.310326147524094 
+1.736185648738800 1.825996257769177 1.913040830893005 1.178028201305924 
+1.417212498625015 1.660843897618286 1.358756281281569 1.697891413850636 
+1.965960185073971 1.759174900759579 1.805366428916469 1.417628314775847 
+1.889629389125053 1.327614234763126 1.181907059676988 1.043111678158518 
+1.508203201936615 1.808349928705681 1.772606233994191 1.883834854099118 
+1.957128387382956 1.601260440307869 1.412658068348775 1.176807193277404 
+1.380183767016079 1.557222586277733 1.322252024612415 1.168150361299401 
+1.897887669490438 1.181435521549834 1.123425566218427 1.249812263665736 
+1.400022068077603 1.055312279472752 1.728604620630904 1.908782597295411 
+1.227070157822398 1.385300903798387 1.532546233772692 1.887475307534474 
+1.564351253813166 1.319548241332341 1.923332504879317 1.144603848489074 
+1.984459999935519 1.486672069936235 1.990498853213360 1.788793254357023 
+1.484577330706694 1.343768839926074 1.251597847140713 1.947870444161010 
+1.303445538327316 1.421330039753517 1.849167198533923 1.935688182505975 
+1.489861559298503 1.939294271413287 1.871023226818432 1.198703059357910 
+1.255808153162431 1.457561817638621 1.849293455891132 1.058391735627229 
+1.626837284484281 1.066099599785837 1.598368972600301 1.763576206549286 
+1.712136451446225 1.962291306114436 1.026541736127198 1.015136137745090 
+1.275640348853882 1.164938340625487 1.131650397441668 1.643125064125485 
+1.434083860990952 1.506042116217786 1.097263858768495 1.824198618655536 
+1.955165141640579 1.315581529426785 1.393425320169687 1.465714353995525 
+1.832659185623620 1.290929904728717 1.412436841045349 1.897849787083823 
+1.669770509725738 1.311033861872340 1.572294287103063 1.310511587052047 
+1.156865297574564 1.776422223857768 1.777664813560997 1.098904014401112 
+1.850055062426951 1.681833895129053 1.086932688757650 1.919138723683471 
+1.179917357606951 1.021968870960724 1.972355950341563 1.531756405822862 
+1.755640248910622 1.730169448166085 1.601784389993409 1.199848723295741 
+1.910637046267477 1.836400839867540 1.845703098068682 1.497878968291704 
+1.599850819246035 1.814467105860130 1.342327608869641 1.312521264586697 
+1.047526347084392 1.350836560456564 1.372051802293701 1.933979493415876 
+1.846930484362348 1.102495586458019 1.340027813520914 1.945591138879044 
+1.089591476426228 1.624353165358369 1.563684988791301 1.630130036015887 
+1.446789107675056 1.110230349578064 1.025986851168343 1.001602425830829 
+1.683252647132559 1.651614897994297 1.153527587121248 1.741931148108380 
+1.389645666041831 1.202109547162104 1.880595236112617 1.929946035121010 
+1.309848291923575 1.121872497840788 1.305899312467624 1.566528900130245 
+1.243134175537468 1.042342980054161 1.268213036178462 1.105793460388222 
+1.301414391284167 1.362877808931946 1.479129460761306 1.470775067517370 
+1.323372296353663 1.882858024739622 1.242648840670183 1.960920963722044 
+1.189420862788387 1.775676346942812 1.836962950648764 1.225608444728838 
+1.031826660125971 1.223642739166165 1.293719060266704 1.384859239181231 
+1.037606670282627 1.463674149543749 1.288069426143434 1.402230155475197 
+1.571833329757680 1.525262758238918 1.587315879112924 1.171504815578446 
+1.919535276082088 1.816598772910832 1.373445653493135 1.927586246755860 
+1.295064929890141 1.747864394215269 1.115319218851927 1.527575939389980 
+1.311200438911951 1.774557142973973 1.727842606405351 1.801026243484034 
+1.000936931691762 1.637945946838210 1.430655785954642 1.600741279264717 
+1.378886518096057 1.689872898843643 1.211890162224956 1.132801535718520 
+1.817084541055805 1.658934148941678 1.895529184441058 1.894292815457406 
+1.553357732624558 1.436755888407919 1.080206255113111 1.659990565335723 
+1.973712536508369 1.353013165015270 1.157193005915275 1.310612678422934 
+1.511466402208103 1.620559701056070 1.603250968835484 1.724289193135036 
+1.831217606653762 1.011676949911519 1.631981060247351 1.960779016134990 
+1.118902874420574 1.843011109516084 1.951585957020156 1.490228747733070 
+1.085561315657796 1.131866458432211 1.760216717700746 1.218027261434517 
+1.861934237655883 1.673969172294754 1.637431568389643 1.848237040113216 
+1.588562834963177 1.993444547076966 1.921353808944026 1.110236899989077 
+init_gen_rand(0) generated randoms [0, 1)
+0.643063016360512 0.772379213720561 0.502139536072673 0.581533306406716 
+0.294056922473006 0.100717033151588 0.867916757201619 0.189776821093881 
+0.704339228244217 0.475618425667883 0.453898435144779 0.300133805150727 
+init_gen_rand(1) generated randoms (0, 1]
+0.357269119061644 0.394853684742541 0.232886767592585 0.390019080993502 
+0.606377415398563 0.104336019757104 0.941774158707798 0.959619377087378 
+0.665370493773737 0.553229489284144 0.511333970674283 0.374375991711000 
+init_gen_rand(2) generated randoms (0, 1)
+0.902673877473516 0.901913093025360 0.144960393294816 0.421709738792725 
+0.727215190781590 0.049117848077731 0.395687860530620 0.443465976692574 
+0.525596880927559 0.878674831807375 0.922594751931055 0.710081397618229 
+init_gen_rand(3) generated randoms [1, 2)
+1.427902180484723 1.235180227858591 1.893010606122040 1.407520064520368 
+1.153852733443085 1.353017930087701 1.249441613372706 1.063728065481757 
+1.142097638400280 1.346275436648008 1.020654645507316 1.891889548922761 
+init_gen_rand(4) generated randoms [0, 1)
+0.362103051997711 0.817734703450394 0.892588787791763 0.735724922115168 
+0.337441398135621 0.806600596484782 0.474925726473279 0.457909536500071 
+0.453909467716590 0.370397919652925 0.351834743500070 0.274139148309417 
+init_gen_rand(5) generated randoms (0, 1]
+0.320575989292223 0.782221980596254 0.994230574048375 0.646493455549936 
+0.182934842001676 0.419439059326539 0.804733853797186 0.630146430652609 
+0.283304572706691 0.551951694752586 0.596651685127567 0.726464212348384 
+init_gen_rand(6) generated randoms (0, 1)
+0.512245795714439 0.949098909636435 0.304277882494774 0.425691508062447 
+0.940024527462860 0.303618133421786 0.659538517356965 0.980428116584217 
+0.992602173172166 0.309535512011741 0.799122326076374 0.503161736778810 
+init_gen_rand(7) generated randoms [1, 2)
+1.791279768504437 1.824059711409220 1.601640841052433 1.839406744853343 
+1.706093704685138 1.792589402103321 1.357619712337886 1.886594864406919 
+1.791193677072203 1.237635475178639 1.659875755247600 1.782255918015468 
+init_gen_rand(8) generated randoms [0, 1)
+0.539027783278177 0.350896572513407 0.045805192442340 0.147163615478894 
+0.954161027974346 0.937558512762666 0.615966260678639 0.827921743169682 
+0.449348302109296 0.823212321889368 0.538337463888570 0.426901349677887 
+init_gen_rand(9) generated randoms (0, 1]
+0.291582729506235 0.327137879357295 0.517830815155796 0.112106626154593 
+0.612171734259559 0.701687536902544 0.471596446781525 0.803776113868638 
+0.993144759108313 0.792918393124802 0.992224073158818 0.560509440469829 
+init_gen_rand(10) generated randoms (0, 1)
+0.906652248252293 0.969008988686184 0.287180486053953 0.941340736403439 
+0.845804465799311 0.851709272681137 0.567338308129108 0.018923690263750 
+0.398054844532580 0.648240113586421 0.027773695295189 0.411129988822436 
+init_gen_rand(11) generated randoms [1, 2)
+1.166288744923759 1.289035002956464 1.591654057965451 1.924237717731347 
+1.971147945988489 1.779882148077172 1.301744917982424 1.472840297687313 
+1.615894199307146 1.443788302565339 1.010514050763960 1.843668764702190 
+init_gen_rand(12) generated randoms [0, 1)
+0.037188572132978 0.796540980110323 0.785118397351056 0.950075542564853 
+0.082585828608368 0.277307284982809 0.785199783813302 0.375537725493582 
+0.136201893068798 0.990289994461294 0.064717912677199 0.724424211705538 
+init_gen_rand(13) generated randoms (0, 1]
+0.942356415514171 0.762315177514493 0.971674221337580 0.509644192975426 
+0.463428874186195 0.228231769076783 0.629684091309337 0.364274558739615 
+0.711795494091800 0.844459806251926 0.007623040364400 0.449873380705668 
+init_gen_rand(14) generated randoms (0, 1)
+0.594856417962816 0.426449471504149 0.815065332609883 0.612429056668908 
+0.350788091641076 0.557487356775938 0.941466694286134 0.876568805621597 
+0.074550394909309 0.472848548484389 0.278339473226804 0.685700309876473 
+init_gen_rand(15) generated randoms [1, 2)
+1.691991777346594 1.066678571406875 1.257288308507988 1.374950622278155 
+1.631560611409216 1.220209640944814 1.670313717921475 1.400620968469163 
+1.162389983753056 1.740495069469599 1.178174071747150 1.547171972178561 
+init_gen_rand(16) generated randoms [0, 1)
+0.279069583034248 0.695119007570012 0.978811839378629 0.855986723646318 
+0.884885630716337 0.699520524608650 0.322365188671121 0.272456674845052 
+0.285217033652139 0.208415904359228 0.035276027688090 0.546564341706908 
+init_gen_rand(17) generated randoms (0, 1]
+0.986507705141710 0.991073208331722 0.452541341409591 0.249391967237484 
+0.190992932659906 0.025553141925910 0.986229647371841 0.696257848032870 
+0.178514809866115 0.539663585863808 0.067902727331370 0.139909326835463 
+init_gen_rand(18) generated randoms (0, 1)
+0.461143403779607 0.933074765437657 0.329611012429450 0.913844231354235 
+0.960408131306147 0.884756232790295 0.083744030675982 0.093922841568062 
+0.986018904509842 0.092776680350047 0.761622101354923 0.291321509178648 
+init_gen_rand(19) generated randoms [1, 2)
+1.109628619724238 1.328720045412586 1.235043984091162 1.700260577583939 
+1.995239491033933 1.949870477994024 1.354264858779323 1.839679449502692 
+1.208919707518303 1.582313935919556 1.052095151572292 1.599751368959784 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.061432228134937 1.797513181266742 1.014515778872698 1.292515677601426 
+1.842217614712485 1.219693001089960 1.091642970346479 1.361251722923487 
+1.812429123076032 1.114775857427076 1.236920925673160 1.430780008087892 
+1.600676609656623 1.581660327974462 1.080093035886621 1.478370871883862 
+1.372868954287661 1.381031660416374 1.743597338143038 1.765996876117860 
+1.499708356247275 1.500717034644018 1.227875977543781 1.396877239166685 
+1.867291377296555 1.989686946870916 1.728230714599321 1.603799028485205 
+1.666989573753586 1.817430340160532 1.742554491376986 1.454382666376028 
+1.273761735284682 1.662656364867116 1.343724666265991 1.412976188802077 
+1.869526098913638 1.090188503134896 1.609472496275879 1.697935677660995 
+1.444528308832913 1.244008727806014 1.726227330689108 1.956214804474752 
+1.997601368384656 1.730135223734180 1.867428398093661 1.713521286602680 
+1.612083063814150 1.846924281298900 1.385054738986179 1.203566648989931 
+1.732288309899292 1.137472212222545 1.033681856179389 1.663892296055790 
+1.310222843056857 1.275835140032423 1.375264680293250 1.978384530800863 
+1.568658273521190 1.017596100106813 1.370819406080095 1.154167948824557 
+1.316057782199989 1.386376218894529 1.137305448755715 1.356371796103210 
+1.466928072491341 1.366205447886307 1.457320589062321 1.426714777309978 
+1.341402146854451 1.922483795214086 1.039486905325362 1.219588734301951 
+1.225417160307821 1.834572293325115 1.496558088410575 1.216556270369901 
+1.656606730423723 1.536427579081294 1.167511955342818 1.086855310407977 
+1.002547979773331 1.693958661637674 1.371253512944553 1.700211061226908 
+1.592530293470989 1.846575042888636 1.956303670027005 1.547713673595658 
+1.641297071602825 1.838105082927109 1.733456157549452 1.948032060614289 
+1.733232211149775 1.765456626341906 1.777315657763990 1.057475848076216 
+1.010045226011803 1.991915926929486 1.931417151777233 1.780450015839459 
+1.844047083762396 1.300616385869505 1.820621466557404 1.046150840604231 
+1.481916711074058 1.043328256655475 1.264770798638017 1.212370948009489 
+1.730092348778141 1.336132071271436 1.371184509212720 1.230699959071073 
+1.055483600186415 1.446700948447367 1.755353743484443 1.591139593876879 
+1.770091631738431 1.563569114479089 1.663021594321108 1.024198405803266 
+1.090456398581945 1.415642156821504 1.028417473750356 1.579243713672265 
+1.672956529549739 1.831845563088460 1.141117806272856 1.039181180299984 
+1.507453149450558 1.199743160608233 1.899971654272192 1.406049692776043 
+1.459123423739089 1.227192237955091 1.746199019250579 1.852150785963530 
+1.421213820592668 1.603125742775923 1.195218111043907 1.186445270512708 
+1.841008389796500 1.521762430646072 1.717569899846066 1.476973537544210 
+1.048565254596136 1.908666225123490 1.047610340509283 1.695045531953980 
+1.644580292287938 1.115074254294391 1.516808131453735 1.059246872919666 
+1.761107641312551 1.978905879407502 1.276797289509090 1.082244348708742 
+1.668580525632754 1.178074234574387 1.949425038779206 1.038462387986846 
+1.127713630260126 1.654479557057866 1.337658134344182 1.312994710544998 
+1.561159692476141 1.952808664394324 1.454281276475844 1.386399487729117 
+1.148783179061061 1.599333792681644 1.276223351387930 1.738450353071963 
+1.598794571405437 1.793352059676722 1.230924816753127 1.989552374949806 
+1.652370170094364 1.459868701248577 1.766520771683623 1.001751812038681 
+1.290941794581371 1.905447554694089 1.464400234026572 1.789092617289296 
+1.601276091255452 1.839753145918098 1.641048604591881 1.241599874089231 
+1.887337383959701 1.268031125445940 1.802919108705314 1.875071427474126 
+1.153251177399067 1.983620082065005 1.476379735203935 1.258459073219565 
+1.482509493755496 1.138724826268920 1.068811295383392 1.663913965189269 
+1.571650412532938 1.646728506772825 1.867940572165893 1.771327539553135 
+1.794205862203509 1.913686644901832 1.100940800356586 1.801594187335266 
+1.146354832873435 1.077881104105724 1.607967930739593 1.637396739911332 
+1.928487048966440 1.687275867176771 1.570316832252410 1.746458773499408 
+1.329204039659036 1.168507012072698 1.573245008234483 1.110213383396769 
+1.097584505108494 1.120273589845227 1.668213417535560 1.908957753519996 
+1.307967943702433 1.583312371891656 1.080089823767882 1.202784193988516 
+1.550415977859221 1.811931413883219 1.225155323654367 1.470488375120324 
+1.047233531072465 1.473931812525870 1.434056323366769 1.580598674083471 
+1.746675798676144 1.832803115540309 1.341854875943752 1.793894607551050 
+1.485024217408227 1.637928078523605 1.588532296547220 1.847589736371964 
+1.215356996939925 1.290378080353087 1.950370113761521 1.832712683536631 
+1.525703459889676 1.880959376324155 1.784076682561524 1.238381401222637 
+1.951300804241834 1.244520739195589 1.751002863626477 1.784495506796586 
+1.798082151215651 1.550950019418478 1.571479633820315 1.343860005420866 
+1.523290833373677 1.266341488453108 1.827020303376825 1.164058677310012 
+1.187038259796425 1.362203631738275 1.687813651690103 1.934729800531685 
+1.228564893711411 1.731251008340482 1.353935857811690 1.031674494342032 
+1.118715530004499 1.562393757401610 1.237959391025284 1.590759500844424 
+1.329925562476581 1.265099129649198 1.526081967618831 1.338598480648043 
+1.234377222516117 1.940430229233332 1.161360029716903 1.072413040536446 
+1.626019761000002 1.152003352961013 1.455979244253384 1.976360966672064 
+1.134404799764957 1.139701331752706 1.196438315056158 1.979201741074448 
+1.570009380653835 1.082045531506119 1.292887390468201 1.548962687994463 
+1.715234356947599 1.611485511106193 1.469458975922171 1.688461503253793 
+1.818013098082879 1.788440189078313 1.667629599017715 1.708840717767912 
+1.947439486564061 1.799304165518490 1.577090422093866 1.749668489393184 
+1.125700116289795 1.989057294078124 1.043181930603816 1.223213961745856 
+1.310834798837531 1.946235237982458 1.221456637126143 1.991871373922808 
+1.618663773412514 1.057975183832956 1.992672099100603 1.761400824336055 
+1.088829341427663 1.379929706524974 1.738907504547669 1.436898114669861 
+1.322456535129711 1.506215661268448 1.951409479397172 1.347934210237422 
+1.598034145897678 1.939541762950813 1.660768282785508 1.282763801828266 
+1.888434020246052 1.180964958727104 1.477843572741760 1.231791845952941 
+1.090355995699830 1.708069834389057 1.815226142343022 1.839006376699960 
+1.535890535972188 1.237056951416075 1.967886332875068 1.032686612052808 
+1.456177558140642 1.655416789017308 1.828379327424953 1.367974052633313 
+1.879750391810727 1.138069679262560 1.833047864443567 1.664687258532475 
+1.087607757288337 1.867577492423538 1.267794296424109 1.845825119470999 
+1.668606265079861 1.201549147117308 1.828492831565491 1.672784741072159 
+1.373082841357341 1.457101580406819 1.567393803581109 1.222375534260773 
+1.798941259280470 1.183555788204691 1.637005590756909 1.697275452580281 
+1.726660276783008 1.283206190840546 1.697102535343177 1.969489878845189 
+1.447515648700229 1.209634806453751 1.545905173603805 1.834595442754129 
+1.373353070390223 1.707105928573662 1.061296185628945 1.235575475358513 
+1.389952641557964 1.089108791231995 1.264736136168058 1.930702254010572 
+1.082963020697341 1.990410105884982 1.106900414307803 1.561604782657500 
+1.480761169498436 1.224202010785880 1.544372290537237 1.227160608535331 
+1.737808870044765 1.694186812914733 1.313842669305639 1.015485622383960 
+1.373084817978530 1.310568692949853 1.412158115542083 1.356425568896406 
+1.844832018410359 1.667418818710138 1.146564902656422 1.855057732041394 
+1.088012005624910 1.307472094594183 1.462334916728244 1.234070539605959 
+1.217836453913408 1.917013839251913 1.741212352370476 1.650478559205618 
+1.792623990988694 1.377104345457210 1.686694078895467 1.428938402798142 
+1.406924471320131 1.476663624805979 1.800843821762946 1.175624947584173 
+1.386528839963614 1.616563141791264 1.877491234924445 1.330529910925338 
+1.495001288122516 1.634254803004316 1.373204907262190 1.288158290619272 
+1.549121153312131 1.712947639216466 1.306491802879985 1.532505317186644 
+1.845669955606394 1.901464871724720 1.310130491874249 1.259805343471175 
+1.844569475421939 1.504115553513742 1.522011861569149 1.513964432185416 
+1.879223972402116 1.858071809578853 1.030761488280920 1.934614132217706 
+1.236105910561919 1.230050246857178 1.974719041538880 1.956636665905849 
+1.554093805609966 1.812874479290067 1.842951670534355 1.399370433001543 
+1.874844093399596 1.849315087354857 1.932384020328446 1.242031058369411 
+1.440316604024780 1.836908449033042 1.484188719179789 1.376082718183782 
+1.911306781084642 1.145109567786075 1.687274245394323 1.514197645023673 
+1.082511413232503 1.840572439122599 1.914682540869211 1.498209905040290 
+1.237653011671224 1.248969322472107 1.685713260404963 1.474815003328095 
+1.683979959770891 1.602424046267332 1.462915546623975 1.249585221503529 
+1.972126833440409 1.903072945221336 1.800179609978042 1.322257324069415 
+1.973332347537802 1.872286479223119 1.179770423675554 1.320643439500666 
+1.496882955392848 1.275971323087223 1.786221096769142 1.509899073228868 
+1.995712672723455 1.509695819119034 1.149433641735199 1.477881624806279 
+1.755481158236124 1.374604940732086 1.652064106988586 1.915894998890499 
+1.471775447662846 1.560036287765354 1.878713266804331 1.236796629330496 
+1.606117854826086 1.054878695704944 1.477839719022301 1.104494377005471 
+1.610115561312750 1.541055092179206 1.521730061634208 1.110112773588290 
+1.113706101187363 1.664515378675483 1.168067532221800 1.711553472209151 
+1.045358296361786 1.300986587498288 1.195922423772348 1.741341650318139 
+1.329491993626326 1.879862838134720 1.571081324039999 1.881500476306170 
+1.046397163946431 1.936135749418795 1.296297425056765 1.036871202158229 
+1.299624145036158 1.240730514632697 1.797688418109271 1.944916454833827 
+1.701834592177119 1.307867179979634 1.635666397030694 1.846279274093734 
+1.168577401112412 1.150746067883872 1.817651145513608 1.168711092327176 
+1.619596634984097 1.693582631765399 1.438304146666898 1.641658577914155 
+1.918494090283523 1.434523721880211 1.244024719595698 1.977728947427103 
+1.084509260631159 1.213175848832688 1.498975908606359 1.072863214820766 
+1.094628869467329 1.348719507791482 1.990822367932149 1.955391364696824 
+1.410499316022728 1.908907782992124 1.436738871798190 1.222965397669693 
+1.333832689489813 1.029188718237977 1.111346531337348 1.192666421941264 
+1.218780479415051 1.116509313329760 1.630848021374805 1.165620429796201 
+1.307476433194515 1.114339584776917 1.453584587758685 1.481253597110938 
+1.373925334368274 1.033050600459310 1.187008608655741 1.821926001265462 
+1.662791575666851 1.556946821822705 1.383207451651601 1.567305034159854 
+1.880080187639230 1.018518122056981 1.035776461258167 1.135333789921890 
+1.586514470605688 1.844520525773654 1.753038602672506 1.135840141476427 
+1.851141767859496 1.727115945408448 1.279671310867282 1.766389729904104 
+1.299265454083538 1.073639490186627 1.466177504980480 1.495100119884092 
+1.174146267590869 1.076390884795886 1.013118355983051 1.477700694935580 
+1.950324193402334 1.270061457138170 1.189540521757930 1.756216973189557 
+1.569132949237570 1.553837027827099 1.252349978865927 1.384343925816579 
+1.529842758491628 1.552111790626902 1.589781654373908 1.962767848497083 
+1.146234686964023 1.108316545030394 1.836496746668612 1.795738525883301 
+1.905950757514530 1.375761353167295 1.605221631862132 1.107917823342832 
+1.010350103711710 1.210311396438742 1.001787402547919 1.123844665595581 
+1.272778407083613 1.999035650913319 1.261013304859094 1.100008726435990 
+1.426713404189027 1.904685171719066 1.082202265157931 1.754320678647222 
+1.099180337836780 1.503638155811497 1.760984192455152 1.559588145816627 
+1.684759440031330 1.376188043594692 1.562254165793033 1.334141426934684 
+1.955419253830008 1.595031044419829 1.506176286488837 1.285239088903850 
+1.295302414738659 1.266554167354618 1.716346614192304 1.082094525660619 
+1.593939406853745 1.206030773471286 1.347551435087671 1.346280406454588 
+1.148049999874457 1.329885212415058 1.824799128873585 1.904466134685205 
+1.273550597719682 1.455402448334252 1.299349783907128 1.812491344638767 
+1.766128656585464 1.827118396595269 1.930504771002242 1.912698302130012 
+1.897460872336785 1.193328513016385 1.132654405987137 1.089144437054304 
+1.046184550931996 1.239800061608979 1.355949384105319 1.525851980726032 
+1.957488290849924 1.074452065349756 1.292423810603806 1.391249779164877 
+1.751772248505649 1.526951274181821 1.867501691935440 1.476031710288646 
+1.228156580444813 1.598680640042897 1.433566026507608 1.158501880187843 
+1.345353639473034 1.479365500635399 1.436995701776478 1.260386611615661 
+1.410556921915152 1.941093921006107 1.725128141325375 1.894550433727125 
+1.052174771459639 1.194468542076395 1.414025273616430 1.379392896938916 
+1.806073715201322 1.334071413738829 1.703142919750449 1.823227029784144 
+1.938829782715703 1.775540016807258 1.959533560846263 1.602985861598428 
+1.090716674606453 1.449017523010710 1.871722015131500 1.763411089890863 
+1.461638415975904 1.377560995916150 1.696928218333825 1.687750190683848 
+1.395469041414687 1.285477390984829 1.625486961562168 1.978770341497363 
+1.815564999550108 1.113271410322334 1.953804330085964 1.597678188053152 
+1.240981138727491 1.584045532812686 1.576249993164280 1.648079891727424 
+1.872302535372160 1.577034821514009 1.005905323310200 1.915920185857201 
+1.438839076135547 1.335398255955401 1.800008942084264 1.250373061198758 
+1.162706818340308 1.699920699090749 1.482340480056161 1.423803993351854 
+1.634446679608959 1.445809784874168 1.676114225122812 1.073453382958400 
+1.649847026198809 1.269918499414613 1.979841973510171 1.556766143300241 
+1.094079287819823 1.128619176976635 1.253314112065855 1.208748279913465 
+1.306619199219997 1.044937628570032 1.000732338033558 1.342991154349005 
+1.860595087754724 1.095218237767422 1.278309103629520 1.712102560416606 
+1.233694446971289 1.652754972969379 1.727354506903940 1.275139333491851 
+1.456955694277411 1.355509779696322 1.565310852583826 1.440111358694723 
+1.501387933660361 1.189208691221027 1.945624184356370 1.756167516754612 
+1.939719768221966 1.132962583454716 1.448504041886660 1.372930283176299 
+1.839561561838321 1.515212928987068 1.088711606717946 1.653799496732638 
+1.439087447936713 1.168821233918879 1.840472072292290 1.651160102448669 
+1.678387326290781 1.108046734096531 1.742570194889754 1.217653292648427 
+1.349962709860243 1.426428122486024 1.429786429576849 1.118086435371414 
+1.898630445044101 1.202669101620633 1.003546627907316 1.432918367169483 
+1.695838586545209 1.223565919554833 1.215899587070318 1.852231584015609 
+1.419880923383858 1.859926300110138 1.373134607846553 1.099889345248965 
+1.494907946391902 1.784242134336725 1.445521820343239 1.934132725176832 
+1.678090853984541 1.299480083084857 1.219424573438757 1.041538167977462 
+1.097603640756395 1.732025078213101 1.203032227533597 1.386272974239584 
+1.076879222459585 1.749209145724089 1.160442201169825 1.782811480711518 
+1.058055421912850 1.957771377913165 1.393268424373463 1.658215469825258 
+1.235575238467041 1.943791208111706 1.453389714722725 1.926307913656742 
+1.768621964734421 1.593549098825722 1.981895244975016 1.508627256398221 
+1.469717778975621 1.997045413262179 1.817586820503908 1.029461018042398 
+1.741638778301961 1.470665004275147 1.521922188684885 1.311582064856590 
+1.189741873879081 1.372829524889769 1.197414135248930 1.344514220549816 
+1.114370486075495 1.712090478327097 1.152896703466142 1.902599763583570 
+1.418024756065962 1.142667222346111 1.181277876712413 1.563209269688428 
+1.576564581342691 1.742196914327931 1.762945159331795 1.604856256572909 
+1.544169913542234 1.824362992553564 1.645837187977834 1.251371747851891 
+1.361282747748584 1.703849865833888 1.929498019658350 1.848805780413134 
+1.203911768436835 1.605821833708519 1.079256448243018 1.141426777886053 
+1.749062657349109 1.056086171250276 1.132192760856270 1.947176634523604 
+1.235687234073210 1.752459754656633 1.438305366021225 1.373452870780806 
+1.044592619568721 1.773696217599890 1.207805412084371 1.412286286069381 
+1.209902595164476 1.661325053575970 1.616147023966913 1.404894085084596 
+1.345217255906541 1.486416047565206 1.854124933188612 1.451945954682975 
+1.302283565762476 1.672611218361328 1.243726061006824 1.167525036517606 
+1.947278515140314 1.168920254477648 1.469843950007118 1.135063090649555 
+1.615206376004397 1.787225412184819 1.099446837798952 1.872528906357509 
+1.923136214644372 1.785901507549365 1.499012308076690 1.997423996459256 
+1.602443281500402 1.389708042380524 1.889171531140404 1.732925992320568 
+1.838977378853630 1.367254343774232 1.978071445787742 1.593334007010965 
+1.774611481038595 1.868180716306702 1.967338939400258 1.363778802027581 
+1.603868776407315 1.198939254701540 1.832191724564298 1.416486158507371 
+1.758230884167997 1.111782584868624 1.666037131111267 1.796770808601236 
+1.814121654190905 1.100190971887959 1.690126266298156 1.227156933568043 
+1.846980440307328 1.209659117062373 1.208719974025927 1.372809502223703 
+1.795954701994591 1.329528690417951 1.234757657297531 1.935824849697846 
+1.007622478776605 1.023911016276410 1.971516092153707 1.827722074290496 
+1.827932747001817 1.508485703010770 1.583979239771304 1.487151862583125 
+1.842832913153363 1.539508630077605 1.034436635705730 1.915120528590447 
+1.235945601682862 1.525281604964557 1.565750363770829 1.430247112657656 
+1.844397604322980 1.525592815505690 1.870108413019490 1.414520083952719 
+1.328371717561160 1.387892239665782 1.535683439529413 1.143179455543000 
+1.490470597206488 1.162701772366728 1.487571425923246 1.009348362213918 
+1.088775331485732 1.650848102203861 1.056501775675469 1.636731820619694 
+1.874506782113476 1.017350457276918 1.444952138552120 1.720378347134331 
+1.960542367652983 1.745436589021068 1.745396741206396 1.718817367171415 
+1.030626903566067 1.035110921270815 1.549545151223636 1.698704708525667 
+1.970514874959596 1.050948761612786 1.852082503948863 1.910978420684814 
+1.174431330938931 1.079777120715919 1.317631508963325 1.356173983791139 
+1.946304918438948 1.855695501801630 1.368049682038256 1.675728376911582 
+1.869519776353249 1.343194842713000 1.653270614977977 1.799919642174217 
+1.503881779649398 1.299018044082108 1.373531803375608 1.617897994237420 
+1.517073781071638 1.433335588690562 1.834724718442011 1.987974578798595 
Index: /Daodan/MSVC/dSFMT/dSFMT.19937.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.19937.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.19937.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-19937:117-19:ffafffffffb3f-ffdfffc90fffd
+init_gen_rand(0) generated randoms [1, 2)
+1.030581026769374 1.213140320067012 1.299002525016001 1.381138853044628 
+1.863488397063594 1.133443440024236 1.073465290616508 1.924735636004535 
+1.642876178923654 1.135658049473512 1.614181131134505 1.758658396495576 
+1.629675660963117 1.280639430198043 1.450236428147610 1.493660282874514 
+1.814271115361793 1.167373211634437 1.029478262306546 1.995645230878212 
+1.571796427913721 1.820991494675444 1.342215733241735 1.623155152394482 
+1.770877090925340 1.971604009986542 1.291307503466583 1.042482713804030 
+1.489892341518318 1.846505153340657 1.464614144455080 1.722998990286586 
+1.261140462560469 1.466608076171318 1.284476538780147 1.566267595424500 
+1.214877812942994 1.814025145094890 1.875364841982453 1.420058799919090 
+1.185941915813226 1.613435647553408 1.261307303980314 1.575227905977901 
+1.368593422560852 1.178339827374882 1.617026203567302 1.605806966367909 
+1.688420982162701 1.271452757436403 1.380651074471749 1.923694230059664 
+1.183689647854999 1.813616738156070 1.674316771173891 1.388616443854270 
+1.112619958524579 1.143443226388526 1.044504544026019 1.059792215140743 
+1.473318469170684 1.907724040304600 1.840641748107302 1.880247376378763 
+1.662300761822745 1.756077893716310 1.794902408257739 1.208089693203264 
+1.573346980275286 1.343298418696786 1.290031288673300 1.785887855614908 
+1.469555312775962 1.303565840269790 1.821346312600028 1.464630963746065 
+1.350918117062525 1.608975946390805 1.218770519593969 1.553737984201091 
+1.799048445169658 1.934409566880829 1.518706598932114 1.806743174028226 
+1.445770445550219 1.853994985463463 1.294940116346864 1.846933188597791 
+1.585285299858689 1.436399337803629 1.984097327010455 1.104286003167359 
+1.650974773825423 1.509620107806257 1.257788148487937 1.343504084778931 
+1.949774691002465 1.575826707171932 1.334309761521545 1.970145826389876 
+1.634179511150286 1.117295679338137 1.975634802490159 1.876312964236097 
+1.588415777998304 1.655714874553697 1.333606641414210 1.534065546092020 
+1.430491671060673 1.948237416318885 1.221039675791948 1.002582148951994 
+1.154359196718931 1.871051234557714 1.608929525044202 1.314753139712890 
+1.024921298185855 1.269548213986646 1.311905073508091 1.820250418624237 
+1.530899807500864 1.382415501216911 1.723050693688422 1.273273073610244 
+1.313899532538009 1.788939639818993 1.876299000001360 1.991333199989678 
+1.991820254950511 1.030433951689168 1.676262472193616 1.508094775671104 
+1.379478805615782 1.669062560664250 1.454294977515323 1.058637649351106 
+1.762305416761906 1.259329140543268 1.069306898227167 1.416672040871633 
+1.692817632828360 1.325016179312241 1.894413502990435 1.065827451446854 
+1.648472088974056 1.136729079291305 1.577029131655685 1.770630083651844 
+1.312969529843681 1.120742660491037 1.381749920757092 1.532127565299400 
+1.430576333290474 1.408675485986594 1.664550700542242 1.808244181927591 
+1.449745796589231 1.561376218313360 1.823412610420372 1.175033367831775 
+1.302133406247658 1.209386996910797 1.958852403617822 1.327413109121052 
+1.905326191931480 1.243341689973321 1.171964300933144 1.947795532949568 
+1.406088608658097 1.352799736126945 1.038567042456604 1.952366632464022 
+1.271894317271382 1.276879063784723 1.962232899932226 1.635977123253224 
+1.427227475039741 1.902767774021188 1.348976205109293 1.098551616320939 
+1.761303753087471 1.725151135219154 1.973647280723666 1.438406762461431 
+1.976338460962363 1.080691466989757 1.302440271222677 1.524443530330429 
+1.677973975664305 1.899365828945253 1.758064697654786 1.664994321814212 
+1.702509799458075 1.542285497404383 1.583785005757146 1.364775251860427 
+1.914911483830064 1.492662121733521 1.803292510850298 1.913612505233413 
+1.990030445920955 1.265653421547230 1.371464451146616 1.812272753750019 
+1.468314372775775 1.962074516808028 1.071993018163613 1.362232923167970 
+1.286098054243162 1.166494117866721 1.190627308126986 1.336522203701874 
+1.589002579609417 1.989085299207313 1.886248617042378 1.494809620088929 
+1.210511688798404 1.373900882339293 1.529044652411248 1.599366524611929 
+1.436552769988409 1.577285005915829 1.688182285296122 1.277637471607439 
+1.929554385968616 1.823441682648089 1.922013798503081 1.645761293216693 
+1.431349251849024 1.762959265242032 1.878537838979557 1.999467237190877 
+1.485220104894368 1.716411480065391 1.412097187018955 1.552070069949518 
+1.892433293954831 1.503681065768480 1.856696961604681 1.652070478210699 
+1.941264820695600 1.747443060523082 1.340963648345302 1.115605969659878 
+1.350907250724354 1.815702983867849 1.598890428370514 1.439048661943484 
+1.517663378502000 1.304964768398997 1.079026972256675 1.524811537337526 
+1.316547675188607 1.138964396377513 1.662996685355875 1.267094641341935 
+1.501239512928825 1.102282578729245 1.681064147709950 1.806571233091203 
+1.723576229776429 1.736972959477229 1.912237952025255 1.660774311421941 
+1.025816042908814 1.438547835995945 1.739013210613549 1.413224917267124 
+1.358475319974022 1.358765432047162 1.593140545500734 1.172245654090473 
+1.930726901246793 1.162761062259565 1.318549211468092 1.092783981301198 
+1.555764474221963 1.708252060788802 1.269806348212832 1.852955157375948 
+1.907379745865761 1.486699553976457 1.515744472393222 1.620128750267234 
+1.622430346507121 1.668132516832666 1.796788360374040 1.636602348582785 
+1.773593519549434 1.258248394226789 1.246140312082405 1.015163448535963 
+1.521503953242567 1.140634382438487 1.702118160723025 1.132078836187980 
+1.963663308022001 1.452227189409805 1.832632887982046 1.261616333794024 
+1.803214901972612 1.388570383844696 1.643765598586203 1.619544270246625 
+1.307755937472623 1.857004438119476 1.398636660692930 1.556031209947539 
+1.641338721048474 1.115939103561434 1.654221123345289 1.150482842848706 
+1.494319794557959 1.788401632203792 1.025831928414729 1.042464682154734 
+1.886776958738527 1.968746864493441 1.159635330475675 1.956557704773203 
+1.284243453753799 1.572925045526015 1.859321130727941 1.005189956275669 
+1.005337392745185 1.442294781323312 1.890812262600537 1.206329358583467 
+1.026098286977865 1.047660975111641 1.037196173307690 1.743350801362402 
+1.274336569674040 1.719733191271306 1.241944533170590 1.761242705869024 
+1.087057719955586 1.923433325400596 1.769554882850761 1.422355508046144 
+1.335735282689950 1.969166433701194 1.309113579529401 1.934488263782031 
+1.363050605738272 1.205012399069315 1.702636620368798 1.377299901239738 
+1.082603967707894 1.707678198781335 1.357839171792981 1.249151205817995 
+1.414407072442705 1.758876753195856 1.947897139275915 1.873737405944571 
+1.864011982004539 1.197733232912529 1.708750747026161 1.584026807407247 
+1.464232596280593 1.910020147544669 1.107379834907888 1.431311422166039 
+1.656031749095368 1.583060053927119 1.338823782349183 1.675841451609077 
+1.863125002352507 1.383321945211853 1.437552865439453 1.323329267004908 
+1.510393439678810 1.381858897252844 1.488904172419540 1.703038148781844 
+1.363689874508434 1.782902379399008 1.207151750281740 1.134081954739325 
+1.786230025908168 1.301807943529430 1.818037084625490 1.954083924684191 
+1.503136817574214 1.166174793570306 1.905851898350567 1.861611595448786 
+1.912073551209336 1.311539667277574 1.348138517947969 1.835216223115592 
+1.848638059772834 1.508211065551719 1.501558584290350 1.841635694216024 
+1.695119173143315 1.454484117280340 1.625646404371770 1.119869639433384 
+1.444195622035266 1.399038475609640 1.911871066122697 1.393715521875472 
+1.634940751730062 1.299965953553803 1.625354065027734 1.880393059283658 
+1.690675478017034 1.628589134880479 1.012241730322596 1.151619785119961 
+1.951158889711496 1.797539238310482 1.755218167276459 1.713478006991327 
+1.571668224641071 1.319684419283076 1.470800535782670 1.106150064396913 
+1.759426082965527 1.413902064615626 1.663209862298114 1.688656611986246 
+1.561766088174504 1.021593733617964 1.104216171759727 1.056934446307648 
+1.131101785914085 1.025747434603107 1.653089659161949 1.862010102275871 
+1.700392592888141 1.749844513072156 1.600475707472835 1.797824285171013 
+1.303262789973822 1.833983051083715 1.706436841851279 1.583152584413344 
+1.157186002470311 1.160819822241010 1.212754944300861 1.963053526130375 
+1.268811286389321 1.374828807938443 1.049479080410400 1.973869788889314 
+1.280288819687655 1.193231050947952 1.306156625366250 1.244778108696800 
+1.731164172106588 1.765672206167307 1.617163972329793 1.333068311058873 
+1.230571993026005 1.225697451543153 1.277811874136488 1.572508333797608 
+1.556415237569166 1.209965265731652 1.934900416408164 1.370051485789686 
+1.026053486793906 1.090498102405539 1.516231184525802 1.080879023417522 
+1.616056345268405 1.414971598053735 1.813169501790841 1.946113087783638 
+1.550874962654984 1.095276777050610 1.022240506381006 1.349953863208443 
+1.639335057225891 1.086999372715814 1.198125757163164 1.358872097979379 
+1.864767925147218 1.425774441879807 1.324356243811146 1.013779032909748 
+1.877970176001620 1.017769324762142 1.517328996674653 1.156791735454128 
+1.820771116348883 1.209713056264071 1.854832025810033 1.626515379727837 
+1.072074225561507 1.621286465674130 1.549902343511516 1.266113813183351 
+1.450731461629206 1.023903615692273 1.141802126238102 1.478789349904744 
+1.030261249106096 1.744520411596375 1.610339075504574 1.734036515785284 
+1.445021690251891 1.067695047319750 1.044588489496833 1.078902049240712 
+1.775656376455273 1.529010846255880 1.684639314731656 1.869078008870465 
+1.196659282984713 1.055877083218375 1.343311406572803 1.657804323039657 
+1.931310179843877 1.876531128866294 1.953312528893538 1.751295176436919 
+1.990635408763924 1.747960800049019 1.625876628099381 1.950163235823662 
+1.461443118782703 1.075928147908412 1.092143870551425 1.530725871270558 
+1.134721738077522 1.006593825427538 1.510662628484829 1.102117778241225 
+1.237414790616429 1.415898757276402 1.227818931317890 1.803733837180969 
+1.039835919301454 1.945637370177811 1.014985550164521 1.662360752310358 
+1.389442153375327 1.067707198772765 1.752954274484631 1.712429083915912 
+1.798210585469825 1.644104449048200 1.668431996831141 1.786974747468935 
+1.411459450430814 1.354534709965009 1.755820242124135 1.186816760748136 
+1.711332994678620 1.903597963775769 1.127695794052451 1.055764745873512 
+1.462173219563238 1.601988414252792 1.542788005387959 1.470016225539294 
+1.053250417579233 1.919128040049399 1.920409133273121 1.930196071775802 
+1.093941301487821 1.907077053805924 1.180006330527884 1.855787153756457 
+1.038787604610960 1.603390528893462 1.675699800641335 1.436579268097476 
+1.695216721991263 1.667921392643477 1.298225569286973 1.176659205584008 
+1.484688184402969 1.736977199998048 1.527346818010219 1.124337166052271 
+1.004126214409010 1.257995351445688 1.048750698690273 1.600687893284987 
+1.771330853717698 1.781338029764260 1.791045259533474 1.218240073554028 
+1.404476462748409 1.263776254264821 1.771506489056091 1.492535106857984 
+1.942560639598830 1.880445735782105 1.987365393774292 1.624806632834506 
+1.360289989229111 1.259447098681650 1.565201597574085 1.724405238661507 
+1.480135931789360 1.613728648660302 1.148462875077473 1.082990694586929 
+1.791549713090436 1.011697309037590 1.051330287711138 1.404529653735530 
+1.255076827666297 1.465354319402313 1.959722467095358 1.667465002487598 
+1.059786656048662 1.145589007250259 1.111653746143364 1.118097303976153 
+1.274790361215896 1.061022554596977 1.650762458048159 1.426666443801441 
+1.643025168116494 1.881525522016726 1.331922961270956 1.141320506705509 
+1.835459356205120 1.604755953946371 1.126481102674482 1.345361030653902 
+1.552930483800284 1.651060315989797 1.281924176836940 1.478282162483309 
+1.089522082067808 1.514671692662497 1.062032369569581 1.220072855001427 
+1.335222242385036 1.917688560760201 1.881563679176478 1.061345187966617 
+1.932816485102730 1.831378583403447 1.018053903667606 1.803752606555742 
+1.744151146745064 1.823935602019249 1.549411228789844 1.852085525549937 
+1.268910953917921 1.398103908872195 1.115463052648461 1.134166374832642 
+1.059662865049822 1.913385314672057 1.817573645089763 1.543472539894835 
+1.879411496379644 1.187052469310417 1.327060124683171 1.201797766005763 
+1.585708496011359 1.726441950212828 1.765366139479803 1.575105655795392 
+1.161836204689848 1.177060808947556 1.991643941775680 1.483304774937826 
+1.299878727524718 1.860512786972423 1.055049090865626 1.843398581472891 
+1.092910752402670 1.944321623196737 1.663494470271249 1.922888589107380 
+1.203337506107050 1.673695668302879 1.453053811175328 1.005089626720857 
+1.795346999949530 1.229821542926916 1.748377783144588 1.321996885703262 
+1.309371806850785 1.716138869778725 1.135666913050759 1.338269469982098 
+1.970855876728981 1.853517049886400 1.057177758132396 1.248940788315584 
+1.791020744082269 1.081574247946067 1.730996177586578 1.009526675464715 
+1.009798100718231 1.881102727076643 1.670032923753426 1.864089798899085 
+1.947800326838745 1.525753676291635 1.481044314974777 1.045650816913446 
+1.343050229590432 1.254467660379006 1.942791560918173 1.712818820358553 
+1.365835692787808 1.840681238589795 1.226240189108953 1.322696502726162 
+1.519948924493175 1.902086636313264 1.831961607099442 1.656813895374856 
+1.580562626129614 1.628706392122500 1.709923293711780 1.397619640553994 
+1.955521961038447 1.131582790546282 1.120774954775631 1.643383921264857 
+1.428256924538280 1.629234961965852 1.481973671272142 1.355168703906496 
+1.381360123066666 1.297353474383750 1.998779984895075 1.299540149195283 
+1.554953631008684 1.022499550534725 1.267538332848977 1.999635534064931 
+1.216908438689689 1.125330423218031 1.521094226167544 1.352444820153410 
+1.891355866547355 1.237188250644441 1.829163148453760 1.010975705160555 
+1.389099307599609 1.166572697139759 1.209619877947629 1.957432819952394 
+1.171713118207805 1.995544396463686 1.113738650685683 1.954952493800097 
+1.309046349979008 1.125405858742736 1.334059551241411 1.618705235720444 
+1.231177186143469 1.553727846971735 1.178887689593680 1.264866781514123 
+1.091971065285239 1.056441862383996 1.283527024623163 1.834607590365417 
+1.962802242863336 1.228730340204497 1.842991683633420 1.697545988525402 
+1.844710792546847 1.192417542034665 1.697508607262110 1.784896632338091 
+1.034112834139585 1.422033286751813 1.453652054620216 1.058379823639922 
+1.507638941358602 1.047993066417010 1.516397461578060 1.302372136540590 
+1.461998564058737 1.554611626737750 1.134122374348743 1.667716941372084 
+1.433151414564393 1.319857533959847 1.583420071116494 1.478250465560727 
+1.466784271564917 1.923843580047532 1.176048670365018 1.518583880443583 
+1.126284343690593 1.309458927538403 1.254116920997212 1.221286762203130 
+1.314794812269592 1.865355356312181 1.875368141725648 1.478554967746866 
+1.289949440091931 1.240447745313523 1.101700136534686 1.332573248950360 
+1.167135678363469 1.604936747884104 1.828477968610324 1.981787275210698 
+1.528961708093550 1.844833688431583 1.292908212260039 1.526421493343533 
+1.477684242274037 1.520192575343653 1.407146775494489 1.433258876432486 
+1.140499612461638 1.224429147839875 1.413739425285328 1.939104296647277 
+1.669514052983343 1.732909897181110 1.751457852668096 1.242198740016763 
+1.909522621661234 1.248802188164318 1.785821368840928 1.444035896141739 
+1.408015292232671 1.097220772250296 1.433573415928994 1.019849701076716 
+1.192183652047805 1.942228730880240 1.511971120822260 1.167847411636749 
+1.424386751141384 1.999535966473089 1.256446120225825 1.758859587241302 
+1.554606274137138 1.141112413898596 1.872291378873514 1.893151469654739 
+1.869646558937494 1.826227167199755 1.804544311254211 1.730661202511795 
+1.226769815903244 1.679838430928674 1.643941207337068 1.322059748794036 
+1.045053637669191 1.309404672920857 1.331474945197764 1.790509417887939 
+1.263083376723605 1.245939409206071 1.759660309891394 1.281800922487132 
+1.712213197965571 1.803213756378482 1.717270512776782 1.385372857246577 
+1.255945382268436 1.564636086727342 1.644313176830236 1.176523282489581 
+1.334422402615048 1.208067092977696 1.149552540117835 1.771501288135706 
+1.564055713684924 1.621614271733339 1.081066576966760 1.495853964383299 
+1.219063833026128 1.084142314244871 1.549237225541902 1.936776127604372 
+1.845512189258520 1.005975975876582 1.811498259332091 1.635990011669673 
+1.536881182554052 1.443297379586476 1.886119584133706 1.275449488687871 
+1.670965527087923 1.987232750305201 1.544406415554266 1.725582465417778 
+1.799340284160104 1.608735841735920 1.264891652333546 1.808533254198986 
+1.974563992723363 1.673825352257849 1.559378666798180 1.815513818850944 
+1.679215902745112 1.846384704667485 1.353621521988754 1.236648508090431 
+1.002104116734581 1.053298883217048 1.430242739641769 1.420261924778031 
+1.783120431598888 1.331408790925515 1.781593450829028 1.139278556251319 
+1.925682266142099 1.138131587567467 1.474662993172124 1.319063477600368 
+1.536365678407554 1.129922971629872 1.780938176769717 1.257945861972239 
+1.206107632090796 1.055490753863072 1.161054816125216 1.058802624223267 
+1.756641825929552 1.754378196150022 1.827313268250450 1.951406696895395 
+1.315659554078758 1.926535624123573 1.711614142494693 1.408317616914680 
+1.167503504129387 1.221579231246995 1.772499449844828 1.229590547241117 
+1.523859240135010 1.750638838700595 1.294969757722743 1.239218469359550 
+1.895331049984825 1.351848818389126 1.953628356200589 1.556987376063896 
+1.742382503539244 1.831314773712437 1.931187779890391 1.627064275586785 
+1.092521265403294 1.056269664216268 1.697419776942093 1.020621151020278 
+1.016460701790075 1.663349935983337 1.700240650962897 1.294295439244268 
+1.217283432848958 1.724633019876359 1.611555526017567 1.976769804845470 
+1.322482963420171 1.119851357883444 1.188940717720834 1.639649300982932 
+1.430594405952054 1.528763701984112 1.677238553046157 1.804257644847276 
+1.373695667911955 1.041607859915277 1.292586152868963 1.204343281283561 
+1.219648415953772 1.118298775504544 1.489325174543727 1.223311365895364 
+1.215428634537803 1.544464527855300 1.211873174969368 1.800882969641407 
+1.395620323924559 1.513764352278001 1.855296462052718 1.311627987537891 
+1.106545691943606 1.006292260028909 1.266506021169479 1.061150534120227 
+1.552364586842264 1.302709575585848 1.821775657431182 1.391750759396551 
+1.365952489392163 1.337000387140509 1.740591934294086 1.185662060689487 
+1.200293174238620 1.390126083634700 1.802185187529872 1.091847733098113 
+init_gen_rand(0) generated randoms [0, 1)
+0.030581026769374 0.213140320067012 0.299002525016001 0.381138853044628 
+0.863488397063594 0.133443440024236 0.073465290616508 0.924735636004535 
+0.642876178923654 0.135658049473512 0.614181131134505 0.758658396495576 
+init_gen_rand(1) generated randoms (0, 1]
+0.880645574886293 0.087582384819670 0.496821329757135 0.128745342494544 
+0.467567197430918 0.436374482624768 0.899091469109679 0.001594789681223 
+0.210988720282107 0.643085780983058 0.286963132782255 0.013824516579797 
+init_gen_rand(2) generated randoms (0, 1)
+0.111463197826414 0.981070652873690 0.273251005444180 0.667092155512465 
+0.067797604041130 0.685302203135360 0.488955903431841 0.086343896919829 
+0.336371017018281 0.035318749911809 0.386868055837259 0.599611474561840 
+init_gen_rand(3) generated randoms [1, 2)
+1.255012198808926 1.875325181548898 1.090817069386308 1.114317519239395 
+1.361744453795217 1.820994567703168 1.844381146874511 1.618865371694159 
+1.673557508016053 1.091709989515746 1.126079371575098 1.496618495643371 
+init_gen_rand(4) generated randoms [0, 1)
+0.525870252184132 0.756509091477380 0.909241411895205 0.143911115035140 
+0.698929653706998 0.669030576065301 0.241744340735132 0.919797334192990 
+0.028705520493362 0.218683037894924 0.456442573349723 0.539417856942046 
+init_gen_rand(5) generated randoms (0, 1]
+0.576676137904379 0.994304310329450 0.127959185148864 0.178972277952344 
+0.501233068055063 0.859840653012468 0.546161779037789 0.805380602145160 
+0.381324178276622 0.229028865043289 0.666794531244068 0.821723842976139 
+init_gen_rand(6) generated randoms (0, 1)
+0.873475838401079 0.583121226481617 0.576856073100122 0.257034220291161 
+0.880349747064963 0.605268659164597 0.689410341721138 0.966492486436186 
+0.534806053406845 0.900572098810981 0.597121162382788 0.133791573492792 
+init_gen_rand(7) generated randoms [1, 2)
+1.733846496352147 1.944933364309216 1.534366387694546 1.349854297375459 
+1.571154261112555 1.863253614248477 1.864195640054161 1.785226829892599 
+1.379886866798434 1.483001766555189 1.866336010420762 1.423589988625517 
+init_gen_rand(8) generated randoms [0, 1)
+0.016149986809160 0.240896551732740 0.220205411033437 0.600118317624624 
+0.213730648540553 0.952832658803485 0.132273329757838 0.863778049809414 
+0.906936863919466 0.961619277372525 0.400525759102315 0.649827956416327 
+init_gen_rand(9) generated randoms (0, 1]
+0.897952026920904 0.203799481453592 0.308102370173474 0.422219844527180 
+0.443487283107153 0.273078034367036 0.891095544481263 0.504201644104074 
+0.860515602119610 0.099756040933477 0.665909380063383 0.712374311203949 
+init_gen_rand(10) generated randoms (0, 1)
+0.683327910427992 0.372356849192171 0.497061202773271 0.605407023484072 
+0.511747659988026 0.001673057933136 0.552274515327338 0.043245882396125 
+0.712391906919602 0.193479812533390 0.954009587317864 0.249432912513315 
+init_gen_rand(11) generated randoms [1, 2)
+1.515116984509329 1.443474140205448 1.744243096579810 1.174981598119548 
+1.591230822876110 1.891149667922797 1.234649637868734 1.689416942120393 
+1.597133636547374 1.393254123902199 1.416543312374616 1.876116444637407 
+init_gen_rand(12) generated randoms [0, 1)
+0.481774634082841 0.623613096403768 0.433948476365912 0.405980944986896 
+0.266345318555654 0.029670935213201 0.872367522063317 0.179517403785763 
+0.826284520382318 0.305580349258039 0.860195447330739 0.696284974815308 
+init_gen_rand(13) generated randoms (0, 1]
+0.736509336456002 0.651082007713346 0.555021508844934 0.885753886252467 
+0.333120182106870 0.993548773174568 0.987772890836659 0.431302442805909 
+0.705413176872964 0.481900388799174 0.225302536580132 0.920897894303691 
+init_gen_rand(14) generated randoms (0, 1)
+0.097538698136809 0.667918617856063 0.665514947795676 0.987487457310677 
+0.852303628338015 0.865926887506882 0.741215889765148 0.133112334043015 
+0.333880173444365 0.147834523328185 0.207424230300744 0.079230766305846 
+init_gen_rand(15) generated randoms [1, 2)
+1.685473600093543 1.832764630430519 1.354009350422052 1.741020317316160 
+1.597593449420559 1.830141846144645 1.358506431507488 1.275519467960031 
+1.046966095225627 1.536343990557542 1.558416456717071 1.073677139349694 
+init_gen_rand(16) generated randoms [0, 1)
+0.976137909126447 0.107093727331627 0.542120470952989 0.971703069457611 
+0.306550103262598 0.446553984418768 0.620684556774153 0.553453780422661 
+0.613690074438016 0.958374645802272 0.865352204619699 0.057389301498593 
+init_gen_rand(17) generated randoms (0, 1]
+0.483981085511368 0.254441115776038 0.335092686732900 0.307048279097139 
+0.367845049818382 0.013859536137113 0.635616755317694 0.041197496379171 
+0.729539767320051 0.434411980620260 0.102507984715114 0.258142362745437 
+init_gen_rand(18) generated randoms (0, 1)
+0.335740132995339 0.299313426339728 0.439248668581697 0.325201563728406 
+0.155819947798202 0.910642358668589 0.971275576846953 0.405370275515955 
+0.973829163404636 0.816003162109168 0.866979619992709 0.609717360529922 
+init_gen_rand(19) generated randoms [1, 2)
+1.215781221856222 1.258174726278870 1.334549825010923 1.347468216542527 
+1.711200914089176 1.865993942546754 1.482519712342379 1.122766670733852 
+1.439184830020622 1.950977199236228 1.366172637840221 1.796301634657450 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.426834076845924 1.669573575226984 1.161348943376632 1.218790313522451 
+1.409859819741837 1.507585068928725 1.157665160870239 1.763320166432968 
+1.244116037727320 1.471631443373209 1.548950785012095 1.631712105867313 
+1.646854415248517 1.441505070427991 1.779880230398589 1.265250259948116 
+1.241834722506462 1.291436728456658 1.301293539339929 1.330800599996647 
+1.570261068928472 1.963194799607127 1.537283415577270 1.981089162219523 
+1.921418222379268 1.969460436090207 1.724652994742112 1.244719458395128 
+1.759728417498294 1.775610930677769 1.022380872515206 1.782766294549358 
+1.831395483035109 1.642705713989280 1.010552292294011 1.355409829832131 
+1.907344376547058 1.658109050575550 1.373479948584540 1.279188769641363 
+1.744586560095084 1.017850971812924 1.040170071312174 1.215893821833225 
+1.923400738483353 1.059892715077562 1.550064026417522 1.769996320456946 
+1.396434884186553 1.234568619484248 1.607681797577103 1.958189196349296 
+1.269921724086717 1.174229190800146 1.237214368220291 1.094049878485849 
+1.137897167177718 1.380112949484837 1.496596270833800 1.735745635946019 
+1.224503331109337 1.141302797343402 1.918266068409987 1.130322927693906 
+1.733289108076045 1.255649974028649 1.559892277382983 1.633161632346011 
+1.962664431591329 1.392226260478223 1.892171287848435 1.279027400572027 
+1.437126735535775 1.386726935201865 1.361062580450083 1.322030814096333 
+1.762601775714896 1.500787847237421 1.167840711209532 1.831617008434050 
+1.042123180114230 1.229272727743674 1.045940571227599 1.535325894374689 
+1.583280537973708 1.115174674459555 1.946191240554468 1.235668534056144 
+1.813929917994015 1.341408254343760 1.107526173037224 1.053206871863764 
+1.889875129215487 1.766005875969800 1.946185923889105 1.409941347332054 
+1.530982625104156 1.756192019607669 1.260098457559148 1.416286116423164 
+1.259622153648303 1.574846932747870 1.120555105300661 1.738707096041396 
+1.211513986751540 1.666116922348542 1.796136437832266 1.490171489368468 
+1.307838784262878 1.356122803065520 1.052320157786442 1.617164657275455 
+1.316080031678648 1.730404834511234 1.695862484340249 1.856786318280202 
+1.483393046244855 1.862205529277383 1.594880498739936 1.985742592210404 
+1.166839487087951 1.133716853979459 1.365074009233616 1.605185379214896 
+1.831834983150267 1.660729481116249 1.620311051109192 1.528421672003104 
+1.082897677308352 1.843849996791790 1.599032454492492 1.588016004934536 
+1.180236150679974 1.436273223157936 1.659511340406489 1.590478061296625 
+1.093628939305082 1.407315307598384 1.501375134631466 1.309988042417427 
+1.305409853356275 1.487638365944092 1.768299425065061 1.010844059113900 
+1.635126268183143 1.011204656788837 1.339645464506357 1.095284674847235 
+1.414551891928440 1.209748104849331 1.383681307792533 1.618290323139935 
+1.129084170610445 1.311924817517179 1.738531311784417 1.022939676896750 
+1.442651027374832 1.673323075196818 1.487189600303214 1.532034363784108 
+1.400348884925631 1.363156319140678 1.180572477383139 1.372597207018608 
+1.604056432308996 1.377853904814897 1.663632726228692 1.573375474817795 
+1.355508816621638 1.514511112895809 1.106777497571639 1.550994721654071 
+1.683643844118159 1.646927695891595 1.577726831986079 1.571266074937761 
+1.778651911357587 1.520031681347608 1.124711635026065 1.352246268244803 
+1.487559893625447 1.012764455867505 1.816719563910962 1.208257832450662 
+1.041803856577994 1.341911150404035 1.495370280168004 1.920170272493653 
+1.965874911324751 1.387951518473841 1.308272147397573 1.951071698662061 
+1.663217633897550 1.945953261496162 1.686783572931176 1.324520724942713 
+1.127392168492707 1.394842942423987 1.012506832463119 1.822249895602965 
+1.436044063754271 1.971206342699864 1.560002828665746 1.348604578570351 
+1.985869362645133 1.684004058042209 1.683411183358192 1.502820898156415 
+1.960863417471854 1.493718069903426 1.197213019494595 1.214259717301311 
+1.126081942497942 1.367414815468620 1.380626706955520 1.166578286904322 
+1.546300974500453 1.233715989328426 1.712789727425793 1.387468774840364 
+1.960673127865697 1.393511379672539 1.190798885641789 1.802506083884619 
+1.621723203267155 1.733219891419485 1.896614154473786 1.229258857531175 
+1.096987145590863 1.007215446593439 1.479848013247030 1.006482533692395 
+1.475695406716030 1.309082981969394 1.678047918649087 1.089843444536437 
+1.694859112978739 1.114017228925256 1.991445866731817 1.221630153896200 
+1.917931098876256 1.689395707382685 1.737621185382058 1.612901920531663 
+1.330282688873216 1.033762799477599 1.011530866922912 1.926949652582234 
+1.620919308859026 1.810944265792331 1.550384430427288 1.228912888541250 
+1.911516265887385 1.438816062362574 1.945797079688606 1.916913938717497 
+1.152650482854743 1.843852063923894 1.068355630824362 1.273969783397393 
+1.375245960298238 1.501283182886075 1.098455261332468 1.099965212689164 
+1.170658644384428 1.496849788349464 1.424465656338886 1.904735368983423 
+1.398426398706599 1.860062780533885 1.432252252854407 1.671198497157295 
+1.208712718773422 1.710257941132382 1.577111646071254 1.185306714851669 
+1.312966613794005 1.358981235665188 1.953080477247737 1.154913690002742 
+1.654663950572185 1.046010570097377 1.325979209020512 1.955693196654449 
+1.164134629356233 1.682424583545629 1.115346839933939 1.599054122161155 
+1.335809252383722 1.060673863590639 1.313382990481806 1.656194063721297 
+1.739327262930234 1.276663134931733 1.395671651369487 1.329253246522567 
+1.778740656645262 1.226578887879721 1.432566966747909 1.983949028407306 
+1.913792818236820 1.219643752332591 1.359307472517508 1.808516395406093 
+1.121906674859834 1.270483716098554 1.517779000455837 1.711776674832905 
+1.390583487750140 1.994605514656146 1.906879532410404 1.332941966198184 
+1.687958541140226 1.487269211768559 1.394286821998758 1.421607978659534 
+1.150598542489268 1.073661645834246 1.708829843552270 1.944755656218999 
+1.107564600472842 1.549311434768161 1.084858213461931 1.533238420069023 
+1.495637400655005 1.864965931298466 1.893350363793168 1.904260299217689 
+1.285472112689936 1.669575308708602 1.253180520622698 1.488662125414735 
+1.634617289421840 1.883566505438183 1.617785553399947 1.617525633258916 
+1.922929171389756 1.838060479578278 1.411070380904038 1.420246637302472 
+1.627475272308532 1.119690632466533 1.730210932477710 1.937976974151877 
+1.456257981764540 1.208896128580933 1.467276557082393 1.209313014443134 
+1.882352320555063 1.945717562841818 1.222948908563262 1.279072223154041 
+1.867084951996655 1.625347110344591 1.245839081779847 1.300121901976393 
+1.587606462992871 1.818821279184783 1.814551993039790 1.136992217794482 
+1.452665110089960 1.001840654985076 1.809653734695938 1.858817374177705 
+1.469834396188651 1.176138338607174 1.929974744258458 1.564163367933883 
+1.304169190955766 1.519675089228074 1.115780668495985 1.682140774354814 
+1.198069437252950 1.006046617718814 1.655446076168212 1.225260413038774 
+1.564029146076696 1.406594628357604 1.135286685491212 1.999489806666566 
+1.099847864711105 1.985472483164865 1.212990258376265 1.272293766504075 
+1.279062576850884 1.945010881697961 1.102452242125771 1.671345804346599 
+1.772581751720944 1.546186567460550 1.423977267121589 1.725522632921294 
+1.651629057507733 1.630926443029539 1.705580078317253 1.296887311826035 
+1.371427291682118 1.062966634032282 1.883595076045059 1.014029636998457 
+1.418958376261523 1.197909502513365 1.048295132060078 1.531935417228964 
+1.015332714518063 1.207662752580841 1.685900545657276 1.063825393685159 
+1.392032127567247 1.300355536672946 1.854622725696328 1.606463794406964 
+1.595817205182753 1.965728893166848 1.954772172863898 1.973790313942350 
+1.327464217663591 1.896774730863938 1.003547628847870 1.595062027363304 
+1.206291459356301 1.721588402713185 1.899204955689056 1.815035251598927 
+1.099356487704735 1.783549435846408 1.375896568121243 1.453050027525146 
+1.943677424919589 1.546538161706148 1.900909100511535 1.349943718161820 
+1.533345830253451 1.093044716493812 1.219158635372369 1.074416006345266 
+1.678604497907827 1.974589094760755 1.739673198348744 1.241247621946750 
+1.216812258510965 1.927902922291254 1.948427761885198 1.137674010896377 
+1.470040451663279 1.167752918511722 1.708876315941173 1.385171084424976 
+1.107542701964719 1.961983569960906 1.894616705131670 1.361369732820478 
+1.304392050803370 1.464488580201550 1.482542983584846 1.757523394614974 
+1.059289470756480 1.449984364110528 1.266004597799440 1.808446082790776 
+1.329798441424991 1.530458013040481 1.457972376398402 1.384922593120931 
+1.503593622418923 1.205177226370211 1.959130053654247 1.899493172377747 
+1.545796497762927 1.476150674476302 1.232020959144959 1.796591448707725 
+1.701990156758694 1.124306549388820 1.107429083439806 1.422775485038744 
+1.045325648385642 1.323797272384099 1.764694978167851 1.350855216364540 
+1.472754501479153 1.105616179696957 1.709288378795150 1.908162447191142 
+1.081639218134927 1.979098731114193 1.429786783162796 1.946906605766447 
+1.789302203510496 1.715826286182427 1.013140333158485 1.945122186514672 
+1.732820538346865 1.608436623807375 1.265892143799623 1.141736499777089 
+1.837377444233870 1.435327030632060 1.702005596366721 1.370273070018825 
+1.830185715245181 1.941732450025238 1.563422324050239 1.877638648903689 
+1.224345129304570 1.453540982978909 1.559840482019349 1.533766009384702 
+1.830139667168129 1.299054110993703 1.109005451041671 1.093376809887978 
+1.545120278466297 1.778942758262092 1.244100507573634 1.908695212280680 
+1.195704324859017 1.483130340712003 1.406475178766194 1.794046525368626 
+1.911300952995479 1.968551272798568 1.715754847871861 1.285631643753640 
+1.347909427212457 1.767564567333448 1.761922655826833 1.197175013318101 
+1.505809853061522 1.013768334933747 1.701885995989258 1.321452174824692 
+1.529730404552248 1.370098118464645 1.208338237097652 1.466277252326645 
+1.833000915075430 1.258106424804097 1.324873915639283 1.838474012744360 
+1.891802185976666 1.840402694861327 1.271283808821487 1.816854464028893 
+1.479749545410731 1.574313962416183 1.438886074751868 1.381406705368805 
+1.001786763541981 1.079701210963645 1.100870332155321 1.625082412864520 
+1.854060519633396 1.502636080979976 1.569250029648492 1.550658559345569 
+1.599962389945837 1.014333184419401 1.854412778005718 1.172007738203310 
+1.587714789029519 1.090658637254134 1.213949982589925 1.718936782639498 
+1.063870393616342 1.562510142564266 1.090520637540239 1.099641866852140 
+1.947504728888366 1.624762715087525 1.923148612522649 1.679405324557790 
+1.551870177287343 1.786282724119886 1.183938250970157 1.102794192878793 
+1.695440570136371 1.885884267414622 1.243994894231952 1.767836772768697 
+1.758714751439334 1.417075153750043 1.587489632185676 1.358728580114985 
+1.298713510011410 1.732270957429545 1.992131856583623 1.658416223687000 
+1.436682196461247 1.065424608478268 1.666159698022657 1.564965472966045 
+1.497853763605442 1.617996224956225 1.951831866832214 1.853789662410868 
+1.100562102836905 1.746047611865880 1.892718533167385 1.448046696670160 
+1.881592197205607 1.704820144612402 1.028457929428328 1.816213591592389 
+1.688070477867054 1.088679935463696 1.325939201504655 1.791578799979975 
+1.946063836890673 1.689108081352551 1.695057599176303 1.561760096517576 
+1.846961835102491 1.334361920873384 1.801315399669617 1.198434484652506 
+1.706588367588210 1.090504480829449 1.913599607903287 1.616945229130569 
+1.493087459870576 1.274327091820023 1.430576343328712 1.314015035105266 
+1.443925378913312 1.241105140526398 1.178806065567964 1.077427059046700 
+1.307326632814646 1.180193228107027 1.730485474877401 1.974021399375539 
+1.930490064100030 1.223257522319911 1.591813090523529 1.069220381984795 
+1.057934876986562 1.126501298773438 1.354352636704354 1.538395734019685 
+1.434380158796634 1.575045150243632 1.227158496902866 1.511824223274362 
+1.842239152737422 1.336832653226726 1.819122193390456 1.026339652430971 
+1.344177665054088 1.382552685665159 1.154156866046941 1.649099470408636 
+1.877774816519883 1.212174941842284 1.016663692544346 1.785948044319059 
+1.517467244947224 1.079171656646388 1.860758175476762 1.773279739478793 
+1.151394754845928 1.982058953284568 1.329439529485770 1.063742478855740 
+1.625806624066831 1.158083668237448 1.319782807702571 1.067387868979390 
+1.090509256668987 1.756791625757258 1.502937028746117 1.496714649577895 
+1.200580298106845 1.787858542678827 1.780169171490338 1.630157935168317 
+1.493213206076143 1.485515226420954 1.865598765382182 1.359067575428410 
+1.560299374807931 1.369721324629961 1.829409362374144 1.746924873122242 
+1.560304797551715 1.495501928306107 1.987603066705999 1.514262836744358 
+1.357993002377497 1.984587685243000 1.519070996055480 1.031641667706884 
+1.268186887690940 1.486835503440424 1.374037748894531 1.870170450632473 
+1.344741395864832 1.490546594321097 1.260334133931221 1.378967076674884 
+1.649307942452164 1.234142949179529 1.056548341868476 1.710394752399008 
+1.827187872128735 1.749570428772468 1.115856260713810 1.838637990834910 
+1.754857234141087 1.070798286819275 1.335942792664983 1.253055731771669 
+1.812007873164408 1.812630700481946 1.826896618291248 1.838670393616684 
+1.477135860487809 1.261671632923509 1.587831013014903 1.298696341467373 
+1.628856455483803 1.807983542158702 1.002009902484404 1.303985192558516 
+1.569365206068500 1.866438695897702 1.355406794326674 1.437138056262696 
+1.501509829515425 1.719818806091735 1.062094290639519 1.479482512638503 
+1.552622559437259 1.536746866455768 1.610314356026141 1.898335596502172 
+1.244678550341374 1.509816196516049 1.738799912550892 1.465795555729572 
+1.452672993550554 1.637128923338306 1.330343867314064 1.233884025266144 
+1.824020698200483 1.499439713803945 1.692253502213229 1.725196803167028 
+1.655967067390521 1.620428565074837 1.044509752979818 1.529058930175865 
+1.551920392733197 1.073781522588194 1.712884753545889 1.384017953294694 
+1.298019316523355 1.167437738304236 1.613952788285703 1.095421380231374 
+1.452757619489732 1.390504115086226 1.357847955632148 1.792678366854516 
+1.797935382556016 1.055404279924490 1.811923552779429 1.035258705384038 
+1.353216543495339 1.651195832805990 1.470075356761980 1.999043458488672 
+1.983818724809119 1.481871828233601 1.003672519851657 1.819833345066088 
+1.290987618126719 1.623882462446952 1.235203267513072 1.058003931779889 
+1.191769505403298 1.128113294802747 1.450703088124740 1.300150882608954 
+1.165264903174974 1.018297020805552 1.370520345828534 1.564076368484439 
+1.503385041792565 1.794732207592667 1.730110283131097 1.425133607084945 
+1.205173554623940 1.523488726562109 1.115457793777929 1.090052980555380 
+1.628957607906438 1.431440359101521 1.964534092496366 1.612249723650141 
+1.680873271330350 1.023091624082656 1.660026792155321 1.766046123479438 
+1.483484232663207 1.190440412635115 1.475268740366315 1.588413392671585 
+1.892649575047508 1.011700702342692 1.958518291201052 1.416624841319314 
+1.736705790009391 1.614309025459634 1.864589683032073 1.418957553787935 
+1.335243911364679 1.442787665364914 1.509736921106207 1.662028761852891 
+1.774862103295833 1.783822879340850 1.438653248014463 1.853576445626185 
+1.551050558217162 1.029888826980436 1.858052572505577 1.968049341536631 
+1.256224082121802 1.270287371478510 1.403040924702392 1.924228334104109 
+1.048825171074923 1.856012366103791 1.409876873857982 1.455614233950671 
+1.872226260599348 1.374559318539743 1.160777050990141 1.182299474165097 
+1.666891320926819 1.455176432589435 1.518935878503910 1.227106807867890 
+1.260576525911182 1.977890087355633 1.984176133112624 1.134942000192615 
+1.826981998133453 1.260943377443853 1.842376454298465 1.280568346682027 
+1.666632191943061 1.887375931011643 1.695555054615464 1.162452653322103 
+1.835466189165609 1.005668873570781 1.637759440476249 1.234371940113057 
+1.414835523310094 1.501051606162356 1.675021657502007 1.303172899477301 
+1.909592954881840 1.953519641405991 1.323252970262404 1.833590924740316 
+1.124039824077613 1.605743272822791 1.466313534922153 1.482705306599986 
+1.080545711817594 1.264031635472488 1.856304009068501 1.084919116430415 
+1.574876601193678 1.320568646851835 1.251270156623957 1.574545157366577 
+1.069342773038135 1.476651738353840 1.506431865951714 1.799100036898077 
+1.039928219693836 1.114998322155024 1.212591307429074 1.302272730393509 
+1.527594615332035 1.908014866039218 1.204044775667290 1.183417296474645 
+1.406844682559588 1.012124911756196 1.497150179116888 1.782761995937366 
+1.642065096885292 1.002372426937898 1.926348707148083 1.583513760323786 
+1.906500004074549 1.271851452392633 1.322812584825108 1.629598376095279 
+1.182912972574828 1.560721019592738 1.079454073146467 1.566539117914465 
+1.957634243700094 1.278668002363109 1.060051048261784 1.265952637425584 
+1.269660031574978 1.473085869230855 1.877707337208188 1.857519596845348 
+1.164120252035231 1.167333872031177 1.128887195815952 1.371521072886886 
+1.022814861420373 1.201400164878863 1.541384603437088 1.937995800577335 
+1.516196933686001 1.082664013195098 1.745945707958779 1.385887829529631 
+1.967672364186757 1.826060467901782 1.443407381117904 1.880962366071699 
+1.988490951109197 1.884418777917566 1.960438420096021 1.689378867367639 
+1.104473308478362 1.172372483689915 1.659145654122805 1.609687537477636 
+1.482821606583914 1.381899620186154 1.818378347061182 1.359440101752451 
+1.612965746242507 1.134508133539591 1.704589914026007 1.970228705481614 
+1.151918637191514 1.987565177818917 1.679732553383051 1.744342206680546 
+1.354214427391290 1.954514314877655 1.888025156713382 1.089873408339493 
+1.910410513743287 1.756898990457415 1.783192501589780 1.744271974759631 
+1.641634829834598 1.460781477020485 1.085146660894919 1.126718335235908 
+1.491324748038888 1.429305627898091 1.150433300660570 1.022335509137852 
+1.160002690142829 1.431736205324860 1.452773060296226 1.795516161299469 
+1.097854723917131 1.589841954655803 1.749319160595588 1.366558951432918 
+1.962494655442923 1.632965678803670 1.854873615313054 1.229663327277940 
+1.157517144737282 1.325369651044827 1.769557584727588 1.244903625327172 
+1.415728419138258 1.592467344181588 1.226270871138669 1.558481828392696 
+1.713259356153161 1.798693289537898 1.234687876275893 1.328831700334748 
+1.009323877561991 1.744469074143486 1.317715444268682 1.041985542271969 
+1.218720898029350 1.815028453285233 1.190657670553070 1.199998370581284 
Index: /Daodan/MSVC/dSFMT/dSFMT.216091.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.216091.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.216091.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-216091:1890-23:bf7df7fefcfff-e7ffffef737ff
+init_gen_rand(0) generated randoms [1, 2)
+1.848467254476375 1.413646507199983 1.486591408942830 1.582156975025284 
+1.928663459302914 1.365649297758669 1.553823796912988 1.070252440573769 
+1.342997361876896 1.971968352928051 1.104029745399673 1.727216770264476 
+1.521799537715507 1.901292860092291 1.054964696616300 1.941063534906325 
+1.788141955539347 1.042960614789731 1.329540227457644 1.724792614468878 
+1.440073232343123 1.927067069955966 1.982483179743308 1.894374935592721 
+1.360524152702494 1.761997815102387 1.640250967948384 1.266317222540520 
+1.497821000710895 1.199955916166317 1.879437507851219 1.434342511159573 
+1.195374814029444 1.271877130095866 1.782997702436250 1.088347654998578 
+1.589886150113936 1.941490308043732 1.414405934949339 1.282559281450397 
+1.875612171625860 1.068172261049346 1.456145964818905 1.523643935840261 
+1.576642256569070 1.133883269540760 1.193093603383323 1.526071939591615 
+1.144157269300303 1.536030577882173 1.751419325575724 1.082540234283470 
+1.499243008051425 1.328223565931809 1.403495353736482 1.622680828048624 
+1.748177280897948 1.235034758809158 1.111641085252639 1.064557055174546 
+1.535936310645634 1.146841667496177 1.830393526592010 1.619664218670200 
+1.987350219993992 1.730178676371754 1.500888096967343 1.073747406700099 
+1.483694399271042 1.778460907009928 1.935910794317768 1.074471486744545 
+1.333647015895186 1.915308210060330 1.265275316400608 1.300642200155567 
+1.204662573242234 1.071837156283215 1.831075591343708 1.365922942376508 
+1.616545323897471 1.544716686877383 1.651533731505595 1.344867744932714 
+1.735322566381396 1.892841427343034 1.370238812443395 1.014039833899885 
+1.836637527593795 1.434204904966728 1.461928830280002 1.604489180788008 
+1.861721512672435 1.795804045093119 1.874127988181947 1.814764991707060 
+1.670857108680692 1.063027482804260 1.866242184293864 1.741214591128152 
+1.608298449453732 1.364548467556042 1.265311995443375 1.202485753767740 
+1.105164977214229 1.605220796790360 1.966653781059469 1.076501517194409 
+1.196487384462723 1.930174926509619 1.010252518034171 1.907888403567843 
+1.643609368889463 1.724911385958329 1.618359552473745 1.056281739202127 
+1.729943124848385 1.186804430764710 1.281863537276096 1.298924586084944 
+1.362976605153079 1.633835469907617 1.405288389636586 1.524425788830896 
+1.160572309717119 1.769540896740422 1.797305049633502 1.600483095922723 
+1.546241465610289 1.839654751934394 1.037000372242251 1.002224388436491 
+1.602697358253729 1.612760003125051 1.174842061347885 1.467493901069458 
+1.817203491698823 1.413516418481652 1.059353467646578 1.115511242269768 
+1.697313463687865 1.677696253543269 1.308126238664178 1.817357629094180 
+1.780753234994592 1.214291658572810 1.679967311099387 1.897681370479436 
+1.360399212194590 1.184185033544090 1.488226350474195 1.179958729565358 
+1.819219635541138 1.812362013663193 1.317182694388149 1.999844363813909 
+1.635466058116392 1.427431368450090 1.820559476367502 1.304839881853255 
+1.297051265705199 1.043806308974771 1.110731646375552 1.189906545791134 
+1.888236692355726 1.329934582483033 1.582914881538315 1.826128054486642 
+1.641107435448709 1.900913041588195 1.402869588331303 1.829572665135907 
+1.681390401069029 1.828921545085240 1.975293974720459 1.664753506204267 
+1.553174300186583 1.752285981886077 1.274026989546092 1.314937682777009 
+1.015494949803171 1.432262250627398 1.022999267001165 1.227405793556915 
+1.594108577648638 1.045948607572019 1.538448853658540 1.748920083804134 
+1.239204169445001 1.887692687474385 1.437861571186185 1.429052983876756 
+1.318734380609846 1.782981677342497 1.313501058124037 1.597412857190437 
+1.502242446836069 1.329349538046997 1.256449798007034 1.220746386758553 
+1.756373988360542 1.771530772728523 1.794978951201227 1.113252103906230 
+1.710033647828802 1.985248510936645 1.254869289167365 1.645974495906533 
+1.150774622701751 1.235076085315419 1.956830009465453 1.010899751443741 
+1.091390485256365 1.856056619059222 1.772103081458840 1.163029363506368 
+1.225666368864142 1.585169686482933 1.211654125068939 1.945537259290063 
+1.414131633956851 1.917071434673266 1.852022583798350 1.854542213704559 
+1.154550523608037 1.991063266164562 1.561831329129090 1.522530699071398 
+1.555694998562677 1.938659456106456 1.910848650707949 1.259368344637424 
+1.736976286403674 1.380514249817916 1.948759297790434 1.637162439277861 
+1.777781323459107 1.262193986777428 1.953753909574019 1.967819833358350 
+1.333998361635991 1.268288559342087 1.919102415983830 1.353924528300993 
+1.521654581287972 1.784679380722760 1.939327532509582 1.448795394360936 
+1.202919694145655 1.418621774932111 1.976924982057937 1.583381515943884 
+1.939936210885317 1.535302554512654 1.801055130911129 1.532403311176418 
+1.407753637505145 1.764808978995798 1.713031594580243 1.723591947732191 
+1.760884495729695 1.418594747905295 1.694249838161380 1.974695996286740 
+1.093066526051511 1.914609109953002 1.937073560360947 1.464859021882694 
+1.488432189763022 1.773016633014491 1.610551263811991 1.973564862807720 
+1.712033892985011 1.567953953432422 1.098372783852470 1.499639984510572 
+1.822579691766347 1.993447538208815 1.466333187292766 1.333788292813237 
+1.980991701560077 1.366996817052273 1.475282441795610 1.260031994500357 
+1.558888604151847 1.432140184078984 1.054837799585252 1.985109646703056 
+1.561350049014243 1.765616902090727 1.304507704674923 1.325082461762529 
+1.168443037796762 1.358053259822098 1.470162022150833 1.976869428431836 
+1.502047101574287 1.191848770092319 1.571261927791278 1.364486304351789 
+1.820451770694380 1.423957814304942 1.190672492643885 1.097285707148421 
+1.550131972818452 1.330603902977912 1.403153179252016 1.099967847985130 
+1.862952653914653 1.296251985972654 1.067810263180458 1.763906348892876 
+1.754056416766985 1.193231677614750 1.023416170297428 1.249448454771059 
+1.796077454380822 1.484840404600406 1.737139687232643 1.814778543363810 
+1.885726988249531 1.531546919423912 1.198936452816156 1.108350928554964 
+1.114213553051259 1.329746376787584 1.019244160138480 1.829771407992997 
+1.422288784847567 1.544604609146529 1.034637825707675 1.029309784971147 
+1.677175182152052 1.366639274659886 1.217323281337418 1.063927840839158 
+1.581804527440522 1.709146726218119 1.255667618244107 1.024878249661689 
+1.419288768630128 1.965718938328652 1.998256020558030 1.095510355386276 
+1.921956683011093 1.063709840435018 1.881628806447716 1.247384574612814 
+1.841807299608195 1.875648681468318 1.870039121425045 1.779182720530192 
+1.713855658855294 1.750235381483022 1.584583870983380 1.303799993198072 
+1.552601151027807 1.361614971042517 1.740074725730834 1.847853672871976 
+1.984142675572492 1.135265143068917 1.338337312324684 1.271734904329274 
+1.706108817861284 1.860695366709189 1.928000443330905 1.468951394029203 
+1.613807590499913 1.580643853026915 1.001263885545529 1.662211251758897 
+1.340093646636056 1.204624910178750 1.272661687673324 1.925995823734842 
+1.024199636856006 1.829611913882016 1.180110462655705 1.134135162324921 
+1.267987514297951 1.095935054050599 1.828431125478173 1.446403128744451 
+1.293927473396554 1.320264129458509 1.149724592451475 1.800024604240432 
+1.547797032805488 1.283940507958697 1.066401564305626 1.953108656830700 
+1.732539318417920 1.634935292808852 1.925560214548403 1.480499561400038 
+1.811807005977871 1.990124558665260 1.183095849012262 1.830333420587986 
+1.790075012116252 1.780788056735954 1.347558576004775 1.780721445717214 
+1.147275066247823 1.287362002241959 1.299488613440968 1.373721334724588 
+1.594524205310986 1.612029955930617 1.129006342119745 1.589517780682617 
+1.614224546837062 1.251512869425125 1.658559939256009 1.263804311123573 
+1.142564520559044 1.689838431329295 1.504052894185325 1.957274801412417 
+1.423473913200679 1.408454125267039 1.201991268905376 1.105445919610385 
+1.518225293345567 1.545388246959820 1.156417896568430 1.676578720934353 
+1.388969352058015 1.799097172599622 1.054806873131328 1.301104228827254 
+1.455185531935904 1.185529722848836 1.133282581034055 1.835817778639539 
+1.492759825700545 1.357424290851513 1.441275210619495 1.107769289454361 
+1.713226141975018 1.269355283928013 1.803665485743266 1.291492370606179 
+1.664801105723332 1.469195323592366 1.794552172097407 1.537946122599134 
+1.102964823934536 1.573265696280741 1.779168033861834 1.368719231567462 
+1.425104838454494 1.809878637999325 1.054898220068434 1.991464695299640 
+1.974067627632900 1.913380922585140 1.141482186947387 1.055473978060164 
+1.451905701977905 1.113188016866391 1.895717776456796 1.072029956737878 
+1.237005272108606 1.519603619114424 1.788054786554059 1.104310853957366 
+1.491148365537691 1.861863549063425 1.383641745339817 1.034285762541103 
+1.800323776410059 1.903442990011120 1.232012272055221 1.643543482447586 
+1.809074411938042 1.819721548536447 1.817993933433675 1.083545282091565 
+1.932596176785272 1.947370136295863 1.007259606424830 1.789139580803170 
+1.792701759151172 1.993840863220286 1.282506918396856 1.052567506202104 
+1.300248615315767 1.366880166377746 1.231926732742517 1.410133231921199 
+1.075284000773215 1.133491371628506 1.258280975816434 1.435172173361071 
+1.443711822281960 1.241431750239971 1.567184444167907 1.750391317413616 
+1.473131009752213 1.850549741938762 1.276716823896889 1.616227606313335 
+1.072834462928456 1.150031183052586 1.534847050236935 1.889317933508202 
+1.052641400663603 1.869999532041946 1.637407736504642 1.272204884120451 
+1.200547055896243 1.359085802141009 1.507578931239907 1.037842739525004 
+1.944141077444022 1.949742832035695 1.711061628996259 1.987268015632767 
+1.460816479848115 1.029543972109594 1.508169921029270 1.508914160970400 
+1.813173956096235 1.625246046256174 1.676267899152754 1.603229002038086 
+1.321791047202794 1.903659904807441 1.222019326792049 1.107928346297830 
+1.845653821448308 1.852877209448181 1.298057065614667 1.443523953161013 
+1.320011165968371 1.278637938524116 1.265456231395134 1.564216757267548 
+1.344711332496700 1.203387123159458 1.516274577696954 1.304973652131553 
+1.380991415264426 1.514695927040961 1.708758195393148 1.078104922682024 
+1.724651137643749 1.288641103931958 1.923758155756750 1.299966692001401 
+1.428319069704500 1.094374010003805 1.658970947355892 1.791552719166847 
+1.193386393962695 1.135109068621173 1.581159297969422 1.847247652427429 
+1.325778790169725 1.599503996450687 1.769962838319783 1.482159684776906 
+1.349634083972409 1.926638420533643 1.113017967790575 1.383074704457550 
+1.227126637705007 1.558751172476298 1.245119559852659 1.397774594821210 
+1.158110568296399 1.500028714948006 1.751218515114664 1.287133235447640 
+1.633854072024343 1.268925256574264 1.113604615703223 1.955050495563914 
+1.265367467029368 1.389913926204144 1.827634249642710 1.603107981219371 
+1.622122153442718 1.863358949314922 1.600393762333191 1.054086207402668 
+1.472894584434610 1.571944100541853 1.806414080791153 1.001036278923098 
+1.493424430670128 1.797583245547925 1.151261849559428 1.727665171920418 
+1.217825484003723 1.807122465745811 1.635590147118382 1.071424457024244 
+1.509106709557988 1.062092626890958 1.590203513720329 1.805388540773460 
+1.149057744684063 1.335778212345017 1.939822444486659 1.081234129116206 
+1.904330996595856 1.629128379155514 1.125422101728917 1.237573689104824 
+1.765106066753541 1.814877324977632 1.010349617646155 1.301502796077732 
+1.214291127080035 1.344954789241075 1.563495740754962 1.897057000885470 
+1.994418312663590 1.732063983316156 1.642444525527694 1.275433844853439 
+1.687437563727868 1.980179524069724 1.782169517336145 1.700124677778206 
+1.231520190864881 1.131365938047955 1.104493598520274 1.753570617800513 
+1.298963225745307 1.137359718417939 1.386991155011890 1.967191606720880 
+1.941355565939564 1.085261371590878 1.528545898678147 1.713983410330627 
+1.278281265391050 1.183309031720896 1.438754364023618 1.318178145445306 
+1.334304127762194 1.816729996181200 1.574417577574401 1.328657753822369 
+1.775260868109317 1.012031793322830 1.145133384145651 1.304565526768300 
+1.920722419843525 1.794324295214877 1.822891041278110 1.899479453484409 
+1.585826348057518 1.832383208775576 1.479580705612696 1.247272965254616 
+1.493920427857737 1.394406539592612 1.635813596211846 1.618490885287262 
+1.915975475877043 1.028538347726287 1.689132706478199 1.451922526074067 
+1.852322489657847 1.424796337393109 1.356286629404326 1.233374938754647 
+1.531662933115028 1.729477650996980 1.742700409181478 1.498798475058840 
+1.900663667092671 1.799176964191759 1.441000084043323 1.872805379352668 
+1.514986321110995 1.071668200669344 1.178506998527725 1.625194332312545 
+1.201170758065269 1.743642298040007 1.548410803304781 1.389393434122058 
+1.863885702108201 1.590079111818110 1.064047918599461 1.412171506426023 
+1.432435519143295 1.660380732824329 1.837534088188649 1.448287627567956 
+1.105973179533251 1.845912094917588 1.925524455619763 1.750641131829945 
+1.551575746212836 1.568314059588670 1.660119447102055 1.371095235390633 
+1.787044118623718 1.895528895309857 1.904517861096380 1.416299994709810 
+1.662208232209790 1.505074494583781 1.229714096490946 1.534745165362285 
+1.926063036363354 1.062810474232901 1.624811600410639 1.331240317445436 
+1.233168440120127 1.707806655370234 1.476381206126949 1.002946546684049 
+1.265371997860834 1.304834819677766 1.652057937116650 1.887782842719098 
+1.142152519086429 1.629169741875882 1.478425956465875 1.710804018309789 
+1.308155650183209 1.313701965518697 1.199385498885641 1.023407569050577 
+1.497836534916722 1.906094568664906 1.614733983151418 1.307449527774341 
+1.700540076681018 1.368991261495733 1.144217395615668 1.289799288159701 
+1.205512774861603 1.620050771151365 1.806148692901269 1.842668063789560 
+1.578926476860296 1.403795576203796 1.903156860797489 1.547566393514336 
+1.546921151070708 1.046753504227872 1.730494981658531 1.503971637885421 
+1.677892945004507 1.419511322593570 1.514377497247059 1.679135321979174 
+1.525336851129779 1.651716102043123 1.149631528801735 1.735587874920057 
+1.682865819771921 1.080575506866710 1.262865881837526 1.211999227447540 
+1.148119259317062 1.275660849629562 1.907177992208617 1.975854704643648 
+1.302038153972521 1.327980768236603 1.528678141384157 1.521160843757748 
+1.016157185211762 1.856336177550851 1.913425069329759 1.702506896476217 
+1.329850953958530 1.140993777029056 1.711351035072626 1.836313118293638 
+1.951476892686832 1.943847373690062 1.589803461541619 1.685653071402389 
+1.267335954715106 1.497211268214195 1.067161389614574 1.265997155294626 
+1.515661671343077 1.216194089297711 1.390157408048158 1.828227424592601 
+1.869886321936070 1.950993066487041 1.249102263625843 1.484711730998608 
+1.779572892642209 1.558230646545254 1.902493831342185 1.313336203354948 
+1.580624746307062 1.304464160495402 1.748494152323140 1.531850536503646 
+1.158788666585984 1.030867506286160 1.540460285866875 1.675642239994170 
+1.408849133816752 1.853595756968608 1.779810015695211 1.784089354334266 
+1.975594462235271 1.424926846852464 1.938126293273768 1.974358282277574 
+1.324873312404115 1.445920274338774 1.513179259976949 1.896166047259977 
+1.683225543748981 1.071295180142300 1.373449777811923 1.865659779094616 
+1.447794484873529 1.593838728319071 1.029265154414524 1.596136894507271 
+1.693123456063365 1.902935302244701 1.278994811048086 1.332022957674296 
+1.630018986113141 1.283545757326709 1.799020240629505 1.889108188220282 
+1.247602199164696 1.271763622244886 1.425098555810835 1.427637742081486 
+1.634420421836374 1.399359151616814 1.904198001958255 1.072862979898203 
+1.973117308376692 1.007322762629640 1.635967700956840 1.456052255334970 
+1.547610303619546 1.685643128661972 1.309966943978200 1.572992982615395 
+1.354510134084093 1.303849102908424 1.019176235718150 1.291238515750908 
+1.238487038034124 1.867707483516473 1.991133404485305 1.586120567413309 
+1.133164054173335 1.156160669638013 1.270508114976882 1.646758537154722 
+1.813452984775382 1.770217584338686 1.902501094589370 1.796347440693582 
+1.055593875256988 1.339776706843032 1.435713302590152 1.589304777053493 
+1.892818718059509 1.135126532931632 1.641655249215132 1.945263728385838 
+1.802041071479574 1.641266975147099 1.530467811989009 1.228829575801923 
+1.037950411365436 1.469651981313634 1.989863504437006 1.867570258653296 
+1.356565507265900 1.993950057530074 1.237828056200764 1.281069961878382 
+1.558049124777438 1.237083956206037 1.717072699747740 1.999960078231193 
+1.277545831069337 1.605411552873221 1.951986352540096 1.059462467319930 
+1.865740264266044 1.868142931895766 1.503690481134763 1.241104604062142 
+1.462838863816678 1.289371153793762 1.368807184726189 1.974723388048534 
+1.156789060902841 1.621108209448255 1.843462503643772 1.374481204835013 
+1.778953283967244 1.202092752469816 1.382863611657997 1.985730058266179 
+1.430793982737840 1.658418182625599 1.254696848719273 1.853940696977382 
+1.912994816938734 1.580728293627215 1.445187627575661 1.225202366869176 
+1.624444580422629 1.158685179403014 1.595081455126158 1.421727525153982 
+1.348668459268461 1.225105228056473 1.167987591515965 1.543377949954245 
+1.913473251812762 1.068862793906259 1.393445214225584 1.224097484982454 
+1.136578480166030 1.530148654040514 1.145166125717126 1.720467021177430 
+1.887016368322482 1.705976998788378 1.744863822405702 1.522047778970177 
+1.779766675859374 1.778804859717097 1.140971031477162 1.643763336811643 
+1.312294423143367 1.163175467982419 1.684766976605177 1.955776284432342 
+1.962267371267668 1.217363781495556 1.098398906477739 1.193075202886676 
+1.039579799340436 1.828367849730402 1.640188506770148 1.283889278308507 
+1.384332552636102 1.798193390366419 1.559897405875410 1.454310604705065 
+1.296262338711776 1.294373042818044 1.967002733458247 1.989466715299275 
+1.077720947562296 1.600390139604202 1.530726169271047 1.607848147375653 
+1.467433891541293 1.601680870611710 1.067004220970051 1.494538039443192 
+1.047714202290918 1.748109415248243 1.535172394787384 1.970013914720250 
+1.813463303128258 1.227904153533871 1.123088637888006 1.069964695339814 
+1.492131560436642 1.437614606460966 1.377227182290168 1.656394366986875 
+1.731967358087529 1.577117694169962 1.260093325721778 1.375491161295490 
+1.013811550239444 1.395363435145228 1.993745444563872 1.174086059044503 
+1.508525310709437 1.324943180960664 1.205378417140666 1.169420588916052 
+1.665537747751983 1.635983901189031 1.879591759977799 1.062765801016780 
+init_gen_rand(0) generated randoms [0, 1)
+0.848467254476375 0.413646507199983 0.486591408942830 0.582156975025284 
+0.928663459302914 0.365649297758669 0.553823796912988 0.070252440573769 
+0.342997361876896 0.971968352928051 0.104029745399673 0.727216770264476 
+init_gen_rand(1) generated randoms (0, 1]
+0.748293174711806 0.571559596236355 0.605449252511300 0.924790087049302 
+0.432668914877712 0.484528049554209 0.583985876961072 0.902604870753081 
+0.508513467184131 0.037246543116071 0.506215060982769 0.084759451676836 
+init_gen_rand(2) generated randoms (0, 1)
+0.177597622485633 0.280725302450640 0.691476536784555 0.674526436218482 
+0.085567171686030 0.630864738252637 0.730705882297407 0.557424024173655 
+0.732776059694373 0.284263090359834 0.262067699892716 0.494287683239405 
+init_gen_rand(3) generated randoms [1, 2)
+1.072342045146711 1.869169978342095 1.431380333949552 1.204911096414455 
+1.850506758528621 1.263179494162272 1.011312397015561 1.937576928860709 
+1.656298194634011 1.555055514657424 1.946310040529188 1.714119181598159 
+init_gen_rand(4) generated randoms [0, 1)
+0.077725191809740 0.780831587728510 0.772916025794393 0.068834288045967 
+0.421741118568716 0.467602893283273 0.549356513331837 0.609045342181351 
+0.316447786909831 0.506324930125674 0.692614149697598 0.214725533634785 
+init_gen_rand(5) generated randoms (0, 1]
+0.942151360752866 0.188274482907469 0.142862007276750 0.011090370489097 
+0.248646021404350 0.523284252896761 0.125414699807547 0.515195642656920 
+0.416841787731485 0.247377326768320 0.651179610091391 0.587075719922914 
+init_gen_rand(6) generated randoms (0, 1)
+0.579697104608467 0.165958379308153 0.198000725840494 0.294349512679861 
+0.835771252296934 0.683173513898513 0.099256139321365 0.096631663627321 
+0.258821348138430 0.217743929078501 0.803121448664250 0.823271578568309 
+init_gen_rand(7) generated randoms [1, 2)
+1.577177423327097 1.992616620422174 1.351753398794903 1.011685522155414 
+1.619239721758005 1.081964169535228 1.248044517974649 1.531131778272782 
+1.881988795840629 1.232761654869638 1.142276023151095 1.422607831847451 
+init_gen_rand(8) generated randoms [0, 1)
+0.059436806120502 0.337837796528772 0.103400163156252 0.775682358808069 
+0.562064743882912 0.870522826397812 0.788248303409689 0.917823820829051 
+0.775176460689182 0.152266463536411 0.357386177658874 0.534079736745382 
+init_gen_rand(9) generated randoms (0, 1]
+0.388683205886998 0.059302126317897 0.702595111719539 0.560080208899014 
+0.350277445694358 0.382128590129136 0.530399903358921 0.557342101717063 
+0.465835513315297 0.813352644039902 0.395308304126997 0.428716670539496 
+init_gen_rand(10) generated randoms (0, 1)
+0.796037476772650 0.610610187621779 0.783983615969344 0.143872144247263 
+0.654987701249681 0.889781055329549 0.506771420516338 0.813053248461107 
+0.991351273609536 0.353630081109741 0.267949932391627 0.699471255455680 
+init_gen_rand(11) generated randoms [1, 2)
+1.010909887724959 1.656572324783382 1.288180869531875 1.859992410126781 
+1.184455714951074 1.271250282370553 1.370058317035991 1.146161056060378 
+1.762975124236752 1.292544396490388 1.563704373603145 1.075576480370063 
+init_gen_rand(12) generated randoms [0, 1)
+0.708383497604256 0.730761040301503 0.334024805341733 0.746039944710053 
+0.915819369452250 0.812924564430275 0.791601145987631 0.001035589604235 
+0.571132327007641 0.059230871600088 0.711408220363501 0.675261294841229 
+init_gen_rand(13) generated randoms (0, 1]
+0.880581902659550 0.837876587429329 0.485498548768492 0.327498204148388 
+0.586264215522657 0.414846774119610 0.825470981313036 0.359061896129010 
+0.087552125884303 0.740101842457331 0.309351543052519 0.728066209421850 
+init_gen_rand(14) generated randoms (0, 1)
+0.923138726624952 0.469532766594497 0.632270259481927 0.205564610552960 
+0.927082076237906 0.299224699383825 0.359578503156918 0.490402305874778 
+0.728615693055077 0.312558190624747 0.359781675794546 0.752836816563380 
+init_gen_rand(15) generated randoms [1, 2)
+1.140627479020712 1.084786158536458 1.132239343463171 1.350307546397862 
+1.380563763202770 1.351370307172073 1.264541047094480 1.346744433657995 
+1.407373921619129 1.001373684886554 1.213052611255335 1.886710415587364 
+init_gen_rand(16) generated randoms [0, 1)
+0.360858921657210 0.729078653124164 0.901910061120294 0.737918552985219 
+0.794263888042076 0.806223468587332 0.974052290398341 0.658750204624069 
+0.616887118950641 0.529467140662471 0.248762815602353 0.262824301133219 
+init_gen_rand(17) generated randoms (0, 1]
+0.031203383632855 0.688536004862123 0.230036913486180 0.207170199851598 
+0.588672815313508 0.836797870585944 0.207522798388149 0.329127118654156 
+0.432391662554202 0.685332978151205 0.107134687508995 0.652511082310657 
+init_gen_rand(18) generated randoms (0, 1)
+0.124163134096911 0.195010389501341 0.633799000387237 0.066310451867196 
+0.302639065333798 0.997730856377200 0.705770245505459 0.266586450558278 
+0.302145991358288 0.485848525384480 0.377247864710428 0.211284546780617 
+init_gen_rand(19) generated randoms [1, 2)
+1.337567399824463 1.486694566841658 1.304594295729453 1.704142159671544 
+1.243635859376063 1.194462526403072 1.035988944153486 1.212208650426627 
+1.397920098341323 1.882254395400537 1.117078744617056 1.434100253869732 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.246747774742146 1.089622676095007 1.070108854437680 1.964917211249136 
+1.604976121195500 1.921620695385796 1.028172357944030 1.891341799961428 
+1.206476747849807 1.353285236019887 1.097654747408200 1.169088237568662 
+1.106349656020360 1.751000551101964 1.636830261631439 1.253913856232047 
+1.626135872244132 1.239404243143574 1.834246900844735 1.980679436647909 
+1.066968127209365 1.426191806463819 1.699650094677764 1.423896251537213 
+1.020462734575249 1.659742340023787 1.409858079869516 1.460390791134137 
+1.415373790749087 1.168510013053838 1.450097296460212 1.203588830490063 
+1.920045206875726 1.267616696246712 1.438247258135656 1.510976280350812 
+1.572362707738103 1.884645692738128 1.213817008168199 1.493930687491293 
+1.007311516469739 1.680527461068050 1.799339631185152 1.973352983402400 
+1.634588524029121 1.841898788668807 1.655958572826263 1.823884401831672 
+1.879612805399188 1.064178524105620 1.777239915619416 1.200620390408526 
+1.818089432824143 1.098246136104746 1.844246554272654 1.702541446900277 
+1.311996246741566 1.117326682562366 1.031861140292819 1.965187274522141 
+1.712673195809072 1.922114970769024 1.711774411145741 1.445379341836892 
+1.182199546699369 1.502334881576935 1.486685319452376 1.223027668710166 
+1.852605550320296 1.567164442135549 1.378197080280261 1.026308393517515 
+1.259360128366031 1.823936911813945 1.847456430028984 1.009419557698341 
+1.914174808369485 1.923911843232083 1.446241927853045 1.776308493348913 
+1.725321018495403 1.952100250315733 1.688339159184218 1.365614662907379 
+1.674116163232206 1.234419156102413 1.814374113878840 1.140366295506915 
+1.514871172702394 1.118393377458597 1.290426082803473 1.222944886722505 
+1.826834044501723 1.396246238251131 1.212065410147424 1.356388388420397 
+1.808129018395050 1.125659626729832 1.970071982108214 1.182699790306369 
+1.984538583754649 1.392779234709213 1.869646779382152 1.802066504846666 
+1.468516527869193 1.317383513640626 1.836451860685953 1.038276441998059 
+1.629604893625866 1.773840351889328 1.227643404513550 1.579636341266551 
+1.725763988598120 1.311060527454857 1.324785827329836 1.035019659224858 
+1.341746440894966 1.640376867228372 1.130950281342659 1.858227044381629 
+1.228885546233267 1.607962378441830 1.433480633702040 1.038717707214067 
+1.517580979998634 1.192830030117280 1.978844374146888 1.333836262713878 
+1.305653349303539 1.609659482923329 1.022743360396740 1.877529235385478 
+1.095472031188296 1.046224149227840 1.800777216252122 1.859700290288440 
+1.001167769264055 1.635978690948701 1.847785986387212 1.703577727326513 
+1.645441369498422 1.522330852191369 1.382401957930154 1.362847163428139 
+1.454306093314134 1.434586684435087 1.657035560441385 1.436053310816314 
+1.961011381362304 1.497236563550862 1.103429387878485 1.686981340613507 
+1.807068663041765 1.406308365607245 1.057063694647903 1.300816334961952 
+1.368655877530672 1.905259204714573 1.983949615711257 1.977725378421358 
+1.809452879835535 1.833930845732148 1.875923782689179 1.242293460428454 
+1.605123556984266 1.304191866867243 1.892516739330635 1.186991111237832 
+1.754301729373430 1.286559068560441 1.560445197037331 1.103100157506431 
+1.516504596806812 1.087537092620105 1.856500998394519 1.468772489166972 
+1.576789291845453 1.365035814346254 1.806390090976808 1.418618579277013 
+1.725712917179043 1.517757627034955 1.145661041109843 1.809852569111134 
+1.595790819929010 1.121868597939988 1.698009372157292 1.445944065756488 
+1.878395868194682 1.382742063578436 1.822360273529616 1.880465439769059 
+1.534539385531257 1.598491530475667 1.489032358962346 1.053279382397937 
+1.148371143777053 1.690895138353961 1.836166213639795 1.801812007723806 
+1.386572518890976 1.732574913048254 1.426905152832245 1.816738958523237 
+1.345018970775926 1.981549364975540 1.791079241656719 1.270279265570067 
+1.053517909455611 1.023154578970919 1.321059113865780 1.036235325950154 
+1.191245411827326 1.164539562431813 1.734285074215830 1.918438810307094 
+1.596878215232360 1.324063871634835 1.491568845917612 1.291970863263082 
+1.300005890453702 1.892234166456264 1.575986676671420 1.348789746127030 
+1.919080700523489 1.337798809615817 1.565208805268868 1.042731747438390 
+1.253904244600330 1.069249603967820 1.275701121294194 1.942520413517033 
+1.095276506696531 1.743193715605574 1.877395866377903 1.776796526151240 
+1.913006829358848 1.483152889580646 1.163448020494171 1.892637641313414 
+1.789255361253957 1.291210465828043 1.138719589997298 1.327800104779866 
+1.847635613373942 1.637544661008610 1.261468254711499 1.250000329736559 
+1.950092951262604 1.852988689903144 1.021958169847852 1.711810510453825 
+1.742702397833662 1.555099915464264 1.549487625979217 1.043486323065251 
+1.236280301147231 1.404442020337437 1.147496772905185 1.870129243963710 
+1.172405186945963 1.312455063952392 1.588512959673784 1.505724106639981 
+1.266504064322961 1.132440497354813 1.290734173961010 1.961184657764771 
+1.395382989942237 1.654238485219539 1.478074655530528 1.443494567334862 
+1.447085819552496 1.467013319674623 1.020829217410226 1.025662534966688 
+1.521626424941450 1.040924024806909 1.254361606003908 1.107719151740611 
+1.445229043386487 1.250211777256812 1.680782765362030 1.121524193755820 
+1.935972750472973 1.155569975541081 1.898472125726398 1.509926171782578 
+1.698890669321317 1.366774191358256 1.151808155616477 1.782166817108937 
+1.226553646947348 1.069347821205697 1.833693522294618 1.432512653602170 
+1.511075659817916 1.003267858560811 1.325040750028753 1.914349758329058 
+1.755054969256080 1.752169841386109 1.965687318339088 1.512707302490216 
+1.008358034503223 1.913224657805635 1.144402220160839 1.044712075540217 
+1.193084089031765 1.035016664152614 1.859523545074675 1.457301935895251 
+1.901573911804699 1.037451442744667 1.224427306842381 1.033580582080941 
+1.226994861418036 1.559670604740678 1.421357204421726 1.619064747281903 
+1.969652683704088 1.660540279149122 1.376336404419654 1.950874749417204 
+1.876869976480199 1.194373140192182 1.853516448068086 1.186001129926908 
+1.298112293819283 1.462023697120899 1.029669574871385 1.457062612094039 
+1.460198997934840 1.759275913630912 1.124434714419326 1.925323718923653 
+1.496462515611224 1.794396148796924 1.411575661921491 1.698763205315283 
+1.635554356772074 1.088255288411432 1.757992698261872 1.222709820694001 
+1.609638651333461 1.120694854336601 1.080978073349925 1.115375772298506 
+1.303249562838755 1.588345056024346 1.452497772454541 1.455542459622491 
+1.809414751612509 1.017497149879041 1.410123211284692 1.363169632820978 
+1.074232506350014 1.598969483817793 1.795662221634191 1.293530577228787 
+1.258118201110084 1.915531349595283 1.709744394688880 1.607862937691244 
+1.230567612490937 1.074078606254323 1.745270111122983 1.018803182617851 
+1.375045775351281 1.418240205542850 1.799550275258485 1.748632589429305 
+1.407223229152294 1.833805520244408 1.705487962225546 1.770651641208965 
+1.755706823832220 1.313783204201247 1.023622497286685 1.698157793370371 
+1.090485685007099 1.831356083602916 1.072438344749820 1.111272361251149 
+1.705884261604759 1.763404123832329 1.008952111430893 1.366103988832965 
+1.345874883714461 1.267087866726612 1.407426209348827 1.406124735543579 
+1.927220269939461 1.442467943610004 1.307260832405269 1.419547842683403 
+1.133281500973082 1.533814499967374 1.940108284279039 1.420250372765933 
+1.855245671092246 1.596128900003848 1.765341217839264 1.283405046456018 
+1.952679502405818 1.025913936767292 1.536679862092701 1.067826752299131 
+1.191108781857283 1.397627510748078 1.892398317469322 1.898956422460110 
+1.020762514963809 1.301861241739923 1.351487923473452 1.825786581558610 
+1.750837480575075 1.108495531334718 1.948589569236652 1.452849429208222 
+1.822021263435507 1.144734038725686 1.478727906246861 1.432710962888081 
+1.340486118533224 1.749281217933977 1.988738064469774 1.425156163645729 
+1.204265615189401 1.991505226531610 1.943970105820902 1.462628929018138 
+1.958222412677390 1.747370195449850 1.477840557782157 1.033654552868531 
+1.263711679145693 1.935281488693692 1.308836629599359 1.510328187439446 
+1.913785157755237 1.047872380349516 1.063098289516293 1.035751152598909 
+1.225641938829284 1.216985535231074 1.430391904293923 1.135364887378451 
+1.365559032356388 1.188284875213967 1.056703241452347 1.753762803426515 
+1.344829725613997 1.796464325903699 1.242582015571276 1.482091269938059 
+1.297087293012631 1.183869003374392 1.944926348158641 1.428629867432615 
+1.763696302259241 1.767555656535678 1.678548220089324 1.132467180007420 
+1.752733203054424 1.260471451905153 1.030883914754379 1.023072233623546 
+1.752497413630413 1.979686665884028 1.142621537055024 1.625749161312937 
+1.077130252781467 1.779952230870626 1.076392714701174 1.016541315944592 
+1.395828519375269 1.331572274528246 1.185590257204612 1.830263631061701 
+1.504049880977906 1.563505164945812 1.555466553857345 1.694844819751495 
+1.761824577936921 1.785314587744963 1.561713459161957 1.811160759779971 
+1.924391291545427 1.740648347080152 1.208002807948779 1.148524419963856 
+1.360448405721395 1.565754819936825 1.499344760089908 1.787177229965341 
+1.835365080555517 1.673138475060649 1.622799129385051 1.360925749755971 
+1.513090208174837 1.867543091366104 1.393076632485242 1.155783114884515 
+1.193523169162207 1.677374754962221 1.450811210619069 1.135446430718603 
+1.765047676066514 1.456521842896033 1.651371223689353 1.284988317292792 
+1.426438651527518 1.661402750071348 1.016107817900900 1.191720330403284 
+1.609419707056811 1.032439807318556 1.358717285879164 1.653327854198417 
+1.472597877764103 1.849212226009748 1.089885607943852 1.202399537706118 
+1.533904727417445 1.439591817870957 1.889009348197313 1.715976332163337 
+1.744340666967145 1.878731271036846 1.362684060651424 1.827474564959836 
+1.095037603526691 1.727911148083737 1.004995464658523 1.051039093254808 
+1.698542597242142 1.431608232201947 1.923587004851167 1.600534250217957 
+1.894579735198360 1.505955675105260 1.062850905788499 1.197850481662286 
+1.270487375704570 1.738687998237901 1.821502410967621 1.002062041241719 
+1.704600152239203 1.646091408299792 1.758608876168866 1.520556134030359 
+1.979496127731057 1.987414220010912 1.412329987530851 1.580694714774733 
+1.496955465476858 1.834379548889591 1.630801480218074 1.141400494452686 
+1.504615237479867 1.447799516292896 1.384740292736792 1.722495083466870 
+1.561598958192095 1.483327663327761 1.744793804644268 1.194534588095221 
+1.695377322671657 1.550178560345767 1.735426122001416 1.068734616212431 
+1.396220674345740 1.962003683449234 1.746348978170742 1.396000040768648 
+1.382445252594545 1.723770213391048 1.692931083914775 1.418315054572416 
+1.536909833465423 1.709643843354439 1.832442468716341 1.604515736675146 
+1.877600643725453 1.506105302321834 1.258648022963914 1.300863511155632 
+1.303351167999621 1.486418567411937 1.773270234508292 1.024864083648557 
+1.729216596428779 1.150762894017037 1.926277804246047 1.070982213866333 
+1.269903089527592 1.801013162981281 1.384568368334980 1.241945297987581 
+1.798664101099659 1.883700094293681 1.614315908788731 1.948139499453480 
+1.104285449220247 1.624620286451043 1.299471231739730 1.894781201938052 
+1.780031740094485 1.182487861956311 1.413213758310569 1.267536042705205 
+1.586697560643315 1.327526645333856 1.780197815579493 1.076242933342799 
+1.370999086392849 1.318621798280845 1.290077685647185 1.392562502263931 
+1.731870331074649 1.933611990072879 1.447693678168242 1.744706158606836 
+1.029722713158012 1.845020446104295 1.521541797790933 1.234914040017756 
+1.982726911965706 1.931226203099526 1.275967383908218 1.384528915159825 
+1.704530258033106 1.494997701749475 1.706025722639531 1.252451704663117 
+1.607111094162025 1.414779870278190 1.924401297513008 1.108285786699605 
+1.148175087126172 1.940628763794665 1.400082053187583 1.962148389744986 
+1.514422663081638 1.392255043592508 1.779345353876851 1.385324864210962 
+1.553951149722213 1.709211071587212 1.818261032191549 1.244766613645636 
+1.863681747717624 1.305650428960893 1.914477943399687 1.315754912125453 
+1.080712890232410 1.763597187992667 1.878830085194240 1.270535967781273 
+1.538546967929058 1.146846377708287 1.186265964627766 1.132239427435081 
+1.077161252553147 1.086454353056605 1.726693559125902 1.996196724398714 
+1.177893851950845 1.663280227982953 1.725394326143633 1.260819573667209 
+1.422083937941010 1.015305830601435 1.510534749122176 1.780834988203947 
+1.393972803727461 1.351081737895114 1.950703259743596 1.799051211735944 
+1.966237826133739 1.427981678502292 1.796736015787586 1.520824225814064 
+1.314236272119663 1.600603005096202 1.088834740594584 1.290402754863105 
+1.606712920657130 1.475113784485465 1.354941858916995 1.376384441788930 
+1.418371242325086 1.888223114787256 1.069180025582086 1.242405535149783 
+1.409053837334081 1.931402278381825 1.939530208837921 1.746525883057177 
+1.945195136414332 1.957494962916269 1.512477559456630 1.045918124809440 
+1.073027705119322 1.867327816885074 1.400419603733035 1.603703450182768 
+1.548036744818463 1.301145255202690 1.587028421486808 1.566736705843264 
+1.179611896093273 1.026486371530291 1.083481276270549 1.069141432233054 
+1.308213631528146 1.035456425466793 1.353796734569187 1.046731798656432 
+1.557353307751884 1.169716697015254 1.369315172205007 1.044566561595006 
+1.378482412112908 1.919827861139176 1.374397670882495 1.453379756515403 
+1.129702039122521 1.353756883223401 1.142530650737744 1.732850042333084 
+1.068266874305402 1.806739106690037 1.012358270821464 1.729003099145676 
+1.487312911863516 1.609306513802266 1.318868643922602 1.681922223825248 
+1.060741521346629 1.666963693647110 1.808830256232590 1.745018016221230 
+1.823353576379259 1.106462475540144 1.438746725778336 1.834537513164278 
+1.094044466561246 1.448275016681042 1.100712594918860 1.916923072687394 
+1.074516945299704 1.348401182735936 1.383843635982828 1.901032341828874 
+1.584472216074462 1.661311318860667 1.927743306729124 1.633809749893142 
+1.469682983854567 1.160625527975747 1.898195877420813 1.912269053381780 
+1.503436306062041 1.690259715184005 1.146307061229182 1.464281646565299 
+1.718121011448032 1.421990313250646 1.974011221121255 1.992401938172454 
+1.791562909217541 1.856939366008160 1.242146242552062 1.892866152910651 
+1.574286759115356 1.798024056818556 1.286135504802609 1.047532202913059 
+1.822177073766584 1.989477731423176 1.068784493262080 1.024924842677742 
+1.397489582513191 1.129869661090935 1.792302319602411 1.682073136830482 
+1.311789683111150 1.608875169043125 1.311568974158141 1.064039755253747 
+1.822306693769929 1.372490897509662 1.714156354831783 1.911983972488762 
+1.333356157571632 1.679151595941971 1.707590422666709 1.912719763658034 
+1.182561733010513 1.991421015025233 1.930167211163836 1.174557378058114 
+1.605619520468181 1.993427711454107 1.668017521646954 1.537932805087877 
+1.010322897001442 1.777567613597222 1.520932907662713 1.087641147578513 
+1.706594394022526 1.751798463067216 1.126820494418608 1.554115851077859 
+1.754353382746146 1.903301736623598 1.970256908780097 1.136589151232212 
+1.360682852295625 1.163949965899347 1.744920119368963 1.040590448377190 
+1.195425425716227 1.358080475328208 1.522196412878959 1.670732963115459 
+1.160545530480844 1.142771681223105 1.281072528342700 1.968424390638478 
+1.611030445443875 1.478279414191403 1.201026435929492 1.506795846490067 
+1.121159553262947 1.162184743634599 1.239684652711392 1.964424779505773 
+1.246820907679197 1.595774048499814 1.728950036125017 1.543745260978458 
+1.381930499199445 1.128337883373127 1.760914751181767 1.275009889207934 
+1.369665380474196 1.667713348850262 1.489365736848955 1.826392908464683 
+1.000764589420647 1.060001596191278 1.729042067644688 1.958894371311550 
+1.296126085684161 1.605422524896382 1.886045819757301 1.576304631160329 
+1.572614267044004 1.809358879236889 1.942546333460252 1.368633764265255 
+1.601768752634722 1.052467511730554 1.489079625129863 1.759567979956253 
+1.900304952229348 1.717255340765387 1.804974929400679 1.437408880403653 
+1.690471662252494 1.871865048265703 1.340289115779279 1.896383392999387 
+1.926300151676511 1.871716999476833 1.075409998820217 1.432854958733403 
+1.750803498220743 1.907854707159261 1.318014768359511 1.687670712189428 
+1.718745507949109 1.382131105364142 1.207764877073622 1.600508688095469 
+1.289280235023373 1.440860211234241 1.235287360770560 1.430560997250397 
+1.712218752251454 1.891443860092156 1.725452173617591 1.717788141162083 
+1.670377747452523 1.677772357148117 1.772110417667500 1.834007884617612 
+1.580067446051692 1.428541466417971 1.042827156282621 1.144663977430993 
+1.312498703889054 1.435595566672437 1.433486269720449 1.694077594034579 
+1.446018255983255 1.350329770209832 1.692835917465969 1.975888626750183 
+1.478058702580039 1.322444879904513 1.059075301508523 1.390315709802462 
+1.607885437399009 1.318771878288185 1.077395129307662 1.241113559167150 
+1.242566549369527 1.895067176109858 1.916290479363756 1.800934775571491 
+1.609791702847475 1.318281718766185 1.815148560638851 1.326328516618031 
+1.264681887057231 1.385064033829478 1.521357980080982 1.380059544815746 
+1.857013089078149 1.886619368641185 1.633929927809354 1.941735333122537 
+1.751173928755649 1.998771008430376 1.108399069406367 1.653053583715047 
+1.655691691216263 1.955862694677940 1.585608790400481 1.136698829661633 
+1.088305744333428 1.041484854420677 1.813240624728635 1.120568238388001 
+1.724131291373220 1.655110352977377 1.932166883488261 1.725582998633882 
+1.998323760743795 1.445058075795679 1.056867512847792 1.520315778833940 
+1.847750236067012 1.273792857173885 1.307503983681181 1.368098176225868 
+1.048708931179002 1.656333054897895 1.635083547278148 1.278172971375943 
+1.687330611297693 1.596905858663836 1.409008364279818 1.557119878079247 
+1.070877299386357 1.266108762398767 1.477960425414008 1.376027086566695 
+1.188978036973607 1.009100781611738 1.157316035988728 1.594409391856388 
+1.745684891953775 1.642877241118183 1.710575727594374 1.041423408989276 
+1.129449888609752 1.930967419476117 1.086280556741177 1.857423070452897 
+1.485683112359584 1.163363257053314 1.767590155478622 1.291097497865956 
+1.855704708284300 1.983269871278367 1.222402629295948 1.714608302084104 
+1.892895620540965 1.932114694916309 1.271206686124588 1.182484458474745 
+1.436361358186384 1.331516909872078 1.838699669898663 1.972761435965452 
Index: /Daodan/MSVC/dSFMT/dSFMT.2203.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.2203.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.2203.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-2203:7-19:fdffff5edbfff-f77fffffffbfe
+init_gen_rand(0) generated randoms [1, 2)
+1.039141198330724 1.240142890878554 1.209955588717310 1.236112916061619 
+1.573609744512888 1.395123490651293 1.812094386786663 1.972142771907627 
+1.661852338311814 1.561535645334802 1.291263099916129 1.621868802307074 
+1.618862276935360 1.286680235491260 1.630336290806219 1.622808181142302 
+1.340478952876513 1.635899148001451 1.934891518138636 1.664728957674457 
+1.376596839337377 1.260305027552060 1.300023392297031 1.027457137824489 
+1.773860156177125 1.052104975387703 1.161615739474427 1.269062288287363 
+1.481232382795297 1.124416764731357 1.237628894562482 1.486659346107919 
+1.251379982798093 1.672013113935975 1.093610387659852 1.350243825722766 
+1.146393524114235 1.580896199099386 1.004750270363792 1.557555023187703 
+1.676226139103231 1.656508107343917 1.599699778073892 1.319138496244536 
+1.495540518468166 1.982369804737465 1.887250488865495 1.970358383417759 
+1.124824915359830 1.700449998809694 1.344854066773785 1.515288582218666 
+1.260774193213819 1.541441556143292 1.020669163814888 1.532664095046530 
+1.570925986791450 1.024123541250183 1.862414154465702 1.290885492363570 
+1.216591192505573 1.152376110484766 1.946991594033023 1.653426585431799 
+1.359196112755944 1.086165893587796 1.905402977668101 1.861245768166658 
+1.769055175307166 1.781874287131666 1.653327618143803 1.358340769109447 
+1.765941753454335 1.082046909408944 1.445006375938485 1.770700171178406 
+1.510795653846276 1.127259642161102 1.795920741414507 1.363365805420619 
+1.815682024224590 1.031687896128586 1.529937999487567 1.243497509089491 
+1.442519063938840 1.129085571763968 1.250959067379838 1.256214638626548 
+1.597661462604182 1.166505138313492 1.201693692846866 1.033383285967344 
+1.921222443542199 1.446306057817141 1.762047428923038 1.114756848815732 
+1.896993899128250 1.366049794020685 1.623608566294427 1.460276024800476 
+1.851980759218394 1.199955713778692 1.267872801243776 1.436985506663542 
+1.342260881226824 1.769399942039702 1.382411773282556 1.745162658334311 
+1.810842949017727 1.627314665918402 1.143240711251770 1.557089601352327 
+1.233888154340821 1.245403231835691 1.090855737858046 1.801766328614436 
+1.696157537891268 1.135393042593019 1.409252243199855 1.765876585245424 
+1.658751610478689 1.481542098536980 1.971694958309937 1.280166424454425 
+1.313649267405402 1.871486442381505 1.603258432378054 1.338790375319028 
+1.251436364277132 1.692319615182678 1.145579954301638 1.531877060273777 
+1.657767598551193 1.132540794723104 1.020007640229578 1.886126996483482 
+1.332917251008753 1.985111059814056 1.897321668560202 1.547226232278746 
+1.205889234604903 1.970890001596329 1.449374539199924 1.279536278425465 
+1.603104926120844 1.065256943212356 1.589646390284488 1.292619887933551 
+1.574247207802792 1.614691487037373 1.878914831579740 1.050366408125299 
+1.641521680977985 1.079935974675052 1.291052693384468 1.194273537419667 
+1.401869452424997 1.661373451573920 1.431137542785703 1.402824118569746 
+1.481349236292501 1.621794174116201 1.501477304776876 1.332844759837332 
+1.486335083034529 1.236472233363680 1.831410116896823 1.196111721419032 
+1.854608940478240 1.104980213294068 1.716938703482989 1.985121726609636 
+1.603388618564664 1.205856854926068 1.789465539161788 1.275657823514048 
+1.558950430886924 1.294652352349861 1.509894228687412 1.424926447867682 
+1.690561793281219 1.617662738155259 1.538548070679566 1.678656591046357 
+1.459567870872503 1.220274947328161 1.146299309938404 1.673399867690934 
+1.303948646900189 1.792844943620298 1.056920748545254 1.723449036318555 
+1.705218933066331 1.574271910435101 1.835672107865945 1.992808302928285 
+1.242456130256102 1.886546511700227 1.031645383822535 1.349407595477225 
+1.440922198509625 1.533300522502960 1.195258949275219 1.303323206604932 
+1.489108687998710 1.494041084695396 1.478720593524220 1.046062361667012 
+1.062305936564045 1.669161272966246 1.563059292810504 1.274026232513098 
+1.436540772921877 1.498955415290125 1.749111015929055 1.499913162686279 
+1.273075943610596 1.697363690914521 1.805133438000384 1.792761978553909 
+1.838214243212211 1.940056572782219 1.021642992943020 1.556482785794755 
+1.494706102646308 1.772730843989499 1.280842112460455 1.224167163922002 
+1.226885186588310 1.104409736495915 1.871341373089902 1.649628248949571 
+1.882227135317458 1.689596926282265 1.321100382465089 1.998791702175031 
+1.314051061924424 1.275092894388936 1.994265356687845 1.664665580059635 
+1.106243318423337 1.672585148249151 1.802549425178993 1.025987606396447 
+1.162275700155317 1.665839170980025 1.780647182928942 1.807880740465895 
+1.235095915914571 1.998773055796440 1.110075047171341 1.656413043901453 
+1.223762589436485 1.088904754682103 1.705785580606016 1.344509841879231 
+1.707784402029622 1.889867219977938 1.629164975460198 1.845456079067895 
+1.950947048573447 1.396942344243625 1.085791838348562 1.533643434214565 
+1.991976864923853 1.149730623835606 1.662050679587253 1.826296622198226 
+1.184546227898341 1.826151496614516 1.687991012201713 1.282464886563227 
+1.171400620040809 1.024202148632825 1.284936370483681 1.023054460866042 
+1.370537923875428 1.753225748905738 1.078193758978676 1.265905847334054 
+1.175639649816966 1.716328571113605 1.409385665049770 1.544216226585585 
+1.946605197756470 1.397830617147723 1.164399165724857 1.366486775827378 
+1.190837347431289 1.007850193638157 1.971957366134665 1.732468867192977 
+1.828991751940801 1.196687328540595 1.339957910287784 1.421693781497825 
+1.050078184445102 1.783339949476304 1.665659205188371 1.613372032043085 
+1.204619345991679 1.360397439230731 1.806080629429025 1.109668355328544 
+1.601109028774038 1.130764855332983 1.704282197396603 1.136505212014929 
+1.800064196009557 1.292426067337642 1.217416066122901 1.178981678305928 
+1.379727095082272 1.461526104603719 1.868431050268285 1.721936493507462 
+1.458509960976329 1.052806884545862 1.874099115693934 1.778035562951926 
+1.876617127172434 1.750824388249967 1.303508574379056 1.471945335314469 
+1.494961271678815 1.180720375982217 1.777469165387813 1.339339368432543 
+1.151341684273935 1.491938411306545 1.393387403687355 1.528957357353382 
+1.053553472214053 1.085095647383064 1.920311084783778 1.607407463994936 
+1.295695145442168 1.949779507064599 1.017921768510525 1.763587405191116 
+1.601011547025528 1.890864874338349 1.692779392399424 1.068231501015229 
+1.159006375778588 1.988050414027750 1.912010327660573 1.743901792595475 
+1.175295869841067 1.135673601194746 1.725006429803702 1.617552928052805 
+1.224699201819327 1.418247737170523 1.334258252147613 1.724912133156778 
+1.866883463644543 1.516392833902094 1.999523038072848 1.397717856703600 
+1.276173598128504 1.019827783621900 1.632948549296488 1.188267165391785 
+1.703962193292567 1.100897361933408 1.453287012625248 1.043491730765605 
+1.707662399032360 1.824759621202092 1.282636597649008 1.043377206540542 
+1.775534724061618 1.049423394597118 1.764384048545575 1.072575002393183 
+1.505588914547367 1.309287064415234 1.614446098613576 1.898183641982777 
+1.785022215714252 1.696295015369475 1.002800620244250 1.070327331438378 
+1.440091829299584 1.917151503374954 1.295141402466790 1.749073036639269 
+1.290314508103292 1.855372784056315 1.688715445792815 1.929079665736189 
+1.581315011413390 1.237483342551878 1.873205799201075 1.946079415749726 
+1.707839399933875 1.417915831324499 1.377743653875118 1.309818886983690 
+1.716682464379254 1.422117310374194 1.353192818063200 1.616604011199411 
+1.040565800147756 1.921284195661759 1.028576419671301 1.223894588381215 
+1.407313659994116 1.985970759532658 1.809710725235452 1.801281258976415 
+1.190037546148096 1.319665814402650 1.948442238559942 1.829248996245159 
+1.369593795959884 1.517535873041508 1.633975035897834 1.617234134740466 
+1.352644117994853 1.340304683194905 1.105585071537800 1.280166881368474 
+1.784746192165705 1.220763418244826 1.901448464622278 1.076976580323451 
+1.801498270661136 1.488134782593842 1.690605505132734 1.194620038943089 
+1.398087853169682 1.875761946153558 1.289188831337781 1.877032540863169 
+1.950508537497909 1.276721156453461 1.313397684093224 1.268681053641721 
+1.966209171972451 1.946470687033969 1.510517755201612 1.251628114707837 
+1.308047880791574 1.877528720663587 1.694447574299634 1.551615782329583 
+1.051934549344041 1.706339267825041 1.195435977997116 1.283947992293300 
+1.276304313754866 1.508802710598937 1.147456759802572 1.229877013440835 
+1.763073794424014 1.415515968178082 1.175155275131480 1.081645274354245 
+1.550154082708368 1.385341206690545 1.859800115531479 1.844517373188106 
+1.554812146871818 1.919793932542652 1.022106069461147 1.961571202816111 
+1.848450319856784 1.579368201101670 1.862607030514023 1.557614288625032 
+1.716021733509595 1.563839936839954 1.386346528721457 1.392111878248186 
+1.589734557219395 1.969111177489953 1.026714373242443 1.447366092221195 
+1.507703166849490 1.364879599324992 1.036794641196513 1.718506550661164 
+1.612220710167033 1.482017726747213 1.567748828671672 1.288282049078654 
+1.137256201618386 1.088045475944579 1.715170206172188 1.526989881901138 
+1.580340124348446 1.142215355004299 1.286428629765554 1.902969421422592 
+1.478445873825309 1.387689237613789 1.780533511763649 1.810801436852424 
+1.469673562909585 1.607431221221057 1.646377619281454 1.817180948542941 
+1.689398014134215 1.072999550293986 1.910181945114653 1.175773357132559 
+1.613477394189694 1.120678060150618 1.211176991010675 1.227171808899400 
+1.507675320657094 1.075226896429260 1.811744055542102 1.386896067499623 
+1.054890272285697 1.578286781029556 1.469346516383160 1.294086293233517 
+1.408614749477447 1.844017282766174 1.677477332307231 1.474495033235625 
+1.065487240279136 1.738118582928041 1.870649948918698 1.667212451500898 
+1.564640393182915 1.111076615244761 1.959645682131654 1.002048389485280 
+1.607722785083625 1.951714655126424 1.039739369385114 1.012765689004515 
+1.653583771713930 1.678789454879729 1.843014226754109 1.064628121495728 
+1.312186617316042 1.285481785257807 1.815283193604309 1.017541296129615 
+1.013709944667951 1.998576578557526 1.070939186810266 1.190901959795885 
+1.168069707854229 1.869328080801340 1.660642721581435 1.584936001173564 
+1.061979764564905 1.042040773444344 1.838439629370940 1.839606250540493 
+1.778645024485318 1.751133110734490 1.779591818291246 1.937332403335237 
+1.697965597586660 1.325210579474662 1.161103302793256 1.546319039657106 
+1.918599625686021 1.604235868093786 1.222953384032396 1.819908181977273 
+1.921076619996090 1.249483498669837 1.841592543629976 1.201589030817593 
+1.999735971520096 1.378991144775433 1.474709509205056 1.008444962598420 
+1.373571683785950 1.102980669831630 1.632228948221548 1.812643220142648 
+1.049821995704011 1.284094046282591 1.804957353194686 1.802535604394299 
+1.274632936657420 1.292877821954008 1.419648418324932 1.155430838839955 
+1.857891026661894 1.590365236589480 1.682560903514064 1.560684258840100 
+1.532863237882845 1.402514448788847 1.221114565933171 1.852881367785192 
+1.182074055271802 1.442043763354094 1.880480684121028 1.932356672653574 
+1.827111572433502 1.166009827655613 1.880399384629047 1.028940297271983 
+1.940980638708371 1.215142763803383 1.260367316440772 1.274282533068501 
+1.628218168100689 1.901503193344848 1.752876585816651 1.353565317218812 
+1.136484030718981 1.180158215478558 1.999494454229681 1.128717690929988 
+1.881182536502167 1.323236560705314 1.883559541345321 1.084492606160549 
+1.603933840227624 1.871044626048004 1.323454679819830 1.285568134788092 
+1.442316880502483 1.675199279357091 1.531703621297210 1.245846775038536 
+1.218708138311095 1.368661074112896 1.027955067143173 1.160315137394309 
+1.244595714117151 1.942361727119935 1.063440859948244 1.321570912759897 
+1.018379348440438 1.461834996733603 1.151463199332354 1.298436313279128 
+1.357398090959822 1.322187551377020 1.591263080575447 1.203104604195901 
+1.404886542814355 1.364742215489795 1.742096108686747 1.046715726465951 
+1.617450218756562 1.865837390740704 1.748466378783514 1.392205629532071 
+1.304861153447791 1.891973984184359 1.532649808637256 1.503875856139364 
+1.831875230783633 1.193926949917014 1.985936923128947 1.854931269732990 
+1.349121290845679 1.200889819129872 1.115413305054278 1.258898582800731 
+1.205909731936156 1.348972413339909 1.661613202769152 1.175786276377834 
+1.812818908352167 1.161357811959140 1.527288219880505 1.080944727898177 
+1.350740527137857 1.499058415498731 1.251816997346322 1.983787620654196 
+1.515224636328895 1.169496642830025 1.753035107512602 1.384761512406005 
+1.150180344215311 1.885178922696532 1.700692026296078 1.090305099673744 
+1.126196556001261 1.005798656962493 1.804525720122459 1.569388294229702 
+1.098561325161360 1.544307158222032 1.889873359038311 1.926998546435776 
+1.563034171123912 1.230014541068513 1.153546135339472 1.693905366428500 
+1.182532562764792 1.730138358721698 1.724988902801797 1.963901337353893 
+1.849103113575761 1.751155466997474 1.123903901172726 1.169689107843478 
+1.126436924666943 1.338121962294559 1.369250756650904 1.210665427864301 
+1.328860624696487 1.846083804367444 1.228841388621903 1.850482738883441 
+1.031539753860734 1.670587660481137 1.494045569959400 1.639573949727104 
+1.178230147378106 1.849480012725787 1.712913817518067 1.509931490854586 
+1.155585292587021 1.219796161923275 1.319790094170276 1.477061279801945 
+1.982170503348295 1.944947816300878 1.554770179467417 1.774700585936174 
+1.597994729986461 1.667476491507927 1.623119112969421 1.492598018642806 
+1.669309724300574 1.646803030181092 1.391586487780103 1.546525341353980 
+1.061602937854186 1.786163149515636 1.522303933414847 1.003821323370057 
+1.752620947700809 1.344086525790528 1.192936886595541 1.711660470876668 
+1.192704924591418 1.583790852007382 1.714022339957634 1.018196265882217 
+1.261955694667892 1.037653179273484 1.510539545073051 1.569609326339836 
+1.171286997634828 1.773814512724506 1.264375497250634 1.438447788748360 
+1.423817552105003 1.209548273017518 1.509219508748979 1.290503608642035 
+1.013013655704902 1.262750445467456 1.880101499527582 1.814073048535359 
+1.178838145940845 1.361140686081717 1.630504457075552 1.332130298101719 
+1.980185187732520 1.025849141198055 1.499816261948615 1.886067182367687 
+1.943391762550890 1.883793797561850 1.393108767952361 1.472285460919636 
+1.454297136216233 1.604327468505530 1.841584462314744 1.036083693372093 
+1.865484748734165 1.715015808634865 1.852797462403288 1.000463514619097 
+1.637683717494574 1.799864839102373 1.554986733376055 1.157883148760638 
+1.483351087518736 1.047363045199551 1.689338187861649 1.732327855820730 
+1.498005375107870 1.833419041315558 1.708697559971115 1.955255549078584 
+1.333954203099489 1.882622610999957 1.697950173088621 1.474706918285158 
+1.326469298175575 1.416442723516164 1.790072293683172 1.691951525993823 
+1.119815136665192 1.690878030772192 1.336799387920443 1.021075946500541 
+1.582665512343895 1.382834995605905 1.267970626554977 1.299923491542806 
+1.312961988795121 1.804420980492467 1.771550122211635 1.239114752641682 
+1.766315436512387 1.812885923329385 1.830384946496652 1.781840949664589 
+1.327992525287806 1.973041554326748 1.678613760643311 1.530481142242737 
+1.408567937268295 1.939292302283724 1.564875946161735 1.264742838369576 
+1.371271507273645 1.977541947067322 1.151321548379823 1.861521605445597 
+1.035888442901299 1.092786663499884 1.397366581097907 1.185879736935120 
+1.001417135662349 1.595795887746398 1.435205159198904 1.743205230820061 
+1.139762908943114 1.507505008313905 1.084851542914929 1.980581493820314 
+1.540411095930878 1.155602731205201 1.767446293168915 1.396016567192436 
+1.185002609380092 1.778666518176333 1.489994133200269 1.350851442331109 
+1.172832349598882 1.136390459424314 1.772022936357028 1.259277588415790 
+1.460002103784128 1.109142247198141 1.200309722170291 1.770262458705504 
+1.477398615652831 1.914515897986346 1.738823365081160 1.221415649618010 
+1.783785121235358 1.820341440765876 1.470790447421484 1.275087310049065 
+1.318974245712919 1.295129779827806 1.676213199686799 1.804084953633677 
+1.649475257660110 1.833986253552612 1.260078364628832 1.236147917235805 
+1.233641569027073 1.217516165228317 1.906423418124034 1.689392461344981 
+1.247896916031103 1.172398941832822 1.423571997288933 1.456255393694267 
+1.166479878772256 1.609613643698234 1.043043183655469 1.080833843106141 
+1.925916150409973 1.393613943903531 1.402494073859768 1.283178389809106 
+1.139370039956620 1.716082750052852 1.142393678529766 1.714663464175062 
+1.003091345461193 1.980193031697386 1.293772862023148 1.722948766460000 
+1.604094536913981 1.300322977479020 1.079733523576264 1.173126141423043 
+1.984423384572563 1.944739324671868 1.888741462925630 1.462044058286704 
+1.105501656104434 1.884018142904103 1.956004759140273 1.653965313659125 
+1.289524679836427 1.461895401547101 1.679978607422295 1.655900126551126 
+1.551343376261922 1.138013415903818 1.674340756216788 1.028616400855786 
+1.643035446284006 1.291123331005827 1.121809832553192 1.199192856952211 
+1.784217807027659 1.973937742186325 1.799409605823858 1.836210357979325 
+1.426874350809040 1.005211234058827 1.470544460725735 1.349483230173959 
+1.071927297806407 1.902432911264583 1.456817772395522 1.144266403876628 
+1.653204612993161 1.702643793462855 1.452464749746820 1.811544945044856 
+1.302660667303060 1.006385204933988 1.096558730716881 1.529703008886315 
+1.554871928843149 1.751419063998112 1.002057966435271 1.991901956592364 
+1.226664400749208 1.650879060111153 1.511784737349947 1.203652219330403 
+1.806938352257582 1.416239745685956 1.741637296653365 1.378328500695861 
+1.707468730905402 1.379428338651053 1.046908756883947 1.648388276627436 
+1.572028250988049 1.591402565310668 1.492315517217602 1.194033039777436 
+1.121794662452212 1.736481535066753 1.061004860681597 1.980329013709233 
+1.857835114761316 1.505484215413226 1.132100210375277 1.700512166449060 
+1.774303365287700 1.430487490851686 1.145025882863047 1.224092932012995 
+1.116668975504566 1.509681544470995 1.960647022246499 1.410670756798434 
+1.778404712046845 1.302965875486441 1.004527791646426 1.278635146256208 
+1.405754052222326 1.073406451157362 1.400476009833673 1.714631429357681 
+1.733053807758147 1.328284588862131 1.620819094194692 1.162474639648339 
+1.863287413895159 1.651488223648670 1.461225748933028 1.794453541604570 
+1.730456345586420 1.805391570851956 1.633920611227117 1.384394789150328 
+init_gen_rand(0) generated randoms [0, 1)
+0.039141198330724 0.240142890878554 0.209955588717310 0.236112916061619 
+0.573609744512888 0.395123490651293 0.812094386786663 0.972142771907627 
+0.661852338311814 0.561535645334802 0.291263099916129 0.621868802307074 
+init_gen_rand(1) generated randoms (0, 1]
+0.197401825552436 0.450667789853425 0.949077153602325 0.746101466565815 
+0.374044214892803 0.203220825359265 0.315142533420788 0.000972952474337 
+0.528170849943415 0.511750723153281 0.736971877918357 0.775180059678772 
+init_gen_rand(2) generated randoms (0, 1)
+0.427667673034137 0.114400215101537 0.032119928592253 0.255012682037145 
+0.355448733065872 0.188020506093574 0.062619018878574 0.402188885491065 
+0.660402037271053 0.932882881654048 0.986571493440761 0.575033370781814 
+init_gen_rand(3) generated randoms [1, 2)
+1.605915781710681 1.647244358909601 1.254232346519736 1.085959492779551 
+1.352860166249382 1.994299975846146 1.586137829445560 1.649591164754850 
+1.495629716325686 1.700105207379521 1.130381728439935 1.848159368566670 
+init_gen_rand(4) generated randoms [0, 1)
+0.238034111259992 0.888061286658451 0.862449834293604 0.066013370194657 
+0.454160163257894 0.549218924884145 0.714536859506758 0.598983253772769 
+0.330530003460256 0.181600268795437 0.084828648251119 0.253899928954298 
+init_gen_rand(5) generated randoms (0, 1]
+0.701876480870822 0.439288092349092 0.196861761522124 0.225529182201355 
+0.513841365467117 0.812782297385214 0.943515794309134 0.728688713799219 
+0.550086818407231 0.159141148268531 0.708650807287641 0.555829403967039 
+init_gen_rand(6) generated randoms (0, 1)
+0.477466803162719 0.974495445245670 0.354529903885188 0.785219142885805 
+0.218041032218533 0.321280564574248 0.059430242716206 0.557517726072402 
+0.646310724036336 0.214381751071967 0.823112174560962 0.233562918821059 
+init_gen_rand(7) generated randoms [1, 2)
+1.320570959340211 1.577820287396313 1.888528766674804 1.599916133592814 
+1.882620481758533 1.703005271719497 1.970766024252903 1.653379526127726 
+1.602754672635726 1.972302690830004 1.360349937530974 1.018367692159037 
+init_gen_rand(8) generated randoms [0, 1)
+0.389305095734386 0.293795385032480 0.824471116809770 0.713132951231938 
+0.315282980920242 0.680652513317100 0.529348121720663 0.204238271222364 
+0.656366865037213 0.263189542120189 0.309634761782333 0.849148446335754 
+init_gen_rand(9) generated randoms (0, 1]
+0.023742037201143 0.097817986094275 0.212028098657713 0.488796770220919 
+0.699438932294896 0.124125269982973 0.631981590554948 0.599189707334417 
+0.414231330009421 0.003200281601159 0.309005613295406 0.613944565103664 
+init_gen_rand(10) generated randoms (0, 1)
+0.366581169365578 0.132306137250225 0.303113209859658 0.942349397812930 
+0.985650763418516 0.645014809690707 0.838068410996888 0.144623334977467 
+0.760804985612095 0.993776960867864 0.576849813965344 0.714302890228335 
+init_gen_rand(11) generated randoms [1, 2)
+1.112505574020623 1.294372207693334 1.045222923489112 1.987856657469678 
+1.064591329672131 1.833230679444852 1.621580734728720 1.666839500196974 
+1.676721086595095 1.264691217189676 1.483640691057159 1.506094145971925 
+init_gen_rand(12) generated randoms [0, 1)
+0.936155301433925 0.359270189551617 0.414582052821748 0.243000364705316 
+0.758183339532466 0.236961638976871 0.289072189183471 0.759861901384338 
+0.432451490068222 0.938553980678281 0.025994903250097 0.408491070338117 
+init_gen_rand(13) generated randoms (0, 1]
+0.805350001345456 0.409526279934147 0.524297575295026 0.974284399305928 
+0.881837324886245 0.013311399270564 0.965265460793185 0.329147241208287 
+0.642238290615810 0.508826151681757 0.888269880227152 0.217972196613126 
+init_gen_rand(14) generated randoms (0, 1)
+0.697836734853999 0.019927261099530 0.559811595873184 0.823629195963737 
+0.977841885903914 0.597673600697835 0.650607241567713 0.351049405232736 
+0.221740602825167 0.579057119299789 0.994956203385833 0.948871688306084 
+init_gen_rand(15) generated randoms [1, 2)
+1.489799007574679 1.811428537048644 1.703031967018970 1.603992987162570 
+1.464644244443203 1.837018336726886 1.301509018842335 1.696721503366149 
+1.353697989034858 1.036816097847184 1.750096806960109 1.198966580910889 
+init_gen_rand(16) generated randoms [0, 1)
+0.568400348480497 0.207728900569780 0.166259744101853 0.402870146352962 
+0.586412021358490 0.708367941417526 0.955922418811199 0.040110250748239 
+0.630730577123339 0.341876190246356 0.466558538026659 0.833574901219682 
+init_gen_rand(17) generated randoms (0, 1]
+0.846985165152819 0.774433071769977 0.601518580531997 0.241786773256417 
+0.604742063883701 0.576118711236220 0.044924777040066 0.256765771772177 
+0.888223853605954 0.692405844297021 0.383224119688446 0.834190267882152 
+init_gen_rand(18) generated randoms (0, 1)
+0.150898153558084 0.894074805505165 0.713160196894030 0.433402533844206 
+0.875665938667556 0.416141379216622 0.223487786074882 0.449550667994502 
+0.905850613883171 0.163447403529844 0.390164897666491 0.056743596941706 
+init_gen_rand(19) generated randoms [1, 2)
+1.488984435176724 1.717467778659574 1.546178299359787 1.752484902683245 
+1.758961554059368 1.806181578584397 1.739950312343025 1.426374345111599 
+1.325059528213815 1.955888538600641 1.493838013991883 1.717447854592225 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.581784220574283 1.375490735919011 1.230434027335453 1.157674798129142 
+1.924926201763689 1.503346509861353 1.851044508507724 1.402844112986903 
+1.419028594944477 1.928667341232300 1.898716094675978 1.753204803856708 
+1.345671334929312 1.176370870936859 1.470262887281132 1.477534103640992 
+1.711125962153595 1.104842398249141 1.286505545896534 1.267960079806808 
+1.897070869335029 1.672372741308925 1.925366548353924 1.570369503102714 
+1.262427349483049 1.144938984374652 1.806816861750172 1.055836556590565 
+1.856435584455372 1.534581057549975 1.337634317540990 1.786811019981812 
+1.403750473290234 1.364182847010770 1.685234444976857 1.971498902559483 
+1.201359355439138 1.695241282526675 1.426977200619351 1.209822388415719 
+1.064311864925730 1.284612845358044 1.417087753521999 1.020158569512297 
+1.846410333712863 1.656509274354210 1.205573951923178 1.608792271649917 
+1.820629007505394 1.554917963678397 1.013197031030768 1.625565384317373 
+1.150982021455667 1.019620532375171 1.853768862889388 1.328704264756345 
+1.901266071978463 1.147060752651565 1.296167213562808 1.761219455586520 
+1.430665563355600 1.467999009468029 1.610041084997331 1.153752516788247 
+1.230259855379101 1.945785193310817 1.253755987201342 1.811973287318842 
+1.810282681309560 1.597495206235969 1.408129072257869 1.624905697483928 
+1.461460734368479 1.775880375028434 1.192449928181817 1.149308749295791 
+1.175395314310424 1.699039552208669 1.796206187488880 1.029717908529121 
+1.203178363987544 1.733574628701880 1.425754719714488 1.262039527918475 
+1.363292380175834 1.127020215359926 1.969944791008144 1.744883576858477 
+1.683727425703323 1.297642085663367 1.615826762608746 1.699359032613616 
+1.119664043840464 1.318536090866232 1.606796238247157 1.846241681353618 
+1.825068759397794 1.546302473583572 1.906344814552644 1.991020743487259 
+1.712130309403512 1.919649234374935 1.959722969459669 1.989473855721974 
+1.082871984732461 1.366750062596304 1.937255430309779 1.114780038809380 
+1.993584201376266 1.075515194674447 1.185010621825713 1.954422581663549 
+1.983888707073697 1.209961522605011 1.416699289342757 1.880332753539968 
+1.379361487469061 1.086299656253863 1.271974526497069 1.769933755651243 
+1.804896440930220 1.263512601189586 1.664566665656222 1.615786240697372 
+1.418211456414433 1.888872346304841 1.416311147784885 1.198324942387434 
+1.568242446789997 1.262349469924071 1.330557989668627 1.227380064567726 
+1.858272349557563 1.348303640546580 1.912734436739592 1.447490900925646 
+1.667598317588359 1.440384783800599 1.300853351894008 1.104924898175278 
+1.475373371811666 1.647755124793837 1.936646678239790 1.037283694824625 
+1.366811920125820 1.175760609385573 1.725877131094695 1.671404045032368 
+1.232451919307580 1.315069292486487 1.252066960732464 1.540540822791156 
+1.576159081376324 1.056794022853287 1.247234337527997 1.979153871288221 
+1.789665405037725 1.080478961662019 1.578789761464401 1.251412248176585 
+1.717473119887289 1.856482886675195 1.585781348262140 1.657539735089227 
+1.725295562318627 1.358108909885959 1.478116026679084 1.648718430675940 
+1.833897588057591 1.614326277027441 1.458207480973986 1.478658319657864 
+1.592363149762596 1.521459869622774 1.510214258799192 1.729995820091922 
+1.329744692294030 1.039366009040401 1.866866428880808 1.214216247116733 
+1.743741564955049 1.944384531968273 1.046713222841421 1.945288755861557 
+1.314725685610223 1.727778887388147 1.250275894620396 1.965480650560618 
+1.335067904265259 1.075326473259674 1.195270859558463 1.469990251917766 
+1.271125538076813 1.654460924588071 1.817442004906609 1.359157122146834 
+1.858852728053805 1.273267453924201 1.366792070789259 1.912137682645212 
+1.503075831420879 1.687124170429213 1.715818061351007 1.352500443165350 
+1.445839238792543 1.749243634572616 1.820262417537699 1.813965979481817 
+1.863804007177159 1.022228169234786 1.063436299508330 1.479793897330630 
+1.904860492646294 1.548095390425714 1.325993814499663 1.003685916350308 
+1.931645280320050 1.903101932172823 1.246820921389577 1.812885751645541 
+1.709723037916782 1.450431076813649 1.599243208455056 1.778267616751270 
+1.329635364764782 1.218782717895717 1.079957513759208 1.597831329363057 
+1.121107566400202 1.889417970071214 1.421636818532383 1.849876383555306 
+1.684067018123242 1.389261165829996 1.822789021713953 1.294763497851258 
+1.847836202955740 1.598781093634489 1.926753013925593 1.440387184435701 
+1.767049137470906 1.553638683352875 1.679572681243927 1.831337813728048 
+1.570073622966506 1.704489672835301 1.065911526742235 1.012175065950209 
+1.002717950801457 1.424379382170699 1.915024701107380 1.145153419695177 
+1.780556572711756 1.480112314460859 1.623632212683259 1.943835065265678 
+1.516775932207862 1.849577598718531 1.307241507254630 1.849772268611909 
+1.784750877217859 1.798551344643336 1.631543915427224 1.743947718558308 
+1.210515049794880 1.284233688788902 1.623190974116068 1.165687342182281 
+1.103890656189220 1.627542812024314 1.718161934222181 1.135663797936712 
+1.312106280907609 1.626757395273420 1.233785927043938 1.122250569765182 
+1.562057307760092 1.601102523544753 1.273622178941670 1.584299439769404 
+1.723490809680135 1.783903272589669 1.914713791301816 1.371750448880508 
+1.056467357532088 1.906835782287166 1.888713483375910 1.451413768983463 
+1.572098416649762 1.905987609966424 1.390074915499875 1.529368396050219 
+1.074987897380389 1.441936815585553 1.358958798555481 1.306581387983191 
+1.567174019938476 1.366779308770981 1.540404642844891 1.107366719604107 
+1.091588042409968 1.206686538498947 1.168732076386575 1.166933780966704 
+1.751174584401249 1.510698471441690 1.389739765057999 1.605707929594646 
+1.613652375205908 1.748150127087050 1.908027890846209 1.391198791397340 
+1.850716004681687 1.178510898754690 1.279050254708966 1.980312851287229 
+1.913720527053944 1.170383597784916 1.843099060153383 1.240357660628765 
+1.593263756225592 1.441410101717591 1.152945646002182 1.532799078017950 
+1.952740495862444 1.608191471264117 1.835114332392953 1.890771524029221 
+1.741166283118387 1.867376841901318 1.805527618691385 1.976481394681395 
+1.289143813426283 1.036152758623536 1.896090396105460 1.470198345054196 
+1.010270693682426 1.910931992679489 1.608667727022163 1.225808473215601 
+1.657968481960328 1.814682393795652 1.801286837173360 1.181771157368519 
+1.271126010159510 1.267413673488665 1.117702765547677 1.096034019775898 
+1.182306755708529 1.606931178411624 1.347721351019386 1.165000119694449 
+1.265119635773692 1.632513954097050 1.984920452728500 1.421888170574904 
+1.285399472291372 1.321898735400642 1.599304972859306 1.924746271026968 
+1.221294901066829 1.834251599730275 1.378901118041815 1.481664967101106 
+1.957054073364645 1.971189646575880 1.265039933026294 1.166785912357583 
+1.924713199815726 1.981811879378133 1.365180021640786 1.652082193349455 
+1.230266271337427 1.687367334446616 1.054064539902473 1.764505762286223 
+1.752407818019320 1.742306775063781 1.185566332820958 1.219818575717409 
+1.959119430495580 1.965507857832389 1.666778629241611 1.446643866832527 
+1.036725560575461 1.464321490808888 1.843505598350056 1.908045655211484 
+1.303075454259380 1.649505077934604 1.319644534549038 1.696302119837339 
+1.889332959822164 1.622064959378393 1.371362648755284 1.857229692786051 
+1.718209935313625 1.629426632246817 1.865658097953823 1.395355242694140 
+1.624005945212966 1.061387832116709 1.520923442991397 1.722847196415482 
+1.347067926756336 1.710480040508271 1.088293797060075 1.123527982892674 
+1.524790721254219 1.729837202803553 1.897886345090063 1.011658568608087 
+1.134961364934961 1.392297236077536 1.489324114718984 1.754689778319747 
+1.613096642629752 1.551265831145296 1.338864401360767 1.276685612452870 
+1.615802265118444 1.664270999638602 1.226312465769434 1.476213774847988 
+1.484947262896915 1.025002223720659 1.691741636291866 1.289624599102435 
+1.778018773814511 1.320572631727793 1.016673705753413 1.726685336066359 
+1.699625650410000 1.811764274206766 1.833794674315552 1.713361523062922 
+1.198129768432362 1.414572949889018 1.021396723265923 1.707618690950667 
+1.818644029346414 1.471379228802167 1.536805454430285 1.566578826730643 
+1.155763432556800 1.455446271244830 1.984683762822730 1.039741406288304 
+1.187615699615834 1.708851757735158 1.124070938711426 1.160113253908959 
+1.654972976648035 1.069675410235650 1.908643758871124 1.092033155990670 
+1.290858372275303 1.268340467475133 1.858902080169007 1.871738583077078 
+1.137238430896401 1.127701894072641 1.653188725300953 1.992660589470426 
+1.493127927726640 1.667568195602224 1.750114818971606 1.695149774430420 
+1.299884208975959 1.043983453672710 1.732406051881951 1.647633590816711 
+1.073521834917236 1.553479978097202 1.780975732154903 1.935230193178537 
+1.417323192034128 1.636438637958045 1.300972826766776 1.707757798542655 
+1.379440461610226 1.183250200025667 1.261503837930639 1.403665541434525 
+1.267347672009752 1.470634204329695 1.901754533495216 1.615267954345399 
+1.496609418902175 1.795871663554964 1.746486290257316 1.578777659233268 
+1.783757389953736 1.078239738277801 1.733446718115909 1.683716012967350 
+1.169325249506646 1.591185632190302 1.910443182988000 1.362665243619856 
+1.477829857876200 1.190843734989590 1.671571197844778 1.741369467223771 
+1.169249891488600 1.303948191602491 1.771845833426090 1.400648617418612 
+1.876265804386488 1.506999229289260 1.227144170388191 1.956455240741943 
+1.458919944079656 1.392275923025636 1.783024614890859 1.744399566394544 
+1.213072668177964 1.034916555924968 1.465855432309263 1.243485681343660 
+1.190096559808315 1.748737872314512 1.728479670169564 1.543798794567458 
+1.231667615330678 1.431370354345645 1.258902725252618 1.497634402786963 
+1.278863149358672 1.937362174302135 1.000785474000847 1.412557553518734 
+1.881197467434246 1.957961395692313 1.653458374482614 1.669301717566589 
+1.853036636133124 1.401368768123531 1.888227484881373 1.089630322686924 
+1.766853033083576 1.864715538468725 1.567166440215568 1.239329510242361 
+1.914815066632984 1.361439545122177 1.847625615997669 1.084790845777528 
+1.455856805074847 1.625737097435386 1.374727394690390 1.922974360052717 
+1.895712497591960 1.915403838667270 1.196511789795154 1.436080876740979 
+1.924188962873454 1.935485627244466 1.305770470916874 1.920335529161351 
+1.832261344161070 1.440213355294695 1.849961332461746 1.966324733930815 
+1.021067345711494 1.847080469115004 1.503340312642349 1.010871454926105 
+1.796134565476918 1.779034702442903 1.299365557194229 1.277757027038904 
+1.770808737512190 1.343812691337329 1.253740236935527 1.685945101384905 
+1.012148368588091 1.810018599409557 1.671974976336288 1.196433974766770 
+1.935960826992056 1.189631213629368 1.569360051729205 1.352405743739133 
+1.195123169154615 1.437427495622016 1.406714004082566 1.342148445317126 
+1.082109165898629 1.551340673863146 1.822316585656925 1.025047295438891 
+1.088641295506727 1.647990664543797 1.772497203110595 1.102261294186359 
+1.839414561748175 1.014838153112749 1.878378616659002 1.116600101004812 
+1.077606330684023 1.520039490618765 1.245524070796298 1.281308150378041 
+1.044439759385231 1.193356174620751 1.878160353973019 1.263631414905725 
+1.146469013687992 1.912560416052871 1.207319505894427 1.301041631547760 
+1.605235112731150 1.865767840133210 1.578919888532329 1.697429343449053 
+1.439534586453936 1.270794171175967 1.338060766416837 1.825829353774074 
+1.150399249828225 1.751117009640262 1.209327641929514 1.316777316776836 
+1.284614983745236 1.560144903961762 1.589566462407829 1.269934649482484 
+1.849002637721671 1.656875246667249 1.869490671437175 1.799613040261653 
+1.634585999168032 1.092844578413089 1.547225839113513 1.030854465863721 
+1.665379681013774 1.847365579501814 1.602375468220916 1.162007468291018 
+1.765917805272711 1.043570110198225 1.970370294154856 1.240547866129472 
+1.215756542663651 1.143533181637167 1.061418762588509 1.326704046894129 
+1.703759937359586 1.408520886992474 1.147195750767595 1.256954187780514 
+1.895550299154874 1.803943506858809 1.179746461959168 1.751316392510608 
+1.800244014362836 1.836681894388480 1.082287414021476 1.803875782383433 
+1.733229118247300 1.721397232127892 1.141610279724018 1.746805367485522 
+1.762593715549831 1.400937865149920 1.507169714450278 1.935523297462100 
+1.994261578524589 1.597151682619948 1.497872716654619 1.478530200593745 
+1.667605469096648 1.597076994877261 1.165305703315946 1.659295787868489 
+1.581881334840277 1.371592113582251 1.611238145352840 1.873055443266467 
+1.216921201145587 1.602742298811010 1.568043517659167 1.789997394737028 
+1.393881348835428 1.370790115141894 1.478652345028026 1.266239388558233 
+1.478988481788109 1.698676490370188 1.223410872708738 1.426016619242417 
+1.603748897589154 1.259162325891960 1.751962161801198 1.642053629115248 
+1.182888428821636 1.630904672899669 1.207156148861067 1.996387132827757 
+1.534686594532146 1.056221063999409 1.430776279206762 1.044284650436675 
+1.763438590793454 1.072838364594817 1.773385446051327 1.903004581600065 
+1.355730539876477 1.575025496906119 1.146728643311143 1.424354369485917 
+1.480764402020752 1.068247402230020 1.126351499339518 1.064905592810708 
+1.709683094927656 1.217256044031853 1.395667558385031 1.388069930232979 
+1.655736948663699 1.638970279356242 1.937096035902118 1.694209004123547 
+1.350022824179225 1.386603285378202 1.160114640834867 1.144095960576550 
+1.396083799279169 1.503553485984674 1.454334995996020 1.594666490819794 
+1.265579113611929 1.786598608106306 1.695980238567725 1.341551686763862 
+1.693694731376810 1.049125824395964 1.344851211502348 1.693243925331636 
+1.951334972421921 1.991263655002045 1.851353153742686 1.321656435176580 
+1.391461505901178 1.754662992725609 1.510833834288598 1.230138420722863 
+1.827256977958609 1.450016150837932 1.556177490317170 1.805415926426408 
+1.564751493088582 1.103992590267513 1.379596004511850 1.063387464059677 
+1.076679101189682 1.638216533685479 1.458823854092790 1.646861209642338 
+1.350748819397597 1.982307763936686 1.890191624531657 1.015662086401123 
+1.595595467919673 1.180241168805636 1.902876461047600 1.733414952734333 
+1.520729003055289 1.802432905162320 1.584074523590148 1.671687108631404 
+1.365770685468948 1.317205755203608 1.035944674826329 1.381977758980635 
+1.055379650218116 1.074751595915970 1.415865352306709 1.496189989686173 
+1.843493762032968 1.287942912299040 1.689485773740891 1.004840931780170 
+1.665150443170417 1.883565441002568 1.189311290194855 1.293006112399775 
+1.750676280349064 1.080107884031108 1.639121115220116 1.424436680664794 
+1.427839435514884 1.398850511053499 1.134221737561770 1.897130638831893 
+1.619684260272339 1.875017597562765 1.484667218531899 1.906744068343257 
+1.981699218568070 1.769190945916698 1.291253844244409 1.320950252834372 
+1.051010134017152 1.391469757357453 1.529555858691787 1.639429500343102 
+1.175475060108953 1.387877085293972 1.374453646488980 1.655463030996287 
+1.778007504634294 1.165725624644233 1.463669723343275 1.289946718754619 
+1.355547094343742 1.702786555907037 1.303411710646469 1.063611895426248 
+1.647682072771855 1.510155073082694 1.975332214067631 1.796109020258906 
+1.073498844355837 1.557199533663559 1.976230245279317 1.095461163831737 
+1.786276919105607 1.477190445334828 1.414645596587913 1.599804535300973 
+1.693377923244436 1.598021058974949 1.686133212134171 1.966676050119018 
+1.724837324150626 1.517172923453211 1.838512802433010 1.465432462387609 
+1.091605370360245 1.905700303733611 1.096646521124137 1.048923620565057 
+1.241133392065901 1.798573212327515 1.305814852055780 1.261725805269616 
+1.860976597625726 1.213936616995949 1.310668503732973 1.578459656697018 
+1.153160327837926 1.157002141929044 1.668713774907511 1.763277094931680 
+1.723447352583971 1.097408696637637 1.861038306408553 1.747669649315865 
+1.356742796626167 1.951100258307213 1.193283515449174 1.518521153348034 
+1.898212418154225 1.176777693589735 1.142923110401745 1.923030743229233 
+1.157488606066511 1.746843217206674 1.271695062544859 1.474110364734162 
+1.622078166086295 1.992735737029523 1.463624611142545 1.103280391115205 
+1.687755429266179 1.083954610834120 1.824243140453917 1.051145043197660 
+1.202505789064883 1.619803583867830 1.469094876379111 1.750269855005038 
+1.401071955177263 1.396622486465550 1.321199032174458 1.531398301886636 
+1.696005824261001 1.180535978350471 1.237649975647904 1.727642408879457 
+1.483917021839838 1.602637535876936 1.677634872651089 1.053993145843173 
+1.529944246268332 1.009710922880091 1.061270427667000 1.157883586833278 
+1.311940015893206 1.699080906062942 1.324059829056570 1.699985311869555 
+1.806958285107052 1.938984256819368 1.383809033195859 1.663089359844772 
+1.629385604641646 1.279129877643089 1.353203437356081 1.835716897724937 
+1.022367041982251 1.269848511465716 1.940396256834161 1.652544187135037 
+1.534163247839048 1.321032356158555 1.583323422628123 1.943848347992094 
+1.939881046725894 1.483926969207914 1.847247052542036 1.092620768306672 
+1.567748935248181 1.451236022935140 1.513988733604546 1.029148125074536 
+1.399056908126267 1.653762095915320 1.207957745028439 1.965603937586241 
+1.704662784784792 1.102735559299528 1.904134171137863 1.945184244897699 
+1.259848600560343 1.084336218124633 1.134712207966241 1.045712442577797 
+1.896314088159345 1.484168353152407 1.448673407266579 1.534520670193278 
+1.035444439445641 1.463756387154946 1.672577479298799 1.097759709025264 
+1.377175406140576 1.380049302965333 1.357095800261004 1.525020733013280 
+1.820676828979531 1.402074006087944 1.664826328284747 1.330712640197355 
+1.293578180672206 1.008208388327455 1.059993912006153 1.670061920105905 
+1.096175625876608 1.458352982001734 1.488353509753223 1.172523002986754 
+1.746847770533170 1.025835475238204 1.750579609826914 1.290296870215195 
+1.855485351218176 1.210658205339691 1.613225919431506 1.568123815744937 
+1.306436769373309 1.934938546232255 1.207450161500247 1.055038235774138 
+1.806320249138067 1.104246417543740 1.656975702054405 1.500057207389252 
+1.285440730893217 1.393019761026395 1.730565426096069 1.672416945293405 
+1.379870787623415 1.228744976967289 1.772614189718214 1.331684702832025 
+1.942857504736689 1.252863931919844 1.569440305686581 1.042783290515588 
+1.690098273713913 1.522256345958018 1.609568717869338 1.049043456071770 
+1.070232534167644 1.274407458081942 1.575048710103017 1.250581363707148 
Index: /Daodan/MSVC/dSFMT/dSFMT.4253.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.4253.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.4253.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-4253:19-19:7b7fffef5feff-ffdffeffefbfc
+init_gen_rand(0) generated randoms [1, 2)
+1.139094106868506 1.906912332044604 1.155279971572842 1.816240119921928 
+1.968538028170452 1.705944581231948 1.918194220532118 1.812205985231770 
+1.118324298619098 1.725613776800635 1.384799205428535 1.866053809172827 
+1.737349609441751 1.606855600174225 1.015329937740098 1.753721504578023 
+1.940862584344073 1.808855307356398 1.202632643688191 1.957539399728702 
+1.859908234819278 1.530527429322220 1.619837819772417 1.742353445157978 
+1.740218780123652 1.412897280275937 1.699645694977586 1.287551553928310 
+1.886571871186663 1.945403843665351 1.720919068945055 1.615504507618511 
+1.609826281455626 1.443930696540812 1.418713470467047 1.504665550385818 
+1.201470173935238 1.741604588352925 1.783894411407497 1.373038600912394 
+1.996646991876386 1.730946807495221 1.024543424138406 1.160849700044104 
+1.928484783514747 1.055749161758287 1.262813892526972 1.135211149343018 
+1.371253408616356 1.364145053216020 1.178278205296706 1.324422565411075 
+1.160756956838453 1.354095354444563 1.148413724802729 1.878949473813181 
+1.703808429897446 1.816107958210539 1.124881758146617 1.875177502851386 
+1.071100523805567 1.904318124064836 1.332365991055856 1.730076721183579 
+1.153173122870988 1.639201264529519 1.123060660259170 1.833369976538143 
+1.703916606521347 1.429913915862214 1.363908642777595 1.021926150068752 
+1.237076062672831 1.073282609588267 1.512960659713660 1.484133577325873 
+1.704241901002169 1.308658624027127 1.033268157653648 1.203932134845188 
+1.703798676850786 1.716490803756880 1.027091929353712 1.949672899215219 
+1.279634220315371 1.209258008881709 1.715993219682198 1.024665545529569 
+1.053139969151206 1.384077208945545 1.192664112807366 1.633989971991378 
+1.619746946807034 1.157610336674306 1.036526834242445 1.311707336235131 
+1.121443162976651 1.475928061178992 1.827526191179590 1.402893034861157 
+1.547192086034593 1.091284360578798 1.647626398996518 1.476410146673510 
+1.302677048733218 1.046419459182608 1.576487052723746 1.894509582628608 
+1.512317444175304 1.292549214641101 1.030659084182366 1.687309427879361 
+1.326250231450101 1.491627765476604 1.830961990235198 1.341110196522463 
+1.585755255589543 1.110818499789719 1.587684330987870 1.145234036674679 
+1.595677340452428 1.787083118177553 1.419295506421980 1.954611431887652 
+1.406253949129755 1.675885325827777 1.928745873021126 1.588791805738011 
+1.314273618938813 1.642753419452643 1.629304178110066 1.050283823875653 
+1.841299369305349 1.667960965109468 1.253887561760962 1.534154076320642 
+1.794040805938364 1.737499945040216 1.987362523639085 1.551113022647693 
+1.060504261792599 1.702329224066957 1.067150384645059 1.267554148499513 
+1.864846287144148 1.673658771344293 1.198456605459973 1.159714646655352 
+1.696876766123466 1.733627184896174 1.212372518742324 1.787247397092145 
+1.286692190106732 1.208989911172425 1.422756080107642 1.453065030910458 
+1.760097272751925 1.636819708087712 1.563741458999877 1.872374840287597 
+1.547150618832183 1.798909724585274 1.698075495559719 1.772015023135321 
+1.954722135592285 1.368183210493868 1.444265950137951 1.499075812908041 
+1.994475976501086 1.941020850966390 1.273671850402360 1.802892303937119 
+1.061097369269077 1.422839340308943 1.360953504003277 1.759683655038838 
+1.443517420272791 1.093619954711603 1.969881530850801 1.654297037892952 
+1.964439493885526 1.177684014561005 1.571102380252291 1.633051351776184 
+1.846349694015265 1.771928843198311 1.967004812720396 1.260148157291785 
+1.038025970026293 1.703395739455634 1.013811992181893 1.037415120528344 
+1.477701269485448 1.227630251645307 1.994693353470840 1.994522650980907 
+1.212233777635993 1.264524953968301 1.203045678938621 1.885395014396460 
+1.953515164888554 1.973848407839136 1.302993806347323 1.248678997529302 
+1.674313151517379 1.200182355267588 1.366284231940010 1.708022018687431 
+1.513967490961605 1.078978834770926 1.258201903244214 1.553449073295635 
+1.463038182796887 1.401479883350011 1.451508826661700 1.563521629524479 
+1.735642641426886 1.600646315337968 1.487087721848498 1.591617969846885 
+1.774732072672513 1.916434412142117 1.081393619488769 1.892851530487164 
+1.774552169122386 1.649111800444009 1.080978630269715 1.932841901721589 
+1.254046934302824 1.386300095332744 1.576615977216381 1.963745078022425 
+1.077431048287085 1.419217774500687 1.536560916058375 1.590406366801413 
+1.342018783838809 1.845613436069873 1.070252538024762 1.660144771590246 
+1.381064669622278 1.193714258692645 1.981935670961482 1.041297824227987 
+1.994117045671875 1.795920139639979 1.544787474621877 1.919593308185391 
+1.908075029298339 1.677112360085857 1.722576627879042 1.452950046616963 
+1.834574377501788 1.742483359096463 1.530123076893577 1.073669034860257 
+1.380077824705279 1.612131079285048 1.719486686817471 1.094036377932361 
+1.620743196733468 1.708591205024783 1.151918824447741 1.814191879181853 
+1.122605729534403 1.032868861863824 1.421706521028524 1.468785677761533 
+1.031409568195086 1.349005691184443 1.020691826468993 1.337394453177133 
+1.862787758570431 1.824099578447536 1.720282742030454 1.922888033996371 
+1.293714730037966 1.010013486758801 1.732366953205942 1.855396525308084 
+1.785973555739221 1.826710401391071 1.617156822589845 1.544088673892015 
+1.023789664789909 1.550912694647800 1.988963096616035 1.333368024714709 
+1.205479523842161 1.058844656344905 1.750526375913793 1.844104026054045 
+1.394775799067586 1.232451203334057 1.249162963094143 1.399031696900795 
+1.007969889495837 1.944798110297950 1.619130730174471 1.350319623226930 
+1.039344613676225 1.638300001574609 1.688863859997219 1.219549874670808 
+1.681390565571584 1.514185146615189 1.897392213132470 1.427568946899367 
+1.311030719802751 1.805916359548781 1.357736392852593 1.317122860155402 
+1.597501988868497 1.288210971119872 1.532784579606210 1.483678266234311 
+1.809675389616295 1.235522525748565 1.933384896322969 1.886626036314006 
+1.367901243746011 1.617773903977494 1.589637259367985 1.876427184701490 
+1.180613119345373 1.172703204233337 1.887294875017173 1.186512844137163 
+1.854850322495811 1.815622710191226 1.887348853852576 1.382518881659155 
+1.550575697318197 1.145535915925611 1.281032914184003 1.086431483537599 
+1.663755048356163 1.360814055213199 1.338144352854516 1.306448384487045 
+1.907608104011122 1.133733299618104 1.173266476906140 1.574496236729947 
+1.237840713068257 1.426255938246723 1.572866548167959 1.249182040304728 
+1.941454205639193 1.938779462412158 1.282180322212722 1.123969981095685 
+1.254284712785420 1.897595591776529 1.588606778415597 1.248123003404336 
+1.097437619758973 1.901339330902425 1.715320054985471 1.097416204973077 
+1.671934806330706 1.429632875548541 1.518451396740464 1.437647497914307 
+1.347413319641886 1.042424522735369 1.816817742031222 1.470313761229217 
+1.233111437241783 1.003192512048674 1.518254193870143 1.627726000704705 
+1.692463157158898 1.246358869625418 1.924443648294049 1.976084042445736 
+1.364241544209801 1.933972315097084 1.278516106440650 1.092646192958699 
+1.692261421027204 1.472107237538305 1.405592307417733 1.850998564193608 
+1.255918299133174 1.180893670547936 1.545871767687761 1.589655209893521 
+1.291061800397446 1.191630186187347 1.630588863915822 1.331073653458752 
+1.113160196714993 1.849726481450336 1.791811809491358 1.096598888340432 
+1.257650303214353 1.348488216131660 1.986041776395832 1.845435628622748 
+1.477926631060924 1.556529821290729 1.014374884876848 1.240140014069949 
+1.732814673040755 1.360607390025392 1.307951460729736 1.355565093001724 
+1.372444233620746 1.811074374771345 1.850010931704009 1.389640591350639 
+1.744586002822913 1.221934207355153 1.209253842275209 1.127245801186765 
+1.331421032287138 1.283416647403255 1.751136183651425 1.427377784655081 
+1.861433911466531 1.131169131388243 1.137898911351930 1.138352229250369 
+1.023694922993294 1.485044816758825 1.351364870281463 1.826116812141199 
+1.412763937217746 1.589474778711283 1.190576295774202 1.129249669448052 
+1.102386682655378 1.086080804211916 1.309098666992687 1.717412457837932 
+1.405044573601763 1.862427713363672 1.148543729662672 1.292632667208004 
+1.150603430764478 1.064728062650439 1.649919914706886 1.379149217887085 
+1.720825297460188 1.948981129880136 1.109624573928793 1.385583618865826 
+1.170233589390598 1.416177301012147 1.680046089778598 1.281142480840567 
+1.201006700234309 1.893721097637602 1.094338876720612 1.429744561245723 
+1.487073473839216 1.052268300233169 1.566994319903218 1.157104983112655 
+1.342672453009753 1.493768405112868 1.421682592914202 1.177298848939424 
+1.105530997086515 1.818453264281044 1.512644591575037 1.127702703162384 
+1.004402049445356 1.862117796786765 1.619134819741399 1.475340127490021 
+1.250652604931810 1.275087479105308 1.358349654346792 1.125382134906720 
+1.517642525160543 1.825570614255970 1.873891341055631 1.390636123230268 
+1.869552416345333 1.142421149146516 1.685215384940024 1.745958997083509 
+1.873697937884124 1.800114319308701 1.271824228312595 1.255572997314599 
+1.393547697829766 1.524763016638214 1.769199518577987 1.937393575744747 
+1.712485421328622 1.457016339300626 1.790521456475486 1.581996676755759 
+1.136944038664732 1.838266386473200 1.115915838964310 1.451561332248428 
+1.326271912744442 1.414673221419843 1.871789064455399 1.013854603133739 
+1.587015314292680 1.904378710224029 1.488179555427561 1.841848930095715 
+1.081014456850608 1.650784679399450 1.016348527671823 1.098915560045934 
+1.082782391480836 1.355507641390730 1.248537515944625 1.565148324077364 
+1.656558937855557 1.688774830311734 1.309699229600087 1.311764209363452 
+1.218693506265804 1.438310741060771 1.632760886551281 1.692347679074923 
+1.275176449650986 1.637744967786751 1.152509168997955 1.937343556841305 
+1.670308004992876 1.381112338311536 1.885286162827546 1.183772430909347 
+1.080702435344472 1.764405120230152 1.995470246169436 1.648006359195589 
+1.959063791140456 1.639549782010446 1.153640303414270 1.898790801824337 
+1.879153781827784 1.981078290192162 1.077589199440617 1.569377902323031 
+1.066956569198721 1.822185086275588 1.988052670348790 1.594855194739891 
+1.754922394198739 1.469882044628440 1.663658042604492 1.460845224862456 
+1.121766228819878 1.291079255765740 1.071208710899695 1.430203927343568 
+1.942774157128871 1.776354387623264 1.623266834003418 1.920344975824604 
+1.794708236542680 1.449501639082728 1.727212354125077 1.996424764689499 
+1.679556221795275 1.376550027323234 1.036573090515334 1.736813711465424 
+1.246825600210888 1.872709373898017 1.466171773608546 1.992710041012665 
+1.020742116397239 1.650648420118252 1.194956791980895 1.129725519396986 
+1.154460176970931 1.409806548958814 1.010684461075202 1.869172641847393 
+1.501539771864048 1.009415533627671 1.061160458239414 1.454526159196564 
+1.683767132307570 1.774781557005859 1.930600506360598 1.271437838452681 
+1.012043601055489 1.509259846155440 1.102052957074095 1.312411277187699 
+1.754639396467048 1.329169688996783 1.687790020422485 1.429836037619933 
+1.023541904059991 1.866399394805417 1.167816877369035 1.074318337803553 
+1.018978767256145 1.686566744253229 1.120654164090526 1.609121859541591 
+1.806073537830062 1.763131769656055 1.989133153848269 1.468089012122535 
+1.145175336756877 1.561895850826047 1.399108152931830 1.981378635692214 
+1.244350009833566 1.555714483463658 1.603532911637775 1.593954081070797 
+1.313594545318773 1.485556756329747 1.933387264258131 1.879731645621961 
+1.449417278595545 1.892169588423986 1.687706042249745 1.643014529045115 
+1.691424875094732 1.770970726769088 1.285394704258408 1.923835334475375 
+1.331749639416940 1.382558548171307 1.540283159119252 1.940764618950522 
+1.278980782752578 1.927592339760414 1.994552548959196 1.498680948685598 
+1.797993769408813 1.426537488043768 1.483956553096763 1.327482606703303 
+1.887064186049000 1.638770030333598 1.595474522231609 1.067403464021125 
+1.001923457592613 1.997785693554033 1.570275965351732 1.665941535562409 
+1.411144136823353 1.386675685979839 1.164662411433373 1.534740883950229 
+1.772819036165933 1.162918999676236 1.807109493851259 1.618827265116015 
+1.507972537419604 1.426854539907707 1.455164379866776 1.943194923079784 
+1.582268394114195 1.671181450367161 1.210456903449942 1.897685119137573 
+1.945969394974125 1.655428716667954 1.269208764487064 1.628928745193376 
+1.219645514676613 1.738106789439534 1.731890172973726 1.625705416382295 
+1.684473622893396 1.714608244509361 1.818622597899875 1.047589425037412 
+1.437017400107687 1.062955087433501 1.565104793401658 1.936836243631791 
+1.230247761859905 1.919465301289538 1.977564428625837 1.736674122730928 
+1.050574634491038 1.987167914503414 1.174593579358868 1.052433158291592 
+1.101080004497492 1.424895171051237 1.759790061553444 1.156088519386302 
+1.999773917306753 1.053021116354220 1.933184620319572 1.802631116950504 
+1.259426706331910 1.015200020205145 1.406091238832507 1.533356272425911 
+1.188983659172970 1.941175284331051 1.859075463878505 1.877091503728246 
+1.993693365121737 1.239167481608168 1.439726395534089 1.172178245522056 
+1.908137919739376 1.935998425393524 1.871803920447681 1.407059508198248 
+1.174360592628126 1.399520446700171 1.152428973676255 1.763960108584278 
+1.904277130351825 1.575448912633247 1.161269013549417 1.757338072686347 
+1.190540676342402 1.841072385189021 1.509840707076201 1.300496803922380 
+1.444975648264592 1.259070180708017 1.241581822066039 1.343176978325303 
+1.804104287422494 1.216204020050771 1.038171426465851 1.654334081436745 
+1.452321561176858 1.618785492558209 1.752686554201109 1.643133326505960 
+1.397870116754985 1.521379930225617 1.448271549242298 1.310164549411971 
+1.442965567890173 1.973991744014434 1.322960029989190 1.016337377342129 
+1.295803212854137 1.266800076536431 1.129912456884835 1.893991787308367 
+1.501316350320565 1.064451837343303 1.413853991287918 1.110441680014259 
+1.569314388445245 1.838332854667124 1.375140146738720 1.737270424788690 
+1.517534750280173 1.302902169654440 1.038751804392704 1.284796616944740 
+1.648776424786227 1.273290502434811 1.523628701358383 1.677036158262412 
+1.962799625402387 1.016310439954788 1.224603336941075 1.767788012374065 
+1.537497320781144 1.478167002375325 1.958894077818750 1.415509309951375 
+1.128927627425501 1.705800058873422 1.400218335094804 1.760550696618933 
+1.712272815232244 1.376193482468631 1.588996827855128 1.605942819612100 
+1.272392358231065 1.374348763110412 1.303871867584262 1.149639358138583 
+1.803113674530445 1.928178705568390 1.036023886980352 1.897427153661658 
+1.011274815126395 1.566919964155657 1.442261494499890 1.136395984571627 
+1.154178973193448 1.441390277500690 1.747529231176550 1.788684874932836 
+1.361995071965995 1.749406378873501 1.709096941541225 1.035602536166287 
+1.095390360548179 1.694644288400464 1.972234917946873 1.517951860865877 
+1.472609309591588 1.662048785693121 1.021931625475121 1.219920536152488 
+1.260475466287703 1.445084073114179 1.080178342801046 1.573764446387906 
+1.713932603528000 1.800007794132752 1.545933945398575 1.862569369762720 
+1.703695579795671 1.955395350136601 1.394737211213516 1.648433445428561 
+1.275488762107107 1.299253899750369 1.775339788163738 1.324562955337609 
+1.229727387246042 1.515679223268583 1.610478237545661 1.154145584859022 
+1.515367044299736 1.635263221249650 1.593585198193355 1.033865288703972 
+1.520744669873033 1.097721593127306 1.919366835363586 1.048066412321420 
+1.789925757407650 1.901508345356278 1.976420566605561 1.391744733950469 
+1.495287887480248 1.965376493944201 1.043439029484687 1.433555196110586 
+1.414117988779727 1.758870887376781 1.608224337402724 1.330455369618337 
+1.743650817684610 1.544817006968851 1.605562439668631 1.408455637418367 
+1.824945903872599 1.316926448898609 1.810148851230225 1.248045585563317 
+1.233138523072899 1.679864254844216 1.406559021079130 1.605035828706583 
+1.502602666182774 1.779053861866627 1.308709759109268 1.529616926288568 
+1.576270209107031 1.611532201587586 1.465534629161008 1.730629495417165 
+1.811888917032875 1.869750612005096 1.398598209558537 1.584571954142817 
+1.708430392288350 1.987257671586460 1.635532050225510 1.369648948874243 
+1.627222266708012 1.839966630324115 1.322341632313950 1.720521660031315 
+1.402678574894353 1.359316818025323 1.109434214866209 1.380303918715790 
+1.998334633784365 1.531293240852424 1.571878657457233 1.232071785194699 
+1.291062419145449 1.851389171971014 1.437206787811194 1.912659714465259 
+1.474885664053820 1.566917419845821 1.510486522881519 1.498894638286841 
+1.788560038215005 1.496441131573948 1.444560896353089 1.043557820158255 
+1.558403637916618 1.973767357168274 1.845966267143745 1.177551767514590 
+1.044974179900553 1.896843996901687 1.056950282136204 1.815683169693280 
+1.613726457574478 1.486165556238594 1.386758423738211 1.978913137654128 
+1.924317943851369 1.103284532879131 1.787647519608526 1.085252588246375 
+1.285283497550083 1.833797645524591 1.413568683317311 1.490922438055923 
+1.409980625758899 1.778844595463156 1.221548361387494 1.909739190074339 
+1.762596959776364 1.366897140822754 1.320942049036752 1.366645708009754 
+1.285589422112763 1.340423309366027 1.305672544645455 1.699204975022547 
+1.767326786295079 1.203251613290061 1.298617440492849 1.616359849941248 
+1.073513936837788 1.889335610811508 1.284941441361385 1.625660649464769 
+1.497908833559103 1.489632227708114 1.153018116471320 1.384300814694080 
+1.027685043899209 1.696262938416163 1.821437710680605 1.774786459680590 
+1.395057910122417 1.471557975639997 1.131552015170000 1.557536472359046 
+1.958904407669585 1.573068947130494 1.109974056690725 1.722701393477491 
+1.238434442254235 1.718410419391521 1.636146754592690 1.849424301234237 
+1.430696254533277 1.229235004550286 1.718215496402949 1.568946085155499 
+1.926732890480011 1.609275706999865 1.518190112913469 1.695825578241954 
+1.509761382441192 1.484429831497018 1.102136808680941 1.438581232881505 
+1.264685432311359 1.068291458484730 1.842356840132540 1.021170556697952 
+1.457766247070482 1.921090402630861 1.251233281297548 1.883367862091927 
+1.775476838763982 1.456566957097917 1.930026792319159 1.552450218629154 
+1.257970145603132 1.830165695249627 1.626379730494144 1.700827727206771 
+1.835344570487808 1.779260242308986 1.336690013166618 1.265150884129988 
+1.474744081272373 1.487120418943298 1.030502169026391 1.390506144850594 
+1.152379821634836 1.880783498644635 1.027204813177287 1.314297170367488 
+init_gen_rand(0) generated randoms [0, 1)
+0.139094106868506 0.906912332044604 0.155279971572842 0.816240119921928 
+0.968538028170452 0.705944581231948 0.918194220532118 0.812205985231770 
+0.118324298619098 0.725613776800635 0.384799205428535 0.866053809172827 
+init_gen_rand(1) generated randoms (0, 1]
+0.473712274567619 0.566741638779296 0.920088431747615 0.505261534218621 
+0.021145509690642 0.944433000858919 0.068291972887625 0.451283621616343 
+0.785832391132814 0.261754953216587 0.873985947332752 0.849153416108939 
+init_gen_rand(2) generated randoms (0, 1)
+0.731729216395445 0.256644152001933 0.984158103625668 0.081110542054178 
+0.210706093471697 0.198640186645040 0.993075047523048 0.797746702779009 
+0.852662061025464 0.196140937219142 0.421017698828807 0.913079853400022 
+init_gen_rand(3) generated randoms [1, 2)
+1.569174756436084 1.816216102672822 1.187826825134754 1.047187222060821 
+1.127008251122564 1.069457995787952 1.895199535170333 1.337773877522005 
+1.759908929639046 1.828993965708126 1.816835218073901 1.019097058912647 
+init_gen_rand(4) generated randoms [0, 1)
+0.754749569911410 0.008927487776123 0.240459788210770 0.155385925322632 
+0.770344585375962 0.678314238770471 0.202131886460912 0.594486949053829 
+0.263694708877532 0.257987730130051 0.663709965802413 0.264153291575777 
+init_gen_rand(5) generated randoms (0, 1]
+0.408002049515769 0.712754812153526 0.552523506852353 0.321747689663168 
+0.136321242095236 0.838489992139453 0.592452793860149 0.649620583057740 
+0.133335256358435 0.591455455803913 0.062147373169373 0.713238289961749 
+init_gen_rand(6) generated randoms (0, 1)
+0.075822962254969 0.292954618840790 0.434108696581172 0.177871534903399 
+0.414629379390554 0.570773669676153 0.925043266909783 0.259192089244874 
+0.068118267297325 0.563564356449122 0.595979829878863 0.369355127578081 
+init_gen_rand(7) generated randoms [1, 2)
+1.235570621764626 1.062145978522382 1.332997992359004 1.358120098378900 
+1.360455642798055 1.507252101010870 1.910268362011839 1.579259194654447 
+1.703582371514360 1.701915630457764 1.058646337110003 1.939860183249589 
+init_gen_rand(8) generated randoms [0, 1)
+0.106893240603631 0.129367605272507 0.293124712390338 0.655339318341164 
+0.122653435111586 0.762940834925811 0.879336534774384 0.590430747313798 
+0.918636257629229 0.425168637488013 0.534163786341316 0.592662290427423 
+init_gen_rand(9) generated randoms (0, 1]
+0.638276650264500 0.501896354886873 0.781653396777548 0.368608941892943 
+0.519059997544925 0.022820190596937 0.872091700215982 0.790328816421325 
+0.741920330593523 0.005900818742439 0.345078308149616 0.277367524139337 
+init_gen_rand(10) generated randoms (0, 1)
+0.523175425329337 0.374989963169180 0.516529476706044 0.720992141036281 
+0.645571605357432 0.581071873106482 0.836023547779053 0.027613343414110 
+0.426641084834995 0.445291687946455 0.300837904814435 0.464566781151699 
+init_gen_rand(11) generated randoms [1, 2)
+1.115792741804887 1.296127063029278 1.295506068724647 1.800680450237698 
+1.168938652924101 1.797132765063683 1.087436442178690 1.220124830399251 
+1.300005980622459 1.538770615472076 1.971545288919785 1.235857973452984 
+init_gen_rand(12) generated randoms [0, 1)
+0.444856480706895 0.204292323324923 0.479168426490390 0.430983585431922 
+0.194315760007311 0.800211738941005 0.295177869873791 0.867590803851942 
+0.857088555779384 0.237695299409965 0.965532391636972 0.643509190391377 
+init_gen_rand(13) generated randoms (0, 1]
+0.983503021131606 0.766290688243351 0.349177789976909 0.892183494110349 
+0.236609790886608 0.977588846134050 0.010367605963536 0.599384038745223 
+0.914534343247412 0.623983383505368 0.463027859363480 0.921966746622112 
+init_gen_rand(14) generated randoms (0, 1)
+0.454891232836276 0.415368168157117 0.405532901443073 0.943687703675395 
+0.124032641026607 0.126225457849525 0.117076863705178 0.343787630728983 
+0.414848595148317 0.717418762937913 0.268987774818339 0.913989813638567 
+init_gen_rand(15) generated randoms [1, 2)
+1.521364119609258 1.562705187406340 1.651393465274851 1.794325037121499 
+1.723459821653745 1.014635190226326 1.872056428083200 1.845783704116238 
+1.048082775555714 1.825993195730788 1.997220514139270 1.264529497676716 
+init_gen_rand(16) generated randoms [0, 1)
+0.082807078780321 0.140063180614847 0.483432376446694 0.275294957118664 
+0.807907807682373 0.504035623580239 0.531458017200325 0.659917557505638 
+0.909711893442439 0.482612269187351 0.215197195035269 0.911604879268434 
+init_gen_rand(17) generated randoms (0, 1]
+0.067326678918456 0.961392332546084 0.738159338308318 0.172624002048305 
+0.408467118051411 0.916434866728816 0.631858060869290 0.149692901355434 
+0.072517346009317 0.411996350511608 0.334324514485271 0.528999059666306 
+init_gen_rand(18) generated randoms (0, 1)
+0.071400585539376 0.993838702660660 0.004090211076572 0.064981200442632 
+0.023809496571941 0.570407949590940 0.550771164903151 0.927799003163756 
+0.112063934251740 0.502480856633010 0.175479421460867 0.210557079198552 
+init_gen_rand(19) generated randoms [1, 2)
+1.512414732035816 1.496401373580486 1.749495642589850 1.426412693187744 
+1.880215221679959 1.220827628391872 1.612819622359692 1.755393905791940 
+1.614729457070734 1.557966906902604 1.522837322513267 1.389240902177411 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.006640204836158 1.345125096734139 1.502078534995522 1.966610571710784 
+1.779233808067944 1.873264035880906 1.456949337635997 1.526976480878865 
+1.859688846901620 1.745121297735107 1.264199890933762 1.196985910233087 
+1.285153658721687 1.548801410473566 1.174079518851053 1.349961421042465 
+1.779537040044733 1.835434637118791 1.079576148403005 1.985568703047948 
+1.644354041581850 1.633831417279600 1.997576695019632 1.652243713321399 
+1.350928083889750 1.269537059441583 1.941938220416134 1.040546749675319 
+1.175763696070534 1.877620541127808 1.181817374258954 1.960209299293939 
+1.048274835690968 1.725539216184564 1.421392177620090 1.111761370188174 
+1.961277135448250 1.808545793479410 1.520386638885293 1.675040512833552 
+1.505388201099684 1.341723938856129 1.742530588716706 1.194344387152908 
+1.336596434700494 1.491973322299833 1.339358967483480 1.052111674840190 
+1.645004673343622 1.331748554686960 1.502762309294461 1.054178162938073 
+1.519321569866173 1.831938091021636 1.799915076218062 1.506627796789899 
+1.010743642497047 1.106837799064591 1.477089550733879 1.470469398585786 
+1.213395540595101 1.185348475418483 1.217081097929229 1.585663364864529 
+1.515990177868900 1.482850949081873 1.040956055442645 1.369283140430837 
+1.099591170558697 1.383889096007977 1.246370315346121 1.303571692849914 
+1.876738862798868 1.961710434494150 1.541856322601614 1.732853446763351 
+1.924729490257071 1.430151261135733 1.226078474539627 1.236981996491549 
+1.699049715620354 1.354123708015873 1.565090563540426 1.089070647605446 
+1.595627828434982 1.589952798113893 1.038290977913333 1.777906373185616 
+1.657073506942953 1.648970210266234 1.131547214223020 1.969134520528141 
+1.026159015955950 1.633343200032819 1.146857170109662 1.898567925689445 
+1.636383162361796 1.302648016483311 1.905852099450639 1.582935124925275 
+1.730905884554432 1.600488279954626 1.275847624719291 1.475467605471457 
+1.164498946642127 1.381061693594182 1.289988966035903 1.321110076325495 
+1.822504958378006 1.399183467766219 1.243595241734754 1.174639842074412 
+1.369927292224684 1.795686492575460 1.052787856059491 1.616796112736712 
+1.636715731903294 1.508818945575682 1.235170418219647 1.758902856325498 
+1.085722062549324 1.374619159566674 1.213633213038280 1.792884439714808 
+1.976855000131492 1.243481947524435 1.831065450968998 1.164682627897423 
+1.116829964340388 1.994555778482036 1.700794483706612 1.380665034294185 
+1.054593035640681 1.437026944052585 1.905035881659395 1.119605014884182 
+1.028599150051779 1.159472898899587 1.124140122350498 1.902924551818620 
+1.884602064678515 1.313091989341639 1.970444986447108 1.070026530103721 
+1.736325316896288 1.947999742188951 1.086905531833758 1.078606251046941 
+1.185057434321582 1.987876519996899 1.306105608045774 1.868117713349289 
+1.822615833919754 1.818717325393317 1.002764266893357 1.267327035912345 
+1.111189457910764 1.078525230379572 1.384439733255319 1.541263683782234 
+1.346267331116816 1.360238955178750 1.871887726877392 1.704923307463809 
+1.484657691055284 1.478081128975183 1.965280177208993 1.436222911819358 
+1.193778968437749 1.007537343763916 1.736392994673303 1.845553486848601 
+1.029917712792500 1.528931611587040 1.445767320108071 1.837740216714059 
+1.327130226969055 1.971146127992216 1.909826347803557 1.091785994316787 
+1.837460818868145 1.549096100943221 1.719770296322520 1.726791907821456 
+1.925737158440407 1.080792038391215 1.996178095689178 1.569797402723117 
+1.404602211274882 1.900403216204281 1.408457387375709 1.497098816410310 
+1.576079781135662 1.197929259069539 1.440349090785907 1.069085416186833 
+1.680924502511965 1.541770296779803 1.307511883517358 1.788741080585842 
+1.369450829128353 1.525828431331816 1.964828084860261 1.249949361683237 
+1.850634183443724 1.485455747194843 1.830468961459405 1.267017544568679 
+1.332926528997676 1.606983153531610 1.662625558280033 1.335977498624493 
+1.833400395112140 1.317911262308544 1.907699253451542 1.250466940182677 
+1.352603224186995 1.313655078591596 1.188354960304108 1.750055106997219 
+1.708910943092988 1.511306290501232 1.198139998046432 1.489188435615805 
+1.670124154567764 1.706363732259719 1.729414225703079 1.161275905038510 
+1.941352229798442 1.495931042287054 1.739760624149274 1.377922166058026 
+1.613209301572683 1.417515819700117 1.689785143256718 1.645719951009086 
+1.819690681120699 1.668127287565456 1.679073877961488 1.152891002816533 
+1.051990681514476 1.080369449064744 1.052227633150159 1.998252793312219 
+1.307016579957029 1.071548062918249 1.330575000454438 1.260099115206875 
+1.393154461482736 1.456539170809804 1.112992553562918 1.139976676732539 
+1.464330707385423 1.605874184988621 1.392602093681243 1.231261498489877 
+1.742665954319584 1.397907568966621 1.636121530090997 1.336126565911639 
+1.480195979709553 1.733581165197084 1.972026696556556 1.357604955282870 
+1.226506993973246 1.563234662824248 1.212926894023459 1.854376846505384 
+1.064415087826043 1.088643030869065 1.403690379419800 1.544334827009521 
+1.338655245733905 1.690674774947330 1.024338987205623 1.758974353038918 
+1.921781788275525 1.428084820972183 1.774773181334783 1.593180330760018 
+1.180377839422781 1.661138016287502 1.618619636525433 1.195181051553218 
+1.909799506675317 1.089377042040408 1.846078955184670 1.664542876236303 
+1.537492930333639 1.100614591402981 1.629133254169052 1.366772126323049 
+1.942267126633469 1.775025777237139 1.149025136899992 1.134437206069856 
+1.170309423934121 1.502311376885689 1.953180075533326 1.469203485386382 
+1.148671907655584 1.308917744184501 1.372890396241190 1.056474308697781 
+1.754748555200618 1.278381249177572 1.433574703683740 1.427368668449615 
+1.157966671634230 1.877609292986939 1.024122574129849 1.745273083227839 
+1.252483152020347 1.791500810452702 1.107990580050441 1.470494336326061 
+1.967095814993143 1.341057309010530 1.641691370177819 1.430600025773762 
+1.427160415368862 1.041001273928592 1.183960519356346 1.690935570093908 
+1.393041900283804 1.412978111850421 1.851361076937302 1.917574057269027 
+1.777837524335996 1.340176332310150 1.212699385195722 1.246733600975889 
+1.824612174680413 1.195224614415159 1.149603531238829 1.776456878293357 
+1.210413047911303 1.523195412104417 1.257330419901483 1.223701296898524 
+1.091873890559657 1.809474800185985 1.201131141385808 1.846535470342219 
+1.578189551344213 1.798767520122022 1.816351028022277 1.869731870773700 
+1.566491770877583 1.292162598525452 1.013988767448960 1.518017870424065 
+1.876623833529745 1.764898705671128 1.287744238359539 1.469390805356921 
+1.256213041666687 1.188785515467224 1.403660196868694 1.200016694033307 
+1.456258868451121 1.981026071533250 1.945945229108534 1.332159920763486 
+1.433131182933592 1.846149431186952 1.223873252364187 1.552611988702570 
+1.764817983237028 1.537307639640782 1.481230361038588 1.024610607137680 
+1.775291501775998 1.249132009285185 1.314803434084560 1.418718623141895 
+1.706585748268081 1.540454969787930 1.115793763031955 1.327948812280012 
+1.283047737780660 1.804971376684720 1.273879485422071 1.898570203817052 
+1.156717922893194 1.393801043762770 1.154161420435429 1.150900903846889 
+1.353925437412207 1.328033407527931 1.372772827816585 1.857958536858492 
+1.448237397820750 1.291728743505030 1.632872168957270 1.350554550673858 
+1.584925954501590 1.975555924000244 1.243329886051595 1.396088682995482 
+1.042422594894549 1.445040529062756 1.516074745572806 1.217231081990545 
+1.125406579481361 1.289625883544493 1.182172689431840 1.319858806921320 
+1.503410750089050 1.299817720001397 1.830647417632884 1.388051413835540 
+1.862149468542410 1.935731150374064 1.337395410779891 1.529705988953087 
+1.199821850242820 1.176100241995044 1.213453231372543 1.964572544285067 
+1.522872282727351 1.082191443314948 1.992597371107331 1.696330897191710 
+1.622986482106490 1.904328647079495 1.657145751015479 1.107427239776408 
+1.564995755898714 1.837120335931466 1.418303845051722 1.135518943794889 
+1.811909024903347 1.016674461168251 1.377286592605398 1.878588458931808 
+1.701855313474753 1.682485898073086 1.027698555473403 1.706068322877639 
+1.114689982739072 1.848775134395943 1.803816098632819 1.250360484803751 
+1.592169054516927 1.204068768844591 1.648816666663842 1.497753348062858 
+1.478279167710340 1.760794347977055 1.671697628292472 1.691782134620623 
+1.934883008906218 1.239946485555809 1.819570414447915 1.677924661957287 
+1.552058252742980 1.425047945760296 1.400243593487810 1.243178877152275 
+1.502176705486579 1.750828846920182 1.132143342998657 1.385576871183416 
+1.982956095739565 1.338915838556395 1.902064961914003 1.598040264016770 
+1.098064258915956 1.543579205467499 1.025447665858514 1.645369756680734 
+1.891099489628255 1.569609884809099 1.110119786332827 1.140060960509345 
+1.385242508509406 1.825529270730533 1.370750294276699 1.835141289134452 
+1.889715367737002 1.596788903125563 1.754650035878992 1.602740128087790 
+1.734637869599791 1.906222590875330 1.880623346693471 1.935640344528273 
+1.831053111464460 1.784235177399398 1.285703313450529 1.914547290761075 
+1.927967186667502 1.155421551784293 1.817980463764746 1.808298943809172 
+1.928099008029220 1.590845311571578 1.748125738422481 1.013295614566669 
+1.892113384787522 1.902832422000716 1.880686192963701 1.573967339788274 
+1.502130691709264 1.510549807363117 1.312659349884964 1.157290824505094 
+1.802753566061383 1.162502826861035 1.672824053780347 1.218386871423151 
+1.014249992655722 1.248654043994310 1.173744899635112 1.861491274506414 
+1.053837701810657 1.318697788278268 1.010792313822141 1.290158339903672 
+1.368256361321735 1.642558858407465 1.682395755654752 1.324320927735112 
+1.399280884325682 1.089715217630276 1.051804747401899 1.285039463809683 
+1.349619511161143 1.118441961276259 1.014821254705273 1.561368850856509 
+1.557415760361529 1.131601924092814 1.792998814833251 1.257235864976685 
+1.463846117150037 1.846059424048347 1.442667703970568 1.872724586663495 
+1.247572420540016 1.188768609081816 1.833743990552342 1.936430315375933 
+1.138221957219474 1.137062826296619 1.158164411311896 1.248258748529742 
+1.251097014148141 1.083130498224966 1.686219787077042 1.651141829642262 
+1.635041863070051 1.201309222260724 1.073978027590077 1.610433497371241 
+1.433250984561914 1.889660522963069 1.955235704174680 1.768138134021660 
+1.120813849662088 1.797573233988071 1.887381170660012 1.827683274033303 
+1.016326985848613 1.881781223097929 1.102112217776103 1.197000856568200 
+1.665858915573461 1.199872528744103 1.441773520286644 1.085978353208363 
+1.304937609103390 1.041041750429312 1.345757811266463 1.991507898141971 
+1.788199411148897 1.288419407193493 1.127506926162184 1.623484182049655 
+1.036704367209452 1.065131493170482 1.648395634207241 1.306127797434720 
+1.045858223795705 1.574872996032964 1.095071525410928 1.900399861388946 
+1.786892243917657 1.928786907320921 1.789433744452696 1.210571436803588 
+1.890780757605854 1.731967343079215 1.481861502975647 1.009369268764017 
+1.500962631314003 1.784663758812960 1.883206020203456 1.180082302468615 
+1.477419108865210 1.168556987202802 1.693804911071175 1.835778167537674 
+1.777445008854208 1.062607181361387 1.334892002195530 1.253236349947202 
+1.390558823450825 1.411326046204116 1.247418992237611 1.076962630241297 
+1.893308955933017 1.687577911322764 1.475775599304143 1.402998554485428 
+1.102480247728517 1.983671319430640 1.320807703081544 1.784463398590397 
+1.277777850027290 1.135442668341551 1.693778378997927 1.275880573609128 
+1.250430444925085 1.389620064479952 1.171250292794445 1.345633045781575 
+1.606531102919862 1.722494050726366 1.023952077621484 1.607358643156925 
+1.360271763507271 1.548202749434111 1.877784146749414 1.980180908589391 
+1.100569690765320 1.794521828940932 1.976755157524848 1.077065436534996 
+1.603794056556375 1.976593568810122 1.852538974642355 1.625330825355384 
+1.991870135168395 1.064894162407550 1.511089905074228 1.046281660915935 
+1.059538716939454 1.871794241014592 1.028862780820562 1.063632292016886 
+1.969467078411175 1.097375128247326 1.955435432091726 1.572898547692950 
+1.409437044878809 1.943579430531936 1.654238815290137 1.413015241646740 
+1.061583426792451 1.657146384839307 1.131713774769969 1.598428306513270 
+1.172452830691035 1.029600886855500 1.229999471367077 1.570551836334338 
+1.607799062589462 1.287122227110047 1.829567607996978 1.700229881516817 
+1.629258552253779 1.985430096004677 1.590787539881595 1.286501931499100 
+1.049023300313985 1.997191550116184 1.940956823516891 1.247029453292604 
+1.020349805038501 1.278532718718768 1.578113192782873 1.176306253851315 
+1.628760218517914 1.642514116992122 1.826350052007793 1.729952824726616 
+1.509633198560558 1.252555503262068 1.955272386913713 1.606531004129517 
+1.970462917781928 1.769995202910204 1.693359450915823 1.583026366405480 
+1.839656809381478 1.622992885442806 1.787566296771841 1.633354169215230 
+1.548161082582538 1.807582822418599 1.477347497849282 1.081537425089270 
+1.067299165293067 1.395692340831966 1.836368542881645 1.644219118119943 
+1.586966933852120 1.834210981853752 1.020770202425463 1.623142266511464 
+1.714665969514737 1.612631045601959 1.165133136407515 1.092253840985706 
+1.475459248069717 1.167755752600967 1.221032852956396 1.694311779257430 
+1.312931717666971 1.236402269104024 1.604680894220728 1.687464624207310 
+1.552445173508017 1.756947510823414 1.829850232396027 1.336091472147783 
+1.850113922409294 1.541812417364303 1.242138537827426 1.411026422863721 
+1.513861923397375 1.957363801660418 1.490078980783126 1.235718190656998 
+1.258670671884785 1.933518891772828 1.905844871754575 1.939237521607969 
+1.122108914032351 1.877636907343210 1.962908542040488 1.420050012710142 
+1.153087073465708 1.551747130498654 1.794377921398466 1.149849246893568 
+1.411601104945211 1.634681675777542 1.690476872880253 1.527897018207170 
+1.693179943361227 1.949238206165855 1.594030543413626 1.196507318701242 
+1.705861931467420 1.629940267310073 1.571537964236487 1.705205161132525 
+1.633296436752917 1.695044248380965 1.056186158408585 1.904743445065884 
+1.117714437100911 1.751739025786601 1.593812361981944 1.221462965285270 
+1.664640595398829 1.424011195353996 1.361156498626582 1.325348944256288 
+1.236583814018097 1.892023221930469 1.150468922747742 1.904950874264242 
+1.537727539778977 1.973127889221774 1.950365362585772 1.583753605552293 
+1.474044334764787 1.734007520951256 1.305687402201969 1.224158542044567 
+1.919089106269293 1.997876950160567 1.765823870083841 1.920558598216488 
+1.826471601714562 1.937942842410126 1.764032726890958 1.717086385823015 
+1.379330871241971 1.756586250984386 1.103913212705426 1.847241563194449 
+1.347355787412556 1.904313566143677 1.497441889082738 1.174178513012548 
+1.525855848609969 1.147062061160650 1.687867249864836 1.994438654637750 
+1.321440381863302 1.235052757729072 1.781993370960550 1.558486468995039 
+1.469425148690729 1.525768110988033 1.807573084650175 1.667712401234818 
+1.590192020050556 1.793588278145037 1.787764270413577 1.503195073440559 
+1.689426398855533 1.508752734092970 1.366467386751292 1.378099417362432 
+1.006310439891613 1.035465521897361 1.948279073424405 1.504924226045645 
+1.428946667893386 1.120898154439909 1.680032133588179 1.425084919786898 
+1.004066095580735 1.469333099101686 1.777522403347731 1.869854933758564 
+1.502020204952287 1.669990941811770 1.438932945317199 1.311069182274622 
+1.230216101834175 1.967372491402905 1.504725506483347 1.958083050810291 
+1.846931546572040 1.072717363998414 1.565732620130776 1.305695970001142 
+1.656305601890825 1.118459286700809 1.491933130729918 1.325730891552025 
+1.946738184997059 1.510523719516706 1.137764695805597 1.844682612716902 
+1.797166626491868 1.746238071156679 1.029973939872683 1.386531570312263 
+1.548298485692690 1.591059944532606 1.299466225757274 1.933726980106808 
+1.253491082374893 1.054917373941221 1.405507642196164 1.215422645755720 
+1.564704187760003 1.443854319359040 1.349539620621230 1.575308031403967 
+1.852267694192017 1.719174431510732 1.845893679489734 1.759589613373387 
+1.868539889409976 1.248381945009308 1.144074829321354 1.727058059049836 
+1.294358067498728 1.104770082069845 1.478900027553895 1.500207886257616 
+1.240899644364847 1.761464454268164 1.293579746028194 1.375166925515143 
+1.206365182191318 1.819277727065185 1.686093202191387 1.686647509677574 
+1.134541210564610 1.321772516010732 1.828810246689396 1.642266767233505 
+1.455926581325582 1.851594831560782 1.256127791884279 1.602730330838491 
+1.886007166953223 1.791469543432280 1.619338016940193 1.943475800146113 
+1.266990135689580 1.245225239568593 1.096701637186505 1.837934694598643 
+1.996615765109917 1.271369003909768 1.713068843077524 1.125391430768025 
+1.381377753526261 1.987264837261715 1.111833495311082 1.458687223176637 
+1.490066297899115 1.241700906450148 1.823905820043020 1.135459377891896 
+1.105192563295212 1.245289673984904 1.087270597515503 1.878991831735419 
+1.167749849987540 1.258177696803078 1.324639962534008 1.907617332286365 
+1.204827520920240 1.200212764314735 1.525100733762452 1.005860622355861 
+1.427945798594871 1.936037993908521 1.399926238854060 1.863734259703253 
+1.617064083212389 1.741504113306988 1.770443869054324 1.827280245121686 
+1.178391286649507 1.087874538308756 1.361580830073878 1.710575126965021 
+1.561408240713600 1.154651624044971 1.146639557125112 1.217733725114559 
+1.072629459473969 1.574147154853580 1.157968779047650 1.062272862007047 
+1.780241931332659 1.973386202638897 1.394049619038811 1.829297398344619 
+1.010190105422159 1.607405302669389 1.476501433868818 1.213135699665621 
+1.176996699556276 1.714336509984549 1.142972354615616 1.473636122782273 
+1.749653382825755 1.300965930915819 1.762652951166267 1.141283921407512 
+1.164870468046724 1.509097974544625 1.158277263614639 1.088568766885232 
+1.662826025211458 1.737011757874820 1.009154034862195 1.304427801726806 
+1.845514940691884 1.032797756693555 1.605834758544773 1.996437223291062 
+1.264171374647336 1.578581650021442 1.114767200532691 1.508686940414397 
+1.409809521541666 1.798708497051503 1.033161820288205 1.051315779595002 
+1.589202752143287 1.377091317166910 1.610742535965843 1.879316269326046 
+1.147357000156438 1.774015047605163 1.333284844932505 1.883013475528591 
+1.598218350185403 1.677411831776167 1.121068718101189 1.850275477464877 
+1.726909539671849 1.989246692073268 1.719189505614840 1.612086816312033 
Index: /Daodan/MSVC/dSFMT/dSFMT.44497.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.44497.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.44497.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-44497:304-19:ff6dfffffffef-7ffdddeefff6f
+init_gen_rand(0) generated randoms [1, 2)
+1.793642230996037 1.580459783108833 1.438188768785251 1.176939156694645 
+1.840219755016754 1.401937324294332 1.426098229275984 1.773632659022513 
+1.766098608999247 1.449949418002488 1.809308049559321 1.063357031921013 
+1.819181850201535 1.422896645069375 1.733104541501123 1.236968506547169 
+1.170916172842182 1.169207307740026 1.517067629386934 1.249343358629299 
+1.782372430701169 1.462840148159521 1.369005205719322 1.419810765311093 
+1.169058424413689 1.872738715563879 1.911067673358602 1.977859587297008 
+1.338904196415485 1.204538551026282 1.390020541104294 1.758042551227993 
+1.027667496622795 1.966482763511857 1.061112023361420 1.327313256113708 
+1.938420315047297 1.767747001202427 1.653318004065836 1.340711601433781 
+1.800571831306491 1.420336901534726 1.936143361584114 1.406087827264826 
+1.615729457503807 1.065924623831322 1.381505343004870 1.085511958569119 
+1.635044870692741 1.970516852396793 1.377100528919343 1.330110422324460 
+1.906243343755273 1.356884696752639 1.483983232772247 1.744706327897821 
+1.400531042019229 1.974994490556846 1.138677604615060 1.644347149526675 
+1.491027690035977 1.698224041265953 1.180704176575119 1.910175089997209 
+1.459422064491493 1.054307836181997 1.588680921808540 1.050929005482196 
+1.855669666659665 1.334509236688552 1.219852756429044 1.564528292131394 
+1.405928078540112 1.494574358519322 1.164789112522909 1.112750644697545 
+1.954084218841430 1.603847365509741 1.163567985760901 1.218403260945375 
+1.970780425895289 1.544211454307609 1.270899329265588 1.209559267279374 
+1.270224940182172 1.474589760445114 1.444849746452176 1.443444561899248 
+1.652764947036509 1.438125100298395 1.374027331847556 1.841240282668388 
+1.696998887540976 1.450054799866658 1.615418961972272 1.297139738238529 
+1.090546133916818 1.345482936198522 1.746322222909862 1.173473511424576 
+1.178629373409461 1.695737520366376 1.206949967613124 1.341734002745302 
+1.461780411559397 1.330944332531983 1.769801539423722 1.926420462064349 
+1.847391035199325 1.208935904229234 1.166731005873370 1.602154811073315 
+1.160606137230656 1.723894397761925 1.804279046792547 1.499754690486858 
+1.110995711940876 1.546612721894546 1.548192227690262 1.078154660746674 
+1.561076997006890 1.714158104135863 1.796850301264245 1.985287378928944 
+1.355839099585371 1.300442058475587 1.817552729191655 1.131617198118565 
+1.442306297461635 1.955939367397120 1.799122285203475 1.021080733531329 
+1.069164042159618 1.795917484941764 1.293889984380921 1.826320952236136 
+1.973311336921921 1.331484820692579 1.872284258550267 1.443310725020135 
+1.005073499545098 1.403378454718686 1.321883370206660 1.724319219488997 
+1.489766015674959 1.923560880434453 1.622351953092381 1.236437798045746 
+1.692211410677260 1.422001304296591 1.570354537454786 1.540636998805556 
+1.232051919644634 1.693332728546582 1.991871924781417 1.737621152061106 
+1.995475745530930 1.882384225959781 1.808326685668773 1.434829776456018 
+1.350439525134136 1.473159696686649 1.109609964800543 1.401126385355737 
+1.164862853868176 1.307346979900766 1.890278124791960 1.388285243066499 
+1.483015274260279 1.926182102006872 1.851122444031467 1.209728426599038 
+1.487875920370903 1.758935775879318 1.068725132795128 1.686590328980413 
+1.414908417099149 1.986886977109987 1.226486093302144 1.673027573747962 
+1.741267751002157 1.577784701259041 1.699246508539555 1.275159345956004 
+1.756724247602422 1.387148125546082 1.039220456540365 1.095473063686003 
+1.803999643204383 1.671666776440200 1.818265317106709 1.111745664303332 
+1.821818038094687 1.025217163240837 1.710521423920101 1.611612600234973 
+1.131361991277366 1.766994315134484 1.837104057404071 1.403825750236784 
+1.741183639253240 1.730537507324738 1.802744698864717 1.091809659115861 
+1.898001879633949 1.183346740409833 1.011089273759942 1.835062016589531 
+1.778667970790899 1.370073072071008 1.651272060356529 1.596495472307434 
+1.049132494852348 1.095660758280482 1.465509963755507 1.233301018230602 
+1.631373373791847 1.766208872537089 1.047434869321982 1.315789941176146 
+1.850920633139576 1.181040852533942 1.307381984190293 1.978213012715948 
+1.321296883397241 1.654432469818114 1.702824583389572 1.920838868233739 
+1.457680724251807 1.023673307519951 1.391878556707928 1.783150833415026 
+1.100282683129598 1.328171740723869 1.880903918276640 1.975956135455120 
+1.703227599588904 1.890825885382145 1.934527923817797 1.976767231924323 
+1.735494406148337 1.819600510919497 1.562290020521466 1.399753858641281 
+1.421419518249842 1.947193154486526 1.321846257358091 1.569458730356783 
+1.365890220613325 1.442672629503336 1.387074976657454 1.460137374764699 
+1.560301178798318 1.803979555874048 1.148864584712901 1.913934979435954 
+1.783256550850963 1.323562047562615 1.383974988266096 1.080204690581529 
+1.847551195686497 1.183851790857222 1.868083420532670 1.968287658683107 
+1.339445611618736 1.467669041391032 1.746672983093906 1.888593617975243 
+1.235932198646790 1.520468378767095 1.492661136727853 1.257901475364743 
+1.241956423730494 1.502948917844080 1.195995524412365 1.470135907343612 
+1.812349514786194 1.624187355844132 1.296537287216916 1.301901985926121 
+1.197845841238265 1.452426259692493 1.647206040198408 1.602588879774940 
+1.746261701602966 1.338242847950652 1.420728287180242 1.306756202158371 
+1.052326428005045 1.147453635331739 1.536587969175948 1.627395744352871 
+1.101268259838983 1.015835839324421 1.650903305941049 1.329501764882399 
+1.097711984807848 1.883390401223108 1.723168180656295 1.952523803199247 
+1.001168672543711 1.175300586864484 1.919347022881513 1.323468221884445 
+1.273289371439084 1.205652773640472 1.779186506246637 1.144021534610730 
+1.948021017389078 1.720843575873946 1.695006357710928 1.923090346932900 
+1.621325215248833 1.521005606091735 1.555388674740541 1.394717970516599 
+1.226259180551886 1.573844682083715 1.643748659080169 1.729752769849516 
+1.501806651394647 1.448210193160421 1.020171109596270 1.904019770940768 
+1.804610486746323 1.591463152397561 1.228836553072780 1.468531049918917 
+1.797837809077159 1.676637266296352 1.298494784659984 1.773373916927166 
+1.596635613699820 1.116584212159169 1.846405773280272 1.578930623117885 
+1.636744608506394 1.837974428025389 1.206838351135927 1.843176235328176 
+1.577062610610149 1.262135832941371 1.289508562987471 1.995716249953148 
+1.172860391830403 1.763108073456446 1.289557140926991 1.391229510678344 
+1.502054118828869 1.281449561466236 1.443464112088587 1.276457874651493 
+1.492902947144703 1.076954181820036 1.526836428368829 1.499007227874306 
+1.172941146094215 1.019468928202161 1.967651319134985 1.430242146976160 
+1.933660250287733 1.537716574528247 1.874501927437371 1.342267365804776 
+1.094453661127634 1.322553484904626 1.526314378076998 1.021982340361698 
+1.471842190991727 1.028722906673799 1.510058174921940 1.505118197544663 
+1.498746483969605 1.622880031571028 1.243899665476896 1.272830801681779 
+1.329092773192337 1.373143418049751 1.952702225002665 1.774072549006495 
+1.369627655764371 1.856881343267221 1.090368778712403 1.411150914844497 
+1.739241502853714 1.706136973615008 1.022480973220238 1.523059460549453 
+1.240058787230579 1.659726774790654 1.849861850162896 1.401898617473650 
+1.154918926582845 1.402129109245560 1.209781690734340 1.851185299650320 
+1.584324675902265 1.806627338915268 1.937236825475427 1.507871900043357 
+1.634821902216562 1.541984636873888 1.761093954916101 1.852305671409347 
+1.777613404146010 1.446677019238066 1.530142505290439 1.690218395279128 
+1.781165115148499 1.812995757492717 1.663461670773847 1.175248249250424 
+1.580093999366253 1.647346862504032 1.683527761674394 1.343793864316887 
+1.512668882635182 1.964474906601986 1.095993897685762 1.981277975607585 
+1.908218155953327 1.940611450355440 1.964709843231407 1.449486454146380 
+1.500083122719278 1.028363944049264 1.273050732304587 1.547633987682431 
+1.407347161750024 1.414355055596010 1.597221236987731 1.050353651747621 
+1.719004052611113 1.725699566792139 1.722428990974277 1.555274473709754 
+1.067384334786987 1.549164565309860 1.358701320798072 1.295559486810390 
+1.942316404205272 1.291648370831677 1.292477288054990 1.726662178461164 
+1.694398133055199 1.152713918013733 1.519862374474339 1.829668396643841 
+1.202686568976427 1.255210035138392 1.733495619901251 1.361077199681966 
+1.526751905663353 1.794030472429677 1.046473780123774 1.362373094186915 
+1.757741035552933 1.958026630101599 1.954064173971856 1.001860153531688 
+1.821925700108693 1.879341107575353 1.490320335929132 1.307911529139665 
+1.575996063317850 1.300766996434920 1.351240377008781 1.802101286357085 
+1.508345353029139 1.782678797565352 1.156639630757996 1.381654794397295 
+1.678575316907713 1.640427703664725 1.376712652381551 1.959316084837768 
+1.374158385265960 1.020786351790998 1.730380242346859 1.386975340291268 
+1.496396203815585 1.846543437823101 1.781260988985403 1.507389625771236 
+1.294872530528774 1.798234243885168 1.719341753684643 1.266984042401789 
+1.047763224363818 1.303081528450267 1.573754824529921 1.708685539418343 
+1.440906319937317 1.960424251806781 1.766761829797726 1.130958454198675 
+1.306251152417246 1.352322177831549 1.264025823689980 1.332242135018287 
+1.806262098652987 1.522587773860482 1.212656350408244 1.036941137505148 
+1.727681284786349 1.861388742144980 1.363826295882371 1.982948092336482 
+1.189582119918781 1.389382817146627 1.194397244952311 1.161472620520404 
+1.646491364161404 1.368544499428751 1.740914536999846 1.190522349379350 
+1.733860485159854 1.572831542887546 1.369358688398447 1.229491165524965 
+1.910144081571864 1.738508827788457 1.407827591325917 1.310369185384895 
+1.501676044417805 1.341828745086294 1.445134098932514 1.269459723990600 
+1.107127572028821 1.430907907832855 1.332413770145460 1.257998553118972 
+1.669726332927973 1.752503674134282 1.214390814474542 1.237991799799637 
+1.447382203140167 1.676253559009035 1.983509571148193 1.858190313590271 
+1.149470892119081 1.513961086374565 1.256171157345827 1.617137739551239 
+1.823217042311854 1.214423052840965 1.562307982270299 1.866973375333185 
+1.518959429776955 1.026571982851274 1.640637644807734 1.691574326697495 
+1.161014300291547 1.660839360132705 1.996577097580452 1.860595895706020 
+1.106436151266935 1.865421259166453 1.107882090286084 1.606303952460728 
+1.753403370483261 1.015144107119346 1.710084011602062 1.732534546713436 
+1.757999526458136 1.843203140573474 1.490394269085708 1.299897407472214 
+1.531566555648401 1.799786655614728 1.550172890738100 1.072723482623716 
+1.377338487137393 1.275659600717594 1.991755407986344 1.314970251322870 
+1.487596520563090 1.106839462505325 1.538141702604706 1.848276966263500 
+1.496299369217642 1.590661822064676 1.793206282832398 1.977108156583673 
+1.841686673066009 1.782493168028746 1.520163847901572 1.582579982632690 
+1.224565299562240 1.884277599842263 1.490809535732801 1.177342003911697 
+1.257664072804296 1.332331451511106 1.976811532100369 1.374610290193584 
+1.182567225307992 1.295802876426136 1.171296807778244 1.122587490296078 
+1.021358827538819 1.250554606686939 1.966618946030265 1.341442865129433 
+1.210377790303454 1.130301582332827 1.986293467215871 1.814981423952261 
+1.015601384676065 1.119544639173506 1.411744737822018 1.482920369744722 
+1.999218392975799 1.092058373254317 1.576467735715313 1.074154752310254 
+1.456525154003349 1.315557669974057 1.560176918572268 1.628632916309696 
+1.373567831921035 1.365069563660435 1.368669458134069 1.884843467545090 
+1.747188503069156 1.902566532344670 1.788148368064201 1.959666159506437 
+1.611346731669104 1.316626401298827 1.216413836586455 1.178724948192460 
+1.011673560093367 1.785769456739421 1.643096205400764 1.404829312881354 
+1.719058781091493 1.335599416503223 1.414743488545985 1.734387670309043 
+1.751836906796041 1.957929944456528 1.832751269653579 1.064811842123390 
+1.348240226010205 1.447141768037044 1.768269015621151 1.318390149136927 
+1.961108690955365 1.334782380065938 1.049495065372274 1.445536173232074 
+1.186683625117424 1.674871234916891 1.799526103694621 1.661589288297403 
+1.798780886610237 1.361306750064226 1.396847448436735 1.642009734487397 
+1.403172719354934 1.918895611805998 1.825865058799634 1.790754884221526 
+1.212047125066641 1.796818775396333 1.757698675341677 1.304190728295490 
+1.720469373940174 1.744859519481751 1.674317767965527 1.114652357467090 
+1.994702001155988 1.550508804220014 1.941174434315630 1.992191791083932 
+1.260581905277371 1.120465508526799 1.725533533326745 1.077411257398371 
+1.083766892732227 1.322261481440535 1.135317982892845 1.110967392241753 
+1.341463705231875 1.948379502973377 1.297436721606502 1.676813581436034 
+1.507456817333986 1.321669840364592 1.089613970926563 1.999689491028762 
+1.213578467064580 1.574904059971100 1.045240261323024 1.549293043647962 
+1.889926149578165 1.892642930020356 1.694765290855065 1.204134077595576 
+1.530428634010768 1.769598495289114 1.667799916698697 1.756071381715561 
+1.716599558946114 1.963584753049414 1.095730907194904 1.583807290859472 
+1.411622158338802 1.046021813783421 1.818734700180420 1.403797851184694 
+1.696084096157477 1.222713864520429 1.976930721753728 1.183779901410731 
+1.623475694344095 1.653551897658335 1.578911273133696 1.673099375144019 
+1.685957063789915 1.864980749146389 1.963186604507110 1.664616137223728 
+1.241149517356442 1.407621766142551 1.145006894427352 1.724691544516706 
+1.768077934925641 1.900525805740483 1.979948117134578 1.651005750665387 
+1.153934847583730 1.772277325087193 1.273803579809086 1.036310326498816 
+1.760821595173140 1.703470912329257 1.036557083179674 1.019448526685286 
+1.370073771752964 1.012106050405104 1.973027534386053 1.272761146379636 
+1.147890785467951 1.270861755105843 1.186500449552287 1.003438287790831 
+1.550164019541491 1.572916062154076 1.001380500986209 1.409713937794034 
+1.314371218106750 1.310988791813483 1.382673580477573 1.588716897022319 
+1.083873106294868 1.524906365882216 1.607070978530437 1.866770421522899 
+1.160316957168627 1.169448782322096 1.111456815922089 1.747616864977952 
+1.749465863365041 1.232274327106787 1.020697269139544 1.934366637744256 
+1.852437323867286 1.219518813639062 1.399132538756920 1.197743166992738 
+1.484548131069758 1.319660924838874 1.572548764933244 1.798331203183520 
+1.805200917652804 1.183931680206783 1.623958606504373 1.169079910236768 
+1.972210693131582 1.578971158287418 1.486481084636993 1.813150039903220 
+1.115468664487231 1.926386629268854 1.274602292183984 1.405940329915778 
+1.537421827882588 1.428838689936527 1.062097379222203 1.553900927531700 
+1.603472571063066 1.491937709936371 1.826639982785760 1.007137241902710 
+1.037102104280567 1.427566239329402 1.605361980353277 1.225273947060657 
+1.689147039798879 1.223352794936180 1.614589027804426 1.219498310754695 
+1.215749719005202 1.030385593326970 1.151000664478328 1.218673836948786 
+1.376928246370648 1.077591229051198 1.982605384421914 1.216796353303072 
+1.385307115971811 1.374203279478436 1.932258764098525 1.672506745035934 
+1.607584792276895 1.128415113971551 1.974569176813863 1.786296259533987 
+1.420661583482607 1.796575877480542 1.455350764513147 1.487332618469092 
+1.655844904696336 1.891117808937382 1.173812249795852 1.552916019516161 
+1.265435876117337 1.561591629819515 1.849232060466690 1.928299501535578 
+1.320532312323692 1.325863524966617 1.661891575852838 1.505421801299262 
+1.256273613132925 1.340597680566787 1.230172337287731 1.925822933722711 
+1.030502245664052 1.118842219376366 1.132297211259911 1.093527374966347 
+1.589106615087870 1.840248795407271 1.209435900953910 1.457888172187439 
+1.618702239047397 1.226376473589052 1.602569373917657 1.557952859023501 
+1.755255497840806 1.234207881648987 1.533820262470246 1.010326726249961 
+1.687808478363273 1.270378184946871 1.241501739047649 1.270281697630325 
+1.621040758623966 1.873775716479649 1.004693132832083 1.270248644524248 
+1.744833457689573 1.913976443650246 1.521746652214968 1.547399694631024 
+1.544671168799804 1.076378767611519 1.792301512832244 1.363428040726448 
+1.646902568742661 1.240390405224904 1.290116467871266 1.831881065210709 
+1.805171562779691 1.830135587554652 1.714438763248217 1.637935750802627 
+1.872529443099940 1.850000366738014 1.907249862492126 1.024834959120547 
+1.599324038878107 1.477151527756453 1.740079134633728 1.653294941452698 
+1.231211113204560 1.422939924726507 1.358894247079996 1.324481067401640 
+1.391934418184156 1.304061404268561 1.507097461534735 1.771386233544718 
+1.470465158625395 1.544479264513580 1.769873573441745 1.397514261268577 
+1.403582472130817 1.252133066136521 1.298034189272173 1.039468350209757 
+1.078135508792573 1.489554756278271 1.877578590581331 1.078894749085996 
+1.146446397461901 1.109641186545641 1.272580849074813 1.557173235722108 
+1.027248408107123 1.120876573014149 1.254349431588856 1.135505161114797 
+1.488594455262913 1.403266652232293 1.812137419529869 1.279031990475639 
+1.654467664151671 1.058880997003243 1.987806843198525 1.157281868373154 
+1.565549616552896 1.628603167553857 1.065819070578070 1.171488599655894 
+1.732813892329891 1.316007352750722 1.638339315896710 1.411538616833417 
+1.979949037336068 1.930525839711636 1.245983726589215 1.844989371308885 
+1.895168586183960 1.572001292669507 1.670430657628460 1.971601539315697 
+1.929334616413330 1.800350443663704 1.061746866011578 1.659305578103899 
+1.420654311978646 1.027650323796126 1.330026535743516 1.003292695581133 
+1.043859020068490 1.456078575947540 1.260321723421226 1.942751328224730 
+1.399298540600751 1.866971015840846 1.304614382286771 1.793204836868304 
+1.215559781738553 1.052203411380496 1.171130355041017 1.509212019541705 
+1.568778536294740 1.113395190932228 1.526354061939815 1.205986685184249 
+1.119970255677142 1.685471803455462 1.447454592108054 1.011641579402330 
+1.778919380616612 1.011728757237588 1.968864829268213 1.482622126323345 
+1.849568556699067 1.647010742261713 1.537461048016442 1.385360148318048 
+1.654030886545950 1.084344994178660 1.850423823806881 1.613520167705219 
+1.862675131528630 1.720710565371237 1.340527204250619 1.954104622368203 
+1.436838465210766 1.634860577350252 1.375516747135202 1.656704385493950 
+1.106176082435342 1.922746735384920 1.125599074637101 1.906216448343847 
+1.025853165052263 1.566299182797896 1.871072026615852 1.236235014443076 
+1.087453250789865 1.867858361586789 1.818929050930532 1.951288782973412 
+init_gen_rand(0) generated randoms [0, 1)
+0.793642230996037 0.580459783108833 0.438188768785251 0.176939156694645 
+0.840219755016754 0.401937324294332 0.426098229275984 0.773632659022513 
+0.766098608999247 0.449949418002488 0.809308049559321 0.063357031921013 
+init_gen_rand(1) generated randoms (0, 1]
+0.455599401862604 0.276786278406747 0.869442513164464 0.256607551261946 
+0.824800552710095 0.164040149304383 0.600438102787136 0.045818148271225 
+0.238590556501327 0.426445445190838 0.320473574724940 0.165133443903563 
+init_gen_rand(2) generated randoms (0, 1)
+0.097003607168711 0.452063515485125 0.574374247932251 0.862981339415242 
+0.301932030445346 0.888712980830559 0.765145548640859 0.326371172202567 
+0.853346153428999 0.573297805102008 0.377566944105148 0.253946017233244 
+init_gen_rand(3) generated randoms [1, 2)
+1.950842848638729 1.739813491619752 1.305970834641442 1.942324009648197 
+1.893015162185985 1.234881893035222 1.081884613902705 1.850322973566017 
+1.544074805093204 1.889964982258590 1.227558590022788 1.261152059589819 
+init_gen_rand(4) generated randoms [0, 1)
+0.669432091487025 0.004444958979189 0.282915894792966 0.071375313603914 
+0.298714873919592 0.060247676085934 0.478856494873675 0.430035690731896 
+0.157791077810947 0.365985808229946 0.853418554020144 0.947353016854962 
+init_gen_rand(5) generated randoms (0, 1]
+0.066107910511039 0.901549925619374 0.671960468266555 0.810772722904134 
+0.418841509726952 0.376227608337679 0.026321612923461 0.850091179928447 
+0.153054494452446 0.095857583968954 0.755008836343088 0.674201318942030 
+init_gen_rand(6) generated randoms (0, 1)
+0.335884064841178 0.307786462454134 0.305033856086343 0.547822370011282 
+0.970908670463435 0.320126432318584 0.574977250948931 0.846676611829591 
+0.128534264758735 0.303386284436072 0.421452679680636 0.590292404700590 
+init_gen_rand(7) generated randoms [1, 2)
+1.373069468408223 1.212840627463321 1.732272571865576 1.316952103739000 
+1.534116498696132 1.229999084347105 1.204247683860995 1.330633147441771 
+1.719996275368882 1.681032826908220 1.438714758149172 1.118939773455663 
+init_gen_rand(8) generated randoms [0, 1)
+0.051131020685500 0.027923802063273 0.282215831727000 0.908917355131307 
+0.430579055263665 0.019193403218414 0.203168998623389 0.413756999872521 
+0.817964695906104 0.154360999511044 0.261331895047858 0.378103593567628 
+init_gen_rand(9) generated randoms (0, 1]
+0.720560167721030 0.949359277137631 0.855200170729020 0.629467269255424 
+0.807769217908019 0.563367819613422 0.242766529488850 0.813691680872244 
+0.403630969230066 0.450298240597618 0.105884766977242 0.162788154388353 
+init_gen_rand(10) generated randoms (0, 1)
+0.076727791763944 0.547836462886562 0.135883327281024 0.852154436655138 
+0.705840860943469 0.558769261305778 0.294789290097140 0.456624388980984 
+0.589976763469014 0.372815935228584 0.156611070909337 0.848755813687961 
+init_gen_rand(11) generated randoms [1, 2)
+1.816105306277620 1.288826685851095 1.189014044577139 1.739203371002264 
+1.525946316624243 1.620200208688409 1.096321506609140 1.511121413381151 
+1.540994237109195 1.358693219959760 1.902407966880989 1.263638872771530 
+init_gen_rand(12) generated randoms [0, 1)
+0.076116807775669 0.667044720054686 0.787931372352241 0.516425979485220 
+0.380004284286166 0.426403036087206 0.849059805069711 0.604539401610475 
+0.784147055348552 0.274206046080719 0.010610626638263 0.067547441635300 
+init_gen_rand(13) generated randoms (0, 1]
+0.143102490368023 0.117248721906391 0.504318419452768 0.724314512484266 
+0.707617107774408 0.305025797340337 0.257036703462120 0.231580713710426 
+0.908953909389886 0.641723413056777 0.561355428279413 0.954352879512851 
+init_gen_rand(14) generated randoms (0, 1)
+0.950316009492236 0.706637380587793 0.643301442482649 0.916244261764853 
+0.680434167859570 0.430146583284165 0.425880761146329 0.758796973669367 
+0.736483395980624 0.758011251700097 0.440498657157682 0.777585335464516 
+init_gen_rand(15) generated randoms [1, 2)
+1.628007395853985 1.278826502456614 1.955703748849038 1.103314051647344 
+1.039570703054598 1.769183409403025 1.900011772128743 1.656191078670576 
+1.658101614853339 1.424571367510453 1.834557451221619 1.445702498614535 
+init_gen_rand(16) generated randoms [0, 1)
+0.636302685567311 0.137218952410404 0.007397705826784 0.523895709537629 
+0.602910023050024 0.240543263292935 0.634319919422312 0.131365893659735 
+0.385999467922057 0.700459674947863 0.775130918686616 0.028540765100275 
+init_gen_rand(17) generated randoms (0, 1]
+0.941373301584230 0.996171121340979 0.318712266064640 0.717548923920958 
+0.382434151774347 0.590493623880302 0.322560930234921 0.594887752562670 
+0.909515946892514 0.248117175650185 0.139172437255377 0.874952175573300 
+init_gen_rand(18) generated randoms (0, 1)
+0.935728569778681 0.507806332856926 0.962642239726788 0.956678348431450 
+0.708660983797889 0.263137359554023 0.965180426629791 0.401404606560230 
+0.653468421736125 0.346855335226885 0.259452300873960 0.465728685729463 
+init_gen_rand(19) generated randoms [1, 2)
+1.543400249206202 1.186477339009993 1.076339906993456 1.714810461683558 
+1.250448728003198 1.807191896866885 1.607728935858536 1.697546478305597 
+1.834286898872765 1.988720625823551 1.422006850001651 1.553534699959493 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.294587381800539 1.396369648296829 1.944771208119970 1.474093734316382 
+1.877399023972375 1.046106053985895 1.494697948710086 1.334871252071797 
+1.253811781028442 1.398238065738080 1.237315592417754 1.968360801582737 
+1.585325505397874 1.980732525959670 1.507064752518947 1.716869906584104 
+1.144197621009438 1.687077803846495 1.090247794989572 1.425330537257617 
+1.104265260726256 1.715797930326763 1.457066647299533 1.403609274589408 
+1.258517428747915 1.976735620171774 1.508597846133364 1.151121170410565 
+1.262675522651488 1.027165061539292 1.369595468618814 1.974433439643195 
+1.756175844818762 1.527202183107901 1.455207207756781 1.985497432047503 
+1.140817588347143 1.594530986318393 1.760074032769381 1.652620759560882 
+1.734141480128939 1.757620059409234 1.265112867104526 1.866802023311850 
+1.796838428685387 1.992952030233971 1.806788732197961 1.808495951520311 
+1.691247189328083 1.403617204708648 1.871894242904189 1.184741738511933 
+1.698250421471337 1.608478493859358 1.178966926474716 1.577227503201196 
+1.701977789461402 1.089880972643392 1.129500785142170 1.832901591551969 
+1.425114799397134 1.305005484882860 1.646292779273817 1.086564466807140 
+1.469836667080849 1.126647165678304 1.203641992820985 1.613513175896293 
+1.116965988934835 1.974549171759911 1.538156273852092 1.257164932905577 
+1.564912000774086 1.996984896360139 1.781710035880594 1.725353007295560 
+1.047287338243581 1.070183141700052 1.011124141581389 1.015806224741364 
+1.150949090447243 1.949750338885391 1.959156001769534 1.356723831739015 
+1.862449301257532 1.481206382253064 1.640179812050422 1.396000104520959 
+1.509105303594792 1.761539745001303 1.626210690660542 1.090941787526408 
+1.694516339912838 1.634308146005805 1.426893658315631 1.856992999024387 
+1.721847220625076 1.604567037662496 1.403777302820758 1.291036992985642 
+1.147818400795994 1.759974571573150 1.539391055129006 1.411971960075508 
+1.741963550062376 1.038840871892235 1.633826221471688 1.236405901059836 
+1.717069952341525 1.788150778740826 1.473566319909270 1.978077972313614 
+1.741703362382681 1.449198544049372 1.684815313667597 1.292025346268210 
+1.359602748971586 1.333460476810515 1.488731433717425 1.887866525746458 
+1.532952683448066 1.603384740036672 1.129412306642375 1.078907607091115 
+1.802977239501637 1.277974214625038 1.952050683454254 1.782228259747150 
+1.370694685103733 1.654822576815182 1.923025988843166 1.870970428680581 
+1.469591303879701 1.097030214156123 1.205563868578102 1.212909962719199 
+1.312560151819938 1.058684733112139 1.778234014493322 1.945249374873365 
+1.083458965907466 1.775410543410886 1.972577539239800 1.982223008758038 
+1.725881607573344 1.732520194490006 1.074426768938850 1.179967515624287 
+1.150918277214949 1.842020351520299 1.563617359858654 1.268131121453677 
+1.723940217710095 1.412504059509906 1.742840527167911 1.174309993223178 
+1.796809369215225 1.606792708828388 1.800851430007290 1.422613705400535 
+1.189249524283658 1.325575046355447 1.099482684699477 1.651174120493432 
+1.687247191872160 1.416313432820385 1.184349026917567 1.456922705579861 
+1.361745412454350 1.443628259803752 1.487471730200036 1.831240290299178 
+1.006248736722978 1.567353209941271 1.350061390259364 1.532233784671009 
+1.290624717605542 1.149427428799159 1.289053882418464 1.753661549947036 
+1.430497776444262 1.838215701980491 1.678695224286492 1.537395293546508 
+1.328701277913066 1.800904717601843 1.449873811121991 1.659652202622215 
+1.754102655934446 1.291450215926048 1.601266482889225 1.973840463668848 
+1.450340577072953 1.184097345967501 1.980319499781266 1.436829319024595 
+1.036609108588165 1.710080078602239 1.486745213797249 1.453444131407647 
+1.637640209613683 1.411100542770662 1.243929775601839 1.172034363949189 
+1.595048976062623 1.442295739186647 1.009856342987156 1.478344339202702 
+1.472644187706360 1.028289999643509 1.588892317416924 1.439795266987122 
+1.212209529976958 1.422034346156270 1.548555387460861 1.923648218084751 
+1.512858965745037 1.648135925273561 1.113420874597713 1.459787085019319 
+1.609900319953231 1.418373930201645 1.331322301636449 1.371552712492617 
+1.758532453122417 1.108927473641267 1.793752383928496 1.812030454461792 
+1.443713320631514 1.769827981953772 1.555490646921029 1.169269206918976 
+1.176406650110789 1.221215274864741 1.862140666982163 1.703012996544370 
+1.814137300171150 1.022546445447676 1.600640793064732 1.874761730044909 
+1.608878048565686 1.775277876126323 1.948689429947703 1.807478181293079 
+1.425897160726201 1.240427530775367 1.725725865520848 1.878448904759925 
+1.161919580721566 1.477238349362417 1.099043181156342 1.928223665366998 
+1.961879801339189 1.352248460321061 1.661421016889251 1.317646511390192 
+1.494507020844779 1.717199305350986 1.961718597065199 1.896122247843254 
+1.519464814854601 1.363243472410089 1.246792064250895 1.153010134774922 
+1.533885741836536 1.520529642745908 1.246906184486650 1.198781758291687 
+1.643413543608883 1.710042581452450 1.091985391798843 1.191225164329092 
+1.254088132715433 1.827227874955119 1.698729191486624 1.164985902217971 
+1.825917041017773 1.666359167048604 1.506069287555129 1.117763916818629 
+1.777268434245427 1.717882334792278 1.750821091495869 1.667396383267115 
+1.494348483912554 1.398780705659208 1.700233720163695 1.296736896058349 
+1.403807575952512 1.323211866599685 1.405741847602509 1.370425787724052 
+1.637907087388438 1.464345955072399 1.589980854118851 1.938834184109840 
+1.817782198256015 1.515614100794459 1.627200155200328 1.337930832346703 
+1.206418516612014 1.689768043002114 1.761444642835934 1.000397153883988 
+1.461555040473768 1.309777579392951 1.938953626664819 1.756952548401675 
+1.689812049901502 1.299337478469657 1.705299376254545 1.254413894915601 
+1.699498374818211 1.963991999647452 1.275859786189740 1.860892280312636 
+1.609543445233203 1.227474846661481 1.264624321210157 1.366909302473153 
+1.598322977392016 1.039784787157647 1.369089207897953 1.892318352227408 
+1.527037809150730 1.710768912926247 1.958170780337146 1.062813194240202 
+1.941129259211228 1.705077113325686 1.800511694598513 1.752856052531437 
+1.794419441586025 1.546104219472467 1.486989482142708 1.490085977512756 
+1.929398273463162 1.482158411468270 1.930544601744705 1.955582418474707 
+1.822619261413592 1.145491660663329 1.317921132336814 1.293632590832436 
+1.761705055627556 1.022042088467624 1.433941684660370 1.882202586531930 
+1.720897425201058 1.168042743979807 1.775605987125462 1.999535924934829 
+1.121315433061498 1.392608446792919 1.768095593578358 1.900018722815682 
+1.026030005124308 1.607409582137679 1.408072180981375 1.358623946241807 
+1.191740981077575 1.280350132967342 1.160469650975167 1.574993118559082 
+1.749965366368595 1.931561714695508 1.157833638834191 1.995541278804889 
+1.778649156412544 1.432795745107315 1.901143213486242 1.549412743553345 
+1.639675893361920 1.402179316862118 1.147528914468366 1.282132162970739 
+1.546978636685543 1.518668566402374 1.946368168279127 1.351901124178984 
+1.747292204939374 1.459015175715929 1.568001744252011 1.567817476937106 
+1.800248053154517 1.247267705330254 1.361750696221083 1.935823014842190 
+1.948229611147599 1.498532821151868 1.629845723726533 1.688194880349509 
+1.078007920550841 1.507519495957341 1.999447521941497 1.672985736547689 
+1.351020154079005 1.287382510656738 1.407685354132255 1.613424374957169 
+1.371634060102712 1.380862904998915 1.129566244796773 1.953789871742131 
+1.076292835068721 1.425818698929513 1.677184900626417 1.212909215032488 
+1.514354617061257 1.680376453811534 1.284992367721625 1.521306796061061 
+1.873066881105161 1.258092027182973 1.359113412457857 1.298002641744132 
+1.142122862234848 1.163830790348037 1.025160929221881 1.578320232926341 
+1.441457742340919 1.073246982909559 1.536708318391617 1.468380687169012 
+1.514799844367973 1.143135730158434 1.805649564275775 1.642225408892371 
+1.913939286593475 1.846824191864971 1.104725859501386 1.722218211449994 
+1.785436940092642 1.729304773990731 1.608142987007973 1.788242078273085 
+1.348193069600630 1.923449653455000 1.633325523259541 1.581389579390470 
+1.116570655004888 1.867407291262463 1.767924853115741 1.484309188519210 
+1.633201661493481 1.441598291056291 1.879381738774219 1.830664574430070 
+1.301973271498811 1.576127268398247 1.258599356960559 1.993970537104958 
+1.774070725731969 1.349887940935619 1.148405084036335 1.553464879502346 
+1.137569877462627 1.974756046450142 1.041051290200835 1.706487849577672 
+1.776401768984640 1.066225423082872 1.665374042339486 1.228843105977319 
+1.953325948560992 1.186123139269579 1.117295620054632 1.859360071934149 
+1.772520930550345 1.899214013832994 1.974929063390354 1.236639076226670 
+1.189454160846950 1.780564027051606 1.349754601404609 1.970217953398386 
+1.784824363326597 1.515980121374317 1.072579497550013 1.408589776303630 
+1.989446772904020 1.891491367326516 1.561345260539863 1.053193569277326 
+1.601544728581775 1.538832466690159 1.578180390131561 1.521373643999958 
+1.388602666190243 1.638061717304142 1.861748680891565 1.912065549990497 
+1.787426239399493 1.151430571933224 1.388574224276366 1.943309799472178 
+1.409590523480837 1.478873372693933 1.309539472011467 1.758049291841839 
+1.668193739797729 1.833552181927971 1.985307447280446 1.064394698753896 
+1.869660333021513 1.677772891452067 1.288053963238393 1.891382279300323 
+1.454596277600455 1.313992014614977 1.234188347904936 1.980415695991181 
+1.832295245865269 1.193857355844765 1.297222619479738 1.656237597585668 
+1.441853193202231 1.558865946200143 1.938776680291353 1.155263869388850 
+1.013620735822432 1.741957825778270 1.216091112193454 1.197590437714797 
+1.731669190491363 1.758810017505466 1.626198202118606 1.449242880389083 
+1.674012054586513 1.960870654210140 1.232806744442599 1.432184681895839 
+1.605065053153376 1.955748142145561 1.121295716446840 1.853581838556644 
+1.026465763348869 1.118593663109794 1.770241173636839 1.504224522349656 
+1.152915176910379 1.259593702891682 1.777564317147693 1.012559863490868 
+1.469319742246423 1.094075647290910 1.712091315784333 1.688993712070389 
+1.154974179051310 1.829539421880717 1.747456611365630 1.700595065856778 
+1.307117998968388 1.519595648687666 1.664978177370377 1.286602656326007 
+1.289936190235542 1.973160948062549 1.324681195189575 1.875141571297182 
+1.335217730854644 1.920871065150912 1.673928639154287 1.547749537981370 
+1.509136102324615 1.349544711544976 1.652941041252478 1.905634888480287 
+1.714257502280228 1.247352112101984 1.648807355729812 1.780212153461273 
+1.835405901143694 1.947931883301531 1.657927603829068 1.627334208992200 
+1.531695732731288 1.251440704370876 1.469174224190351 1.889316693777306 
+1.016281662826149 1.355623043886581 1.195161709470404 1.732016725750207 
+1.550250113663792 1.004034808049808 1.802690882370529 1.232719001807224 
+1.819320259328516 1.608901633880009 1.216670614640023 1.755850045132790 
+1.813313432117395 1.130881250446469 1.827754593211804 1.413402427627640 
+1.919833066516336 1.393036076563567 1.709663816438054 1.687399148682950 
+1.155682694413264 1.212138814714066 1.083719050858893 1.808151149735344 
+1.357862018401867 1.750121924838341 1.053729844785570 1.650359748642374 
+1.977540185346284 1.739150779306540 1.659301209713247 1.811856590258986 
+1.124708849331055 1.948010858166092 1.306454095834406 1.670871262449773 
+1.137284317273013 1.902831565058240 1.604620537888179 1.264752068314900 
+1.070352199766983 1.045827800242905 1.069358917155196 1.677318041130675 
+1.068788745172363 1.398350977754614 1.097487361099995 1.616559511476026 
+1.890391237487679 1.969028010683646 1.202900638034195 1.154914128647500 
+1.916865881820889 1.734412714325374 1.455260602309138 1.198952552890762 
+1.592835597225208 1.494453005683166 1.035853440565681 1.669880523235166 
+1.334953999201345 1.626214286089603 1.203251890831844 1.377073568928783 
+1.654228228769697 1.246457692978422 1.957262426136686 1.864894049649951 
+1.761746896552153 1.585973888280484 1.555458655240867 1.087403563988683 
+1.829386335308138 1.045071879805348 1.954788988688556 1.944579481830323 
+1.574954556170602 1.994032571313915 1.511336870942269 1.779761062767502 
+1.286480988569864 1.954441756226725 1.353885611969040 1.377820970237185 
+1.957201174950218 1.509456977774331 1.018539179427862 1.248153794245195 
+1.599563385367431 1.316830583220031 1.010852505902325 1.786651678775228 
+1.960586622857888 1.063698587665300 1.664717070606598 1.714760768562787 
+1.484528666651545 1.469631753606428 1.003000047898470 1.015448667401899 
+1.380224161859595 1.792804758657415 1.574772611198094 1.812127553260131 
+1.077979038674731 1.331754271115689 1.415742809476639 1.882599394988696 
+1.312683982618450 1.434873959913723 1.645345807547536 1.585274492269506 
+1.669920638707742 1.859263569745767 1.654995386558109 1.529843882839816 
+1.627512674824675 1.402418441361712 1.983550380493184 1.208419696767955 
+1.393232203228595 1.105274765460663 1.601002512137245 1.292785781144312 
+1.877585019769564 1.304420755833988 1.190445997536467 1.222293388087501 
+1.745328504214796 1.063077087962874 1.336017255205759 1.200409813373086 
+1.502403378444210 1.644746123547732 1.489446563999473 1.929183546678228 
+1.663806191458840 1.926860026203905 1.593964517717660 1.218619305059570 
+1.165955121938188 1.057073280123378 1.659665013874027 1.306952542611396 
+1.565303275960280 1.767911789245511 1.237193402165231 1.405142621470564 
+1.606186240678101 1.489470693156442 1.707300354329174 1.293257538874500 
+1.098202288012190 1.399766509085567 1.591522702421065 1.681572708391488 
+1.886639455035772 1.860201730582688 1.962240606876822 1.358746073109610 
+1.610055836795865 1.287605174681712 1.172855989660465 1.676921128709508 
+1.666740897546808 1.039292768219811 1.933134560336365 1.329764115830296 
+1.991945265028355 1.346033399545702 1.695175228938084 1.766882519370073 
+1.747173458346206 1.618608127220778 1.750524164145068 1.662453315304681 
+1.913929313709174 1.724144933290480 1.470089600113885 1.533490994543096 
+1.120639000270099 1.709463893422070 1.141777672018221 1.258825622556849 
+1.544648489324554 1.235443044027908 1.831387930435174 1.160037372308373 
+1.337803490217558 1.706665150990246 1.410105248285704 1.415403086366839 
+1.163916033974986 1.164476527417362 1.319159032252521 1.145803307568467 
+1.260651614163876 1.684281649125630 1.704447803456915 1.454403219296228 
+1.784288832537443 1.394164789205041 1.855874918098609 1.730534309757508 
+1.127458848042671 1.229797370916883 1.918811530565018 1.483462408950907 
+1.301617592385879 1.542925520134135 1.231906587336754 1.412336691115272 
+1.386331308000149 1.406830144976837 1.658212423427701 1.908949345058438 
+1.195064575039267 1.014780792468586 1.620061414589498 1.932652347755981 
+1.108949009249566 1.195271180234726 1.552718295276801 1.677986143297279 
+1.142356880873284 1.247843857162049 1.829589898385432 1.841941982337573 
+1.972611649418218 1.105666767949588 1.625697720064156 1.740037884063612 
+1.624620564598544 1.550972642667347 1.083622239455205 1.851442007061165 
+1.033494884784028 1.359038732699673 1.286677281156321 1.661460545412510 
+1.600115319357380 1.532090385002461 1.419710964947985 1.874915913105004 
+1.489634940607138 1.872432797202109 1.072563168114232 1.459770272450783 
+1.041267273213277 1.115995207530527 1.376643199315824 1.575792194696313 
+1.709765389156183 1.712939137553630 1.972168327271707 1.128719107383546 
+1.384679498204335 1.792100776369532 1.903562879579853 1.876588035896773 
+1.040628134913439 1.448825725247375 1.422802790287492 1.194518017677819 
+1.254808039098337 1.166946078270038 1.100978728984143 1.741747334280845 
+1.743092202009691 1.432050560575701 1.014713500128193 1.231652451574752 
+1.945963306966924 1.329897899256941 1.589939356290625 1.455342842410590 
+1.679296782809450 1.251750577317506 1.228326697152848 1.108119117804087 
+1.380438251741772 1.459421792590626 1.389097381534792 1.310355641994103 
+1.431339304235580 1.967675884982303 1.839356536344892 1.393055143777050 
+1.678975512539633 1.841613507278135 1.532272670221318 1.013770427312540 
+1.791754527225044 1.810836261843944 1.117117225256510 1.298464611518204 
+1.255480771650885 1.009041641633097 1.691593245187638 1.994823468938356 
+1.456336171612499 1.141928547137094 1.111525525416689 1.588509580258019 
+1.182981874705195 1.998514450539471 1.285776370155649 1.796933158046955 
+1.666107453061575 1.694950439123128 1.947070177708644 1.789140192524428 
+1.595536409712831 1.588056773102599 1.522452159032543 1.035258222624437 
+1.504199789155926 1.935992833854614 1.517097969307953 1.889020691841522 
+1.314240341199844 1.135017410493750 1.192071071905663 1.236473057711232 
+1.355380820914044 1.346775363390154 1.225804557567436 1.880886705327606 
+1.230705430268385 1.949528711515625 1.126823147453312 1.426577830132191 
+1.659465038352679 1.968060218122917 1.825834417714803 1.456315128029087 
+1.559135001963869 1.788839349576217 1.987379046166447 1.281566195447315 
+1.120296102771736 1.576408772681596 1.574881654753725 1.064753346242362 
+1.825614708267570 1.933314771190331 1.717939398671829 1.434808004444145 
+1.009131273970721 1.805352940511694 1.367052030883408 1.188038153640404 
+1.402321444788598 1.039450027704783 1.343245779309264 1.090774649638274 
+1.193944420026388 1.082053894914806 1.824738884798878 1.131716698898092 
+1.126375722878261 1.874412975817014 1.555613315060337 1.826749820499302 
+1.895609954100504 1.808246847558001 1.519573223692720 1.561997987554169 
+1.060623705425292 1.433646242573015 1.500228853125672 1.783960186797493 
+1.966647188902829 1.771123996546160 1.724882693125498 1.277415939534285 
+1.665121791293695 1.912801679215608 1.985841221493016 1.843863451862138 
+1.208225536063977 1.379761361073128 1.468416744426594 1.503719733130103 
+1.275357250583387 1.745177420788510 1.451652755482432 1.325419608793514 
+1.781125945835641 1.557011907663870 1.652048460319012 1.219581465160225 
+1.207120461896216 1.769629494211450 1.305180639843161 1.474059748853457 
+1.601933968474341 1.941180560238193 1.492760034241702 1.288546232105641 
+1.552401248750267 1.334134488944658 1.823169918037499 1.747061783465808 
+1.480305747401346 1.807617526676594 1.885944457498979 1.097491677436850 
+1.485446436433270 1.898675614549038 1.631642223610227 1.201074302289098 
+1.321201441616834 1.704010691649997 1.997344004942470 1.367331025139089 
+1.606322640783526 1.198233160267550 1.494591220852712 1.451534709881502 
Index: /Daodan/MSVC/dSFMT/dSFMT.521.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.521.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.521.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-521:3-25:fbfefff77efff-ffeebfbdfbfdf
+init_gen_rand(0) generated randoms [1, 2)
+1.421944098478936 1.957408659873361 1.190111011127383 1.632549872377003 
+1.616831120464805 1.984390160895336 1.643335574461273 1.739347032660861 
+1.228605414113949 1.052731243538065 1.772446323308858 1.114863567000073 
+1.636605378654444 1.087462000589056 1.391044934734219 1.874703280081496 
+1.002390505568761 1.128221774440288 1.096155451991969 1.224071270421656 
+1.872738744554070 1.036551026545187 1.821818798205752 1.789673352801481 
+1.106521350186195 1.515824960608183 1.519851559097155 1.492061163836929 
+1.887726111640303 1.948856727997993 1.320258101592893 1.834108867003125 
+1.327866990767677 1.294649266684497 1.789248309175945 1.539268595903307 
+1.254196308281918 1.054092407495089 1.389542152582767 1.726060778743429 
+1.772069153256107 1.617417097243811 1.614584886045562 1.254512244176205 
+1.247478276768336 1.169219900796798 1.045308225726271 1.175654229529884 
+1.473445040197187 1.092018444535314 1.973008749265394 1.192379579509066 
+1.936410624322440 1.260660802386754 1.429953598674180 1.390841133734470 
+1.362349506717191 1.123153649374416 1.058439656303104 1.900344347766063 
+1.938308877058674 1.656792192436948 1.080599960386111 1.112625717082661 
+1.064465261369570 1.824433415223937 1.545381304056051 1.472653950656777 
+1.137885716371498 1.701404808767762 1.559960337618534 1.634163722474169 
+1.372021151336062 1.744586259710773 1.321589317925079 1.486642256750914 
+1.862327763083939 1.075172296073310 1.573388811857288 1.101185801612848 
+1.918414967963940 1.793629706993943 1.246498114440315 1.995983844973066 
+1.725269228365091 1.121888537935792 1.767509983548085 1.203582121903334 
+1.247582431045057 1.758621840173202 1.424107928314876 1.755779491861438 
+1.502046769073883 1.843080684648440 1.774284301866664 1.215861919362741 
+1.589796181819331 1.482003315185172 1.939892285561927 1.072915329433098 
+1.380780138594459 1.157251526850116 1.885565339419955 1.907278154018933 
+1.782951723567056 1.363705045121745 1.187403068645774 1.989373153228237 
+1.506934620320753 1.707552124724367 1.852265174003890 1.837355735493005 
+1.417343908946802 1.884720587123827 1.215604711492599 1.426670432860341 
+1.566389477370541 1.741906780293768 1.522838632618342 1.226876315848571 
+1.141852049678769 1.945531358001709 1.550719817619310 1.805713059097023 
+1.301141430383593 1.208565477601366 1.902130019999460 1.649337483329756 
+1.241410951514797 1.041542264261973 1.764296999791918 1.039416727432761 
+1.089400841658636 1.832591593301952 1.914809065998617 1.125271118700883 
+1.077270381241304 1.494925089656199 1.137830507839621 1.052579312088753 
+1.765982504667668 1.467433223287561 1.672311940135861 1.095727761139504 
+1.150995170260851 1.896545832207109 1.985446936105724 1.877959303170379 
+1.735789247686071 1.358115267751052 1.850680578725908 1.241313311286619 
+1.384462590366469 1.685302188841935 1.113404711500619 1.269140213441217 
+1.863633336207126 1.961190145535963 1.221676799605272 1.540960168530507 
+1.434522102934897 1.229381759221743 1.238643254830133 1.627009955151886 
+1.314833326380005 1.920261635361002 1.269114197823107 1.647380501662455 
+1.138977329887193 1.503500466445193 1.752566313257892 1.688897758109339 
+1.221210106939021 1.693322371036598 1.326686575353098 1.871938244045208 
+1.428850297336260 1.253706004725279 1.278468120759449 1.964805909004379 
+1.429138557657705 1.691975561253884 1.313472957225343 1.944580765140117 
+1.995948448579093 1.411991162022675 1.078462737191011 1.011037959355124 
+1.075930536159439 1.366234076020537 1.504802709914584 1.108710991041226 
+1.487310280452624 1.372664283356667 1.252412272402132 1.315111589700300 
+1.255009021395414 1.778788090306852 1.774325636253298 1.894519657510636 
+1.743689803331580 1.662046851995440 1.717955393882628 1.420353547412755 
+1.627921039465800 1.398521939286720 1.437248935226819 1.199785527534206 
+1.084721712595188 1.875816061122103 1.987119577322292 1.307626102572506 
+1.308729145952810 1.033266078207883 1.257489160831464 1.549024806343603 
+1.598348841861536 1.814366168918025 1.212824664932918 1.185696674258322 
+1.377613294826528 1.728212468227807 1.644810995860030 1.951026705577493 
+1.792050133901049 1.379746539326036 1.350919170412826 1.652718572621244 
+1.974181260716241 1.272401773595921 1.999738170186175 1.367077922237471 
+1.158672799134909 1.861730861933067 1.363213985727711 1.295288677924179 
+1.298238877012307 1.671257928559949 1.556045517333904 1.948581895218541 
+1.479452659600547 1.303366365559153 1.686175231078714 1.624008788764397 
+1.339743576765808 1.087325906146538 1.855241117029494 1.210072500903530 
+1.229397829836456 1.129486074109305 1.941120884034431 1.516645946754347 
+1.801184715869444 1.578108106496557 1.904563997871219 1.533608311169815 
+1.309893163121396 1.669465205352175 1.776725797957821 1.197402103256382 
+1.129258900907144 1.333850635565752 1.620347650033725 1.321172765678308 
+1.951856957030179 1.269874320608315 1.766553833620622 1.072224364904750 
+1.645179125166359 1.353507057647035 1.087457902462035 1.224146915331886 
+1.900691914654445 1.834370300616437 1.089787029039250 1.024519875462008 
+1.860367534024477 1.848010908365617 1.842843725996441 1.055612141425559 
+1.564319131893140 1.359551224003992 1.254247250705726 1.053242250572347 
+1.651832032440034 1.893092642414121 1.763531026807837 1.919875191227458 
+1.462268494108715 1.204697610465595 1.030511402714525 1.500954600944092 
+1.887504030090944 1.046796810933341 1.873383700901016 1.826879521395254 
+1.076319633295031 1.072010522896154 1.357255009723834 1.295157023401054 
+1.176402203313364 1.509683861309610 1.066400672542439 1.423291464778123 
+1.004935840382814 1.638427979783363 1.899148368653904 1.441400307033541 
+1.784814603361819 1.408283383868379 1.379050865440348 1.982626612330429 
+1.640899902595093 1.297643029564933 1.720465194045447 1.769299233766416 
+1.747250412915086 1.479265502765512 1.993260171678031 1.952755916439403 
+1.111658567972376 1.315488672641726 1.338215692434233 1.518524188562273 
+1.325491713413207 1.467128877397176 1.696575888837241 1.000836584610210 
+1.317597985720655 1.847899878527947 1.171897896601005 1.699736040794338 
+1.739433706992069 1.735224777787903 1.597346133042589 1.915180492864455 
+1.462150469560302 1.819875553393321 1.045346598620536 1.887806635411293 
+1.733814907789118 1.438882940093352 1.926013683112448 1.262237548604055 
+1.053804032045494 1.082988068863908 1.221474044967364 1.818500553780263 
+1.751686787332112 1.549026392033843 1.784694090504441 1.097718636682598 
+1.291517353199977 1.430810997829457 1.002180407330556 1.713918856302348 
+1.938432392128486 1.029946838529577 1.776294068168146 1.143725241430368 
+1.831222663738350 1.364470462458703 1.571272629381097 1.781421652091381 
+1.825657104403353 1.429343042808978 1.462399706646591 1.409427912560833 
+1.659829582922966 1.535049150297712 1.586174466664093 1.300512876688015 
+1.892096820487884 1.019557302873151 1.300913198780544 1.584421369941060 
+1.162544109038204 1.879422836859933 1.859157320287184 1.825427831038655 
+1.958873781037597 1.239395574619141 1.076019501162516 1.307614395947906 
+1.315023023663636 1.526872796373568 1.353581852212422 1.926818830395034 
+1.753799327065187 1.746461973748308 1.224798256440723 1.567336620720363 
+1.925342280654095 1.136326665277186 1.342751546042353 1.975481768078615 
+1.568188947089161 1.642218894773623 1.788212499799013 1.830511195110782 
+1.972247951789518 1.140225627402601 1.008141833856336 1.422958760963009 
+1.046883527393386 1.000283971112336 1.001813480443378 1.374246699334525 
+1.096276190731219 1.888460082784696 1.571826105782054 1.690696041666457 
+1.101872305065513 1.815216406712599 1.911677017114769 1.464458879516851 
+1.020938909397761 1.691229340909581 1.510637830371549 1.299464448876780 
+1.177543832454443 1.278474426887394 1.305102508599817 1.829291302906111 
+1.753266128461545 1.891402655383632 1.301078870091252 1.140257544181585 
+1.138508732041293 1.147518466030739 1.238208811623640 1.305909267461217 
+1.544325924736169 1.830059192563496 1.304055916732209 1.975033897747662 
+1.232731742203311 1.279419744708337 1.261289012771093 1.317900223797079 
+1.004770643590582 1.457820784270558 1.138770971101938 1.492955115398961 
+1.611963114704863 1.829530394511233 1.881025623964868 1.452831313841011 
+1.905595242429322 1.919266432479234 1.224166170214967 1.575148994505825 
+1.639130514493721 1.723147213089868 1.368545618306434 1.806558527484902 
+1.551310210243143 1.171999409510426 1.353829051883034 1.594516084739198 
+1.219283191499909 1.627761733826652 1.530894501368659 1.425560660873346 
+1.642037192503104 1.201311351833866 1.233957587788214 1.215454923330754 
+1.013139195559812 1.357632206639312 1.168319005383887 1.802515100176896 
+1.328314375328728 1.617620136240326 1.783540338454187 1.811436450496045 
+1.698377495578679 1.432614205529128 1.911086640359651 1.058413266228017 
+1.726591299707688 1.221887883065546 1.164561412854302 1.659635779418381 
+1.880485003814825 1.829375297475314 1.362435243485760 1.359855748496440 
+1.691533790218447 1.087010256246633 1.818534697243615 1.530769212165685 
+1.967860839272548 1.492853268798343 1.785646262831137 1.075139686183092 
+1.120846157601859 1.930392809478947 1.570697241865839 1.594222212742420 
+1.930922960054597 1.147647939410567 1.145040708993833 1.724064137127066 
+1.198990842419706 1.308441455640907 1.885459825432950 1.722415798575247 
+1.701171128707172 1.526928003631371 1.971805287659895 1.400115868135301 
+1.053648127023340 1.173139904494106 1.130627674693973 1.562137490085345 
+1.600589787755278 1.095205677791889 1.358301734223473 1.772001743536052 
+1.808135967006108 1.684089612404051 1.030246048377909 1.729947555543716 
+1.514451263589108 1.867916301890215 1.192242775601462 1.631416890557073 
+1.254928171326067 1.315076155861672 1.646147432018629 1.360677686125275 
+1.104274943185673 1.233312332781931 1.671638539345168 1.425359838483579 
+1.215752675556352 1.794318413390729 1.712809959268105 1.764904792126224 
+1.142872434560067 1.973208315367292 1.660601191925213 1.783465547608061 
+1.490258767529545 1.744598059362156 1.327795697497129 1.103323232662079 
+1.802347341830994 1.694468216051518 1.528507552564681 1.300268226614423 
+1.355030857266686 1.443619621130074 1.205693125056329 1.809461346102974 
+1.579097562325708 1.974155310960545 1.853186400198051 1.372785241283641 
+1.985615465436102 1.073093496239047 1.481499516759004 1.730645098124572 
+1.418857786469450 1.237569952535188 1.629753214206164 1.933696827008629 
+1.547728519051265 1.606825447323856 1.193276548880306 1.246477818168155 
+1.382355887234006 1.263290717113388 1.614031947764364 1.436142899801111 
+1.910439401751251 1.165496958446527 1.857961211083656 1.329084001179235 
+1.838879989674694 1.432247834810403 1.493219849033656 1.412187115569223 
+1.198775110113921 1.761250133363698 1.401897578392068 1.492992523353378 
+1.292672302123053 1.116603163788736 1.809294163983135 1.095349331631711 
+1.311448892765946 1.906994727488306 1.322074814512502 1.831792018874103 
+1.718606253720653 1.082813601883594 1.818734986783292 1.490335465637485 
+1.519676733736696 1.679735833434552 1.252260860744804 1.844430830552300 
+1.395854533339142 1.512665659189344 1.175985495604715 1.347252163621182 
+1.959565833461770 1.512834741407362 1.968077734181079 1.876282603188137 
+1.206748154153857 1.139758616877214 1.017173904198713 1.857181594845353 
+1.143203413104263 1.898559003991795 1.144971752081216 1.853574028731672 
+1.766720781524414 1.388505637945033 1.285839939509505 1.313105300483298 
+1.224342000944443 1.492125615482307 1.869726172407379 1.056448481654024 
+1.040878967522817 1.551906502277850 1.781138206247113 1.250610373390070 
+1.095505995059008 1.580572987386013 1.271817223729820 1.505272612753252 
+1.837311915572314 1.159670314399011 1.167363623081229 1.100485712803215 
+1.557302401659234 1.241748435139864 1.786663213394125 1.968735631826053 
+1.648858095802664 1.273937361927970 1.159625557472353 1.568301212295878 
+1.353829970429043 1.774861641234996 1.450151316336745 1.755327724432314 
+1.351389578024334 1.129275268429866 1.705600269718840 1.594667858779128 
+1.541346906565728 1.017706335693777 1.397838161816285 1.693427283175188 
+1.468222040785574 1.930856995370667 1.716194584560369 1.762657510481220 
+1.636534278242953 1.762420223544905 1.204394282016103 1.966094988519407 
+1.583446040298961 1.837785646831295 1.116843903107126 1.906439232678815 
+1.375461576495119 1.966297409831861 1.530775680492073 1.760686713707386 
+1.612039834480577 1.542799089940950 1.962587604995782 1.657967233430283 
+1.777599063057407 1.357125384152903 1.944704532392023 1.996490230925456 
+1.764582760505264 1.786973389566143 1.270970202128471 1.002405309860310 
+1.059618634391420 1.710357897202383 1.285268338003451 1.192839329596043 
+1.614142741766606 1.490399728637063 1.399994334412036 1.733921913538504 
+1.025512463907097 1.526393246064839 1.782990997892550 1.939801037564983 
+1.328906079662421 1.488770302526421 1.583231538116991 1.673906505724823 
+1.745784122636695 1.080201632500003 1.246338656993765 1.529899632377570 
+1.695621870577078 1.129928267277292 1.401027384575121 1.542454283895461 
+1.459178182085192 1.138020583875246 1.519061396792060 1.793012191477057 
+1.768554164920060 1.436114188794611 1.298800036435665 1.971811541052130 
+1.812823399603367 1.506249479785788 1.723753293947891 1.156193962440113 
+1.959417108361962 1.503913486153258 1.990080898750035 1.737127555881950 
+1.024149940774942 1.004621676177378 1.590361596973875 1.809233476071662 
+1.768308014507692 1.500743973266748 1.367748739113467 1.306670310749022 
+1.071216040591316 1.694009626556220 1.674175586709446 1.775531124829215 
+1.061995081193938 1.516837801306741 1.825036100827744 1.440780438613178 
+1.562073534323606 1.809736551372640 1.558654285293214 1.384690487742033 
+1.103618162713544 1.356016854810345 1.190339604300783 1.591772727370690 
+1.113651422326127 1.248472009761695 1.552780806603311 1.603990956594510 
+1.670618898986476 1.961713729932260 1.736831192333644 1.211716908385003 
+1.268752742648221 1.808972354731863 1.497317697176477 1.122077176171892 
+1.970735516110577 1.839749222610372 1.593952684320717 1.866898298919977 
+1.543023579327759 1.318722549298626 1.353171857873883 1.969411404419720 
+1.384223615202176 1.940668473888355 1.831519235043650 1.315019019511361 
+1.423400779481028 1.357663519692878 1.506126477776090 1.657227982174708 
+1.339143415856895 1.106651199236450 1.628767358066660 1.959535122547257 
+1.977257171369204 1.108015056188103 1.809240765339125 1.606310916808053 
+1.859040270269676 1.439293172696664 1.785505204027249 1.743496707377407 
+1.621130005061031 1.033971482188802 1.182369284583493 1.145975034390875 
+1.519764763760225 1.572040731636883 1.088885183781040 1.660885053411099 
+1.440914686560819 1.308645884554585 1.562811241598103 1.050670067621590 
+1.278792847154665 1.203495857791560 1.871498280463475 1.354798874213871 
+1.000782395305633 1.449893995709580 1.633412948420969 1.357803090534069 
+1.718680444150993 1.615021249646367 1.300477295046710 1.803763090413903 
+1.655684403619687 1.014029824473536 1.064708804890705 1.289806032612971 
+1.892680314893176 1.042818755366304 1.517255235193854 1.231936607129704 
+1.674858350597612 1.617302072021779 1.939302223630463 1.601200799344574 
+1.840789296110603 1.637492300382224 1.781599926704413 1.115864990772059 
+1.788384940470639 1.737516462861091 1.496557522175230 1.502305848165162 
+1.597469816107047 1.624807267024703 1.602317242208264 1.981309437810519 
+1.484700143396421 1.113059991427968 1.970483078033322 1.086696969101163 
+1.943959449602209 1.510059942571570 1.985341561214625 1.641937871886389 
+1.392907570984177 1.208796855876029 1.198870770162389 1.326953033337182 
+1.305406765375345 1.673417177606947 1.193903763097661 1.832994480306854 
+1.972978706586547 1.074049062196458 1.476182422870224 1.556785634919327 
+1.220642336526971 1.034961439229276 1.621393789507091 1.624144614186162 
+1.425106117962398 1.357510255752644 1.412661532302921 1.899538935311299 
+1.828632269606451 1.678681295059801 1.040119057542184 1.815563480656771 
+1.680949728983119 1.335070501564716 1.285012082602775 1.786484745825192 
+1.121238035064010 1.965732199815762 1.930219080732241 1.647650562531407 
+1.224977903678281 1.735016006030168 1.909307506242225 1.908660844728343 
+1.848566666980428 1.896792310279791 1.632982316117440 1.722830706735092 
+1.842769265807164 1.108556505311833 1.064808926197317 1.359393941569241 
+1.161927514222553 1.268121920946046 1.971007137354729 1.144368812928649 
+1.037099779802150 1.117912309767158 1.339074553117308 1.562203135477072 
+1.982553916333266 1.283679861274929 1.793649104937658 1.625765628185919 
+1.047150414715505 1.806534796386063 1.454569699804843 1.302495837988271 
+1.947180647462563 1.631913084885116 1.716241003002192 1.717274197263464 
+1.145874811662342 1.844021276911700 1.286356224226028 1.448231440525136 
+1.141954512028515 1.039613210238601 1.817476992077502 1.760382139897084 
+1.407750553164968 1.812569974085484 1.641161156149672 1.697422055978861 
+1.714829775305783 1.929785937645766 1.716447879866937 1.854268101934073 
+1.121911630576161 1.197517895350150 1.004743448646769 1.072065041071708 
+1.119370389217647 1.899323694833023 1.718457746283301 1.684008126179527 
+1.319137836033135 1.447767810409670 1.012599481115021 1.493847303394084 
+1.523019009170983 1.739806740014410 1.417433842651163 1.743243212735018 
+1.239635334976984 1.827971428640967 1.718903277076515 1.831011033166290 
+1.033327641341451 1.032770062325701 1.975216530655317 1.958434085350983 
+1.227123778298683 1.392298987605085 1.817004849695195 1.252261664991397 
+1.797343875857502 1.803170842944485 1.258881278032911 1.786110615430234 
+1.244860606485409 1.048751236211840 1.706298709479787 1.091369645427824 
+1.582328024772029 1.410675316936429 1.111413900996406 1.468352391122118 
+1.988904622507199 1.227091377909595 1.957405382501052 1.975396575587178 
+1.113794863145053 1.655771242497922 1.031768396881023 1.991713934874783 
+1.630898066922311 1.631506341902332 1.308258270690683 1.527311191336968 
+1.983960927923840 1.566057872557475 1.097124368694259 1.836378617509256 
+1.618783071563571 1.090035168137701 1.540668513218248 1.699169455936280 
+1.869332957251255 1.704147220252638 1.568769828453167 1.441877173614598 
+1.601048029562842 1.637041270278119 1.452771959861923 1.635033641231002 
+1.941721816686671 1.414754213766203 1.027555851246718 1.307418106946078 
+init_gen_rand(0) generated randoms [0, 1)
+0.421944098478936 0.957408659873361 0.190111011127383 0.632549872377003 
+0.616831120464805 0.984390160895336 0.643335574461273 0.739347032660861 
+0.228605414113949 0.052731243538065 0.772446323308858 0.114863567000073 
+init_gen_rand(1) generated randoms (0, 1]
+0.442082451055255 0.015911155919158 0.555755021719280 0.480889172842165 
+0.405815741214470 0.960579860093107 0.544101247102252 0.981124035599182 
+0.140227132774799 0.237034110268794 0.213695040931430 0.839170314244399 
+init_gen_rand(2) generated randoms (0, 1)
+0.332262442390655 0.903899992959739 0.711640747980762 0.063694793030814 
+0.172136391851721 0.101571453847773 0.098795918939065 0.862664538090786 
+0.424853545765161 0.289050971753394 0.135940482595652 0.818087794332543 
+init_gen_rand(3) generated randoms [1, 2)
+1.826091232914593 1.465927292773019 1.660359847352146 1.718739833849470 
+1.771065180901557 1.368636432068282 1.863811540991485 1.450138787059149 
+1.210643354130650 1.794497423503101 1.919954502126080 1.705753029324391 
+init_gen_rand(4) generated randoms [0, 1)
+0.591142320356478 0.682511093445485 0.830635683995555 0.045933005613670 
+0.957981351055883 0.998593638748638 0.261010607596259 0.094700410165497 
+0.348077144635012 0.093054819035855 0.311048659827044 0.021348057917652 
+init_gen_rand(5) generated randoms (0, 1]
+0.331906141590510 0.431204104083267 0.788026765142320 0.107886042968458 
+0.331527448463003 0.223260642753400 0.007213097307934 0.940896681940139 
+0.077929885744811 0.684439050487772 0.109261760919377 0.512024787196714 
+init_gen_rand(6) generated randoms (0, 1)
+0.086727908860750 0.284816522568750 0.783013004472519 0.229535563590499 
+0.093432866683381 0.364565246345040 0.494017414358864 0.803305863215613 
+0.788653835242992 0.922761141678804 0.603919272593562 0.788796637744219 
+init_gen_rand(7) generated randoms [1, 2)
+1.778523707021504 1.248207063555905 1.798746266980932 1.774778978569397 
+1.283133909883287 1.058175568317275 1.457509817550994 1.917955442286553 
+1.058388185162171 1.436124085351361 1.917752212446983 1.537464700889863 
+init_gen_rand(8) generated randoms [0, 1)
+0.685029103155941 0.295351060999472 0.218722190918758 0.378128847153547 
+0.529121671696936 0.043642106599858 0.358345494757522 0.123779142473599 
+0.258723785570372 0.160266608630971 0.059760426307412 0.011024341145846 
+init_gen_rand(9) generated randoms (0, 1]
+0.187705455519874 0.288813617791865 0.319144513420439 0.543793275682785 
+0.729974326285441 0.096176988807451 0.149483086734216 0.406780899369491 
+0.480468469680181 0.495446775981617 0.936398273640683 0.736141431769042 
+init_gen_rand(10) generated randoms (0, 1)
+0.098793997907986 0.346927888725101 0.983796950114385 0.543851457918610 
+0.189272048998960 0.085990450161610 0.581299384058312 0.469887435507086 
+0.503662110237420 0.076827081362742 0.114442155060919 0.392405568608614 
+init_gen_rand(11) generated randoms [1, 2)
+1.461406803678148 1.008787442315979 1.495787816510884 1.850246204845500 
+1.477408138299116 1.407988286263545 1.622835436679617 1.766231688195076 
+1.987094461308092 1.285715440397025 1.499605055070014 1.987458693012325 
+init_gen_rand(12) generated randoms [0, 1)
+0.977273334486815 0.817637465453976 0.933354490620283 0.830468185653900 
+0.605770981536066 0.028749014476501 0.277316311221838 0.950378026924744 
+0.597681054940624 0.687860093352914 0.737466170815903 0.617074154107175 
+init_gen_rand(13) generated randoms (0, 1]
+0.985306059423489 0.587893550647618 0.296309318706623 0.819842983851756 
+0.320426478536460 0.929807705806558 0.430329523388835 0.297844671874719 
+0.944917586569726 0.021809686937685 0.408661365695584 0.409732815519562 
+init_gen_rand(14) generated randoms (0, 1)
+0.420644963976671 0.532468710959390 0.598367781769275 0.510776290609494 
+0.277891395737916 0.451234461570111 0.810719706008020 0.286098456126895 
+0.934654417060261 0.602795625817081 0.164620902367937 0.983228091124433 
+init_gen_rand(15) generated randoms [1, 2)
+1.502740389456393 1.532765164299389 1.111885848398497 1.056573211355714 
+1.594966901759657 1.922699489051994 1.789423564625162 1.771039785211392 
+1.807070109362501 1.410045291783796 1.382204924927806 1.557534994317295 
+init_gen_rand(16) generated randoms [0, 1)
+0.470649801641298 0.616759675824380 0.403786737982776 0.381395979355409 
+0.865832856443838 0.645078283771564 0.382233550952961 0.568332823146031 
+0.732177161297510 0.156757394535722 0.336511443125828 0.171259367889499 
+init_gen_rand(17) generated randoms (0, 1]
+0.956775632276637 0.696378755295651 0.683278549594745 0.495562346462444 
+0.034107186214846 0.031502949275996 0.570825947251147 0.386856603189840 
+0.168442969072934 0.604702054107083 0.153645463665401 0.859357829320274 
+init_gen_rand(18) generated randoms (0, 1)
+0.525540856736036 0.388632825260467 0.892015127645260 0.747993895844647 
+0.367997053340826 0.331661851479406 0.664144365711446 0.896105607587727 
+0.717685345297874 0.400373322803180 0.995618384552992 0.110658345299761 
+init_gen_rand(19) generated randoms [1, 2)
+1.491913590658521 1.330931141149541 1.817037326975155 1.418740083394695 
+1.614928644571634 1.070671717502089 1.784048710437178 1.133950893576865 
+1.249463382685035 1.266132109289160 1.185178091772995 1.619470208650039 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.947207450558105 1.135309794297262 1.631344244902284 1.366412058972510 
+1.601016221411738 1.642092990822857 1.477144514603918 1.164916026138202 
+1.957940728819001 1.281611723812408 1.731029866833327 1.436214232653967 
+1.093830624065262 1.780506865914109 1.275431297490529 1.841184720385789 
+1.854284566527383 1.050880003488825 1.776488174535655 1.103721363566513 
+1.129378366799453 1.170634453846896 1.028815540798394 1.805833575221204 
+1.626719074962939 1.943409598554246 1.510018300352814 1.011322818000522 
+1.698882058355360 1.318818424961677 1.855824713031231 1.966486116025535 
+1.026987215607762 1.136100045420735 1.358378963532814 1.162597723297414 
+1.617815384496810 1.244159206669000 1.550222787839322 1.685142033697256 
+1.576160932894067 1.243639730607567 1.297826015411039 1.404342247755182 
+1.060166953742646 1.852576496653385 1.069387893661959 1.864344263021154 
+1.489291026581383 1.187622261837069 1.408407496315355 1.145820978150154 
+1.047682739179657 1.069193573087767 1.895638321589257 1.288166870480759 
+1.206281480170450 1.919918202924088 1.256751301307792 1.529434312054781 
+1.293507672884344 1.725382977588430 1.971604547164085 1.733717293116013 
+1.227227574398146 1.678936015462912 1.917738718929955 1.982710063903779 
+1.973293629935062 1.128976170805480 1.681843025098611 1.426854387492284 
+1.951652614856485 1.006117030308376 1.163185082450895 1.650065040539015 
+1.709474740355621 1.800650031174273 1.120239935695504 1.014359520018038 
+1.400610803118096 1.919802509694430 1.558148115221385 1.196223320343777 
+1.106164681049412 1.794004559232027 1.156605105271351 1.429828426826791 
+1.557904316469394 1.028066765590857 1.138295188250031 1.165951151525069 
+1.221150315491454 1.336476475514164 1.433298696315862 1.537934724763323 
+1.826246704499124 1.156551569210181 1.908038582540807 1.178585836235492 
+1.868928979755601 1.085775942103842 1.578268877807681 1.331381478910382 
+1.430819345479342 1.161988986729044 1.457972689385957 1.620258382477409 
+1.421310746899216 1.775980716084728 1.636453484853568 1.716593028679644 
+1.061400115852532 1.966019861881066 1.771041203206715 1.086570039099012 
+1.305633327052913 1.420723866435592 1.222610293606582 1.105296066776391 
+1.488334936501404 1.125379392601492 1.524888709115415 1.066691309603287 
+1.932034440255795 1.116454223190456 1.417369903753246 1.488722591559139 
+1.564698798653277 1.045025556220310 1.073068909633416 1.469169726141540 
+1.375059650305161 1.493617082817841 1.259605793094590 1.436902609283733 
+1.404340303587839 1.694379833214023 1.798857564463123 1.219357936876666 
+1.436002062992434 1.170604057244566 1.318575335263162 1.573409932004732 
+1.164076653602317 1.313844172565840 1.647538673106766 1.286758502522537 
+1.968248641517365 1.116502692691169 1.370360192831096 1.255039892402593 
+1.601644871730838 1.410887780970450 1.332252474592944 1.196484632357055 
+1.258083587223385 1.353386397982771 1.076574696442263 1.134236072289827 
+1.593083957183742 1.535528205292973 1.436242031901138 1.640351771604794 
+1.870165216157028 1.158041352979966 1.573096686675836 1.956998275941477 
+1.909942913510170 1.679545308487964 1.358178015287369 1.663218354021119 
+1.093632654597131 1.682997308830720 1.378745461920543 1.606002535246354 
+1.237520039322370 1.278242883462201 1.488621235672552 1.148347903662639 
+1.858256728514947 1.495061073419361 1.524755095876654 1.529166116219529 
+1.241116939689060 1.549233808673284 1.482593510991004 1.531008148957128 
+1.278855924660843 1.487153841055213 1.702140037503810 1.389381848832394 
+1.310563704400563 1.029789339294516 1.343965074790394 1.661499421627822 
+1.947180530007448 1.501694287488555 1.598770134905953 1.210570089829710 
+1.283992697920356 1.175688938580993 1.177183092455425 1.002092837127673 
+1.190509602013484 1.704878168080972 1.515381807879046 1.446497963043979 
+1.485887503308633 1.128822522225734 1.601089317194607 1.677653427138377 
+1.848464575979627 1.648596304141954 1.741068013858845 1.296049116436621 
+1.696898330120298 1.889812117711323 1.266681310903272 1.809801597851127 
+1.261241540043026 1.079246520065622 1.811793891138674 1.853311480830697 
+1.468928601874197 1.787540786453619 1.496532187020051 1.807383746670177 
+1.161193005295014 1.323298029534912 1.699285717011673 1.664929620535036 
+1.308539188316414 1.725418598746142 1.562408642910170 1.711167130326208 
+1.639212449492668 1.940367359607509 1.635276232023359 1.065973139445842 
+1.437046804018629 1.921152204389429 1.940968194562535 1.814428769006062 
+1.852201116146467 1.052938439978708 1.612689668739904 1.357180497686102 
+1.751391417668904 1.723485011249644 1.146183442825391 1.324409477116690 
+1.917510956434969 1.115175932602158 1.022890875271487 1.180024927487017 
+1.951193897948575 1.504139995313060 1.057556785842582 1.392107970753785 
+1.259822644593459 1.756486178504277 1.941733209995832 1.460194264148309 
+1.717154304510855 1.277863017238506 1.957969603541541 1.812998540488890 
+1.258824807315175 1.602931248894758 1.882636774928908 1.099486664754125 
+1.059187668779323 1.984202270666743 1.385594576351875 1.043028538140962 
+1.188139676827720 1.720549053013833 1.650602068603627 1.654791254857253 
+1.019187936866037 1.070228204437038 1.093247321932356 1.104472095794054 
+1.003498433450088 1.265014749889605 1.594622151209226 1.729058327867874 
+1.506781271896926 1.430850456501485 1.826918877758742 1.623816968654748 
+1.495984508204357 1.302690514672598 1.617826177913057 1.883129554756960 
+1.802529676309332 1.224409354145562 1.625895634588232 1.549309103077473 
+1.597637387583425 1.224344123545047 1.514865826717829 1.926655999894167 
+1.686327597426891 1.960403571144254 1.119879132630314 1.372056068439641 
+1.321276442402503 1.953399767378953 1.211477986234923 1.626780791216859 
+1.297425774362108 1.746722543034876 1.837413624021315 1.643264332848509 
+1.682063262684958 1.986291138716071 1.537272746899873 1.084226927871342 
+1.238581717531651 1.236531235335218 1.991768513911834 1.058418682020597 
+1.752861369321871 1.111038986486358 1.426899622101443 1.323311477216098 
+1.668261668857286 1.336157611115429 1.895214460590036 1.085939406717038 
+1.488043096556005 1.866951938464483 1.197416401425599 1.802099926315847 
+1.812261483324199 1.081039472345662 1.318806864310679 1.004632974500258 
+1.253399618818119 1.974621192587345 1.547437258978784 1.201781046491616 
+1.774955719613587 1.698994408788286 1.501372331065325 1.070133498588205 
+1.351022907102016 1.218967639177718 1.198482282903701 1.677632902137514 
+1.632860571175387 1.341892408346290 1.650387261835260 1.947209004519816 
+1.224818823792278 1.142651492888087 1.032806650097249 1.681336480461250 
+1.538334068192853 1.203411340752100 1.474161324396634 1.774480781281485 
+1.237960972233113 1.543614837498093 1.311664846739250 1.259541282692248 
+1.065492106852251 1.366625706340787 1.350289306333268 1.249538538052543 
+1.511673144819032 1.255132977450345 1.848385131516240 1.547066676960587 
+1.375489964723051 1.587788812268376 1.096881460549815 1.640549112855726 
+1.544543883812698 1.019670971640094 1.240303181953690 1.691188097979394 
+1.435384245543227 1.326255449815946 1.212734345207260 1.696624843080563 
+1.464989891580118 1.667422144339556 1.427376611549572 1.886091374235511 
+1.217993761912724 1.364234236193553 1.038152656404485 1.579897279552539 
+1.917044138561693 1.079030047947746 1.109553001279310 1.018480890171268 
+1.497832244672591 1.761302570808145 1.023795884900464 1.372144372530775 
+1.331035145080167 1.184131394176141 1.797521455543982 1.858699680310617 
+1.379786991813360 1.129510760289346 1.761627699292191 1.357863647155192 
+1.628180387974880 1.663269875243322 1.854337710072520 1.586885806740248 
+1.076105532923743 1.936118928291867 1.707970644605928 1.778307510943973 
+1.446356911056693 1.069546371923497 1.820703652802559 1.102680253996838 
+1.815323692965850 1.461061054899784 1.361945456029912 1.105865232613683 
+1.399517769823654 1.016603081228915 1.252062645527688 1.829667929375495 
+1.055316835855171 1.644868763960084 1.490797207267044 1.107570873588386 
+1.881962081262456 1.426856458807271 1.831250938209766 1.999127347807601 
+1.677126457998177 1.272670151570925 1.043095077007429 1.475186722761298 
+1.655090986385005 1.571002223129658 1.137474484106960 1.579565191159587 
+1.708733377336624 1.440782504634744 1.766722964623437 1.982835870010967 
+1.879832653673736 1.306229787584795 1.008875002845844 1.955454597208549 
+1.686533320444794 1.448517668553899 1.177578545747588 1.370089901862085 
+1.532034307048481 1.790807381577618 1.356244583764095 1.245639628241753 
+1.448537123145121 1.945709774655793 1.355481782123781 1.220167912096407 
+1.487428462354357 1.979201090523090 1.628715871210320 1.386054129549654 
+1.898725504070975 1.295236946609465 1.194974922551681 1.559430737424677 
+1.782028297967030 1.820734102076466 1.958630065820150 1.671016627060105 
+1.054931363628179 1.238535645123603 1.021835245630125 1.666027743960037 
+1.851630149768074 1.667667183537051 1.582423870823843 1.857561583092343 
+1.080083865992375 1.407957418909629 1.414510806717882 1.818008985343736 
+1.605262135262882 1.537147795993105 1.139065894527644 1.905805152962634 
+1.576356818745170 1.813200485474691 1.590762590133083 1.784476266509967 
+1.581123072527233 1.986639763164798 1.994083652311294 1.078586674121204 
+1.727273586148383 1.460323939313023 1.384493540534425 1.446840087224235 
+1.818896967708952 1.651376382670966 1.516825357437854 1.115436647886605 
+1.918296554242244 1.644759065636758 1.453489668007171 1.526478205505631 
+1.986161027371766 1.188112319570911 1.625843115856112 1.132597820387163 
+1.909872777699022 1.158310255789676 1.925690664890364 1.121336287915879 
+1.461251423078496 1.864895788044712 1.837818750394970 1.056006767899788 
+1.988614692088117 1.647197947676476 1.407218116514914 1.628233742644107 
+1.741979823583425 1.734801730863307 1.450853441906492 1.272548809912679 
+1.136720448886822 1.669847684770099 1.185741115184326 1.351477055264023 
+1.179496486752943 1.421215577232294 1.956000300327398 1.402551458205635 
+1.243232288920604 1.595340337392495 1.327002584891119 1.339558642450208 
+1.269524604588405 1.530798067080132 1.199523153195488 1.621262102754166 
+1.579334796966256 1.480993192076834 1.308807639933550 1.002291454577589 
+1.871296667082226 1.272958337191233 1.193362032280423 1.913746866207172 
+1.780248753498779 1.587902048794695 1.756881094800466 1.982638500988241 
+1.721397828672976 1.506819262969700 1.510730893573642 1.624184356050091 
+1.791292234041442 1.421582585203319 1.506542783753760 1.398715028707289 
+1.895596657940293 1.390704545427405 1.812202057996696 1.372923395768876 
+1.368674942280387 1.515316306435028 1.142565455310029 1.464646330046949 
+1.073172495541949 1.215138214491966 1.541493492759479 1.002100189040213 
+1.016333548950234 1.009938027227325 1.783231174035762 1.401030170190190 
+1.397281115944810 1.718839632757970 1.192478454223990 1.533562362825422 
+1.743582722017602 1.445374337359997 1.755130231068367 1.481298939549003 
+1.461353419012572 1.298896505606882 1.249554266659123 1.302104572858497 
+1.899938846836392 1.096085476605370 1.215233171727098 1.472477735841386 
+1.544219139593051 1.257159850775402 1.927275142186521 1.354620139303779 
+1.099048784699756 1.743348024454702 1.759641999567123 1.056524493084405 
+1.932988764814410 1.710237921482745 1.490373500404498 1.515691046707079 
+1.144108197328411 1.133243543180943 1.224697122852851 1.744265737234908 
+1.243195521532562 1.115701330723652 1.701431795430022 1.409354448218688 
+1.442637211153349 1.666023053598230 1.331308250826585 1.267201089788160 
+1.430114037145706 1.758362068942437 1.568849827004162 1.086431232500836 
+1.604184315155456 1.126990163887004 1.574035601557279 1.262782202308721 
+1.454022011428363 1.102486655046111 1.098287358654009 1.475279593042974 
+1.141890718314584 1.175403535607382 1.749113145249825 1.448190946452745 
+1.609129463951801 1.552999061209942 1.758532781550716 1.946124478890918 
+1.676177012100665 1.718732876621003 1.165199382097029 1.305394020256386 
+1.373964796321176 1.517471151393891 1.633721552017066 1.179942422861164 
+1.053569482279702 1.555132310637321 1.627582308592516 1.899739927016174 
+1.001200961397139 1.821025861528925 1.895874859482682 1.489344430926973 
+1.597790620563639 1.313964007753675 1.560388672312275 1.282020238741006 
+1.699155056435629 1.373158977216479 1.333284250819783 1.578112185768661 
+1.313387509275068 1.696286672082163 1.602956997941402 1.020677419486038 
+1.890338531051304 1.647333513587341 1.363447066521693 1.908784982866752 
+1.378772310718316 1.842623395335004 1.805129807480961 1.983259048433129 
+1.946275415955172 1.437295139642739 1.168346365041913 1.649317303973296 
+1.881487926985687 1.662038078006523 1.624056757594972 1.270324351173778 
+1.698582914890080 1.859989610497138 1.571910033186808 1.833978205501979 
+1.646935824472681 1.535662837820396 1.923976285561411 1.511276720496884 
+1.381858073007699 1.991790724988709 1.229977324952031 1.180924273642502 
+1.370748156020668 1.300453856287782 1.402881997203312 1.448565716949421 
+1.453116926301077 1.597875692350065 1.967665283515045 1.404438936054681 
+1.743704098944950 1.933252696141306 1.469015272567910 1.667613676788038 
+1.520754667987124 1.629100623293009 1.984952186007245 1.077980553120769 
+1.473734676069971 1.481401908772406 1.736483550548079 1.672509444984532 
+1.253871464814775 1.082254955375431 1.694882177905507 1.722353268973232 
+1.863372207929879 1.430468432199756 1.024297818593871 1.350251847618139 
+1.578922691710723 1.453827126826180 1.164277736039045 1.849357747257191 
+1.032838804988696 1.762721977124866 1.308077379401025 1.036410270038605 
+1.584495580402602 1.401522328509553 1.071148197854772 1.020500778937129 
+1.334136780576306 1.695609964867840 1.812486953114941 1.685060550108686 
+1.077106411206443 1.738546512132344 1.117645662762082 1.519614787842219 
+1.941927612103484 1.265804513433322 1.436794471950811 1.676570322196508 
+1.033397734899827 1.682682320205481 1.439209714396472 1.487069535752410 
+1.352567880760356 1.475691345830453 1.365422828198806 1.062663887596496 
+1.430963358491116 1.235693081789215 1.641038351297810 1.163301452473766 
+1.185849782396237 1.488420463473481 1.712252607812814 1.015554011536708 
+1.134685080622060 1.412712643086033 1.519664921919980 1.243779232282111 
+1.824302963170283 1.675266937322566 1.637890331709163 1.929410126947345 
+1.596303998915515 1.687712867284267 1.775267544767174 1.256549223571468 
+1.196523537900338 1.964283693094157 1.802135076875411 1.605244771240010 
+1.233987129268211 1.039028557242095 1.837448666921568 1.619886396985252 
+1.753901023254044 1.786038515546382 1.539038365942016 1.138503241652778 
+1.657617406033610 1.098763921053050 1.486121726045871 1.015375768731652 
+1.484124816958340 1.099144546895415 1.904765508049678 1.284092823008238 
+1.372348637012605 1.647711396717392 1.885987235547633 1.867627773880108 
+1.146393187599889 1.843864813057042 1.694510200911663 1.206999540848333 
+1.460046403723655 1.124851482053324 1.737439578472733 1.788252121405290 
+1.227024113089183 1.667921754212068 1.381183571454836 1.622528319734961 
+1.479122148549345 1.921511688628012 1.111648874710583 1.093886749837971 
+1.607716499588748 1.813479610422842 1.259360772110016 1.482407521794181 
+1.071982582341647 1.352980096115373 1.496101802913852 1.709913933585431 
+1.917395441124678 1.109760337634798 1.410635698289639 1.015270376880243 
+1.499648135746577 1.944504999624660 1.649576139043468 1.158629670029097 
+1.510352654470199 1.621584640924825 1.365433884864259 1.663678800401106 
+1.936500420349114 1.637313368083986 1.193524941143813 1.676385241728819 
+1.471219272537790 1.253928597112646 1.632605341031669 1.546579204612059 
+1.659498630844867 1.552216827362433 1.422715031061483 1.370706917071225 
+1.611824972288017 1.583499205628932 1.859484408226304 1.883455710077897 
+1.397704867933884 1.159598000764869 1.031920553958687 1.591224986444150 
+1.691313898548340 1.429348933565807 1.750783719815394 1.171320605993569 
+1.467657764740876 1.664981838888260 1.561640934726091 1.737259315417645 
+1.192688515747088 1.136206208994172 1.985446078701454 1.655711904429667 
+1.843328974634209 1.841737463106669 1.707989581546332 1.499163925034993 
+1.695244920376332 1.302790945427688 1.847318830995439 1.043795423580128 
+1.892418705750606 1.503594142935176 1.450507875927778 1.780395562652883 
+1.232497061186851 1.404136055758912 1.270958632016096 1.592753837245123 
+1.617214569595521 1.310876614539585 1.430712588323578 1.430513311130156 
+1.381432892804719 1.707812274148106 1.884184188597132 1.094542276213364 
+1.842604932823086 1.355540450586808 1.513345138713641 1.237870566901911 
+1.196276622264462 1.024078918689197 1.558608282016358 1.578084319775454 
+1.746565617838908 1.116377682754634 1.106913656904485 1.987006903652359 
+1.980191426308585 1.280248855101980 1.882738816919003 1.462888240516328 
+1.504836479027523 1.095441082459003 1.754095300545520 1.446973089432146 
+1.393435208529546 1.933733626162701 1.672712635534622 1.792982000456280 
+1.234852468043849 1.315594077171094 1.658891342139201 1.277608890721606 
+1.945445739184685 1.712280795338047 1.874997626958929 1.560649997505442 
+1.582438822932884 1.372925788747568 1.869457478909250 1.903183266396994 
+1.006777416104982 1.355049858044602 1.042816447309176 1.438050525274470 
+1.824404184768857 1.150042341440322 1.442890746688413 1.810921593791265 
+1.122877561261586 1.985543821754954 1.535833671064414 1.134709942617572 
+1.219106675740626 1.657126000318685 1.089059077862990 1.815685641166858 
+1.220447936817406 1.282188343409965 1.050589742767327 1.356914659864437 
+1.515507727483508 1.699691995513007 1.254001657387457 1.878484286159356 
+1.367862579480607 1.386061867428531 1.510265645219967 1.134302564275522 
+1.054070580601139 1.491688949913669 1.263050116799930 1.672253124585879 
+1.929644155062487 1.020900028015719 1.665772245552020 1.801460830305972 
+1.584691784556896 1.297701966421988 1.341333960583157 1.709572112709163 
+1.195334410922224 1.302286834606076 1.346506995328786 1.594075278239987 
+1.843658851829518 1.190300388273569 1.081878676367268 1.132194479183034 
+1.942653061881035 1.046187651748978 1.449528711861851 1.444504079242059 
+1.403529547479535 1.705738068639244 1.649007750961844 1.620064350802286 
+1.606363264534131 1.099838331108712 1.530006922419596 1.727028043370195 
+1.419389195190668 1.678333074521245 1.684551442266043 1.264739599935087 
Index: /Daodan/MSVC/dSFMT/dSFMT.86243.out.txt
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.86243.out.txt	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.86243.out.txt	(revision 567)
@@ -0,0 +1,583 @@
+dSFMT2-86243:231-13:ffedff6ffffdf-ffff7fdffff7e
+init_gen_rand(0) generated randoms [1, 2)
+1.765181698622537 1.745246305991537 1.568323803250302 1.827824719028969 
+1.101178624490813 1.347354743836463 1.097191252474847 1.915503700557514 
+1.198507374913141 1.056820215705049 1.949530905017576 1.438802247136309 
+1.113168914210107 1.005473162182421 1.880358347409998 1.738588520576085 
+1.470398480201266 1.219716459013271 1.837640074719590 1.874551284755338 
+1.808938223243638 1.668383003032249 1.115300406955583 1.163181563659379 
+1.922106723810994 1.936923350595126 1.802628634366497 1.082629484988284 
+1.587370539628257 1.432441823896538 1.172268743288212 1.831491157717728 
+1.928825729078115 1.922310539778443 1.386074853898265 1.378334603058208 
+1.723615386792368 1.540648589033718 1.656970306859184 1.844043106092863 
+1.555836120506224 1.999896592709473 1.853352918680036 1.826933747645315 
+1.736713747181102 1.513294397458937 1.546593581819660 1.860704539910337 
+1.371853620956868 1.419984620099757 1.647054894547300 1.887395868536668 
+1.428420872930164 1.311981141985864 1.988023472416104 1.134036598799834 
+1.235580280162740 1.259113651453670 1.419399134575188 1.042720760931558 
+1.651289365283661 1.548550129439336 1.859966968643592 1.615119453661597 
+1.264497449827219 1.598074861875461 1.022440023152810 1.322966629405794 
+1.572172545633889 1.203911852660756 1.496889958503653 1.184677344233060 
+1.453116488939879 1.224326576422344 1.068084814263264 1.171216483512322 
+1.427853718951247 1.993690417273481 1.852303917623169 1.676947495251420 
+1.533100700146991 1.267120275699945 1.862542440874861 1.600597499739502 
+1.967221430708965 1.855250972969315 1.941185148042623 1.457490350448913 
+1.907588159086757 1.796009630705529 1.064967324350087 1.618347580488876 
+1.632830085721547 1.160888038651240 1.804860885189167 1.880905550607828 
+1.844278400305870 1.642451115788039 1.429416146432916 1.901759970090507 
+1.815413566652753 1.424832002240010 1.354727905525034 1.122360321077222 
+1.012572981000545 1.015763668810936 1.891678528301639 1.980640958299456 
+1.533363609581372 1.430727622568518 1.097689487366155 1.949555353797812 
+1.202929686706243 1.343122708007109 1.112074913600784 1.016983654888810 
+1.926053876299638 1.679111656183790 1.098571258965397 1.092818989794304 
+1.830426448351739 1.988334889411491 1.040654281245255 1.279287447553215 
+1.763543530562832 1.796547152931268 1.956540187264751 1.658161869178510 
+1.680106990697865 1.746266539301626 1.201621352481211 1.392789566721822 
+1.798374237531711 1.099507187934515 1.151613671578146 1.642836422397526 
+1.394010457176212 1.908774724051728 1.652830353018381 1.075902580123474 
+1.020615822722915 1.679231786206548 1.026693555555979 1.587067868537512 
+1.673864958102685 1.135047412974155 1.449848718237269 1.786867681651178 
+1.454871508468653 1.804602011771945 1.993983311302764 1.881556468914729 
+1.913060918995395 1.744351547933984 1.851805726786879 1.818953471659235 
+1.083285476571109 1.579121160880582 1.338182862468443 1.642229591990822 
+1.200361401577975 1.079700334549017 1.335270693391085 1.129067890267160 
+1.968758232510427 1.263791606117672 1.692877076067957 1.315429957490577 
+1.062781828378683 1.960654976862618 1.289757198065540 1.174189778929012 
+1.488621632393077 1.315189254090391 1.034382434227362 1.198705210603501 
+1.412006267851311 1.591607285532602 1.076163103387708 1.807556117132787 
+1.385936697005033 1.760787306118299 1.884847558037312 1.305473458637252 
+1.215448272005204 1.951385670288744 1.741167378873126 1.331980404386577 
+1.142829750863100 1.466719607772948 1.583061056920620 1.428970325753858 
+1.952884860475229 1.012456627141712 1.523556414830881 1.837802456566910 
+1.437731327944644 1.037070415799667 1.283524853924399 1.811033321677483 
+1.634866452854624 1.343979449130309 1.541404565872617 1.662048861046135 
+1.033280391222266 1.775954466874242 1.455111618369912 1.848549629564364 
+1.884676089912528 1.125653053589357 1.959070554696008 1.913756020486574 
+1.109211061685908 1.483390517826735 1.348508942030833 1.825915674812873 
+1.993192890415165 1.012809846243837 1.654779113430412 1.510333638180296 
+1.067164512113739 1.225785309951452 1.109532612859639 1.406670116334418 
+1.486887796325284 1.913848782642950 1.780052489951587 1.624459001149832 
+1.872993995801541 1.650650466651943 1.213840666160247 1.998197701220774 
+1.668146985224236 1.185925420210720 1.810105157063410 1.954448593133374 
+1.873145785887645 1.472039965825262 1.831596006614854 1.202032023151840 
+1.611156721311658 1.009669067094778 1.558611615927114 1.315056750149521 
+1.817372902313931 1.123291134957301 1.296759272380209 1.517093896781869 
+1.712898885613581 1.414576152760222 1.820019430619521 1.048550997083760 
+1.367246312611533 1.032874899882283 1.800491740511595 1.066723084898765 
+1.773135594421367 1.851127158305219 1.333618126073145 1.802284471304903 
+1.182210268459392 1.014056903489282 1.775987174449475 1.773327070538553 
+1.828975904252808 1.693281233817192 1.641100452977166 1.034502450092455 
+1.340466268191788 1.936961610475072 1.110799031238582 1.527171929115034 
+1.293810379249919 1.818221951737458 1.358024704174534 1.272600840191142 
+1.016009743264447 1.578567156792449 1.177784754990610 1.086779855994773 
+1.867088609505160 1.004672484562085 1.992406324716299 1.986121486422956 
+1.529902309790933 1.926083706854077 1.011772281657290 1.643412762389721 
+1.931035184316172 1.346901622973077 1.441356570167401 1.406795058452974 
+1.765252633392875 1.516301742972715 1.015761535579996 1.638085752041801 
+1.162772364434417 1.095208699832609 1.391734646280789 1.235664459126808 
+1.019676524034859 1.528586692489736 1.052297548249224 1.835943873553864 
+1.475327256528815 1.716834648968639 1.278266176848869 1.723823817709478 
+1.388127475590246 1.080541418285107 1.840108853369243 1.373439731055300 
+1.265395840477185 1.203780678679644 1.975130433350111 1.867466841294212 
+1.878463183528742 1.157226084915556 1.394114137602386 1.124342568654775 
+1.131159729394239 1.988518367027182 1.939323812792199 1.927805787147309 
+1.118458810939963 1.626609382291518 1.937786017236739 1.421418873905099 
+1.206850404377509 1.359848669419079 1.014618648257808 1.459689904136230 
+1.789003190472714 1.986307305160725 1.876817956552387 1.684135844924953 
+1.934742272623396 1.000909217026576 1.156515368067990 1.391465474532883 
+1.435555846167849 1.600637205502141 1.725879241049715 1.435794051653276 
+1.757739656460197 1.279637749755620 1.490761648874604 1.574039399778558 
+1.181152431034085 1.779198572833356 1.313273213866911 1.702794550671674 
+1.027646238802732 1.403079472013286 1.173452466915214 1.919019303140637 
+1.464610092104253 1.562982054995365 1.169813169360054 1.375495458258749 
+1.577407661995414 1.952793140810516 1.468709071137478 1.248252052337165 
+1.703052682323164 1.359533533757940 1.124695680955881 1.636765701836549 
+1.253665060970316 1.600449105416704 1.379116079262188 1.496848728135161 
+1.751140455371046 1.462731882854913 1.549256751885526 1.461669635467756 
+1.722416764871353 1.290084322018083 1.123188816773292 1.301006340510989 
+1.937427272641478 1.446079619504306 1.088358220531568 1.024718045853601 
+1.102650073969364 1.071969536330223 1.838982353258666 1.666521700502796 
+1.122610902839273 1.395875702861696 1.436306185229712 1.894504864563977 
+1.068702625278251 1.239472193958679 1.962778824555782 1.200201818246346 
+1.303015907130198 1.799113569064334 1.445412642526590 1.809147857103547 
+1.238443468857320 1.496480876190895 1.079560068835407 1.168635708580150 
+1.543275570650001 1.849126421161412 1.198378432081132 1.013228927895050 
+1.691275462290296 1.900465624074946 1.230202106078925 1.128850251462093 
+1.151619745466050 1.654147239829526 1.902441181223814 1.987946811067963 
+1.938877748102251 1.426702914470791 1.092476736179220 1.321405409766963 
+1.194283307962829 1.284944723877220 1.932408461942359 1.415704461857767 
+1.018447279710538 1.618213678015894 1.664308898021911 1.261577509572813 
+1.478023724787888 1.891947167087979 1.848401990668871 1.782994962374103 
+1.942198389082806 1.566719214123350 1.059797720074661 1.749424289698460 
+1.391112344660477 1.895158092997200 1.277312020410567 1.801585819721319 
+1.208352989766611 1.320917912913223 1.486096677343459 1.622996800055332 
+1.492868422479627 1.515718618375993 1.181962152396699 1.169929850603476 
+1.553562602027784 1.137156126957716 1.209651142670455 1.670640360557465 
+1.224512313871679 1.630216271936377 1.542669034938237 1.378875118301463 
+1.363728363924662 1.648926374195947 1.219805179822903 1.716539345132784 
+1.086823708381953 1.343142365608595 1.679134068366727 1.087541955934166 
+1.957427348994582 1.438912759743293 1.370939354300884 1.534197951796541 
+1.747197890857597 1.361769466104670 1.963772676146914 1.704627322614822 
+1.742176773561477 1.667261932007193 1.800904937486759 1.717138519710238 
+1.224195257025371 1.612072008274384 1.272748070256907 1.568440204983352 
+1.691706017859623 1.293555953048671 1.077030889109707 1.390029565933167 
+1.573453237440895 1.104937917231554 1.465692292611692 1.782263849769969 
+1.140015288022792 1.871434657969255 1.561940918025713 1.411908116453118 
+1.874410684780529 1.993440144014925 1.353136265617813 1.507008799114608 
+1.483296950035340 1.494740996307531 1.556628267975761 1.307744257149760 
+1.625618300367467 1.062079400372077 1.057590932560323 1.297402579782033 
+1.988655383810324 1.907156587013846 1.462849852118216 1.897588506999880 
+1.197651287155534 1.646834383574471 1.151527603722896 1.182933234895832 
+1.293151090428494 1.111646109028054 1.720622708140405 1.397432216812145 
+1.478218011356130 1.092601200142591 1.126568480619334 1.294795390344866 
+1.698938461259925 1.659144579905487 1.180023283715762 1.751221216618334 
+1.746564888891533 1.429666263882942 1.038482907825517 1.980240800634207 
+1.910725577956144 1.498218851214196 1.416700693155990 1.379603131728697 
+1.792464338898084 1.885204544368212 1.922233596302223 1.365346932891215 
+1.024155822247981 1.336943019326279 1.519142086124668 1.120802566435804 
+1.293358872865403 1.027629133242975 1.465386246336582 1.786715901674912 
+1.165632875350794 1.022141659992823 1.841937409487360 1.694814071077547 
+1.018455256282212 1.546260560177632 1.999832788050763 1.161667378601514 
+1.847351009908086 1.323388401209629 1.048949329075631 1.388985358117510 
+1.776020175352763 1.865836517708517 1.788533941814778 1.824521536909850 
+1.873389911761783 1.637292100178774 1.413784876210428 1.799382426024530 
+1.368104333446846 1.546597501730773 1.187105930747827 1.304252893638089 
+1.643409751552936 1.213498188101350 1.958442791294501 1.939911346821125 
+1.687094914842765 1.119481094592695 1.618194142790804 1.979636464094353 
+1.150866953123993 1.865083309965089 1.031747566132454 1.124789824912707 
+1.978930704637029 1.502086570240513 1.452274019498635 1.963070075180064 
+1.242613010586402 1.896349066255181 1.594937238901222 1.411797617271013 
+1.794637258488479 1.672253632980615 1.589673691578191 1.094475312600989 
+1.837903769941812 1.481567738115929 1.494438629507939 1.129172538108133 
+1.532272492843403 1.557311109310921 1.918545034016105 1.775035783640481 
+1.743745386659547 1.295092737295900 1.454029620888463 1.649981436338684 
+1.143333790736386 1.351491227152009 1.935474001687845 1.538463321926529 
+1.786130035432466 1.053547336603017 1.462056155673015 1.579673004315338 
+1.513470990269053 1.856214085904243 1.783906342733630 1.786650666574873 
+1.375010871637780 1.024761392630316 1.360927817894924 1.368451139532735 
+1.365579440530325 1.314952907722951 1.887306180332726 1.484213028632913 
+1.940361937385803 1.035602201717233 1.129777045190485 1.758232758814659 
+1.459510877790539 1.844031162901254 1.832746279318737 1.249313039125413 
+1.781518445177559 1.431220733077604 1.212759376085801 1.945961693736160 
+1.037579539372921 1.582555889783809 1.319943195501952 1.314826490066794 
+1.859237877006167 1.500943301392903 1.725975350169460 1.565324883112886 
+1.251351286537813 1.120359770857204 1.487701766657701 1.260670218365100 
+1.918809381402178 1.841018727067248 1.117846086691507 1.482012304760719 
+1.916321452787173 1.293888540464656 1.517418244314118 1.354297266774496 
+1.754865578447874 1.712031493216768 1.221042051153310 1.679805447270929 
+1.819283003463785 1.819382926524981 1.402941869911796 1.907275625381316 
+1.203242952136053 1.473948961588645 1.128054707062773 1.895939337076149 
+1.078966618186188 1.832724290829804 1.861639589356326 1.977743374592785 
+1.259588090320708 1.915670495520275 1.393482997093435 1.569586055783059 
+1.481745985020910 1.595066474207120 1.432108675145872 1.561396317419155 
+1.783652463590260 1.329251877091409 1.618375577453999 1.558631597045066 
+1.599063670565567 1.741054632267960 1.372301488525752 1.016548242373889 
+1.559519439073526 1.370590902981919 1.921039406065929 1.107246013591695 
+1.659759893615315 1.900441462359926 1.580012807188733 1.091578182359097 
+1.932782532894954 1.231996344723508 1.617875958115805 1.357664375692964 
+1.588468823257081 1.037932653693002 1.371234948780345 1.258180968011965 
+1.976764185802762 1.991652271151890 1.091392632803220 1.092083752070380 
+1.604714589890404 1.974742149171720 1.124966418984710 1.656350222787129 
+1.695483101306601 1.699320118825182 1.658714043151847 1.029315210943554 
+1.841943784373793 1.733080486054383 1.568000696060901 1.592831264369103 
+1.273054320845459 1.611250159356393 1.434657773591387 1.728543422219396 
+1.956575537459281 1.296623512566873 1.070981142143286 1.853865926244806 
+1.206304880704166 1.835248381620395 1.440449469597250 1.881854861460665 
+1.250665292902728 1.528860022162953 1.753480718048217 1.634191099402922 
+1.797606237673580 1.910809638354700 1.595142324279089 1.183416581282852 
+1.916119580045355 1.998033715516829 1.644376708776737 1.337881644994370 
+1.178878216861483 1.688358544499397 1.246247514000007 1.870555969128016 
+1.259293581953224 1.560041438314253 1.716793031804198 1.965342277469010 
+1.228116812120409 1.934813532728185 1.451103405210389 1.847074273623497 
+1.090084635708064 1.022506743994978 1.453622615260245 1.584226806652578 
+1.597658086020938 1.911883173273727 1.069273035611692 1.191731769743444 
+1.015040387272609 1.681088145737434 1.904033158305277 1.911585980081726 
+1.913747162343853 1.180399264172948 1.361560200402788 1.756430976493900 
+1.381302786677119 1.028386336161107 1.166210134454762 1.117725684978119 
+1.033286021486845 1.097858849692188 1.401238513246435 1.446651044187296 
+1.955026556546057 1.420245834510974 1.739630862598490 1.475221338750612 
+1.241747112765427 1.700251858229489 1.429814177955195 1.229650975372353 
+1.645427653633940 1.061509354074771 1.184549093119586 1.762979813773580 
+1.777238339782029 1.181747190832234 1.912534320285881 1.169305072970667 
+1.613294709359736 1.341000257164350 1.858278245943615 1.472606163180491 
+1.924132247525617 1.834439584652618 1.172647444036857 1.882097658546868 
+1.707924569161488 1.096293647674919 1.217248067037098 1.337348099447045 
+1.769981837647416 1.506064398662110 1.145497935771961 1.382464227761812 
+1.676613135343704 1.014251988730545 1.057863604198584 1.200840843994221 
+1.689404253148530 1.367926716309379 1.965938348516941 1.059722300583116 
+1.073915180348722 1.969814918347046 1.007615021467893 1.645935917301272 
+1.091845111128858 1.497190185261378 1.860369656053488 1.315623836023449 
+1.788649844546876 1.161018493872004 1.626438230713552 1.091516811386478 
+1.291244763405929 1.224353271933494 1.775976689029614 1.016817313887759 
+1.833788695198919 1.426590031247827 1.321025866452862 1.695713834041285 
+1.120640590742863 1.006139487633286 1.156531942031453 1.574911461099536 
+1.592455756197654 1.237554486061539 1.829420147179386 1.064873142129399 
+1.169152241269042 1.885575194973257 1.038285876564215 1.894615590835598 
+1.293332979511608 1.595763963610982 1.612166818449471 1.151185792681045 
+1.203551210860576 1.395496822378642 1.270750155930870 1.841606323055227 
+1.588045338335281 1.018998980902109 1.484652988358415 1.810100868522168 
+1.746558374945856 1.113889961650809 1.441115175629752 1.711052056625284 
+1.035975130211925 1.572330095659111 1.539954624603103 1.390840637672199 
+1.819282864771697 1.768993149687688 1.466722850184936 1.451811529139108 
+1.583138417675695 1.968092881222660 1.934634490887243 1.264630929474258 
+1.595834438227716 1.265452218154710 1.906421782760032 1.208584980134083 
+1.222187053780145 1.408898484042242 1.422273321289183 1.445285080554976 
+1.662080474986205 1.177438413081955 1.737895673172001 1.706672336635251 
+1.481507910910957 1.120181036604791 1.520431375569747 1.514881047873199 
+1.089566204864569 1.304385787667680 1.958108897777294 1.684522930521926 
+1.748939281359210 1.300243787944817 1.485880998613778 1.303628558526038 
+1.137397015895302 1.454960658773818 1.568619062658275 1.444702499145037 
+1.510773370712016 1.781557716648353 1.934103586229055 1.941172163765913 
+1.929790785666634 1.799625504029669 1.854377056362114 1.093059955571616 
+1.469135803452373 1.906149701617822 1.642755145459556 1.587627087490895 
+1.285498147558961 1.748389911970281 1.261307923373304 1.881490852207552 
+1.435832215350323 1.970898709817613 1.286913926992240 1.685376952896717 
+1.114921493298527 1.483647118849966 1.271549161988442 1.178171783721514 
+1.879458718382982 1.055612829529943 1.959653206466555 1.966549267065608 
+1.823113569060532 1.598472963193942 1.717943347498708 1.788611246842354 
+1.785607807089060 1.935863903082454 1.174960077680216 1.886361632047457 
+1.405052391691461 1.935248078463915 1.852231404234931 1.314888994372923 
+1.323584735475146 1.004988321827554 1.684950479733927 1.759059116079779 
+1.328234024028569 1.405490947199401 1.813953499561161 1.753783570407989 
+1.460025291518580 1.071700633164818 1.566616486396957 1.506487957528125 
+1.486016119187150 1.353043411988975 1.013118639349355 1.538394604806296 
+1.606680086865212 1.249277564072503 1.663765995782528 1.075456171683636 
+1.781575786787980 1.029034917780994 1.259428008004228 1.492390767384672 
+1.098738030341307 1.269272999886151 1.232438465676879 1.209900488655003 
+1.969091919854231 1.088964432565811 1.913960592307423 1.105495417415797 
+1.135007125702042 1.665540160018957 1.381740847844799 1.879101210905876 
+1.624704899913272 1.967298191224754 1.656823557849005 1.185334551587790 
+1.484105266625636 1.493209598339335 1.686502880240643 1.096292070043313 
+1.619571097993498 1.195610252532715 1.319269375125530 1.315527311257645 
+1.823012980563282 1.921849186157530 1.482471534309858 1.686347999576689 
+init_gen_rand(0) generated randoms [0, 1)
+0.765181698622537 0.745246305991537 0.568323803250302 0.827824719028969 
+0.101178624490813 0.347354743836463 0.097191252474847 0.915503700557514 
+0.198507374913141 0.056820215705049 0.949530905017576 0.438802247136309 
+init_gen_rand(1) generated randoms (0, 1]
+0.194901719878278 0.704504802589133 0.661425206834088 0.657149314391731 
+0.186843699820924 0.077986495572482 0.086200777814610 0.527940743534187 
+0.299184565757858 0.739601976621067 0.012431977952007 0.347952208466035 
+init_gen_rand(2) generated randoms (0, 1)
+0.075533231096734 0.307354304506435 0.966527714678182 0.186457407750199 
+0.644960401845214 0.314541181851816 0.453434663290944 0.440182700666382 
+0.601386637833244 0.559156405302471 0.984424835383663 0.999128106108649 
+init_gen_rand(3) generated randoms [1, 2)
+1.492018114697780 1.890020212160121 1.245108278636401 1.076281116689201 
+1.452912992227328 1.968601111847805 1.201521801181943 1.126832182196626 
+1.695974245608814 1.611186964340638 1.955708296329818 1.210756230417589 
+init_gen_rand(4) generated randoms [0, 1)
+0.404446092837087 0.762445918898612 0.403741481094674 0.407650347885022 
+0.124416429160289 0.011233840029980 0.618571154323500 0.461122646194172 
+0.991303052539951 0.330562747526625 0.752772140969431 0.398027333179694 
+init_gen_rand(5) generated randoms (0, 1]
+0.109001222977698 0.210206723085946 0.683579921697138 0.119935382322660 
+0.691957239677849 0.444409500203215 0.380763396888432 0.291656046710515 
+0.870460053910269 0.236025682714543 0.559036299162257 0.342945413589363 
+init_gen_rand(6) generated randoms (0, 1)
+0.078381323455834 0.011699383992331 0.443109769311707 0.528539988698759 
+0.415165193750453 0.023859791355018 0.667715479524992 0.863242539404107 
+0.650670970328711 0.775510845357363 0.491547072216528 0.622211856455525 
+init_gen_rand(7) generated randoms [1, 2)
+1.584934805509316 1.676650238560128 1.325851502255890 1.276580470236778 
+1.610600411911038 1.863296998157230 1.548340681088135 1.199033296390817 
+1.899963452719032 1.044715319922058 1.054712159521490 1.162008994228031 
+init_gen_rand(8) generated randoms [0, 1)
+0.993087689380468 0.151694904269749 0.418651866233654 0.116025502289459 
+0.783078619170259 0.235562258747579 0.496284822061449 0.212042411542110 
+0.413707988859745 0.779160118542302 0.983189708502100 0.372500143880130 
+init_gen_rand(9) generated randoms (0, 1]
+0.282947982966924 0.179393383854032 0.086727286066172 0.564683359419456 
+0.459961978215347 0.568495118639881 0.951889116009463 0.565191775861626 
+0.604064217572851 0.386086130527072 0.465369030315200 0.650437732951148 
+init_gen_rand(10) generated randoms (0, 1)
+0.404761365582273 0.154806542056355 0.100200757486543 0.330039633182131 
+0.147320225666558 0.650585900324658 0.687289496381154 0.596462000561654 
+0.509626564029628 0.044124986252273 0.584995607733763 0.997955242203390 
+init_gen_rand(11) generated randoms [1, 2)
+1.949534075530223 1.749223075302722 1.441445706072386 1.888453719616569 
+1.880186623524096 1.103259611051816 1.952616460650550 1.111848369225773 
+1.172651548435438 1.834338861987819 1.104088773502243 1.507518352519993 
+init_gen_rand(12) generated randoms [0, 1)
+0.052650487310517 0.395536639853791 0.168785774512398 0.053515488765646 
+0.217241512484666 0.303445331823205 0.222180922033841 0.161149424473557 
+0.184475531515527 0.902208045549648 0.847056488614387 0.309018859064990 
+init_gen_rand(13) generated randoms (0, 1]
+0.973715778804144 0.318106178587077 0.550007669382480 0.275705172377627 
+0.150396480159389 0.939084492074700 0.801092172170056 0.283353384863843 
+0.133465798903162 0.605691053031846 0.749663080542232 0.088437762113786 
+init_gen_rand(14) generated randoms (0, 1)
+0.406939354190244 0.845881531792185 0.274995087134765 0.679278999119130 
+0.337862594866596 0.443640591780940 0.714052020386318 0.836651939558780 
+0.671162535935649 0.848525372393848 0.138786969015979 0.953465343634057 
+init_gen_rand(15) generated randoms [1, 2)
+1.067093993646144 1.850924716687146 1.429231073178040 1.636396685323697 
+1.105412073865045 1.210032201642627 1.979586592960941 1.145551718005026 
+1.520506588279160 1.781928096273893 1.362878128916263 1.650050661470644 
+init_gen_rand(16) generated randoms [0, 1)
+0.180546093331636 0.138655300154890 0.301233148539964 0.569501474140356 
+0.596206484700007 0.922474129190981 0.388092195335005 0.500671429936854 
+0.674375041605038 0.620240442810709 0.936833865719104 0.932014322970933 
+init_gen_rand(17) generated randoms (0, 1]
+0.543913232352891 0.077207633047800 0.208463691837219 0.404261569755241 
+0.074803177834139 0.787466269917197 0.197723832988593 0.653543764877567 
+0.018842481297696 0.396566918000936 0.363016138264126 0.911004558439271 
+init_gen_rand(18) generated randoms (0, 1)
+0.971145432607785 0.939036408534919 0.731639159839990 0.689030721750226 
+0.009939267817058 0.801742263002830 0.688516010391608 0.827135228918788 
+0.017555728748372 0.135131796395826 0.307032060353549 0.253574644053649 
+init_gen_rand(19) generated randoms [1, 2)
+1.206359927616818 1.384099300915000 1.324799613402432 1.613919654852769 
+1.481833753473305 1.240074768871680 1.758993934916584 1.942388435239905 
+1.384200053935697 1.743561097833459 1.833415104799114 1.655249068290933 
+init_by_array {1, 2, 3, 4} generated randoms [1, 2)
+1.892883535970683 1.412729648325166 1.671331522024335 1.491754256116798 
+1.640782364538883 1.138537372127294 1.799409142764807 1.163684350755241 
+1.229925960807332 1.849274940142888 1.905288256013054 1.455444393466866 
+1.466476479491652 1.125487060817920 1.520577518909817 1.183518247040530 
+1.702266127360309 1.073690518227274 1.152846104032462 1.530751755640782 
+1.459972432194013 1.063678729939558 1.658711612084381 1.084494379723460 
+1.335521615188879 1.568912024036566 1.417718060433492 1.808005670671835 
+1.924140311809461 1.215213978438946 1.514759483341141 1.033155875786421 
+1.958168576488854 1.155392449510447 1.630739483278737 1.539723999402035 
+1.457799074737938 1.841373065285390 1.333891876029118 1.437008808435304 
+1.572276744586120 1.305618593536721 1.833973946315542 1.023399074163787 
+1.898127450563273 1.072618922408668 1.534549825711466 1.666957191622554 
+1.972641419977536 1.639777529361145 1.140734743400649 1.281725947813902 
+1.926402419343359 1.719053165493510 1.421013858130173 1.160371296456321 
+1.279434062637889 1.160375134462924 1.001975579602963 1.560863459997070 
+1.593018776279469 1.601324762293449 1.763362354057583 1.792270883314924 
+1.363875822899573 1.337219831878515 1.689338956406800 1.723143704404565 
+1.093448335243821 1.622650792649855 1.816657507365717 1.547645940239628 
+1.543136065746179 1.411613810848376 1.362536444190654 1.911813256879002 
+1.875832087102147 1.873401500029658 1.631001363719382 1.513003767828617 
+1.115898538427347 1.271173058339241 1.419319773467827 1.637741412235380 
+1.763392722333766 1.814771619266672 1.493188473743233 1.529710163929633 
+1.940105049199991 1.784797510332415 1.130809905184486 1.127130972184221 
+1.411541161977933 1.434107110881052 1.028023353080114 1.957663319355696 
+1.426810702259658 1.440705896432679 1.974919444174774 1.373066932534486 
+1.953442140704209 1.932028943642709 1.534141593992370 1.070647501466886 
+1.163054442518166 1.049513688851820 1.932227846663771 1.936688895344145 
+1.027521728760087 1.055960925039709 1.791642159219365 1.035481677717621 
+1.108196504847673 1.149055196151225 1.786734266089681 1.152179489418855 
+1.496470410777792 1.114263046757201 1.748312758451084 1.693844190412148 
+1.104392210916629 1.657498802253537 1.767963699856473 1.299760712204195 
+1.040383937590463 1.589665040565259 1.681583534374294 1.243383081639149 
+1.810703696971720 1.806866131310606 1.348989362366272 1.685004798705723 
+1.680755625528683 1.884167213831646 1.570343862276996 1.492537513782986 
+1.532337082987993 1.980110737861026 1.938007122662909 1.280708779421938 
+1.442677918912522 1.579474804657615 1.594841258927511 1.264836842165308 
+1.311571538622504 1.989563719363927 1.871566290559495 1.414337487864363 
+1.929845604490232 1.744958629272895 1.982239226592740 1.706549722128557 
+1.689918704373632 1.600804379217534 1.129247368929106 1.914132443738556 
+1.965191732619471 1.187965534488047 1.376913200057171 1.021724019804689 
+1.507052177836224 1.495762984476405 1.055010357156913 1.445139861703770 
+1.206274348339985 1.008529586620759 1.735401038800223 1.085874036525407 
+1.611532162819708 1.578812401734480 1.652238902744779 1.462674225718016 
+1.087188988620069 1.627884627500877 1.279934308016366 1.830495937195550 
+1.399200473965334 1.890610193558726 1.861485998765988 1.405627314542098 
+1.278843045231615 1.294741581177296 1.464422722512821 1.651635203218117 
+1.635314948211465 1.730601699533330 1.972712954434677 1.245768626256637 
+1.978810920527791 1.471505435972323 1.902744469598693 1.873205357955142 
+1.911027378324191 1.253047730381165 1.768143371079770 1.316168955503440 
+1.193587318447920 1.559336754423158 1.889099262727965 1.301983275724697 
+1.737975720884597 1.638300104702087 1.204309704066212 1.321810624497851 
+1.344595369743909 1.263491451989118 1.595812257131693 1.729468196568482 
+1.117111598905744 1.792280052307747 1.496994876988181 1.251755495861555 
+1.633477921951994 1.365564372779219 1.441553688504611 1.169133674557640 
+1.928708019017703 1.569692282893167 1.091075198220127 1.067653522910994 
+1.068169059356097 1.993248808017823 1.576352056170494 1.824187253390225 
+1.733486191564744 1.453876050244114 1.921664241054918 1.759018794786757 
+1.451744584486570 1.450209034444704 1.442647267001538 1.289107096750896 
+1.671392632776305 1.544407483299344 1.384635855016658 1.481864183752185 
+1.696251151275604 1.783452797672608 1.579488168616662 1.634035803587876 
+1.237690310981975 1.022171430230068 1.863906647058764 1.106773278277205 
+1.719679452243301 1.922310454135831 1.542156688754202 1.786047085638752 
+1.207798526212639 1.270718731967541 1.735785912826273 1.561157631290771 
+1.638043591645478 1.563111247643481 1.349218209960434 1.373645269964001 
+1.162848368814627 1.569745017839139 1.972436707959775 1.638718770166380 
+1.758352365211530 1.172663378661321 1.955683074103130 1.508540813563666 
+1.854844198233054 1.942023283559082 1.656995981472469 1.017981769672493 
+1.052255534865106 1.677192399830085 1.351898694564238 1.575571981517042 
+1.501324031161446 1.450487718631524 1.776295370894751 1.237705775224218 
+1.140562157650395 1.097447595810275 1.304618311342153 1.597477001925518 
+1.440003835297784 1.863222211346717 1.999908084772400 1.872057971114213 
+1.334188921623872 1.738949846134105 1.667963471574521 1.341306915807424 
+1.368480138281057 1.184659998138869 1.691045124092394 1.211820093524902 
+1.920753946848070 1.126406272764826 1.194252154255981 1.017259074737733 
+1.908107914547312 1.800589814919878 1.362796048370516 1.368537524290153 
+1.951277709444311 1.856588587052369 1.278734905583128 1.843223475762043 
+1.016777877453271 1.392066673944278 1.823948078652580 1.587354809206956 
+1.158765677081806 1.294225191294099 1.846738775492889 1.534188468279791 
+1.343401621776340 1.796903233339115 1.625274642582183 1.098912239484034 
+1.243311159354215 1.720437203477467 1.881632808682163 1.612125045759396 
+1.044682741463417 1.528459408456039 1.433239038831055 1.473435911630778 
+1.452882017530115 1.300399659573286 1.254727128816810 1.078264051449046 
+1.634844626161141 1.239050463038994 1.437552104298563 1.385797256948009 
+1.262921343016858 1.531206233056216 1.657578845487789 1.600045773522334 
+1.455093418751433 1.661666207154943 1.739394081236747 1.658791852524343 
+1.936837400591283 1.669300617619986 1.680819453026682 1.877312138682741 
+1.007189530528980 1.096524826206353 1.133622989934503 1.264660621196395 
+1.963756048723907 1.820396774199387 1.857961915412066 1.751927323144509 
+1.673288067693735 1.003727803632753 1.694001258177293 1.814858077540340 
+1.546695931565367 1.831149490530607 1.280316659232685 1.758143933223230 
+1.022404902573756 1.763554645476943 1.402590133139446 1.714314562338457 
+1.946956951170933 1.493492192509502 1.759974250286904 1.689097562794250 
+1.876613615127001 1.952094550438887 1.292089192790503 1.794314246625205 
+1.346154490689070 1.454768517600276 1.534481079312396 1.743668817294108 
+1.745382762763341 1.695472312410882 1.239803705153952 1.758914995271617 
+1.336060371076850 1.505706101489674 1.325180214258528 1.910279844510657 
+1.814269520849608 1.220687672179247 1.726134286194186 1.973334073173328 
+1.867260225943137 1.277032614842357 1.073354407101281 1.093247614737781 
+1.734053608597106 1.240725986484424 1.776926124556596 1.793138272933625 
+1.109584008512065 1.025767905824009 1.085742832193251 1.623303122518830 
+1.171692193582825 1.774204209695847 1.207905442085815 1.509740830779112 
+1.873203344165543 1.749396903551340 1.717102066455405 1.654910739513974 
+1.231735918618837 1.817386118826986 1.134291291003065 1.982393467453816 
+1.981304243123793 1.504861937479236 1.713762054832939 1.567126453942604 
+1.997064256618935 1.306282099688974 1.176451248795271 1.968756679484494 
+1.768165764348702 1.488038292644232 1.086456139279368 1.253698223993535 
+1.679169691586090 1.523788275296410 1.434558632378724 1.249154833986132 
+1.506963710046743 1.123840236262058 1.566804941810517 1.337582393651970 
+1.956235424365989 1.734923522467034 1.487087691479413 1.995226766768120 
+1.805517393436494 1.565057951250842 1.604163706947308 1.435268727736281 
+1.664512543158169 1.008274178384185 1.160018686139991 1.604547220778960 
+1.911397109322830 1.775893068630516 1.386368236987307 1.958796101533894 
+1.188719914125402 1.004672907433272 1.203671859947236 1.081575824460157 
+1.111168478503118 1.656227733088723 1.786047343158604 1.556069277175311 
+1.598835806191631 1.472716676129065 1.025864067676781 1.793227901675173 
+1.075638031491737 1.623949445067573 1.332915717539533 1.539856941323099 
+1.295603331457711 1.190197733025336 1.152787838289298 1.068181404163693 
+1.776787834542723 1.165806921215398 1.713201842693225 1.447696487606869 
+1.377773467112059 1.836534190980891 1.734569538737740 1.315043263871589 
+1.642215853908334 1.241428995198423 1.708074310236120 1.823541529821143 
+1.935456268912510 1.085676684566828 1.726964366654815 1.558923720130687 
+1.790803914212687 1.690616261976467 1.040823967780562 1.973909865489155 
+1.171897159328651 1.966113481565902 1.705301294363308 1.653724462253315 
+1.931305603566901 1.607441581196421 1.957139456187479 1.681599394184954 
+1.469469138583072 1.193792624200029 1.089894356570849 1.883337101337346 
+1.533833001107779 1.501539669660634 1.007195356591332 1.571673477534675 
+1.247270149427746 1.426117138691997 1.725011189497985 1.046443663747283 
+1.804461870824770 1.151285534635263 1.767870451917892 1.826611465395833 
+1.179812199565881 1.896968484211582 1.816938525004874 1.831533052264599 
+1.957024507022639 1.077948636021363 1.397572958544967 1.450108846292723 
+1.847930363760755 1.562093016040758 1.576036150758550 1.009414291671290 
+1.452574378049806 1.840634978257895 1.608186612734326 1.066287134479941 
+1.066416773508423 1.463455477989006 1.537585999769846 1.898015672520719 
+1.500976479157967 1.828387315822988 1.905175567419722 1.176970755875682 
+1.714922241514217 1.307964620081402 1.685163230784523 1.493747791861795 
+1.863805158665034 1.358168749223224 1.788873278084391 1.533146150623248 
+1.514364753347113 1.212953188191651 1.957284983725556 1.160492304623622 
+1.320395501748223 1.713467709857473 1.420372262118422 1.152473291400343 
+1.499651585470100 1.918614608961272 1.571613349756278 1.070833187075357 
+1.683126193194961 1.436831727866980 1.970016000220323 1.971907845709086 
+1.531092894597027 1.978254581949674 1.237297558707889 1.101898426698781 
+1.399964113326961 1.049731512999026 1.889052113234192 1.275794414164407 
+1.732926747855593 1.838239168228554 1.345455508412122 1.987903319999037 
+1.692751300306969 1.825673028440502 1.490725631642933 1.946950118015296 
+1.757279349503608 1.518769842315161 1.130097286453951 1.060616067477641 
+1.236156918095342 1.835527605914673 1.427004311494089 1.630992601153507 
+1.596319693049390 1.750104592446400 1.190123960062343 1.353338641667988 
+1.694908329970911 1.483279168290410 1.387543822746844 1.321243115853624 
+1.621520553827230 1.712828215925466 1.469491489787864 1.552149282385244 
+1.179170050672466 1.655719423690983 1.418297797448698 1.932051419682290 
+1.259774470717944 1.815926264102463 1.796842928971166 1.708587820687784 
+1.010876929100240 1.063612446668939 1.284274451805030 1.885531117867440 
+1.483813859481219 1.842607863394787 1.676853938573408 1.360040208935133 
+1.804778018088614 1.384128389333548 1.736078970411933 1.712758240922570 
+1.777651158576886 1.490795465643066 1.485611961937628 1.904681259224649 
+1.504883146227576 1.557523364276351 1.809726973359681 1.043393987067255 
+1.824959332361154 1.496552126199529 1.556544596357160 1.626295615325021 
+1.405086569481394 1.433601074401437 1.514836413926030 1.428003847773940 
+1.300891337657429 1.844520326811246 1.582425148085675 1.621310894404461 
+1.329486747990812 1.655148494737298 1.228644915977641 1.490027605058421 
+1.127325485953202 1.851568158659541 1.902431329839075 1.004458415957182 
+1.827348168129978 1.033354207758548 1.863247306060885 1.162182561787849 
+1.000126742377630 1.081120942549300 1.775194467774498 1.712623541431774 
+1.037628766504375 1.480382501692385 1.394986698532885 1.592572767628031 
+1.933002125988155 1.907922742859308 1.875353596420005 1.222045258950280 
+1.088584196946653 1.094698698598810 1.138886427537912 1.534792498410800 
+1.025406418388914 1.451600911794613 1.789546909602172 1.102266028630683 
+1.743876722077567 1.473996903502884 1.601642643941871 1.540954161811467 
+1.339280555547696 1.270131485471183 1.418878715463446 1.637893047047019 
+1.063116528037149 1.933107118850026 1.060222401391898 1.437811550598053 
+1.301695405811684 1.756510040177699 1.037612037250069 1.996985753350526 
+1.942635770970835 1.948684063058883 1.302647280531661 1.684829649378221 
+1.789437485491603 1.016506403999265 1.026056007543912 1.473810275437310 
+1.607904701626775 1.413930104974186 1.602175139589242 1.882552440585709 
+1.345840014901393 1.622777758733002 1.027797469359313 1.225714882951506 
+1.649676067880171 1.291844581432604 1.213909787694066 1.484672495102310 
+1.962529062152421 1.169301210948227 1.975102026968005 1.677680085041434 
+1.555160437094738 1.092708734652807 1.797424403830513 1.746950134524985 
+1.613356516261027 1.777123360539091 1.258059864823614 1.073666374199011 
+1.958201470400026 1.624641845324021 1.695361902573933 1.152931365864852 
+1.095555517772276 1.318815824891956 1.957890806936780 1.503295901306461 
+1.469906868219350 1.491576151315772 1.842364733285792 1.887090335844010 
+1.947061949153211 1.753768877687567 1.833335771158739 1.482640882990405 
+1.005994565193160 1.233731047701740 1.623592138217837 1.719036452072609 
+1.679729733968217 1.005925843631114 1.236418782242402 1.559916066669359 
+1.158188114333371 1.523055958832958 1.427714163855530 1.866332945465998 
+1.561819074106510 1.144228608959411 1.837425271957171 1.519058626143948 
+1.797360437733657 1.524307126871040 1.827777735685209 1.659493899773813 
+1.211487188209535 1.890533754601224 1.185246597980318 1.168212222187909 
+1.488190715338650 1.985862665432416 1.521997282848491 1.268093754664131 
+1.057713113140982 1.906332857637136 1.663795122560118 1.768533057681621 
+1.760431347719131 1.421061547219725 1.151197269673587 1.465884080519239 
+1.505671846965981 1.125282523774345 1.015158674539330 1.689354022080508 
+1.583659045615800 1.362291949170211 1.948874912914730 1.811940774313379 
+1.711593454803071 1.308576828163997 1.599976027911868 1.015647919769850 
+1.329858783055330 1.340024046671531 1.598894674164090 1.864631375131185 
+1.326589005961762 1.474503771744950 1.689042967861941 1.096504189307748 
+1.652749778001464 1.825713576332701 1.975778106554329 1.809141564553250 
+1.323268075324681 1.018574661810552 1.020932418663725 1.473283839177009 
+1.570774517207838 1.041247905421834 1.757223899034305 1.198037960470810 
+1.748783073252119 1.038149260333164 1.003390437487034 1.217947960140179 
+1.599647939324103 1.233954377311597 1.429580545248766 1.536665104563614 
+1.036222054600422 1.607116453819095 1.780190892127103 1.660204591702542 
+1.446353297570532 1.709456876613010 1.426529498191783 1.862662808630618 
+1.551593045792184 1.479627543514053 1.073572790002313 1.812249963441291 
+1.476849839316181 1.558429287851467 1.370566637626548 1.137249855331891 
+1.267369861215025 1.385447756096707 1.816178068018847 1.966198685985119 
+1.942675490853440 1.036650013653517 1.613122376882729 1.493577093238568 
+1.790572117408226 1.035081662437390 1.890867740274061 1.986454001052731 
+1.168816215674313 1.781488805008211 1.197491720112852 1.503078033525280 
+1.417028691027279 1.499969199610401 1.659669429675143 1.660760244488237 
+1.774073401263597 1.172966432841782 1.613594325398058 1.412170338914055 
+1.121733471393490 1.139283137816371 1.973317127817879 1.314226180341897 
+1.309143631740978 1.499459195024831 1.955813072861871 1.688408934359716 
+1.110856117581325 1.498584753687939 1.097322230934895 1.881033180485338 
+1.650633518584435 1.861419240423796 1.889057499792495 1.146373574947115 
+1.006025469208762 1.415160747213003 1.001847599272782 1.550310054442998 
+1.293540288117754 1.950487237126636 1.912245255369211 1.189262970281116 
+1.954934029694948 1.859081440801327 1.480436372393402 1.619797281052905 
+1.607987659489935 1.119366265312031 1.694085745909575 1.621570404846361 
+1.612992851198198 1.477434103897496 1.079771668801882 1.509162741786280 
+1.536746430396009 1.856608643902645 1.212575677518916 1.964465647256054 
+1.139417068004172 1.485304864525857 1.384265419060193 1.906567414680306 
+1.756017907855176 1.418164385197730 1.304388939687492 1.839585610813868 
+1.523308313669940 1.224863502553727 1.551905829022093 1.326121424686399 
+1.381218209906805 1.756123971897009 1.230886474033807 1.732657526219933 
+1.882529450622424 1.009787268175969 1.891680895105129 1.562517131803511 
+1.908231532734785 1.425990552575535 1.542240287627732 1.794728831612900 
+1.267363134196540 1.273211475957524 1.250426894768777 1.836985741425623 
+1.088275092884384 1.125975763152935 1.736944187259203 1.423982905966507 
+1.110354512684588 1.473669800828601 1.838373975367636 1.934200551282923 
+1.646725702876040 1.663462174825866 1.927715892300048 1.975636844278086 
+1.309240440213399 1.615367432778719 1.107148525232788 1.905807376128358 
+1.924969132075591 1.837803355530254 1.082054667554295 1.526034661136883 
+1.357702934098275 1.624506871886882 1.546513938887027 1.472235873170842 
+1.182000973359567 1.924344739015880 1.409754041827681 1.416120857387742 
+1.564338535603021 1.788240476381467 1.534441907702963 1.172651546548789 
+1.469881480870396 1.825881310443693 1.902138837595474 1.018159298070005 
+1.056592196203752 1.927083351905319 1.563901531507043 1.551743222405781 
+1.034349565537383 1.752155389804737 1.111456092105040 1.450579007424667 
+1.328476936664987 1.805657811782792 1.142851008212571 1.276073683486752 
+1.983731092111418 1.950976285737764 1.321852989487230 1.488256604561158 
+1.834963867243400 1.657478255032770 1.125156297370492 1.055048597667895 
+1.905878951668972 1.490853858465941 1.321672830177087 1.881988115751798 
+1.010139184168050 1.324948103937802 1.318715351539402 1.415138733223783 
+1.458277644843188 1.707594546563702 1.094235045892091 1.973249160722548 
+1.412292089086303 1.780668671402571 1.423499416898557 1.867336510555279 
+1.551628625810002 1.550057966114712 1.416505770946726 1.231970066424740 
+1.092160638223533 1.283448196578236 1.038868859610745 1.758048085694754 
+1.509281303836366 1.419558701507723 1.615346799112448 1.365160196008440 
Index: /Daodan/MSVC/dSFMT/dSFMT.c
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.c	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.c	(revision 567)
@@ -0,0 +1,734 @@
+/** 
+ * @file dSFMT.c 
+ * @brief double precision SIMD-oriented Fast Mersenne Twister (dSFMT)
+ * based on IEEE 754 format.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (Hiroshima University)
+ *
+ * Copyright (C) 2007,2008 Mutsuo Saito, Makoto Matsumoto and Hiroshima
+ * University. All rights reserved.
+ *
+ * The new BSD License is applied to this software, see LICENSE.txt
+ */
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include "dSFMT-params.h"
+
+/** dsfmt internal state vector */
+dsfmt_t dsfmt_global_data;
+/** dsfmt mexp for check */
+static const int dsfmt_mexp = DSFMT_MEXP;
+
+/*----------------
+  STATIC FUNCTIONS
+  ----------------*/
+inline static uint32_t ini_func1(uint32_t x);
+inline static uint32_t ini_func2(uint32_t x);
+inline static void gen_rand_array_c1o2(dsfmt_t *dsfmt, w128_t *array,
+				       int size);
+inline static void gen_rand_array_c0o1(dsfmt_t *dsfmt, w128_t *array,
+				       int size);
+inline static void gen_rand_array_o0c1(dsfmt_t *dsfmt, w128_t *array,
+				       int size);
+inline static void gen_rand_array_o0o1(dsfmt_t *dsfmt, w128_t *array,
+				       int size);
+inline static int idxof(int i);
+static void initial_mask(dsfmt_t *dsfmt);
+static void period_certification(dsfmt_t *dsfmt);
+
+#if defined(HAVE_SSE2)
+#  include <emmintrin.h>
+/** mask data for sse2 */
+static __m128i sse2_param_mask;
+/** 1 in 64bit for sse2 */
+static __m128i sse2_int_one;
+/** 2.0 double for sse2 */
+static __m128d sse2_double_two;
+/** -1.0 double for sse2 */
+static __m128d sse2_double_m_one;
+
+static void setup_const(void);
+#endif
+
+/**
+ * This function simulate a 32-bit array index overlapped to 64-bit
+ * array of LITTLE ENDIAN in BIG ENDIAN machine.
+ */
+#if defined(DSFMT_BIG_ENDIAN)
+inline static int idxof(int i) {
+    return i ^ 1;
+}
+#else
+inline static int idxof(int i) {
+    return i;
+}
+#endif
+
+/**
+ * This function represents the recursion formula.
+ * @param r output
+ * @param a a 128-bit part of the internal state array
+ * @param b a 128-bit part of the internal state array
+ * @param lung a 128-bit part of the internal state array
+ */
+#if defined(HAVE_ALTIVEC)
+inline static void do_recursion(w128_t *r, w128_t *a, w128_t * b,
+				w128_t *lung) {
+    const vector unsigned char sl1 = ALTI_SL1;
+    const vector unsigned char sl1_perm = ALTI_SL1_PERM;
+    const vector unsigned int sl1_msk = ALTI_SL1_MSK;
+    const vector unsigned char sr1 = ALTI_SR;
+    const vector unsigned char sr1_perm = ALTI_SR_PERM;
+    const vector unsigned int sr1_msk = ALTI_SR_MSK;
+    const vector unsigned char perm = ALTI_PERM;
+    const vector unsigned int msk1 = ALTI_MSK;
+    vector unsigned int w, x, y, z;
+
+    z = a->s;
+    w = lung->s;
+    x = vec_perm(w, (vector unsigned int)perm, perm);
+    y = vec_perm(z, sl1_perm, sl1_perm);
+    y = vec_sll(y, sl1);
+    y = vec_and(y, sl1_msk);
+    w = vec_xor(x, b->s);
+    w = vec_xor(w, y);
+    x = vec_perm(w, (vector unsigned int)sr1_perm, sr1_perm);
+    x = vec_srl(x, sr1);
+    x = vec_and(x, sr1_msk);
+    y = vec_and(w, msk1);
+    z = vec_xor(z, y);
+    r->s = vec_xor(z, x);
+    lung->s = w;
+}
+#elif defined(HAVE_SSE2)
+/**
+ * This function setup some constant variables for SSE2.
+ */
+static void setup_const(void) {
+    static int first = 1;
+    if (!first) {
+	return;
+    }
+    sse2_param_mask = _mm_set_epi32(DSFMT_MSK32_3, DSFMT_MSK32_4,
+				    DSFMT_MSK32_1, DSFMT_MSK32_2);
+    sse2_int_one = _mm_set_epi32(0, 1, 0, 1);
+    sse2_double_two = _mm_set_pd(2.0, 2.0);
+    sse2_double_m_one = _mm_set_pd(-1.0, -1.0);
+    first = 0;
+}
+
+/**
+ * This function represents the recursion formula.
+ * @param r output 128-bit
+ * @param a a 128-bit part of the internal state array
+ * @param b a 128-bit part of the internal state array
+ * @param d a 128-bit part of the internal state array (I/O)
+ */
+inline static void do_recursion(w128_t *r, w128_t *a, w128_t *b, w128_t *u) {
+    __m128i v, w, x, y, z;
+    
+    x = a->si;
+    z = _mm_slli_epi64(x, DSFMT_SL1);
+    y = _mm_shuffle_epi32(u->si, SSE2_SHUFF);
+    z = _mm_xor_si128(z, b->si);
+    y = _mm_xor_si128(y, z);
+
+    v = _mm_srli_epi64(y, DSFMT_SR);
+    w = _mm_and_si128(y, sse2_param_mask);
+    v = _mm_xor_si128(v, x);
+    v = _mm_xor_si128(v, w);
+    r->si = v;
+    u->si = y;
+}
+#else /* standard C */
+/**
+ * This function represents the recursion formula.
+ * @param r output 128-bit
+ * @param a a 128-bit part of the internal state array
+ * @param b a 128-bit part of the internal state array
+ * @param lung a 128-bit part of the internal state array (I/O)
+ */
+inline static void do_recursion(w128_t *r, w128_t *a, w128_t * b,
+				w128_t *lung) {
+    uint64_t t0, t1, L0, L1;
+
+    t0 = a->u[0];
+    t1 = a->u[1];
+    L0 = lung->u[0];
+    L1 = lung->u[1];
+    lung->u[0] = (t0 << DSFMT_SL1) ^ (L1 >> 32) ^ (L1 << 32) ^ b->u[0];
+    lung->u[1] = (t1 << DSFMT_SL1) ^ (L0 >> 32) ^ (L0 << 32) ^ b->u[1];
+    r->u[0] = (lung->u[0] >> DSFMT_SR) ^ (lung->u[0] & DSFMT_MSK1) ^ t0;
+    r->u[1] = (lung->u[1] >> DSFMT_SR) ^ (lung->u[1] & DSFMT_MSK2) ^ t1;
+}
+#endif
+
+#if defined(HAVE_SSE2)
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range [0, 1).
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_c0o1(w128_t *w) {
+    w->sd = _mm_add_pd(w->sd, sse2_double_m_one);
+}
+
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range (0, 1].
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_o0c1(w128_t *w) {
+    w->sd = _mm_sub_pd(sse2_double_two, w->sd);
+}
+
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range (0, 1).
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_o0o1(w128_t *w) {
+    w->si = _mm_or_si128(w->si, sse2_int_one);
+    w->sd = _mm_add_pd(w->sd, sse2_double_m_one);
+}
+#else /* standard C and altivec */
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range [0, 1).
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_c0o1(w128_t *w) {
+    w->d[0] -= 1.0;
+    w->d[1] -= 1.0;
+}
+
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range (0, 1].
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_o0c1(w128_t *w) {
+    w->d[0] = 2.0 - w->d[0];
+    w->d[1] = 2.0 - w->d[1];
+}
+
+/**
+ * This function converts the double precision floating point numbers which
+ * distribute uniformly in the range [1, 2) to those which distribute uniformly
+ * in the range (0, 1).
+ * @param w 128bit stracture of double precision floating point numbers (I/O)
+ */
+inline static void convert_o0o1(w128_t *w) {
+    w->u[0] |= 1;
+    w->u[1] |= 1;
+    w->d[0] -= 1.0;
+    w->d[1] -= 1.0;
+}
+#endif
+
+/**
+ * This function fills the user-specified array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ * @param array an 128-bit array to be filled by pseudorandom numbers.  
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+inline static void gen_rand_array_c1o2(dsfmt_t *dsfmt, w128_t *array,
+				       int size) {
+    int i, j;
+    w128_t lung;
+
+    lung = dsfmt->status[DSFMT_N];
+    do_recursion(&array[0], &dsfmt->status[0], &dsfmt->status[DSFMT_POS1],
+		 &lung);
+    for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+	do_recursion(&array[i], &dsfmt->status[i],
+		     &dsfmt->status[i + DSFMT_POS1], &lung);
+    }
+    for (; i < DSFMT_N; i++) {
+	do_recursion(&array[i], &dsfmt->status[i],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+    }
+    for (; i < size - DSFMT_N; i++) {
+	do_recursion(&array[i], &array[i - DSFMT_N],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+    }
+    for (j = 0; j < 2 * DSFMT_N - size; j++) {
+	dsfmt->status[j] = array[j + size - DSFMT_N];
+    }
+    for (; i < size; i++, j++) {
+	do_recursion(&array[i], &array[i - DSFMT_N],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+	dsfmt->status[j] = array[i];
+    }
+    dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function fills the user-specified array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ * @param array an 128-bit array to be filled by pseudorandom numbers.  
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+inline static void gen_rand_array_c0o1(dsfmt_t *dsfmt, w128_t *array,
+				       int size) {
+    int i, j;
+    w128_t lung;
+
+    lung = dsfmt->status[DSFMT_N];
+    do_recursion(&array[0], &dsfmt->status[0], &dsfmt->status[DSFMT_POS1],
+		 &lung);
+    for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+	do_recursion(&array[i], &dsfmt->status[i],
+		     &dsfmt->status[i + DSFMT_POS1], &lung);
+    }
+    for (; i < DSFMT_N; i++) {
+	do_recursion(&array[i], &dsfmt->status[i],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+    }
+    for (; i < size - DSFMT_N; i++) {
+	do_recursion(&array[i], &array[i - DSFMT_N],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+	convert_c0o1(&array[i - DSFMT_N]);
+    }
+    for (j = 0; j < 2 * DSFMT_N - size; j++) {
+	dsfmt->status[j] = array[j + size - DSFMT_N];
+    }
+    for (; i < size; i++, j++) {
+	do_recursion(&array[i], &array[i - DSFMT_N],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+	dsfmt->status[j] = array[i];
+	convert_c0o1(&array[i - DSFMT_N]);
+    }
+    for (i = size - DSFMT_N; i < size; i++) {
+	convert_c0o1(&array[i]);
+    }
+    dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function fills the user-specified array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ * @param array an 128-bit array to be filled by pseudorandom numbers.  
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+inline static void gen_rand_array_o0o1(dsfmt_t *dsfmt, w128_t *array,
+				       int size) {
+    int i, j;
+    w128_t lung;
+
+    lung = dsfmt->status[DSFMT_N];
+    do_recursion(&array[0], &dsfmt->status[0], &dsfmt->status[DSFMT_POS1],
+		 &lung);
+    for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+	do_recursion(&array[i], &dsfmt->status[i],
+		     &dsfmt->status[i + DSFMT_POS1], &lung);
+    }
+    for (; i < DSFMT_N; i++) {
+	do_recursion(&array[i], &dsfmt->status[i],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+    }
+    for (; i < size - DSFMT_N; i++) {
+	do_recursion(&array[i], &array[i - DSFMT_N],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+	convert_o0o1(&array[i - DSFMT_N]);
+    }
+    for (j = 0; j < 2 * DSFMT_N - size; j++) {
+	dsfmt->status[j] = array[j + size - DSFMT_N];
+    }
+    for (; i < size; i++, j++) {
+	do_recursion(&array[i], &array[i - DSFMT_N],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+	dsfmt->status[j] = array[i];
+	convert_o0o1(&array[i - DSFMT_N]);
+    }
+    for (i = size - DSFMT_N; i < size; i++) {
+	convert_o0o1(&array[i]);
+    }
+    dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function fills the user-specified array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ * @param array an 128-bit array to be filled by pseudorandom numbers.  
+ * @param size number of 128-bit pseudorandom numbers to be generated.
+ */
+inline static void gen_rand_array_o0c1(dsfmt_t *dsfmt, w128_t *array,
+				       int size) {
+    int i, j;
+    w128_t lung;
+
+    lung = dsfmt->status[DSFMT_N];
+    do_recursion(&array[0], &dsfmt->status[0], &dsfmt->status[DSFMT_POS1],
+		 &lung);
+    for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+	do_recursion(&array[i], &dsfmt->status[i],
+		     &dsfmt->status[i + DSFMT_POS1], &lung);
+    }
+    for (; i < DSFMT_N; i++) {
+	do_recursion(&array[i], &dsfmt->status[i],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+    }
+    for (; i < size - DSFMT_N; i++) {
+	do_recursion(&array[i], &array[i - DSFMT_N],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+	convert_o0c1(&array[i - DSFMT_N]);
+    }
+    for (j = 0; j < 2 * DSFMT_N - size; j++) {
+	dsfmt->status[j] = array[j + size - DSFMT_N];
+    }
+    for (; i < size; i++, j++) {
+	do_recursion(&array[i], &array[i - DSFMT_N],
+		     &array[i + DSFMT_POS1 - DSFMT_N], &lung);
+	dsfmt->status[j] = array[i];
+	convert_o0c1(&array[i - DSFMT_N]);
+    }
+    for (i = size - DSFMT_N; i < size; i++) {
+	convert_o0c1(&array[i]);
+    }
+    dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function represents a function used in the initialization
+ * by init_by_array
+ * @param x 32-bit integer
+ * @return 32-bit integer
+ */
+static uint32_t ini_func1(uint32_t x) {
+    return (x ^ (x >> 27)) * (uint32_t)1664525UL;
+}
+
+/**
+ * This function represents a function used in the initialization
+ * by init_by_array
+ * @param x 32-bit integer
+ * @return 32-bit integer
+ */
+static uint32_t ini_func2(uint32_t x) {
+    return (x ^ (x >> 27)) * (uint32_t)1566083941UL;
+}
+
+/**
+ * This function initializes the internal state array to fit the IEEE
+ * 754 format.
+ * @param dsfmt dsfmt state vector.
+ */
+static void initial_mask(dsfmt_t *dsfmt) {
+    int i;
+    uint64_t *psfmt;
+
+    psfmt = &dsfmt->status[0].u[0];
+    for (i = 0; i < DSFMT_N * 2; i++) {
+        psfmt[i] = (psfmt[i] & DSFMT_LOW_MASK) | DSFMT_HIGH_CONST;
+    }
+}
+
+/**
+ * This function certificate the period of 2^{SFMT_MEXP}-1.
+ * @param dsfmt dsfmt state vector.
+ */
+static void period_certification(dsfmt_t *dsfmt) {
+    uint64_t pcv[2] = {DSFMT_PCV1, DSFMT_PCV2};
+    uint64_t tmp[2];
+    uint64_t inner;
+    int i;
+#if (DSFMT_PCV2 & 1) != 1
+    int j;
+    uint64_t work;
+#endif
+
+    tmp[0] = (dsfmt->status[DSFMT_N].u[0] ^ DSFMT_FIX1);
+    tmp[1] = (dsfmt->status[DSFMT_N].u[1] ^ DSFMT_FIX2);
+
+    inner = tmp[0] & pcv[0];
+    inner ^= tmp[1] & pcv[1];
+    for (i = 32; i > 0; i >>= 1) {
+        inner ^= inner >> i;
+    }
+    inner &= 1;
+    /* check OK */
+    if (inner == 1) {
+	return;
+    }
+    /* check NG, and modification */
+#if (DSFMT_PCV2 & 1) == 1
+    dsfmt->status[DSFMT_N].u[1] ^= 1;
+#else
+    for (i = 1; i >= 0; i--) {
+	work = 1;
+	for (j = 0; j < 64; j++) {
+	    if ((work & pcv[i]) != 0) {
+		dsfmt->status[DSFMT_N].u[i] ^= work;
+		return;
+	    }
+	    work = work << 1;
+	}
+    }
+#endif
+    return;
+}
+
+/*----------------
+  PUBLIC FUNCTIONS
+  ----------------*/
+/**
+ * This function returns the identification string.  The string shows
+ * the Mersenne exponent, and all parameters of this generator.
+ * @return id string.
+ */
+const char *dsfmt_get_idstring(void) {
+    return DSFMT_IDSTR;
+}
+
+/**
+ * This function returns the minimum size of array used for \b
+ * fill_array functions.
+ * @return minimum size of array used for fill_array functions.
+ */
+int dsfmt_get_min_array_size(void) {
+    return DSFMT_N64;
+}
+
+/**
+ * This function fills the internal state array with double precision
+ * floating point pseudorandom numbers of the IEEE 754 format.
+ * @param dsfmt dsfmt state vector.
+ */
+void dsfmt_gen_rand_all(dsfmt_t *dsfmt) {
+    int i;
+    w128_t lung;
+
+    lung = dsfmt->status[DSFMT_N];
+    do_recursion(&dsfmt->status[0], &dsfmt->status[0],
+		 &dsfmt->status[DSFMT_POS1], &lung);
+    for (i = 1; i < DSFMT_N - DSFMT_POS1; i++) {
+	do_recursion(&dsfmt->status[i], &dsfmt->status[i],
+		     &dsfmt->status[i + DSFMT_POS1], &lung);
+    }
+    for (; i < DSFMT_N; i++) {
+	do_recursion(&dsfmt->status[i], &dsfmt->status[i],
+		     &dsfmt->status[i + DSFMT_POS1 - DSFMT_N], &lung);
+    }
+    dsfmt->status[DSFMT_N] = lung;
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range [1, 2) to the
+ * specified array[] by one call. The number of pseudorandom numbers
+ * is specified by the argument \b size, which must be at least (SFMT_MEXP
+ * / 128) * 2 and a multiple of two.  The function
+ * get_min_array_size() returns this minimum size.  The generation by
+ * this function is much faster than the following fill_array_xxx functions.
+ *
+ * For initialization, init_gen_rand() or init_by_array() must be called
+ * before the first call of this function. This function can not be
+ * used after calling genrand_xxx functions, without initialization.
+ *
+ * @param dsfmt dsfmt state vector.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.  The pointer to the array must be "aligned"
+ * (namely, must be a multiple of 16) in the SIMD version, since it
+ * refers to the address of a 128-bit integer.  In the standard C
+ * version, the pointer is arbitrary.
+ *
+ * @param size the number of 64-bit pseudorandom integers to be
+ * generated.  size must be a multiple of 2, and greater than or equal
+ * to (SFMT_MEXP / 128) * 2.
+ *
+ * @note \b memalign or \b posix_memalign is available to get aligned
+ * memory. Mac OSX doesn't have these functions, but \b malloc of OSX
+ * returns the pointer to the aligned memory block.
+ */
+void dsfmt_fill_array_close1_open2(dsfmt_t *dsfmt, double array[], int size) {
+    assert(size % 2 == 0);
+    assert(size >= DSFMT_N64);
+    gen_rand_array_c1o2(dsfmt, (w128_t *)array, size / 2);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range (0, 1] to the
+ * specified array[] by one call. This function is the same as
+ * fill_array_close1_open2() except the distribution range.
+ *
+ * @param dsfmt dsfmt state vector.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+void dsfmt_fill_array_open_close(dsfmt_t *dsfmt, double array[], int size) {
+    assert(size % 2 == 0);
+    assert(size >= DSFMT_N64);
+    gen_rand_array_o0c1(dsfmt, (w128_t *)array, size / 2);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range [0, 1) to the
+ * specified array[] by one call. This function is the same as
+ * fill_array_close1_open2() except the distribution range.
+ *
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param dsfmt dsfmt state vector.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+void dsfmt_fill_array_close_open(dsfmt_t *dsfmt, double array[], int size) {
+    assert(size % 2 == 0);
+    assert(size >= DSFMT_N64);
+    gen_rand_array_c0o1(dsfmt, (w128_t *)array, size / 2);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range (0, 1) to the
+ * specified array[] by one call. This function is the same as
+ * fill_array_close1_open2() except the distribution range.
+ *
+ * @param dsfmt dsfmt state vector.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa fill_array_close1_open2()
+ */
+void dsfmt_fill_array_open_open(dsfmt_t *dsfmt, double array[], int size) {
+    assert(size % 2 == 0);
+    assert(size >= DSFMT_N64);
+    gen_rand_array_o0o1(dsfmt, (w128_t *)array, size / 2);
+}
+
+#if defined(__INTEL_COMPILER)
+#  pragma warning(disable:981)
+#endif
+/**
+ * This function initializes the internal state array with a 32-bit
+ * integer seed.
+ * @param dsfmt dsfmt state vector.
+ * @param seed a 32-bit integer used as the seed.
+ * @param mexp caller's mersenne expornent
+ */
+void dsfmt_chk_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed, int mexp) {
+    int i;
+    uint32_t *psfmt;
+
+    /* make sure caller program is compiled with the same MEXP */
+    if (mexp != dsfmt_mexp) {
+	fprintf(stderr, "DSFMT_MEXP doesn't match with dSFMT.c\n");
+	exit(1);
+    }
+    psfmt = &dsfmt->status[0].u32[0];
+    psfmt[idxof(0)] = seed;
+    for (i = 1; i < (DSFMT_N + 1) * 4; i++) {
+        psfmt[idxof(i)] = 1812433253UL 
+	    * (psfmt[idxof(i - 1)] ^ (psfmt[idxof(i - 1)] >> 30)) + i;
+    }
+    initial_mask(dsfmt);
+    period_certification(dsfmt);
+    dsfmt->idx = DSFMT_N64;
+#if defined(HAVE_SSE2)
+    setup_const();
+#endif
+}
+
+/**
+ * This function initializes the internal state array,
+ * with an array of 32-bit integers used as the seeds
+ * @param dsfmt dsfmt state vector.
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ * @param mexp caller's mersenne expornent
+ */
+void dsfmt_chk_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+			     int key_length, int mexp) {
+    int i, j, count;
+    uint32_t r;
+    uint32_t *psfmt32;
+    int lag;
+    int mid;
+    int size = (DSFMT_N + 1) * 4;	/* pulmonary */
+
+    /* make sure caller program is compiled with the same MEXP */
+    if (mexp != dsfmt_mexp) {
+	fprintf(stderr, "DSFMT_MEXP doesn't match with dSFMT.c\n");
+	exit(1);
+    }
+    if (size >= 623) {
+	lag = 11;
+    } else if (size >= 68) {
+	lag = 7;
+    } else if (size >= 39) {
+	lag = 5;
+    } else {
+	lag = 3;
+    }
+    mid = (size - lag) / 2;
+
+    psfmt32 = &dsfmt->status[0].u32[0];
+    memset(dsfmt->status, 0x8b, sizeof(dsfmt->status));
+    if (key_length + 1 > size) {
+	count = key_length + 1;
+    } else {
+	count = size;
+    }
+    r = ini_func1(psfmt32[idxof(0)] ^ psfmt32[idxof(mid % size)] 
+		  ^ psfmt32[idxof((size - 1) % size)]);
+    psfmt32[idxof(mid % size)] += r;
+    r += key_length;
+    psfmt32[idxof((mid + lag) % size)] += r;
+    psfmt32[idxof(0)] = r;
+    count--;
+    for (i = 1, j = 0; (j < count) && (j < key_length); j++) {
+	r = ini_func1(psfmt32[idxof(i)] 
+		      ^ psfmt32[idxof((i + mid) % size)] 
+		      ^ psfmt32[idxof((i + size - 1) % size)]);
+	psfmt32[idxof((i + mid) % size)] += r;
+	r += init_key[j] + i;
+	psfmt32[idxof((i + mid + lag) % size)] += r;
+	psfmt32[idxof(i)] = r;
+	i = (i + 1) % size;
+    }
+    for (; j < count; j++) {
+	r = ini_func1(psfmt32[idxof(i)] 
+		      ^ psfmt32[idxof((i + mid) % size)] 
+		      ^ psfmt32[idxof((i + size - 1) % size)]);
+	psfmt32[idxof((i + mid) % size)] += r;
+	r += i;
+	psfmt32[idxof((i + mid + lag) % size)] += r;
+	psfmt32[idxof(i)] = r;
+	i = (i + 1) % size;
+    }
+    for (j = 0; j < size; j++) {
+	r = ini_func2(psfmt32[idxof(i)] 
+		      + psfmt32[idxof((i + mid) % size)] 
+		      + psfmt32[idxof((i + size - 1) % size)]);
+	psfmt32[idxof((i + mid) % size)] ^= r;
+	r -= i;
+	psfmt32[idxof((i + mid + lag) % size)] ^= r;
+	psfmt32[idxof(i)] = r;
+	i = (i + 1) % size;
+    }
+    initial_mask(dsfmt);
+    period_certification(dsfmt);
+    dsfmt->idx = DSFMT_N64;
+#if defined(HAVE_SSE2)
+    setup_const();
+#endif
+}
+#if defined(__INTEL_COMPILER)
+#  pragma warning(default:981)
+#endif
Index: /Daodan/MSVC/dSFMT/dSFMT.h
===================================================================
--- /Daodan/MSVC/dSFMT/dSFMT.h	(revision 567)
+++ /Daodan/MSVC/dSFMT/dSFMT.h	(revision 567)
@@ -0,0 +1,623 @@
+/** 
+ * @file dSFMT.h 
+ *
+ * @brief double precision SIMD oriented Fast Mersenne Twister(dSFMT)
+ * pseudorandom number generator based on IEEE 754 format.
+ *
+ * @author Mutsuo Saito (Hiroshima University)
+ * @author Makoto Matsumoto (Hiroshima University)
+ *
+ * Copyright (C) 2007, 2008 Mutsuo Saito, Makoto Matsumoto and
+ * Hiroshima University. All rights reserved.
+ *
+ * The new BSD License is applied to this software.
+ * see LICENSE.txt
+ *
+ * @note We assume that your system has inttypes.h.  If your system
+ * doesn't have inttypes.h, you have to typedef uint32_t and uint64_t,
+ * and you have to define PRIu64 and PRIx64 in this file as follows:
+ * @verbatim
+ typedef unsigned int uint32_t
+ typedef unsigned long long uint64_t  
+ #define PRIu64 "llu"
+ #define PRIx64 "llx"
+@endverbatim
+ * uint32_t must be exactly 32-bit unsigned integer type (no more, no
+ * less), and uint64_t must be exactly 64-bit unsigned integer type.
+ * PRIu64 and PRIx64 are used for printf function to print 64-bit
+ * unsigned int and 64-bit unsigned int in hexadecimal format.
+ */
+
+#ifndef DSFMT_H
+#define DSFMT_H
+
+#include <stdio.h>
+#include <assert.h>
+
+#if !defined(DSFMT_MEXP)
+#ifdef __GNUC__
+  #warning "DSFMT_MEXP is not defined. I assume DSFMT_MEXP is 19937."
+#endif
+  #define DSFMT_MEXP 19937
+#endif
+/*-----------------
+  BASIC DEFINITIONS
+  -----------------*/
+/* Mersenne Exponent. The period of the sequence 
+ *  is a multiple of 2^DSFMT_MEXP-1.
+ * #define DSFMT_MEXP 19937 */
+/** DSFMT generator has an internal state array of 128-bit integers,
+ * and N is its size. */
+#define DSFMT_N ((DSFMT_MEXP - 128) / 104 + 1)
+/** N32 is the size of internal state array when regarded as an array
+ * of 32-bit integers.*/
+#define DSFMT_N32 (DSFMT_N * 4)
+/** N64 is the size of internal state array when regarded as an array
+ * of 64-bit integers.*/
+#define DSFMT_N64 (DSFMT_N * 2)
+
+#if !defined(DSFMT_BIG_ENDIAN)
+#  if defined(__BYTE_ORDER) && defined(__BIG_ENDIAN)
+#    if __BYTE_ORDER == __BIG_ENDIAN
+#      define DSFMT_BIG_ENDIAN 1
+#    endif
+#  elif defined(_BYTE_ORDER) && defined(_BIG_ENDIAN)
+#    if _BYTE_ORDER == _BIG_ENDIAN
+#      define DSFMT_BIG_ENDIAN 1
+#    endif
+#  elif defined(__BYTE_ORDER__) && defined(__BIG_ENDIAN__)
+#    if __BYTE_ORDER__ == __BIG_ENDIAN__
+#      define DSFMT_BIG_ENDIAN 1
+#    endif
+#  elif defined(BYTE_ORDER) && defined(BIG_ENDIAN)
+#    if BYTE_ORDER == BIG_ENDIAN
+#      define DSFMT_BIG_ENDIAN 1
+#    endif
+#  elif defined(__BIG_ENDIAN) || defined(_BIG_ENDIAN) \
+    || defined(__BIG_ENDIAN__) || defined(BIG_ENDIAN)
+#      define DSFMT_BIG_ENDIAN 1
+#  endif
+#endif
+
+#if defined(DSFMT_BIG_ENDIAN) && defined(__amd64)
+#  undef DSFMT_BIG_ENDIAN
+#endif
+
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
+#  include <inttypes.h>
+#elif defined(_MSC_VER) || defined(__BORLANDC__)
+#  if !defined(DSFMT_UINT32_DEFINED) && !defined(SFMT_UINT32_DEFINED)
+typedef unsigned int uint32_t;
+typedef unsigned __int64 uint64_t;
+#    define UINT64_C(v) (v ## ui64)
+#    define DSFMT_UINT32_DEFINED
+#    if !defined(inline)
+#      define inline __inline
+#    endif
+#  endif
+#else
+#  include <inttypes.h>
+#  if !defined(inline)
+#    if defined(__GNUC__)
+#      define inline __inline__
+#    else
+#      define inline
+#    endif
+#  endif
+#endif
+
+#ifndef PRIu64
+#  if defined(_MSC_VER) || defined(__BORLANDC__)
+#    define PRIu64 "I64u"
+#    define PRIx64 "I64x"
+#  else
+#    define PRIu64 "llu"
+#    define PRIx64 "llx"
+#  endif
+#endif
+
+#ifndef UINT64_C
+#  define UINT64_C(v) (v ## ULL) 
+#endif
+
+/*------------------------------------------
+  128-bit SIMD like data type for standard C
+  ------------------------------------------*/
+#if defined(HAVE_ALTIVEC)
+#  if !defined(__APPLE__)
+#    include <altivec.h>
+#  endif
+/** 128-bit data structure */
+union W128_T {
+    vector unsigned int s;
+    uint64_t u[2];
+    uint32_t u32[4];
+    double d[2];
+};
+
+#elif defined(HAVE_SSE2)
+#  include <emmintrin.h>
+
+/** 128-bit data structure */
+union W128_T {
+    __m128i si;
+    __m128d sd;
+    uint64_t u[2];
+    uint32_t u32[4];
+    double d[2];
+};
+#else  /* standard C */
+/** 128-bit data structure */
+union W128_T {
+    uint64_t u[2];
+    uint32_t u32[4];
+    double d[2];
+};
+#endif
+
+/** 128-bit data type */
+typedef union W128_T w128_t;
+
+/** the 128-bit internal state array */
+struct DSFMT_T {
+    w128_t status[DSFMT_N + 1];
+    int idx;
+};
+typedef struct DSFMT_T dsfmt_t;
+
+/** dsfmt internal state vector */
+extern dsfmt_t dsfmt_global_data;
+/** dsfmt mexp for check */
+extern const int dsfmt_global_mexp;
+
+void dsfmt_gen_rand_all(dsfmt_t *dsfmt);
+void dsfmt_fill_array_open_close(dsfmt_t *dsfmt, double array[], int size);
+void dsfmt_fill_array_close_open(dsfmt_t *dsfmt, double array[], int size);
+void dsfmt_fill_array_open_open(dsfmt_t *dsfmt, double array[], int size);
+void dsfmt_fill_array_close1_open2(dsfmt_t *dsfmt, double array[], int size);
+void dsfmt_chk_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed, int mexp);
+void dsfmt_chk_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+			     int key_length, int mexp);
+const char *dsfmt_get_idstring(void);
+int dsfmt_get_min_array_size(void);
+
+#if defined(__GNUC__)
+#  define DSFMT_PRE_INLINE inline static
+#  define DSFMT_PST_INLINE __attribute__((always_inline))
+#elif defined(_MSC_VER) && _MSC_VER >= 1200
+#  define DSFMT_PRE_INLINE __forceinline static
+#  define DSFMT_PST_INLINE
+#else
+#  define DSFMT_PRE_INLINE inline static
+#  define DSFMT_PST_INLINE
+#endif
+DSFMT_PRE_INLINE uint32_t dsfmt_genrand_uint32(dsfmt_t *dsfmt) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_genrand_close1_open2(dsfmt_t *dsfmt)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_genrand_close_open(dsfmt_t *dsfmt)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_genrand_open_close(dsfmt_t *dsfmt)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_genrand_open_open(dsfmt_t *dsfmt)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE uint32_t dsfmt_gv_genrand_uint32(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_gv_genrand_close1_open2(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_gv_genrand_close_open(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_gv_genrand_open_close(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double dsfmt_gv_genrand_open_open(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_fill_array_open_close(double array[], int size)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_fill_array_close_open(double array[], int size)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_fill_array_open_open(double array[], int size)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_fill_array_close1_open2(double array[], int size)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_init_gen_rand(uint32_t seed) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_gv_init_by_array(uint32_t init_key[],
+					     int key_length) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void dsfmt_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+					  int key_length) DSFMT_PST_INLINE;
+
+/**
+ * This function generates and returns unsigned 32-bit integer.
+ * This is slower than SFMT, only for convenience usage.
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static uint32_t dsfmt_genrand_uint32(dsfmt_t *dsfmt) {
+    uint32_t r;
+    uint64_t *psfmt64 = &dsfmt->status[0].u[0];
+
+    if (dsfmt->idx >= DSFMT_N64) {
+	dsfmt_gen_rand_all(dsfmt);
+	dsfmt->idx = 0;
+    }
+    r = psfmt64[dsfmt->idx++] & 0xffffffffU;
+    return r;
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range [1, 2).  This is
+ * the primitive and faster than generating numbers in other ranges.
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_genrand_close1_open2(dsfmt_t *dsfmt) {
+    double r;
+    double *psfmt64 = &dsfmt->status[0].d[0];
+
+    if (dsfmt->idx >= DSFMT_N64) {
+	dsfmt_gen_rand_all(dsfmt);
+	dsfmt->idx = 0;
+    }
+    r = psfmt64[dsfmt->idx++];
+    return r;
+}
+
+/**
+ * This function generates and returns unsigned 32-bit integer.
+ * This is slower than SFMT, only for convenience usage.
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function.  This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static uint32_t dsfmt_gv_genrand_uint32(void) {
+    return dsfmt_genrand_uint32(&dsfmt_global_data);
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range [1, 2).
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_gv_genrand_close1_open2(void) {
+    return dsfmt_genrand_close1_open2(&dsfmt_global_data);
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range [0, 1).
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_genrand_close_open(dsfmt_t *dsfmt) {
+    return dsfmt_genrand_close1_open2(dsfmt) - 1.0;
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range [0, 1).
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_gv_genrand_close_open(void) {
+    return dsfmt_gv_genrand_close1_open2() - 1.0;
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range (0, 1].
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function. 
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_genrand_open_close(dsfmt_t *dsfmt) {
+    return 2.0 - dsfmt_genrand_close1_open2(dsfmt);
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range (0, 1].
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_gv_genrand_open_close(void) {
+    return 2.0 - dsfmt_gv_genrand_close1_open2();
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range (0, 1).
+ * dsfmt_init_gen_rand() or dsfmt_init_by_array() must be called
+ * before this function.
+ * @param dsfmt dsfmt internal state date
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_genrand_open_open(dsfmt_t *dsfmt) {
+    double *dsfmt64 = &dsfmt->status[0].d[0];
+    union {
+	double d;
+	uint64_t u;
+    } r;
+
+    if (dsfmt->idx >= DSFMT_N64) {
+	dsfmt_gen_rand_all(dsfmt);
+	dsfmt->idx = 0;
+    }
+    r.d = dsfmt64[dsfmt->idx++];
+    r.u |= 1;
+    return r.d - 1.0;
+}
+
+/**
+ * This function generates and returns double precision pseudorandom
+ * number which distributes uniformly in the range (0, 1).
+ * dsfmt_gv_init_gen_rand() or dsfmt_gv_init_by_array() must be called
+ * before this function. This function uses \b global variables.
+ * @return double precision floating point pseudorandom number
+ */
+inline static double dsfmt_gv_genrand_open_open(void) {
+    return dsfmt_genrand_open_open(&dsfmt_global_data);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range [1, 2) to the
+ * specified array[] by one call. This function is the same as
+ * dsfmt_fill_array_close1_open2() except that this function uses
+ * \b global variables.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2()
+ */
+inline static void dsfmt_gv_fill_array_close1_open2(double array[], int size) {
+    dsfmt_fill_array_close1_open2(&dsfmt_global_data, array, size);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range (0, 1] to the
+ * specified array[] by one call. This function is the same as
+ * dsfmt_gv_fill_array_close1_open2() except the distribution range.
+ * This function uses \b global variables.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2() and \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void dsfmt_gv_fill_array_open_close(double array[], int size) {
+    dsfmt_fill_array_open_close(&dsfmt_global_data, array, size);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range [0, 1) to the
+ * specified array[] by one call. This function is the same as
+ * dsfmt_gv_fill_array_close1_open2() except the distribution range.
+ * This function uses \b global variables.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2() \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void dsfmt_gv_fill_array_close_open(double array[], int size) {
+    dsfmt_fill_array_close_open(&dsfmt_global_data, array, size);
+}
+
+/**
+ * This function generates double precision floating point
+ * pseudorandom numbers which distribute in the range (0, 1) to the
+ * specified array[] by one call. This function is the same as
+ * dsfmt_gv_fill_array_close1_open2() except the distribution range.
+ * This function uses \b global variables.
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2() \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void dsfmt_gv_fill_array_open_open(double array[], int size) {
+    dsfmt_fill_array_open_open(&dsfmt_global_data, array, size);
+}
+
+/**
+ * This function initializes the internal state array with a 32-bit
+ * integer seed.
+ * @param dsfmt dsfmt state vector.
+ * @param seed a 32-bit integer used as the seed.
+ */
+inline static void dsfmt_init_gen_rand(dsfmt_t *dsfmt, uint32_t seed) {
+    dsfmt_chk_init_gen_rand(dsfmt, seed, DSFMT_MEXP);
+}
+
+/**
+ * This function initializes the internal state array with a 32-bit
+ * integer seed. This function uses \b global variables.
+ * @param seed a 32-bit integer used as the seed.
+ * see also \sa dsfmt_init_gen_rand()
+ */
+inline static void dsfmt_gv_init_gen_rand(uint32_t seed) {
+    dsfmt_init_gen_rand(&dsfmt_global_data, seed);
+}
+
+/**
+ * This function initializes the internal state array,
+ * with an array of 32-bit integers used as the seeds.
+ * @param dsfmt dsfmt state vector
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ */
+inline static void dsfmt_init_by_array(dsfmt_t *dsfmt, uint32_t init_key[],
+				       int key_length) {
+    dsfmt_chk_init_by_array(dsfmt, init_key, key_length, DSFMT_MEXP);
+}
+
+/**
+ * This function initializes the internal state array,
+ * with an array of 32-bit integers used as the seeds.
+ * This function uses \b global variables.
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ * see also \sa dsfmt_init_by_array()
+ */
+inline static void dsfmt_gv_init_by_array(uint32_t init_key[], int key_length) {
+    dsfmt_init_by_array(&dsfmt_global_data, init_key, key_length);
+}
+
+#if !defined(DSFMT_DO_NOT_USE_OLD_NAMES)
+DSFMT_PRE_INLINE const char *get_idstring(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE int get_min_array_size(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void init_gen_rand(uint32_t seed) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void init_by_array(uint32_t init_key[], int key_length)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double genrand_close1_open2(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double genrand_close_open(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double genrand_open_close(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE double genrand_open_open(void) DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void fill_array_open_close(double array[], int size)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void fill_array_close_open(double array[], int size)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void fill_array_open_open(double array[], int size)
+    DSFMT_PST_INLINE;
+DSFMT_PRE_INLINE void fill_array_close1_open2(double array[], int size)
+    DSFMT_PST_INLINE;
+
+/**
+ * This function is just the same as dsfmt_get_idstring().
+ * @return id string.
+ * see also \sa dsfmt_get_idstring()
+ */
+inline static const char *get_idstring(void) {
+    return dsfmt_get_idstring();
+}
+
+/**
+ * This function is just the same as dsfmt_get_min_array_size().
+ * @return minimum size of array used for fill_array functions.
+ * see also \sa dsfmt_get_min_array_size()
+ */
+inline static int get_min_array_size(void) {
+    return dsfmt_get_min_array_size();
+}
+
+/**
+ * This function is just the same as dsfmt_gv_init_gen_rand().
+ * @param seed a 32-bit integer used as the seed.
+ * see also \sa dsfmt_gv_init_gen_rand(), \sa dsfmt_init_gen_rand().
+ */
+inline static void init_gen_rand(uint32_t seed) {
+    dsfmt_gv_init_gen_rand(seed);
+}
+
+/**
+ * This function is just the same as dsfmt_gv_init_by_array().
+ * @param init_key the array of 32-bit integers, used as a seed.
+ * @param key_length the length of init_key.
+ * see also \sa dsfmt_gv_init_by_array(), \sa dsfmt_init_by_array().
+ */
+inline static void init_by_array(uint32_t init_key[], int key_length) {
+    dsfmt_gv_init_by_array(init_key, key_length);
+}
+
+/**
+ * This function is just the same as dsfmt_gv_genrand_close1_open2().
+ * @return double precision floating point number.
+ * see also \sa dsfmt_genrand_close1_open2() \sa
+ * dsfmt_gv_genrand_close1_open2()
+ */
+inline static double genrand_close1_open2(void) {
+    return dsfmt_gv_genrand_close1_open2();
+}
+
+/**
+ * This function is just the same as dsfmt_gv_genrand_close_open().
+ * @return double precision floating point number.
+ * see also \sa dsfmt_genrand_close_open() \sa
+ * dsfmt_gv_genrand_close_open()
+ */
+inline static double genrand_close_open(void) {
+    return dsfmt_gv_genrand_close_open();
+}
+
+/**
+ * This function is just the same as dsfmt_gv_genrand_open_close().
+ * @return double precision floating point number.
+ * see also \sa dsfmt_genrand_open_close() \sa
+ * dsfmt_gv_genrand_open_close()
+ */
+inline static double genrand_open_close(void) {
+    return dsfmt_gv_genrand_open_close();
+}
+
+/**
+ * This function is just the same as dsfmt_gv_genrand_open_open().
+ * @return double precision floating point number.
+ * see also \sa dsfmt_genrand_open_open() \sa
+ * dsfmt_gv_genrand_open_open()
+ */
+inline static double genrand_open_open(void) {
+    return dsfmt_gv_genrand_open_open();
+}
+
+/**
+ * This function is juset the same as dsfmt_gv_fill_array_open_close().
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_gv_fill_array_open_close(), \sa
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void fill_array_open_close(double array[], int size) {
+    dsfmt_gv_fill_array_open_close(array, size);
+}
+
+/**
+ * This function is juset the same as dsfmt_gv_fill_array_close_open().
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_gv_fill_array_close_open(), \sa
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void fill_array_close_open(double array[], int size) {
+    dsfmt_gv_fill_array_close_open(array, size);
+}
+
+/**
+ * This function is juset the same as dsfmt_gv_fill_array_open_open().
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_gv_fill_array_open_open(), \sa
+ * dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void fill_array_open_open(double array[], int size) {
+    dsfmt_gv_fill_array_open_open(array, size);
+}
+
+/**
+ * This function is juset the same as dsfmt_gv_fill_array_close1_open2().
+ * @param array an array where pseudorandom numbers are filled
+ * by this function.
+ * @param size the number of pseudorandom numbers to be generated.
+ * see also \sa dsfmt_fill_array_close1_open2(), \sa
+ * dsfmt_gv_fill_array_close1_open2()
+ */
+inline static void fill_array_close1_open2(double array[], int size) {
+    dsfmt_gv_fill_array_close1_open2(array, size);
+}
+#endif /* DSFMT_DO_NOT_USE_OLD_NAMES */
+
+#endif /* DSFMT_H */
Index: /Daodan/MSVC/dSFMT/test.c
===================================================================
--- /Daodan/MSVC/dSFMT/test.c	(revision 567)
+++ /Daodan/MSVC/dSFMT/test.c	(revision 567)
@@ -0,0 +1,769 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <time.h>
+#include <string.h>
+#define DSFMT_DO_NOT_USE_OLD_NAMES
+#include "dSFMT.h"
+
+#define NUM_RANDS 50000
+#define TIC_MAG 1
+#define TIC_COUNT 2000
+
+w128_t dummy[NUM_RANDS / 2 + 1];
+
+typedef double (*genrand_t)(void);
+typedef double (*st_genrand_t)(dsfmt_t *dsfmt);
+typedef void (*fill_array_t)(double array[], int size);
+typedef void (*st_fill_array_t)(dsfmt_t *dsfmt, double array[], int size);
+
+#ifdef __GNUC__
+static void test_co(void) __attribute__((noinline));
+static void test_oc(void) __attribute__((noinline));
+static void test_oo(void) __attribute__((noinline));
+static void test_12(void) __attribute__((noinline));
+static void test_seq_co(void) __attribute__((noinline));
+static void test_seq_oc(void) __attribute__((noinline));
+static void test_seq_oo(void) __attribute__((noinline));
+static void test_seq_12(void) __attribute__((noinline));
+#else
+static void test_co(void);
+static void test_oc(void);
+static void test_oo(void);
+static void test_12(void);
+static void test_seq_co(void);
+static void test_seq_oc(void);
+static void test_seq_oo(void);
+static void test_seq_12(void);
+#endif
+static void check(char *start_mess, genrand_t genrand, fill_array_t fill_array,
+		  st_genrand_t st_genrand, st_fill_array_t st_fill_array,
+		  uint32_t seed, int n);
+static void check_ar(char *start_mess, genrand_t genrand, 
+		     fill_array_t fill_array,
+		     st_genrand_t st_genrand,
+		     st_fill_array_t st_fill_array,
+		     int n);
+
+/* not inline wrapper functions for check() */
+static double s_genrand_close_open(void) {
+    return dsfmt_gv_genrand_close_open();
+}
+static double s_genrand_open_close(void) {
+    return dsfmt_gv_genrand_open_close();
+}
+static double s_genrand_open_open(void) {
+    return dsfmt_gv_genrand_open_open();
+}
+static double s_genrand_close1_open2(void) {
+    return dsfmt_gv_genrand_close1_open2();
+}
+static double sst_genrand_close_open(dsfmt_t *dsfmt) {
+    return dsfmt_genrand_close_open(dsfmt);
+}
+static double sst_genrand_open_close(dsfmt_t *dsfmt) {
+    return dsfmt_genrand_open_close(dsfmt);
+}
+static double sst_genrand_open_open(dsfmt_t *dsfmt) {
+    return dsfmt_genrand_open_open(dsfmt);
+}
+static double sst_genrand_close1_open2(dsfmt_t *dsfmt) {
+    return dsfmt_genrand_close1_open2(dsfmt);
+}
+static void s_fill_array_close_open(double array[], int size) {
+    dsfmt_gv_fill_array_close_open(array, size);
+}
+static void s_fill_array_open_close(double array[], int size) {
+    dsfmt_gv_fill_array_open_close(array, size);
+}
+static void s_fill_array_open_open(double array[], int size) {
+    dsfmt_gv_fill_array_open_open(array, size);
+}
+static void s_fill_array_close1_open2(double array[], int size) {
+    dsfmt_gv_fill_array_close1_open2(array, size);
+}
+static void sst_fill_array_close_open(dsfmt_t *dsfmt, double array[],
+				      int size) {
+    dsfmt_fill_array_close_open(dsfmt, array, size);
+}
+static void sst_fill_array_open_close(dsfmt_t *dsfmt, double array[],
+				      int size) {
+    dsfmt_fill_array_open_close(dsfmt, array, size);
+}
+static void sst_fill_array_open_open(dsfmt_t *dsfmt, double array[],
+				      int size) {
+    dsfmt_fill_array_open_open(dsfmt, array, size);
+}
+static void sst_fill_array_close1_open2(dsfmt_t *dsfmt, double array[],
+				      int size) {
+    dsfmt_fill_array_close1_open2(dsfmt, array, size);
+}
+
+static void check(char *range_str, genrand_t genrand, fill_array_t fill_array,
+		  st_genrand_t st_genrand, st_fill_array_t st_fill_array,
+		  uint32_t seed, int print_size) {
+    int i;
+    union W64_T {
+	uint64_t u;
+	double d;
+    };
+    w128_t little[DSFMT_N+1];
+    union W64_T *array = (union W64_T *)dummy;
+    union W64_T *plittle = (union W64_T *)little;
+    union W64_T r, r_st;
+    int lsize = DSFMT_N * 2 + 2;
+    dsfmt_t dsfmt;
+
+    printf("generated randoms %s\n", range_str);
+    dsfmt_gv_init_gen_rand(seed);
+    fill_array(&plittle[0].d, lsize);
+    fill_array(&array[0].d, 5000);
+    dsfmt_gv_init_gen_rand(seed);
+    dsfmt_init_gen_rand(&dsfmt, seed);
+    for (i = 0; i < lsize; i++) {
+	r.d = genrand();
+	r_st.d = st_genrand(&dsfmt);
+	if (r.u != r_st.u || r.u != plittle[i].u) {
+	    printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+		   "st = %1.15f(%08"PRIx64")"
+		   "array = %1.15f(%08"PRIx64")\n",
+		   range_str, i, r.d, r.u,
+		   r_st.d, r_st.u,
+		   plittle[i].d, plittle[i].u);
+	    exit(1);
+	}
+	if (i < print_size) {
+	    printf("%1.15f ", plittle[i].d);
+	    if (i % 4 == 3) {
+		printf("\n");
+	    }
+	}
+    }
+    for (i = 0; i < 5000; i++) {
+	r.d = genrand();
+	if (r.u != array[i].u) {
+	    printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+		   "array = %1.15f(%08"PRIx64")\n",
+		   range_str, i + lsize, r.d, r.u,
+		   array[i].d, array[i].u);
+	    exit(1);
+	}
+	if (i + lsize < print_size) {
+	    printf("%1.15f ", array[i].d);
+	    if ((i + lsize) % 4 == 3) {
+		printf("\n");
+	    }
+	}
+    }
+
+    dsfmt_init_gen_rand(&dsfmt, seed);
+    st_fill_array(&dsfmt, &plittle[0].d, lsize);
+    st_fill_array(&dsfmt, &array[0].d, 5000);
+    dsfmt_init_gen_rand(&dsfmt, seed);
+    for (i = 0; i < lsize; i++) {
+	r_st.d = st_genrand(&dsfmt);
+	if (r_st.u != plittle[i].u) {
+	    printf("\n%s mismatch i = %d: st = %1.15f(%08"PRIx64"), "
+		   "array = %1.15f(%08"PRIx64")\n",
+		   range_str, i, r_st.d, r_st.u,
+		   plittle[i].d, plittle[i].u);
+	    exit(1);
+	}
+    }
+    for (i = 0; i < 5000; i++) {
+	r_st.d = st_genrand(&dsfmt);
+	if (r_st.u != array[i].u) {
+	    printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+		   "array = %1.15f(%08"PRIx64")\n",
+		   range_str, i + lsize, r_st.d, r_st.u,
+		   array[i].d, array[i].u);
+	    exit(1);
+	}
+    }
+}
+
+static void check_ar(char *range_str, genrand_t genrand,
+		     fill_array_t fill_array,
+		     st_genrand_t st_genrand,
+		     st_fill_array_t st_fill_array,
+		     int print_size) {
+    int i;
+    union W64_T {
+	uint64_t u;
+	double d;
+    };
+    w128_t little[DSFMT_N+1];
+    union W64_T *array = (union W64_T *)dummy;
+    union W64_T *plittle = (union W64_T *)little;
+    union W64_T r, r_st;
+    int lsize = DSFMT_N * 2 + 2;
+    dsfmt_t dsfmt;
+    uint32_t ar[4] = {1, 2, 3, 4};
+
+    printf("generated randoms %s\n", range_str);
+    dsfmt_gv_init_by_array(ar, 4);
+    fill_array(&plittle[0].d, lsize);
+    fill_array(&array[0].d, 5000);
+    dsfmt_gv_init_by_array(ar, 4);
+    dsfmt_init_by_array(&dsfmt, ar, 4);
+    for (i = 0; i < lsize; i++) {
+	r.d = genrand();
+	r_st.d = st_genrand(&dsfmt);
+	if (r.u != r_st.u || r.u != plittle[i].u) {
+	    printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+		   "st = %1.15f(%08"PRIx64")"
+		   "array = %1.15f(%08"PRIx64")\n",
+		   range_str, i, r.d, r.u,
+		   r_st.d, r_st.u,
+		   plittle[i].d, plittle[i].u);
+	    exit(1);
+	}
+	if (i < print_size) {
+	    printf("%1.15f ", plittle[i].d);
+	    if (i % 4 == 3) {
+		printf("\n");
+	    }
+	}
+    }
+    for (i = 0; i < 5000; i++) {
+	r.d = genrand();
+	if (r.u != array[i].u) {
+	    printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+		   "array = %1.15f(%08"PRIx64")\n",
+		   range_str, i + lsize, r.d, r.u,
+		   array[i].d, array[i].u);
+	    exit(1);
+	}
+	if (i + lsize < print_size) {
+	    printf("%1.15f ", array[i].d);
+	    if ((i + lsize) % 4 == 3) {
+		printf("\n");
+	    }
+	}
+    }
+
+    dsfmt_init_by_array(&dsfmt, ar, 4);
+    st_fill_array(&dsfmt, &plittle[0].d, lsize);
+    st_fill_array(&dsfmt, &array[0].d, 5000);
+    dsfmt_init_by_array(&dsfmt, ar, 4);
+    for (i = 0; i < lsize; i++) {
+	r_st.d = st_genrand(&dsfmt);
+	if (r_st.u != plittle[i].u) {
+	    printf("\n%s mismatch i = %d: st = %1.15f(%08"PRIx64"), "
+		   "array = %1.15f(%08"PRIx64")\n",
+		   range_str, i, r_st.d, r_st.u,
+		   plittle[i].d, plittle[i].u);
+	    exit(1);
+	}
+    }
+    for (i = 0; i < 5000; i++) {
+	r_st.d = st_genrand(&dsfmt);
+	if (r_st.u != array[i].u) {
+	    printf("\n%s mismatch i = %d: r = %1.15f(%08"PRIx64"), "
+		   "array = %1.15f(%08"PRIx64")\n",
+		   range_str, i + lsize, r_st.d, r_st.u,
+		   array[i].d, array[i].u);
+	    exit(1);
+	}
+    }
+}
+
+static void test_co(void) {
+    uint32_t i, j;
+    uint64_t clo;
+    uint64_t sum;
+    double *array = (double *)dummy;
+    dsfmt_t dsfmt;
+
+#if 0
+    dsfmt_gv_init_gen_rand(1234);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    dsfmt_gv_fill_array_close_open(array, NUM_RANDS);
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    printf("GL BLOCK [0, 1) AVE:%4"PRIu64"ms.\n",
+	   (sum * 100) / CLOCKS_PER_SEC);
+#endif
+    dsfmt_init_gen_rand(&dsfmt, 1234);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    dsfmt_fill_array_close_open(&dsfmt, array, NUM_RANDS);
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    printf("ST BLOCK [0, 1) AVE:%4"PRIu64"ms.\n",
+	   (sum * 100) / CLOCKS_PER_SEC);
+}
+
+static void test_oc(void) {
+    uint32_t i, j;
+    uint64_t clo;
+    uint64_t sum;
+    double *array = (double *)dummy;
+    dsfmt_t dsfmt;
+#if 0
+    dsfmt_gv_init_gen_rand(1234);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    dsfmt_gv_fill_array_open_close(array, NUM_RANDS);
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    printf("GL BLOCK (0, 1] AVE:%4"PRIu64"ms.\n",
+	   (sum * 100) / CLOCKS_PER_SEC);
+#endif
+    dsfmt_init_gen_rand(&dsfmt, 1234);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    dsfmt_fill_array_open_close(&dsfmt, array, NUM_RANDS);
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    printf("ST BLOCK (0, 1] AVE:%4"PRIu64"ms.\n",
+	   (sum * 100) / CLOCKS_PER_SEC);
+}
+
+static void test_oo(void) {
+    uint32_t i, j;
+    uint64_t clo;
+    uint64_t sum;
+    double *array = (double *)dummy;
+    dsfmt_t dsfmt;
+#if 0
+    dsfmt_gv_init_gen_rand(1234);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    dsfmt_gv_fill_array_open_open(array, NUM_RANDS);
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    printf("GL BLOCK (0, 1) AVE:%4"PRIu64"ms.\n",
+	   (sum * 100) / CLOCKS_PER_SEC);
+#endif
+    dsfmt_init_gen_rand(&dsfmt, 1234);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    dsfmt_fill_array_open_open(&dsfmt, array, NUM_RANDS);
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    printf("ST BLOCK (0, 1) AVE:%4"PRIu64"ms.\n",
+	   (sum * 100) / CLOCKS_PER_SEC);
+}
+
+static void test_12(void) {
+    uint32_t i, j;
+    uint64_t clo;
+    uint64_t sum;
+    double *array = (double *)dummy;
+    dsfmt_t dsfmt;
+#if 0
+    dsfmt_gv_init_gen_rand(1234);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    dsfmt_gv_fill_array_close1_open2(array, NUM_RANDS);
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    printf("GL BLOCK [1, 2) AVE:%4"PRIu64"ms.\n",
+	   (sum * 100) / CLOCKS_PER_SEC);
+#endif
+    dsfmt_init_gen_rand(&dsfmt, 1234);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    dsfmt_fill_array_close1_open2(&dsfmt, array, NUM_RANDS);
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    printf("ST BLOCK [1, 2) AVE:%4"PRIu64"ms.\n",
+	   (sum * 100) / CLOCKS_PER_SEC);
+}
+
+static void test_seq_co(void) {
+    uint32_t i, j, k;
+    uint64_t clo;
+    uint64_t sum;
+    double *array = (double *)dummy;
+    double r;
+    double total = 0;
+    dsfmt_t dsfmt;
+#if 0
+    dsfmt_gv_init_gen_rand(1234);
+    sum = 0;
+    r = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		r += dsfmt_gv_genrand_close_open();
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    total = r;
+    printf("GL SEQ [0, 1) 1 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		array[k] = dsfmt_gv_genrand_close_open();
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    for (k = 0; k < NUM_RANDS; k++) {
+	total += array[k];
+    }
+    printf("GL SEQ [0, 1) 2 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+#endif
+    dsfmt_init_gen_rand(&dsfmt, 1234);
+    sum = 0;
+    r = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		r += dsfmt_genrand_close_open(&dsfmt);
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    total = r;
+    printf("ST SEQ [0, 1) 1 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		array[k] = dsfmt_genrand_close_open(&dsfmt);
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    for (k = 0; k < NUM_RANDS; k++) {
+	total += array[k];
+    }
+    printf("ST SEQ [0, 1) 2 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+
+    printf("total = %f\n", total);
+}
+
+static void test_seq_oc(void) {
+    uint32_t i, j, k;
+    uint64_t clo;
+    uint64_t sum;
+    double *array = (double *)dummy;
+    double r;
+    double total = 0;
+    dsfmt_t dsfmt;
+#if 0
+    dsfmt_gv_init_gen_rand(1234);
+    sum = 0;
+    r = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		r += dsfmt_gv_genrand_open_close();
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    total = r;
+    printf("GL SEQ (0, 1] 1 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		array[k] = dsfmt_gv_genrand_open_close();
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    for (k = 0; k < NUM_RANDS; k++) {
+	total += array[k];
+    }
+    printf("GL SEQ (0, 1] 2 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+#endif
+    dsfmt_init_gen_rand(&dsfmt, 1234);
+    sum = 0;
+    r = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		r += dsfmt_genrand_open_close(&dsfmt);
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    total += r;
+    printf("ST SEQ (0, 1] 1 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		array[k] = dsfmt_genrand_open_close(&dsfmt);
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    for (k = 0; k < NUM_RANDS; k++) {
+	total += array[k];
+    }
+    printf("ST SEQ (0, 1] 2 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    printf("total = %f\n", total);
+}
+
+static void test_seq_oo(void) {
+    uint32_t i, j, k;
+    uint64_t clo;
+    uint64_t sum;
+    double *array = (double *)dummy;
+    double r;
+    double total = 0;
+    dsfmt_t dsfmt;
+#if 0
+    dsfmt_gv_init_gen_rand(1234);
+    sum = 0;
+    r = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		r += dsfmt_gv_genrand_open_open();
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    total = r;
+    printf("GL SEQ (0, 1) 1 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		array[k] = dsfmt_gv_genrand_open_open();
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    for (k = 0; k < NUM_RANDS; k++) {
+	total += array[k];
+    }
+    printf("GL SEQ (0, 1) 2 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+#endif
+    dsfmt_init_gen_rand(&dsfmt, 1234);
+    sum = 0;
+    r = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		r += dsfmt_genrand_open_open(&dsfmt);
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    total += r;
+    printf("ST SEQ (0, 1) 1 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		array[k] = dsfmt_genrand_open_open(&dsfmt);
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    for (k = 0; k < NUM_RANDS; k++) {
+	total += array[k];
+    }
+    printf("ST SEQ (0, 1) 2 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    printf("total = %f\n", total);
+}
+
+static void test_seq_12(void) {
+    uint32_t i, j, k;
+    uint64_t clo;
+    uint64_t sum;
+    double *array = (double *)dummy;
+    double r;
+    double total = 0;
+    dsfmt_t dsfmt;
+#if 0
+    dsfmt_gv_init_gen_rand(1234);
+    sum = 0;
+    r = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		r += dsfmt_gv_genrand_close1_open2();
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    total = r;
+    printf("GL SEQ [1, 2) 1 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		array[k] = dsfmt_gv_genrand_close1_open2();
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    for (k = 0; k < NUM_RANDS; k++) {
+	total += array[k];
+    }
+    printf("GL SEQ [1, 2) 2 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+#endif
+    dsfmt_init_gen_rand(&dsfmt, 1234);
+    sum = 0;
+    r = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		r += dsfmt_genrand_close1_open2(&dsfmt);
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    total += r;
+    printf("ST SEQ [1, 2) 1 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    sum = 0;
+    for (i = 0; i < 10; i++) {
+	clo = clock();
+	for (j = 0; j < TIC_COUNT; j++) {
+	    for (k = 0; k < NUM_RANDS; k++) {
+		array[k] = dsfmt_genrand_close1_open2(&dsfmt);
+	    }
+	}
+	clo = clock() - clo;
+	sum += clo;
+    }
+    for (k = 0; k < NUM_RANDS; k++) {
+	total += array[k];
+    }
+    printf("ST SEQ [1, 2) 2 AVE:%4"PRIu64"ms.\n",
+	   (sum * 100)  / CLOCKS_PER_SEC);
+    printf("total = %f\n", total);
+}
+
+int main(int argc, char *argv[]) {
+    int i;
+
+    if ((argc >= 2) && (strncmp(argv[1],"-s",2) == 0)) {
+	printf("consumed time for generating %d randoms.\n",
+	       NUM_RANDS * TIC_COUNT);
+	test_co();
+	test_oc();
+	test_oo();
+	test_12();
+	test_seq_co();
+	test_seq_oc();
+	test_seq_oo();
+	test_seq_12();
+    } else {
+	printf("%s\n", dsfmt_get_idstring());
+	printf("init_gen_rand(0) ");
+	check("[1, 2)", s_genrand_close1_open2, s_fill_array_close1_open2,
+	      sst_genrand_close1_open2, sst_fill_array_close1_open2, 0, 1000);
+	for (i = 0; i < 20; i++) {
+	    printf("init_gen_rand(%d) ", i);
+	    switch (i % 4) {
+	    case 0:
+		check("[0, 1)", s_genrand_close_open, s_fill_array_close_open,
+		      sst_genrand_close_open, sst_fill_array_close_open, i, 12);
+		break;
+	    case 1:
+		check("(0, 1]", s_genrand_open_close, s_fill_array_open_close,
+		      sst_genrand_open_close, sst_fill_array_open_close, i, 12);
+		break;
+	    case 2:
+		check("(0, 1)", s_genrand_open_open, s_fill_array_open_open,
+		      sst_genrand_open_open, sst_fill_array_open_open, i, 12);
+		break;
+	    case 3:
+	    default:
+		check("[1, 2)", s_genrand_close1_open2, 
+		      s_fill_array_close1_open2,
+		      sst_genrand_close1_open2, 
+		      sst_fill_array_close1_open2, i, 12);
+	    }
+	}
+	printf("init_by_array {1, 2, 3, 4} ");
+	check_ar("[1, 2)", s_genrand_close1_open2, 
+		 s_fill_array_close1_open2,
+		 sst_genrand_close1_open2, 
+		 sst_fill_array_close1_open2,
+		 1000);
+    }
+    return 0;
+}
Index: /Daodan/MSVC/daodan_gl.c
===================================================================
--- /Daodan/MSVC/daodan_gl.c	(revision 567)
+++ /Daodan/MSVC/daodan_gl.c	(revision 567)
@@ -0,0 +1,292 @@
+#include <windows.h>
+#include <math.h>
+
+#include "Oni.h"
+#include "Oni_Persistence.h"
+#include "Daodan_Utility.h"
+
+#include "BFW_Utility.h"
+
+#include "daodan_gl.h"
+#include "oni_gl.h"
+
+#define max_modes (104) // Dirty hack to add more resolutions, it really should only be 16 ^_^
+#define builtin_modes  (sizeof(daodan_reslist) / sizeof(M3tDisplayMode))
+#define builtin_depths (sizeof(daodan_resdepths) / sizeof(short))
+
+const M3tDisplayMode daodan_reslist[] = {
+	{ 720 , 480,  0, 0 },
+	{ 720 , 576,  0, 0 },
+	{ 768 , 480,  0, 0 },
+	{ 800 , 480,  0, 0 },
+	{ 800 , 600,  0, 0 },
+	{ 852 , 480,  0, 0 },
+	{ 856 , 480,  0, 0 },
+	{ 960 , 540,  0, 0 },
+	{ 960 , 720,  0, 0 },
+	{ 1024, 576,  0, 0 },
+	{ 1024, 600,  0, 0 },
+	{ 1024, 640,  0, 0 },
+	{ 1024, 768,  0, 0 },
+	{ 1152, 768,  0, 0 },
+	{ 1152, 864,  0, 0 },
+	{ 1280, 720,  0, 0 },
+	{ 1280, 768,  0, 0 },
+	{ 1280, 800,  0, 0 },
+	{ 1280, 960,  0, 0 },
+	{ 1280, 1024, 0, 0 },
+	{ 1366, 768,  0, 0 },
+	{ 1400, 1050, 0, 0 },
+	{ 1440, 900,  0, 0 },
+	{ 1600, 900,  0, 0 },
+	{ 1600, 1200, 0, 0 },
+	{ 1920, 1080, 0, 0 },
+	{ 1920, 1200, 0, 0 },
+	{ 1920, 1440, 0, 0 },
+};
+
+short daodan_resdepths[] = { 16, 32 };
+
+DEVMODE orig_devmode, cur_devmode, new_devmode;
+
+void init_daodan_gl()
+{
+	DDrStartupMessage("initalizing daodan gl");
+	
+	memset(&orig_devmode, 0, sizeof(orig_devmode));
+	orig_devmode.dmSize = sizeof(orig_devmode);
+	
+	if (!EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &orig_devmode))
+	{
+		orig_devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
+		orig_devmode.dmBitsPerPel = 32;
+		orig_devmode.dmPelsWidth  = GetSystemMetrics(SM_CXSCREEN);
+		orig_devmode.dmPelsHeight = GetSystemMetrics(SM_CYSCREEN);
+	}
+	
+	memcpy(&cur_devmode, &orig_devmode, sizeof(orig_devmode));
+	memcpy(&new_devmode, &orig_devmode, sizeof(orig_devmode));
+}
+
+void update_cdmode()
+{
+	if (!EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &cur_devmode))
+	{
+		cur_devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
+		cur_devmode.dmBitsPerPel = 32;
+		cur_devmode.dmPelsWidth  = GetSystemMetrics(SM_CXSCREEN);
+		cur_devmode.dmPelsHeight = GetSystemMetrics(SM_CYSCREEN);
+	}
+}
+
+unsigned int ONICALL daodan_enumerate_valid_display_modes(M3tDisplayMode modes[max_modes])
+{
+	unsigned int vmodes = 0;
+	unsigned int screen_x = orig_devmode.dmPelsWidth;
+	unsigned int screen_y = orig_devmode.dmPelsHeight;
+	
+	uint16_t i, j;
+	
+	DDrStartupMessage("listing display modes");
+	
+	if (!M3gResolutionSwitch)
+		daodan_resdepths[0] = orig_devmode.dmBitsPerPel;
+	
+	for (i = 0; i < builtin_depths; i ++)
+	{
+		bool scrInsert = false;
+		
+		modes[vmodes].Width  = 640;
+		modes[vmodes].Height = 480;
+		modes[vmodes].Depth  = daodan_resdepths[i];
+		
+		if (++vmodes == max_modes - builtin_modes + i)
+			goto modesfull;
+		
+		for (j = 0; j < builtin_modes; j ++)
+			if (!(daodan_reslist[j].Width == 640 && daodan_reslist[j].Height == 480) && !(daodan_reslist[j].Width == screen_x && daodan_reslist[j].Height == screen_y) &&
+				((daodan_reslist[j].Width < screen_x && daodan_reslist[j].Height < screen_y) || (M3gResolutionSwitch && daodan_testmode(daodan_reslist[j]))))
+			{
+				if (!scrInsert && (daodan_reslist[j].Width > screen_x || (daodan_reslist[j].Width == screen_x &&  daodan_reslist[j].Height > screen_y)))
+				{
+					modes[vmodes].Width  = screen_x;
+					modes[vmodes].Height = screen_y;
+					modes[vmodes].Depth  = daodan_resdepths[i];
+					
+					if (++vmodes == max_modes - builtin_modes + i)
+						goto modesfull;
+					
+					scrInsert = true;
+				}
+				
+				modes[vmodes].Width  = daodan_reslist[j].Width;
+				modes[vmodes].Height = daodan_reslist[j].Height;
+				modes[vmodes].Depth  = daodan_resdepths[i];
+				
+				if (++vmodes == max_modes - builtin_modes + i)
+					goto modesfull;
+			}
+		
+		if (!scrInsert)
+		{
+			modes[vmodes].Width  = screen_x;
+			modes[vmodes].Height = screen_y;
+			modes[vmodes].Depth  = daodan_resdepths[i];
+			
+			if (++vmodes == max_modes - builtin_modes + i)
+				goto modesfull;
+		}
+		
+		if (!M3gResolutionSwitch)
+			goto modesfull;
+	}
+	
+	modesfull:
+	DDrStartupMessage("%d modes available", vmodes);
+	return vmodes;
+}
+
+bool daodan_testmode(M3tDisplayMode mode)
+{
+	DEVMODE devmode;
+	memset(&devmode, 0, sizeof(devmode));
+	
+	devmode.dmSize = sizeof(devmode);
+	devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
+	devmode.dmBitsPerPel = mode.Depth;
+	devmode.dmPelsWidth  = mode.Width;
+	devmode.dmPelsHeight = mode.Height;
+	
+	return (ChangeDisplaySettings(&devmode, CDS_TEST | CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL);
+}
+
+int daodan_set_display_mode(short width, short height, short depth)
+{
+	if (M3gResolutionSwitch)
+	{
+		DEVMODE new_devmode;
+		new_devmode.dmSize = sizeof(new_devmode);
+		new_devmode.dmFields = DM_BITSPERPEL | DM_PELSHEIGHT | DM_PELSWIDTH;
+		new_devmode.dmPelsWidth = width;
+		new_devmode.dmPelsHeight = height;
+		new_devmode.dmBitsPerPel = depth;
+		
+		if (ChangeDisplaySettings(&new_devmode, CDS_TEST) != DISP_CHANGE_SUCCESSFUL)
+			return 0;
+		
+		if (ChangeDisplaySettings(&new_devmode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
+			return 0;
+		
+		update_cdmode();
+		gl_eng->DisplayMode.Width = cur_devmode.dmPelsWidth;
+		gl_eng->DisplayMode.Height = cur_devmode.dmPelsHeight;
+		if (cur_devmode.dmBitsPerPel > depth)
+			gl_eng->DisplayMode.Depth = cur_devmode.dmBitsPerPel;
+	}
+	else
+	{
+		update_cdmode();
+		if (cur_devmode.dmBitsPerPel > depth)
+			gl_eng->DisplayMode.Depth = cur_devmode.dmBitsPerPel;
+	}
+	return 1;
+}
+
+void daodan_set_gamma(float gamma)
+{
+	WORD ramp[3][256];
+	int i;
+
+	if (!gl_gamma_ramp_valid)
+		return;
+
+	gamma = (1.0f - gamma) * 1.2f + 0.4f;
+
+	for (i = 0; i < 256; i++) 
+	{
+		int value = (int)(pow(gl_gamma_ramp[i] / 65535.0f, gamma) * 65535.0f);
+
+		if (value < 0)
+			value = 0;
+		else if (value > 65535)
+			value = 65535;
+
+		ramp[0][i] = ramp[1][i] = ramp[2][i] = value;
+	}
+	
+	if (gl_api->wglSetDeviceGammaRamp3DFX)
+		gl_api->wglSetDeviceGammaRamp3DFX(gl_eng->HDC, ramp);
+	else
+		SetDeviceGammaRamp(gl_eng->HDC, ramp);
+}
+
+int ONICALL daodangl_platform_initialize()
+{
+	static M3tDisplayMode lastmode = {0, 0, 0, 0};
+	
+	if (lastmode.Width != gl_eng->DisplayMode.Width || lastmode.Height != gl_eng->DisplayMode.Height || lastmode.Depth != gl_eng->DisplayMode.Depth)
+		if (!daodan_set_display_mode(gl_eng->DisplayMode.Width, gl_eng->DisplayMode.Height, gl_eng->DisplayMode.Depth))
+			if (gl_eng->DisplayMode.Width != 640 || gl_eng->DisplayMode.Height != 480 || gl_eng->DisplayMode.Depth != 16)
+			{
+				gl_eng->DisplayMode.Width = 640;
+				gl_eng->DisplayMode.Height = 480;
+				if (!daodan_set_display_mode(640, 480, 16))
+					goto exit_err;
+			}
+
+	if (lastmode.Width != gl_eng->DisplayMode.Width || lastmode.Height != gl_eng->DisplayMode.Height)
+	{
+		RECT Rect;
+		Rect.left = (GetSystemMetrics(SM_CXSCREEN) / 2) - (gl_eng->DisplayMode.Width / 2);
+		Rect.top = (GetSystemMetrics(SM_CYSCREEN) / 2) - (gl_eng->DisplayMode.Height / 2);
+		Rect.right = Rect.left + gl_eng->DisplayMode.Width;
+		Rect.bottom = Rect.top + gl_eng->DisplayMode.Height;
+		AdjustWindowRect(&Rect, WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_CAPTION |WS_TILEDWINDOW , FALSE);
+		
+		SetWindowPos(ONgPlatformData.Window, NULL, Rect.left, Rect.top, Rect.right - Rect.left, Rect.bottom - Rect.top, SWP_NOACTIVATE | SWP_NOZORDER);
+	}
+
+	if (gl_eng->HDC == NULL)
+		if ((gl_eng->HDC = GetDC(ONgPlatformData.Window)) == NULL)
+			goto exit_err;
+	
+	if (gl_api->wglGetDeviceGammaRamp3DFX != NULL)
+	{
+		DDrStartupMessage("Using 3DFX gamma adjustment");
+
+		if (gl_api->wglGetDeviceGammaRamp3DFX(gl_eng->HDC, gl_gamma_ramp))
+			gl_gamma_ramp_valid = 1;
+	}
+	else
+	{
+		DDrStartupMessage("Using standard Windows gamma adjustment");
+
+		if (GetDeviceGammaRamp(gl_eng->HDC, gl_gamma_ramp))
+			gl_gamma_ramp_valid = 1;
+	}
+	
+	if (gl_gamma_ramp_valid)
+		daodan_set_gamma(ONrPersist_GetGamma());  
+	else
+		DDrStartupMessage("gamma adjustment not supported");
+	
+	if (!gl_platform_set_pixel_format(gl_eng->HDC))
+		if (gl_eng->DisplayMode.Depth != 16)
+		{
+			if (!daodan_set_display_mode(gl_eng->DisplayMode.Width, gl_eng->DisplayMode.Height, 16))
+				goto exit_err;
+			
+			if (!gl_platform_set_pixel_format(gl_eng->HDC))
+				goto exit_err;
+		}
+
+	lastmode.Width = gl_eng->DisplayMode.Width;
+	lastmode.Height = gl_eng->DisplayMode.Height;
+	lastmode.Depth = gl_eng->DisplayMode.Depth;
+	return 1;
+
+exit_err:
+	AUrMessageBox(1, "Failed to initialize OpenGL contexts; Oni will now exit.");
+	exit(0);
+	return 0;
+}
Index: /Daodan/MSVC/daodan_gl.h
===================================================================
--- /Daodan/MSVC/daodan_gl.h	(revision 567)
+++ /Daodan/MSVC/daodan_gl.h	(revision 567)
@@ -0,0 +1,18 @@
+#pragma once
+#ifndef DAODAN_GL_H
+#define DAODAN_GL_H
+
+#include "Daodan.h"
+#include "BFW_Motoko_Draw.h"
+
+#include "oni_gl.h"
+
+void init_daodan_gl();
+void update_cdmode();
+unsigned int ONICALL daodan_enumerate_valid_display_modes(M3tDisplayMode modes[16]);
+bool daodan_testmode(M3tDisplayMode mode);
+int daodan_set_display_mode(short width, short height, short depth);
+void daodan_set_gamma(float gamma);
+int ONICALL daodangl_platform_initialize();
+
+#endif
Index: /Daodan/MSVC/debugger.txt
===================================================================
--- /Daodan/MSVC/debugger.txt	(revision 567)
+++ /Daodan/MSVC/debugger.txt	(revision 567)
@@ -0,0 +1,4 @@
+Error 400 reported from File: F:\BungieDevelopment\BungieSource\OniProj\OniGameSource\Oni.c, Line: 191 (message follows) 
+Could not find game data folder
+Error 400 reported from File: F:\BungieDevelopment\BungieSource\OniProj\OniGameSource\Oni.c, Line: 937 (message follows) 
+Could not initialize components.
Index: /Daodan/MSVC/inifile.h
===================================================================
--- /Daodan/MSVC/inifile.h	(revision 567)
+++ /Daodan/MSVC/inifile.h	(revision 567)
@@ -0,0 +1,16 @@
+#pragma once
+#ifndef INIFILE_H
+#define INIFILE_H
+
+#include "bool.h"
+//#include <stdint.h>
+
+enum {inifile_cantread = -20};
+
+typedef bool (*inifile_callback)(char* section, bool newsection, char* name, char* value);
+
+char* inifile_cleanstr(char* str);
+int64_t inifile_parseint(const char* str, bool issigned);
+bool inifile_read(const char* filename, inifile_callback callback);
+
+#endif
Index: /Daodan/MSVC/inifile_reader.c
===================================================================
--- /Daodan/MSVC/inifile_reader.c	(revision 567)
+++ /Daodan/MSVC/inifile_reader.c	(revision 567)
@@ -0,0 +1,149 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "bool.h"
+#include <string.h>
+#include <ctype.h>
+
+#include "inifile.h"
+
+char* inifile_cleanstr(char* str)
+{
+	int i;
+	for (i = strlen(str) - 1; i >= 0; i --)
+		if (isspace(str[i]))
+			str[i] = '\0';
+		else
+			break;
+	
+	while (isspace(*str))
+		str++;
+	
+	return str;
+}
+
+int64_t inifile_parseint(const char* str, bool issigned)
+{
+	int64_t ret = 0;
+	bool neg = false;
+	if (str[0] == '0' && str[1] == 'x')
+	{
+		int i;
+		if (str[2] == '\0')
+			return 0x100000000LL;
+		
+		for (i = 0, str += 2; *str; i++, str++)
+		{
+			if (i == 8)
+				return 0x100000000LL;
+			
+			ret <<= 4;
+			if (*str >= '0' && *str <= '9')
+				ret |= *str - '0';
+			else if (*str >= 'a' && *str <= 'f')
+				ret |= *str - 'a' + 10;
+			else if (*str >= 'A' && *str <= 'F')
+				ret |= *str - 'A' + 10;
+			else
+				return 0x100000000LL;
+		}
+		return ret;
+	}
+	else if ((*str >= '0' && *str <= '9') || (neg = (*str == '-')))
+	{
+		int i;
+		if (neg)
+			str++;
+		for (i = 0; *str; i++, str++)
+		{
+			if (i == 10)
+				return 0x100000000LL;
+			else if (i == 9 && !issigned && (ret > 429496729LL || (ret == 429496729LL && *str > '5')))
+				return 0x100000000LL;
+			else if (i == 9 && issigned && (ret > 214748364LL || (ret == 214748364LL && *str > (neg ? '8' : '7'))))
+				return 0x100000000LL;
+			
+			ret *= 10;
+			if (*str >= '0' && *str <= '9')
+				ret += *str - '0';
+			else
+				return 0x100000000LL;
+		}
+		if (neg)
+			ret *= -1;
+		return ret;
+	}
+	else
+		return 0x100000000LL;
+}
+
+bool inifile_read(const char* filename, inifile_callback callback)
+{
+	FILE* fp = fopen(filename, "r");
+	char* inisection = "";
+	char readbuf[4096] = "";
+	char* readptr;
+	bool success = true;
+	bool newsection = false;
+	
+	if (!fp)
+		return inifile_cantread;
+	
+	while ((readptr = fgets(readbuf, sizeof(readbuf), fp))) // Loop through each line.
+	{
+		while (isspace(readptr[0])) // Skip whitespace.
+			readptr++;
+		
+		if (readptr[0] == '\0' || readptr[0] == '#' || readptr[0] == '!') // Skip empty lines and comments.
+			continue;
+		else if (readptr[0] == '[' && readptr[1] != ']') // It's a section header.
+		{
+			int i;
+			for (i = 2; readptr[i]; i ++) // Look for the ]
+				if (readptr[i] == ']')
+					break;
+			
+			if (readptr[i]) // Replace with a null or crash with error.
+				readptr[i] = '\0';
+			else
+			{
+				success = false;
+				break;
+			}
+			
+			if (inisection[0])
+				free(inisection);
+			inisection = _strdup(readptr + 1); // Skip the first [
+			newsection = true;
+		}
+		else // It's a value.
+		{
+			int i;
+			int equals = 0;
+			for (i = 0; readptr[i]; i ++) // Find the =
+				if (readptr[i] == '=')
+					equals = i;
+			
+			if (readptr[i - 1] == '\n')
+				readptr[i - 1] = '\0'; // Remove the trailing newline.
+			
+			if (equals)
+			{
+				readptr[equals] = '\0';
+				if (!callback(inisection, newsection, readptr, readptr + equals + 1)) // If the callback is false, exit.
+					break;
+				newsection = false;
+			}
+			else // If there's no equals, crash with error.
+			{
+				success = false;
+				break;
+			}
+		}
+	}
+	
+	if (inisection[0])
+		free(inisection);
+	
+	fclose(fp);
+	return success;
+}
Index: /Daodan/MSVC/inifile_test.c
===================================================================
--- /Daodan/MSVC/inifile_test.c	(revision 567)
+++ /Daodan/MSVC/inifile_test.c	(revision 567)
@@ -0,0 +1,25 @@
+#include <stdio.h>
+#include "bool.h"
+#include <string.h>
+#include "inifile.h"
+
+bool ini_callback(char* section, bool newsection, char* name, char* value)
+{
+	if (newsection)
+		puts("New Section!");
+	printf("Section: %s Name: %s Value: %s\n", section, name, value);
+	if (!_stricmp(name, "cleantest"))
+		printf("  CleanTest: \"%s\" = \"%s\"\n", value, inifile_cleanstr(value));
+	if (!_stricmp(name, "inttest"))
+		printf("  IntTest: %s = %u\n", value, (uint32_t)inifile_parseint(value, false));
+	if (!_stricmp(name, "sinttest"))
+		printf("  IntTest: %s = %d\n", value, (int32_t)inifile_parseint(value, true));
+	return true;
+}
+
+int main()
+{
+	if (!inifile_read("testini.ini", ini_callback))
+		puts("Read error!");
+	return 0;
+}
Index: /Daodan/MSVC/oni_gl.h
===================================================================
--- /Daodan/MSVC/oni_gl.h	(revision 567)
+++ /Daodan/MSVC/oni_gl.h	(revision 567)
@@ -0,0 +1,445 @@
+#pragma once
+#ifndef ONI_GL_H
+#define ONI_GL_H
+
+#include <GL/GL.h>
+
+#include "Daodan.h"
+#include "BFW_Motoko_Draw.h"
+
+typedef struct 
+{
+	int a;
+	M3tDrawEngineCaps DrawEngineCaps;
+	M3tDrawEngine DrawEngine;
+	M3tDrawContext DrawContext;
+	M3tDisplayMode DisplayMode;
+	int b;
+	int Textures[2];
+	short c;
+	short d;
+	int IntState;
+	M3tDrawPtrState *PtrState;
+	int e;
+	int Color;
+	int MaxTetxureSize;
+	int DoubleBufferSupported;
+	int MaxTextureUnits;
+	char *VendorString;
+	char *RendererString;
+	char *VersionString;
+	char *ExtensionsString;
+	int MultipassCapable;
+	int f_0588;
+	char f_058C;
+	char SupportsDepthReads;
+	char FogDisabled;
+	char f_058F;
+	int CompressedTextureFormats[16];
+	int NumCompressedTextureFormats;
+	int f_05D4;
+	float FogStart;
+	float FogEnd;
+	char FogStartChanged;
+	char FogEndChanged;
+	short f_05E2;
+	int f_05E4[4];
+	float FogColor_R;
+	float FogColor_G;
+	float FogColor_B;
+	int Fog_1_;
+	char Fog_2_;
+	char f_0605[3];
+	float ClearColor[4];
+	int LastError;
+	char *LastErrorString;
+	short RenderMode;
+	char BufferClear;
+	char DoubleBuffer;
+	int f_0624;
+	char *TextureBuffer;
+	HDC HDC;
+	HGLRC HGLRC;
+	char vsync;
+	char f_0635[3];
+	void (*DisplayBackBuffer)(void);
+} gl_engine_t;
+
+typedef struct
+{
+	void (WINAPI *glAccum)(GLenum op, GLfloat value);
+	void (WINAPI *glAlphaFunc)(GLenum func, GLclampf ref);
+	GLboolean (WINAPI *glAreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences);
+	void (WINAPI *glArrayElement)(GLint i);
+	void (WINAPI *glBegin)(GLenum mode);
+	void (WINAPI *glBindTexture)(GLenum target, GLuint texture);
+	void (WINAPI *glBitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
+	void (WINAPI *glBlendFunc)(GLenum sfactor, GLenum dfactor);
+	void (WINAPI *glCallList)(GLuint list);
+	void (WINAPI *glCallLists)(GLsizei n, GLenum type, const GLvoid *lists);
+	void (WINAPI *glClear)(GLbitfield mask);
+	void (WINAPI *glClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+	void (WINAPI *glClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+	void (WINAPI *glClearDepth)(GLclampd depth);
+	void (WINAPI *glClearIndex)(GLfloat c);
+	void (WINAPI *glClearStencil)(GLint s);
+	void (WINAPI *glClipPlane)(GLenum plane, const GLdouble *equation);
+	void (WINAPI *glColor3b)(GLbyte red, GLbyte green, GLbyte blue);
+	void (WINAPI *glColor3bv)(const GLbyte *v);
+	void (WINAPI *glColor3d)(GLdouble red, GLdouble green, GLdouble blue);
+	void (WINAPI *glColor3dv)(const GLdouble *v);
+	void (WINAPI *glColor3f)(GLfloat red, GLfloat green, GLfloat blue);
+	void (WINAPI *glColor3fv)(const GLfloat *v);
+	void (WINAPI *glColor3i)(GLint red, GLint green, GLint blue);
+	void (WINAPI *glColor3iv)(const GLint *v);
+	void (WINAPI *glColor3s)(GLshort red, GLshort green, GLshort blue);
+	void (WINAPI *glColor3sv)(const GLshort *v);
+	void (WINAPI *glColor3ub)(GLubyte red, GLubyte green, GLubyte blue);
+	void (WINAPI *glColor3ubv)(const GLubyte *v);
+	void (WINAPI *glColor3ui)(GLuint red, GLuint green, GLuint blue);
+	void (WINAPI *glColor3uiv)(const GLuint *v);
+	void (WINAPI *glColor3us)(GLushort red, GLushort green, GLushort blue);
+	void (WINAPI *glColor3usv)(const GLushort *v);
+	void (WINAPI *glColor4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+	void (WINAPI *glColor4bv)(const GLbyte *v);
+	void (WINAPI *glColor4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+	void (WINAPI *glColor4dv)(const GLdouble *v);
+	void (WINAPI *glColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+	void (WINAPI *glColor4fv)(const GLfloat *v);
+	void (WINAPI *glColor4i)(GLint red, GLint green, GLint blue, GLint alpha);
+	void (WINAPI *glColor4iv)(const GLint *v);
+	void (WINAPI *glColor4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
+	void (WINAPI *glColor4sv)(const GLshort *v);
+	void (WINAPI *glColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+	void (WINAPI *glColor4ubv)(const GLubyte *v);
+	void (WINAPI *glColor4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
+	void (WINAPI *glColor4uiv)(const GLuint *v);
+	void (WINAPI *glColor4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
+	void (WINAPI *glColor4usv)(const GLushort *v);
+	void (WINAPI *glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+	void (WINAPI *glColorMaterial)(GLenum face, GLenum mode);
+	void (WINAPI *glColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glCopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
+	void (WINAPI *glCopyTexImage1D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+	void (WINAPI *glCopyTexImage2D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+	void (WINAPI *glCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+	void (WINAPI *glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+	void (WINAPI *glCullFace)(GLenum mode);
+	void (WINAPI *glDeleteLists)(GLuint list, GLsizei range);
+	void (WINAPI *glDeleteTextures)(GLsizei n, const GLuint *textures);
+	void (WINAPI *glDepthFunc)(GLenum func);
+	void (WINAPI *glDepthMask)(GLboolean flag);
+	void (WINAPI *glDepthRange)(GLclampd zNear, GLclampd zFar);
+	void (WINAPI *glDisable)(GLenum cap);
+	void (WINAPI *glDisableClientState)(GLenum array);
+	void (WINAPI *glDrawArrays)(GLenum mode, GLint first, GLsizei count);
+	void (WINAPI *glDrawBuffer)(GLenum mode);
+	void (WINAPI *glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
+	void (WINAPI *glDrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glEdgeFlag)(GLboolean flag);
+	void (WINAPI *glEdgeFlagPointer)(GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glEdgeFlagv)(const GLboolean *flag);
+	void (WINAPI *glEnable)(GLenum cap);
+	void (WINAPI *glEnableClientState)(GLenum array);
+	void (WINAPI *glEnd)(void);
+	void (WINAPI *glEndList)(void);
+	void (WINAPI *glEvalCoord1d)(GLdouble u);
+	void (WINAPI *glEvalCoord1dv)(const GLdouble *u);
+	void (WINAPI *glEvalCoord1f)(GLfloat u);
+	void (WINAPI *glEvalCoord1fv)(const GLfloat *u);
+	void (WINAPI *glEvalCoord2d)(GLdouble u, GLdouble v);
+	void (WINAPI *glEvalCoord2dv)(const GLdouble *u);
+	void (WINAPI *glEvalCoord2f)(GLfloat u, GLfloat v);
+	void (WINAPI *glEvalCoord2fv)(const GLfloat *u);
+	void (WINAPI *glEvalMesh1)(GLenum mode, GLint i1, GLint i2);
+	void (WINAPI *glEvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+	void (WINAPI *glEvalPoint1)(GLint i);
+	void (WINAPI *glEvalPoint2)(GLint i, GLint j);
+	void (WINAPI *glFeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer);
+	void (WINAPI *glFinish)(void);
+	void (WINAPI *glFlush)(void);
+	void (WINAPI *glFogf)(GLenum pname, GLfloat param);
+	void (WINAPI *glFogfv)(GLenum pname, const GLfloat *params);
+	void (WINAPI *glFogi)(GLenum pname, GLint param);
+	void (WINAPI *glFogiv)(GLenum pname, const GLint *params);
+	void (WINAPI *glFrontFace)(GLenum mode);
+	void (WINAPI *glFrustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+	GLuint (WINAPI *glGenLists)(GLsizei range);
+	void (WINAPI *glGenTextures)(GLsizei n, GLuint *textures);
+	void (WINAPI *glGetBooleanv)(GLenum pname, GLboolean *params);
+	void (WINAPI *glGetClipPlane)(GLenum plane, GLdouble *equation);
+	void (WINAPI *glGetDoublev)(GLenum pname, GLdouble *params);
+	GLenum (WINAPI *glGetError)(void);
+	void (WINAPI *glGetFloatv)(GLenum pname, GLfloat *params);
+	void (WINAPI *glGetIntegerv)(GLenum pname, GLint *params);
+	void (WINAPI *glGetLightfv)(GLenum light, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetLightiv)(GLenum light, GLenum pname, GLint *params);
+	void (WINAPI *glGetMapdv)(GLenum target, GLenum query, GLdouble *v);
+	void (WINAPI *glGetMapfv)(GLenum target, GLenum query, GLfloat *v);
+	void (WINAPI *glGetMapiv)(GLenum target, GLenum query, GLint *v);
+	void (WINAPI *glGetMaterialfv)(GLenum face, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetMaterialiv)(GLenum face, GLenum pname, GLint *params);
+	void (WINAPI *glGetPixelMapfv)(GLenum map, GLfloat *values);
+	void (WINAPI *glGetPixelMapuiv)(GLenum map, GLuint *values);
+	void (WINAPI *glGetPixelMapusv)(GLenum map, GLushort *values);
+	void (WINAPI *glGetPointerv)(GLenum pname, GLvoid* *params);
+	void (WINAPI *glGetPolygonStipple)(GLubyte *mask);
+	const GLubyte * (WINAPI *glGetString)(GLenum name);
+	void (WINAPI *glGetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetTexEnviv)(GLenum target, GLenum pname, GLint *params);
+	void (WINAPI *glGetTexGendv)(GLenum coord, GLenum pname, GLdouble *params);
+	void (WINAPI *glGetTexGenfv)(GLenum coord, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetTexGeniv)(GLenum coord, GLenum pname, GLint *params);
+	void (WINAPI *glGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
+	void (WINAPI *glGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
+	void (WINAPI *glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
+	void (WINAPI *glGetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
+	void (WINAPI *glHint)(GLenum target, GLenum mode);
+	void (WINAPI *glIndexMask)(GLuint mask);
+	void (WINAPI *glIndexPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glIndexd)(GLdouble c);
+	void (WINAPI *glIndexdv)(const GLdouble *c);
+	void (WINAPI *glIndexf)(GLfloat c);
+	void (WINAPI *glIndexfv)(const GLfloat *c);
+	void (WINAPI *glIndexi)(GLint c);
+	void (WINAPI *glIndexiv)(const GLint *c);
+	void (WINAPI *glIndexs)(GLshort c);
+	void (WINAPI *glIndexsv)(const GLshort *c);
+	void (WINAPI *glIndexub)(GLubyte c);
+	void (WINAPI *glIndexubv)(const GLubyte *c);
+	void (WINAPI *glInitNames)(void);
+	void (WINAPI *glInterleavedArrays)(GLenum format, GLsizei stride, const GLvoid *pointer);
+	GLboolean (WINAPI *glIsEnabled)(GLenum cap);
+	GLboolean (WINAPI *glIsList)(GLuint list);
+	GLboolean (WINAPI *glIsTexture)(GLuint texture);
+	void (WINAPI *glLightModelf)(GLenum pname, GLfloat param);
+	void (WINAPI *glLightModelfv)(GLenum pname, const GLfloat *params);
+	void (WINAPI *glLightModeli)(GLenum pname, GLint param);
+	void (WINAPI *glLightModeliv)(GLenum pname, const GLint *params);
+	void (WINAPI *glLightf)(GLenum light, GLenum pname, GLfloat param);
+	void (WINAPI *glLightfv)(GLenum light, GLenum pname, const GLfloat *params);
+	void (WINAPI *glLighti)(GLenum light, GLenum pname, GLint param);
+	void (WINAPI *glLightiv)(GLenum light, GLenum pname, const GLint *params);
+	void (WINAPI *glLineStipple)(GLint factor, GLushort pattern);
+	void (WINAPI *glLineWidth)(GLfloat width);
+	void (WINAPI *glListBase)(GLuint base);
+	void (WINAPI *glLoadIdentity)(void);
+	void (WINAPI *glLoadMatrixd)(const GLdouble *m);
+	void (WINAPI *glLoadMatrixf)(const GLfloat *m);
+	void (WINAPI *glLoadName)(GLuint name);
+	void (WINAPI *glLogicOp)(GLenum opcode);
+	void (WINAPI *glMap1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+	void (WINAPI *glMap1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+	void (WINAPI *glMap2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+	void (WINAPI *glMap2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+	void (WINAPI *glMapGrid1d)(GLint un, GLdouble u1, GLdouble u2);
+	void (WINAPI *glMapGrid1f)(GLint un, GLfloat u1, GLfloat u2);
+	void (WINAPI *glMapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+	void (WINAPI *glMapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+	void (WINAPI *glMaterialf)(GLenum face, GLenum pname, GLfloat param);
+	void (WINAPI *glMaterialfv)(GLenum face, GLenum pname, const GLfloat *params);
+	void (WINAPI *glMateriali)(GLenum face, GLenum pname, GLint param);
+	void (WINAPI *glMaterialiv)(GLenum face, GLenum pname, const GLint *params);
+	void (WINAPI *glMatrixMode)(GLenum mode);
+	void (WINAPI *glMultMatrixd)(const GLdouble *m);
+	void (WINAPI *glMultMatrixf)(const GLfloat *m);
+	void (WINAPI *glNewList)(GLuint list, GLenum mode);
+	void (WINAPI *glNormal3b)(GLbyte nx, GLbyte ny, GLbyte nz);
+	void (WINAPI *glNormal3bv)(const GLbyte *v);
+	void (WINAPI *glNormal3d)(GLdouble nx, GLdouble ny, GLdouble nz);
+	void (WINAPI *glNormal3dv)(const GLdouble *v);
+	void (WINAPI *glNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz);
+	void (WINAPI *glNormal3fv)(const GLfloat *v);
+	void (WINAPI *glNormal3i)(GLint nx, GLint ny, GLint nz);
+	void (WINAPI *glNormal3iv)(const GLint *v);
+	void (WINAPI *glNormal3s)(GLshort nx, GLshort ny, GLshort nz);
+	void (WINAPI *glNormal3sv)(const GLshort *v);
+	void (WINAPI *glNormalPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+	void (WINAPI *glPassThrough)(GLfloat token);
+	void (WINAPI *glPixelMapfv)(GLenum map, GLsizei mapsize, const GLfloat *values);
+	void (WINAPI *glPixelMapuiv)(GLenum map, GLsizei mapsize, const GLuint *values);
+	void (WINAPI *glPixelMapusv)(GLenum map, GLsizei mapsize, const GLushort *values);
+	void (WINAPI *glPixelStoref)(GLenum pname, GLfloat param);
+	void (WINAPI *glPixelStorei)(GLenum pname, GLint param);
+	void (WINAPI *glPixelTransferf)(GLenum pname, GLfloat param);
+	void (WINAPI *glPixelTransferi)(GLenum pname, GLint param);
+	void (WINAPI *glPixelZoom)(GLfloat xfactor, GLfloat yfactor);
+	void (WINAPI *glPointSize)(GLfloat size);
+	void (WINAPI *glPolygonMode)(GLenum face, GLenum mode);
+	void (WINAPI *glPolygonOffset)(GLfloat factor, GLfloat units);
+	void (WINAPI *glPolygonStipple)(const GLubyte *mask);
+	void (WINAPI *glPopAttrib)(void);
+	void (WINAPI *glPopClientAttrib)(void);
+	void (WINAPI *glPopMatrix)(void);
+	void (WINAPI *glPopName)(void);
+	void (WINAPI *glPrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities);
+	void (WINAPI *glPushAttrib)(GLbitfield mask);
+	void (WINAPI *glPushClientAttrib)(GLbitfield mask);
+	void (WINAPI *glPushMatrix)(void);
+	void (WINAPI *glPushName)(GLuint name);
+	void (WINAPI *glRasterPos2d)(GLdouble x, GLdouble y);
+	void (WINAPI *glRasterPos2dv)(const GLdouble *v);
+	void (WINAPI *glRasterPos2f)(GLfloat x, GLfloat y);
+	void (WINAPI *glRasterPos2fv)(const GLfloat *v);
+	void (WINAPI *glRasterPos2i)(GLint x, GLint y);
+	void (WINAPI *glRasterPos2iv)(const GLint *v);
+	void (WINAPI *glRasterPos2s)(GLshort x, GLshort y);
+	void (WINAPI *glRasterPos2sv)(const GLshort *v);
+	void (WINAPI *glRasterPos3d)(GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glRasterPos3dv)(const GLdouble *v);
+	void (WINAPI *glRasterPos3f)(GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glRasterPos3fv)(const GLfloat *v);
+	void (WINAPI *glRasterPos3i)(GLint x, GLint y, GLint z);
+	void (WINAPI *glRasterPos3iv)(const GLint *v);
+	void (WINAPI *glRasterPos3s)(GLshort x, GLshort y, GLshort z);
+	void (WINAPI *glRasterPos3sv)(const GLshort *v);
+	void (WINAPI *glRasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+	void (WINAPI *glRasterPos4dv)(const GLdouble *v);
+	void (WINAPI *glRasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+	void (WINAPI *glRasterPos4fv)(const GLfloat *v);
+	void (WINAPI *glRasterPos4i)(GLint x, GLint y, GLint z, GLint w);
+	void (WINAPI *glRasterPos4iv)(const GLint *v);
+	void (WINAPI *glRasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w);
+	void (WINAPI *glRasterPos4sv)(const GLshort *v);
+	void (WINAPI *glReadBuffer)(GLenum mode);
+	void (WINAPI *glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
+	void (WINAPI *glRectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+	void (WINAPI *glRectdv)(const GLdouble *v1, const GLdouble *v2);
+	void (WINAPI *glRectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+	void (WINAPI *glRectfv)(const GLfloat *v1, const GLfloat *v2);
+	void (WINAPI *glRecti)(GLint x1, GLint y1, GLint x2, GLint y2);
+	void (WINAPI *glRectiv)(const GLint *v1, const GLint *v2);
+	void (WINAPI *glRects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+	void (WINAPI *glRectsv)(const GLshort *v1, const GLshort *v2);
+	GLint (WINAPI *glRenderMode)(GLenum mode);
+	void (WINAPI *glRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glScaled)(GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glScalef)(GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
+	void (WINAPI *glSelectBuffer)(GLsizei size, GLuint *buffer);
+	void (WINAPI *glShadeModel)(GLenum mode);
+	void (WINAPI *glStencilFunc)(GLenum func, GLint ref, GLuint mask);
+	void (WINAPI *glStencilMask)(GLuint mask);
+	void (WINAPI *glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
+	void (WINAPI *glTexCoord1d)(GLdouble s);
+	void (WINAPI *glTexCoord1dv)(const GLdouble *v);
+	void (WINAPI *glTexCoord1f)(GLfloat s);
+	void (WINAPI *glTexCoord1fv)(const GLfloat *v);
+	void (WINAPI *glTexCoord1i)(GLint s);
+	void (WINAPI *glTexCoord1iv)(const GLint *v);
+	void (WINAPI *glTexCoord1s)(GLshort s);
+	void (WINAPI *glTexCoord1sv)(const GLshort *v);
+	void (WINAPI *glTexCoord2d)(GLdouble s, GLdouble t);
+	void (WINAPI *glTexCoord2dv)(const GLdouble *v);
+	void (WINAPI *glTexCoord2f)(GLfloat s, GLfloat t);
+	void (WINAPI *glTexCoord2fv)(const GLfloat *v);
+	void (WINAPI *glTexCoord2i)(GLint s, GLint t);
+	void (WINAPI *glTexCoord2iv)(const GLint *v);
+	void (WINAPI *glTexCoord2s)(GLshort s, GLshort t);
+	void (WINAPI *glTexCoord2sv)(const GLshort *v);
+	void (WINAPI *glTexCoord3d)(GLdouble s, GLdouble t, GLdouble r);
+	void (WINAPI *glTexCoord3dv)(const GLdouble *v);
+	void (WINAPI *glTexCoord3f)(GLfloat s, GLfloat t, GLfloat r);
+	void (WINAPI *glTexCoord3fv)(const GLfloat *v);
+	void (WINAPI *glTexCoord3i)(GLint s, GLint t, GLint r);
+	void (WINAPI *glTexCoord3iv)(const GLint *v);
+	void (WINAPI *glTexCoord3s)(GLshort s, GLshort t, GLshort r);
+	void (WINAPI *glTexCoord3sv)(const GLshort *v);
+	void (WINAPI *glTexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+	void (WINAPI *glTexCoord4dv)(const GLdouble *v);
+	void (WINAPI *glTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+	void (WINAPI *glTexCoord4fv)(const GLfloat *v);
+	void (WINAPI *glTexCoord4i)(GLint s, GLint t, GLint r, GLint q);
+	void (WINAPI *glTexCoord4iv)(const GLint *v);
+	void (WINAPI *glTexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q);
+	void (WINAPI *glTexCoord4sv)(const GLshort *v);
+	void (WINAPI *glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glTexEnvf)(GLenum target, GLenum pname, GLfloat param);
+	void (WINAPI *glTexEnvfv)(GLenum target, GLenum pname, const GLfloat *params);
+	void (WINAPI *glTexEnvi)(GLenum target, GLenum pname, GLint param);
+	void (WINAPI *glTexEnviv)(GLenum target, GLenum pname, const GLint *params);
+	void (WINAPI *glTexGend)(GLenum coord, GLenum pname, GLdouble param);
+	void (WINAPI *glTexGendv)(GLenum coord, GLenum pname, const GLdouble *params);
+	void (WINAPI *glTexGenf)(GLenum coord, GLenum pname, GLfloat param);
+	void (WINAPI *glTexGenfv)(GLenum coord, GLenum pname, const GLfloat *params);
+	void (WINAPI *glTexGeni)(GLenum coord, GLenum pname, GLint param);
+	void (WINAPI *glTexGeniv)(GLenum coord, GLenum pname, const GLint *params);
+	void (WINAPI *glTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
+	void (WINAPI *glTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params);
+	void (WINAPI *glTexParameteri)(GLenum target, GLenum pname, GLint param);
+	void (WINAPI *glTexParameteriv)(GLenum target, GLenum pname, const GLint *params);
+	void (WINAPI *glTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+	void (WINAPI *glTranslated)(GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glTranslatef)(GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glVertex2d)(GLdouble x, GLdouble y);
+	void (WINAPI *glVertex2dv)(const GLdouble *v);
+	void (WINAPI *glVertex2f)(GLfloat x, GLfloat y);
+	void (WINAPI *glVertex2fv)(const GLfloat *v);
+	void (WINAPI *glVertex2i)(GLint x, GLint y);
+	void (WINAPI *glVertex2iv)(const GLint *v);
+	void (WINAPI *glVertex2s)(GLshort x, GLshort y);
+	void (WINAPI *glVertex2sv)(const GLshort *v);
+	void (WINAPI *glVertex3d)(GLdouble x, GLdouble y, GLdouble z);
+	void (WINAPI *glVertex3dv)(const GLdouble *v);
+	void (WINAPI *glVertex3f)(GLfloat x, GLfloat y, GLfloat z);
+	void (WINAPI *glVertex3fv)(const GLfloat *v);
+	void (WINAPI *glVertex3i)(GLint x, GLint y, GLint z);
+	void (WINAPI *glVertex3iv)(const GLint *v);
+	void (WINAPI *glVertex3s)(GLshort x, GLshort y, GLshort z);
+	void (WINAPI *glVertex3sv)(const GLshort *v);
+	void (WINAPI *glVertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+	void (WINAPI *glVertex4dv)(const GLdouble *v);
+	void (WINAPI *glVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+	void (WINAPI *glVertex4fv)(const GLfloat *v);
+	void (WINAPI *glVertex4i)(GLint x, GLint y, GLint z, GLint w);
+	void (WINAPI *glVertex4iv)(const GLint *v);
+	void (WINAPI *glVertex4s)(GLshort x, GLshort y, GLshort z, GLshort w);
+	void (WINAPI *glVertex4sv)(const GLshort *v);
+	void (WINAPI *glVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+	void (WINAPI *glViewport)(GLint x, GLint y, GLsizei width, GLsizei height);
+
+	BOOL  (WINAPI *wglCopyContext)(HGLRC, HGLRC, UINT);
+	HGLRC (WINAPI *wglCreateContext)(HDC);
+	HGLRC (WINAPI *wglCreateLayerContext)(HDC, int);
+	BOOL  (WINAPI *wglDeleteContext)(HGLRC);
+	HGLRC (WINAPI *wglGetCurrentContext)(VOID);
+	HDC   (WINAPI *wglGetCurrentDC)(VOID);
+	PROC  (WINAPI *wglGetProcAddress)(LPCSTR);
+	BOOL  (WINAPI *wglMakeCurrent)(HDC, HGLRC);
+	BOOL  (WINAPI *wglShareLists)(HGLRC, HGLRC);
+
+	int f_0564;
+
+	int glActiveTextureARB;
+	int glClientActiveTextureARB;
+	int glMultiTexCoord4fARB;
+	int glMultiTexCoord2fvARB;
+	int glBlendColor;
+	int f_057C;
+	int f_0580;
+	int f_0584;
+	int f_0588;
+	int glCompressedTexImaged3DARB;
+	int glCompressedTexImaged2DARB;
+	int glCompressedTexImage1DARB;
+	int glCompressedTexSubImage3DARB;
+	int glCompressedTexSubImage2DARB;
+	int glCompressedTexSubImage1DARB;
+	int glCompressedTexImageARB;
+
+	GLboolean (WINAPI *wglSwapIntervalEXT)(GLint interval);
+
+	GLint (WINAPI *wglSetDeviceGammaRamp3DFX)(HDC, GLvoid *);
+	GLint (WINAPI *wglGetDeviceGammaRamp3DFX)(HDC, GLvoid *);
+} gl_api_t;
+
+
+
+
+#endif
Index: /Daodan/MSVC/oni_stdio.h
===================================================================
--- /Daodan/MSVC/oni_stdio.h	(revision 567)
+++ /Daodan/MSVC/oni_stdio.h	(revision 567)
@@ -0,0 +1,11 @@
+#pragma once
+#ifndef ONI_STDIO_H
+#define ONI_STDIO_H
+
+#include <stdio.h>
+/*
+FILE* __cdecl oni_fopen(const char*, const char*);
+int   __cdecl oni_fprintf(FILE*, const char*, ...);
+int   __cdecl oni_fflush(FILE*);
+*/
+#endif
Index: /Daodan/MSVC/startup.txt
===================================================================
--- /Daodan/MSVC/startup.txt	(revision 567)
+++ /Daodan/MSVC/startup.txt	(revision 567)
@@ -0,0 +1,11 @@
+daodan attached!
+finished parsing
+parsing command line...
+finished parsing
+patching engine
+system sleep disabled
+keystroke traps installed
+begin initializing oni
+looking for the game data folder
+Unable to find game data folder at GameDataFolder
+Unable to find game data folder at OniEngine\GameDataFolder
Index: /Daodan/MSVC/test.cpp
===================================================================
--- /Daodan/MSVC/test.cpp	(revision 567)
+++ /Daodan/MSVC/test.cpp	(revision 567)
@@ -0,0 +1,8 @@
+int main() {
+//extern void __cdecl DDrMain(int argc, char* argv[]);
+return 0;
+}
+
+int WinMain(int a, int b, int c, int d) {
+return 0;
+}
Index: /Daodan/MSVC/testclient.c
===================================================================
--- /Daodan/MSVC/testclient.c	(revision 567)
+++ /Daodan/MSVC/testclient.c	(revision 567)
@@ -0,0 +1,27 @@
+#include <stdio.h>
+#include "Flatline.h"
+
+int main()
+{
+	NetPlatform_Initalize();
+	int sock = NetUDPSocket_Create(0);
+	puts("Sending 100 two byte packets . . .");
+	
+	sockaddr_in address = { .sin_family = AF_INET, .sin_port = htons(27777), .sin_addr.S_un.S_addr = inet_addr("192.168.0.100") };
+	
+	char buffer[256] = {0};
+	fgets(buffer, 256, stdin);
+
+
+	int i;
+	for (i = 0; i < 10; i ++)
+	{
+		if (NetUDPSocket_Send(sock, (sockaddr*)&address, buffer, 256))	
+			putchar('*');
+		else
+			putchar('x');
+	}
+	NetUDPSocket_Close(sock);
+	NetPlatform_Shutdown();
+	return 0;
+}
Index: /Daodan/MSVC/testserver.c
===================================================================
--- /Daodan/MSVC/testserver.c	(revision 567)
+++ /Daodan/MSVC/testserver.c	(revision 567)
@@ -0,0 +1,18 @@
+#include "Flatline.h"
+#include <windows.h>
+
+DWORD WINAPI StartServer(void* lol){
+	FLrServer_Run();
+	return 0;
+} 
+
+int main()
+{
+	NetPlatform_Initalize();
+	
+	CreateThread(NULL, 0, StartServer, NULL, 0, 0);
+
+	NetPlatform_Shutdown();
+	return 0;
+}
+// 27777 and neighbouring ports are unassigned
