Caml1999I037   ؠ+Stdlib__Int!t1;@@@A#intA@@@@@@@'int.mliZ))Z)5@@A@@@A@$zero2@@@@][[][i@@ A@@#one3@@@@``@@-B@@)minus_one4*@@@@(c)c@@:C@@#neg5@9@@@=@@@@@'%negintAA @@@@fAf@@RD@@#add6@Q@@@@W@@@[@@@@@@@'%addintBA@@@@^i::_i:f@@pE@@#sub7@o@@@@u@@@y@@@@@@@'%subintBA<@@@@|l}l@@F@@#mul8@@@@@@@@@@@@@@@'%mulintBAZ@@@@oo@@G@@#div9@@@@@@@@@@@@@@@'%divintBAx@@@@rKKrKw@@H@@#rem:@@@@@@@@@@@@@@@'%modintBA@@@@uu@@I@@$succ;@@@@@@@@@(%succintAA@@@xBBxBi@@J@@$pred<@@@@@@@@@(%predintAAŠ@@@{{@@K@@#abs=@@@@@@@@@@~~@@)L@@'max_int>&@@@@$C  %C  @@6M@@'min_int?3@@@@1G  2G  @@CN@@&logand@@B@@@@H@@@L@@@@@@@'%andintBA@@@@OK r rPK r @@aO@@%logorA@`@@@@f@@@j@@@@@@@&%orintBA-@@@@mN  nN  @@P@@&logxorB@~@@@@@@@@@@@@@@ǐ'%xorintBAK@@@@Q N NQ N }@@Q@@&lognotC@@@@@@@@@@T  T  @@R@@*shift_leftD@@@@@@@@@@@@@@@ϐ'%lslintBA|@@@@W  W  M@@S@@+shift_rightE@@@@@@@@@@@@@@@Ԑ'%asrintBA@@@@[  [  @@T@@3shift_right_logicalF@@@@@@@@@@@@@@@ِ'%lsrintBA@@@@a  a *@@ U@@%equalG@ @@@@@@@$boolE@@@@@@@@iBBiB`@@%V@@'compareH@$@@@@*@@@.@@@@@@@@,l-l@@>W@@#minI@=@@@@C@@@G@@@@@@@@EoFo@@WX@@#maxJ@V@@@@\@@@`@@@@@@@@^tYY_tYt@@pY@@(to_floatK@o@@@%floatD@@@@@+%floatofintAA8@@@w{x{@@Z@@(of_floatL@@@@@@@@@+%intoffloatAAO@@@~??~?o@@[@@)to_stringM@@@@&stringQ@@@@@@@@\@@+seeded_hashN@@@@@@@@@@@@@@@@CCCf@@]@@$hashO@@@@@@@@@@>>>S@@^@@@i9.+Stdlib__Int0̵#&*ȇO7&Stdlib0Lku]8_٠8CamlinternalFormatBasics0%FU(Q/Tu@@@Caml1999T037^ 1:5C+Stdlib__Int*ocaml.text&_none_@@A Integer values. Integers are {!Sys.int_size} bits wide and use two's complement representation. All operations are taken modulo 2{^[Sys.int_size]}. They do not fail on overflow. @since 4.08 'int.mliP77V @@@@@@3@@@@@@#intA;@@@A@@@@@:@A@$charB;@@A@@@@@>@A@&stringQ;@@ A@@@@@B@@@%bytesC;@@ A@@@@@F@@@%floatD;@@A@@@@@J@@@$boolE;@@%falsec@@T@$trued@@Z@@@A@@@@@[@A@$unitF;@@"()e@@e@@@A@@@@@f@A@ #exnG;@@@A@@@@@j@@@#effH;@@O@A@A@@@@@@s@@@,continuationI;@@Q@@P@B@A@nY@@@@@@@@@%arrayJ;@@R@A@A@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@A=ocaml.warn_on_literal_pattern @ @0Division_by_zero]#@@@A  @+End_of_file\#$@@@A@'FailureY#,@'@@A!$$@0Invalid_argumentX#5@0@@A*$-#-@-Match_failureV#>@@=@9@;@@a@@A;5>4>@)Not_foundZ#O@@@AC=F<F@-Out_of_memoryW#W@@@AKENDN@.Stack_overflow^#_@@@ASMVLV@.Sys_blocked_io_#g@@@A[U^T^@)Sys_error[#o@j@@Ad^g]g@:Undefined_recursive_modulea#x@@w@s@u@@h@@Auoxnx@:Continuation_already_takenb#@@@A}wv@&Stdlib@Ax3 {1:ints Integers} XX'@@@@@@A+!tAZ).Z)/@@;@@@Ap@@@@@@@Z))Z)5@)ocaml.doc> The type for integer values. [66[6Y@@@@@@@A@@@@@Aг#intZ)2@@ 3@+;@@@A3@@@@@@@@'$@@@A &@@(%Ґ$#@##@@@#@#@@ʰ32@$zero][_][c@г#int][f][i@@ @@@3@YS@A@@@][[ @M< [zero] is the integer [0]. ^jj^j@@@@@@@A@@@] @@@@@@!#one ``@г預#int``@@ @@@3@8K6@A@@@ ` @; [one] is the integer [1]. -a.a@@@@@@@FB@@@A@@@@@@!)minus_oneDcEc@г #intMcNc@@ @@@3ONNOOOOO@8K6@A@@@Wc @ " [minus_one] is the integer [-1]. dded@@@@@@@}C@@@x@@@@@@!#neg{f|f@б@гY#intf f @@ @@@3@:M8@A@@гh#intff@@ @@@@@@@@@@'%negintAA @@@ff@ 3 [neg x] is [~-x]. g  g 8@@@@@@@D@@@Ȑ@@@@@@8#addi:Ci:F@б@г#inti:Ii:L@@ @@@3@Qf?@A@@б@г#inti:Pi:S@@ @@@@@гǠ#inti:Wi:Z@@ @@@@@@@@!@@@'@@$* @@'%addintBAb@@@@i::i:f@l $ [add x y] is the addition [x + y]. jggjg@@@@@@@.E@@@}*@@@@@@J#sub-l.l@б@г #int8l9l@@ @@@3:99:::::@cx?@A@@б@г#intIlJl@@ @@@@@г)#intVlWl@@ @@@@@@@@!@@@'@@$* @@'%subintBAĠ@@@@iljl@ΐ ' [sub x y] is the subtraction [x - y]. wmxm@@@@@@@F@@@@@@@@@J#muloo@б@гm#intoo@@ @@@3@cx?@A@@б@г~#intoo@@ @@@@@г#into o @@ @@@@@@@@!@@@'@@$* @@'%mulintBA&@@@@oo@0 * [mul x y] is the multiplication [x * y]. ppI@@@@@@@G@@@A@@@@@@J#divrKTrKW@б@гϠ#intrKZrK]@@ @@@3@cx?@A@@б@гࠐ#int rKarKd@@ @@@@@г#intrKhrKk@@ @@@@@@@@!@@@'@@$* @@'%divintBA@@@@-rKK.rKw@ E [div x y] is the division [x / y]. See {!Stdlib.( / )} for details. ;sxx@A@@г#int{{@@ @@@@@@@@@@(%predintAA@@@-{.{@8 [pred x] is [sub x 1]. ;|<|@@@@@@@TK@@@P@@@@@@7#absS~T~@б@г1#int^~_~@@ @@@3`__`````@Pe>@A@@г@#intm~n~@@ @@@@@@@@@@@x~ @ܐ [abs x] is the absolute value of [x]. That is [x] if [x] is positive and [neg x] if [x] is negative. {b Warning.} This may be negative if the argument is {!min_int}. A w @@@@@@@L@@@@@@@@@1'max_intC  C  @гx#intC  C  @@ @@@3@H]6@A@@@C   @ T [max_int] is the greatest representable integer, [2]{^[Sys.int_size - 1]}[-1]. D  E  @@@@@@@M@@@#А@@@@@@!'min_int G  G  @г#intG  G  @@ @@@3@8K6@A@@@G   @J Q [min_int] is the smallest representable integer, [-2]{^[Sys.int_size - 1]}. H  I O p@@@@@@@ N@@@Z@@@@@@!&logand! K r { K r @б@г蠐#intK r K r @@ @@@3@:M8@A@@б@г#int&K r 'K r @@ @@@@@г#int3K r 4K r @@ @@@@@@@@!@@@'@@$* @@'%andintBA@@@@FK r rGK r @ 9 [logand x y] is the bitwise logical and of [x] and [y]. TL  UL  @@@@@@@mO@@@i@@@@@@J%logor"lN  mN  @б@гJ#intwN  xN  @@ @@@3yxxyyyyy@cx?@A@@б@г[#intN  N  @@ @@@@@гh#intN  N  @@ @@@@@@@@!@@@'@@$* @@&%orintBA@@@@N  N  @ 7 [logor x y] is the bitwise logical or of [x] and [y]. O  O  L@@@@@@@P@@@ː@@@@@@J&logxor#Q N WQ N ]@б@г#intQ N `Q N c@@ @@@3@cx?@A@@б@г#intQ N gQ N j@@ @@@@@гʠ#intQ N nQ N q@@ @@@@@@@@!@@@'@@$* @@'%xorintBAe@@@@ Q N N Q N }@o B [logxor x y] is the bitwise logical exclusive or of [x] and [y]. R ~ ~R ~ @@@@@@@1Q@@@-@@@@@@J&lognot$0T  1T  @б@г#int;T  <T  @@ @@@3=<<=====@cx?@A@@г#intJT  KT  @@ @@@@@@@@@@@UT   @ 4 [lognot x] is the bitwise logical negation of [x]. bU  cU  @@@@@@@{R@@@v@@@@@@1*shift_left%yW  #zW  -@б@гW#intW  0W  3@@ @@@3@J_8@A@@б@гh#intW  7W  :@@ @@@@@гu#intW  >W  A@@ @@@@@@@@!@@@'@@$* @@'%lslintBA@@@@W  W  M@ y [shift_left x n] shifts [x] to the left by [n] bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. X N NY  @@@@@@@S@@@+ؐ@@@@@@J+shift_right&[  [  @б@г#int[  [  @@ @@@3@cx?@A@@б@гʠ#int[  [  @@ @@@@@гנ#int[  [  @@ @@@@@@@@!@@@'@@$* @@'%asrintBAr@@@@[  [  @| [shift_right x n] shifts [x] to the right by [n] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. %\  &_  @@@@@@@>T@@@:@@@@@@J3shift_right_logical'=a  >a  @б@г#intHa  Ia @@ @@@3JIIJJJJJ@cx?@A@@б@г,#intYa Za @@ @@@@@г9#intfa ga @@ @@@@@@@@!@@@'@@$* @@'%lsrintBAԠ@@@@ya  za *@ސ [shift_right x n] shifts [x] to the right by [n] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. b++e@@@@@@@U@@@@@@@@@J & {1:preds Predicates and comparisons} gg@@@@@@@3@\q8@A%equal(iBFiBK@б@г#intiBNiBQ@@ @@@@@б@г#intiBUiBX@@ @@@)@@г$booliB\iB`@@ @@@6@@@@@9@@@%@@<( @@@iBB@K / [equal x y] is [true] if and only if [x = y]. jaaja@@@@@@@ V@@@[ @@@@@@['compare) l l@б@г預#int l l@@ @@@3        @to8@A@@б@г#int 'l (l@@ @@@@@г #int 4l 5l@@ @@@@@@@@!@@@'@@$* @@@ Bl@ > [compare x y] is {!Stdlib.compare}[ x y] but more efficient.  Om Pm@@@@@@@ hW@@@ c@@@@@@C#min* fo go@б@г D#int qo ro @@ @@@3 s r r s s s s s@\q8@A@@б@г U#int o  o@@ @@@@@г b#int o o@@ @@@@@@@@!@@@'@@$* @@@ o@ : Return the smaller of the two arguments. @since 4.13  p rUW@@@@@@@ X@@@ @@@@@@C#max+ tY] tY`@б@г #int tYc tYf@@ @@@3        @\q8@A@@б@г #int tYj tYm@@ @@@@@г #int tYq tYt@@ @@@@@@@@!@@@'@@$* @@@ tYY@\ ; Return the greater of the two arguments. @since 4.13  uuu w@@@@@@@ Y@@@l @@@@@@C ' &8 {1:convert Converting}  #y $y@@@@@@3 " ! ! " " " " "@Uj1@A(to_float, /{ 0{@б@г #int :{ ;{@@ @@@@@г %float G{ H{@@ @@@'@@@@@*@@+%floatofintAA@@@ V{ W{@ 1 [to_float x] is [x] as a floating point number.  d| e|=@@@@@@@ }Z@@@ y@@@@@@O(of_float- |~?H }~?P@б@г I%float ~?S ~?X@@ @@@ 3        @hc>@A@@г i#int ~?\ ~?_@@ @@@ @@@@@ @@+%intoffloatAA@@@ ~?? ~?o@ [of_float x] truncates [x] to an integer. The result is unspecified if the argument is [nan] or falls outside the range of representable integers.  pp @@@@@@@ [@@@  Ȑ@@@@@@7)to_string.  @б@г #int  @@ @@@ 3        @Pe>@A@@г &string  @@ @@@ @@@@@@@@  @ T @ [to_string x] is the written representation of [x] in decimal.   A@@@@@@@ \@@@ d @@@@@@1+seeded_hash/ CG CR@б@г #int CU CX@@ @@@3 !   ! ! ! ! !@J_8@A@@б@г #int 0C\ 1C_@@ @@@@@г #int =Cc >Cf@@ @@@@@@@@!@@@'@@$* @@@ KCC@ A seeded hash function for ints, with the same output value as {!Hashtbl.seeded_hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.MakeSeeded}. @since 5.1  Xgg Y+<@@@@@@@ q]@@@  l@@@@@@C$hash0 o>B p>F@б@г M#int z>I {>L@@ @@@3 | { { | | | | |@\q8@A@@г \#int >P >S@@ @@@@@@@@@@@ >> @ An unseeded hash function for ints, with the same output value as {!Hashtbl.hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.Make}. @since 5.1  TT @@@@@@@ ^@@@  @@@@@@1@ % A@  @  @ x c@ C @@\@5@@u<@@@{T@4@@@j1@ @@c*@@j@0@@G@'@@pI@#@@\@@3        @p^@A@ H************************************************************************ A@@ A@L@ H  BMM BM@ H OCaml  C C@ H  D D3@ H The OCaml programmers  E44 E4@ H  F F@ H Copyright 2018 Institut National de Recherche en Informatique et  G G@ H en Automatique.  H Hg@ H  $Ihh %Ih@ 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  0K 1KN@ H special exception on linking described in the file LICENSE.  6LOO 7LO@ H  ]{!Sys.int_size}. Ġ * [shift_right x n] shifts [x] to the right by [n] bits. This is an arithmetic shift: the sign bit of [x] is replicated and inserted in the vacated bits. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}. e * [shift_right x n] shifts [x] to the right by [n] bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of [x]. The result is unspecified if [n < 0] or [n > ]{!Sys.int_size}.  '* {1:preds Predicates and comparisons} ꠠ 0* [equal x y] is [true] if and only if [x = y].  ?* [compare x y] is {!Stdlib.compare}[ x y] but more efficient. G ;* Return the smaller of the two arguments. @since 4.13  <* Return the greater of the two arguments. @since 4.13 9* {1:convert Converting} | 2* [to_float x] is [x] as a floating point number. > * [of_float x] truncates [x] to an integer. The result is unspecified if the argument is [nan] or falls outside the range of representable integers.   val of_string : string -> int option (** [of_string s] is [Some s] if [s] can be parsed to an integer in the range representable by the type [int] (note that this depends on {!Sys.int_size}) and [None] otherwise. The string may start with an optional ['-'] or ['+'] sign, and may be followed by an optional prefix that specifies the base in which the number is expressed. If there is not prefix or if the prefix is [0u] or [0U] it is expressed in decimal. If the prefix is [0x] or [0X] it is expressed in hexadecimal. If the prefix is [0o] or [0O] it is expressed in octal. If the prefix is [0b] or [0B] it is expressed in binary. When the [0u] or [0U] prefix is used, the represented number may exceed {!max_int} or {!min_int} in which case it wraps around modulo 2{^[Sys.int_size]} like arithmetic operations do. The ['_'] (underscore) character can appear anywhere between two digits of the number. *)   @ A* [to_string x] is the written representation of [x] in decimal.  * A seeded hash function for ints, with the same output value as {!Hashtbl.seeded_hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.MakeSeeded}. @since 5.1 Y * An unseeded hash function for ints, with the same output value as {!Hashtbl.hash}. This function allows this module to be passed as argument to the functor {!Hashtbl.Make}. @since 5.1 @?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o/stdlib__Int.cmi"-c  D/builds/workspace/precheck/flambda/false/label/ocaml-linux-32/stdlib @@0hF:"a93        @ @@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠ 0̵#&*ȇO7@0̵#&*ȇO7A_C:t ʐ @7@@6H@   f D f@>}̰p  )@ ΐ @D@K  @[@Ұ   X @@:L@@W@RQ@@P@@