Caml1999T036/T4Q^C.Stdlib__Domain#Raw4A)domain.mlS%S(@LA@БA+!tBUgnUgo@@;@@@@#intA@@@@@@@UgiUg}@@A@,@A@@@г #int&Ugz @@3@@@@@@6;@@@A@@@@@&_none_@@A@A@;$charB;@@A@@@@@@A@&stringQ;@@ A@@@@@ @@@%bytesC;@@A@@@@@@@@%floatD;@@A@@@@@@@@$boolE;@@%falsec@@@$trued@@#@@@A@@@@@$@A@$unitF;@@"()e@@.@@@A@@@@@/@A@ #exnG;@@@A@@@@@3@@@#effH;@@O@A@A@@@@@@<@@@,continuationI;@@Q@@P@B@A@nY@@@@@@K@@@%arrayJ;@@R@A@A@@@@@@U@@@ $listK;@@S@A"[]f@@b@"::g@@@T@@o@ @@A@Y@@@@@r@@@&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@@A54@)Not_foundZ#O@@@A =<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A$U'T'@)Sys_error[#o@j@@A-^0]0@:Undefined_recursive_modulea#x@@w@s@u@@h@@A>oAnA@:Continuation_already_takenb#@@@AFwIvI@&Stdlib;@@@@@@@@@@@@@@@@@@@@@@3@~@@A+%stateCZZ@А!a@3@;@@@A@A@G@B@@@Z\<@@@@AA@@ZZ@@BA@;@A'Running@@[[@@BA(FinishedI&result.D@k@@@@@@@@\'@'warning\\%@3-unused-constructor\'\:@@\&\;@@@@@@\@@@CA@@A@Y@@@@@E@@@B@#;;[9@8@@@<@#88\\@@г:;\ \@А!a@i&\ '\@@гA#exn/\0\@@Iu@@@Rv3\ @@@@GEDA@@=:@@@:@9@@A@y@@yx@3@@@A+)term_syncDJ^>HK^>Q@А!a@3-,,-----@;@@@A@A@G@B@@@_^>@`c@@@@oDA@@c^>Ed^>G@@@;@A%stateA@!E@@@@t`swu`s@'warning{`s|`s@--unused-field`s`s@@`s`s@@@@@@`s`s@@EA#mut@@%Mutex!t@@@aa@@FA$cond$@@)Condition!t@@@ bb@@GA@@A@@@@@@S@@@P@#JJ`s`s@(A@Ш@гN%state`s`s@А!aVr`s`s@@@]u @@`@@x@YVURQ@NK@@@K@J@#FF>a@=@@Ш@гIKaa@Naa@@@W@@Z@@@S@#OOGb@F@@Ш@гRTbb@Wbb@@@`@@c@@ @\@@A@@@@3@@@%spawn0ee@б@б@г$unitee@@ @@@`3@@@@@А!a@iE@a /e0e@@@ @@b@@б@г)term_sync=e>e@А!a DeEe@@@ @@@d' @@гB!tReSe@@ @@@e4@@@@@f7@@@,@@g:^e @@1caml_domain_spawnBA @@@@gehf-@@wHA @@@I$self1tg.9ug.=@б@г$unitg.@g.D@@ @@@j3]\\]]]]]@by'@@@@г~!tg.Hg.I@@ @@@k@@@@@l@@1caml_ml_domain_idA@8@@@g.0hJo@'noallochJghJn@@hJd @@IA@@  @ @,)cpu_relax2ip{ip@б@гJ$unitipip@@ @@@o3@EZ3@@@@гY$unitipip@@ @@@p@@@@@q@@8caml_ml_domain_cpu_relaxAA|@@@iprj@@JA@@@@G:A@uE@A@A@>@>=@iA+"id8EqFKqFM@@;@@A!t@@@@@@@qFFqFU@@A@NA@@Aг #RawqFPqFS@qFT@@@3@@@%;@@@A-@@@@@@@@ @@@@@@@!@@! @3@@@A+!t9FsW_ sW`@А!a@3@$GA;@@@A@A@G@B@@@sWWv@@@@-OA@@!sW\"sW^@@V@;@A&domain:@@3!t@@@1teg2tev@@APA)term_sync;@@A)term_sync1G@@@@BuwyCuw@@RQA@@A@@@@@@+@@@(@#""Ltem@@@Ш@г%#RawWtepXtes@,[tet\teu@@@4L@@7@@O@1@#--#euw@"@@Ш@г0#Rawpuwquw@7tuwuuw@@А!a=i|uw}uw@@@Fl @@I@@o@@@@A@e@@ed@3[ZZ[[[[[@o@@#DLSGxx@]A@Б'Obj_optHzz@_A@БA+!t@@డ#ref?H  @H  @@!a@#@@@g@@f,%makemutableAA @@@*stdlib.mliddd@@e@@@@/42@@@f@@eh@@@dH  eH  @@:q@@gH  hH  @@Dt@@f@@u@A@kH  @@@x@ఠ$somexI  !yI  %@TA@@@@@wJ@o@@@J@p@@qJ@n3baabbbbb@@@@@@࣠@!vAI  &I  '@UA@@3tssttttt@(I  I  4@@@@@  @@డ#Obj$reprI  *I  -@ I  .I  2@@@@@8@@@v@@u3@#/@@&@'@@@@ఐ6!vI  3+@ ,@@L@@-@@G@7.A@RJ@5@A@2@21@H@ఠ'is_someJ 5 =J 5 D@VA@@@@@@J@$boolE@@@J@@@J@3@ix@y@z@@@࣠@#objAJ 5 EJ 5 H@WA@@3@,J 5 9J 5 X@@@@@  @@డv"!=J 5 PJ 5 R@@!a@@4@@@C@@B@@A&%noteqBA֠@@@@@@:[@@@@JJ@@F@@@@@@@3        @2>S@5@6@@@@ఐE#objAJ 5 LBJ 5 O@ @@`@@ఐi$noneNJ 5 SOJ 5 W@Ű@@k@@RJ 5 KK@@h@ULA@tJ@S@A@P@PO@f@ఠ*unsafe_getbK Y acK Y k@rXA@@@@@@J@@@@@J@3JIIJJJJJ@@@@@@࣠@#objAK Y lK Y o@YA@@3\[[\\\\\@&K Y ]K Y }@@@@@  @@డ#Obj#objK Y rK Y u@ K Y vK Y y@@@@@@4!a@(@@3)%identityAA@@@ZZ@@C@@@@@@@JL@@@3@7CR@:@;@@@@ఐJ#objK Y z?@ @@@^@@1A@@@KBA@dJ@I@A@F@FE@\@%A@F@_@b@yr@s@t@@3@h|@@F  L ~ @3@@@@!tJ;@@A@@@@@{{@@@@ZAA@$none@@@@||@@[A@$some@!a@K@$@@@@@@} }@@\A@'is_some@3@@@@@@@@@~~ @@+]A@*unsafe_get@F@@@!a@K@@@@0E  1E  @)ocaml.doc搠 [unsafe_get obj] may only be called safely if [is_some] is true. [unsafe_get (some v)] is equivalent to [Obj.obj (Obj.repr v)]. @@  AD  @@@@@@@P^A@@БA+jjN{h@@k@@A@j@@3(''(((((@@Akj@jjW|X|@гk!t_|l@@r398899999@~@Ao@@v@qp@@rppj}k}@б@Аns3IHHIIIII@@As}t}@@гr!t{}s@@y t@@  u@@@wv@@xvv~ ~ @б@гw!t~ ~ @@3jiijjjjj@"@A@@г~$bool~ @@ @@ @@@@@ E  E  @б@г!tE  E  @@3@ @A@@АE  @@ @@@@l@@@@@@@3@@A3@@@zF  @@@z@@@z@@ A+)dls_stateKN  N  @@;@@ACL!t@@@ @@@ @@@@N  N  @@@@`A@@Aг%arrayN   @г'Obj_optN  N  @ N   N  @@@#3@9n@(&A@!@@@@@@Fs>;@@@AF@@@ @@@@@4@@@1@@ @@@@!4@@6@@65@3@@@-get_dls_state 'P   (P  @б@г$unit 2P   3P  @@ @@@ 3        @4e_@@@@гi)dls_state AP   BP  @@ @@@ @@@@@ @@(%dls_getAA@@@ PP   QP  @@ `aA@@@-set_dls_state ]R   ^R  @б@г)dls_state hR   iR  @@ @@@ 3 F E E F F F F F@7L%@@@@г$unit wR   xR  @@ @@@ @@@@@ @@3caml_domain_dls_setA@!@@@ R   S  8@'noalloc S  0 S  7@@ S  - @@ bA@@  @ @,9compare_and_set_dls_state U : E U : ^@б@гԠ)dls_state U : a U : j@@ @@@ 3        @EZ3@@@@б@г堐)dls_state U : n U : w@@ @@@ @@г b$bool U : { U : @@ @@@ @@@@@ !@@@'@@ $* @@?caml_domain_dls_compare_and_setB@w@@@@ U : < V  @'noalloc V   V  @@ V   @@ cA@@  @ @?@ఠ*create_dls X   X  @ dA@@@@@@ %L@ "@@@ L@ #@@ $L@ !3        @]r9@@@࣠@AĠ X   X  @@@@@3        @' !X   "Z  @@@@@  @@@ఠ"st /Y   0Y  @ ?eA@@%arrayJ^@@@ O@ @@@ O@ '&@డ%Array$make PY   QY  @  TY   UY  @@@#intA@@@ @!a@ 1@@@ @@ @@ /caml_array_makeBA @@@@)array.mliuu@@-Stdlib__ArrayD@'"@@@@@@ @CIF@@@ @@ @@ e@@H Y   Y  @@5@@@ P@ P@ u@@డ$none'Obj_opt Y   Y  @  Y   Y  @@k@@@@@ @@o@@]@@x@A@ Y   @@ఐ[-set_dls_state Z   Z  @:@@@\@@@ P@@@ @@ 3        @@@@@@@ఐ"st Z  @ @@s@@@ O@ @@ @@@+@@@A@L@ @A@@@Р@@ \   \  @@x@@@ L@ 3        @@@@@@ఐ*create_dls \   \  @ @@@@@@ @@@ @@ @@ภ \   \  "@@@@@@@ M@ '@@@@+(@A@ \   @@ @+A+#keyL ^ $ . ^ $ 1@А!a@ 3        @?;@@ @A@A@@ .@@@ /@ G@B@@@ =^ $ & >^ $ F@@@@ MfA@@ A^ $ + B^ $ -@@ v@;@A 2A@ 5@@@ @@ @@@ 2M@ @@ @@ Y@@@@@@@@@@AВ@г#int e^ $ 4 f^ $ 7@@>@@@б@г$unit r^ $ ; s^ $ ?@@"K@@А!a"O y^ $ C z^ $ E@@+R @@@6S?@@A@@A@@@ఠ+key_counterڠ ` H N ` H Y@ gA@@&Atomic!t @@@ M@ @@@ M@ 23 u t t u u u u u@[@@@డ &Atomic$make ` H \ ` H b@  ` H c ` H g@@@!a@ Y*@@@ ^@@ ]@*atomic.mli^^@@.Stdlib__AtomicA@@@@073@@@ ~@@ }.@@@ ` H h ` H i@@;7@@)@@E8@A@ ` H J@@@;A+/key_initializerM b k r b k @@;@@"KIҠ!a@ N@ @@@ ؠ@ N@ @@ @"@@@ ް c   c  @@ iA@@A@@@@@ b k m@@@@ hA@###  c  @ @г$#key c   c  @А&+3        @@@A;@@@A@@@@@@@@@@ c   !c  @@@8 @@б@А!a1 *c   +c  @@А!a7 0c   1c  @@< @@@г9/key_initializer :c  :@@@";@@=@@A@9@@9<@3        @#@@@ఠ+parent_keys Ie   Je  @ YjA@@ @@@ @@@ N@ @@@ N@ 3 7 6 6 7 7 7 7 7@E~@@@డ &Atomic$make me   ne  @  qe   re  @@°@@@%(@@@ @@ @@ภ"[] e   e  @;   @@U@@@@AA@A <@@ @ @г<$list e   e  @гA/key_initializer e   e  @@I@@@ F@@@Q@@@ K @@ e   e  @@@YO@@A@@_P@A@ e  @@@SAఠ.add_parent_key g   g  @ kA@@@l@@@ iN@ % W@@@ N@ $@@ '3        @p@@@@@࣠@"kiA g   g  @ lA@@3        @)@$@@ &O@ #@'@(@@@@  @@@ఠ!l h   h  @ mA@@@@@ :@@@ 9P@ +3        @!-@@$@%@@@డ n&Atomic#get h   h  !@  h  " h  %@@@!a@ R@@@ b@@ a@dnen @@cC@@@@5P@ .@@@ /@@ -/@@ఐ+parent_keys 8h  & 9h  1@k@@F@@@ 8@@@1@@A@A@ Ah   @@డ #not Mi 5 < Ni 5 ?@@g@@@Fk@@@E@@D(%boolnotAA@@@ LLLt@@q\@@@@@@@ H@@@ G@@ F3 D C C D D D D D@mx@y@z@@@@డ &Atomic/compare_and_set ~i 5 A i 5 G@  i 5 H i 5 W@@@!a@ F@@@ n@@ $boolE@@@ m@@ l@@ k@@ j@{  {  @@F@!@@@R@@@ hP@ U@@@ V@ @ @@@ T@@ S@@ R@@ QG@@ఐs+parent_keys i 5 X i 5 c@@@0@@@ gX@@ఐ۠!l i 5 d i 5 e@b@@,P@ tg@@ภ":: i 5 j i 5 l@; (W@ &B@AA@A @@ ఐ"ki i 5 g i 5 i@@@(@ఐ!l i 5 m i 5 n@@@ ?:P@ w@@@ {Q@ ~Q@ |@@i 5 fi 5 o@@^P@ z@@i 5 @i 5 p@@@@@ O@ Q@ b@@ @@ @@@ P@ N@ఐb.add_parent_keyj q zj q @?@@@a\@@ @@ఐU"ki-j q .j q @.@@n@@@@j@@2i 5 9@@l@@@m5@ZA@@wr@@ N@ Z@@@:g   @@@o@ఠ'new_keyGl  Hl  @WnA@@1split_from_parent @@ @@ N@ @@@ N@ @@@@@T@@@N@ @#intA@@@@N@ @@N@ @@ N@ @@ N@ 3TSSTTTTT@@@@࣠11A5l  l  @oA@@76@@@ 3gffggggg@Ll  s@@@@@l  @@+init_orphanAl  l  @pA@@B3|{{|||||@%SR@@@ @!@"@@@@  @@@ఠ#idxm  m  @qA@@J@@@ Q@ 3@)a@ @!@@@డ .&Atomic-fetch_and_addm  m  @ m  m  @@@Jj@@@ t@@@ s@q@@@ ru@@@ q@@ p@@ o@-  .  @@,G@ @@@b@@@ @@@ @@@@ @@@ @@ @@ A@@ఐ+key_counter m   m  @@@~8@@@ R@ R@ @@@ Y@@Am   m  @@B@@@ R@ R@ i@@Z @@mj@A@*m   @@@ఠ!k5n  6n  @ErA@@@@@@ Q@ Ġ@@@ Q@ 3@@@@@@@ఐ#idxTn  Un @@@@@ఐĠ+init_orphan`n an  @@@@@dn  en @@@)@ @@ &@A@mn   @@ ఐ1split_from_parentyo"zo3@ְ@@)(@@@ 3YXXYYYYY@;QJ@K@L@@@Ġ$Nonep9?p9C@;͐@@W@@@@AA@AE@@@@ @@CB@@@ 3srrsssss@@@@@HG@@@ @@@ภ &p9Gp9I@ %@@@@@@Q@ Q@ @Ġ$SomeqJPqJT@;+@A@AA@Al@@ఠ%splitqJUqJZ@sA@@rN@U@ J@@@@@xw@@@ O@@|{@@@ S@@@ఐ .add_parent_keyqJ^qJl@@@@@@@ @@@ @@ 3@h*#@$@%@@@@ภ"KIqJnqJp@;@B@@AAA@@ఐˠ!kqJqqJr@@@@@@ T@ "@ఐN%splitqJtqJy@*@@M-@@qJmqJ{@@@@@ T@ 5@@A@@v6@@@Aor|@@y@ఐ!k's@@@@ @@@@@@@@m@A@N@@A@@@Aఠ*maybe_grow;w <w@KtA@@@@@@N@@@@XN@@@3$##$$$$$@m @@@@@࣠@#idxAYwZw@iuA@@365566666@(@#@@O@@&@'@@@@  @@@ఠ"stpx%qx'@vA@@<@@@1P@!3RQQRRRRR@);@ @!@@@ఐ^-get_dls_statex*x7@=@@@_@@@%S@@@$@@#@@ภ x8x:@ @@@r@@@2Q@6'@@@@+(@A@x! @@@ఠ"szy>Fy>H@wA@@Y@@@BP@73@?MF@G@H@@@డ&%Array&lengthy>Ky>P@ y>Qy>W@@@!a@ @@@ '@@@ @@ -%array_lengthAAs@@@qara@@pA@@@@ @@@HP@<@@@;@@@@:@@9?@@ఐ"sty>Xy>Z@I@@@@DN@@?@@SO@A@y>B@@డu!<z^iz^j@@!a@@ 3@@@-@@,@@+)%lessthanBA ֠@@@@   @@ :S@@@@N@N@N@N@VN@M@ @@@L@@K@@J3@@@@@@@ఐ#idxIz^eJz^h@а@@ @@ఐ"szVz^kWz^m@@@)@@@@K@@@WP@U#@ఐ"stfz^sgz^u@@@!-@Aఠ0compute_new_sizet|u|@xA@@@HP@[IP@Z@@]3UTTUUUUU@@@@@࣠@!sA||@yA@@3eddeeeee@Q@@@\Q@Y@@@@@@  @@డ}}@@@@vQ@e@@@@d@@c@@b3@ ,4@#@$@@@@ఐb#idx}}@?@@z@@ఐ@!s}}@@@N@@@@@@@nR@m#@ఐP!s}}@*@@^-@ఐn0compute_new_size}}@V@@@ml@@p<@@డU!*}}@@#intA@@@@@@@ @@@@@@@'%mulintBA @@@@ :-- :--F@@ p@@@@@@@y@@@@x@@@w@@v@@ut@@B&}'}@@4@@@S@S@@@ఐ!s9}:}@@@@@=}>}@@ S@@@`@@@C}@@@A@@@@P@@@@J| @@@ఠ&new_szUV@ezA@@%P@332233333@@@@ఐ0compute_new_sizede @ذ@@@@@@@ఐƠ"szs t@7@@DQ@@@@@@A@z@@@ఠ&new_st#@{A@@VS@@@P@@@@P@3mllmmmmm@ E>@?@@@@@డ%Array$make&+@ ,0@@T@@@T@@@@%~(@@@@@@@#@@ఐl&new_sz17@-@@k0@@డ 3$none'Obj_opt8?@ @D@@2@@JF@@7@@PG@A@@@ డK%Array$blitHNHS@ HTHX@@@!a@ G@@@ @@@@ @Ҡ@@@ @@@@ @@@@ $unitF@@@ @@ @@ @@ @@ @@ @WW@@N@72@@@/ J@@@P@@@@@1@@@@0@@@@/@@@@.@@@-@@@@@@@@@@@@@3!  !!!!!@@@@@@@ఐ堐"stUHYVH[@@@ @,@@@@aH\bH]@@f@@@Q@Q@"@@ఐ&new_sttH^uHd@,@@tV@@@Q@Q@7@@@HeHf@@~@@@Q@Q@G@@ఐ점"szHgHi@]@@@@@Q@Q@[@@ @@@@@P@a@ఐ 9compare_and_set_dls_state@ @@@ @@@@ @@@ @@@@@@@|@@ఐ^"st@@@ 0@@@P@P@@@ఐ]&new_st@@@ 1@@@P@@@7@@@@@P@@ఐr&new_st@@@N@@ఐˠ*maybe_grow@@@@@@@@ఐ#idx@@@@@@@@@@!@0@@"@A@@#@@@$@{v  @@'@"z^b@@@@@m@@@@A@@@@N@ @@@+w @@ @⠰@ఠ#set8 9 @H|A@@@@ @@@@@@@@@!a@@<@@@@@@@N@310011111@@@@࣠@_A@ఠ#idx i !j $@y~A@@+@@@NP@3KJJKKKKK@@w x@t@'P;@@@A@@@A@} ~ @@@@}A@@@@ఠ%_init  & +@A@@B@@   ,@@@&@K@@#@@ @@!x A@ . /@@+@@@#3~}}~~~~~@5C<@=@>%`@@ @@@  @@A @@@"г!a 2 3@@@@@ @@ - 4@@@@@@@@ఠ"st 7?7A@AA@@ @@@6S@&3@3A9@<@.@@@ఐ*maybe_grow7D7N@@@@ @@@* @@@)@@(@@ఐ#idx7O7R@R@@$@@@@(%@A@7;@@డj%Array#set @DA@ ۠!a@ @@@ @@@@ @ @@@ @@ @@ @@ /%array_safe_setCA @@@@@ m m@@ C@"A@@  U@@@TR@>@@@@@@@@?@@@@=@@<@@;@@:3@o}v@w@x@@@@ఐ"stFR@F@ H@@ @@P@@ఐ#idx`@Ha@K@@@@@డ$some'Obj_opts@Pt@W@ w@Xx@\@@@  @@@@@@@ y@ v @@@@@@S@Y K@@@X@@WF@@డ#Sys/opaque_identity@^@a@ @b@q@@@!a@a@@'%opaqueAA @@@'sys.mli;;;;@@+Stdlib__Sys\@@@@4T@@@t@@ఐ'!x@r@s@@@A@@@]P@@@@VQ@@T@^@@T@@x@@@M@X@@@ ZAY@@3@b@@@A@`@`_@@ఠ5array_compare_and_set`ww@BA@@@ n@@@@N@@ @@@N@@N@@N@@@@N@@@N@@@N@@@N@@@N@3@@@@@@࣠@!abAww@,CA@@63@C$wy%@@@@@  @@!icA0w1w@@DA@@>3        @!M@@@@@@@@&oldvaldAAwBw@QEA@@E3@R@@@@@@@@&newvaleARwSw@bFA@@P3/../////@Y@@@@@@@@@ఠ&curvalfe#+f#1@uGA@@kN@N@3EDDEEEEE@#i@@@@@డq#getv*+|#4}#9A@ L!a@ @@@ @ 2@@@  @@ @@ /%array_safe_getBA &@@@@ %d:: &d:r@@ $B@A@@6N@@@@@@@@@@@@:@@ఐ!a4#5@{6@@F@@ఐ!i#7#8@w@@S@@DC@@!T@A@#'E@@డ/"===K=M@@!a@@@@@@@@?@@>#%eqBA@@@@@@Z@@@@}@@@@@@@@3@@@@@@@ఐ&curval=D=J@ @@@@ఐɠ&oldval=N=T@@@ @@@@@@@S@#@ డ~%Array*unsafe_set\b \g@ #\h$\r@@@=!a@ -@@@ @;@@@ @  @@@ @@ @@ @@ А1%array_unsafe_setCA Ҡ@@@@@ GG GG@@ r@(#@@@]\@@@@W@@@@d@@@@@@@@@j@@ఐH!aa\sb\t@-@@zw@@ఐA!in\uo\v@)@@{@@ఐ,&newval{\w|\}@@@x@@`@@ @@@S@@ภ$true@;@@@M@@@AB@@AA@@@@@@@@@=Z@@@ภ%false{@;6@@@@B@@AR@@5@~@@R@@=A@@@@@<@A@N@@A&inlinew~w@%neverww@@@@@@w|w@@@@@ఠ#getg@HA@@@ !a@ @#@@@"@!@@ N@3@@@@@@࣠@trA@ఠ#idxj@JA@@ @@@&3@5@&iP;@@@A@@@A@ @@@@IA@@@@ఠ$initk@#KA@@@ @@@)@@@(@@'#@@!"@гP#key,-@г!a56@@@@@=@@@e@@@B @@AB@@@m*@@@@@@M@@  @@@ఠ"stlVW@fLA@@"@@@@R@0387788888@dpi@j@kTM@N@O@@@ఐ2*maybe_growmn@@@@@@@4;@@@3@@2@@ఐ#idx@"@@/@@@AS@CS@B-@@  @@1.@A@ @@@ఠ#objm@MA@@@@@YR@D3}||}}}}}@FTM@N@O@@@డ8a=bA7A@@7R@H@@@J@4@@@I@@G@@F@@ఐw"st@(@@@.@U-@@ఐ堐#idx@{@@V@@@SS@[S@ZA@@32@@+B@A@4@@డX'is_some'Obj_opt @ @@@@@@@@@@@@@ @@@@@@_@@@^@@]3@m}v@w@x@@@@ఐ#obj@ @@@@@fR@hR@g@@1 @@ @@@iR@e@డ*unsafe_get'Obj_opt:);0@ >1?;@@@@@@@@@ @@@ @@@oP@@@k@wR@n@@mE@@ఐƠ#obj_<`?@O@@)@@@tR@vR@uY@@0 @г!asBtC@@$@@@jh@@z({D@@@@@@/Q@yQ@xt@@@T^T_@@@@@~3lkklllll@@@@!vn  @NA @@@}г!aTbTc@@@@@{@@A@@@@@@ఐ$initTfTj@W@@@k@@@@@@@@0@@ภMTkTm@L@@@~@@@S@@@@@г֠98@@@@L5@(A@@S@@@R@R@A@TZ@@@ఠ'new_objoq{q@OA@@@@@R@3@hn@q@e@@@డk$some'Obj_opt q q@ qq@@@@@@@@R@@@@@@"@@డ#Sys/opaque_identity,q-q@ 0q1q@@@@@"S@@@>@@ఐ!vBqCq@H@@/K@@FqGq@@N@@?@@RO@A@Jqw@@@ఠ"stpU-7V-9@ePA@@!@@@R@376677777@esl@m@n@@@ఐC-get_dls_statej-<k-I@"@@@D@@@8@@@@@@@ภ}-J~-L@@@@W@@@S@'@@@@+(@A@-3 @@ఐ5array_compare_and_setPYPn@@@@@@@Q@@@@@@@@@@@@@@@@@@@@@3@R`Y@Z@[@@@@ఐg"stPoPq@ @@@ @@@ఐՠ#idxPrPu@k@@@@@R@R@&@@ఐF#objPvPy@ϰ@@GR@5@@ఐ'new_objPzP@@@VR@D@@a@@ @@@R@J@ఐh!v@@@Q@Q@X@@ఠ+updated_objq@"QA@@8@@@R@3@n@@@డ $ؠٰ*+'AA@@R@@@@@@@@@@@@@@ఐ"stD!@@@ @,@+@@ఐ\#idxR#S&@@@@@@S@S@?@@32@@+@@A@^ 4@@డ'is_some'Obj_optn+6o+=@ r+>s+E@@w@@@;@@@e@@@@@3WVVWWWWW@rk@l@m@@@@ఐy+updated_obj+F+Q@ @@U@@@R@R@@@( @@ @@@R@@డ *unsafe_get'Obj_optR`Rg@ RhRr@@n@@@u@@@ @@@ @R@ @@ ?@@ఐ+updated_objRsR~@I@@@@@R@R@S@@* @г!aRR@@$@@@b@@R_R@@@Q@Q@j@ ภR@R@@@@@@x@@@Q@Q@~@+3 @@@@@@PV@@@}@@@@@ @EN@@t@@@v@#@@f@}@г!a@@@@@.@@@@@A@@@K3@!@@@A@@@>A+)key_valuesN*+@@;@@"KVt!a@)O@%@@@'O@*@ @@@,HI@@XSA@@A@@@@@L@@@@[RA@#!! S@ @г"#key\]@А$)3:99:::::@@@?;@@@A@@@@@@@@@@hi@@@6 @@А!a/pq@@@г0)key_valuey1@@72@@4@@A@0@@03@3UTTUUUUU@@@@ఠ0get_initial_keysu@TA@@@;@@@SO@Px@@@U@@@WO@Q@@RO@O3yxxyyyyy@?|v@@@࣠@0AĠ/@.@@@@ 3@-Tr@@@@@  @@డ$$List#map@ @@@@!a@!b@@@@$listK@@@@@@@@@@@(list.mli@@,Stdlib__ListW@)$@@@@@@@Q@b@@@YQ@Q@$Q@@@@'@@@$@@@@@@@3@Z@@@@࣠@AĠ"KI)+@ 'ఠ!k#-$.@3VA@@="$aS@@@@@@3        @;@@OA@@@A@@@@DUA@@@ఠ%split>0?5@NWA@@@@@@@@@@@H(I7@@X@@@@ภ"KVR;S=@;$@#B@@AAA@@ ఐ@@@@ఐe!kCD@@@"@%@@@ఐZ!vST@@@("@@I@@@@@T@(@]^@@@@@@@@Q@Q@3A@@AAAAA@@@@@ఐ,!ls@@@ؠ@@@Q@Q@@@&@@H@'A@ZO@.@A@+@+*@F@@@@@A@f?@2 @@@vNA@w@A@R@@XN@f>@ k @ @?@yA@#i@@@@@3@o@@x@.3@@@@@x@@@ఠ&get_idˠ@^A@@@ȠK@@@@O@@@@O@@@O@3@ N@B@A@@@@@@@G@@A@@l@Q@@A@o@A@)@B@@@  @ $@:@A@@a@@@Y{@@@࣠@Aঠ&domain  A3R@@@@@3@@A@A@@A@ఠ ͠  @ 3_A@@@@3        @Vo - .@@@@@A 0 1 @@kQ@ @@@@ఐ&domain =@@@@@o3        @ @@@A@O@@A@@@r@ఠ$selfϠ Q R@ a`A@@@@@@O@ i W@@@O@@@O@3 > = = > > > > >@@@@@@࣠@AĠ s t!@@@@@3 O N N O O O O O@* z {/@@@@@  @@డ $self#Raw $ '@  ( ,@@@@@@8@@@@@ @@@&@@@ A@@@ @@ .@@ภ. -2@,@3@@8@@@R@=@@)9@@T>@B:A@`O@A@A@>@>=@S@ఠ.is_main_domainҠ 15 1C@ aA@@@v@@@ O@@@@.O@@@O@3        @r@@@@@࣠@gAĠf 1D 1F@e@@@@3        @) 11 1]@@@@@  @@డZ!= 1Z 1[@@!a@@1@@@'@@&@@%&%equalBA@@@@yy@@Q@@@@ @@@0Q@&@H@@@%@@$@@#6@@ఐؠ$self!)1J!*1N@S@@@@@@5@@@4@@3M@@ภ!<1O!=1Q@@@@@@@@@࣠@!wAĠ!v%'H%'J@!u@@@@2O@@@@ภ!%'N%'P@!@@@!@@@y\@&'C&'Q@@FQ@|a@@/@@xR@nd@@@e@&b@@g@@&d@@i@meA@O@l@A@i@ih@~@ఠ+at_exit_key& Y]&!Yh@&0jA@@@@@@ߠ@@@@@@!@@@O@!@@@O@@@O@@@@@O@3&&&&&&&&@@@@@@డ 'new_key#DLS&RYk&SYn@ &VYo&WYv@@  @@@@@@@@@@@@@@@@@@@@@@@@@(@)!@@&"@FF@@@@@@@-@@@N@@@@@@̠@@@@@@@I@>ภ$None&C@&C@@@dd@@@@@W@@࣠@"*AĠ")&Y|&Y~@"(@@@@X@@@k@@@@࣠@"=AĠ"<&Y&Y@";@@@@{@@@@ภ"F&Y&Y@"E@@@"p@@@@&Y&Y@@O@@&Yw&Y@@P@P@@@@@@A@&YY@@ @@ఠ'at_exit&&@&kA@@@@"@@@WO@S/@@@YO@TA@UO@@@@}O@@@O@3&&&&&&&&@@@@@@࣠@!fA''@'lA@@&@@@@@@''@@@&@@@&@@@@@3''''''''@)#?@@@@@(old_exit@'>mA@@@@@@@ @@ б@г$unit'D'E@@%@@@ @@г%$unit'P'Q@@-@@@,@@@@@/@@=@@@@@dT@hH@@D@@]I@7E@@^J@NFA@jQ@kM@A@J@డ"#set#DLS(O  (P @ (S (T @@@@@@@@@@@@@@@@@@@,@-@@@@*@@@r@@%@@@@$%@@@$(@@@@@@@P@s@@q@@$1@@@f@@@@@P@p:@@@o@@n@@m3(j(i(i(j(j(j(j(j@@@@@@@ఐ~+at_exit_key( ( @@@@e@@@@;@@~Q@Q@@@ఐ栐(new_exit( ( '@'@@5*@@m@@+@@@@@@@A@O@@A@( @@ @à@ఠ*do_at_exit()-()7@(oA@@@$@@@O@(l@@@O@@@O@3((((((((@@@@@@࣠@$sAĠ$r()8():@$q@@@@@@@@@@(=C(=D@@@(@@@'@@@@@&@!f@)pA@@@@4@@@@@б@г$unit) =G)!=K@@!@@@C@@гH$unit),=O)-=S@@P@@@O@@@@@R@@98A@@@7@@@]@@@@@\@డ##get#DLS)K=V)L=Y@ )O=Z)P=]@@ܰ@@@ܠ@%@@@%@@@@@S@@@@ @@@@ఐM+at_exit_key)m=^)n=i@l@@@@@T@@@, @б@г) cb@@@@_@г)_^@@@@[@@ @@Z@D!A@@@@@@@@@@@R@@A@)=?-@@ఐ!f)mo)mp@@@@@@@@@@@@@@3))))))))@ @@@@ภ%<)mq)ms@%;@@@@@@R@@@@@@* @@@ A@O@@A@)))@@@蠰@@)uy)uz@@_@@@O@3))))))))@@ @ @@@డ(F̠ΰ)u)u@˰@@@#à@y@@@}@@@@@O@@@@@@@@@@@@%@@డ(i7do_domain_local_at_exit&Stdlib* u}* u@ *u*u@@#@)@@@(@@@@@@@@@#HǺǺ#HǺ@@$2@@@$@@@@P@P@T@@ఐg*do_at_exit*6u*7u@^@@@%@@@`@@@@@i@@7 @@mj@A@*Cuu @@@m@ఠ%spawn*P*Q@*`qA@@@@&@@@O@#@ O@A@O@  @@@ O@@@O@ @࣠@!fA*v*w@*rA@@"3*S*R*R*S*S*S*S*S@/*~*"#@@@@@  @@ ఐ5do_before_first_spawn**@K@@@&;@@@@@@@@3*q*p*p*q*q*q*q*q@+C@"@#@@@@ภ&%**@&$@@@&Q@@@R@!@@@@@@@"Q@@@ఠ"pk** @*sA@@*K@@@0@@@/Q@#3********@1@@@డ%H0get_initial_keys#DLS* *@ **!@@@&@@@M#@@@@@@@@@`@a@@@&@@@(Z0@@@'@@@&@@%/@@ภ&+"+$@&@@@&@@@1R@5?@@2@@H@@A@+  @@@ఠ)term_sync+ms+m|@+%tA@@ (נO@P@:@@@Q@C9@)#mut+t+u@డ)%Mutex&create++@ ++@@@$unitF@@@%%Mutex!t@@@@@@)mutex.mli``@@-Stdlib__MutexA@@@@@@@O@@@N@@Mt@@ภ'3++@'2@@@)@@@ZR@^@@7@@u@@@IR@Y@t$cond++@డ*3)Condition&create++@ ++@@@$unitF@@@%)Condition!t@@@@@@-condition.mli@@1Stdlib__ConditionA@@@@@@@k@@@j@@i@@ภ',,@'@@@)@@@vR@z@@7@@@@@eR@u@@@,,@@@@@@A@,mo@@@ఠ$body, ,!@,0uA@@@'@@@Q@}O@O@~@@Q@|3, , , , , , , , @"@@@@@࣠@'AĠ',?,@@'@@@@3,,,,,,,,@',F,G""@@@@@  @@ డ&*create_dls#DLS,[  ,\  @ ,_  ,`  @@@(@@@"@@@@@@"m@"n @@@(@@@#@@@@@3,M,L,L,M,M,M,M,M@2@@@@ภ',}  ,~  @'@@@(+@@@V@@@+@@@@@U@@ డ' 0set_initial_keys#DLS,   #,   &@ ,   ',   7@@@y@@@@@@u@@@@@@@@@@@@@@@@@@@@@G@@ఐ "pk,   8,   :@@@ @@@@@@V@V@_@@:@@ @@@U@e@@ఠ#res,  < F,  < I@,vA@@O@O@3,,,,,,,,@@@@ఐ!f,  < L,  < M@]@@ @@ภ(-  < N-  < P@(@@@(@@@@@@@@A@-  < B@@ఐ-#res-  T Z-  T ]@,@-@.@@-3,,,,,,,,@7@@@@@0,@~@@1-@@@2.@ఠ#res-#  -$  @-3wA@@@3-,,-----@@@@@A@@@ ఐd*do_at_exit-3!!-4!!@[@@@(@@@]@@@@@3--------@!Z@@@@@@ภ(˰-I!!-J!!@(@@@(@@@V@@@@@ @@@U@@ఐ;#res-^!!-_!!@ @@z#@/@@5$@ఠ#exn-l!!-m!!@-|xA@@,f@@@@-t!!@@@@@ ఐ*do_at_exit-""-""@@@@)0@@@@@@@@3-f-e-e-f-f-f-f-f@L' @!@"@@@@ภ)-""-""@)@@@)F@@@V@@@@@ @@@U@@@-""-""@@,@@@"@@@ภ)6-""-""@)5@@@U@,@@@-""-""@@/@డ,'%raise-""-""@ @@@ @@@U@@@B@@ఐm#exn-""@K@@ @@@U@U@U@@@@V@*@@W@@@A-@@@A@Q@@A@@@ఠ&domain-""-""@.yA@@ @@@Q@3--------@@@@@@డ. %spawn#Raw. "". ""@ ."".""@@@@+@@@*@@@*@@@ @@@@@@@**@*@@@@+@@@ @@@@@@ @@@@@@@9@@ఐ$body.?"".@""@C@@@+/@@@(@@R@M@@ఐ>)term_sync.S"".T""@"@@?<@@@R@R@b@@S @@fc@A@.`"" @@ຠK&domain.j"".k"#Aఐ @|@}@~@)K@@@P@3.Q.P.P.Q.Q.Q.Q.Q@}@@@\)term_sync."#."#Aఐt @U@)R,P@@@@P@@@@.""@@-@3@@.@N@@/c@@@0r@@@1@ @@2@"A@DO@ @A@@@à@ఠ$join.##.##@.zA@@@@@O@"@@@#O@O@@@O@3........@oh@i@j@@@࣠@*JAঠ)term_sync.##.##(Aఠ@.{A@)"@@@$3........@5.##.+$/$G@@@@@A.##.##.@@1Q@  @@@@ Р.#Raw. #1#<. #1#?@@ 3........@%"@$@#@@@@A3........@@@. #1#7 @@Aఠ$loop/!#C#M/!#C#Q@/|A@@@*@@@.Q@*-x-/]W@?-.@@@u@@@tQ@)@@,3........@&@@@࣠@*AĠ*/&!#C#R/'!#C#T@*@@@@!3////////@6-@(#@@+R@(@+@,@@@@  @@ఐk)term_sync/="#W#a/>"#W#j@L@@'6O@O@iO@4@@@5T@23/$/#/#/$/$/$/$/$@"@@@%state/P"#W#k/Q"#W#p@@@@@@3 @Ġ'Running/a##v#|/b##v#@@@@@$"@@@:?@@(&@@@;C@@@ డ-)Condition$wait/{$##/|$##@ /$##/$##@@@@@@@&Stdlib%Mutex!t@@@@@@@@@@@@@B@"@@@@@@N@@@@M@@@L@@K@@J@@ఐ䠐)term_sync/$##/$##@Ű@@yO@a@@@`W@^@$cond/$##/$##@z@@@@@ZW@bW@_@@ఐ)term_sync/$##/$##@@@Ġ@@@hW@f@#mut/$##/$##@@@d@@@YW@jW@g@@w @@#+@@@kV@X@ఐ$loop0%##0%##@װ@@@@@m@@ภ+0 %##0%##@+@@@V@s@@@@@@@@Ġ(Finished0&##0&##@;.D@.@.>@@@~@@@}@A@AA@A.>.<@.#ఠ#res02&##03&##@0B}A@@'&.R@@@C@@@B@@@! @@@@@D@@@@@E@@@ఐ#res0N'##0O'##@@@@@E30+0*0*0+0+0+0+0+@*&@@@@@A0U"#W#[@@I-@1A@@SN@@Q@2@@@0\!#C#E@@డ.%Mutex'protect0l)##0m)#$@ 0p)#$0q)#$@@@@@@@@@@@!a@@@@@@@@~ I I~ I n@@E@@@@@@@@@@@@.@@@@@@Q@@@ @@@@30y0x0x0y0y0y0y0y@w@@@@ఐ۠)term_sync0)#$ 0)#$@@@l@@@R@@#mut0)#$0)#$@v@@.@@@R@R@$@@ఐ̠$loop0)#$0)#$@@@@,|@@@ǠƠ.@@@@@@@@>@@s@@I?@Ġ"Ok0*$!$%0*$!$'@;"Ok+&result!a@x!b@y@@@v@ @A@@B@A**@@@+@ఠ!x1 *$!$(1 *$!$)@1~A@@T@300000000@@@@@@(@@/-@@@@@@ @ @  /5@@@@@@@@@ఐ!x1(*$!$-1)*$!$.@@@ @@t311111111@)@@@Ġ%Error18+$/$319+$/$8@;%ErrorO@F@AA@B@A**@@@+Q@ఠ"ex1I+$/$91J+$/$;@1YA@@/e@@@@@@@@BA/m@@@@@@@ @JI/u@@@@@@@@@డ/%raise1j+$/$?1k+$/$D@@@@@@@S@@@31M1L1L1M1M1M1M1M@L1*@+@,@@@@ఐ8"ex1+$/$E@ @@@@@S@S@@@!@@@@@A1)##@@B@2@@t@1 #1#3@@31i1h1h1i1i1i1i1i@@@@A@O@@A@@@ܠ@ఠ8recommended_domain_count1-$I$M1-$I$e@1A@@@-@@@-@@@@@O@311111111@@@ @@@డ1A@L@ H 2CBMM2DBM@ H OCaml 2IC2JC@ H 2OD2PD3@ H KC Sivaramakrishnan, Indian Institute of Technology, Madras 2UE442VE4@ H Stephen Dolan, University of Cambridge 2[F2\F@ H Tom Kelly, OCaml Labs Consultancy 2aG2bG@ H 2gH2hHg@ H Copyright 2019 Indian Institute of Technology, Madras 2mIhh2nIh@ H Copyright 2014 University of Cambridge 2sJ2tJ@ H Copyright 2021 OCaml Labs Consultancy Ltd 2yK2zKN@ H 2LOO2LO@ H All rights reserved. This file is distributed under the terms of 2M2M@ H the GNU Lesser General Public License version 2.1, with the 2N2N5@ H special exception on linking described in the file LICENSE. 2O662O6@ H 2P2P@ H************************************************************************2Q2Q@ . Low-level primitives provided by the runtime 2T242T2f@ R The layouts of [state] and [term_sync] are hard-coded in [runtime/domain.c] 2W2X@4 protected by [mut] 2_VZ2_Vr@ * [unsafe_get obj] may only be called safely if [is_some] is true. [unsafe_get (some v)] is equivalent to [Obj.obj (Obj.repr v)]. *u o If necessary, grow the current domain's local state array such that [idx] * is a valid index in the array. 2u2v@ 5 We want a implementation that is safe with respect to single-domain multi-threading: retry if the DLS state has changed under our feet. Note that the number of retries will be very small in contended scenarios, as the array only grows, with exponential resizing. 2kq2@ [Sys.opaque_identity] ensures that flambda does not look at the type of * [x], which may be a [float] and conclude that the [st] is a float array. * We do not want OCaml's float array optimisation kicking in here. 2VZ2?@ d Note: we cannot use [@poll error] due to the allocations on a.(i) in the Double_array case. 22"@ u At this point, [st] or [st.(idx)] may have been changed by another thread on the same domain. If [st] changed, it was resized into a larger value, we can just reuse the new value. If [st.(idx)] changed, we drop the current value to avoid letting other threads observe a 'revert' that forgets previous modifications. 22 ,@ X if st.(idx) changed, someone must have initialized the key in the meantime. 22@:******* Identity *********22@;******* Callbacks *********22@ 7 first spawn, domain startup and at exit functionality 22@: Release the old function 22&@ '****** Creation and Termination *******22@ = [term_sync] is used to synchronize with the joining domains 2)+2)l@ m Run the [at_exit] callbacks when the domain computation either terminates normally or exceptionally. 3  g k3  @ If the domain computation terminated normally, but the [at_exit] callbacks raised an exception, then return the exception. 3  3!p!@ If both the domain computation and the [at_exit] callbacks raise exceptions, then ignore the exception from the [at_exit] callbacks and return the original exception. 3 !!3 "I"@@?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o2stdlib__Domain.cmo"-c33 @/builds/workspace/main/flambda/false/label/ocaml-linux-32/stdlib @@0pU[y,-Stdlib__Int320kkEc¿?boD,Stdlib__List0n/0-Stdlib__Mutex0I}g,EY+Stdlib__Obj0@MREN$ +Stdlib__Seq0]h+F&}+Stdlib__Sys0M xIor @@A\@@Б--@@+b+++$@Yc@@@@.)@%/0Е0@ؑ@ !@!/!9''@)[)e3p3@ > H,.,8@AK10@  y@Qz))//0;0@@@_i@**@ @@(m(@ɑӰ#>#H&&11@##12 @@3=@.ݒ.@@1]1z@$$'y'1'0@  11@&ؑ&@Αذ##(G(Q@  !w--@  @@3ۘ3@y@  ˰//@- -..0C0~@-7'(@* *Y++V@   ؑ %D%N%%@^h./@is@.•.@@@,+@*x*@!**@Xb@++.u.030d@@t@@""--@..@@@@P40@.D.@e@b@@@A)A(@@@%@%@@@ @ @@@ABC@@A \@ Y@@@B@@@@/@/@@@AC@@@@/}A/o@@@@@@@ABD@@@@@@@@A@ @@@@@@@AB @ @@@/bA/J@/CC/;@@@/9C/.@@@AB@@ACE@@