Caml1999I037K*Cmt_format-binary_annots;@@&Packed͐%Types)signature@@@$listK&stringQ@@@@@@@@;file_formats/cmt_format.mliee@@(F@.Implementation;)Typedtree)structure@@@@@ff @@:G@)Interface<)signature@@@@@"g  #g %@@IH@6Partial_implementation=%arrayJ+binary_part@@@@@@@@9h&(:h&U@@`I@1Partial_interface>@@@@@@@@KiVXLiV@@rJ@@@A@@@@@Od@@@@uC@A@;@@1Partial_structure?Q)structure@@@@@albl@@K@6Partial_structure_item@`.structure_item@@@@@pmqm@@L@2Partial_expressionAo*expression@@@@@nn@@M@/Partial_patternB~0pattern_category!k@@@@/general_pattern @@@@i@@@o  o V@@N@2Partial_class_exprC*class_expr@@@@@pWYpW{@@O@1Partial_signatureD)signature@@@@@q|~q|@@P@6Partial_signature_itemE.signature_item@@@@@rr@@Q@3Partial_module_typeF+module_type@@@@@ss@@R@@@A@@@@@k@@@@D@B@/dependency_kind;@@9Definition_to_declarationH@@u u $@@T@:Declaration_to_declarationI@@u %u A@@U@@@A@@@@@u@@A@S@A@)cmt_infos;@@+cmt_modnameK@@$Misc'modname@@@w U Ww U m@@5W@*cmt_annotsL@@9@@@x n px n @@AX@ɠ+Stdlib__Sys0b'8=OIn.Stdlib__String0 w_OA4D"Q~~+Stdlib__Set0ܔ@Z8XWaa2+Stdlib__Seq0?72#[O.Stdlib__Result0p~ !ԥ//+Stdlib__Map0*4ɇ2.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Digest0#z25I*.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:,Shape_reduce0D&p{'}d%Shape0 M``ll)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y+Outcometree0BuG^)= 9c $Misc0Bpg]?[q)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ)Load_path0,j " nn7ݠ,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ#Env0S B2*Data_types0v\3,Svh*Cmi_format0`M{?w}@0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0DGl}%Y5Lhi(Asttypes0eT$BbRM dc@@@Caml1999T037Z :q6C*Cmt_format*ocaml.text&_none_@@A< cmt and cmti files format. ;file_formats/cmt_format.mliP77P7X@@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@ @@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@Aࠐ$Misc$MiscRZ_RZc@@A3@ @ARZZ@@@ . The layout of a cmt file is as follows: := \{\} \{cmt infos\} \{\} where is the cmi file format: := . More precisely, the optional part must be present if and only if the file is: - a cmti, or - a cmt, for a ml file which has no corresponding mli (hence no corresponding cmti). Thus, we provide a common reading function for cmi and cmt(i) files which returns an option for each of the three parts: cmi info, cmt info, source info. Tee`u@@@@@@ࠐ)Typedtree)Typedtreebb@@A3@% @Ab@@(@A+-binary_annotsAdd@@;@@&Packed͐%Types)signature@@@u]@@@v@@@x@@ee@@F@.Implementation;@)structure@@@y@@ff @@G@)Interface<O)signature@@@z@@ g  g %@@&H@6Partial_implementation=+binary_partA@@@{@@@}@@"h&(#h&U@@;I@1Partial_interface>@@@~@@@@@5iVX6iV@@NJ@@@A@@@@@9d@@@@QC@@#ff@eAe@Q@гh%TypesLeMe@mPeQe@@@w3POOPPPPP@;@@@A@@@@@ @@@;;@@@A@@@@@[k\s@@@@tD@@A@@г{$listfew@г&stringneoe@@@@@@@@@@#vfwf@x@гf@@-@@@@@#g g @x@гg @@<@@@@@#h&*h&@@r@г%arrayh&P|@г+binary_parth&Dh&O@@U@@@V@@@@@#iVZiVk@y@г%arrayiV{@г+binary_partiVoiVz@@o@@@p@@@@@@A@@+kk@@;@@1Partial_structure?)structure@@@@@ll@@K@6Partial_structure_item@).structure_item@@@@@mm@@L@2Partial_expressionA8*expression@@@@@nn@@M@/Partial_patternBG0pattern_category!k@B@@@@T/general_pattern B@@@@@@@@o  o V@@3N@2Partial_class_exprCk*class_expr@@@@@)pWY*pW{@@BO@1Partial_signatureDz)signature@@@@@8q|~9q|@@QP@6Partial_signature_itemE.signature_item@@@@@GrHr@@`Q@3Partial_module_typeF+module_type@@@@@Vs@@nR@@@A@@@@@@@@@#]l^l@@гfl@@@@@@@#lmmm@@гum@@#@@@@@#{n|n@@гn@@2@@@@@#o  o @p@гo "o 2@АEo o !@@@H@@гo 8o G@А!kUo 5o 7@@@X @@@г+binary_parto K@@a@@@#pW[pWm@@гpWq@@p@@@@@#q|q|@@гq|@@@@@@@#rr@@гr@@@@@@@#ss@@гs@@@@@@@@A@@@-@A+/dependency_kindGBuu @@;@@9Definition_to_declarationH@@u u $@@T@:Declaration_to_declarationI@@u %u A@@'U@@@A@@@@@u@@A@*S@@#@@@@@#u '@@@@@@A@@@3@^YUO@A@A+)cmt_infosJC-v B G.v B P@@;@@+cmt_modnameK@@'modname@@@;w U W{  ?{  @@@@@ @@@@@T@@@@@@#S~  @@@Ш@г&option\~  ]~  @г&stringe~  f~  @@Ѱ@@@Ұ @@@@@@#o  @@@Ш@г&stringx  y  @@@@@@@@#@  @@@Ш@г)Load_path@  @  @@  @  @@@@@@@@@#A  @@@Ш@г&optionA  &A  ,@г&stringA  A  %@@@@@ @@@@@@#àðB . ?@@@Ш@гƠ#EnvB . BB . E@˰B . FB . G@@@2@@@@-*5@@#̠̰C I V@@@Ш@гϠаC I YC I ]@@C@@@@--F@@#РаD _ u@@@Ш@гӠ&optionD _ D _ @гؠڰD _ xD _ ~@ݰD _ D _ @@@d@@@e @@@@-h@@#ޠްE  @@@Ш@г᠐$bool E   E  @@w@@@@-z@@#F  @@@Ш@г砡%Shape#F  $F  @'F  (F  @@,F  -F  @ @1F  2F  @@г:F  ;F  @@@@@  @@@@0@@#DG  @@@Ш@г&optionMG  NG  @г%ShapeXG  YG  @ \G  ]G  @@@ɰ@@@ʰ @@@@0@@#  gH  (@@@Ш@г $listpI + `@В@г(Location~I + <I + D@I + EI + H@@г)LongidentI + 0I + 9@ I + :I + ;@@@*@@@1 @@@г#,Shape_reduceI + KI + W@(I + XI + ^@@@2@@@H@@@MI + /+@@Q@@0@/@@A@+@@3@@A,+@A+%errorDL h mL h r@@;@@/Not_a_typedtree@@@;@@M u yM u @@m@@@A@@@@@L h h@@@Al@@# M u @ @г&stringM u @@3@H+;@@@A@@@@@@@@@A@@@@@@A@@@3@@A@%ErrorEO  O  @#@A@@@;@@AO  O  @@n@@г %errorO   @@3@(RL@A@@@@@@@$readˠYY @б@г㠐&stringYY@@ @@@;3@93@A@@В@г&option/Y-0Y3@г*Cmi_format)cmi_infos*Cmi_format?Y@Y"@ CY#DY,@@@@@@;a( @@@"@@@;c-@@@г&optionXY@YYF@г5)cmt_infosbY6cY?@@ @@@;dF@@@@@@;fK @@@@'@ @@;gR5@@@Z@@;h @@;iW] @@@{Y#@ܐ O [read filename] opens filename, and extract both the cmi_infos, if it exists, and the cmt_infos, if it exists. Thus, it can be used with .cmi, .cmt and .cmti files. .cmti files always contain a cmi_infos at the beginning. .cmt files only contain a cmi_infos at the beginning if there is no associated .cmti file. Q  X@@@@@@@o@@3@@@@@@@v(read_cmt̠[HL[HT@б@гq&string[HW[H]@@ @@@;j3@8@A@@г)cmt_infos[Ha[Hj@@ @@@;k@@@@@;l@@;m @@@[HH @@p@@@@(read_cmi͠\ko\kw@б@г&string\kz\k@@ @@@;n3@3H@A@@г)cmi_infos*Cmi_format\k\k@ \k\k@@@@@@;o @@@ @@;p@@;q# @@@ \kk@@ q@@@@#(save_cmt ` ` @б@г)Unit_info(Artifact!t)Unit_info !a "a@  %a &a$@@ *a% +a&@ @@@@@<3 - , , - - - - -@Pe3@A@@б@гj-binary_annots <b*, =b*9@@ @@@<@@б@гQ!t#Env Oc=? Pc=B@  Sc=C Tc=D@@@@@@<) @@б@г&option cdZq ddZw@г4)cmi_infos*Cmi_format qdZ\ rdZf@  udZg vdZp@@@@@@<K @@@ @@@<P@@б@гޠ&option e e@г[!t%Shape e e@  e e@@@@@@<r @@@ @@@<w@@г S$unit f f@@ @@@<@@@@@<@@<" @@@B@@< @@<N@@@m@@< @@<u@@@@@< @@<@@@@@< @@<@@@ `!@1 a [save_cmt filename modname binary_annots sourcefile initial_env cmi] writes a cmt(i) file.  ^ _@@@@@@@ r@@1@A 񐠠@@@@@@1read_magic_number j j@б@гl*in_channel j j@@ @@@<3        @8@A@@г ՠ&string j j@@ @@@<@@@@@<@@< @@@ j @@ 3s@@@@%clear &l 'l @б@г ՠ$unit 1l  2l@@ @@@<3 3 2 2 3 3 3 3 3@3H@A@@г 䠐$unit @l Al@@ @@@<@@@@@<@@< @@@ Ml @@ et@@@@.add_saved_type Xn Yn-@б@гB+binary_part cn0 dn;@@ @@@<3 e d d e e e e e@3H@A@@г $unit rn? snC@@ @@@<@@@@@<@@< @@@ n @@ u@@@@/get_saved_types oDH oDW@б@г 9$unit oDZ oD^@@ @@@<3        @3H@A@@г $list oDn oDr@г+binary_part oDb oDm@@ @@@<@@@@@@< @@@&@@< @@<#)@@@ oDD@@ v@@@@)/set_saved_types psw ps@б@г G$list ps ps@г+binary_part ps ps@@ @@@<3        @La)@A@@@ @@@< @@г $unit ps ps@@ @@@<@@@@@<@@< @@@ pss @@ w@@@@=record_declaration_dependency r r@б@В@г /dependency_kind r r@@ @@@<3        @<[#@A@@@г n#Uid!t 0r 1r@  4r 5r@@@@@@< @@@г #Uid!t Hr Ir@  Lr Mr@@@@@@<2 @@@@:@"@ @@<;A@@г $unit cr dr@@ @@@<H@@@@@<@@<MS @@@ pr @@ x@@@@S@  A@ ZB@|A@RLA@A@B@t@@@@p@i@@9@ @@%@@3        @t'@A@ H************************************************************************ A@@ A@L@ H  BMM BM@ H OCaml  C C@ H  D D3@ H Fabrice Le Fessant, INRIA Saclay  E44 E4@ H  F F@ H Copyright 2012 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  K KN@ H special exception on linking described in the file LICENSE.  LOO LO@ H  M M@ H************************************************************************ N N5@=* cmt and cmti files format.  /* The layout of a cmt file is as follows: := \{\} \{cmt infos\} \{\} where is the cmi file format: := . More precisely, the optional part must be present if and only if the file is: - a cmti, or - a cmt, for a ml file which has no corresponding mli (hence no corresponding cmti). Thus, we provide a common reading function for cmi and cmt(i) files which returns an option for each of the three parts: cmi info, cmt info, source info.  < * {!Sys.argv} from the compiler invocation which created the file. [Sys.argv.(0)] is rewritten using [BUILD_PATH_PREFIX_MAP]. E. None for mli  G   G  @ P* [read filename] opens filename, and extract both the cmi_infos, if it exists, and the cmt_infos, if it exists. Thus, it can be used with .cmi, .cmt and .cmti files. .cmti files always contain a cmi_infos at the beginning. .cmt files only contain a cmi_infos at the beginning if there is no associated .cmti file. t b* [save_cmt filename modname binary_annots sourcefile initial_env cmi] writes a cmt(i) file. "- initial env  c=H c=Y@9 if a .cmi was generated  dZ{ dZ@9 Miscellaneous functions  h h@ - val is_magic_number : string -> bool val read : in_channel -> Env.cmi_infos option * t val write_magic_number : out_channel -> unit val write : out_channel -> t -> unit val find : string list -> string -> string val read_signature : 'a -> string -> Types.signature * 'b list * 'c list  t ~ @@-./boot/ocamlc)-nostdlib"-I&./boot*-use-prims2runtime/primitives"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I,file_formats"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-c Q R F/home/ci/builds/workspace/main/flambda/false/label/ocaml-ubuntu-latest >10/.-,+*)('&%$#"! @@0lg͕B# :[o~3 l k k l l l l l@ j@@(Asttypes0eT$BbRM dc5Build_path_prefix_map0DGl}%Y5Lhi8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-*Cmi_format0`M{?w}@ 0r4fCcU@Iy*Data_types0v\3,Svh#Env0S B2*Format_doc0uy@GmWUࠠ%Ident0>ЃzV)j⠠,Identifiable0]/*N )Load_path0,j " nn7ݠ(Location0nBɊOn?7~ؠ)Longident0wP q;ɡ 0Bpg]?[q+Outcometree0BuG^)= 9c )Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}%Shape0 M``ll50D&p{'}d&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e+Stdlib__Map0*4ɇ2ɠ%Subst0=aqT/!p+.Type_immediacy00$ jbv\"k& r0L+=%Eȧk]U젠%Types0"|Vȷ`X )Unit_info0'T Χ@aR/Value_rec_types0`4xiVC(Warnings0Ef{&@0r4fCcU@IyApnG[@H@S8{@W@ L @7 $@ S I@@yѰ E @`Boq (Ӱ ` ~@ n `@@@@@]6k  @@ 6  G @@ i  P @  @ @ f U @ ;S@@˓ư l   ]@ D   5@@Q Ǔ H@!@V@'U  7@ޒ@@P@@