Caml1999T025   .  \    4 .Stdlib__random+random_seed P)random.ml\U^\Ui@б@г$unitF$unit\Uk\Uo@@@@ @  4 @@@@@@*floatarrayQ  0 @@@A@@@@&_none_@@ A@@@@5extension_constructorP#intA  0 @@@A@@@@	@A$charB&stringO%floatD$boolE  0 @@У%false^@@@У$true_@@@@A@@@@@A  0 @@У"()`@@$@@A@@@@$@A!#exnG  0 @@AA@@@@'@@$%arrayH  0 @ @M@A@A@ @@@.@@+$listI  0 @ @N@AУ"[]a@@:@У"::b@@ @O@@F@@A@Y@@@G@@D&optionJ  0 @ @P@AУ$Nonec@@S@У$Somed@@Y@@A@Y@@@Z@@W&lazy_tN  0 @ @Q@A@A@Y@@@a@@^)nativeintKd%int32Lf%int64Mh:Undefined_recursive_module]G@h@@ @Jr@@ @@@ @V@@Az=ocaml.warn_on_literal_pattern~@@.Assert_failure\@@ @X@@A@0Division_by_zeroY%@@@A@+End_of_fileX,@@@A@)Sys_errorW3@/@@A%$@.Sys_blocked_io[;@@@A,+@)Not_foundVB@@@A32@'FailureUI@E@@A;:@0Invalid_argumentTQ@M@@ACB@.Stack_overflowZY@@@AĠJI@-Out_of_memoryS`@@@AˠQP@-Match_failureRg@fbc@ @c@@Aؠ^]@%bytesCޒ2CamlinternalFormat8CamlinternalFormatBasics0CamlinternalLazy/CamlinternalMod.CamlinternalOO(Std_exit&Stdlib+Stdlib__arg-Stdlib__array3Stdlib__arrayLabels0Stdlib__bigarray,Stdlib__bool.Stdlib__buffer-Stdlib__bytes3Stdlib__bytesLabels0Stdlib__callback,Stdlib__char/Stdlib__complex.Stdlib__digest1Stdlib__ephemeron0Stdlib__filename-Stdlib__float.Stdlib__format+Stdlib__fun*Stdlib__gc.Stdlib__genlex/Stdlib__hashtbl+Stdlib__int-Stdlib__int32-Stdlib__int64,Stdlib__lazy.Stdlib__lexing,Stdlib__list2Stdlib__listLabels+Stdlib__map/Stdlib__marshal2Stdlib__moreLabels1Stdlib__nativeint+Stdlib__obj*Stdlib__oo.Stdlib__option/Stdlib__parsing2Stdlib__pervasives0Stdlib__printexc.Stdlib__printf-Stdlib__queue.Stdlib__result-Stdlib__scanf+Stdlib__seq+Stdlib__set1Stdlib__spacetime-Stdlib__stack1Stdlib__stdLabels.Stdlib__stream.Stdlib__string4Stdlib__stringLabels+Stdlib__sys-Stdlib__uchar,Stdlib__unit,Stdlib__weakm@@@@г3%array\Uw\U|@г^#int\Us\Uv@@	@@ @Ͱ@@@@@ @Ұ@@@@ @հ@@4caml_sys_random_seedAA @@@\UU\U@@@@@ᠰ%State QA^^@@БA  ( !t RB
``@@  0 @@Р"st S@{@@ @@@ @``@@Р#idx TA@@ @!'`(`@@@@A@@@@*`+`@@@@1`@@Ш@г"%array:`;`@г'#intC`D`@@/  4 211222222@2L_B  0 @@@A@@@@ @@@@@@@8@@;@D@@2@//Q`R`@AШ@г3#int[`4@@:5@@=@D@$@9@@A@6@@65@  4 MLLMMMMMM@@@@ࠠ)new_state Ulbmb@@@@p@@ @=C@:x@@ @@C@;@ @<C@9  4 lkkllllll@:{u@@@@%param ഠ"()bb@  8 @@ @S@@@@A@A@A!@@@@@   4 @/)Abb@@@@@@ຠ  ( &@@ @8@@  ( AA@A@@A@"stbb@డ%Array$makebb@@#intA@@ @s@!a @M%arrayH
@@ @r@ @q@ @p.caml_make_vectBA @@@@)array.mliii@@#"@@@ @@E@9@@@E@BE@=E@8ڠ@@E@AE@7@E@6@E@5[@@wbb	@@F@<f@@@b
b@@o@@L@@p@a#idxbb@@bb@@@@E@@@@@b}@@@@A~A@@@ @D@@@@@ࠠ&assign 'c(c#@@@@@@ @iC@F@@@ @uC@K9@@ @wC@L@ @MC@G@ @HC@E  4 /..//////@@@@@@@#st1 Oc$Pc'@@@$  4 ?>>??????@1+VcWeSi@@@@@@@#st2 bc(cc+@@@.  4 RQQRRRRRR@ :@@@@@@డ%Array$blitvd.2wd.<@@!a @@@ @@@@ @@ @@ @@@@ @@@@ @$unitF@@ @@ @@ @@ @@ @@ @@ |jj |j@@10@@@.@@D@fD@[@@D@]@.@@D@\@-@@D@Z@,@@D@Y@+@@D@X@@C@pD@W@D@V@D@U@D@T@D@S@D@R  4 @ht@k@@@@@ఐ}#st2d.=d.@@@@C@dC@cC@N@"std.Ad.C@I@@CD@e @@@d.Dd.E@@CE@g+@@ఐ#st1d.Fd.I@@@C@hC@I=@"std.Jd.L@o@@YD@jF@@@d.Md.N@@^E@lQ@@w$d.O%d.Q@@dE@m\@@@@b]@ఐ砐#st12eSW3eSZ@Ͱ@@i@#idx9eS[:eS^@ఐ栐#st2DeSbEeSe@x@@e{@#idxKeSf@	@@+@@D@s@@@@@@@@AA@  4 @??@@@@@@@@@@@AA@@'"@ @{  4 DCCDDDDDD@@@@@@@@ࠠ)full_init dhlrehl{@@@@@@ @
pC@}@#intA@@ @
+C@
<@@ @
>C@G@@ @
C@@ @C@~@ @C@|  4 uttuuuuuu@Gga@b@@@@@!s hl|hl}@@@-  4 @:4hlnz		@@@@@@@$seed hl~hl@@@7  4 @ C@@@@@@@ࠠ'combine ii@@@@&stringO@@ @	D@@Q@@ @D@&Stdlib&Digest!t@@ @D@@ @D@@ @D@  4 @2>k@5@@@@@$accu ii@@@-  4 @:4Wii@@@@@@@!x ii@@@4  4 @ C@@@@@@డ@&Digest&stringii@@&stringO@@ @G@@ @@ @@*digest.mlij((j(@@@@@@@@D@ T@D@  4 @(4^@+@@@@@డi!^5i6i@@y@@ @@~@@ @@@ @@ @@ @@*stdlib.mlicccc+@@@@@@@@E@2E@@E@@E@/@@ఐz$accu_i`i@`@@D@=@@డ#Int)to_stringrisi@@@@ @&stringO@@ @@ @@'int.mli  5@@@@@9F@@F@c@@ఐ!xii@m@@D@q@@&@@r@@i@@Gt@@@@u@@AA@  4 @@@@@AA@@@ @  4 @@@@@@@ࠠ'extract jj@@@@&stringO@@ @	D@#intA@@ @D@@ @D@  4 @
@@@@@@!d jj@@@   4 @-'=jl'G@@@@@@డ!+l'-l'.@@*@@ @ @0@@ @ 4@@ @ @ @ @ @ '%addintBA @@@@R4040R404^@@@@@@@D@@@@D@K@D@@D@  4 @6BX@9@@@@@డJ57kk@4@@@4@@E@@3@@E@%E@@E@@E@@@డdOQ/k0k@N@@@N@@F@@M@@F@$F@@F@@F@7@@డ$Char$codeMkNk@@$charB@@ @#intA@@ @@ @)%identityAA @@@(char.mliRUURU~@@@@@@@G@?;G@>@G@=h@@డ&String#get~kkA@@@ @O@#intA@@ @N$charB@@ @M@ @L@ @K0%string_safe_getBA @@@@*string.mlit

t
 @@! A@@D@	D@	kD@	S@ @@H@	RCH@	Q@H@	P@H@	O@@ఐ점!d9k@;@@D@@@@kk@@I@	V@@IH@@@@{I@@[@@డ#lslkk@@@@ @ @#@@ @ '@@ @ @ @ @ @ '%lslintBA@@@@<<<<@@@@@@@G@	^@@@G@	]G@	\@G@	[@G@	Z@@డ=$Char$codekk@@@@@@H@	d#H@	c@H@	b@@డV"k#kAA@@@@@I@	jI@	i@I@	h@I@	g'@@ఐm!d8k @0@@3@@AAkBk@@J@	n>@@$#@@?@@<$@@4@@@HNk	Ok
@@[H@	qK@@SkTk@@[N@@	@@O@@డakbk"@@@@@@F@	y@@@F@	xQF@	w@F@	v@F@	ui@@డ$Char$codekk@2@@@2@@G@	#G@	~@G@	}@@డkkAA@@@@@H@	H@	@H@	@H@	@@ఐ᠐!dk@@@@@Bkk@@I@	@@$#@@@@<$@@4@@Pk#k%@@[G@	@@kk&@@[@@}@@@@డ
l'@l'C@@@@@@E@	@ @@E@	E@	@E@	@E@	@@డ%$Char$codel'0l'9@@@@@@F@	#F@	@F@	@@డ>
l':l'?AA@@[@@@G@	G@	@G@	@G@	@@ఐU!d l';@@@}@@C)l'=*l'>@@H@	&@@$#@@'@@<$@@4(@@X6l'D7l'F@@[F@	3@@;l'/e@@Z5@@f@@6@@AogA@@@ @	  4 -,,------@n@@@@l@@ࠠ$seed KnOWLnO[@@@C@	D@	  4 >==>>>>>>@@@@@@డ!=_nOs`nOt@@!a @ S@$boolE@@ @ R@ @ Q@ @ P&%equalBA}@@@@. vpp/ vp@@@@@@@D@	D@	@@@D@	D@	@D@	@D@	8@@డ%Array&lengthnOanOm@@Ӡ!a @^@@ @e)@@ @d@ @c-%array_lengthAAؠ@@@UU@@@@@gC@	C@	9@E@	e@@ఐ$seednOnnOr@@@C@t@@.@@Iu@@@nOunOv@@TE@	@@:@@O@@nOnO@@aC@	@@nO|nO@@*@ఐC$seednOnO@@@7@nO^@@7@@nOS@@@ࠠ!l oo@@@@@ @	D@	  4 @@@@@@డA%Array&length	o	o@w@@@@D@	@@ఐӠ$seed	o	o@@@l!@@@@%"@@	#o@@  !i 	.p	/p@@@@@	5p	6p@@Q@@D@	D@	  4 	)	(	(	)	)	)	)	)	)@=JD@E@@@@v	Cp	Dp@@_@@D@	D@	@@డ%Array#set	Vq	WqA@!a @S@@ @o@@@ @n@@@ @m@ @l@ @k@ @j/%array_safe_setCA@@@@@aooao@@$#A@@!k@@D@	E@	@@E@	@D@	@O@@D@	E@	@E@	@E@	@E@	  4 	}	|	|	}	}	}	}	}	}@UjD@	@	p	r@@@@@@ఐ!sN	q@P@@AC@
SC@	C@	C@@"st	q	q@^@@:E@	&@@ఐ!i	q	q@0@@03@@ఐ!i	qw@<x@@H?@@zy@@E@@;@@@C@	D@	  4 									@@@@@ࠠ$accu 	s	s@@@#ref		@@ @	D@	@@ @	D@	  4 									@@@@డ.#ref	s	s@@!a @@@ @@ @,%makemutableAA@@@  L  L  L  x@@@@@',@D@	!@@!x@
s
s@@/+@@"@@7,@@
s@@  !i 
(t		

)t		@@@@@
/t		
0t		@@	K@@D@	D@	  4 
#
"
"
#
#
#
#
#
#@\V@W@@@@డvac
At		
Bt		@`@@@`@@D@	@_@@D@		h@@D@
D@	@D@	@D@	@@v
Zt		
[t		@@E@	(@@డ#max
jt		
kt		@@!a @ q@@ @ p@ @ o@. / @@@@@2E@	@@E@	@E@	I@@w
t		
t		@@E@	S@@ఐ!l
t		
t		 @W@@F@
 b@@/@@c@@@@@Ld@@@ࠠ!j 
u	$	.
u	$	/@@@@@ @

F@
  4 








@x@@D@
D@
D@
@
t		
y		@@@@@డ#mod
u	$	4
u	$	7@@@@ @ @@@ @ )@@ @ @ @ @ @ Ԑ'%modintBA@@@@k77k77@@@@@.@@@F@
<@F@
	@F@
8@@ఐɠ!i
u	$	2
u	$	3@B@@BE@@w
u	$	8
u	$	:@@G@
P@@@@UQ@@
u	$	*@@@ࠠ!k 
v	>	Hv	>	I@@@f@@ @
F@
  4 








@ftn@o@@@@డ	RZ\v	>	Nv	>	Q@Y@@@n@V@@F@
@F@
@F@
@@ఐ!i1v	>	L2v	>	M@@@"@@ఐF!l>v	>	R?v	>	S@@@G@
1@@@@52@@Ev	>	D@@డ	":=Qw	W	bRw	W	d@@q!a @@@ @@$unitF@@ @@ @@ @*%setfield0BAs@@@@$    %    @@@@@@@F@
*F@
!@@F@
"@@@@E@
FF@
 @F@
@F@
  4 nmmnnnnnn@p}w@x@@@@@ఐ$accuw	W	]w	W	a@X@@"F@
%@@ఐ砐'combinew	W	ew	W	l@ݰ@@@@@G@
,@-3@G@
)@G@
((@@డ	!!w	W	mw	W	n@@ՠ!a @@@ @@ @'%field0AAϠ@@@        @@@@@-H@
3@@H@
4@H@
2Q@@ఐ$accu&w	W	r@(@@H@
6_@@,@@`@@డ
"%Array#getw	W	sw	W	{A@!a @X@@ @i@	A@@ @h@ @g@ @f/%array_safe_getBA	2@@@@	1X	2X>@@A@@@@@H@
=@H@
;@H@
:@@ఐҠ$seed-w	W	w@/@@@@ఐ!k)w	W	y*w	W	z@@@I@
A@@?>@@@@?@@@@@@@@డ
o校;x	}	<x	}	AA@@
/@@E@
UE@
L@@E@
N@@@E@
M@	@@D@
E@
K@E@
J@E@
I@E@
H@@ఐР!s&ax	}	@(@@@"stgx	}	hx	}	@	ɰ/@@,E@
T@@ఐҠ!jvx	}	wx	}	@d@@0F@
V@@డ
$landx	}	x	}	@@@@ @ @@@ @ @@ @ @ @ @ @ ސ'%andintBA@@@@X::Y::@@@@@@@F@
\@@@F@
[jF@
Z@F@
Y@F@
X.@@డ
$lxorx	}	x	}	@@@@ @ @
@@ @ @@ @ @ @ @ @ '%xorintBA۠@@@@;;;<@@@@@@@G@
d@@@G@
c>G@
b@G@
a@G@
`b@@డ$x	}	x	}	A A@@!H@
j@@H@
l@@@H@
k@H@
i@H@
h@@ఐ{!sx	}	@`@@b@"stx	}	x	}	@
t%@@"H@
q@@ఐ}!j!x	}	"x	}	@@@)I@
s@@76@@/@@ఐ'extract3x	}	4x	}	@@@@@@H@
x_H@
w@H@
v@@డ}Hx	}	Ix	}	@@@@hI@
|@@I@
}@I@
{@@ఐ}$accu]x	}	@&@@I@
@@@@@@0@@(@@dx	}	ex	}	@@@@?mx	}	2@@G@
@@5@@@@76@@"@sx	}	@@$@0@@%c@w@@&@@
:@@C@
D@
  4 hgghhhhhh@E@@@ఐ!sz		z		@ڰ@@	@#idxz		z		@
@z		@@q@@D@
@@@	@@@	@|@@	@@@	@x@@	@@@	K@	 @@	@	@@	@@A	A@	-  4 @@@@@A		A@@	6	1@ @
  4 @	@@@@		@			@	@ࠠ$make }		}		@@@@	C	@@@ @
@@ @
C@
G@@ @
C@
@ @
C@
  4 @	>	g	a@	b@@@@@$seed }		}		@@@  4 @+%@}		 @
6
@@@@@@@@ࠠ&result~	
~	
@@@o@@ @
D@
  4 @%9@@@@@ఐ)new_state~	
~	
@
@@@@@D@
@D@
@@ภ}~	
	~	
@{@@@E@
 @@@@$!@@~		@@ఐ	)full_init



(@V@@@@@D@
@l
@@C@
D@
@D@
@D@
  4 @>KE@F@@@@@ఐR&result7

)8

/@@@E@
@@ఐx$seedF

0G

4@Y@@C@
 @@0@@&!@ఐm&resultR @
6
:y@'z@@*@:{@@+@G|@@i@@A}A@@@ @
  4 FEEFFFFFF@@@@@@@@ࠠ.make_self_initf C
C
Ig C
C
W@@@@@@ @
C@
@@ @
C@
@ @
C@
  4 dccdddddd@@@@@@@ഠ C
C
X C
C
Z@@@@  4 srrssssss@&  C
C
E C
C
r@@@@@@ఐ堐$make C
C
] C
C
a@@@@
$
!@@D@
@@D@
-@D@
@@ఐ+random_seed C
C
c C
C
n@ư@@@@@E@
D@
@E@
1@@ภ3 C
C
o C
C
q@1@@@F@
=@@ C
C
b:@@?@@1;@@R@@@AD<A@@ZU@ @
C@@@@@?@S@ࠠ$copy E
t
z E
t
~@@@@c@@ @
C@
h@@ @
C@
@ @
C@
  4 @p@@@@@@!s E
t
 E
t
@@@  4 @'!a E
t
v H

@@@@@@@ࠠ&result F

 F

@@@@@ @
D@
  4 @%5@@@@@ఐ)new_state F

 F

@ذ@@@@@D@
@D@
@@ภ) F

* F

@@@@E@
 @@@@$!@@0 F

@@ఐ&assign< G

= G

@
@@@@@D@
@h
@@C@
D@
@D@
@D@
  4 877888888@>KE@F@@@@@ఐR&resultX G

Y G

@@@E@
@@ఐx!sg G

h G

@Y@@C@
 @@0@@&!@ఐm&results H

y@'z@@*@:{@@+@G|@@i@@A}A@@@ @
  4 gffgggggg@@@@@@@@ࠠ$bits L L@@@@@@ @C@
@@ @C@
@ @
C@
  4 @@@@@@@!s L L@@@  4 @'! L	 S*@@@@@@ఐ!s M M@.@@@@=C@C@FC@2C@C@C@
C@C@
  4 @%1@@@#idx M M@/డ M/ M2@@@@-@@E@
@@@E@
@@E@
E@
@E@
@E@
"@@డ.

 M* M+@
@@@
@@F@@
@@F@'F@ @F@
@F@
<@@ఐs!s M$ M%@[@@\C@C@
N@#idx M& M)@{@@%G@W@@A* M,+ M-@@+G@b@@/ M#0 M.@@+e@@w8 M39 M5@@VF@
p@@@@Rq@@@@@C@D@w@@ࠠ&curval	M N7?N N7E@@@<@@ @D@  4 BAABBBBBB@@@@డrqut` N7Ha N7TApA@@D@@@D@@n@@D@@D@@D@@@ఐ۠!s| N7I@°@@)@"st N7J N7L@%@@"D@2@@ఐ!s N7N N7O@ڰ@@A@#idx N7P N7S@
@@2E@J@@@?@@8K@@ N7;A@@@ࠠ&newval
 OX` OXf@@@
@@ @$D@   4 @mg@h@@@@డ
ߠ
 P P@
ް@@@
@@D@&@
@@D@%@D@#@D@"@@డꠡ OXi OXAA@@hE@,@@E@.@@@E@-@E@+@E@*5@@ఐT!s OXj@;@@2C@"st OXk OXm@]%@@"E@3L@@డ@HJ OX| OX@G@@@\@@F@:@G@@F@94F@8@F@7@F@6f@@డZEG% OXv& OXw@D@@@D@@G@B@C@@G@A$G@@@G@?@G@>@@ఐ!s@ OXpA OXq@@@|@#idxG OXrH OXu@
@@"H@G@@XS OXxT OXz@@(H@H@@X OXoY OX{@@(@@wa OXb OX@@PG@J@@@@N@@@@@@డr Ps P@@@@@@E@R@@@E@QE@P@E@O@E@N@@ఐ>&curval P P@װ@@F@U@@డ P P@@@@@@F@[@@@F@Z.F@Y@F@X@F@W@@డ#lsr P P@@@@ @ @@@ @ 	@@ @ @ @ @ @ '%lsrintBA֠@@@@====@@@@@@@G@c@@@G@b>G@a@G@`@G@_*@@ఐ&curval P P@4@@H@f9@@Y P P@@H@gD@@ P P@@G@@_ P P@@aG@iR@@ P P@@aU@@
 P P@@X@@4@@\Y@@ OX\@@@ࠠ(newval30 Q Q@@@@@ @qD@m  4 @n{u@v@@@@డa, Q- Q@@@@@@D@s@@@D@r@D@p@D@o@@ఐ&newvalC QD Q@"@@E@v'@@?O QP Q@@E@w2@@@@63@@U Q@@డ				b R c R A	A@@	V@@D@D@@@D@@	@@D@@;@@C@D@~@D@}@D@|@D@{  4 ihhiiiiii@\ic@d@@@@@ఐꠐ!s) R @Ѱ+@@@"st R  R @2@@/D@@@ఐ!s R 
 R @@@)@#idx R  R @
@@<E@2@@ఐ(newval30 R V@;W@@PE@@@@[Z@@FA@ఐ(newval30 S"@G@@1J@e@@2K@s@@3@@@4@)@@5u@@@6v@@A'A@@>9@ @  4 @&@@@@$@$#@8Aࠠ&intaux V-7 V-=@@@@i@@ @C@@/@@ @C@H@@ @C@@ @@ @C@  4 @]sm@n@@@@@!s V-> V-?@@@"  4 @/)@*@@@@@@!n V-@ V-A@@@+  4   @5@@@@@@@ࠠ!r! WDL" WDM@@@@@ @D@  4 @"C@@@@@ఐ$bits5 WDP6 WDT@A@@@V@D@@@ఐG!sD WDUE WDV@0@@eC@@@@@# @@J WDH@@@ࠠ!vU XZbV XZc@@@@@ @D@  4 JIIJJJJJJ@5B<@=@@@@డh XZhi XZk@@@@@@D@@C@@D@@D@@@ఐ\!r} XZf~ XZg@ @@E@%@@ఐ!n XZl XZm@c@@C@4@@@@85@@ XZ^@@డ!> Yq~ Yq@@!a @ _@@@@ @ ^@ @ ]@ @ \,%greaterthanBA@@@@l m @@@@@@@C@C@@>@@C@C@@C@@C@  4 @jwq@r@@@@@డ	!- Yqz Yq{@@@@ @ @@@ @ (@@ @ @ @ @ @ Ő'%subintBA@@@@W44W44@@@@@@@D@@@@D@>@D@@D@3@@ఐ⠐!r Yqx Yqy@@@E@B@@ఐ!v Yq| Yq}@L@@!E@Q@@@@]R@@డXCE# Yq$ Yq@B@@@B@@D@@A@@D@wD@@D@@D@l@@డrik= Yq> Yq@h@@@h@@E@@\!E@@E@@E@@@?P YqQ Yq@@F@@@ఐQ!n^ Yq_ Yq@5@@@@@@@@Ai Yqj Yq@@@E@@@@@>@@l@@@ఐ&intauxx Yqy Yq@t@@@@ఐ!s Yq Yq@q@@@@ఐ!n Yq Yq@i@@@@@@@ఐI!v Yq Yq@ذ@@@ Yqu@@@@@G@[@@|@@AA@  4 @@@@@A	A@@@ @  4 @@@@@ V-/@@@@ࠠ#int [ [@@@@G@@ @C@@@@ @C@
'@@ @C@@ @C@@ @C@@@!s [ [@@@   4 @-'K [ ^	 @@@@@@@%bound [ [@@@*  4 @ 6@@@@@@డ5"|| \ \@@@@ @ @@@ @ @@ @ @ @ @ @ '%sequorBA!@@@@ $$ $$@@@@@@@C@@@@C@@@C@C@@C@@C@  4 @:Ff@=@@@@@డo: \; \@@@@xC@C@@'D@@D@@D@@@ఐd%boundP \Q \@$@@C@)@@?\ \] \@@2@@@@3@@డ"<=k \l \@@!a @ c@@@ @ b@ @ a@ @ `*%lessequalBA@@@@8 FF9 Fw@@@@@FD@ @gD@@D@@D@_@@ఐ%bound \ \@i@@Wl@@@ \ \@@bE@w@@@@x@@U@@~y@డ+invalid_arg ] ]@@@@ @p!a @o@ @n@tfuf<@@@@@@@C@
C@	@C@@@*Random.int@ ] ]@@D@@@$@@@ఐ&intaux ^	 ^	@ذ@@@@@C@@C@@@ఐ!s ^	 ^	@@@0C@@@ఐ%bound ^	@ΰ@@@@"@@.@ \@@0@@AA@:  4 @@@@@A&A@@C>@ @  4 @%@@@@#@#"@Aࠠ(int32aux a#- a#5@@@@@@ @`C@@%int32L@@ @C@@@ @C@@ @@ @ C@  4 @+{u@v@@@@@!s; a#6< a#7@@@%  4 +**++++++@2,@-@@@@@@!nK a#8L a#9@@@.  4 ;::;;;;;;@8@@@@@@@ࠠ"b1[ b<D\ b<F@@@>@@ @=D@%  4 QPPQQQQQQ@#G@@@@@డ%Int32&of_ints b<It b<U@@#intA@@ @@@ @@ @-%int32_of_intAA @@@)int32.mli }

 }
:@@@@@@@D@>0@D@<,@@ఐ$bits b<W b<[@@@@C@CE@B@E@A@@@ఐw!s b<\ b<]@`@@C@!O@@ b<V b<^@@R@@D@@WS@@ b<@@@@ࠠ"b2? cbj cbl@@@@@ @KD@G  4 @iwq@r@@@@డ%Int32*shift_left cbo cb@@@@ @@n@@ @"@@ @@ @@ @*%int32_lslBAl@@@@l mm mE@@@@@@@D@M@@@D@L8@D@J@D@I4@@డA%Int32&of_int cb cb@@@@@@E@S!E@R@E@QM@@డY

$ cb% cb@
@@@
@@F@Z@
@@F@YF@X@F@W@F@Vg@@ఐ$bits? cb@ cb@K@@@)G@_@G@^z@@ఐ!sP cbQ cb@@@@@@@@@A[ cb\ cb@@1G@c@@` cba cb@@1@@c cbd cb@@N@@^l cbm cb@@sE@f@@@@@@r cbf@@@ࠠ!r@} d~ d@@@`@@ @lD@h  4 srrssssss@@@@@@డ%Int32%logor d d@@x@@ @@~@@ @"@@ @@ @@ @)%int32_orBA&@@@@& d' dQ@@@@@@@D@n@@@D@m8@D@k@D@j4@@ఐi"b1 d d@@@E@qC@@ఐ"b2 d d@M@@!E@rR@@D@@WS@@ d@@@ࠠ!vA e e@@@@@ @xD@t  4 @hvp@q@@@@డ.%Int32#rem e e@@@@ @@@@ @@@ @@ @@ @А*%int32_modBA@@@@ E
P
P E
P
@@@@@@@D@z@C@y5@D@w@D@v2@@ఐ!r) e* e@<@@E@}A@@ఐ!n8 e9 e@԰@@C@#P@@B@@TQ@@? e@@డJ fK f@@@@/@@C@C@@@@C@C@@C@@C@  4 IHHIIIIII@p}w@x@@@@@డ%Int32#subn fo f@@Q@@ @@W@@ @+@@ @@ @@ @*%int32_subBA@@@@ttI@@@@@@@D@@m@@D@A@D@@D@6@@ఐ!r f f@@@E@E@@ఐƠ!v f f@O@@!E@T@@C@@`U@@డ%Int32#add f f@@@@ @@@@ @@@ @@ @@ @*%int32_addBAR@@@@RqSq@@@@@@@D@@@@D@D@@D@@D@@@డ)%Int32#sub f f@@@@@@E@@%E@@E@@E@@@డB%Int32'max_int f f@@@ @@ Z!! Z!4@@
@@!F@@@ఐࠐ!n' f( f@ð@@@@+ f, f@@,@@_i    5 f 6 f"@@VE@@@z@@T@@@@@ఐ2(int32auxD g#,E g#4@@@0@@ఐ!sQ g#5R g#6@@@9@@ఐ!n^ g#7_ g#8@@@?@@@@:@ఐ!vj h9Bk h9C@@@C@n f@@G@1@@H@@@I@ @@J@@@I@@A)	A@V  4 a``aaaaaa@&@@@@A;A@@]Z@ @  4 eddeeeeee@:@@@@z a#%@@@N@ࠠ%int32B jEK jEP@@@@@@ @C@@w@@ @C@t@@ @C@@ @C@@ @C@c@@!sC jEQ jER@@@   4 @q-' jEG m@@@@@@@%boundD jES jEX@@@*  4 @ 6@@@@@@డ"<= k[h k[j@d@@@?C@C@@V@@C@C@@C@@C@  4 @*J@!@@@@@ఐ1%bound k[b k[g@@@C@@@_i      k[k k[m@@$@@@@"@డ8+invalid_arg lnw ln@V@@@V@@C@pC@@C@/@@,Random.int32@ ln ln@@D@;@@@@<@ఐ(int32aux$ m% m@@@@@@C@@C@M@@ఐ!s5 m6 m@t@@C@[@@ఐ%boundC m@d@@og@@"@@h@G k[_@@j@@AA@  4 655666666@@@@@AA@@@ @  4 :99::::::@@@@@@@Aࠠ(int64auxEZ p[ p@@@@@@ @MC@@%int64M@@ @C@@@ @C@@ @@ @C@  4 cbbcccccc@9@@@@@@!sF p p@@@%  4 srrssssss@2,@-@@@@@@!nG p p@@@.  4 @8@@@@@@@ࠠ"b1H q q@@@>@@ @D@  4 @#G@@@@@డ%Int64&of_int q q@@#intA@@ @@@ @@ @А-%int64_of_intAA @@@)int64.mli | |8@@@@@@@D@0@D@,@@ఐ]$bits q q@@@@C@.C@E@@E@B@@ఐy!s q q@b@@C@Q@@ q q@@T@@F@@YU@@ q@@@ࠠ"b2t r r@@@@@ @!D@  4 @kys@t@@@@డW%Int64*shift_left% r& r
@@@@ @@p@@ @"@@ @@ @@ @*%int64_lslBAn@@@@n l		o l	C@@@@@@@D@#@@@D@"8@D@ @D@4@@డ%Int64&of_intY rZ r@@@@@@E@)!E@(@E@'M@@ఐ蠐$bitso rp r@{@@@F@-@F@,`@@ఐ!s r r @@@m@@ r r!@@p@@ r r"@@(s@@^ r# r%@@ME@2~@@p@@@@ r@@@ࠠ"b3u s)1 s)3@@@@@ @8D@4  4 @@@@@@డ%Int64*shift_left s)6 s)F@@@@@@D@:@@@D@9@D@7@D@6@@డ%Int64&of_int s)H s)T@@@@@@E@@!E@?@E@>5@@డce s)] s)a@b@@@b@@F@G@a@@F@FF@E@F@D@F@CO@@ఐ}$bits s)V s)Z@	@@@G@L@G@Kb@@ఐ!s s)[ s)\@@@-o@@@@p@@G  s)b! s)c@@1G@P{@@% s)U& s)d@@1~@@( s)G) s)e@@N@@|1 s)f2 s)h@@sE@S@@~@@@@7 s)-@@@ࠠ!rvB tltC tlu@@@@@ @YD@U  4 877888888@@@@@@డ%Int64%logorZ tlx[ tl@@@@ @@@@ @"@@ @@ @@ @)%int64_orBA@@@@ c cO@@@@@@@D@[@@@D@Z8@D@X@D@W4@@ఐ栐"b1 tl tl@s@@E@^C@@డ%Int64%logor tl tl@C@@@C@@E@d@B@@E@c0E@b@E@a@E@`a@@ఐ"b2 tl tl@@@F@gp@@ఐ$"b3 tl tl@z@@#F@h@@ tl tl@@#@@t@@@@ tlp@@@ࠠ!vw u u@@@m@@ @oD@k  4 @@@@@@డ#%Int64#rem u u@@@@ @@@@ @@@ @@ @@ @*%int64_modBA:@@@@: E
O
O; E
O
@@@@@@@D@q@C@p5@D@n@D@m2@@ఐܠ!r u u@<@@E@tA@@ఐ!n- u. u@@@C@P@@B@@TQ@@4 u@@డt		? v@ v@	@@@@@C@C@z@@@C@C@y@C@x@C@w  4 >==>>>>>>@p}w@x@@@@@డ%Int64#subc vd v@@@@ @@@@ @+@@ @@ @@ @*%int64_subBA@@@@ttH@@@@@@@D@@@@D@A@D@@D@~6@@ఐO!r v v@@@E@E@@ఐƠ!v v v@O@@!E@T@@C@@`U@@డ%Int64#add v v@@P@@ @@V@@ @Z@@ @@ @@ @*%int64_addBA@@@@q q @@@@@@@D@@@@D@D@@D@@D@@@డ%Int64#sub v v@@@@@@E@@%E@@E@@E@@@డ7%Int64'max_int v v@@@ @@> Z  ? Z 3@@
@@!F@@@ఐ!n v v@p@@@@  v! v@@,@@_j        * v+ v@@VE@@@z@@T@@@@@ఐߠ(int64aux9 w: w@@@@@ఐǠ!sF wG w@@@@@ఐĠ!nS wT w@@@@@@@@ఐ!v_ x` x@@@@c v@@@1@@@@@@0@@@@@R@g	@@@@A
A@  4 WVVWWWWWW@@@@@AA@@@ @  4 [ZZ[[[[[[@@@@@p p@@@@ࠠ%int64x} z#~ z(@@@@@@ @C@@%@@ @C@"@@ @C@@ @C@@ @C@@@!sy z) z*@@@   4 @-' z }j@@@@@@@%boundz z+ z0@@@*  4 @ 6@@@@@@డ"<= {3@ {3B@	Z@@@?C@C@@L@@C@C@@C@@C@  4 @*J@!@@@@@ఐ1%bound {3: {3?@@@C@@@_j          {3C {3E@@$@@@@"@డ.+invalid_arg |FO |FZ@	L@@@	L@@C@pC@@C@/@@,Random.int64@ |F[ |Fi@@D@;@@@@<@ఐ(int64aux }js }j{@@@@@@C@@C@M@@ఐ!s+ }j|, }j}@t@@C@[@@ఐ%bound9 }j~@d@@og@@"@@h@= {37@@j@@AA@  4 ,++,,,,,,@@@@@AA@@@ @  4 0//000000@@@@@@@@ࠠ)nativeint{P Q @@@@@@ @$C@@)nativeintK@@ @*C@)nativeintK@@ @C@@ @C@@ @C@  4 ]\\]]]]]]@@@@@@డ!} ~ @@@@#intA@@C@C@@
	@@C@C@@C@@C@  4 ~}}~~~~~~@!@@@@డ)Nativeint$size  @@@ @@-nativeint.mli a a@@
@@&@@`  @@1D@$@@@@*%@@!s  @@@l2@@@%bound  @@@p  4 @a|@@@@@@డ)Nativeint(of_int32  @@%int32L@@ @@@ @@ @ɐ3%nativeint_of_int32AA @@@M ssN s@@@@@@@C@ @C@  4 @,8@/@@@@@ఐ%int32 
   @@@@C@@	@@D@D@@D@@D@@@ఐe!s !  " @Q@@C@+@@డg)Nativeint(to_int32 5  6 @@@@ @Z@@ @@ @̐3%nativeint_to_int32AAU@@@  @@@@@@C@=E@@E@T@@ఐ%bound Y  Z  @^@@C@c@@ _  ` @@f@@ b  c @@Oi@@@@j@@AA@  4  S R R S S S S S S@@@@@A h @@@\@ @  4  X W W X X X X X X@@@@@!s w  x @@@k@@@%bound    @@@;  4  t s s t t t t t t@{@@@@@@డ%Int64,to_nativeint    -@@1@@ @=@@ @@ @3%int64_to_nativeintAAڠ@@@ mm m@@@@@@@C@HC@@C@  4          @,8i@/@@@@@ఐD%int64  /  4@Q@@@m@^@@D@# D@"@D@!@D@ @@ఐd!s  5  6@P@@(@@డ%Int64,of_nativeint  8  J@@@@ @@@ @@ @3%int64_of_nativeintAA,@@@+ , 	@@@@@9E@)@E@(O@@ఐ%bound! K! P@Y@@\@@! 7! Q@@_@@! .! R@@Ib@@@@c@@AA@  4 !!!!!!!!!@@@@@A! @@C@2@! 
@@@@! @@@@ࠠ(rawfloat!+ !, @@@@@@ @QC@4%floatD@@ @XC@5@ @6C@3  4 !,!+!+!,!,!,!,!,!,@@@@@@@!s!L !M @@@  4 !<!;!;!<!<!<!<!<!<@*$!S !T A@@@@@@@ࠠ%scale!_ !` @@@ @@ @<D@9  4 !U!T!T!U!U!U!U!U!U@&9@@@@@,1073741824.0!p !q @@
@@!s @ࠠ"r1!| !} @@@H@@ @?D@:@డ /%float&Stdlib! ! @@@@ @y@@ @x@ @w+%floatofintAA@@@Z[ZZ[[ZZ@@@@@@@D@@)@D@>B@@ఐ/$bits! ! @°@@@C@EE@D@E@CV@@ఐ!s! ! @`@@C@7e@@! ! @@h@@@@@Pi@@! @ࠠ"r2! ! @@@_@@ @KD@;{@డ %float&Stdlib! ! @^@@@^@@D@L@D@J@@ఐ|$bits" " @@@@E@P@E@O@@ఐ̠!s" " @@@\@@" " @@@@,@@;@@" @@డ Z"/."& 9"' ;@@@@ @@@@ @@@ @@ @@ @)%divfloatBAE@@@@F<F<F<Fs@@@@@@@C@Z@@@C@Y@C@W@C@V  4 "8"7"7"8"8"8"8"8"8@@@@@zt@u@@@@@డ "+."^ 2"_ 4@@*@@ @	@0@@ @4@@ @@ @@ @)%addfloatBA~@@@@/DDDD0DDD{@@@@@@@D@b@@@D@aCD@`@D@_@D@^;@@డ "/." )" +@l@@@l@@E@j@k@@E@i%E@h@E@g@E@fV@@ఐ/"r1" &" (@]@@F@me@@ఐ[%scale" ," 1@m@@#F@nt@@@@!u@@ఐ"r2" 5" 7@{@@NE@p@@" %" 8@@N@@ఐ}%scale" <@@@D@r@@@@@o@@z@@AA@@@ @u  4 """""""""@@@@@@@@ࠠ%float" DJ" DO@@@@ @@ @C@w@@@ @C@|@@ @C@}@ @~C@x@ @yC@v  4 """""""""@@@@@@@!s# DP# DQ@@@%  4 ##
#
######@@@@@@%bound#) DR#* DW@@@*  4 #########@6@@@@@@డ!l"*.#8 De#9 Dg@@@@ @@?@@ @<@@ @@ @@ @)%mulfloatBAV@@@@EEEE@@@@@@@C@@UO@C@@C@  4 #F#E#E#F#F#F#F#F#F@.:Z@1@@@@@ఐ=(rawfloat#h DZ#i Db@Z@@@rD@@D@@@ఐb!s#y Dc#z Dd@M@@C@z$@@@@%@@ఐc%bound# Dh# Dm@/@@C@3@@%@@4@@AeA@  4 #{#z#z#{#{#{#{#{#{@b@@@@AuA@@@ @@@# DF@@@@ࠠ$bool# ou# oy@@@@!.@@ @C@D@@ @C@@ @C@  4 #########@@@@@@@!s# oz# o{@@@  4 #########@'!!,# oq# o@@@@@@డ"qs# o# o@p@@@@@@C@C@@-@C@@C@  4 #########@'7@@@@@@డ"ce# o# o@b@@@b@@D@@a@@D@ @D@@D@@@ఐ{$bits$ o$ o@@@@^E@@E@.@@ఐY!s$ o$ o@8@@oC@<@@@@=@@A$ o$  o@@0E@H@@"@@NI@@@$+ o$, o@@YD@T@@$0 o~k@@V@@AtlA@@@ @  4 $!$ $ $!$!$!$!$!$!@s@@@@q@qp@@"2",A@! @!@w@@Z@s@P@qB@@>@
	@		@@@/F@j@@@@@  4 $H$G$G$H$H$H$H$H$H@@@$^^$_ @+  4 $N$M$M$N$N$N$N$N$N@"@@@@$c^@@@ࠠ'default$p "&$q "-@@@""r@@ @C@  4 $g$f$f$g$g$g$g$g$g@"5"@@@@@ຠ  ( "q@@ @"s"r@@ @@@ @@@  ( "m"l@@ @AA@A"k@@A"v@%State"st$ 24$ 2<@:R+$ BH$ BR@@"@@D@D@	.@F4$ BT$ B^@@D@
7@а$ B`$ Bj@@D@@@Jΰ$ Bl$ Bv@@D@I@İ$ Bx$ B@@'D@R@;lG$ B$ B@@0D@[@gְ$ $ @@9D@d@ǰ$ $ @@BD@m@2w$ $ @@KD@v@v$ $ @@TD@@+$ $ @@]D@@	% % @@fD@@FK% % @@oD@@+|% % @@xD@@H%" %# @@D@@tc%+ %, @@D@@Zš%4 %5 @@D@@/%=  %> *@@D@@;Y%F ,2%G ,<@@D@@)2%O ,>%P ,H@@D@@:vn%X ,J%Y ,T@@D@@6m%a ,V%b ,`@@D@@[b"%j ,b%k ,l@@D@@<ᵟ%s ,n%t ,x@@D@ @.x%| z%} z@@D@!@'% z% z@@D@"@%=ð% z% z@@D@#@8% z% z@@D@$!@L% z% z@@D@%*@?}% z% z@@D@&3@nSO% % @@D@'<@}Y% % @@D@(E@]~% % @@#D@)N@N~% % @@,D@*W@a% % @@5D@+`@w"˰% 
% @@>D@,i@(% % &@@GD@-r@3d% (% 2@@PD@.{@=@*% 4% >@@YD@/@Y=& @& J@@bD@0@з& L& V@@kD@1@$& X& b@@tD@2@(& dj& dt@@}D@3@.&' dv&( d@@D@4@R.2&0 d&1 d@@D@5@9ܰ&9 d&: d@@D@6@!DL&B d&C d@@D@7@
<&K d&L d@@D@8@G&T &U @@D@9@5<ְ&] &^ @@D@:@*UO&f &g @@D@;@oh&o &p @@D@<@&6&x &y @@D@=@oð& & @@D@>@/z&  &  @@D@?@@& 2?& @@$@@D@@	%State#idx& & %@@& (& )@@$@@D@A.@@@& "0& +,@@61@@& ""@@@4@ࠠ$bits& .2& .6@@@@$M@@ @GC@D1@@ @KC@E@ @FC@C  4 &&&&&&&&&@Q`Z@[@@@@@$Lഠ$K& .7& .9@$I@@@  4 &&&&&&&&&@& $D& ..& .N@@@@@@డ$$bits%State& .<& .F@@{@@ @]@@ @@ @@m@@@@@@D@L5@D@J#@@ఐ'default' .G)@;*@@E@N1@@ -@@D2@@A6.A@@LG@ @R5@@2@21@E@ࠠ#int' OS' OV@@@@8@@ @]C@T@@ @\C@U@ @VC@S  4 '''''''''@bxr@s@@@@@%bound'8 OW'9 O\@@@  4 '('''''('('('('('(@'!$'? OO'@ Ov@@@@@@డ%O#int%State'M O_'N Oh@@@@ @@l@@ @@@ @@ @@ @@@@@@@@C@^@B=@C@[@C@Z  4 'R'Q'Q'R'R'R'R'R'R@+7G@.@@@@@ఐ'default'r Oi's Op@@@D@a@@ఐM%bound' OqB@C@@bC@W@@8E@@] @@ANFA@@e`@ @d  4 'u't't'u'u'u'u'u'u@M@@@@K@KJ@_@ࠠ%int32' w{' w@@@@|@@ @oC@fy@@ @nC@g@ @hC@e  4 '''''''''@|@@@@@@%bound' w' w@@@  4 '''''''''@'!%!' ww' w@@@@@@డ%%int32%State' w' w@@X@@ @@@@ @@@ @@ @@ @@O@@@@f@@C@p@B=@C@m@C@l  4 '''''''''@+7G@.@@@@@ఐ}'default' w' w@#@@D@s@@ఐM%bound' wB@C@@bC@i@@8E@@] @@ANFA@@e`@ @v  4 '''''''''@M@@@@K@KJ@_@ࠠ)nativeint( ( @@@@@@ @C@x@@ @C@y@ @zC@w  4 (((((((((@|@@@@@@%bound(. (/ @@@  4 (((((((((@'!%(5 (6 @@@@@@డ&E)nativeint%State(C (D @@@@ @@@@ @@@ @@ @@ @@	@@@@@@C@@B=@C@@C@~  4 (H(G(G(H(H(H(H(H(H@+7G@.@@@@@ఐ'default(h (i @@@D@@@ఐM%bound(w B@C@@bC@{@@8E@@] @@ANFA@@e`@ @  4 (k(j(j(k(k(k(k(k(k@M@@@@K@KJ@_@ࠠ%int64( ( @@@@*@@ @C@'@@ @C@@ @C@  4 (((((((((@|@@@@@@%bound( ( @@@  4 (((((((((@'!&( ( @@@@@@డ&%int64%State( ( @@N@@ @@^@@ @Y@@ @@ @@ @@
O@@@@\@@C@@B=@C@@C@  4 (((((((((@+7G@.@@@@@ఐs'default( ( @@@D@@@ఐM%bound( B@C@@bC@@@8E@@] @@ANFA@@e`@ @  4 (((((((((@M@@@@K@KJ@_@ࠠ%float) ) @@@@@@ @C@
@@ @C@@ @C@  4 )))))))))@|@@@@@@%scale)$ )% @@@  4 )))))))))@@@@@డ'6%float%State)4 )5  @@@@ @ @:@@ @7@@ @@ @@ @@P@@@@@@C@@=8@C@@C@  4 )9)8)8)9)9)9)9)9)9@62B@)@@@@@ఐ預'default)Y !)Z (@@@D@@@ఐH%scale)h ))i .@@@^C@ @@9@@Y!@@AJA@@a\@ @Y@@)q 	@@
@\@ࠠ$bool)~ /3) /7@@@@'@@ @C@!"@@ @C@@ @C@  4 )|){){)|)|)|)|)|)|@y@@@@@@'ഠ') /8) /:@'@@@  4 )))))))))@& '	) //) /O@@@@@@డ'$bool%State) /=) /G@@@@@ @!N@@ @@ @@@@@@I@@D@5@D@#@@ఐ['default) /H)@ *@@E@1@@ -@@D2@@A6.A@@LG@ @5@@2@21@E@ࠠ)full_init) QU) Q^@@@@%r%o@@ @@@ @C@&@@ @C@@ @C@  4 )))))))))@f|v@w@@@@@$seed * Q_* Qc@@@  4 )))))))))@+%'o* QQ*	 Q@@@@@@డ()full_init%State* Qf* Qu@@@@ @@%%@@ @@@ @&@@ @@ @@ @@%@@@@@@C@@JA@C@@C@  4 *********@/;O@2@@@@@ఐϠ'default*? Qv*@ Q}@u@@D@@@ఐQ$seed*N Q~F@G@@jC@@@<I@@a @@ARJA@@md@ @  4 *B*A*A*B*B*B*B*B*B@Q@@@@O@ON@c@ࠠ$inità*b *c @@@@%@@ @C@'2@@ @C@@ @C@  4 *`*_*_*`*`*`*`*`*`@@@@@@@$seedĠ* * @@@  4 *p*o*o*p*p*p*p*p*p@'!'* * @@@@@@డ()full_init%State* * @@@@%@@C@@&)7@@C@3@C@@C@  4 *********@!-=@$@@@@@ఐ@'default* * @@@D@@@ఐF$seed* * @@@\C@#@@* @@@)%@@4A@@Y&@@AJBA@@a\@ @  4 *********@I@@@@G@GF@[@ࠠ)self_initŠ* * @@@@(m@@ @C@'@@ @C@@ @C@  4 *********@x@@@@@@(lƠഠ(k* * @(i@@@  4 *********@& (d* * @@@@@@ఐ))full_init+ +	 @@@@&&@@D@@@D@-@D@@@ఐ+ +random_seed+  +! @)9@@@+ @@E@D@@E@1@@ภ(+1 @(@@@F@<@@+6 9@@>@@0:@@Q?@@AC;A@@YT@ @B@@?@?>@R@ࠠ)get_stateǠ+G +H @@@@(@@ @C@@@ @C@@ @ C@  4 +E+D+D+E+E+E+E+E+E@o@@@@@@(Ƞഠ(ٰ+d +e @(@@@  4 +T+S+S+T+T+T+T+T+T@& (Ұ+k +l 0@@@@@@డ){$copy%State+y +z (@@	@@ @@@ @@ @@@@@@@@D@5@D@#@@ఐ$'default+ ))@ɰ*@@E@1@@ -@@D2@@A6.A@@LG@ @5@@2@21@E@ࠠ)set_stateɠ+ 15+ 1>@@@@<@@ @C@(x@@ @C@@ @C@  4 +++++++++@bxr@s@@@@@!sʠ+ 1?+ 1@@@@  4 +++++++++@'!)4+ 11+ 1Y@@@@@@డ)&assign%State+ 1C+ 1O@@k@@ @@p@@ @(@@ @@ @@ @@(@@@@y@@C@@B=@C@@C@  4 +++++++++@+7G@.@@@@@ఐ'default,  1P, 1W@6@@D@@@ఐM!s, 1XB@C@@bC@@@8E@@] @@ANFA@@e`@ @  4 ,,,,,,,,,@M@@@@K@KJ@_@,*1@*$@@@@S@l@{@@@@)@7@T@E@^@z@@@@@  4 ,%,$,$,%,%,%,%,%,%@@@@%State!t@@ @!$unitF@@ @ @ @@*random.mli j j*@@@@@ @$!t@@ @#@ @"@ g g@@
@!t@@ @'$boolE@@ @&@ @%@& `' `@@@@@ @,@%floatD@@ @+@@ @*@ @)@ @(@= _> _@@@+@@ @1@&Stdlib%Int64!t@@ @0
%Int64!t@@ @/@ @.@ @-@[ ^\ ^@@l@I@@ @6@)Nativeint!t@@ @5%)Nativeint!t@@ @4@ @3@ @2@v ]lnw ]l@@P@d@@ @;@9%Int32!t@@ @:@%Int32!t@@ @9@ @8@ @7@ \FH \Fk@@@@@ @@@#intA@@ @?@@ @>@ @=@ @<@ [*, [*E@@@@@ @C@@ @B@ @A@ Z Z)@@o@@@ @F@@ @E@ @D@ W W@@/@@@ @I@@ @H@ @G@ STV STt@@@%arrayHD@@ @M@@ @L@@ @K@ @J@ P P@@F@@@ @P@@ @O@ @N@%%%<@@@@@ @S@@ @R@ @Q@
y
>
>y
>
X@@C@%Int64!t@@ @V%Int64!t@@ @U@ @T@ u		!u		@@@)Nativeint!t@@ @Y)Nativeint!t@@ @X@ @W@6q7q	@@e@%Int32!t@@ @\%Int32!t@@ @[@ @Z@Lm00Mm0N@@@@@ @_@@ @^@ @]@\hxx]hx@@@j@@ @b@@ @a@ @`@lbmb@@d@z@@ @e~@@ @d@ @c@|[{{}[{@@Y@@@ @i@@ @h@@ @g@ @f@XX>@@@@@ @l@@ @k@ @j@TT@@@	H************************************************************************-A@@-A@ L@	H                                                                        -B M M-B M @	H                                 OCaml                                  .C  .C  @	H                                                                        .D  .D 3@	H               Damien Doligez, projet Para, INRIA Rocquencourt          .E44.E4@	H                                                                        .F.F@	H   Copyright 1996 Institut National de Recherche en Informatique et     .G.G@	H     en Automatique.                                                    .H. Hg@	H                                                                        .%Ihh.&Ih@	H   All rights reserved.  This file is distributed under the terms of    .+J.,J@	H   the GNU Lesser General Public License version 2.1, with the          .1K.2KN@	H   special exception on linking described in the file LICENSE.          .7LOO.8LO@	H                                                                        .=M.>M@	H************************************************************************.CN.DN5@
   Pseudo-random number generator
   This is a lagged-Fibonacci F(55, 24, +) with a modified addition
   function to enhance the mixing of bits.
   If we use normal addition, the low-order bit fails tests 1 and 7
   of the Diehard test suite, and bits 1 and 2 also fail test 7.
   If we use multiplication as suggested by Marsaglia, it doesn't fare
   much better.
   By mixing the bits of one of the numbers before addition (XOR the
   5 high-order bits into the low-order bits), we get a generator that
   passes all the Diehard tests.
.IP77.JZQS@) PR#5575 .Ox	}	.Px	}	@	: Returns 30 random bits as an integer 0 <= x < 1073741824 .U K

.V K
@) PR#5575 .[ Q.\ Q@	@ Returns a float 0 <= x <= 1 with at most 60 bits of precision. .a UW.b U@& 2^30 .g .h @	 This is the state you get with [init 27182818] and then applying
   the "land 0x3FFFFFFF" filter to them.  See #5575, #5793, #5977. .m .n !@	! Manipulating the current state. .s .t 	@
  W*******************

(* Test functions.  Not included in the library.
   The [chisquare] function should be called with n > 10r.
   It returns a triple (low, actual, high).
   If low <= actual <= high, the [g] function passed the test,
   otherwise it failed.

  Some results:

init 27182818; chisquare int 100000 1000
init 27182818; chisquare int 100000 100
init 27182818; chisquare int 100000 5000
init 27182818; chisquare int 1000000 1000
init 27182818; chisquare int 100000 1024
init 299792643; chisquare int 100000 1024
init 14142136; chisquare int 100000 1024
init 27182818; init_diff 1024; chisquare diff 100000 1024
init 27182818; init_diff 100; chisquare diff 100000 100
init 27182818; init_diff2 1024; chisquare diff2 100000 1024
init 27182818; init_diff2 100; chisquare diff2 100000 100
init 14142136; init_diff2 100; chisquare diff2 100000 100
init 299792643; init_diff2 100; chisquare diff2 100000 100
- : float * float * float = (936.754446796632465, 997.5, 1063.24555320336754)
# - : float * float * float = (80., 89.7400000000052387, 120.)
# - : float * float * float = (4858.57864376269, 5045.5, 5141.42135623731)
# - : float * float * float =
(936.754446796632465, 944.805999999982305, 1063.24555320336754)
# - : float * float * float = (960., 1019.19744000000355, 1088.)
# - : float * float * float = (960., 1059.31776000000536, 1088.)
# - : float * float * float = (960., 1039.98463999999512, 1088.)
# - : float * float * float = (960., 1054.38207999999577, 1088.)
# - : float * float * float = (80., 90.096000000005, 120.)
# - : float * float * float = (960., 1076.78720000000612, 1088.)
# - : float * float * float = (80., 85.1760000000067521, 120.)
# - : float * float * float = (80., 85.2160000000003492, 120.)
# - : float * float * float = (80., 80.6220000000030268, 120.)

*)

(* Return the sum of the squares of v[i0,i1[ *)
let rec sumsq v i0 i1 =
  if i0 >= i1 then 0.0
  else if i1 = i0 + 1 then Stdlib.float v.(i0) *. Stdlib.float v.(i0)
  else sumsq v i0 ((i0+i1)/2) +. sumsq v ((i0+i1)/2) i1


let chisquare g n r =
  if n <= 10 * r then invalid_arg "chisquare";
  let f = Array.make r 0 in
  for i = 1 to n do
    let t = g r in
    f.(t) <- f.(t) + 1
  done;
  let t = sumsq f 0 r
  and r = Stdlib.float r
  and n = Stdlib.float n in
  let sr = 2.0 *. sqrt r in
  (r -. sr,   (r *. t /. n) -. n,   r +. sr)


(* This is to test for linear dependencies between successive random numbers.
*)
let st = ref 0
let init_diff r = st := int r
let diff r =
  let x1 = !st
  and x2 = int r
  in
  st := x2;
  if x1 >= x2 then
    x1 - x2
  else
    r + x1 - x2


let st1 = ref 0
and st2 = ref 0


(* This is to test for quadratic dependencies between successive random
   numbers.
*)
let init_diff2 r = st1 := int r; st2 := int r
let diff2 r =
  let x1 = !st1
  and x2 = !st2
  and x3 = int r
  in
  st1 := x2;
  st2 := x3;
  (x3 - x2 - x2 + x1 + 2*r) mod r


*******************.y [[.z##@@  D +../ocamlopt0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error!A*-bin-annot)-nostdlib,-safe-string/-strict-formats"-p"-c"-o4stdlib__random.p.cmx..(./stdlib @0'Ε0֙Tr  4 ..~.~......@.}@@8CamlinternalFormatBasics0i;5d[͔&Stdlib0EQ:TnȠ-Stdlib__array0-ւcx,Stdlib__char0z .ue.Stdlib__digest0-nD*;:zIB+Stdlib__int0&ZׇC[,L-Stdlib__int320p^URݽkN-Stdlib__int640qᯰ |1Stdlib__nativeint0Mdvi_0Mx.͐0\'x՚RN+Stdlib__seq05Q[.ZIz[hA6.Stdlib__string0܌OpD7?hO@@A